Remove LauncherPreferences
This commit is contained in:
@@ -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)
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user