Cherish: Introduce RGB Accenter [2/2]

This commit is contained in:
AgentFabulous
2020-04-11 15:32:46 +07:00
committed by Hung Phan
parent 9bb8517d45
commit 22b278cc53
5 changed files with 76 additions and 0 deletions

View File

@@ -0,0 +1,21 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="512"
android:viewportHeight="512">
<path
android:fillColor="?android:attr/colorControlNormal"
android:pathData="M387.9,123.9c-42.3,-42.2 -100.9,-61.7 -160.5,-53.5c-73.8,10.1 -136.5,65.4 -156,137.3l-0.6,2.3c-5.3,20.3 -0.8,41.6 12.2,58.3c13.5,17.4 35.5,27.5 56.9,27.6c6.1,0.1 12.3,0.7 18.4,2.1c27.4,6.2 49.9,28.8 56.1,56.1c1.4,6.1 2.1,12.3 2,18.3c-0.1,22.1 10.2,43.4 27.6,56.9c12.1,9.4 26.6,14.3 41.4,14.3c5.7,0 11.4,-0.7 17,-2.2l2.1,-0.5c72.3,-19.7 127.5,-82.6 137.5,-156.4C449.8,224.6 430.2,166.1 387.9,123.9zM404.6,279.3c-8,59.1 -52.3,109.5 -111.8,125.7c-12.3,3.2 -21.5,-2.1 -25.9,-5.5c-8.3,-6.4 -13.1,-16.5 -13.1,-27.1c0,-8.9 -1,-17.9 -2.9,-26.8c-9.5,-41.8 -42.6,-74.9 -84.4,-84.4c-8.7,-2 -17.6,-3 -26.3,-3c-0.3,0 -0.5,0 -0.8,0c-10.5,0 -20.5,-4.9 -26.9,-13.1c-3.4,-4.4 -8.7,-13.6 -5.1,-27.4c15.7,-57.9 66,-102.3 125,-110.3c48,-6.6 95,9.1 129,42.9C395.3,184.3 411,231.3 404.6,279.3z" />
<path
android:fillColor="?android:attr/colorControlNormal"
android:pathData="M252.1,124.8h-14.9c-10.4,0 -18.8,8.4 -18.8,18.8s8.4,18.8 18.8,18.8h14.9c10.4,0 18.8,-8.4 18.8,-18.8S262.5,124.8 252.1,124.8z" />
<path
android:fillColor="?android:attr/colorControlNormal"
android:pathData="M312.3,199.8h14.9c10.4,0 18.8,-8.4 18.8,-18.8s-8.4,-18.8 -18.8,-18.8h-14.9c-10.4,0 -18.8,8.4 -18.8,18.8S301.9,199.8 312.3,199.8z" />
<path
android:fillColor="?android:attr/colorControlNormal"
android:pathData="M331,256c0,10.4 8.4,18.8 18.8,18.8h14.9c10.4,0 18.8,-8.4 18.8,-18.8c0,-10.4 -8.4,-18.8 -18.8,-18.8h-14.9C339.4,237.3 331,245.6 331,256z" />
<path
android:fillColor="?android:attr/colorControlNormal"
android:pathData="M327.1,312.3h-14.9c-10.4,0 -18.8,8.4 -18.8,18.8c0,10.4 8.4,18.8 18.8,18.8h14.9c10.4,0 18.8,-8.4 18.8,-18.8C345.9,320.6 337.5,312.3 327.1,312.3z" />
</vector>

View File

@@ -236,4 +236,10 @@
<string name="theme_type_light">Sáng</string> <string name="theme_type_light">Sáng</string>
<string name="theme_type_pitch_black">Google dark</string> <string name="theme_type_pitch_black">Google dark</string>
<string name="theme_type_solarized_dark">Solarized dark</string> <string name="theme_type_solarized_dark">Solarized dark</string>
<!-- RGB Accenter -->
<string name="theme_rgb_title">Màu nhấn RGB| Chủ đề Gradient</string>
<string name="themes_hub_title">Chủ đề</string>
<string name="themes_hub_summary">Chủ đề màu nhấn Gradients</string>
<string name="accent_color">Chọn màu nhấn</string>
<string name="accent_summary">Tự làm Gradient</string>
</resources> </resources>

View File

@@ -270,5 +270,12 @@
<string name="theme_type_baked_green">Baked Green</string> <string name="theme_type_baked_green">Baked Green</string>
<string name="theme_type_choco_x">Choco X</string> <string name="theme_type_choco_x">Choco X</string>
<string name="theme_type_du_pitchblack">Pitch black</string> <string name="theme_type_du_pitchblack">Pitch black</string>
<!-- RGB Accenter -->
<string name="theme_rgb_title">RGB Accent | Gradient Theming</string>
<string name="themes_hub_title">Themes</string>
<string name="themes_hub_summary">Accents-Gradients-Themes</string>
<string name="accent_color">Accent picker</string>
<string name="accent_summary">Gradient Maker</string>
</resources> </resources>

