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

Commit e933592f authored by Winson Chung's avatar Winson Chung Committed by Automerger Merge Worker
Browse files

Merge "11/ Clean up usage of exported interfaces from internal controllers"...

Merge "11/ Clean up usage of exported interfaces from internal controllers" into sc-dev am: 79633c2b

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/13502602

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: Ic5d5789c8aa6d205041a6b4d2f037588f8286db5
parents 0cb1204d 79633c2b
Loading
Loading
Loading
Loading
+2 −10
Original line number Original line Diff line number Diff line
@@ -16,24 +16,16 @@


package com.android.wm.shell;
package com.android.wm.shell;


import android.util.Slog;
import com.android.wm.shell.common.annotations.ExternalThread;

import com.android.wm.shell.apppairs.AppPairs;
import com.android.wm.shell.common.ShellExecutor;
import com.android.wm.shell.hidedisplaycutout.HideDisplayCutout;
import com.android.wm.shell.legacysplitscreen.LegacySplitScreen;
import com.android.wm.shell.onehanded.OneHanded;
import com.android.wm.shell.pip.Pip;


import java.io.PrintWriter;
import java.io.PrintWriter;
import java.util.Optional;
import java.util.concurrent.TimeUnit;


/**
/**
 * An entry point into the shell for dumping shell internal state and running adb commands.
 * An entry point into the shell for dumping shell internal state and running adb commands.
 *
 *
 * Use with {@code adb shell dumpsys activity service SystemUIService WMShell ...}.
 * Use with {@code adb shell dumpsys activity service SystemUIService WMShell ...}.
 */
 */
