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

Commit 5229d159 authored by Gaurav Bhola's avatar Gaurav Bhola Committed by Automerger Merge Worker
Browse files

Merge "Add the insets visibilities requested by the focussed window in...

Merge "Add the insets visibilities requested by the focussed window in topFocussedWindowChanged() api." into tm-dev am: be5abebe am: 4d3571a2

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



Change-Id: I4aeac68f8385bd2cf58143e01e9d522024486521
Signed-off-by: default avatarAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
parents 8fca2cd9 4d3571a2
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -18,6 +18,7 @@ package android.view;

import android.view.InsetsSourceControl;
import android.view.InsetsState;
import android.view.InsetsVisibilities;

/**
 * Singular controller of insets to use when there isn't another obvious controller available.
@@ -30,8 +31,9 @@ oneway interface IDisplayWindowInsetsController {
     * Called when top focused window changes to determine whether or not to take over insets
     * control. Won't be called if config_remoteInsetsControllerControlsSystemBars is false.
     * @param packageName: Passes the top package name
     * @param requestedVisibilities The insets visibilities requested by the focussed window.
     */
    void topFocusedWindowChanged(String packageName);
    void topFocusedWindowChanged(String packageName, in InsetsVisibilities insetsVisibilities);

    /**
     * @see IWindow#insetsChanged
+2 −2
Original line number Diff line number Diff line
@@ -40,7 +40,6 @@ import android.view.WindowInsets;
import android.view.animation.Interpolator;
import android.view.animation.PathInterpolator;

import androidx.annotation.BinderThread;
import androidx.annotation.VisibleForTesting;

import com.android.internal.view.IInputMethodManager;
@@ -325,7 +324,8 @@ public class DisplayImeController implements DisplayController.OnDisplaysChanged
        }

        @Override
        public void topFocusedWindowChanged(String packageName) {
        public void topFocusedWindowChanged(String packageName,
                InsetsVisibilities requestedVisibilities) {
            // Do nothing
        }

+11 −6
Original line number Diff line number Diff line
@@ -23,6 +23,7 @@ import android.view.IDisplayWindowInsetsController;
import android.view.IWindowManager;
import android.view.InsetsSourceControl;
import android.view.InsetsState;
import android.view.InsetsVisibilities;

import androidx.annotation.BinderThread;

@@ -170,13 +171,14 @@ public class DisplayInsetsController implements DisplayController.OnDisplaysChan
            }
        }

        private void topFocusedWindowChanged(String packageName) {
        private void topFocusedWindowChanged(String packageName,
                InsetsVisibilities requestedVisibilities) {
            CopyOnWriteArrayList<OnInsetsChangedListener> listeners = mListeners.get(mDisplayId);
            if (listeners == null) {
                return;
            }
            for (OnInsetsChangedListener listener : listeners) {
                listener.topFocusedWindowChanged(packageName);
                listener.topFocusedWindowChanged(packageName, requestedVisibilities);
            }
        }

@@ -184,9 +186,10 @@ public class DisplayInsetsController implements DisplayController.OnDisplaysChan
        private class DisplayWindowInsetsControllerImpl
                extends IDisplayWindowInsetsController.Stub {
            @Override
            public void topFocusedWindowChanged(String packageName) throws RemoteException {
            public void topFocusedWindowChanged(String packageName,
                    InsetsVisibilities requestedVisibilities) throws RemoteException {
                mMainExecutor.execute(() -> {
                    PerDisplay.this.topFocusedWindowChanged(packageName);
                    PerDisplay.this.topFocusedWindowChanged(packageName, requestedVisibilities);
                });
            }

@@ -231,9 +234,11 @@ public class DisplayInsetsController implements DisplayController.OnDisplaysChan
        /**
         * Called when top focused window changes to determine whether or not to take over insets
         * control. Won't be called if config_remoteInsetsControllerControlsSystemBars is false.
         * @param packageName: Passes the top package name
         * @param packageName The name of the package that is open in the top focussed window.
         * @param requestedVisibilities The insets visibilities requested by the focussed window.
         */
        default void topFocusedWindowChanged(String packageName) {}
        default void topFocusedWindowChanged(String packageName,
                InsetsVisibilities requestedVisibilities) {}

        /**
         * Called when the window insets configuration has changed.
+7 −7
Original line number Diff line number Diff line
@@ -19,11 +19,8 @@ package com.android.wm.shell.common;
import static android.view.Display.DEFAULT_DISPLAY;

import static org.junit.Assert.assertTrue;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.ArgumentMatchers.notNull;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;

@@ -33,6 +30,7 @@ import android.view.IDisplayWindowInsetsController;
import android.view.IWindowManager;
import android.view.InsetsSourceControl;
import android.view.InsetsState;
import android.view.InsetsVisibilities;

import androidx.test.filters.SmallTest;

@@ -42,7 +40,6 @@ import org.junit.Before;
import org.junit.Test;
import org.mockito.ArgumentCaptor;
import org.mockito.Mock;
import org.mockito.Mockito;
import org.mockito.MockitoAnnotations;

import java.util.List;
@@ -99,7 +96,8 @@ public class DisplayInsetsControllerTest {
        mController.addInsetsChangedListener(DEFAULT_DISPLAY, defaultListener);
        mController.addInsetsChangedListener(SECOND_DISPLAY, secondListener);

        mInsetsControllersByDisplayId.get(DEFAULT_DISPLAY).topFocusedWindowChanged(null);
        mInsetsControllersByDisplayId.get(DEFAULT_DISPLAY).topFocusedWindowChanged(null,
                new InsetsVisibilities());
        mInsetsControllersByDisplayId.get(DEFAULT_DISPLAY).insetsChanged(null);
        mInsetsControllersByDisplayId.get(DEFAULT_DISPLAY).insetsControlChanged(null, null);
        mInsetsControllersByDisplayId.get(DEFAULT_DISPLAY).showInsets(0, false);
@@ -118,7 +116,8 @@ public class DisplayInsetsControllerTest {
        assertTrue(secondListener.showInsetsCount == 0);
        assertTrue(secondListener.hideInsetsCount == 0);

        mInsetsControllersByDisplayId.get(SECOND_DISPLAY).topFocusedWindowChanged(null);
        mInsetsControllersByDisplayId.get(SECOND_DISPLAY).topFocusedWindowChanged(null,
                new InsetsVisibilities());
        mInsetsControllersByDisplayId.get(SECOND_DISPLAY).insetsChanged(null);
        mInsetsControllersByDisplayId.get(SECOND_DISPLAY).insetsControlChanged(null, null);
        mInsetsControllersByDisplayId.get(SECOND_DISPLAY).showInsets(0, false);
@@ -165,7 +164,8 @@ public class DisplayInsetsControllerTest {
        int hideInsetsCount = 0;

        @Override
        public void topFocusedWindowChanged(String packageName) {
        public void topFocusedWindowChanged(String packageName,
                InsetsVisibilities requestedVisibilities) {
            topFocusedWindowChangedCount++;
        }

+3 −2
Original line number Diff line number Diff line
@@ -6369,10 +6369,11 @@ class DisplayContent extends RootDisplayArea implements WindowManagerPolicy.Disp
         * Notifies the remote insets controller that the top focused window has changed.
         *
         * @param packageName The name of the package that is open in the top focused window.
         * @param requestedVisibilities The insets visibilities requested by the focussed window.
         */
        void topFocusedWindowChanged(String packageName) {
        void topFocusedWindowChanged(String packageName, InsetsVisibilities requestedVisibilities) {
            try {
                mRemoteInsetsController.topFocusedWindowChanged(packageName);
                mRemoteInsetsController.topFocusedWindowChanged(packageName, requestedVisibilities);
            } catch (RemoteException e) {
                Slog.w(TAG, "Failed to deliver package in top focused window change", e);
            }
Loading