Ensure that the battery optimization banner is not displayed after an internal clear cache.

This commit is contained in:
Benoit Marty 2025-06-17 16:26:33 +02:00 committed by Benoit Marty
parent 0a58fb3c59
commit 017664f672
8 changed files with 47 additions and 1 deletions

View file

@ -15,6 +15,7 @@ import io.element.android.libraries.matrix.api.core.SessionId
import io.element.android.libraries.push.api.GetCurrentPushProvider
import io.element.android.libraries.push.api.PushService
import io.element.android.libraries.push.api.history.PushHistoryItem
import io.element.android.libraries.push.impl.push.MutableBatteryOptimizationStore
import io.element.android.libraries.push.impl.store.PushDataStore
import io.element.android.libraries.push.impl.test.TestPush
import io.element.android.libraries.pushproviders.api.Distributor
@ -37,6 +38,7 @@ class DefaultPushService @Inject constructor(
private val sessionObserver: SessionObserver,
private val pushClientSecretStore: PushClientSecretStore,
private val pushDataStore: PushDataStore,
private val mutableBatteryOptimizationStore: MutableBatteryOptimizationStore,
) : PushService, SessionListener {
init {
observeSessions()
@ -138,4 +140,8 @@ class DefaultPushService @Inject constructor(
override suspend fun resetPushHistory() {
pushDataStore.reset()
}
override suspend fun resetBatteryOptimizationState() {
mutableBatteryOptimizationStore.reset()
}
}

View file

@ -15,6 +15,7 @@ import javax.inject.Inject
interface MutableBatteryOptimizationStore {
suspend fun showBatteryOptimizationBanner()
suspend fun onOptimizationBannerDismissed()
suspend fun reset()
}
@ContributesBinding(AppScope::class)
@ -28,4 +29,8 @@ class DefaultMutableBatteryOptimizationStore @Inject constructor(
override suspend fun onOptimizationBannerDismissed() {
defaultPushDataStore.setBatteryOptimizationBannerState(DefaultPushDataStore.BATTERY_OPTIMIZATION_BANNER_STATE_DISMISSED)
}
override suspend fun reset() {
defaultPushDataStore.setBatteryOptimizationBannerState(DefaultPushDataStore.BATTERY_OPTIMIZATION_BANNER_STATE_INIT)
}
}