OmniControl: save icon shape into theme overlay settings
make it persistent so wallpaper changes will use the correct
icon shape
Change-Id: Ibccdb31f442638593f0b6bd157e85d329fc5931b
diff --git a/app/src/main/java/org/omnirom/control/OverlaysFragment.kt b/app/src/main/java/org/omnirom/control/OverlaysFragment.kt
index 6d775df..b31934d 100644
--- a/app/src/main/java/org/omnirom/control/OverlaysFragment.kt
+++ b/app/src/main/java/org/omnirom/control/OverlaysFragment.kt
@@ -201,8 +201,10 @@
holder.itemView.setOnClickListener {
if (gridItem.isSystem) {
overlayProvider.disableAllInCategory(gridItem.category)
+ overlayProvider.saveIconShapeOverlayToSettings("")
} else if (!gridItem.isEnabled) {
overlayProvider.enableOverlayExclusive(gridItem.packageName)
+ overlayProvider.saveIconShapeOverlayToSettings(gridItem.packageName)
}
loadIconShapeOverlays()
notifyDataSetChanged()
diff --git a/app/src/main/java/org/omnirom/control/OverlaysProvider.kt b/app/src/main/java/org/omnirom/control/OverlaysProvider.kt
index 49191d4..e94aa53 100644
--- a/app/src/main/java/org/omnirom/control/OverlaysProvider.kt
+++ b/app/src/main/java/org/omnirom/control/OverlaysProvider.kt
@@ -27,7 +27,11 @@
import android.content.res.Resources
import android.os.ServiceManager
import android.os.UserHandle
+import android.provider.Settings
import android.util.TypedValue
+import org.json.JSONObject
+import org.json.JSONTokener
+
class OverlaysProvider(context: Context) {
private val overlaysMap = HashMap<String, OverlayInfo>()
@@ -110,7 +114,7 @@
om!!.commit(transaction.build())
}
- fun isMonetOverlayEnabled() : Boolean {
+ fun isMonetOverlayEnabled(): Boolean {
return isOverlayEnabled(monetNeutral)
}
@@ -274,4 +278,24 @@
fun getFabricatedOverlayIdentifier(overlayName: String): String {
return OverlayIdentifier(context.packageName, overlayName).toString()
}
+
+ fun saveIconShapeOverlayToSettings(iconShapePackage: String) {
+ val overlayPackageJson = Settings.Secure.getString(
+ context.contentResolver,
+ "theme_customization_overlay_packages"
+ )
+ var json = JSONObject()
+ if (overlayPackageJson.isNotEmpty()) {
+ json = JSONTokener(overlayPackageJson).nextValue() as JSONObject
+ }
+ if (iconShapePackage.isNotEmpty()) {
+ json.put(getIconShapeCategory(), iconShapePackage)
+ } else {
+ json.remove(getIconShapeCategory())
+ }
+ Settings.Secure.putString(
+ context.contentResolver, "theme_customization_overlay_packages",
+ json.toString()
+ )
+ }
}
\ No newline at end of file