diff options
Diffstat (limited to 'services')
-rw-r--r-- | services/core/java/com/android/server/UiModeManagerService.java | 49 |
1 files changed, 23 insertions, 26 deletions
diff --git a/services/core/java/com/android/server/UiModeManagerService.java b/services/core/java/com/android/server/UiModeManagerService.java index d1b4569..aeacd45 100644 --- a/services/core/java/com/android/server/UiModeManagerService.java +++ b/services/core/java/com/android/server/UiModeManagerService.java @@ -31,6 +31,7 @@ import android.content.Intent; import android.content.IntentFilter; import android.content.pm.PackageManager; import android.content.res.Configuration; +import android.content.res.Resources; import android.os.BatteryManager; import android.os.Binder; import android.os.Handler; @@ -63,7 +64,7 @@ final class UiModeManagerService extends SystemService { private int mDockState = Intent.EXTRA_DOCK_STATE_UNDOCKED; private int mLastBroadcastState = Intent.EXTRA_DOCK_STATE_UNDOCKED; - int mNightMode = UiModeManager.MODE_NIGHT_NO; + private int mNightMode = UiModeManager.MODE_NIGHT_NO; private boolean mCarModeEnabled = false; private boolean mCharging = false; @@ -157,6 +158,7 @@ final class UiModeManagerService extends SystemService { public void onStart() { final Context context = getContext(); mTwilightManager = getLocalService(TwilightManager.class); + final PowerManager powerManager = (PowerManager) context.getSystemService(Context.POWER_SERVICE); mWakeLock = powerManager.newWakeLock(PowerManager.FULL_WAKE_LOCK, TAG); @@ -168,20 +170,23 @@ final class UiModeManagerService extends SystemService { mConfiguration.setToDefaults(); - mDefaultUiModeType = context.getResources().getInteger( + final Resources res = context.getResources(); + mDefaultUiModeType = res.getInteger( com.android.internal.R.integer.config_defaultUiModeType); - mCarModeKeepsScreenOn = (context.getResources().getInteger( + mCarModeKeepsScreenOn = (res.getInteger( com.android.internal.R.integer.config_carDockKeepsScreenOn) == 1); - mDeskModeKeepsScreenOn = (context.getResources().getInteger( + mDeskModeKeepsScreenOn = (res.getInteger( com.android.internal.R.integer.config_deskDockKeepsScreenOn) == 1); - mTelevision = context.getPackageManager().hasSystemFeature( - PackageManager.FEATURE_TELEVISION) || - context.getPackageManager().hasSystemFeature( - PackageManager.FEATURE_LEANBACK); - mWatch = context.getPackageManager().hasSystemFeature(PackageManager.FEATURE_WATCH); + final PackageManager pm = context.getPackageManager(); + mTelevision = pm.hasSystemFeature(PackageManager.FEATURE_TELEVISION) + || pm.hasSystemFeature(PackageManager.FEATURE_LEANBACK); + mWatch = pm.hasSystemFeature(PackageManager.FEATURE_WATCH); + + final int defaultNightMode = res.getInteger( + com.android.internal.R.integer.config_defaultNightMode); mNightMode = Settings.Secure.getInt(context.getContentResolver(), - Settings.Secure.UI_NIGHT_MODE, UiModeManager.MODE_NIGHT_AUTO); + Settings.Secure.UI_NIGHT_MODE, defaultNightMode); mTwilightManager.registerListener(mTwilightListener, mHandler); @@ -245,7 +250,7 @@ final class UiModeManagerService extends SystemService { final long ident = Binder.clearCallingIdentity(); try { synchronized (mLock) { - if (isDoingNightModeLocked() && mNightMode != mode) { + if (mNightMode != mode) { Settings.Secure.putInt(getContext().getContentResolver(), Settings.Secure.UI_NIGHT_MODE, mode); mNightMode = mode; @@ -309,10 +314,6 @@ final class UiModeManagerService extends SystemService { } } - boolean isDoingNightModeLocked() { - return mCarModeEnabled || mDockState != Intent.EXTRA_DOCK_STATE_UNDOCKED; - } - void setCarModeLocked(boolean enabled, int flags) { if (mCarModeEnabled != enabled) { mCarModeEnabled = enabled; @@ -354,17 +355,13 @@ final class UiModeManagerService extends SystemService { } else if (isDeskDockState(mDockState)) { uiMode = Configuration.UI_MODE_TYPE_DESK; } - if (mCarModeEnabled) { - if (mNightMode == UiModeManager.MODE_NIGHT_AUTO) { - updateComputedNightModeLocked(); - uiMode |= mComputedNightMode ? Configuration.UI_MODE_NIGHT_YES - : Configuration.UI_MODE_NIGHT_NO; - } else { - uiMode |= mNightMode << 4; - } + + if (mNightMode == UiModeManager.MODE_NIGHT_AUTO) { + updateComputedNightModeLocked(); + uiMode |= mComputedNightMode ? Configuration.UI_MODE_NIGHT_YES + : Configuration.UI_MODE_NIGHT_NO; } else { - // Disabling the car mode clears the night mode. - uiMode = (uiMode & ~Configuration.UI_MODE_NIGHT_MASK) | Configuration.UI_MODE_NIGHT_NO; + uiMode |= mNightMode << 4; } if (LOG) { @@ -618,7 +615,7 @@ final class UiModeManagerService extends SystemService { void updateTwilight() { synchronized (mLock) { - if (isDoingNightModeLocked() && mNightMode == UiModeManager.MODE_NIGHT_AUTO) { + if (mNightMode == UiModeManager.MODE_NIGHT_AUTO) { updateComputedNightModeLocked(); updateLocked(0, 0); } |