[2/2] OmniGears: Power Menu: Add Screen Record Option

Adding Settings part in "Bars and Menus"

(also code cleanup for Screenshot option in java)

Change-Id: Id7b7b6e0ff16106406b5b6531b04092b0199c440
diff --git a/res/values/custom_strings.xml b/res/values/custom_strings.xml
index 70343d4..27718e5 100644
--- a/res/values/custom_strings.xml
+++ b/res/values/custom_strings.xml
@@ -207,6 +207,8 @@
     <string name="bars_and_menus_category_power_menu_title">Power menu</string>
     <string name="power_menu_toggle_screenshot_title">Screenshot</string>
     <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>
 
     <!-- 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 82dec0b..6a5ca69 100644
--- a/res/xml/menus_settings.xml
+++ b/res/xml/menus_settings.xml
@@ -30,6 +30,12 @@
             android:title="@string/power_menu_toggle_screenshot_title"
             android:summary="@string/power_menu_toggle_screenshot_summary"
             android:defaultValue="false" />
+
+    <CheckBoxPreference
+            android:key="power_menu_screenrecord"
+            android:title="@string/power_menu_toggle_screenrecord_title"
+            android:summary="@string/power_menu_toggle_screenrecord_summary"
+            android:defaultValue="false" />
     </PreferenceCategory>
 
 </PreferenceScreen>
diff --git a/src/org/omnirom/omnigears/interfacesettings/MenusSettings.java b/src/org/omnirom/omnigears/interfacesettings/MenusSettings.java
index a204673..76630d6 100644
--- a/src/org/omnirom/omnigears/interfacesettings/MenusSettings.java
+++ b/src/org/omnirom/omnigears/interfacesettings/MenusSettings.java
@@ -35,10 +35,13 @@
 public class MenusSettings extends SettingsPreferenceFragment implements
         Preference.OnPreferenceChangeListener {
     private static final String TAG = "MenusSettings";
+    private ContentResolver resolver;
 
     private static final String POWER_MENU_SCREENSHOT = "power_menu_screenshot";
+    private static final String POWER_MENU_SCREENRECORD = "power_menu_screenrecord";
 
     private CheckBoxPreference mScreenshotPowerMenu;
+    private CheckBoxPreference mScreenrecordPowerMenu;
 
     @Override
     public void onCreate(Bundle savedInstanceState) {
@@ -46,12 +49,24 @@
         addPreferencesFromResource(R.xml.menus_settings);
 
         PreferenceScreen prefSet = getPreferenceScreen();
-        ContentResolver resolver = getActivity().getContentResolver();
+        resolver = getActivity().getContentResolver();
+
+        boolean mHasScreenRecord = getActivity().getResources().getBoolean(
+                com.android.internal.R.bool.config_enableScreenrecordChord);
 
         mScreenshotPowerMenu = (CheckBoxPreference) prefSet.findPreference(POWER_MENU_SCREENSHOT);
         mScreenshotPowerMenu.setChecked(Settings.System.getInt(resolver,
                 Settings.System.SCREENSHOT_IN_POWER_MENU, 0) == 1);
         mScreenshotPowerMenu.setOnPreferenceChangeListener(this);
+
+        mScreenrecordPowerMenu = (CheckBoxPreference) prefSet.findPreference(POWER_MENU_SCREENRECORD);
+        if(mHasScreenRecord) {
+            mScreenrecordPowerMenu.setChecked(Settings.System.getInt(resolver,
+                    Settings.System.SCREENRECORD_IN_POWER_MENU, 0) == 1);
+            mScreenrecordPowerMenu.setOnPreferenceChangeListener(this);
+        } else {
+            prefSet.removePreference(mScreenrecordPowerMenu);
+        }
     }
 
     @Override
@@ -60,10 +75,12 @@
     }
 
     public boolean onPreferenceChange(Preference preference, Object objValue) {
-        ContentResolver resolver = getActivity().getContentResolver();
         if (preference == mScreenshotPowerMenu) {
             boolean value = (Boolean) objValue;
             Settings.System.putInt(resolver, Settings.System.SCREENSHOT_IN_POWER_MENU, value ? 1 : 0);
+        } else if (preference == mScreenrecordPowerMenu) {
+            boolean value = (Boolean) objValue;
+            Settings.System.putInt(resolver, Settings.System.SCREENRECORD_IN_POWER_MENU, value ? 1 : 0);
         } else {
             return false;
         }