From 5cd33f929bd641df6ff50c0c916d7f9ab52ab001 Mon Sep 17 00:00:00 2001 From: Kshitij Gupta Date: Sun, 16 Dec 2018 03:26:02 +0530 Subject: [PATCH] Cherish:Custom Rounded Corner and Padding preferences [2/2] MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cherish: Add Runtime Rounded Corner preferences Change-Id: I6dd7b0c3b8fce13c738f2239ba5504b14d1cc568 Signed-off-by: Kshitij Gupta Signed-off-by: Shubham Singh RoundCornerPreferences: Use frameworks default values Change-Id: Ib5ad571bec311b75bc138bae238e5ca8ee005358 Signed-off-by: Kshitij Gupta RoundCornerPreferences: Evaluate framework values correctly Change-Id: I81d9830d4cfc76a568d6862c344c1f44666e3bc9 Signed-off-by: Kshitij Gupta Allow using framework values for rounded corners [2/2] Change-Id: I04ac74f7ea2062dfe7c3a783bdb08b65cb774d34 Signed-off-by: Kshitij Gupta RoundCorners: Allow radius to reach 60 - Some devices have almost 50. Allow configuring a bit over this. Fireworks: corners: Update seekbars when framework values toggled - Clean up and refactor some older code - Add new method to restore corner values to the seekbar prefs Change-Id: Ib6869208c8cc0eeaf30acfe2126c1af52a21b01a Signed-off-by: Kshitij Gupta Signed-off-by: Hưng Phan --- res/values/cherish_strings.xml | 7 ++ res/xml/cherish_settings_misc.xml | 31 ++++++++ .../settings/fragments/MiscSettings.java | 70 +++++++++++++++++++ 3 files changed, 108 insertions(+) diff --git a/res/values/cherish_strings.xml b/res/values/cherish_strings.xml index 5320323..877f496 100644 --- a/res/values/cherish_strings.xml +++ b/res/values/cherish_strings.xml @@ -1168,4 +1168,11 @@ Hide Stock statusbar height Use default statusbar height in Hide + + + Corners + Rounded corner radius + Corner content padding + Use framework values + Useful if the device actually has rounded corners diff --git a/res/xml/cherish_settings_misc.xml b/res/xml/cherish_settings_misc.xml index 62f57f8..b84cf08 100644 --- a/res/xml/cherish_settings_misc.xml +++ b/res/xml/cherish_settings_misc.xml @@ -83,4 +83,35 @@ android:fragment="com.cherish.settings.fragments.SmartPixels" android:title="@string/smart_pixels_title" android:summary="@string/smart_pixels_summary" /> + + + + + + + + + + diff --git a/src/com/cherish/settings/fragments/MiscSettings.java b/src/com/cherish/settings/fragments/MiscSettings.java index e7164d7..413cd71 100644 --- a/src/com/cherish/settings/fragments/MiscSettings.java +++ b/src/com/cherish/settings/fragments/MiscSettings.java @@ -7,6 +7,7 @@ import android.content.Intent; import android.content.pm.PackageManager; import android.content.pm.ResolveInfo; import android.os.UserHandle; +import android.content.Context; import android.content.ContentResolver; import android.content.res.Resources; import androidx.preference.ListPreference; @@ -28,13 +29,22 @@ import java.util.Arrays; import java.util.Collection; import java.util.HashSet; +import android.content.pm.PackageManager.NameNotFoundException; import com.android.settings.SettingsPreferenceFragment; import com.cherish.settings.preferences.SystemSettingMasterSwitchPreference; import com.cherish.settings.preferences.SystemSettingListPreference; +import com.cherish.settings.preferences.SecureSettingSwitchPreference; public class MiscSettings extends SettingsPreferenceFragment implements OnPreferenceChangeListener { private static final String SMART_PIXELS = "smart_pixels"; + 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_ROUNDED_FWVALS = "sysui_rounded_fwvals"; + + private CustomSeekBarPreference mCornerRadius; + private CustomSeekBarPreference mContentPadding; + private SecureSettingSwitchPreference mRoundedFwvals; @Override public void onCreate(Bundle icicle) { @@ -43,6 +53,38 @@ public class MiscSettings extends SettingsPreferenceFragment implements addPreferencesFromResource(R.xml.cherish_settings_misc); updateSmartPixelsPreference(); + + 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); + + // Rounded use Framework Values + mRoundedFwvals = (SecureSettingSwitchPreference) findPreference(SYSUI_ROUNDED_FWVALS); + mRoundedFwvals.setOnPreferenceChangeListener(this); } @@ -59,9 +101,37 @@ public class MiscSettings extends SettingsPreferenceFragment implements @Override public boolean onPreferenceChange(Preference preference, Object objValue) { + if (preference == mCornerRadius) { + Settings.Secure.putIntForUser(getContext().getContentResolver(), Settings.Secure.SYSUI_ROUNDED_SIZE, + (int) objValue, UserHandle.USER_CURRENT); + return true; + //} else if (preference == mContentPadding) { + // Settings.Secure.putIntForUser(getContext().getContentResolver(), Settings.Secure.SYSUI_ROUNDED_CONTENT_PADDING, + // (int) objValue, UserHandle.USER_CURRENT); + // return true; + } else if (preference == mRoundedFwvals) { + restoreCorners(); + return true; + } return false; } + + 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); + mCornerRadius.setValue((int) (resourceIdRadius / density)); + //mContentPadding.setValue((int) (res.getDimension(resourceIdPadding) / density)); + } @Override public int getMetricsCategory() {