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

Commit 3b618a98 authored by Cosmin Băieș's avatar Cosmin Băieș Committed by Android (Google) Code Review
Browse files

Merge "Cleanup IME layering/input/control target fields" into main

parents c1b160f0 b514cba8
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -4476,7 +4476,7 @@ package android.window {
    method @Nullable @RequiresPermission(android.Manifest.permission.MANAGE_ACTIVITY_TASKS) public void createRootTask(int, int, @Nullable android.os.IBinder);
    method @RequiresPermission(android.Manifest.permission.MANAGE_ACTIVITY_TASKS) public boolean deleteRootTask(@NonNull android.window.WindowContainerToken);
    method @Nullable @RequiresPermission(android.Manifest.permission.MANAGE_ACTIVITY_TASKS) public java.util.List<android.app.ActivityManager.RunningTaskInfo> getChildTasks(@NonNull android.window.WindowContainerToken, @NonNull int[]);
    method @Nullable @RequiresPermission(android.Manifest.permission.MANAGE_ACTIVITY_TASKS) public android.window.WindowContainerToken getImeTarget(int);
    method @Nullable @RequiresPermission(android.Manifest.permission.MANAGE_ACTIVITY_TASKS) public android.window.WindowContainerToken getImeLayeringTarget(int);
    method @Nullable @RequiresPermission(android.Manifest.permission.MANAGE_ACTIVITY_TASKS) public java.util.List<android.app.ActivityManager.RunningTaskInfo> getRootTasks(int, @NonNull int[]);
    method @BinderThread public void onAppSplashScreenViewRemoved(int);
    method @BinderThread public void onBackPressedOnTaskRoot(@NonNull android.app.ActivityManager.RunningTaskInfo);
+2 −0
Original line number Diff line number Diff line
@@ -2223,6 +2223,8 @@ UnflaggedApi: android.view.inputmethod.InputMethodManager#isStylusHandwritingAva
    New API must be flagged with @FlaggedApi: method android.view.inputmethod.InputMethodManager.isStylusHandwritingAvailableAsUser(android.os.UserHandle)
UnflaggedApi: android.view.inputmethod.InsertModeGesture:
    New API must be flagged with @FlaggedApi: class android.view.inputmethod.InsertModeGesture
UnflaggedApi: android.window.TaskOrganizer#getImeLayeringTarget(int):
    New API must be flagged with @FlaggedApi: method android.window.TaskOrganizer.getImeLayeringTarget(int)
UnflaggedApi: android.window.WindowInfosListenerForTest.WindowInfo#displayId:
    New API must be flagged with @FlaggedApi: field android.window.WindowInfosListenerForTest.WindowInfo.displayId
UnflaggedApi: android.window.WindowInfosListenerForTest.WindowInfo#isVisible:
+5 −2
Original line number Diff line number Diff line
@@ -58,8 +58,11 @@ interface ITaskOrganizerController {
    /** Gets all root tasks on a display (ordered from top-to-bottom) */
    List<ActivityManager.RunningTaskInfo> getRootTasks(int displayId, in int[] activityTypes);

    /** Get the {@link WindowContainerToken} of the task which contains the current ime target */
    WindowContainerToken getImeTarget(int display);
    /**
     * Get the {@link WindowContainerToken} of the task which contains the current IME layering
     * target
     */
    @nullable WindowContainerToken getImeLayeringTarget(int display);

    /**
     * Requests that the given task organizer is notified when back is pressed on the root activity
+8 −3
Original line number Diff line number Diff line
@@ -211,12 +211,17 @@ public class TaskOrganizer extends WindowOrganizer {
        }
    }

    /** Get the {@link WindowContainerToken} of the task which contains the current ime target */
    /**
     * Get the {@link WindowContainerToken} of the task which contains the current IME layering
     * target.
     *
     * @param displayId the ID of the display to get the IME layering target for.
     */
    @RequiresPermission(android.Manifest.permission.MANAGE_ACTIVITY_TASKS)
    @Nullable
    public WindowContainerToken getImeTarget(int display) {
    public WindowContainerToken getImeLayeringTarget(int displayId) {
        try {
            return mTaskOrganizerController.getImeTarget(display);
            return mTaskOrganizerController.getImeLayeringTarget(displayId);
        } catch (RemoteException e) {
            throw e.rethrowFromSystemServer();
        }
+7 −7
Original line number Diff line number Diff line
@@ -1440,8 +1440,8 @@ public final class SplitLayout implements DisplayInsetsController.OnInsetsChange
                return 0;
            }

            final int imeTargetPosition = getImeTargetPosition();
            mHasImeFocus = imeTargetPosition != SPLIT_POSITION_UNDEFINED;
            final int imeLayeringTargetPosition = getImeLayeringTargetPosition();
            mHasImeFocus = imeLayeringTargetPosition != SPLIT_POSITION_UNDEFINED;
            if (!mHasImeFocus) {
                if (!android.view.inputmethod.Flags.refactorInsetsController() || showing) {
                    return 0;
@@ -1454,15 +1454,15 @@ public final class SplitLayout implements DisplayInsetsController.OnInsetsChange

            // Update target dim values
            mLastDim1 = mDimValue1;
            mTargetDim1 = imeTargetPosition == SPLIT_POSITION_BOTTOM_OR_RIGHT && mImeShown
            mTargetDim1 = imeLayeringTargetPosition == SPLIT_POSITION_BOTTOM_OR_RIGHT && mImeShown
                    && mDimNonImeSide ? ADJUSTED_NONFOCUS_DIM : 0.0f;
            mLastDim2 = mDimValue2;
            mTargetDim2 = imeTargetPosition == SPLIT_POSITION_TOP_OR_LEFT && mImeShown
            mTargetDim2 = imeLayeringTargetPosition == SPLIT_POSITION_TOP_OR_LEFT && mImeShown
                    && mDimNonImeSide ? ADJUSTED_NONFOCUS_DIM : 0.0f;

            // Calculate target bounds offset for IME
            mLastYOffset = mYOffsetForIme;
            final boolean needOffset = imeTargetPosition == SPLIT_POSITION_BOTTOM_OR_RIGHT
            final boolean needOffset = imeLayeringTargetPosition == SPLIT_POSITION_BOTTOM_OR_RIGHT
                    && !isFloating && !mIsLeftRightSplit && mImeShown;
            mTargetYOffset = needOffset ? getTargetYOffset() : 0;

@@ -1565,8 +1565,8 @@ public final class SplitLayout implements DisplayInsetsController.OnInsetsChange
        }

        @SplitPosition
        private int getImeTargetPosition() {
            final WindowContainerToken token = mTaskOrganizer.getImeTarget(mDisplayId);
        private int getImeLayeringTargetPosition() {
            final WindowContainerToken token = mTaskOrganizer.getImeLayeringTarget(mDisplayId);
            return mSplitLayoutHandler.getSplitItemPosition(token);
        }

Loading