Evolver: Status bar clock customizations [2/2]
Signed-off-by: Pranav Vashi <neobuddy89@gmail.com> Signed-off-by: AnierinB <anierin@evolution-x.org>
This commit is contained in:
@@ -94,6 +94,127 @@
|
||||
<item>3</item>
|
||||
</string-array>
|
||||
|
||||
<!-- Status bar/Clock & date-->
|
||||
<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>
|
||||
</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">
|
||||
<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>
|
||||
</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/status_bar_clock_date_left</item>
|
||||
<item>@string/status_bar_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_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>
|
||||
|
||||
<string-array name="status_bar_date_style_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">
|
||||
<item>dd/MM/yy</item>
|
||||
<item>MM/dd/yy</item>
|
||||
<item>yyyy-MM-dd</item>
|
||||
<item>yyyy-dd-MM</item>
|
||||
<item>dd-MM-yyyy</item>
|
||||
<item>MM-dd-yyyy</item>
|
||||
<item>MMM dd</item>
|
||||
<item>MMM dd, yyyy</item>
|
||||
<item>MMMM dd, yyyy</item>
|
||||
<item>EEE</item>
|
||||
<item>EEE dd</item>
|
||||
<item>EEE dd/MM</item>
|
||||
<item>EEE MM/dd</item>
|
||||
<item>EEE dd MMM</item>
|
||||
<item>EEE MMM dd</item>
|
||||
<item>EEE MMMM dd</item>
|
||||
<item>EEEE dd/MM</item>
|
||||
<item>EEEE MM/dd</item>
|
||||
<item>@string/status_bar_date_format_custom</item>
|
||||
</string-array>
|
||||
|
||||
<!-- Status bar - Battery -->
|
||||
<string-array name="status_bar_battery_style_entries" translatable="false">
|
||||
<item>@string/status_bar_battery_style_icon_portrait</item>
|
||||
|
||||
@@ -152,6 +152,8 @@
|
||||
<string name="status_bar_battery_percent_text_next_left">Next to the icon (left)</string>
|
||||
<string name="status_bar_battery_text_charging_title">Battery percentage when charging</string>
|
||||
<string name="status_bar_battery_text_charging_summary">Always display battery percentage when charging</string>
|
||||
<string name="status_bar_clock_and_date_title">Clock & date</string>
|
||||
<string name="status_bar_clock_and_date_summary">Customize clock & date</string>
|
||||
<string name="status_bar_data_disabled_icon_title">Data disabled indicator</string>
|
||||
<string name="status_bar_data_disabled_icon_summary">Display an indicator next to signal icon when data is disabled</string>
|
||||
<string name="status_bar_4g_icon_title">4G icon</string>
|
||||
@@ -176,6 +178,43 @@
|
||||
<string name="status_bar_carrier_lock_screen_title">Carrier name on lockscreen</string>
|
||||
<string name="status_bar_carrier_lock_screen_summary">Display carrier name on lockscreen status bar</string>
|
||||
|
||||
<!-- Status bar/Clock & date-->
|
||||
<string name="status_bar_clock_position_title">Clock position</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_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_auto_hide_intervals_title">Auto hide at intervals</string>
|
||||
<string name="status_bar_clock_auto_hide_intervals_summary">Hide clock at specific time based intervals</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_auto_hide_launcher_title">Auto hide on launcher</string>
|
||||
<string name="status_bar_clock_auto_hide_launcher_summary">Hide clock if launcher is visible</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>
|
||||
<string name="status_bar_date_title">Date</string>
|
||||
<string name="status_bar_date_none">Hidden</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="status_bar_clock_date_position">Date position</string>
|
||||
<string name="status_bar_clock_date_right">Right of time</string>
|
||||
<string name="status_bar_clock_date_left">Left of time</string>
|
||||
|
||||
<!-- Status bar/Network traffic -->
|
||||
<string name="network_traffic_location_title">Location</string>
|
||||
<string name="network_traffic_location_disable">Disabled</string>
|
||||
|
||||
@@ -13,6 +13,12 @@
|
||||
android:key="lock_screen_interface_category"
|
||||
android:title="@string/lock_screen_interface_category">
|
||||
|
||||
<org.evolution.settings.preferences.SystemSettingSwitchPreference
|
||||
android:key="lockscreen_show_carrier"
|
||||
android:title="@string/status_bar_carrier_lock_screen_title"
|
||||
android:summary="@string/status_bar_carrier_lock_screen_summary"
|
||||
android:defaultValue="true" />
|
||||
|
||||
<!-- Charging stats -->
|
||||
<org.evolution.settings.preferences.SystemSettingSwitchPreference
|
||||
android:key="lockscreen_battery_info"
|
||||
|
||||
@@ -41,6 +41,20 @@
|
||||
<intent android:action="com.android.settings.action.STATUS_BAR_TUNER" />
|
||||
</Preference>
|
||||
|
||||
<!-- Clock & date -->
|
||||
<Preference
|
||||
android:key="clock"
|
||||
android:title="@string/status_bar_clock_and_date_title"
|
||||
android:summary="@string/status_bar_clock_and_date_summary"
|
||||
android:fragment="org.evolution.settings.fragments.statusbar.Clock" />
|
||||
|
||||
<!-- Network traffic -->
|
||||
<Preference
|
||||
android:key="network_traffic_settings"
|
||||
android:title="@string/status_bar_network_traffic_settings_title"
|
||||
android:summary="@string/status_bar_network_traffic_settings_summary"
|
||||
android:fragment="org.evolution.settings.fragments.statusbar.NetworkTrafficSettings" />
|
||||
|
||||
<!-- Battery styles -->
|
||||
<org.evolution.settings.preferences.SystemSettingListPreference
|
||||
android:key="status_bar_battery_style"
|
||||
@@ -78,12 +92,6 @@
|
||||
android:summary="@string/status_bar_4g_icon_summary"
|
||||
android:defaultValue="false" />
|
||||
|
||||
<org.evolution.settings.preferences.SystemSettingSwitchPreference
|
||||
android:key="lockscreen_show_carrier"
|
||||
android:title="@string/status_bar_carrier_lock_screen_title"
|
||||
android:summary="@string/status_bar_carrier_lock_screen_summary"
|
||||
android:defaultValue="true" />
|
||||
|
||||
<!-- Wi-Fi standard icon -->
|
||||
<org.evolution.settings.preferences.SystemSettingSwitchPreference
|
||||
android:key="wifi_standard_icon"
|
||||
@@ -105,13 +113,6 @@
|
||||
android:summary="@string/status_bar_colored_icons_summary"
|
||||
android:defaultValue="false" />
|
||||
|
||||
<!-- Network traffic -->
|
||||
<Preference
|
||||
android:key="network_traffic_settings"
|
||||
android:title="@string/status_bar_network_traffic_settings_title"
|
||||
android:summary="@string/status_bar_network_traffic_settings_summary"
|
||||
android:fragment="org.evolution.settings.fragments.statusbar.NetworkTrafficSettings" />
|
||||
|
||||
<!-- Notification counter -->
|
||||
<org.evolution.settings.preferences.SystemSettingSwitchPreference
|
||||
android:key="statusbar_notif_count"
|
||||
|
||||
106
res/xml/status_bar_clock.xml
Normal file
106
res/xml/status_bar_clock.xml
Normal file
@@ -0,0 +1,106 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!--
|
||||
Copyright (C) 2018-2024 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
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:settings="http://schemas.android.com/apk/res/com.android.settings"
|
||||
android:title="@string/status_bar_clock_and_date_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" />
|
||||
|
||||
<org.evolution.settings.preferences.SystemSettingSwitchPreference
|
||||
android:key="status_bar_clock_auto_hide"
|
||||
android:title="@string/status_bar_clock_auto_hide_intervals_title"
|
||||
android:summary="@string/status_bar_clock_auto_hide_intervals_summary"
|
||||
android:defaultValue="false" />
|
||||
|
||||
<org.evolution.settings.preferences.SystemSettingSeekBarPreference
|
||||
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:dependency="status_bar_clock_auto_hide"
|
||||
android:max="300"
|
||||
settings:min="5"
|
||||
settings:interval="5"
|
||||
android:defaultValue="60"
|
||||
settings:units="@string/unit_seconds" />
|
||||
|
||||
<org.evolution.settings.preferences.SystemSettingSeekBarPreference
|
||||
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:dependency="status_bar_clock_auto_hide"
|
||||
android:max="300"
|
||||
settings:min="5"
|
||||
settings:interval="5"
|
||||
android:defaultValue="5"
|
||||
settings:units="@string/unit_seconds" />
|
||||
|
||||
<lineageos.preference.LineageSystemSettingSwitchPreference
|
||||
android:key="status_bar_clock_auto_hide"
|
||||
android:title="@string/status_bar_clock_auto_hide_launcher_title"
|
||||
android:summary="@string/status_bar_clock_auto_hide_launcher_summary"
|
||||
android:defaultValue="false" />
|
||||
|
||||
<org.evolution.settings.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" />
|
||||
|
||||
<org.evolution.settings.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" />
|
||||
|
||||
<org.evolution.settings.preferences.SystemSettingListPreference
|
||||
android:key="status_bar_clock_date_position"
|
||||
android:title="@string/status_bar_clock_date_position"
|
||||
android:entries="@array/clock_date_position_entries"
|
||||
android:entryValues="@array/clock_date_position_values"
|
||||
android:defaultValue="0" />
|
||||
|
||||
<org.evolution.settings.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" />
|
||||
</PreferenceScreen>
|
||||
248
src/org/evolution/settings/fragments/statusbar/Clock.java
Normal file
248
src/org/evolution/settings/fragments/statusbar/Clock.java
Normal file
@@ -0,0 +1,248 @@
|
||||
/*
|
||||
* Copyright (C) 2016-2024 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.
|
||||
*/
|
||||
|
||||
package org.evolution.settings.fragments.statusbar;
|
||||
|
||||
import android.app.AlertDialog;
|
||||
import android.content.ContentResolver;
|
||||
import android.content.Context;
|
||||
import android.content.DialogInterface;
|
||||
import android.content.DialogInterface.OnCancelListener;
|
||||
import android.os.Bundle;
|
||||
import android.os.UserHandle;
|
||||
import android.provider.Settings;
|
||||
import android.text.format.DateFormat;
|
||||
import android.view.Menu;
|
||||
import android.view.View;
|
||||
import android.widget.EditText;
|
||||
|
||||
import androidx.preference.ListPreference;
|
||||
import androidx.preference.Preference;
|
||||
import androidx.preference.PreferenceScreen;
|
||||
import androidx.preference.Preference.OnPreferenceChangeListener;
|
||||
|
||||
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
|
||||
import com.android.settings.R;
|
||||
import com.android.settings.search.BaseSearchIndexProvider;
|
||||
import com.android.settings.SettingsPreferenceFragment;
|
||||
import com.android.settingslib.search.SearchIndexable;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
import lineageos.preference.LineageSystemSettingListPreference;
|
||||
import lineageos.providers.LineageSettings;
|
||||
|
||||
import org.evolution.settings.preferences.CustomSeekBarPreference;
|
||||
import org.evolution.settings.preferences.SystemSettingListPreference;
|
||||
import org.evolution.settings.utils.DeviceUtils;
|
||||
|
||||
@SearchIndexable
|
||||
public class Clock extends SettingsPreferenceFragment implements
|
||||
Preference.OnPreferenceChangeListener {
|
||||
|
||||
private static final String TAG = "Clock";
|
||||
|
||||
private static final String STATUS_BAR_CLOCK_POSITION = "status_bar_clock";
|
||||
private static final String STATUS_BAR_AM_PM = "status_bar_am_pm";
|
||||
private static final String CLOCK_DATE_DISPLAY = "status_bar_clock_date_display";
|
||||
private static final String CLOCK_DATE_POSITION = "status_bar_clock_date_position";
|
||||
private static final String CLOCK_DATE_STYLE = "status_bar_clock_date_style";
|
||||
private static final String CLOCK_DATE_FORMAT = "status_bar_clock_date_format";
|
||||
|
||||
private static final int CLOCK_DATE_STYLE_LOWERCASE = 1;
|
||||
private static final int CLOCK_DATE_STYLE_UPPERCASE = 2;
|
||||
private static final int CUSTOM_CLOCK_DATE_FORMAT_INDEX = 18;
|
||||
|
||||
private LineageSystemSettingListPreference mClockPosition;
|
||||
private LineageSystemSettingListPreference mStatusBarAmPm;
|
||||
private SystemSettingListPreference mClockDateDisplay;
|
||||
private SystemSettingListPreference mClockDatePosition;
|
||||
private SystemSettingListPreference mClockDateStyle;
|
||||
private ListPreference mClockDateFormat;
|
||||
|
||||
@Override
|
||||
public void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
|
||||
addPreferencesFromResource(R.xml.status_bar_clock);
|
||||
|
||||
ContentResolver resolver = getActivity().getContentResolver();
|
||||
Context mContext = getActivity().getApplicationContext();
|
||||
|
||||
mClockPosition =
|
||||
(LineageSystemSettingListPreference) findPreference(STATUS_BAR_CLOCK_POSITION);
|
||||
|
||||
if (getResources().getConfiguration().getLayoutDirection() == View.LAYOUT_DIRECTION_RTL) {
|
||||
if (DeviceUtils.hasCenteredCutout(mContext)) {
|
||||
mClockPosition.setEntries(R.array.status_bar_clock_position_entries_notch_rtl);
|
||||
mClockPosition.setEntryValues(R.array.status_bar_clock_position_values_notch_rtl);
|
||||
} else {
|
||||
mClockPosition.setEntries(R.array.status_bar_clock_position_entries_rtl);
|
||||
mClockPosition.setEntryValues(R.array.status_bar_clock_position_values_rtl);
|
||||
}
|
||||
} else if (DeviceUtils.hasCenteredCutout(mContext)) {
|
||||
mClockPosition.setEntries(R.array.status_bar_clock_position_entries_notch);
|
||||
mClockPosition.setEntryValues(R.array.status_bar_clock_position_values_notch);
|
||||
}
|
||||
|
||||
mStatusBarAmPm =
|
||||
(LineageSystemSettingListPreference) findPreference(STATUS_BAR_AM_PM);
|
||||
|
||||
if (DateFormat.is24HourFormat(getActivity())) {
|
||||
mStatusBarAmPm.setEnabled(false);
|
||||
mStatusBarAmPm.setSummary(R.string.status_bar_am_pm_info);
|
||||
}
|
||||
|
||||
int dateDisplay = Settings.System.getIntForUser(resolver,
|
||||
Settings.System.STATUS_BAR_CLOCK_DATE_DISPLAY, 0, UserHandle.USER_CURRENT);
|
||||
|
||||
mClockDateDisplay = (SystemSettingListPreference) findPreference(CLOCK_DATE_DISPLAY);
|
||||
mClockDateDisplay.setOnPreferenceChangeListener(this);
|
||||
|
||||
mClockDatePosition = (SystemSettingListPreference) findPreference(CLOCK_DATE_POSITION);
|
||||
mClockDatePosition.setEnabled(dateDisplay > 0);
|
||||
mClockDatePosition.setOnPreferenceChangeListener(this);
|
||||
|
||||
mClockDateStyle = (SystemSettingListPreference) findPreference(CLOCK_DATE_STYLE);
|
||||
mClockDateStyle.setEnabled(dateDisplay > 0);
|
||||
mClockDateStyle.setOnPreferenceChangeListener(this);
|
||||
|
||||
mClockDateFormat = (ListPreference) findPreference(CLOCK_DATE_FORMAT);
|
||||
if (mClockDateFormat.getValue() == null) {
|
||||
mClockDateFormat.setValue("EEE");
|
||||
}
|
||||
parseClockDateFormats();
|
||||
mClockDateFormat.setEnabled(dateDisplay > 0);
|
||||
mClockDateFormat.setOnPreferenceChangeListener(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onPreferenceChange(Preference preference, Object newValue) {
|
||||
AlertDialog dialog;
|
||||
ContentResolver resolver = getActivity().getContentResolver();
|
||||
if (preference == mClockDateDisplay) {
|
||||
int val = Integer.parseInt((String) newValue);
|
||||
if (val == 0) {
|
||||
mClockDatePosition.setEnabled(false);
|
||||
mClockDateStyle.setEnabled(false);
|
||||
mClockDateFormat.setEnabled(false);
|
||||
} else {
|
||||
mClockDatePosition.setEnabled(true);
|
||||
mClockDateStyle.setEnabled(true);
|
||||
mClockDateFormat.setEnabled(true);
|
||||
}
|
||||
return true;
|
||||
} else if (preference == mClockDatePosition) {
|
||||
parseClockDateFormats();
|
||||
return true;
|
||||
} else if (preference == mClockDateStyle) {
|
||||
parseClockDateFormats();
|
||||
return true;
|
||||
} else if (preference == mClockDateFormat) {
|
||||
int index = mClockDateFormat.findIndexOfValue((String) newValue);
|
||||
|
||||
if (index == CUSTOM_CLOCK_DATE_FORMAT_INDEX) {
|
||||
AlertDialog.Builder alert = new AlertDialog.Builder(getActivity());
|
||||
alert.setTitle(R.string.status_bar_date_string_edittext_title);
|
||||
alert.setMessage(R.string.status_bar_date_string_edittext_summary);
|
||||
|
||||
final EditText input = new EditText(getActivity());
|
||||
String oldText = Settings.System.getString(
|
||||
resolver,
|
||||
Settings.System.STATUS_BAR_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(resolver,
|
||||
Settings.System.STATUS_BAR_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) newValue != null) {
|
||||
Settings.System.putString(resolver,
|
||||
Settings.System.STATUS_BAR_CLOCK_DATE_FORMAT, (String) newValue);
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
private void parseClockDateFormats() {
|
||||
String[] dateEntries = getResources().getStringArray(
|
||||
R.array.status_bar_date_format_entries_values);
|
||||
CharSequence parsedDateEntries[];
|
||||
parsedDateEntries = new String[dateEntries.length];
|
||||
Date now = new Date();
|
||||
|
||||
int lastEntry = dateEntries.length - 1;
|
||||
int dateFormat = Settings.System.getIntForUser(getActivity()
|
||||
.getContentResolver(), Settings.System.STATUS_BAR_CLOCK_DATE_STYLE, 0, UserHandle.USER_CURRENT);
|
||||
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);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getMetricsCategory() {
|
||||
return MetricsEvent.EVOLVER;
|
||||
}
|
||||
|
||||
public static final BaseSearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
|
||||
new BaseSearchIndexProvider(R.xml.status_bar_clock) {
|
||||
|
||||
@Override
|
||||
public List<String> getNonIndexableKeys(Context context) {
|
||||
List<String> keys = super.getNonIndexableKeys(context);
|
||||
return keys;
|
||||
}
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user