Cherish: Settings Customization

Signed-off-by: Hưng Phan <phandinhhungvp2001@gmail.com>
This commit is contained in:
spkal01
2022-05-28 12:19:53 +07:00
committed by Hưng Phan
parent 9dedf283bc
commit ec836d4606
4 changed files with 94 additions and 0 deletions

View File

@@ -633,5 +633,22 @@
<item>0</item>
<item>1</item>
</string-array>
<!-- Settings dashboard styles-->
<string-array name="settings_dashboard_style_entries" translatable="false">
<item>@string/settings_dashboard_style_aosp</item>
<item>@string/settings_dashboard_style_oos11</item>
<item>@string/settings_dashboard_style_oos12</item>
<item>@string/settings_dashboard_style_cherish</item>
<item>@string/settings_dashboard_style_cherish_clean</item>
</string-array>
<string-array name="settings_dashboard_style_values" translatable="false">
<item>0</item>
<item>1</item>
<item>2</item>
<item>3</item>
<item>4</item>
</string-array>
</resources>

View File

@@ -808,4 +808,19 @@
<!-- Colorful battery icon -->
<string name="battery_level_colors_title">Toggle colorful battery icon</string>
<string name="battery_level_colors_summary">Each battery level drop is color coded</string>
<!-- Custom settings dashboard style -->
<string name="settings_dashboard_style_title">Settings layout</string>
<string name="settings_dashboard_style_aosp">Aosp</string>
<string name="settings_dashboard_style_oos11">OxygenOS 11</string>
<string name="settings_dashboard_style_oos12">OxygenOS 12</string>
<string name="settings_dashboard_style_cherish">Cherish</string>
<string name="settings_dashboard_style_cherish_clean">Cherish Clean</string>
<string name="settings_layout_category_title">Settings UI interface</string>
<string name="settings_base_style_title">Settings Base layout</string>
<string name="settings_base_style_summary">Use an alternative layout for setting menus</string>
<string name="settings_home_style_title">Settings Home layout</string>
<string name="settings_home_style_summary">Use stock aosp layout for homepage</string>
<string name="disable_usercard_title">Settings UserCard</string>
<string name="disable_usercard_summary">Toggle in order not to show the usercard on main settings page</string>
</resources>

View File

@@ -17,6 +17,38 @@
xmlns:android="http://schemas.android.com/apk/res/android"
android:title="@string/theme_title"
xmlns:settings="http://schemas.android.com/apk/res/com.android.settings">
<PreferenceCategory
android:key="settings_layout_category"
android:title="@string/settings_layout_category_title">
<com.cherish.settings.preferences.SystemSettingListPreference
android:key="settings_dashboard_style"
android:title="@string/settings_dashboard_style_title"
android:entries="@array/settings_dashboard_style_entries"
android:entryValues="@array/settings_dashboard_style_values"
android:summary="%s"
android:defaultValue="0" />
<com.cherish.settings.preferences.SystemSettingSwitchPreference
android:key="alt_settings_layout"
android:title="@string/settings_base_style_title"
android:summary="@string/settings_base_style_summary"
android:defaultValue="false" />
<com.cherish.settings.preferences.SystemSettingSwitchPreference
android:key="use_stock_layout"
android:title="@string/settings_home_style_title"
android:summary="@string/settings_home_style_summary"
android:defaultValue="false" />
<com.cherish.settings.preferences.SystemSettingSwitchPreference
android:key="disable_usercard"
android:title="@string/disable_usercard_title"
android:summary="@string/disable_usercard_summary"
android:defaultValue="false" />
</PreferenceCategory>
<com.cherish.settings.preferences.SecureSettingSwitchPreference
android:key="system_black_theme"

View File

@@ -70,12 +70,20 @@ import net.margaritov.preference.colorpicker.ColorPickerPreference;
public class ThemeSettings extends DashboardFragment implements OnPreferenceChangeListener {
public static final String TAG = "ThemeSettings";
private static final String ALT_SETTINGS_LAYOUT = "alt_settings_layout";
private static final String SETTINGS_DASHBOARD_STYLE = "settings_dashboard_style";
private static final String USE_STOCK_LAYOUT = "use_stock_layout";
private static final String DISABLE_USERCARD = "disable_usercard";
static final int DEFAULT_QS_PANEL_COLOR = 0xffffffff;
static final int DEFAULT = 0xff1a73e8;
private Context mContext;
private IOverlayManager mOverlayService;
private UiModeManager mUiModeManager;
private SystemSettingListPreference mSettingsDashBoardStyle;
private SystemSettingSwitchPreference mAltSettingsLayout;
private SystemSettingSwitchPreference mUseStockLayout;
private SystemSettingSwitchPreference mDisableUserCard;
@Override
protected String getLogTag() {
@@ -107,6 +115,15 @@ public class ThemeSettings extends DashboardFragment implements OnPreferenceChan
ContentResolver resolver = getActivity().getContentResolver();
final Resources res = getResources();
mContext = getActivity();
mSettingsDashBoardStyle = (SystemSettingListPreference) findPreference(SETTINGS_DASHBOARD_STYLE);
mSettingsDashBoardStyle.setOnPreferenceChangeListener(this);
mAltSettingsLayout = (SystemSettingSwitchPreference) findPreference(ALT_SETTINGS_LAYOUT);
mAltSettingsLayout.setOnPreferenceChangeListener(this);
mUseStockLayout = (SystemSettingSwitchPreference) findPreference(USE_STOCK_LAYOUT);
mUseStockLayout.setOnPreferenceChangeListener(this);
mDisableUserCard = (SystemSettingSwitchPreference) findPreference(DISABLE_USERCARD);
mDisableUserCard.setOnPreferenceChangeListener(this);
}
public boolean isAvailable() {
@@ -116,6 +133,19 @@ public class ThemeSettings extends DashboardFragment implements OnPreferenceChan
@Override
public boolean onPreferenceChange(Preference preference, Object objValue) {
ContentResolver resolver = getActivity().getContentResolver();
if (preference == mSettingsDashBoardStyle) {
CherishUtils.showSettingsRestartDialog(getContext());
return true;
} else if (preference == mAltSettingsLayout) {
CherishUtils.showSettingsRestartDialog(getContext());
return true;
} else if (preference == mUseStockLayout) {
CherishUtils.showSettingsRestartDialog(getContext());
return true;
} else if (preference == mDisableUserCard) {
CherishUtils.showSettingsRestartDialog(getContext());
return true;
}
return false;
}