Revert "Revert "Unable to select twilight scheduling after enabling location""

This reverts commit 782438347b.
Bug: 153115261
Reason for revert: fixing tests

Change-Id: I497a2b83cbe3eaee5f5fb3eb4df73618130fc6e2
This commit is contained in:
Jay Aliomer
2020-05-13 15:39:46 +00:00
parent fa1e102af7
commit dba11e82b5
3 changed files with 12 additions and 9 deletions

View File

@@ -74,7 +74,7 @@ public class NightDisplayAutoModePreferenceController extends BasePreferenceCont
if (String.valueOf(ColorDisplayManager.AUTO_MODE_TWILIGHT).equals(newValue) if (String.valueOf(ColorDisplayManager.AUTO_MODE_TWILIGHT).equals(newValue)
&& !mLocationManager.isLocationEnabled()) { && !mLocationManager.isLocationEnabled()) {
TwilightLocationDialog.show(mContext); TwilightLocationDialog.show(mContext);
return false; return true;
} }
return mColorDisplayManager.setNightDisplayAutoMode(Integer.parseInt((String) newValue)); return mColorDisplayManager.setNightDisplayAutoMode(Integer.parseInt((String) newValue));
} }

View File

@@ -33,7 +33,7 @@ import com.android.settings.display.TwilightLocationDialog;
*/ */
public class DarkModeScheduleSelectorController extends BasePreferenceController public class DarkModeScheduleSelectorController extends BasePreferenceController
implements Preference.OnPreferenceChangeListener { implements Preference.OnPreferenceChangeListener {
private static final String TAG = DarkModeScheduleSelectorController.class.getSimpleName();
private final UiModeManager mUiModeManager; private final UiModeManager mUiModeManager;
private PowerManager mPowerManager; private PowerManager mPowerManager;
private DropDownPreference mPreference; private DropDownPreference mPreference;
@@ -51,7 +51,6 @@ public class DarkModeScheduleSelectorController extends BasePreferenceController
public void displayPreference(PreferenceScreen screen) { public void displayPreference(PreferenceScreen screen) {
super.displayPreference(screen); super.displayPreference(screen);
mPreference = screen.findPreference(getPreferenceKey()); mPreference = screen.findPreference(getPreferenceKey());
init();
} }
@Override @Override
@@ -59,7 +58,8 @@ public class DarkModeScheduleSelectorController extends BasePreferenceController
return BasePreferenceController.AVAILABLE; return BasePreferenceController.AVAILABLE;
} }
private void init() { @Override
public final void updateState(Preference preference) {
final boolean batterySaver = mPowerManager.isPowerSaveMode(); final boolean batterySaver = mPowerManager.isPowerSaveMode();
mPreference.setEnabled(!batterySaver); mPreference.setEnabled(!batterySaver);
mCurrentMode = getCurrentMode(); mCurrentMode = getCurrentMode();
@@ -87,25 +87,25 @@ public class DarkModeScheduleSelectorController extends BasePreferenceController
if (newMode == mCurrentMode) { if (newMode == mCurrentMode) {
return false; return false;
} }
mCurrentMode = newMode; if (newMode == mPreference.findIndexOfValue(
if (mCurrentMode == mPreference.findIndexOfValue(
mContext.getString(R.string.dark_ui_auto_mode_never))) { mContext.getString(R.string.dark_ui_auto_mode_never))) {
boolean active = (mContext.getResources().getConfiguration().uiMode boolean active = (mContext.getResources().getConfiguration().uiMode
& Configuration.UI_MODE_NIGHT_YES) != 0; & Configuration.UI_MODE_NIGHT_YES) != 0;
int mode = active ? UiModeManager.MODE_NIGHT_YES int mode = active ? UiModeManager.MODE_NIGHT_YES
: UiModeManager.MODE_NIGHT_NO; : UiModeManager.MODE_NIGHT_NO;
mUiModeManager.setNightMode(mode); mUiModeManager.setNightMode(mode);
} else if (mCurrentMode == mPreference.findIndexOfValue( } else if (newMode == mPreference.findIndexOfValue(
mContext.getString(R.string.dark_ui_auto_mode_auto))) { mContext.getString(R.string.dark_ui_auto_mode_auto))) {
if (!mLocationManager.isLocationEnabled()) { if (!mLocationManager.isLocationEnabled()) {
TwilightLocationDialog.show(mContext); TwilightLocationDialog.show(mContext);
return false; return true;
} }
mUiModeManager.setNightMode(UiModeManager.MODE_NIGHT_AUTO); mUiModeManager.setNightMode(UiModeManager.MODE_NIGHT_AUTO);
} else if (mCurrentMode == mPreference.findIndexOfValue( } else if (newMode == mPreference.findIndexOfValue(
mContext.getString(R.string.dark_ui_auto_mode_custom))) { mContext.getString(R.string.dark_ui_auto_mode_custom))) {
mUiModeManager.setNightMode(UiModeManager.MODE_NIGHT_CUSTOM); mUiModeManager.setNightMode(UiModeManager.MODE_NIGHT_CUSTOM);
} }
mCurrentMode = newMode;
return true; return true;
} }
} }

View File

@@ -98,6 +98,7 @@ public class DarkModeScheduleSelectorControllerTest {
public void nightMode_updateStateNone_dropDownValueChangedToNone() { public void nightMode_updateStateNone_dropDownValueChangedToNone() {
when(mUiService.getNightMode()).thenReturn(UiModeManager.MODE_NIGHT_YES); when(mUiService.getNightMode()).thenReturn(UiModeManager.MODE_NIGHT_YES);
mController.displayPreference(mScreen); mController.displayPreference(mScreen);
mController.updateState(mScreen);
verify(mPreference).setValueIndex(0); verify(mPreference).setValueIndex(0);
} }
@@ -105,6 +106,7 @@ public class DarkModeScheduleSelectorControllerTest {
public void nightMode_updateStateNone_dropDownValueChangedToAuto() { public void nightMode_updateStateNone_dropDownValueChangedToAuto() {
when(mUiService.getNightMode()).thenReturn(UiModeManager.MODE_NIGHT_AUTO); when(mUiService.getNightMode()).thenReturn(UiModeManager.MODE_NIGHT_AUTO);
mController.displayPreference(mScreen); mController.displayPreference(mScreen);
mController.updateState(mScreen);
verify(mPreference).setValueIndex(1); verify(mPreference).setValueIndex(1);
} }
@@ -112,6 +114,7 @@ public class DarkModeScheduleSelectorControllerTest {
public void batterySaver_dropDown_disabledSelector() { public void batterySaver_dropDown_disabledSelector() {
when(mPM.isPowerSaveMode()).thenReturn(true); when(mPM.isPowerSaveMode()).thenReturn(true);
mController.displayPreference(mScreen); mController.displayPreference(mScreen);
mController.updateState(mScreen);
verify(mPreference).setEnabled(eq(false)); verify(mPreference).setEnabled(eq(false));
} }
} }