mirror of
https://github.com/Novaloop-AG/element-x-android.git
synced 2026-11-02 12:07:28 +00:00
Merge branch 'develop' into fix/6371-save-file-name-conflicts
This commit is contained in:
+1
-1
@@ -10,7 +10,7 @@ package io.element.android.features.analytics.api.preferences
|
||||
|
||||
import androidx.compose.ui.tooling.preview.PreviewParameterProvider
|
||||
|
||||
open class AnalyticsPreferencesStateProvider : PreviewParameterProvider<AnalyticsPreferencesState> {
|
||||
open class AnalyticsPreferencesStatePreviewParam : PreviewParameterProvider<AnalyticsPreferencesState> {
|
||||
override val values: Sequence<AnalyticsPreferencesState>
|
||||
get() = sequenceOf(
|
||||
aAnalyticsPreferencesState().copy(isEnabled = true),
|
||||
+1
-1
@@ -66,7 +66,7 @@ fun AnalyticsPreferencesView(
|
||||
|
||||
@PreviewsDayNight
|
||||
@Composable
|
||||
internal fun AnalyticsPreferencesViewPreview(@PreviewParameter(AnalyticsPreferencesStateProvider::class) state: AnalyticsPreferencesState) =
|
||||
internal fun AnalyticsPreferencesViewPreview(@PreviewParameter(AnalyticsPreferencesStatePreviewParam::class) state: AnalyticsPreferencesState) =
|
||||
ElementPreview {
|
||||
AnalyticsPreferencesView(
|
||||
state = state,
|
||||
|
||||
+1
-1
@@ -10,7 +10,7 @@ package io.element.android.features.analytics.impl
|
||||
|
||||
import androidx.compose.ui.tooling.preview.PreviewParameterProvider
|
||||
|
||||
open class AnalyticsOptInStateProvider : PreviewParameterProvider<AnalyticsOptInState> {
|
||||
open class AnalyticsOptInStatePreviewParam : PreviewParameterProvider<AnalyticsOptInState> {
|
||||
override val values: Sequence<AnalyticsOptInState>
|
||||
get() = sequenceOf(
|
||||
aAnalyticsOptInState(),
|
||||
+1
-1
@@ -171,7 +171,7 @@ private fun AnalyticsOptInFooter(
|
||||
|
||||
@PreviewsDayNight
|
||||
@Composable
|
||||
internal fun AnalyticsOptInViewPreview(@PreviewParameter(AnalyticsOptInStateProvider::class) state: AnalyticsOptInState) = ElementPreview {
|
||||
internal fun AnalyticsOptInViewPreview(@PreviewParameter(AnalyticsOptInStatePreviewParam::class) state: AnalyticsOptInState) = ElementPreview {
|
||||
AnalyticsOptInView(
|
||||
state = state,
|
||||
onClickTerms = {},
|
||||
|
||||
+1
-1
@@ -18,7 +18,7 @@ import io.element.android.libraries.architecture.Presenter
|
||||
|
||||
@ContributesTo(AppScope::class)
|
||||
@BindingContainer
|
||||
interface AnalyticsModule {
|
||||
interface AnalyticsBindingContainer {
|
||||
@Binds
|
||||
fun bindAnalyticsPreferencesPresenter(presenter: AnalyticsPreferencesPresenter): Presenter<AnalyticsPreferencesState>
|
||||
}
|
||||
+1
-1
@@ -11,7 +11,7 @@ package io.element.android.features.announcement.impl
|
||||
import androidx.compose.ui.tooling.preview.PreviewParameterProvider
|
||||
import io.element.android.features.announcement.api.Announcement
|
||||
|
||||
open class AnnouncementStateProvider : PreviewParameterProvider<AnnouncementState> {
|
||||
open class AnnouncementStatePreviewParam : PreviewParameterProvider<AnnouncementState> {
|
||||
override val values: Sequence<AnnouncementState>
|
||||
get() = sequenceOf(
|
||||
anAnnouncementState(),
|
||||
+2
-2
@@ -33,7 +33,7 @@ import io.element.android.compound.tokens.generated.CompoundIcons
|
||||
import io.element.android.features.announcement.api.Announcement
|
||||
import io.element.android.features.announcement.impl.AnnouncementEvent
|
||||
import io.element.android.features.announcement.impl.AnnouncementState
|
||||
import io.element.android.features.announcement.impl.AnnouncementStateProvider
|
||||
import io.element.android.features.announcement.impl.AnnouncementStatePreviewParam
|
||||
import io.element.android.libraries.designsystem.atomic.molecules.ButtonColumnMolecule
|
||||
import io.element.android.libraries.designsystem.atomic.molecules.IconTitleSubtitleMolecule
|
||||
import io.element.android.libraries.designsystem.atomic.pages.HeaderFooterPage
|
||||
@@ -216,7 +216,7 @@ private fun Announcement.Fullscreen.notice(): String? = when (this) {
|
||||
|
||||
@PreviewsDayNight
|
||||
@Composable
|
||||
internal fun FullscreenAnnouncementViewPreview(@PreviewParameter(AnnouncementStateProvider::class) state: AnnouncementState) = ElementPreview {
|
||||
internal fun FullscreenAnnouncementViewPreview(@PreviewParameter(AnnouncementStatePreviewParam::class) state: AnnouncementState) = ElementPreview {
|
||||
FullscreenAnnouncementView(
|
||||
state = state,
|
||||
)
|
||||
|
||||
+3
-1
@@ -60,7 +60,9 @@ class PictureInPicturePresenter(
|
||||
}
|
||||
is PictureInPictureEvent.SetPipOrientation -> {
|
||||
Timber.tag(loggerTag.value).d("onOrientationChange: ${event.orientation}")
|
||||
pipView?.setPipOrientation(event.orientation)
|
||||
if (isPipSupported) {
|
||||
pipView?.setPipOrientation(event.orientation)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+6
@@ -8,9 +8,15 @@
|
||||
|
||||
package io.element.android.features.call.impl.pip
|
||||
|
||||
import android.os.Build
|
||||
import androidx.annotation.RequiresApi
|
||||
|
||||
interface PipView {
|
||||
@RequiresApi(Build.VERSION_CODES.O)
|
||||
fun setPipOrientation(orientation: Int?)
|
||||
@RequiresApi(Build.VERSION_CODES.O)
|
||||
fun setPipParams()
|
||||
@RequiresApi(Build.VERSION_CODES.O)
|
||||
fun enterPipMode(): Boolean
|
||||
fun hangUp()
|
||||
}
|
||||
|
||||
+1
-1
@@ -16,7 +16,7 @@ import io.element.android.libraries.matrix.api.core.RoomId
|
||||
import io.element.android.libraries.matrix.api.core.SessionId
|
||||
import io.element.android.libraries.matrix.api.core.UserId
|
||||
|
||||
open class CallNotificationDataProvider : PreviewParameterProvider<CallNotificationData> {
|
||||
open class CallNotificationDataPreviewParam : PreviewParameterProvider<CallNotificationData> {
|
||||
override val values: Sequence<CallNotificationData>
|
||||
get() = sequenceOf(
|
||||
aCallNotificationData(
|
||||
+1
-1
@@ -11,7 +11,7 @@ package io.element.android.features.call.impl.ui
|
||||
import androidx.compose.ui.tooling.preview.PreviewParameterProvider
|
||||
import io.element.android.libraries.architecture.AsyncData
|
||||
|
||||
open class CallScreenStateProvider : PreviewParameterProvider<CallScreenState> {
|
||||
open class CallScreenStatePreviewParam : PreviewParameterProvider<CallScreenState> {
|
||||
override val values: Sequence<CallScreenState>
|
||||
get() = sequenceOf(
|
||||
aCallScreenState(),
|
||||
+1
-1
@@ -266,7 +266,7 @@ private fun WebView.dispatchEscKeyEvent() {
|
||||
@PreviewsDayNight
|
||||
@Composable
|
||||
internal fun CallScreenViewPreview(
|
||||
@PreviewParameter(CallScreenStateProvider::class) state: CallScreenState,
|
||||
@PreviewParameter(CallScreenStatePreviewParam::class) state: CallScreenState,
|
||||
) = ElementPreview {
|
||||
CallScreenView(
|
||||
state = state,
|
||||
|
||||
+4
-1
@@ -202,7 +202,9 @@ class ElementCallActivity :
|
||||
}
|
||||
DisposableEffect(Unit) {
|
||||
val onPictureInPictureModeChangedListener = Consumer { _: PictureInPictureModeChangedInfo ->
|
||||
setPipParams()
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
|
||||
setPipParams()
|
||||
}
|
||||
pipEventSink(PictureInPictureEvent.OnPictureInPictureModeChanged(isInPictureInPictureMode))
|
||||
if (!isInPictureInPictureMode && !lifecycle.currentState.isAtLeast(Lifecycle.State.STARTED)) {
|
||||
Timber.tag(loggerTag.value).d("Exiting PiP mode: Hangup the call")
|
||||
@@ -300,6 +302,7 @@ class ElementCallActivity :
|
||||
}
|
||||
}
|
||||
|
||||
@RequiresApi(Build.VERSION_CODES.O)
|
||||
override fun setPipOrientation(orientation: Int?) {
|
||||
currentPipOrientation = orientation
|
||||
setPictureInPictureParams(getPictureInPictureParams())
|
||||
|
||||
+1
-1
@@ -161,7 +161,7 @@ private fun ActionButton(
|
||||
@PreviewsDayNight
|
||||
@Composable
|
||||
internal fun IncomingCallScreenPreview(
|
||||
@PreviewParameter(CallNotificationDataProvider::class) state: CallNotificationData,
|
||||
@PreviewParameter(CallNotificationDataPreviewParam::class) state: CallNotificationData,
|
||||
) = ElementPreview {
|
||||
IncomingCallScreen(
|
||||
notificationData = state,
|
||||
|
||||
+1
-1
@@ -21,7 +21,7 @@ import kotlinx.coroutines.CoroutineScope
|
||||
|
||||
@BindingContainer
|
||||
@ContributesTo(RoomScope::class)
|
||||
object ContentScannerModule {
|
||||
object ContentScannerBindingContainer {
|
||||
@Provides
|
||||
@SingleIn(RoomScope::class)
|
||||
fun providesContentScannerService(
|
||||
+5
-5
@@ -15,16 +15,16 @@ import io.element.android.tests.testutils.testCoroutineDispatchers
|
||||
import kotlinx.coroutines.test.runTest
|
||||
import org.junit.Test
|
||||
|
||||
class ContentScannerModuleTest {
|
||||
class ContentScannerBindingContainerTest {
|
||||
@Test
|
||||
fun `ContentScannerModule provides NoopContentScannerService when ContentScanner is null`() = runTest {
|
||||
fun `ContentScannerBindingContainer provides NoopContentScannerService when ContentScanner is null`() = runTest {
|
||||
// Given
|
||||
val contentScanner: ContentScanner? = null
|
||||
val sessionCoroutineScope = backgroundScope
|
||||
val coroutineDispatchers = testCoroutineDispatchers()
|
||||
|
||||
// When
|
||||
val contentScannerService = ContentScannerModule.providesContentScannerService(
|
||||
val contentScannerService = ContentScannerBindingContainer.providesContentScannerService(
|
||||
contentScanner = contentScanner,
|
||||
coroutineScope = sessionCoroutineScope,
|
||||
coroutineDispatchers = coroutineDispatchers,
|
||||
@@ -35,14 +35,14 @@ class ContentScannerModuleTest {
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `ContentScannerModule provides DefaultContentScannerService when ContentScanner is not null`() = runTest {
|
||||
fun `ContentScannerBindingContainer provides DefaultContentScannerService when ContentScanner is not null`() = runTest {
|
||||
// Given
|
||||
val contentScanner: ContentScanner? = FakeContentScanner()
|
||||
val sessionCoroutineScope = backgroundScope
|
||||
val coroutineDispatchers = testCoroutineDispatchers()
|
||||
|
||||
// When
|
||||
val contentScannerService = ContentScannerModule.providesContentScannerService(
|
||||
val contentScannerService = ContentScannerBindingContainer.providesContentScannerService(
|
||||
contentScanner = contentScanner,
|
||||
coroutineScope = sessionCoroutineScope,
|
||||
coroutineDispatchers = coroutineDispatchers,
|
||||
+2
-2
@@ -23,7 +23,7 @@ import androidx.compose.ui.unit.dp
|
||||
import io.element.android.features.createroom.impl.R
|
||||
import io.element.android.features.invitepeople.api.InvitePeopleEvents
|
||||
import io.element.android.features.invitepeople.api.InvitePeopleState
|
||||
import io.element.android.features.invitepeople.api.InvitePeopleStateProvider
|
||||
import io.element.android.features.invitepeople.api.InvitePeopleStatePreviewParam
|
||||
import io.element.android.libraries.designsystem.atomic.pages.HeaderFooterPage
|
||||
import io.element.android.libraries.designsystem.preview.ElementPreview
|
||||
import io.element.android.libraries.designsystem.preview.PreviewsDayNight
|
||||
@@ -86,7 +86,7 @@ private fun AddPeopleTopBar(
|
||||
|
||||
@PreviewsDayNight
|
||||
@Composable
|
||||
internal fun AddPeopleViewPreview(@PreviewParameter(InvitePeopleStateProvider::class) state: InvitePeopleState) = ElementPreview {
|
||||
internal fun AddPeopleViewPreview(@PreviewParameter(InvitePeopleStatePreviewParam::class) state: InvitePeopleState) = ElementPreview {
|
||||
AddPeopleView(
|
||||
state = state,
|
||||
invitePeopleView = {},
|
||||
|
||||
+1
-1
@@ -21,7 +21,7 @@ import io.element.android.libraries.permissions.api.aPermissionsState
|
||||
import io.element.android.libraries.previewutils.room.aSpaceRoom
|
||||
import kotlinx.collections.immutable.toImmutableList
|
||||
|
||||
open class ConfigureRoomStateProvider : PreviewParameterProvider<ConfigureRoomState> {
|
||||
open class ConfigureRoomStatePreviewParam : PreviewParameterProvider<ConfigureRoomState> {
|
||||
override val values: Sequence<ConfigureRoomState>
|
||||
get() = sequenceOf(
|
||||
aConfigureRoomState(),
|
||||
+2
-2
@@ -349,12 +349,12 @@ private fun RoomJoinRuleOptions(
|
||||
|
||||
@PreviewWithLargeHeight
|
||||
@Composable
|
||||
internal fun ConfigureRoomViewLightPreview(@PreviewParameter(ConfigureRoomStateProvider::class) state: ConfigureRoomState) =
|
||||
internal fun ConfigureRoomViewLightPreview(@PreviewParameter(ConfigureRoomStatePreviewParam::class) state: ConfigureRoomState) =
|
||||
ElementPreviewLight { ContentToPreview(state) }
|
||||
|
||||
@PreviewWithLargeHeight
|
||||
@Composable
|
||||
internal fun ConfigureRoomViewDarkPreview(@PreviewParameter(ConfigureRoomStateProvider::class) state: ConfigureRoomState) =
|
||||
internal fun ConfigureRoomViewDarkPreview(@PreviewParameter(ConfigureRoomStatePreviewParam::class) state: ConfigureRoomState) =
|
||||
ElementPreviewDark { ContentToPreview(state) }
|
||||
|
||||
@ExcludeFromCoverage
|
||||
|
||||
+1
-1
@@ -11,7 +11,7 @@ package io.element.android.features.logout.impl
|
||||
import androidx.compose.ui.tooling.preview.PreviewParameterProvider
|
||||
import io.element.android.libraries.architecture.AsyncAction
|
||||
|
||||
open class AccountDeactivationStateProvider : PreviewParameterProvider<AccountDeactivationState> {
|
||||
open class AccountDeactivationStatePreviewParam : PreviewParameterProvider<AccountDeactivationState> {
|
||||
private val filledForm = aDeactivateFormState(eraseData = true, password = "password")
|
||||
override val values: Sequence<AccountDeactivationState>
|
||||
get() = sequenceOf(
|
||||
+1
-1
@@ -308,7 +308,7 @@ private fun String.sanitize(): String {
|
||||
@PreviewsDayNight
|
||||
@Composable
|
||||
internal fun AccountDeactivationViewPreview(
|
||||
@PreviewParameter(AccountDeactivationStateProvider::class) state: AccountDeactivationState,
|
||||
@PreviewParameter(AccountDeactivationStatePreviewParam::class) state: AccountDeactivationState,
|
||||
) = ElementPreview {
|
||||
AccountDeactivationView(
|
||||
state,
|
||||
|
||||
+1
-1
@@ -12,7 +12,7 @@ import androidx.compose.ui.tooling.preview.PreviewParameterProvider
|
||||
import io.element.android.libraries.architecture.AsyncAction
|
||||
import io.element.android.libraries.matrix.api.core.RoomId
|
||||
|
||||
open class ForwardMessagesStateProvider : PreviewParameterProvider<ForwardMessagesState> {
|
||||
open class ForwardMessagesStatePreviewParam : PreviewParameterProvider<ForwardMessagesState> {
|
||||
override val values: Sequence<ForwardMessagesState>
|
||||
get() = sequenceOf(
|
||||
aForwardMessagesState(),
|
||||
+1
-1
@@ -38,7 +38,7 @@ fun ForwardMessagesView(
|
||||
|
||||
@PreviewsDayNight
|
||||
@Composable
|
||||
internal fun ForwardMessagesViewPreview(@PreviewParameter(ForwardMessagesStateProvider::class) state: ForwardMessagesState) = ElementPreview {
|
||||
internal fun ForwardMessagesViewPreview(@PreviewParameter(ForwardMessagesStatePreviewParam::class) state: ForwardMessagesState) = ElementPreview {
|
||||
ForwardMessagesView(
|
||||
state = state,
|
||||
onForwardSuccess = {}
|
||||
|
||||
+2
-2
@@ -18,7 +18,7 @@ import io.element.android.libraries.di.SessionScope
|
||||
|
||||
@ContributesTo(SessionScope::class)
|
||||
@BindingContainer
|
||||
interface FtueModule {
|
||||
interface FtueBindingContainer {
|
||||
@Binds
|
||||
fun bindChooseSelfVerificationMethodPresenter(presenter: ChooseSelfVerificationModePresenter): Presenter<ChooseSelfVerificationModeState>
|
||||
fun bindChooseSelfVerificationModePresenter(presenter: ChooseSelfVerificationModePresenter): Presenter<ChooseSelfVerificationModeState>
|
||||
}
|
||||
+1
-1
@@ -11,7 +11,7 @@ package io.element.android.features.ftue.impl.notifications
|
||||
import androidx.compose.ui.tooling.preview.PreviewParameterProvider
|
||||
import io.element.android.libraries.permissions.api.aPermissionsState
|
||||
|
||||
open class NotificationsOptInStateProvider : PreviewParameterProvider<NotificationsOptInState> {
|
||||
open class NotificationsOptInStatePreviewParam : PreviewParameterProvider<NotificationsOptInState> {
|
||||
override val values: Sequence<NotificationsOptInState>
|
||||
get() = sequenceOf(
|
||||
aNotificationsOptInState(),
|
||||
+1
-1
@@ -178,7 +178,7 @@ private fun NotificationRow(
|
||||
@PreviewsDayNight
|
||||
@Composable
|
||||
internal fun NotificationsOptInViewPreview(
|
||||
@PreviewParameter(NotificationsOptInStateProvider::class) state: NotificationsOptInState
|
||||
@PreviewParameter(NotificationsOptInStatePreviewParam::class) state: NotificationsOptInState
|
||||
) {
|
||||
ElementPreview {
|
||||
NotificationsOptInView(
|
||||
|
||||
+1
-1
@@ -12,7 +12,7 @@ import androidx.compose.ui.tooling.preview.PreviewParameterProvider
|
||||
import io.element.android.features.logout.api.direct.aDirectLogoutState
|
||||
import io.element.android.libraries.architecture.AsyncData
|
||||
|
||||
class ChooseSelfVerificationModeStateProvider :
|
||||
class ChooseSelfVerificationModeStatePreviewParam :
|
||||
PreviewParameterProvider<ChooseSelfVerificationModeState> {
|
||||
override val values = sequenceOf(
|
||||
aChooseSelfVerificationModeState(
|
||||
+1
-1
@@ -149,7 +149,7 @@ private fun ChooseSelfVerificationModeButtons(
|
||||
@PreviewsDayNight
|
||||
@Composable
|
||||
internal fun ChooseSelfVerificationModeViewPreview(
|
||||
@PreviewParameter(ChooseSelfVerificationModeStateProvider::class) state: ChooseSelfVerificationModeState
|
||||
@PreviewParameter(ChooseSelfVerificationModeStatePreviewParam::class) state: ChooseSelfVerificationModeState
|
||||
) = ElementPreview {
|
||||
ChooseSelfVerificationModeView(
|
||||
state = state,
|
||||
|
||||
+3
-3
@@ -10,7 +10,7 @@ package io.element.android.features.home.impl
|
||||
|
||||
import androidx.compose.ui.tooling.preview.PreviewParameterProvider
|
||||
import io.element.android.features.home.impl.roomlist.RoomListState
|
||||
import io.element.android.features.home.impl.roomlist.RoomListStateProvider
|
||||
import io.element.android.features.home.impl.roomlist.RoomListStatePreviewParam
|
||||
import io.element.android.features.home.impl.roomlist.aRoomListState
|
||||
import io.element.android.features.home.impl.roomlist.aRoomsContentState
|
||||
import io.element.android.features.home.impl.roomlist.generateRoomListRoomSummaryList
|
||||
@@ -24,7 +24,7 @@ import io.element.android.libraries.matrix.api.user.MatrixUser
|
||||
import io.element.android.libraries.ui.strings.CommonStrings
|
||||
import kotlinx.collections.immutable.toImmutableList
|
||||
|
||||
open class HomeStateProvider : PreviewParameterProvider<HomeState> {
|
||||
open class HomeStatePreviewParam : PreviewParameterProvider<HomeState> {
|
||||
override val values: Sequence<HomeState>
|
||||
get() = sequenceOf(
|
||||
aHomeState(),
|
||||
@@ -43,7 +43,7 @@ open class HomeStateProvider : PreviewParameterProvider<HomeState> {
|
||||
aHomeState(
|
||||
currentHomeNavigationBarItem = HomeNavigationBarItem.Spaces,
|
||||
),
|
||||
) + RoomListStateProvider().values.map {
|
||||
) + RoomListStatePreviewParam().values.map {
|
||||
aHomeState(roomListState = it)
|
||||
} + aHomeState(
|
||||
currentHomeNavigationBarItem = HomeNavigationBarItem.Spaces,
|
||||
+1
-1
@@ -371,7 +371,7 @@ internal fun RoomListRoomSummary.contentType() = displayType.ordinal
|
||||
|
||||
@PreviewsDayNight
|
||||
@Composable
|
||||
internal fun HomeViewPreview(@PreviewParameter(HomeStateProvider::class) state: HomeState) = ElementPreview {
|
||||
internal fun HomeViewPreview(@PreviewParameter(HomeStatePreviewParam::class) state: HomeState) = ElementPreview {
|
||||
HomeView(
|
||||
homeState = state,
|
||||
onRoomClick = { _, _ -> },
|
||||
|
||||
+2
-2
@@ -42,7 +42,7 @@ import io.element.android.features.home.impl.filters.selection.FilterSelectionSt
|
||||
import io.element.android.features.home.impl.model.RoomListRoomSummary
|
||||
import io.element.android.features.home.impl.model.RoomSummaryDisplayType
|
||||
import io.element.android.features.home.impl.roomlist.RoomListContentState
|
||||
import io.element.android.features.home.impl.roomlist.RoomListContentStateProvider
|
||||
import io.element.android.features.home.impl.roomlist.RoomListContentStatePreviewParam
|
||||
import io.element.android.features.home.impl.roomlist.RoomListEvent
|
||||
import io.element.android.features.home.impl.roomlist.SecurityBannerState
|
||||
import io.element.android.features.home.impl.spacefilters.SpaceFiltersState
|
||||
@@ -336,7 +336,7 @@ private fun EmptyScaffold(
|
||||
|
||||
@PreviewsDayNight
|
||||
@Composable
|
||||
internal fun RoomListContentViewPreview(@PreviewParameter(RoomListContentStateProvider::class) state: RoomListContentState) = ElementPreview {
|
||||
internal fun RoomListContentViewPreview(@PreviewParameter(RoomListContentStatePreviewParam::class) state: RoomListContentState) = ElementPreview {
|
||||
RoomListContentView(
|
||||
contentState = state,
|
||||
filtersState = aRoomListFiltersState(
|
||||
|
||||
+2
-2
@@ -43,7 +43,7 @@ import io.element.android.compound.tokens.generated.CompoundIcons
|
||||
import io.element.android.features.home.impl.R
|
||||
import io.element.android.features.home.impl.model.LatestEvent
|
||||
import io.element.android.features.home.impl.model.RoomListRoomSummary
|
||||
import io.element.android.features.home.impl.model.RoomListRoomSummaryProvider
|
||||
import io.element.android.features.home.impl.model.RoomListRoomSummaryPreviewParam
|
||||
import io.element.android.features.home.impl.model.RoomSummaryDisplayType
|
||||
import io.element.android.features.home.impl.roomlist.RoomListEvent
|
||||
import io.element.android.libraries.core.extensions.orEmpty
|
||||
@@ -449,7 +449,7 @@ private fun MentionIndicatorAtom() {
|
||||
|
||||
@PreviewsDayNight
|
||||
@Composable
|
||||
internal fun RoomSummaryRowPreview(@PreviewParameter(RoomListRoomSummaryProvider::class) data: RoomListRoomSummary) = ElementPreview {
|
||||
internal fun RoomSummaryRowPreview(@PreviewParameter(RoomListRoomSummaryPreviewParam::class) data: RoomListRoomSummary) = ElementPreview {
|
||||
RoomSummaryRow(
|
||||
room = data,
|
||||
hideInviteAvatars = false,
|
||||
|
||||
+1
-1
@@ -18,7 +18,7 @@ import io.element.android.libraries.di.SessionScope
|
||||
|
||||
@BindingContainer
|
||||
@ContributesTo(SessionScope::class)
|
||||
interface HomeSpacesModule {
|
||||
interface HomeSpacesBindingContainer {
|
||||
@Binds
|
||||
fun bindHomeSpacesPresenter(presenter: HomeSpacesPresenter): Presenter<HomeSpacesState>
|
||||
}
|
||||
+3
-3
@@ -26,15 +26,15 @@ import io.element.android.libraries.di.SessionScope
|
||||
|
||||
@ContributesTo(SessionScope::class)
|
||||
@BindingContainer
|
||||
interface RoomListModule {
|
||||
interface RoomListBindingContainer {
|
||||
@Binds
|
||||
fun bindRoomListPresenter(presenter: RoomListPresenter): Presenter<RoomListState>
|
||||
|
||||
@Binds
|
||||
fun bindSearchPresenter(presenter: RoomListSearchPresenter): Presenter<RoomListSearchState>
|
||||
fun bindRoomListSearchPresenter(presenter: RoomListSearchPresenter): Presenter<RoomListSearchState>
|
||||
|
||||
@Binds
|
||||
fun bindFiltersPresenter(presenter: RoomListFiltersPresenter): Presenter<RoomListFiltersState>
|
||||
fun bindRoomListFiltersPresenter(presenter: RoomListFiltersPresenter): Presenter<RoomListFiltersState>
|
||||
|
||||
@Binds
|
||||
fun bindSpaceFiltersPresenter(presenter: SpaceFiltersPresenter): Presenter<SpaceFiltersState>
|
||||
+1
-1
@@ -12,7 +12,7 @@ import androidx.compose.ui.tooling.preview.PreviewParameterProvider
|
||||
import io.element.android.features.home.impl.filters.selection.FilterSelectionState
|
||||
import kotlinx.collections.immutable.toImmutableList
|
||||
|
||||
class RoomListFiltersStateProvider : PreviewParameterProvider<RoomListFiltersState> {
|
||||
class RoomListFiltersStatePreviewParam : PreviewParameterProvider<RoomListFiltersState> {
|
||||
override val values: Sequence<RoomListFiltersState>
|
||||
get() = sequenceOf(
|
||||
aRoomListFiltersState(),
|
||||
+1
-1
@@ -212,7 +212,7 @@ private fun RoomListFilterView(
|
||||
|
||||
@PreviewsDayNight
|
||||
@Composable
|
||||
internal fun RoomListFiltersViewPreview(@PreviewParameter(RoomListFiltersStateProvider::class) state: RoomListFiltersState) = ElementPreview {
|
||||
internal fun RoomListFiltersViewPreview(@PreviewParameter(RoomListFiltersStatePreviewParam::class) state: RoomListFiltersState) = ElementPreview {
|
||||
RoomListFiltersView(
|
||||
modifier = Modifier.padding(vertical = 4.dp),
|
||||
state = state,
|
||||
|
||||
+1
-1
@@ -24,7 +24,7 @@ import io.element.android.libraries.matrix.api.user.DisplayedStatus
|
||||
import io.element.android.libraries.matrix.ui.model.InviteSender
|
||||
import kotlinx.collections.immutable.toImmutableList
|
||||
|
||||
open class RoomListRoomSummaryProvider : PreviewParameterProvider<RoomListRoomSummary> {
|
||||
open class RoomListRoomSummaryPreviewParam : PreviewParameterProvider<RoomListRoomSummary> {
|
||||
override val values: Sequence<RoomListRoomSummary>
|
||||
get() = sequenceOf(
|
||||
listOf(
|
||||
+1
-1
@@ -19,7 +19,7 @@ import kotlinx.collections.immutable.ImmutableList
|
||||
import kotlinx.collections.immutable.persistentListOf
|
||||
import kotlinx.collections.immutable.toImmutableSet
|
||||
|
||||
open class RoomListContentStateProvider : PreviewParameterProvider<RoomListContentState> {
|
||||
open class RoomListContentStatePreviewParam : PreviewParameterProvider<RoomListContentState> {
|
||||
override val values: Sequence<RoomListContentState>
|
||||
get() = sequenceOf(
|
||||
aRoomsContentState(),
|
||||
+1
-1
@@ -199,7 +199,7 @@ private fun RoomListModalBottomSheetContent(
|
||||
@PreviewsDayNight
|
||||
@Composable
|
||||
internal fun RoomListContextMenuPreview(
|
||||
@PreviewParameter(RoomListStateContextMenuShownProvider::class) contextMenu: RoomListState.ContextMenu.Shown
|
||||
@PreviewParameter(RoomListStateContextMenuShownPreviewParam::class) contextMenu: RoomListState.ContextMenu.Shown
|
||||
) = ElementPreview(fillMaxSize = true) {
|
||||
RoomListContextMenu(
|
||||
contextMenu = contextMenu,
|
||||
|
||||
+1
-1
@@ -126,7 +126,7 @@ private fun RoomListDeclineInviteMenuContent(
|
||||
@PreviewsDayNight
|
||||
@Composable
|
||||
internal fun RoomListDeclineInviteMenuPreview(
|
||||
@PreviewParameter(RoomListStateDeclineInviteMenuShownProvider::class) menu: RoomListState.DeclineInviteMenu.Shown,
|
||||
@PreviewParameter(RoomListStateDeclineInviteMenuShownPreviewParam::class) menu: RoomListState.DeclineInviteMenu.Shown,
|
||||
) = ElementPreview {
|
||||
RoomListDeclineInviteMenu(
|
||||
menu = menu,
|
||||
|
||||
+1
-1
@@ -11,7 +11,7 @@ package io.element.android.features.home.impl.roomlist
|
||||
import androidx.compose.ui.tooling.preview.PreviewParameterProvider
|
||||
import io.element.android.libraries.matrix.api.core.RoomId
|
||||
|
||||
open class RoomListStateContextMenuShownProvider : PreviewParameterProvider<RoomListState.ContextMenu.Shown> {
|
||||
open class RoomListStateContextMenuShownPreviewParam : PreviewParameterProvider<RoomListState.ContextMenu.Shown> {
|
||||
override val values: Sequence<RoomListState.ContextMenu.Shown>
|
||||
get() = sequenceOf(
|
||||
aContextMenuShown(hasNewContent = true),
|
||||
+1
-1
@@ -12,7 +12,7 @@ import androidx.compose.ui.tooling.preview.datasource.LoremIpsum
|
||||
import io.element.android.features.home.impl.model.RoomListRoomSummary
|
||||
import io.element.android.features.home.impl.model.aRoomListRoomSummary
|
||||
|
||||
open class RoomListStateDeclineInviteMenuShownProvider : PreviewParameterProvider<RoomListState.DeclineInviteMenu.Shown> {
|
||||
open class RoomListStateDeclineInviteMenuShownPreviewParam : PreviewParameterProvider<RoomListState.DeclineInviteMenu.Shown> {
|
||||
override val values: Sequence<RoomListState.DeclineInviteMenu.Shown>
|
||||
get() = sequenceOf(
|
||||
aDeclineInviteMenuShown(),
|
||||
+1
-1
@@ -33,7 +33,7 @@ import kotlinx.collections.immutable.ImmutableList
|
||||
import kotlinx.collections.immutable.persistentListOf
|
||||
import kotlinx.collections.immutable.toImmutableList
|
||||
|
||||
open class RoomListStateProvider : PreviewParameterProvider<RoomListState> {
|
||||
open class RoomListStatePreviewParam : PreviewParameterProvider<RoomListState> {
|
||||
override val values: Sequence<RoomListState>
|
||||
get() = sequenceOf(
|
||||
aRoomListState(),
|
||||
+1
-1
@@ -41,7 +41,7 @@ import kotlinx.collections.immutable.persistentMapOf
|
||||
import kotlinx.collections.immutable.toImmutableList
|
||||
import kotlinx.collections.immutable.toPersistentList
|
||||
|
||||
class GlobalSearchStateProvider : PreviewParameterProvider<GlobalSearchState> {
|
||||
class GlobalSearchStatePreviewParam : PreviewParameterProvider<GlobalSearchState> {
|
||||
override val values: Sequence<GlobalSearchState>
|
||||
get() = sequenceOf(
|
||||
// Not enabled, no preview
|
||||
+1
-1
@@ -553,7 +553,7 @@ private fun Modifier.addSeparatorLine(color: Color, isLastItem: Boolean): Modifi
|
||||
@PreviewsDayNight
|
||||
@Composable
|
||||
internal fun GlobalSearchViewPreview(
|
||||
@PreviewParameter(GlobalSearchStateProvider::class) state: GlobalSearchState,
|
||||
@PreviewParameter(GlobalSearchStatePreviewParam::class) state: GlobalSearchState,
|
||||
) {
|
||||
ElementPreview {
|
||||
GlobalSearchView(
|
||||
|
||||
+1
-1
@@ -15,7 +15,7 @@ import io.element.android.features.home.impl.roomlist.aRoomListRoomSummaryList
|
||||
import kotlinx.collections.immutable.ImmutableList
|
||||
import kotlinx.collections.immutable.persistentListOf
|
||||
|
||||
class RoomListSearchStateProvider : PreviewParameterProvider<RoomListSearchState> {
|
||||
class RoomListSearchStatePreviewParam : PreviewParameterProvider<RoomListSearchState> {
|
||||
override val values: Sequence<RoomListSearchState>
|
||||
get() = sequenceOf(
|
||||
aRoomListSearchState(),
|
||||
+1
-1
@@ -196,7 +196,7 @@ private fun RoomListSearchContent(
|
||||
|
||||
@PreviewsDayNight
|
||||
@Composable
|
||||
internal fun RoomListSearchContentPreview(@PreviewParameter(RoomListSearchStateProvider::class) state: RoomListSearchState) = ElementPreview {
|
||||
internal fun RoomListSearchContentPreview(@PreviewParameter(RoomListSearchStatePreviewParam::class) state: RoomListSearchState) = ElementPreview {
|
||||
RoomListSearchContent(
|
||||
state = state,
|
||||
hideInvitesAvatars = false,
|
||||
|
||||
+1
-1
@@ -15,7 +15,7 @@ import io.element.android.libraries.matrix.api.spaces.SpaceServiceFilter
|
||||
import io.element.android.libraries.previewutils.room.aSpaceRoom
|
||||
import kotlinx.collections.immutable.toImmutableList
|
||||
|
||||
class SpaceFiltersStateProvider : PreviewParameterProvider<SpaceFiltersState> {
|
||||
class SpaceFiltersStatePreviewParam : PreviewParameterProvider<SpaceFiltersState> {
|
||||
override val values: Sequence<SpaceFiltersState>
|
||||
get() = sequenceOf(
|
||||
aSelectingSpaceFiltersState(),
|
||||
+1
-1
@@ -189,6 +189,6 @@ private fun SpaceFilterItem(
|
||||
|
||||
@PreviewsDayNight
|
||||
@Composable
|
||||
internal fun SpaceFiltersViewPreview(@PreviewParameter(SpaceFiltersStateProvider::class) state: SpaceFiltersState) = ElementPreview(fillMaxSize = true) {
|
||||
internal fun SpaceFiltersViewPreview(@PreviewParameter(SpaceFiltersStatePreviewParam::class) state: SpaceFiltersState) = ElementPreview(fillMaxSize = true) {
|
||||
SpaceFiltersView(state = state)
|
||||
}
|
||||
|
||||
+2
-2
@@ -15,11 +15,11 @@ import io.element.android.libraries.previewutils.room.aSpaceRoom
|
||||
import kotlinx.collections.immutable.toImmutableList
|
||||
import kotlinx.collections.immutable.toImmutableSet
|
||||
|
||||
open class HomeSpacesStateProvider : PreviewParameterProvider<HomeSpacesState> {
|
||||
open class HomeSpacesStatePreviewParam : PreviewParameterProvider<HomeSpacesState> {
|
||||
override val values: Sequence<HomeSpacesState>
|
||||
get() = sequenceOf(
|
||||
aHomeSpacesState(
|
||||
spaceRooms = SpaceRoomProvider().values.toList(),
|
||||
spaceRooms = SpaceRoomPreviewParam().values.toList(),
|
||||
seenSpaceInvites = setOf(
|
||||
RoomId("!spaceId3:example.com"),
|
||||
),
|
||||
+1
-1
@@ -171,7 +171,7 @@ private fun EmptySpaceHomeView(
|
||||
@PreviewsDayNight
|
||||
@Composable
|
||||
internal fun HomeSpacesViewPreview(
|
||||
@PreviewParameter(HomeSpacesStateProvider::class) state: HomeSpacesState,
|
||||
@PreviewParameter(HomeSpacesStatePreviewParam::class) state: HomeSpacesState,
|
||||
) = ElementPreview {
|
||||
HomeSpacesView(
|
||||
state = state,
|
||||
|
||||
+1
-1
@@ -14,7 +14,7 @@ import io.element.android.libraries.matrix.api.room.CurrentUserMembership
|
||||
import io.element.android.libraries.matrix.api.spaces.SpaceRoom
|
||||
import io.element.android.libraries.previewutils.room.aSpaceRoom
|
||||
|
||||
class SpaceRoomProvider : PreviewParameterProvider<SpaceRoom> {
|
||||
class SpaceRoomPreviewParam : PreviewParameterProvider<SpaceRoom> {
|
||||
override val values: Sequence<SpaceRoom> = sequenceOf(
|
||||
aSpaceRoom(),
|
||||
aSpaceRoom(
|
||||
+3
@@ -5,6 +5,8 @@
|
||||
* Please see LICENSE files in the repository root for full details.
|
||||
*/
|
||||
|
||||
@file:OptIn(ExperimentalCoroutinesApi::class)
|
||||
|
||||
package io.element.android.features.home.impl.search
|
||||
|
||||
import com.google.common.truth.Truth.assertThat
|
||||
@@ -35,6 +37,7 @@ import io.element.android.tests.testutils.test
|
||||
import io.element.android.tests.testutils.testCoroutineDispatchers
|
||||
import kotlinx.collections.immutable.persistentListOf
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
import kotlinx.coroutines.ExperimentalCoroutinesApi
|
||||
import kotlinx.coroutines.flow.flowOf
|
||||
import kotlinx.coroutines.test.TestScope
|
||||
import kotlinx.coroutines.test.runCurrent
|
||||
|
||||
+1
-1
@@ -18,7 +18,7 @@ import io.element.android.libraries.architecture.AsyncAction
|
||||
import io.element.android.libraries.designsystem.preview.ROOM_NAME
|
||||
import io.element.android.libraries.matrix.api.core.RoomId
|
||||
|
||||
open class AcceptDeclineInviteStateProvider : PreviewParameterProvider<AcceptDeclineInviteState> {
|
||||
open class AcceptDeclineInviteStatePreviewParam : PreviewParameterProvider<AcceptDeclineInviteState> {
|
||||
override val values: Sequence<AcceptDeclineInviteState>
|
||||
get() = sequenceOf(
|
||||
anAcceptDeclineInviteState(),
|
||||
+1
-1
@@ -123,7 +123,7 @@ private fun DeclineConfirmationDialog(
|
||||
|
||||
@PreviewsDayNight
|
||||
@Composable
|
||||
internal fun AcceptDeclineInviteViewPreview(@PreviewParameter(AcceptDeclineInviteStateProvider::class) state: AcceptDeclineInviteState) =
|
||||
internal fun AcceptDeclineInviteViewPreview(@PreviewParameter(AcceptDeclineInviteStatePreviewParam::class) state: AcceptDeclineInviteState) =
|
||||
ElementPreview {
|
||||
AcceptDeclineInviteView(
|
||||
state = state,
|
||||
|
||||
+1
-1
@@ -11,7 +11,7 @@ package io.element.android.features.invite.impl.declineandblock
|
||||
import androidx.compose.ui.tooling.preview.PreviewParameterProvider
|
||||
import io.element.android.libraries.architecture.AsyncAction
|
||||
|
||||
open class DeclineAndBlockStateProvider : PreviewParameterProvider<DeclineAndBlockState> {
|
||||
open class DeclineAndBlockStatePreviewParam : PreviewParameterProvider<DeclineAndBlockState> {
|
||||
override val values: Sequence<DeclineAndBlockState>
|
||||
get() = sequenceOf(
|
||||
aDeclineAndBlockState(),
|
||||
+1
-1
@@ -145,7 +145,7 @@ fun DeclineAndBlockView(
|
||||
@PreviewsDayNight
|
||||
@Composable
|
||||
internal fun DeclineAndBlockViewPreview(
|
||||
@PreviewParameter(DeclineAndBlockStateProvider::class) state: DeclineAndBlockState
|
||||
@PreviewParameter(DeclineAndBlockStatePreviewParam::class) state: DeclineAndBlockState
|
||||
) = ElementPreview {
|
||||
DeclineAndBlockView(
|
||||
state = state,
|
||||
|
||||
+2
-2
@@ -22,9 +22,9 @@ import io.element.android.libraries.matrix.api.MatrixClient
|
||||
|
||||
@ContributesTo(SessionScope::class)
|
||||
@BindingContainer
|
||||
interface InviteModule {
|
||||
interface InviteBindingContainer {
|
||||
@Binds
|
||||
fun bindAcceptDeclinePresenter(presenter: AcceptDeclineInvitePresenter): Presenter<AcceptDeclineInviteState>
|
||||
fun bindAcceptDeclineInvitePresenter(presenter: AcceptDeclineInvitePresenter): Presenter<AcceptDeclineInviteState>
|
||||
|
||||
companion object {
|
||||
@Provides
|
||||
+1
-1
@@ -12,7 +12,7 @@ import androidx.compose.ui.tooling.preview.PreviewParameterProvider
|
||||
import io.element.android.libraries.architecture.AsyncAction
|
||||
import io.element.android.libraries.matrix.api.core.RoomId
|
||||
|
||||
class InvitePeopleStateProvider : PreviewParameterProvider<InvitePeopleState> {
|
||||
class InvitePeopleStatePreviewParam : PreviewParameterProvider<InvitePeopleState> {
|
||||
override val values: Sequence<InvitePeopleState>
|
||||
get() = sequenceOf(
|
||||
aPreviewInvitePeopleState(),
|
||||
+1
-1
@@ -26,7 +26,7 @@ import kotlinx.collections.immutable.ImmutableList
|
||||
import kotlinx.collections.immutable.persistentListOf
|
||||
import kotlinx.collections.immutable.toImmutableList
|
||||
|
||||
internal class DefaultInvitePeopleStateProvider : PreviewParameterProvider<DefaultInvitePeopleState> {
|
||||
internal class DefaultInvitePeopleStatePreviewParam : PreviewParameterProvider<DefaultInvitePeopleState> {
|
||||
override val values: Sequence<DefaultInvitePeopleState>
|
||||
get() = sequenceOf(
|
||||
aDefaultInvitePeopleState(),
|
||||
+1
-1
@@ -316,7 +316,7 @@ private fun InvitePeopleConfirmModal(
|
||||
|
||||
@PreviewsDayNight
|
||||
@Composable
|
||||
internal fun InvitePeopleViewPreview(@PreviewParameter(DefaultInvitePeopleStateProvider::class) state: DefaultInvitePeopleState) =
|
||||
internal fun InvitePeopleViewPreview(@PreviewParameter(DefaultInvitePeopleStatePreviewParam::class) state: DefaultInvitePeopleState) =
|
||||
ElementPreview {
|
||||
InvitePeopleView(state = state)
|
||||
}
|
||||
|
||||
+1
-1
@@ -30,7 +30,7 @@ import io.element.android.libraries.matrix.api.user.MatrixUser
|
||||
import io.element.android.libraries.matrix.ui.model.InviteSender
|
||||
import kotlinx.collections.immutable.toImmutableList
|
||||
|
||||
open class JoinRoomStateProvider : PreviewParameterProvider<JoinRoomState> {
|
||||
open class JoinRoomStatePreviewParam : PreviewParameterProvider<JoinRoomState> {
|
||||
override val values: Sequence<JoinRoomState>
|
||||
get() = sequenceOf(
|
||||
aJoinRoomState(
|
||||
+1
-1
@@ -642,7 +642,7 @@ private fun JoinRoomTopBar(
|
||||
|
||||
@PreviewsDayNight
|
||||
@Composable
|
||||
internal fun JoinRoomViewPreview(@PreviewParameter(JoinRoomStateProvider::class) state: JoinRoomState) = ElementPreview {
|
||||
internal fun JoinRoomViewPreview(@PreviewParameter(JoinRoomStatePreviewParam::class) state: JoinRoomState) = ElementPreview {
|
||||
JoinRoomView(
|
||||
state = state,
|
||||
onBackClick = { },
|
||||
|
||||
+1
-1
@@ -27,7 +27,7 @@ import java.util.Optional
|
||||
|
||||
@BindingContainer
|
||||
@ContributesTo(SessionScope::class)
|
||||
object JoinRoomModule {
|
||||
object JoinRoomBindingContainer {
|
||||
@Provides
|
||||
fun providesJoinRoomPresenterFactory(
|
||||
client: MatrixClient,
|
||||
+1
-1
@@ -16,7 +16,7 @@ import io.element.android.libraries.designsystem.preview.USER_NAME_BOB
|
||||
import io.element.android.libraries.designsystem.preview.USER_NAME_CHARLIE
|
||||
import kotlinx.collections.immutable.toImmutableList
|
||||
|
||||
class KnockRequestsBannerStateProvider : PreviewParameterProvider<KnockRequestsBannerState> {
|
||||
class KnockRequestsBannerStatePreviewParam : PreviewParameterProvider<KnockRequestsBannerState> {
|
||||
override val values: Sequence<KnockRequestsBannerState>
|
||||
get() = sequenceOf(
|
||||
aKnockRequestsBannerState(),
|
||||
+1
-1
@@ -227,7 +227,7 @@ private fun KnockRequestAvatarListView(
|
||||
|
||||
@Composable
|
||||
@PreviewsDayNight
|
||||
internal fun KnockRequestsBannerViewPreview(@PreviewParameter(KnockRequestsBannerStateProvider::class) state: KnockRequestsBannerState) = ElementPreview {
|
||||
internal fun KnockRequestsBannerViewPreview(@PreviewParameter(KnockRequestsBannerStatePreviewParam::class) state: KnockRequestsBannerState) = ElementPreview {
|
||||
KnockRequestsBannerView(
|
||||
state = state,
|
||||
onViewRequestsClick = {},
|
||||
|
||||
+4
-3
@@ -6,7 +6,7 @@
|
||||
* Please see LICENSE files in the repository root for full details.
|
||||
*/
|
||||
|
||||
package io.element.android.features.knockrequests.impl.data
|
||||
package io.element.android.features.knockrequests.impl.data.di
|
||||
|
||||
import dev.zacsweers.metro.BindingContainer
|
||||
import dev.zacsweers.metro.ContributesTo
|
||||
@@ -14,16 +14,17 @@ import dev.zacsweers.metro.Provides
|
||||
import dev.zacsweers.metro.SingleIn
|
||||
import io.element.android.features.knockrequests.api.KnockRequestPermissions
|
||||
import io.element.android.features.knockrequests.api.knockRequestPermissions
|
||||
import io.element.android.features.knockrequests.impl.data.KnockRequestsService
|
||||
import io.element.android.libraries.di.RoomScope
|
||||
import io.element.android.libraries.matrix.api.room.JoinedRoom
|
||||
import io.element.android.libraries.matrix.api.room.powerlevels.permissionsFlow
|
||||
|
||||
@BindingContainer
|
||||
@ContributesTo(RoomScope::class)
|
||||
object KnockRequestsModule {
|
||||
object KnockRequestsBindingContainer {
|
||||
@Provides
|
||||
@SingleIn(RoomScope::class)
|
||||
fun knockRequestsService(room: JoinedRoom): KnockRequestsService {
|
||||
fun providesKnockRequestsService(room: JoinedRoom): KnockRequestsService {
|
||||
return KnockRequestsService(
|
||||
knockRequestsFlow = room.knockRequestsFlow,
|
||||
permissionsFlow = room.permissionsFlow(KnockRequestPermissions.DEFAULT) { perms ->
|
||||
+1
-1
@@ -18,7 +18,7 @@ import io.element.android.libraries.matrix.api.core.UserId
|
||||
import kotlinx.collections.immutable.ImmutableList
|
||||
import kotlinx.collections.immutable.persistentListOf
|
||||
|
||||
open class KnockRequestsListStateProvider : PreviewParameterProvider<KnockRequestsListState> {
|
||||
open class KnockRequestsListStatePreviewParam : PreviewParameterProvider<KnockRequestsListState> {
|
||||
override val values: Sequence<KnockRequestsListState>
|
||||
get() = sequenceOf(
|
||||
aKnockRequestsListState(
|
||||
+1
-1
@@ -491,7 +491,7 @@ private fun KnockRequestsListTopBar(onBackClick: () -> Unit) {
|
||||
@PreviewsDayNight
|
||||
@Composable
|
||||
internal fun KnockRequestsListViewPreview(
|
||||
@PreviewParameter(KnockRequestsListStateProvider::class) state: KnockRequestsListState
|
||||
@PreviewParameter(KnockRequestsListStatePreviewParam::class) state: KnockRequestsListState
|
||||
) = ElementPreview {
|
||||
KnockRequestsListView(
|
||||
state = state,
|
||||
|
||||
+1
-1
@@ -13,7 +13,7 @@ import io.element.android.features.leaveroom.api.LeaveRoomEvent
|
||||
import io.element.android.libraries.architecture.AsyncAction
|
||||
import io.element.android.libraries.matrix.api.core.RoomId
|
||||
|
||||
class InternalLeaveRoomStateProvider : PreviewParameterProvider<InternalLeaveRoomState> {
|
||||
class InternalLeaveRoomStatePreviewParam : PreviewParameterProvider<InternalLeaveRoomState> {
|
||||
override val values: Sequence<InternalLeaveRoomState>
|
||||
get() = sequenceOf(
|
||||
aLeaveRoomState(),
|
||||
+1
-1
@@ -139,7 +139,7 @@ private fun LeaveRoomProgressDialog(modifier: Modifier = Modifier) {
|
||||
@PreviewsDayNight
|
||||
@Composable
|
||||
internal fun LeaveRoomViewPreview(
|
||||
@PreviewParameter(InternalLeaveRoomStateProvider::class) state: InternalLeaveRoomState
|
||||
@PreviewParameter(InternalLeaveRoomStatePreviewParam::class) state: InternalLeaveRoomState
|
||||
) = ElementPreview {
|
||||
Box(
|
||||
modifier = Modifier.size(300.dp, 300.dp),
|
||||
|
||||
+1
-1
@@ -18,7 +18,7 @@ import io.element.android.libraries.di.SessionScope
|
||||
|
||||
@ContributesTo(SessionScope::class)
|
||||
@BindingContainer
|
||||
interface LeaveRoomModule {
|
||||
interface LeaveRoomBindingContainer {
|
||||
@Binds
|
||||
fun bindLeaveRoomPresenter(presenter: LeaveRoomPresenter): Presenter<LeaveRoomState>
|
||||
}
|
||||
+1
-1
@@ -15,7 +15,7 @@ import io.element.android.libraries.architecture.AsyncData
|
||||
import kotlinx.collections.immutable.ImmutableList
|
||||
import kotlinx.collections.immutable.persistentListOf
|
||||
|
||||
open class DependencyLicensesListStateProvider : PreviewParameterProvider<DependencyLicensesListState> {
|
||||
open class DependencyLicensesListStatePreviewParam : PreviewParameterProvider<DependencyLicensesListState> {
|
||||
override val values: Sequence<DependencyLicensesListState>
|
||||
get() = sequenceOf(
|
||||
aDependencyLicensesListState(
|
||||
+1
-1
@@ -126,7 +126,7 @@ fun DependencyLicensesListView(
|
||||
@PreviewsDayNight
|
||||
@Composable
|
||||
internal fun DependencyLicensesListViewPreview(
|
||||
@PreviewParameter(DependencyLicensesListStateProvider::class) state: DependencyLicensesListState
|
||||
@PreviewParameter(DependencyLicensesListStatePreviewParam::class) state: DependencyLicensesListState
|
||||
) = ElementPreview {
|
||||
DependencyLicensesListView(
|
||||
state = state,
|
||||
|
||||
+1
-1
@@ -13,7 +13,7 @@ import androidx.compose.ui.tooling.preview.PreviewParameterProvider
|
||||
import io.element.android.libraries.permissions.api.PermissionsState
|
||||
import io.element.android.libraries.permissions.api.aPermissionsState
|
||||
|
||||
open class DesktopNoticeStateProvider : PreviewParameterProvider<DesktopNoticeState> {
|
||||
open class DesktopNoticeStatePreviewParam : PreviewParameterProvider<DesktopNoticeState> {
|
||||
override val values: Sequence<DesktopNoticeState>
|
||||
get() = sequenceOf(
|
||||
aDesktopNoticeState(),
|
||||
+1
-1
@@ -118,7 +118,7 @@ fun DesktopNoticeView(
|
||||
@PreviewsDayNight
|
||||
@Composable
|
||||
internal fun DesktopNoticeViewPreview(
|
||||
@PreviewParameter(DesktopNoticeStateProvider::class) state: DesktopNoticeState,
|
||||
@PreviewParameter(DesktopNoticeStatePreviewParam::class) state: DesktopNoticeState,
|
||||
) = ElementPreview {
|
||||
DesktopNoticeView(
|
||||
state = state,
|
||||
|
||||
+1
-1
@@ -9,7 +9,7 @@ package io.element.android.features.linknewdevice.impl.screens.error
|
||||
|
||||
import androidx.compose.ui.tooling.preview.PreviewParameterProvider
|
||||
|
||||
class ErrorScreenTypeProvider : PreviewParameterProvider<ErrorScreenType> {
|
||||
class ErrorScreenTypePreviewParam : PreviewParameterProvider<ErrorScreenType> {
|
||||
override val values: Sequence<ErrorScreenType> = sequenceOf(
|
||||
ErrorScreenType.Cancelled,
|
||||
ErrorScreenType.Declined,
|
||||
+1
-1
@@ -165,7 +165,7 @@ private fun ColumnScope.Buttons(
|
||||
|
||||
@PreviewsDayNight
|
||||
@Composable
|
||||
internal fun ErrorViewPreview(@PreviewParameter(ErrorScreenTypeProvider::class) errorScreenType: ErrorScreenType) {
|
||||
internal fun ErrorViewPreview(@PreviewParameter(ErrorScreenTypePreviewParam::class) errorScreenType: ErrorScreenType) {
|
||||
ElementPreview {
|
||||
ErrorView(
|
||||
errorScreenType = errorScreenType,
|
||||
|
||||
+1
-1
@@ -11,7 +11,7 @@ import androidx.compose.ui.tooling.preview.PreviewParameterProvider
|
||||
import io.element.android.libraries.architecture.AsyncAction
|
||||
import io.element.android.libraries.matrix.api.linknewdevice.ErrorType
|
||||
|
||||
open class EnterNumberStateProvider : PreviewParameterProvider<EnterNumberState> {
|
||||
open class EnterNumberStatePreviewParam : PreviewParameterProvider<EnterNumberState> {
|
||||
override val values: Sequence<EnterNumberState>
|
||||
get() = sequenceOf(
|
||||
aEnterNumberState(),
|
||||
+1
-1
@@ -117,7 +117,7 @@ fun EnterNumberView(
|
||||
@PreviewsDayNight
|
||||
@Composable
|
||||
internal fun EnterNumberViewPreview(
|
||||
@PreviewParameter(EnterNumberStateProvider::class) state: EnterNumberState,
|
||||
@PreviewParameter(EnterNumberStatePreviewParam::class) state: EnterNumberState,
|
||||
) = ElementPreview {
|
||||
EnterNumberView(
|
||||
state = state,
|
||||
|
||||
+1
-1
@@ -10,7 +10,7 @@ package io.element.android.features.linknewdevice.impl.screens.qrcode
|
||||
import androidx.compose.ui.tooling.preview.PreviewParameterProvider
|
||||
import io.element.android.libraries.architecture.AsyncData
|
||||
|
||||
class ShowQrCodeStateProvider : PreviewParameterProvider<ShowQrCodeState> {
|
||||
class ShowQrCodeStatePreviewParam : PreviewParameterProvider<ShowQrCodeState> {
|
||||
override val values: Sequence<ShowQrCodeState>
|
||||
get() = sequenceOf(
|
||||
aShowQrCodeState(),
|
||||
+1
-1
@@ -117,7 +117,7 @@ private fun QrCodeOrLoading(
|
||||
@PreviewsDayNight
|
||||
@Composable
|
||||
internal fun ShowQrCodeViewPreview(
|
||||
@PreviewParameter(ShowQrCodeStateProvider::class) state: ShowQrCodeState,
|
||||
@PreviewParameter(ShowQrCodeStatePreviewParam::class) state: ShowQrCodeState,
|
||||
) = ElementPreview {
|
||||
ShowQrCodeView(
|
||||
state = state,
|
||||
|
||||
+1
-1
@@ -11,7 +11,7 @@ import androidx.compose.ui.tooling.preview.PreviewParameterProvider
|
||||
import io.element.android.libraries.architecture.AsyncData
|
||||
import io.element.android.libraries.matrix.api.linknewdevice.ErrorType
|
||||
|
||||
open class LinkNewDeviceRootStateProvider : PreviewParameterProvider<LinkNewDeviceRootState> {
|
||||
open class LinkNewDeviceRootStatePreviewParam : PreviewParameterProvider<LinkNewDeviceRootState> {
|
||||
override val values: Sequence<LinkNewDeviceRootState>
|
||||
get() = sequenceOf(
|
||||
aLinkNewDeviceRootState(),
|
||||
+1
-1
@@ -140,7 +140,7 @@ fun LinkNewDeviceRootView(
|
||||
@PreviewsDayNight
|
||||
@Composable
|
||||
internal fun LinkNewDeviceRootViewPreview(
|
||||
@PreviewParameter(LinkNewDeviceRootStateProvider::class) state: LinkNewDeviceRootState
|
||||
@PreviewParameter(LinkNewDeviceRootStatePreviewParam::class) state: LinkNewDeviceRootState
|
||||
) = ElementPreview {
|
||||
LinkNewDeviceRootView(
|
||||
state = state,
|
||||
|
||||
+1
-1
@@ -10,7 +10,7 @@ package io.element.android.features.linknewdevice.impl.screens.scan
|
||||
import androidx.compose.ui.tooling.preview.PreviewParameterProvider
|
||||
import io.element.android.libraries.architecture.AsyncAction
|
||||
|
||||
open class ScanQrCodeStateProvider : PreviewParameterProvider<ScanQrCodeState> {
|
||||
open class ScanQrCodeStatePreviewParam : PreviewParameterProvider<ScanQrCodeState> {
|
||||
override val values: Sequence<ScanQrCodeState>
|
||||
get() = sequenceOf(
|
||||
aScanQrCodeState(),
|
||||
+1
-1
@@ -166,7 +166,7 @@ private fun ColumnScope.Buttons(
|
||||
|
||||
@PreviewsDayNight
|
||||
@Composable
|
||||
internal fun ScanQrCodeViewPreview(@PreviewParameter(ScanQrCodeStateProvider::class) state: ScanQrCodeState) = ElementPreview {
|
||||
internal fun ScanQrCodeViewPreview(@PreviewParameter(ScanQrCodeStatePreviewParam::class) state: ScanQrCodeState) = ElementPreview {
|
||||
ScanQrCodeView(
|
||||
state = state,
|
||||
onBackClick = {},
|
||||
|
||||
+1
-1
@@ -22,7 +22,7 @@ import kotlin.time.Duration.Companion.minutes
|
||||
|
||||
private const val APP_NAME = "ApplicationName"
|
||||
|
||||
class ShareLocationStateProvider : PreviewParameterProvider<ShareLocationState> {
|
||||
class ShareLocationStatePreviewParam : PreviewParameterProvider<ShareLocationState> {
|
||||
override val values: Sequence<ShareLocationState>
|
||||
get() = sequenceOf(
|
||||
aShareLocationState(
|
||||
+1
-1
@@ -332,7 +332,7 @@ private fun LiveLocationDurationDialog(
|
||||
@PreviewsDayNight
|
||||
@Composable
|
||||
internal fun ShareLocationViewPreview(
|
||||
@PreviewParameter(ShareLocationStateProvider::class) state: ShareLocationState
|
||||
@PreviewParameter(ShareLocationStatePreviewParam::class) state: ShareLocationState
|
||||
) = ElementPreview {
|
||||
ShareLocationView(
|
||||
state = state,
|
||||
|
||||
+1
-1
@@ -21,7 +21,7 @@ import io.element.android.libraries.matrix.api.core.UserId
|
||||
import io.element.android.libraries.matrix.api.room.location.AssetType
|
||||
import kotlinx.collections.immutable.toImmutableList
|
||||
|
||||
class ShowLocationStateProvider : PreviewParameterProvider<ShowLocationState> {
|
||||
class ShowLocationStatePreviewParam : PreviewParameterProvider<ShowLocationState> {
|
||||
override val values: Sequence<ShowLocationState>
|
||||
get() = sequenceOf(
|
||||
aShowLocationState(),
|
||||
+1
-1
@@ -200,7 +200,7 @@ fun ShowLocationView(
|
||||
|
||||
@PreviewsDayNight
|
||||
@Composable
|
||||
internal fun ShowLocationViewPreview(@PreviewParameter(ShowLocationStateProvider::class) state: ShowLocationState) = ElementPreview {
|
||||
internal fun ShowLocationViewPreview(@PreviewParameter(ShowLocationStatePreviewParam::class) state: ShowLocationState) = ElementPreview {
|
||||
ShowLocationView(
|
||||
state = state,
|
||||
onBackClick = {},
|
||||
|
||||
-20
@@ -8,12 +8,7 @@
|
||||
|
||||
package io.element.android.features.lockscreen.impl
|
||||
|
||||
import dev.zacsweers.metro.AppScope
|
||||
import dev.zacsweers.metro.BindingContainer
|
||||
import dev.zacsweers.metro.ContributesTo
|
||||
import dev.zacsweers.metro.Provides
|
||||
import kotlin.time.Duration
|
||||
import io.element.android.appconfig.LockScreenConfig as AppConfigLockScreenConfig
|
||||
|
||||
data class LockScreenConfig(
|
||||
val isPinMandatory: Boolean,
|
||||
@@ -24,18 +19,3 @@ data class LockScreenConfig(
|
||||
val isStrongBiometricsEnabled: Boolean,
|
||||
val isWeakBiometricsEnabled: Boolean,
|
||||
)
|
||||
|
||||
@ContributesTo(AppScope::class)
|
||||
@BindingContainer
|
||||
object LockScreenConfigModule {
|
||||
@Provides
|
||||
fun providesLockScreenConfig(): LockScreenConfig = LockScreenConfig(
|
||||
isPinMandatory = AppConfigLockScreenConfig.IS_PIN_MANDATORY,
|
||||
forbiddenPinCodes = AppConfigLockScreenConfig.FORBIDDEN_PIN_CODES,
|
||||
pinSize = AppConfigLockScreenConfig.PIN_SIZE,
|
||||
maxPinCodeAttemptsBeforeLogout = AppConfigLockScreenConfig.MAX_PIN_CODE_ATTEMPTS_BEFORE_LOGOUT,
|
||||
gracePeriod = AppConfigLockScreenConfig.GRACE_PERIOD,
|
||||
isStrongBiometricsEnabled = AppConfigLockScreenConfig.IS_STRONG_BIOMETRICS_ENABLED,
|
||||
isWeakBiometricsEnabled = AppConfigLockScreenConfig.IS_WEAK_BIOMETRICS_ENABLED,
|
||||
)
|
||||
}
|
||||
|
||||
+29
@@ -0,0 +1,29 @@
|
||||
/*
|
||||
* Copyright (c) 2026 Element Creations Ltd.
|
||||
*
|
||||
* SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Element-Commercial.
|
||||
* Please see LICENSE files in the repository root for full details.
|
||||
*/
|
||||
|
||||
package io.element.android.features.lockscreen.impl.di
|
||||
|
||||
import dev.zacsweers.metro.AppScope
|
||||
import dev.zacsweers.metro.BindingContainer
|
||||
import dev.zacsweers.metro.ContributesTo
|
||||
import dev.zacsweers.metro.Provides
|
||||
import io.element.android.features.lockscreen.impl.LockScreenConfig
|
||||
|
||||
@ContributesTo(AppScope::class)
|
||||
@BindingContainer
|
||||
object LockScreenConfigBindingContainer {
|
||||
@Provides
|
||||
fun providesLockScreenConfig(): LockScreenConfig = LockScreenConfig(
|
||||
isPinMandatory = io.element.android.appconfig.LockScreenConfig.IS_PIN_MANDATORY,
|
||||
forbiddenPinCodes = io.element.android.appconfig.LockScreenConfig.FORBIDDEN_PIN_CODES,
|
||||
pinSize = io.element.android.appconfig.LockScreenConfig.PIN_SIZE,
|
||||
maxPinCodeAttemptsBeforeLogout = io.element.android.appconfig.LockScreenConfig.MAX_PIN_CODE_ATTEMPTS_BEFORE_LOGOUT,
|
||||
gracePeriod = io.element.android.appconfig.LockScreenConfig.GRACE_PERIOD,
|
||||
isStrongBiometricsEnabled = io.element.android.appconfig.LockScreenConfig.IS_STRONG_BIOMETRICS_ENABLED,
|
||||
isWeakBiometricsEnabled = io.element.android.appconfig.LockScreenConfig.IS_WEAK_BIOMETRICS_ENABLED,
|
||||
)
|
||||
}
|
||||
+1
-1
@@ -10,7 +10,7 @@ package io.element.android.features.lockscreen.impl.settings
|
||||
|
||||
import androidx.compose.ui.tooling.preview.PreviewParameterProvider
|
||||
|
||||
open class LockScreenSettingsStateProvider : PreviewParameterProvider<LockScreenSettingsState> {
|
||||
open class LockScreenSettingsStatePreviewParam : PreviewParameterProvider<LockScreenSettingsState> {
|
||||
override val values: Sequence<LockScreenSettingsState>
|
||||
get() = sequenceOf(
|
||||
aLockScreenSettingsState(),
|
||||
+1
-1
@@ -84,7 +84,7 @@ fun LockScreenSettingsView(
|
||||
@PreviewsDayNight
|
||||
@Composable
|
||||
internal fun LockScreenSettingsViewPreview(
|
||||
@PreviewParameter(LockScreenSettingsStateProvider::class) state: LockScreenSettingsState,
|
||||
@PreviewParameter(LockScreenSettingsStatePreviewParam::class) state: LockScreenSettingsState,
|
||||
) {
|
||||
ElementPreview {
|
||||
LockScreenSettingsView(
|
||||
|
||||
+1
-1
@@ -10,7 +10,7 @@ package io.element.android.features.lockscreen.impl.setup.biometric
|
||||
|
||||
import androidx.compose.ui.tooling.preview.PreviewParameterProvider
|
||||
|
||||
open class SetupBiometricStateProvider : PreviewParameterProvider<SetupBiometricState> {
|
||||
open class SetupBiometricStatePreviewParam : PreviewParameterProvider<SetupBiometricState> {
|
||||
override val values: Sequence<SetupBiometricState>
|
||||
get() = sequenceOf(
|
||||
aSetupBiometricState(),
|
||||
+1
-1
@@ -79,7 +79,7 @@ private fun SetupBiometricFooter(
|
||||
|
||||
@Composable
|
||||
@PreviewsDayNight
|
||||
internal fun SetupBiometricViewPreview(@PreviewParameter(SetupBiometricStateProvider::class) state: SetupBiometricState) {
|
||||
internal fun SetupBiometricViewPreview(@PreviewParameter(SetupBiometricStatePreviewParam::class) state: SetupBiometricState) {
|
||||
ElementPreview {
|
||||
SetupBiometricView(
|
||||
state = state,
|
||||
|
||||
+1
-1
@@ -12,7 +12,7 @@ import androidx.compose.ui.tooling.preview.PreviewParameterProvider
|
||||
import io.element.android.features.lockscreen.impl.pin.model.PinEntry
|
||||
import io.element.android.features.lockscreen.impl.setup.pin.validation.SetupPinFailure
|
||||
|
||||
open class SetupPinStateProvider : PreviewParameterProvider<SetupPinState> {
|
||||
open class SetupPinStatePreviewParam : PreviewParameterProvider<SetupPinState> {
|
||||
override val values: Sequence<SetupPinState>
|
||||
get() = sequenceOf(
|
||||
aSetupPinState(),
|
||||
+1
-1
@@ -145,7 +145,7 @@ private fun SetupPinFailure.title(): String {
|
||||
|
||||
@Composable
|
||||
@PreviewsDayNight
|
||||
internal fun SetupPinViewPreview(@PreviewParameter(SetupPinStateProvider::class) state: SetupPinState) {
|
||||
internal fun SetupPinViewPreview(@PreviewParameter(SetupPinStatePreviewParam::class) state: SetupPinState) {
|
||||
ElementPreview {
|
||||
SetupPinView(
|
||||
state = state,
|
||||
|
||||
+2
-2
@@ -16,7 +16,7 @@ import io.element.android.features.lockscreen.impl.pin.model.PinEntry
|
||||
import io.element.android.libraries.architecture.AsyncAction
|
||||
import io.element.android.libraries.architecture.AsyncData
|
||||
|
||||
open class PinUnlockStateProvider : PreviewParameterProvider<PinUnlockState> {
|
||||
open class PinUnlockStatePreviewParam : PreviewParameterProvider<PinUnlockState> {
|
||||
override val values: Sequence<PinUnlockState>
|
||||
get() = sequenceOf(
|
||||
aPinUnlockState(),
|
||||
@@ -42,7 +42,7 @@ open class PinUnlockStateProvider : PreviewParameterProvider<PinUnlockState> {
|
||||
)
|
||||
}
|
||||
|
||||
open class PinUnlockStateCompactProvider : PreviewParameterProvider<PinUnlockState> {
|
||||
open class PinUnlockStateCompactPreviewParam : PreviewParameterProvider<PinUnlockState> {
|
||||
override val values: Sequence<PinUnlockState>
|
||||
get() = sequenceOf(
|
||||
aPinUnlockState(),
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user