diff --git a/res/drawable/ic_accent_picker.xml b/res/drawable/ic_accent_picker.xml
new file mode 100644
index 0000000..9eacf18
--- /dev/null
+++ b/res/drawable/ic_accent_picker.xml
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/res/values-vi/cherish_strings.xml b/res/values-vi/cherish_strings.xml
index be55088..0712d37 100644
--- a/res/values-vi/cherish_strings.xml
+++ b/res/values-vi/cherish_strings.xml
@@ -236,4 +236,10 @@
Sáng
Google dark
Solarized dark
+
+ Màu nhấn RGB| Chủ đề Gradient
+ Chủ đề
+ Chủ đề màu nhấn Gradients
+ Chọn màu nhấn
+ Tự làm Gradient
diff --git a/res/values/cherish_strings.xml b/res/values/cherish_strings.xml
index bf78da6..e580b1a 100644
--- a/res/values/cherish_strings.xml
+++ b/res/values/cherish_strings.xml
@@ -270,5 +270,12 @@
Baked Green
Choco X
Pitch black
+
+
+ RGB Accent | Gradient Theming
+ Themes
+ Accents-Gradients-Themes
+ Accent picker
+ Gradient Maker
diff --git a/res/xml/cherish_settings_theme.xml b/res/xml/cherish_settings_theme.xml
index e85adbb..9c1eb71 100644
--- a/res/xml/cherish_settings_theme.xml
+++ b/res/xml/cherish_settings_theme.xml
@@ -34,4 +34,18 @@
android:defaultValue="1"/>
+
+
+
+
+
+
\ 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 5a06043..27f79c2 100644
--- a/src/com/cherish/settings/fragments/ThemeSettings.java
+++ b/src/com/cherish/settings/fragments/ThemeSettings.java
@@ -34,11 +34,16 @@ import java.util.Objects;
import com.android.internal.util.cherish.ThemesUtils;
import com.android.internal.util.cherish.CherishUtils;
+import net.margaritov.preference.colorpicker.ColorPickerPreference;
public class ThemeSettings extends SettingsPreferenceFragment implements
OnPreferenceChangeListener {
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 IOverlayManager mOverlayService;
@@ -52,8 +57,11 @@ public class ThemeSettings extends SettingsPreferenceFragment implements
PreferenceScreen prefScreen = getPreferenceScreen();
ContentResolver resolver = getActivity().getContentResolver();
+ mOverlayService = IOverlayManager.Stub
+ .asInterface(ServiceManager.getService(Context.OVERLAY_SERVICE));
mUiModeManager = getContext().getSystemService(UiModeManager.class);
setupThemeSwitchPref();
+ setupAccentPref();
}
@Override
@@ -99,6 +107,16 @@ public class ThemeSettings extends SettingsPreferenceFragment implements
handleBackgrounds(true, context, UiModeManager.MODE_NIGHT_YES, ThemesUtils.PITCH_BLACK);
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 {
mOverlayService.reloadAndroidAssets(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
public int getMetricsCategory() {