Merge "Add summary for Display->Color settings."

This commit is contained in:
TreeHugger Robot
2018-02-28 20:52:27 +00:00
committed by Android (Google) Code Review
2 changed files with 121 additions and 9 deletions

View File

@@ -18,34 +18,56 @@ import android.os.IBinder;
import android.os.Parcel;
import android.os.RemoteException;
import android.os.ServiceManager;
import android.support.v7.preference.Preference;
import android.util.Log;
import com.android.internal.annotations.VisibleForTesting;
import com.android.settings.core.PreferenceControllerMixin;
import com.android.settingslib.core.AbstractPreferenceController;
import com.android.internal.app.ColorDisplayController;
import com.android.settings.R;
import com.android.settings.core.BasePreferenceController;
public class ColorModePreferenceController extends AbstractPreferenceController implements
PreferenceControllerMixin {
public class ColorModePreferenceController extends BasePreferenceController {
private static final String TAG = "ColorModePreference";
private static final String KEY_COLOR_MODE = "color_mode";
private static final int SURFACE_FLINGER_TRANSACTION_QUERY_WIDE_COLOR = 1024;
private final ConfigurationWrapper mConfigWrapper;
private ColorDisplayController mColorDisplayController;
public ColorModePreferenceController(Context context) {
super(context);
super(context, KEY_COLOR_MODE);
mConfigWrapper = new ConfigurationWrapper();
}
@Override
public String getPreferenceKey() {
return KEY_COLOR_MODE;
public int getAvailabilityStatus() {
return mConfigWrapper.isScreenWideColorGamut() ? AVAILABLE : DISABLED_FOR_USER;
}
@Override
public boolean isAvailable() {
return mConfigWrapper.isScreenWideColorGamut();
public void updateState(Preference preference) {
preference.setSummary(getSummary());
}
@Override
public CharSequence getSummary() {
final int colorMode = getColorDisplayController().getColorMode();
if (colorMode == ColorDisplayController.COLOR_MODE_SATURATED) {
return mContext.getText(R.string.color_mode_option_saturated);
}
if (colorMode == ColorDisplayController.COLOR_MODE_BOOSTED) {
return mContext.getText(R.string.color_mode_option_boosted);
}
return mContext.getText(R.string.color_mode_option_natural);
}
@VisibleForTesting
ColorDisplayController getColorDisplayController() {
if (mColorDisplayController == null) {
mColorDisplayController = new ColorDisplayController(mContext);
}
return mColorDisplayController;
}
@VisibleForTesting