diff --git a/res/values-vi/cherish_strings.xml b/res/values-vi/cherish_strings.xml index 956530a..3953c89 100644 --- a/res/values-vi/cherish_strings.xml +++ b/res/values-vi/cherish_strings.xml @@ -248,4 +248,13 @@ Menu nguồn trong suốt Độ mờ của menu nguồn / khởi động lại Nguồn/ khởi động lại hộp thoại mờ nền + + Góc tròn + Điều chỉnh các góc tròn và phần đệm + Tùy chỉnh các góc tròn + Bán kính góc tròn + Góc đệm nội dung + Thanh đệm thêm thanh trạng thái + Sử dụng các giá trị khung + Hữu ích nếu thiết bị thực sự có các góc tròn diff --git a/res/values/cherish_strings.xml b/res/values/cherish_strings.xml index b9fce82..c471895 100644 --- a/res/values/cherish_strings.xml +++ b/res/values/cherish_strings.xml @@ -286,5 +286,15 @@ Power Menu Transparency Power/reboot menu opacity Power/reboot dialog dim background amount + + + Rounded corners + Adjust rounded corners and padding + Customize rounded corners + Rounded corner radius + Corner content padding + Statusbar extra padding + Use framework values + Useful if the device actually has rounded corners diff --git a/res/xml/cherish_settings_theme.xml b/res/xml/cherish_settings_theme.xml index 9a304af..5d176e4 100644 --- a/res/xml/cherish_settings_theme.xml +++ b/res/xml/cherish_settings_theme.xml @@ -56,4 +56,43 @@ android:persistent="false" /> + + + + + + + + + + + + \ No newline at end of file diff --git a/src/com/cherish/settings/fragments/ThemeSettings.java b/src/com/cherish/settings/fragments/ThemeSettings.java index d513f4d..668e122 100644 --- a/src/com/cherish/settings/fragments/ThemeSettings.java +++ b/src/com/cherish/settings/fragments/ThemeSettings.java @@ -6,6 +6,7 @@ import static android.os.UserHandle.USER_SYSTEM; import android.app.UiModeManager; import android.graphics.Color; import android.os.Bundle; +import android.content.pm.PackageManager.NameNotFoundException; import android.content.Context; import android.content.Intent; import android.content.pm.PackageManager; @@ -47,12 +48,20 @@ public class ThemeSettings extends SettingsPreferenceFragment implements private static final String ACCENT_COLOR_PROP = "persist.sys.theme.accentcolor"; private static final String GRADIENT_COLOR = "gradient_color"; private static final String GRADIENT_COLOR_PROP = "persist.sys.theme.gradientcolor"; + private static final String SYSUI_ROUNDED_SIZE = "sysui_rounded_size"; + private static final String SYSUI_ROUNDED_CONTENT_PADDING = "sysui_rounded_content_padding"; + private static final String SYSUI_STATUS_BAR_PADDING = "sysui_status_bar_padding"; + private static final String SYSUI_ROUNDED_FWVALS = "sysui_rounded_fwvals"; private ColorPickerPreference mThemeColor; private ColorPickerPreference mGradientColor; private UiModeManager mUiModeManager; private IOverlayManager mOverlayService; private ListPreference mThemeSwitch; + private CustomSeekBarPreference mCornerRadius; + private CustomSeekBarPreference mContentPadding; + private CustomSeekBarPreference mSBPadding; + private SwitchPreference mRoundedFwvals; @Override public void onCreate(Bundle icicle) { @@ -62,6 +71,49 @@ public class ThemeSettings extends SettingsPreferenceFragment implements PreferenceScreen prefScreen = getPreferenceScreen(); ContentResolver resolver = getActivity().getContentResolver(); + + Resources res = null; + Context ctx = getContext(); + float density = Resources.getSystem().getDisplayMetrics().density; + + try { + res = ctx.getPackageManager().getResourcesForApplication("com.android.systemui"); + } catch (NameNotFoundException e) { + e.printStackTrace(); + } + + // Rounded Corner Radius + mCornerRadius = (CustomSeekBarPreference) findPreference(SYSUI_ROUNDED_SIZE); + int resourceIdRadius = (int) ctx.getResources().getDimension(com.android.internal.R.dimen.rounded_corner_radius); + int cornerRadius = Settings.Secure.getIntForUser(ctx.getContentResolver(), Settings.Secure.SYSUI_ROUNDED_SIZE, + ((int) (resourceIdRadius / density)), UserHandle.USER_CURRENT); + mCornerRadius.setValue(cornerRadius); + mCornerRadius.setOnPreferenceChangeListener(this); + + // Rounded Content Padding + mContentPadding = (CustomSeekBarPreference) findPreference(SYSUI_ROUNDED_CONTENT_PADDING); + int resourceIdPadding = res.getIdentifier("com.android.systemui:dimen/rounded_corner_content_padding", null, + null); + int contentPadding = Settings.Secure.getIntForUser(ctx.getContentResolver(), + Settings.Secure.SYSUI_ROUNDED_CONTENT_PADDING, + (int) (res.getDimension(resourceIdPadding) / density), UserHandle.USER_CURRENT); + mContentPadding.setValue(contentPadding); + mContentPadding.setOnPreferenceChangeListener(this); + + // Status Bar Content Padding + mSBPadding = (CustomSeekBarPreference) findPreference(SYSUI_STATUS_BAR_PADDING); + int resourceIdSBPadding = res.getIdentifier("com.android.systemui:dimen/status_bar_extra_padding", null, + null); + int sbPadding = Settings.Secure.getIntForUser(ctx.getContentResolver(), + Settings.Secure.SYSUI_STATUS_BAR_PADDING, + (int) (res.getDimension(resourceIdSBPadding) / density), UserHandle.USER_CURRENT); + mSBPadding.setValue(sbPadding); + mSBPadding.setOnPreferenceChangeListener(this); + + // Rounded use Framework Values + mRoundedFwvals = (SwitchPreference) findPreference(SYSUI_ROUNDED_FWVALS); + mRoundedFwvals.setOnPreferenceChangeListener(this); + mOverlayService = IOverlayManager.Stub .asInterface(ServiceManager.getService(Context.OVERLAY_SERVICE)); mUiModeManager = getContext().getSystemService(UiModeManager.class); @@ -167,6 +219,17 @@ public class ThemeSettings extends SettingsPreferenceFragment implements mOverlayService.reloadAssets("com.android.systemui", UserHandle.USER_CURRENT); } catch (RemoteException ignored) { } + } else if (preference == mCornerRadius) { + Settings.Secure.putIntForUser(getContext().getContentResolver(), Settings.Secure.SYSUI_ROUNDED_SIZE, + (int) objValue, UserHandle.USER_CURRENT); + } else if (preference == mContentPadding) { + Settings.Secure.putIntForUser(getContext().getContentResolver(), Settings.Secure.SYSUI_ROUNDED_CONTENT_PADDING, + (int) objValue, UserHandle.USER_CURRENT); + } else if (preference == mSBPadding) { + Settings.Secure.putIntForUser(getContext().getContentResolver(), Settings.Secure.SYSUI_STATUS_BAR_PADDING, + (int) objValue, UserHandle.USER_CURRENT); + } else if (preference == mRoundedFwvals) { + restoreCorners(); } return true; } @@ -228,6 +291,27 @@ public class ThemeSettings extends SettingsPreferenceFragment implements mGradientColor.setOnPreferenceChangeListener(this); } + private void restoreCorners() { + Resources res = null; + float density = Resources.getSystem().getDisplayMetrics().density; + Context ctx = getContext(); + + try { + res = ctx.getPackageManager().getResourcesForApplication("com.android.systemui"); + } catch (NameNotFoundException e) { + e.printStackTrace(); + } + + int resourceIdRadius = (int) ctx.getResources().getDimension(com.android.internal.R.dimen.rounded_corner_radius); + int resourceIdPadding = res.getIdentifier("com.android.systemui:dimen/rounded_corner_content_padding", null, + null); + int resourceIdSBPadding = res.getIdentifier("com.android.systemui:dimen/status_bar_extra_padding", null, + null); + mCornerRadius.setValue((int) (resourceIdRadius / density)); + mContentPadding.setValue((int) (res.getDimension(resourceIdPadding) / density)); + mSBPadding.setValue((int) (res.getDimension(resourceIdSBPadding) / density)); + } + @Override public int getMetricsCategory() { return MetricsProto.MetricsEvent.CHERISH_SETTINGS;