summaryrefslogtreecommitdiffstats
path: root/src/com/android/settings/livedisplay/LiveDisplay.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/android/settings/livedisplay/LiveDisplay.java')
-rw-r--r--src/com/android/settings/livedisplay/LiveDisplay.java140
1 files changed, 59 insertions, 81 deletions
diff --git a/src/com/android/settings/livedisplay/LiveDisplay.java b/src/com/android/settings/livedisplay/LiveDisplay.java
index 7000cc8..a3f4636 100644
--- a/src/com/android/settings/livedisplay/LiveDisplay.java
+++ b/src/com/android/settings/livedisplay/LiveDisplay.java
@@ -15,20 +15,19 @@
*/
package com.android.settings.livedisplay;
-import static cyanogenmod.hardware.CMHardwareManager.FEATURE_ADAPTIVE_BACKLIGHT;
-import static cyanogenmod.hardware.CMHardwareManager.FEATURE_COLOR_ENHANCEMENT;
-import static cyanogenmod.hardware.CMHardwareManager.FEATURE_DISPLAY_MODES;
-import static cyanogenmod.hardware.CMHardwareManager.FEATURE_DISPLAY_GAMMA_CALIBRATION;
-import static cyanogenmod.hardware.CMHardwareManager.FEATURE_SUNLIGHT_ENHANCEMENT;
+import static cyanogenmod.hardware.LiveDisplayManager.FEATURE_CABC;
+import static cyanogenmod.hardware.LiveDisplayManager.FEATURE_COLOR_ADJUSTMENT;
+import static cyanogenmod.hardware.LiveDisplayManager.FEATURE_COLOR_ENHANCEMENT;
+import static cyanogenmod.hardware.LiveDisplayManager.FEATURE_DISPLAY_MODES;
+import static cyanogenmod.hardware.LiveDisplayManager.FEATURE_PICTURE_ADJUSTMENT;
+import static cyanogenmod.hardware.LiveDisplayManager.MODE_OFF;
+import static cyanogenmod.hardware.LiveDisplayManager.MODE_OUTDOOR;
-import android.app.Activity;
-import android.database.ContentObserver;
import android.content.ContentResolver;
import android.content.Context;
import android.content.res.Resources;
import android.database.ContentObserver;
import android.net.Uri;
-import android.os.Build;
import android.os.Bundle;
import android.os.Handler;
import android.os.UserHandle;
@@ -38,7 +37,6 @@ import android.preference.PreferenceCategory;
import android.preference.PreferenceScreen;
import android.preference.SwitchPreference;
import android.provider.SearchIndexableResource;
-import android.provider.Settings;
import android.util.Log;
import com.android.internal.util.ArrayUtils;
@@ -48,14 +46,17 @@ import com.android.settings.Utils;
import com.android.settings.search.BaseSearchIndexProvider;
import com.android.settings.search.Indexable;
-import cyanogenmod.hardware.CMHardwareManager;
-import cyanogenmod.hardware.DisplayMode;
-import cyanogenmod.providers.CMSettings;
import org.cyanogenmod.internal.logging.CMMetricsLogger;
import java.util.ArrayList;
import java.util.List;
+import cyanogenmod.hardware.CMHardwareManager;
+import cyanogenmod.hardware.DisplayMode;
+import cyanogenmod.hardware.LiveDisplayConfig;
+import cyanogenmod.hardware.LiveDisplayManager;
+import cyanogenmod.providers.CMSettings;
+
public class LiveDisplay extends SettingsPreferenceFragment implements
Preference.OnPreferenceChangeListener, Indexable {
@@ -72,17 +73,10 @@ public class LiveDisplay extends SettingsPreferenceFragment implements
private static final String KEY_LIVE_DISPLAY_TEMPERATURE = "live_display_color_temperature";
private static final String KEY_DISPLAY_COLOR = "color_calibration";
- private static final String KEY_DISPLAY_GAMMA = "gamma_tuning";
- private static final String KEY_SCREEN_COLOR_SETTINGS = "screencolor_settings";
+ private static final String KEY_PICTURE_ADJUSTMENT = "picture_adjustment";
private static final String KEY_LIVE_DISPLAY_COLOR_PROFILE = "live_display_color_profile";
- public static final int MODE_OFF = 0;
- public static final int MODE_NIGHT = 1;
- public static final int MODE_AUTO = 2;
- public static final int MODE_OUTDOOR = 3;
- public static final int MODE_DAY = 4;
-
private final Handler mHandler = new Handler();
private final SettingsObserver mObserver = new SettingsObserver();
@@ -92,8 +86,9 @@ public class LiveDisplay extends SettingsPreferenceFragment implements
private SwitchPreference mLowPower;
private SwitchPreference mOutdoorMode;
- private PreferenceScreen mScreenColorSettings;
+ private PictureAdjustment mPictureAdjustment;
private DisplayTemperature mDisplayTemperature;
+ private DisplayColor mDisplayColor;
private ListPreference mColorProfile;
private String[] mColorProfileSummaries;
@@ -102,26 +97,21 @@ public class LiveDisplay extends SettingsPreferenceFragment implements
private String[] mModeValues;
private String[] mModeSummaries;
- private int mDefaultDayTemperature;
- private int mDefaultNightTemperature;
-
private boolean mHasDisplayModes = false;
+ private LiveDisplayManager mLiveDisplayManager;
+ private LiveDisplayConfig mConfig;
+
private CMHardwareManager mHardware;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
- final Activity activity = getActivity();
- final ContentResolver resolver = activity.getContentResolver();
final Resources res = getResources();
- mDefaultDayTemperature = res.getInteger(
- org.cyanogenmod.platform.internal.R.integer.config_dayColorTemperature);
- mDefaultNightTemperature = res.getInteger(
- org.cyanogenmod.platform.internal.R.integer.config_nightColorTemperature);
-
- mHardware = CMHardwareManager.getInstance(activity);
+ mHardware = CMHardwareManager.getInstance(getActivity());
+ mLiveDisplayManager = LiveDisplayManager.getInstance(getActivity());
+ mConfig = mLiveDisplayManager.getConfig();
addPreferencesFromResource(R.xml.livedisplay);
@@ -130,9 +120,8 @@ public class LiveDisplay extends SettingsPreferenceFragment implements
PreferenceCategory advancedPrefs = (PreferenceCategory)
findPreference(KEY_CATEGORY_ADVANCED);
- int adaptiveMode = CMSettings.System.getIntForUser(resolver,
- CMSettings.System.DISPLAY_TEMPERATURE_MODE,
- 0, UserHandle.USER_CURRENT);
+ int adaptiveMode = mLiveDisplayManager.getMode();
+
mLiveDisplay = (ListPreference) findPreference(KEY_LIVE_DISPLAY);
mLiveDisplay.setValue(String.valueOf(adaptiveMode));
@@ -144,7 +133,7 @@ public class LiveDisplay extends SettingsPreferenceFragment implements
org.cyanogenmod.platform.internal.R.array.live_display_summaries);
// Remove outdoor mode from lists if there is no support
- if (!mHardware.isSupported(FEATURE_SUNLIGHT_ENHANCEMENT)) {
+ if (!mConfig.hasFeature(LiveDisplayManager.MODE_OUTDOOR)) {
int idx = ArrayUtils.indexOf(mModeValues, String.valueOf(MODE_OUTDOOR));
String[] entriesTemp = new String[mModeEntries.length - 1];
String[] valuesTemp = new String[mModeValues.length - 1];
@@ -172,7 +161,7 @@ public class LiveDisplay extends SettingsPreferenceFragment implements
mColorProfile = (ListPreference) findPreference(KEY_LIVE_DISPLAY_COLOR_PROFILE);
if (liveDisplayPrefs != null && mColorProfile != null
- && (!mHardware.isSupported(FEATURE_DISPLAY_MODES) || !updateDisplayModes())) {
+ && (!mConfig.hasFeature(FEATURE_DISPLAY_MODES) || !updateDisplayModes())) {
liveDisplayPrefs.removePreference(mColorProfile);
} else {
mHasDisplayModes = true;
@@ -181,39 +170,37 @@ public class LiveDisplay extends SettingsPreferenceFragment implements
mOutdoorMode = (SwitchPreference) findPreference(KEY_LIVE_DISPLAY_AUTO_OUTDOOR_MODE);
if (liveDisplayPrefs != null && mOutdoorMode != null
- && !mHardware.isSupported(FEATURE_SUNLIGHT_ENHANCEMENT)) {
+ && !mConfig.hasFeature(MODE_OUTDOOR)) {
liveDisplayPrefs.removePreference(mOutdoorMode);
mOutdoorMode = null;
}
mLowPower = (SwitchPreference) findPreference(KEY_LIVE_DISPLAY_LOW_POWER);
if (advancedPrefs != null && mLowPower != null
- && !mHardware.isSupported(FEATURE_ADAPTIVE_BACKLIGHT)) {
+ && !mConfig.hasFeature(FEATURE_CABC)) {
advancedPrefs.removePreference(mLowPower);
mLowPower = null;
}
mColorEnhancement = (SwitchPreference) findPreference(KEY_LIVE_DISPLAY_COLOR_ENHANCE);
if (advancedPrefs != null && mColorEnhancement != null
- && !mHardware.isSupported(FEATURE_COLOR_ENHANCEMENT)) {
+ && !mConfig.hasFeature(FEATURE_COLOR_ENHANCEMENT)) {
advancedPrefs.removePreference(mColorEnhancement);
mColorEnhancement = null;
}
- if (advancedPrefs != null
- && !mHardware.isSupported(FEATURE_DISPLAY_GAMMA_CALIBRATION)) {
- Preference gammaPref = findPreference(KEY_DISPLAY_GAMMA);
- if (gammaPref != null) {
- advancedPrefs.removePreference(gammaPref);
- }
+ mPictureAdjustment = (PictureAdjustment) findPreference(KEY_PICTURE_ADJUSTMENT);
+ if (advancedPrefs != null && mPictureAdjustment != null &&
+ !mConfig.hasFeature(LiveDisplayManager.FEATURE_PICTURE_ADJUSTMENT)) {
+ advancedPrefs.removePreference(mPictureAdjustment);
+ mPictureAdjustment = null;
}
- mScreenColorSettings = (PreferenceScreen) findPreference(KEY_SCREEN_COLOR_SETTINGS);
- if (advancedPrefs != null) {
- if (mScreenColorSettings != null &&
- (mHasDisplayModes ||!isPostProcessingSupported(getActivity()))) {
- advancedPrefs.removePreference(mScreenColorSettings);
- }
+ mDisplayColor = (DisplayColor) findPreference(KEY_DISPLAY_COLOR);
+ if (advancedPrefs != null && mDisplayColor != null &&
+ !mConfig.hasFeature(LiveDisplayManager.FEATURE_COLOR_ADJUSTMENT)) {
+ advancedPrefs.removePreference(mDisplayColor);
+ mDisplayColor = null;
}
}
@@ -254,7 +241,8 @@ public class LiveDisplay extends SettingsPreferenceFragment implements
return false;
}
- final DisplayMode cur = mHardware.getDefaultDisplayMode();
+ final DisplayMode cur = mHardware.getCurrentDisplayMode() != null
+ ? mHardware.getCurrentDisplayMode() : mHardware.getDefaultDisplayMode();
int curId = -1;
String[] entries = new String[modes.length];
String[] values = new String[modes.length];
@@ -274,7 +262,7 @@ public class LiveDisplay extends SettingsPreferenceFragment implements
mColorProfileSummaries[i] = summary;
if (cur != null && modes[i].id == cur.id) {
- curId = -1;
+ curId = cur.id;
}
}
mColorProfile.setEntries(entries);
@@ -292,7 +280,8 @@ public class LiveDisplay extends SettingsPreferenceFragment implements
}
if (value == null) {
- DisplayMode cur = mHardware.getDefaultDisplayMode();
+ DisplayMode cur = mHardware.getCurrentDisplayMode() != null
+ ? mHardware.getCurrentDisplayMode() : mHardware.getDefaultDisplayMode();
if (cur != null && cur.id >= 0) {
value = String.valueOf(cur.id);
}
@@ -310,9 +299,7 @@ public class LiveDisplay extends SettingsPreferenceFragment implements
}
private void updateModeSummary() {
- int mode = CMSettings.System.getIntForUser(getContentResolver(),
- CMSettings.System.DISPLAY_TEMPERATURE_MODE,
- MODE_OFF, UserHandle.USER_CURRENT);
+ int mode = mLiveDisplayManager.getMode();
int index = ArrayUtils.indexOf(mModeValues, String.valueOf(mode));
if (index < 0) {
@@ -331,25 +318,19 @@ public class LiveDisplay extends SettingsPreferenceFragment implements
}
private void updateTemperatureSummary() {
- int day = CMSettings.System.getIntForUser(getContentResolver(),
- CMSettings.System.DISPLAY_TEMPERATURE_DAY,
- mDefaultDayTemperature,
- UserHandle.USER_CURRENT);
- int night = CMSettings.System.getIntForUser(getContentResolver(),
- CMSettings.System.DISPLAY_TEMPERATURE_NIGHT,
- mDefaultNightTemperature,
- UserHandle.USER_CURRENT);
+ int day = mLiveDisplayManager.getDayColorTemperature();
+ int night = mLiveDisplayManager.getNightColorTemperature();
mDisplayTemperature.setSummary(getResources().getString(
- R.string.live_display_color_temperature_summary, day, night));
+ R.string.live_display_color_temperature_summary,
+ mDisplayTemperature.roundUp(day),
+ mDisplayTemperature.roundUp(night)));
}
@Override
public boolean onPreferenceChange(Preference preference, Object objValue) {
if (preference == mLiveDisplay) {
- CMSettings.System.putIntForUser(getContentResolver(),
- CMSettings.System.DISPLAY_TEMPERATURE_MODE,
- Integer.valueOf((String)objValue), UserHandle.USER_CURRENT);
+ mLiveDisplayManager.setMode(Integer.valueOf((String)objValue));
} else if (preference == mColorProfile) {
int id = Integer.valueOf((String)objValue);
Log.i("LiveDisplay", "Setting mode: " + id);
@@ -401,8 +382,6 @@ public class LiveDisplay extends SettingsPreferenceFragment implements
public static final Indexable.SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
new BaseSearchIndexProvider() {
- private boolean mHasSunlightEnhancement, mHasColorEnhancement, mHasLowPower;
- private boolean mHasDisplayGamma;
@Override
public List<SearchIndexableResource> getXmlResourcesToIndex(Context context,
@@ -419,28 +398,27 @@ public class LiveDisplay extends SettingsPreferenceFragment implements
@Override
public List<String> getNonIndexableKeys(Context context) {
- CMHardwareManager hardware = CMHardwareManager.getInstance(context);
+ final CMHardwareManager hardware = CMHardwareManager.getInstance(context);
+ final LiveDisplayConfig config = LiveDisplayManager.getInstance(context).getConfig();
ArrayList<String> result = new ArrayList<String>();
if (!hardware.isSupported(FEATURE_DISPLAY_MODES)) {
result.add(KEY_LIVE_DISPLAY_COLOR_PROFILE);
}
- if (!hardware.isSupported(FEATURE_SUNLIGHT_ENHANCEMENT)) {
+ if (!config.hasFeature(MODE_OUTDOOR)) {
result.add(KEY_LIVE_DISPLAY_AUTO_OUTDOOR_MODE);
}
- if (!hardware.isSupported(FEATURE_COLOR_ENHANCEMENT)) {
+ if (!config.hasFeature(FEATURE_COLOR_ENHANCEMENT)) {
result.add(KEY_LIVE_DISPLAY_COLOR_ENHANCE);
}
- if (!hardware.isSupported(FEATURE_ADAPTIVE_BACKLIGHT)) {
+ if (!config.hasFeature(FEATURE_CABC)) {
result.add(KEY_LIVE_DISPLAY_LOW_POWER);
}
- if (!isPostProcessingSupported(context)) {
- result.add(KEY_SCREEN_COLOR_SETTINGS);
- } else {
+ if (!config.hasFeature(FEATURE_COLOR_ADJUSTMENT)) {
result.add(KEY_DISPLAY_COLOR);
}
- if (!hardware.isSupported(FEATURE_DISPLAY_GAMMA_CALIBRATION)) {
- result.add(KEY_DISPLAY_GAMMA);
+ if (!config.hasFeature(FEATURE_PICTURE_ADJUSTMENT)) {
+ result.add(KEY_PICTURE_ADJUSTMENT);
}
return result;
}