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

Commit ce1ecf1f authored by Andrii Kulian's avatar Andrii Kulian
Browse files

Fix NPE when config is updated before ViewRootImpl is set

If activity received a configuration change before it had its
ViewRootImpl initialize, then there was a NPE when trying to
notify the ViewRootImpl instance about latest changes.

Bug: 36396248
Test: android.server.cts.ActivityManagerAppConfigurationTests
Test: #testLaunchWithUiModeChange
Test: Launch AndroidAuto app
Change-Id: I71e0f316f885a30dadce388bbd3d9f21f419076b
parent ff8b79e1
Loading
Loading
Loading
Loading
+6 −2
Original line number Diff line number Diff line
@@ -5070,7 +5070,9 @@ public final class ActivityThread {

            performConfigurationChangedForActivity(r, mCompatConfiguration, displayId,
                    true /* movedToDifferentDisplay */);
            if (viewRoot != null) {
                viewRoot.onMovedToDisplay(displayId);
            }
        } else {
            if (DEBUG_CONFIGURATION) Slog.v(TAG, "Handle activity config changed: "
                    + r.activityInfo.name + ", config=" + data.overrideConfig);
@@ -5078,7 +5080,9 @@ public final class ActivityThread {
        }
        // Notify the ViewRootImpl instance about configuration changes. It may have initiated this
        // update to make sure that resources are updated before updating itself.
        if (viewRoot != null) {
            viewRoot.updateConfiguration();
        }
        mSomeActivitiesChanged = true;
    }