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

Commit 902a6683 authored by Alex Stetson's avatar Alex Stetson Committed by Android (Google) Code Review
Browse files

Merge "Update API to only modify specified inset types" into main

parents 65d4343f 1af65ef7
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -766,7 +766,7 @@ interface IWindowManager
     * container.
     */
    @EnforcePermission("MANAGE_APP_TOKENS")
    void updateDisplayWindowRequestedVisibleTypes(int displayId, int requestedVisibleTypes,
    void updateDisplayWindowRequestedVisibleTypes(int displayId, int visibleTypes, int mask,
            in @nullable ImeTracker.Token statsToken);

    /**
+2 −5
Original line number Diff line number Diff line
@@ -228,7 +228,6 @@ public class DisplayImeController implements DisplayController.OnDisplaysChanged
    public class PerDisplay implements DisplayInsetsController.OnInsetsChangedListener {
        final int mDisplayId;
        final InsetsState mInsetsState = new InsetsState();
        @InsetsType int mRequestedVisibleTypes = WindowInsets.Type.defaultVisible();
        boolean mImeRequestedVisible =
                (WindowInsets.Type.defaultVisible() & WindowInsets.Type.ime()) != 0;
        InsetsSourceControl mImeSourceControl = null;
@@ -426,12 +425,10 @@ public class DisplayImeController implements DisplayController.OnDisplaysChanged
         */
        private void setVisibleDirectly(boolean visible, @Nullable ImeTracker.Token statsToken) {
            mInsetsState.setSourceVisible(InsetsSource.ID_IME, visible);
            mRequestedVisibleTypes = visible
                    ? mRequestedVisibleTypes | WindowInsets.Type.ime()
                    : mRequestedVisibleTypes & ~WindowInsets.Type.ime();
            int visibleTypes = visible ? WindowInsets.Type.ime() : 0;
            try {
                mWmService.updateDisplayWindowRequestedVisibleTypes(mDisplayId,
                        mRequestedVisibleTypes, statsToken);
                        visibleTypes, WindowInsets.Type.ime(), statsToken);
            } catch (RemoteException e) {
            }
        }
+5 −3
Original line number Diff line number Diff line
@@ -7113,9 +7113,11 @@ class DisplayContent extends RootDisplayArea implements WindowManagerPolicy.Disp
        /**
         * @see #getRequestedVisibleTypes()
         */
        void setRequestedVisibleTypes(@InsetsType int requestedVisibleTypes) {
            if (mRequestedVisibleTypes != requestedVisibleTypes) {
                mRequestedVisibleTypes = requestedVisibleTypes;
        void updateRequestedVisibleTypes(@InsetsType int visibleTypes, @InsetsType int mask) {
            int newRequestedVisibleTypes =
                    (mRequestedVisibleTypes & ~mask) | (visibleTypes & mask);
            if (mRequestedVisibleTypes != newRequestedVisibleTypes) {
                mRequestedVisibleTypes = newRequestedVisibleTypes;
            }
        }
    }
+3 −2
Original line number Diff line number Diff line
@@ -4671,7 +4671,8 @@ public class WindowManagerService extends IWindowManager.Stub
    @EnforcePermission(android.Manifest.permission.MANAGE_APP_TOKENS)
    @Override
    public void updateDisplayWindowRequestedVisibleTypes(int displayId,
            @InsetsType int requestedVisibleTypes, @Nullable ImeTracker.Token statsToken) {
            @InsetsType int visibleTypes, @InsetsType int mask,
            @Nullable ImeTracker.Token statsToken) {
        updateDisplayWindowRequestedVisibleTypes_enforcePermission();
        final long origId = Binder.clearCallingIdentity();
        try {
@@ -4684,7 +4685,7 @@ public class WindowManagerService extends IWindowManager.Stub
                }
                ImeTracker.forLogging().onProgress(statsToken,
                        ImeTracker.PHASE_WM_UPDATE_DISPLAY_WINDOW_REQUESTED_VISIBLE_TYPES);
                dc.mRemoteInsetsControlTarget.setRequestedVisibleTypes(requestedVisibleTypes);
                dc.mRemoteInsetsControlTarget.updateRequestedVisibleTypes(visibleTypes, mask);
                // TODO(b/353463205) the statsToken shouldn't be null as it is used later in the
                //  IME provider. Check if we have to create a new request here, if null.
                dc.getInsetsStateController().onRequestedVisibleTypesChanged(