Skip to content

Commit 241dae1

Browse files
committed
Remove dependencies to other presenters to FullScreenIntentPermissionsPresenter.
Also do some renaming since FullScreenIntentPermissionsPresenter interface can be removed.
1 parent a100676 commit 241dae1

File tree

17 files changed

+66
-106
lines changed

17 files changed

+66
-106
lines changed

features/preferences/impl/build.gradle.kts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,6 @@ dependencies {
8383
testImplementation(projects.features.logout.test)
8484
testImplementation(projects.libraries.indicator.impl)
8585
testImplementation(projects.libraries.pushproviders.test)
86-
testImplementation(projects.libraries.fullscreenintent.test)
8786
testImplementation(projects.features.logout.impl)
8887
testImplementation(projects.services.analytics.test)
8988
testImplementation(projects.services.toolbox.test)

features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/notifications/NotificationSettingsPresenter.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ import io.element.android.libraries.architecture.AsyncAction
2222
import io.element.android.libraries.architecture.AsyncData
2323
import io.element.android.libraries.architecture.Presenter
2424
import io.element.android.libraries.architecture.runUpdatingStateNoSuccess
25-
import io.element.android.libraries.fullscreenintent.api.FullScreenIntentPermissionsPresenter
25+
import io.element.android.libraries.fullscreenintent.api.FullScreenIntentPermissionsState
2626
import io.element.android.libraries.matrix.api.MatrixClient
2727
import io.element.android.libraries.matrix.api.notificationsettings.NotificationSettingsService
2828
import io.element.android.libraries.matrix.api.room.RoomNotificationMode
@@ -47,7 +47,7 @@ class NotificationSettingsPresenter @Inject constructor(
4747
private val matrixClient: MatrixClient,
4848
private val pushService: PushService,
4949
private val systemNotificationsEnabledProvider: SystemNotificationsEnabledProvider,
50-
private val fullScreenIntentPermissionsPresenter: FullScreenIntentPermissionsPresenter,
50+
private val fullScreenIntentPermissionsPresenter: Presenter<FullScreenIntentPermissionsState>,
5151
) : Presenter<NotificationSettingsState> {
5252
@Composable
5353
override fun present(): NotificationSettingsState {

features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/notifications/NotificationSettingsStateProvider.kt

Lines changed: 1 addition & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import androidx.compose.ui.tooling.preview.PreviewParameterProvider
1111
import io.element.android.libraries.architecture.AsyncAction
1212
import io.element.android.libraries.architecture.AsyncData
1313
import io.element.android.libraries.fullscreenintent.api.FullScreenIntentPermissionsState
14+
import io.element.android.libraries.fullscreenintent.api.aFullScreenIntentPermissionsState
1415
import io.element.android.libraries.matrix.api.room.RoomNotificationMode
1516
import kotlinx.collections.immutable.persistentListOf
1617
import kotlinx.collections.immutable.toImmutableList
@@ -87,15 +88,3 @@ fun aInvalidNotificationSettingsState(
8788
fullScreenIntentPermissionsState = aFullScreenIntentPermissionsState(),
8889
eventSink = eventSink,
8990
)
90-
91-
internal fun aFullScreenIntentPermissionsState(
92-
permissionGranted: Boolean = true,
93-
shouldDisplay: Boolean = false,
94-
openFullScreenIntentSettings: () -> Unit = {},
95-
dismissFullScreenIntentBanner: () -> Unit = {},
96-
) = FullScreenIntentPermissionsState(
97-
permissionGranted = permissionGranted,
98-
shouldDisplayBanner = shouldDisplay,
99-
openFullScreenIntentSettings = openFullScreenIntentSettings,
100-
dismissFullScreenIntentBanner = dismissFullScreenIntentBanner,
101-
)

features/preferences/impl/src/test/kotlin/io/element/android/features/preferences/impl/notifications/NotificationSettingsPresenterTest.kt

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,8 @@ import app.cash.molecule.moleculeFlow
1212
import app.cash.turbine.test
1313
import com.google.common.truth.Truth.assertThat
1414
import io.element.android.libraries.architecture.AsyncData
15-
import io.element.android.libraries.fullscreenintent.test.FakeFullScreenIntentPermissionsPresenter
15+
import io.element.android.libraries.fullscreenintent.api.FullScreenIntentPermissionsState
16+
import io.element.android.libraries.fullscreenintent.api.aFullScreenIntentPermissionsState
1617
import io.element.android.libraries.matrix.api.MatrixClient
1718
import io.element.android.libraries.matrix.api.room.RoomNotificationMode
1819
import io.element.android.libraries.matrix.test.A_THROWABLE
@@ -263,12 +264,11 @@ class NotificationSettingsPresenterTest {
263264

264265
@Test
265266
fun `present - RefreshSystemNotificationsEnabled also refreshes fullScreenIntentState`() = runTest {
266-
val fullScreenIntentPermissionsPresenter = FakeFullScreenIntentPermissionsPresenter().apply {
267-
state = state.copy(permissionGranted = false)
268-
}
267+
var lambdaResult = aFullScreenIntentPermissionsState(permissionGranted = false)
268+
val fullScreenIntentPermissionsStateLambda = { lambdaResult }
269269
val presenter = createNotificationSettingsPresenter(
270270
pushService = createFakePushService(),
271-
fullScreenIntentPermissionsPresenter = fullScreenIntentPermissionsPresenter,
271+
fullScreenIntentPermissionsStateLambda = fullScreenIntentPermissionsStateLambda,
272272
)
273273
moleculeFlow(RecompositionMode.Immediate) {
274274
presenter.present()
@@ -277,7 +277,7 @@ class NotificationSettingsPresenterTest {
277277
assertThat(initialState.fullScreenIntentPermissionsState.permissionGranted).isFalse()
278278

279279
// Change the notification settings
280-
fullScreenIntentPermissionsPresenter.state = fullScreenIntentPermissionsPresenter.state.copy(permissionGranted = true)
280+
lambdaResult = lambdaResult.copy(permissionGranted = true)
281281
// Check it's not changed unless we refresh
282282
expectNoEvents()
283283

@@ -336,7 +336,7 @@ class NotificationSettingsPresenterTest {
336336
private fun createNotificationSettingsPresenter(
337337
notificationSettingsService: FakeNotificationSettingsService = FakeNotificationSettingsService(),
338338
pushService: PushService = FakePushService(),
339-
fullScreenIntentPermissionsPresenter: FakeFullScreenIntentPermissionsPresenter = FakeFullScreenIntentPermissionsPresenter()
339+
fullScreenIntentPermissionsStateLambda: () -> FullScreenIntentPermissionsState = { aFullScreenIntentPermissionsState() },
340340
): NotificationSettingsPresenter {
341341
val matrixClient = FakeMatrixClient(notificationSettingsService = notificationSettingsService)
342342
return NotificationSettingsPresenter(
@@ -345,7 +345,7 @@ class NotificationSettingsPresenterTest {
345345
matrixClient = matrixClient,
346346
pushService = pushService,
347347
systemNotificationsEnabledProvider = FakeSystemNotificationsEnabledProvider(),
348-
fullScreenIntentPermissionsPresenter = fullScreenIntentPermissionsPresenter,
348+
fullScreenIntentPermissionsPresenter = { fullScreenIntentPermissionsStateLambda() },
349349
)
350350
}
351351
}

features/roomlist/impl/build.gradle.kts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,6 @@ dependencies {
6565
testImplementation(projects.libraries.dateformatter.test)
6666
testImplementation(projects.libraries.eventformatter.test)
6767
testImplementation(projects.libraries.indicator.impl)
68-
testImplementation(projects.libraries.fullscreenintent.test)
6968
testImplementation(projects.libraries.permissions.noop)
7069
testImplementation(projects.libraries.permissions.test)
7170
testImplementation(projects.libraries.preferences.test)

features/roomlist/impl/src/main/kotlin/io/element/android/features/roomlist/impl/RoomListContentStateProvider.kt

Lines changed: 1 addition & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ package io.element.android.features.roomlist.impl
1010
import androidx.compose.ui.tooling.preview.PreviewParameterProvider
1111
import io.element.android.features.roomlist.impl.model.RoomListRoomSummary
1212
import io.element.android.libraries.fullscreenintent.api.FullScreenIntentPermissionsState
13+
import io.element.android.libraries.fullscreenintent.api.aFullScreenIntentPermissionsState
1314
import kotlinx.collections.immutable.ImmutableList
1415
import kotlinx.collections.immutable.persistentListOf
1516

@@ -37,15 +38,3 @@ internal fun aRoomsContentState(
3738
internal fun aSkeletonContentState() = RoomListContentState.Skeleton(16)
3839

3940
internal fun anEmptyContentState() = RoomListContentState.Empty
40-
41-
internal fun aFullScreenIntentPermissionsState(
42-
permissionGranted: Boolean = true,
43-
shouldDisplay: Boolean = false,
44-
openFullScreenIntentSettings: () -> Unit = {},
45-
dismissFullScreenIntentBanner: () -> Unit = {},
46-
) = FullScreenIntentPermissionsState(
47-
permissionGranted = permissionGranted,
48-
shouldDisplayBanner = shouldDisplay,
49-
openFullScreenIntentSettings = openFullScreenIntentSettings,
50-
dismissFullScreenIntentBanner = dismissFullScreenIntentBanner,
51-
)

features/roomlist/impl/src/main/kotlin/io/element/android/features/roomlist/impl/RoomListPresenter.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ import io.element.android.libraries.designsystem.utils.snackbar.SnackbarDispatch
4444
import io.element.android.libraries.designsystem.utils.snackbar.collectSnackbarMessageAsState
4545
import io.element.android.libraries.featureflag.api.FeatureFlagService
4646
import io.element.android.libraries.featureflag.api.FeatureFlags
47-
import io.element.android.libraries.fullscreenintent.api.FullScreenIntentPermissionsPresenter
47+
import io.element.android.libraries.fullscreenintent.api.FullScreenIntentPermissionsState
4848
import io.element.android.libraries.indicator.api.IndicatorService
4949
import io.element.android.libraries.matrix.api.MatrixClient
5050
import io.element.android.libraries.matrix.api.core.RoomId
@@ -89,7 +89,7 @@ class RoomListPresenter @Inject constructor(
8989
private val sessionPreferencesStore: SessionPreferencesStore,
9090
private val analyticsService: AnalyticsService,
9191
private val acceptDeclineInvitePresenter: Presenter<AcceptDeclineInviteState>,
92-
private val fullScreenIntentPermissionsPresenter: FullScreenIntentPermissionsPresenter,
92+
private val fullScreenIntentPermissionsPresenter: Presenter<FullScreenIntentPermissionsState>,
9393
private val notificationCleaner: NotificationCleaner,
9494
private val logoutPresenter: Presenter<DirectLogoutState>,
9595
) : Presenter<RoomListState> {

features/roomlist/impl/src/main/kotlin/io/element/android/features/roomlist/impl/components/FullScreenIntentPermissionBanner.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,11 @@ package io.element.android.features.roomlist.impl.components
1010
import androidx.compose.runtime.Composable
1111
import androidx.compose.ui.res.stringResource
1212
import io.element.android.features.roomlist.impl.R
13-
import io.element.android.features.roomlist.impl.aFullScreenIntentPermissionsState
1413
import io.element.android.libraries.designsystem.atomic.molecules.DialogLikeBannerMolecule
1514
import io.element.android.libraries.designsystem.preview.ElementPreview
1615
import io.element.android.libraries.designsystem.preview.PreviewsDayNight
1716
import io.element.android.libraries.fullscreenintent.api.FullScreenIntentPermissionsState
17+
import io.element.android.libraries.fullscreenintent.api.aFullScreenIntentPermissionsState
1818

1919
@Composable
2020
fun FullScreenIntentPermissionBanner(state: FullScreenIntentPermissionsState) {

features/roomlist/impl/src/test/kotlin/io/element/android/features/roomlist/impl/RoomListPresenterTest.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ import io.element.android.libraries.eventformatter.api.RoomLastMessageFormatter
3838
import io.element.android.libraries.eventformatter.test.FakeRoomLastMessageFormatter
3939
import io.element.android.libraries.featureflag.api.FeatureFlagService
4040
import io.element.android.libraries.featureflag.test.FakeFeatureFlagService
41-
import io.element.android.libraries.fullscreenintent.test.FakeFullScreenIntentPermissionsPresenter
41+
import io.element.android.libraries.fullscreenintent.api.aFullScreenIntentPermissionsState
4242
import io.element.android.libraries.indicator.impl.DefaultIndicatorService
4343
import io.element.android.libraries.matrix.api.MatrixClient
4444
import io.element.android.libraries.matrix.api.core.RoomId
@@ -709,7 +709,7 @@ class RoomListPresenterTest {
709709
filtersPresenter = filtersPresenter,
710710
analyticsService = analyticsService,
711711
acceptDeclineInvitePresenter = acceptDeclineInvitePresenter,
712-
fullScreenIntentPermissionsPresenter = FakeFullScreenIntentPermissionsPresenter(),
712+
fullScreenIntentPermissionsPresenter = { aFullScreenIntentPermissionsState() },
713713
notificationCleaner = notificationCleaner,
714714
logoutPresenter = { aDirectLogoutState() },
715715
)

libraries/fullscreenintent/api/src/main/kotlin/io/element/android/libraries/fullscreenintent/api/FullScreenIntentPermissionsPresenter.kt

Lines changed: 0 additions & 12 deletions
This file was deleted.

0 commit comments

Comments
 (0)