summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Brandon Edens <brandonedens@google.com> 2024-11-19 16:12:02 +0000
committer Brandon Edens <brandonedens@google.com> 2024-11-25 20:03:54 +0000
commitd61fc450528c6b2cd9ba0060a3e88a637c35cf79 (patch)
tree68e298efe23a956d7c7d92f4c2266b863c7b626b
parent36a9cd53c513800baef0a54eabbd029f74f7e18d (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.xml5
-rw-r--r--core/res/res/values/symbols.xml1
-rw-r--r--services/core/java/com/android/server/DockObserver.java18
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