Loading services/core/java/com/android/server/wm/ActivityTaskManagerService.java +8 −0 Original line number Diff line number Diff line Loading @@ -6706,6 +6706,14 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub { synchronized (mGlobalLockWithoutBoost) { mTaskSupervisor.getActivityMetricsLogger().notifyBindApplication(wpc.mInfo); wpc.onConfigurationChanged(getGlobalConfiguration()); // Let the application initialize with consistent configuration as its activity. for (int i = mStartingProcessActivities.size() - 1; i >= 0; i--) { final ActivityRecord r = mStartingProcessActivities.get(i); if (wpc.mUid == r.info.applicationInfo.uid && wpc.mName.equals(r.processName)) { wpc.registerActivityConfigurationListener(r); break; } } // The "info" can be the target of instrumentation. return new PreBindInfo(compatibilityInfoForPackageLocked(info), new Configuration(wpc.getConfiguration())); Loading services/core/java/com/android/server/wm/WindowProcessController.java +5 −0 Original line number Diff line number Diff line Loading @@ -1543,6 +1543,11 @@ public class WindowProcessController extends ConfigurationContainer<Configuratio unregisterConfigurationListeners(); mConfigActivityRecord = activityRecord; activityRecord.registerConfigurationChangeListener(this); // If the process hasn't attached, make sure that prepareConfigurationForLaunchingActivity // will use the newer configuration sequence. if (mThread == null) { mHasPendingConfigurationChange = true; } } private void unregisterActivityConfigurationListener() { Loading services/tests/wmtests/src/com/android/server/wm/RootWindowContainerTests.java +2 −0 Original line number Diff line number Diff line Loading @@ -331,6 +331,8 @@ public class RootWindowContainerTests extends WindowTestsBase { final WindowProcessController proc = mSystemServicesTestRule.addProcess( activity.packageName, activity.processName, 6789 /* pid */, activity.info.applicationInfo.uid); mAtm.mInternal.preBindApplication(proc, proc.mInfo); assertTrue(proc.registeredForActivityConfigChanges()); assertFalse(proc.mHasEverAttached); try { mRootWindowContainer.attachApplication(proc); Loading Loading
services/core/java/com/android/server/wm/ActivityTaskManagerService.java +8 −0 Original line number Diff line number Diff line Loading @@ -6706,6 +6706,14 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub { synchronized (mGlobalLockWithoutBoost) { mTaskSupervisor.getActivityMetricsLogger().notifyBindApplication(wpc.mInfo); wpc.onConfigurationChanged(getGlobalConfiguration()); // Let the application initialize with consistent configuration as its activity. for (int i = mStartingProcessActivities.size() - 1; i >= 0; i--) { final ActivityRecord r = mStartingProcessActivities.get(i); if (wpc.mUid == r.info.applicationInfo.uid && wpc.mName.equals(r.processName)) { wpc.registerActivityConfigurationListener(r); break; } } // The "info" can be the target of instrumentation. return new PreBindInfo(compatibilityInfoForPackageLocked(info), new Configuration(wpc.getConfiguration())); Loading
services/core/java/com/android/server/wm/WindowProcessController.java +5 −0 Original line number Diff line number Diff line Loading @@ -1543,6 +1543,11 @@ public class WindowProcessController extends ConfigurationContainer<Configuratio unregisterConfigurationListeners(); mConfigActivityRecord = activityRecord; activityRecord.registerConfigurationChangeListener(this); // If the process hasn't attached, make sure that prepareConfigurationForLaunchingActivity // will use the newer configuration sequence. if (mThread == null) { mHasPendingConfigurationChange = true; } } private void unregisterActivityConfigurationListener() { Loading
services/tests/wmtests/src/com/android/server/wm/RootWindowContainerTests.java +2 −0 Original line number Diff line number Diff line Loading @@ -331,6 +331,8 @@ public class RootWindowContainerTests extends WindowTestsBase { final WindowProcessController proc = mSystemServicesTestRule.addProcess( activity.packageName, activity.processName, 6789 /* pid */, activity.info.applicationInfo.uid); mAtm.mInternal.preBindApplication(proc, proc.mInfo); assertTrue(proc.registeredForActivityConfigChanges()); assertFalse(proc.mHasEverAttached); try { mRootWindowContainer.attachApplication(proc); Loading