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

Commit 0bbacc70 authored by Sunny Goyal's avatar Sunny Goyal
Browse files

Moving some swipe up complete logic to when the handler is completed.

Bug: 76449024
Change-Id: I136e665495ab7164c79e1dfa0ef61090ba50fc7a
parent 8b5c7d93
Loading
Loading
Loading
Loading
+1 −12
Original line number Diff line number Diff line
@@ -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() {
+3 −4
Original line number Diff line number Diff line
@@ -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();
    }

+28 −0
Original line number Diff line number Diff line
@@ -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);
+8 −0
Original line number Diff line number Diff line
@@ -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;
        }
    }
}
 No newline at end of file