diff options
| -rw-r--r-- | core/java/android/app/ActivityThread.java | 88 |
1 files changed, 12 insertions, 76 deletions
diff --git a/core/java/android/app/ActivityThread.java b/core/java/android/app/ActivityThread.java index 4ea2aacdf7c2..87c729b20c71 100644 --- a/core/java/android/app/ActivityThread.java +++ b/core/java/android/app/ActivityThread.java @@ -513,7 +513,6 @@ public final class ActivityThread extends ClientTransactionHandler { @UnsupportedAppUsage boolean stopped; boolean hideForNow; - Configuration newConfig; Configuration createdConfig; Configuration overrideConfig; // Used to save the last reported configuration from server side so that activity @@ -2222,21 +2221,6 @@ public final class ActivityThread extends ClientTransactionHandler { return sPermissionManager; } - private Configuration mMainThreadConfig = new Configuration(); - - Configuration applyConfigCompatMainThread(int displayDensity, Configuration config, - CompatibilityInfo compat) { - if (config == null) { - return null; - } - if (!compat.supportsScreen()) { - mMainThreadConfig.setTo(config); - config = mMainThreadConfig; - compat.applyToConfiguration(displayDensity, config); - } - return config; - } - /** * Creates the top level resources for the given package. Will return an existing * Resources if one has already been created. @@ -4597,14 +4581,6 @@ public final class ActivityThread extends ClientTransactionHandler { // The window is now visible if it has been added, we are not // simply finishing, and we are not starting another activity. if (!r.activity.mFinished && willBeVisible && r.activity.mDecor != null && !r.hideForNow) { - if (r.newConfig != null) { - performConfigurationChangedForActivity(r, r.newConfig); - if (DEBUG_CONFIGURATION) { - Slog.v(TAG, "Resuming activity " + r.activityInfo.name + " with newConfig " - + r.activity.mCurrentConfig); - } - r.newConfig = null; - } if (localLOGV) Slog.v(TAG, "Resuming " + r + " with isForward=" + isForward); ViewRootImpl impl = r.window.getDecorView().getViewRootImpl(); WindowManager.LayoutParams l = impl != null @@ -4910,13 +4886,6 @@ public final class ActivityThread extends ClientTransactionHandler { r.activity.makeVisible(); } } - if (r.newConfig != null) { - performConfigurationChangedForActivity(r, r.newConfig); - if (DEBUG_CONFIGURATION) Slog.v(TAG, "Updating activity vis " - + r.activityInfo.name + " with new config " - + r.activity.mCurrentConfig); - r.newConfig = null; - } } else { if (r.activity.mVisibleFromServer) { r.activity.mVisibleFromServer = false; @@ -5488,8 +5457,7 @@ public final class ActivityThread extends ClientTransactionHandler { } } - ArrayList<ComponentCallbacks2> collectComponentCallbacks( - boolean allActivities, Configuration newConfig) { + ArrayList<ComponentCallbacks2> collectComponentCallbacks(boolean includeActivities) { ArrayList<ComponentCallbacks2> callbacks = new ArrayList<ComponentCallbacks2>(); @@ -5498,29 +5466,11 @@ public final class ActivityThread extends ClientTransactionHandler { for (int i=0; i<NAPP; i++) { callbacks.add(mAllApplications.get(i)); } - final int NACT = mActivities.size(); - for (int i=0; i<NACT; i++) { - ActivityClientRecord ar = mActivities.valueAt(i); - Activity a = ar.activity; - if (a != null) { - Configuration thisConfig = applyConfigCompatMainThread( - mCurDefaultDisplayDpi, newConfig, - ar.packageInfo.getCompatibilityInfo()); - if (!ar.activity.mFinished && (allActivities || !ar.paused)) { - // If the activity is currently resumed, its configuration - // needs to change right now. + if (includeActivities) { + for (int i = mActivities.size() - 1; i >= 0; i--) { + final Activity a = mActivities.valueAt(i).activity; + if (a != null && !a.mFinished) { callbacks.add(a); - } else if (thisConfig != null) { - // Otherwise, we will tell it about the change - // the next time it is resumed or shown. Note that - // the activity manager may, before then, decide the - // activity needs to be destroyed to handle its new - // configuration. - if (DEBUG_CONFIGURATION) { - Slog.v(TAG, "Setting activity " - + ar.activityInfo.name + " newConfig=" + thisConfig); - } - ar.newConfig = thisConfig; } } } @@ -5544,17 +5494,6 @@ public final class ActivityThread extends ClientTransactionHandler { } /** - * Updates the configuration for an Activity in its current display. - * - * @see #performConfigurationChangedForActivity(ActivityClientRecord, Configuration, int, - * boolean) - */ - private void performConfigurationChangedForActivity(ActivityClientRecord r, - Configuration newBaseConfig) { - performConfigurationChangedForActivity(r, newBaseConfig, r.activity.getDisplayId()); - } - - /** * Updates the configuration for an Activity. The ActivityClientRecord's * {@link ActivityClientRecord#overrideConfig} is used to compute the final Configuration for * that Activity. {@link ActivityClientRecord#tmpConfig} is used as a temporary for delivering @@ -5804,7 +5743,8 @@ public final class ActivityThread extends ClientTransactionHandler { } } - ArrayList<ComponentCallbacks2> callbacks = collectComponentCallbacks(false, config); + final ArrayList<ComponentCallbacks2> callbacks = + collectComponentCallbacks(false /* includeActivities */); freeTextLayoutCachesIfNeeded(configDiff); @@ -5812,13 +5752,7 @@ public final class ActivityThread extends ClientTransactionHandler { final int N = callbacks.size(); for (int i=0; i<N; i++) { ComponentCallbacks2 cb = callbacks.get(i); - if (cb instanceof Activity) { - // If callback is an Activity - call corresponding method to consider override - // config and avoid onConfigurationChanged if it hasn't changed. - Activity a = (Activity) cb; - performConfigurationChangedForActivity(mActivities.get(a.getActivityToken()), - config); - } else if (!equivalent) { + if (!equivalent) { performConfigurationChanged(cb, config); } else { // TODO (b/135719017): Temporary log for debugging IME service. @@ -6206,7 +6140,8 @@ public final class ActivityThread extends ClientTransactionHandler { } final void handleLowMemory() { - ArrayList<ComponentCallbacks2> callbacks = collectComponentCallbacks(true, null); + final ArrayList<ComponentCallbacks2> callbacks = + collectComponentCallbacks(true /* includeActivities */); final int N = callbacks.size(); for (int i=0; i<N; i++) { @@ -6238,7 +6173,8 @@ public final class ActivityThread extends ClientTransactionHandler { } } - ArrayList<ComponentCallbacks2> callbacks = collectComponentCallbacks(true, null); + final ArrayList<ComponentCallbacks2> callbacks = + collectComponentCallbacks(true /* includeActivities */); final int N = callbacks.size(); for (int i = 0; i < N; i++) { |