Merge "[2/2] OmniGears: Add more Power Menu Options" into android-4.4
diff --git a/res/values/custom_strings.xml b/res/values/custom_strings.xml
index 7b67319..beb459b 100644
--- a/res/values/custom_strings.xml
+++ b/res/values/custom_strings.xml
@@ -213,6 +213,12 @@
<string name="power_menu_toggle_screenshot_summary">Show screenshot option in Power Menu</string>
<string name="power_menu_toggle_screenrecord_title">Screen Record</string>
<string name="power_menu_toggle_screenrecord_summary">Show screen Record option in Power Menu</string>
+ <string name="power_menu_toggle_mobile_data_title">Mobile Data</string>
+ <string name="power_menu_toggle_mobile_data_summary">Show Mobile Data option in Power Menu</string>
+ <string name="power_menu_toggle_airplane_mode_title">Airplane mode</string>
+ <string name="power_menu_toggle_airplane_mode_summary">Show Airplane option in Power Menu</string>
+ <string name="power_menu_toggle_sound_toggles_title">Sound toggles</string>
+ <string name="power_menu_toggle_sound_toggles_summary">Show sound toggles in Power Menu</string>
<!-- Active Display Notifications -->
<string name="ad_settings_title">Active display</string>
diff --git a/res/xml/menus_settings.xml b/res/xml/menus_settings.xml
index 4858f90..6c2bd93 100644
--- a/res/xml/menus_settings.xml
+++ b/res/xml/menus_settings.xml
@@ -26,6 +26,12 @@
android:title="@string/bars_and_menus_category_power_menu_title">
<CheckBoxPreference
+ android:key="power_menu_mobile_data"
+ android:title="@string/power_menu_toggle_mobile_data_title"
+ android:summary="@string/power_menu_toggle_mobile_data_summary"
+ android:persistent="false"/>
+
+ <CheckBoxPreference
android:key="power_menu_screenshot"
android:title="@string/power_menu_toggle_screenshot_title"
android:summary="@string/power_menu_toggle_screenshot_summary"
@@ -36,6 +42,18 @@
android:title="@string/power_menu_toggle_screenrecord_title"
android:summary="@string/power_menu_toggle_screenrecord_summary"
android:persistent="false"/>
+
+ <CheckBoxPreference
+ android:key="power_menu_airplane_mode"
+ android:title="@string/power_menu_toggle_airplane_mode_title"
+ android:summary="@string/power_menu_toggle_airplane_mode_summary"
+ android:persistent="false"/>
+
+ <CheckBoxPreference
+ android:key="power_menu_sound_toggles"
+ android:title="@string/power_menu_toggle_sound_toggles_title"
+ android:summary="@string/power_menu_toggle_sound_toggles_summary"
+ android:persistent="false"/>
</PreferenceCategory>
</PreferenceScreen>
diff --git a/src/org/omnirom/omnigears/interfacesettings/MenusSettings.java b/src/org/omnirom/omnigears/interfacesettings/MenusSettings.java
index d230d36..7f0b309 100644
--- a/src/org/omnirom/omnigears/interfacesettings/MenusSettings.java
+++ b/src/org/omnirom/omnigears/interfacesettings/MenusSettings.java
@@ -31,6 +31,7 @@
import android.provider.Settings;
import android.provider.Settings.SettingNotFoundException;
import android.util.Log;
+import android.net.ConnectivityManager;
public class MenusSettings extends SettingsPreferenceFragment implements
Preference.OnPreferenceChangeListener {
@@ -40,9 +41,16 @@
private static final String POWER_MENU_CATEGORY = "category_power_menu";
private static final String POWER_MENU_SCREENSHOT = "power_menu_screenshot";
private static final String POWER_MENU_SCREENRECORD = "power_menu_screenrecord";
+ private static final String POWER_MENU_MOBILE_DATA = "power_menu_mobile_data";
+ private static final String POWER_MENU_AIRPLANE_MODE = "power_menu_airplane_mode";
+ private static final String POWER_MENU_SOUND_TOGGLES = "power_menu_sound_toggles";
+
private CheckBoxPreference mScreenshotPowerMenu;
private CheckBoxPreference mScreenrecordPowerMenu;
+ private CheckBoxPreference mMobileDataPowerMenu;
+ private CheckBoxPreference mAirplaneModePowerMenu;
+ private CheckBoxPreference mSoundTogglesPowerMenu;
@Override
public void onCreate(Bundle savedInstanceState) {
@@ -57,6 +65,28 @@
Settings.System.SCREENSHOT_IN_POWER_MENU, 0) == 1);
mScreenshotPowerMenu.setOnPreferenceChangeListener(this);
+ mMobileDataPowerMenu = (CheckBoxPreference) prefSet.findPreference(POWER_MENU_MOBILE_DATA);
+ Context context = getActivity();
+ ConnectivityManager cm = (ConnectivityManager)
+ context.getSystemService(Context.CONNECTIVITY_SERVICE);
+ if(cm.isNetworkSupported(ConnectivityManager.TYPE_MOBILE)) {
+ mMobileDataPowerMenu.setChecked(Settings.System.getInt(resolver,
+ Settings.System.MOBILE_DATA_IN_POWER_MENU, 0) == 1);
+ mMobileDataPowerMenu.setOnPreferenceChangeListener(this);
+ } else {
+ prefSet.removePreference(mMobileDataPowerMenu);
+ }
+
+ mAirplaneModePowerMenu = (CheckBoxPreference) prefSet.findPreference(POWER_MENU_AIRPLANE_MODE);
+ mAirplaneModePowerMenu.setChecked(Settings.System.getInt(resolver,
+ Settings.System.AIRPLANE_MODE_IN_POWER_MENU, 1) == 1);
+ mAirplaneModePowerMenu.setOnPreferenceChangeListener(this);
+
+ mSoundTogglesPowerMenu = (CheckBoxPreference) prefSet.findPreference(POWER_MENU_SOUND_TOGGLES);
+ mSoundTogglesPowerMenu.setChecked(Settings.System.getInt(resolver,
+ Settings.System.SOUND_TOGGLES_IN_POWER_MENU, 1) == 1);
+ mSoundTogglesPowerMenu.setOnPreferenceChangeListener(this);
+
mScreenrecordPowerMenu = (CheckBoxPreference) prefSet.findPreference(POWER_MENU_SCREENRECORD);
if (!getResources().getBoolean(com.android.internal.R.bool.config_enableScreenrecordChord)) {
PreferenceGroup powerMenuCategory = (PreferenceGroup)
@@ -81,6 +111,15 @@
} else if (preference == mScreenrecordPowerMenu) {
boolean value = (Boolean) objValue;
Settings.System.putInt(resolver, Settings.System.SCREENRECORD_IN_POWER_MENU, value ? 1 : 0);
+ } else if (preference == mMobileDataPowerMenu) {
+ boolean value = (Boolean) objValue;
+ Settings.System.putInt(resolver, Settings.System.MOBILE_DATA_IN_POWER_MENU, value ? 1 : 0);
+ } else if (preference == mAirplaneModePowerMenu) {
+ boolean value = (Boolean) objValue;
+ Settings.System.putInt(resolver, Settings.System.AIRPLANE_MODE_IN_POWER_MENU, value ? 1 : 0);
+ } else if (preference == mSoundTogglesPowerMenu) {
+ boolean value = (Boolean) objValue;
+ Settings.System.putInt(resolver, Settings.System.SOUND_TOGGLES_IN_POWER_MENU, value ? 1 : 0);
} else {
return false;
}