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

Commit 0d37f05a authored by Tony Wickham's avatar Tony Wickham Committed by android-build-merger
Browse files

Merge "Properly prevent All Apps relayouts by avoiding scrollToPosition" into...

Merge "Properly prevent All Apps relayouts by avoiding scrollToPosition" into ub-launcher3-qt-qpr1-dev
am: d785fc28

Change-Id: I69738f5d9c1f77195f2f82f963958d3cc741e9af
parents c698c0cd d785fc28
Loading
Loading
Loading
Loading
+0 −5
Original line number Diff line number Diff line
@@ -172,8 +172,6 @@ public final class LauncherActivityControllerHelper implements ActivityControlHe
                AnimatorSetBuilder builder = new AnimatorSetBuilder();
                // setRecentsAttachedToAppWindow() will animate recents out.
                builder.addFlag(AnimatorSetBuilder.FLAG_DONT_ANIMATE_OVERVIEW);
                // We want to keep all apps content as GONE to avoid relayout during home animation.
                builder.addFlag(AnimatorSetBuilder.FLAG_DONT_UPDATE_ALL_APPS_VISIBILITY);
                stateManager.createAtomicAnimation(BACKGROUND_APP, NORMAL, builder, ANIM_ALL, 0);
                builder.build().start();

@@ -202,9 +200,6 @@ public final class LauncherActivityControllerHelper implements ActivityControlHe
        // This ensures then the next swipe up to all-apps starts from scroll 0.
        activity.getAppsView().reset(false /* animate */);

        // Optimization, hide the all apps view to prevent layout while initializing
        activity.getAppsView().getContentView().setVisibility(View.GONE);

        return new AnimationFactory() {
            private ShelfAnimState mShelfState;
            private boolean mIsAttachedToWindow;
+8 −0
Original line number Diff line number Diff line
@@ -34,6 +34,7 @@ import com.android.launcher3.ItemInfo;
import com.android.launcher3.Launcher;
import com.android.launcher3.LauncherAppState;
import com.android.launcher3.R;
import com.android.launcher3.allapps.AllAppsGridAdapter.AppsGridLayoutManager;
import com.android.launcher3.compat.AccessibilityManagerCompat;
import com.android.launcher3.logging.StatsLogUtils.LogContainerProvider;
import com.android.launcher3.userevent.nano.LauncherLogProto.ContainerType;
@@ -113,6 +114,13 @@ public class AllAppsRecyclerView extends BaseRecyclerView implements LogContaine
        if (mScrollbar != null) {
            mScrollbar.reattachThumbToScroll();
        }
        if (getLayoutManager() instanceof AppsGridLayoutManager) {
            AppsGridLayoutManager layoutManager = (AppsGridLayoutManager) getLayoutManager();
            if (layoutManager.findFirstCompletelyVisibleItemPosition() == 0) {
                // We are at the top, so don't scrollToPosition (would cause unnecessary relayout).
                return;
            }
        }
        scrollToPosition(0);
    }

+1 −10
Original line number Diff line number Diff line
package com.android.launcher3.allapps;

import static android.view.View.ALPHA;

import static com.android.launcher3.LauncherState.ALL_APPS_CONTENT;
import static com.android.launcher3.LauncherState.ALL_APPS_HEADER_EXTRA;
import static com.android.launcher3.LauncherState.BACKGROUND_APP;
@@ -12,7 +10,6 @@ import static com.android.launcher3.anim.AnimatorSetBuilder.ANIM_ALL_APPS_FADE;
import static com.android.launcher3.anim.AnimatorSetBuilder.ANIM_ALL_APPS_HEADER_FADE;
import static com.android.launcher3.anim.AnimatorSetBuilder.ANIM_OVERVIEW_SCALE;
import static com.android.launcher3.anim.AnimatorSetBuilder.ANIM_VERTICAL_PROGRESS;
import static com.android.launcher3.anim.AnimatorSetBuilder.FLAG_DONT_UPDATE_ALL_APPS_VISIBILITY;
import static com.android.launcher3.anim.Interpolators.FAST_OUT_SLOW_IN;
import static com.android.launcher3.anim.Interpolators.LINEAR;
import static com.android.launcher3.anim.PropertySetter.NO_ANIM_PROPERTY_SETTER;
@@ -21,7 +18,6 @@ import static com.android.launcher3.util.SystemUiController.UI_STATE_ALL_APPS;
import android.animation.Animator;
import android.animation.AnimatorListenerAdapter;
import android.util.FloatProperty;
import android.view.View;
import android.view.animation.Interpolator;

import com.android.launcher3.DeviceProfile;
@@ -215,12 +211,7 @@ public class AllAppsTransitionController implements StateHandler, OnDeviceProfil

        Interpolator allAppsFade = builder.getInterpolator(ANIM_ALL_APPS_FADE, LINEAR);
        Interpolator headerFade = builder.getInterpolator(ANIM_ALL_APPS_HEADER_FADE, allAppsFade);
        View allAppsContent = mAppsView.getContentView();
        if (!hasAllAppsContent && builder.hasFlag(FLAG_DONT_UPDATE_ALL_APPS_VISIBILITY)) {
            setter.setFloat(allAppsContent, ALPHA, 0, allAppsFade);
        } else {
            setter.setViewAlpha(allAppsContent, hasAllAppsContent ? 1 : 0, allAppsFade);
        }
        setter.setViewAlpha(mAppsView.getContentView(), hasAllAppsContent ? 1 : 0, allAppsFade);
        setter.setViewAlpha(mAppsView.getScrollBar(), hasAllAppsContent ? 1 : 0, allAppsFade);
        mAppsView.getFloatingHeaderView().setContentVisibility(hasHeaderExtra, hasAllAppsContent,
                setter, headerFade, allAppsFade);
+0 −1
Original line number Diff line number Diff line
@@ -43,7 +43,6 @@ public class AnimatorSetBuilder {
    public static final int ANIM_ALL_APPS_HEADER_FADE = 12; // e.g. predictions

    public static final int FLAG_DONT_ANIMATE_OVERVIEW = 1 << 0;
    public static final int FLAG_DONT_UPDATE_ALL_APPS_VISIBILITY = 1 << 1;

    protected final ArrayList<Animator> mAnims = new ArrayList<>();