Cherish: Settings Customization

Signed-off-by: Hưng Phan <phandinhhungvp2001@gmail.com>
This commit is contained in:
spkal01
2022-09-14 11:14:41 +07:00
committed by Hưng Phan
parent a7322d4cd4
commit 451d85b554
4 changed files with 97 additions and 2 deletions

View File

@@ -377,4 +377,21 @@
<item>2</item>
<item>3</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

@@ -588,5 +588,20 @@
<!-- Black theme -->
<string name="system_black_theme_title">Vivid Colors</string>
<string name="system_black_theme_summary">Use colorful and darker monet shades</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>
<PreferenceCategory
android:title="@string/theme_customization_category">

View File

@@ -68,6 +68,11 @@ import net.margaritov.preference.colorpicker.ColorPickerPreference;
@SearchIndexable(forTarget = SearchIndexable.ALL & ~SearchIndexable.ARC)
public class ThemeSettings extends DashboardFragment implements OnPreferenceChangeListener {
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";
public static final String TAG = "ThemeSettings";
static final int DEFAULT_QS_PANEL_COLOR = 0xffffffff;
@@ -76,6 +81,10 @@ public class ThemeSettings extends DashboardFragment implements OnPreferenceChan
private IOverlayManager mOverlayService;
private UiModeManager mUiModeManager;
private SystemSettingListPreference mSettingsDashBoardStyle;
private SystemSettingSwitchPreference mAltSettingsLayout;
private SystemSettingSwitchPreference mUseStockLayout;
private SystemSettingSwitchPreference mDisableUserCard;
@Override
protected String getLogTag() {
@@ -105,8 +114,17 @@ public class ThemeSettings extends DashboardFragment implements OnPreferenceChan
PreferenceScreen prefScreen = getPreferenceScreen();
ContentResolver resolver = getActivity().getContentResolver();
final Resources res = getResources();
mContext = getActivity();
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 +134,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;
}