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

Commit 6f81ff67 authored by Filip Gruszczynski's avatar Filip Gruszczynski Committed by Android (Google) Code Review
Browse files

Merge "Improve visibility and layering of dock divider."

parents 5482018a e95b0aef
Loading
Loading
Loading
Loading
+19 −19
Original line number Diff line number Diff line
@@ -2105,6 +2105,8 @@ public class PhoneWindowManager implements WindowManagerPolicy {
        case TYPE_WALLPAPER:
            // wallpaper is at the bottom, though the window manager may move it.
            return 2;
        case TYPE_DOCK_DIVIDER:
            return 2;
        case TYPE_PHONE:
            return 3;
        case TYPE_SEARCH_BAR:
@@ -2135,56 +2137,54 @@ public class PhoneWindowManager implements WindowManagerPolicy {
        case TYPE_INPUT_METHOD_DIALOG:
            // on-screen keyboards and other such input method user interfaces go here.
            return 13;
        case TYPE_DOCK_DIVIDER:
            return 14;
        case TYPE_KEYGUARD_SCRIM:
            // the safety window that shows behind keyguard while keyguard is starting
            return 15;
            return 14;
        case TYPE_STATUS_BAR_SUB_PANEL:
            return 16;
            return 15;
        case TYPE_STATUS_BAR:
            return 17;
            return 16;
        case TYPE_STATUS_BAR_PANEL:
            return 18;
            return 17;
        case TYPE_KEYGUARD_DIALOG:
            return 19;
            return 18;
        case TYPE_VOLUME_OVERLAY:
            // the on-screen volume indicator and controller shown when the user
            // changes the device volume
            return 20;
            return 19;
        case TYPE_SYSTEM_OVERLAY:
            // the on-screen volume indicator and controller shown when the user
            // changes the device volume
            return 21;
            return 20;
        case TYPE_NAVIGATION_BAR:
            // the navigation bar, if available, shows atop most things
            return 22;
            return 21;
        case TYPE_NAVIGATION_BAR_PANEL:
            // some panels (e.g. search) need to show on top of the navigation bar
            return 23;
            return 22;
        case TYPE_SYSTEM_ERROR:
            // system-level error dialogs
            return 24;
            return 23;
        case TYPE_MAGNIFICATION_OVERLAY:
            // used to highlight the magnified portion of a display
            return 25;
            return 24;
        case TYPE_DISPLAY_OVERLAY:
            // used to simulate secondary display devices
            return 26;
            return 25;
        case TYPE_DRAG:
            // the drag layer: input for drag-and-drop is associated with this window,
            // which sits above all other focusable windows
            return 27;
            return 26;
        case TYPE_ACCESSIBILITY_OVERLAY:
            // overlay put by accessibility services to intercept user interaction
            return 28;
            return 27;
        case TYPE_SECURE_SYSTEM_OVERLAY:
            return 29;
            return 28;
        case TYPE_BOOT_PROGRESS:
            return 30;
            return 29;
        case TYPE_POINTER:
            // the (mouse) pointer layer
            return 31;
            return 30;
        }
        Log.e(TAG, "Unknown window type: " + type);
        return 2;
+1 −0
Original line number Diff line number Diff line
@@ -1032,6 +1032,7 @@ public class AppTransition implements Dump {
                0, top - containingFrame.top, 0);
        set.addAnimation(translate);
        set.setDuration(DEFAULT_APP_TRANSITION_DURATION);
        set.setZAdjustment(Animation.ZORDER_TOP);
        return set;
    }

+8 −10
Original line number Diff line number Diff line
@@ -222,6 +222,7 @@ public class WindowManagerService extends IWindowManager.Stub
    static final boolean HIDE_STACK_CRAWLS = true;
    static final int LAYOUT_REPEAT_THRESHOLD = 4;


    static final boolean PROFILE_ORIENTATION = false;
    static final boolean localLOGV = DEBUG;

@@ -4399,7 +4400,6 @@ public class WindowManagerService extends IWindowManager.Stub
        mInputMonitor.setUpdateInputWindowsNeededLw();
        mWindowPlacerLocked.performSurfacePlacement();
        mInputMonitor.updateInputWindowsLw(false /*force*/);

        //dump();
    }

@@ -4484,10 +4484,6 @@ public class WindowManagerService extends IWindowManager.Stub
                    }
                    stack.attachDisplayContent(displayContent);
                    displayContent.attachStack(stack, onTop);
                    if (stack.mStackId == DOCKED_STACK_ID) {
                        mH.obtainMessage(H.UPDATE_DOCKED_STACK_DIVIDER,
                                displayContent).sendToTarget();
                    }
                    moveStackWindowsLocked(displayContent);
                    final WindowList windows = displayContent.getWindowList();
                    for (int winNdx = windows.size() - 1; winNdx >= 0; --winNdx) {
@@ -4510,11 +4506,6 @@ public class WindowManagerService extends IWindowManager.Stub
    void detachStackLocked(DisplayContent displayContent, TaskStack stack) {
        displayContent.detachStack(stack);
        stack.detachDisplay();
        // We can't directly remove the divider, because only the WM thread can do these operations
        // and we can be on AM thread.
        if (stack.mStackId == DOCKED_STACK_ID) {
            mH.obtainMessage(H.UPDATE_DOCKED_STACK_DIVIDER, displayContent).sendToTarget();
        }
    }

    public void detachStack(int stackId) {
@@ -8346,6 +8337,13 @@ public class WindowManagerService extends IWindowManager.Stub
            } else if (wtoken != null) {
                winAnimator.mAnimLayer =
                        w.mLayer + wtoken.mAppAnimator.animLayerAdjustment;
                if (wtoken.mReplacingWindow && wtoken.mAnimateReplacingWindow) {
                    // We know that we will be animating a relaunching window in the near future,
                    // which will receive a z-order increase. We want the replaced window to
                    // immediately receive the same treatment, e.g. to be above the dock divider.
                    w.mLayer += TYPE_LAYER_OFFSET;
                    winAnimator.mAnimLayer += TYPE_LAYER_OFFSET;
                }
            } else {
                winAnimator.mAnimLayer = w.mLayer;
            }
+5 −1
Original line number Diff line number Diff line
@@ -1405,7 +1405,11 @@ class WindowStateAnimator {

    private void adjustCropToStackBounds(WindowState w, Rect clipRect) {
        final AppWindowToken appToken = w.mAppToken;
        if (appToken != null && appToken.mCropWindowsToStack) {
        // We don't apply the the stack bounds to the window that is being replaced, because it was
        // living in a different stack. If we suddenly crop it to the new stack bounds, it might
        // get cut off. We don't want it to happen, so we let it ignore the stack bounds until it
        // gets removed. The window that will replace it will abide them.
        if (appToken != null && appToken.mCropWindowsToStack && !appToken.mReplacingWindow) {
            TaskStack stack = w.getTask().mStack;
            stack.getBounds(mTmpStackBounds);
            final int surfaceX = (int) mSurfaceX;
+1 −0
Original line number Diff line number Diff line
@@ -967,6 +967,7 @@ class WindowSurfacePlacer {
        }

        mService.mPolicy.finishLayoutLw();
        mService.mH.obtainMessage(UPDATE_DOCKED_STACK_DIVIDER, displayContent).sendToTarget();
    }

    /**