mirror of
https://github.com/vitorpamplona/amethyst.git
synced 2025-09-27 18:56:49 +02:00
extract LocalPreferences preference keys
This commit is contained in:
@@ -14,8 +14,22 @@ import nostr.postr.events.Event.Companion.getRefinedEvent
|
|||||||
import nostr.postr.toHex
|
import nostr.postr.toHex
|
||||||
|
|
||||||
class LocalPreferences(context: Context) {
|
class LocalPreferences(context: Context) {
|
||||||
val encryptedPreferences = EncryptedStorage().preferences(context)
|
private object PrefKeys {
|
||||||
val gson = GsonBuilder().create()
|
const val NOSTR_PRIVKEY = "nostr_privkey"
|
||||||
|
const val NOSTR_PUBKEY = "nostr_pubkey"
|
||||||
|
const val FOLLOWING_CHANNELS = "following_channels"
|
||||||
|
const val HIDDEN_USERS = "hidden_users"
|
||||||
|
const val RELAYS = "relays"
|
||||||
|
const val DONT_TRANSLATE_FROM = "dontTranslateFrom"
|
||||||
|
const val LANGUAGE_PREFS = "languagePreferences"
|
||||||
|
const val TRANSLATE_TO = "translateTo"
|
||||||
|
const val ZAP_AMOUNTS = "zapAmounts"
|
||||||
|
const val LATEST_CONTACT_LIST = "latestContactList"
|
||||||
|
val LAST_READ: (String) -> String = { route -> "last_read_route_${route}" }
|
||||||
|
}
|
||||||
|
|
||||||
|
private val encryptedPreferences = EncryptedStorage().preferences(context)
|
||||||
|
private val gson = GsonBuilder().create()
|
||||||
|
|
||||||
fun clearEncryptedStorage() {
|
fun clearEncryptedStorage() {
|
||||||
encryptedPreferences.edit().apply {
|
encryptedPreferences.edit().apply {
|
||||||
@@ -25,40 +39,40 @@ class LocalPreferences(context: Context) {
|
|||||||
|
|
||||||
fun saveToEncryptedStorage(account: Account) {
|
fun saveToEncryptedStorage(account: Account) {
|
||||||
encryptedPreferences.edit().apply {
|
encryptedPreferences.edit().apply {
|
||||||
account.loggedIn.privKey?.let { putString("nostr_privkey", it.toHex()) }
|
account.loggedIn.privKey?.let { putString(PrefKeys.NOSTR_PRIVKEY, it.toHex()) }
|
||||||
account.loggedIn.pubKey.let { putString("nostr_pubkey", it.toHex()) }
|
account.loggedIn.pubKey.let { putString(PrefKeys.NOSTR_PUBKEY, it.toHex()) }
|
||||||
account.followingChannels.let { putStringSet("following_channels", it) }
|
account.followingChannels.let { putStringSet(PrefKeys.FOLLOWING_CHANNELS, it) }
|
||||||
account.hiddenUsers.let { putStringSet("hidden_users", it) }
|
account.hiddenUsers.let { putStringSet(PrefKeys.HIDDEN_USERS, it) }
|
||||||
account.localRelays.let { putString("relays", gson.toJson(it)) }
|
account.localRelays.let { putString(PrefKeys.RELAYS, gson.toJson(it)) }
|
||||||
account.dontTranslateFrom.let { putStringSet("dontTranslateFrom", it) }
|
account.dontTranslateFrom.let { putStringSet(PrefKeys.DONT_TRANSLATE_FROM, it) }
|
||||||
account.languagePreferences.let { putString("languagePreferences", gson.toJson(it)) }
|
account.languagePreferences.let { putString(PrefKeys.LANGUAGE_PREFS, gson.toJson(it)) }
|
||||||
account.translateTo.let { putString("translateTo", it) }
|
account.translateTo.let { putString(PrefKeys.TRANSLATE_TO, it) }
|
||||||
account.zapAmountChoices.let { putString("zapAmounts", gson.toJson(it)) }
|
account.zapAmountChoices.let { putString(PrefKeys.ZAP_AMOUNTS, gson.toJson(it)) }
|
||||||
account.backupContactList.let { putString("latestContactList", Event.gson.toJson(it)) }
|
account.backupContactList.let { putString(PrefKeys.LATEST_CONTACT_LIST, Event.gson.toJson(it)) }
|
||||||
}.apply()
|
}.apply()
|
||||||
}
|
}
|
||||||
|
|
||||||
fun loadFromEncryptedStorage(): Account? {
|
fun loadFromEncryptedStorage(): Account? {
|
||||||
encryptedPreferences.apply {
|
encryptedPreferences.apply {
|
||||||
val privKey = getString("nostr_privkey", null)
|
val privKey = getString(PrefKeys.NOSTR_PRIVKEY, null)
|
||||||
val pubKey = getString("nostr_pubkey", null)
|
val pubKey = getString(PrefKeys.NOSTR_PUBKEY, null)
|
||||||
val followingChannels = getStringSet("following_channels", null) ?: setOf()
|
val followingChannels = getStringSet(PrefKeys.FOLLOWING_CHANNELS, null) ?: setOf()
|
||||||
val hiddenUsers = getStringSet("hidden_users", emptySet()) ?: setOf()
|
val hiddenUsers = getStringSet(PrefKeys.HIDDEN_USERS, emptySet()) ?: setOf()
|
||||||
val localRelays = gson.fromJson(
|
val localRelays = gson.fromJson(
|
||||||
getString("relays", "[]"),
|
getString(PrefKeys.RELAYS, "[]"),
|
||||||
object : TypeToken<Set<RelaySetupInfo>>() {}.type
|
object : TypeToken<Set<RelaySetupInfo>>() {}.type
|
||||||
) ?: setOf<RelaySetupInfo>()
|
) ?: setOf<RelaySetupInfo>()
|
||||||
|
|
||||||
val dontTranslateFrom = getStringSet("dontTranslateFrom", null) ?: setOf()
|
val dontTranslateFrom = getStringSet(PrefKeys.DONT_TRANSLATE_FROM, null) ?: setOf()
|
||||||
val translateTo = getString("translateTo", null) ?: Locale.getDefault().language
|
val translateTo = getString(PrefKeys.TRANSLATE_TO, null) ?: Locale.getDefault().language
|
||||||
|
|
||||||
val zapAmountChoices = gson.fromJson(
|
val zapAmountChoices = gson.fromJson(
|
||||||
getString("zapAmounts", "[]"),
|
getString(PrefKeys.ZAP_AMOUNTS, "[]"),
|
||||||
object : TypeToken<List<Long>>() {}.type
|
object : TypeToken<List<Long>>() {}.type
|
||||||
) ?: listOf(500L, 1000L, 5000L)
|
) ?: listOf(500L, 1000L, 5000L)
|
||||||
|
|
||||||
val latestContactList = try {
|
val latestContactList = try {
|
||||||
getString("latestContactList", null)?.let {
|
getString(PrefKeys.LATEST_CONTACT_LIST, null)?.let {
|
||||||
Event.gson.fromJson(it, Event::class.java).getRefinedEvent(true) as ContactListEvent
|
Event.gson.fromJson(it, Event::class.java).getRefinedEvent(true) as ContactListEvent
|
||||||
}
|
}
|
||||||
} catch (e: Throwable) {
|
} catch (e: Throwable) {
|
||||||
@@ -67,7 +81,7 @@ class LocalPreferences(context: Context) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
val languagePreferences = try {
|
val languagePreferences = try {
|
||||||
getString("languagePreferences", null)?.let {
|
getString(PrefKeys.LANGUAGE_PREFS, null)?.let {
|
||||||
gson.fromJson(it, object : TypeToken<Map<String, String>>() {}.type) as Map<String, String>
|
gson.fromJson(it, object : TypeToken<Map<String, String>>() {}.type) as Map<String, String>
|
||||||
} ?: mapOf<String,String>()
|
} ?: mapOf<String,String>()
|
||||||
} catch (e: Throwable) {
|
} catch (e: Throwable) {
|
||||||
@@ -95,13 +109,13 @@ class LocalPreferences(context: Context) {
|
|||||||
|
|
||||||
fun saveLastRead(route: String, timestampInSecs: Long) {
|
fun saveLastRead(route: String, timestampInSecs: Long) {
|
||||||
encryptedPreferences.edit().apply {
|
encryptedPreferences.edit().apply {
|
||||||
putLong("last_read_route_${route}", timestampInSecs)
|
putLong(PrefKeys.LAST_READ(route), timestampInSecs)
|
||||||
}.apply()
|
}.apply()
|
||||||
}
|
}
|
||||||
|
|
||||||
fun loadLastRead(route: String): Long {
|
fun loadLastRead(route: String): Long {
|
||||||
encryptedPreferences.run {
|
encryptedPreferences.run {
|
||||||
return getLong("last_read_route_${route}", 0)
|
return getLong(PrefKeys.LAST_READ(route), 0)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user