diff options
| author | 2024-11-19 16:12:02 +0000 | |
|---|---|---|
| committer | 2024-11-25 20:03:54 +0000 | |
| commit | d61fc450528c6b2cd9ba0060a3e88a637c35cf79 (patch) | |
| tree | 68e298efe23a956d7c7d92f4c2266b863c7b626b | |
| parent | 36a9cd53c513800baef0a54eabbd029f74f7e18d (diff) | |
dock_observer: allow dock rotation in OOBE
Add a resource for configuration on whether or not we allow dock
rotation for the OOBE SetupWizard.
Bug: 374940810
Test: Enable the configuration and test OOBE + Docking for rotation.
Flag: EXEMPT bugfix
Change-Id: Ifba159ee2fdcf5f0b2875a84c4b833c7d454623b
| -rw-r--r-- | core/res/res/values/config.xml | 5 | ||||
| -rw-r--r-- | core/res/res/values/symbols.xml | 1 | ||||
| -rw-r--r-- | services/core/java/com/android/server/DockObserver.java | 18 |
3 files changed, 20 insertions, 4 deletions
diff --git a/core/res/res/values/config.xml b/core/res/res/values/config.xml index 7799ff951997..eae8d5542436 100644 --- a/core/res/res/values/config.xml +++ b/core/res/res/values/config.xml @@ -815,6 +815,11 @@ we rely on gravity to determine the effective orientation. --> <bool name="config_deskDockEnablesAccelerometer">true</bool> + <!-- Control for allowing the dock rotation functionality before provision like + when the SetupWizard is being shown to the user. This defaults to false to + preserve existing behavior. --> + <bool name="config_allowDockBeforeProvision">false</bool> + <!-- Car dock behavior --> <!-- The number of degrees to rotate the display when the device is in a car dock. diff --git a/core/res/res/values/symbols.xml b/core/res/res/values/symbols.xml index 7fe09128de05..38a94d915955 100644 --- a/core/res/res/values/symbols.xml +++ b/core/res/res/values/symbols.xml @@ -1797,6 +1797,7 @@ <java-symbol type="bool" name="config_customUserSwitchUi" /> <java-symbol type="bool" name="config_canRemoveFirstAccount" /> <java-symbol type="string" name="config_accountTypeToKeepFirstAccount" /> + <java-symbol type="bool" name="config_allowDockBeforeProvision" /> <java-symbol type="bool" name="config_deskDockEnablesAccelerometer" /> <java-symbol type="bool" name="config_disableMenuKeyInLockScreen" /> <java-symbol type="bool" name="config_enableCarDockHomeLaunch" /> diff --git a/services/core/java/com/android/server/DockObserver.java b/services/core/java/com/android/server/DockObserver.java index fb527c104946..2412b01ea8e2 100644 --- a/services/core/java/com/android/server/DockObserver.java +++ b/services/core/java/com/android/server/DockObserver.java @@ -19,6 +19,7 @@ package com.android.server; import android.content.ContentResolver; import android.content.Context; import android.content.Intent; +import android.content.res.Resources; import android.database.ContentObserver; import android.media.AudioManager; import android.media.Ringtone; @@ -35,6 +36,7 @@ import android.provider.Settings; import android.util.Pair; import android.util.Slog; +import com.android.internal.R; import com.android.internal.annotations.VisibleForTesting; import com.android.internal.util.DumpUtils; import com.android.internal.util.FrameworkStatsLog; @@ -259,11 +261,19 @@ final class DockObserver extends SystemService { + mReportedDockState); final int previousDockState = mPreviousDockState; mPreviousDockState = mReportedDockState; - // Skip the dock intent if not yet provisioned. + final ContentResolver cr = getContext().getContentResolver(); - if (!mDeviceProvisionedObserver.isDeviceProvisioned()) { - Slog.i(TAG, "Device not provisioned, skipping dock broadcast"); - return; + + /// If the allow dock rotation before provision is enabled then we allow rotation. + final Resources r = getContext().getResources(); + final boolean allowDockBeforeProvision = + r.getBoolean(R.bool.config_allowDockBeforeProvision); + if (!allowDockBeforeProvision) { + // Skip the dock intent if not yet provisioned. + if (!mDeviceProvisionedObserver.isDeviceProvisioned()) { + Slog.i(TAG, "Device not provisioned, skipping dock broadcast"); + return; + } } // Pack up the values and broadcast them to everyone |