View File

@@ -34,4 +34,18 @@
android:defaultValue="1"/> android:defaultValue="1"/>
</PreferenceCategory> </PreferenceCategory>
<PreferenceCategory
android:key="system_rgb_category"
android:title="@string/theme_rgb_title">
<net.margaritov.preference.colorpicker.ColorPickerPreference
android:key="accent_color"
android:icon="@drawable/ic_accent_picker"
android:title="@string/accent_color"
android:summary="@string/accent_summary"
android:defaultValue="0xffffff"
android:persistent="false" />
</PreferenceCategory>
</PreferenceScreen> </PreferenceScreen>

View File

@@ -34,11 +34,16 @@ import java.util.Objects;
import com.android.internal.util.cherish.ThemesUtils; import com.android.internal.util.cherish.ThemesUtils;
import com.android.internal.util.cherish.CherishUtils; import com.android.internal.util.cherish.CherishUtils;
import net.margaritov.preference.colorpicker.ColorPickerPreference;
public class ThemeSettings extends SettingsPreferenceFragment implements public class ThemeSettings extends SettingsPreferenceFragment implements
OnPreferenceChangeListener { OnPreferenceChangeListener {
private static final String PREF_THEME_SWITCH = "theme_switch"; private static final String PREF_THEME_SWITCH = "theme_switch";
private static final String ACCENT_COLOR = "accent_color";
private static final String ACCENT_COLOR_PROP = "persist.sys.theme.accentcolor";
private ColorPickerPreference mThemeColor;
private UiModeManager mUiModeManager; private UiModeManager mUiModeManager;
private IOverlayManager mOverlayService; private IOverlayManager mOverlayService;
@@ -52,8 +57,11 @@ public class ThemeSettings extends SettingsPreferenceFragment implements
PreferenceScreen prefScreen = getPreferenceScreen(); PreferenceScreen prefScreen = getPreferenceScreen();
ContentResolver resolver = getActivity().getContentResolver(); ContentResolver resolver = getActivity().getContentResolver();
mOverlayService = IOverlayManager.Stub
.asInterface(ServiceManager.getService(Context.OVERLAY_SERVICE));
mUiModeManager = getContext().getSystemService(UiModeManager.class); mUiModeManager = getContext().getSystemService(UiModeManager.class);
setupThemeSwitchPref(); setupThemeSwitchPref();
setupAccentPref();
} }
@Override @Override
@@ -99,6 +107,16 @@ public class ThemeSettings extends SettingsPreferenceFragment implements
handleBackgrounds(true, context, UiModeManager.MODE_NIGHT_YES, ThemesUtils.PITCH_BLACK); handleBackgrounds(true, context, UiModeManager.MODE_NIGHT_YES, ThemesUtils.PITCH_BLACK);
break; break;
} }
try {
mOverlayService.reloadAndroidAssets(UserHandle.USER_CURRENT);
mOverlayService.reloadAssets("com.android.settings", UserHandle.USER_CURRENT);
mOverlayService.reloadAssets("com.android.systemui", UserHandle.USER_CURRENT);
} catch (RemoteException ignored) {
}
}else if (preference == mThemeColor) {
int color = (Integer) objValue;
String hexColor = String.format("%08X", (0xFFFFFFFF & color));
SystemProperties.set(ACCENT_COLOR_PROP, hexColor);
try { try {
mOverlayService.reloadAndroidAssets(UserHandle.USER_CURRENT); mOverlayService.reloadAndroidAssets(UserHandle.USER_CURRENT);
mOverlayService.reloadAssets("com.android.settings", UserHandle.USER_CURRENT); mOverlayService.reloadAssets("com.android.settings", UserHandle.USER_CURRENT);
@@ -141,6 +159,16 @@ public class ThemeSettings extends SettingsPreferenceFragment implements
} }
} }
} }
private void setupAccentPref() {
mThemeColor = (ColorPickerPreference) findPreference(ACCENT_COLOR);
String colorVal = SystemProperties.get(ACCENT_COLOR_PROP, "-1");
int color = "-1".equals(colorVal)
? Color.WHITE
: Color.parseColor("#" + colorVal);
mThemeColor.setNewPreviewColor(color);
mThemeColor.setOnPreferenceChangeListener(this);
}
@Override @Override
public int getMetricsCategory() { public int getMetricsCategory() {