Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b31d51b1 authored by Chong Zhang's avatar Chong Zhang Committed by android-build-merger
Browse files

Merge \\"Do not send unhandled system config changes to app\\" into nyc-mr1-dev am: 568507ab

am: fac74769

Change-Id: I49a971425f294ab8301fb2514a4d8f7a6f5634f0
parents 55d09a02 fac74769
Loading
Loading
Loading
Loading
+11 −1
Original line number Diff line number Diff line
@@ -235,6 +235,7 @@ public final class ActivityThread {
    boolean mSystemThread = false;
    boolean mJitEnabled = false;
    boolean mSomeActivitiesChanged = false;
    boolean mUpdatingSystemConfig = false;

    // These can be accessed by multiple threads; mPackages is the lock.
    // XXX For now we keep around information about all packages we have
@@ -1573,7 +1574,9 @@ public final class ActivityThread {
                case CONFIGURATION_CHANGED:
                    Trace.traceBegin(Trace.TRACE_TAG_ACTIVITY_MANAGER, "configChanged");
                    mCurDefaultDisplayDpi = ((Configuration)msg.obj).densityDpi;
                    mUpdatingSystemConfig = true;
                    handleConfigurationChanged((Configuration)msg.obj, null);
                    mUpdatingSystemConfig = false;
                    Trace.traceEnd(Trace.TRACE_TAG_ACTIVITY_MANAGER);
                    break;
                case CLEAN_UP_CONTEXT:
@@ -4628,9 +4631,16 @@ public final class ActivityThread {
            // onConfigurationChanged
            int diff = activity.mCurrentConfig.diff(newConfig);
            if (diff != 0) {
                // Always send the task-level config changes. For system-level configuration, if
                // this activity doesn't handle any of the config changes, then don't bother
                // calling onConfigurationChanged as we're going to destroy it.
                if (!mUpdatingSystemConfig
                        || (~activity.mActivityInfo.getRealConfigChanged() & diff) == 0
                        || !reportToActivity) {
                    shouldChangeConfig = true;
                }
            }
        }

        if (shouldChangeConfig) {
            // Propagate the configuration change to the Activity and ResourcesManager.