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

Commit 6aef85c4 authored by Sunny Goyal's avatar Sunny Goyal Committed by Android (Google) Code Review
Browse files

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

Merge "Moving some swipe up complete logic to when the handler is completed." into ub-launcher3-edmonton
parents cd95352a 0bbacc70
Loading
Loading
Loading
Loading
+1 −12
Original line number Diff line number Diff line
@@ -82,8 +82,6 @@ public interface ActivityControlHelper<T extends BaseDraggingActivity> {

    ActivityInitListener createActivityInitListener(BiPredicate<T, Boolean> onInitListener);

    void onOverviewShown(T activity);

    @Nullable
    T getCreatedActivity();

@@ -160,6 +158,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
@@ -223,11 +222,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() {
@@ -387,11 +381,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
@@ -683,9 +683,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() {
@@ -697,9 +694,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