Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c1bf40f5 authored by Winson Chung's avatar Winson Chung Committed by Android (Google) Code Review
Browse files

Merge "Fixing transition animation in landscape on tablets (Bug 16867731)" into lmp-dev

parents 7f708ecc 242bbb86
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -39,5 +39,8 @@
    <!-- The maximum count of notifications on Keyguard. The rest will be collapsed in an overflow
         card. -->
    <integer name="keyguard_max_notification_count">5</integer>

    <!-- Transposes the recents layout in landscape. -->
    <bool name="recents_transpose_layout_with_orientation">false</bool>
</resources>
+9 −12
Original line number Diff line number Diff line
@@ -37,8 +37,6 @@ public class RecentsConfiguration {
    static RecentsConfiguration sInstance;
    static int sPrevConfigurationHashCode;

    DisplayMetrics mDisplayMetrics;

    /** Animations */
    public float animationPxMovementPerSecond;

@@ -156,7 +154,6 @@ public class RecentsConfiguration {
        SharedPreferences settings = context.getSharedPreferences(context.getPackageName(), 0);
        Resources res = context.getResources();
        DisplayMetrics dm = res.getDisplayMetrics();
        mDisplayMetrics = dm;

        // Debug mode
        debugModeEnabled = settings.getBoolean(Constants.Values.App.Key_DebugModeEnabled, false);
@@ -164,6 +161,15 @@ public class RecentsConfiguration {
            Console.Enabled = true;
        }

        // Layout
        isLandscape = res.getConfiguration().orientation ==
                Configuration.ORIENTATION_LANDSCAPE;
        transposeRecentsLayoutWithOrientation =
                res.getBoolean(R.bool.recents_transpose_layout_with_orientation);

        // Insets
        displayRect.set(0, 0, dm.widthPixels, dm.heightPixels);

        // Animations
        animationPxMovementPerSecond =
                res.getDimensionPixelSize(R.dimen.recents_animation_movement_in_dps_per_second);
@@ -174,15 +180,6 @@ public class RecentsConfiguration {
        filteringNewViewsAnimDuration =
                res.getInteger(R.integer.recents_filter_animate_new_views_duration);

        // Insets
        displayRect.set(0, 0, dm.widthPixels, dm.heightPixels);

        // Layout
        isLandscape = res.getConfiguration().orientation ==
                Configuration.ORIENTATION_LANDSCAPE;
        transposeRecentsLayoutWithOrientation =
                res.getBoolean(R.bool.recents_transpose_layout_with_orientation);

        // Search Bar
        searchBarSpaceHeightPx = res.getDimensionPixelSize(R.dimen.recents_search_bar_space_height);
        searchBarAppWidgetId = settings.getInt(Constants.Values.App.Key_SearchAppWidgetId, -1);
+9 −6
Original line number Diff line number Diff line
@@ -60,8 +60,6 @@ public class TaskStackViewLayoutAlgorithm {

    public TaskStackViewLayoutAlgorithm(RecentsConfiguration config) {
        mConfig = config;
        mWithinAffiliationOffset = mConfig.taskBarHeight;
        mBetweenAffiliationOffset = 4 * mConfig.taskBarHeight;

        // Precompute the path
        initializeCurve();
@@ -84,6 +82,11 @@ public class TaskStackViewLayoutAlgorithm {
        int left = mStackRect.left + (mStackRect.width() - size) / 2;
        mTaskRect.set(left, mStackRect.top,
                left + size, mStackRect.top + size);

        // Update the affiliation offsets
        float visibleTaskPct = 0.55f;
        mWithinAffiliationOffset = mConfig.taskBarHeight;
        mBetweenAffiliationOffset = (int) (visibleTaskPct * mTaskRect.height());
    }

    /** Computes the minimum and maximum scroll progress values.  This method may be called before
@@ -110,8 +113,7 @@ public class TaskStackViewLayoutAlgorithm {
                screenYToCurveProgress(mStackVisibleRect.bottom - (mStackVisibleRect.bottom - mStackRect.bottom));

        // Update the task offsets
        float pAtBackMostCardTop = screenYToCurveProgress(mStackVisibleRect.top +
                (mStackVisibleRect.height() - taskHeight) / 2);
        float pAtBackMostCardTop = 0.5f;
        float pAtFrontMostCardTop = pAtBackMostCardTop;
        float pAtSecondFrontMostCardTop = pAtBackMostCardTop;
        int taskCount = tasks.size();
@@ -128,14 +130,15 @@ public class TaskStackViewLayoutAlgorithm {
            }
        }

        mMinScrollP = 0f;
        mMaxScrollP = pAtFrontMostCardTop - ((1f - pTaskHeightOffset - pNavBarOffset));
        mMinScrollP = tasks.size() == 1 ? Math.max(mMaxScrollP, 0f) : 0f;
        if (launchedWithAltTab) {
            // Center the second most task, since that will be focused first
            mInitialScrollP = pAtSecondFrontMostCardTop - 0.5f;
        } else {
            mInitialScrollP = pAtSecondFrontMostCardTop - ((1f - pTaskHeightOffset - pNavBarOffset));
            mInitialScrollP = pAtFrontMostCardTop - 0.825f;
        }
        mInitialScrollP = Math.max(0, mInitialScrollP);
    }

    /** Update/get the transform */