Add ability to not show the pusher registration again.

This commit is contained in:
Benoit Marty 2024-06-17 11:15:47 +02:00
parent 675f93a5ad
commit 64930e4435
13 changed files with 86 additions and 6 deletions

View file

@ -25,6 +25,7 @@ import androidx.datastore.preferences.core.stringPreferencesKey
import androidx.datastore.preferences.preferencesDataStore
import androidx.datastore.preferences.preferencesDataStoreFile
import io.element.android.libraries.androidutils.hash.hash
import io.element.android.libraries.core.bool.orFalse
import io.element.android.libraries.core.bool.orTrue
import io.element.android.libraries.matrix.api.core.SessionId
import io.element.android.libraries.pushstore.api.UserPushStore
@ -61,6 +62,7 @@ class UserPushStoreDataStore(
private val pushProviderName = stringPreferencesKey("pushProviderName")
private val currentPushKey = stringPreferencesKey("currentPushKey")
private val notificationEnabled = booleanPreferencesKey("notificationEnabled")
private val ignoreRegistrationError = booleanPreferencesKey("ignoreRegistrationError")
override suspend fun getPushProviderName(): String? {
return context.dataStore.data.first()[pushProviderName]
@ -100,6 +102,16 @@ class UserPushStoreDataStore(
return true
}
override fun ignoreRegistrationError(): Flow<Boolean> {
return context.dataStore.data.map { it[ignoreRegistrationError].orFalse() }
}
override suspend fun setIgnoreRegistrationError(ignore: Boolean) {
context.dataStore.edit {
it[ignoreRegistrationError] = ignore
}
}
override suspend fun reset() {
context.dataStore.edit {
it.clear()