Loading services/java/com/android/server/am/ActivityManagerService.java +15 −13 Original line number Diff line number Diff line Loading @@ -1451,6 +1451,7 @@ public final class ActivityManagerService extends ActivityManagerNative mConfiguration.setToDefaults(); mConfiguration.locale = Locale.getDefault(); mConfigurationSeq = mConfiguration.seq = 1; mProcessStats.init(); mCompatModePackages = new CompatModePackages(this, systemDir); Loading Loading @@ -2407,7 +2408,7 @@ public final class ActivityManagerService extends ActivityManagerNative r.mayFreezeScreenLocked(r.app) ? r : null); if (config != null) { r.frozenBeforeDestroy = true; if (!updateConfigurationLocked(config, r, false)) { if (!updateConfigurationLocked(config, r, false, false)) { mMainStack.resumeTopActivityLocked(null); } } Loading Loading @@ -3724,7 +3725,7 @@ public final class ActivityManagerService extends ActivityManagerNative app.instrumentationClass, profileFile, profileFd, profileAutoStop, app.instrumentationArguments, app.instrumentationWatcher, testMode, isRestrictedBackupMode || !normalMode, app.persistent, mConfiguration, app.compat, getCommonServicesLocked(), new Configuration(mConfiguration), app.compat, getCommonServicesLocked(), mCoreSettingsObserver.getCoreSettingsLocked()); updateLruProcessLocked(app, false, true); app.lastRequestedGc = app.lastLowMemory = SystemClock.uptimeMillis(); Loading Loading @@ -6633,8 +6634,7 @@ public final class ActivityManagerService extends ActivityManagerNative mAlwaysFinishActivities = alwaysFinishActivities; // This happens before any activities are started, so we can // change mConfiguration in-place. mConfiguration.updateFrom(configuration); mConfigurationSeq = mConfiguration.seq = 1; updateConfigurationLocked(configuration, null, false, true); if (DEBUG_CONFIGURATION) Slog.v(TAG, "Initial config: " + mConfiguration); } } Loading Loading @@ -12838,7 +12838,7 @@ public final class ActivityManagerService extends ActivityManagerNative synchronized(this) { final long origId = Binder.clearCallingIdentity(); updateConfigurationLocked(values, null, true); updateConfigurationLocked(values, null, true, false); Binder.restoreCallingIdentity(origId); } } Loading @@ -12861,7 +12861,7 @@ public final class ActivityManagerService extends ActivityManagerNative if (values != null) { Settings.System.clearConfiguration(values); } updateConfigurationLocked(values, null, false); updateConfigurationLocked(values, null, false, false); Binder.restoreCallingIdentity(origId); } } Loading @@ -12875,7 +12875,7 @@ public final class ActivityManagerService extends ActivityManagerNative * @param persistent TODO */ public boolean updateConfigurationLocked(Configuration values, ActivityRecord starting, boolean persistent) { ActivityRecord starting, boolean persistent, boolean initLocale) { int changes = 0; boolean kept = true; Loading @@ -12890,7 +12890,7 @@ public final class ActivityManagerService extends ActivityManagerNative EventLog.writeEvent(EventLogTags.CONFIGURATION_CHANGED, changes); if (values.locale != null) { if (values.locale != null && !initLocale) { saveLocaleLocked(values.locale, !values.locale.equals(mConfiguration.locale), values.userSetLocale); Loading @@ -12904,9 +12904,11 @@ public final class ActivityManagerService extends ActivityManagerNative mConfiguration = newConfig; Slog.i(TAG, "Config changed: " + newConfig); final Configuration configCopy = new Configuration(mConfiguration); AttributeCache ac = AttributeCache.instance(); if (ac != null) { ac.updateConfiguration(mConfiguration); ac.updateConfiguration(configCopy); } // Make sure all resources in our process are updated Loading @@ -12916,11 +12918,11 @@ public final class ActivityManagerService extends ActivityManagerNative // boot, where the first config change needs to guarantee // all resources have that config before following boot // code is executed. mSystemThread.applyConfigurationToResources(newConfig); mSystemThread.applyConfigurationToResources(configCopy); if (persistent && Settings.System.hasInterestingConfigurationChanges(changes)) { Message msg = mHandler.obtainMessage(UPDATE_CONFIGURATION_MSG); msg.obj = new Configuration(mConfiguration); msg.obj = new Configuration(configCopy); mHandler.sendMessage(msg); } Loading @@ -12930,7 +12932,7 @@ public final class ActivityManagerService extends ActivityManagerNative if (app.thread != null) { if (DEBUG_CONFIGURATION) Slog.v(TAG, "Sending to proc " + app.processName + " new config " + mConfiguration); app.thread.scheduleConfigurationChanged(mConfiguration); app.thread.scheduleConfigurationChanged(configCopy); } } catch (Exception e) { } services/java/com/android/server/am/ActivityStack.java +6 −5 Original line number Diff line number Diff line Loading @@ -529,7 +529,7 @@ final class ActivityStack { Configuration config = mService.mWindowManager.updateOrientationFromAppTokens( mService.mConfiguration, r.mayFreezeScreenLocked(app) ? r : null); mService.updateConfigurationLocked(config, r, false); mService.updateConfigurationLocked(config, r, false, false); } r.app = app; Loading Loading @@ -591,7 +591,8 @@ final class ActivityStack { } } app.thread.scheduleLaunchActivity(new Intent(r.intent), r, System.identityHashCode(r), r.info, mService.mConfiguration, System.identityHashCode(r), r.info, new Configuration(mService.mConfiguration), r.compat, r.icicle, results, newIntents, !andResume, mService.isNextTransitionForward(), profileFile, profileFd, profileAutoStop); Loading Loading @@ -1453,7 +1454,7 @@ final class ActivityStack { if (config != null) { next.frozenBeforeDestroy = true; } updated = mService.updateConfigurationLocked(config, next, false); updated = mService.updateConfigurationLocked(config, next, false, false); } } if (!updated) { Loading Loading @@ -2900,7 +2901,7 @@ final class ActivityStack { mConfigWillChange = false; if (DEBUG_CONFIGURATION) Slog.v(TAG, "Updating to new configuration after starting activity."); mService.updateConfigurationLocked(config, null, false); mService.updateConfigurationLocked(config, null, false, false); } Binder.restoreCallingIdentity(origId); Loading Loading @@ -4171,7 +4172,7 @@ final class ActivityStack { if (DEBUG_SWITCH) Slog.i(TAG, "Switch is restarting resumed " + r); r.forceNewConfig = false; r.app.thread.scheduleRelaunchActivity(r, results, newIntents, changes, !andResume, mService.mConfiguration); changes, !andResume, new Configuration(mService.mConfiguration)); // Note: don't need to call pauseIfSleepingLocked() here, because // the caller will only pass in 'andResume' if this activity is // currently resumed, which implies we aren't sleeping. Loading Loading
services/java/com/android/server/am/ActivityManagerService.java +15 −13 Original line number Diff line number Diff line Loading @@ -1451,6 +1451,7 @@ public final class ActivityManagerService extends ActivityManagerNative mConfiguration.setToDefaults(); mConfiguration.locale = Locale.getDefault(); mConfigurationSeq = mConfiguration.seq = 1; mProcessStats.init(); mCompatModePackages = new CompatModePackages(this, systemDir); Loading Loading @@ -2407,7 +2408,7 @@ public final class ActivityManagerService extends ActivityManagerNative r.mayFreezeScreenLocked(r.app) ? r : null); if (config != null) { r.frozenBeforeDestroy = true; if (!updateConfigurationLocked(config, r, false)) { if (!updateConfigurationLocked(config, r, false, false)) { mMainStack.resumeTopActivityLocked(null); } } Loading Loading @@ -3724,7 +3725,7 @@ public final class ActivityManagerService extends ActivityManagerNative app.instrumentationClass, profileFile, profileFd, profileAutoStop, app.instrumentationArguments, app.instrumentationWatcher, testMode, isRestrictedBackupMode || !normalMode, app.persistent, mConfiguration, app.compat, getCommonServicesLocked(), new Configuration(mConfiguration), app.compat, getCommonServicesLocked(), mCoreSettingsObserver.getCoreSettingsLocked()); updateLruProcessLocked(app, false, true); app.lastRequestedGc = app.lastLowMemory = SystemClock.uptimeMillis(); Loading Loading @@ -6633,8 +6634,7 @@ public final class ActivityManagerService extends ActivityManagerNative mAlwaysFinishActivities = alwaysFinishActivities; // This happens before any activities are started, so we can // change mConfiguration in-place. mConfiguration.updateFrom(configuration); mConfigurationSeq = mConfiguration.seq = 1; updateConfigurationLocked(configuration, null, false, true); if (DEBUG_CONFIGURATION) Slog.v(TAG, "Initial config: " + mConfiguration); } } Loading Loading @@ -12838,7 +12838,7 @@ public final class ActivityManagerService extends ActivityManagerNative synchronized(this) { final long origId = Binder.clearCallingIdentity(); updateConfigurationLocked(values, null, true); updateConfigurationLocked(values, null, true, false); Binder.restoreCallingIdentity(origId); } } Loading @@ -12861,7 +12861,7 @@ public final class ActivityManagerService extends ActivityManagerNative if (values != null) { Settings.System.clearConfiguration(values); } updateConfigurationLocked(values, null, false); updateConfigurationLocked(values, null, false, false); Binder.restoreCallingIdentity(origId); } } Loading @@ -12875,7 +12875,7 @@ public final class ActivityManagerService extends ActivityManagerNative * @param persistent TODO */ public boolean updateConfigurationLocked(Configuration values, ActivityRecord starting, boolean persistent) { ActivityRecord starting, boolean persistent, boolean initLocale) { int changes = 0; boolean kept = true; Loading @@ -12890,7 +12890,7 @@ public final class ActivityManagerService extends ActivityManagerNative EventLog.writeEvent(EventLogTags.CONFIGURATION_CHANGED, changes); if (values.locale != null) { if (values.locale != null && !initLocale) { saveLocaleLocked(values.locale, !values.locale.equals(mConfiguration.locale), values.userSetLocale); Loading @@ -12904,9 +12904,11 @@ public final class ActivityManagerService extends ActivityManagerNative mConfiguration = newConfig; Slog.i(TAG, "Config changed: " + newConfig); final Configuration configCopy = new Configuration(mConfiguration); AttributeCache ac = AttributeCache.instance(); if (ac != null) { ac.updateConfiguration(mConfiguration); ac.updateConfiguration(configCopy); } // Make sure all resources in our process are updated Loading @@ -12916,11 +12918,11 @@ public final class ActivityManagerService extends ActivityManagerNative // boot, where the first config change needs to guarantee // all resources have that config before following boot // code is executed. mSystemThread.applyConfigurationToResources(newConfig); mSystemThread.applyConfigurationToResources(configCopy); if (persistent && Settings.System.hasInterestingConfigurationChanges(changes)) { Message msg = mHandler.obtainMessage(UPDATE_CONFIGURATION_MSG); msg.obj = new Configuration(mConfiguration); msg.obj = new Configuration(configCopy); mHandler.sendMessage(msg); } Loading @@ -12930,7 +12932,7 @@ public final class ActivityManagerService extends ActivityManagerNative if (app.thread != null) { if (DEBUG_CONFIGURATION) Slog.v(TAG, "Sending to proc " + app.processName + " new config " + mConfiguration); app.thread.scheduleConfigurationChanged(mConfiguration); app.thread.scheduleConfigurationChanged(configCopy); } } catch (Exception e) { }
services/java/com/android/server/am/ActivityStack.java +6 −5 Original line number Diff line number Diff line Loading @@ -529,7 +529,7 @@ final class ActivityStack { Configuration config = mService.mWindowManager.updateOrientationFromAppTokens( mService.mConfiguration, r.mayFreezeScreenLocked(app) ? r : null); mService.updateConfigurationLocked(config, r, false); mService.updateConfigurationLocked(config, r, false, false); } r.app = app; Loading Loading @@ -591,7 +591,8 @@ final class ActivityStack { } } app.thread.scheduleLaunchActivity(new Intent(r.intent), r, System.identityHashCode(r), r.info, mService.mConfiguration, System.identityHashCode(r), r.info, new Configuration(mService.mConfiguration), r.compat, r.icicle, results, newIntents, !andResume, mService.isNextTransitionForward(), profileFile, profileFd, profileAutoStop); Loading Loading @@ -1453,7 +1454,7 @@ final class ActivityStack { if (config != null) { next.frozenBeforeDestroy = true; } updated = mService.updateConfigurationLocked(config, next, false); updated = mService.updateConfigurationLocked(config, next, false, false); } } if (!updated) { Loading Loading @@ -2900,7 +2901,7 @@ final class ActivityStack { mConfigWillChange = false; if (DEBUG_CONFIGURATION) Slog.v(TAG, "Updating to new configuration after starting activity."); mService.updateConfigurationLocked(config, null, false); mService.updateConfigurationLocked(config, null, false, false); } Binder.restoreCallingIdentity(origId); Loading Loading @@ -4171,7 +4172,7 @@ final class ActivityStack { if (DEBUG_SWITCH) Slog.i(TAG, "Switch is restarting resumed " + r); r.forceNewConfig = false; r.app.thread.scheduleRelaunchActivity(r, results, newIntents, changes, !andResume, mService.mConfiguration); changes, !andResume, new Configuration(mService.mConfiguration)); // Note: don't need to call pauseIfSleepingLocked() here, because // the caller will only pass in 'andResume' if this activity is // currently resumed, which implies we aren't sleeping. Loading