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;