diff options
author | Ricardo Cerqueira <cyanogenmod@cerqueira.org> | 2014-11-15 15:25:51 -0500 |
---|---|---|
committer | Adnan Begovic <adnan@cyngn.com> | 2015-10-29 17:36:28 -0700 |
commit | bcd2b57276599e21009f4a180575001650915176 (patch) | |
tree | 0878e445339270190ce1ff98be119aba71d231a2 /src | |
parent | 5719bbe75399c6efeb1b8c3407afea455e0baa9c (diff) | |
download | packages_apps_Settings-bcd2b57276599e21009f4a180575001650915176.zip packages_apps_Settings-bcd2b57276599e21009f4a180575001650915176.tar.gz packages_apps_Settings-bcd2b57276599e21009f4a180575001650915176.tar.bz2 |
Settings: add "advanced" menu to Display/TapToWake
Forward TapToWake from CM11
Contains Commits:
Author: Ricardo Cerqueira<cyanogenmod@cerqueira.org>
DisplaySettings: Add hardware-framework support for tap-to-wake
Since we have tap-to-sleep globally, might as well support the
wake gesture as a standalone thing through the HAF. Place it in
"Display".
Change-Id: I6facc2334ff9e80077581c54c428476594e91528
Author: Roman Birg <roman@cyngn.com>
Settings: set proper default value for tap to wake
The first time the display_settings.xml file gets inflated, the
PreferenceManager takes the defaultValue and persists it in the default
shared preferences file.
When we read the double tap to wake preference,
we assume it has a default value of true, which it uses until the user
enters Display Settings for the first time. At that point, the default
value is persisted, and every boot after will use the default value in
display_settings.xml.
Remove the default defined in the XML file.
Change-Id: I0989dd73b6b3c42ff8649bc17eebf4e191293ee4
Change-Id: I271390aa7bfc56811dcf6fff7e1d05c76c4bfa48
Diffstat (limited to 'src')
-rw-r--r-- | src/com/android/settings/DisplaySettings.java | 49 | ||||
-rw-r--r-- | src/com/android/settings/cyanogenmod/BootReceiver.java | 2 |
2 files changed, 51 insertions, 0 deletions
diff --git a/src/com/android/settings/DisplaySettings.java b/src/com/android/settings/DisplaySettings.java index 0e2c77c..1cbb3af 100644 --- a/src/com/android/settings/DisplaySettings.java +++ b/src/com/android/settings/DisplaySettings.java @@ -39,6 +39,7 @@ import android.content.ContentResolver; import android.content.Context; import android.content.res.Configuration; import android.content.res.Resources; +import android.content.SharedPreferences; import android.hardware.Sensor; import android.hardware.SensorManager; import android.os.Build; @@ -48,6 +49,7 @@ import android.os.SystemProperties; import android.preference.ListPreference; import android.preference.Preference; import android.preference.Preference.OnPreferenceClickListener; +import android.preference.PreferenceManager; import android.preference.PreferenceScreen; import android.preference.SwitchPreference; import android.provider.SearchIndexableResource; @@ -59,6 +61,7 @@ import java.util.ArrayList; import java.util.List; import com.android.settings.Utils; +import org.cyanogenmod.hardware.TapToWake; public class DisplaySettings extends SettingsPreferenceFragment implements Preference.OnPreferenceChangeListener, OnPreferenceClickListener, Indexable { @@ -76,6 +79,9 @@ public class DisplaySettings extends SettingsPreferenceFragment implements private static final String KEY_AUTO_BRIGHTNESS = "auto_brightness"; private static final String KEY_AUTO_ROTATE = "auto_rotate"; private static final String KEY_NIGHT_MODE = "night_mode"; + private static final String KEY_TAP_TO_WAKE = "double_tap_wake_gesture"; + + private static final String CATEGORY_ADVANCED = "advanced_display_prefs"; private static final int DLG_GLOBAL_CHANGE_WARNING = 1; @@ -90,6 +96,7 @@ public class DisplaySettings extends SettingsPreferenceFragment implements private SwitchPreference mDozePreference; private SwitchPreference mTapToWakePreference; private SwitchPreference mAutoBrightnessPreference; + private SwitchPreference mTapToWake; @Override protected int getMetricsCategory() { @@ -197,6 +204,13 @@ public class DisplaySettings extends SettingsPreferenceFragment implements mNightModePreference.setValue(String.valueOf(currentNightMode)); mNightModePreference.setOnPreferenceChangeListener(this); } + PreferenceScreen advancedPrefs = (PreferenceScreen) findPreference(CATEGORY_ADVANCED); + + mTapToWake = (SwitchPreference) findPreference(KEY_TAP_TO_WAKE); + if (!isTapToWakeSupported()) { + advancedPrefs.removePreference(mTapToWake); + mTapToWake = null; + } } private static boolean allowAllRotations(Context context) { @@ -318,6 +332,11 @@ public class DisplaySettings extends SettingsPreferenceFragment implements @Override public void onResume() { super.onResume(); + + if (mTapToWake != null) { + mTapToWake.setChecked(TapToWake.isEnabled()); + } + updateState(); } @@ -372,6 +391,15 @@ public class DisplaySettings extends SettingsPreferenceFragment implements } } + private static boolean isTapToWakeSupported() { + try { + return TapToWake.isSupported(); + } catch (NoClassDefFoundError e) { + // Hardware abstraction framework not installed + return false; + } + } + public void writeFontSizePreference(Object objValue) { try { mCurConfig.fontScale = Float.parseFloat(objValue.toString()); @@ -383,6 +411,10 @@ public class DisplaySettings extends SettingsPreferenceFragment implements @Override public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen, Preference preference) { + if (preference == mTapToWake) { + return TapToWake.setEnabled(mTapToWake.isChecked()); + } + return super.onPreferenceTreeClick(preferenceScreen, preference); } @@ -449,6 +481,23 @@ public class DisplaySettings extends SettingsPreferenceFragment implements return R.string.help_uri_display; } + /** + * Restore the properties associated with this preference on boot + @param ctx A valid context + */ + public static void restore(Context ctx) { + final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(ctx); + if (isTapToWakeSupported()) { + final boolean enabled = prefs.getBoolean(KEY_TAP_TO_WAKE, + TapToWake.isEnabled()); + if (!TapToWake.setEnabled(enabled)) { + Log.e(TAG, "Failed to restore tap-to-wake settings."); + } else { + Log.d(TAG, "Tap-to-wake settings restored."); + } + } + } + public static final Indexable.SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER = new BaseSearchIndexProvider() { @Override diff --git a/src/com/android/settings/cyanogenmod/BootReceiver.java b/src/com/android/settings/cyanogenmod/BootReceiver.java index c809b7f..18213d7 100644 --- a/src/com/android/settings/cyanogenmod/BootReceiver.java +++ b/src/com/android/settings/cyanogenmod/BootReceiver.java @@ -20,6 +20,7 @@ import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import com.android.settings.ButtonSettings; +import com.android.settings.DisplaySettings; public class BootReceiver extends BroadcastReceiver { @@ -28,6 +29,7 @@ public class BootReceiver extends BroadcastReceiver { @Override public void onReceive(Context ctx, Intent intent) { /* Restore the hardware tunable values */ + DisplaySettings.restore(ctx); ButtonSettings.restoreKeyDisabler(ctx); } } |