@ExternalThread
public interface ShellCommandHandler {
public interface ShellCommandHandler {
    /**
    /**
     * Dumps the shell state.
     * Dumps the shell state.
+16 −17
Original line number Original line Diff line number Diff line
@@ -18,13 +18,12 @@ package com.android.wm.shell;


import static com.android.wm.shell.splitscreen.SplitScreen.STAGE_POSITION_BOTTOM_OR_RIGHT;
import static com.android.wm.shell.splitscreen.SplitScreen.STAGE_POSITION_BOTTOM_OR_RIGHT;


import com.android.wm.shell.apppairs.AppPairs;
import com.android.wm.shell.apppairs.AppPairsController;
import com.android.wm.shell.common.ShellExecutor;
import com.android.wm.shell.common.ShellExecutor;
import com.android.wm.shell.hidedisplaycutout.HideDisplayCutout;
import com.android.wm.shell.onehanded.OneHanded;
import com.android.wm.shell.pip.Pip;
import com.android.wm.shell.pip.Pip;
import com.android.wm.shell.legacysplitscreen.LegacySplitScreen;
import com.android.wm.shell.hidedisplaycutout.HideDisplayCutoutController;
import com.android.wm.shell.splitscreen.SplitScreen;
import com.android.wm.shell.legacysplitscreen.LegacySplitScreenController;
import com.android.wm.shell.onehanded.OneHandedController;
import com.android.wm.shell.splitscreen.SplitScreenController;
import com.android.wm.shell.splitscreen.SplitScreenController;


import java.io.PrintWriter;
import java.io.PrintWriter;
@@ -38,24 +37,24 @@ import java.util.Optional;
public final class ShellCommandHandlerImpl {
public final class ShellCommandHandlerImpl {
    private static final String TAG = ShellCommandHandlerImpl.class.getSimpleName();
    private static final String TAG = ShellCommandHandlerImpl.class.getSimpleName();


    private final Optional<LegacySplitScreen> mLegacySplitScreenOptional;
    private final Optional<LegacySplitScreenController> mLegacySplitScreenOptional;
    private final Optional<SplitScreenController> mSplitScreenOptional;
    private final Optional<SplitScreenController> mSplitScreenOptional;
    private final Optional<Pip> mPipOptional;
    private final Optional<Pip> mPipOptional;
    private final Optional<OneHanded> mOneHandedOptional;
    private final Optional<OneHandedController> mOneHandedOptional;
    private final Optional<HideDisplayCutout> mHideDisplayCutout;
    private final Optional<HideDisplayCutoutController> mHideDisplayCutout;
    private final Optional<AppPairsController> mAppPairsOptional;
    private final ShellTaskOrganizer mShellTaskOrganizer;
    private final ShellTaskOrganizer mShellTaskOrganizer;
    private final Optional<AppPairs> mAppPairsOptional;
    private final ShellExecutor mMainExecutor;
    private final ShellExecutor mMainExecutor;
    private final HandlerImpl mImpl = new HandlerImpl();
    private final HandlerImpl mImpl = new HandlerImpl();


    public static ShellCommandHandler create(
    public static ShellCommandHandler create(
            ShellTaskOrganizer shellTaskOrganizer,
            ShellTaskOrganizer shellTaskOrganizer,
            Optional<LegacySplitScreen> legacySplitScreenOptional,
            Optional<LegacySplitScreenController> legacySplitScreenOptional,
            Optional<SplitScreenController> splitScreenOptional,
            Optional<SplitScreenController> splitScreenOptional,
            Optional<Pip> pipOptional,
            Optional<Pip> pipOptional,
            Optional<OneHanded> oneHandedOptional,
            Optional<OneHandedController> oneHandedOptional,
            Optional<HideDisplayCutout> hideDisplayCutout,
            Optional<HideDisplayCutoutController> hideDisplayCutout,
            Optional<AppPairs> appPairsOptional,
            Optional<AppPairsController> appPairsOptional,
            ShellExecutor mainExecutor) {
            ShellExecutor mainExecutor) {
        return new ShellCommandHandlerImpl(shellTaskOrganizer, legacySplitScreenOptional,
        return new ShellCommandHandlerImpl(shellTaskOrganizer, legacySplitScreenOptional,
                splitScreenOptional, pipOptional, oneHandedOptional, hideDisplayCutout,
                splitScreenOptional, pipOptional, oneHandedOptional, hideDisplayCutout,
@@ -64,12 +63,12 @@ public final class ShellCommandHandlerImpl {


    private ShellCommandHandlerImpl(
    private ShellCommandHandlerImpl(
            ShellTaskOrganizer shellTaskOrganizer,
            ShellTaskOrganizer shellTaskOrganizer,
            Optional<LegacySplitScreen> legacySplitScreenOptional,
            Optional<LegacySplitScreenController> legacySplitScreenOptional,
            Optional<SplitScreenController> splitScreenOptional,
            Optional<SplitScreenController> splitScreenOptional,
            Optional<Pip> pipOptional,
            Optional<Pip> pipOptional,
            Optional<OneHanded> oneHandedOptional,
            Optional<OneHandedController> oneHandedOptional,
            Optional<HideDisplayCutout> hideDisplayCutout,
            Optional<HideDisplayCutoutController> hideDisplayCutout,
            Optional<AppPairs> appPairsOptional,
            Optional<AppPairsController> appPairsOptional,
            ShellExecutor mainExecutor) {
            ShellExecutor mainExecutor) {
        mShellTaskOrganizer = shellTaskOrganizer;
        mShellTaskOrganizer = shellTaskOrganizer;
        mLegacySplitScreenOptional = legacySplitScreenOptional;
        mLegacySplitScreenOptional = legacySplitScreenOptional;
+9 −10
Original line number Original line Diff line number Diff line
@@ -18,13 +18,12 @@ package com.android.wm.shell;


import static com.android.wm.shell.ShellTaskOrganizer.TASK_LISTENER_TYPE_FULLSCREEN;
import static com.android.wm.shell.ShellTaskOrganizer.TASK_LISTENER_TYPE_FULLSCREEN;


import com.android.wm.shell.apppairs.AppPairs;
import com.android.wm.shell.apppairs.AppPairsController;
import com.android.wm.shell.common.DisplayImeController;
import com.android.wm.shell.common.DisplayImeController;
import com.android.wm.shell.common.ShellExecutor;
import com.android.wm.shell.common.ShellExecutor;
import com.android.wm.shell.common.annotations.ExternalThread;
import com.android.wm.shell.common.annotations.ExternalThread;
import com.android.wm.shell.draganddrop.DragAndDropController;
import com.android.wm.shell.draganddrop.DragAndDropController;
import com.android.wm.shell.legacysplitscreen.LegacySplitScreen;
import com.android.wm.shell.legacysplitscreen.LegacySplitScreenController;
import com.android.wm.shell.splitscreen.SplitScreen;
import com.android.wm.shell.splitscreen.SplitScreenController;
import com.android.wm.shell.splitscreen.SplitScreenController;
import com.android.wm.shell.transition.Transitions;
import com.android.wm.shell.transition.Transitions;


@@ -39,9 +38,9 @@ public class ShellInitImpl {
    private final DisplayImeController mDisplayImeController;
    private final DisplayImeController mDisplayImeController;
    private final DragAndDropController mDragAndDropController;
    private final DragAndDropController mDragAndDropController;
    private final ShellTaskOrganizer mShellTaskOrganizer;
    private final ShellTaskOrganizer mShellTaskOrganizer;
    private final Optional<LegacySplitScreen> mLegacySplitScreenOptional;
    private final Optional<LegacySplitScreenController> mLegacySplitScreenOptional;
    private final Optional<SplitScreenController> mSplitScreenOptional;
    private final Optional<SplitScreenController> mSplitScreenOptional;
    private final Optional<AppPairs> mAppPairsOptional;
    private final Optional<AppPairsController> mAppPairsOptional;
    private final FullscreenTaskListener mFullscreenTaskListener;
    private final FullscreenTaskListener mFullscreenTaskListener;
    private final ShellExecutor mMainExecutor;
    private final ShellExecutor mMainExecutor;
    private final Transitions mTransitions;
    private final Transitions mTransitions;
@@ -51,9 +50,9 @@ public class ShellInitImpl {
    public static ShellInit create(DisplayImeController displayImeController,
    public static ShellInit create(DisplayImeController displayImeController,
            DragAndDropController dragAndDropController,
            DragAndDropController dragAndDropController,
            ShellTaskOrganizer shellTaskOrganizer,
            ShellTaskOrganizer shellTaskOrganizer,
            Optional<LegacySplitScreen> legacySplitScreenOptional,
            Optional<LegacySplitScreenController> legacySplitScreenOptional,
            Optional<SplitScreenController> splitScreenOptional,
            Optional<SplitScreenController> splitScreenOptional,
            Optional<AppPairs> appPairsOptional,
            Optional<AppPairsController> appPairsOptional,
            FullscreenTaskListener fullscreenTaskListener,
            FullscreenTaskListener fullscreenTaskListener,
            Transitions transitions,
            Transitions transitions,
            ShellExecutor mainExecutor) {
            ShellExecutor mainExecutor) {
@@ -71,9 +70,9 @@ public class ShellInitImpl {
    private ShellInitImpl(DisplayImeController displayImeController,
    private ShellInitImpl(DisplayImeController displayImeController,
            DragAndDropController dragAndDropController,
            DragAndDropController dragAndDropController,
            ShellTaskOrganizer shellTaskOrganizer,
            ShellTaskOrganizer shellTaskOrganizer,
            Optional<LegacySplitScreen> legacySplitScreenOptional,
            Optional<LegacySplitScreenController> legacySplitScreenOptional,
            Optional<SplitScreenController> splitScreenOptional,
            Optional<SplitScreenController> splitScreenOptional,
            Optional<AppPairs> appPairsOptional,
            Optional<AppPairsController> appPairsOptional,
            FullscreenTaskListener fullscreenTaskListener,
            FullscreenTaskListener fullscreenTaskListener,
            Transitions transitions,
            Transitions transitions,
            ShellExecutor mainExecutor) {
            ShellExecutor mainExecutor) {
@@ -97,7 +96,7 @@ public class ShellInitImpl {
        // Register the shell organizer
        // Register the shell organizer
        mShellTaskOrganizer.registerOrganizer();
        mShellTaskOrganizer.registerOrganizer();


        mAppPairsOptional.ifPresent(AppPairs::onOrganizerRegistered);
        mAppPairsOptional.ifPresent(AppPairsController::onOrganizerRegistered);
        mSplitScreenOptional.ifPresent(SplitScreenController::onOrganizerRegistered);
        mSplitScreenOptional.ifPresent(SplitScreenController::onOrganizerRegistered);


        // Bind the splitscreen impl to the drag drop controller
        // Bind the splitscreen impl to the drag drop controller
+6 −6
Original line number Original line Diff line number Diff line
@@ -44,7 +44,7 @@ import androidx.annotation.Nullable;
import com.android.internal.annotations.VisibleForTesting;
import com.android.internal.annotations.VisibleForTesting;
import com.android.internal.protolog.common.ProtoLog;
import com.android.internal.protolog.common.ProtoLog;
import com.android.wm.shell.common.ShellExecutor;
import com.android.wm.shell.common.ShellExecutor;
import com.android.wm.shell.sizecompatui.SizeCompatUI;
import com.android.wm.shell.sizecompatui.SizeCompatUIController;
import com.android.wm.shell.startingsurface.StartingSurfaceDrawer;
import com.android.wm.shell.startingsurface.StartingSurfaceDrawer;


import java.io.PrintWriter;
import java.io.PrintWriter;
@@ -108,20 +108,20 @@ public class ShellTaskOrganizer extends TaskOrganizer {
     * compat.
     * compat.
     */
     */
    @Nullable
    @Nullable
    private final SizeCompatUI mSizeCompatUI;
    private final SizeCompatUIController mSizeCompatUI;


