diff --git a/res/values-vi/cherish_strings.xml b/res/values-vi/cherish_strings.xml
index 0712d37..bf20d37 100644
--- a/res/values-vi/cherish_strings.xml
+++ b/res/values-vi/cherish_strings.xml
@@ -242,4 +242,6 @@
Chủ đề màu nhấn Gradients
Chọn màu nhấn
Tự làm Gradient
+ Chọn Gradient
+ Làm hiệu ứng Gradient
diff --git a/res/values/cherish_strings.xml b/res/values/cherish_strings.xml
index e580b1a..f108729 100644
--- a/res/values/cherish_strings.xml
+++ b/res/values/cherish_strings.xml
@@ -277,5 +277,7 @@
Accents-Gradients-Themes
Accent picker
Gradient Maker
+ Gradient picker
+ Gradient effect maker
diff --git a/res/xml/cherish_settings_theme.xml b/res/xml/cherish_settings_theme.xml
index 9c1eb71..9a304af 100644
--- a/res/xml/cherish_settings_theme.xml
+++ b/res/xml/cherish_settings_theme.xml
@@ -47,5 +47,13 @@
android:defaultValue="0xffffff"
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 27f79c2..2e337eb 100644
--- a/src/com/cherish/settings/fragments/ThemeSettings.java
+++ b/src/com/cherish/settings/fragments/ThemeSettings.java
@@ -4,12 +4,15 @@ import com.android.internal.logging.nano.MetricsProto;
import static android.os.UserHandle.USER_SYSTEM;
import android.app.UiModeManager;
+import android.graphics.Color;
import android.os.Bundle;
import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo;
import android.os.UserHandle;
+import android.os.SystemProperties;
+import android.os.ServiceManager;
import android.content.om.IOverlayManager;
import android.os.RemoteException;
import android.content.ContentResolver;
@@ -42,9 +45,11 @@ public class ThemeSettings extends SettingsPreferenceFragment implements
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 static final String GRADIENT_COLOR = "gradient_color";
+ private static final String GRADIENT_COLOR_PROP = "persist.sys.theme.gradientcolor";
private ColorPickerPreference mThemeColor;
-
+ private ColorPickerPreference mGradientColor;
private UiModeManager mUiModeManager;
private IOverlayManager mOverlayService;
private ListPreference mThemeSwitch;
@@ -62,6 +67,7 @@ public class ThemeSettings extends SettingsPreferenceFragment implements
mUiModeManager = getContext().getSystemService(UiModeManager.class);
setupThemeSwitchPref();
setupAccentPref();
+ setupGradientPref();
}
@Override
@@ -123,6 +129,16 @@ public class ThemeSettings extends SettingsPreferenceFragment implements
mOverlayService.reloadAssets("com.android.systemui", UserHandle.USER_CURRENT);
} catch (RemoteException ignored) {
}
+ } else if (preference == mGradientColor) {
+ int color = (Integer) objValue;
+ String hexColor = String.format("%08X", (0xFFFFFFFF & color));
+ SystemProperties.set(GRADIENT_COLOR_PROP, hexColor);
+ 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) {
+ }
}
return true;
}
@@ -170,6 +186,16 @@ public class ThemeSettings extends SettingsPreferenceFragment implements
mThemeColor.setOnPreferenceChangeListener(this);
}
+ private void setupGradientPref() {
+ mGradientColor = (ColorPickerPreference) findPreference(GRADIENT_COLOR);
+ String colorVal = SystemProperties.get(GRADIENT_COLOR_PROP, "-1");
+ int color = "-1".equals(colorVal)
+ ? Color.WHITE
+ : Color.parseColor("#" + colorVal);
+ mGradientColor.setNewPreviewColor(color);
+ mGradientColor.setOnPreferenceChangeListener(this);
+ }
+
@Override
public int getMetricsCategory() {
return MetricsProto.MetricsEvent.CHERISH_SETTINGS;