Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 6c7a2871 authored by Ricardo Cerqueira's avatar Ricardo Cerqueira Committed by Gerrit Code Review
Browse files

Merge "DisplaySettings: Add hardware-framework support for color enhancement" into cm-11.0

parents 7e2e0074 490d7348
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -226,6 +226,10 @@
    <string name="adaptive_backlight_title">Adaptive backlight</string>
    <string name="adaptive_backlight_summary">Dynamically adjust the brightness of the display\'s backlight to maximize battery life while maintaining usability</string>

    <!-- Color enhancement settings screen -->
    <string name="color_enhancement_title">Color enhancement</string>
    <string name="color_enhancement_summary">Dynamically enhance the color of the display</string>

    <!-- Turn on display when power connected; turn off display when power disconnected -->
    <string name="wake_when_plugged_or_unplugged_title">Wake on plug</string>
    <string name="wake_when_plugged_or_unplugged_summary">Turn the screen on when connecting or disconnecting a power source</string>
+6 −0
Original line number Diff line number Diff line
@@ -108,6 +108,12 @@
                android:summary="@string/adaptive_backlight_summary"
                android:defaultValue="true" />

           <CheckBoxPreference
                android:key="color_enhancement"
                android:title="@string/color_enhancement_title"
                android:summary="@string/color_enhancement_summary"
                android:defaultValue="true" />

            <CheckBoxPreference
                android:key="double_tap_wake_gesture"
                android:title="@string/double_tap_to_wake_title"
+33 −0
Original line number Diff line number Diff line
@@ -53,6 +53,7 @@ import com.android.settings.hardware.DisplayColor;
import com.android.settings.hardware.DisplayGamma;

import org.cyanogenmod.hardware.AdaptiveBacklight;
import org.cyanogenmod.hardware.ColorEnhancement;
import org.cyanogenmod.hardware.TapToWake;

import java.util.ArrayList;
@@ -70,6 +71,7 @@ public class DisplaySettings extends SettingsPreferenceFragment implements
    private static final String KEY_SCREEN_SAVER = "screensaver";
    private static final String KEY_DISPLAY_ROTATION = "display_rotation";
    private static final String KEY_ADAPTIVE_BACKLIGHT = "adaptive_backlight";
    private static final String KEY_COLOR_ENHANCEMENT = "color_enhancement";
    private static final String KEY_ADVANCED_DISPLAY_SETTINGS = "advanced_display_settings";
    private static final String KEY_TAP_TO_WAKE = "double_tap_wake_gesture";

@@ -111,6 +113,7 @@ public class DisplaySettings extends SettingsPreferenceFragment implements
    private Preference mScreenSaverPreference;

    private CheckBoxPreference mAdaptiveBacklight;
    private CheckBoxPreference mColorEnhancement;
    private CheckBoxPreference mTapToWake;

    private ContentObserver mAccelerometerRotationObserver =
@@ -202,6 +205,12 @@ public class DisplaySettings extends SettingsPreferenceFragment implements
            mAdaptiveBacklight = null;
        }

        mColorEnhancement = (CheckBoxPreference) findPreference(KEY_COLOR_ENHANCEMENT);
        if (!isColorEnhancementSupported()) {
            advancedPrefs.removePreference(mColorEnhancement);
            mColorEnhancement = null;
        }

        mTapToWake = (CheckBoxPreference) findPreference(KEY_TAP_TO_WAKE);
        if (!isTapToWakeSupported()) {
            advancedPrefs.removePreference(mTapToWake);
@@ -436,6 +445,10 @@ public class DisplaySettings extends SettingsPreferenceFragment implements
            mAdaptiveBacklight.setChecked(AdaptiveBacklight.isEnabled());
        }

        if (mColorEnhancement != null) {
            mColorEnhancement.setChecked(ColorEnhancement.isEnabled());
        }

        if (mTapToWake != null) {
            mTapToWake.setChecked(TapToWake.isEnabled());
        }
@@ -541,6 +554,8 @@ public class DisplaySettings extends SettingsPreferenceFragment implements
    public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen, Preference preference) {
        if (preference == mAdaptiveBacklight) {
            return AdaptiveBacklight.setEnabled(mAdaptiveBacklight.isChecked());
        } else if (preference == mColorEnhancement) {
            return ColorEnhancement.setEnabled(mColorEnhancement.isChecked());
        } else if (preference == mWakeWhenPluggedOrUnplugged) {
            Settings.Global.putInt(getContentResolver(),
                    Settings.Global.WAKE_WHEN_PLUGGED_OR_UNPLUGGED,
@@ -630,6 +645,15 @@ public class DisplaySettings extends SettingsPreferenceFragment implements
                Log.d(TAG, "Adaptive backlight settings restored.");
            }
        }
        if (isColorEnhancementSupported()) {
            final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(ctx);
            final boolean enabled = prefs.getBoolean(KEY_COLOR_ENHANCEMENT, true);
            if (!ColorEnhancement.setEnabled(enabled)) {
                Log.e(TAG, "Failed to restore color enhancement settings.");
            } else {
                Log.d(TAG, "Color enhancement settings restored.");
            }
        }
        if (isTapToWakeSupported()) {
            final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(ctx);
            final boolean enabled = prefs.getBoolean(KEY_TAP_TO_WAKE, true);
@@ -661,6 +685,15 @@ public class DisplaySettings extends SettingsPreferenceFragment implements
        }
    }

    private static boolean isColorEnhancementSupported() {
        try {
            return ColorEnhancement.isSupported();
        } catch (NoClassDefFoundError e) {
            // Hardware abstraction framework not installed
            return false;
        }
    }

    private static boolean isTapToWakeSupported() {
        try {
            return TapToWake.isSupported();