Add retrieval of StackBox info for more flexibility
First step in permitting StackBoxes to be manipulated by user.
Necessary for Configuration changes coming down.
Change-Id: I4029926a35e4fdc59a5759fd9e4bae10bb308413
diff --git a/services/java/com/android/server/wm/DisplayContent.java b/services/java/com/android/server/wm/DisplayContent.java
index 0dbcfb8..8ad2ef1 100644
--- a/services/java/com/android/server/wm/DisplayContent.java
+++ b/services/java/com/android/server/wm/DisplayContent.java
@@ -21,6 +21,7 @@
import static com.android.server.wm.WindowManagerService.DEBUG_VISIBILITY;
import static com.android.server.wm.WindowManagerService.TAG;
+import android.app.ActivityManager.StackBoxInfo;
import android.graphics.Rect;
import android.graphics.Region;
import android.util.Slog;
@@ -284,6 +285,32 @@
mStackBoxes.remove(box);
}
+ StackBoxInfo getStackBoxInfo(StackBox box) {
+ StackBoxInfo info = new StackBoxInfo();
+ info.stackBoxId = box.mStackBoxId;
+ info.weight = box.mWeight;
+ info.vertical = box.mVertical;
+ info.bounds = new Rect(box.mBounds);
+ if (box.mStack != null) {
+ info.stackId = box.mStack.mStackId;
+ // ActivityManagerService will fill in the StackInfo.
+ } else {
+ info.stackId = -1;
+ info.children = new StackBoxInfo[2];
+ info.children[0] = getStackBoxInfo(box.mFirst);
+ info.children[1] = getStackBoxInfo(box.mSecond);
+ }
+ return info;
+ }
+
+ ArrayList<StackBoxInfo> getStackBoxInfos() {
+ ArrayList<StackBoxInfo> list = new ArrayList<StackBoxInfo>();
+ for (int stackBoxNdx = mStackBoxes.size() - 1; stackBoxNdx >= 0; --stackBoxNdx) {
+ list.add(getStackBoxInfo(mStackBoxes.get(stackBoxNdx)));
+ }
+ return list;
+ }
+
/**
* Move the home StackBox to the top or bottom of mStackBoxes. That is the only place
* it is allowed to be. This is a nop if the home StackBox is already in the correct position.