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

Commit acb9fe02 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Migrate wm package in sysui to WM shell lib (4/n)"

parents 3805b471 c7ab3115
Loading
Loading
Loading
Loading
+29 −1
Original line number Diff line number Diff line
@@ -68,12 +68,15 @@ public class DisplayImeController implements DisplayController.OnDisplaysChanged
    private final SparseArray<PerDisplay> mImePerDisplay = new SparseArray<>();
    private final ArrayList<ImePositionProcessor> mPositionProcessors = new ArrayList<>();

    public DisplayImeController(IWindowManager wmService, DisplayController displayController,
    protected DisplayImeController(IWindowManager wmService, DisplayController displayController,
            Handler mainHandler, TransactionPool transactionPool) {
        mHandler = mainHandler;
        mWmService = wmService;
        mTransactionPool = transactionPool;
        mDisplayController = displayController;
    }

    protected void startMonitorDisplays() {
        mDisplayController.addDisplayWindowListener(this);
    }

@@ -490,4 +493,29 @@ public class DisplayImeController implements DisplayController.OnDisplaysChanged
        return IInputMethodManager.Stub.asInterface(
                ServiceManager.getService(Context.INPUT_METHOD_SERVICE));
    }

    /** Builds {@link DisplayImeController} instance. */
    public static class Builder {
        private IWindowManager mWmService;
        private DisplayController mDisplayController;
        private Handler mHandler;
        private TransactionPool mTransactionPool;

        public Builder(IWindowManager wmService, DisplayController displayController,
                Handler handler, TransactionPool transactionPool) {
            mWmService = wmService;
            mDisplayController = displayController;
            mHandler = handler;
            mTransactionPool = transactionPool;
        }

        /** Builds and initializes {@link DisplayImeController} instance. */
        public DisplayImeController build() {
            DisplayImeController displayImeController = new DisplayImeController(mWmService,
                    mDisplayController, mHandler, mTransactionPool);
            // Separates startMonitorDisplays from constructor to prevent circular init issue.
            displayImeController.startMonitorDisplays();
            return displayImeController;
        }
    }
}
+7 −3
Original line number Diff line number Diff line
@@ -134,9 +134,13 @@ public abstract class CarSystemUIModule {
    }

    @Singleton
    @Binds
    abstract DisplayImeController bindDisplayImeController(
            DisplaySystemBarsController displaySystemBarsController);
    @Provides
    static DisplayImeController provideDisplayImeController(Context context,
            IWindowManager wmService, DisplayController displayController,
            @Main Handler mainHandler, TransactionPool transactionPool) {
        return new DisplaySystemBarsController.Builder(context, wmService, displayController,
                mainHandler, transactionPool).build();
    }

    @Binds
    abstract HeadsUpManager bindHeadsUpManagerPhone(HeadsUpManagerPhone headsUpManagerPhone);
+31 −7
Original line number Diff line number Diff line
@@ -36,25 +36,20 @@ import com.android.wm.shell.common.DisplayController;
import com.android.wm.shell.common.DisplayImeController;
import com.android.wm.shell.common.TransactionPool;

import javax.inject.Inject;
import javax.inject.Singleton;

/**
 * Controller that maps between displays and {@link IDisplayWindowInsetsController} in order to
 * give system bar control to SystemUI.
 * {@link R.bool#config_remoteInsetsControllerControlsSystemBars} determines whether this controller
 * takes control or not.
 */
@Singleton
public class DisplaySystemBarsController extends DisplayImeController {

    private static final String TAG = "DisplaySystemBarsController";

    private SparseArray<PerDisplay> mPerDisplaySparseArray;
    private final Context mContext;
    private SparseArray<PerDisplay> mPerDisplaySparseArray;

    @Inject
    public DisplaySystemBarsController(
    private DisplaySystemBarsController(
            Context context,
            IWindowManager wmService,
            DisplayController displayController,
@@ -172,4 +167,33 @@ public class DisplaySystemBarsController extends DisplayImeController {
            }
        }
    }

    /** Builds {@link DisplaySystemBarsController} instance. */
    public static class Builder {
        private Context mContext;
        private IWindowManager mWmService;
        private DisplayController mDisplayController;
        private Handler mHandler;
        private TransactionPool mTransactionPool;

        public Builder(Context context, IWindowManager wmService,
                DisplayController displayController, Handler handler,
                TransactionPool transactionPool) {
            mContext = context;
            mWmService = wmService;
            mDisplayController = displayController;
            mHandler = handler;
            mTransactionPool = transactionPool;
        }

        /** Builds and initializes {@link DisplaySystemBarsController} instance. */
        public DisplaySystemBarsController build() {
            DisplaySystemBarsController displaySystemBarsController =
                    new DisplaySystemBarsController(
                            mContext, mWmService, mDisplayController, mHandler, mTransactionPool);
            // Separates startMonitorDisplays from constructor to prevent circular init issue.
            displaySystemBarsController.startMonitorDisplays();
            return displaySystemBarsController;
        }
    }
}
+5 −4
Original line number Diff line number Diff line
@@ -59,9 +59,10 @@ public class WindowManagerShellModule {

    @Singleton
    @Provides
    static DisplayImeController provideDisplayImeController(
            IWindowManager wmService, DisplayController displayController,
            @Main Handler mainHandler, TransactionPool transactionPool) {
        return new DisplayImeController(wmService, displayController, mainHandler, transactionPool);
    static DisplayImeController provideDisplayImeController(IWindowManager wmService,
            DisplayController displayController, @Main Handler mainHandler,
            TransactionPool transactionPool) {
        return new DisplayImeController.Builder(wmService, displayController, mainHandler,
                transactionPool).build();
    }
}