Loading core/java/android/view/IWindowManager.aidl +2 −1 Original line number Diff line number Diff line Loading @@ -78,7 +78,8 @@ interface IWindowManager void addWindowToken(IBinder token, int type); void removeWindowToken(IBinder token); void addAppToken(int addPos, IApplicationToken token, int groupId, int stackId, int requestedOrientation, boolean fullscreen, boolean showWhenLocked, int userId); int requestedOrientation, boolean fullscreen, boolean showWhenLocked, int userId, int configChanges); void setAppGroupId(IBinder token, int groupId); void setAppOrientation(IApplicationToken token, int requestedOrientation); int getAppOrientation(IApplicationToken token); Loading services/java/com/android/server/am/ActivityStack.java +5 −3 Original line number Diff line number Diff line Loading @@ -1717,7 +1717,7 @@ final class ActivityStack { mWindowManager.addAppToken(task.mActivities.indexOf(r), r.appToken, r.task.taskId, mStackId, r.info.screenOrientation, r.fullscreen, (r.info.flags & ActivityInfo.FLAG_SHOW_ON_LOCK_SCREEN) != 0, r.userId); r.userId, r.info.configChanges); if (VALIDATE_TOKENS) { validateAppTokensLocked(); } Loading Loading @@ -1778,7 +1778,8 @@ final class ActivityStack { r.updateOptionsLocked(options); mWindowManager.addAppToken(task.mActivities.indexOf(r), r.appToken, r.task.taskId, mStackId, r.info.screenOrientation, r.fullscreen, (r.info.flags & ActivityInfo.FLAG_SHOW_ON_LOCK_SCREEN) != 0, r.userId); (r.info.flags & ActivityInfo.FLAG_SHOW_ON_LOCK_SCREEN) != 0, r.userId, r.info.configChanges); boolean doShow = true; if (newTask) { // Even though this activity is starting fresh, we still need Loading Loading @@ -1821,7 +1822,8 @@ final class ActivityStack { // because there is nothing for it to animate on top of. mWindowManager.addAppToken(task.mActivities.indexOf(r), r.appToken, r.task.taskId, mStackId, r.info.screenOrientation, r.fullscreen, (r.info.flags & ActivityInfo.FLAG_SHOW_ON_LOCK_SCREEN) != 0, r.userId); (r.info.flags & ActivityInfo.FLAG_SHOW_ON_LOCK_SCREEN) != 0, r.userId, r.info.configChanges); ActivityOptions.abort(options); } if (VALIDATE_TOKENS) { Loading services/java/com/android/server/wm/AppWindowToken.java +1 −0 Original line number Diff line number Diff line Loading @@ -53,6 +53,7 @@ class AppWindowToken extends WindowToken { int groupId = -1; boolean appFullscreen; int requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED; int configChanges; boolean showWhenLocked; // The input dispatching timeout for this application token in nanoseconds. Loading services/java/com/android/server/wm/WindowManagerService.java +7 −3 Original line number Diff line number Diff line Loading @@ -3406,7 +3406,8 @@ public class WindowManagerService extends IWindowManager.Stub @Override public void addAppToken(int addPos, IApplicationToken token, int taskId, int stackId, int requestedOrientation, boolean fullscreen, boolean showWhenLocked, int userId) { int requestedOrientation, boolean fullscreen, boolean showWhenLocked, int userId, int configChanges) { if (!checkCallingPermission(android.Manifest.permission.MANAGE_APP_TOKENS, "addAppToken()")) { throw new SecurityException("Requires MANAGE_APP_TOKENS permission"); Loading Loading @@ -3438,6 +3439,7 @@ public class WindowManagerService extends IWindowManager.Stub atoken.appFullscreen = fullscreen; atoken.showWhenLocked = showWhenLocked; atoken.requestedOrientation = requestedOrientation; atoken.configChanges = configChanges; if (DEBUG_TOKEN_MOVEMENT || DEBUG_ADD_REMOVE) Slog.v(TAG, "addAppToken: " + atoken + " to stack=" + stackId + " task=" + taskId + " at " + addPos); Loading Loading @@ -8267,8 +8269,10 @@ public class WindowManagerService extends IWindowManager.Stub // windows, since that means "perform layout as normal, // just don't display"). if (!gone || !win.mHaveFrame || win.mLayoutNeeded || win.mAttrs.type == TYPE_KEYGUARD && win.isConfigChanged() || mOpeningApps.contains(win.mAppToken) || win.isConfigChanged() && (win.mAttrs.type == TYPE_KEYGUARD || (win.mAppToken != null && (win.mAppToken.configChanges & (ActivityInfo.CONFIG_SCREEN_SIZE | ActivityInfo.CONFIG_ORIENTATION)) != 0)) || win.mAttrs.type == TYPE_UNIVERSE_BACKGROUND) { if (!win.mLayoutAttached) { if (initial) { Loading tests/permission/src/com/android/framework/permission/tests/WindowManagerPermissionTests.java +1 −1 Original line number Diff line number Diff line Loading @@ -93,7 +93,7 @@ public class WindowManagerPermissionTests extends TestCase { } try { mWm.addAppToken(0, null, 0, 0, 0, false, false, 0); mWm.addAppToken(0, null, 0, 0, 0, false, false, 0, 0); fail("IWindowManager.addAppToken did not throw SecurityException as" + " expected"); } catch (SecurityException e) { Loading Loading
core/java/android/view/IWindowManager.aidl +2 −1 Original line number Diff line number Diff line Loading @@ -78,7 +78,8 @@ interface IWindowManager void addWindowToken(IBinder token, int type); void removeWindowToken(IBinder token); void addAppToken(int addPos, IApplicationToken token, int groupId, int stackId, int requestedOrientation, boolean fullscreen, boolean showWhenLocked, int userId); int requestedOrientation, boolean fullscreen, boolean showWhenLocked, int userId, int configChanges); void setAppGroupId(IBinder token, int groupId); void setAppOrientation(IApplicationToken token, int requestedOrientation); int getAppOrientation(IApplicationToken token); Loading
services/java/com/android/server/am/ActivityStack.java +5 −3 Original line number Diff line number Diff line Loading @@ -1717,7 +1717,7 @@ final class ActivityStack { mWindowManager.addAppToken(task.mActivities.indexOf(r), r.appToken, r.task.taskId, mStackId, r.info.screenOrientation, r.fullscreen, (r.info.flags & ActivityInfo.FLAG_SHOW_ON_LOCK_SCREEN) != 0, r.userId); r.userId, r.info.configChanges); if (VALIDATE_TOKENS) { validateAppTokensLocked(); } Loading Loading @@ -1778,7 +1778,8 @@ final class ActivityStack { r.updateOptionsLocked(options); mWindowManager.addAppToken(task.mActivities.indexOf(r), r.appToken, r.task.taskId, mStackId, r.info.screenOrientation, r.fullscreen, (r.info.flags & ActivityInfo.FLAG_SHOW_ON_LOCK_SCREEN) != 0, r.userId); (r.info.flags & ActivityInfo.FLAG_SHOW_ON_LOCK_SCREEN) != 0, r.userId, r.info.configChanges); boolean doShow = true; if (newTask) { // Even though this activity is starting fresh, we still need Loading Loading @@ -1821,7 +1822,8 @@ final class ActivityStack { // because there is nothing for it to animate on top of. mWindowManager.addAppToken(task.mActivities.indexOf(r), r.appToken, r.task.taskId, mStackId, r.info.screenOrientation, r.fullscreen, (r.info.flags & ActivityInfo.FLAG_SHOW_ON_LOCK_SCREEN) != 0, r.userId); (r.info.flags & ActivityInfo.FLAG_SHOW_ON_LOCK_SCREEN) != 0, r.userId, r.info.configChanges); ActivityOptions.abort(options); } if (VALIDATE_TOKENS) { Loading
services/java/com/android/server/wm/AppWindowToken.java +1 −0 Original line number Diff line number Diff line Loading @@ -53,6 +53,7 @@ class AppWindowToken extends WindowToken { int groupId = -1; boolean appFullscreen; int requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED; int configChanges; boolean showWhenLocked; // The input dispatching timeout for this application token in nanoseconds. Loading
services/java/com/android/server/wm/WindowManagerService.java +7 −3 Original line number Diff line number Diff line Loading @@ -3406,7 +3406,8 @@ public class WindowManagerService extends IWindowManager.Stub @Override public void addAppToken(int addPos, IApplicationToken token, int taskId, int stackId, int requestedOrientation, boolean fullscreen, boolean showWhenLocked, int userId) { int requestedOrientation, boolean fullscreen, boolean showWhenLocked, int userId, int configChanges) { if (!checkCallingPermission(android.Manifest.permission.MANAGE_APP_TOKENS, "addAppToken()")) { throw new SecurityException("Requires MANAGE_APP_TOKENS permission"); Loading Loading @@ -3438,6 +3439,7 @@ public class WindowManagerService extends IWindowManager.Stub atoken.appFullscreen = fullscreen; atoken.showWhenLocked = showWhenLocked; atoken.requestedOrientation = requestedOrientation; atoken.configChanges = configChanges; if (DEBUG_TOKEN_MOVEMENT || DEBUG_ADD_REMOVE) Slog.v(TAG, "addAppToken: " + atoken + " to stack=" + stackId + " task=" + taskId + " at " + addPos); Loading Loading @@ -8267,8 +8269,10 @@ public class WindowManagerService extends IWindowManager.Stub // windows, since that means "perform layout as normal, // just don't display"). if (!gone || !win.mHaveFrame || win.mLayoutNeeded || win.mAttrs.type == TYPE_KEYGUARD && win.isConfigChanged() || mOpeningApps.contains(win.mAppToken) || win.isConfigChanged() && (win.mAttrs.type == TYPE_KEYGUARD || (win.mAppToken != null && (win.mAppToken.configChanges & (ActivityInfo.CONFIG_SCREEN_SIZE | ActivityInfo.CONFIG_ORIENTATION)) != 0)) || win.mAttrs.type == TYPE_UNIVERSE_BACKGROUND) { if (!win.mLayoutAttached) { if (initial) { Loading
tests/permission/src/com/android/framework/permission/tests/WindowManagerPermissionTests.java +1 −1 Original line number Diff line number Diff line Loading @@ -93,7 +93,7 @@ public class WindowManagerPermissionTests extends TestCase { } try { mWm.addAppToken(0, null, 0, 0, 0, false, false, 0); mWm.addAppToken(0, null, 0, 0, 0, false, false, 0, 0); fail("IWindowManager.addAppToken did not throw SecurityException as" + " expected"); } catch (SecurityException e) { Loading