[2/2] OmniGears: Long press back to kill app
Change-Id: I349aebff131e90edd1923762f38a20dd10b8fcb9
(cherry picked from commit 9dc47fdb1d1e2bb3d9626e28528604ef3048904c)
diff --git a/res/values/custom_arrays.xml b/res/values/custom_arrays.xml
index f80d506..2b5d5fa 100644
--- a/res/values/custom_arrays.xml
+++ b/res/values/custom_arrays.xml
@@ -212,15 +212,15 @@
</string-array>
<string-array name="button_back_kill_timeout_entries" translatable="false">
- <item>@string/button_back_kill_timeout_500ms</item>
<item>@string/button_back_kill_timeout_1000ms</item>
<item>@string/button_back_kill_timeout_1500ms</item>
+ <item>@string/button_back_kill_timeout_2000ms</item>
</string-array>
<string-array name="button_back_kill_timeout_values" translatable="false">
- <item>500</item>
<item>1000</item>
<item>1500</item>
+ <item>2000</item>
</string-array>
<!-- Quick pulldown -->
diff --git a/res/values/custom_strings.xml b/res/values/custom_strings.xml
index 056470f..df3615d 100644
--- a/res/values/custom_strings.xml
+++ b/res/values/custom_strings.xml
@@ -82,6 +82,7 @@
<string name="button_back_kill_timeout_500ms">500 ms</string>
<string name="button_back_kill_timeout_1000ms">1000 ms</string>
<string name="button_back_kill_timeout_1500ms">1500 ms</string>
+ <string name="button_back_kill_timeout_2000ms">2000 ms</string>
<!-- Double tap to sleep -->
<string name="double_tap_to_sleep_title">Double-tap to sleep</string>
diff --git a/res/xml/button_settings.xml b/res/xml/button_settings.xml
index d9abd60..b83d291 100644
--- a/res/xml/button_settings.xml
+++ b/res/xml/button_settings.xml
@@ -94,6 +94,7 @@
android:entries="@array/navbar_recents_style_entries"
android:entryValues="@array/navbar_recents_style_values"
android:persistent="false"/>
+
<ListPreference
android:key="long_press_recents_action"
android:title="@string/long_press_recents_action_title"
@@ -112,6 +113,22 @@
android:entries="@array/long_press_home_action_entries"
android:entryValues="@array/long_press_home_action_values"
android:persistent="false"/>
+
+ <org.omnirom.omnigears.preference.SystemSettingSwitchPreference
+ android:key="button_back_kill_enable"
+ android:title="@string/button_back_kill_enable_title"
+ android:summary="@string/button_back_kill_enable_summary"
+ android:defaultValue="false"/>
+
+ <ListPreference
+ android:key="button_back_kill_timeout"
+ android:title="@string/button_back_kill_timeout_title"
+ android:entries="@array/button_back_kill_timeout_entries"
+ android:entryValues="@array/button_back_kill_timeout_values"
+ android:defaultValue="1500"
+ android:persistent="false"
+ android:dependency="button_back_kill_enable"/>
+
</PreferenceCategory>
</PreferenceScreen>
diff --git a/src/org/omnirom/omnigears/ButtonSettings.java b/src/org/omnirom/omnigears/ButtonSettings.java
index 6685c3b..3f6af00 100644
--- a/src/org/omnirom/omnigears/ButtonSettings.java
+++ b/src/org/omnirom/omnigears/ButtonSettings.java
@@ -59,6 +59,7 @@
private static final String LONG_PRESS_RECENTS_ACTION = "long_press_recents_action";
private static final String LONG_PRESS_HOME_ACTION = "long_press_home_action";
private static final String DOUBLE_PRESS_HOME_ACTION = "double_press_home_action";
+ private static final String BUTTON_BACK_KILL_TIMEOUT = "button_back_kill_timeout";
private ListPreference mNavbarRecentsStyle;
private ListPreference mLongPressRecentsAction;
@@ -66,6 +67,7 @@
private ListPreference mDoublePressHomeAction;
private SwitchPreference mEnableNavBar;
private SwitchPreference mDisabkeHWKeys;
+ private ListPreference mBackKillTimeout;
@Override
public int getMetricsCategory() {
@@ -126,6 +128,15 @@
int longPressHomeAction = Settings.System.getInt(resolver,
Settings.System.BUTTON_LONG_PRESS_HOME, defaultLongPressOnHomeBehavior);
+ mBackKillTimeout = (ListPreference) findPreference(BUTTON_BACK_KILL_TIMEOUT);
+ final int backKillTimeoutDefault = getResources().getInteger(com.android.internal.R.integer.config_backKillTimeout);
+ final int backKillTimeout = Settings.System.getInt(resolver,
+ Settings.System.BUTTON_BACK_KILL_TIMEOUT, backKillTimeoutDefault);
+
+ mBackKillTimeout.setValue(Integer.toString(backKillTimeout));
+ mBackKillTimeout.setSummary(mBackKillTimeout.getEntry());
+ mBackKillTimeout.setOnPreferenceChangeListener(this);
+
mLongPressHomeAction.setValue(Integer.toString(longPressHomeAction));
mLongPressHomeAction.setSummary(mLongPressHomeAction.getEntry());
mLongPressHomeAction.setOnPreferenceChangeListener(this);
@@ -194,6 +205,12 @@
mDoublePressHomeAction.setSummary(mDoublePressHomeAction.getEntries()[index]);
Settings.System.putInt(getContentResolver(), Settings.System.BUTTON_DOUBLE_PRESS_HOME, value);
return true;
+ } else if (preference == mBackKillTimeout) {
+ int value = Integer.valueOf((String) newValue);
+ int index = mBackKillTimeout.findIndexOfValue((String) newValue);
+ mBackKillTimeout.setSummary(mBackKillTimeout.getEntries()[index]);
+ Settings.System.putInt(getContentResolver(), Settings.System.BUTTON_BACK_KILL_TIMEOUT, value);
+ return true;
}
return false;
}