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

Commit 7eebfc56 authored by Tracy Zhou's avatar Tracy Zhou Committed by Android (Google) Code Review
Browse files

Merge "Make bounce animations less aggressive" into ub-launcher3-master

parents d182943d c49f3de3
Loading
Loading
Loading
Loading
+7 −2
Original line number Diff line number Diff line
@@ -21,7 +21,10 @@ import static com.android.launcher3.AbstractFloatingView.TYPE_HIDE_BACK_BUTTON;
import static com.android.launcher3.LauncherState.ALL_APPS;
import static com.android.launcher3.LauncherState.NORMAL;
import static com.android.launcher3.LauncherState.OVERVIEW;
import static com.android.launcher3.allapps.DiscoveryBounce.BOUNCE_MAX_COUNT;
import static com.android.launcher3.allapps.DiscoveryBounce.HOME_BOUNCE_COUNT;
import static com.android.launcher3.allapps.DiscoveryBounce.HOME_BOUNCE_SEEN;
import static com.android.launcher3.allapps.DiscoveryBounce.SHELF_BOUNCE_COUNT;
import static com.android.launcher3.allapps.DiscoveryBounce.SHELF_BOUNCE_SEEN;

import android.animation.AnimatorSet;
@@ -136,7 +139,8 @@ public class UiFactory {
                    LauncherState prevState = launcher.getStateManager().getLastState();

                    if (((swipeUpEnabled && finalState == OVERVIEW) || (!swipeUpEnabled
                            && finalState == ALL_APPS && prevState == NORMAL))) {
                            && finalState == ALL_APPS && prevState == NORMAL) || BOUNCE_MAX_COUNT <=
                            launcher.getSharedPrefs().getInt(HOME_BOUNCE_COUNT, 0))) {
                        launcher.getSharedPrefs().edit().putBoolean(HOME_BOUNCE_SEEN, true).apply();
                        launcher.getStateManager().removeStateListener(this);
                    }
@@ -159,7 +163,8 @@ public class UiFactory {
                public void onStateTransitionComplete(LauncherState finalState) {
                    LauncherState prevState = launcher.getStateManager().getLastState();

                    if (finalState == ALL_APPS && prevState == OVERVIEW) {
                    if ((finalState == ALL_APPS && prevState == OVERVIEW) || BOUNCE_MAX_COUNT <=
                            launcher.getSharedPrefs().getInt(SHELF_BOUNCE_COUNT, 0)) {
                        launcher.getSharedPrefs().edit().putBoolean(SHELF_BOUNCE_SEEN, true).apply();
                        launcher.getStateManager().removeStateListener(this);
                    }
+25 −0
Original line number Diff line number Diff line
@@ -25,6 +25,7 @@ import android.animation.Animator;
import android.animation.AnimatorInflater;
import android.animation.AnimatorListenerAdapter;
import android.app.ActivityManager;
import android.content.SharedPreferences;
import android.os.Handler;
import android.view.MotionEvent;

@@ -43,6 +44,10 @@ public class DiscoveryBounce extends AbstractFloatingView {

    public static final String HOME_BOUNCE_SEEN = "launcher.apps_view_shown";
    public static final String SHELF_BOUNCE_SEEN = "launcher.shelf_bounce_seen";
    public static final String HOME_BOUNCE_COUNT = "launcher.home_bounce_count";
    public static final String SHELF_BOUNCE_COUNT = "launcher.shelf_bounce_count";

    public static final int BOUNCE_MAX_COUNT = 3;

    private final Launcher mLauncher;
    private final Animator mDiscoBounceAnimation;
@@ -137,6 +142,7 @@ public class DiscoveryBounce extends AbstractFloatingView {
            new Handler().postDelayed(() -> showForHomeIfNeeded(launcher, false), DELAY_MS);
            return;
        }
        incrementHomeBounceCount(launcher);

        new DiscoveryBounce(launcher, 0).show(HOTSEAT);
    }
@@ -165,6 +171,7 @@ public class DiscoveryBounce extends AbstractFloatingView {
            // TODO: Move these checks to the top and call this method after invalidate handler.
            return;
        }
        incrementShelfBounceCount(launcher);

        new DiscoveryBounce(launcher, (1 - OVERVIEW.getVerticalProgress(launcher)))
                .show(PREDICTION);
@@ -197,4 +204,22 @@ public class DiscoveryBounce extends AbstractFloatingView {
                PersonalWorkSlidingTabStrip.KEY_SHOWED_PEEK_WORK_TAB, false)
                && UserManagerCompat.getInstance(launcher).hasWorkProfile();
    }

    private static void incrementShelfBounceCount(Launcher launcher) {
        SharedPreferences sharedPrefs = launcher.getSharedPrefs();
        int count = sharedPrefs.getInt(SHELF_BOUNCE_COUNT, 0);
        if (count > BOUNCE_MAX_COUNT) {
            return;
        }
        sharedPrefs.edit().putInt(SHELF_BOUNCE_COUNT, count + 1).apply();
    }

    private static void incrementHomeBounceCount(Launcher launcher) {
        SharedPreferences sharedPrefs = launcher.getSharedPrefs();
        int count = sharedPrefs.getInt(HOME_BOUNCE_COUNT, 0);
        if (count > BOUNCE_MAX_COUNT) {
            return;
        }
        sharedPrefs.edit().putInt(HOME_BOUNCE_COUNT, count + 1).apply();
    }
}