Updated UiModeManagerService to always trigger configuration change for

setNightMode if it is AAE.

Bug: 145997050
Test: Manual
Change-Id: I6450dda422622ac29862f5d1fc362e23f55228f0
Merged-In: I6450dda422622ac29862f5d1fc362e23f55228f0
This commit is contained in:
JianYang Liu
2019-12-10 14:32:30 -08:00
committed by Jian-Yang Liu
parent f7eebf6f26
commit 3eee9437b2

View File

@@ -16,6 +16,8 @@
package com.android.server; package com.android.server;
import static android.content.Intent.ACTION_SCREEN_OFF;
import android.annotation.IntRange; import android.annotation.IntRange;
import android.annotation.Nullable; import android.annotation.Nullable;
import android.app.Activity; import android.app.Activity;
@@ -56,6 +58,7 @@ import android.service.vr.IVrManager;
import android.service.vr.IVrStateCallbacks; import android.service.vr.IVrStateCallbacks;
import android.util.ArraySet; import android.util.ArraySet;
import android.util.Slog; import android.util.Slog;
import com.android.internal.R; import com.android.internal.R;
import com.android.internal.annotations.VisibleForTesting; import com.android.internal.annotations.VisibleForTesting;
import com.android.internal.app.DisableCarModeActivity; import com.android.internal.app.DisableCarModeActivity;
@@ -73,8 +76,6 @@ import java.util.HashMap;
import java.util.Map; import java.util.Map;
import java.util.Set; import java.util.Set;
import static android.content.Intent.ACTION_SCREEN_OFF;
final class UiModeManagerService extends SystemService { final class UiModeManagerService extends SystemService {
private static final String TAG = UiModeManager.class.getSimpleName(); private static final String TAG = UiModeManager.class.getSimpleName();
private static final boolean LOG = false; private static final boolean LOG = false;
@@ -101,6 +102,7 @@ final class UiModeManagerService extends SystemService {
private boolean mCarModeKeepsScreenOn; private boolean mCarModeKeepsScreenOn;
private boolean mDeskModeKeepsScreenOn; private boolean mDeskModeKeepsScreenOn;
private boolean mTelevision; private boolean mTelevision;
private boolean mCar;
private boolean mWatch; private boolean mWatch;
private boolean mVrHeadset; private boolean mVrHeadset;
private boolean mComputedNightMode; private boolean mComputedNightMode;
@@ -208,9 +210,13 @@ final class UiModeManagerService extends SystemService {
public void onTwilightStateChanged(@Nullable TwilightState state) { public void onTwilightStateChanged(@Nullable TwilightState state) {
synchronized (mLock) { synchronized (mLock) {
if (mNightMode == UiModeManager.MODE_NIGHT_AUTO) { if (mNightMode == UiModeManager.MODE_NIGHT_AUTO) {
final IntentFilter intentFilter = if (mCar) {
new IntentFilter(ACTION_SCREEN_OFF); updateLocked(0, 0);
getContext().registerReceiver(mOnScreenOffHandler, intentFilter); } else {
final IntentFilter intentFilter =
new IntentFilter(ACTION_SCREEN_OFF);
getContext().registerReceiver(mOnScreenOffHandler, intentFilter);
}
} }
} }
} }
@@ -327,6 +333,7 @@ final class UiModeManagerService extends SystemService {
final PackageManager pm = context.getPackageManager(); final PackageManager pm = context.getPackageManager();
mTelevision = pm.hasSystemFeature(PackageManager.FEATURE_TELEVISION) mTelevision = pm.hasSystemFeature(PackageManager.FEATURE_TELEVISION)
|| pm.hasSystemFeature(PackageManager.FEATURE_LEANBACK); || pm.hasSystemFeature(PackageManager.FEATURE_LEANBACK);
mCar = pm.hasSystemFeature(PackageManager.FEATURE_AUTOMOTIVE);
mWatch = pm.hasSystemFeature(PackageManager.FEATURE_WATCH); mWatch = pm.hasSystemFeature(PackageManager.FEATURE_WATCH);
updateNightModeFromSettings(context, res, UserHandle.getCallingUserId()); updateNightModeFromSettings(context, res, UserHandle.getCallingUserId());
@@ -542,7 +549,7 @@ final class UiModeManagerService extends SystemService {
mNightMode = mode; mNightMode = mode;
mNightModeOverride = mode; mNightModeOverride = mode;
//on screen off will update configuration instead //on screen off will update configuration instead
if (mNightMode != UiModeManager.MODE_NIGHT_AUTO) { if (mNightMode != UiModeManager.MODE_NIGHT_AUTO || mCar) {
updateLocked(0, 0); updateLocked(0, 0);
} else { } else {
getContext().registerReceiver( getContext().registerReceiver(