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

@ -59,6 +59,7 @@ class DefaultClearCacheUseCase @Inject constructor(
seenInvitesStore.clear()
// Ensure any error will be displayed again
pushService.setIgnoreRegistrationError(matrixClient.sessionId, false)
pushService.resetBatteryOptimizationState()
// Ensure the app is restarted
defaultCacheService.onClearedCache(matrixClient.sessionId)
}

View file

@ -46,8 +46,10 @@ class DefaultClearCacheUseCaseTest {
resetLambda = resetFtueLambda,
)
val setIgnoreRegistrationErrorLambda = lambdaRecorder<SessionId, Boolean, Unit> { _, _ -> }
val resetBatteryOptimizationStateResult = lambdaRecorder<Unit> { }
val pushService = FakePushService(
setIgnoreRegistrationErrorLambda = setIgnoreRegistrationErrorLambda
setIgnoreRegistrationErrorLambda = setIgnoreRegistrationErrorLambda,
resetBatteryOptimizationStateResult = resetBatteryOptimizationStateResult,
)
val seenInvitesStore = InMemorySeenInvitesStore(setOf(A_ROOM_ID))
assertThat(seenInvitesStore.seenRoomIds().first()).isNotEmpty()
@ -68,6 +70,7 @@ class DefaultClearCacheUseCaseTest {
resetFtueLambda.assertions().isCalledOnce()
setIgnoreRegistrationErrorLambda.assertions().isCalledOnce()
.with(value(matrixClient.sessionId), value(false))
resetBatteryOptimizationStateResult.assertions().isCalledOnce()
assertThat(awaitItem()).isEqualTo(matrixClient.sessionId)
assertThat(seenInvitesStore.seenRoomIds().first()).isEmpty()
assertThat(activeRoomsHolder.getActiveRoom(A_SESSION_ID)).isNull()