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

Commit 9e4f28cf authored by Craig Mautner's avatar Craig Mautner
Browse files

Separate stacks into Home and others.

Change-Id: I9434ee6cd9e8a8baf24d4e4ee5a15e99cf11f227
parent 99db7379
Loading
Loading
Loading
Loading
+11 −0
Original line number Diff line number Diff line
@@ -20,6 +20,8 @@ import android.graphics.Rect;
import android.view.Display;
import android.view.DisplayInfo;

import static com.android.server.am.ActivityStackSupervisor.HOME_STACK_ID;

import java.io.PrintWriter;
import java.util.ArrayList;

@@ -193,6 +195,15 @@ class DisplayContent {
        return false;
    }

    void removeStackBox(StackBox box) {
        final TaskStack stack = box.mStack;
        if (stack != null && stack.mStackId == HOME_STACK_ID) {
            // Never delete the home stack, even if it is empty.
            return;
        }
        mStackBoxes.remove(box);
    }

    /**
     * Reorder a StackBox within mStackBox. The StackBox to reorder is the one containing the
     * specified TaskStack.
+8 −2
Original line number Diff line number Diff line
@@ -18,6 +18,8 @@ package com.android.server.wm;

import android.graphics.Rect;

import static com.android.server.am.ActivityStackSupervisor.HOME_STACK_ID;

import java.io.PrintWriter;
import java.util.ArrayList;

@@ -200,6 +202,10 @@ public class StackBox {
    /** Remove this box and propagate its sibling's content up to their parent.
     * @return The first stackId of the resulting StackBox. */
    int removeStack() {
        if (mParent == null) {
            mDisplayContent.removeStackBox(this);
            return HOME_STACK_ID;
        }
        if (mParent.mFirst == this) {
            mParent.absorb(mParent.mSecond);
        } else {
+6 −26
Original line number Diff line number Diff line
@@ -16,29 +16,9 @@

package com.android.server.wm;

import static android.view.WindowManager.LayoutParams.FIRST_APPLICATION_WINDOW;
import static android.view.WindowManager.LayoutParams.FIRST_SUB_WINDOW;
import static android.view.WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM;
import static android.view.WindowManager.LayoutParams.FLAG_COMPATIBLE_WINDOW;
import static android.view.WindowManager.LayoutParams.FLAG_DIM_BEHIND;
import static android.view.WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON;
import static android.view.WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE;
import static android.view.WindowManager.LayoutParams.FLAG_SHOW_WALLPAPER;
import static android.view.WindowManager.LayoutParams.LAST_APPLICATION_WINDOW;
import static android.view.WindowManager.LayoutParams.LAST_SUB_WINDOW;
import static android.view.WindowManager.LayoutParams.TYPE_APPLICATION;
import static android.view.WindowManager.LayoutParams.TYPE_APPLICATION_STARTING;
import static android.view.WindowManager.LayoutParams.TYPE_BASE_APPLICATION;
import static android.view.WindowManager.LayoutParams.TYPE_BOOT_PROGRESS;
import static android.view.WindowManager.LayoutParams.TYPE_DREAM;
import static android.view.WindowManager.LayoutParams.TYPE_INPUT_METHOD;
import static android.view.WindowManager.LayoutParams.TYPE_INPUT_METHOD_DIALOG;
import static android.view.WindowManager.LayoutParams.TYPE_KEYGUARD;
import static android.view.WindowManager.LayoutParams.TYPE_RECENTS_OVERLAY;
import static android.view.WindowManager.LayoutParams.TYPE_SYSTEM_DIALOG;
import static android.view.WindowManager.LayoutParams.TYPE_SYSTEM_ERROR;
import static android.view.WindowManager.LayoutParams.TYPE_UNIVERSE_BACKGROUND;
import static android.view.WindowManager.LayoutParams.TYPE_WALLPAPER;
import static android.view.WindowManager.LayoutParams.*;

import static com.android.server.am.ActivityStackSupervisor.HOME_STACK_ID;

import static android.view.WindowManagerPolicy.FINISH_LAYOUT_REDO_WALLPAPER;

@@ -4698,7 +4678,7 @@ public class WindowManagerService extends IWindowManager.Stub
            mStackIdToStack.delete(stackId);
            return stack.remove();
        }
        return -1;
        return HOME_STACK_ID;
    }

    public void moveTaskToStack(int taskId, int stackId, boolean toTop) {
@@ -7689,8 +7669,8 @@ public class WindowManagerService extends IWindowManager.Stub

        i -= lastBelow;
        if (i != numRemoved) {
            Slog.w(TAG, "Rebuild removed " + numRemoved
                    + " windows but added " + i);
            Slog.w(TAG, "Rebuild removed " + numRemoved + " windows but added " + i,
                    new RuntimeException("here").fillInStackTrace());
            for (i=0; i<numRemoved; i++) {
                WindowState ws = mRebuildTmp[i];
                if (ws.mRebuilding) {