Skip to content

Commit 9ac1bf6

Browse files
authored
Merge pull request #5388 from element-hq/feature/bma/fixIssueOnFtueNotificationScreen
Change in clear cache behavior
2 parents d64b867 + 290298c commit 9ac1bf6

File tree

15 files changed

+1
-114
lines changed

15 files changed

+1
-114
lines changed

features/ftue/api/src/main/kotlin/io/element/android/features/ftue/api/state/FtueService.kt

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,6 @@ import kotlinx.coroutines.flow.StateFlow
1515
interface FtueService {
1616
/** The current state of the FTUE. */
1717
val state: StateFlow<FtueState>
18-
19-
/** Reset the FTUE state. */
20-
suspend fun reset()
2118
}
2219

2320
/** The state of the FTUE. */

features/ftue/impl/src/main/kotlin/io/element/android/features/ftue/impl/state/DefaultFtueService.kt

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -58,13 +58,6 @@ class DefaultFtueService(
5858
}
5959
}
6060

61-
override suspend fun reset() {
62-
analyticsService.reset()
63-
if (sdkVersionProvider.isAtLeast(Build.VERSION_CODES.TIRAMISU)) {
64-
permissionStateProvider.resetPermission(Manifest.permission.POST_NOTIFICATIONS)
65-
}
66-
}
67-
6861
init {
6962
combine(
7063
sessionVerificationService.sessionVerifiedStatus.onEach { sessionVerifiedStatus ->

features/ftue/impl/src/test/kotlin/io/element/android/features/ftue/impl/DefaultFtueServiceTest.kt

Lines changed: 0 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,6 @@ import io.element.android.services.analytics.api.AnalyticsService
2727
import io.element.android.services.analytics.noop.NoopAnalyticsService
2828
import io.element.android.services.analytics.test.FakeAnalyticsService
2929
import io.element.android.services.toolbox.test.sdk.FakeBuildVersionSdkIntProvider
30-
import io.element.android.tests.testutils.lambda.lambdaRecorder
31-
import io.element.android.tests.testutils.lambda.value
3230
import kotlinx.coroutines.test.TestScope
3331
import kotlinx.coroutines.test.runTest
3432
import org.junit.Test
@@ -191,47 +189,6 @@ class DefaultFtueServiceTest {
191189
assertThat(awaitItem()).isEqualTo(InternalFtueState.Complete)
192190
}
193191
}
194-
195-
@Test
196-
fun `reset do the expected actions S`() = runTest {
197-
val resetAnalyticsLambda = lambdaRecorder<Unit> { }
198-
val analyticsService = FakeAnalyticsService(
199-
resetLambda = resetAnalyticsLambda
200-
)
201-
val resetPermissionLambda = lambdaRecorder<String, Unit> { }
202-
val permissionStateProvider = FakePermissionStateProvider(
203-
resetPermissionLambda = resetPermissionLambda
204-
)
205-
val service = createDefaultFtueService(
206-
sdkIntVersion = Build.VERSION_CODES.S,
207-
permissionStateProvider = permissionStateProvider,
208-
analyticsService = analyticsService,
209-
)
210-
service.reset()
211-
resetAnalyticsLambda.assertions().isCalledOnce()
212-
resetPermissionLambda.assertions().isNeverCalled()
213-
}
214-
215-
@Test
216-
fun `reset do the expected actions TIRAMISU`() = runTest {
217-
val resetLambda = lambdaRecorder<Unit> { }
218-
val analyticsService = FakeAnalyticsService(
219-
resetLambda = resetLambda
220-
)
221-
val resetPermissionLambda = lambdaRecorder<String, Unit> { }
222-
val permissionStateProvider = FakePermissionStateProvider(
223-
resetPermissionLambda = resetPermissionLambda
224-
)
225-
val service = createDefaultFtueService(
226-
sdkIntVersion = Build.VERSION_CODES.TIRAMISU,
227-
permissionStateProvider = permissionStateProvider,
228-
analyticsService = analyticsService,
229-
)
230-
service.reset()
231-
resetLambda.assertions().isCalledOnce()
232-
resetPermissionLambda.assertions().isCalledOnce()
233-
.with(value("android.permission.POST_NOTIFICATIONS"))
234-
}
235192
}
236193

237194
internal fun TestScope.createDefaultFtueService(

features/ftue/test/src/main/kotlin/io/element/android/features/ftue/test/FakeFtueService.kt

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -9,18 +9,11 @@ package io.element.android.features.ftue.test
99

1010
import io.element.android.features.ftue.api.state.FtueService
1111
import io.element.android.features.ftue.api.state.FtueState
12-
import io.element.android.tests.testutils.lambda.lambdaError
1312
import kotlinx.coroutines.flow.MutableStateFlow
1413

15-
class FakeFtueService(
16-
private val resetLambda: () -> Unit = { lambdaError() },
17-
) : FtueService {
14+
class FakeFtueService : FtueService {
1815
override val state: MutableStateFlow<FtueState> = MutableStateFlow(FtueState.Unknown)
1916

20-
override suspend fun reset() {
21-
resetLambda()
22-
}
23-
2417
suspend fun emitState(newState: FtueState) {
2518
state.emit(newState)
2619
}

features/preferences/impl/build.gradle.kts

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,6 @@ dependencies {
7272
implementation(projects.features.rageshake.api)
7373
implementation(projects.features.lockscreen.api)
7474
implementation(projects.features.analytics.api)
75-
implementation(projects.features.ftue.api)
7675
implementation(projects.features.licenses.api)
7776
implementation(projects.features.logout.api)
7877
implementation(projects.features.deactivation.api)
@@ -101,7 +100,6 @@ dependencies {
101100
testImplementation(projects.libraries.preferences.test)
102101
testImplementation(projects.libraries.push.test)
103102
testImplementation(projects.libraries.pushstore.test)
104-
testImplementation(projects.features.ftue.test)
105103
testImplementation(projects.features.invite.test)
106104
testImplementation(projects.features.rageshake.test)
107105
testImplementation(projects.features.logout.test)

features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/tasks/ClearCacheUseCase.kt

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@ import coil3.SingletonImageLoader
1212
import dev.zacsweers.metro.ContributesBinding
1313
import dev.zacsweers.metro.Inject
1414
import dev.zacsweers.metro.Provider
15-
import io.element.android.features.ftue.api.state.FtueService
1615
import io.element.android.features.invite.api.SeenInvitesStore
1716
import io.element.android.features.preferences.impl.DefaultCacheService
1817
import io.element.android.libraries.core.coroutine.CoroutineDispatchers
@@ -36,7 +35,6 @@ class DefaultClearCacheUseCase(
3635
private val coroutineDispatchers: CoroutineDispatchers,
3736
private val defaultCacheService: DefaultCacheService,
3837
private val okHttpClient: Provider<OkHttpClient>,
39-
private val ftueService: FtueService,
4038
private val pushService: PushService,
4139
private val seenInvitesStore: SeenInvitesStore,
4240
private val activeRoomsHolder: ActiveRoomsHolder,
@@ -56,7 +54,6 @@ class DefaultClearCacheUseCase(
5654
// Clear app cache
5755
context.cacheDir.deleteRecursively()
5856
// Clear some settings
59-
ftueService.reset()
6057
seenInvitesStore.clear()
6158
// Ensure any error will be displayed again
6259
pushService.setIgnoreRegistrationError(matrixClient.sessionId, false)

features/preferences/impl/src/test/kotlin/io/element/android/features/preferences/impl/tasks/DefaultClearCacheUseCaseTest.kt

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@ package io.element.android.features.preferences.impl.tasks
1010
import androidx.test.platform.app.InstrumentationRegistry
1111
import app.cash.turbine.test
1212
import com.google.common.truth.Truth.assertThat
13-
import io.element.android.features.ftue.test.FakeFtueService
1413
import io.element.android.features.invite.test.InMemorySeenInvitesStore
1514
import io.element.android.features.preferences.impl.DefaultCacheService
1615
import io.element.android.libraries.matrix.api.core.SessionId
@@ -41,10 +40,6 @@ class DefaultClearCacheUseCaseTest {
4140
clearCacheLambda = clearCacheLambda,
4241
)
4342
val defaultCacheService = DefaultCacheService()
44-
val resetFtueLambda = lambdaRecorder<Unit> { }
45-
val ftueService = FakeFtueService(
46-
resetLambda = resetFtueLambda,
47-
)
4843
val setIgnoreRegistrationErrorLambda = lambdaRecorder<SessionId, Boolean, Unit> { _, _ -> }
4944
val resetBatteryOptimizationStateResult = lambdaRecorder<Unit> { }
5045
val pushService = FakePushService(
@@ -59,15 +54,13 @@ class DefaultClearCacheUseCaseTest {
5954
coroutineDispatchers = testCoroutineDispatchers(),
6055
defaultCacheService = defaultCacheService,
6156
okHttpClient = { OkHttpClient.Builder().build() },
62-
ftueService = ftueService,
6357
pushService = pushService,
6458
seenInvitesStore = seenInvitesStore,
6559
activeRoomsHolder = activeRoomsHolder,
6660
)
6761
defaultCacheService.clearedCacheEventFlow.test {
6862
sut.invoke()
6963
clearCacheLambda.assertions().isCalledOnce()
70-
resetFtueLambda.assertions().isCalledOnce()
7164
setIgnoreRegistrationErrorLambda.assertions().isCalledOnce()
7265
.with(value(matrixClient.sessionId), value(false))
7366
resetBatteryOptimizationStateResult.assertions().isCalledOnce()

libraries/permissions/api/src/main/kotlin/io/element/android/libraries/permissions/api/PermissionStateProvider.kt

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,4 @@ interface PermissionStateProvider {
1616

1717
suspend fun setPermissionAsked(permission: String, value: Boolean)
1818
fun isPermissionAsked(permission: String): Flow<Boolean>
19-
20-
suspend fun resetPermission(permission: String)
2119
}

libraries/permissions/impl/src/main/kotlin/io/element/android/libraries/permissions/impl/DefaultPermissionStateProvider.kt

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,4 @@ class DefaultPermissionStateProvider(
4040
override suspend fun setPermissionAsked(permission: String, value: Boolean) = permissionsStore.setPermissionAsked(permission, value)
4141

4242
override fun isPermissionAsked(permission: String): Flow<Boolean> = permissionsStore.isPermissionAsked(permission)
43-
44-
override suspend fun resetPermission(permission: String) = permissionsStore.resetPermission(permission)
4543
}

libraries/permissions/test/src/main/kotlin/io/element/android/libraries/permissions/test/FakePermissionStateProvider.kt

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@ class FakePermissionStateProvider(
1515
private var permissionGranted: Boolean = true,
1616
permissionDenied: Boolean = false,
1717
permissionAsked: Boolean = false,
18-
private val resetPermissionLambda: (String) -> Unit = {},
1918
) : PermissionStateProvider {
2019
private val permissionDeniedFlow = MutableStateFlow(permissionDenied)
2120
private val permissionAskedFlow = MutableStateFlow(permissionAsked)
@@ -37,10 +36,4 @@ class FakePermissionStateProvider(
3736
}
3837

3938
override fun isPermissionAsked(permission: String): Flow<Boolean> = permissionAskedFlow
40-
41-
override suspend fun resetPermission(permission: String) {
42-
setPermissionAsked(permission, false)
43-
setPermissionDenied(permission, false)
44-
resetPermissionLambda(permission)
45-
}
4639
}

0 commit comments

Comments
 (0)