Blissify: Statusbar clock date customization (2/2)
Signed-off-by: Jackeagle <jackeagle102@gmail.com>
Change-Id: I286a19ae1e397c12920ad253f5cb955eeeda0522
Signed-off-by: Jackeagle <jackeagle102@gmail.com>
diff --git a/res/values/bliss_arrays.xml b/res/values/bliss_arrays.xml
index 6bfe538..ab0ab0e 100644
--- a/res/values/bliss_arrays.xml
+++ b/res/values/bliss_arrays.xml
@@ -198,9 +198,9 @@
</string-array>
<string-array name="qs_clock_position_entries" translatable="false">
- <item>@string/status_bar_clock_position_right</item>
- <item>@string/status_bar_clock_position_left</item>
- <item>@string/status_bar_clock_position_hidden</item>
+ <item>@string/status_bar_clock_style_right</item>
+ <item>@string/status_bar_clock_style_left</item>
+ <item>@string/status_bar_clock_style_hidden</item>
</string-array>
<string-array name="qs_clock_position_values" translatable="false">
@@ -209,107 +209,56 @@
<item>3</item>
</string-array>
- <!-- Status bar -->
- <string-array name="status_bar_clock_position_entries" translatable="false">
- <item>@string/status_bar_clock_position_right</item>
- <item>@string/status_bar_clock_position_center</item>
- <item>@string/status_bar_clock_position_left</item>
- <item>@string/status_bar_clock_position_hidden</item>
+ <!-- Statusbar Clock -->
+ <string-array name="status_bar_clock_style_entries" translatable="false">
+ <item>@string/status_bar_clock_style_left</item>
+ <item>@string/status_bar_clock_style_center</item>
+ <item>@string/status_bar_clock_style_right</item>
</string-array>
- <string-array name="status_bar_clock_position_entries_rtl" translatable="false">
- <item>@string/status_bar_clock_position_left</item>
- <item>@string/status_bar_clock_position_center</item>
- <item>@string/status_bar_clock_position_right</item>
- <item>@string/status_bar_clock_position_hidden</item>
- </string-array>
-
- <string-array name="status_bar_clock_position_values" translatable="false">
+ <string-array name="status_bar_clock_style_values" translatable="false">
<item>0</item>
<item>1</item>
<item>2</item>
- <item>3</item>
- </string-array>
-
- <string-array name="status_bar_clock_position_values_rtl" translatable="false">
- <item>2</item>
- <item>1</item>
- <item>0</item>
- <item>3</item>
- </string-array>
-
- <string-array name="status_bar_clock_position_entries_notch" translatable="false">
- <item>@string/status_bar_clock_position_right</item>
- <item>@string/status_bar_clock_position_left</item>
- <item>@string/status_bar_clock_position_hidden</item>
- </string-array>
-
- <string-array name="status_bar_clock_position_entries_notch_rtl" translatable="false">
- <item>@string/status_bar_clock_position_left</item>
- <item>@string/status_bar_clock_position_right</item>
- <item>@string/status_bar_clock_position_hidden</item>
- </string-array>
-
- <string-array name="status_bar_clock_position_values_notch" translatable="false">
- <item>0</item>
- <item>2</item>
- <item>3</item>
- </string-array>
-
- <string-array name="status_bar_clock_position_values_notch_rtl" translatable="false">
- <item>2</item>
- <item>0</item>
- <item>3</item>
</string-array>
<string-array name="status_bar_am_pm_entries" translatable="false">
<item>@string/status_bar_am_pm_hidden</item>
- <item>@string/status_bar_am_pm_normal</item>
<item>@string/status_bar_am_pm_small</item>
+ <item>@string/status_bar_am_pm_normal</item>
</string-array>
<string-array name="status_bar_am_pm_values" translatable="false">
- <item>2</item>
- <item>0</item>
- <item>1</item>
- </string-array>
-
- <string-array name="clock_date_position_entries" translatable="false">
- <item>@string/clock_date_left</item>
- <item>@string/clock_date_right</item>
- </string-array>
-
- <string-array name="clock_date_position_values" translatable="false">
- <item>0</item>
- <item>1</item>
- </string-array>
-
- <!-- Statusbar date -->
- <string-array name="status_bar_date_entries">
- <item>@string/status_bar_date_none</item>
- <item>@string/status_bar_date_small</item>
- <item>@string/status_bar_date_normal</item>
- </string-array>
-
- <string-array name="status_bar_date_values" translatable="false">
<item>0</item>
<item>1</item>
<item>2</item>
</string-array>
- <string-array name="status_bar_date_style_entries">
- <item>@string/status_bar_date_style_normal</item>
- <item>@string/status_bar_date_style_lowercase</item>
- <item>@string/status_bar_date_style_uppercase</item>
+ <string-array name="clock_date_display_entries">
+ <item>@string/clock_date_display_none</item>
+ <item>@string/clock_date_display_small</item>
+ <item>@string/clock_date_display_normal</item>
</string-array>
- <string-array name="status_bar_date_style_values" translatable="false">
+ <string-array name="clock_date_display_values" translatable="false">
<item>0</item>
<item>1</item>
<item>2</item>
</string-array>
- <string-array name="status_bar_date_format_entries_values" translatable="false">
+ <string-array name="clock_date_style_entries">
+ <item>@string/clock_date_style_normal</item>
+ <item>@string/clock_date_style_lowercase</item>
+ <item>@string/clock_date_style_uppercase</item>
+ </string-array>
+
+ <string-array name="clock_date_style_values" translatable="false">
+ <item>0</item>
+ <item>1</item>
+ <item>2</item>
+ </string-array>
+
+ <string-array name="clock_date_format_entries_values">
<item>dd/MM/yy</item>
<item>MM/dd/yy</item>
<item>yyyy-MM-dd</item>
@@ -328,7 +277,17 @@
<item>EEE MMMM dd</item>
<item>EEEE dd/MM</item>
<item>EEEE MM/dd</item>
- <item>@string/status_bar_date_format_custom</item>
+ <item>@string/clock_date_format_custom</item>
+ </string-array>
+
+ <string-array name="clock_date_position_entries" translatable="false">
+ <item>@string/clock_date_left</item>
+ <item>@string/clock_date_right</item>
+ </string-array>
+
+ <string-array name="clock_date_position_values" translatable="false">
+ <item>0</item>
+ <item>1</item>
</string-array>
<string-array name="status_bar_battery_style_entries" translatable="false">
@@ -1978,4 +1937,5 @@
<item>1</item>
<item>2</item>
</string-array>
+
</resources>
diff --git a/res/values/bliss_strings.xml b/res/values/bliss_strings.xml
index 2b68e78..cd7de78 100644
--- a/res/values/bliss_strings.xml
+++ b/res/values/bliss_strings.xml
@@ -195,51 +195,37 @@
<string name="status_bar_system_icons_title">System icons</string>
<string name="status_bar_system_icons_summary">Control which status bar icons are shown</string>
- <!-- Status bar - Clock -->
+ <!-- Statusbar Clock -->
<string name="status_bar_clock_title">Clock & date</string>
<string name="status_bar_clock_summary">Customize clock & date</string>
- <string name="status_bar_clock_seconds_title">Clock seconds</string>
- <string name="status_bar_clock_seconds_summary">Display seconds next to clock in status bar</string>
- <string name="status_bar_clock_position_title">Clock style</string>
- <string name="status_bar_clock_position_right">Right</string>
- <string name="status_bar_clock_position_left">Left</string>
- <string name="status_bar_clock_position_center">Center</string>
- <string name="status_bar_clock_position_hidden">Hidden</string>
- <string name="status_bar_clock_auto_hide_title">Auto-hide</string>
- <string name="status_bar_clock_auto_hide_summary">Hide and display clock for regular interval to save statusbar space</string>
- <string name="status_bar_clock_auto_hide_hdur_title">Hide duration</string>
- <string name="status_bar_clock_auto_hide_hdur_summary">Number of seconds to hide clock</string>
- <string name="status_bar_clock_auto_hide_sdur_title">Show duration</string>
- <string name="status_bar_clock_auto_hide_sdur_summary">Number of seconds to wait before hiding clock</string>
-
+ <string name="status_bar_clock_show">Show clock and date</string>
+ <string name="status_bar_clock_style_title">Clock style</string>
+ <string name="status_bar_clock_style_right">Right</string>
+ <string name="status_bar_clock_style_center">Center</string>
+ <string name="status_bar_clock_style_left">Left</string>
+ <string name="status_bar_clock_style_hidden">Hidden</string>
<string name="status_bar_am_pm_title">AM/PM style</string>
<string name="status_bar_am_pm_info">24-hour clock is enabled</string>
<string name="status_bar_am_pm_normal">Normal</string>
<string name="status_bar_am_pm_small">Small</string>
- <string name="status_bar_am_pm_hidden">Hidden</string>
-
- <!--Status bar date -->
- <string name="status_bar_date_title">Date</string>
- <string name="status_bar_date_none">Hidden (default)</string>
- <string name="status_bar_date_small">Small</string>
- <string name="status_bar_date_normal">Normal</string>
- <string name="status_bar_date_format_title">Date format</string>
- <string name="status_bar_date_style">Date style</string>
- <string name="status_bar_date_style_normal">Normal</string>
- <string name="status_bar_date_style_lowercase">Lowercase</string>
- <string name="status_bar_date_style_uppercase">Uppercase</string>
- <string name="status_bar_date_format_custom">Custom java format</string>
- <string name="status_bar_date_string_edittext_title">Must be in DateFormat eg. MM/dd/yy</string>
- <string name="status_bar_date_string_edittext_summary">Enter string</string>
-
- <string name="clock_date_position">Date position</string>
+ <string name="status_bar_am_pm_hidden">Hidden (default)</string>
+ <string name="clock_seconds_display">Show seconds</string>
+ <string name="clock_date_display">Date</string>
+ <string name="clock_date_display_summary">Display custom date before the clock</string>
+ <string name="clock_date_display_none">Don\'t show</string>
+ <string name="clock_date_display_small">Small font size</string>
+ <string name="clock_date_display_normal">Normal font size</string>
+ <string name="clock_date_style">Date style</string>
+ <string name="clock_date_style_normal">Normal</string>
+ <string name="clock_date_style_lowercase">Lowercase</string>
+ <string name="clock_date_style_uppercase">Uppercase</string>
+ <string name="clock_date_format_custom">Custom java format</string>
+ <string name="clock_date_format">Date format</string>
+ <string name="clock_date_string_edittext_title">Must be in DateFormat eg. MM/dd/yy</string>
+ <string name="clock_date_string_edittext_summary">Enter string</string>
<string name="clock_date_right">Right of time</string>
<string name="clock_date_left">Left of time</string>
-
- <!-- Statusbar Clock Font Style, Size & Color -->
- <string name="status_bar_clock_font_style_title">Clock font style</string>
- <string name="status_bar_clock_font_size_title">Clock font size</string>
- <string name="status_bar_clock_color_title">Clock font color</string>
+ <string name="clock_date_position">Date position</string>
<!-- Status bar - Battery -->
<string name="status_bar_battery_title">Battery indicator</string>
diff --git a/res/xml/blissify_statusbar.xml b/res/xml/blissify_statusbar.xml
index 8aec080..158e30e 100644
--- a/res/xml/blissify_statusbar.xml
+++ b/res/xml/blissify_statusbar.xml
@@ -26,24 +26,16 @@
<!-- Clock -->
<PreferenceCategory
- android:key="status_bar_clock_key"
+ android:key="clock_customisations_category"
android:icon="@drawable/ic_clock"
- android:title="@string/status_bar_clock_title">
+ android:title="@string/clock_customisations_title">
- <lineageos.preference.LineageSystemSettingListPreference
- android:key="status_bar_clock"
- android:title="@string/status_bar_clock_position_title"
- android:summary="%s"
- android:dialogTitle="@string/status_bar_clock_position_title"
- android:entries="@array/status_bar_clock_position_entries"
- android:entryValues="@array/status_bar_clock_position_values"
- android:defaultValue="2" />
-
- <!--<Preference
- android:key="clock"
+ <Preference
+ android:key="statusbar_clock_category"
+ android:fragment="com.blissroms.blissify.fragments.statusbar.Clock"
android:title="@string/status_bar_clock_title"
android:summary="@string/status_bar_clock_summary"
- android:fragment="com.blissroms.blissify.fragments.statusbar.Clock" /> -->
+ android:defaultValue="false" />
</PreferenceCategory>
diff --git a/res/xml/status_bar_clock.xml b/res/xml/status_bar_clock.xml
deleted file mode 100644
index 850b7d0..0000000
--- a/res/xml/status_bar_clock.xml
+++ /dev/null
@@ -1,153 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (C) 2018-2019 crDroid Android Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-<PreferenceScreen
- android:title="@string/status_bar_clock_title"
- xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:settings="http://schemas.android.com/apk/res/com.android.settings">
-
- <!-- Bliss Logo Header -->
- <Preference
- android:key="bliss_logo"
- android:layout="@layout/bliss_logo" />
-
- <PreferenceCategory
- android:key="status_bar_clock_autohide"
- android:icon="@drawable/ic_clock"
- android:title="@string/status_bar_clock_auto_hide_title">
-
- <com.bliss.support.preferences.SystemSettingSwitchPreference
- android:key="status_bar_clock_auto_hide"
- android:title="@string/status_bar_clock_auto_hide_title"
- android:summary="@string/status_bar_clock_auto_hide_summary"
- android:defaultValue="false" />
-
- <com.bliss.support.preferences.CustomSeekBarPreference
- android:key="status_bar_clock_auto_hide_hduration"
- android:title="@string/status_bar_clock_auto_hide_hdur_title"
- android:summary="@string/status_bar_clock_auto_hide_hdur_summary"
- android:max="300"
- settings:min="5"
- settings:interval="5"
- android:dependency="status_bar_clock_auto_hide"
- android:defaultValue="60"
- android:persistent="false" />
-
- <com.bliss.support.preferences.CustomSeekBarPreference
- android:key="status_bar_clock_auto_hide_sduration"
- android:title="@string/status_bar_clock_auto_hide_sdur_title"
- android:summary="@string/status_bar_clock_auto_hide_sdur_summary"
- android:max="300"
- settings:min="5"
- settings:interval="5"
- android:dependency="status_bar_clock_auto_hide"
- android:defaultValue="5"
- android:persistent="false" />
-
- </PreferenceCategory>
-
- <PreferenceCategory
- android:key="clock_customisations_category"
- android:icon="@drawable/ic_clock"
- android:title="@string/clock_customisations_title">
-
- <com.bliss.support.preferences.SystemSettingSwitchPreference
- android:key="status_bar_clock_seconds"
- android:title="@string/status_bar_clock_seconds_title"
- android:summary="@string/status_bar_clock_seconds_summary"
- android:defaultValue="false" />
-
- <lineageos.preference.LineageSystemSettingListPreference
- android:key="status_bar_am_pm"
- android:title="@string/status_bar_am_pm_title"
- android:summary="%s"
- android:dialogTitle="@string/status_bar_am_pm_title"
- android:entries="@array/status_bar_am_pm_entries"
- android:entryValues="@array/status_bar_am_pm_values"
- android:defaultValue="2" />
-
- <com.bliss.support.preferences.SystemSettingListPreference
- android:key="status_bar_clock_date_display"
- android:title="@string/status_bar_date_title"
- android:entries="@array/status_bar_date_entries"
- android:entryValues="@array/status_bar_date_values"
- android:defaultValue="0" />
-
- <com.bliss.support.preferences.SystemSettingListPreference
- android:key="status_bar_clock_date_position"
- android:title="@string/clock_date_position"
- android:entries="@array/clock_date_position_entries"
- android:entryValues="@array/clock_date_position_values"
- android:defaultValue="0" />
-
- <com.bliss.support.preferences.SystemSettingListPreference
- android:key="status_bar_clock_date_style"
- android:title="@string/status_bar_date_style"
- android:entries="@array/status_bar_date_style_entries"
- android:entryValues="@array/status_bar_date_style_values"
- android:defaultValue="0" />
-
- <ListPreference
- android:key="status_bar_clock_date_format"
- android:title="@string/status_bar_date_format_title"
- android:entries="@array/status_bar_date_format_entries_values"
- android:entryValues="@array/status_bar_date_format_entries_values" />
-
- </PreferenceCategory>
-
- <PreferenceCategory
- android:key="qs_clock_style_category"
- android:icon="@drawable/ic_clock"
- android:title="@string/qs_clock_style_title">
-
- <com.bliss.support.preferences.SystemSettingListPreference
- android:key="qs_clock_style"
- android:title="@string/qs_clock_style_title"
- android:entries="@array/qs_clock_style_entries"
- android:entryValues="@array/qs_clock_style_values"
- android:defaultValue="1" />
-
- </PreferenceCategory>
-
- <PreferenceCategory
- android:key="clock_font_and_color_category"
- android:icon="@drawable/ic_clock"
- android:title="@string/clock_font_and_color_title">
-
- <com.bliss.support.preferences.CustomSeekBarPreference
- android:key="status_bar_clock_size"
- android:title="@string/status_bar_clock_font_size_title"
- android:max="23"
- settings:min="4"
- android:defaultValue="14"
- settings:units="dp"/>
-
- <com.bliss.support.colorpicker.ColorPickerPreference
- android:key="status_bar_clock_color"
- android:title="@string/status_bar_clock_color_title"
- android:defaultValue="0xffffffff" />
-
- <ListPreference
- android:key="status_bar_clock_font_style"
- android:dialogTitle="@string/status_bar_clock_font_style_title"
- android:title="@string/status_bar_clock_font_style_title"
- android:entries="@array/font_style_entries"
- android:entryValues="@array/font_style_values"
- android:defaultValue="36" />
-
- </PreferenceCategory>
-
-</PreferenceScreen>
diff --git a/res/xml/statusbar_clock.xml b/res/xml/statusbar_clock.xml
new file mode 100644
index 0000000..87109b0
--- /dev/null
+++ b/res/xml/statusbar_clock.xml
@@ -0,0 +1,80 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2019 BlissRoms Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<PreferenceScreen
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:settings="http://schemas.android.com/apk/res/com.android.settings"
+ xmlns:lineage="http://schemas.android.com/apk/res/lineageos.platform"
+ android:title="@string/status_bar_clock_title" >
+
+ <!-- Bliss Header -->
+ <Preference
+ android:key="bliss_header"
+ android:layout="@layout/statusbar_header" />
+
+ <com.bliss.support.preferences.SystemSettingSwitchPreference
+ android:key="statusbar_clock"
+ android:title="@string/status_bar_clock_show"
+ android:defaultValue="true" />
+
+ <ListPreference
+ android:key="statusbar_clock_style"
+ android:title="@string/status_bar_clock_style_title"
+ android:dialogTitle="@string/status_bar_clock_style_title"
+ android:entries="@array/status_bar_clock_style_entries"
+ android:entryValues="@array/status_bar_clock_style_values"
+ android:dependency="statusbar_clock" />
+
+ <ListPreference
+ android:key="statusbar_am_pm"
+ android:title="@string/status_bar_am_pm_title"
+ android:dialogTitle="@string/status_bar_am_pm_title"
+ android:entries="@array/status_bar_am_pm_entries"
+ android:entryValues="@array/status_bar_am_pm_values"
+ android:dependency="statusbar_clock" />
+
+ <com.bliss.support.preferences.SystemSettingSwitchPreference
+ android:key="statusbar_clock_seconds"
+ android:title="@string/clock_seconds_display"
+ android:dependency="statusbar_clock"
+ android:defaultValue="false" />
+
+ <ListPreference
+ android:key="clock_date_display"
+ android:title="@string/clock_date_display"
+ android:summary="@string/clock_date_display_summary"
+ android:entries="@array/clock_date_display_entries"
+ android:entryValues="@array/clock_date_display_values"
+ android:dependency="statusbar_clock" />
+
+ <ListPreference
+ android:key="clock_date_style"
+ android:title="@string/clock_date_style"
+ android:entries="@array/clock_date_style_entries"
+ android:entryValues="@array/clock_date_style_values" />
+
+ <ListPreference
+ android:key="clock_date_format"
+ android:title="@string/clock_date_format"
+ android:entries="@array/clock_date_format_entries_values"
+ android:entryValues="@array/clock_date_format_entries_values" />
+
+ <ListPreference
+ android:key="statusbar_clock_date_position"
+ android:title="@string/clock_date_position"
+ android:entries="@array/clock_date_position_entries"
+ android:entryValues="@array/clock_date_position_values" />
+
+</PreferenceScreen>
diff --git a/src/com/blissroms/blissify/fragments/statusbar/Clock.java b/src/com/blissroms/blissify/fragments/statusbar/Clock.java
new file mode 100644
index 0000000..0b19df2
--- /dev/null
+++ b/src/com/blissroms/blissify/fragments/statusbar/Clock.java
@@ -0,0 +1,309 @@
+/*
+ * Copyright (C) 2019 The BlissRoms Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.blissroms.blissify.fragments.statusbar;
+
+import android.app.Activity;
+import android.app.AlertDialog;
+import android.content.ContentResolver;
+import android.content.Context;
+import android.content.DialogInterface;
+import android.content.DialogInterface.OnCancelListener;
+import android.content.Intent;
+import android.content.res.Resources;
+import android.os.Bundle;
+import android.os.UserHandle;
+import android.provider.Settings;
+import android.provider.SearchIndexableResource;
+import android.text.format.DateFormat;
+import android.text.TextUtils;
+import android.util.Log;
+import android.view.View;
+import android.widget.EditText;
+import android.widget.Toast;
+
+import androidx.preference.PreferenceCategory;
+import androidx.preference.ListPreference;
+import androidx.preference.Preference;
+import androidx.preference.PreferenceScreen;
+import androidx.preference.Preference.OnPreferenceChangeListener;
+import androidx.preference.SwitchPreference;
+
+import com.android.settings.SettingsPreferenceFragment;
+import com.android.settings.Utils;
+import com.android.settings.search.BaseSearchIndexProvider;
+import com.android.settingslib.search.SearchIndexable;
+import com.android.settings.R;
+
+import com.android.internal.logging.nano.MetricsProto;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Date;
+import java.util.List;
+
+@SearchIndexable(forTarget = SearchIndexable.ALL & ~SearchIndexable.ARC)
+public class Clock extends SettingsPreferenceFragment implements
+ OnPreferenceChangeListener {
+
+ private static final String STATUSBAR_CLOCK = "statusbar_clock";
+ private static final String STATUSBAR_CLOCK_SECONDS = "statusbar_clock_seconds";
+ private static final String STATUSBAR_CLOCK_STYLE = "statusbar_clock_style";
+ private static final String STATUSBAR_AM_PM = "statusbar_am_pm";
+ private static final String STATUSBAR_CLOCK_DATE_DISPLAY = "clock_date_display";
+ private static final String STATUSBAR_CLOCK_DATE_STYLE = "clock_date_style";
+ private static final String STATUSBAR_CLOCK_DATE_FORMAT = "clock_date_format";
+ private static final String STATUSBAR_CLOCK_DATE_POSITION = "statusbar_clock_date_position";
+ public static final int CLOCK_DATE_STYLE_LOWERCASE = 1;
+ public static final int CLOCK_DATE_STYLE_UPPERCASE = 2;
+ private static final int CUSTOM_CLOCK_DATE_FORMAT_INDEX = 18;
+
+ private ListPreference mStatusBarClock;
+ private ListPreference mStatusBarAmPm;
+ private ListPreference mClockDateDisplay;
+ private ListPreference mClockDateStyle;
+ private ListPreference mClockDateFormat;
+ private ListPreference mClockDatePosition;
+
+ @Override
+ public void onCreate(Bundle icicle) {
+ super.onCreate(icicle);
+
+ addPreferencesFromResource(R.xml.statusbar_clock);
+ final ContentResolver resolver = getActivity().getContentResolver();
+
+ // clock settings
+ mStatusBarClock = (ListPreference) findPreference(STATUSBAR_CLOCK_STYLE);
+ mStatusBarAmPm = (ListPreference) findPreference(STATUSBAR_AM_PM);
+ mClockDateDisplay = (ListPreference) findPreference(STATUSBAR_CLOCK_DATE_DISPLAY);
+ mClockDateStyle = (ListPreference) findPreference(STATUSBAR_CLOCK_DATE_STYLE);
+
+ int clockStyle = Settings.System.getInt(resolver,
+ Settings.System.STATUSBAR_CLOCK_STYLE, 0);
+ mStatusBarClock.setValue(String.valueOf(clockStyle));
+ mStatusBarClock.setSummary(mStatusBarClock.getEntry());
+ mStatusBarClock.setOnPreferenceChangeListener(this);
+
+ if (DateFormat.is24HourFormat(getActivity())) {
+ mStatusBarAmPm.setEnabled(false);
+ mStatusBarAmPm.setSummary(R.string.status_bar_am_pm_info);
+ } else {
+ int statusBarAmPm = Settings.System.getInt(resolver,
+ Settings.System.STATUSBAR_CLOCK_AM_PM_STYLE, 2);
+ mStatusBarAmPm.setValue(String.valueOf(statusBarAmPm));
+ mStatusBarAmPm.setSummary(mStatusBarAmPm.getEntry());
+ mStatusBarAmPm.setOnPreferenceChangeListener(this);
+ }
+
+ int clockDateDisplay = Settings.System.getInt(resolver,
+ Settings.System.STATUSBAR_CLOCK_DATE_DISPLAY, 0);
+ mClockDateDisplay.setValue(String.valueOf(clockDateDisplay));
+ mClockDateDisplay.setSummary(mClockDateDisplay.getEntry());
+ mClockDateDisplay.setOnPreferenceChangeListener(this);
+
+ int clockDateStyle = Settings.System.getInt(resolver,
+ Settings.System.STATUSBAR_CLOCK_DATE_STYLE, 0);
+ mClockDateStyle.setValue(String.valueOf(clockDateStyle));
+ mClockDateStyle.setSummary(mClockDateStyle.getEntry());
+ mClockDateStyle.setOnPreferenceChangeListener(this);
+
+ mClockDateFormat = (ListPreference) findPreference(STATUSBAR_CLOCK_DATE_FORMAT);
+ mClockDateFormat.setOnPreferenceChangeListener(this);
+ String clkvalue = Settings.System.getString(getActivity().getContentResolver(),
+ Settings.System.STATUSBAR_CLOCK_DATE_FORMAT);
+
+ if (clkvalue == null || clkvalue.isEmpty()) {
+ clkvalue = "EEE";
+ }
+
+ int index = mClockDateFormat.findIndexOfValue((String) clkvalue);
+ if (index == -1) {
+ mClockDateFormat.setValueIndex(CUSTOM_CLOCK_DATE_FORMAT_INDEX);
+ } else {
+ mClockDateFormat.setValue(clkvalue);
+ }
+ parseClockDateFormats();
+
+ mClockDatePosition = (ListPreference) findPreference(STATUSBAR_CLOCK_DATE_POSITION);
+ mClockDatePosition.setValue(Integer.toString(Settings.System.getInt(getActivity()
+ .getContentResolver(), Settings.System.STATUSBAR_CLOCK_DATE_POSITION, 0)));
+ mClockDatePosition.setSummary(mClockDatePosition.getEntry());
+ mClockDatePosition.setOnPreferenceChangeListener(this);
+
+ int clockDatePosition = Settings.System.getInt(resolver,
+ Settings.System.STATUSBAR_CLOCK_DATE_POSITION, 0);
+ mClockDatePosition.setValue(String.valueOf(clockDatePosition));
+ mClockDatePosition.setSummary(mClockDatePosition.getEntry());
+ mClockDatePosition.setOnPreferenceChangeListener(this);
+
+ setDateOptions();
+ }
+
+ @Override
+ public boolean onPreferenceChange(Preference preference, Object objValue) {
+ AlertDialog dialog;
+ if (preference == mStatusBarClock) {
+ int clockStyle = Integer.parseInt((String) objValue);
+ int index = mStatusBarClock.findIndexOfValue((String) objValue);
+ Settings.System.putInt(getActivity().getContentResolver(),
+ Settings.System.STATUSBAR_CLOCK_STYLE, clockStyle);
+ mStatusBarClock.setSummary(mStatusBarClock.getEntries()[index]);
+ return true;
+ } else if (preference == mStatusBarAmPm) {
+ int statusBarAmPm = Integer.valueOf((String) objValue);
+ int index = mStatusBarAmPm.findIndexOfValue((String) objValue);
+ Settings.System.putInt(getActivity().getContentResolver(),
+ Settings.System.STATUSBAR_CLOCK_AM_PM_STYLE, statusBarAmPm);
+ mStatusBarAmPm.setSummary(mStatusBarAmPm.getEntries()[index]);
+ return true;
+ } else if (preference == mClockDateDisplay) {
+ int clockDateDisplay = Integer.valueOf((String) objValue);
+ int index = mClockDateDisplay.findIndexOfValue((String) objValue);
+ Settings.System.putInt(getActivity().getContentResolver(),
+ Settings.System.STATUSBAR_CLOCK_DATE_DISPLAY, clockDateDisplay);
+ mClockDateDisplay.setSummary(mClockDateDisplay.getEntries()[index]);
+ setDateOptions();
+ return true;
+ } else if (preference == mClockDateStyle) {
+ int clockDateStyle = Integer.valueOf((String) objValue);
+ int index = mClockDateStyle.findIndexOfValue((String) objValue);
+ Settings.System.putInt(getActivity().getContentResolver(),
+ Settings.System.STATUSBAR_CLOCK_DATE_STYLE, clockDateStyle);
+ mClockDateStyle.setSummary(mClockDateStyle.getEntries()[index]);
+ parseClockDateFormats();
+ return true;
+ } else if (preference == mClockDateFormat) {
+ int index = mClockDateFormat.findIndexOfValue((String) objValue);
+
+ if (index == CUSTOM_CLOCK_DATE_FORMAT_INDEX) {
+ AlertDialog.Builder alert = new AlertDialog.Builder(getActivity());
+ alert.setTitle(R.string.clock_date_string_edittext_title);
+ alert.setMessage(R.string.clock_date_string_edittext_summary);
+ final EditText input = new EditText(getActivity());
+ String oldText = Settings.System.getString(
+ getActivity().getContentResolver(),
+ Settings.System.STATUSBAR_CLOCK_DATE_FORMAT);
+ if (oldText != null) {
+ input.setText(oldText);
+ }
+ alert.setView(input);
+ alert.setPositiveButton(R.string.menu_save, new DialogInterface.OnClickListener() {
+ public void onClick(DialogInterface dialogInterface, int whichButton) {
+ String value = input.getText().toString();
+ if (value.equals("")) {
+ return;
+ }
+ Settings.System.putString(getActivity().getContentResolver(),
+ Settings.System.STATUSBAR_CLOCK_DATE_FORMAT, value);
+ return;
+ }
+ });
+
+ alert.setNegativeButton(R.string.menu_cancel,
+ new DialogInterface.OnClickListener() {
+ public void onClick(DialogInterface dialogInterface, int which) {
+ return;
+ }
+ });
+ dialog = alert.create();
+ dialog.show();
+ } else {
+ if ((String) objValue != null) {
+ Settings.System.putString(getActivity().getContentResolver(),
+ Settings.System.STATUSBAR_CLOCK_DATE_FORMAT, (String) objValue);
+ }
+ }
+ return true;
+ } else if (preference == mClockDatePosition) {
+ int val = Integer.parseInt((String) objValue);
+ int index = mClockDatePosition.findIndexOfValue((String) objValue);
+ Settings.System.putInt(getActivity().getContentResolver(),
+ Settings.System.STATUSBAR_CLOCK_DATE_POSITION, val);
+ mClockDatePosition.setSummary(mClockDatePosition.getEntries()[index]);
+ parseClockDateFormats();
+ return true;
+ }
+ return false;
+ }
+
+ private void parseClockDateFormats() {
+ String[] dateEntries = getResources().getStringArray(R.array.clock_date_format_entries_values);
+ CharSequence parsedDateEntries[];
+ parsedDateEntries = new String[dateEntries.length];
+ Date now = new Date();
+
+ int lastEntry = dateEntries.length - 1;
+ int dateFormat = Settings.System.getInt(getActivity()
+ .getContentResolver(), Settings.System.STATUSBAR_CLOCK_DATE_STYLE, 0);
+ for (int i = 0; i < dateEntries.length; i++) {
+ if (i == lastEntry) {
+ parsedDateEntries[i] = dateEntries[i];
+ } else {
+ String newDate;
+ CharSequence dateString = DateFormat.format(dateEntries[i], now);
+ if (dateFormat == CLOCK_DATE_STYLE_LOWERCASE) {
+ newDate = dateString.toString().toLowerCase();
+ } else if (dateFormat == CLOCK_DATE_STYLE_UPPERCASE) {
+ newDate = dateString.toString().toUpperCase();
+ } else {
+ newDate = dateString.toString();
+ }
+ parsedDateEntries[i] = newDate;
+ }
+ }
+ mClockDateFormat.setEntries(parsedDateEntries);
+ }
+
+ private void setDateOptions() {
+ int enableDateOptions = Settings.System.getInt(getActivity().getContentResolver(),
+ Settings.System.STATUSBAR_CLOCK_DATE_DISPLAY, 0);
+ if (enableDateOptions == 0) {
+ mClockDateStyle.setEnabled(false);
+ mClockDateFormat.setEnabled(false);
+ mClockDatePosition.setEnabled(false);
+ } else {
+ mClockDateStyle.setEnabled(true);
+ mClockDateFormat.setEnabled(true);
+ mClockDatePosition.setEnabled(true);
+ }
+ }
+
+ @Override
+ public int getMetricsCategory() {
+ return MetricsProto.MetricsEvent.BLISSIFY;
+ }
+
+ public static final SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
+ new BaseSearchIndexProvider() {
+ @Override
+ public List<SearchIndexableResource> getXmlResourcesToIndex(Context context,
+ boolean enabled) {
+ ArrayList<SearchIndexableResource> result =
+ new ArrayList<SearchIndexableResource>();
+
+ SearchIndexableResource sir = new SearchIndexableResource(context);
+ sir.xmlResId = R.xml.statusbar_clock;
+ result.add(sir);
+ return result;
+ }
+
+ @Override
+ public List<String> getNonIndexableKeys(Context context) {
+ List<String> keys = super.getNonIndexableKeys(context);
+ return keys;
+ }
+ };
+}
+
diff --git a/src/com/blissroms/blissify/fragments/statusbar/StatusBar.java b/src/com/blissroms/blissify/fragments/statusbar/StatusBar.java
index 181bd83..fb53894 100644
--- a/src/com/blissroms/blissify/fragments/statusbar/StatusBar.java
+++ b/src/com/blissroms/blissify/fragments/statusbar/StatusBar.java
@@ -83,8 +83,6 @@
private static final int STATUS_BAR_BATTERY_STYLE_TEXT = 2;
- private static final String CATEGORY_CLOCK = "status_bar_clock_key";
-
private static final String ICON_BLACKLIST = "icon_blacklist";
/*
private static final String STATUS_BAR_CLOCK_STYLE = "status_bar_clock";
@@ -181,7 +179,7 @@
mBlissLogoColor.setSummary(R.string.default_string);
}
mBlissLogoColor.setOnPreferenceChangeListener(this);
-
+/*
mOldMobileType = (SwitchPreference) findPreference(KEY_OLD_MOBILETYPE);
boolean mConfigUseOldMobileType = mContext.getResources().getBoolean(
com.android.internal.R.bool.config_useOldMobileIcons);