mirror of
https://github.com/Novaloop-AG/element-x-android.git
synced 2026-10-31 16:22:49 +00:00
FullScreenIntentPermissionsEvents -> FullScreenIntentPermissionsEvent
This commit is contained in:
+3
-3
@@ -16,7 +16,7 @@ import io.element.android.libraries.designsystem.components.Announcement
|
|||||||
import io.element.android.libraries.designsystem.components.AnnouncementType
|
import io.element.android.libraries.designsystem.components.AnnouncementType
|
||||||
import io.element.android.libraries.designsystem.preview.ElementPreview
|
import io.element.android.libraries.designsystem.preview.ElementPreview
|
||||||
import io.element.android.libraries.designsystem.preview.PreviewsDayNight
|
import io.element.android.libraries.designsystem.preview.PreviewsDayNight
|
||||||
import io.element.android.libraries.fullscreenintent.api.FullScreenIntentPermissionsEvents
|
import io.element.android.libraries.fullscreenintent.api.FullScreenIntentPermissionsEvent
|
||||||
import io.element.android.libraries.fullscreenintent.api.FullScreenIntentPermissionsState
|
import io.element.android.libraries.fullscreenintent.api.FullScreenIntentPermissionsState
|
||||||
import io.element.android.libraries.fullscreenintent.api.aFullScreenIntentPermissionsState
|
import io.element.android.libraries.fullscreenintent.api.aFullScreenIntentPermissionsState
|
||||||
import io.element.android.libraries.ui.strings.CommonStrings
|
import io.element.android.libraries.ui.strings.CommonStrings
|
||||||
@@ -31,8 +31,8 @@ fun FullScreenIntentPermissionBanner(
|
|||||||
description = stringResource(R.string.full_screen_intent_banner_message),
|
description = stringResource(R.string.full_screen_intent_banner_message),
|
||||||
type = AnnouncementType.Actionable(
|
type = AnnouncementType.Actionable(
|
||||||
actionText = stringResource(CommonStrings.action_continue),
|
actionText = stringResource(CommonStrings.action_continue),
|
||||||
onDismissClick = { state.eventSink(FullScreenIntentPermissionsEvents.Dismiss) },
|
onDismissClick = { state.eventSink(FullScreenIntentPermissionsEvent.Dismiss) },
|
||||||
onActionClick = { state.eventSink(FullScreenIntentPermissionsEvents.OpenSettings) },
|
onActionClick = { state.eventSink(FullScreenIntentPermissionsEvent.OpenSettings) },
|
||||||
),
|
),
|
||||||
modifier = modifier.roomListBannerPadding(),
|
modifier = modifier.roomListBannerPadding(),
|
||||||
)
|
)
|
||||||
|
|||||||
+2
-2
@@ -54,7 +54,7 @@ import io.element.android.libraries.designsystem.theme.components.IconSource
|
|||||||
import io.element.android.libraries.designsystem.theme.components.ListItem
|
import io.element.android.libraries.designsystem.theme.components.ListItem
|
||||||
import io.element.android.libraries.designsystem.theme.components.Text
|
import io.element.android.libraries.designsystem.theme.components.Text
|
||||||
import io.element.android.libraries.designsystem.utils.OnLifecycleEvent
|
import io.element.android.libraries.designsystem.utils.OnLifecycleEvent
|
||||||
import io.element.android.libraries.fullscreenintent.api.FullScreenIntentPermissionsEvents
|
import io.element.android.libraries.fullscreenintent.api.FullScreenIntentPermissionsEvent
|
||||||
import io.element.android.libraries.matrix.api.room.RoomNotificationMode
|
import io.element.android.libraries.matrix.api.room.RoomNotificationMode
|
||||||
import io.element.android.libraries.preferences.api.store.NotificationSound
|
import io.element.android.libraries.preferences.api.store.NotificationSound
|
||||||
import io.element.android.libraries.ui.strings.CommonStrings
|
import io.element.android.libraries.ui.strings.CommonStrings
|
||||||
@@ -165,7 +165,7 @@ private fun NotificationSettingsContentView(
|
|||||||
Text(stringResource(R.string.full_screen_intent_banner_message))
|
Text(stringResource(R.string.full_screen_intent_banner_message))
|
||||||
},
|
},
|
||||||
onClick = {
|
onClick = {
|
||||||
state.fullScreenIntentPermissionsState.eventSink(FullScreenIntentPermissionsEvents.OpenSettings)
|
state.fullScreenIntentPermissionsState.eventSink(FullScreenIntentPermissionsEvent.OpenSettings)
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|||||||
+3
-3
@@ -8,7 +8,7 @@
|
|||||||
|
|
||||||
package io.element.android.libraries.fullscreenintent.api
|
package io.element.android.libraries.fullscreenintent.api
|
||||||
|
|
||||||
sealed interface FullScreenIntentPermissionsEvents {
|
sealed interface FullScreenIntentPermissionsEvent {
|
||||||
data object Dismiss : FullScreenIntentPermissionsEvents
|
data object Dismiss : FullScreenIntentPermissionsEvent
|
||||||
data object OpenSettings : FullScreenIntentPermissionsEvents
|
data object OpenSettings : FullScreenIntentPermissionsEvent
|
||||||
}
|
}
|
||||||
+1
-1
@@ -11,5 +11,5 @@ package io.element.android.libraries.fullscreenintent.api
|
|||||||
data class FullScreenIntentPermissionsState(
|
data class FullScreenIntentPermissionsState(
|
||||||
val permissionGranted: Boolean,
|
val permissionGranted: Boolean,
|
||||||
val shouldDisplayBanner: Boolean,
|
val shouldDisplayBanner: Boolean,
|
||||||
val eventSink: (FullScreenIntentPermissionsEvents) -> Unit,
|
val eventSink: (FullScreenIntentPermissionsEvent) -> Unit,
|
||||||
)
|
)
|
||||||
|
|||||||
+1
-1
@@ -11,7 +11,7 @@ package io.element.android.libraries.fullscreenintent.api
|
|||||||
fun aFullScreenIntentPermissionsState(
|
fun aFullScreenIntentPermissionsState(
|
||||||
permissionGranted: Boolean = true,
|
permissionGranted: Boolean = true,
|
||||||
shouldDisplay: Boolean = false,
|
shouldDisplay: Boolean = false,
|
||||||
eventSink: (FullScreenIntentPermissionsEvents) -> Unit = {},
|
eventSink: (FullScreenIntentPermissionsEvent) -> Unit = {},
|
||||||
) = FullScreenIntentPermissionsState(
|
) = FullScreenIntentPermissionsState(
|
||||||
permissionGranted = permissionGranted,
|
permissionGranted = permissionGranted,
|
||||||
shouldDisplayBanner = shouldDisplay,
|
shouldDisplayBanner = shouldDisplay,
|
||||||
|
|||||||
+4
-4
@@ -25,7 +25,7 @@ import dev.zacsweers.metro.Inject
|
|||||||
import dev.zacsweers.metro.SingleIn
|
import dev.zacsweers.metro.SingleIn
|
||||||
import io.element.android.libraries.architecture.Presenter
|
import io.element.android.libraries.architecture.Presenter
|
||||||
import io.element.android.libraries.core.meta.BuildMeta
|
import io.element.android.libraries.core.meta.BuildMeta
|
||||||
import io.element.android.libraries.fullscreenintent.api.FullScreenIntentPermissionsEvents
|
import io.element.android.libraries.fullscreenintent.api.FullScreenIntentPermissionsEvent
|
||||||
import io.element.android.libraries.fullscreenintent.api.FullScreenIntentPermissionsState
|
import io.element.android.libraries.fullscreenintent.api.FullScreenIntentPermissionsState
|
||||||
import io.element.android.libraries.preferences.api.store.PreferenceDataStoreFactory
|
import io.element.android.libraries.preferences.api.store.PreferenceDataStoreFactory
|
||||||
import io.element.android.services.toolbox.api.intent.ExternalIntentLauncher
|
import io.element.android.services.toolbox.api.intent.ExternalIntentLauncher
|
||||||
@@ -64,12 +64,12 @@ class FullScreenIntentPermissionsPresenter(
|
|||||||
val isGranted = notificationManagerCompat.canUseFullScreenIntent()
|
val isGranted = notificationManagerCompat.canUseFullScreenIntent()
|
||||||
val isBannerDismissed by isFullScreenIntentBannerDismissed.collectAsState(initial = true)
|
val isBannerDismissed by isFullScreenIntentBannerDismissed.collectAsState(initial = true)
|
||||||
|
|
||||||
fun handleEvent(event: FullScreenIntentPermissionsEvents) {
|
fun handleEvent(event: FullScreenIntentPermissionsEvent) {
|
||||||
when (event) {
|
when (event) {
|
||||||
FullScreenIntentPermissionsEvents.Dismiss -> coroutineScope.launch {
|
FullScreenIntentPermissionsEvent.Dismiss -> coroutineScope.launch {
|
||||||
dismissFullScreenIntentBanner()
|
dismissFullScreenIntentBanner()
|
||||||
}
|
}
|
||||||
FullScreenIntentPermissionsEvents.OpenSettings -> openFullScreenIntentSettings()
|
FullScreenIntentPermissionsEvent.OpenSettings -> openFullScreenIntentSettings()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+4
-4
@@ -16,7 +16,7 @@ import app.cash.molecule.moleculeFlow
|
|||||||
import app.cash.turbine.test
|
import app.cash.turbine.test
|
||||||
import com.google.common.truth.Truth.assertThat
|
import com.google.common.truth.Truth.assertThat
|
||||||
import io.element.android.libraries.core.meta.BuildMeta
|
import io.element.android.libraries.core.meta.BuildMeta
|
||||||
import io.element.android.libraries.fullscreenintent.api.FullScreenIntentPermissionsEvents
|
import io.element.android.libraries.fullscreenintent.api.FullScreenIntentPermissionsEvent
|
||||||
import io.element.android.libraries.fullscreenintent.impl.FullScreenIntentPermissionsPresenter
|
import io.element.android.libraries.fullscreenintent.impl.FullScreenIntentPermissionsPresenter
|
||||||
import io.element.android.libraries.matrix.test.core.aBuildMeta
|
import io.element.android.libraries.matrix.test.core.aBuildMeta
|
||||||
import io.element.android.libraries.preferences.test.FakePreferenceDataStoreFactory
|
import io.element.android.libraries.preferences.test.FakePreferenceDataStoreFactory
|
||||||
@@ -78,7 +78,7 @@ class FullScreenIntentPermissionsPresenterTest {
|
|||||||
}.test {
|
}.test {
|
||||||
skipItems(1)
|
skipItems(1)
|
||||||
val loadedItem = awaitItem()
|
val loadedItem = awaitItem()
|
||||||
loadedItem.eventSink(FullScreenIntentPermissionsEvents.Dismiss)
|
loadedItem.eventSink(FullScreenIntentPermissionsEvent.Dismiss)
|
||||||
runCurrent()
|
runCurrent()
|
||||||
assertThat(awaitItem().shouldDisplayBanner).isFalse()
|
assertThat(awaitItem().shouldDisplayBanner).isFalse()
|
||||||
}
|
}
|
||||||
@@ -94,7 +94,7 @@ class FullScreenIntentPermissionsPresenterTest {
|
|||||||
}.test {
|
}.test {
|
||||||
skipItems(1)
|
skipItems(1)
|
||||||
val loadedItem = awaitItem()
|
val loadedItem = awaitItem()
|
||||||
loadedItem.eventSink(FullScreenIntentPermissionsEvents.OpenSettings)
|
loadedItem.eventSink(FullScreenIntentPermissionsEvent.OpenSettings)
|
||||||
launchLambda.assertions().isCalledOnce()
|
launchLambda.assertions().isCalledOnce()
|
||||||
cancelAndIgnoreRemainingEvents()
|
cancelAndIgnoreRemainingEvents()
|
||||||
}
|
}
|
||||||
@@ -113,7 +113,7 @@ class FullScreenIntentPermissionsPresenterTest {
|
|||||||
}.test {
|
}.test {
|
||||||
skipItems(1)
|
skipItems(1)
|
||||||
val loadedItem = awaitItem()
|
val loadedItem = awaitItem()
|
||||||
loadedItem.eventSink(FullScreenIntentPermissionsEvents.OpenSettings)
|
loadedItem.eventSink(FullScreenIntentPermissionsEvent.OpenSettings)
|
||||||
launchLambda.assertions().isNeverCalled()
|
launchLambda.assertions().isNeverCalled()
|
||||||
cancelAndIgnoreRemainingEvents()
|
cancelAndIgnoreRemainingEvents()
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user