Merge "Migrate dark theme settings" into rvc-dev am: 221945ad93 am: 995886d001
Change-Id: I7ad1406cebf47db224056451c7ec3568b5a9af35
This commit is contained in:
@@ -141,6 +141,8 @@ public class SecureSettings {
|
||||
Settings.Secure.NOTIFICATION_NEW_INTERRUPTION_MODEL,
|
||||
Settings.Secure.TRUST_AGENTS_EXTEND_UNLOCK,
|
||||
Settings.Secure.UI_NIGHT_MODE,
|
||||
Settings.Secure.DARK_THEME_CUSTOM_START_TIME,
|
||||
Settings.Secure.DARK_THEME_CUSTOM_END_TIME,
|
||||
Settings.Secure.LOCK_SCREEN_WHEN_TRUST_LOST,
|
||||
Settings.Secure.SKIP_DIRECTION,
|
||||
Settings.Secure.THEME_CUSTOMIZATION_OVERLAY_PACKAGES,
|
||||
|
||||
@@ -28,6 +28,7 @@ import static android.provider.settings.validators.SettingsValidators.LOCALE_VAL
|
||||
import static android.provider.settings.validators.SettingsValidators.NON_NEGATIVE_INTEGER_VALIDATOR;
|
||||
import static android.provider.settings.validators.SettingsValidators.NULLABLE_COMPONENT_NAME_VALIDATOR;
|
||||
import static android.provider.settings.validators.SettingsValidators.PACKAGE_NAME_VALIDATOR;
|
||||
import static android.provider.settings.validators.SettingsValidators.NONE_NEGATIVE_LONG_VALIDATOR;
|
||||
import static android.provider.settings.validators.SettingsValidators.TILE_LIST_VALIDATOR;
|
||||
import static android.provider.settings.validators.SettingsValidators.TTS_LIST_VALIDATOR;
|
||||
|
||||
@@ -235,7 +236,9 @@ public class SecureSettingsValidators {
|
||||
VALIDATORS.put(Secure.AWARE_TAP_PAUSE_TOUCH_COUNT, NON_NEGATIVE_INTEGER_VALIDATOR);
|
||||
VALIDATORS.put(Secure.ODI_CAPTIONS_ENABLED, BOOLEAN_VALIDATOR);
|
||||
VALIDATORS.put(Secure.DARK_MODE_DIALOG_SEEN, BOOLEAN_VALIDATOR);
|
||||
VALIDATORS.put(Secure.UI_NIGHT_MODE, new InclusiveIntegerRangeValidator(0, 2));
|
||||
VALIDATORS.put(Secure.UI_NIGHT_MODE, NON_NEGATIVE_INTEGER_VALIDATOR);
|
||||
VALIDATORS.put(Secure.DARK_THEME_CUSTOM_START_TIME, NONE_NEGATIVE_LONG_VALIDATOR);
|
||||
VALIDATORS.put(Secure.DARK_THEME_CUSTOM_END_TIME, NONE_NEGATIVE_LONG_VALIDATOR);
|
||||
VALIDATORS.put(Secure.GLOBAL_ACTIONS_PANEL_ENABLED, BOOLEAN_VALIDATOR);
|
||||
VALIDATORS.put(Secure.AWARE_LOCK_ENABLED, BOOLEAN_VALIDATOR);
|
||||
VALIDATORS.put(Secure.DISPLAY_DENSITY_FORCED, NON_NEGATIVE_INTEGER_VALIDATOR);
|
||||
|
||||
@@ -207,4 +207,15 @@ public class SettingsValidators {
|
||||
|
||||
static final Validator ACCESSIBILITY_SHORTCUT_TARGET_LIST_VALIDATOR =
|
||||
new AccessibilityShortcutTargetListValidator();
|
||||
|
||||
static final Validator NONE_NEGATIVE_LONG_VALIDATOR = new Validator() {
|
||||
@Override
|
||||
public boolean validate(String value) {
|
||||
try {
|
||||
return Long.parseLong(value) >= 0;
|
||||
} catch (NumberFormatException e) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
@@ -75,6 +75,9 @@ public class SettingsHelper {
|
||||
sBroadcastOnRestore.add(Settings.Secure.ENABLED_VR_LISTENERS);
|
||||
sBroadcastOnRestore.add(Settings.Secure.ENABLED_ACCESSIBILITY_SERVICES);
|
||||
sBroadcastOnRestore.add(Settings.Global.BLUETOOTH_ON);
|
||||
sBroadcastOnRestore.add(Settings.Secure.UI_NIGHT_MODE);
|
||||
sBroadcastOnRestore.add(Settings.Secure.DARK_THEME_CUSTOM_START_TIME);
|
||||
sBroadcastOnRestore.add(Settings.Secure.DARK_THEME_CUSTOM_END_TIME);
|
||||
}
|
||||
|
||||
private interface SettingsLookup {
|
||||
|
||||
@@ -276,6 +276,27 @@ public class SettingsValidatorsTest {
|
||||
assertFalse(SettingsValidators.TTS_LIST_VALIDATOR.validate(""));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testPositiveLongValidator_zero() {
|
||||
assertTrue(SettingsValidators.NONE_NEGATIVE_LONG_VALIDATOR.validate("0"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testPositiveLongValidator_negative() {
|
||||
assertFalse(SettingsValidators.NONE_NEGATIVE_LONG_VALIDATOR.validate("-5"));
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
public void testPositiveLongValidator_positive() {
|
||||
assertTrue(SettingsValidators.NONE_NEGATIVE_LONG_VALIDATOR.validate("5"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testPositiveLongValidator_floatFormat() {
|
||||
assertFalse(SettingsValidators.NONE_NEGATIVE_LONG_VALIDATOR.validate("4.4756"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testTTSListValidator_withNullInput_returnsFalse() {
|
||||
assertFalse(SettingsValidators.TTS_LIST_VALIDATOR.validate(null));
|
||||
|
||||
@@ -75,7 +75,9 @@ import java.time.DateTimeException;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.LocalTime;
|
||||
import java.time.ZoneId;
|
||||
import java.util.Arrays;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
@@ -293,7 +295,7 @@ final class UiModeManagerService extends SystemService {
|
||||
public void onChange(boolean selfChange, Uri uri) {
|
||||
synchronized (mLock) {
|
||||
// setup wizard is done now so we can unblock
|
||||
if (setupWizardCompleteForCurrentUser()) {
|
||||
if (setupWizardCompleteForCurrentUser() && !selfChange) {
|
||||
mSetupWizardComplete = true;
|
||||
getContext().getContentResolver()
|
||||
.unregisterContentObserver(mSetupWizardObserver);
|
||||
@@ -348,6 +350,9 @@ final class UiModeManagerService extends SystemService {
|
||||
IntentFilter batteryFilter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED);
|
||||
context.registerReceiver(mBatteryReceiver, batteryFilter);
|
||||
|
||||
context.registerReceiver(mSettingsRestored,
|
||||
new IntentFilter(Intent.ACTION_SETTING_RESTORED), null, mHandler);
|
||||
|
||||
mLocalPowerManager =
|
||||
LocalServices.getService(PowerManagerInternal.class);
|
||||
initPowerSave();
|
||||
@@ -395,6 +400,22 @@ final class UiModeManagerService extends SystemService {
|
||||
mHandler.post(() -> updateSystemProperties());
|
||||
}
|
||||
|
||||
private final BroadcastReceiver mSettingsRestored = new BroadcastReceiver() {
|
||||
@Override
|
||||
public void onReceive(Context context, Intent intent) {
|
||||
List<String> settings = Arrays.asList(
|
||||
Secure.UI_NIGHT_MODE, Secure.DARK_THEME_CUSTOM_START_TIME,
|
||||
Secure.DARK_THEME_CUSTOM_END_TIME);
|
||||
if (settings.contains(intent.getExtras().getCharSequence(Intent.EXTRA_SETTING_NAME))) {
|
||||
synchronized (mLock) {
|
||||
updateNightModeFromSettingsLocked(context, context.getResources(),
|
||||
UserHandle.getCallingUserId());
|
||||
updateConfigurationLocked();
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
private void initPowerSave() {
|
||||
mPowerSave =
|
||||
mLocalPowerManager.getLowPowerState(ServiceType.NIGHT_MODE)
|
||||
|
||||
Reference in New Issue
Block a user