diff options
-rw-r--r-- | res/values/cm_arrays.xml | 15 | ||||
-rw-r--r-- | res/values/cm_strings.xml | 5 | ||||
-rw-r--r-- | res/xml/pie_control.xml | 13 | ||||
-rw-r--r-- | src/com/android/settings/cyanogenmod/PieControl.java | 24 |
4 files changed, 57 insertions, 0 deletions
diff --git a/res/values/cm_arrays.xml b/res/values/cm_arrays.xml index 13b8ff02b..a5875c065 100644 --- a/res/values/cm_arrays.xml +++ b/res/values/cm_arrays.xml @@ -525,6 +525,21 @@ <item>2</item> </string-array> + <!-- Pie controls --> + <string-array name="pie_control_sensitivity_entries" translatable="false"> + <item>@string/pie_control_sensitivity_low</item> + <item>@string/pie_control_sensitivity_medium</item> + <item>@string/pie_control_sensitivity_high</item> + <item>@string/pie_control_sensitivity_very_high</item> + </string-array> + + <string-array name="pie_control_sensitivity_values" translatable="false"> + <item>1</item> + <item>2</item> + <item>3</item> + <item>4</item> + </string-array> + <!-- Stylus Gestures --> <string-array name="gestures_entries" translatable="false"> <item>@string/gestures_action_empty</item> diff --git a/res/values/cm_strings.xml b/res/values/cm_strings.xml index 7c6949ea9..a1b83e23a 100644 --- a/res/values/cm_strings.xml +++ b/res/values/cm_strings.xml @@ -878,6 +878,11 @@ two in order to insert additional control points. \'Remove\' deletes the selecte <string name="pie_control_title">Pie controls</string> <string name="pie_control_enabled">Floating controls when Expanded desktop is enabled</string> <string name="pie_control_disabled">Floating controls disabled</string> + <string name="pie_control_sensitivity_title">Responsiveness</string> + <string name="pie_control_sensitivity_low">Low</string> + <string name="pie_control_sensitivity_medium">Medium</string> + <string name="pie_control_sensitivity_high">High</string> + <string name="pie_control_sensitivity_very_high">Very high</string> <string name="pie_control_size">Navigation key size</string> <string name="pie_control_trigger_positions">Trigger positions</string> <string name="pie_control_trigger_left">Left screen border</string> diff --git a/res/xml/pie_control.xml b/res/xml/pie_control.xml index ce8a40a41..033ce7c11 100644 --- a/res/xml/pie_control.xml +++ b/res/xml/pie_control.xml @@ -21,8 +21,17 @@ <CheckBoxPreference android:key="pie_control_checkbox" android:title="@string/pie_control_title" + android:persistent="false" android:defaultValue="false" /> + <ListPreference + android:key="pie_control_sensitivity" + android:title="@string/pie_control_sensitivity_title" + android:dialogTitle="@string/pie_control_sensitivity_title" + android:entries="@array/pie_control_sensitivity_entries" + android:entryValues="@array/pie_control_sensitivity_values" + android:persistent="false"/> + <com.android.settings.cyanogenmod.PieSizePreference android:key="pie_control_size" android:title="@string/pie_control_size" @@ -34,22 +43,26 @@ <CheckBoxPreference android:key="pie_control_trigger_left" android:title="@string/pie_control_trigger_left" + android:persistent="false" android:defaultValue="false" /> <CheckBoxPreference android:key="pie_control_trigger_bottom" android:title="@string/pie_control_trigger_bottom" + android:persistent="false" android:defaultValue="false" /> <CheckBoxPreference android:key="pie_control_trigger_right" android:title="@string/pie_control_trigger_right" + android:persistent="false" android:defaultValue="false" /> <CheckBoxPreference android:key="pie_control_trigger_top" android:title="@string/pie_control_trigger_top" android:summary="@string/pie_control_trigger_top_summary" + android:persistent="false" android:defaultValue="false" /> </PreferenceCategory> </PreferenceScreen> diff --git a/src/com/android/settings/cyanogenmod/PieControl.java b/src/com/android/settings/cyanogenmod/PieControl.java index da2ee1379..6763eee3c 100644 --- a/src/com/android/settings/cyanogenmod/PieControl.java +++ b/src/com/android/settings/cyanogenmod/PieControl.java @@ -5,6 +5,7 @@ import android.database.ContentObserver; import android.os.Bundle; import android.os.Handler; import android.preference.CheckBoxPreference; +import android.preference.ListPreference; import android.preference.Preference; import android.preference.PreferenceScreen; import android.preference.SeekBarDialogPreference; @@ -19,6 +20,7 @@ public class PieControl extends SettingsPreferenceFragment private static final int DEFAULT_POSITION = 1 << 1; // this equals Position.BOTTOM.FLAG private static final String PIE_CONTROL = "pie_control_checkbox"; + private static final String PIE_SENSITIVITY = "pie_control_sensitivity"; private static final String PIE_SIZE = "pie_control_size"; private static final String[] TRIGGER = { "pie_control_trigger_left", @@ -28,6 +30,7 @@ public class PieControl extends SettingsPreferenceFragment }; private CheckBoxPreference mPieControl; + private ListPreference mPieSensitivity; private SeekBarDialogPreference mPieSize; private CheckBoxPreference[] mTrigger = new CheckBoxPreference[4]; @@ -47,6 +50,8 @@ public class PieControl extends SettingsPreferenceFragment PreferenceScreen prefSet = getPreferenceScreen(); mPieControl = (CheckBoxPreference) prefSet.findPreference(PIE_CONTROL); mPieControl.setOnPreferenceChangeListener(this); + mPieSensitivity = (ListPreference) prefSet.findPreference(PIE_SENSITIVITY); + mPieSensitivity.setOnPreferenceChangeListener(this); mPieSize = (SeekBarDialogPreference) prefSet.findPreference(PIE_SIZE); for (int i = 0; i < TRIGGER.length; i++) { @@ -64,6 +69,13 @@ public class PieControl extends SettingsPreferenceFragment Settings.System.PIE_CONTROLS, newState ? 1 : 0); propagatePieControl(newState); + } else if (preference == mPieSensitivity) { + String newState = (String) newValue; + + Settings.System.putString(getContentResolver(), + Settings.System.PIE_SENSITIVITY, newState); + mPieSensitivity.setSummary( + mPieSensitivity.getEntries()[Integer.parseInt(newState) - 1]); } else { int triggerSlots = 0; for (int i = 0; i < mTrigger.length; i++) { @@ -87,11 +99,16 @@ public class PieControl extends SettingsPreferenceFragment Settings.System.PIE_CONTROLS, 0) == 1); propagatePieControl(mPieControl.isChecked()); + int sensitivity = Settings.System.getInt(getContentResolver(), + Settings.System.PIE_SENSITIVITY, 3); + mPieSensitivity.setValue(Integer.toString(sensitivity)); + getContentResolver().registerContentObserver( Settings.System.getUriFor(Settings.System.PIE_POSITIONS), true, mPieTriggerObserver); updatePieTriggers(); + updateSensitivity(); } @Override @@ -104,6 +121,7 @@ public class PieControl extends SettingsPreferenceFragment for (int i = 0; i < mTrigger.length; i++) { mTrigger[i].setEnabled(value); } + mPieSensitivity.setEnabled(value); mPieSize.setEnabled(value); } @@ -120,4 +138,10 @@ public class PieControl extends SettingsPreferenceFragment } } + private void updateSensitivity() { + int triggerSlots = Settings.System.getInt(getContentResolver(), + Settings.System.PIE_SENSITIVITY, 3); + mPieSensitivity.setSummary(mPieSensitivity.getEntry()); + } + } |