Remove LauncherPreferences

This commit is contained in:
MM20
2022-01-30 13:38:01 +01:00
parent 6ba490287d
commit 470e378e17
21 changed files with 0 additions and 182 deletions
@@ -1,69 +0,0 @@
package de.mm20.launcher2.preferences
import android.app.Application
import android.content.SharedPreferences
import androidx.core.content.edit
import androidx.preference.PreferenceManager
class LauncherPreferences(val context: Application, version: Int = 3) {
internal val preferences by lazy {
PreferenceManager.getDefaultSharedPreferences(context)
}
var version by IntPreference("preferences_version", default = 1)
init {
val oldVersion = this.version
if ( version >= 2 && oldVersion <= 1) {
val appStartAnim = preferences.getInt("app_start_anim", 0)
preferences.edit {
remove("app_start_anim")
putString("app_start_anim", appStartAnim.toString())
}
}
if (version >= 3 && oldVersion <= 2) {
val translucentCards = preferences.getBoolean("translucent_cards", false)
val theme = preferences.getString("theme", "2")
preferences.edit {
remove("translucent_cards")
putInt("card_opacity", if (translucentCards) 0xCC else 0xFF)
if (theme == "4") {
putString("theme", "1")
putString("card_background", "2")
}
}
}
if (version >= 4 && oldVersion <= 3) {
val appStartAnim = preferences.getString("app_start_anim", "5")
if (appStartAnim == "0" || appStartAnim == "1")
preferences.edit {
putString("app_start_anim", "2")
}
}
this.version = version
}
var appStartAnim by EnumPreference("app_start_anim", default = AppStartAnimation.M)
var cardRadius by IntPreference("card_radius", default = 8)
var easterEggEnabled by BooleanPreference("easter_egg", default = false)
companion object {
lateinit var instance: LauncherPreferences
fun initialize(app: Application) {
instance = LauncherPreferences(app)
}
}
}
enum class AppStartAnimation(override val value: String): PreferenceEnum {
DEFAULT("5"),
M("2"),
FADE("3"),
SLIDE_BOTTOM("4")
}
@@ -1,89 +0,0 @@
package de.mm20.launcher2.preferences
import androidx.core.content.edit
import de.mm20.launcher2.crashreporter.CrashReporter
import org.json.JSONArray
import org.json.JSONException
import kotlin.properties.ReadWriteProperty
import kotlin.reflect.KProperty
class StringPreference(val key: String, val default: String) : ReadWriteProperty<LauncherPreferences, String> {
override fun getValue(thisRef: LauncherPreferences, property: KProperty<*>): String {
return thisRef.preferences.getString(key, default)!!
}
override fun setValue(thisRef: LauncherPreferences, property: KProperty<*>, value: String) {
thisRef.preferences.edit {
putString(key, value)
}
}
}
class BooleanPreference(val key: String, val default: Boolean) : ReadWriteProperty<LauncherPreferences, Boolean> {
override fun getValue(thisRef: LauncherPreferences, property: KProperty<*>): Boolean {
return thisRef.preferences.getBoolean(key, default)
}
override fun setValue(thisRef: LauncherPreferences, property: KProperty<*>, value: Boolean) {
thisRef.preferences.edit {
putBoolean(key, value)
}
}
}
class IntPreference(val key: String, val default: Int) : ReadWriteProperty<LauncherPreferences, Int> {
override fun getValue(thisRef: LauncherPreferences, property: KProperty<*>): Int {
return thisRef.preferences.getInt(key, default)
}
override fun setValue(thisRef: LauncherPreferences, property: KProperty<*>, value: Int) {
thisRef.preferences.edit {
putInt(key, value)
}
}
}
class LongListPreference(val key: String, val default: List<Long>) : ReadWriteProperty<LauncherPreferences, List<Long>> {
override fun getValue(thisRef: LauncherPreferences, property: KProperty<*>): List<Long> {
val list = mutableListOf<Long>()
try {
val jsonArray = JSONArray(thisRef.preferences.getString(key, null) ?: return default)
for (i in 0 until jsonArray.length()) {
list.add(jsonArray.getLong(i))
}
} catch (e: JSONException) {
CrashReporter.logException(e)
return default
}
return list
}
override fun setValue(thisRef: LauncherPreferences, property: KProperty<*>, value: List<Long>) {
val jsonArray = JSONArray()
for (i in value) {
jsonArray.put(i)
}
thisRef.preferences.edit {
putString(key, jsonArray.toString())
}
}
}
interface PreferenceEnum {
val value: String
}
class EnumPreference<T>(val key: String, val default: T) : ReadWriteProperty<LauncherPreferences, T> where T : Enum<T>, T : PreferenceEnum {
override fun getValue(thisRef: LauncherPreferences, property: KProperty<*>): T {
val value = thisRef.preferences.getString(key, null) ?: return default
val enumConstants = default::class.java.enumConstants as Array<out T>
return enumConstants.firstOrNull { it.value == value } ?: default
}
override fun setValue(thisRef: LauncherPreferences, property: KProperty<*>, value: T) {
thisRef.preferences.edit {
putString(key, value.value)
}
}
}