Merge "Make bounce animations less aggressive" into ub-launcher3-master
This commit is contained in:
@@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user