Update dark theme to have new screen

The dark theme preference should have it's own screen rather than
being a dialog. This adds some boilerplate code that will be
needed for the illustration as well as converting the current
list preference to open a new screen.

Test: robotests
Bug: 128686189
Change-Id: I5b62276353c0d39ad2ad00d21d2280e76cceb09b
This commit is contained in:
Salvador Martinez
2019-03-20 10:52:52 -07:00
parent 12256ca49f
commit 1053ec04b4
10 changed files with 433 additions and 162 deletions

View File

@@ -27,8 +27,7 @@ import androidx.preference.PreferenceScreen;
import com.android.settings.R;
import com.android.settings.core.BasePreferenceController;
public class DarkUIPreferenceController extends BasePreferenceController
implements Preference.OnPreferenceChangeListener {
public class DarkUIPreferenceController extends BasePreferenceController {
private UiModeManager mUiModeManager;
@@ -47,59 +46,9 @@ public class DarkUIPreferenceController extends BasePreferenceController
return AVAILABLE;
}
@Override
public void displayPreference(PreferenceScreen screen) {
super.displayPreference(screen);
int value = mUiModeManager.getNightMode();
ListPreference preference = screen.findPreference(getPreferenceKey());
preference.setValue(modeToString(value));
}
@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
mUiModeManager.setNightMode(modeToInt((String) newValue));
refreshSummary(preference);
return true;
}
@Override
public CharSequence getSummary() {
return modeToDescription(mUiModeManager.getNightMode());
}
private String modeToDescription(int mode) {
String[] values = mContext.getResources().getStringArray(R.array.dark_ui_mode_entries);
switch (mode) {
case UiModeManager.MODE_NIGHT_YES:
return values[0];
case UiModeManager.MODE_NIGHT_NO:
case UiModeManager.MODE_NIGHT_AUTO:
default:
return values[1];
}
}
private String modeToString(int mode) {
switch (mode) {
case UiModeManager.MODE_NIGHT_YES:
return "yes";
case UiModeManager.MODE_NIGHT_NO:
case UiModeManager.MODE_NIGHT_AUTO:
default:
return "no";
}
}
private int modeToInt(String mode) {
switch (mode) {
case "yes":
return UiModeManager.MODE_NIGHT_YES;
case "no":
case "auto":
default:
return UiModeManager.MODE_NIGHT_NO;
}
return DarkUISettingsRadioButtonsController.modeToDescription(
mContext, mUiModeManager.getNightMode());
}
}