    public ShellTaskOrganizer(ShellExecutor mainExecutor, Context context) {
    public ShellTaskOrganizer(ShellExecutor mainExecutor, Context context) {
        this(null /* taskOrganizerController */, mainExecutor, context, null /* sizeCompatUI */);
        this(null /* taskOrganizerController */, mainExecutor, context, null /* sizeCompatUI */);
    }
    }


    public ShellTaskOrganizer(ShellExecutor mainExecutor, Context context, @Nullable
    public ShellTaskOrganizer(ShellExecutor mainExecutor, Context context, @Nullable
            SizeCompatUI sizeCompatUI) {
            SizeCompatUIController sizeCompatUI) {
        this(null /* taskOrganizerController */, mainExecutor, context, sizeCompatUI);
        this(null /* taskOrganizerController */, mainExecutor, context, sizeCompatUI);
    }
    }


    @VisibleForTesting
    @VisibleForTesting
    ShellTaskOrganizer(ITaskOrganizerController taskOrganizerController, ShellExecutor mainExecutor,
    ShellTaskOrganizer(ITaskOrganizerController taskOrganizerController, ShellExecutor mainExecutor,
            Context context, @Nullable SizeCompatUI sizeCompatUI) {
            Context context, @Nullable SizeCompatUIController sizeCompatUI) {
        super(taskOrganizerController, mainExecutor);
        super(taskOrganizerController, mainExecutor);
        // TODO(b/131727939) temporarily live here, the starting surface drawer should be controlled
        // TODO(b/131727939) temporarily live here, the starting surface drawer should be controlled
        //  by a controller, that class should be create while porting
        //  by a controller, that class should be create while porting
@@ -342,8 +342,8 @@ public class ShellTaskOrganizer extends TaskOrganizer {
    }
    }


    /**
    /**
     * Notifies {@link SizeCompatUI} about the size compat info changed on the give Task to update
     * Notifies {@link SizeCompatUIController} about the size compat info changed on the give Task
     * the UI accordingly.
     * to update the UI accordingly.
     *
     *
     * @param taskInfo the new Task info
     * @param taskInfo the new Task info
     * @param taskListener listener to handle the Task Surface placement. {@code null} if task is
     * @param taskListener listener to handle the Task Surface placement. {@code null} if task is
+5 −5
Original line number Original line Diff line number Diff line
@@ -30,6 +30,7 @@ import java.util.function.Consumer;
public class TaskViewFactoryController {
public class TaskViewFactoryController {
    private final ShellTaskOrganizer mTaskOrganizer;
    private final ShellTaskOrganizer mTaskOrganizer;
    private final ShellExecutor mShellExecutor;
    private final ShellExecutor mShellExecutor;
    private final TaskViewFactory mImpl = new TaskViewFactoryImpl();


    public TaskViewFactoryController(ShellTaskOrganizer taskOrganizer,
    public TaskViewFactoryController(ShellTaskOrganizer taskOrganizer,
            ShellExecutor shellExecutor) {
            ShellExecutor shellExecutor) {
@@ -37,8 +38,11 @@ public class TaskViewFactoryController {
        mShellExecutor = shellExecutor;
        mShellExecutor = shellExecutor;
    }
    }


    public TaskViewFactory asTaskViewFactory() {
        return mImpl;
    }

    /** Creates an {@link TaskView} */
    /** Creates an {@link TaskView} */
    @ShellMainThread
    public void create(@UiContext Context context, Executor executor, Consumer<TaskView> onCreate) {
    public void create(@UiContext Context context, Executor executor, Consumer<TaskView> onCreate) {
        TaskView taskView = new TaskView(context, mTaskOrganizer);
        TaskView taskView = new TaskView(context, mTaskOrganizer);
        executor.execute(() -> {
        executor.execute(() -> {
@@ -46,10 +50,6 @@ public class TaskViewFactoryController {
        });
        });
    }
    }


    public TaskViewFactory getTaskViewFactory() {
        return new TaskViewFactoryImpl();
    }

    private class TaskViewFactoryImpl implements TaskViewFactory {
    private class TaskViewFactoryImpl implements TaskViewFactory {
        @ExternalThread
        @ExternalThread
        public void create(@UiContext Context context,
        public void create(@UiContext Context context,
Loading