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

Commit 3b05dde5 authored by Hiroki Sato's avatar Hiroki Sato
Browse files

Make DragAndDropController optional

Some device wants to customize wm shell behavior and remove
DragAndDropController.
This change makes it optional in wm shell, and make it configurable from
config.

Bug: 278981746
Test: TreeHugger passing.
Test: Flip the config value and check if ShellDropTarget is not created.
Change-Id: I44911ec45f2e33fb9500d80054aad10006c98402
parent 445da648
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -125,4 +125,7 @@

    <!-- Whether the additional education about reachability is enabled -->
    <bool name="config_letterboxIsReachabilityEducationEnabled">false</bool>

    <!-- Whether DragAndDrop capability is enabled -->
    <bool name="config_enableShellDragDrop">true</bool>
</resources>
+3 −3
Original line number Diff line number Diff line
@@ -260,7 +260,7 @@ public class BubbleController implements ConfigurationChangeListener,
    /** One handed mode controller to register transition listener. */
    private Optional<OneHandedController> mOneHandedOptional;
    /** Drag and drop controller to register listener for onDragStarted. */
    private DragAndDropController mDragAndDropController;
    private Optional<DragAndDropController> mDragAndDropController;
    /** Used to send bubble events to launcher. */
    private Bubbles.BubbleStateListener mBubbleStateListener;

@@ -286,7 +286,7 @@ public class BubbleController implements ConfigurationChangeListener,
            BubblePositioner positioner,
            DisplayController displayController,
            Optional<OneHandedController> oneHandedOptional,
            DragAndDropController dragAndDropController,
            Optional<DragAndDropController> dragAndDropController,
            @ShellMainThread ShellExecutor mainExecutor,
            @ShellMainThread Handler mainHandler,
            @ShellBackgroundThread ShellExecutor bgExecutor,
@@ -469,7 +469,7 @@ public class BubbleController implements ConfigurationChangeListener,
                });

        mOneHandedOptional.ifPresent(this::registerOneHandedState);
        mDragAndDropController.addListener(this::collapseStack);
        mDragAndDropController.ifPresent(controller -> controller.addListener(this::collapseStack));

        // Clear out any persisted bubbles on disk that no longer have a valid user.
        List<UserInfo> users = mUserManager.getAliveUsers();
+3 −3
Original line number Diff line number Diff line
@@ -41,11 +41,11 @@ import com.android.wm.shell.sysui.ShellController;
import com.android.wm.shell.sysui.ShellInit;
import com.android.wm.shell.transition.Transitions;

import java.util.Optional;

import dagger.Module;
import dagger.Provides;

import java.util.Optional;

/**
 * Provides dependencies from {@link com.android.wm.shell}, these dependencies are only
 * accessible from components within the WM subcomponent (can be explicitly exposed to the
@@ -81,7 +81,7 @@ public class TvWMShellModule {
            DisplayController displayController,
            DisplayImeController displayImeController,
            DisplayInsetsController displayInsetsController,
            DragAndDropController dragAndDropController,
            Optional<DragAndDropController> dragAndDropController,
            Transitions transitions,
            TransactionPool transactionPool,
            IconProvider iconProvider,
+4 −4
Original line number Diff line number Diff line
@@ -186,15 +186,15 @@ public abstract class WMShellBaseModule {

    @WMSingleton
    @Provides
    static DragAndDropController provideDragAndDropController(Context context,
    static Optional<DragAndDropController> provideDragAndDropController(Context context,
            ShellInit shellInit,
            ShellController shellController,
            DisplayController displayController,
            UiEventLogger uiEventLogger,
            IconProvider iconProvider,
            @ShellMainThread ShellExecutor mainExecutor) {
        return new DragAndDropController(context, shellInit, shellController, displayController,
                uiEventLogger, iconProvider, mainExecutor);
        return Optional.ofNullable(DragAndDropController.create(context, shellInit, shellController,
                displayController, uiEventLogger, iconProvider, mainExecutor));
    }

    @WMSingleton
@@ -796,7 +796,7 @@ public abstract class WMShellBaseModule {
            DisplayController displayController,
            DisplayImeController displayImeController,
            DisplayInsetsController displayInsetsController,
            DragAndDropController dragAndDropController,
            Optional<DragAndDropController> dragAndDropControllerOptional,
            ShellTaskOrganizer shellTaskOrganizer,
            Optional<BubbleController> bubblesOptional,
            Optional<SplitScreenController> splitScreenOptional,
+2 −2
Original line number Diff line number Diff line
@@ -171,7 +171,7 @@ public abstract class WMShellModule {
            BubblePositioner positioner,
            DisplayController displayController,
            @DynamicOverride Optional<OneHandedController> oneHandedOptional,
            DragAndDropController dragAndDropController,
            Optional<DragAndDropController> dragAndDropController,
            @ShellMainThread ShellExecutor mainExecutor,
            @ShellMainThread Handler mainHandler,
            @ShellBackgroundThread ShellExecutor bgExecutor,
@@ -320,7 +320,7 @@ public abstract class WMShellModule {
            DisplayController displayController,
            DisplayImeController displayImeController,
            DisplayInsetsController displayInsetsController,
            DragAndDropController dragAndDropController,
            Optional<DragAndDropController> dragAndDropController,
            Transitions transitions,
            TransactionPool transactionPool,
            IconProvider iconProvider,
Loading