Skip to content

Commit 93c2734

Browse files
committed
Do not expose AnnouncementState in the api module
1 parent 2610636 commit 93c2734

File tree

13 files changed

+16
-30
lines changed

13 files changed

+16
-30
lines changed

appnav/src/main/kotlin/io/element/android/appnav/RootFlowNode.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -174,8 +174,8 @@ class RootFlowNode(
174174
state = state,
175175
modifier = modifier,
176176
onOpenBugReport = this::onOpenBugReport,
177-
announcementRenderer = { state, announcementModifier ->
178-
announcementService.Render(state, announcementModifier)
177+
announcementRenderer = { announcementModifier ->
178+
announcementService.Render(announcementModifier)
179179
}
180180
) {
181181
val backstackSlider = rememberBackstackSlider<NavTarget>(

appnav/src/main/kotlin/io/element/android/appnav/root/RootPresenter.kt

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@ import androidx.compose.runtime.collectAsState
1313
import androidx.compose.runtime.getValue
1414
import dev.zacsweers.metro.Inject
1515
import im.vector.app.features.analytics.plan.SuperProperties
16-
import io.element.android.features.announcement.api.AnnouncementState
1716
import io.element.android.features.rageshake.api.crash.CrashDetectionState
1817
import io.element.android.features.rageshake.api.detection.RageshakeDetectionState
1918
import io.element.android.libraries.architecture.Presenter
@@ -25,7 +24,6 @@ import io.element.android.services.apperror.api.AppErrorStateService
2524
class RootPresenter(
2625
private val crashDetectionPresenter: Presenter<CrashDetectionState>,
2726
private val rageshakeDetectionPresenter: Presenter<RageshakeDetectionState>,
28-
private val announcementPresenter: Presenter<AnnouncementState>,
2927
private val appErrorStateService: AppErrorStateService,
3028
private val analyticsService: AnalyticsService,
3129
private val sdkMetadata: SdkMetadata,
@@ -34,7 +32,6 @@ class RootPresenter(
3432
override fun present(): RootState {
3533
val rageshakeDetectionState = rageshakeDetectionPresenter.present()
3634
val crashDetectionState = crashDetectionPresenter.present()
37-
val announcementState = announcementPresenter.present()
3835
val appErrorState by appErrorStateService.appErrorStateFlow.collectAsState()
3936

4037
LaunchedEffect(Unit) {
@@ -51,7 +48,6 @@ class RootPresenter(
5148
rageshakeDetectionState = rageshakeDetectionState,
5249
crashDetectionState = crashDetectionState,
5350
errorState = appErrorState,
54-
announcementState = announcementState,
5551
)
5652
}
5753
}

appnav/src/main/kotlin/io/element/android/appnav/root/RootState.kt

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88
package io.element.android.appnav.root
99

1010
import androidx.compose.runtime.Immutable
11-
import io.element.android.features.announcement.api.AnnouncementState
1211
import io.element.android.features.rageshake.api.crash.CrashDetectionState
1312
import io.element.android.features.rageshake.api.detection.RageshakeDetectionState
1413
import io.element.android.services.apperror.api.AppErrorState
@@ -18,5 +17,4 @@ data class RootState(
1817
val rageshakeDetectionState: RageshakeDetectionState,
1918
val crashDetectionState: CrashDetectionState,
2019
val errorState: AppErrorState,
21-
val announcementState: AnnouncementState,
2220
)

appnav/src/main/kotlin/io/element/android/appnav/root/RootStateProvider.kt

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88
package io.element.android.appnav.root
99

1010
import androidx.compose.ui.tooling.preview.PreviewParameterProvider
11-
import io.element.android.features.announcement.api.anAnnouncementState
1211
import io.element.android.features.rageshake.api.crash.aCrashDetectionState
1312
import io.element.android.features.rageshake.api.detection.aRageshakeDetectionState
1413
import io.element.android.services.apperror.api.AppErrorState
@@ -34,6 +33,5 @@ open class RootStateProvider : PreviewParameterProvider<RootState> {
3433
fun aRootState() = RootState(
3534
rageshakeDetectionState = aRageshakeDetectionState(),
3635
crashDetectionState = aCrashDetectionState(),
37-
announcementState = anAnnouncementState(),
3836
errorState = AppErrorState.NoError,
3937
)

appnav/src/main/kotlin/io/element/android/appnav/root/RootView.kt

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@ import androidx.compose.runtime.Composable
1414
import androidx.compose.ui.Alignment
1515
import androidx.compose.ui.Modifier
1616
import androidx.compose.ui.tooling.preview.PreviewParameter
17-
import io.element.android.features.announcement.api.AnnouncementState
1817
import io.element.android.features.rageshake.api.crash.CrashDetectionEvents
1918
import io.element.android.features.rageshake.api.crash.CrashDetectionView
2019
import io.element.android.features.rageshake.api.detection.RageshakeDetectionEvents
@@ -28,7 +27,7 @@ import io.element.android.services.apperror.impl.AppErrorView
2827
fun RootView(
2928
state: RootState,
3029
onOpenBugReport: () -> Unit,
31-
announcementRenderer: @Composable (AnnouncementState, Modifier) -> Unit,
30+
announcementRenderer: @Composable (Modifier) -> Unit,
3231
modifier: Modifier = Modifier,
3332
children: @Composable BoxScope.() -> Unit,
3433
) {
@@ -45,10 +44,7 @@ fun RootView(
4544
onOpenBugReport.invoke()
4645
}
4746

48-
announcementRenderer(
49-
state.announcementState,
50-
Modifier,
51-
)
47+
announcementRenderer(Modifier)
5248

5349
RageshakeDetectionView(
5450
state = state.rageshakeDetectionState,
@@ -70,7 +66,7 @@ internal fun RootViewPreview(@PreviewParameter(RootStateProvider::class) rootSta
7066
RootView(
7167
state = rootState,
7268
onOpenBugReport = {},
73-
announcementRenderer = { _, _ -> },
69+
announcementRenderer = { },
7470
) {
7571
Text("Children")
7672
}

appnav/src/test/kotlin/io/element/android/appnav/RootPresenterTest.kt

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@ import app.cash.molecule.moleculeFlow
1212
import app.cash.turbine.test
1313
import com.google.common.truth.Truth.assertThat
1414
import io.element.android.appnav.root.RootPresenter
15-
import io.element.android.features.announcement.api.anAnnouncementState
1615
import io.element.android.features.rageshake.api.crash.aCrashDetectionState
1716
import io.element.android.features.rageshake.api.detection.aRageshakeDetectionState
1817
import io.element.android.libraries.matrix.test.FakeSdkMetadata
@@ -72,7 +71,6 @@ class RootPresenterTest {
7271
return RootPresenter(
7372
crashDetectionPresenter = { aCrashDetectionState() },
7473
rageshakeDetectionPresenter = { aRageshakeDetectionState() },
75-
announcementPresenter = { anAnnouncementState() },
7674
appErrorStateService = appErrorService,
7775
analyticsService = FakeAnalyticsService(),
7876
sdkMetadata = FakeSdkMetadata("sha")

features/announcement/api/src/main/kotlin/io/element/android/features/announcement/api/AnnouncementService.kt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@ interface AnnouncementService {
1515

1616
@Composable
1717
fun Render(
18-
state: AnnouncementState,
1918
modifier: Modifier,
2019
)
2120
}

features/announcement/impl/src/main/kotlin/io/element/android/features/announcement/impl/AnnouncementPresenter.kt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@ import androidx.compose.runtime.collectAsState
1212
import androidx.compose.runtime.getValue
1313
import androidx.compose.runtime.remember
1414
import dev.zacsweers.metro.Inject
15-
import io.element.android.features.announcement.api.AnnouncementState
1615
import io.element.android.features.announcement.impl.store.AnnouncementStore
1716
import io.element.android.libraries.architecture.Presenter
1817
import kotlinx.coroutines.flow.map
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
* Please see LICENSE files in the repository root for full details.
66
*/
77

8-
package io.element.android.features.announcement.api
8+
package io.element.android.features.announcement.impl
99

1010
data class AnnouncementState(
1111
val showSpaceAnnouncement: Boolean,

features/announcement/impl/src/main/kotlin/io/element/android/features/announcement/impl/DefaultAnnouncementService.kt

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@ import dev.zacsweers.metro.AppScope
1818
import dev.zacsweers.metro.ContributesBinding
1919
import dev.zacsweers.metro.Inject
2020
import io.element.android.features.announcement.api.AnnouncementService
21-
import io.element.android.features.announcement.api.AnnouncementState
2221
import io.element.android.features.announcement.impl.spaces.SpaceAnnouncementState
2322
import io.element.android.features.announcement.impl.spaces.SpaceAnnouncementView
2423
import io.element.android.features.announcement.impl.store.AnnouncementStore
@@ -29,6 +28,7 @@ import kotlinx.coroutines.flow.first
2928
@Inject
3029
class DefaultAnnouncementService(
3130
private val announcementStore: AnnouncementStore,
31+
private val announcementPresenter: Presenter<AnnouncementState>,
3232
private val spaceAnnouncementPresenter: Presenter<SpaceAnnouncementState>,
3333
) : AnnouncementService {
3434
override suspend fun onEnteringSpaceTab() {
@@ -39,10 +39,11 @@ class DefaultAnnouncementService(
3939
}
4040

4141
@Composable
42-
override fun Render(state: AnnouncementState, modifier: Modifier) {
42+
override fun Render(modifier: Modifier) {
43+
val announcementState = announcementPresenter.present()
4344
Box(modifier = modifier.fillMaxSize()) {
4445
AnimatedVisibility(
45-
visible = state.showSpaceAnnouncement,
46+
visible = announcementState.showSpaceAnnouncement,
4647
enter = fadeIn(),
4748
exit = fadeOut(),
4849
) {

0 commit comments

Comments
 (0)