diff options
5 files changed, 12 insertions, 10 deletions
diff --git a/core/java/android/view/IWindowManager.aidl b/core/java/android/view/IWindowManager.aidl index bd6553297929..7a379d50ba05 100644 --- a/core/java/android/view/IWindowManager.aidl +++ b/core/java/android/view/IWindowManager.aidl @@ -110,11 +110,14 @@ interface IWindowManager * * @param token The token we are adding to the input task Id. * @param taskId The Id of the task we are adding the token to. + * @param stackId Stack Id to create a new Task with the input task Id on + * if the task doesn't exist yet. * @param taskBounds Bounds to use when creating a new Task with the input task Id if * the task doesn't exist yet. * @param config Configuration that is being used with this task. */ - void setAppTask(IBinder token, int taskId, in Rect taskBounds, in Configuration config); + void setAppTask( + IBinder token, int taskId, int stackId, in Rect taskBounds, in Configuration config); void setAppOrientation(IApplicationToken token, int requestedOrientation); int getAppOrientation(IApplicationToken token); void setFocusedApp(IBinder token, boolean moveFocusNow); diff --git a/services/core/java/com/android/server/am/ActivityStack.java b/services/core/java/com/android/server/am/ActivityStack.java index 02a372a6a08a..36a7ceea5853 100644 --- a/services/core/java/com/android/server/am/ActivityStack.java +++ b/services/core/java/com/android/server/am/ActivityStack.java @@ -4751,7 +4751,7 @@ final class ActivityStack { final Rect bounds = task.getLaunchBounds(); task.updateOverrideConfiguration(bounds); mWindowManager.setAppTask( - r.appToken, task.taskId, task.getLaunchBounds(), task.mOverrideConfig); + r.appToken, task.taskId, mStackId, task.getLaunchBounds(), task.mOverrideConfig); mWindowManager.setTaskResizeable(task.taskId, task.mResizeable); r.taskConfigOverride = task.mOverrideConfig; } diff --git a/services/core/java/com/android/server/wm/WindowManagerService.java b/services/core/java/com/android/server/wm/WindowManagerService.java index f153873186c5..4736c600e08b 100644 --- a/services/core/java/com/android/server/wm/WindowManagerService.java +++ b/services/core/java/com/android/server/wm/WindowManagerService.java @@ -3273,7 +3273,8 @@ public class WindowManagerService extends IWindowManager.Stub } @Override - public void setAppTask(IBinder token, int taskId, Rect taskBounds, Configuration config) { + public void setAppTask( + IBinder token, int taskId, int stackId, Rect taskBounds, Configuration config) { if (!checkCallingPermission(android.Manifest.permission.MANAGE_APP_TOKENS, "setAppTask()")) { throw new SecurityException("Requires MANAGE_APP_TOKENS permission"); @@ -3291,8 +3292,7 @@ public class WindowManagerService extends IWindowManager.Stub Task newTask = mTaskIdToTask.get(taskId); if (newTask == null) { newTask = createTaskLocked( - taskId, oldTask.mStack.mStackId, oldTask.mUserId, atoken, taskBounds, - config); + taskId, stackId, oldTask.mUserId, atoken, taskBounds, config); } newTask.addAppToken(Integer.MAX_VALUE /* at top */, atoken); } diff --git a/tests/permission/src/com/android/framework/permission/tests/WindowManagerPermissionTests.java b/tests/permission/src/com/android/framework/permission/tests/WindowManagerPermissionTests.java index a390b0cab321..3c2659f6ab59 100644 --- a/tests/permission/src/com/android/framework/permission/tests/WindowManagerPermissionTests.java +++ b/tests/permission/src/com/android/framework/permission/tests/WindowManagerPermissionTests.java @@ -22,11 +22,10 @@ import android.os.RemoteException; import android.os.ServiceManager; import android.test.suitebuilder.annotation.SmallTest; import android.view.IWindowManager; -import android.view.KeyEvent; -import android.view.MotionEvent; - import junit.framework.TestCase; +import static android.app.ActivityManager.StackId.INVALID_STACK_ID; + /** * TODO: Remove this. This is only a placeholder, need to implement this. */ @@ -104,7 +103,7 @@ public class WindowManagerPermissionTests extends TestCase { } try { - mWm.setAppTask(null, 0, null, null); + mWm.setAppTask(null, 0, INVALID_STACK_ID, null, null); fail("IWindowManager.setAppGroupId did not throw SecurityException as" + " expected"); } catch (SecurityException e) { diff --git a/tools/layoutlib/bridge/src/android/view/IWindowManagerImpl.java b/tools/layoutlib/bridge/src/android/view/IWindowManagerImpl.java index eea254bb8fcf..40437fac0092 100644 --- a/tools/layoutlib/bridge/src/android/view/IWindowManagerImpl.java +++ b/tools/layoutlib/bridge/src/android/view/IWindowManagerImpl.java @@ -321,7 +321,7 @@ public class IWindowManagerImpl implements IWindowManager { } @Override - public void setAppTask(IBinder arg0, int arg1, Rect arg2, Configuration arg3) + public void setAppTask(IBinder arg0, int arg1, int arg2, Rect arg3, Configuration arg4) throws RemoteException { // TODO Auto-generated method stub } |