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

This commit is contained in:
Tracy Zhou
2019-01-25 20:36:23 +00:00
committed by Android (Google) Code Review
2 changed files with 32 additions and 2 deletions
@@ -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,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();
}
}