diff options
Diffstat (limited to 'src/com/android/settings/livedisplay/LiveDisplay.java')
-rw-r--r-- | src/com/android/settings/livedisplay/LiveDisplay.java | 102 |
1 files changed, 33 insertions, 69 deletions
diff --git a/src/com/android/settings/livedisplay/LiveDisplay.java b/src/com/android/settings/livedisplay/LiveDisplay.java index 7000cc8..5cb7aff 100644 --- a/src/com/android/settings/livedisplay/LiveDisplay.java +++ b/src/com/android/settings/livedisplay/LiveDisplay.java @@ -15,20 +15,17 @@ */ 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_ENHANCEMENT; +import static cyanogenmod.hardware.LiveDisplayManager.FEATURE_DISPLAY_MODES; +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 +35,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 +44,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 +71,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_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(); @@ -102,26 +94,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 +117,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 +130,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 +158,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,33 +167,25 @@ 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); - } - } - mScreenColorSettings = (PreferenceScreen) findPreference(KEY_SCREEN_COLOR_SETTINGS); if (advancedPrefs != null) { if (mScreenColorSettings != null && @@ -310,9 +288,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,14 +307,8 @@ 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)); @@ -347,9 +317,7 @@ public class LiveDisplay extends SettingsPreferenceFragment implements @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 +369,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,19 +385,20 @@ 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)) { @@ -439,9 +406,6 @@ public class LiveDisplay extends SettingsPreferenceFragment implements } else { result.add(KEY_DISPLAY_COLOR); } - if (!hardware.isSupported(FEATURE_DISPLAY_GAMMA_CALIBRATION)) { - result.add(KEY_DISPLAY_GAMMA); - } return result; } }; |