[1/2] OmniGears: Clock on lockscreen

Allow to enable status bar clock on lockscreen (default off)

Change-Id: Id5c579e30aeb2cb2edd0fa8617458508c7aab06f
diff --git a/res/values/custom_strings.xml b/res/values/custom_strings.xml
index 8deadaa..3897bd2 100644
--- a/res/values/custom_strings.xml
+++ b/res/values/custom_strings.xml
@@ -501,6 +501,7 @@
     <string name="clock_color_title">Color</string>
     <string name="status_bar_clock_style_reset">Reset color</string>
     <string name="status_bar_show_clock_title">Show clock and date</string>
+    <string name="status_bar_force_clock_lockscreen">Always show on lockscreen</string>
     <string name="status_bar_am_pm_title">AM/PM</string>
     <string name="status_bar_am_pm_info">24-hour clock is enabled</string>
     <string name="enable_clock_weekday">Day of the week</string>
@@ -580,7 +581,7 @@
     <string name="swap_volume_buttons_title">Match rotation</string>
     <string name="swap_volume_buttons_summary">Adjust volume buttons action based on current rotation</string>
 
-   <!-- Lockscreen immersive mode -->
-   <string name="category_immersive_mode_title">Immersive mode</string>
-   <string name="lockscreen_immersive_mode_title">Disable immersive mode</string>
+    <!-- Lockscreen immersive mode -->
+    <string name="category_immersive_mode_title">Immersive mode</string>
+    <string name="lockscreen_immersive_mode_title">Disable immersive mode</string>
 </resources>
diff --git a/res/xml/status_bar_clock_style.xml b/res/xml/status_bar_clock_style.xml
index 28f9062..6701997 100644
--- a/res/xml/status_bar_clock_style.xml
+++ b/res/xml/status_bar_clock_style.xml
@@ -18,12 +18,19 @@
     xmlns:android="http://schemas.android.com/apk/res/android"
     android:title="@string/status_bar_clock_title">
 
-       <CheckBoxPreference
+        <CheckBoxPreference
             android:key="status_bar_show_clock"
             android:title="@string/status_bar_show_clock_title"
             android:defaultValue="true"
             android:persistent="false"/>
 
+        <CheckBoxPreference
+            android:key="status_bar_force_clock_lockscreen"
+            android:title="@string/status_bar_force_clock_lockscreen"
+            android:defaultValue="false"
+            android:dependency="status_bar_show_clock"
+            android:persistent="false"/>
+
         <ListPreference
             android:key="clock_style"
             android:entries="@array/clock_style_entries"
diff --git a/src/org/omnirom/omnigears/slim/StatusBarClockStyle.java b/src/org/omnirom/omnigears/slim/StatusBarClockStyle.java
index af73dd4..1c3746e 100644
--- a/src/org/omnirom/omnigears/slim/StatusBarClockStyle.java
+++ b/src/org/omnirom/omnigears/slim/StatusBarClockStyle.java
@@ -45,6 +45,7 @@
     private static final String PREF_CLOCK_DATE_STYLE = "clock_date_style";
     private static final String PREF_CLOCK_DATE_FORMAT = "clock_date_format";
     private static final String STATUS_BAR_CLOCK = "status_bar_show_clock";
+    private static final String STATUS_BAR_FORCE_CLOCK_LOCKSCREEN = "status_bar_force_clock_lockscreen";
 
     public static final int CLOCK_DATE_STYLE_LOWERCASE = 1;
     public static final int CLOCK_DATE_STYLE_UPPERCASE = 2;
@@ -55,6 +56,7 @@
     private ListPreference mClockDateStyle;
     private ListPreference mClockDateFormat;
     private CheckBoxPreference mStatusBarClock;
+    private CheckBoxPreference mForceClockLockscreen;
 
     @Override
     public void onCreate(Bundle savedInstanceState) {
@@ -135,6 +137,11 @@
             mClockDateFormat.setEnabled(false);
         }
 
+        mForceClockLockscreen = (CheckBoxPreference) findPreference(STATUS_BAR_FORCE_CLOCK_LOCKSCREEN);
+        mForceClockLockscreen.setChecked(Settings.System.getInt(getActivity().getContentResolver(),
+                Settings.System.STATUS_BAR_FORCE_CLOCK_LOCKSCREEN, 0) != 0);
+        mForceClockLockscreen.setOnPreferenceChangeListener(this);
+
         return prefSet;
     }
 
@@ -188,6 +195,10 @@
                 mClockDateFormat.setSummary(mClockDateFormat.getEntries()[idx]);
             }
             return true;
+        } else if (preference == mForceClockLockscreen) {
+            Settings.System.putInt(getActivity().getContentResolver(),
+                    Settings.System.STATUS_BAR_FORCE_CLOCK_LOCKSCREEN, (Boolean) newValue ? 1 : 0);
+            return true;
         }
         return false;
     }