Merge "Dark Theme doesnt forget car changes" into rvc-dev am: 88973641ac
Change-Id: I7fff922200a617b014d76254f486fcc0575a871e
This commit is contained in:
@@ -84,6 +84,7 @@ import java.util.Set;
|
||||
import static android.app.UiModeManager.MODE_NIGHT_AUTO;
|
||||
import static android.app.UiModeManager.MODE_NIGHT_CUSTOM;
|
||||
import static android.app.UiModeManager.MODE_NIGHT_YES;
|
||||
import static android.os.UserHandle.USER_SYSTEM;
|
||||
import static android.util.TimeUtils.isTimeBetween;
|
||||
|
||||
final class UiModeManagerService extends SystemService {
|
||||
@@ -151,6 +152,7 @@ final class UiModeManagerService extends SystemService {
|
||||
// Example: Activate dark mode in the day time until sunrise the next day
|
||||
private boolean mOverrideNightModeOn;
|
||||
private boolean mOverrideNightModeOff;
|
||||
private int mOverrideNightModeUser = USER_SYSTEM;
|
||||
|
||||
private PowerManager.WakeLock mWakeLock;
|
||||
|
||||
@@ -668,10 +670,7 @@ final class UiModeManagerService extends SystemService {
|
||||
|
||||
mNightMode = mode;
|
||||
resetNightModeOverrideLocked();
|
||||
// Only persist setting if not in car mode
|
||||
if (!mCarModeEnabled) {
|
||||
persistNightMode(user);
|
||||
}
|
||||
persistNightMode(user);
|
||||
// on screen off will update configuration instead
|
||||
if ((mNightMode != MODE_NIGHT_AUTO && mNightMode != MODE_NIGHT_CUSTOM)
|
||||
|| shouldApplyAutomaticChangesImmediately()) {
|
||||
@@ -730,6 +729,8 @@ final class UiModeManagerService extends SystemService {
|
||||
unregisterScreenOffEventLocked();
|
||||
mOverrideNightModeOff = !active;
|
||||
mOverrideNightModeOn = active;
|
||||
mOverrideNightModeUser = user;
|
||||
persistNightModeOverrides(user);
|
||||
} else if (mNightMode == UiModeManager.MODE_NIGHT_NO
|
||||
&& active) {
|
||||
mNightMode = UiModeManager.MODE_NIGHT_YES;
|
||||
@@ -1008,12 +1009,10 @@ final class UiModeManagerService extends SystemService {
|
||||
}
|
||||
|
||||
private void persistNightMode(int user) {
|
||||
// Only persist setting if not in car mode
|
||||
if (mCarModeEnabled) return;
|
||||
Secure.putIntForUser(getContext().getContentResolver(),
|
||||
Secure.UI_NIGHT_MODE, mNightMode, user);
|
||||
Secure.putIntForUser(getContext().getContentResolver(),
|
||||
Secure.UI_NIGHT_MODE_OVERRIDE_ON, mOverrideNightModeOn ? 1 : 0, user);
|
||||
Secure.putIntForUser(getContext().getContentResolver(),
|
||||
Secure.UI_NIGHT_MODE_OVERRIDE_OFF, mOverrideNightModeOff ? 1 : 0, user);
|
||||
Secure.putLongForUser(getContext().getContentResolver(),
|
||||
Secure.DARK_THEME_CUSTOM_START_TIME,
|
||||
mCustomAutoNightModeStartMilliseconds.toNanoOfDay() / 1000, user);
|
||||
@@ -1022,6 +1021,15 @@ final class UiModeManagerService extends SystemService {
|
||||
mCustomAutoNightModeEndMilliseconds.toNanoOfDay() / 1000, user);
|
||||
}
|
||||
|
||||
private void persistNightModeOverrides(int user) {
|
||||
// Only persist setting if not in car mode
|
||||
if (mCarModeEnabled) return;
|
||||
Secure.putIntForUser(getContext().getContentResolver(),
|
||||
Secure.UI_NIGHT_MODE_OVERRIDE_ON, mOverrideNightModeOn ? 1 : 0, user);
|
||||
Secure.putIntForUser(getContext().getContentResolver(),
|
||||
Secure.UI_NIGHT_MODE_OVERRIDE_OFF, mOverrideNightModeOff ? 1 : 0, user);
|
||||
}
|
||||
|
||||
private void updateConfigurationLocked() {
|
||||
int uiMode = mDefaultUiModeType;
|
||||
if (mUiModeLocked) {
|
||||
@@ -1392,12 +1400,15 @@ final class UiModeManagerService extends SystemService {
|
||||
}
|
||||
}
|
||||
|
||||
private void resetNightModeOverrideLocked() {
|
||||
private boolean resetNightModeOverrideLocked() {
|
||||
if (mOverrideNightModeOff || mOverrideNightModeOn) {
|
||||
mOverrideNightModeOff = false;
|
||||
mOverrideNightModeOn = false;
|
||||
persistNightMode(UserHandle.getCallingUserId());
|
||||
persistNightModeOverrides(mOverrideNightModeUser);
|
||||
mOverrideNightModeUser = USER_SYSTEM;
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
private void registerVrStateListener() {
|
||||
@@ -1538,7 +1549,7 @@ final class UiModeManagerService extends SystemService {
|
||||
public void onReceive(Context context, Intent intent) {
|
||||
synchronized (mLock) {
|
||||
final int currentId = intent.getIntExtra(
|
||||
Intent.EXTRA_USER_HANDLE, UserHandle.USER_SYSTEM);
|
||||
Intent.EXTRA_USER_HANDLE, USER_SYSTEM);
|
||||
// only update if the value is actually changed
|
||||
if (updateNightModeFromSettingsLocked(context, context.getResources(), currentId)) {
|
||||
updateLocked(0, 0);
|
||||
|
||||
Reference in New Issue
Block a user