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

Commit cc6caff0 authored by Matt Casey's avatar Matt Casey Committed by Android (Google) Code Review
Browse files

Merge "Let launcher to provide its own OverscrollPlugin" into ub-launcher3-master

parents 4cc857ae 0318a652
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
@@ -31,6 +31,7 @@ import com.android.launcher3.util.MainThreadInitializedObject;
import com.android.launcher3.util.ResourceBasedOverride;
import com.android.quickstep.views.TaskThumbnailView;
import com.android.quickstep.views.TaskView;
import com.android.systemui.plugins.OverscrollPlugin;
import com.android.systemui.shared.recents.model.Task;
import com.android.systemui.shared.recents.model.ThumbnailData;

@@ -67,6 +68,13 @@ public class TaskOverlayFactory implements ResourceBasedOverride {
    public static final MainThreadInitializedObject<TaskOverlayFactory> INSTANCE =
            forOverride(TaskOverlayFactory.class, R.string.task_overlay_factory_class);

    /**
     * @return a launcher-provided OverscrollPlugin if available, otherwise null
     */
    public OverscrollPlugin getLocalOverscrollPlugin() {
        return null;
    }

    public TaskOverlay createOverlay(TaskThumbnailView thumbnailView) {
        return new TaskOverlay();
    }
+19 −6
Original line number Diff line number Diff line
@@ -508,12 +508,25 @@ public class TouchInteractionService extends Service implements PluginListener<O
                base = new AssistantInputConsumer(this, newGestureState, base, mInputMonitorCompat);
            }

            if (FeatureFlags.ENABLE_QUICK_CAPTURE_GESTURE.get()
                    && (mOverscrollPlugin != null)
                    && mOverscrollPlugin.isActive()) {
                // Put the overscroll gesture as higher priority than the Assistant or base gestures
                base = new OverscrollInputConsumer(this, newGestureState, base, mInputMonitorCompat,
                        mOverscrollPlugin);
            if (FeatureFlags.ENABLE_QUICK_CAPTURE_GESTURE.get()) {
                OverscrollPlugin plugin = null;
                if (FeatureFlags.FORCE_LOCAL_OVERSCROLL_PLUGIN.get()) {
                    TaskOverlayFactory factory =
                            TaskOverlayFactory.INSTANCE.get(getApplicationContext());
                    plugin = factory.getLocalOverscrollPlugin();  // may be null
                }

                // If not local plugin was forced, use the actual overscroll plugin if available.
                if (plugin == null && mOverscrollPlugin != null && mOverscrollPlugin.isActive()) {
                    plugin = mOverscrollPlugin;
                }

                if (plugin != null) {
                    // Put the overscroll gesture as higher priority than the Assistant or base
                    // gestures
                    base = new OverscrollInputConsumer(this, newGestureState, base,
                        mInputMonitorCompat, plugin);
                }
            }

            if (mDeviceState.isScreenPinningActive()) {
+4 −0
Original line number Diff line number Diff line
@@ -106,6 +106,10 @@ public final class FeatureFlags {
    public static final BooleanFlag ENABLE_QUICK_CAPTURE_GESTURE = getDebugFlag(
            "ENABLE_QUICK_CAPTURE_GESTURE", true, "Swipe from right to left to quick capture");

    public static final BooleanFlag FORCE_LOCAL_OVERSCROLL_PLUGIN = getDebugFlag(
            "FORCE_LOCAL_OVERSCROLL_PLUGIN", false,
            "Use a launcher-provided OverscrollPlugin if available");

    public static final BooleanFlag ASSISTANT_GIVES_LAUNCHER_FOCUS = getDebugFlag(
            "ASSISTANT_GIVES_LAUNCHER_FOCUS", false,
            "Allow Launcher to handle nav bar gestures while Assistant is running over it");