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

Commit a30fdcb6 authored by Ivan Podogov's avatar Ivan Podogov Committed by Android (Google) Code Review
Browse files

Merge "Fix setRequestedOrientation() freeze on Android Wear." into oc-dev

parents 94ea9bb5 c6467172
Loading
Loading
Loading
Loading
+16 −12
Original line number Diff line number Diff line
@@ -20180,6 +20180,11 @@ public class ActivityManagerService extends IActivityManager.Stub
        mTempConfig.setTo(getGlobalConfiguration());
        final int changes = mTempConfig.updateFrom(values);
        if (changes == 0) {
            // Since calling to Activity.setRequestedOrientation leads to freezing the window with
            // setting WindowManagerService.mWaitingForConfig to true, it is important that we call
            // performDisplayOverrideConfigUpdate in order to send the new display configuration
            // (even if there are no actual changes) to unfreeze the window.
            performDisplayOverrideConfigUpdate(values, deferResume, DEFAULT_DISPLAY);
            return 0;
        }
@@ -20368,12 +20373,9 @@ public class ActivityManagerService extends IActivityManager.Stub
            int displayId) {
        mTempConfig.setTo(mStackSupervisor.getDisplayOverrideConfiguration(displayId));
        final int changes = mTempConfig.updateFrom(values);
        if (changes == 0) {
            return 0;
        }
        Slog.i(TAG, "Override config changes=" + Integer.toHexString(changes) + " " + mTempConfig
                + " for displayId=" + displayId);
        if (changes != 0) {
            Slog.i(TAG, "Override config changes=" + Integer.toHexString(changes) + " "
                    + mTempConfig + " for displayId=" + displayId);
            mStackSupervisor.setDisplayOverrideConfiguration(mTempConfig, displayId);
            final boolean isDensityChange = (changes & ActivityInfo.CONFIG_DENSITY) != 0;
@@ -20381,7 +20383,9 @@ public class ActivityManagerService extends IActivityManager.Stub
                // Reset the unsupported display size dialog.
                mUiHandler.sendEmptyMessage(SHOW_UNSUPPORTED_DISPLAY_SIZE_DIALOG_MSG);
            killAllBackgroundProcessesExcept(N, ActivityManager.PROCESS_STATE_FOREGROUND_SERVICE);
                killAllBackgroundProcessesExcept(N,
                        ActivityManager.PROCESS_STATE_FOREGROUND_SERVICE);
            }
        }
        // Update the configuration with WM first and check if any of the stacks need to be resized