Moving some swipe up complete logic to when the handler is completed.
Bug: 76449024 Change-Id: I136e665495ab7164c79e1dfa0ef61090ba50fc7a
This commit is contained in:
parent
8b5c7d9315
commit
0bbacc705c
|
@ -79,8 +79,6 @@ public interface ActivityControlHelper<T extends BaseDraggingActivity> {
|
|||
|
||||
ActivityInitListener createActivityInitListener(BiPredicate<T, Boolean> onInitListener);
|
||||
|
||||
void onOverviewShown(T activity);
|
||||
|
||||
@Nullable
|
||||
T getCreatedActivity();
|
||||
|
||||
|
@ -150,6 +148,7 @@ public interface ActivityControlHelper<T extends BaseDraggingActivity> {
|
|||
public void onSwipeUpComplete(Launcher activity) {
|
||||
// Re apply state in case we did something funky during the transition.
|
||||
activity.getStateManager().reapplyState();
|
||||
DiscoveryBounce.showForOverviewIfNeeded(activity);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -213,11 +212,6 @@ public interface ActivityControlHelper<T extends BaseDraggingActivity> {
|
|||
return new LauncherInitListener(onInitListener);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onOverviewShown(Launcher launcher) {
|
||||
DiscoveryBounce.showForOverviewIfNeeded(launcher);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
@Override
|
||||
public Launcher getCreatedActivity() {
|
||||
|
@ -372,11 +366,6 @@ public interface ActivityControlHelper<T extends BaseDraggingActivity> {
|
|||
return new RecentsActivityTracker(onInitListener);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onOverviewShown(RecentsActivity activity) {
|
||||
// Do nothing.
|
||||
}
|
||||
|
||||
@Nullable
|
||||
@Override
|
||||
public RecentsActivity getCreatedActivity() {
|
||||
|
|
|
@ -694,9 +694,6 @@ public class WindowTransformSwipeHandler<T extends BaseDraggingActivity> {
|
|||
// If we haven't posted the transition end runnable, run it now
|
||||
finishTransitionRunnable.run();
|
||||
}
|
||||
RecentsModel.getInstance(mContext).onOverviewShown(false, TAG);
|
||||
mActivityControlHelper.onOverviewShown(mActivity);
|
||||
doLogGesture(true /* toLauncher */);
|
||||
}
|
||||
|
||||
private void setupLauncherUiAfterSwipeUpAnimation() {
|
||||
|
@ -708,9 +705,11 @@ public class WindowTransformSwipeHandler<T extends BaseDraggingActivity> {
|
|||
|
||||
// Animate the first icon.
|
||||
mRecentsView.setFirstTaskIconScaledDown(false /* isScaledDown */, true /* animate */);
|
||||
|
||||
mRecentsView.setSwipeDownShouldLaunchApp(true);
|
||||
|
||||
RecentsModel.getInstance(mContext).onOverviewShown(false, TAG);
|
||||
|
||||
doLogGesture(true /* toLauncher */);
|
||||
reset();
|
||||
}
|
||||
|
||||
|
|
|
@ -27,6 +27,7 @@ import android.animation.ObjectAnimator;
|
|||
import android.animation.PropertyValuesHolder;
|
||||
import android.animation.TimeInterpolator;
|
||||
import android.app.ActivityManager;
|
||||
import android.os.Handler;
|
||||
import android.view.MotionEvent;
|
||||
import android.view.animation.PathInterpolator;
|
||||
|
||||
|
@ -34,12 +35,15 @@ import com.android.launcher3.AbstractFloatingView;
|
|||
import com.android.launcher3.Launcher;
|
||||
import com.android.launcher3.R;
|
||||
import com.android.launcher3.compat.UserManagerCompat;
|
||||
import com.android.launcher3.states.InternalStateHandler;
|
||||
|
||||
/**
|
||||
* Abstract base class of floating view responsible for showing discovery bounce animation
|
||||
*/
|
||||
public class DiscoveryBounce extends AbstractFloatingView {
|
||||
|
||||
private static final long DELAY_MS = 200;
|
||||
|
||||
public static final String HOME_BOUNCE_SEEN = "launcher.apps_view_shown";
|
||||
public static final String SHELF_BOUNCE_SEEN = "launcher.shelf_bounce_seen";
|
||||
|
||||
|
@ -102,6 +106,10 @@ public class DiscoveryBounce extends AbstractFloatingView {
|
|||
}
|
||||
|
||||
public static void showForHomeIfNeeded(Launcher launcher) {
|
||||
showForHomeIfNeeded(launcher, true);
|
||||
}
|
||||
|
||||
private static void showForHomeIfNeeded(Launcher launcher, boolean withDelay) {
|
||||
if (!launcher.isInState(NORMAL)
|
||||
|| launcher.getSharedPrefs().getBoolean(HOME_BOUNCE_SEEN, false)
|
||||
|| AbstractFloatingView.getTopOpenView(launcher) != null
|
||||
|
@ -110,6 +118,11 @@ public class DiscoveryBounce extends AbstractFloatingView {
|
|||
return;
|
||||
}
|
||||
|
||||
if (withDelay) {
|
||||
new Handler().postDelayed(() -> showForHomeIfNeeded(launcher, false), DELAY_MS);
|
||||
return;
|
||||
}
|
||||
|
||||
DiscoveryBounce view = new DiscoveryBounce(launcher,
|
||||
AnimatorInflater.loadAnimator(launcher, R.animator.discovery_bounce));
|
||||
view.mIsOpen = true;
|
||||
|
@ -117,7 +130,13 @@ public class DiscoveryBounce extends AbstractFloatingView {
|
|||
}
|
||||
|
||||
public static void showForOverviewIfNeeded(Launcher launcher) {
|
||||
showForOverviewIfNeeded(launcher, true);
|
||||
}
|
||||
|
||||
private static void showForOverviewIfNeeded(Launcher launcher, boolean withDelay) {
|
||||
if (!launcher.isInState(OVERVIEW)
|
||||
|| !launcher.hasBeenResumed()
|
||||
|| launcher.isForceInvisible()
|
||||
|| launcher.getDeviceProfile().isVerticalBarLayout()
|
||||
|| launcher.getSharedPrefs().getBoolean(SHELF_BOUNCE_SEEN, false)
|
||||
|| UserManagerCompat.getInstance(launcher).isDemoUser()
|
||||
|
@ -125,6 +144,15 @@ public class DiscoveryBounce extends AbstractFloatingView {
|
|||
return;
|
||||
}
|
||||
|
||||
if (withDelay) {
|
||||
new Handler().postDelayed(() -> showForOverviewIfNeeded(launcher, false), DELAY_MS);
|
||||
return;
|
||||
} else if (InternalStateHandler.hasPending()
|
||||
|| AbstractFloatingView.getTopOpenView(launcher) != null) {
|
||||
// TODO: Move these checks to the top and call this method after invalidate handler.
|
||||
return;
|
||||
}
|
||||
|
||||
float verticalProgress = OVERVIEW.getVerticalProgress(launcher);
|
||||
|
||||
TimeInterpolator pathInterpolator = new PathInterpolator(0.35f, 0, 0.5f, 1);
|
||||
|
|
|
@ -60,6 +60,10 @@ public abstract class InternalStateHandler extends Binder {
|
|||
return sScheduler.clearReference(this);
|
||||
}
|
||||
|
||||
public static boolean hasPending() {
|
||||
return sScheduler.hasPending();
|
||||
}
|
||||
|
||||
public static boolean handleCreate(Launcher launcher, Intent intent) {
|
||||
return handleIntent(launcher, intent, false, false);
|
||||
}
|
||||
|
@ -132,5 +136,9 @@ public abstract class InternalStateHandler extends Binder {
|
|||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean hasPending() {
|
||||
return mPendingHandler.get() != null;
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue