diff --git a/.github/workflows/danger.yml b/.github/workflows/danger.yml index 6b6ac8243e..5bfc0b6982 100644 --- a/.github/workflows/danger.yml +++ b/.github/workflows/danger.yml @@ -20,7 +20,7 @@ jobs: - run: | npm install --save-dev @babel/plugin-transform-flow-strip-types - name: Danger - uses: danger/danger-js@12.3.3 + uses: danger/danger-js@12.3.4 with: args: "--dangerfile ./tools/danger/dangerfile.js" env: diff --git a/.github/workflows/quality.yml b/.github/workflows/quality.yml index b69c693f19..009d30e93b 100644 --- a/.github/workflows/quality.yml +++ b/.github/workflows/quality.yml @@ -294,7 +294,7 @@ jobs: yarn add danger-plugin-lint-report --dev - name: Danger lint if: always() - uses: danger/danger-js@12.3.3 + uses: danger/danger-js@12.3.4 with: args: "--dangerfile ./tools/danger/dangerfile-lint.js" env: diff --git a/app/src/main/res/xml/locales_config.xml b/app/src/main/res/xml/locales_config.xml index a89ce28bfd..8fbfba96a1 100644 --- a/app/src/main/res/xml/locales_config.xml +++ b/app/src/main/res/xml/locales_config.xml @@ -25,6 +25,7 @@ + diff --git a/app/src/main/res/xml/network_security_config.xml b/app/src/main/res/xml/network_security_config.xml index b9f3d03986..96add8d148 100644 --- a/app/src/main/res/xml/network_security_config.xml +++ b/app/src/main/res/xml/network_security_config.xml @@ -1,8 +1,15 @@ - + - + + + + + + @@ -24,12 +31,4 @@ lan localdomain - - - - - - - - diff --git a/appnav/src/main/kotlin/io/element/android/appnav/LoggedInFlowNode.kt b/appnav/src/main/kotlin/io/element/android/appnav/LoggedInFlowNode.kt index 1d3c78b88a..9ae5cec637 100644 --- a/appnav/src/main/kotlin/io/element/android/appnav/LoggedInFlowNode.kt +++ b/appnav/src/main/kotlin/io/element/android/appnav/LoggedInFlowNode.kt @@ -75,7 +75,6 @@ import io.element.android.libraries.matrix.api.core.toRoomIdOrAlias import io.element.android.libraries.matrix.api.permalink.PermalinkData import io.element.android.libraries.matrix.api.verification.SessionVerificationRequestDetails import io.element.android.libraries.matrix.api.verification.SessionVerificationServiceListener -import io.element.android.libraries.preferences.api.store.EnableNativeSlidingSyncUseCase import io.element.android.services.appnavstate.api.AppNavigationStateService import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.flow.launchIn @@ -105,7 +104,6 @@ class LoggedInFlowNode @AssistedInject constructor( private val sendingQueue: SendQueues, private val logoutEntryPoint: LogoutEntryPoint, private val incomingVerificationEntryPoint: IncomingVerificationEntryPoint, - private val enableNativeSlidingSyncUseCase: EnableNativeSlidingSyncUseCase, snackbarDispatcher: SnackbarDispatcher, ) : BaseFlowNode( backstack = BackStack( @@ -420,9 +418,6 @@ class LoggedInFlowNode @AssistedInject constructor( } logoutEntryPoint.nodeBuilder(this, buildContext) - .onSuccessfulLogoutPendingAction { - enableNativeSlidingSyncUseCase() - } .callback(callback) .build() } diff --git a/appnav/src/main/kotlin/io/element/android/appnav/di/SyncOrchestrator.kt b/appnav/src/main/kotlin/io/element/android/appnav/di/SyncOrchestrator.kt index e4ca0cbffe..95ef6e54a5 100644 --- a/appnav/src/main/kotlin/io/element/android/appnav/di/SyncOrchestrator.kt +++ b/appnav/src/main/kotlin/io/element/android/appnav/di/SyncOrchestrator.kt @@ -7,6 +7,7 @@ package io.element.android.appnav.di +import androidx.annotation.VisibleForTesting import dagger.assisted.Assisted import dagger.assisted.AssistedFactory import dagger.assisted.AssistedInject @@ -21,9 +22,9 @@ import kotlinx.coroutines.FlowPreview import kotlinx.coroutines.flow.combine import kotlinx.coroutines.flow.debounce import kotlinx.coroutines.flow.distinctUntilChanged -import kotlinx.coroutines.flow.launchIn +import kotlinx.coroutines.flow.first import kotlinx.coroutines.flow.onCompletion -import kotlinx.coroutines.flow.onEach +import kotlinx.coroutines.launch import timber.log.Timber import java.util.concurrent.atomic.AtomicBoolean import kotlin.time.Duration.Companion.milliseconds @@ -53,13 +54,28 @@ class SyncOrchestrator @AssistedInject constructor( * * Before observing the state, a first attempt at starting the sync service will happen if it's not already running. */ - @OptIn(FlowPreview::class) fun start() { if (!started.compareAndSet(false, true)) { Timber.tag(tag).d("already started, exiting early") return } + coroutineScope.launch { + // Perform an initial sync if the sync service is not running, to check whether the homeserver is accessible + // Otherwise, if the device is offline the sync service will never start and the SyncState will be Idle, not Offline + Timber.tag(tag).d("performing initial sync attempt") + syncService.startSync() + + // Wait until the sync service is not idle, either it will be running or in error/offline state + syncService.syncState.first { it != SyncState.Idle } + + observeStates() + } + } + + @OptIn(FlowPreview::class) + @VisibleForTesting(otherwise = VisibleForTesting.PRIVATE) + internal fun observeStates() = coroutineScope.launch { Timber.tag(tag).d("start observing the app and network state") combine( @@ -76,7 +92,7 @@ class SyncOrchestrator @AssistedInject constructor( Timber.tag(tag).d("isAppActive=$isAppActive, isNetworkAvailable=$isNetworkAvailable") if (syncState == SyncState.Running && !isAppActive) { SyncStateAction.StopSync - } else if (syncState != SyncState.Running && isAppActive && isNetworkAvailable) { + } else if (syncState == SyncState.Idle && isAppActive && isNetworkAvailable) { SyncStateAction.StartSync } else { SyncStateAction.NoOp @@ -87,7 +103,10 @@ class SyncOrchestrator @AssistedInject constructor( // Don't stop the sync immediately, wait a bit to avoid starting/stopping the sync too often if (action == SyncStateAction.StopSync) 3.seconds else 0.seconds } - .onEach { action -> + .onCompletion { + Timber.tag(tag).d("has been stopped") + } + .collect { action -> when (action) { SyncStateAction.StartSync -> { syncService.startSync() @@ -98,10 +117,6 @@ class SyncOrchestrator @AssistedInject constructor( SyncStateAction.NoOp -> Unit } } - .onCompletion { - Timber.tag(tag).d("has been stopped") - } - .launchIn(coroutineScope) } } diff --git a/appnav/src/main/kotlin/io/element/android/appnav/loggedin/LoggedInPresenter.kt b/appnav/src/main/kotlin/io/element/android/appnav/loggedin/LoggedInPresenter.kt index abddb2adac..2539f9e1d5 100644 --- a/appnav/src/main/kotlin/io/element/android/appnav/loggedin/LoggedInPresenter.kt +++ b/appnav/src/main/kotlin/io/element/android/appnav/loggedin/LoggedInPresenter.kt @@ -22,6 +22,7 @@ import im.vector.app.features.analytics.plan.UserProperties import io.element.android.libraries.architecture.AsyncData import io.element.android.libraries.architecture.Presenter import io.element.android.libraries.core.log.logger.LoggerTag +import io.element.android.libraries.core.meta.BuildMeta import io.element.android.libraries.matrix.api.MatrixClient import io.element.android.libraries.matrix.api.encryption.EncryptionService import io.element.android.libraries.matrix.api.encryption.RecoveryState @@ -31,7 +32,6 @@ import io.element.android.libraries.matrix.api.sync.SyncService import io.element.android.libraries.matrix.api.sync.isOnline import io.element.android.libraries.matrix.api.verification.SessionVerificationService import io.element.android.libraries.matrix.api.verification.SessionVerifiedStatus -import io.element.android.libraries.preferences.api.store.EnableNativeSlidingSyncUseCase import io.element.android.libraries.push.api.PushService import io.element.android.libraries.pushproviders.api.RegistrationFailure import io.element.android.services.analytics.api.AnalyticsService @@ -51,7 +51,7 @@ class LoggedInPresenter @Inject constructor( private val sessionVerificationService: SessionVerificationService, private val analyticsService: AnalyticsService, private val encryptionService: EncryptionService, - private val enableNativeSlidingSyncUseCase: EnableNativeSlidingSyncUseCase, + private val buildMeta: BuildMeta, ) : Presenter { @Composable override fun present(): LoggedInState { @@ -103,12 +103,10 @@ class LoggedInPresenter @Inject constructor( } } LoggedInEvents.CheckSlidingSyncProxyAvailability -> coroutineScope.launch { - forceNativeSlidingSyncMigration = matrixClient.forceNativeSlidingSyncMigration().getOrDefault(false) + forceNativeSlidingSyncMigration = matrixClient.needsForcedNativeSlidingSyncMigration().getOrDefault(false) } LoggedInEvents.LogoutAndMigrateToNativeSlidingSync -> coroutineScope.launch { - // Enable native sliding sync if it wasn't already the case - enableNativeSlidingSyncUseCase() - // Then force the logout + // Force the logout since Native Sliding Sync is already enforced by the SDK matrixClient.logout(userInitiated = true, ignoreSdkError = true) } } @@ -119,20 +117,15 @@ class LoggedInPresenter @Inject constructor( pusherRegistrationState = pusherRegistrationState.value, ignoreRegistrationError = ignoreRegistrationError, forceNativeSlidingSyncMigration = forceNativeSlidingSyncMigration, + appName = buildMeta.applicationName, eventSink = ::handleEvent ) } - // Force the user to log out if they were using the proxy sliding sync and it's no longer available, but native sliding sync is. - private suspend fun MatrixClient.forceNativeSlidingSyncMigration(): Result = runCatching { + // Force the user to log out if they were using the proxy sliding sync as it's no longer supported by the SDK + private suspend fun MatrixClient.needsForcedNativeSlidingSyncMigration(): Result = runCatching { val currentSlidingSyncVersion = currentSlidingSyncVersion().getOrThrow() - if (currentSlidingSyncVersion == SlidingSyncVersion.Proxy) { - val availableSlidingSyncVersions = availableSlidingSyncVersions().getOrThrow() - availableSlidingSyncVersions.contains(SlidingSyncVersion.Native) && - !availableSlidingSyncVersions.contains(SlidingSyncVersion.Proxy) - } else { - false - } + currentSlidingSyncVersion == SlidingSyncVersion.Proxy } private suspend fun ensurePusherIsRegistered(pusherRegistrationState: MutableState>) { diff --git a/appnav/src/main/kotlin/io/element/android/appnav/loggedin/LoggedInState.kt b/appnav/src/main/kotlin/io/element/android/appnav/loggedin/LoggedInState.kt index 540d5d0d8f..8f039ffa2b 100644 --- a/appnav/src/main/kotlin/io/element/android/appnav/loggedin/LoggedInState.kt +++ b/appnav/src/main/kotlin/io/element/android/appnav/loggedin/LoggedInState.kt @@ -14,5 +14,6 @@ data class LoggedInState( val pusherRegistrationState: AsyncData, val ignoreRegistrationError: Boolean, val forceNativeSlidingSyncMigration: Boolean, + val appName: String, val eventSink: (LoggedInEvents) -> Unit, ) diff --git a/appnav/src/main/kotlin/io/element/android/appnav/loggedin/LoggedInStateProvider.kt b/appnav/src/main/kotlin/io/element/android/appnav/loggedin/LoggedInStateProvider.kt index 43b7164f2a..2ba0c8de81 100644 --- a/appnav/src/main/kotlin/io/element/android/appnav/loggedin/LoggedInStateProvider.kt +++ b/appnav/src/main/kotlin/io/element/android/appnav/loggedin/LoggedInStateProvider.kt @@ -24,10 +24,12 @@ fun aLoggedInState( showSyncSpinner: Boolean = false, pusherRegistrationState: AsyncData = AsyncData.Uninitialized, forceNativeSlidingSyncMigration: Boolean = false, + appName: String = "Element X", ) = LoggedInState( showSyncSpinner = showSyncSpinner, pusherRegistrationState = pusherRegistrationState, ignoreRegistrationError = false, forceNativeSlidingSyncMigration = forceNativeSlidingSyncMigration, + appName = appName, eventSink = {}, ) diff --git a/appnav/src/main/kotlin/io/element/android/appnav/loggedin/LoggedInView.kt b/appnav/src/main/kotlin/io/element/android/appnav/loggedin/LoggedInView.kt index cd9ecf637a..d6a12ea27b 100644 --- a/appnav/src/main/kotlin/io/element/android/appnav/loggedin/LoggedInView.kt +++ b/appnav/src/main/kotlin/io/element/android/appnav/loggedin/LoggedInView.kt @@ -73,9 +73,12 @@ fun LoggedInView( // Set the force migration dialog here so it's always displayed over every screen if (state.forceNativeSlidingSyncMigration) { - ForceNativeSlidingSyncMigrationDialog(onSubmit = { - state.eventSink(LoggedInEvents.LogoutAndMigrateToNativeSlidingSync) - }) + ForceNativeSlidingSyncMigrationDialog( + appName = state.appName, + onSubmit = { + state.eventSink(LoggedInEvents.LogoutAndMigrateToNativeSlidingSync) + } + ) } } @@ -98,11 +101,12 @@ private fun Throwable.getReason(): String? { @Composable private fun ForceNativeSlidingSyncMigrationDialog( + appName: String, onSubmit: () -> Unit, ) { ErrorDialog( title = null, - content = stringResource(R.string.banner_migrate_to_native_sliding_sync_force_logout_title), + content = stringResource(R.string.banner_migrate_to_native_sliding_sync_app_force_logout_title, appName), submitText = stringResource(R.string.banner_migrate_to_native_sliding_sync_action), onSubmit = onSubmit, canDismiss = false, diff --git a/appnav/src/main/res/values-tr/translations.xml b/appnav/src/main/res/values-tr/translations.xml new file mode 100644 index 0000000000..c0a8ccd136 --- /dev/null +++ b/appnav/src/main/res/values-tr/translations.xml @@ -0,0 +1,5 @@ + + + "Çıkış Yap ve Yükselt" + "Ana sunucunuz artık eski protokolü desteklemiyor. Lütfen oturumu kapatın ve uygulamayı kullanmaya devam etmek için tekrar oturum açın." + diff --git a/appnav/src/main/res/values/localazy.xml b/appnav/src/main/res/values/localazy.xml index bb6df44051..c018fbf7fd 100644 --- a/appnav/src/main/res/values/localazy.xml +++ b/appnav/src/main/res/values/localazy.xml @@ -1,5 +1,6 @@ "Log Out & Upgrade" + "%1$s no longer supports the old protocol. Please log out and log back in to continue using the app." "Your homeserver no longer supports the old protocol. Please log out and log back in to continue using the app." diff --git a/appnav/src/test/kotlin/io/element/android/appnav/SyncOrchestratorTest.kt b/appnav/src/test/kotlin/io/element/android/appnav/SyncOrchestratorTest.kt index bdccdec9a4..b06ea5ca21 100644 --- a/appnav/src/test/kotlin/io/element/android/appnav/SyncOrchestratorTest.kt +++ b/appnav/src/test/kotlin/io/element/android/appnav/SyncOrchestratorTest.kt @@ -31,6 +31,50 @@ class SyncOrchestratorTest { @get:Rule val warmUpRule = WarmUpRule() + @Test + fun `when the sync wasn't running before, an initial sync will take place, even with no network`() = runTest { + val startSyncRecorder = lambdaRecorder> { Result.success(Unit) } + val syncService = FakeSyncService(initialSyncState = SyncState.Idle).apply { + startSyncLambda = startSyncRecorder + } + val networkMonitor = FakeNetworkMonitor(initialStatus = NetworkStatus.Disconnected) + val syncOrchestrator = createSyncOrchestrator( + syncService = syncService, + networkMonitor = networkMonitor, + ) + + // We start observing with an initial sync + syncOrchestrator.start() + + // Advance the time just enough to make sure the initial sync has run + advanceTimeBy(1.milliseconds) + startSyncRecorder.assertions().isCalledOnce() + } + + @Test + fun `when the sync wasn't running before, an initial sync will take place`() = runTest { + val startSyncRecorder = lambdaRecorder> { Result.success(Unit) } + val syncService = FakeSyncService(initialSyncState = SyncState.Idle).apply { + startSyncLambda = startSyncRecorder + } + val networkMonitor = FakeNetworkMonitor(initialStatus = NetworkStatus.Connected) + val syncOrchestrator = createSyncOrchestrator( + syncService = syncService, + networkMonitor = networkMonitor, + ) + + // We start observing with an initial sync + syncOrchestrator.start() + + // Advance the time just enough to make sure the initial sync has run + advanceTimeBy(1.milliseconds) + startSyncRecorder.assertions().isCalledOnce() + + // If we wait for a while, the sync will not be started again by the observer since it's already running + advanceTimeBy(10.seconds) + startSyncRecorder.assertions().isCalledOnce() + } + @Test fun `when the app goes to background and the sync was running, it will be stopped after a delay`() = runTest { val stopSyncRecorder = lambdaRecorder> { Result.success(Unit) } @@ -46,7 +90,7 @@ class SyncOrchestratorTest { ) // We start observing - syncOrchestrator.start() + syncOrchestrator.observeStates() // Advance the time to make sure the orchestrator has had time to start processing the inputs advanceTimeBy(100.milliseconds) @@ -78,7 +122,7 @@ class SyncOrchestratorTest { ) // We start observing - syncOrchestrator.start() + syncOrchestrator.observeStates() // Advance the time to make sure the orchestrator has had time to start processing the inputs advanceTimeBy(100.milliseconds) @@ -126,7 +170,7 @@ class SyncOrchestratorTest { ) // We start observing - syncOrchestrator.start() + syncOrchestrator.observeStates() // Advance the time to make sure the orchestrator has had time to start processing the inputs advanceTimeBy(100.milliseconds) @@ -169,7 +213,7 @@ class SyncOrchestratorTest { ) // We start observing - syncOrchestrator.start() + syncOrchestrator.observeStates() // Advance the time to make sure the orchestrator has had time to start processing the inputs advanceTimeBy(100.milliseconds) @@ -213,7 +257,7 @@ class SyncOrchestratorTest { ) // We start observing - syncOrchestrator.start() + syncOrchestrator.observeStates() // Advance the time to make sure the orchestrator has had time to start processing the inputs advanceTimeBy(100.milliseconds) @@ -256,7 +300,7 @@ class SyncOrchestratorTest { ) // We start observing - syncOrchestrator.start() + syncOrchestrator.observeStates() // Advance the time to make sure the orchestrator has had time to start processing the inputs advanceTimeBy(100.milliseconds) @@ -285,7 +329,7 @@ class SyncOrchestratorTest { ) // We start observing - syncOrchestrator.start() + syncOrchestrator.observeStates() // This should still not trigger a sync, since there is no network advanceTimeBy(10.seconds) diff --git a/appnav/src/test/kotlin/io/element/android/appnav/loggedin/LoggedInPresenterTest.kt b/appnav/src/test/kotlin/io/element/android/appnav/loggedin/LoggedInPresenterTest.kt index 3f0713cd99..bfd416eaf3 100644 --- a/appnav/src/test/kotlin/io/element/android/appnav/loggedin/LoggedInPresenterTest.kt +++ b/appnav/src/test/kotlin/io/element/android/appnav/loggedin/LoggedInPresenterTest.kt @@ -14,6 +14,7 @@ import app.cash.turbine.test import com.google.common.truth.Truth.assertThat import im.vector.app.features.analytics.plan.CryptoSessionStateChange import im.vector.app.features.analytics.plan.UserProperties +import io.element.android.libraries.core.meta.BuildMeta import io.element.android.libraries.matrix.api.MatrixClient import io.element.android.libraries.matrix.api.core.SessionId import io.element.android.libraries.matrix.api.encryption.EncryptionService @@ -26,12 +27,11 @@ import io.element.android.libraries.matrix.api.verification.SessionVerifiedStatu import io.element.android.libraries.matrix.test.AN_EXCEPTION import io.element.android.libraries.matrix.test.A_SESSION_ID import io.element.android.libraries.matrix.test.FakeMatrixClient +import io.element.android.libraries.matrix.test.core.aBuildMeta import io.element.android.libraries.matrix.test.encryption.FakeEncryptionService import io.element.android.libraries.matrix.test.roomlist.FakeRoomListService import io.element.android.libraries.matrix.test.sync.FakeSyncService import io.element.android.libraries.matrix.test.verification.FakeSessionVerificationService -import io.element.android.libraries.preferences.api.store.EnableNativeSlidingSyncUseCase -import io.element.android.libraries.preferences.test.InMemoryAppPreferencesStore import io.element.android.libraries.push.api.PushService import io.element.android.libraries.push.test.FakePushService import io.element.android.libraries.pushproviders.api.Distributor @@ -46,7 +46,6 @@ import io.element.android.tests.testutils.lambda.lambdaError import io.element.android.tests.testutils.lambda.lambdaRecorder import io.element.android.tests.testutils.lambda.value import kotlinx.coroutines.ExperimentalCoroutinesApi -import kotlinx.coroutines.flow.first import kotlinx.coroutines.test.TestScope import kotlinx.coroutines.test.advanceUntilIdle import kotlinx.coroutines.test.runTest @@ -92,6 +91,7 @@ class LoggedInPresenterTest { val roomListService = FakeRoomListService() val verificationService = FakeSessionVerificationService() val encryptionService = FakeEncryptionService() + val buildMeta = aBuildMeta() val presenter = LoggedInPresenter( matrixClient = FakeMatrixClient(roomListService = roomListService, encryptionService = encryptionService), syncService = FakeSyncService(initialSyncState = SyncState.Running), @@ -99,7 +99,7 @@ class LoggedInPresenterTest { sessionVerificationService = verificationService, analyticsService = analyticsService, encryptionService = encryptionService, - enableNativeSlidingSyncUseCase = EnableNativeSlidingSyncUseCase(InMemoryAppPreferencesStore(), this), + buildMeta = buildMeta, ) moleculeFlow(RecompositionMode.Immediate) { presenter.present() @@ -518,28 +518,9 @@ class LoggedInPresenterTest { } } - @Test - fun `present - CheckSlidingSyncProxyAvailability will not force the migration if native sliding sync is not supported too`() = runTest { - val matrixClient = FakeMatrixClient( - currentSlidingSyncVersionLambda = { Result.success(SlidingSyncVersion.Proxy) }, - availableSlidingSyncVersionsLambda = { Result.success(emptyList()) }, - ) - val presenter = createLoggedInPresenter(matrixClient = matrixClient) - moleculeFlow(RecompositionMode.Immediate) { - presenter.present() - }.test { - val initialState = awaitItem() - assertThat(initialState.forceNativeSlidingSyncMigration).isFalse() - - initialState.eventSink(LoggedInEvents.CheckSlidingSyncProxyAvailability) - - expectNoEvents() - } - } - @OptIn(ExperimentalCoroutinesApi::class) @Test - fun `present - LogoutAndMigrateToNativeSlidingSync enables native sliding sync and logs out the user`() = runTest { + fun `present - LogoutAndMigrateToNativeSlidingSync logs out the user`() = runTest { val logoutLambda = lambdaRecorder { userInitiated, ignoreSdkError -> assertThat(userInitiated).isTrue() assertThat(ignoreSdkError).isTrue() @@ -548,21 +529,16 @@ class LoggedInPresenterTest { val matrixClient = FakeMatrixClient().apply { this.logoutLambda = logoutLambda } - val appPreferencesStore = InMemoryAppPreferencesStore() - val enableNativeSlidingSyncUseCase = EnableNativeSlidingSyncUseCase(appPreferencesStore, this) - val presenter = createLoggedInPresenter(matrixClient = matrixClient, enableNativeSlidingSyncUseCase = enableNativeSlidingSyncUseCase) + val presenter = createLoggedInPresenter(matrixClient = matrixClient) moleculeFlow(RecompositionMode.Immediate) { presenter.present() }.test { val initialState = awaitItem() - assertThat(appPreferencesStore.isSimplifiedSlidingSyncEnabledFlow().first()).isFalse() - initialState.eventSink(LoggedInEvents.LogoutAndMigrateToNativeSlidingSync) advanceUntilIdle() - assertThat(appPreferencesStore.isSimplifiedSlidingSyncEnabledFlow().first()).isTrue() assertThat(logoutLambda.assertions().isCalledOnce()) } } @@ -579,8 +555,8 @@ class LoggedInPresenterTest { sessionVerificationService: SessionVerificationService = FakeSessionVerificationService(), encryptionService: EncryptionService = FakeEncryptionService(), pushService: PushService = FakePushService(), - enableNativeSlidingSyncUseCase: EnableNativeSlidingSyncUseCase = EnableNativeSlidingSyncUseCase(InMemoryAppPreferencesStore(), this), matrixClient: MatrixClient = FakeMatrixClient(roomListService = roomListService), + buildMeta: BuildMeta = aBuildMeta(), ): LoggedInPresenter { return LoggedInPresenter( matrixClient = matrixClient, @@ -589,7 +565,7 @@ class LoggedInPresenterTest { sessionVerificationService = sessionVerificationService, analyticsService = analyticsService, encryptionService = encryptionService, - enableNativeSlidingSyncUseCase = enableNativeSlidingSyncUseCase, + buildMeta = buildMeta, ) } } diff --git a/features/analytics/api/src/main/res/values-tr/translations.xml b/features/analytics/api/src/main/res/values-tr/translations.xml new file mode 100644 index 0000000000..7229872f5a --- /dev/null +++ b/features/analytics/api/src/main/res/values-tr/translations.xml @@ -0,0 +1,7 @@ + + + "Sorunları tanımlamamıza yardımcı olmak için anonim kullanım verilerini paylaşın." + "Tüm şartlarımızı okuyabilirsiniz %1$s." + "burada" + "Analitik verileri paylaşın" + diff --git a/features/analytics/impl/src/main/res/values-tr/translations.xml b/features/analytics/impl/src/main/res/values-tr/translations.xml new file mode 100644 index 0000000000..238e53b898 --- /dev/null +++ b/features/analytics/impl/src/main/res/values-tr/translations.xml @@ -0,0 +1,10 @@ + + + "Hiçbir kişisel veriyi kaydetmeyeceğiz veya profillemeyeceğiz" + "Sorunları tanımlamamıza yardımcı olmak için anonim kullanım verilerini paylaşın." + "Tüm şartlarımızı okuyabilirsiniz %1$s." + "burada" + "Bu özelliği istediğiniz zaman kapatabilirsiniz" + "Verilerinizi üçüncü taraflarla paylaşmayacağız" + "%1$s geliştirilmesine yardımcı olun" + diff --git a/features/call/impl/src/main/res/values-tr/translations.xml b/features/call/impl/src/main/res/values-tr/translations.xml new file mode 100644 index 0000000000..37607db690 --- /dev/null +++ b/features/call/impl/src/main/res/values-tr/translations.xml @@ -0,0 +1,7 @@ + + + "Devam eden çağrı" + "Aramaya geri dönmek için dokunun" + "☎️ Çağrı devam ediyor" + "Gelen Element Call" + diff --git a/features/createroom/impl/src/main/res/values-be/translations.xml b/features/createroom/impl/src/main/res/values-be/translations.xml index 861fca4d05..01c0fea1bd 100644 --- a/features/createroom/impl/src/main/res/values-be/translations.xml +++ b/features/createroom/impl/src/main/res/values-be/translations.xml @@ -6,7 +6,7 @@ "Паведамленні ў гэтым пакоі зашыфраваны. Гэта шыфраванне нельга адключыць." "Прыватны пакой (толькі па запрашэнні)" "Паведамленні не зашыфраваны, і кожны можа іх прачытаць. Вы можаце ўключыць шыфраванне пазней." - "Публічны пакой (для ўсіх)" + "Публічны пакой" "Хто заўгодна" "Доступ у пакой" "Папрасіце далучыцца" diff --git a/features/createroom/impl/src/main/res/values-bg/translations.xml b/features/createroom/impl/src/main/res/values-bg/translations.xml index 28f42b4156..1de1db624a 100644 --- a/features/createroom/impl/src/main/res/values-bg/translations.xml +++ b/features/createroom/impl/src/main/res/values-bg/translations.xml @@ -6,7 +6,6 @@ "Съобщенията в тази стая са шифровани. Шифроването не може да бъде изключено впоследствие." "Частна стая (само с покана)" "Съобщенията не са шифровани и всеки може да ги прочете. Можете да активирате шифроването на по-късна дата." - "Публична стая (всеки)" "Име на стаята" "Създаване на стая" "Тема за разговор (незадължително)" diff --git a/features/createroom/impl/src/main/res/values-de/translations.xml b/features/createroom/impl/src/main/res/values-de/translations.xml index 10cda04d9e..aec32766a2 100644 --- a/features/createroom/impl/src/main/res/values-de/translations.xml +++ b/features/createroom/impl/src/main/res/values-de/translations.xml @@ -7,14 +7,14 @@ "Privater Chatroom" "Jeder kann diesen Chatroom finden. Sie können dies aber jederzeit in den Chatroomeinstellungen ändern." - "Öffentlicher Chatroom" + "Öffentlicher Raum" "Jeder kann diesem Chatroom beitreten" "Jemand" "Chatroom Zugang" "Jeder kann darum bitten, dem Chatroom beizutreten, aber ein Administrator oder ein Moderator muss die Anfrage akzeptieren." "Beitritt beantragen" "Damit dieser Chatroom im öffentlichen Chatroomverzeichnis sichtbar ist, benötigen Sie eine Chatroomadresse." - "Chatroom Adresse" + "Chatroomadresse" "Raumname" " Sichtbarkeit des Chatrooms" "Raum erstellen" diff --git a/features/createroom/impl/src/main/res/values-el/translations.xml b/features/createroom/impl/src/main/res/values-el/translations.xml index 4dc3acaaa3..4c414a6b5b 100644 --- a/features/createroom/impl/src/main/res/values-el/translations.xml +++ b/features/createroom/impl/src/main/res/values-el/translations.xml @@ -14,7 +14,6 @@ "Οποιοσδήποτε μπορεί να ζητήσει να συμμετάσχει στο δωμάτιο, αλλά ένας διαχειριστής ή συντονιστής θα πρέπει να αποδεχθεί το αίτημα" "Αίτημα συμμετοχής" "Για να είναι ορατό αυτό το δωμάτιο στον κατάλογο των δημόσιων δωματίων, θα χρειαστείς μια διεύθυνση δωματίου." - "Διεύθυνση δωματίου" "Όνομα δωματίου" "Ορατότητα δωματίου" "Δημιούργησε ένα δωμάτιο" diff --git a/features/createroom/impl/src/main/res/values-es/translations.xml b/features/createroom/impl/src/main/res/values-es/translations.xml index 5946dab102..2e36d3022b 100644 --- a/features/createroom/impl/src/main/res/values-es/translations.xml +++ b/features/createroom/impl/src/main/res/values-es/translations.xml @@ -6,7 +6,6 @@ "Los mensajes de esta sala están cifrados. La encriptación no se puede desactivar después." "Sala privada (sólo con invitación)" "Los mensajes no están cifrados y cualquiera puede leerlos. Puedes activar la encriptación más adelante." - "Sala pública (cualquiera)" "Nombre de la sala" "Crear una sala" "Tema (opcional)" diff --git a/features/createroom/impl/src/main/res/values-fa/translations.xml b/features/createroom/impl/src/main/res/values-fa/translations.xml index 467fae5327..d7f05a770c 100644 --- a/features/createroom/impl/src/main/res/values-fa/translations.xml +++ b/features/createroom/impl/src/main/res/values-fa/translations.xml @@ -6,7 +6,7 @@ "پیام‌های این اتاق رمز شده‌اند. رمزنگاری نمی‌تواند از این پس تغییر کند." "اتاق خصوصی (فقط دعوت)" "پیام‌ها رمزنگاری نشده و هرکسی می‌تواند بخواندشان. می‌توانید بعداً رمزنگاری را به کار بیندازید." - "اتاق عمومی (هرکسی)" + "اتاق عمومی" "نام اتاق" "ایجاد اتاق" "موضوع (اختیاری)" diff --git a/features/createroom/impl/src/main/res/values-hu/translations.xml b/features/createroom/impl/src/main/res/values-hu/translations.xml index ee935c8c60..244d936eef 100644 --- a/features/createroom/impl/src/main/res/values-hu/translations.xml +++ b/features/createroom/impl/src/main/res/values-hu/translations.xml @@ -14,7 +14,7 @@ Ezt bármikor módosíthatja a szobabeállításokban." "Bárki kérheti, hogy csatlakozzon a szobához, de egy adminisztrátornak vagy moderátornak el kell fogadnia a kérést" "Csatlakozás kérése" "Ahhoz, hogy ez a szoba látható legyen a nyilvános szobák címtárában, meg kell adnia a szoba címét." - "Szoba címe" + "A szoba címe" "Szoba neve" "Szoba láthatósága" "Szoba létrehozása" diff --git a/features/createroom/impl/src/main/res/values-in/translations.xml b/features/createroom/impl/src/main/res/values-in/translations.xml index b1c7aeef1c..32a5a0b25a 100644 --- a/features/createroom/impl/src/main/res/values-in/translations.xml +++ b/features/createroom/impl/src/main/res/values-in/translations.xml @@ -14,7 +14,6 @@ Anda dapat mengubah ini kapan pun dalam pengaturan ruangan." "Siapa pun dapat meminta untuk bergabung dengan ruangan tetapi administrator atau moderator harus menerima permintaan tersebut" "Minta untuk bergabung" "Supaya ruangan ini terlihat di direktori ruangan publik, Anda memerlukan alamat ruangan." - "Alamat ruangan" "Nama ruangan" "Keterlihatan ruangan" "Buat ruangan" diff --git a/features/createroom/impl/src/main/res/values-ka/translations.xml b/features/createroom/impl/src/main/res/values-ka/translations.xml index 45e87809b2..58b02cbe96 100644 --- a/features/createroom/impl/src/main/res/values-ka/translations.xml +++ b/features/createroom/impl/src/main/res/values-ka/translations.xml @@ -7,7 +7,6 @@ "კერძო ოთახი" "ყველას ამ ოთახის მოძებნა შეუძლია. თქვენ ნებისმიერ დროს შეგიძლიათ ამის შეცვლა ოთახის პარამეტრებში." - "საჯარო ოთახი" "ოთახის სახელი" "ოთახის შექმნა" "თემა (სურვილისამებრ)" diff --git a/features/createroom/impl/src/main/res/values-pt-rBR/translations.xml b/features/createroom/impl/src/main/res/values-pt-rBR/translations.xml index b10b86f5a0..9308007154 100644 --- a/features/createroom/impl/src/main/res/values-pt-rBR/translations.xml +++ b/features/createroom/impl/src/main/res/values-pt-rBR/translations.xml @@ -7,7 +7,6 @@ "Sala privativa (somente por convite)" "Qualquer um pode encontrar esta sala. Você pode mudar isso a qualquer momento nas configurações da sala." - "Sala pública (qualquer pessoa)" "Nome da sala" "Criar uma sala" "Tópico (opcional)" diff --git a/features/createroom/impl/src/main/res/values-pt/translations.xml b/features/createroom/impl/src/main/res/values-pt/translations.xml index 60ee753b13..fcff2929e0 100644 --- a/features/createroom/impl/src/main/res/values-pt/translations.xml +++ b/features/createroom/impl/src/main/res/values-pt/translations.xml @@ -3,7 +3,7 @@ "Nova sala" "Convidar pessoas" "Ocorreu um erro ao criar a sala" - "Apenas as pessoas convidadas podem aceder a esta sala. Todas as mensagens são encriptadas ponta a ponta." + "Apenas as pessoas convidadas podem aceder a esta sala. Todas as mensagens são cifradas ponta-a-ponta." "Sala privada" "Qualquer um pode encontrar esta sala. Pode alterar esta opção nas definições da sala." diff --git a/features/createroom/impl/src/main/res/values-ro/translations.xml b/features/createroom/impl/src/main/res/values-ro/translations.xml index 329ca6de1c..7257a07aff 100644 --- a/features/createroom/impl/src/main/res/values-ro/translations.xml +++ b/features/createroom/impl/src/main/res/values-ro/translations.xml @@ -14,7 +14,6 @@ Puteți modifica acest lucru oricând în setări." "Oricine poate cere să se alăture camerei, dar un administrator sau un moderator va trebui să accepte solicitarea" "Cereți să vă alăturați" "Pentru ca această cameră să fie vizibilă în directorul de camere publice, veți avea nevoie de o adresă de cameră." - "Adresa camerei" "Numele camerei" "Creați o cameră" "Subiect (opțional)" diff --git a/features/createroom/impl/src/main/res/values-sv/translations.xml b/features/createroom/impl/src/main/res/values-sv/translations.xml index 980d6ae643..6de56d8f66 100644 --- a/features/createroom/impl/src/main/res/values-sv/translations.xml +++ b/features/createroom/impl/src/main/res/values-sv/translations.xml @@ -13,7 +13,9 @@ Du kan ändra detta när som helst i rumsinställningarna." "Rumsåtkomst" "Vem som helst kan be om att gå med i rummet men en administratör eller en moderator måste acceptera begäran" "Be om att gå med" + "För att detta rum ska vara synligt i den allmänna rumskatalogen behöver du en rumsadress." "Rumsnamn" + "Rumssynlighet" "Skapa ett rum" "Ämne (valfritt)" "Ett fel uppstod när du försökte starta en chatt" diff --git a/features/createroom/impl/src/main/res/values-tr/translations.xml b/features/createroom/impl/src/main/res/values-tr/translations.xml new file mode 100644 index 0000000000..6b5ce93e92 --- /dev/null +++ b/features/createroom/impl/src/main/res/values-tr/translations.xml @@ -0,0 +1,23 @@ + + + "Yeni oda" + "İnsanları davet et" + "Oda oluşturulurken bir hata oluştu" + "Bu odaya yalnızca davet edilen kişiler erişebilir. Tüm mesajlar uçtan uca şifrelenir." + "Özel oda" + "Bu odayı herkes bulabilir. +Bunu istediğiniz zaman oda ayarlarından değiştirebilirsiniz." + "Herkese açık oda" + "Bu odaya herkes katılabilir" + "Herkes" + "Oda Erişimi" + "Herkes odaya katılmayı isteyebilir ancak bir yönetici veya moderatörün isteği kabul etmesi gerekecektir" + "Katılmak için sor" + "Bu odanın genel oda dizininde görünür olması için bir oda adresine ihtiyacınız olacaktır." + "Oda adresi" + "Oda adı" + "Oda görünürlüğü" + "Bir oda oluştur" + "Konu (isteğe bağlı)" + "Sohbet başlatmaya çalışırken bir hata oluştu" + diff --git a/features/createroom/impl/src/main/res/values-uk/translations.xml b/features/createroom/impl/src/main/res/values-uk/translations.xml index a6ad600672..7c73a67640 100644 --- a/features/createroom/impl/src/main/res/values-uk/translations.xml +++ b/features/createroom/impl/src/main/res/values-uk/translations.xml @@ -7,7 +7,7 @@ "Приватна кімната (тільки за запрошенням)" "Будь-хто може знайти цю кімнату. Ви можете змінити це в будь-який час у налаштуваннях кімнати." - "Публічна кімната" + "Загальнодоступна кімната" "Будь-хто може приєднатися до цієї кімнати" "Кожний" "Доступ до кімнати" diff --git a/features/createroom/impl/src/main/res/values-uz/translations.xml b/features/createroom/impl/src/main/res/values-uz/translations.xml index 649bdf8613..e3bc9de528 100644 --- a/features/createroom/impl/src/main/res/values-uz/translations.xml +++ b/features/createroom/impl/src/main/res/values-uz/translations.xml @@ -6,7 +6,6 @@ "Bu xonadagi xabarlar shifrlangan. Keyinchalik shifrlashni o‘chirib bo‘lmaydi." "Shaxsiy xona (faqat taklif)" "Xabarlar shifrlanmagan va har kim ularni o\'qiy oladi. Keyinchalik shifrlashni yoqishingiz mumkin." - "Jamoat xonasi (har kim)" "Xona nomi" "Xonani yaratish" "Mavzu (ixtiyoriy)" diff --git a/features/createroom/impl/src/main/res/values-zh-rTW/translations.xml b/features/createroom/impl/src/main/res/values-zh-rTW/translations.xml index c94c35ad5b..399e5bf1c8 100644 --- a/features/createroom/impl/src/main/res/values-zh-rTW/translations.xml +++ b/features/createroom/impl/src/main/res/values-zh-rTW/translations.xml @@ -7,7 +7,7 @@ "私密聊天室" "任何人都可以找到此聊天室。 您隨時都可以在聊天室設定中變更此設定。" - "公開聊天室" + "公開的聊天室" "任何人都可以加入此聊天室" "任何人" "聊天室存取權" diff --git a/features/createroom/impl/src/main/res/values-zh/translations.xml b/features/createroom/impl/src/main/res/values-zh/translations.xml index 0049da0bbb..24741fdc5b 100644 --- a/features/createroom/impl/src/main/res/values-zh/translations.xml +++ b/features/createroom/impl/src/main/res/values-zh/translations.xml @@ -7,7 +7,7 @@ "私有聊天室" "任何人都能找到此聊天室。 你可以随时在聊天室设置中更改。" - "公开聊天室" + "公共聊天室" "任何人都可以加入此房间" "任何人" "房间访问权限" diff --git a/features/deactivation/impl/src/main/res/values-fr/translations.xml b/features/deactivation/impl/src/main/res/values-fr/translations.xml index 875142bc01..675ac1e1e0 100644 --- a/features/deactivation/impl/src/main/res/values-fr/translations.xml +++ b/features/deactivation/impl/src/main/res/values-fr/translations.xml @@ -10,5 +10,5 @@ "Vous retirer de tous les salons et toutes les discussions." "Supprimer les informations de votre compte du serveur d’identité." "Rendre vos messages invisibles aux futurs membres des salons si vous choisissez de les supprimer. Vos messages seront toujours visibles pour les utilisateurs qui les ont déjà récupérés." - "Désactiver votre compte" + "Désactiver le compte" diff --git a/features/deactivation/impl/src/main/res/values-it/translations.xml b/features/deactivation/impl/src/main/res/values-it/translations.xml index 7cd484d0e4..3fbc9d536b 100644 --- a/features/deactivation/impl/src/main/res/values-it/translations.xml +++ b/features/deactivation/impl/src/main/res/values-it/translations.xml @@ -10,5 +10,5 @@ "Ti rimuove da tutte le stanze di chat." "Elimina le informazioni del tuo account dal nostro server di identità." "I tuoi messaggi saranno ancora visibili agli utenti registrati, ma non saranno disponibili per gli utenti nuovi o non registrati se decidi di eliminarli." - "Disattivazione dell\'account" + "Disattiva account" diff --git a/features/deactivation/impl/src/main/res/values-tr/translations.xml b/features/deactivation/impl/src/main/res/values-tr/translations.xml new file mode 100644 index 0000000000..cc61b80c54 --- /dev/null +++ b/features/deactivation/impl/src/main/res/values-tr/translations.xml @@ -0,0 +1,14 @@ + + + "Lütfen hesabınızı devre dışı bırakmak istediğinizi onaylayın. Bu işlem geri alınamaz." + "Tüm mesajlarımı sil" + "Uyarı: Gelecekteki kullanıcılar eksik konuşmalar görebilir." + "Hesabınızı devre dışı bırakmak %1$s, şunları yapacaktır:" + "geri alınamaz" + "%1$s (tekrar giriş yapamazsınız ve kimliğiniz yeniden kullanılamaz)." + "Kalıcı olarak devre dışı bırak" + "Sizi tüm sohbet odalarından çıkarmak." + "Hesap bilgileriniz kimlik sunucumuzdan silinecek." + "Mesajlarınız kayıtlı kullanıcılar tarafından görülmeye devam eder, ancak silmeyi seçerseniz yeni veya kayıtlı olmayan kullanıcılar tarafından görüntülenemeyecek." + "Hesabı devre dışı bırak" + diff --git a/features/deactivation/impl/src/main/res/values-uk/translations.xml b/features/deactivation/impl/src/main/res/values-uk/translations.xml index 62cf66cec1..04b32df8b2 100644 --- a/features/deactivation/impl/src/main/res/values-uk/translations.xml +++ b/features/deactivation/impl/src/main/res/values-uk/translations.xml @@ -10,5 +10,5 @@ "Видалити вас з усіх чатів." "Видаліть інформацію свого облікового запису з нашого сервера ідентифікації." "Ваші повідомлення залишатимуться видимими для зареєстрованих користувачів, але недоступними для нових або незареєстрованих користувачів, якщо ви вирішите їх видалити." - "Відключити обліковий запис" + "Деактивувати обліковий запис" diff --git a/features/ftue/impl/src/main/res/values-tr/translations.xml b/features/ftue/impl/src/main/res/values-tr/translations.xml new file mode 100644 index 0000000000..a653e93624 --- /dev/null +++ b/features/ftue/impl/src/main/res/values-tr/translations.xml @@ -0,0 +1,11 @@ + + + "Ayarlarınızı daha sonra değiştirebilirsiniz." + "Bildirimlere izin verin ve hiçbir mesajı kaçırmayın" + "Çağrılar, anketler, arama ve daha fazlası bu yıl içinde eklenecek." + "Şifrelenmiş odalar için mesaj geçmişi henüz mevcut değil." + "Düşüncelerinizi bizimle paylaşmanızı çok isteriz. Ayarlar sayfasından düşüncelerinizi bize iletin." + "Hadi başlayalım!" + "İşte bilmeniz gerekenler:" + "%1$s hoş geldiniz!" + diff --git a/features/invite/impl/src/main/res/values-tr/translations.xml b/features/invite/impl/src/main/res/values-tr/translations.xml new file mode 100644 index 0000000000..09beb1f56a --- /dev/null +++ b/features/invite/impl/src/main/res/values-tr/translations.xml @@ -0,0 +1,9 @@ + + + "%1$s katılma davetini reddetmek istediğinizden emin misiniz?" + "Daveti reddet" + "%1$s ile bu özel sohbeti reddetmek istediğinizden emin misiniz?" + "Sohbeti reddet" + "Davet Yok" + "%1$s (%2$s) sizi davet etti" + diff --git a/features/joinroom/impl/src/main/res/values-cs/translations.xml b/features/joinroom/impl/src/main/res/values-cs/translations.xml index 37c537bdce..bab8e1f01e 100644 --- a/features/joinroom/impl/src/main/res/values-cs/translations.xml +++ b/features/joinroom/impl/src/main/res/values-cs/translations.xml @@ -7,6 +7,10 @@ "Ano, zrušit" "Opravdu chcete zrušit svou žádost o vstup do této místnosti?" "Zrušit žádost o vstup" + "Ano, odmítnout a zablokovat" + "Opravdu chcete odmítnout pozvánku do této místnosti? Tím také zabráníte tomu, aby vás %1$s kontaktoval(a) nebo pozval(a) do místností." + "Odmítnout pozvání a zablokovat" + "Odmítnout a zablokovat" "Vstup do místnosti se nezdařil." "Tato místnost je buď určena pouze pro zvané, nebo do ní může být omezen přístup na úrovni prostoru." "Zapomenout na tuto místnost" @@ -17,6 +21,8 @@ "Zpráva (nepovinné)" "Pokud bude váš požadavek přijat, obdržíte pozvánku na vstup do místnosti." "Žádost o vstup odeslána" + "Náhled místnosti se nám nepodařilo zobrazit. To může být způsobeno problémy se sítí nebo serverem." + "Náhled této místnosti jsme nemohli zobrazit" "%1$s zatím nepodporuje prostory. Prostory můžete používat na webu." "Prostory zatím nejsou podporovány" "Klikněte na tlačítko níže a správce místnosti bude informován. Po schválení se budete moci připojit ke konverzaci." diff --git a/features/joinroom/impl/src/main/res/values-de/translations.xml b/features/joinroom/impl/src/main/res/values-de/translations.xml index 5a6d901a3d..980125bb64 100644 --- a/features/joinroom/impl/src/main/res/values-de/translations.xml +++ b/features/joinroom/impl/src/main/res/values-de/translations.xml @@ -7,6 +7,10 @@ "Ja, abbrechen" "Möchten Sie Ihre Beitrittsanfrage für diesen Chatroom wirklich stornieren?" "Beitrittsanfrage stornieren" + "Ja, ablehnen und blockieren" + "Sind Sie sicher, dass Sie die Einladung zu diesem Raum ablehnen möchten? Dadurch wird auch verhindert, dass %1$s Sie kontaktiert oder in Räume einlädt." + "Einladung ablehnen und blockieren" + "Ablehnen und blockieren" "Der Beitritt zum Chatroom schlug fehl." "Dieser Chatroom ist entweder nur auf Einladung zugänglich oder es kann zu Zugangsbeschränkungen auf Spaceebene kommen." "Vergessen Sie diesen Raum" @@ -17,6 +21,8 @@ "Nachricht (optional)" "Falls Ihre Anfrage, dem Raum beizutreten, akzeptiert wird, werden Sie eine Einladung erhalten." "Beitrittsanfrage geschickt" + "Wir konnten die Chatroomvorschau nicht anzeigen. Dies kann an Netzwerk- oder Serverproblemen liegen." + "Wir konnten diese Chatroomvorschau nicht anzeigen" "%1$s unterstützt noch keine Spaces. Du kannst auf Spaces im Web zugreifen." "Spaces werden noch nicht unterstützt" "Klopfe an um einen Administrator zu benachrichtigen. Nach der Freigabe kannst du dich an der Unterhaltung beteiligen." diff --git a/features/joinroom/impl/src/main/res/values-et/translations.xml b/features/joinroom/impl/src/main/res/values-et/translations.xml index 5efaa23a1d..00ae5f18bb 100644 --- a/features/joinroom/impl/src/main/res/values-et/translations.xml +++ b/features/joinroom/impl/src/main/res/values-et/translations.xml @@ -7,6 +7,10 @@ "Jah, tühista" "Kas sa oled kindel, et soovid tühistada oma palve jututoaga liitumiseks?" "Tühista liitumispalve" + "Jah, keeldu ja blokeeri" + "Kas sa oled kindel, et soovid keelduda kutsest sellesse jututuppa? Samaga kaob kasutajal %1$s võimalus sinuga suhelda ja saata sulle jututubade kutseid." + "Keeldu kutsest ja blokeeri" + "Keeldu ja blokeeri" "Jututoaga liitumine ei õnnestunud." "Ligipääs siia jututuppa on võimalik vaid kutse alusel või kehtivad siin kogukonnakohased piirangud." "Unusta see jututuba" @@ -17,6 +21,8 @@ "Selgitus (kui soovid lisada)" "Kui sinu liitumispalvega ollakse nõus, siis saad kutse jututoaga liitumiseks." "Liitumispalve on saadetud" + "Me ei saanud jututoa eelvaadet näidata. See võib olla põhjustatud võrguühenduse või serveri vigadest." + "Meil ei õnnestunud selle jututoa eelvaadet kuvada" "%1$s veel ei toeta kogukondadega liitumise ja kasutamise võimalust. Vajadusel saad seda teha veebiliidese vahendusel." "Kogukonnad pole veel toetatud" "Klõpsi allolevat nuppu ja jututoa haldaja saab asjakohase teate. Sa saad liituda, kui haldaja sinu soovi heaks kiidab." diff --git a/features/joinroom/impl/src/main/res/values-fr/translations.xml b/features/joinroom/impl/src/main/res/values-fr/translations.xml index e8ca43e13b..5d63e8f7a1 100644 --- a/features/joinroom/impl/src/main/res/values-fr/translations.xml +++ b/features/joinroom/impl/src/main/res/values-fr/translations.xml @@ -7,6 +7,10 @@ "Oui, annuler" "Êtes-vous sûr de vouloir annuler votre demande d’accès à ce salon ?" "Annuler la demande d’adhésion" + "Oui, refuser et bloquer" + "Êtes-vous sûr de vouloir refuser l’invitation à rejoindre ce salon ? Cela empêchera également %1$s de vous contacter ou de vous inviter dans les salons." + "Refuser l’invitation et bloquer" + "Refuser et bloquer" "Rejoindre le salon a échoué." "Ce salon est accessible uniquement sur invitation ou il peut y avoir des restrictions d’accès au niveau du Space." "Oublier ce salon" @@ -17,6 +21,8 @@ "Message (facultatif)" "Vous recevrez une invitation à rejoindre le salon si votre demande est acceptée." "Demande de rejoindre le salon envoyée" + "Impossible d’afficher l’aperçu du salon. Cela peut être dû à des problèmes de réseau ou de serveur." + "Impossible d’afficher l’aperçu de ce salon" "Les Spaces ne sont pas encore pris en charge par %1$s . Vous pouvez voir les Spaces sur le Web." "Les Spaces ne sont pas encore pris en charge" "Cliquez ci-dessous et un administrateur sera prévenu. Une fois votre demande approuvée, pour pourrez rejoindre la discussion." diff --git a/features/joinroom/impl/src/main/res/values-hu/translations.xml b/features/joinroom/impl/src/main/res/values-hu/translations.xml index 5073b034fc..e6b461abee 100644 --- a/features/joinroom/impl/src/main/res/values-hu/translations.xml +++ b/features/joinroom/impl/src/main/res/values-hu/translations.xml @@ -7,6 +7,10 @@ "Igen, visszavonás" "Biztos, hogy visszavonja a szobához való csatlakozási kérését?" "Csatlakozási kérés visszavonása" + "Igen, elutasítás és blokkolás" + "Biztos, hogy elutasítja a meghívást, hogy csatlakozzon ehhez a szobához? Ez azt is megakadályozza, hogy %1$s kapcsolatba lépjen Önnel, vagy szobákba hívja." + "Meghívó elutasítása és blokkolás" + "Elutasítás és blokkolás" "A szobához való csatlakozás sikertelen." "Ebbe a szobába csak meghívóval vagy tértagsággal lehet belépni." "Szoba elfelejtése" @@ -17,6 +21,8 @@ "Üzenet (nem kötelező)" "Ha a kérését elfogadják, meghívót kap a szobához való csatlakozáshoz." "Csatlakozási kérés elküldve" + "Nem tudtuk megjeleníteni a szoba előnézetét. Ennek az oka hálózati vagy kiszolgálóprobléma is lehet." + "Nem tudtuk megjeleníteni a szoba előnézetét" "Az %1$s még nem támogatja a tereket. A tereket a weben érheti el." "A terek még nem támogatottak" "Kattintson az alábbi gombra, és a szoba adminisztrátora értesítést kap. A jóváhagyást követően csatlakozhat a beszélgetéshez." diff --git a/features/joinroom/impl/src/main/res/values-pl/translations.xml b/features/joinroom/impl/src/main/res/values-pl/translations.xml index 758d8d5615..56f16fc475 100644 --- a/features/joinroom/impl/src/main/res/values-pl/translations.xml +++ b/features/joinroom/impl/src/main/res/values-pl/translations.xml @@ -1,14 +1,28 @@ + "Zostałeś zbanowany z tego pokoju przez %1$s." + "Zostałeś zbanowany z tego pokoju" + "Powód: %1$s." "Anuluj prośbę" "Tak, anuluj" "Czy na pewno chcesz anulować prośbę o dołączenie do tego pokoju?" "Anuluj prośbę o dołączenie" + "Tak, odrzuć i zablokuj" + "Czy na pewno chcesz odrzucić zaproszenie dołączenia do tego pokoju? %1$s nie będzie mógł się również z Tobą skontaktować, ani zaprosić Cię do pokoju." + "Odrzuć zaproszenie i zablokuj" + "Odrzuć i zablokuj" + "Nie udało się dołączyć do pokoju." + "Ten pokój wymaga zaproszenia lub jest ograniczony z poziomu przestrzeni." + "Zapomnij o tym pokoju" + "Potrzebujesz zaproszenia, aby dołączyć do tego pokoju" "Dołącz do pokoju" + "Aby dołączyć, musisz uzyskać zaproszenie lub być członkiem danej przestrzeni." "Wyślij prośbę o dołączenie" "Wiadomość (opcjonalne)" "Otrzymasz zaproszenie dołączenia do pokoju, jeśli prośba zostanie zaakceptowana." "Wysłano prośbę o dołączenie" + "Nie udało się wyświetlić podglądu pokoju. Może to być spowodowane problemami z siecią lub serwerem." + "Nie udało nam się wyświetlić podglądu tego pokoju" "%1$s jeszcze nie obsługuje przestrzeni. Uzyskaj dostęp do przestrzeni w wersji web." "Przestrzenie nie są jeszcze obsługiwane" "Kliknij przycisk poniżej, aby powiadomić administratora pokoju. Po zatwierdzeniu będziesz mógł dołączyć do rozmowy." diff --git a/features/joinroom/impl/src/main/res/values-pt/translations.xml b/features/joinroom/impl/src/main/res/values-pt/translations.xml index 93eeaf3bca..ffca14b009 100644 --- a/features/joinroom/impl/src/main/res/values-pt/translations.xml +++ b/features/joinroom/impl/src/main/res/values-pt/translations.xml @@ -1,14 +1,28 @@ + "Foste banido desta sala por %1$s." + "Foste banido desta sala." + "Razão: %1$s." "Cancelar pedido" "Sim, cancelar" "Tens a certeza de que queres cancelar o teu pedido de entrada nesta sala?" "Cancela o pedido de adesão" + "Sim, recusar & bloquear" + "Tens a certeza de que queres recusar o convite para entrar nesta sala? Isto também evitará que %1$s te contacte ou te convide para salas." + "Recusar convite & bloquear" + "Recusar e bloquear" + "Falha ao entrar na sala." + "A entrada nesta sala ou está limitada a convites ou a alguma configuração de espaço." + "Esquecer esta sala" + "Precisas de um convite para entrares nesta sala" "Entrar na sala" + "Podes ter que ser convidado ou pertenceres a um espaço para poderes entrar." "Bater à porta" "Mensagem (opcional)" "Irá receber um convite para participar na sala se seu pedido for aceite." "Pedido de adesão enviado" + "Não conseguimos exibir a pré-visualização da sala. Isso pode ser devido a problemas de rede ou servidor." + "Não foi possível exibir a pré-visualização desta sala" "A %1$s ainda não funciona com espaços. Podes usá-los na aplicação web." "Os espaços ainda não estão implementados" "Carrega no botão abaixo para notificar um administrador da sala. Poderás entrar quando te aprovarem." diff --git a/features/joinroom/impl/src/main/res/values-ru/translations.xml b/features/joinroom/impl/src/main/res/values-ru/translations.xml index b26afac133..bf35a89aa0 100644 --- a/features/joinroom/impl/src/main/res/values-ru/translations.xml +++ b/features/joinroom/impl/src/main/res/values-ru/translations.xml @@ -17,6 +17,7 @@ "Сообщение (опционально)" "Вы получите приглашение присоединиться к комнате, как только ваш запрос будет принят." "Запрос на присоединение отправлен" + "Не удалось отобразить предварительный просмотр комнаты. Это может быть связано с проблемами сети или сервера." "%1$s еще не поддерживает пространства. Вы можете получить к ним доступ в веб-версии." "Пространства пока не поддерживаются" "Нажмите кнопку ниже и администратор комнаты получит уведомление. После одобрения вы сможете присоединиться к обсуждению." diff --git a/features/joinroom/impl/src/main/res/values-sk/translations.xml b/features/joinroom/impl/src/main/res/values-sk/translations.xml index 4eeab053dd..645c523c61 100644 --- a/features/joinroom/impl/src/main/res/values-sk/translations.xml +++ b/features/joinroom/impl/src/main/res/values-sk/translations.xml @@ -7,6 +7,10 @@ "Áno, zrušiť" "Ste si istí, že chcete zrušiť svoju žiadosť o vstup do tejto miestnosti?" "Zrušiť žiadosť o pripojenie" + "Áno, odmietnuť a zablokovať" + "Ste si istí, že chcete odmietnuť pozvanie na vstup do tejto miestnosti? To tiež zabráni tomu, aby vás %1$s kontaktoval/a alebo vás pozval/a do miestností." + "Odmietnuť pozvánku a zablokovať" + "Odmietnuť a zablokovať" "Pripojenie do miestnosti zlyhalo." "Táto miestnosť je buď len pre pozvaných, alebo môžu existovať obmedzenia na prístup na úrovni priestoru." "Zabudnúť túto miestnosť" @@ -17,6 +21,8 @@ "Správa (voliteľné)" "Ak bude vaša žiadosť prijatá, dostanete pozvánku na vstup do miestnosti." "Žiadosť o pripojenie bola odoslaná" + "Nepodarilo sa zobraziť ukážku miestnosti. Môže to byť spôsobené problémami so sieťou alebo serverom." + "Ukážku tejto miestnosti sa nepodarilo zobraziť" "%1$s zatiaľ nepodporuje priestory. K priestorom môžete pristupovať na webe." "Priestory zatiaľ nie sú podporované" "Kliknite na tlačidlo nižšie a správca miestnosti bude informovaný. Po schválení sa budete môcť pripojiť ku konverzácii." diff --git a/features/joinroom/impl/src/main/res/values-sv/translations.xml b/features/joinroom/impl/src/main/res/values-sv/translations.xml index a61bce02a4..b44672871d 100644 --- a/features/joinroom/impl/src/main/res/values-sv/translations.xml +++ b/features/joinroom/impl/src/main/res/values-sv/translations.xml @@ -1,6 +1,9 @@ "Avbryt begäran" + "Ja, avbryt" + "Är du säker på att du vill avbryta din begäran om att gå med i det här rummet?" + "Avbryt begäran om att gå med" "Gå med i rummet" "Knacka för att gå med" "Meddelande (valfritt)" diff --git a/features/joinroom/impl/src/main/res/values-tr/translations.xml b/features/joinroom/impl/src/main/res/values-tr/translations.xml new file mode 100644 index 0000000000..fb3edc84b2 --- /dev/null +++ b/features/joinroom/impl/src/main/res/values-tr/translations.xml @@ -0,0 +1,32 @@ + + + "%1$s tarafından bu odadan yasaklandınız." + "Bu odadan yasaklandın" + "Neden: %1$s." + "İsteği iptal et" + "Evet, iptal et" + "Bu odaya katılma isteğinizi iptal etmek istediğinizden emin misiniz?" + "Katılma isteğini iptal et" + "Evet, reddet ve engelle" + "Bu odaya katılma davetini reddetmek istediğinizden emin misiniz? Bu aynı zamanda %1$s sizinle iletişim kurmasını veya sizi odalara davet etmesini de engeller." + "Daveti reddet ve engelle" + "Reddet ve engelle" + "Odaya katılım başarısız oldu." + "Bu odaya yalnızca davetle girilebilir veya alan düzeyinde erişim kısıtlamaları olabilir." + "Bu odayı unut" + "Bu odaya katılmak için bir davete ihtiyacınız var" + "Odaya katıl" + "Katılmak için davet edilmeniz veya bir alana üye olmanız gerekebilir." + "Katılma isteği gönder" + "Mesaj (isteğe bağlı)" + "Talebiniz kabul edilirse odaya katılmanız için bir davet alacaksınız." + "Katılma isteği gönderildi" + "Oda önizlemesini görüntüleyemedik. Bunun nedeni ağ veya sunucu sorunları olabilir." + "Bu oda önizlemesini görüntüleyemedik" + "%1$s henüz alanları desteklemiyor. Alanlara web üzerinden erişebilirsiniz." + "Alanlar henüz desteklenmiyor" + "Aşağıdaki düğmeyi tıkladığınızda bir oda yöneticisi bilgilendirilecektir. Onaylandıktan sonra görüşmeye katılabilirsiniz." + "Mesaj geçmişini görüntülemek için bu odaya üye olmanız gerekmektedir." + "Bu odaya katılmak ister misiniz?" + "Önizleme mevcut değil" + diff --git a/features/joinroom/impl/src/main/res/values-uk/translations.xml b/features/joinroom/impl/src/main/res/values-uk/translations.xml index 371ed60c94..72a085042f 100644 --- a/features/joinroom/impl/src/main/res/values-uk/translations.xml +++ b/features/joinroom/impl/src/main/res/values-uk/translations.xml @@ -1,14 +1,28 @@ + "%1$s забороняє вам відвідувати цю кімнату." + "Вам заборонили відвідувати цю кімнату" + "Причина: %1$s." "Скасувати запит" "Так, скасувати" "Ви впевнені, що бажаєте скасувати свій запит на приєднання до цієї кімнати?" "Скасувати запит на приєднання" + "Так, відхилити та заблокувати" + "Ви впевнені, що хочете відхилити запрошення приєднатися до цієї кімнати? Це також завадить %1$s зв\'язатися з вами або запрошувати вас в кімнати." + "Відхилити запрошення та заблокувати" + "Відхилити та заблокувати" + "Не вдалося приєднатися до кімнати." + "Ця кімната доступна лише за запрошенням або на рівні простору можуть бути обмеження доступу." + "Забути цю кімнату" + "Вам потрібне запрошення, щоб приєднатися до цієї кімнати" "Приєднатися до кімнати" + "Можливо, вам знадобиться отримати запрошення або стати учасником простору, щоб приєднатися." "Постукати, щоб приєднатися" "Повідомлення (необов\'язково)" "Ви отримаєте запрошення приєднатися до кімнати, якщо ваш запит буде прийнятий." "Запит на приєднання надіслано" + "Ми не змогли показати попередній перегляд кімнати. Це може бути пов\'язано з проблемами мережі або сервера." + "Ми не можемо показати попередній перегляд цієї кімнати" "%1$s ще не підтримує простори. Ви можете отримати доступ до них у вебверсії." "Простори поки що не підтримуються" "Натисніть кнопку нижче, і адміністратор кімнати отримає сповіщення. Ви зможете приєднатися до розмови після схвалення." diff --git a/features/joinroom/impl/src/main/res/values/localazy.xml b/features/joinroom/impl/src/main/res/values/localazy.xml index 22a1abeacc..a3e91c542c 100644 --- a/features/joinroom/impl/src/main/res/values/localazy.xml +++ b/features/joinroom/impl/src/main/res/values/localazy.xml @@ -7,6 +7,10 @@ "Yes, cancel" "Are you sure that you want to cancel your request to join this room?" "Cancel request to join" + "Yes, decline & block" + "Are you sure you want to decline the invite to join this room? This will also prevent %1$s from contacting you or inviting you to rooms." + "Decline invite & block" + "Decline and block" "Joining the room failed." "This room is either invite-only or there might be restrictions to access at space level." "Forget this room" diff --git a/features/knockrequests/impl/src/main/res/values-be/translations.xml b/features/knockrequests/impl/src/main/res/values-be/translations.xml new file mode 100644 index 0000000000..e6f08bc320 --- /dev/null +++ b/features/knockrequests/impl/src/main/res/values-be/translations.xml @@ -0,0 +1,4 @@ + + + "Прыняць" + diff --git a/features/knockrequests/impl/src/main/res/values-bg/translations.xml b/features/knockrequests/impl/src/main/res/values-bg/translations.xml new file mode 100644 index 0000000000..108ffb122e --- /dev/null +++ b/features/knockrequests/impl/src/main/res/values-bg/translations.xml @@ -0,0 +1,4 @@ + + + "Приемане" + diff --git a/features/knockrequests/impl/src/main/res/values-es/translations.xml b/features/knockrequests/impl/src/main/res/values-es/translations.xml new file mode 100644 index 0000000000..66914c9c89 --- /dev/null +++ b/features/knockrequests/impl/src/main/res/values-es/translations.xml @@ -0,0 +1,4 @@ + + + "Aceptar" + diff --git a/features/knockrequests/impl/src/main/res/values-fa/translations.xml b/features/knockrequests/impl/src/main/res/values-fa/translations.xml new file mode 100644 index 0000000000..33e231cb85 --- /dev/null +++ b/features/knockrequests/impl/src/main/res/values-fa/translations.xml @@ -0,0 +1,4 @@ + + + "پذیرش" + diff --git a/features/knockrequests/impl/src/main/res/values-hu/translations.xml b/features/knockrequests/impl/src/main/res/values-hu/translations.xml index 2ae4a79857..c01121ae83 100644 --- a/features/knockrequests/impl/src/main/res/values-hu/translations.xml +++ b/features/knockrequests/impl/src/main/res/values-hu/translations.xml @@ -24,7 +24,7 @@ "Ha valaki csatlakozni kíván a szobához, itt láthatja a kérését." "Nincs függőben lévő csatlakozási kérelem" "Csatlakozási kérések betöltése…" - "Csatlakozási kérelmek" + "Csatlakozási kérelem" "%1$s és még %2$d felhasználó szeretne csatlakozni ehhez a szobához" "%1$s és még %2$d felhasználó szeretne csatlakozni ehhez a szobához" diff --git a/features/knockrequests/impl/src/main/res/values-ka/translations.xml b/features/knockrequests/impl/src/main/res/values-ka/translations.xml new file mode 100644 index 0000000000..ce6628b264 --- /dev/null +++ b/features/knockrequests/impl/src/main/res/values-ka/translations.xml @@ -0,0 +1,4 @@ + + + "მიღება" + diff --git a/features/knockrequests/impl/src/main/res/values-nb/translations.xml b/features/knockrequests/impl/src/main/res/values-nb/translations.xml new file mode 100644 index 0000000000..33afe86da7 --- /dev/null +++ b/features/knockrequests/impl/src/main/res/values-nb/translations.xml @@ -0,0 +1,4 @@ + + + "Godta" + diff --git a/features/knockrequests/impl/src/main/res/values-nl/translations.xml b/features/knockrequests/impl/src/main/res/values-nl/translations.xml new file mode 100644 index 0000000000..46787d05e0 --- /dev/null +++ b/features/knockrequests/impl/src/main/res/values-nl/translations.xml @@ -0,0 +1,4 @@ + + + "Accepteren" + diff --git a/features/knockrequests/impl/src/main/res/values-pt-rBR/translations.xml b/features/knockrequests/impl/src/main/res/values-pt-rBR/translations.xml new file mode 100644 index 0000000000..ebece87661 --- /dev/null +++ b/features/knockrequests/impl/src/main/res/values-pt-rBR/translations.xml @@ -0,0 +1,4 @@ + + + "Aceitar" + diff --git a/features/knockrequests/impl/src/main/res/values-pt/translations.xml b/features/knockrequests/impl/src/main/res/values-pt/translations.xml index 1ba0fe34d3..255c9d5202 100644 --- a/features/knockrequests/impl/src/main/res/values-pt/translations.xml +++ b/features/knockrequests/impl/src/main/res/values-pt/translations.xml @@ -4,15 +4,26 @@ "Tens a certeza de que queres aceitar todos os pedidos de entrada?" "Aceitar todos os pedidos" "Aceitar todos" + "Não foi possível aceitar todos os pedidos. Queres tentar novamente?" + "Falha ao aceitar todos os pedidos" + "A aceitar todos os pedidos de entrada" + "Não foi possível aceitar este pedido. Queres tentar novamente?" + "Falha ao aceitar pedido" + "A aceitar pedido de entrada" "Sim, recusar e proibir" "Tens a certeza de que queres recusar e banir %1$s? Este utilizador não poderá voltar a pedir para entrar nesta sala." "Recusar e banir" - "Sim, recusar" + "A rejeitar pedido e a banir o utilizador" + "Sim, rejeitar" "Tens a certeza que queres recusar o pedido de entrada de %1$s?" - "Recusar entrada" + "Rejeitar entrada" "Recusar e banir" + "Não foi possível rejeitar este pedido. Queres tentar novamente?" + "Falha ao rejeitar pedido" + "A rejeitar pedido de entrada" "Quando alguém pedir para entrar na sala, irás poder rever o pedido aqui." "Sem pedidos de entrada" + "A carregar pedidos de entrada…" "Pedidos de entrada" "%1$s +%2$d outro querem entrar nesta sala" diff --git a/features/knockrequests/impl/src/main/res/values-ro/translations.xml b/features/knockrequests/impl/src/main/res/values-ro/translations.xml new file mode 100644 index 0000000000..2a75681c5d --- /dev/null +++ b/features/knockrequests/impl/src/main/res/values-ro/translations.xml @@ -0,0 +1,4 @@ + + + "Acceptați" + diff --git a/features/knockrequests/impl/src/main/res/values-ru/translations.xml b/features/knockrequests/impl/src/main/res/values-ru/translations.xml index 3447cd0bc7..f5e91a469a 100644 --- a/features/knockrequests/impl/src/main/res/values-ru/translations.xml +++ b/features/knockrequests/impl/src/main/res/values-ru/translations.xml @@ -24,14 +24,14 @@ "Вы сможете увидеть запрос, когда кто-то попросит присоединиться к комнате." "Нет ожидающих запросов на присоединение" "Загрузка запросов на присоединение…" - "Запросы на присоединение" + "Запросы на вступление" "%1$s +%2$d хочет присоединиться к этой комнате" "%1$s +%2$d хотят присоединиться к этой комнате" "%1$s +%2$d хотят присоединиться к этой комнате" "Показать все" - "Принять" + "Разрешить" "%1$s хочет присоединиться к этой комнате" "Просмотр" diff --git a/features/knockrequests/impl/src/main/res/values-sk/translations.xml b/features/knockrequests/impl/src/main/res/values-sk/translations.xml index e8df24e46b..12cc86d327 100644 --- a/features/knockrequests/impl/src/main/res/values-sk/translations.xml +++ b/features/knockrequests/impl/src/main/res/values-sk/translations.xml @@ -24,7 +24,7 @@ "Keď niekto požiada, aby sa pripojil k miestnosti, jeho žiadosť si môžete pozrieť tu." "Žiadna čakajúca žiadosť o pripojenie" "Načítavajú sa žiadosti o pripojenie…" - "Žiadosti o pripojenie" + "Žiadosti o vstup" "%1$s +%2$d ďalší chcú vstúpiť do tejto miestnosti" "%1$s +%2$d ďalší chcú vstúpiť do tejto miestnosti" diff --git a/features/knockrequests/impl/src/main/res/values-sv/translations.xml b/features/knockrequests/impl/src/main/res/values-sv/translations.xml new file mode 100644 index 0000000000..a51c979427 --- /dev/null +++ b/features/knockrequests/impl/src/main/res/values-sv/translations.xml @@ -0,0 +1,31 @@ + + + "Ja, acceptera alla" + "Är du säker på att du vill acceptera alla förfrågningar om att gå med?" + "Acceptera alla förfrågningar" + "Acceptera alla" + "Misslyckades att acceptera alla förfrågningar" + "Accepterar alla förfrågningar om att gå med" + "Accepterar begäran om att gå med" + "Ja, avslå och förbjud" + "Är du säker på att du vill avvisa och förbjuda%1$s? Den här användaren kommer inte att kunna begära åtkomst för att gå med i det här rummet igen." + "Avvisa och förbjud åtkomst" + "Avvisar och bannar åtkomst" + "Ja, avböj" + "Är du säker på att du vill avslå %1$s begäran om att gå med i det här rummet?" + "Avvisa åtkomst" + "Avvisa och förbjud" + "Avvisa begäran om att gå med" + "När någon begär om att gå med i rummet, kan du se deras förfrågan här." + "Ingen väntande begäran om att gå med" + "Laddar förfrågningar om att gå med …" + "Begäran om att gå med" + + "%1$s+ %2$d annan vill gå med i detta rum" + "%1$s+ %2$d andra vill gå med i detta rum" + + "Visa alla" + "Godkänn" + "%1$s vill gå med i det här rummet" + "Visa" + diff --git a/features/knockrequests/impl/src/main/res/values-tr/translations.xml b/features/knockrequests/impl/src/main/res/values-tr/translations.xml new file mode 100644 index 0000000000..b6a070ee08 --- /dev/null +++ b/features/knockrequests/impl/src/main/res/values-tr/translations.xml @@ -0,0 +1,36 @@ + + + "Evet, tümünü kabul et" + "Tüm katılma isteklerini kabul etmek istediğinizden emin misiniz?" + "Tüm istekleri kabul et" + "Tümünü kabul et" + "Tüm istekleri kabul edemedik. Tekrar denemek ister misiniz?" + "Tüm istekler kabul edilemedi" + "Tüm katılım istekleri kabul ediliyor" + "Bu isteği kabul edemedik. Tekrar denemek ister misiniz?" + "İstek kabul edilemedi" + "Katılma isteği kabul ediliyor" + "Evet, reddet ve yasakla" + "%1$s reddetmek ve yasaklamak istediğinizden emin misiniz? Bu kullanıcı, bu odaya tekrar katılmak için erişim isteğinde bulunamaz." + "Reddet ve erişimi yasakla" + "Reddediliyor ve erişim yasaklanıyor" + "Evet, reddet" + "Bu odaya katılma isteğini reddetmek istediğinizden emin misiniz %1$s?" + "Erişimi reddet" + "Reddet ve yasakla" + "Bu isteği reddedemedik. Tekrar denemek ister misiniz?" + "İsteği reddetme başarısız oldu" + "Katılma isteği reddediliyor" + "Birisi odaya katılmak istediğinde, isteklerini burada görebileceksiniz." + "Bekleyen katılım isteği yok" + "Katılma istekleri yükleniyor…" + "Katılma istekleri" + + "%1$s +%2$d kişi daha bu odaya katılmak istiyor" + "%1$s +%2$d kişi daha bu odaya katılmak istiyor" + + "Tümünü görüntüle" + "Kabul et" + "%1$s bu odaya katılmak istiyor" + "Görüntüle" + diff --git a/features/knockrequests/impl/src/main/res/values-uz/translations.xml b/features/knockrequests/impl/src/main/res/values-uz/translations.xml new file mode 100644 index 0000000000..d7e6705e67 --- /dev/null +++ b/features/knockrequests/impl/src/main/res/values-uz/translations.xml @@ -0,0 +1,4 @@ + + + "Qabul qiling" + diff --git a/features/leaveroom/api/src/main/res/values-tr/translations.xml b/features/leaveroom/api/src/main/res/values-tr/translations.xml new file mode 100644 index 0000000000..39ba596628 --- /dev/null +++ b/features/leaveroom/api/src/main/res/values-tr/translations.xml @@ -0,0 +1,7 @@ + + + "Bu sohbetten ayrılmak istediğinizden emin misiniz? Bu sohbet herkese açık değil ve davet olmadan tekrar katılamayacaksınız." + "Bu odadan ayrılmak istediğinizden emin misiniz? Burada tek kişi sizsiniz. Ayrılırsanız, siz de dahil olmak üzere gelecekte kimse katılamayacak." + "Bu odadan ayrılmak istediğinizden emin misiniz? Bu oda herkese açık değildir ve davet olmadan tekrar katılamazsınız." + "Odadan çıkmak istediğinden emin misin?" + diff --git a/features/lockscreen/impl/src/main/res/values-sv/translations.xml b/features/lockscreen/impl/src/main/res/values-sv/translations.xml index d022e6b953..a559e4c909 100644 --- a/features/lockscreen/impl/src/main/res/values-sv/translations.xml +++ b/features/lockscreen/impl/src/main/res/values-sv/translations.xml @@ -3,6 +3,7 @@ "biometrisk autentisering" "biometrisk upplåsning" "Lås upp med biometri" + "Bekräfta biometriskt" "Glömt PIN-kod?" "Byt PIN-kod" "Tillåt biometrisk upplåsning" diff --git a/features/lockscreen/impl/src/main/res/values-tr/translations.xml b/features/lockscreen/impl/src/main/res/values-tr/translations.xml new file mode 100644 index 0000000000..5a9b94af11 --- /dev/null +++ b/features/lockscreen/impl/src/main/res/values-tr/translations.xml @@ -0,0 +1,38 @@ + + + "biyometrik kimlik doğrulama" + "biyometrik kilit açma" + "Biyometrik ile kilit aç" + "Biyometrik doğrulama" + "PIN\'i unuttum" + "PIN kodunu değiştir" + "Biyometrik kilit açmaya izin ver" + "PIN kodunu kaldır" + "PIN\'i kaldırmak istediğinizden emin misiniz?" + "PIN\'i kaldır?" + "İzin ver %1$s" + "PIN kullanmayı tercih ederim" + "%1$s kullanarak oturum açarken kendinize zaman kazandırın" + "PIN Seç" + "PIN\'i onayla" + "Sohbetlerinize ekstra güvenlik eklemek için %1$s kilitleyin. + +Hatırlanabilir bir şey seçin. Bu PIN\'i unutursanız, uygulamadan çıkış yaparsınız." + "Güvenlik nedeniyle bunu PIN kodunuz olarak seçemezsiniz" + "Farklı bir PIN seçin" + "Lütfen aynı PIN\'i iki kez girin" + "PIN\'ler eşleşmiyor" + "Devam etmek için yeniden oturum açmanız ve yeni bir PIN oluşturmanız gerekir" + "Oturumunuz kapatılıyor" + + "Kilidi açmak için %1$d deneme hakkınız var" + "Kilidi açmak için %1$d deneme hakkınız var" + + + "Yanlış PIN. %1$d kere daha şansınız var" + "Yanlış PIN. %1$d kere daha şansınız var" + + "Biyometrik kullan" + "PIN kullan" + "Oturum kapatılıyor…" + diff --git a/features/login/impl/src/main/res/values-bg/translations.xml b/features/login/impl/src/main/res/values-bg/translations.xml index eced3ef828..fc512422e9 100644 --- a/features/login/impl/src/main/res/values-bg/translations.xml +++ b/features/login/impl/src/main/res/values-bg/translations.xml @@ -12,6 +12,7 @@ "Използвайте друг доставчик на акаунт, като например собствен частен сървър или работен акаунт." "Промяна на доставчика на акаунт" "Какъв е адресът на вашия сървър?" + "Създаване на акаунт" "Този акаунт бе деактивиран." "Неправилно потребителско име и/или парола" "Въведете своите данни" diff --git a/features/login/impl/src/main/res/values-es/translations.xml b/features/login/impl/src/main/res/values-es/translations.xml index 60324ae89d..68851e411c 100644 --- a/features/login/impl/src/main/res/values-es/translations.xml +++ b/features/login/impl/src/main/res/values-es/translations.xml @@ -21,6 +21,7 @@ "Solo puedes conectarte a un servidor que soporte sliding sync. El administrador de tu servidor tendrá que configurarlo. %1$s" "¿Cuál es la dirección de tu servidor?" "Selecciona tu servidor" + "Crear cuenta" "Esta cuenta ha sido desactivada." "Usuario y/o contraseña incorrectos" "Este no es un id de usuario válido. Formato esperado: \'@user:homeserver.org\'" diff --git a/features/login/impl/src/main/res/values-ka/translations.xml b/features/login/impl/src/main/res/values-ka/translations.xml index 6c0ce2adab..0b5c5ec6b5 100644 --- a/features/login/impl/src/main/res/values-ka/translations.xml +++ b/features/login/impl/src/main/res/values-ka/translations.xml @@ -19,6 +19,7 @@ "თქვენ შეგიძლიათ დაუკავშირდეთ მხოლოდ იმ სერვერს, რომელიც მხარს უჭერს \"sliding sync\"-ს. თქვენი სახლის სერვერის ადმინისტრატორს დასჭირდება მისი კონფიგურაცია.%1$s" "რა არის თქვენი სერვერის მისამართი?" "აირჩიეთ თქვენი სერვერი" + "ანგარიშის შექმნა" "ეს ანგარიში დეაქტივირებულია." "არასწორი მომხმარებლის სახელი და/ან პაროლი" "მოცემული მომხმარებლის იდენტიფიკატორი არასწორია. დასაშვები ფორმატი: ‘@user:homeserver.org’" diff --git a/features/login/impl/src/main/res/values-nb/translations.xml b/features/login/impl/src/main/res/values-nb/translations.xml index c901908fa5..1637040c4c 100644 --- a/features/login/impl/src/main/res/values-nb/translations.xml +++ b/features/login/impl/src/main/res/values-nb/translations.xml @@ -1,5 +1,6 @@ + "Bytt kontotilbyder" "Hjemmeserveradresse" "Søk etter et selskap, fellesskap eller privat server." "Finn en kontoleverandør" @@ -7,10 +8,15 @@ "Du er i ferd med å logge inn på %s" "Det er her samtalene dine vil ligge - akkurat som du ville brukt en e-postleverandør til å oppbevare e-postene dine." "Du er i ferd med å opprette en konto på %s" + "Annet" + "Bruk en annen kontotilbyder, for eksempel din egen private server eller en arbeidskonto." + "Bytt kontotilbyder" "Vi kunne ikke nå denne hjemmeserveren. Kontroller at du har skrevet inn hjemmeserverens URL riktig. Hvis URL-en er riktig, kontakt administratoren for hjemmeserveren din for å få mer hjelp." "Denne serveren støtter for øyeblikket ikke sliding sync." "URL til hjemmeserver" + "Du kan bare koble til en eksisterende server som støtter sliding sync. Administrator for din hjemmeserver må konfigurere det. %1$s" "Hva er adressen til serveren din?" + "Opprett konto" "Denne kontoen er deaktivert." "Feil brukernavn og/eller passord" "Dette er ikke en gyldig brukeridentifikator. Forventet format: \'@bruker:homeserver.org\'" @@ -18,6 +24,8 @@ "Skriv inn opplysningene dine" "Matrix er et åpent nettverk for sikker, desentralisert kommunikasjon." "Velkommen tilbake!" + "Logg inn på %1$s" + "Bytt kontotilbyder" "En privat server for Element-ansatte." "Matrix er et åpent nettverk for sikker, desentralisert kommunikasjon." "Det er her samtalene dine vil ligge - akkurat som du ville brukt en e-postleverandør til å oppbevare e-postene dine." diff --git a/features/login/impl/src/main/res/values-pt-rBR/translations.xml b/features/login/impl/src/main/res/values-pt-rBR/translations.xml index 5ceebd308e..ec80fa9cdb 100644 --- a/features/login/impl/src/main/res/values-pt-rBR/translations.xml +++ b/features/login/impl/src/main/res/values-pt-rBR/translations.xml @@ -19,6 +19,7 @@ "Você só pode se conectar a um servidor existente que ofereça suporte à tecnologia sliding sync. O administrador do seu servidor precisará configurá-lo. %1$s" "Qual é o endereço do seu servidor?" "Selecione seu servidor" + "Criar conta" "Essa conta foi desativada." "Nome de usuário e/ou senha incorretos" "Esse não é um identificador de usuário válido. Formato esperado: \'@usuário:servidor.org\'" diff --git a/features/login/impl/src/main/res/values-pt/translations.xml b/features/login/impl/src/main/res/values-pt/translations.xml index d5489c90f7..de06747232 100644 --- a/features/login/impl/src/main/res/values-pt/translations.xml +++ b/features/login/impl/src/main/res/values-pt/translations.xml @@ -44,8 +44,8 @@ "O outro dispositivo não tem a sessão iniciada" "O início de sessão foi cancelado no outro dispositivo." "Pedido de início de sessão cancelado" - "O início de sessão foi recusado no outro dispositivo." - "Início de sessão cancelado" + "O início de sessão foi rejeitado no outro dispositivo." + "Início de sessão rejeitado" "O início de sessão expirou. Por favor, tenta novamente." "O início de sessão não foi concluído a tempo" "O teu outro dispositivo não suporta o início de sessão na %s com um código QR. diff --git a/features/login/impl/src/main/res/values-tr/translations.xml b/features/login/impl/src/main/res/values-tr/translations.xml new file mode 100644 index 0000000000..746163a0e7 --- /dev/null +++ b/features/login/impl/src/main/res/values-tr/translations.xml @@ -0,0 +1,83 @@ + + + "Hesap sağlayıcısını değiştir" + "Ana sunucu adresi" + "Bir arama terimi veya alan adı adresi girin." + "Bir şirket, topluluk veya özel sunucu arayın." + "Bir hesap sağlayıcısı bulun" + "Konuşmalarınızın saklanacağı yer burasıdır - tıpkı e-postalarınızı saklamak için bir e-posta sağlayıcısı kullandığınız gibi." + "Oturum açmak üzeresiniz %s" + "Konuşmalarınızın saklanacağı yer burasıdır - tıpkı e-postalarınızı saklamak için bir e-posta sağlayıcısı kullandığınız gibi." + "%s üzerinde bir hesap oluşturmak üzeresiniz" + "Matrix.org, Matrix.org Vakfı tarafından yönetilen, güvenli, merkezi olmayan iletişim için halka açık Matrix ağında büyük, ücretsiz bir sunucudur." + "Diğer" + "Kendi özel sunucunuz veya iş hesabınız gibi farklı bir hesap sağlayıcı kullanın." + "Hesap sağlayıcısını değiştir" + "Bu ana sunucuya ulaşamadık. Lütfen ana sunucu URL\'sini doğru girip girmediğinizi kontrol edin. URL doğruysa, daha fazla yardım için ana sunucu yöneticinize başvurun." + "Sliding sync, iyi bilinen dosyadaki bir sorun nedeniyle kullanılamıyor: +%1$s" + "Bu sunucu şu anda sliding sync desteklemiyor." + "Ana sunucu URL\'si" + "Yalnızca sliding sync destekleyen mevcut bir sunucuya bağlanabilirsiniz. Ana sunucu yöneticinizin bunu yapılandırması gerekecektir. %1$s" + "Sunucunuzun adresi nedir?" + "Sunucunuzu seçin" + "Hesap oluştur" + "Hesap devre dışı bırakıldı." + "Yanlış kullanıcı adı ve/veya şifre" + "Bu geçerli bir kullanıcı tanımlayıcısı değil. Kullanılması gereken biçim: \'@user:homeserver.org\'" + "Bu sunucu, yenileme belirteçlerini kullanacak şekilde yapılandırılmıştır. Parola tabanlı oturum açma kullanılırken bunlar desteklenmez." + "Seçilen ana sunucu parola veya OIDC oturum açmayı desteklemiyor. Lütfen yöneticinizle iletişime geçin veya başka bir ana sunucu seçin." + "Bilgilerinizi girin" + "Matrix, güvenli, merkezi olmayan iletişim için açık bir ağdır." + "Tekrar hoş geldiniz!" + "%1$s adresinde oturum aç" + "Güvenli bir bağlantı kuruluyor" + "Yeni cihaza güvenli bir bağlantı kurulamadı. Mevcut cihazlarınız hala güvende ve onlar için endişelenmenize gerek yok." + "Şimdi ne olacak?" + "Bunun bir ağ sorunu olması ihtimaline karşı bir QR koduyla tekrar oturum açmayı deneyin" + "Aynı sorunla karşılaşırsanız, farklı bir wifi ağı deneyin veya wifi yerine mobil verinizi kullanın" + "Bu işe yaramazsa, manuel olarak oturum açın" + "Bağlantı güvenli değil" + "Bu cihazda gösterilen iki haneyi girmeniz istenecektir." + "Aşağıdaki numarayı diğer cihazınıza girin" + "Diğer cihazınızda oturum açın ve ardından tekrar deneyin veya zaten oturum açmış başka bir cihaz kullanın." + "Diğer cihaz oturum açmamış" + "Oturum açma işlemi diğer cihazda iptal edildi." + "Oturum açma isteği iptal edildi" + "Diğer cihazda oturum açma işlemi reddedildi." + "Oturum açma reddedildi" + "Oturum açma süresi doldu. Lütfen tekrar deneyin." + "Oturum açma işlemi zamanında tamamlanmadı" + "Diğer cihazınız %s QR koduyla oturum açmayı desteklemiyor. + +Manuel olarak oturum açmayı deneyin veya QR kodunu başka bir cihazla tarayın." + "QR kodu desteklenmiyor" + "Hesap sağlayıcınız %1$s desteklemiyor." + "%1$s desteklenmiyor" + "Taramaya hazır" + "Bir masaüstü cihazda %1$s açın" + "Avatarınıza tıklayın" + "Seç %1$s" + "\"Yeni cihaz bağla\"" + "QR kodunu bu cihazla tarayın" + "Yalnızca hesap sağlayıcınız destekliyorsa kullanılabilir." + "QR kodunu almak için %1$s uygulamasını başka bir cihazda açın" + "Diğer cihazda gösterilen QR kodunu kullan." + "Tekrar deneyin" + "Yanlış QR kodu" + "Kamera ayarlarına git" + "Devam etmek için %1$s cihazınızın kamerasını kullanmasına izin vermeniz gerekir." + "QR kodunu taramak için kamera erişimine izin verin" + "QR kodunu tara" + "Yeniden Başla" + "Beklenmeyen bir hata oluştu. Lütfen tekrar deneyin." + "Diğer cihazınız bekleniyor" + "Hesap sağlayıcınız, oturum açmayı doğrulamak için aşağıdaki kodu isteyebilir." + "Doğrulama kodunuz" + "Hesap sağlayıcısını değiştir" + "Element çalışanları için özel bir sunucu." + "Matrix, güvenli, merkezi olmayan iletişim için açık bir ağdır." + "Konuşmalarınızın saklanacağı yer burasıdır - tıpkı e-postalarınızı saklamak için bir e-posta sağlayıcısı kullandığınız gibi." + "%1$s sunucusunda oturum açmak üzeresiniz" + "%1$s sunucusunda bir hesap oluşturmak üzeresiniz" + diff --git a/features/login/impl/src/main/res/values-uz/translations.xml b/features/login/impl/src/main/res/values-uz/translations.xml index db16e17b09..d3f1af3ea7 100644 --- a/features/login/impl/src/main/res/values-uz/translations.xml +++ b/features/login/impl/src/main/res/values-uz/translations.xml @@ -19,6 +19,7 @@ "Siz faqat siljish sinxronlashni qo\'llab-quvvatlaydigan mavjud serverga ulanishingiz mumkin. Uy serveringiz administratori uni sozlashi kerak.%1$s" "Serveringizning manzili nima?" "Serveringizni tanlang" + "Hisob yaratish" "Bu hisob o‘chirilgan." "Notog\'ri foydalanuvchi nomi va/yoki parol" "Bu haqiqiy foydalanuvchi identifikatori emas. Kutilayotgan format: \'@user:homeserver.org\'" diff --git a/features/logout/api/src/main/kotlin/io/element/android/features/logout/api/LogoutEntryPoint.kt b/features/logout/api/src/main/kotlin/io/element/android/features/logout/api/LogoutEntryPoint.kt index 5d60d642fd..17f67813ca 100644 --- a/features/logout/api/src/main/kotlin/io/element/android/features/logout/api/LogoutEntryPoint.kt +++ b/features/logout/api/src/main/kotlin/io/element/android/features/logout/api/LogoutEntryPoint.kt @@ -16,7 +16,6 @@ interface LogoutEntryPoint : FeatureEntryPoint { fun nodeBuilder(parentNode: Node, buildContext: BuildContext): NodeBuilder interface NodeBuilder { - fun onSuccessfulLogoutPendingAction(action: () -> Unit): NodeBuilder fun callback(callback: Callback): NodeBuilder fun build(): Node } diff --git a/features/logout/impl/src/main/kotlin/io/element/android/features/logout/impl/DefaultLogoutEntryPoint.kt b/features/logout/impl/src/main/kotlin/io/element/android/features/logout/impl/DefaultLogoutEntryPoint.kt index 9abcd1304a..0c651eb077 100644 --- a/features/logout/impl/src/main/kotlin/io/element/android/features/logout/impl/DefaultLogoutEntryPoint.kt +++ b/features/logout/impl/src/main/kotlin/io/element/android/features/logout/impl/DefaultLogoutEntryPoint.kt @@ -27,15 +27,6 @@ class DefaultLogoutEntryPoint @Inject constructor() : LogoutEntryPoint { return this } - override fun onSuccessfulLogoutPendingAction(action: () -> Unit): LogoutEntryPoint.NodeBuilder { - plugins += object : LogoutNode.SuccessfulLogoutPendingAction, Plugin { - override fun onSuccessfulLogoutPendingAction() { - action() - } - } - return this - } - override fun build(): Node { return parentNode.createNode(buildContext, plugins) } diff --git a/features/logout/impl/src/main/kotlin/io/element/android/features/logout/impl/LogoutNode.kt b/features/logout/impl/src/main/kotlin/io/element/android/features/logout/impl/LogoutNode.kt index 2ecc027fba..a1da26b58b 100644 --- a/features/logout/impl/src/main/kotlin/io/element/android/features/logout/impl/LogoutNode.kt +++ b/features/logout/impl/src/main/kotlin/io/element/android/features/logout/impl/LogoutNode.kt @@ -32,12 +32,6 @@ class LogoutNode @AssistedInject constructor( plugins().forEach { it.onChangeRecoveryKeyClick() } } - interface SuccessfulLogoutPendingAction : Plugin { - fun onSuccessfulLogoutPendingAction() - } - - private val customOnSuccessfulLogoutPendingAction = plugins().firstOrNull() - @Composable override fun View(modifier: Modifier) { val state = presenter.present() @@ -47,7 +41,6 @@ class LogoutNode @AssistedInject constructor( state = state, onChangeRecoveryKeyClick = ::onChangeRecoveryKeyClick, onSuccessLogout = { - customOnSuccessfulLogoutPendingAction?.onSuccessfulLogoutPendingAction() onSuccessLogout(activity, isDark, it) }, onBackClick = ::navigateUp, diff --git a/features/logout/impl/src/main/res/values-tr/translations.xml b/features/logout/impl/src/main/res/values-tr/translations.xml new file mode 100644 index 0000000000..6e1ac9cb60 --- /dev/null +++ b/features/logout/impl/src/main/res/values-tr/translations.xml @@ -0,0 +1,18 @@ + + + "Çıkış yapmak istediğinize emin misiniz?" + "Oturumu kapat" + "Oturumu kapat" + "Oturum kapatılıyor…" + "Son oturumunuzdan çıkmak üzeresiniz. Şimdi çıkış yaparsanız, şifrelenmiş mesajlarınıza erişiminizi kaybedersiniz." + "Yedeklemeyi kapattınız" + "Çevrimdışı olduğunuzda anahtarlarınız hala yedekleniyordu. Oturumu kapatmadan önce anahtarlarınızın yedeklenebilmesi için yeniden bağlanın." + "Anahtarlarınız hala yedekleniyor" + "Lütfen oturumu kapatmadan önce bunun tamamlanmasını bekleyin." + "Anahtarlarınız hala yedekleniyor" + "Oturumu kapat" + "Son oturumunuzdan çıkmak üzeresiniz. Şimdi çıkış yaparsanız şifrelenmiş mesajlarınıza erişiminizi kaybedersiniz." + "Kurtarma ayarlanmadı" + "Son oturumunuzdan çıkmak üzeresiniz. Şimdi oturumu kapatırsanız şifrelenmiş mesajlarınıza erişiminizi kaybedebilirsiniz." + "Kurtarma anahtarınızı kaydettiniz mi?" + diff --git a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/MessagesFlowNode.kt b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/MessagesFlowNode.kt index 6b84423d44..2a84150540 100644 --- a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/MessagesFlowNode.kt +++ b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/MessagesFlowNode.kt @@ -71,6 +71,7 @@ import io.element.android.libraries.matrix.api.permalink.PermalinkData import io.element.android.libraries.matrix.api.room.MatrixRoom import io.element.android.libraries.matrix.api.room.alias.matches import io.element.android.libraries.matrix.api.room.joinedRoomMembers +import io.element.android.libraries.matrix.api.timeline.Timeline import io.element.android.libraries.matrix.api.timeline.item.TimelineItemDebugInfo import io.element.android.libraries.matrix.ui.messages.LocalRoomMemberProfilesCache import io.element.android.libraries.matrix.ui.messages.RoomMemberProfilesCache @@ -187,8 +188,11 @@ class MessagesFlowNode @AssistedInject constructor( callbacks.forEach { it.onRoomDetailsClick() } } - override fun onEventClick(event: TimelineItem.Event): Boolean { - return processEventClick(event) + override fun onEventClick(isLive: Boolean, event: TimelineItem.Event): Boolean { + return processEventClick( + timelineMode = if (isLive) Timeline.Mode.LIVE else Timeline.Mode.FOCUSED_ON_EVENT, + event = event, + ) } override fun onPreviewAttachments(attachments: ImmutableList) { @@ -316,7 +320,10 @@ class MessagesFlowNode @AssistedInject constructor( NavTarget.PinnedMessagesList -> { val callback = object : PinnedMessagesListNode.Callback { override fun onEventClick(event: TimelineItem.Event) { - processEventClick(event) + processEventClick( + timelineMode = Timeline.Mode.PINNED_EVENTS, + event = event, + ) } override fun onUserDataClick(userId: UserId) { @@ -358,11 +365,14 @@ class MessagesFlowNode @AssistedInject constructor( callbacks.forEach { it.onPermalinkClick(permalinkData, pushToBackstack = false) } } - private fun processEventClick(event: TimelineItem.Event): Boolean { + private fun processEventClick( + timelineMode: Timeline.Mode, + event: TimelineItem.Event, + ): Boolean { val navTarget = when (event.content) { is TimelineItemImageContent -> { buildMediaViewerNavTarget( - mode = MediaViewerEntryPoint.MediaViewerMode.TimelineImagesAndVideos, + mode = MediaViewerEntryPoint.MediaViewerMode.TimelineImagesAndVideos(timelineMode), event = event, content = event.content, mediaSource = event.content.mediaSource, @@ -374,7 +384,7 @@ class MessagesFlowNode @AssistedInject constructor( if encrypted on certain bridges */ event.content.preferredMediaSource?.let { preferredMediaSource -> buildMediaViewerNavTarget( - mode = MediaViewerEntryPoint.MediaViewerMode.TimelineImagesAndVideos, + mode = MediaViewerEntryPoint.MediaViewerMode.TimelineImagesAndVideos(timelineMode), event = event, content = event.content, mediaSource = preferredMediaSource, @@ -384,7 +394,7 @@ class MessagesFlowNode @AssistedInject constructor( } is TimelineItemVideoContent -> { buildMediaViewerNavTarget( - mode = MediaViewerEntryPoint.MediaViewerMode.TimelineImagesAndVideos, + mode = MediaViewerEntryPoint.MediaViewerMode.TimelineImagesAndVideos(timelineMode), event = event, content = event.content, mediaSource = event.content.mediaSource, @@ -393,7 +403,7 @@ class MessagesFlowNode @AssistedInject constructor( } is TimelineItemFileContent -> { buildMediaViewerNavTarget( - mode = MediaViewerEntryPoint.MediaViewerMode.TimelineFilesAndAudios, + mode = MediaViewerEntryPoint.MediaViewerMode.TimelineFilesAndAudios(timelineMode), event = event, content = event.content, mediaSource = event.content.mediaSource, @@ -402,7 +412,7 @@ class MessagesFlowNode @AssistedInject constructor( } is TimelineItemAudioContent -> { buildMediaViewerNavTarget( - mode = MediaViewerEntryPoint.MediaViewerMode.TimelineFilesAndAudios, + mode = MediaViewerEntryPoint.MediaViewerMode.TimelineFilesAndAudios(timelineMode), event = event, content = event.content, mediaSource = event.content.mediaSource, diff --git a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/MessagesNode.kt b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/MessagesNode.kt index 551b362e1a..a8076d023c 100644 --- a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/MessagesNode.kt +++ b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/MessagesNode.kt @@ -89,7 +89,7 @@ class MessagesNode @AssistedInject constructor( interface Callback : Plugin { fun onRoomDetailsClick() - fun onEventClick(event: TimelineItem.Event): Boolean + fun onEventClick(isLive: Boolean, event: TimelineItem.Event): Boolean fun onPreviewAttachments(attachments: ImmutableList) fun onUserDataClick(userId: UserId) fun onPermalinkClick(data: PermalinkData) @@ -120,12 +120,12 @@ class MessagesNode @AssistedInject constructor( callbacks.forEach { it.onRoomDetailsClick() } } - private fun onEventClick(event: TimelineItem.Event): Boolean { + private fun onEventClick(isLive: Boolean, event: TimelineItem.Event): Boolean { // Note: cannot use `callbacks.all { it.onEventClick(event) }` because: // - if callbacks is empty, it will return true and we want to return false. // - if a callback returns false, the other callback will not be invoked. return callbacks.takeIf { it.isNotEmpty() } - ?.map { it.onEventClick(event) } + ?.map { it.onEventClick(isLive, event) } ?.all { it } .orFalse() } diff --git a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/MessagesPresenter.kt b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/MessagesPresenter.kt index 547f5f6161..6b1f50c41d 100644 --- a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/MessagesPresenter.kt +++ b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/MessagesPresenter.kt @@ -33,6 +33,7 @@ import io.element.android.features.messages.impl.actionlist.model.TimelineItemAc import io.element.android.features.messages.impl.crypto.identity.IdentityChangeState import io.element.android.features.messages.impl.messagecomposer.MessageComposerEvents import io.element.android.features.messages.impl.messagecomposer.MessageComposerState +import io.element.android.features.messages.impl.messagecomposer.observeRoomMemberIdentityStateChange import io.element.android.features.messages.impl.pinned.banner.PinnedMessagesBannerState import io.element.android.features.messages.impl.timeline.TimelineController import io.element.android.features.messages.impl.timeline.TimelineEvents @@ -78,6 +79,7 @@ import io.element.android.libraries.matrix.ui.model.getAvatarData import io.element.android.libraries.textcomposer.model.MessageComposerMode import io.element.android.libraries.ui.strings.CommonStrings import io.element.android.services.analytics.api.AnalyticsService +import kotlinx.collections.immutable.persistentListOf import kotlinx.collections.immutable.toPersistentList import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.launch @@ -154,7 +156,9 @@ class MessagesPresenter @AssistedInject constructor( var hasDismissedInviteDialog by rememberSaveable { mutableStateOf(false) } - + val roomMemberIdentityStateChanges by produceState(persistentListOf()) { + observeRoomMemberIdentityStateChange(room) + } LaunchedEffect(Unit) { // Remove the unread flag on entering but don't send read receipts // as those will be handled by the timeline. @@ -211,6 +215,7 @@ class MessagesPresenter @AssistedInject constructor( roomAvatar = roomAvatar, heroes = heroes, composerState = composerState, + roomMemberIdentityStateChanges = roomMemberIdentityStateChanges, userEventPermissions = userEventPermissions, voiceMessageComposerState = voiceMessageComposerState, timelineState = timelineState, diff --git a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/MessagesState.kt b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/MessagesState.kt index 5db91b3045..61f092eaf9 100644 --- a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/MessagesState.kt +++ b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/MessagesState.kt @@ -10,6 +10,7 @@ package io.element.android.features.messages.impl import androidx.compose.runtime.Immutable import io.element.android.features.messages.impl.actionlist.ActionListState import io.element.android.features.messages.impl.crypto.identity.IdentityChangeState +import io.element.android.features.messages.impl.crypto.identity.RoomMemberIdentityStateChange import io.element.android.features.messages.impl.messagecomposer.MessageComposerState import io.element.android.features.messages.impl.pinned.banner.PinnedMessagesBannerState import io.element.android.features.messages.impl.timeline.TimelineState @@ -33,6 +34,7 @@ data class MessagesState( val heroes: ImmutableList, val userEventPermissions: UserEventPermissions, val composerState: MessageComposerState, + val roomMemberIdentityStateChanges: ImmutableList, val voiceMessageComposerState: VoiceMessageComposerState, val timelineState: TimelineState, val timelineProtectionState: TimelineProtectionState, diff --git a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/MessagesStateProvider.kt b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/MessagesStateProvider.kt index 308efd8eac..a73a4c1565 100644 --- a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/MessagesStateProvider.kt +++ b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/MessagesStateProvider.kt @@ -11,6 +11,7 @@ import androidx.compose.ui.tooling.preview.PreviewParameterProvider import io.element.android.features.messages.impl.actionlist.ActionListState import io.element.android.features.messages.impl.actionlist.anActionListState import io.element.android.features.messages.impl.crypto.identity.IdentityChangeState +import io.element.android.features.messages.impl.crypto.identity.RoomMemberIdentityStateChange import io.element.android.features.messages.impl.crypto.identity.anIdentityChangeState import io.element.android.features.messages.impl.messagecomposer.MessageComposerState import io.element.android.features.messages.impl.messagecomposer.aMessageComposerState @@ -41,6 +42,7 @@ import io.element.android.libraries.designsystem.components.avatar.AvatarSize import io.element.android.libraries.matrix.api.core.RoomId import io.element.android.libraries.textcomposer.model.MessageComposerMode import io.element.android.libraries.textcomposer.model.aTextEditorStateRich +import kotlinx.collections.immutable.ImmutableList import kotlinx.collections.immutable.persistentListOf import kotlinx.collections.immutable.persistentSetOf @@ -92,6 +94,7 @@ fun aMessagesState( isFullScreen = false, mode = MessageComposerMode.Normal, ), + roomMemberIdentityStateChanges: ImmutableList = persistentListOf(), voiceMessageComposerState: VoiceMessageComposerState = aVoiceMessageComposerState(), timelineState: TimelineState = aTimelineState( timelineItems = aTimelineItemList(aTimelineItemTextContent()), @@ -117,6 +120,7 @@ fun aMessagesState( heroes = persistentListOf(), userEventPermissions = userEventPermissions, composerState = composerState, + roomMemberIdentityStateChanges = roomMemberIdentityStateChanges, voiceMessageComposerState = voiceMessageComposerState, timelineProtectionState = timelineProtectionState, identityChangeState = identityChangeState, diff --git a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/MessagesView.kt b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/MessagesView.kt index 747fc847cc..a7d312b816 100644 --- a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/MessagesView.kt +++ b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/MessagesView.kt @@ -55,6 +55,7 @@ import io.element.android.features.messages.impl.actionlist.ActionListView import io.element.android.features.messages.impl.actionlist.model.TimelineItemAction import io.element.android.features.messages.impl.crypto.identity.IdentityChangeStateView import io.element.android.features.messages.impl.messagecomposer.AttachmentsBottomSheet +import io.element.android.features.messages.impl.messagecomposer.DisabledComposerView import io.element.android.features.messages.impl.messagecomposer.MessageComposerEvents import io.element.android.features.messages.impl.messagecomposer.MessageComposerView import io.element.android.features.messages.impl.messagecomposer.suggestions.SuggestionsPickerView @@ -97,6 +98,7 @@ import io.element.android.libraries.designsystem.utils.snackbar.SnackbarHost import io.element.android.libraries.designsystem.utils.snackbar.rememberSnackbarHostState import io.element.android.libraries.matrix.api.core.EventId import io.element.android.libraries.matrix.api.core.UserId +import io.element.android.libraries.matrix.api.encryption.identity.IdentityState import io.element.android.libraries.textcomposer.model.TextEditorState import io.element.android.libraries.ui.strings.CommonStrings import kotlinx.collections.immutable.ImmutableList @@ -109,7 +111,7 @@ fun MessagesView( state: MessagesState, onBackClick: () -> Unit, onRoomDetailsClick: () -> Unit, - onEventContentClick: (event: TimelineItem.Event) -> Boolean, + onEventContentClick: (isLive: Boolean, event: TimelineItem.Event) -> Boolean, onUserDataClick: (UserId) -> Unit, onLinkClick: (String, Boolean) -> Unit, onSendLocationClick: () -> Unit, @@ -140,7 +142,7 @@ fun MessagesView( fun onContentClick(event: TimelineItem.Event) { Timber.v("onMessageClick= ${event.id}") - val hideKeyboard = onEventContentClick(event) + val hideKeyboard = onEventContentClick(state.timelineState.isLive, event) if (hideKeyboard) { localView.hideKeyboard() } @@ -425,13 +427,20 @@ private fun MessagesViewComposerBottomSheetContents( onLinkClick = onLinkClick, ) } - MessageComposerView( - state = state.composerState, - voiceMessageState = state.voiceMessageComposerState, - subcomposing = subcomposing, - enableVoiceMessages = state.enableVoiceMessages, - modifier = Modifier.fillMaxWidth(), - ) + val verificationViolation = state.roomMemberIdentityStateChanges.firstOrNull { + it.identityState == IdentityState.VerificationViolation + } + if (verificationViolation != null) { + DisabledComposerView(modifier = Modifier.fillMaxWidth()) + } else { + MessageComposerView( + state = state.composerState, + voiceMessageState = state.voiceMessageComposerState, + subcomposing = subcomposing, + enableVoiceMessages = state.enableVoiceMessages, + modifier = Modifier.fillMaxWidth(), + ) + } } } else { CantSendMessageBanner() @@ -535,7 +544,7 @@ internal fun MessagesViewPreview(@PreviewParameter(MessagesStateProvider::class) state = state, onBackClick = {}, onRoomDetailsClick = {}, - onEventContentClick = { false }, + onEventContentClick = { _, _ -> false }, onUserDataClick = {}, onLinkClick = { _, _ -> }, onSendLocationClick = {}, diff --git a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/crypto/identity/IdentityChangeEvent.kt b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/crypto/identity/IdentityChangeEvent.kt index e74004c1d0..149789d97d 100644 --- a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/crypto/identity/IdentityChangeEvent.kt +++ b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/crypto/identity/IdentityChangeEvent.kt @@ -10,5 +10,6 @@ package io.element.android.features.messages.impl.crypto.identity import io.element.android.libraries.matrix.api.core.UserId sealed interface IdentityChangeEvent { - data class Submit(val userId: UserId) : IdentityChangeEvent + data class PinIdentity(val userId: UserId) : IdentityChangeEvent + data class WithdrawVerification(val userId: UserId) : IdentityChangeEvent } diff --git a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/crypto/identity/IdentityChangeStatePresenter.kt b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/crypto/identity/IdentityChangeStatePresenter.kt index adc39fbc74..4aba5dc440 100644 --- a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/crypto/identity/IdentityChangeStatePresenter.kt +++ b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/crypto/identity/IdentityChangeStatePresenter.kt @@ -8,30 +8,16 @@ package io.element.android.features.messages.impl.crypto.identity import androidx.compose.runtime.Composable -import androidx.compose.runtime.ProduceStateScope import androidx.compose.runtime.getValue import androidx.compose.runtime.produceState import androidx.compose.runtime.rememberCoroutineScope +import io.element.android.features.messages.impl.messagecomposer.observeRoomMemberIdentityStateChange import io.element.android.libraries.architecture.Presenter -import io.element.android.libraries.designsystem.components.avatar.AvatarData -import io.element.android.libraries.designsystem.components.avatar.AvatarSize import io.element.android.libraries.matrix.api.core.UserId import io.element.android.libraries.matrix.api.encryption.EncryptionService import io.element.android.libraries.matrix.api.room.MatrixRoom -import io.element.android.libraries.matrix.api.room.RoomMember -import io.element.android.libraries.matrix.api.room.roomMembers -import io.element.android.libraries.matrix.ui.model.getAvatarData -import kotlinx.collections.immutable.PersistentList import kotlinx.collections.immutable.persistentListOf -import kotlinx.collections.immutable.toPersistentList import kotlinx.coroutines.CoroutineScope -import kotlinx.coroutines.ExperimentalCoroutinesApi -import kotlinx.coroutines.flow.combine -import kotlinx.coroutines.flow.distinctUntilChanged -import kotlinx.coroutines.flow.filter -import kotlinx.coroutines.flow.flatMapLatest -import kotlinx.coroutines.flow.launchIn -import kotlinx.coroutines.flow.onEach import kotlinx.coroutines.launch import timber.log.Timber import javax.inject.Inject @@ -44,12 +30,17 @@ class IdentityChangeStatePresenter @Inject constructor( override fun present(): IdentityChangeState { val coroutineScope = rememberCoroutineScope() val roomMemberIdentityStateChange by produceState(persistentListOf()) { - observeRoomMemberIdentityStateChange() + observeRoomMemberIdentityStateChange(room) } fun handleEvent(event: IdentityChangeEvent) { when (event) { - is IdentityChangeEvent.Submit -> coroutineScope.pinUserIdentity(event.userId) + is IdentityChangeEvent.WithdrawVerification -> { + coroutineScope.withdrawVerification(event.userId) + } + is IdentityChangeEvent.PinIdentity -> { + coroutineScope.pinUserIdentity(event.userId) + } } } @@ -59,56 +50,17 @@ class IdentityChangeStatePresenter @Inject constructor( ) } - @OptIn(ExperimentalCoroutinesApi::class) - private fun ProduceStateScope>.observeRoomMemberIdentityStateChange() { - room.syncUpdateFlow - .filter { - // Room cannot become unencrypted, so we can just apply a filter here. - room.isEncrypted - } - .distinctUntilChanged() - .flatMapLatest { - combine(room.identityStateChangesFlow, room.membersStateFlow) { identityStateChanges, membersState -> - identityStateChanges.map { identityStateChange -> - val member = membersState.roomMembers() - ?.firstOrNull { roomMember -> roomMember.userId == identityStateChange.userId } - ?.toIdentityRoomMember() - ?: createDefaultRoomMemberForIdentityChange(identityStateChange.userId) - RoomMemberIdentityStateChange( - identityRoomMember = member, - identityState = identityStateChange.identityState, - ) - } - } - .distinctUntilChanged() - .onEach { roomMemberIdentityStateChanges -> - value = roomMemberIdentityStateChanges.toPersistentList() - } - } - .launchIn(this) - } - private fun CoroutineScope.pinUserIdentity(userId: UserId) = launch { encryptionService.pinUserIdentity(userId) .onFailure { Timber.e(it, "Failed to pin identity for user $userId") } } + + private fun CoroutineScope.withdrawVerification(userId: UserId) = launch { + encryptionService.withdrawVerification(userId) + .onFailure { + Timber.e(it, "Failed to withdraw verification for user $userId") + } + } } - -private fun RoomMember.toIdentityRoomMember() = IdentityRoomMember( - userId = userId, - displayNameOrDefault = displayNameOrDefault, - avatarData = getAvatarData(AvatarSize.ComposerAlert), -) - -private fun createDefaultRoomMemberForIdentityChange(userId: UserId) = IdentityRoomMember( - userId = userId, - displayNameOrDefault = userId.extractedDisplayName, - avatarData = AvatarData( - id = userId.value, - name = null, - url = null, - size = AvatarSize.ComposerAlert, - ), -) diff --git a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/crypto/identity/IdentityChangeStateProvider.kt b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/crypto/identity/IdentityChangeStateProvider.kt index 5ec3858809..f64f505f0f 100644 --- a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/crypto/identity/IdentityChangeStateProvider.kt +++ b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/crypto/identity/IdentityChangeStateProvider.kt @@ -30,7 +30,7 @@ class IdentityChangeStateProvider : PreviewParameterProvider = emptyList(), + eventSink: (IdentityChangeEvent) -> Unit = {}, ) = IdentityChangeState( roomMemberIdentityStateChanges = roomMemberIdentityStateChanges.toImmutableList(), - eventSink = {}, + eventSink = eventSink, ) internal fun anIdentityRoomMember( diff --git a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/crypto/identity/IdentityChangeStateView.kt b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/crypto/identity/IdentityChangeStateView.kt index a7b78ca84b..8362515b6a 100644 --- a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/crypto/identity/IdentityChangeStateView.kt +++ b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/crypto/identity/IdentityChangeStateView.kt @@ -7,6 +7,7 @@ package io.element.android.features.messages.impl.crypto.identity +import androidx.annotation.StringRes import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.compose.ui.res.stringResource @@ -17,10 +18,12 @@ import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.style.TextDecoration import androidx.compose.ui.tooling.preview.PreviewParameter import io.element.android.appconfig.LearnMoreConfig +import io.element.android.compound.theme.ElementTheme import io.element.android.libraries.designsystem.atomic.molecules.ComposerAlertMolecule import io.element.android.libraries.designsystem.preview.ElementPreview import io.element.android.libraries.designsystem.preview.PreviewsDayNight import io.element.android.libraries.matrix.api.encryption.identity.IdentityState +import io.element.android.libraries.matrix.api.encryption.identity.isAViolation import io.element.android.libraries.ui.strings.CommonStrings @Composable @@ -29,63 +32,90 @@ fun IdentityChangeStateView( onLinkClick: (String, Boolean) -> Unit, modifier: Modifier = Modifier, ) { - // Pick the first identity change to PinViolation - val pinViolationIdentityChange = state.roomMemberIdentityStateChanges.firstOrNull { - // For now only render PinViolation - it.identityState == IdentityState.PinViolation + // Pick the first identity change that is a violation + val identityChangeViolation = state.roomMemberIdentityStateChanges.firstOrNull { + it.identityState.isAViolation() } - if (pinViolationIdentityChange != null) { - ComposerAlertMolecule( + when (identityChangeViolation?.identityState) { + IdentityState.PinViolation -> ViolationAlert( + identityChangeViolation = identityChangeViolation, + onLinkClick = onLinkClick, + textId = CommonStrings.crypto_identity_change_pin_violation_new, + isCritical = false, + submitTextId = CommonStrings.action_ok, + onSubmitClick = { state.eventSink(IdentityChangeEvent.PinIdentity(identityChangeViolation.identityRoomMember.userId)) }, modifier = modifier, - avatar = pinViolationIdentityChange.identityRoomMember.avatarData, - content = buildAnnotatedString { - val learnMoreStr = stringResource(CommonStrings.action_learn_more) - val displayName = pinViolationIdentityChange.identityRoomMember.displayNameOrDefault - val userIdStr = stringResource( - CommonStrings.crypto_identity_change_pin_violation_new_user_id, - pinViolationIdentityChange.identityRoomMember.userId, - ) - val fullText = stringResource( - id = CommonStrings.crypto_identity_change_pin_violation_new, - displayName, - userIdStr, - learnMoreStr, - ) - append(fullText) - val userIdStartIndex = fullText.indexOf(userIdStr) - addStyle( - style = SpanStyle( - fontWeight = FontWeight.Bold, - ), - start = userIdStartIndex, - end = userIdStartIndex + userIdStr.length, - ) - val learnMoreStartIndex = fullText.lastIndexOf(learnMoreStr) - addStyle( - style = SpanStyle( - textDecoration = TextDecoration.Underline, - fontWeight = FontWeight.Bold, - ), - start = learnMoreStartIndex, - end = learnMoreStartIndex + learnMoreStr.length, - ) - addLink( - url = LinkAnnotation.Url( - url = LearnMoreConfig.IDENTITY_CHANGE_URL, - linkInteractionListener = { - onLinkClick(LearnMoreConfig.IDENTITY_CHANGE_URL, true) - } - ), - start = learnMoreStartIndex, - end = learnMoreStartIndex + learnMoreStr.length, - ) - }, - onSubmitClick = { state.eventSink(IdentityChangeEvent.Submit(pinViolationIdentityChange.identityRoomMember.userId)) }, - isCritical = pinViolationIdentityChange.identityState == IdentityState.VerificationViolation, ) + IdentityState.VerificationViolation -> ViolationAlert( + identityChangeViolation = identityChangeViolation, + onLinkClick = onLinkClick, + textId = CommonStrings.crypto_identity_change_verification_violation_new, + isCritical = true, + submitTextId = CommonStrings.crypto_identity_change_withdraw_verification_action, + onSubmitClick = { state.eventSink(IdentityChangeEvent.WithdrawVerification(identityChangeViolation.identityRoomMember.userId)) }, + modifier = modifier, + ) + else -> Unit } } +@Composable +private fun ViolationAlert( + identityChangeViolation: RoomMemberIdentityStateChange, + onLinkClick: (String, Boolean) -> Unit, + @StringRes textId: Int, + isCritical: Boolean, + @StringRes submitTextId: Int, + onSubmitClick: () -> Unit, + modifier: Modifier = Modifier, +) { + ComposerAlertMolecule( + modifier = modifier, + avatar = identityChangeViolation.identityRoomMember.avatarData, + content = buildAnnotatedString { + val learnMoreStr = stringResource(CommonStrings.action_learn_more) + val displayName = identityChangeViolation.identityRoomMember.displayNameOrDefault + val userIdStr = stringResource( + CommonStrings.crypto_identity_change_pin_violation_new_user_id, + identityChangeViolation.identityRoomMember.userId, + ) + val fullText = stringResource(textId, displayName, userIdStr, learnMoreStr) + append(fullText) + val userIdStartIndex = fullText.indexOf(userIdStr) + addStyle( + style = SpanStyle( + fontWeight = FontWeight.Bold, + ), + start = userIdStartIndex, + end = userIdStartIndex + userIdStr.length, + ) + val learnMoreStartIndex = fullText.lastIndexOf(learnMoreStr) + addStyle( + style = SpanStyle( + textDecoration = TextDecoration.Underline, + fontWeight = FontWeight.Bold, + color = ElementTheme.colors.textPrimary + ), + start = learnMoreStartIndex, + end = learnMoreStartIndex + learnMoreStr.length, + ) + addLink( + url = LinkAnnotation.Url( + url = LearnMoreConfig.IDENTITY_CHANGE_URL, + linkInteractionListener = { + onLinkClick(LearnMoreConfig.IDENTITY_CHANGE_URL, true) + } + ), + start = learnMoreStartIndex, + end = learnMoreStartIndex + learnMoreStr.length, + ) + }, + submitText = stringResource(submitTextId), + onSubmitClick = onSubmitClick, + isCritical = isCritical, + ) +} + @PreviewsDayNight @Composable internal fun IdentityChangeStateViewPreview( diff --git a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/crypto/identity/MessagesViewWithIdentityChangePreview.kt b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/crypto/identity/MessagesViewWithIdentityChangePreview.kt index 5b695e1a9e..cdd91e86e4 100644 --- a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/crypto/identity/MessagesViewWithIdentityChangePreview.kt +++ b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/crypto/identity/MessagesViewWithIdentityChangePreview.kt @@ -33,7 +33,7 @@ internal fun MessagesViewWithIdentityChangePreview( ), onBackClick = {}, onRoomDetailsClick = {}, - onEventContentClick = { false }, + onEventContentClick = { _, _ -> false }, onUserDataClick = {}, onLinkClick = { _, _ -> }, onSendLocationClick = {}, diff --git a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/messagecomposer/DisabledComposerView.kt b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/messagecomposer/DisabledComposerView.kt new file mode 100644 index 0000000000..19e1758be8 --- /dev/null +++ b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/messagecomposer/DisabledComposerView.kt @@ -0,0 +1,101 @@ +/* + * Copyright 2025 New Vector 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.messages.impl.messagecomposer + +import androidx.compose.foundation.background +import androidx.compose.foundation.border +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.IntrinsicSize +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.requiredHeightIn +import androidx.compose.foundation.layout.size +import androidx.compose.foundation.layout.width +import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.runtime.Composable +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.draw.clip +import androidx.compose.ui.res.stringResource +import androidx.compose.ui.unit.dp +import io.element.android.compound.theme.ElementTheme +import io.element.android.compound.tokens.generated.CompoundIcons +import io.element.android.libraries.designsystem.preview.ElementPreview +import io.element.android.libraries.designsystem.preview.PreviewsDayNight +import io.element.android.libraries.designsystem.theme.components.Icon +import io.element.android.libraries.designsystem.theme.components.IconButton +import io.element.android.libraries.designsystem.utils.CommonDrawables +import io.element.android.libraries.textcomposer.R + +@Composable +internal fun DisabledComposerView( + modifier: Modifier = Modifier, +) { + Row( + modifier = modifier.padding(3.dp) + .fillMaxWidth(), + verticalAlignment = Alignment.CenterVertically, + ) { + IconButton( + modifier = Modifier + .size(48.dp), + enabled = false, + onClick = {}, + ) { + Icon( + modifier = Modifier.size(30.dp), + resourceId = CommonDrawables.ic_plus_composer, + contentDescription = stringResource(R.string.rich_text_editor_a11y_add_attachment), + tint = ElementTheme.colors.iconDisabled, + ) + } + + val bgColor = ElementTheme.colors.bgCanvasDisabled + val borderColor = ElementTheme.colors.borderDisabled + + Box( + modifier = Modifier + .clip(RoundedCornerShape(21.dp)) + .border(0.5.dp, borderColor, RoundedCornerShape(21.dp)) + .background(color = bgColor) + .size(42.dp) + .requiredHeightIn(min = 42.dp) + .weight(1f), + ) + + Spacer(modifier = Modifier.width(8.dp)) + IconButton( + modifier = Modifier + .padding(start = 2.dp) + .size(48.dp), + enabled = false, + onClick = {}, + ) { + Icon( + modifier = Modifier.size(30.dp), + imageVector = CompoundIcons.SendSolid(), + contentDescription = "", + tint = ElementTheme.colors.iconQuaternary + ) + } + } +} + +@PreviewsDayNight +@Composable +internal fun DisabledComposerViewPreview() = ElementPreview { + Column { + DisabledComposerView( + modifier = Modifier.height(IntrinsicSize.Min), + ) + } +} diff --git a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/messagecomposer/MessageComposerPresenter.kt b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/messagecomposer/MessageComposerPresenter.kt index 94aecec778..f3a44559bc 100644 --- a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/messagecomposer/MessageComposerPresenter.kt +++ b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/messagecomposer/MessageComposerPresenter.kt @@ -389,6 +389,7 @@ class MessageComposerPresenter @AssistedInject constructor( } } } + return MessageComposerState( textEditorState = textEditorState, isFullScreen = isFullScreen.value, diff --git a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/messagecomposer/MessageComposerUtils.kt b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/messagecomposer/MessageComposerUtils.kt new file mode 100644 index 0000000000..48230840b1 --- /dev/null +++ b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/messagecomposer/MessageComposerUtils.kt @@ -0,0 +1,74 @@ +/* + * Copyright 2025 New Vector 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.messages.impl.messagecomposer + +import androidx.compose.runtime.ProduceStateScope +import io.element.android.features.messages.impl.crypto.identity.IdentityRoomMember +import io.element.android.features.messages.impl.crypto.identity.RoomMemberIdentityStateChange +import io.element.android.libraries.designsystem.components.avatar.AvatarData +import io.element.android.libraries.designsystem.components.avatar.AvatarSize +import io.element.android.libraries.matrix.api.core.UserId +import io.element.android.libraries.matrix.api.room.MatrixRoom +import io.element.android.libraries.matrix.api.room.RoomMember +import io.element.android.libraries.matrix.api.room.roomMembers +import io.element.android.libraries.matrix.ui.model.getAvatarData +import kotlinx.collections.immutable.PersistentList +import kotlinx.collections.immutable.toPersistentList +import kotlinx.coroutines.ExperimentalCoroutinesApi +import kotlinx.coroutines.flow.combine +import kotlinx.coroutines.flow.distinctUntilChanged +import kotlinx.coroutines.flow.filter +import kotlinx.coroutines.flow.flatMapLatest +import kotlinx.coroutines.flow.launchIn +import kotlinx.coroutines.flow.onEach + +@OptIn(ExperimentalCoroutinesApi::class) +fun ProduceStateScope>.observeRoomMemberIdentityStateChange(room: MatrixRoom) { + room.syncUpdateFlow + .filter { + // Room cannot become unencrypted, so we can just apply a filter here. + room.isEncrypted + } + .distinctUntilChanged() + .flatMapLatest { + combine(room.identityStateChangesFlow, room.membersStateFlow) { identityStateChanges, membersState -> + identityStateChanges.map { identityStateChange -> + val member = membersState.roomMembers() + ?.firstOrNull { roomMember -> roomMember.userId == identityStateChange.userId } + ?.toIdentityRoomMember() + ?: createDefaultRoomMemberForIdentityChange(identityStateChange.userId) + RoomMemberIdentityStateChange( + identityRoomMember = member, + identityState = identityStateChange.identityState, + ) + } + } + .distinctUntilChanged() + .onEach { roomMemberIdentityStateChanges -> + value = roomMemberIdentityStateChanges.toPersistentList() + } + } + .launchIn(this) +} + +private fun RoomMember.toIdentityRoomMember() = IdentityRoomMember( + userId = userId, + displayNameOrDefault = displayNameOrDefault, + avatarData = getAvatarData(AvatarSize.ComposerAlert), +) + +private fun createDefaultRoomMemberForIdentityChange(userId: UserId) = IdentityRoomMember( + userId = userId, + displayNameOrDefault = userId.extractedDisplayName, + avatarData = AvatarData( + id = userId.value, + name = null, + url = null, + size = AvatarSize.ComposerAlert, + ), +) diff --git a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/messagecomposer/MessageComposerView.kt b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/messagecomposer/MessageComposerView.kt index 86e30a22c0..bfb51f4a87 100644 --- a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/messagecomposer/MessageComposerView.kt +++ b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/messagecomposer/MessageComposerView.kt @@ -139,6 +139,7 @@ internal fun MessageComposerViewPreview( enableVoiceMessages = true, subcomposing = false, ) + DisabledComposerView() } } diff --git a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/pinned/PinnedEventsTimelineProvider.kt b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/pinned/PinnedEventsTimelineProvider.kt index 43b4fef3dd..1135dcb2d6 100644 --- a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/pinned/PinnedEventsTimelineProvider.kt +++ b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/pinned/PinnedEventsTimelineProvider.kt @@ -14,6 +14,7 @@ import io.element.android.libraries.di.RoomScope import io.element.android.libraries.di.SingleIn import io.element.android.libraries.featureflag.api.FeatureFlagService import io.element.android.libraries.featureflag.api.FeatureFlags +import io.element.android.libraries.matrix.api.room.CreateTimelineParams import io.element.android.libraries.matrix.api.room.MatrixRoom import io.element.android.libraries.matrix.api.sync.SyncService import io.element.android.libraries.matrix.api.timeline.Timeline @@ -104,7 +105,7 @@ class PinnedEventsTimelineProvider @Inject constructor( is AsyncData.Uninitialized, is AsyncData.Failure -> { timelineStateFlow.emit(AsyncData.Loading()) withContext(dispatchers.io) { - room.pinnedEventsTimeline() + room.createTimeline(CreateTimelineParams.PinnedOnly) } .fold( { timelineStateFlow.emit(AsyncData.Success(it)) }, diff --git a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/TimelineController.kt b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/TimelineController.kt index bfac291432..985d4f6076 100644 --- a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/TimelineController.kt +++ b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/TimelineController.kt @@ -11,6 +11,7 @@ import com.squareup.anvil.annotations.ContributesBinding import io.element.android.libraries.di.RoomScope import io.element.android.libraries.di.SingleIn import io.element.android.libraries.matrix.api.core.EventId +import io.element.android.libraries.matrix.api.room.CreateTimelineParams import io.element.android.libraries.matrix.api.room.MatrixRoom import io.element.android.libraries.matrix.api.timeline.MatrixTimelineItem import io.element.android.libraries.matrix.api.timeline.Timeline @@ -64,7 +65,7 @@ class TimelineController @Inject constructor( } suspend fun focusOnEvent(eventId: EventId): Result { - return room.timelineFocusedOnEvent(eventId) + return room.createTimeline(CreateTimelineParams.Focused(eventId)) .onFailure { if (it is CancellationException) { throw it diff --git a/features/messages/impl/src/main/res/values-nb/translations.xml b/features/messages/impl/src/main/res/values-nb/translations.xml index b4a2914dda..7061efc54c 100644 --- a/features/messages/impl/src/main/res/values-nb/translations.xml +++ b/features/messages/impl/src/main/res/values-nb/translations.xml @@ -12,7 +12,11 @@ "Kryss av for om du vil skjule alle nåværende og fremtidige meldinger fra denne brukeren" "Denne meldingen vil bli rapportert til hjemmeserverens administratorer. De vil ikke kunne lese noen krypterte meldinger." "Begrunnelse for å rapportere dette innholdet" + "Kamera" "Ta bilde" + "Ta opp video" + "Vedlegg" + "Foto- og videobibliotek" "Meldingshistorikken er for øyeblikket ikke tilgjengelig." "Meldingshistorikk er ikke tilgjengelig i dette rommet. Bekreft denne enheten for å se meldingshistorikken din." "Vil du invitere dem tilbake?" diff --git a/features/messages/impl/src/main/res/values-sv/translations.xml b/features/messages/impl/src/main/res/values-sv/translations.xml index c2ca9678e3..6846c7e333 100644 --- a/features/messages/impl/src/main/res/values-sv/translations.xml +++ b/features/messages/impl/src/main/res/values-sv/translations.xml @@ -31,6 +31,7 @@ "Lägg till emoji" "Det här är början på %1$s." "Detta är början på det här samtalet." + "Samtalet stöds inte. Fråga om den som ringer kan använda den nya Element X-appen." "Visa mindre" "Meddelande kopierat" "Du är inte behörig att göra inlägg i det här rummet" diff --git a/features/messages/impl/src/main/res/values-tr/translations.xml b/features/messages/impl/src/main/res/values-tr/translations.xml new file mode 100644 index 0000000000..de962f72ee --- /dev/null +++ b/features/messages/impl/src/main/res/values-tr/translations.xml @@ -0,0 +1,54 @@ + + + "Aktiviteler" + "Bayraklar" + "Yiyecek ve İçecek" + "Hayvanlar ve Doğa" + "Nesneler" + "İfadeler ve İnsanlar" + "Seyahat ve Yerler" + "Simgeler" + "Kullanıcıyı engelle" + "Bu kullanıcıdan gelen mevcut ve gelecekteki tüm mesajları gizlemek isteyip istemediğinizi işaretleyin" + "Bu mesaj ana sunucunuzun yöneticisine bildirilecektir. Şifrelenmiş mesajları okuyamayacaklardır." + "Bu içeriğin bildirilme nedeni" + "Kamera" + "Fotoğraf çek" + "Video kaydet" + "Ek" + "Fotoğraf ve Video Kütüphanesi" + "Konum" + "Anket" + "Metin Biçimlendirme" + "Mesaj geçmişi şu anda kullanılamıyor." + "Mesaj geçmişi bu odada kullanılamıyor. Mesaj geçmişinizi görmek için bu cihazı doğrulayın." + "Onları geri davet etmek ister misin?" + "Bu sohbette yalnızsın" + "Tüm odaya bildir" + "Herkes" + "Tekrar gönder" + "Mesajınız gönderilemedi" + "Emoji ekle" + "Bu, %1$s odasının başlangıcıdır." + "Bu konuşmanın başlangıcıdır." + "Desteklenmeyen çağrı. Arayanın yeni Element X uygulamasını kullanıp kullanamayacağını sorun." + "Daha az göster" + "Mesaj kopyalandı" + "Bu odada gönderi yapma izniniz yok" + "Daha az göster" + "Daha fazla göster" + "Yeni" + + "%1$d oda değişikliği" + "%1$d oda değişikliği" + + + "%1$s, %2$s ve %3$d diğer" + "%1$s, %2$s ve %3$d diğer" + + + "%1$s yazıyor" + "%1$s yazıyor" + + "%1$s ve %2$s" + diff --git a/features/messages/impl/src/test/kotlin/io/element/android/features/messages/impl/MessagesViewTest.kt b/features/messages/impl/src/test/kotlin/io/element/android/features/messages/impl/MessagesViewTest.kt index 3557d84bd5..a7c76d73e2 100644 --- a/features/messages/impl/src/test/kotlin/io/element/android/features/messages/impl/MessagesViewTest.kt +++ b/features/messages/impl/src/test/kotlin/io/element/android/features/messages/impl/MessagesViewTest.kt @@ -54,11 +54,11 @@ import io.element.android.libraries.matrix.api.core.UserId import io.element.android.libraries.matrix.test.AN_EVENT_ID import io.element.android.libraries.testtags.TestTags import io.element.android.libraries.ui.strings.CommonStrings -import io.element.android.tests.testutils.EnsureCalledOnceWithParam +import io.element.android.tests.testutils.EnsureCalledOnceWithTwoParamsAndResult import io.element.android.tests.testutils.EnsureNeverCalled import io.element.android.tests.testutils.EnsureNeverCalledWithParam -import io.element.android.tests.testutils.EnsureNeverCalledWithParamAndResult import io.element.android.tests.testutils.EnsureNeverCalledWithTwoParams +import io.element.android.tests.testutils.EnsureNeverCalledWithTwoParamsAndResult import io.element.android.tests.testutils.EventsRecorder import io.element.android.tests.testutils.clickOn import io.element.android.tests.testutils.ensureCalledOnce @@ -129,8 +129,9 @@ class MessagesViewTest { eventSink = eventsRecorder ) val timelineItem = state.timelineState.timelineItems.first() - val callback = EnsureCalledOnceWithParam( - expectedParam = timelineItem, + val callback = EnsureCalledOnceWithTwoParamsAndResult( + expectedParam1 = true, + expectedParam2 = timelineItem, result = true, ) rule.setMessagesView( @@ -513,7 +514,7 @@ private fun AndroidComposeTestRule.setMessa state: MessagesState, onBackClick: () -> Unit = EnsureNeverCalled(), onRoomDetailsClick: () -> Unit = EnsureNeverCalled(), - onEventClick: (event: TimelineItem.Event) -> Boolean = EnsureNeverCalledWithParamAndResult(), + onEventClick: (isLive: Boolean, event: TimelineItem.Event) -> Boolean = EnsureNeverCalledWithTwoParamsAndResult(), onUserDataClick: (UserId) -> Unit = EnsureNeverCalledWithParam(), onLinkClick: (String, Boolean) -> Unit = EnsureNeverCalledWithTwoParams(), onSendLocationClick: () -> Unit = EnsureNeverCalled(), diff --git a/features/messages/impl/src/test/kotlin/io/element/android/features/messages/impl/crypto/identity/IdentityChangeStatePresenterTest.kt b/features/messages/impl/src/test/kotlin/io/element/android/features/messages/impl/crypto/identity/IdentityChangeStatePresenterTest.kt index 115e14c82c..29f64b831f 100644 --- a/features/messages/impl/src/test/kotlin/io/element/android/features/messages/impl/crypto/identity/IdentityChangeStatePresenterTest.kt +++ b/features/messages/impl/src/test/kotlin/io/element/android/features/messages/impl/crypto/identity/IdentityChangeStatePresenterTest.kt @@ -143,7 +143,22 @@ class IdentityChangeStatePresenterTest { val presenter = createIdentityChangeStatePresenter(encryptionService = encryptionService) presenter.test { val initialState = awaitItem() - initialState.eventSink(IdentityChangeEvent.Submit(A_USER_ID)) + initialState.eventSink(IdentityChangeEvent.PinIdentity(A_USER_ID)) + lambda.assertions().isCalledOnce().with(value(A_USER_ID)) + } + } + + @Test + fun `present - when the user withdraws the identity, the presenter invokes the encryption service api`() = + runTest { + val lambda = lambdaRecorder> { Result.success(Unit) } + val encryptionService = FakeEncryptionService( + withdrawVerificationResult = lambda, + ) + val presenter = createIdentityChangeStatePresenter(encryptionService = encryptionService) + presenter.test { + val initialState = awaitItem() + initialState.eventSink(IdentityChangeEvent.WithdrawVerification(A_USER_ID)) lambda.assertions().isCalledOnce().with(value(A_USER_ID)) } } diff --git a/features/messages/impl/src/test/kotlin/io/element/android/features/messages/impl/crypto/identity/IdentityChangeStateViewTest.kt b/features/messages/impl/src/test/kotlin/io/element/android/features/messages/impl/crypto/identity/IdentityChangeStateViewTest.kt new file mode 100644 index 0000000000..ca07cc93cd --- /dev/null +++ b/features/messages/impl/src/test/kotlin/io/element/android/features/messages/impl/crypto/identity/IdentityChangeStateViewTest.kt @@ -0,0 +1,107 @@ +/* + * Copyright 2025 New Vector 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.messages.impl.crypto.identity + +import androidx.activity.ComponentActivity +import androidx.compose.ui.test.junit4.AndroidComposeTestRule +import androidx.compose.ui.test.junit4.createAndroidComposeRule +import androidx.compose.ui.test.onNodeWithText +import androidx.test.ext.junit.runners.AndroidJUnit4 +import io.element.android.libraries.designsystem.components.avatar.anAvatarData +import io.element.android.libraries.matrix.api.core.UserId +import io.element.android.libraries.matrix.api.encryption.identity.IdentityState +import io.element.android.libraries.ui.strings.CommonStrings +import io.element.android.tests.testutils.EventsRecorder +import io.element.android.tests.testutils.clickOn +import org.junit.Rule +import org.junit.Test +import org.junit.rules.TestRule +import org.junit.runner.RunWith + +@RunWith(AndroidJUnit4::class) +class IdentityChangeStateViewTest { + @get:Rule val rule = createAndroidComposeRule() + + @Test + fun `show and resolve pin violation`() { + val eventsRecorder = EventsRecorder() + rule.setIdentityChangeStateView( + state = anIdentityChangeState( + listOf( + RoomMemberIdentityStateChange( + identityRoomMember = IdentityRoomMember(UserId("@alice:localhost"), "Alice", anAvatarData()), + identityState = IdentityState.PinViolation + ) + ), + eventsRecorder + ), + ) + + rule.onNodeWithText("identity appears to have changed", substring = true).assertExists("should display pin violation warning") + rule.onNodeWithText("@alice:localhost", substring = true).assertExists("should display user mxid") + rule.onNodeWithText("Alice", substring = true).assertExists("should display user displayname") + + rule.clickOn(res = CommonStrings.action_ok) + eventsRecorder.assertSingle(IdentityChangeEvent.PinIdentity(UserId("@alice:localhost"))) + } + + @Test + fun `show and resolve verification violation`() { + val eventsRecorder = EventsRecorder() + rule.setIdentityChangeStateView( + state = anIdentityChangeState( + listOf( + RoomMemberIdentityStateChange( + identityRoomMember = IdentityRoomMember(UserId("@alice:localhost"), "Alice", anAvatarData()), + identityState = IdentityState.VerificationViolation + ) + ), + eventsRecorder + ), + ) + + rule.onNodeWithText("verified identity has changed", substring = true).assertExists("should display verification violation warning") + rule.onNodeWithText("@alice:localhost", substring = true).assertExists("should display user mxid") + rule.onNodeWithText("Alice", substring = true).assertExists("should display user displayname") + + rule.clickOn(res = CommonStrings.crypto_identity_change_withdraw_verification_action) + eventsRecorder.assertSingle(IdentityChangeEvent.WithdrawVerification(UserId("@alice:localhost"))) + } + + @Test + fun `Should not show any banner if no violations`() { + rule.setIdentityChangeStateView( + state = anIdentityChangeState( + listOf( + RoomMemberIdentityStateChange( + identityRoomMember = IdentityRoomMember(UserId("@alice:localhost"), "Alice", anAvatarData()), + identityState = IdentityState.Verified + ), + RoomMemberIdentityStateChange( + identityRoomMember = IdentityRoomMember(UserId("@bob:localhost"), "Bob", anAvatarData()), + identityState = IdentityState.Pinned + ) + ), + ), + ) + + rule.onNodeWithText("identity appears to have changed", substring = true).assertDoesNotExist() + rule.onNodeWithText("verified identity has changed", substring = true).assertDoesNotExist() + } + + private fun AndroidComposeTestRule.setIdentityChangeStateView( + state: IdentityChangeState, + ) { + setContent { + IdentityChangeStateView( + state = state, + onLinkClick = { _, _ -> }, + ) + } + } +} diff --git a/features/messages/impl/src/test/kotlin/io/element/android/features/messages/impl/pinned/banner/PinnedMessagesBannerPresenterTest.kt b/features/messages/impl/src/test/kotlin/io/element/android/features/messages/impl/pinned/banner/PinnedMessagesBannerPresenterTest.kt index 8aa7bee779..5f6fa1b164 100644 --- a/features/messages/impl/src/test/kotlin/io/element/android/features/messages/impl/pinned/banner/PinnedMessagesBannerPresenterTest.kt +++ b/features/messages/impl/src/test/kotlin/io/element/android/features/messages/impl/pinned/banner/PinnedMessagesBannerPresenterTest.kt @@ -55,7 +55,7 @@ class PinnedMessagesBannerPresenterTest { @Test fun `present - loading state`() = runTest { val room = FakeMatrixRoom( - pinnedEventsTimelineResult = { Result.success(FakeTimeline()) } + createTimelineResult = { Result.success(FakeTimeline()) } ).apply { givenRoomInfo(aRoomInfo(pinnedEventIds = listOf(AN_EVENT_ID))) } @@ -86,7 +86,7 @@ class PinnedMessagesBannerPresenterTest { ) ) val room = FakeMatrixRoom( - pinnedEventsTimelineResult = { Result.success(pinnedEventsTimeline) } + createTimelineResult = { Result.success(pinnedEventsTimeline) } ).apply { givenRoomInfo(aRoomInfo(pinnedEventIds = listOf(AN_EVENT_ID, AN_EVENT_ID_2))) } @@ -125,7 +125,7 @@ class PinnedMessagesBannerPresenterTest { ) ) val room = FakeMatrixRoom( - pinnedEventsTimelineResult = { Result.success(pinnedEventsTimeline) } + createTimelineResult = { Result.success(pinnedEventsTimeline) } ).apply { givenRoomInfo(aRoomInfo(pinnedEventIds = listOf(AN_EVENT_ID, AN_EVENT_ID_2))) } @@ -160,7 +160,7 @@ class PinnedMessagesBannerPresenterTest { @Test fun `present - timeline failed`() = runTest { val room = FakeMatrixRoom( - pinnedEventsTimelineResult = { Result.failure(Exception()) } + createTimelineResult = { Result.failure(Exception()) } ).apply { givenRoomInfo(aRoomInfo(pinnedEventIds = listOf(AN_EVENT_ID))) } diff --git a/features/messages/impl/src/test/kotlin/io/element/android/features/messages/impl/pinned/list/PinnedMessagesListPresenterTest.kt b/features/messages/impl/src/test/kotlin/io/element/android/features/messages/impl/pinned/list/PinnedMessagesListPresenterTest.kt index 976c7da29c..7fcbfb62eb 100644 --- a/features/messages/impl/src/test/kotlin/io/element/android/features/messages/impl/pinned/list/PinnedMessagesListPresenterTest.kt +++ b/features/messages/impl/src/test/kotlin/io/element/android/features/messages/impl/pinned/list/PinnedMessagesListPresenterTest.kt @@ -83,7 +83,7 @@ class PinnedMessagesListPresenterTest { @Test fun `present - timeline failure state`() = runTest { val room = FakeMatrixRoom( - pinnedEventsTimelineResult = { Result.failure(RuntimeException()) }, + createTimelineResult = { Result.failure(RuntimeException()) }, canRedactOwnResult = { Result.success(true) }, canRedactOtherResult = { Result.success(true) }, canUserPinUnpinResult = { Result.success(true) }, @@ -102,7 +102,7 @@ class PinnedMessagesListPresenterTest { @Test fun `present - empty state`() = runTest { val room = FakeMatrixRoom( - pinnedEventsTimelineResult = { Result.success(FakeTimeline()) }, + createTimelineResult = { Result.success(FakeTimeline()) }, canRedactOwnResult = { Result.success(true) }, canRedactOtherResult = { Result.success(true) }, canUserPinUnpinResult = { Result.success(true) }, @@ -122,7 +122,7 @@ class PinnedMessagesListPresenterTest { fun `present - filled state`() = runTest { val pinnedEventsTimeline = createPinnedMessagesTimeline() val room = FakeMatrixRoom( - pinnedEventsTimelineResult = { Result.success(pinnedEventsTimeline) }, + createTimelineResult = { Result.success(pinnedEventsTimeline) }, canRedactOwnResult = { Result.success(true) }, canRedactOtherResult = { Result.success(true) }, canUserPinUnpinResult = { Result.success(true) }, @@ -149,7 +149,7 @@ class PinnedMessagesListPresenterTest { val pinnedEventsTimeline = createPinnedMessagesTimeline() val analyticsService = FakeAnalyticsService() val room = FakeMatrixRoom( - pinnedEventsTimelineResult = { Result.success(pinnedEventsTimeline) }, + createTimelineResult = { Result.success(pinnedEventsTimeline) }, canRedactOwnResult = { Result.success(true) }, canRedactOtherResult = { Result.success(true) }, canUserPinUnpinResult = { Result.success(true) }, @@ -195,7 +195,7 @@ class PinnedMessagesListPresenterTest { } val pinnedEventsTimeline = createPinnedMessagesTimeline() val room = FakeMatrixRoom( - pinnedEventsTimelineResult = { Result.success(pinnedEventsTimeline) }, + createTimelineResult = { Result.success(pinnedEventsTimeline) }, canRedactOwnResult = { Result.success(true) }, canRedactOtherResult = { Result.success(true) }, canUserPinUnpinResult = { Result.success(true) }, @@ -224,7 +224,7 @@ class PinnedMessagesListPresenterTest { } val pinnedEventsTimeline = createPinnedMessagesTimeline() val room = FakeMatrixRoom( - pinnedEventsTimelineResult = { Result.success(pinnedEventsTimeline) }, + createTimelineResult = { Result.success(pinnedEventsTimeline) }, canRedactOwnResult = { Result.success(true) }, canRedactOtherResult = { Result.success(true) }, canUserPinUnpinResult = { Result.success(true) }, @@ -253,7 +253,7 @@ class PinnedMessagesListPresenterTest { } val pinnedEventsTimeline = createPinnedMessagesTimeline() val room = FakeMatrixRoom( - pinnedEventsTimelineResult = { Result.success(pinnedEventsTimeline) }, + createTimelineResult = { Result.success(pinnedEventsTimeline) }, canRedactOwnResult = { Result.success(true) }, canRedactOtherResult = { Result.success(true) }, canUserPinUnpinResult = { Result.success(true) }, diff --git a/features/messages/impl/src/test/kotlin/io/element/android/features/messages/impl/timeline/TimelineControllerTest.kt b/features/messages/impl/src/test/kotlin/io/element/android/features/messages/impl/timeline/TimelineControllerTest.kt index a9c8f085d8..83cc05eb52 100644 --- a/features/messages/impl/src/test/kotlin/io/element/android/features/messages/impl/timeline/TimelineControllerTest.kt +++ b/features/messages/impl/src/test/kotlin/io/element/android/features/messages/impl/timeline/TimelineControllerTest.kt @@ -31,7 +31,7 @@ class TimelineControllerTest { val detachedTimeline = FakeTimeline(name = "detached") val matrixRoom = FakeMatrixRoom( liveTimeline = liveTimeline, - timelineFocusedOnEventResult = { Result.success(detachedTimeline) } + createTimelineResult = { Result.success(detachedTimeline) } ) val sut = TimelineController(matrixRoom) @@ -63,7 +63,7 @@ class TimelineControllerTest { var callNumber = 0 val matrixRoom = FakeMatrixRoom( liveTimeline = liveTimeline, - timelineFocusedOnEventResult = { + createTimelineResult = { callNumber++ when (callNumber) { 1 -> Result.success(detachedTimeline1) @@ -117,7 +117,7 @@ class TimelineControllerTest { val detachedTimeline = FakeTimeline(name = "detached") val matrixRoom = FakeMatrixRoom( liveTimeline = liveTimeline, - timelineFocusedOnEventResult = { Result.success(detachedTimeline) } + createTimelineResult = { Result.success(detachedTimeline) } ) val sut = TimelineController(matrixRoom) sut.activeTimelineFlow().test { @@ -167,7 +167,7 @@ class TimelineControllerTest { } val matrixRoom = FakeMatrixRoom( liveTimeline = liveTimeline, - timelineFocusedOnEventResult = { Result.success(detachedTimeline) } + createTimelineResult = { Result.success(detachedTimeline) } ) val sut = TimelineController(matrixRoom) sut.activeTimelineFlow().test { @@ -192,7 +192,7 @@ class TimelineControllerTest { val detachedTimeline = FakeTimeline(name = "detached") val matrixRoom = FakeMatrixRoom( liveTimeline = liveTimeline, - timelineFocusedOnEventResult = { Result.success(detachedTimeline) } + createTimelineResult = { Result.success(detachedTimeline) } ) val sut = TimelineController(matrixRoom) diff --git a/features/messages/impl/src/test/kotlin/io/element/android/features/messages/impl/timeline/TimelinePresenterTest.kt b/features/messages/impl/src/test/kotlin/io/element/android/features/messages/impl/timeline/TimelinePresenterTest.kt index 60a5274142..6c81745ce4 100644 --- a/features/messages/impl/src/test/kotlin/io/element/android/features/messages/impl/timeline/TimelinePresenterTest.kt +++ b/features/messages/impl/src/test/kotlin/io/element/android/features/messages/impl/timeline/TimelinePresenterTest.kt @@ -483,7 +483,7 @@ import kotlin.time.Duration.Companion.seconds ) val room = FakeMatrixRoom( liveTimeline = liveTimeline, - timelineFocusedOnEventResult = { Result.success(detachedTimeline) }, + createTimelineResult = { Result.success(detachedTimeline) }, canUserSendMessageResult = { _, _ -> Result.success(true) }, ) val presenter = createTimelinePresenter( @@ -561,7 +561,7 @@ import kotlin.time.Duration.Companion.seconds liveTimeline = FakeTimeline( timelineItems = flowOf(emptyList()), ), - timelineFocusedOnEventResult = { Result.failure(Throwable("An error")) }, + createTimelineResult = { Result.failure(Throwable("An error")) }, canUserSendMessageResult = { _, _ -> Result.success(true) }, ) ) diff --git a/features/onboarding/impl/src/main/res/values-nb/translations.xml b/features/onboarding/impl/src/main/res/values-nb/translations.xml index d53a5a10e1..f04d28ce4e 100644 --- a/features/onboarding/impl/src/main/res/values-nb/translations.xml +++ b/features/onboarding/impl/src/main/res/values-nb/translations.xml @@ -1,5 +1,8 @@ + "Logg på manuelt" + "Logg inn med QR-kode" + "Opprett konto" "Velkommen til %1$s. Supercharged, for hastighet og enkelhet." "Vær i ditt rette element" diff --git a/features/onboarding/impl/src/main/res/values-tr/translations.xml b/features/onboarding/impl/src/main/res/values-tr/translations.xml new file mode 100644 index 0000000000..72dcb42a90 --- /dev/null +++ b/features/onboarding/impl/src/main/res/values-tr/translations.xml @@ -0,0 +1,9 @@ + + + "Manuel olarak oturum aç" + "QR kodu ile giriş yap" + "Hesap oluştur" + "Şimdiye kadarki en hızlı %1$s hoş geldiniz. Hız ve basitlik için güçlendirildi." + "%1$s\'e hoş geldiniz. Hız ve basitlik için süper şarjlı." + "Kendi elementinizde olun" + diff --git a/features/poll/impl/src/main/res/values-tr/translations.xml b/features/poll/impl/src/main/res/values-tr/translations.xml new file mode 100644 index 0000000000..eecf3ad053 --- /dev/null +++ b/features/poll/impl/src/main/res/values-tr/translations.xml @@ -0,0 +1,19 @@ + + + "Seçenek ekle" + "Sonuçları yalnızca anket bittikten sonra göster" + "Oyları gizle" + "Seçenek %1$d" + "Değişiklikleriniz kaydedilmedi. Geri dönmek istediğinden emin misin?" + "Soru veya konu" + "Anket ne hakkında?" + "Anket Oluştur" + "Bu anketi silmek istediğinize emin misiniz?" + "Anketi Sil" + "Anketi düzenle" + "Devam eden bir anket bulamadım." + "Geçmiş herhangi bir anket bulamıyorum." + "Devam ediyor" + "Geçmiş" + "Anketler" + diff --git a/features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/developer/DeveloperSettingsEvents.kt b/features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/developer/DeveloperSettingsEvents.kt index 11a11ada72..4a9437a188 100644 --- a/features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/developer/DeveloperSettingsEvents.kt +++ b/features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/developer/DeveloperSettingsEvents.kt @@ -13,7 +13,6 @@ import io.element.android.libraries.featureflag.ui.model.FeatureUiModel sealed interface DeveloperSettingsEvents { data class UpdateEnabledFeature(val feature: FeatureUiModel, val isEnabled: Boolean) : DeveloperSettingsEvents data class SetCustomElementCallBaseUrl(val baseUrl: String?) : DeveloperSettingsEvents - data class SetSimplifiedSlidingSyncEnabled(val isEnabled: Boolean) : DeveloperSettingsEvents data class SetHideImagesAndVideos(val value: Boolean) : DeveloperSettingsEvents data class SetTracingLogLevel(val logLevel: LogLevelItem) : DeveloperSettingsEvents data object ClearCache : DeveloperSettingsEvents diff --git a/features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/developer/DeveloperSettingsPresenter.kt b/features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/developer/DeveloperSettingsPresenter.kt index 0dd16492cc..ced2c87a9d 100644 --- a/features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/developer/DeveloperSettingsPresenter.kt +++ b/features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/developer/DeveloperSettingsPresenter.kt @@ -19,7 +19,6 @@ import androidx.compose.runtime.remember import androidx.compose.runtime.rememberCoroutineScope import androidx.compose.runtime.snapshots.SnapshotStateMap import io.element.android.appconfig.ElementCallConfig -import io.element.android.features.logout.api.LogoutUseCase import io.element.android.features.preferences.impl.developer.tracing.toLogLevel import io.element.android.features.preferences.impl.developer.tracing.toLogLevelItem import io.element.android.features.preferences.impl.tasks.ClearCacheUseCase @@ -51,7 +50,6 @@ class DeveloperSettingsPresenter @Inject constructor( private val rageshakePresenter: Presenter, private val appPreferencesStore: AppPreferencesStore, private val buildMeta: BuildMeta, - private val logoutUseCase: LogoutUseCase, ) : Presenter { @Composable override fun present(): DeveloperSettingsState { @@ -72,9 +70,6 @@ class DeveloperSettingsPresenter @Inject constructor( val customElementCallBaseUrl by appPreferencesStore .getCustomElementCallBaseUrlFlow() .collectAsState(initial = null) - val isSimplifiedSlidingSyncEnabled by appPreferencesStore - .isSimplifiedSlidingSyncEnabledFlow() - .collectAsState(initial = false) val hideImagesAndVideos by appPreferencesStore .doesHideImagesAndVideosFlow() .collectAsState(initial = false) @@ -122,12 +117,6 @@ class DeveloperSettingsPresenter @Inject constructor( appPreferencesStore.setCustomElementCallBaseUrl(urlToSave) } DeveloperSettingsEvents.ClearCache -> coroutineScope.clearCache(clearCacheAction) - is DeveloperSettingsEvents.SetSimplifiedSlidingSyncEnabled -> coroutineScope.launch { - appPreferencesStore.setSimplifiedSlidingSyncEnabled(event.isEnabled) - runCatching { - logoutUseCase.logout(ignoreSdkError = true) - } - } is DeveloperSettingsEvents.SetHideImagesAndVideos -> coroutineScope.launch { appPreferencesStore.setHideImagesAndVideos(event.value) } @@ -147,7 +136,6 @@ class DeveloperSettingsPresenter @Inject constructor( defaultUrl = ElementCallConfig.DEFAULT_BASE_URL, validator = ::customElementCallUrlValidator, ), - isSimpleSlidingSyncEnabled = isSimplifiedSlidingSyncEnabled, hideImagesAndVideos = hideImagesAndVideos, tracingLogLevel = tracingLogLevel, eventSink = ::handleEvents diff --git a/features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/developer/DeveloperSettingsState.kt b/features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/developer/DeveloperSettingsState.kt index c9641ab686..34574cd5c5 100644 --- a/features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/developer/DeveloperSettingsState.kt +++ b/features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/developer/DeveloperSettingsState.kt @@ -20,7 +20,6 @@ data class DeveloperSettingsState( val rageshakeState: RageshakePreferencesState, val clearCacheAction: AsyncAction, val customElementCallBaseUrlState: CustomElementCallBaseUrlState, - val isSimpleSlidingSyncEnabled: Boolean, val hideImagesAndVideos: Boolean, val tracingLogLevel: AsyncData, val eventSink: (DeveloperSettingsEvents) -> Unit diff --git a/features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/developer/DeveloperSettingsStateProvider.kt b/features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/developer/DeveloperSettingsStateProvider.kt index 869c010529..83a029f10f 100644 --- a/features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/developer/DeveloperSettingsStateProvider.kt +++ b/features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/developer/DeveloperSettingsStateProvider.kt @@ -32,7 +32,6 @@ open class DeveloperSettingsStateProvider : PreviewParameterProvider = AsyncAction.Uninitialized, customElementCallBaseUrlState: CustomElementCallBaseUrlState = aCustomElementCallBaseUrlState(), - isSimplifiedSlidingSyncEnabled: Boolean = false, hideImagesAndVideos: Boolean = false, eventSink: (DeveloperSettingsEvents) -> Unit = {}, ) = DeveloperSettingsState( @@ -41,7 +40,6 @@ fun aDeveloperSettingsState( cacheSize = AsyncData.Success("1.2 MB"), clearCacheAction = clearCacheAction, customElementCallBaseUrlState = customElementCallBaseUrlState, - isSimpleSlidingSyncEnabled = isSimplifiedSlidingSyncEnabled, hideImagesAndVideos = hideImagesAndVideos, tracingLogLevel = AsyncData.Success(LogLevelItem.INFO), eventSink = eventSink, diff --git a/features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/developer/DeveloperSettingsView.kt b/features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/developer/DeveloperSettingsView.kt index 7b0b39db90..86666175a4 100644 --- a/features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/developer/DeveloperSettingsView.kt +++ b/features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/developer/DeveloperSettingsView.kt @@ -60,14 +60,6 @@ fun DeveloperSettingsView( state.eventSink(DeveloperSettingsEvents.SetTracingLogLevel(logLevel)) } ) - PreferenceSwitch( - title = "Enable Simplified Sliding Sync", - subtitle = "When toggled you'll be logged out of the app and will need to log in again.", - isChecked = state.isSimpleSlidingSyncEnabled, - onCheckedChange = { - state.eventSink(DeveloperSettingsEvents.SetSimplifiedSlidingSyncEnabled(it)) - } - ) } PreferenceCategory(title = "Showkase") { PreferenceText( diff --git a/features/preferences/impl/src/main/res/values-pl/translations.xml b/features/preferences/impl/src/main/res/values-pl/translations.xml index 5bb4147625..b5a6d99fa7 100644 --- a/features/preferences/impl/src/main/res/values-pl/translations.xml +++ b/features/preferences/impl/src/main/res/values-pl/translations.xml @@ -8,7 +8,7 @@ "Własny bazowy URL dla połączeń Element" "Ustaw własny bazowy URL dla połączeń Element" "Nieprawidłowy adres URL, upewnij się, że zawiera protokół (http/https) i poprawny adres." - "Przesyłaj zdjęcia i filmy szybciej i zmniejsz zużycie danych" + "Przesyłaj zdjęcia i filmy szybciej, zmniejszając zużycie danych" "Optymalizuj jakość multimediów" "Dostawca powiadomień push" "Wyłącz edytor tekstu bogatego, aby pisać tekst Markdown ręcznie." diff --git a/features/preferences/impl/src/main/res/values-sv/translations.xml b/features/preferences/impl/src/main/res/values-sv/translations.xml index aa765bc080..34887548ad 100644 --- a/features/preferences/impl/src/main/res/values-sv/translations.xml +++ b/features/preferences/impl/src/main/res/values-sv/translations.xml @@ -8,6 +8,8 @@ "Anpassad bas-URL för Element Call" "Ange en anpassad bas-URL för Element Call." "Ogiltig URL, se till att du inkluderar protokollet (http/https) och rätt adress." + "Ladda upp foton och videor snabbare och minska dataanvändningen" + "Optimera mediekvaliteten" "Pushnotisleverantör" "Inaktivera rik-text-redigeraren för att skriva Markdown manuellt." "Läskvitton" diff --git a/features/preferences/impl/src/main/res/values-tr/translations.xml b/features/preferences/impl/src/main/res/values-tr/translations.xml new file mode 100644 index 0000000000..a13a006e22 --- /dev/null +++ b/features/preferences/impl/src/main/res/values-tr/translations.xml @@ -0,0 +1,60 @@ + + + "Önemli bir aramayı asla kaçırmamak için, telefonunuz kilitliyken tam ekran bildirimlere izin vermek üzere ayarlarınızı değiştirin." + "Arama deneyiminizi geliştirin" + "Bildirimleri nasıl alacağınızı seçin" + "Geliştirici modu" + "Geliştiriciler için özelliklere ve işlevlere erişim sağlayın." + "Özel Element Call temel URL\'si" + "Element Call için özel bir temel URL ayarlayın." + "Geçersiz URL, lütfen protokolü (http/https) ve doğru adresi eklediğinizden emin olun." + "Fotoğraf ve videoları daha hızlı yükleyin ve veri kullanımını azaltın" + "Medya kalitesini optimize edin" + "Anlık bildirim sağlayıcısı" + "Markdown\'ı manuel olarak yazmak için zengin metin düzenleyicisini devre dışı bırakın." + "Okundu bilgisi" + "Kapatılırsa, okundu bilgileriniz kimseye gönderilmez. Diğer kullanıcılardan okundu bilgisi almaya devam edersiniz." + "Varlığı paylaşın" + "Kapatılırsa, okundu bilgisi veya yazma bildirimleri gönderemez veya alamazsınız." + "Zaman çizelgesinde mesaj kaynağını görüntüleme seçeneğini etkinleştirin." + "Engellenen kullanıcı yok." + "Engellemeyi kaldır" + "Onlardan gelen tüm mesajları tekrar görebileceksiniz." + "Kullanıcının engelini kaldır" + "Engel kaldırılıyor…" + "Görünen ad" + "Görünen adınız" + "Bilinmeyen bir hatayla karşılaşıldı ve bilgiler değiştirilemedi." + "Profil güncellenemiyor" + "Profili düzenle" + "Profil güncelleniyor…" + "Ek ayarlar" + "Sesli ve Görüntülü aramalar" + "Yapılandırma uyuşmazlığı" + "Seçeneklerin bulunmasını kolaylaştırmak için Bildirim Ayarlarını basitleştirdik. Geçmişte seçtiğiniz bazı özel ayarlar burada gösterilmez, ancak hala aktiftir. + +Devam ederseniz, bazı ayarlarınız değişebilir." + "Doğrudan sohbetler" + "Sohbet başına özel ayar" + "Bildirim ayarı güncellenirken bir hata oluştu." + "Tüm mesajlar" + "Yalnızca Bahsetmeler ve Anahtar Kelimeler" + "Doğrudan sohbetlerde, beni bilgilendir" + "Grup sohbetlerinde, beni bilgilendir" + "Bu cihazda bildirimleri etkinleştir" + "Yapılandırma düzeltilmedi, lütfen tekrar deneyin." + "Grup sohbetleri" + "Davetler" + "Ana sunucunuz şifreli odalarda bu seçeneği desteklemiyor, bazı odalarda bildirim almayabilirsiniz." + "Bahsetmeler" + "Tümü" + "Bahsetmeler" + "Bana bildir" + "Bana @room\'da bildir" + "Bildirimleri almak için lütfen %1$s değiştirin." + "si̇stem ayarları" + "Sistem bildirimleri kapalı" + "Bildirimler" + "Sorun gider" + "Sorun Giderme Bildirimleri" + diff --git a/features/preferences/impl/src/test/kotlin/io/element/android/features/preferences/impl/developer/DeveloperSettingsPresenterTest.kt b/features/preferences/impl/src/test/kotlin/io/element/android/features/preferences/impl/developer/DeveloperSettingsPresenterTest.kt index a73114ea2c..f030e5b282 100644 --- a/features/preferences/impl/src/test/kotlin/io/element/android/features/preferences/impl/developer/DeveloperSettingsPresenterTest.kt +++ b/features/preferences/impl/src/test/kotlin/io/element/android/features/preferences/impl/developer/DeveloperSettingsPresenterTest.kt @@ -11,7 +11,6 @@ package io.element.android.features.preferences.impl.developer import com.google.common.truth.Truth.assertThat import io.element.android.appconfig.ElementCallConfig -import io.element.android.features.logout.test.FakeLogoutUseCase import io.element.android.features.preferences.impl.developer.tracing.LogLevelItem import io.element.android.features.preferences.impl.tasks.FakeClearCacheUseCase import io.element.android.features.preferences.impl.tasks.FakeComputeCacheSizeUseCase @@ -25,11 +24,9 @@ import io.element.android.libraries.featureflag.test.FakeFeatureFlagService import io.element.android.libraries.matrix.test.core.aBuildMeta import io.element.android.libraries.preferences.test.InMemoryAppPreferencesStore import io.element.android.tests.testutils.WarmUpRule -import io.element.android.tests.testutils.lambda.lambdaRecorder import io.element.android.tests.testutils.test import kotlinx.coroutines.ExperimentalCoroutinesApi import kotlinx.coroutines.flow.first -import kotlinx.coroutines.test.advanceUntilIdle import kotlinx.coroutines.test.runTest import org.junit.Rule import org.junit.Test @@ -48,7 +45,6 @@ class DeveloperSettingsPresenterTest { assertThat(state.cacheSize).isEqualTo(AsyncData.Uninitialized) assertThat(state.customElementCallBaseUrlState).isNotNull() assertThat(state.customElementCallBaseUrlState.baseUrl).isNull() - assertThat(state.isSimpleSlidingSyncEnabled).isFalse() assertThat(state.hideImagesAndVideos).isFalse() assertThat(state.rageshakeState.isEnabled).isFalse() assertThat(state.rageshakeState.isSupported).isTrue() @@ -153,34 +149,6 @@ class DeveloperSettingsPresenterTest { } } - @Test - fun `present - toggling simplified sliding sync changes the preferences and logs out the user`() = runTest { - val logoutCallRecorder = lambdaRecorder { "" } - val logoutUseCase = FakeLogoutUseCase(logoutLambda = logoutCallRecorder) - val preferences = InMemoryAppPreferencesStore() - val presenter = createDeveloperSettingsPresenter(preferencesStore = preferences, logoutUseCase = logoutUseCase) - presenter.test { - skipItems(2) - awaitItem().also { state -> - assertThat(state.isSimpleSlidingSyncEnabled).isFalse() - state.eventSink(DeveloperSettingsEvents.SetSimplifiedSlidingSyncEnabled(true)) - } - awaitItem().also { state -> - assertThat(state.isSimpleSlidingSyncEnabled).isTrue() - assertThat(preferences.isSimplifiedSlidingSyncEnabledFlow().first()).isTrue() - advanceUntilIdle() - logoutCallRecorder.assertions().isCalledOnce() - state.eventSink(DeveloperSettingsEvents.SetSimplifiedSlidingSyncEnabled(false)) - } - awaitItem().also { state -> - assertThat(state.isSimpleSlidingSyncEnabled).isFalse() - assertThat(preferences.isSimplifiedSlidingSyncEnabledFlow().first()).isFalse() - advanceUntilIdle() - logoutCallRecorder.assertions().isCalledExactly(2) - } - } - } - @Test fun `present - toggling hide image and video`() = runTest { val preferences = InMemoryAppPreferencesStore() @@ -225,7 +193,6 @@ class DeveloperSettingsPresenterTest { clearCacheUseCase: FakeClearCacheUseCase = FakeClearCacheUseCase(), preferencesStore: InMemoryAppPreferencesStore = InMemoryAppPreferencesStore(), buildMeta: BuildMeta = aBuildMeta(), - logoutUseCase: FakeLogoutUseCase = FakeLogoutUseCase(logoutLambda = { "" }) ): DeveloperSettingsPresenter { return DeveloperSettingsPresenter( featureFlagService = featureFlagService, @@ -234,7 +201,6 @@ class DeveloperSettingsPresenterTest { rageshakePresenter = { aRageshakePreferencesState() }, appPreferencesStore = preferencesStore, buildMeta = buildMeta, - logoutUseCase = logoutUseCase, ) } } diff --git a/features/preferences/impl/src/test/kotlin/io/element/android/features/preferences/impl/developer/DeveloperSettingsViewTest.kt b/features/preferences/impl/src/test/kotlin/io/element/android/features/preferences/impl/developer/DeveloperSettingsViewTest.kt index 7d31517bf5..4c8631862d 100644 --- a/features/preferences/impl/src/test/kotlin/io/element/android/features/preferences/impl/developer/DeveloperSettingsViewTest.kt +++ b/features/preferences/impl/src/test/kotlin/io/element/android/features/preferences/impl/developer/DeveloperSettingsViewTest.kt @@ -102,19 +102,6 @@ class DeveloperSettingsViewTest { eventsRecorder.assertSingle(DeveloperSettingsEvents.ClearCache) } - @Config(qualifiers = "h1500dp") - @Test - fun `clicking on the simplified sliding sync switch emits the expected event`() { - val eventsRecorder = EventsRecorder() - rule.setDeveloperSettingsView( - state = aDeveloperSettingsState( - eventSink = eventsRecorder - ), - ) - rule.onNodeWithText("Enable Simplified Sliding Sync").performClick() - eventsRecorder.assertSingle(DeveloperSettingsEvents.SetSimplifiedSlidingSyncEnabled(true)) - } - @Test fun `clicking on the hide images and videos switch emits the expected event`() { val eventsRecorder = EventsRecorder() diff --git a/features/rageshake/api/src/main/res/values-tr/translations.xml b/features/rageshake/api/src/main/res/values-tr/translations.xml new file mode 100644 index 0000000000..c2d0449fbd --- /dev/null +++ b/features/rageshake/api/src/main/res/values-tr/translations.xml @@ -0,0 +1,7 @@ + + + "%1$s son kullanıldığında çöktü. Bizimle bir çökme raporu paylaşmak ister misiniz?" + "Sinirden telefonu sallıyor gibi görünüyorsunuz. Hata raporu ekranını açmak ister misiniz?" + "Rageshake" + "Algılama eşiği" + diff --git a/features/rageshake/impl/src/main/res/values-tr/translations.xml b/features/rageshake/impl/src/main/res/values-tr/translations.xml new file mode 100644 index 0000000000..d558126f21 --- /dev/null +++ b/features/rageshake/impl/src/main/res/values-tr/translations.xml @@ -0,0 +1,17 @@ + + + "Ekran görüntüsü ekle" + "Herhangi bir sorunuz olursa benimle iletişime geçebilirsiniz." + "Bana ulaş" + "Ekran görüntüsünü düzenle" + "Lütfen sorunu açıklayın. Ne yaptınız? Ne olmasını bekliyordunuz? Gerçekten ne oldu. Lütfen olabildiğince ayrıntılı bilgi verin." + "Sorunu açıklayın…" + "Mümkünse, lütfen açıklamayı İngilizce olarak yazın." + "Açıklama çok kısa, lütfen ne olduğu hakkında daha fazla ayrıntı verin. Teşekkürler!" + "Hata günlüklerini gönder" + "Günlüklere izin ver" + "Ekran görüntüsü gönder" + "Her şeyin düzgün çalıştığından emin olmak için günlükler mesajınıza dahil edilecektir. Mesajınızı kayıt tutmadan göndermek için bu ayarı kapatın." + "%1$s son kullanıldığında çöktü. Bizimle bir çökme raporu paylaşmak ister misiniz?" + "Günlükleri görüntüle" + diff --git a/features/roomaliasresolver/impl/src/main/res/values-cs/translations.xml b/features/roomaliasresolver/impl/src/main/res/values-cs/translations.xml index 234a9f7198..58bb797c8f 100644 --- a/features/roomaliasresolver/impl/src/main/res/values-cs/translations.xml +++ b/features/roomaliasresolver/impl/src/main/res/values-cs/translations.xml @@ -1,4 +1,5 @@ + "Náhled této místnosti jsme nemohli zobrazit" "Nepodařilo se přeložit alias místnosti." diff --git a/features/roomaliasresolver/impl/src/main/res/values-de/translations.xml b/features/roomaliasresolver/impl/src/main/res/values-de/translations.xml index 0ed5be402b..6faabb5b11 100644 --- a/features/roomaliasresolver/impl/src/main/res/values-de/translations.xml +++ b/features/roomaliasresolver/impl/src/main/res/values-de/translations.xml @@ -1,4 +1,5 @@ + "Wir konnten diese Chatroomvorschau nicht anzeigen" "Der Raum-Alias konnte nicht ermittelt werden." diff --git a/features/roomaliasresolver/impl/src/main/res/values-et/translations.xml b/features/roomaliasresolver/impl/src/main/res/values-et/translations.xml index 6b712e00ee..b2eb5c0eb5 100644 --- a/features/roomaliasresolver/impl/src/main/res/values-et/translations.xml +++ b/features/roomaliasresolver/impl/src/main/res/values-et/translations.xml @@ -1,4 +1,5 @@ + "Meil ei õnnestunud selle jututoa eelvaadet kuvada" "Jututoa aliasele vastava aadressi tuvastamine ei õnnestunud." diff --git a/features/roomaliasresolver/impl/src/main/res/values-fr/translations.xml b/features/roomaliasresolver/impl/src/main/res/values-fr/translations.xml index 72395bbb06..6271998f19 100644 --- a/features/roomaliasresolver/impl/src/main/res/values-fr/translations.xml +++ b/features/roomaliasresolver/impl/src/main/res/values-fr/translations.xml @@ -1,4 +1,5 @@ + "Impossible d’afficher l’aperçu de ce salon" "Impossible de trouver un salon avec cet alias." diff --git a/features/roomaliasresolver/impl/src/main/res/values-hu/translations.xml b/features/roomaliasresolver/impl/src/main/res/values-hu/translations.xml index d1d6d05c98..585a3be62e 100644 --- a/features/roomaliasresolver/impl/src/main/res/values-hu/translations.xml +++ b/features/roomaliasresolver/impl/src/main/res/values-hu/translations.xml @@ -1,4 +1,5 @@ + "Nem tudtuk megjeleníteni a szoba előnézetét" "Nem sikerült a szoba álnevének feloldása." diff --git a/features/roomaliasresolver/impl/src/main/res/values-pl/translations.xml b/features/roomaliasresolver/impl/src/main/res/values-pl/translations.xml index 7f830ab944..dabe170e2e 100644 --- a/features/roomaliasresolver/impl/src/main/res/values-pl/translations.xml +++ b/features/roomaliasresolver/impl/src/main/res/values-pl/translations.xml @@ -1,4 +1,5 @@ + "Nie udało nam się wyświetlić podglądu tego pokoju" "Nie udało się uzyskać aliasu pokoju." diff --git a/features/roomaliasresolver/impl/src/main/res/values-pt/translations.xml b/features/roomaliasresolver/impl/src/main/res/values-pt/translations.xml index aa469c7158..3ae285d6ab 100644 --- a/features/roomaliasresolver/impl/src/main/res/values-pt/translations.xml +++ b/features/roomaliasresolver/impl/src/main/res/values-pt/translations.xml @@ -1,4 +1,5 @@ + "Não foi possível exibir a pré-visualização desta sala" "Não foi possível encontrar esse endereço de sala" diff --git a/features/roomaliasresolver/impl/src/main/res/values-sk/translations.xml b/features/roomaliasresolver/impl/src/main/res/values-sk/translations.xml index 059788804f..71315874e6 100644 --- a/features/roomaliasresolver/impl/src/main/res/values-sk/translations.xml +++ b/features/roomaliasresolver/impl/src/main/res/values-sk/translations.xml @@ -1,4 +1,5 @@ + "Ukážku tejto miestnosti sa nepodarilo zobraziť" "Nepodarilo sa nájsť alias miestnosti." diff --git a/features/roomaliasresolver/impl/src/main/res/values-tr/translations.xml b/features/roomaliasresolver/impl/src/main/res/values-tr/translations.xml new file mode 100644 index 0000000000..395799e380 --- /dev/null +++ b/features/roomaliasresolver/impl/src/main/res/values-tr/translations.xml @@ -0,0 +1,5 @@ + + + "Bu oda önizlemesini görüntüleyemedik" + "Oda takma adı çözümlenemedi." + diff --git a/features/roomaliasresolver/impl/src/main/res/values-uk/translations.xml b/features/roomaliasresolver/impl/src/main/res/values-uk/translations.xml index 0f5d40f6d8..91412c2cd1 100644 --- a/features/roomaliasresolver/impl/src/main/res/values-uk/translations.xml +++ b/features/roomaliasresolver/impl/src/main/res/values-uk/translations.xml @@ -1,4 +1,5 @@ + "Ми не можемо показати попередній перегляд цієї кімнати" "Не вдалося розв\'язати псевдонім кімнати." diff --git a/features/roomdetails/impl/src/main/res/values-be/translations.xml b/features/roomdetails/impl/src/main/res/values-be/translations.xml index 6ba7e59a2e..a686d58c90 100644 --- a/features/roomdetails/impl/src/main/res/values-be/translations.xml +++ b/features/roomdetails/impl/src/main/res/values-be/translations.xml @@ -115,4 +115,7 @@ "Ролі" "Дэталі пакоя" "Ролі і дазволы" + "Папрасіце далучыцца" + "Хто заўгодна" + "Хто заўгодна" diff --git a/features/roomdetails/impl/src/main/res/values-cs/translations.xml b/features/roomdetails/impl/src/main/res/values-cs/translations.xml index fc5c82860c..1e29ffa3df 100644 --- a/features/roomdetails/impl/src/main/res/values-cs/translations.xml +++ b/features/roomdetails/impl/src/main/res/values-cs/translations.xml @@ -123,7 +123,7 @@ "Role a oprávnění" "Přidat adresu místnosti" "Kdokoli může požádat o vstup do místnosti, ale správce nebo moderátor bude muset žádost přijmout." - "Požádat o vstup" + "Požádat o připojení" "Ano, povolit šifrování" "Po aktivaci nelze šifrování místnosti deaktivovat. Historie zpráv bude viditelná pouze pro členy místnosti od doby, kdy byli pozváni nebo od té doby, co do místnosti vstoupili. Nikdo kromě členů místnosti nebude moci číst zprávy. To může bránit správnému fungování robotů a propojení. diff --git a/features/roomdetails/impl/src/main/res/values-de/translations.xml b/features/roomdetails/impl/src/main/res/values-de/translations.xml index 310d955a60..c2833195a4 100644 --- a/features/roomdetails/impl/src/main/res/values-de/translations.xml +++ b/features/roomdetails/impl/src/main/res/values-de/translations.xml @@ -122,7 +122,7 @@ "Rollen und Berechtigungen" "Chatroomadresse hinzufügen" "Jeder kann den Beitritt zum Chatroom beantragen, aber ein Administrator oder Moderator muss die Anfrage annehmen." - "Bitte um Beitritt" + "Beitritt beantragen" "Ja, Verschlüsselung aktivieren" "Nach der Aktivierung kann die Verschlüsselung für einen Raum nicht mehr deaktiviert werden. Der Nachrichtenverlauf ist nur für Raummitglieder sichtbar, weil sie eingeladen wurden oder dem Chatroom beigetreten sind. Niemand außer den Raummitgliedern kann Nachrichten lesen. Dies kann verhindern, dass Bots und Bridges richtig funktionieren. @@ -132,7 +132,7 @@ Wir empfehlen nicht, die Verschlüsselung für Räume zu aktivieren, die jeder f "Verschlüsselung" "Ende-zu-Ende-Verschlüsselung aktivieren" "Jeder kann es finden und beitreten" - "Alle" + "Jemand" "Personen können nur beitreten, wenn sie eingeladen werden." "Nur auf Einladung" "Chatroomzugang" @@ -142,7 +142,7 @@ Wir empfehlen nicht, die Verschlüsselung für Räume zu aktivieren, die jeder f "Chatroomadresse" "Erlauben Sie, dass dieser Chatroom gefunden werden kann, indem Sie das %1$s öffentliche Chatroomverzeichnis durchsuchen" "Sichtbar im öffentlichen Chatroomverzeichnis" - "Jeder" + "Jemand" "Wer kann die Verlaufsgeschichte lesen" "Nur Mitglieder, da sie eingeladen wurden" "Nur Mitglieder seit Auswahl dieser Option" @@ -150,6 +150,6 @@ Wir empfehlen nicht, die Verschlüsselung für Räume zu aktivieren, die jeder f Lassen Sie die Möglichkeit zu, Ihren Chatroom in Ihrem öffentlichen Chatroomverzeichnis auf Ihrem Homeserver zu veröffentlichen." "Veröffentlichung von Räumen" "Chatroomadressen sind Möglichkeiten, Chatrooms zu finden und auf sie zuzugreifen. So können Sie Ihren Chatroom auch problemlos mit anderen teilen. Die Adresse ist auch erforderlich, um den Chatroom in einem %1$s öffentlichen Chatroomverzeichnis sichtbar zu machen." - "Chatroomsichtbarkeit." + " Sichtbarkeit des Chatrooms" "Sicherheit & Datenschutz" diff --git a/features/roomdetails/impl/src/main/res/values-el/translations.xml b/features/roomdetails/impl/src/main/res/values-el/translations.xml index 3f21e7cf52..3cd064109e 100644 --- a/features/roomdetails/impl/src/main/res/values-el/translations.xml +++ b/features/roomdetails/impl/src/main/res/values-el/translations.xml @@ -132,5 +132,7 @@ "Τα άτομα μπορούν να συμμετάσχουν μόνο εάν έχουν προσκληθεί" "Μόνο πρόσκληση" "Πρόσβαση δωματίου" + "Οποιοσδήποτε" + "Ορατότητα δωματίου" "Ασφάλεια & απόρρητο" diff --git a/features/roomdetails/impl/src/main/res/values-et/translations.xml b/features/roomdetails/impl/src/main/res/values-et/translations.xml index 698f9dffe9..8cf2c4a6a3 100644 --- a/features/roomdetails/impl/src/main/res/values-et/translations.xml +++ b/features/roomdetails/impl/src/main/res/values-et/translations.xml @@ -103,7 +103,7 @@ "Vaikimisi seadistuste taastamine ei õnnestunud. Palun proovi uuesti." "Seadistuste muutmine ei õnnestunud. Palun proovi uuesti." "Sinu koduserver ei toeta seda võimalust krüptitud jututubades, seega sa ei saa selle jututoa kohta teavitusi." - "Kõik sõnumid" + "Kõikide sõnumite korral" "Mainimiste ja võtmesõnade alusel" "Selles jututoas teavita mind" "Peakasutajad" @@ -122,7 +122,7 @@ "Rollid ja õigused" "Lisa jututoa aadress" "Kõik võivad paluda jututoaga liitumist, kuid peakasutaja või moderaator peavad sellega nõustuma." - "Palu võimalust liituda" + "Küsi võimalust liitumiseks" "Jah, lülita krüptimine sisse" "Kui jututoa krüptimine on kord sisse lülitatud, siis seda välja lülitada ei saa. Sõnumite ajalugu on nähtav vaid jututoa liikmetele alates kutse saamise või liitumise hetkest. Keegi teine peale jututoa liikmete ei saa sõnumeid lugeda. See võib takistada suhtlusrobotite ja/või võrgusildade toimimist. diff --git a/features/roomdetails/impl/src/main/res/values-hu/translations.xml b/features/roomdetails/impl/src/main/res/values-hu/translations.xml index 1dfc0f50e8..585f61ece5 100644 --- a/features/roomdetails/impl/src/main/res/values-hu/translations.xml +++ b/features/roomdetails/impl/src/main/res/values-hu/translations.xml @@ -139,7 +139,7 @@ Nem javasoljuk a titkosítás engedélyezését az olyan szobákban, amelyeket b "A terek jelenleg nem támogatottak" "A tér tagjai" "Szüksége lesz egy szobacímre, hogy láthatóvá váljon a szobakatalógusban." - "Szoba címe" + "A szoba címe" "A szoba megtalálhatóvá tétele a(z) %1$s nyilvános szobakatalógusában való kereséssel." "Látható a nyilvános szobakatalógusban" "Bárki" diff --git a/features/roomdetails/impl/src/main/res/values-in/translations.xml b/features/roomdetails/impl/src/main/res/values-in/translations.xml index 24c6fd1f0a..d09ccd3cff 100644 --- a/features/roomdetails/impl/src/main/res/values-in/translations.xml +++ b/features/roomdetails/impl/src/main/res/values-in/translations.xml @@ -115,4 +115,9 @@ "Peran" "Detail ruangan" "Peran dan perizinan" + "Minta untuk bergabung" + "Enkripsi" + "Siapa pun" + "Siapa pun" + "Keterlihatan ruangan" diff --git a/features/roomdetails/impl/src/main/res/values-nb/translations.xml b/features/roomdetails/impl/src/main/res/values-nb/translations.xml index 573622f3b6..a416b97cd2 100644 --- a/features/roomdetails/impl/src/main/res/values-nb/translations.xml +++ b/features/roomdetails/impl/src/main/res/values-nb/translations.xml @@ -18,7 +18,6 @@ "Inviter folk" "Forlat samtalen" "Forlat rommet" - "Medier og filer" "Tilpasset" "Standard" "Romnavn" @@ -60,10 +59,10 @@ "globale innstillinger" "Standard innstilling" "Fjern egendefinert innstilling" - "Alle meldinger" "I dette rommet, varsle meg om" "Administratorer" "Endre rollen min" + "Kryptering" "Områder støttes ikke for øyeblikket" "Medlemmer av område" diff --git a/features/roomdetails/impl/src/main/res/values-nl/translations.xml b/features/roomdetails/impl/src/main/res/values-nl/translations.xml index 6c677ea68e..10a8539ffa 100644 --- a/features/roomdetails/impl/src/main/res/values-nl/translations.xml +++ b/features/roomdetails/impl/src/main/res/values-nl/translations.xml @@ -114,4 +114,7 @@ "Rollen" "Kamergegevens" "Rollen en rechten" + "Vraag om toe te treden" + "Iedereen" + "Iedereen" diff --git a/features/roomdetails/impl/src/main/res/values-pl/translations.xml b/features/roomdetails/impl/src/main/res/values-pl/translations.xml index e2dec9da49..3d8954e760 100644 --- a/features/roomdetails/impl/src/main/res/values-pl/translations.xml +++ b/features/roomdetails/impl/src/main/res/values-pl/translations.xml @@ -1,5 +1,7 @@ + "Aby pokój był widoczny w katalogu, potrzebny jest adres pokoju." + "Adres pokoju" "Wystąpił błąd podczas aktualizacji ustawienia powiadomień." "Twój serwer domowy nie wspiera tej opcji w pokojach szyfrowanych, możesz nie otrzymać powiadomień z niektórych pokoi." "Ankiety" @@ -7,11 +9,11 @@ "Banowanie osób" "Usuwanie wiadomości" "Wszyscy" - "Zapraszanie osób" + "Zapraszanie osób i akceptowanie próśb o dołączenie" "Moderacja członków" "Wiadomości i zawartość" "Administratorzy i moderatorzy" - "Usuwanie osób" + "Usuwanie osób i odrzucanie próśb o dołączenie" "Zmień awatar pokoju" "Szczegóły pokoju" "Zmień nazwę pokoju" @@ -50,10 +52,11 @@ "Opuść rozmowę" "Opuść pokój" "Media i pliki" - "Niestandardowy" + "Niestandardowe" "Domyślny" "Powiadomienia" "Przypięte wiadomości" + "Profil" "Prośby o dołączenie" "Role i uprawnienia" "Nazwa pokoju" @@ -118,6 +121,7 @@ "Role" "Szczegóły pokoju" "Role i uprawnienia" + "Dodaj adres pokoju" "Każdy może poprosić o dołączenie do pokoju, ale administrator lub moderator będzie musiał zatwierdzić żądanie." "Poproś o dołączenie" "Tak, włącz szyfrowanie" @@ -129,9 +133,25 @@ Odradzamy włączanie szyfrowania dla pokoi, które każdy może znaleźć i do "Szyfrowanie" "Włącz szyfrowanie end-to-end" "Każdy może znaleźć i dołączyć" - "Każdy" + "Wszyscy" "Tylko osoby z zaproszeniem mogą dołączyć" "Tylko zaproszenie" "Dostęp do pokoju" + "Przestrzenie nie są obecnie wspierane" + "Członkowie przestrzeni" + "Aby pokój był widoczny w katalogu pokoi, potrzebny jest adres pokoju." + "Adres pokoju" + "Zezwól na znalezienie tego pokoju wyszukując %1$s w katalogu pokoi publicznych" + "Widoczny w katalogu pokoi publicznych" + "Wszyscy" + "Kto może czytać historię" + "Od momentu kiedy członkowie zostali zaproszeni" + "Członkowie od momentu włączenia tej opcji" + "Adresy pokoju umożliwiają łatwe znalezienie i dołączenie do pokojów. +Również możesz się zdecydować na upublicznienie Twojego serwera w katalogu pokoi publicznych." + "Publikowanie pokoju" + "Adresy pokoju umożliwiają łatwe znalezienie i dołączenie do pokojów. +Dodatkowo adres pokoju jest wymagany, aby pomieszczenie było widoczne w katalogu pokoi publicznych %1$s." + "Widoczność pomieszczenia" "Bezpieczeństwo i prywatność" diff --git a/features/roomdetails/impl/src/main/res/values-pt/translations.xml b/features/roomdetails/impl/src/main/res/values-pt/translations.xml index d4dcb4f7f4..7bc9f38097 100644 --- a/features/roomdetails/impl/src/main/res/values-pt/translations.xml +++ b/features/roomdetails/impl/src/main/res/values-pt/translations.xml @@ -1,5 +1,7 @@ + "É necessário um endereço para tornar a sala visível no diretório." + "Endereço da sala" "Erro ao atualizar a configuração de notificação." "O teu servidor não suporta esta opção em salas cifradas, pelo que poderás não ser notificado em algumas salas." "Sondagens" @@ -7,11 +9,11 @@ "Banir pessoas" "Remover mensagens" "Toda a gente" - "Convida pessoas" + "Convidar pessoas e aceitar pedidos de entrada" "Moderação de participantes" "Mensagens e conteúdo" "Administradores e moderadores" - "Remover pessoas" + "Remover pessoas e rejeitar pedidos de entrada" "Alterar o ícone da sala" "Detalhes da sala" "Altera o nome da sala" @@ -54,9 +56,11 @@ "Predefinição" "Notificações" "Mensagens afixadas" + "Perfil" "Pedidos de entrada" "Cargos e permissões" "Nome da sala" + "Segurança e privacidade" "Segurança" "Partilhar sala" "Informação da sala" @@ -99,7 +103,7 @@ "Falha ao restaurar o modo predefinido, tenta novamente." "Falha ao definir o modo, tenta novamente." "O teu servidor não suporta esta opção em salas cifradas, pelo que não serás notificado nesta sala." - "Todas as mensagens" + "Qualquer mensagem" "Menções ou palavras-chave" "Nesta sala, notifica-me se" "Administradores" @@ -116,4 +120,37 @@ "Cargos" "Detalhes da sala" "Cargos e permissões" + "Adicionar endereço de sala" + "Qualquer pessoa pode pedir para entrar na sala, mas um administrador ou moderador tem que aceitar o pedido." + "Pedir para participar" + "Sim, ativar cifragem" + "Uma vez ativada, a cifragem não pode ser desativada. O histórico de mensagens só será visível a membros a partir do momento em que foram convidados ou que entraram na sala. +Ninguém além dos membros poderão ler quaisquer mensagens. Isto pode impedir que robôs (\"bots\") e pontes (\"bridges\") funcionem devidamente. +Não recomendamos ativar a cifragem em salas que qualquer pessoa possa encontrar e entrar." + "Ativar cifragem?" + "Uma vez ativada, a cifragem não pode ser desativada." + "Cifragem" + "Ativar cifragem ponta-a-ponta" + "Qualquer pessoa pode encontrar a sala e entrar" + "Qualquer pessoa" + "Só é possível entrar tendo um convite" + "Apenas por convite" + "Acesso à sala" + "Os espaços ainda não estão implementados" + "Membros do espaço" + "É necessário um endereço para tornar a sala visível no diretório." + "Endereço da sala" + "Permite que esta sala seja encontrada através do diretório público do %1$s." + "Visível no diretório público de salas" + "Qualquer pessoa" + "Quem pode ler o histórico de mensagens" + "Apenas membros, desde o momento em que forem convidados" + "Apenas membros, desde o memento em que esta opção for selecionada" + "Estes endereços permitem encontrar e aceder a sala, bem como a sua fácil partilha com outros. +Podes escolher publicar a sala no diretório público do teu servidor." + "Publicar sala" + "Estes endereços permitem encontrar e aceder a sala, bem como a sua fácil partilha com outros. +Além disso, é necessário ter endereço para publicar a sala no diretório público do %1$s." + "Visibilidade da sala" + "Segurança e privacidade" diff --git a/features/roomdetails/impl/src/main/res/values-ro/translations.xml b/features/roomdetails/impl/src/main/res/values-ro/translations.xml index e4ad084733..38c9fdc5c1 100644 --- a/features/roomdetails/impl/src/main/res/values-ro/translations.xml +++ b/features/roomdetails/impl/src/main/res/values-ro/translations.xml @@ -114,4 +114,8 @@ "Roluri" "Detaliile camerei" "Roluri și permisiuni" + "Cereți să vă alăturați" + "Criptare" + "Oricine" + "Oricine" diff --git a/features/roomdetails/impl/src/main/res/values-ru/translations.xml b/features/roomdetails/impl/src/main/res/values-ru/translations.xml index 611b89a45d..7c984f573e 100644 --- a/features/roomdetails/impl/src/main/res/values-ru/translations.xml +++ b/features/roomdetails/impl/src/main/res/values-ru/translations.xml @@ -123,7 +123,7 @@ "Роли и разрешения" "Добавить адрес комнаты" "Любой желающий может подать заявку на присоединение к комнате, но администратор или модератор должен будет принять запрос." - "Присоединиться" + "Попросить присоединиться" "Да, включить шифрование" "Шифрование комнаты нельзя будет отключить, история сообщений будет видна только участникам комнаты с момента их приглашения или с момента присоединения к комнате. Никто, кроме членов комнаты, не сможет читать сообщения. Это может помешать ботам и мостам работать корректно. diff --git a/features/roomdetails/impl/src/main/res/values-sv/translations.xml b/features/roomdetails/impl/src/main/res/values-sv/translations.xml index 829ab87f86..6497995b02 100644 --- a/features/roomdetails/impl/src/main/res/values-sv/translations.xml +++ b/features/roomdetails/impl/src/main/res/values-sv/translations.xml @@ -49,12 +49,15 @@ "Bjud in personer" "Lämna konversation" "Lämna rum" + "Media och filer" "Anpassad" "Förval" "Aviseringar" "Fästa meddelanden" + "Begäran om att gå med" "Roller och behörigheter" "Rumsnamn" + "Säkerhet och sekretess" "Säkerhet" "Dela rum" "Rumsinfo" @@ -114,4 +117,22 @@ "Roller" "Rumsdetaljer" "Roller och behörigheter" + "Vem som helst kan be om att gå med i rummet men en administratör eller moderator måste acceptera begäran." + "Be om att gå med" + "Ja, aktivera kryptering" + "När det är aktiverat kan kryptering för ett rum inte inaktiveras, meddelandehistoriken visas bara för rumsmedlemmar sedan de blev inbjudna eller sedan de gick med i rummet. +Ingen förutom rumsmedlemmarna kommer att kunna läsa meddelanden. Detta kan förhindra att bots och bridges fungerar korrekt. +Vi rekommenderar inte att aktivera kryptering för rum som vem som helst kan hitta och gå med i." + "Aktivera kryptering?" + "Efter aktivering kan kryptering inte inaktiveras." + "Kryptering" + "Aktivera totalsträckskryptering" + "Vem som helst kan hitta och gå med" + "Vem som helst" + "Användare kan bara gå med om de är inbjudna" + "Endast inbjudan" + "Tillgång till rum" + "Vem som helst" + "Rumssynlighet" + "Säkerhet och sekretess" diff --git a/features/roomdetails/impl/src/main/res/values-tr/translations.xml b/features/roomdetails/impl/src/main/res/values-tr/translations.xml new file mode 100644 index 0000000000..f3dfc3f336 --- /dev/null +++ b/features/roomdetails/impl/src/main/res/values-tr/translations.xml @@ -0,0 +1,156 @@ + + + "Dizinde görünür hale getirmek için bir oda adresine ihtiyacınız olacak." + "Oda adresi" + "Bildirim ayarı güncellenirken bir hata oluştu." + "Ana sunucunuz şifreli odalarda bu seçeneği desteklemiyor, bazı odalarda bildirim almayabilirsiniz." + "Anketler" + "Yalnızca yöneticiler" + "İnsanları yasakla" + "Mesajları kaldır" + "Herkes" + "Kişileri davet etme ve katılma isteklerini kabul etme" + "Üye moderasyonu" + "Mesajlar ve içerik" + "Yöneticiler ve moderatörler" + "Kişileri kaldırma ve katılma isteklerini reddetme" + "Oda resmini değiştir" + "Oda bilgileri" + "Oda adını değiştir" + "Oda konusunu değiştir" + "Mesaj gönder" + "Yöneticileri Düzenle" + "Bu eylemi geri alamazsınız. Kullanıcıyı sizinle aynı güç seviyesine sahip olacak şekilde terfi ettiriyorsunuz." + "Yönetici Ekle?" + "Rütbe Düşür" + "Rütbenizi düşürdüğünüz için bu değişikliği geri alamazsınız, eğer odadaki son ayrıcalıklı kullanıcı sizseniz ayrıcalıkları yeniden kazanmanız mümkün olmayacaktır." + "Rütbeni düşür?" + "%1$s (Beklemede)" + "(Beklemede)" + "Yöneticiler otomatik olarak moderatör ayrıcalıklarına sahiptir" + "Moderatörleri Düzenle" + "Yöneticiler" + "Moderatörler" + "Üyeler" + "Kaydedilmemiş değişiklikleriniz var." + "Değişiklikleri Kaydet?" + "Konu ekle" + "Zaten üye" + "Zaten davet edildi" + "Şifrelenmiş" + "Şifrelenmemiş" + "Herkese açık oda" + "Odayı Düzenle" + "Bilinmeyen bir hata oluştu ve bilgiler değiştirilemedi." + "Oda güncellenemiyor" + "Mesajlar kilitlerle güvence altına alınır. Yalnızca siz ve alıcılar, bunların kilidini açmak için benzersiz anahtarlara sahipsiniz." + "Mesaj şifrelemesi etkinleştirildi" + "Bildirim ayarları yüklenirken bir hata oluştu." + "Bu odayı sessize alma başarısız oldu, lütfen tekrar deneyin." + "Bu odanın sesi açılamadı, lütfen tekrar deneyin." + "İnsanları davet et" + "Sohbeti bırak" + "Odadan ayrıl" + "Medya ve dosyalar" + "Özel" + "Varsayılan" + "Bildirimler" + "Sabitlenmiş mesajlar" + "Profil" + "Katılma istekleri" + "Roller ve izinler" + "Oda adı" + "Güvenlik ve gizlilik" + "Güvenlik" + "Oda paylaş" + "Oda bilgisi" + "Konu" + "Oda güncelleniyor…" + "Yasakla" + "Davet edilseler bile bu odaya tekrar katılamazlar." + "Bu üyeyi yasaklamak istediğinize emin misiniz?" + "Bu odada yasaklı kullanıcı yok." + "Yasaklanıyor %1$s" + + "%1$d kişi" + "%1$d kişi" + + "Üyeyi çıkar ve yasakla" + "Odadan çıkar" + "Üyeyi çıkar ve yasakla" + "Yalnızca üyeyi kaldır" + "Üyeyi çıkarın ve gelecekte katılmasını yasaklayın?" + "Yasağı Kaldır" + "Davet edildikleri takdirde bu odaya tekrar katılabileceklerdir." + "Kullanıcının yasağını kaldır" + "Profili görüntüle" + "Yasaklandı" + "Üyeler" + "Beklemede" + "Kaldırılıyor %1$s…" + "Yönetici" + "Moderatör" + "Oda üyeleri" + "Yasak kaldırılıyor %1$s" + "Özel ayarlara izin ver" + "Bunu açmak varsayılan ayarlarınızı geçersiz kılacaktır" + "Bu sohbette bana bildir" + "Bunu %1$s içinde değiştirebilirsiniz." + "genel ayarlar" + "Varsayılan ayar" + "Özel ayarı kaldır" + "Bildirim ayarları yüklenirken bir hata oluştu." + "Varsayılan ayarlar geri yüklenemedi, lütfen tekrar deneyin." + "Ayarlanamadı, lütfen tekrar deneyin." + "Ana sunucunuz şifreli odalarda bu seçeneği desteklemiyor, bu odada bildirim almayacaksınız." + "Tüm mesajlar" + "Yalnızca Bahsetmeler ve Anahtar Kelimeler" + "Bu odada, bana bildir" + "Yöneticiler" + "Rolümü değiştir" + "Üyeliğe düşür" + "Moderatörlüğe düşür" + "Üye moderasyonu" + "Mesajlar ve içerik" + "Moderatörler" + "İzinler" + "İzinleri sıfırla" + "İzinleri sıfırladığınızda, mevcut ayarları kaybedersiniz." + "İzinleri sıfırla?" + "Roller" + "Oda bilgileri" + "Roller ve izinler" + "Oda adresi ekle" + "Herkes odaya katılma isteğinde bulunabilir ancak bir yönetici veya moderatörün isteği kabul etmesi gerekir." + "Katılmak için sor" + "Evet, şifrelemeyi etkinleştir" + "Etkinleştirildikten sonra, bir oda için şifreleme devre dışı bırakılamaz, Mesaj geçmişi yalnızca davet edildiklerinden veya odaya katıldıklarından beri oda üyeleri için görünür olacaktır. +Oda üyeleri dışında hiç kimse mesajları okuyamayacaktır. Bu, botların ve köprülerin düzgün çalışmasını engelleyebilir. +Herkesin bulabileceği ve katılabileceği odalar için şifrelemenin etkinleştirilmesini önermiyoruz." + "Şifrelemeyi etkinleştir?" + "Açıldıktan donra şifreleme kapatılamaz." + "Şifreleme" + "Uçtan uca şifrelemeyi etkinleştir" + "Herkes bulabilir ve katılabilir" + "Herkes" + "İnsanlar yalnızca davet edildiklerinde katılabilirler" + "Yalnızca davet" + "Oda Erişimi" + "Alanlar şu anda desteklenmiyor" + "Alan üyeleri" + "Oda dizininde görünür kılmak için bir oda adresine ihtiyacınız olacaktır." + "Oda adresi" + "Bu odanın %1$s genel oda dizininde arama yapılarak bulunmasına izin verin" + "Genel oda dizininde görünür" + "Herkes" + "Geçmişi kimler okuyabilir ?" + "Sadece üyeler (davet edildiklerinden beri)" + "Bu seçeneği seçtiğinden beri yalnızca üyeler" + "Oda adresleri, odaları bulmanın ve odalara erişmenin yoludur. Bu aynı zamanda odanızı başkalarıyla kolayca paylaşabilmenizi sağlar. +Odanızı ana sunucunuzun genel oda dizininde yayınlamayı seçebilirsiniz." + "Oda yayınlama" + "Oda adresleri, odaları bulmanın ve odalara erişmenin yollarıdır. Bu aynı zamanda odanızı başkalarıyla kolayca paylaşabilmenizi sağlar. +Adres, odayı %1$s genel oda dizininde görünür kılmak için de gereklidir." + "Oda görünürlüğü" + "Güvenlik ve gizlilik" + diff --git a/features/roomdetails/impl/src/main/res/values-uk/translations.xml b/features/roomdetails/impl/src/main/res/values-uk/translations.xml index 1bbbcd4817..745c2dd029 100644 --- a/features/roomdetails/impl/src/main/res/values-uk/translations.xml +++ b/features/roomdetails/impl/src/main/res/values-uk/translations.xml @@ -9,11 +9,11 @@ "Заблоковувати людей" "Вилучати повідомлення" "Усі" - "Запрошувати людей" + "Запрошувати людей і приймати запити на приєднання" "Модерація учасників" "Повідомлення та зміст" "Адміністратори та модератори" - "Вилучати людей" + "Вилучати людей і відхиляти запити на приєднання" "Змінювати аватар кімнати" "Деталі кімнати" "Змінювати назву кімнати" @@ -123,7 +123,7 @@ "Ролі та дозволи" "Додати адресу кімнати" "Будь-хто може надіслати запит приєднатися до кімнати, але адміністратор або модератор повинні прийняти запит." - "Запит на приєднання" + "Запросити приєднатися" "Так, увімкнути шифрування" "Після ввімкнення шифрування кімнати, його неможливо вимкнути, історію повідомлень бачитимуть лише учасники кімнати, яких було запрошено або які приєдналися до кімнати. Ніхто, крім учасників кімнати, не зможе прочитати повідомлення. Це може перешкоджати коректній роботі ботів і мостів. @@ -133,7 +133,7 @@ "Шифрування" "Увімкнути наскрізне шифрування" "Будь-хто може знайти та приєднатися." - "Будь-хто" + "Кожний" "Люди можуть приєднатися, лише якщо їх запросили" "Лише запрошені" "Доступ до кімнати" @@ -143,7 +143,7 @@ "Адреса кімнати" "Дозвольте, щоб цю кімнату можна було знайти за допомогою пошуку в каталозі загальнодоступних кімнат %1$s " "Видима в каталозі загальнодоступних кімнат" - "Будь-хто" + "Кожний" "Хто може читати історію" "Лише учасники з моменту запрошення" "Лише учасники після вибору цього параметра" diff --git a/features/roomdetails/impl/src/main/res/values-zh/translations.xml b/features/roomdetails/impl/src/main/res/values-zh/translations.xml index 6446625c26..10a6e19265 100644 --- a/features/roomdetails/impl/src/main/res/values-zh/translations.xml +++ b/features/roomdetails/impl/src/main/res/values-zh/translations.xml @@ -102,7 +102,7 @@ "恢复默认模式失败,请重试。" "设置模式失败,请重试。" "服务器在加密聊天室中不支持此选项,无法在此聊天室收到通知。" - "所有消息" + "全部消息" "仅限提及和关键词" "在这个聊天室,通知我:" "管理员" diff --git a/features/roomdirectory/impl/src/main/res/values-tr/translations.xml b/features/roomdirectory/impl/src/main/res/values-tr/translations.xml new file mode 100644 index 0000000000..22a76932e3 --- /dev/null +++ b/features/roomdirectory/impl/src/main/res/values-tr/translations.xml @@ -0,0 +1,5 @@ + + + "Yükleme başarısız" + "Oda dizini" + diff --git a/features/roomlist/impl/src/main/kotlin/io/element/android/features/roomlist/impl/RoomListContentStateProvider.kt b/features/roomlist/impl/src/main/kotlin/io/element/android/features/roomlist/impl/RoomListContentStateProvider.kt index a95f6b7b6d..64348f623c 100644 --- a/features/roomlist/impl/src/main/kotlin/io/element/android/features/roomlist/impl/RoomListContentStateProvider.kt +++ b/features/roomlist/impl/src/main/kotlin/io/element/android/features/roomlist/impl/RoomListContentStateProvider.kt @@ -22,7 +22,6 @@ open class RoomListContentStateProvider : PreviewParameterProvider().forEach { it.onLogoutForNativeSlidingSyncMigrationNeeded() } - } - }, modifier = modifier, ) { acceptDeclineInviteView.Render( @@ -121,8 +111,6 @@ class RoomListNode @AssistedInject constructor( ) } - directLogoutView.Render(state.directLogoutState) { - enableNativeSlidingSyncUseCase() - } + directLogoutView.Render(state.directLogoutState) {} } } diff --git a/features/roomlist/impl/src/main/kotlin/io/element/android/features/roomlist/impl/RoomListPresenter.kt b/features/roomlist/impl/src/main/kotlin/io/element/android/features/roomlist/impl/RoomListPresenter.kt index ae111297d9..29a462149a 100644 --- a/features/roomlist/impl/src/main/kotlin/io/element/android/features/roomlist/impl/RoomListPresenter.kt +++ b/features/roomlist/impl/src/main/kotlin/io/element/android/features/roomlist/impl/RoomListPresenter.kt @@ -48,7 +48,6 @@ import io.element.android.libraries.matrix.api.core.RoomId import io.element.android.libraries.matrix.api.encryption.EncryptionService import io.element.android.libraries.matrix.api.encryption.RecoveryState import io.element.android.libraries.matrix.api.roomlist.RoomList -import io.element.android.libraries.matrix.api.sync.SlidingSyncVersion import io.element.android.libraries.matrix.api.sync.SyncService import io.element.android.libraries.matrix.api.sync.isOnline import io.element.android.libraries.matrix.api.timeline.ReceiptType @@ -173,16 +172,13 @@ class RoomListPresenter @Inject constructor( @Composable private fun rememberSecurityBannerState( securityBannerDismissed: Boolean, - needsSlidingSyncMigration: Boolean, ): State { val currentSecurityBannerDismissed by rememberUpdatedState(securityBannerDismissed) - val currentNeedsSlidingSyncMigration by rememberUpdatedState(needsSlidingSyncMigration) val recoveryState by encryptionService.recoveryStateStateFlow.collectAsState() return remember { derivedStateOf { calculateBannerState( securityBannerDismissed = currentSecurityBannerDismissed, - needsSlidingSyncMigration = currentNeedsSlidingSyncMigration, recoveryState = recoveryState, ) } @@ -191,7 +187,6 @@ class RoomListPresenter @Inject constructor( private fun calculateBannerState( securityBannerDismissed: Boolean, - needsSlidingSyncMigration: Boolean, recoveryState: RecoveryState, ): SecurityBannerState { if (securityBannerDismissed) { @@ -206,10 +201,6 @@ class RoomListPresenter @Inject constructor( RecoveryState.ENABLED -> Unit } - if (needsSlidingSyncMigration) { - return SecurityBannerState.NeedsNativeSlidingSyncMigration - } - return SecurityBannerState.None } @@ -231,10 +222,7 @@ class RoomListPresenter @Inject constructor( loadingState == RoomList.LoadingState.NotLoaded || roomSummaries is AsyncData.Loading } } - val needsSlidingSyncMigration by produceState(false) { - value = client.needsSlidingSyncMigration().getOrDefault(false) - } - val securityBannerState by rememberSecurityBannerState(securityBannerDismissed, needsSlidingSyncMigration) + val securityBannerState by rememberSecurityBannerState(securityBannerDismissed) return when { showEmpty -> RoomListContentState.Empty(securityBannerState = securityBannerState) showSkeleton -> RoomListContentState.Skeleton(count = 16) @@ -320,19 +308,6 @@ class RoomListPresenter @Inject constructor( } } - /** - * Checks if the user needs to migrate to a native sliding sync version. - */ - private suspend fun MatrixClient.needsSlidingSyncMigration(): Result = runCatching { - val currentSlidingSyncVersion = currentSlidingSyncVersion().getOrThrow() - if (currentSlidingSyncVersion != SlidingSyncVersion.Native) { - val availableSlidingSyncVersions = availableSlidingSyncVersions().getOrThrow() - availableSlidingSyncVersions.contains(SlidingSyncVersion.Native) - } else { - false - } - } - private var currentUpdateVisibleRangeJob: Job? = null private fun CoroutineScope.updateVisibleRange(range: IntRange) { currentUpdateVisibleRangeJob?.cancel() diff --git a/features/roomlist/impl/src/main/kotlin/io/element/android/features/roomlist/impl/RoomListState.kt b/features/roomlist/impl/src/main/kotlin/io/element/android/features/roomlist/impl/RoomListState.kt index 65cf5a35a6..07994ef8cb 100644 --- a/features/roomlist/impl/src/main/kotlin/io/element/android/features/roomlist/impl/RoomListState.kt +++ b/features/roomlist/impl/src/main/kotlin/io/element/android/features/roomlist/impl/RoomListState.kt @@ -56,7 +56,6 @@ enum class SecurityBannerState { None, SetUpRecovery, RecoveryKeyConfirmation, - NeedsNativeSlidingSyncMigration, } @Immutable diff --git a/features/roomlist/impl/src/main/kotlin/io/element/android/features/roomlist/impl/RoomListView.kt b/features/roomlist/impl/src/main/kotlin/io/element/android/features/roomlist/impl/RoomListView.kt index 668ce06255..45fa5113e5 100644 --- a/features/roomlist/impl/src/main/kotlin/io/element/android/features/roomlist/impl/RoomListView.kt +++ b/features/roomlist/impl/src/main/kotlin/io/element/android/features/roomlist/impl/RoomListView.kt @@ -50,7 +50,6 @@ fun RoomListView( onRoomSettingsClick: (roomId: RoomId) -> Unit, onMenuActionClick: (RoomListMenuAction) -> Unit, onRoomDirectorySearchClick: () -> Unit, - onMigrateToNativeSlidingSyncClick: () -> Unit, modifier: Modifier = Modifier, acceptDeclineInviteView: @Composable () -> Unit, ) { @@ -77,7 +76,6 @@ fun RoomListView( onOpenSettings = onSettingsClick, onCreateRoomClick = onCreateRoomClick, onMenuActionClick = onMenuActionClick, - onMigrateToNativeSlidingSyncClick = onMigrateToNativeSlidingSyncClick, modifier = Modifier.padding(top = topPadding), ) // This overlaid view will only be visible when state.displaySearchResults is true @@ -107,7 +105,6 @@ private fun RoomListScaffold( onOpenSettings: () -> Unit, onCreateRoomClick: () -> Unit, onMenuActionClick: (RoomListMenuAction) -> Unit, - onMigrateToNativeSlidingSyncClick: () -> Unit, modifier: Modifier = Modifier, ) { fun onRoomClick(room: RoomListRoomSummary) { @@ -143,7 +140,6 @@ private fun RoomListScaffold( onConfirmRecoveryKeyClick = onConfirmRecoveryKeyClick, onRoomClick = ::onRoomClick, onCreateRoomClick = onCreateRoomClick, - onMigrateToNativeSlidingSyncClick = onMigrateToNativeSlidingSyncClick, modifier = Modifier .padding(padding) .consumeWindowInsets(padding) @@ -184,6 +180,5 @@ internal fun RoomListViewPreview(@PreviewParameter(RoomListStateProvider::class) onMenuActionClick = {}, onRoomDirectorySearchClick = {}, acceptDeclineInviteView = {}, - onMigrateToNativeSlidingSyncClick = {}, ) } diff --git a/features/roomlist/impl/src/main/kotlin/io/element/android/features/roomlist/impl/components/NativeSlidingSyncMigrationBanner.kt b/features/roomlist/impl/src/main/kotlin/io/element/android/features/roomlist/impl/components/NativeSlidingSyncMigrationBanner.kt deleted file mode 100644 index 132f0a0dc9..0000000000 --- a/features/roomlist/impl/src/main/kotlin/io/element/android/features/roomlist/impl/components/NativeSlidingSyncMigrationBanner.kt +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Copyright 2024 New Vector 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.roomlist.impl.components - -import androidx.compose.runtime.Composable -import androidx.compose.ui.Modifier -import androidx.compose.ui.res.stringResource -import io.element.android.features.roomlist.impl.R -import io.element.android.libraries.designsystem.components.Announcement -import io.element.android.libraries.designsystem.components.AnnouncementType -import io.element.android.libraries.designsystem.preview.ElementPreview -import io.element.android.libraries.designsystem.preview.PreviewsDayNight - -@Composable -internal fun NativeSlidingSyncMigrationBanner( - onContinueClick: () -> Unit, - onDismissClick: () -> Unit, - modifier: Modifier = Modifier, -) { - Announcement( - modifier = modifier.roomListBannerPadding(), - title = stringResource(R.string.banner_migrate_to_native_sliding_sync_title), - description = stringResource(R.string.banner_migrate_to_native_sliding_sync_description), - type = AnnouncementType.Actionable( - actionText = stringResource(R.string.banner_migrate_to_native_sliding_sync_action), - onActionClick = onContinueClick, - onDismissClick = onDismissClick, - ) - ) -} - -@PreviewsDayNight -@Composable -internal fun NativeSlidingSyncMigrationBannerPreview() = ElementPreview { - NativeSlidingSyncMigrationBanner( - onContinueClick = {}, - onDismissClick = {}, - ) -} diff --git a/features/roomlist/impl/src/main/kotlin/io/element/android/features/roomlist/impl/components/RoomListContentView.kt b/features/roomlist/impl/src/main/kotlin/io/element/android/features/roomlist/impl/components/RoomListContentView.kt index f719a9c9c9..ebd618185c 100644 --- a/features/roomlist/impl/src/main/kotlin/io/element/android/features/roomlist/impl/components/RoomListContentView.kt +++ b/features/roomlist/impl/src/main/kotlin/io/element/android/features/roomlist/impl/components/RoomListContentView.kt @@ -64,7 +64,6 @@ fun RoomListContentView( onConfirmRecoveryKeyClick: () -> Unit, onRoomClick: (RoomListRoomSummary) -> Unit, onCreateRoomClick: () -> Unit, - onMigrateToNativeSlidingSyncClick: () -> Unit, modifier: Modifier = Modifier, ) { Box(modifier = modifier) { @@ -90,7 +89,6 @@ fun RoomListContentView( eventSink = eventSink, onSetUpRecoveryClick = onSetUpRecoveryClick, onConfirmRecoveryKeyClick = onConfirmRecoveryKeyClick, - onMigrateToNativeSlidingSyncClick = onMigrateToNativeSlidingSyncClick, onRoomClick = onRoomClick, ) } @@ -162,7 +160,6 @@ private fun RoomsView( onSetUpRecoveryClick: () -> Unit, onConfirmRecoveryKeyClick: () -> Unit, onRoomClick: (RoomListRoomSummary) -> Unit, - onMigrateToNativeSlidingSyncClick: () -> Unit, modifier: Modifier = Modifier, ) { if (state.summaries.isEmpty() && filtersState.hasAnyFilterSelected) { @@ -177,7 +174,6 @@ private fun RoomsView( onSetUpRecoveryClick = onSetUpRecoveryClick, onConfirmRecoveryKeyClick = onConfirmRecoveryKeyClick, onRoomClick = onRoomClick, - onMigrateToNativeSlidingSyncClick = onMigrateToNativeSlidingSyncClick, modifier = modifier.fillMaxSize(), ) } @@ -190,7 +186,6 @@ private fun RoomsViewList( onSetUpRecoveryClick: () -> Unit, onConfirmRecoveryKeyClick: () -> Unit, onRoomClick: (RoomListRoomSummary) -> Unit, - onMigrateToNativeSlidingSyncClick: () -> Unit, modifier: Modifier = Modifier, ) { val lazyListState = rememberLazyListState() @@ -229,14 +224,6 @@ private fun RoomsViewList( ) } } - SecurityBannerState.NeedsNativeSlidingSyncMigration -> { - item { - NativeSlidingSyncMigrationBanner( - onContinueClick = onMigrateToNativeSlidingSyncClick, - onDismissClick = { updatedEventSink(RoomListEvents.DismissBanner) }, - ) - } - } SecurityBannerState.None -> if (state.fullScreenIntentPermissionsState.shouldDisplayBanner) { item { FullScreenIntentPermissionBanner(state = state.fullScreenIntentPermissionsState) @@ -318,6 +305,5 @@ internal fun RoomListContentViewPreview(@PreviewParameter(RoomListContentStatePr onConfirmRecoveryKeyClick = {}, onRoomClick = {}, onCreateRoomClick = {}, - onMigrateToNativeSlidingSyncClick = {}, ) } diff --git a/features/roomlist/impl/src/main/res/values-be/translations.xml b/features/roomlist/impl/src/main/res/values-be/translations.xml index a6201922ff..d7d20060c8 100644 --- a/features/roomlist/impl/src/main/res/values-be/translations.xml +++ b/features/roomlist/impl/src/main/res/values-be/translations.xml @@ -1,9 +1,5 @@ - "Выйсці і абнавіць" - "Ваш сервер зараз падтрымлівае новы, хутчэйшы пратакол. Выйдзіце з сістэмы і зноў увайдзіце, каб абнавіць яе. Гэта дапаможа вам пазбегнуць прымусовага выхаду з сістэмы, калі стары пратакол будзе пазней выдалены." - "Ваш хатні сервер больш не падтрымлівае стары пратакол. Калі ласка, выйдзіце і ўвайдзіце зноў, каб працягнуць выкарыстанне праграмы." - "Даступна абнаўленне" "Стварыце новы ключ аднаўлення, які можна выкарыстоўваць для аднаўлення зашыфраванай гісторыі паведамленняў у выпадку страты доступу да вашых прылад." "Наладзьце аднаўленне" "Наладзіць аднаўленне" diff --git a/features/roomlist/impl/src/main/res/values-bg/translations.xml b/features/roomlist/impl/src/main/res/values-bg/translations.xml index 8012e4283b..4afa8044f3 100644 --- a/features/roomlist/impl/src/main/res/values-bg/translations.xml +++ b/features/roomlist/impl/src/main/res/values-bg/translations.xml @@ -9,6 +9,7 @@ "Създаване на нов разговор или стая" "Започнете, като изпратите съобщение на някого." "Все още няма чатове." + "Покани" "Нисък приоритет" "Хора" "Стаи" diff --git a/features/roomlist/impl/src/main/res/values-cs/translations.xml b/features/roomlist/impl/src/main/res/values-cs/translations.xml index 921bb77027..795edcfe0c 100644 --- a/features/roomlist/impl/src/main/res/values-cs/translations.xml +++ b/features/roomlist/impl/src/main/res/values-cs/translations.xml @@ -1,9 +1,5 @@ - "Odhlásit se a upgradovat" - "Váš server nyní podporuje nový, rychlejší protokol. Chcete-li upgradovat, odhlaste se a znovu se přihlaste. Pokud to uděláte nyní, pomůže vám vyhnout se nucenému odhlášení, když bude starý protokol později odstraněn." - "Váš domovský server již nepodporuje starý protokol. Chcete-li pokračovat v používání aplikace, odhlaste se a znovu se přihlaste." - "Upgrade k dispozici" "Vygenerujte nový klíč pro obnovení, který lze použít k obnovení historie šifrovaných zpráv v případě, že ztratíte přístup ke svým zařízením." "Nastavení obnovy" "Nastavení obnovy" diff --git a/features/roomlist/impl/src/main/res/values-de/translations.xml b/features/roomlist/impl/src/main/res/values-de/translations.xml index 3b8b70c40f..8fa6b7c756 100644 --- a/features/roomlist/impl/src/main/res/values-de/translations.xml +++ b/features/roomlist/impl/src/main/res/values-de/translations.xml @@ -1,9 +1,5 @@ - "Abmelden und aktualisieren" - "Dein Server unterstützt jetzt ein neues, schnelleres Protokoll. Melde dich ab und melde dich wieder an, um zu aktualisieren. Wenn du das jetzt tust, vermeidest du eine erzwungene Abmeldung, wenn das alte Protokoll später entfernt wird." - "Dein Homeserver unterstützt das alte Protokoll nicht mehr. Bitte logge dich aus und melde dich wieder an, um die App weiter zu nutzen." - "Aktualisierung verfügbar" "Erstelle einen neuen Wiederherstellungsschlüssel, mit dem du deinen verschlüsselten Nachrichtenverlauf wiederherstellen kannst, wenn du dich an einem neuen Gerät anmeldest." "Wiederherstellung einrichten" "Wiederherstellung einrichten" diff --git a/features/roomlist/impl/src/main/res/values-el/translations.xml b/features/roomlist/impl/src/main/res/values-el/translations.xml index c1ac4c5945..b92c7daa90 100644 --- a/features/roomlist/impl/src/main/res/values-el/translations.xml +++ b/features/roomlist/impl/src/main/res/values-el/translations.xml @@ -1,9 +1,5 @@ - "Αποσύνδεση & Αναβάθμιση" - "Ο διακομιστής σου υποστηρίζει τώρα ένα νέο, ταχύτερο πρωτόκολλο. Αποσυνδέσου και συνδέσου ξανά για αναβάθμιση τώρα. Κάνοντας αυτό τώρα θα σε βοηθήσει να αποφύγεις μια αναγκαστική αποσύνδεση όταν το παλιό πρωτόκολλο καταργηθεί αργότερα." - "Ο οικιακός διακομιστής σου δεν υποστηρίζει πλέον το παλιό πρωτόκολλο. Αποσυνδέσου και συνδέσου ξανά για να συνεχίσεις να χρησιμοποιείς την εφαρμογή." - "Διαθέσιμη αναβάθμιση" "Δημιούργησε ένα νέο κλειδί ανάκτησης που μπορεί να χρησιμοποιηθεί για την επαναφορά του ιστορικού των κρυπτογραφημένων μηνυμάτων σου σε περίπτωση που χάσεις την πρόσβαση στις συσκευές σου." "Ρύθμιση ανάκτησης" "Ρύθμιση ανάκτησης" diff --git a/features/roomlist/impl/src/main/res/values-es/translations.xml b/features/roomlist/impl/src/main/res/values-es/translations.xml index 25f8e0ba21..396f125994 100644 --- a/features/roomlist/impl/src/main/res/values-es/translations.xml +++ b/features/roomlist/impl/src/main/res/values-es/translations.xml @@ -18,6 +18,7 @@ "Puedes añadir un chat a tus favoritos en la configuración del chat. Por ahora, puedes deseleccionar los filtros para ver tus otros chats" "Aún no tienes chats favoritos" + "Invitaciones" "Prioridad baja" "Puedes deseleccionar filtros para ver tus otros chats." "No tienes chats para esta selección" diff --git a/features/roomlist/impl/src/main/res/values-et/translations.xml b/features/roomlist/impl/src/main/res/values-et/translations.xml index 2eb1f63832..f642e34457 100644 --- a/features/roomlist/impl/src/main/res/values-et/translations.xml +++ b/features/roomlist/impl/src/main/res/values-et/translations.xml @@ -1,9 +1,5 @@ - "Logi välja ja uuenda" - "Sinu koduserver toetab uut ja kiiremat protokolli. Uuendamiseks logi korraks rakendusest välja ja siis tagasi. Mingil hetkel tulevikus vana protokoll eemaldatakse kasutusest ja tehes uuenduse nüüd väldid hilisemat sundkorras uuendust." - "Sinu koduserver enam ei toeta vana protokolli. Jätkamaks rakenduse kasutamist palun logi välja ning seejärel tagasi." - "Saadaval on uuendus" "Loo uus taastevõti, mida saad kasutada oma krüptitud sõnumite ajaloo taastamisel olukorras, kus kaotad ligipääsu oma seadmetele." "Seadista andmete taastamine" "Seadista taastamine" diff --git a/features/roomlist/impl/src/main/res/values-fa/translations.xml b/features/roomlist/impl/src/main/res/values-fa/translations.xml index f99eb289a6..2bccfdb38a 100644 --- a/features/roomlist/impl/src/main/res/values-fa/translations.xml +++ b/features/roomlist/impl/src/main/res/values-fa/translations.xml @@ -1,7 +1,5 @@ - "خروج و ارتقا" - "ارتقا موجود است" "برپایی بازیابی" "برپایی بازیابی" "ورود کلید بازیابیتان" diff --git a/features/roomlist/impl/src/main/res/values-fi/translations.xml b/features/roomlist/impl/src/main/res/values-fi/translations.xml index 5927a1bc57..9c79e556ac 100644 --- a/features/roomlist/impl/src/main/res/values-fi/translations.xml +++ b/features/roomlist/impl/src/main/res/values-fi/translations.xml @@ -1,9 +1,5 @@ - "Kirjaudu Ulos & Päivitä" - "Palvelimesi tukee nyt uutta, nopeampaa protokollaa. Kirjaudu ulos ja takaisin sisään päivittääksesi nyt. Jos teet tämän nyt, voit välttää pakotetun uloskirjautumisen, kun vanha protokolla poistetaan myöhemmin." - "Kotipalvelimesi ei enää tue vanhaa protokollaa. Kirjaudu ulos ja takaisin sisään jatkaaksesi sovelluksen käyttöä." - "Päivitys saatavilla" "Palauta kryptografinen identiteettisi ja viestihistoriasi palautusavaimella, mikäli menetät pääsyn kaikkiin laitteisiisi." "Ota palautus käyttöön" "Ota palautus käyttöön tilisi suojaamiseksi" diff --git a/features/roomlist/impl/src/main/res/values-fr/translations.xml b/features/roomlist/impl/src/main/res/values-fr/translations.xml index 04fb371eeb..102edf2ee4 100644 --- a/features/roomlist/impl/src/main/res/values-fr/translations.xml +++ b/features/roomlist/impl/src/main/res/values-fr/translations.xml @@ -1,9 +1,5 @@ - "Déconnecter et mettre à niveau" - "Votre serveur prend désormais en charge un nouveau protocole plus rapide. Déconnectez-vous, puis reconnectez-vous pour effectuer la mise à niveau dès maintenant. En le faisant tout de suite, vous éviterez une déconnexion forcée lorsque l’ancien protocole sera supprimé." - "Votre serveur d’accueil ne prend plus en charge l’ancien protocole. Veuillez vous déconnecter puis vous reconnecter pour continuer à utiliser l’application." - "Mise à niveau disponible" "Générez une nouvelle clé de récupération qui peut être utilisée pour restaurer l’historique de vos messages chiffrés au cas où vous perdriez l’accès à vos appareils." "Configurer la sauvegarde" "Configurer la récupération" diff --git a/features/roomlist/impl/src/main/res/values-hu/translations.xml b/features/roomlist/impl/src/main/res/values-hu/translations.xml index 1505f13367..aae22494a0 100644 --- a/features/roomlist/impl/src/main/res/values-hu/translations.xml +++ b/features/roomlist/impl/src/main/res/values-hu/translations.xml @@ -1,12 +1,8 @@ - "Kijelentkezés és frissítés" - "A kiszolgálója mostantól egy új, gyorsabb protokollt támogat. A frissítéshez jelentkezzen ki, majd jelentkezzen be újra. Ha ezt most megteszi, elkerülheti a kényszerített kijelentkeztetést a régi protokollt eltávolításakor." - "A Matrix-kiszolgáló már nem támogatja a régi protokollt. Az alkalmazás további használatához jelentkezzen ki és be." - "Frissítés érhető el" "Hozzon létre egy új helyreállítási kulcsot, amellyel visszaállíthatja a titkosított üzenetek előzményeit, ha elveszíti az eszközökhöz való hozzáférést." "Helyreállítás beállítása" - "Helyreállítás beállítása" + "Helyreállítás beállítása a fiókja védelméhez" "Erősítse meg a helyreállítási kulcsát, hogy továbbra is hozzáférjen a kulcstárolójához és az üzenetelőzményekhez." "Adja meg a helyreállítási kulcsot" "Elfelejtette a helyreállítási kulcsot?" diff --git a/features/roomlist/impl/src/main/res/values-in/translations.xml b/features/roomlist/impl/src/main/res/values-in/translations.xml index e3c3bb4800..936bb1e399 100644 --- a/features/roomlist/impl/src/main/res/values-in/translations.xml +++ b/features/roomlist/impl/src/main/res/values-in/translations.xml @@ -1,9 +1,5 @@ - "Keluar & Tingkatkan" - "Server Anda kini mendukung protokol baru yang lebih cepat. Keluar dan masuk lagi untuk memperbarui sekarang. Melakukan hal ini sekarang akan membantu Anda menghindari keluar paksa saat protokol lama dihapus nantinya." - "Homeserver Anda tidak lagi mendukung protokol lama. Silakan keluar dan masuk kembali untuk terus menggunakan aplikasi." - "Peningkatan tersedia" "Buat kunci pemulihan baru yang dapat digunakan untuk memulihkan riwayat pesan terenkripsi Anda jika Anda kehilangan akses ke perangkat Anda." "Siapkan pemulihan" "Siapkan pemulihan" diff --git a/features/roomlist/impl/src/main/res/values-it/translations.xml b/features/roomlist/impl/src/main/res/values-it/translations.xml index cd248d7372..95b926f169 100644 --- a/features/roomlist/impl/src/main/res/values-it/translations.xml +++ b/features/roomlist/impl/src/main/res/values-it/translations.xml @@ -1,9 +1,5 @@ - "Esci e aggiorna" - "Il tuo server ora supporta un nuovo protocollo più veloce. Esci e rientra per effettuare l\'aggiornamento. Se lo fai ora, eviterai una disconnessione forzata quando il vecchio protocollo verrà rimosso in seguito." - "Il tuo homeserver non supporta più il vecchio protocollo. Esci e rientra per continuare a usare l\'app." - "Aggiornamento disponibile" "Genera una nuova chiave di recupero che può essere usata per ripristinare la cronologia dei messaggi crittografati nel caso in cui tu perda l\'accesso ai tuoi dispositivi." "Configura il recupero" "Configura il ripristino" diff --git a/features/roomlist/impl/src/main/res/values-ka/translations.xml b/features/roomlist/impl/src/main/res/values-ka/translations.xml index 0086aeb6e4..4fad6be272 100644 --- a/features/roomlist/impl/src/main/res/values-ka/translations.xml +++ b/features/roomlist/impl/src/main/res/values-ka/translations.xml @@ -14,6 +14,7 @@ "ახალი საუბრისა ან ოთახის შექმნა" "დაიწყეთ ვინმესთვის შეტყობინების გაგზავნით." "არც ერთი ჩატი ჯერ არაა." + "მოწვევები" "ხალხი" "ჩატები" "როგორც ჩანს, ახალ მოწყობილობას იყენებთ. დაადასტურეთ სხვა მოწყობილობით თქვენს დაშიფრულ შეტყობინებებზე წვდომისთვის." diff --git a/features/roomlist/impl/src/main/res/values-nb/translations.xml b/features/roomlist/impl/src/main/res/values-nb/translations.xml index 7c108c91a4..11741812c7 100644 --- a/features/roomlist/impl/src/main/res/values-nb/translations.xml +++ b/features/roomlist/impl/src/main/res/values-nb/translations.xml @@ -1,6 +1,5 @@ - "Oppgradering tilgjengelig" "Skriv inn gjenopprettingsnøkkelen din" "Har du glemt din gjenopprettingsnøkkel?" "Er du sikker på at du vil takke nei til invitasjonen til å bli med i %1$s?" diff --git a/features/roomlist/impl/src/main/res/values-nl/translations.xml b/features/roomlist/impl/src/main/res/values-nl/translations.xml index d8ea5bc6f3..3acfb82cf2 100644 --- a/features/roomlist/impl/src/main/res/values-nl/translations.xml +++ b/features/roomlist/impl/src/main/res/values-nl/translations.xml @@ -1,9 +1,5 @@ - "Uitloggen & Upgraden" - "Je server ondersteunt nu een nieuw, sneller protocol. Log uit en log opnieuw in om nu te upgraden. Als je dit nu doet, voorkom je dat je geforceerd uitlogt wordt wanneer het oude protocol later wordt verwijderd." - "Je homeserver ondersteunt het oude protocol niet meer. Log uit en log opnieuw in om de app te blijven gebruiken." - "Upgrade beschikbaar" "Herstelmogelijkheid instellen" "Je chatback-up is momenteel niet gesynchroniseerd. Je moet je herstelsleutel invoeren om toegang te behouden tot je chatback-up." "Voer je herstelsleutel in" diff --git a/features/roomlist/impl/src/main/res/values-pl/translations.xml b/features/roomlist/impl/src/main/res/values-pl/translations.xml index 140eb7b1c4..c0721a6081 100644 --- a/features/roomlist/impl/src/main/res/values-pl/translations.xml +++ b/features/roomlist/impl/src/main/res/values-pl/translations.xml @@ -1,9 +1,5 @@ - "Wyloguj się i zaktualizuj" - "Twój serwer obsługuje teraz nowy, szybszy protokół. Wyloguj się i zaloguj ponownie, aby uaktualnić teraz. Zrobienie tego teraz pomoże uniknąć wymuszonego wylogowania, gdy stary protokół zostanie później usunięty." - "Twój serwer domowy już nie wspiera starego protokołu. Zaloguj się ponownie, aby kontynuować korzystanie z aplikacji." - "Dostępna aktualizacja" "Wygeneruj nowy klucz przywracania, którego można użyć do przywrócenia historii wiadomości szyfrowanych w przypadku utraty dostępu do swoich urządzeń." "Skonfiguruj przywracanie" "Skonfiguruj przywracanie" diff --git a/features/roomlist/impl/src/main/res/values-pt-rBR/translations.xml b/features/roomlist/impl/src/main/res/values-pt-rBR/translations.xml index 354c6c736f..025a67ffcf 100644 --- a/features/roomlist/impl/src/main/res/values-pt-rBR/translations.xml +++ b/features/roomlist/impl/src/main/res/values-pt-rBR/translations.xml @@ -16,6 +16,7 @@ "Ainda não há conversas." "Favoritos" "Você não tem nenhuma conversa favorita ainda" + "Convites" "Baixa prioridade" "Você não tem conversas para esta seleção" "Pessoas" diff --git a/features/roomlist/impl/src/main/res/values-pt/translations.xml b/features/roomlist/impl/src/main/res/values-pt/translations.xml index b6198aa5a4..d5f11986e1 100644 --- a/features/roomlist/impl/src/main/res/values-pt/translations.xml +++ b/features/roomlist/impl/src/main/res/values-pt/translations.xml @@ -1,9 +1,5 @@ - "Sair & Atualizar" - "O teu servidor suporta agora um protocolo novo e mais rápido. Termina a sessão e volta a iniciar sessão para atualizar agora. Se o fizeres agora, evitarás um fim de sessão forçado quando o protocolo antigo for removido mais tarde." - "Seu homeserver não suporta mais o protocolo antigo. Termine sessão e volte a iniciar sessão para continuar a utilizar a aplicação." - "Atualização disponível" "Recupera a tua identidade criptográfica e o histórico de mensagens com uma chave de recuperação se tiveres perdido todos os teus dispositivos existentes." "Configurar recuperação" "Configurar a recuperação" diff --git a/features/roomlist/impl/src/main/res/values-ro/translations.xml b/features/roomlist/impl/src/main/res/values-ro/translations.xml index 077ed1a4c5..b4d276dd74 100644 --- a/features/roomlist/impl/src/main/res/values-ro/translations.xml +++ b/features/roomlist/impl/src/main/res/values-ro/translations.xml @@ -1,9 +1,5 @@ - "Deconectați-vă și faceți upgrade" - "Serverul dvs. acceptă acum un protocol nou, mai rapid. Deconectați-vă și conectați-vă din nou pentru a face upgrade acum. Dacă faceți acest lucru acum, vă va ajuta să evitați o deconectare forțată atunci când vechiul protocol este eliminat ulterior." - "Serverul dvs. de acasă nu mai acceptă vechiul protocol. Vă rugăm să vă deconectați și să vă conectați din nou pentru a continua să utilizați aplicația." - "Upgrade disponibil" "Recuperați-vă identitatea criptografică și istoricul mesajelor cu o cheie de recuperare dacă ați pierdut toate dispozitivele existente." "Configurați recuperarea" "Configurați recuperarea pentru a vă proteja contul" diff --git a/features/roomlist/impl/src/main/res/values-ru/translations.xml b/features/roomlist/impl/src/main/res/values-ru/translations.xml index 9c2e902afc..63072a2dc6 100644 --- a/features/roomlist/impl/src/main/res/values-ru/translations.xml +++ b/features/roomlist/impl/src/main/res/values-ru/translations.xml @@ -1,9 +1,5 @@ - "Выйти и обновить" - "Теперь ваш сервер поддерживает новый, более быстрый протокол. Чтобы обновить его прямо сейчас, выйдите и войдите в свою учётную запись снова. Сделав это сейчас, вы сможете избежать принудительного выхода из системы при последующем удалении старого протокола." - "Ваш домашний сервер больше не поддерживает старый протокол. Пожалуйста, выйдите и войдите в свою учётную запись снова, чтобы продолжить использование приложения." - "Доступно обновление" "Создайте новый ключ восстановления, который можно использовать для восстановления зашифрованной истории сообщений в случае потери доступа к своим устройствам." "Настроить восстановление" "Для защиты вашего аккаунта рекомендуется настроить восстановление" diff --git a/features/roomlist/impl/src/main/res/values-sk/translations.xml b/features/roomlist/impl/src/main/res/values-sk/translations.xml index 610d9bb489..e2f67e643e 100644 --- a/features/roomlist/impl/src/main/res/values-sk/translations.xml +++ b/features/roomlist/impl/src/main/res/values-sk/translations.xml @@ -1,9 +1,5 @@ - "Odhlásiť sa a aktualizovať" - "Váš server teraz podporuje nový, rýchlejší protokol. Odhláste sa a prihláste sa znova, aby ste mohli aktualizovať. Ak to urobíte teraz, pomôže vám vyhnúť sa nútenému odhláseniu, keď sa starý protokol neskôr odstráni." - "Váš domovský server už nepodporuje starý protokol. Ak chcete pokračovať v používaní aplikácie, odhláste sa a znova sa prihláste." - "Aktualizácia je k dispozícii" "Vytvorte nový kľúč na obnovenie, ktorý môžete použiť na obnovenie vašej histórie šifrovaných správ v prípade straty prístupu k vašim zariadeniam." "Nastaviť obnovenie" "Nastaviť obnovenie" diff --git a/features/roomlist/impl/src/main/res/values-sv/translations.xml b/features/roomlist/impl/src/main/res/values-sv/translations.xml index f2a30a2050..5509f17dc0 100644 --- a/features/roomlist/impl/src/main/res/values-sv/translations.xml +++ b/features/roomlist/impl/src/main/res/values-sv/translations.xml @@ -1,13 +1,11 @@ - "Logga ut och uppgradera" - "Din server stöder nu ett nytt, snabbare protokoll. Logga ut och logga in igen för att uppgradera nu. Om du gör detta nu hjälper du dig att undvika en tvingad utloggning när det gamla protokollet tas bort senare." - "Din hemserver stöder inte längre det gamla protokollet. Logga ut och logga in igen för att fortsätta använda appen." - "Uppgradering tillgänglig" "Skapa en ny återställningsnyckel som kan användas för att återställa din krypterade meddelandehistorik om du förlorar åtkomst till dina enheter." "Ställ in återställning" "Ställ in återställning" "Bekräfta din återställningsnyckel för att behålla åtkomsten till din nyckellagring och meddelandehistorik." + "Ange din återställningsnyckel" + "Glömt din återställningsnyckel?" "Din nyckellagring är inte synkroniserad" "För att säkerställa att du aldrig missar ett viktigt samtal, ändra dina inställningar för att tillåta helskärmsmeddelanden när telefonen är låst." "Förbättra din samtalsupplevelse" diff --git a/features/roomlist/impl/src/main/res/values-tr/translations.xml b/features/roomlist/impl/src/main/res/values-tr/translations.xml new file mode 100644 index 0000000000..1176b53662 --- /dev/null +++ b/features/roomlist/impl/src/main/res/values-tr/translations.xml @@ -0,0 +1,46 @@ + + + "Mevcut tüm cihazlarınızı kaybettiyseniz şifreleme kimliğinizi ve mesaj geçmişinizi bir kurtarma anahtarıyla kurtarın." + "Kurtarmayı ayarlayın" + "Hesabınızı korumak için kurtarmayı ayarlayın" + "Anahtar depolama alanınıza ve mesaj geçmişinize erişimi sürdürmek için kurtarma anahtarınızı onaylayın." + "Kurtarma anahtarınızı girin" + "Kurtarma anahtarınızı mı unuttunuz?" + "Anahtar depolama alanınız senkronize değil" + "Önemli bir aramayı asla kaçırmamak için, telefonunuz kilitliyken tam ekran bildirimlere izin vermek üzere ayarlarınızı değiştirin." + "Arama deneyiminizi geliştirin" + "%1$s katılma davetini reddetmek istediğinizden emin misiniz?" + "Daveti reddet" + "%1$s ile bu özel sohbeti reddetmek istediğinizden emin misiniz?" + "Sohbeti reddet" + "Davet Yok" + "%1$s (%2$s) sizi davet etti" + "Katılma isteği gönderildi" + "Bu tek seferlik bir işlemdir, beklediğiniz için teşekkürler." + "Hesabınızı ayarlanıyor." + "Yeni bir sohbet veya oda oluşturun" + "Birine mesaj göndererek başla." + "Henüz sohbet yok." + "Favoriler" + "Sohbet ayarlarından bir sohbeti favorilerinize ekleyebilirsiniz. +Şimdilik, diğer sohbetlerinizi görmek için filtrelerin seçimini kaldırabilirsiniz" + "Henüz favori sohbetleriniz yok" + "Davetiyeler" + "Bekleyen davetiniz yok." + "Düşük Öncelikli" + "Diğer sohbetlerinizi görmek için filtrelerin seçimini kaldırabilirsiniz" + "Bu seçim için sohbetiniz yok" + "Kişiler" + "Henüz hiç DM\'niz yok" + "Odalar" + "Henüz herhangi bir odada değilsiniz" + "Okunmamış" + "Tebrikler! +Okunmamış mesajınız yok!" + "Sohbetler" + "Okundu olarak işaretle" + "Okunmamış olarak işaretle" + "Tüm odalara göz at" + "Görünüşe göre yeni bir cihaz kullanıyorsunuz. Şifrelenmiş mesajlarınıza erişmek için başka bir cihazla doğrulayın." + "Siz olduğunuzu doğrulayın" + diff --git a/features/roomlist/impl/src/main/res/values-uk/translations.xml b/features/roomlist/impl/src/main/res/values-uk/translations.xml index 783bac68c0..2f136bc64f 100644 --- a/features/roomlist/impl/src/main/res/values-uk/translations.xml +++ b/features/roomlist/impl/src/main/res/values-uk/translations.xml @@ -1,9 +1,5 @@ - "Вийти та оновити" - "Ваш сервер тепер підтримує новий, швидший протокол. Вийдіть із системи та увійдіть знову, щоб оновити систему зараз. Якщо ви зробите це зараз, це допоможе вам уникнути примусового виходу з системи, коли старий протокол буде видалено пізніше." - "Ваш домашній сервер більше не підтримує старий протокол. Будь ласка, вийдіть і увійдіть знову, щоб продовжити використання програми." - "Доступне оновлення" "Відновіть свою криптографічну ідентичність та історію повідомлень за допомогою ключа відновлення, якщо ви втратили всі наявні пристрої." "Налаштувати відновлення" "Налаштуйте відновлення для захисту свого облікового запису" diff --git a/features/roomlist/impl/src/main/res/values-uz/translations.xml b/features/roomlist/impl/src/main/res/values-uz/translations.xml index 0fb8858304..077f9ecc4a 100644 --- a/features/roomlist/impl/src/main/res/values-uz/translations.xml +++ b/features/roomlist/impl/src/main/res/values-uz/translations.xml @@ -12,6 +12,7 @@ "Yangi suhbat yoki xona yarating" "Kimgadir xabar yuborishdan boshlang." "Hozircha chatlar yo‘q." + "Takliflar" "Odamlar" "Suhbatlar" "Siz yangi qurilmadan foydalanayotganga o‘xshaysiz. Shifrlangan xabarlaringizga kirish uchun boshqa qurilma bilan tasdiqlang." diff --git a/features/roomlist/impl/src/main/res/values-zh-rTW/translations.xml b/features/roomlist/impl/src/main/res/values-zh-rTW/translations.xml index 82b333e778..7a6057fc0b 100644 --- a/features/roomlist/impl/src/main/res/values-zh-rTW/translations.xml +++ b/features/roomlist/impl/src/main/res/values-zh-rTW/translations.xml @@ -1,9 +1,5 @@ - "登出並升級" - "您的伺服器現在支援新的、更快的協定。立即登出並重新登入以進行升級。現在這樣做將協助您避免在稍後移除舊協定時被強制登出。" - "您的家伺服器不再支援舊協定。請登出並重新登入以繼續使用應用程式。" - "可升級" "若您遺失了所有現有裝置,則請使用復原金鑰以救援您的密碼學身份與訊息歷史紀錄。" "設定復原" "設定備援以保護您的帳號" diff --git a/features/roomlist/impl/src/main/res/values-zh/translations.xml b/features/roomlist/impl/src/main/res/values-zh/translations.xml index 7c2555d489..b4970b4382 100644 --- a/features/roomlist/impl/src/main/res/values-zh/translations.xml +++ b/features/roomlist/impl/src/main/res/values-zh/translations.xml @@ -1,9 +1,5 @@ - "登出并升级" - "您的服务器现在支持更快的新协议。现在登出并重新登录以进行升级。现在这样做可以帮助您避免在以后删除旧协议时被强制登出。" - "您的服务器不再支持旧协议。请登出并重新登录以继续使用此应用。" - "有可用升级" "生成新的恢复密钥,该密钥可用于在您无法访问设备时恢复加密的消息历史记录。" "设置恢复" "设置恢复" diff --git a/features/roomlist/impl/src/main/res/values/localazy.xml b/features/roomlist/impl/src/main/res/values/localazy.xml index e10d8da908..2e1159c02c 100644 --- a/features/roomlist/impl/src/main/res/values/localazy.xml +++ b/features/roomlist/impl/src/main/res/values/localazy.xml @@ -1,9 +1,5 @@ - "Log Out & Upgrade" - "Your server now supports a new, faster protocol. Log out and log back in to upgrade now. Doing this now will help you avoid a forced logout when the old protocol is removed later." - "Your homeserver no longer supports the old protocol. Please log out and log back in to continue using the app." - "Upgrade available" "Recover your cryptographic identity and message history with a recovery key if you have lost all your existing devices." "Set up recovery" "Set up recovery to protect your account" diff --git a/features/roomlist/impl/src/test/kotlin/io/element/android/features/roomlist/impl/RoomListViewTest.kt b/features/roomlist/impl/src/test/kotlin/io/element/android/features/roomlist/impl/RoomListViewTest.kt index ee7989cafc..1810aedd2d 100644 --- a/features/roomlist/impl/src/test/kotlin/io/element/android/features/roomlist/impl/RoomListViewTest.kt +++ b/features/roomlist/impl/src/test/kotlin/io/element/android/features/roomlist/impl/RoomListViewTest.kt @@ -229,21 +229,6 @@ class RoomListViewTest { listOf(RoomListEvents.AcceptInvite(invitedRoom), RoomListEvents.DeclineInvite(invitedRoom)), ) } - - @Test - fun `clicking on logout and migrate calls the migration clicked callback`() { - val state = aRoomListState( - contentState = aRoomsContentState(securityBannerState = SecurityBannerState.NeedsNativeSlidingSyncMigration), - eventSink = {}, - ) - ensureCalledOnce { callback -> - rule.setRoomListView( - state = state, - onMigrateToNativeSlidingSyncClick = callback, - ) - rule.clickOn(R.string.banner_migrate_to_native_sliding_sync_action) - } - } } private fun AndroidComposeTestRule.setRoomListView( @@ -256,7 +241,6 @@ private fun AndroidComposeTestRule.setRoomL onRoomSettingsClick: (RoomId) -> Unit = EnsureNeverCalledWithParam(), onMenuActionClick: (RoomListMenuAction) -> Unit = EnsureNeverCalledWithParam(), onRoomDirectorySearchClick: () -> Unit = EnsureNeverCalled(), - onMigrateToNativeSlidingSyncClick: () -> Unit = EnsureNeverCalled() ) { setContent { RoomListView( @@ -269,7 +253,6 @@ private fun AndroidComposeTestRule.setRoomL onRoomSettingsClick = onRoomSettingsClick, onMenuActionClick = onMenuActionClick, onRoomDirectorySearchClick = onRoomDirectorySearchClick, - onMigrateToNativeSlidingSyncClick = onMigrateToNativeSlidingSyncClick, acceptDeclineInviteView = { }, ) } diff --git a/features/securebackup/impl/src/main/res/values-hu/translations.xml b/features/securebackup/impl/src/main/res/values-hu/translations.xml index f655234864..92212a4086 100644 --- a/features/securebackup/impl/src/main/res/values-hu/translations.xml +++ b/features/securebackup/impl/src/main/res/values-hu/translations.xml @@ -25,7 +25,7 @@ "Elveszíti meglévő üzenetelőzményeit" "Újból ellenőriznie kell az összes meglévő eszközét és csevegőpartnerét" "Csak akkor állítsa vissza a személyazonosságát, ha nem fér hozzá másik bejelentkezett eszközhöz, és elvesztette a helyreállítási kulcsot." - "Állítsa vissza a személyazonosságát, ha más módon nem tudja megerősíteni" + "Állítsa alaphelyzetbe a személyazonosságát, ha más módon nem tudja megerősíteni" "Kikapcsolás" "Ha kijelentkezik az összes eszközéről, akkor elveszti a titkosított üzeneteit." "Biztos, hogy kikapcsolja a biztonsági mentéseket?" diff --git a/features/securebackup/impl/src/main/res/values-sv/translations.xml b/features/securebackup/impl/src/main/res/values-sv/translations.xml index 785e023bc5..501182b7aa 100644 --- a/features/securebackup/impl/src/main/res/values-sv/translations.xml +++ b/features/securebackup/impl/src/main/res/values-sv/translations.xml @@ -4,7 +4,11 @@ "Slå på säkerhetskopiering" "Lagra din kryptografiska identitet och dina meddelandenycklar säkert på servern. Detta gör att du kan se din meddelandehistorik på alla nya enheter. %1$s." "Nyckellagring" + "Nyckellagring måste vara aktiverat för att konfigurera återställning." + "Ladda upp nycklar från den här enheten" + "Tillåt lagring av nycklar" "Byt återställningsnyckel" + "Återställ din kryptografiska identitet och meddelandehistorik med en återställningsnyckel om du har tappat bort alla dina befintliga enheter." "Ange återställningsnyckel" "Din nyckellagring är för närvarande osynkroniserad." "Ställ in återställning" @@ -42,6 +46,7 @@ "Ange …" "Blivit av med din återställningsnyckel?" "Återställningsnyckel bekräftad" + "Ange din återställningsnyckel" "Kopierade återställningsnyckel" "Genererar …" "Spara återställningsnyckeln" diff --git a/features/securebackup/impl/src/main/res/values-tr/translations.xml b/features/securebackup/impl/src/main/res/values-tr/translations.xml new file mode 100644 index 0000000000..b3a2acc0e9 --- /dev/null +++ b/features/securebackup/impl/src/main/res/values-tr/translations.xml @@ -0,0 +1,70 @@ + + + "Anahtar depolamasını sil" + "Yedeklemeyi aç" + "Kriptografik kimliğinizi ve mesaj anahtarlarınızı sunucuda güvenli bir şekilde saklayın. Bu, mesaj geçmişinizi herhangi bir yeni cihazda görüntülemenize olanak tanır. %1$s." + "Anahtar Depolama" + "Kurtarmayı ayarlamak için anahtar depolama alanı açık olmalıdır." + "Anahtarları bu cihazdan yükle" + "Anahtar depolamaya izin ver" + "Kurtarma anahtarını değiştir" + "Mevcut tüm cihazlarınızı kaybettiyseniz, kurtarma anahtarıyla şifreleme kimliğinizi ve mesaj geçmişinizi kurtarın." + "Kurtarma anahtarını girin" + "Anahtar depolama alanınız şu anda senkronize değil." + "Kurtarmayı ayarlayın" + "Tüm cihazlarınızı kaybettiğinizde veya %1$s adresinden çıkış yaptığınızda şifrelenmiş mesajlarınıza her yerden erişin." + "Masaüstü cihazında aç %1$s" + "Hesabınızda tekrar oturum açın" + "Cihazınızı doğrulamanız istendiğinde %1$s öğesini seçin" + "\"Tümünü sıfırla\"" + "Yeni bir kurtarma anahtarı oluşturmak için talimatları izleyin" + "Yeni kurtarma anahtarınızı bir parola yöneticisine veya şifreli bir nota kaydedin" + "Hesabınızın şifrelemesini başka bir cihaz kullanarak sıfırlayın" + "Sıfırlamaya devam et" + "Hesap bilgileriniz, kişileriniz, tercihleriniz ve sohbet listeniz saklanacaktır" + "Yalnızca sunucuda depolanan mesaj geçmişlerini kaybedeceksiniz" + "Mevcut tüm cihazlarınızı ve kişilerinizi tekrar doğrulamanız gerekecek" + "Kimliğinizi yalnızca oturum açtığınız başka bir cihaza erişiminiz yoksa ve kurtarma anahtarınızı kaybettiyseniz sıfırlayın." + "Onaylayamıyor musunuz? Kimliğinizi sıfırlamanız gerekecek." + "Kapat" + "Tüm cihazlardan çıkış yaparsanız şifrelenmiş mesajlarınızı kaybedersiniz." + "Yedeklemeyi kapatmak istediğinizden emin misiniz?" + "Anahtar depolamanın silinmesi kriptografik kimliğinizi ve mesaj anahtarlarınızı sunucudan kaldıracak ve aşağıdaki güvenlik özelliklerini kapatacaktır:" + "Yeni cihazlarda şifrelenmiş mesaj geçmişine sahip olmayacaksınız" + "%1$s adresinden her yerde oturumunuzu kapatırsanız şifrelenmiş mesajlarınıza erişiminizi kaybedersiniz" + "Anahtar depolamayı kapatmak ve silmek istediğinizden emin misiniz?" + "Mevcut kurtarma anahtarınızı kaybettiyseniz yeni bir kurtarma anahtarı alın. Kurtarma anahtarınızı değiştirdikten sonra eski anahtarınız artık çalışmayacaktır." + "Yeni bir kurtarma anahtarı oluştur" + "Bunu kimseyle paylaşmayın!" + "Kurtarma anahtarı değiştirildi" + "Kurtarma anahtarını değiştir?" + "Yeni kurtarma anahtarı oluştur" + "Bu ekranı kimsenin göremediğinden emin olun!" + "Anahtar depolama alanınıza erişimi onaylamak için lütfen tekrar deneyin." + "Yanlış kurtarma anahtarı" + "Bir güvenlik anahtarınız veya güvenlik ifadeniz varsa, bu da işe yarayacaktır." + "Gir…" + "Kurtarma anahtarınızı mı kaybettiniz?" + "Kurtarma anahtarı onaylandı" + "Kurtarma anahtarınızı girin" + "Kurtarma anahtarı kopyalandı" + "Oluşturuluyor…" + "Kurtarma anahtarını kaydet" + "Bu kurtarma anahtarını şifre yöneticisi, şifreli not veya fiziksel kasa gibi güvenli bir yere kaydedin." + "Kurtarma anahtarını kopyalamak için dokunun" + "Kurtarma anahtarınızı güvenli bir yere kaydedin" + "Bu adımdan sonra yeni kurtarma anahtarınıza erişemeyeceksiniz." + "Kurtarma anahtarınızı kaydettiniz mi?" + "Anahtar depolama alanınız bir kurtarma anahtarıyla korunmaktadır. Kurulumdan sonra yeni bir kurtarma anahtarına ihtiyacınız olursa, \"Kurtarma anahtarını değiştir\"i seçerek yeniden oluşturabilirsiniz." + "Kurtarma anahtarınızı oluşturun" + "Bunu kimseyle paylaşmayın!" + "Kurtarma kurulumu başarılı" + "Kurtarmayı ayarlayın" + "Evet, şimdi sıfırla" + "Bu işlem geri alınamaz." + "Kimliğinizi sıfırlamak istediğinizden emin misiniz?" + "Bilinmeyen bir hata oluştu. Lütfen hesap şifrenizin doğru olup olmadığını kontrol edin ve tekrar deneyin." + "Gir…" + "Kimliğinizi sıfırlamak istediğinizi onaylayın." + "Devam etmek için hesap şifrenizi girin" + diff --git a/features/signedout/impl/src/main/res/values-pt/translations.xml b/features/signedout/impl/src/main/res/values-pt/translations.xml index d7e6ad8948..95f0c980b5 100644 --- a/features/signedout/impl/src/main/res/values-pt/translations.xml +++ b/features/signedout/impl/src/main/res/values-pt/translations.xml @@ -1,7 +1,7 @@ "Alteraste a tua senha noutra sessão" - "Apagaste esta sessão a partir de outra" + "Eliminaste esta sessão a partir de outra" "O administrador do teu servidor invalidou o teu acesso" "A tua sessão pode ter sido terminada por um dos motivos indicados abaixo. Inicia sessão novamente para continuares a utilizar a %s." "Não tens sessão iniciada" diff --git a/features/signedout/impl/src/main/res/values-tr/translations.xml b/features/signedout/impl/src/main/res/values-tr/translations.xml new file mode 100644 index 0000000000..0da098f822 --- /dev/null +++ b/features/signedout/impl/src/main/res/values-tr/translations.xml @@ -0,0 +1,8 @@ + + + "Başka bir oturumda şifrenizi değiştirdiniz" + "Oturumu başka bir oturumdan sildiniz" + "Sunucunuzun yöneticisi erişiminizi geçersiz kıldı" + "Aşağıda listelenen nedenlerden biri nedeniyle oturumunuz kapatılmış olabilir. %s kullanmaya devam etmek için lütfen tekrar oturum açın." + "Oturumunuz kapatıldı" + diff --git a/features/userprofile/shared/src/main/res/values-tr/translations.xml b/features/userprofile/shared/src/main/res/values-tr/translations.xml new file mode 100644 index 0000000000..9f80d33836 --- /dev/null +++ b/features/userprofile/shared/src/main/res/values-tr/translations.xml @@ -0,0 +1,19 @@ + + + "Engelle" + "Engellenen kullanıcılar size mesaj gönderemez ve tüm mesajları gizlenir. İstediğiniz zaman engellemelerini kaldırabilirsiniz." + "Kullanıcıyı engelle" + "Engellemeyi kaldır" + "Onlardan gelen tüm mesajları tekrar görebileceksiniz." + "Kullanıcının engelini kaldır" + "Engelle" + "Engellenen kullanıcılar size mesaj gönderemez ve tüm mesajları gizlenir. İstediğiniz zaman engellemelerini kaldırabilirsiniz." + "Kullanıcıyı engelle" + "Profil" + "Engellemeyi kaldır" + "Onlardan gelen tüm mesajları tekrar görebileceksiniz." + "Kullanıcının engelini kaldır" + "Bu kullanıcıyı doğrulamak için web uygulamasını kullan." + "Doğrula %1$s" + "Sohbet başlatmaya çalışırken bir hata oluştu" + diff --git a/features/verifysession/impl/src/main/res/values-be/translations.xml b/features/verifysession/impl/src/main/res/values-be/translations.xml index da894a2ddb..c48da7e8d0 100644 --- a/features/verifysession/impl/src/main/res/values-be/translations.xml +++ b/features/verifysession/impl/src/main/res/values-be/translations.xml @@ -24,6 +24,7 @@ "Чаканне супадзення" "Параўнайце ўнікальны набор эмодзі." "Параўнайце ўнікальныя эмодзі, пераканаўшыся, што яны размешчаны ў тым жа парадку." + "Прылада праверана" "Яны не супадаюць" "Яны супадаюць" "Для працягу працы прыміце запыт на запуск працэсу праверкі ў іншым сеансе." diff --git a/features/verifysession/impl/src/main/res/values-cs/translations.xml b/features/verifysession/impl/src/main/res/values-cs/translations.xml index 30e43eadc9..9b59cb2041 100644 --- a/features/verifysession/impl/src/main/res/values-cs/translations.xml +++ b/features/verifysession/impl/src/main/res/values-cs/translations.xml @@ -13,9 +13,11 @@ "Něco není v pořádku. Buď vypršel časový limit požadavku, nebo byl požadavek zamítnut." "Zkontrolujte, zda se níže uvedené emotikony shodují s emotikony zobrazenými na jiné relaci." "Porovnání emotikonů" + "Zkontrolujte, zda se níže uvedené emotikony shodují s emotikony zobrazenými v zařízení druhého uživatele." "Potvrďte, že níže uvedená čísla odpovídají číslům zobrazeným na vaší druhé relaci." "Porovnejte čísla" "Vaše nová relace je nyní ověřena. Má přístup k vašim zašifrovaným zprávám a ostatní uživatelé ji uvidí jako důvěryhodnou." + "Nyní můžete důvěřovat identitě tohoto uživatele při odesílání nebo přijímání zpráv." "Zadejte klíč pro obnovení" "Buď vypršel časový limit požadavku, požadavek byl zamítnut, nebo došlo k nesouladu ověření." "Pro přístup k historii zašifrovaných zpráv prokažte, že jste to vy." @@ -37,8 +39,14 @@ "Shodují se" "Před zahájením ověřování se ujistěte, že máte aplikaci otevřenou na druhém zařízení." "Otevřete aplikaci na jiném ověřeném zařízení" + "Pro větší bezpečnost ověřte tohoto uživatele porovnáním sady emotikonů na svých zařízeních. Proveďte to pomocí důvěryhodného způsobu komunikace." + "Ověřte tohoto uživatele?" + "Pro větší bezpečnost chce jiný uživatel ověřit vaši totožnost. Zobrazí se vám sada emotikonů k porovnání." "Na druhém zařízení byste měli vidět vyskakovací okno. Začněte s ověrením tam." "Spusťte ověření na druhém zařízení" + "Čekání na druhé zařízení" + "Čekání na druhého uživatele" + "Po přijetí budete moci pokračovat v ověřování." "Pro pokračování přijměte požadavek na zahájení ověření v jiné relaci." "Čekání na přijetí žádosti" "Odhlašování…" diff --git a/features/verifysession/impl/src/main/res/values-de/translations.xml b/features/verifysession/impl/src/main/res/values-de/translations.xml index 4534411033..30979188e7 100644 --- a/features/verifysession/impl/src/main/res/values-de/translations.xml +++ b/features/verifysession/impl/src/main/res/values-de/translations.xml @@ -13,9 +13,11 @@ "Etwas scheint nicht zu stimmen. Entweder ist das Zeitlimit für die Anfrage abgelaufen oder die Anfrage wurde abgelehnt." "Vergewissere dich dass die folgenden Emojis mit denen in deiner anderen Session übereinstimmen." "Emojis vergleichen" + "Vergewissern Sie sich, dass die folgenden Emojis mit denen auf dem Gerät des anderen Benutzers übereinstimmen." "Bestätige, dass die Zahlen mit denen deiner anderen Sitzung übereinstimmen." "Vergleiche die Zahlen" "Deine neue Session ist nun verifiziert. Sie hat Zugriff auf deine verschlüsselten Nachrichten und wird von anderen Benutzern als vertrauenswürdig eingestuft." + "Jetzt können Sie der Identität dieses Benutzers vertrauen, wenn Sie Nachrichten senden oder empfangen." "Wiederherstellungsschlüssel eingeben" "Entweder ist bei der Anfrage ein Timeout aufgetreten, oder die Anfrage wurde abgelehnt, oder es gab eine Nichtübereinstimmung bei der Überprüfung." "Beweise deine Identität, um auf deinen verschlüsselten Nachrichtenverlauf zuzugreifen." @@ -27,7 +29,7 @@ "Vergleiche die einzelnen Emojis und stelle sicher, dass sie in der gleichen Reihenfolge erscheinen." "Angemeldet" "Entweder ist bei der Anfrage ein Timeout aufgetreten, oder die Anfrage wurde abgelehnt, oder es gab eine Nichtübereinstimmung bei der Überprüfung." - "Überprüfung fehlgeschlagen" + "Verifizierung fehlgeschlagen" "Fahren Sie nur fort, falls Sie für diese Überprüfung verantwortlich sind.." "Verifizieren Sie das andere Gerät, um die Sicherheit Ihres Nachrichtenverlaufs zu gewährleisten." "Jetzt können Sie gesichert Nachrichten auf Ihrem anderen Gerät lesen oder senden." @@ -37,8 +39,14 @@ "Sie stimmen überein" "Stellen Sie sicher, dass die App auf dem anderen Gerät geöffnet ist, bevor Sie die Überprüfung auf diesem Gerät aus starten." "Öffnen Sie die App auf einem anderen verifizierten Gerät" + "Für zusätzliche Sicherheit verifizieren Sie diesen Benutzer, indem Sie eine Reihe von Emojis auf Ihren Geräten vergleichen. Verwenden Sie dazu eine vertrauenswürdige Art der Kommunikation." + "Diesen Benutzer verifizieren?" + "Für zusätzliche Sicherheit möchte ein anderer Benutzer Ihre Identität überprüfen. Es wird Ihnen eine Reihe von Emojis zum Vergleich angezeigt." "Sie sollten ein Popup-Fenster auf dem anderen Gerät sehen. Starten Sie die Überprüfung von dort aus." "Starten Sie die Überprüfung auf dem anderen Gerät" + "Warten auf das andere Gerät" + "Warten auf den anderen Benutzer" + "Sobald Sie die Bestätigung akzeptiert haben, können Sie mit der Überprüfung fortfahren." "Akzeptiere die Anfrage, um den Verifizierungsprozess in deiner anderen Session zu starten, um fortzufahren." "Warten auf die Annahme der Anfrage" "Abmelden…" diff --git a/features/verifysession/impl/src/main/res/values-el/translations.xml b/features/verifysession/impl/src/main/res/values-el/translations.xml index 1cac842a7b..06f3b25489 100644 --- a/features/verifysession/impl/src/main/res/values-el/translations.xml +++ b/features/verifysession/impl/src/main/res/values-el/translations.xml @@ -31,7 +31,7 @@ "Συνέχισε μόνο εάν ξεκίνησες εσύ αυτήν την επαλήθευση." "Επαλήθευσε την άλλη συσκευή για να διατηρήσεις το ιστορικό μηνυμάτων σου ασφαλές." "Τώρα μπορείς να διαβάσεις ή να στείλεις μηνύματα με ασφάλεια στην άλλη συσκευή σου." - "Η συσκευή επαληθεύτηκε" + "Επαληθευμένη συσκευή" "Ζητήθηκε επαλήθευση" "Δεν ταιριάζουν" "Ταιριάζουν" diff --git a/features/verifysession/impl/src/main/res/values-es/translations.xml b/features/verifysession/impl/src/main/res/values-es/translations.xml index 9c43fe28e8..9dd9ec38b5 100644 --- a/features/verifysession/impl/src/main/res/values-es/translations.xml +++ b/features/verifysession/impl/src/main/res/values-es/translations.xml @@ -20,6 +20,7 @@ "Esperando a que coincida" "Compara un conjunto único de emojis." "Compara los emoji, asegurándote de que aparecen en el mismo orden." + "Dispositivo verificado" "No coinciden" "Coinciden" "Acepta la solicitud para iniciar el proceso de verificación en tu otra sesión para continuar." diff --git a/features/verifysession/impl/src/main/res/values-et/translations.xml b/features/verifysession/impl/src/main/res/values-et/translations.xml index dc9367bd02..fa2a5733da 100644 --- a/features/verifysession/impl/src/main/res/values-et/translations.xml +++ b/features/verifysession/impl/src/main/res/values-et/translations.xml @@ -13,9 +13,11 @@ "Olukord pole päris õige. Päring kas aegus või teine osapool keeldus päringule vastamast." "Kinnita, et kõik järgnevalt kuvatud emojid on täpselt samad, mida sa näed oma teises sessioonis." "Võrdle emojisid" + "Palun kinnita, et allpool näidatud emojid vastavad täpselt neile, mida kuvatakse teise kasutaja seadmes." "Kinnita, et kõik järgnevalt kuvatud numbrid on täpselt samad, mida sa näed oma teises sessioonis." "Võrdle numbreid" "Sinu uus sessioon on nüüd verifitseeritud. Sellel sessioonil on nüüd ligipääs sinu krüptitud sõnumitele ja teised osapooled näevad teda usaldusväärsena." + "Nüüd sa võid sõnumite vastuvõtmisel ja saatmisel selle kasutaja identiteeti usaldada." "Sisesta taastevõti" "Kas verifitseerimine aegus, teine osapool keeldus vastamast või tekkis vastuste mittevastavus." "Saamaks ligipääsu krüptitud sõnumite ajaloole tõesta et tegemist on sinuga." @@ -37,8 +39,14 @@ "Nad klapivad omavahel" "Enne kui alustad siin verifitseerimist, palun ava rakendus teises seadmes." "Ava rakendus teises verifitseeritud seadmes" + "Lisaturvalisuse nimel verifitseeri seee kasutaja, võrreldes oma seadmetes olevaid emojisid. Tee seda, kasutades usaldusväärset suhtlusviisi." + "Kas verifitseerime selle kasutaja?" + "Lisaturvalisuse nimel soovib teine kasutaja sinu identiteeti verifitseerida. Järgmiseks näed sa emojisid, mida peate omavahel võrdlema." "Sa peaksid teises seadmes nägema hüpikakent. Palun alusta sealt verifitseerimist." "Alusta verifitseerimist teises seadmes" + "Ootame teise seadme järgi" + "Ootame teise kasutaja järgi" + "Kui oled nõustunud, siis saad sa verifitseerimist jätkata." "Jätkamaks nõustu verifitseerimisprotsessi alustamisega oma teises sessioonis." "Ootame nõustumist verifitseerimispäringuga" "Logime välja…" diff --git a/features/verifysession/impl/src/main/res/values-fa/translations.xml b/features/verifysession/impl/src/main/res/values-fa/translations.xml index 3899f7acff..14936c41a9 100644 --- a/features/verifysession/impl/src/main/res/values-fa/translations.xml +++ b/features/verifysession/impl/src/main/res/values-fa/translations.xml @@ -20,6 +20,7 @@ "منتظر تطابق" "مقایسهٔ مجموعه‌ای یکتا از شکلک‌ها." "شکلک‌ها را مقایسه کنید، از ترتیب نمایش آنان نیز مطمئن شوید." + "افزاره تأیید شده" "مطابق نیستند" "مطابقند" "منظر پذیرش درخواست" diff --git a/features/verifysession/impl/src/main/res/values-fr/translations.xml b/features/verifysession/impl/src/main/res/values-fr/translations.xml index bd3f194e4b..2ec52d94fc 100644 --- a/features/verifysession/impl/src/main/res/values-fr/translations.xml +++ b/features/verifysession/impl/src/main/res/values-fr/translations.xml @@ -13,9 +13,11 @@ "Quelque chose ne va pas. Soit la demande a expiré, soit elle a été refusée." "Confirmez que les emojis ci-dessous correspondent à ceux affichés sur votre autre session." "Comparez les émojis" + "Vérifiez que les émojis ci-dessous correspondent à ceux affichés sur l’appareil de l’autre utilisateur." "Confirmez que les nombres ci-dessous correspondent à ceux affichés sur votre autre session." "Comparez les nombres" "Votre nouvelle session est désormais vérifiée. Elle a accès à vos messages chiffrés et les autres utilisateurs la verront identifiée comme fiable." + "Vous pouvez désormais être sûr(e) de l’identité de cet utilisateur lors de l’envoi ou de la réception de messages." "Utiliser la clé de récupération" "Soit la demande a expiré, soit elle a été refusée, soit il y a eu une non-concordance de vérification." "Prouvez qu’il s’agit bien de vous pour accéder à l’historique de vos messages chiffrés." @@ -31,14 +33,20 @@ "Continuez uniquement si c’est vous qui avez commencé cette vérification." "Vérifiez l’autre appareil pour sécuriser l’historique de vos messages." "Vous pouvez désormais lire ou envoyer des messages en toute sécurité sur votre autre appareil." - "Appareil vérifié" + "Session vérifiée" "Vérification demandée" "Ils ne correspondent pas" "Ils correspondent" "Assurez-vous que l’application est ouverte sur un autre appareil avant de commencer la vérification." "Ouvrez l’application sur un autre appareil vérifié" + "Pour plus de sécurité, vérifiez cet utilisateur en comparant des émojis sur vos appareils. Pour ce faire, utilisez un moyen de communication fiable." + "Vérifier cet utilisateur ?" + "Pour plus de sécurité, un autre utilisateur souhaite vérifier votre identité. Des émojis à comparer vous seront présentés." "Vous devriez voir une alerte sur l’autre appareil. Démarrez la vérification à partir de là dès maintenant." "Démarrer la vérification sur l’autre appareil" + "En attente de l’autre appareil" + "En attente de l’autre utilisateur" + "Une fois accepté, vous pourrez poursuivre la vérification." "Pour continuer, acceptez la demande de lancement de la procédure de vérification dans votre autre session." "En attente d’acceptation de la demande" "Déconnexion…" diff --git a/features/verifysession/impl/src/main/res/values-hu/translations.xml b/features/verifysession/impl/src/main/res/values-hu/translations.xml index 7e786dfc6c..56abe18d67 100644 --- a/features/verifysession/impl/src/main/res/values-hu/translations.xml +++ b/features/verifysession/impl/src/main/res/values-hu/translations.xml @@ -13,16 +13,18 @@ "Valami hibásnak tűnik. A kérés vagy időtúllépésre futott, vagy elutasították." "Erősítse meg, hogy a lenti emodzsik egyeznek-e a másik munkamenetben megjelenítettekkel." "Emodzsik összehasonlítása" + "Ellenőrizze, hogy az alábbi emodzsik megegyeznek-e a másik felhasználó eszközén látható emodzsikkal." "Ellenőrizze, hogy az alábbi számok megegyeznek-e a másik munkamenetben feltüntetett számokkal." "Számok összehasonlítása" "Az új munkamenete most már ellenőrizve van. Eléri a titkosított üzeneteit, és a többi felhasználó is megbízhatónak fogja látni." + "Mostantól megbízhat a felhasználó személyazonosságában, amikor üzeneteket küld vagy fogad." "Adja meg a helyreállítási kulcsot" "A kérés túllépte az időkorlátot, el lett utasítva, vagy ellenőrzési eltérés történt." "Bizonyítsa, hogy valóban Ön az, hogy elérje a titkosított üzeneteinek előzményeit." "Meglévő munkamenet megnyitása" "Ellenőrzés újrapróbálása" "Kész vagyok" - "Várakozás az egyezésre" + "Várakozás az egyezésre…" "Egyedi emodzsik összehasonlítása." "Hasonlítsa össze az egyedi emodzsikat, meggyőződve arról, hogy azonos a sorrendjük." "Bejelentkezve" @@ -37,8 +39,14 @@ "Megegyeznek" "Győződjön meg róla, hogy az alkalmazás nyitva van a másik eszközön, mielőtt innen elindítja az ellenőrzést." "Nyissa meg az alkalmazást egy másik ellenőrzött eszközön" + "A fokozott biztonság érdekében ellenőrizze ezt a felhasználót az eszközökön megjelenő emodzsik összehasonlításával. Ehhez használjon megbízható kommunikációs csatornát." + "Ellenőrzi ezt a felhasználót?" + "A további biztonság érdekében egy másik felhasználó ellenőrizni szeretné személyazonosságát. Meg fog jelenni egy sor emodzsi, melyeket össze kell majd hasonlítania." "A másik eszközön egy felugró ablaknak kell megjelennie. Kezdje el az ellenőrzést onnan." "Ellenőrzés megkezdése a másik eszközön" + "Várakozás a másik eszközre" + "Várakozás a másik felhasználóra" + "Az elfogadása után folytathatja az ellenőrzést." "A folytatáshoz fogadja el az ellenőrzési folyamat indítási kérését a másik munkamenetében." "Várakozás a kérés elfogadására" "Kijelentkezés…" diff --git a/features/verifysession/impl/src/main/res/values-in/translations.xml b/features/verifysession/impl/src/main/res/values-in/translations.xml index c19ebe602c..b1dbf1f6a0 100644 --- a/features/verifysession/impl/src/main/res/values-in/translations.xml +++ b/features/verifysession/impl/src/main/res/values-in/translations.xml @@ -31,7 +31,7 @@ "Lanjutkan hanya jika Anda memulai verifikasi ini." "Verifikasi perangkat lain untuk menjaga riwayat pesan Anda tetap aman." "Sekarang Anda dapat membaca atau mengirim pesan dengan aman di perangkat Anda yang lain." - "Perangkat diverifikasi" + "Perangkat terverifikasi" "Verifikasi diminta" "Mereka tidak cocok" "Mereka cocok" diff --git a/features/verifysession/impl/src/main/res/values-nb/translations.xml b/features/verifysession/impl/src/main/res/values-nb/translations.xml index da4264871e..8b2e5fad70 100644 --- a/features/verifysession/impl/src/main/res/values-nb/translations.xml +++ b/features/verifysession/impl/src/main/res/values-nb/translations.xml @@ -27,7 +27,6 @@ "Sammenlign de unike emojiene, og sørg for at de vises i samme rekkefølge." "Logget inn" "Enten ble forespørselen tidsavbrutt, forespørselen ble avslått eller det var en feil i verifiseringen." - "Verifisering mislyktes" "Bare fortsett hvis du startet denne verifiseringen." "Bekreft den andre enheten for å holde meldingsloggen din sikker." "Nå kan du lese eller sende meldinger sikkert på den andre enheten din." diff --git a/features/verifysession/impl/src/main/res/values-nl/translations.xml b/features/verifysession/impl/src/main/res/values-nl/translations.xml index 20e588e2db..6e4c7644ee 100644 --- a/features/verifysession/impl/src/main/res/values-nl/translations.xml +++ b/features/verifysession/impl/src/main/res/values-nl/translations.xml @@ -24,6 +24,7 @@ "Wachten om te vergelijken" "Vergelijk een unieke combinatie van emoji\'s." "Vergelijk de unieke emoji\'s, ze dienen in dezelfde volgorde te worden weergegeven." + "Apparaat geverifieerd" "Ze komen niet overeen" "Ze komen overeen" "Accepteer het verzoek tot verificatie in je andere sessie om door te gaan." diff --git a/features/verifysession/impl/src/main/res/values-pl/translations.xml b/features/verifysession/impl/src/main/res/values-pl/translations.xml index 022a07d6a9..d5cd461b8d 100644 --- a/features/verifysession/impl/src/main/res/values-pl/translations.xml +++ b/features/verifysession/impl/src/main/res/values-pl/translations.xml @@ -13,9 +13,11 @@ "Coś tu nie gra. Albo upłynął limit czasu, albo żądanie zostało odrzucone." "Upewnij się, że emoji poniżej pasują do tych pokazanych na innej sesji." "Porównaj emoji" + "Upewnij się, że emoji poniżej odpowiadają tym na urządzeniu drugiego użytkownika." "Upewnij się, że liczby poniżej pasują do tych wyświetlanych na innej sesji." "Porównaj liczby" "Twoja nowa sesja jest teraz zweryfikowana. Ma ona dostęp do Twoich zaszyfrowanych wiadomości, a inni użytkownicy będą widzieć ją jako zaufaną." + "Teraz możesz zaufać tożsamości tego użytkownika podczas wysyłania lub odbierania wiadomości." "Wprowadź klucz przywracania" "Albo upłynął limit czasu żądania, albo żądanie zostało odrzucone, albo wystąpił błąd weryfikacji." "Udowodnij, że to ty, aby uzyskać dostęp do historii zaszyfrowanych wiadomości." @@ -37,8 +39,14 @@ "Pasują do siebie" "Upewnij się, że aplikacja jest otwarta na drugim urządzeniu przed rozpoczęciem weryfikacji." "Otwórz aplikację na drugim zweryfikowanym urządzeniu" + "Dla dodatkowej ochrony, zweryfikuj tego użytkownika, porównując zestaw emoji na obu urządzeniach. Zrób to, korzystając z zaufanej metody komunikacji." + "Zweryfikować tego użytkownika?" + "Dla dodatkowej ochrony, inny użytkownik chce zweryfikować Twoją tożsamość. Pojawi się unikalny zestaw emoji do porównania." "Powinno wyskoczyć okno na drugim urządzeniu. Rozpocznij tam weryfikację." "Rozpocznij weryfikację na drugim urządzeniu" + "Oczekiwanie na drugie urządzenie" + "Oczekiwanie na drugiego użytkownika" + "Po zaakceptowaniu będziesz mógł kontynuować weryfikację." "Zaakceptuj prośbę o rozpoczęcie procesu weryfikacji w innej sesji, aby kontynuować." "Oczekiwanie na zaakceptowanie prośby" "Wylogowywanie…" diff --git a/features/verifysession/impl/src/main/res/values-pt-rBR/translations.xml b/features/verifysession/impl/src/main/res/values-pt-rBR/translations.xml index 9874cfa2b3..c06776f25f 100644 --- a/features/verifysession/impl/src/main/res/values-pt-rBR/translations.xml +++ b/features/verifysession/impl/src/main/res/values-pt-rBR/translations.xml @@ -17,6 +17,7 @@ "Esperando para combinar" "Compare um conjunto único de emojis." "Compare os emojis únicos, garantindo que apareçam na mesma ordem." + "Dispositivo verificado" "Eles não combinam" "Eles combinam" "Aceite a solicitação para iniciar o processo de verificação em sua outra sessão para continuar." diff --git a/features/verifysession/impl/src/main/res/values-pt/translations.xml b/features/verifysession/impl/src/main/res/values-pt/translations.xml index 967c6df1c9..1386091254 100644 --- a/features/verifysession/impl/src/main/res/values-pt/translations.xml +++ b/features/verifysession/impl/src/main/res/values-pt/translations.xml @@ -13,9 +13,11 @@ "Algo não bateu certo. O pedido ou demorou demasiado tempo ou foi rejeitado." "Confirma se os emojis abaixo correspondem aos apresentados na tua outra sessão." "Compara os emojis" + "Confirma se os emojis abaixo correspondem aos apresentados no dispositivo do outro utilizador." "Confirma se os números abaixo correspondem aos números apresentados na tua outra sessão." "Comparar números" "A tua nova sessão está agora verificada, pelo que tem acesso às tuas mensagens cifradas e os outros utilizadores vão vê-la como de confiança." + "Agora podes confiar na identidade deste utilizador quando envias ou recebes mensagens." "Insere a chave de recuperação" "O pedido expirou, o pedido foi recusado ou houve um erro de verificação." "Prova que és tu para acederes ao teu histórico de mensagens cifradas." @@ -37,8 +39,14 @@ "Correspondem" "Certifica-te de que tens a aplicação aberta no outro dispositivo antes de iniciares a verificação aqui." "Abre a aplicação noutro dispositivo verificado" + "Para maior segurança, verifica este utilizador comparando um conjunto de emojis nos teus dispositivos. Faz isto utilizando uma forma de comunicação de confiança." + "Verificar este utilizador?" + "Para maior segurança, outro utilizador quer verificar a tua identidade. Ser-te-á mostrado um conjunto de emojis para comparares." "Deves ver uma notificação no outro dispositivo. Inicia a verificação a partir daí." "Inicia a verificação no outro dispositivo" + "À espera do outro dispositivo" + "A espera do outro utilizador" + "Uma vez aceite, poderás continuar com a verificação." "Para continuar, aceita o pedido de verificação na tua outra sessão." "À aguardar a aceitação do pedido" "A terminar sessão…" diff --git a/features/verifysession/impl/src/main/res/values-sk/translations.xml b/features/verifysession/impl/src/main/res/values-sk/translations.xml index 9612618b58..cc5f26e85b 100644 --- a/features/verifysession/impl/src/main/res/values-sk/translations.xml +++ b/features/verifysession/impl/src/main/res/values-sk/translations.xml @@ -13,9 +13,11 @@ "Zdá sa, že niečo nie je v poriadku. Časový limit žiadosti vypršal alebo bola žiadosť zamietnutá." "Skontrolujte, či sa emotikony uvedené nižšie zhodujú s emotikonmi zobrazenými vo vašej druhej relácii." "Porovnajte emotikony" + "Potvrďte, že emotikony uvedené nižšie zodpovedajú emotikonom zobrazeným na zariadení druhého používateľa." "Skontrolujte, či sa nižšie uvedené čísla zhodujú s číslami zobrazenými na vašej druhej relácii." "Porovnať čísla" "Vaša nová relácia je teraz overená. Má prístup k vašim zašifrovaným správam a ostatní používatelia ju budú vidieť ako dôveryhodnú." + "Teraz môžete dôverovať identite tohto používateľa pri odosielaní alebo prijímaní správ." "Zadajte kľúč na obnovenie" "Buď žiadosť vypršala, žiadosť bola zamietnutá, alebo došlo k nesúladu overovania." "Dokážte, že ste to vy, aby ste získali prístup k histórii vašich zašifrovaných správ." @@ -37,8 +39,14 @@ "Zhodujú sa" "Pred začatím overovania odtiaľto sa uistite, že máte aplikáciu otvorenú v inom zariadení." "Otvorte aplikáciu na inom overenom zariadení" + "Pre väčšiu bezpečnosť overte tohto používateľa porovnaním sady emotikonov vo vašich zariadeniach. Urobte to pomocou dôveryhodného spôsobu komunikácie." + "Overiť tohto používateľa?" + "Kvôli vyššej bezpečnosti chce druhý používateľ overiť vašu identitu. Zobrazí sa vám sada emotikonov na porovnanie." "Na druhom zariadení by sa malo zobraziť vyskakovacie okno. Začnite teraz overovanie odtiaľ." "Spustiť overovanie na druhom zariadení" + "Čaká sa na druhé zariadenie" + "Čaká sa na druhého používateľa" + "Po prijatí budete môcť pokračovať v overovaní." "Ak chcete pokračovať, prijmite žiadosť o spustenie procesu overenia vo vašej druhej relácii." "Čaká sa na prijatie žiadosti" "Prebieha odhlasovanie…" diff --git a/features/verifysession/impl/src/main/res/values-sv/translations.xml b/features/verifysession/impl/src/main/res/values-sv/translations.xml index f790ec399d..f95acc7347 100644 --- a/features/verifysession/impl/src/main/res/values-sv/translations.xml +++ b/features/verifysession/impl/src/main/res/values-sv/translations.xml @@ -17,6 +17,7 @@ "Jämför siffror" "Din nya session är nu verifierad. Den har tillgång till dina krypterade meddelanden, och andra användare kommer att se den som betrodd." "Ange återställningsnyckel" + "Antingen överskreds tidsgränsen för begäran, begäran nekades eller så fanns det ett matchningsfel för verifieringen." "Bevisa att det är du för att komma åt din krypterade meddelandehistorik." "Öppna en befintlig session" "Försök att verifiera igen" @@ -25,11 +26,19 @@ "Jämför en unik uppsättning emojis." "Jämför de unika emojierna och se till att de visas i samma ordning." "Inloggad" + "Antingen överskreds tidsgränsen för begäran, begäran nekades eller så fanns det ett matchningsfel för verifieringen." + "Verifiering misslyckades" "Fortsätt bara om du initierade denna verifiering." "Verifiera den andra enheten för att hålla din meddelandehistorik säker." + "Du kan nu läsa eller skicka meddelanden säkert på din andra enhet." + "Enhet verifierad" "Verifiering begärd" "De matchar inte" "De matchar" + "Se till att du har appen öppen på den andra enheten innan du startar verifieringen härifrån." + "Öppna appen på en annan verifierad enhet" + "Du bör se en popup på den andra enheten. Starta verifieringen därifrån nu." + "Starta verifieringen på den andra enheten" "Godkänn begäran om att starta verifieringsprocessen på din andra session för att fortsätta." "Väntar på att acceptera begäran" "Loggar ut …" diff --git a/features/verifysession/impl/src/main/res/values-tr/translations.xml b/features/verifysession/impl/src/main/res/values-tr/translations.xml new file mode 100644 index 0000000000..a045731bd4 --- /dev/null +++ b/features/verifysession/impl/src/main/res/values-tr/translations.xml @@ -0,0 +1,53 @@ + + + "Onaylayamıyor musunuz?" + "Yeni bir kurtarma anahtarı oluştur" + "Güvenli mesajlaşmayı ayarlamak için bu cihazı doğrulayın." + "Kimliğinizi doğrulayın" + "Başka bir cihaz kullan" + "Kurtarma anahtarı kullan" + "Artık mesajları güvenli bir şekilde okuyabilir veya gönderebilirsiniz ve sohbet ettiğiniz herkes de bu cihaza güvenebilir." + "Cihaz doğrulandı" + "Başka bir cihaz kullan" + "Diğer cihazda bekleniyor…" + "Bir şeyler doğru görünmüyor. İstek zaman aşımına uğradı veya istek reddedildi." + "Aşağıdaki emojilerin diğer oturumunuzda gösterilenlerle eşleştiğini onaylayın." + "Emojileri karşılaştırın" + "Aşağıdaki emojilerin diğer kullanıcının cihazında gösterilenlerle eşleştiğini onaylayın." + "Aşağıdaki sayıların diğer oturumunuzda gösterilen sayılarla eşleştiğini onaylayın." + "Sayıları karşılaştır" + "Yeni oturumunuz artık doğrulandı. Şifrelenmiş mesajlarınıza erişebilir ve diğer kullanıcılar oturumu güvenilir olarak görecektir." + "Artık mesaj gönderirken veya alırken bu kullanıcının kimliğine güvenebilirsiniz." + "Kurtarma anahtarını girin" + "İstek zaman aşımına uğradı, istek reddedildi veya bir doğrulama uyuşmazlığı vardı." + "Şifrelenmiş mesaj geçmişinize erişmek için siz olduğunuzu kanıtlayın." + "Mevcut bir oturumu aç" + "Doğrulamayı yeniden dene" + "Hazırım" + "Eşleşme bekleniyor…" + "Benzersiz bir emoji setini karşılaştır." + "Benzersiz emojileri karşılaştırın ve aynı sırayla göründüklerinden emin olun." + "Oturum açıldı" + "İstek zaman aşımına uğradı, istek reddedildi veya bir doğrulama uyuşmazlığı vardı." + "Doğrulama başarısız" + "Yalnızca bu doğrulamayı siz başlattıysanız devam edin." + "Mesaj geçmişinizi güvende tutmak için diğer cihazı doğrulayın." + "Artık diğer cihazınızda güvenli bir şekilde mesaj okuyabilir veya gönderebilirsiniz." + "Cihaz doğrulandı" + "Doğrulama talep edildi" + "Eşleşmiyorlar" + "Eşleşiyorlar" + "Buradan doğrulamaya başlamadan önce uygulamanın diğer cihazda açık olduğundan emin olun." + "Uygulamayı doğrulanmış başka bir cihazda açın" + "Daha fazla güvenlik için, cihazlarınızdaki bir dizi emojiyi karşılaştırarak bu kullanıcıyı doğrulayın. Bunu, iletişim kurmak için güvenilir bir yol kullanarak yapın." + "Bu kullanıcıyı doğrula?" + "Ekstra güvenlik için, başka bir kullanıcı kimliğinizi doğrulamak istiyor. Karşılaştırmanız için size bir dizi emoji gösterilecektir." + "Diğer cihazda bir açılır pencere görmelisiniz. Doğrulamayı şimdi oradan başlatın." + "Diğer cihazda doğrulamayı başlat" + "Diğer cihaz bekleniyor" + "Diğer kullanıcı bekleniyor" + "Kabul edildikten sonra doğrulama işlemine devam edebileceksiniz." + "Devam etmek için diğer oturumunuzda doğrulama işlemini başlatma isteğini kabul edin." + "İsteğin kabul edilmesi bekleniyor" + "Oturum kapatılıyor…" + diff --git a/features/verifysession/impl/src/main/res/values-uk/translations.xml b/features/verifysession/impl/src/main/res/values-uk/translations.xml index 773adf6318..45038bfe60 100644 --- a/features/verifysession/impl/src/main/res/values-uk/translations.xml +++ b/features/verifysession/impl/src/main/res/values-uk/translations.xml @@ -13,9 +13,11 @@ "Щось не так. Або час очікування запиту минув, або в запиті було відмовлено." "Переконайтеся, що емодзі нижче збігаються з тими, що відображаються під час іншого сеансу." "Порівняти емодзі" + "Переконайтеся, що наведені емоджі збігаються з тими, що показані на пристрої іншого користувача." "Переконайтеся, що наведені нижче цифри збігаються з тими, що показані під час вашого іншого сеансу." "Порівняйте цифри" "Ваш новий сеанс підтверджено. Він матиме доступ до ваших зашифрованих повідомлень, й інші користувачі вважатимуть його надійним." + "Тепер ви можете довіряти особистості цього користувача під час надсилання або отримання повідомлень." "Введіть ключ відновлення" "Або час очікування запиту минув, або запит було відхилено, або виникла розбіжність у верифікації." "Доведіть, що це ви, щоб отримати доступ до історії зашифрованих повідомлень." @@ -27,7 +29,7 @@ "Порівняйте унікальні емодзі, переконавшись, що вони показані в однаковому порядку." "Увійшов" "Або час очікування запиту минув, або запит було відхилено, або виникла розбіжність у верифікації." - "Не вдалося перевірити" + "Перевірка не вдалася" "Продовжуйте, лише якщо ви ініціювали цю перевірку." "Перевірте інший пристрій, щоб захистити історію повідомлень." "Тепер ви можете безпечно читати або надсилати повідомлення на іншому пристрої." @@ -37,8 +39,13 @@ "Вони збігаються" "Перш ніж починати перевірку звідси, переконайтеся, що програму відкрито на іншому пристрої." "Відкрийте додаток на іншому перевіреному пристрої" + "Верифікувати цього користувача?" + "Для додаткової безпеки інший користувач хоче верифікувати вашу особистість. Вам буде показано набір емоджі для порівняння." "Ви повинні побачити спливаюче вікно на іншому пристрої. Почніть перевірку звідти." "Почніть перевірку на іншому пристрої" + "Очікування іншого пристрою" + "Очікування іншого користувача" + "Після погодження ви зможете продовжити верифікацію." "Щоб продовжити, прийміть запит на початок процесу верифікації в іншому сеансі." "Очікування на прийняття запиту" "Вихід…" diff --git a/features/verifysession/impl/src/main/res/values-zh-rTW/translations.xml b/features/verifysession/impl/src/main/res/values-zh-rTW/translations.xml index 7eb21b9330..82dc0acd35 100644 --- a/features/verifysession/impl/src/main/res/values-zh-rTW/translations.xml +++ b/features/verifysession/impl/src/main/res/values-zh-rTW/translations.xml @@ -27,11 +27,11 @@ "表情符號是唯一的,請相互比對,確認它們的排列順序是否相同。" "已登入" "請求逾時、請求被拒或是驗證不符。" - "驗證失敗" + "驗證失敗。" "僅當您啟動此驗證時才繼續。" "驗證其他裝置以保護您的訊息歷史紀錄安全。" "現在,您可以在其他裝置上安全地閱讀或傳送訊息。" - "已驗證裝置" + "裝置已驗證" "已請求驗證" "不一樣" "一樣" diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 4a32ae03e8..54ca025e6a 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -3,7 +3,7 @@ [versions] # Project -android_gradle_plugin = "8.8.0" +android_gradle_plugin = "8.8.1" kotlin = "2.1.10" kotlinpoet = "2.0.0" ksp = "2.1.10-1.0.30" @@ -25,7 +25,7 @@ media3 = "1.5.1" camera = "1.4.1" # Compose -compose_bom = "2025.01.01" +compose_bom = "2025.02.00" composecompiler = "1.5.15" # Coroutines @@ -47,7 +47,7 @@ showkase = "1.0.3" appyx = "1.6.0" sqldelight = "2.0.2" wysiwyg = "2.38.2" -telephoto = "0.14.0" +telephoto = "0.15.1" # Dependency analysis dependencyAnalysis = "2.8.0" @@ -77,7 +77,7 @@ kover_gradle_plugin = { module = "org.jetbrains.kotlinx:kover-gradle-plugin", ve ksp_gradle_plugin = { module = "com.google.devtools.ksp:com.google.devtools.ksp.gradle.plugin", version.ref = "ksp" } gms_google_services = "com.google.gms:google-services:4.4.2" # https://firebase.google.com/docs/android/setup#available-libraries -google_firebase_bom = "com.google.firebase:firebase-bom:33.8.0" +google_firebase_bom = "com.google.firebase:firebase-bom:33.9.0" firebase_appdistribution_gradle = { module = "com.google.firebase:firebase-appdistribution-gradle", version.ref = "firebaseAppDistribution" } autonomousapps_dependencyanalysis_plugin = { module = "com.autonomousapps:dependency-analysis-gradle-plugin", version.ref = "dependencyAnalysis" } ksp_plugin = { module = "com.google.devtools.ksp:symbol-processing-api", version.ref = "ksp" } @@ -173,7 +173,7 @@ jsoup = "org.jsoup:jsoup:1.18.3" appyx_core = { module = "com.bumble.appyx:core", version.ref = "appyx" } molecule-runtime = "app.cash.molecule:molecule-runtime:2.0.0" timber = "com.jakewharton.timber:timber:5.0.1" -matrix_sdk = "org.matrix.rustcomponents:sdk-android:0.2.78" +matrix_sdk = "org.matrix.rustcomponents:sdk-android:25.2.17" matrix_richtexteditor = { module = "io.element.android:wysiwyg", version.ref = "wysiwyg" } matrix_richtexteditor_compose = { module = "io.element.android:wysiwyg-compose", version.ref = "wysiwyg" } sqldelight-driver-android = { module = "app.cash.sqldelight:android-driver", version.ref = "sqldelight" } @@ -235,7 +235,7 @@ anvil = { id = "dev.zacsweers.anvil", version.ref = "anvil" } detekt = "io.gitlab.arturbosch.detekt:1.23.7" ktlint = "org.jlleitschuh.gradle.ktlint:12.1.2" dependencygraph = "com.savvasdalkitsis.module-dependency-graph:0.12" -dependencycheck = "org.owasp.dependencycheck:12.0.2" +dependencycheck = "org.owasp.dependencycheck:12.1.0" dependencyanalysis = { id = "com.autonomousapps.dependency-analysis", version.ref = "dependencyAnalysis" } paparazzi = "app.cash.paparazzi:1.3.5" sqldelight = { id = "app.cash.sqldelight", version.ref = "sqldelight" } diff --git a/libraries/androidutils/src/main/res/values-tr/translations.xml b/libraries/androidutils/src/main/res/values-tr/translations.xml new file mode 100644 index 0000000000..070ef9d3b4 --- /dev/null +++ b/libraries/androidutils/src/main/res/values-tr/translations.xml @@ -0,0 +1,4 @@ + + + "Bu eylemi gerçekleştirecek uyumlu bir uygulama bulunamadı." + diff --git a/libraries/dateformatter/impl/src/main/res/values-pt/translations.xml b/libraries/dateformatter/impl/src/main/res/values-pt/translations.xml new file mode 100644 index 0000000000..7c72997e33 --- /dev/null +++ b/libraries/dateformatter/impl/src/main/res/values-pt/translations.xml @@ -0,0 +1,5 @@ + + + "%1$s às %2$s" + "Este mês" + diff --git a/libraries/dateformatter/impl/src/main/res/values-sv/translations.xml b/libraries/dateformatter/impl/src/main/res/values-sv/translations.xml new file mode 100644 index 0000000000..58f22f89ab --- /dev/null +++ b/libraries/dateformatter/impl/src/main/res/values-sv/translations.xml @@ -0,0 +1,5 @@ + + + "%1$svid %2$s" + "Denna månad" + diff --git a/libraries/dateformatter/impl/src/main/res/values-tr/translations.xml b/libraries/dateformatter/impl/src/main/res/values-tr/translations.xml new file mode 100644 index 0000000000..5276e6c91f --- /dev/null +++ b/libraries/dateformatter/impl/src/main/res/values-tr/translations.xml @@ -0,0 +1,5 @@ + + + "%1$s %2$s" + "Bu ay" + diff --git a/libraries/designsystem/build.gradle.kts b/libraries/designsystem/build.gradle.kts index 3e8d776f50..bbb8efdadf 100644 --- a/libraries/designsystem/build.gradle.kts +++ b/libraries/designsystem/build.gradle.kts @@ -33,6 +33,7 @@ android { implementation(libs.vanniktech.blurhash) implementation(projects.features.enterprise.api) implementation(projects.libraries.architecture) + implementation(projects.libraries.core) implementation(projects.libraries.preferences.api) implementation(projects.libraries.testtags) implementation(projects.libraries.uiStrings) diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/atomic/molecules/ComposerAlertMolecule.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/atomic/molecules/ComposerAlertMolecule.kt index 99d93834fe..33706239dc 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/atomic/molecules/ComposerAlertMolecule.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/atomic/molecules/ComposerAlertMolecule.kt @@ -78,7 +78,11 @@ fun ComposerAlertMolecule( text = content, modifier = Modifier.weight(1f), style = ElementTheme.typography.fontBodyMdRegular, - color = ElementTheme.colors.textPrimary, + color = if (isCritical) { + ElementTheme.colors.textCriticalPrimary + } else { + ElementTheme.colors.textPrimary + }, textAlign = TextAlign.Start, ) } diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/avatar/AvatarData.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/avatar/AvatarData.kt index a3cd6f75e3..12b6fe05a3 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/avatar/AvatarData.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/avatar/AvatarData.kt @@ -8,6 +8,8 @@ package io.element.android.libraries.designsystem.components.avatar import androidx.compose.runtime.Immutable +import io.element.android.libraries.core.data.tryOrNull +import java.text.BreakIterator @Immutable data class AvatarData( @@ -27,24 +29,36 @@ data class AvatarData( startIndex++ } - var length = 1 - var first = dn[startIndex] + var next = dn[startIndex] // LEFT-TO-RIGHT MARK - if (dn.length >= 2 && 0x200e == first.code) { + if (dn.length >= 2 && 0x200e == next.code) { startIndex++ - first = dn[startIndex] + next = dn[startIndex] } - // check if it’s the start of a surrogate pair - if (first.code in 0xD800..0xDBFF && dn.length > startIndex + 1) { - val second = dn[startIndex + 1] - if (second.code in 0xDC00..0xDFFF) { - length++ + while (next.isWhitespace()) { + if (dn.length > startIndex + 1) { + startIndex++ + next = dn[startIndex] + } else { + break } } - dn.substring(startIndex, startIndex + length) + val fullCharacterIterator = BreakIterator.getCharacterInstance() + fullCharacterIterator.setText(dn) + val glyphBoundary = tryOrNull { fullCharacterIterator.following(startIndex) } + ?.takeIf { it in startIndex..dn.length } + + when { + // Use the found boundary + glyphBoundary != null -> dn.substring(startIndex, glyphBoundary) + // If no boundary was found, default to the next char if possible + startIndex + 1 < dn.length -> dn.substring(startIndex, startIndex + 1) + // Return a fallback character otherwise + else -> "#" + } } .uppercase() } diff --git a/libraries/designsystem/src/test/kotlin/io/element/android/libraries/designsystem/components/avatar/AvatarDataTest.kt b/libraries/designsystem/src/test/kotlin/io/element/android/libraries/designsystem/components/avatar/AvatarDataTest.kt new file mode 100644 index 0000000000..6fe50e995b --- /dev/null +++ b/libraries/designsystem/src/test/kotlin/io/element/android/libraries/designsystem/components/avatar/AvatarDataTest.kt @@ -0,0 +1,43 @@ +/* + * Copyright 2025 New Vector 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.libraries.designsystem.components.avatar + +import com.google.common.truth.Truth.assertThat +import org.junit.Test + +class AvatarDataTest { + @Test + fun `initial with text should get the first char, uppercased`() { + val data = AvatarData("id", "test", null, AvatarSize.InviteSender) + assertThat(data.initial).isEqualTo("T") + } + + @Test + fun `initial with leading whitespace should get the first non-whitespace char, uppercased`() { + val data = AvatarData("id", " test", null, AvatarSize.InviteSender) + assertThat(data.initial).isEqualTo("T") + } + + @Test + fun `initial with long emoji should get the full emoji`() { + val data = AvatarData("id", "\uD83C\uDFF3\uFE0F\u200D\uD83C\uDF08 Test", null, AvatarSize.InviteSender) + assertThat(data.initial).isEqualTo("\uD83C\uDFF3\uFE0F\u200D\uD83C\uDF08") + } + + @Test + fun `initial with short emoji should get the emoji`() { + val data = AvatarData("id", "✂ Test", null, AvatarSize.InviteSender) + assertThat(data.initial).isEqualTo("✂") + } + + @Test + fun `initial with a single letter should take that letter`() { + val data = AvatarData("id", "T", null, AvatarSize.InviteSender) + assertThat(data.initial).isEqualTo("T") + } +} diff --git a/libraries/eventformatter/impl/src/main/res/values-tr/translations.xml b/libraries/eventformatter/impl/src/main/res/values-tr/translations.xml new file mode 100644 index 0000000000..507804892e --- /dev/null +++ b/libraries/eventformatter/impl/src/main/res/values-tr/translations.xml @@ -0,0 +1,69 @@ + + + "(Profil fotoğrafı değiştirildi)" + "%1$s profil fotoğrafını değiştirdi" + "Profil fotoğrafını değiştirdin" + "%1$s üyeliğe düşürüldü" + "%1$s moderatörlüğe düşürüldü" + "%1$s görünen adını bundan %2$s şuna %3$s değiştirdi" + "Görünen adınızı bundan %1$s şuna %2$s değiştirdiniz" + "%1$s görünen adını kaldırdı (önceden %2$s)" + "Görünen adınızı kaldırdınız (önceden %1$s)" + "%1$s görünen adlarını şuna ayarla %2$s" + "Görünen adınız %1$s" + "%1$s yöneticiliğe terfi etti" + "%1$s moderatörlüğe terfi etti" + "%1$s odanın fotoğrafını değiştirdi" + "Odanın fotoğrafını değiştirdiniz" + "%1$s oda fotoğrafını kaldırdı" + "Oda fotoğrafını kaldırdınız" + "%1$syasaklandı%2$s" + "%1$s yasakladınız" + "%1$sodayı yarattı" + "Odayı sen yarattın" + "%1$s davet edildi %2$s" + "%1$s daveti kabul etti" + "Daveti kabul ettiniz" + "%1$s davet ettiniz" + "%1$s sizi davet etti" + "%1$sodaya katıldı" + "Odaya katıldınız" + "%1$s katılmak istiyor" + "%1$s, %2$s\'e erişim izni verdi" + "%1$s \'ın katılmasına izin verdiniz" + "Katılmayı talep ettiniz" + "%1$s, %2$s\'ın katılma isteğini reddetti" + "%1$s kullanıcısının katılma isteğini reddettiniz" + "%1$s katılma isteğinizi reddetti" + "%1$s artık katılmakla ilgilenmiyor" + "Katılma talebinizi iptal ettiniz" + "%1$sodadan ayrıldı" + "Odadan ayrıldın." + "%1$s Oda adını değiştirdi: %2$s" + "Odanın adını değiştridiniz: %1$s" + "%1$s Oda adını kaldırdı" + "Oda adını kaldırdınız" + "%1$s hiçbir değişiklik yapmadı" + "Hiçbir değişiklik yapmadınız" + "%1$s sabitlenmiş iletileri değiştirdi" + "Sabitlenmiş mesajları değiştirdiniz" + "%1$s bir mesaj sabitledi" + "Bir mesaj sabitlediniz" + "%1$s bir mesajın sabitlemesini kaldırdı" + "Bir mesajın sabitlemesini kaldırdınız" + "%1$sdaveti reddetti" + "Daveti reddettiniz" + "%1$skaldırıldı%2$s" + "%1$s kaldırdınız" + "%1$s odaya katılması için %2$s\'a davet gönderdi" + "Odaya katılması için %1$s\'a davet gönderdin" + "%1$s, %2$s\'nin odaya katılma davetini iptal etti" + "%1$s\'ın odaya katılma davetini iptal ettiniz" + "%1$s konuyu değiştirdi: %2$s" + "Konuyu değiştirdiniz: %1$s" + "%1$s oda konusunu kaldırdı" + "Oda konusunu kaldırdınız" + "%1$syasaklanmamış%2$s" + "%1$s yasağını kaldırdınız" + "%1$s üyeliğinde bilinmeyen bir değişiklik yaptı" + diff --git a/libraries/matrix/api/src/main/kotlin/io/element/android/libraries/matrix/api/encryption/EncryptionService.kt b/libraries/matrix/api/src/main/kotlin/io/element/android/libraries/matrix/api/encryption/EncryptionService.kt index bc009d3ee8..a1a4eb9b1c 100644 --- a/libraries/matrix/api/src/main/kotlin/io/element/android/libraries/matrix/api/encryption/EncryptionService.kt +++ b/libraries/matrix/api/src/main/kotlin/io/element/android/libraries/matrix/api/encryption/EncryptionService.kt @@ -66,6 +66,15 @@ interface EncryptionService { * Remember this identity, ensuring it does not result in a pin violation. */ suspend fun pinUserIdentity(userId: UserId): Result + + /** + * Withdraw the verification for that user (also pin the identity). + * + * Useful when a user that was verified is not anymore, but it is not + * possible to re-verify immediately. This allows to restore communication by reverting the + * user trust from verified to TOFU verified. + */ + suspend fun withdrawVerification(userId: UserId): Result } /** diff --git a/libraries/matrix/api/src/main/kotlin/io/element/android/libraries/matrix/api/encryption/identity/IdentityState.kt b/libraries/matrix/api/src/main/kotlin/io/element/android/libraries/matrix/api/encryption/identity/IdentityState.kt index d05b8618e3..d565c47336 100644 --- a/libraries/matrix/api/src/main/kotlin/io/element/android/libraries/matrix/api/encryption/identity/IdentityState.kt +++ b/libraries/matrix/api/src/main/kotlin/io/element/android/libraries/matrix/api/encryption/identity/IdentityState.kt @@ -32,3 +32,5 @@ enum class IdentityState { */ VerificationViolation, } + +fun IdentityState.isAViolation() = this == IdentityState.PinViolation || this == IdentityState.VerificationViolation diff --git a/libraries/matrix/api/src/main/kotlin/io/element/android/libraries/matrix/api/room/CreateTimelineParams.kt b/libraries/matrix/api/src/main/kotlin/io/element/android/libraries/matrix/api/room/CreateTimelineParams.kt new file mode 100644 index 0000000000..0bcfb0bf54 --- /dev/null +++ b/libraries/matrix/api/src/main/kotlin/io/element/android/libraries/matrix/api/room/CreateTimelineParams.kt @@ -0,0 +1,17 @@ +/* + * Copyright 2025 New Vector 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.libraries.matrix.api.room + +import io.element.android.libraries.matrix.api.core.EventId + +sealed interface CreateTimelineParams { + data class Focused(val focusedEventId: EventId) : CreateTimelineParams + data object MediaOnly : CreateTimelineParams + data class MediaOnlyFocused(val focusedEventId: EventId) : CreateTimelineParams + data object PinnedOnly : CreateTimelineParams +} diff --git a/libraries/matrix/api/src/main/kotlin/io/element/android/libraries/matrix/api/room/MatrixRoom.kt b/libraries/matrix/api/src/main/kotlin/io/element/android/libraries/matrix/api/room/MatrixRoom.kt index 1d8d151716..41b25c0dc0 100644 --- a/libraries/matrix/api/src/main/kotlin/io/element/android/libraries/matrix/api/room/MatrixRoom.kt +++ b/libraries/matrix/api/src/main/kotlin/io/element/android/libraries/matrix/api/room/MatrixRoom.kt @@ -109,21 +109,12 @@ interface MatrixRoom : Closeable { val liveTimeline: Timeline /** - * Create a new timeline, focused on the provided Event. - * Should not be used directly, see `TimelineController` to manage the various timelines. + * Create a new timeline. + * @param createTimelineParams contains parameters about how to filter the timeline. Will also configure the date separators. */ - suspend fun timelineFocusedOnEvent(eventId: EventId): Result - - /** - * Create a new timeline for the pinned events of the room. - */ - suspend fun pinnedEventsTimeline(): Result - - /** - * Create a new timeline for the media events of the room. - * @param eventId The event to focus on, if any. - */ - suspend fun mediaTimeline(eventId: EventId?): Result + suspend fun createTimeline( + createTimelineParams: CreateTimelineParams, + ): Result fun destroy() diff --git a/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/RustMatrixClientFactory.kt b/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/RustMatrixClientFactory.kt index 48e1296792..deca69e1e9 100644 --- a/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/RustMatrixClientFactory.kt +++ b/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/RustMatrixClientFactory.kt @@ -129,10 +129,8 @@ class RustMatrixClientFactory @Inject constructor( // Apply sliding sync version settings when (slidingSyncType) { ClientBuilderSlidingSync.Restored -> this - is ClientBuilderSlidingSync.CustomProxy -> slidingSyncVersionBuilder(SlidingSyncVersionBuilder.Proxy(slidingSyncType.url)) - ClientBuilderSlidingSync.Discovered -> slidingSyncVersionBuilder(SlidingSyncVersionBuilder.DiscoverProxy) - ClientBuilderSlidingSync.Simplified -> slidingSyncVersionBuilder(SlidingSyncVersionBuilder.DiscoverNative) - ClientBuilderSlidingSync.ForcedSimplified -> slidingSyncVersionBuilder(SlidingSyncVersionBuilder.Native) + ClientBuilderSlidingSync.Discovered -> slidingSyncVersionBuilder(SlidingSyncVersionBuilder.DISCOVER_NATIVE) + ClientBuilderSlidingSync.Native -> slidingSyncVersionBuilder(SlidingSyncVersionBuilder.NATIVE) } } .run { @@ -143,21 +141,14 @@ class RustMatrixClientFactory @Inject constructor( } sealed interface ClientBuilderSlidingSync { - // The proxy is set by the user. - data class CustomProxy(val url: String) : ClientBuilderSlidingSync - // The proxy will be supplied when restoring the Session. data object Restored : ClientBuilderSlidingSync - // A proxy must be discovered whilst building the session. + // A Native Sliding Sync instance must be discovered whilst building the session. data object Discovered : ClientBuilderSlidingSync - // Use Simplified Sliding Sync. - data object Simplified : ClientBuilderSlidingSync - - // Force using Simplified Sliding Sync. - // TODO allow the user to select between proxy, simplified or force simplified in developer options. - data object ForcedSimplified : ClientBuilderSlidingSync + // Force using Native Sliding Sync. + data object Native : ClientBuilderSlidingSync } private fun SessionData.toSession() = Session( @@ -166,6 +157,6 @@ private fun SessionData.toSession() = Session( userId = userId, deviceId = deviceId, homeserverUrl = homeserverUrl, - slidingSyncVersion = slidingSyncProxy?.let(SlidingSyncVersion::Proxy) ?: SlidingSyncVersion.Native, + slidingSyncVersion = SlidingSyncVersion.NATIVE, oidcData = oidcData, ) diff --git a/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/auth/RustMatrixAuthenticationService.kt b/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/auth/RustMatrixAuthenticationService.kt index 54808fdb0e..0a4b136492 100644 --- a/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/auth/RustMatrixAuthenticationService.kt +++ b/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/auth/RustMatrixAuthenticationService.kt @@ -8,7 +8,6 @@ package io.element.android.libraries.matrix.impl.auth import com.squareup.anvil.annotations.ContributesBinding -import io.element.android.appconfig.AuthenticationConfig import io.element.android.libraries.core.coroutine.CoroutineDispatchers import io.element.android.libraries.core.extensions.mapFailure import io.element.android.libraries.di.AppScope @@ -32,7 +31,6 @@ import io.element.android.libraries.matrix.impl.keys.PassphraseGenerator import io.element.android.libraries.matrix.impl.mapper.toSessionData import io.element.android.libraries.matrix.impl.paths.SessionPaths import io.element.android.libraries.matrix.impl.paths.SessionPathsFactory -import io.element.android.libraries.preferences.api.store.AppPreferencesStore import io.element.android.libraries.sessionstorage.api.LoggedInState import io.element.android.libraries.sessionstorage.api.LoginType import io.element.android.libraries.sessionstorage.api.SessionStore @@ -40,10 +38,8 @@ import kotlinx.coroutines.CancellationException import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.StateFlow -import kotlinx.coroutines.flow.first import kotlinx.coroutines.withContext import org.matrix.rustcomponents.sdk.Client -import org.matrix.rustcomponents.sdk.ClientBuildException import org.matrix.rustcomponents.sdk.ClientBuilder import org.matrix.rustcomponents.sdk.HumanQrLoginException import org.matrix.rustcomponents.sdk.OidcConfiguration @@ -64,7 +60,6 @@ class RustMatrixAuthenticationService @Inject constructor( private val rustMatrixClientFactory: RustMatrixClientFactory, private val passphraseGenerator: PassphraseGenerator, private val oidcConfigurationProvider: OidcConfigurationProvider, - private val appPreferencesStore: AppPreferencesStore, ) : MatrixAuthenticationService { // Passphrase which will be used for new sessions. Existing sessions will use the passphrase // stored in the SessionData. @@ -288,28 +283,12 @@ class RustMatrixAuthenticationService @Inject constructor( sessionPaths: SessionPaths, config: suspend ClientBuilder.() -> ClientBuilder, ): Client { - val slidingSyncType = getSlidingSyncType() - if (slidingSyncType is ClientBuilderSlidingSync.Simplified) { - Timber.d("Creating client with simplified sliding sync") - try { - return rustMatrixClientFactory - .getBaseClientBuilder( - sessionPaths = sessionPaths, - passphrase = pendingPassphrase, - slidingSyncType = slidingSyncType, - ) - .config() - .build() - } catch (e: ClientBuildException.SlidingSyncVersion) { - Timber.e(e, "Failed to create client with simplified sliding sync, trying with Proxy now") - } - } - Timber.d("Creating client with Proxy sliding sync") + Timber.d("Creating client with simplified sliding sync") return rustMatrixClientFactory .getBaseClientBuilder( sessionPaths = sessionPaths, passphrase = pendingPassphrase, - slidingSyncType = getSlidingSyncProxy(), + slidingSyncType = ClientBuilderSlidingSync.Discovered, ) .config() .build() @@ -322,43 +301,17 @@ class RustMatrixAuthenticationService @Inject constructor( oidcConfiguration: OidcConfiguration, progressListener: QrLoginProgressListener, ): Client { - val slidingSyncType = getSlidingSyncType() - if (slidingSyncType is ClientBuilderSlidingSync.Simplified) { - Timber.d("Creating client for QR Code login with simplified sliding sync") - try { - return rustMatrixClientFactory - .getBaseClientBuilder( - sessionPaths = sessionPaths, - passphrase = pendingPassphrase, - slidingSyncType = slidingSyncType, - ) - .passphrase(passphrase) - .buildWithQrCode(qrCodeData, oidcConfiguration, progressListener) - } catch (e: HumanQrLoginException.SlidingSyncNotAvailable) { - Timber.e(e, "Failed to create client with simplified sliding sync, trying with Proxy now") - } - } - Timber.d("Creating client for QR Code login with Proxy sliding sync") + Timber.d("Creating client for QR Code login with simplified sliding sync") return rustMatrixClientFactory .getBaseClientBuilder( sessionPaths = sessionPaths, passphrase = pendingPassphrase, - slidingSyncType = getSlidingSyncProxy(), + slidingSyncType = ClientBuilderSlidingSync.Discovered, ) .passphrase(passphrase) .buildWithQrCode(qrCodeData, oidcConfiguration, progressListener) } - private suspend fun getSlidingSyncType(nativeSlidingSyncFailed: Boolean = false) = when { - appPreferencesStore.isSimplifiedSlidingSyncEnabledFlow().first() && !nativeSlidingSyncFailed -> ClientBuilderSlidingSync.Simplified - else -> getSlidingSyncProxy() - } - - private fun getSlidingSyncProxy() = when { - AuthenticationConfig.SLIDING_SYNC_PROXY_URL != null -> ClientBuilderSlidingSync.CustomProxy(AuthenticationConfig.SLIDING_SYNC_PROXY_URL!!) - else -> ClientBuilderSlidingSync.Discovered - } - private fun clear() { currentClient?.close() currentClient = null diff --git a/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/encryption/RustEncryptionService.kt b/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/encryption/RustEncryptionService.kt index 3e0e6571d4..2730d93c87 100644 --- a/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/encryption/RustEncryptionService.kt +++ b/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/encryption/RustEncryptionService.kt @@ -209,6 +209,10 @@ internal class RustEncryptionService( getUserIdentity(userId).pin() } + override suspend fun withdrawVerification(userId: UserId): Result = runCatching { + getUserIdentity(userId).withdrawVerification() + } + private suspend fun getUserIdentity(userId: UserId): UserIdentity { return service.userIdentity( userId = userId.value, diff --git a/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/mapper/Session.kt b/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/mapper/Session.kt index f90b334f05..1d45c47470 100644 --- a/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/mapper/Session.kt +++ b/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/mapper/Session.kt @@ -12,7 +12,6 @@ import io.element.android.libraries.matrix.impl.paths.SessionPaths import io.element.android.libraries.sessionstorage.api.LoginType import io.element.android.libraries.sessionstorage.api.SessionData import org.matrix.rustcomponents.sdk.Session -import org.matrix.rustcomponents.sdk.SlidingSyncVersion import java.util.Date internal fun Session.toSessionData( @@ -28,7 +27,7 @@ internal fun Session.toSessionData( refreshToken = refreshToken, homeserverUrl = homeserverUrl ?: this.homeserverUrl, oidcData = oidcData, - slidingSyncProxy = (slidingSyncVersion as? SlidingSyncVersion.Proxy)?.url, + slidingSyncProxy = null, loginTimestamp = Date(), isTokenValid = isTokenValid, loginType = loginType, diff --git a/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/room/RustMatrixRoom.kt b/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/room/RustMatrixRoom.kt index ef570f5ae3..87c61ca17c 100644 --- a/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/room/RustMatrixRoom.kt +++ b/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/room/RustMatrixRoom.kt @@ -28,6 +28,7 @@ import io.element.android.libraries.matrix.api.media.MediaUploadHandler import io.element.android.libraries.matrix.api.media.VideoInfo import io.element.android.libraries.matrix.api.notificationsettings.NotificationSettingsService import io.element.android.libraries.matrix.api.poll.PollKind +import io.element.android.libraries.matrix.api.room.CreateTimelineParams import io.element.android.libraries.matrix.api.room.IntentionalMention import io.element.android.libraries.matrix.api.room.MatrixRoom import io.element.android.libraries.matrix.api.room.MatrixRoomInfo @@ -214,80 +215,81 @@ class RustMatrixRoom( override suspend fun subscribeToSync() = roomSyncSubscriber.subscribe(roomId) - override suspend fun timelineFocusedOnEvent(eventId: EventId): Result = withContext(roomDispatcher) { - runCatching { - innerRoom.timelineWithConfiguration( - configuration = TimelineConfiguration( - focus = TimelineFocus.Event( - eventId = eventId.value, - numContextEvents = 50u, - ), - allowedMessageTypes = AllowedMessageTypes.All, - internalIdPrefix = "focus_$eventId", - dateDividerMode = DateDividerMode.DAILY, - ) - ).let { inner -> - createTimeline(inner, mode = Timeline.Mode.FOCUSED_ON_EVENT) - } - }.mapFailure { - it.toFocusEventException() - }.onFailure { - if (it is CancellationException) { - throw it - } - } - } - - override suspend fun pinnedEventsTimeline(): Result = withContext(roomDispatcher) { - runCatching { - innerRoom.timelineWithConfiguration( - configuration = TimelineConfiguration( - focus = TimelineFocus.PinnedEvents( - maxEventsToLoad = 100u, - maxConcurrentRequests = 10u, - ), - allowedMessageTypes = AllowedMessageTypes.All, - internalIdPrefix = "pinned_events", - dateDividerMode = DateDividerMode.DAILY, - ) - ).let { inner -> - createTimeline(inner, mode = Timeline.Mode.PINNED_EVENTS) - } - }.onFailure { - if (it is CancellationException) { - throw it - } - } - } - - override suspend fun mediaTimeline( - eventId: EventId?, + override suspend fun createTimeline( + createTimelineParams: CreateTimelineParams, ): Result = withContext(roomDispatcher) { - val focus = if (eventId != null) { - TimelineFocus.Event( - eventId = eventId.value, + val focus = when (createTimelineParams) { + is CreateTimelineParams.PinnedOnly -> TimelineFocus.PinnedEvents( + maxEventsToLoad = 100u, + maxConcurrentRequests = 10u, + ) + is CreateTimelineParams.MediaOnly -> TimelineFocus.Live + is CreateTimelineParams.Focused -> TimelineFocus.Event( + eventId = createTimelineParams.focusedEventId.value, + numContextEvents = 50u, + ) + is CreateTimelineParams.MediaOnlyFocused -> TimelineFocus.Event( + eventId = createTimelineParams.focusedEventId.value, numContextEvents = 50u, ) - } else { - TimelineFocus.Live } + + val allowedMessageTypes = when (createTimelineParams) { + is CreateTimelineParams.MediaOnly, + is CreateTimelineParams.MediaOnlyFocused -> AllowedMessageTypes.Only( + types = listOf( + RoomMessageEventMessageType.FILE, + RoomMessageEventMessageType.IMAGE, + RoomMessageEventMessageType.VIDEO, + RoomMessageEventMessageType.AUDIO, + ) + ) + is CreateTimelineParams.Focused, + CreateTimelineParams.PinnedOnly -> AllowedMessageTypes.All + } + + val internalIdPrefix = when (createTimelineParams) { + is CreateTimelineParams.PinnedOnly -> "pinned_events" + is CreateTimelineParams.Focused -> "focus_${createTimelineParams.focusedEventId}" + is CreateTimelineParams.MediaOnly -> "MediaGallery_" + is CreateTimelineParams.MediaOnlyFocused -> "MediaGallery_${createTimelineParams.focusedEventId}" + } + + // Note that for TimelineFilter.MediaOnlyFocused, the date separator will be filtered out, + // but there is no way to exclude data separator at the moment. + val dateDividerMode = when (createTimelineParams) { + is CreateTimelineParams.MediaOnly, + is CreateTimelineParams.MediaOnlyFocused -> DateDividerMode.MONTHLY + is CreateTimelineParams.Focused, + CreateTimelineParams.PinnedOnly -> DateDividerMode.DAILY + } + runCatching { innerRoom.timelineWithConfiguration( configuration = TimelineConfiguration( focus = focus, - allowedMessageTypes = AllowedMessageTypes.Only( - types = listOf( - RoomMessageEventMessageType.FILE, - RoomMessageEventMessageType.IMAGE, - RoomMessageEventMessageType.VIDEO, - RoomMessageEventMessageType.AUDIO, - ) - ), - internalIdPrefix = "MediaGallery_", - dateDividerMode = DateDividerMode.MONTHLY, + allowedMessageTypes = allowedMessageTypes, + internalIdPrefix = internalIdPrefix, + dateDividerMode = dateDividerMode, ) ).let { inner -> - createTimeline(inner, mode = if (eventId != null) Timeline.Mode.FOCUSED_ON_EVENT else Timeline.Mode.MEDIA) + val mode = when (createTimelineParams) { + is CreateTimelineParams.Focused -> Timeline.Mode.FOCUSED_ON_EVENT + is CreateTimelineParams.MediaOnly -> Timeline.Mode.MEDIA + is CreateTimelineParams.MediaOnlyFocused -> Timeline.Mode.FOCUSED_ON_EVENT + CreateTimelineParams.PinnedOnly -> Timeline.Mode.PINNED_EVENTS + } + createTimeline( + timeline = inner, + mode = mode, + ) + } + }.mapFailure { + when (createTimelineParams) { + is CreateTimelineParams.Focused, + is CreateTimelineParams.MediaOnlyFocused -> it.toFocusEventException() + CreateTimelineParams.MediaOnly, + CreateTimelineParams.PinnedOnly -> it } }.onFailure { if (it is CancellationException) { diff --git a/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/sync/SlidingSyncVersion.kt b/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/sync/SlidingSyncVersion.kt index ce1f1d025c..6284e0028f 100644 --- a/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/sync/SlidingSyncVersion.kt +++ b/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/sync/SlidingSyncVersion.kt @@ -12,8 +12,7 @@ import org.matrix.rustcomponents.sdk.SlidingSyncVersion as RustSlidingSyncVersio internal fun RustSlidingSyncVersion.map(): SlidingSyncVersion { return when (this) { - RustSlidingSyncVersion.None -> SlidingSyncVersion.None - is RustSlidingSyncVersion.Proxy -> SlidingSyncVersion.Proxy - RustSlidingSyncVersion.Native -> SlidingSyncVersion.Native + RustSlidingSyncVersion.NONE -> SlidingSyncVersion.None + RustSlidingSyncVersion.NATIVE -> SlidingSyncVersion.Native } } diff --git a/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/verification/RustSessionVerificationService.kt b/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/verification/RustSessionVerificationService.kt index 4349a12474..8cd9a47234 100644 --- a/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/verification/RustSessionVerificationService.kt +++ b/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/verification/RustSessionVerificationService.kt @@ -113,7 +113,7 @@ class RustSessionVerificationService( override suspend fun requestVerification() = tryOrFail { initVerificationControllerIfNeeded() - verificationController.requestVerification() + verificationController.requestDeviceVerification() } override suspend fun cancelVerification() = tryOrFail { diff --git a/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/verification/SessionVerificationRequestDetails.kt b/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/verification/SessionVerificationRequestDetails.kt index 028930371f..b617889f40 100644 --- a/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/verification/SessionVerificationRequestDetails.kt +++ b/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/verification/SessionVerificationRequestDetails.kt @@ -14,9 +14,9 @@ import io.element.android.libraries.matrix.api.verification.SessionVerificationR import org.matrix.rustcomponents.sdk.SessionVerificationRequestDetails as RustSessionVerificationRequestDetails fun RustSessionVerificationRequestDetails.map() = SessionVerificationRequestDetails( - senderId = UserId(senderId), + senderId = UserId(senderProfile.userId), flowId = FlowId(flowId), deviceId = DeviceId(deviceId), - displayName = displayName, + displayName = senderProfile.displayName, firstSeenTimestamp = firstSeenTimestamp.toLong(), ) diff --git a/libraries/matrix/impl/src/test/kotlin/io/element/android/libraries/matrix/impl/auth/RustMatrixAuthenticationServiceTest.kt b/libraries/matrix/impl/src/test/kotlin/io/element/android/libraries/matrix/impl/auth/RustMatrixAuthenticationServiceTest.kt index de6e25abd1..61df8e6455 100644 --- a/libraries/matrix/impl/src/test/kotlin/io/element/android/libraries/matrix/impl/auth/RustMatrixAuthenticationServiceTest.kt +++ b/libraries/matrix/impl/src/test/kotlin/io/element/android/libraries/matrix/impl/auth/RustMatrixAuthenticationServiceTest.kt @@ -11,7 +11,6 @@ import com.google.common.truth.Truth.assertThat import io.element.android.libraries.matrix.api.core.SessionId import io.element.android.libraries.matrix.impl.createRustMatrixClientFactory import io.element.android.libraries.matrix.impl.paths.SessionPathsFactory -import io.element.android.libraries.preferences.test.InMemoryAppPreferencesStore import io.element.android.libraries.sessionstorage.api.SessionStore import io.element.android.libraries.sessionstorage.impl.memory.InMemorySessionStore import io.element.android.libraries.sessionstorage.test.aSessionData @@ -50,7 +49,6 @@ class RustMatrixAuthenticationServiceTest { rustMatrixClientFactory = rustMatrixClientFactory, passphraseGenerator = FakePassphraseGenerator(), oidcConfigurationProvider = OidcConfigurationProvider(baseDirectory), - appPreferencesStore = InMemoryAppPreferencesStore(), ) } } diff --git a/libraries/matrix/impl/src/test/kotlin/io/element/android/libraries/matrix/impl/fixtures/factories/Session.kt b/libraries/matrix/impl/src/test/kotlin/io/element/android/libraries/matrix/impl/fixtures/factories/Session.kt index 010da86887..b1301d0777 100644 --- a/libraries/matrix/impl/src/test/kotlin/io/element/android/libraries/matrix/impl/fixtures/factories/Session.kt +++ b/libraries/matrix/impl/src/test/kotlin/io/element/android/libraries/matrix/impl/fixtures/factories/Session.kt @@ -14,7 +14,7 @@ import org.matrix.rustcomponents.sdk.Session import org.matrix.rustcomponents.sdk.SlidingSyncVersion internal fun aRustSession( - proxy: SlidingSyncVersion = SlidingSyncVersion.None, + proxy: SlidingSyncVersion = SlidingSyncVersion.NONE, accessToken: String = "accessToken", refreshToken: String = "refreshToken", ): Session { diff --git a/libraries/matrix/impl/src/test/kotlin/io/element/android/libraries/matrix/impl/mapper/SessionKtTest.kt b/libraries/matrix/impl/src/test/kotlin/io/element/android/libraries/matrix/impl/mapper/SessionKtTest.kt index ce0fc49ae2..46a4d35c37 100644 --- a/libraries/matrix/impl/src/test/kotlin/io/element/android/libraries/matrix/impl/mapper/SessionKtTest.kt +++ b/libraries/matrix/impl/src/test/kotlin/io/element/android/libraries/matrix/impl/mapper/SessionKtTest.kt @@ -72,7 +72,7 @@ class SessionKtTest { @Test fun `toSessionData copy the sliding sync url if present`() { val result = aRustSession( - proxy = SlidingSyncVersion.Proxy("proxyUrl") + proxy = SlidingSyncVersion.NATIVE ).toSessionData( isTokenValid = true, loginType = LoginType.PASSWORD, @@ -80,7 +80,7 @@ class SessionKtTest { sessionPaths = SessionPaths(File("/a/file"), File("/a/cache")), homeserverUrl = A_HOMESERVER_URL_2, ) - assertThat(result.slidingSyncProxy).isEqualTo("proxyUrl") + assertThat(result.slidingSyncProxy).isNull() } @Test diff --git a/libraries/matrix/test/src/main/kotlin/io/element/android/libraries/matrix/test/encryption/FakeEncryptionService.kt b/libraries/matrix/test/src/main/kotlin/io/element/android/libraries/matrix/test/encryption/FakeEncryptionService.kt index ee126e2f92..7d56ab3d7e 100644 --- a/libraries/matrix/test/src/main/kotlin/io/element/android/libraries/matrix/test/encryption/FakeEncryptionService.kt +++ b/libraries/matrix/test/src/main/kotlin/io/element/android/libraries/matrix/test/encryption/FakeEncryptionService.kt @@ -24,6 +24,7 @@ class FakeEncryptionService( var startIdentityResetLambda: () -> Result = { lambdaError() }, private val pinUserIdentityResult: (UserId) -> Result = { lambdaError() }, private val isUserVerifiedResult: (UserId) -> Result = { lambdaError() }, + private val withdrawVerificationResult: (UserId) -> Result = { lambdaError() }, ) : EncryptionService { private var disableRecoveryFailure: Exception? = null override val backupStateStateFlow: MutableStateFlow = MutableStateFlow(BackupState.UNKNOWN) @@ -124,6 +125,10 @@ class FakeEncryptionService( return pinUserIdentityResult(userId) } + override suspend fun withdrawVerification(userId: UserId): Result { + return withdrawVerificationResult(userId) + } + override suspend fun isUserVerified(userId: UserId): Result = simulateLongTask { isUserVerifiedResult(userId) } diff --git a/libraries/matrix/test/src/main/kotlin/io/element/android/libraries/matrix/test/room/FakeMatrixRoom.kt b/libraries/matrix/test/src/main/kotlin/io/element/android/libraries/matrix/test/room/FakeMatrixRoom.kt index d214f91f2b..04c32b5445 100644 --- a/libraries/matrix/test/src/main/kotlin/io/element/android/libraries/matrix/test/room/FakeMatrixRoom.kt +++ b/libraries/matrix/test/src/main/kotlin/io/element/android/libraries/matrix/test/room/FakeMatrixRoom.kt @@ -24,6 +24,7 @@ import io.element.android.libraries.matrix.api.media.MediaUploadHandler import io.element.android.libraries.matrix.api.media.VideoInfo import io.element.android.libraries.matrix.api.notificationsettings.NotificationSettingsService import io.element.android.libraries.matrix.api.poll.PollKind +import io.element.android.libraries.matrix.api.room.CreateTimelineParams import io.element.android.libraries.matrix.api.room.IntentionalMention import io.element.android.libraries.matrix.api.room.MatrixRoom import io.element.android.libraries.matrix.api.room.MatrixRoomInfo @@ -138,9 +139,7 @@ class FakeMatrixRoom( private val leaveRoomLambda: () -> Result = { lambdaError() }, private val updateMembersResult: () -> Unit = { lambdaError() }, private val getMembersResult: (Int) -> Result> = { lambdaError() }, - private val timelineFocusedOnEventResult: (EventId) -> Result = { lambdaError() }, - private val pinnedEventsTimelineResult: () -> Result = { lambdaError() }, - private val mediaTimelineResult: (EventId?) -> Result = { lambdaError() }, + private val createTimelineResult: (CreateTimelineParams) -> Result = { lambdaError() }, private val setSendQueueEnabledLambda: (Boolean) -> Unit = { _: Boolean -> }, private val saveComposerDraftLambda: (ComposerDraft) -> Result = { _: ComposerDraft -> Result.success(Unit) }, private val loadComposerDraftLambda: () -> Result = { Result.success(null) }, @@ -220,16 +219,10 @@ class FakeMatrixRoom( _syncUpdateFlow.tryEmit(_syncUpdateFlow.value + 1) } - override suspend fun timelineFocusedOnEvent(eventId: EventId): Result = simulateLongTask { - timelineFocusedOnEventResult(eventId) - } - - override suspend fun pinnedEventsTimeline(): Result = simulateLongTask { - pinnedEventsTimelineResult() - } - - override suspend fun mediaTimeline(eventId: EventId?): Result = simulateLongTask { - mediaTimelineResult(eventId) + override suspend fun createTimeline( + createTimelineParams: CreateTimelineParams, + ): Result = simulateLongTask { + createTimelineResult(createTimelineParams) } override suspend fun subscribeToSync() { diff --git a/libraries/matrixui/src/main/res/values-cs/translations.xml b/libraries/matrixui/src/main/res/values-cs/translations.xml index 0e557cc546..a8e82b288c 100644 --- a/libraries/matrixui/src/main/res/values-cs/translations.xml +++ b/libraries/matrixui/src/main/res/values-cs/translations.xml @@ -1,4 +1,7 @@ + "Poslat pozvánku" + "Chcete začít chatovat s %1$s?" + "Poslat pozvánku?" "%1$s (%2$s) vás pozval(a)" diff --git a/libraries/matrixui/src/main/res/values-de/translations.xml b/libraries/matrixui/src/main/res/values-de/translations.xml index 591fe78328..67d42162c3 100644 --- a/libraries/matrixui/src/main/res/values-de/translations.xml +++ b/libraries/matrixui/src/main/res/values-de/translations.xml @@ -1,4 +1,7 @@ + "Einladung senden" + "Möchten Sie einen Chat mit %1$s starten?" + "Einladung senden?" "%1$s (%2$s) hat dich eingeladen" diff --git a/libraries/matrixui/src/main/res/values-et/translations.xml b/libraries/matrixui/src/main/res/values-et/translations.xml index 5e36d57d33..bd9840940e 100644 --- a/libraries/matrixui/src/main/res/values-et/translations.xml +++ b/libraries/matrixui/src/main/res/values-et/translations.xml @@ -1,4 +1,7 @@ + "Saada kutse" + "Kas sa soovid alustada vestlust kasutajaga %1$s?" + "Kas saadame kutse?" "%1$s (%2$s) saatis sulle kutse" diff --git a/libraries/matrixui/src/main/res/values-fi/translations.xml b/libraries/matrixui/src/main/res/values-fi/translations.xml index abed5f4a88..156f7f2ac2 100644 --- a/libraries/matrixui/src/main/res/values-fi/translations.xml +++ b/libraries/matrixui/src/main/res/values-fi/translations.xml @@ -1,4 +1,6 @@ + "Lähetä kutsu" + "Lähetetäänkö kutsu?" "%1$s (%2$s) kutsui sinut" diff --git a/libraries/matrixui/src/main/res/values-fr/translations.xml b/libraries/matrixui/src/main/res/values-fr/translations.xml index fc024258fa..ca952f53c0 100644 --- a/libraries/matrixui/src/main/res/values-fr/translations.xml +++ b/libraries/matrixui/src/main/res/values-fr/translations.xml @@ -1,4 +1,7 @@ + "Envoyer l’invitation" + "Voulez-vous entamer une discussion avec %1$s ?" + "Envoyer l’invitation ?" "%1$s (%2$s) vous a invité(e)" diff --git a/libraries/matrixui/src/main/res/values-hu/translations.xml b/libraries/matrixui/src/main/res/values-hu/translations.xml index 573f8e1f10..f22454cd16 100644 --- a/libraries/matrixui/src/main/res/values-hu/translations.xml +++ b/libraries/matrixui/src/main/res/values-hu/translations.xml @@ -1,4 +1,7 @@ + "Meghívó küldése" + "Csevegést kezd vele: %1$s?" + "Meghívó küldése?" "%1$s (%2$s) meghívta" diff --git a/libraries/matrixui/src/main/res/values-it/translations.xml b/libraries/matrixui/src/main/res/values-it/translations.xml index 5f31ef01ba..eb9370de4b 100644 --- a/libraries/matrixui/src/main/res/values-it/translations.xml +++ b/libraries/matrixui/src/main/res/values-it/translations.xml @@ -1,4 +1,6 @@ + "Invia invito" + "Inviare invito?" "%1$s (%2$s) ti ha invitato" diff --git a/libraries/matrixui/src/main/res/values-pl/translations.xml b/libraries/matrixui/src/main/res/values-pl/translations.xml index 3c5d9a0d7f..caa2c0e07d 100644 --- a/libraries/matrixui/src/main/res/values-pl/translations.xml +++ b/libraries/matrixui/src/main/res/values-pl/translations.xml @@ -1,4 +1,7 @@ + "Wyślij zaproszenie" + "Czy chcesz rozpocząć czat z %1$s?" + "Wysłać zaproszenie?" "%1$s (%2$s) zaprosił Cię" diff --git a/libraries/matrixui/src/main/res/values-pt/translations.xml b/libraries/matrixui/src/main/res/values-pt/translations.xml index 5b5f826912..c3cb0dcbda 100644 --- a/libraries/matrixui/src/main/res/values-pt/translations.xml +++ b/libraries/matrixui/src/main/res/values-pt/translations.xml @@ -1,4 +1,7 @@ + "Enviar convite" + "Gostarias de iniciar uma conversa com %1$s?" + "Enviar convite?" "%1$s (%2$s) convidou-te" diff --git a/libraries/matrixui/src/main/res/values-ru/translations.xml b/libraries/matrixui/src/main/res/values-ru/translations.xml index 4e076cde1d..44c30532d0 100644 --- a/libraries/matrixui/src/main/res/values-ru/translations.xml +++ b/libraries/matrixui/src/main/res/values-ru/translations.xml @@ -1,4 +1,7 @@ + "Отправить приглашение" + "Хотите начать чат с %1$s?" + "Отправить приглашение?" "%1$s (%2$s) пригласил вас" diff --git a/libraries/matrixui/src/main/res/values-sk/translations.xml b/libraries/matrixui/src/main/res/values-sk/translations.xml index 0fada643d5..57b644f1ee 100644 --- a/libraries/matrixui/src/main/res/values-sk/translations.xml +++ b/libraries/matrixui/src/main/res/values-sk/translations.xml @@ -1,4 +1,7 @@ + "Odoslať pozvánku" + "Chceli by ste začať rozhovor s používateľom %1$s?" + "Poslať pozvánku?" "%1$s (%2$s) vás pozval/a" diff --git a/libraries/matrixui/src/main/res/values-tr/translations.xml b/libraries/matrixui/src/main/res/values-tr/translations.xml new file mode 100644 index 0000000000..dc065e1d75 --- /dev/null +++ b/libraries/matrixui/src/main/res/values-tr/translations.xml @@ -0,0 +1,7 @@ + + + "Davet gönder" + "%1$s ile sohbet başlatmak ister misiniz?" + "Davet gönder?" + "%1$s (%2$s) sizi davet etti" + diff --git a/libraries/matrixui/src/main/res/values-uk/translations.xml b/libraries/matrixui/src/main/res/values-uk/translations.xml index 5b4209626a..324bb96086 100644 --- a/libraries/matrixui/src/main/res/values-uk/translations.xml +++ b/libraries/matrixui/src/main/res/values-uk/translations.xml @@ -1,4 +1,7 @@ + "Надіслати запрошення" + "Хочете розпочати бесіду з %1$s?" + "Надіслати запрошення?" "%1$s (%2$s) запрошує вас" diff --git a/libraries/mediaviewer/api/src/main/kotlin/io/element/android/libraries/mediaviewer/api/MediaViewerEntryPoint.kt b/libraries/mediaviewer/api/src/main/kotlin/io/element/android/libraries/mediaviewer/api/MediaViewerEntryPoint.kt index a824fc5540..906283c457 100644 --- a/libraries/mediaviewer/api/src/main/kotlin/io/element/android/libraries/mediaviewer/api/MediaViewerEntryPoint.kt +++ b/libraries/mediaviewer/api/src/main/kotlin/io/element/android/libraries/mediaviewer/api/MediaViewerEntryPoint.kt @@ -7,6 +7,7 @@ package io.element.android.libraries.mediaviewer.api +import android.os.Parcelable import com.bumble.appyx.core.modality.BuildContext import com.bumble.appyx.core.node.Node import com.bumble.appyx.core.plugin.Plugin @@ -14,6 +15,8 @@ import io.element.android.libraries.architecture.FeatureEntryPoint import io.element.android.libraries.architecture.NodeInputs import io.element.android.libraries.matrix.api.core.EventId import io.element.android.libraries.matrix.api.media.MediaSource +import io.element.android.libraries.matrix.api.timeline.Timeline +import kotlinx.parcelize.Parcelize interface MediaViewerEntryPoint : FeatureEntryPoint { fun nodeBuilder(parentNode: Node, buildContext: BuildContext): NodeBuilder @@ -39,9 +42,14 @@ interface MediaViewerEntryPoint : FeatureEntryPoint { val canShowInfo: Boolean, ) : NodeInputs - enum class MediaViewerMode { - SingleMedia, - TimelineImagesAndVideos, - TimelineFilesAndAudios, + sealed interface MediaViewerMode : Parcelable { + @Parcelize + data object SingleMedia : MediaViewerMode + + @Parcelize + data class TimelineImagesAndVideos(val timelineMode: Timeline.Mode) : MediaViewerMode + + @Parcelize + data class TimelineFilesAndAudios(val timelineMode: Timeline.Mode) : MediaViewerMode } } diff --git a/libraries/mediaviewer/impl/src/main/kotlin/io/element/android/libraries/mediaviewer/impl/datasource/FocusedTimelineMediaGalleryDataSourceFactory.kt b/libraries/mediaviewer/impl/src/main/kotlin/io/element/android/libraries/mediaviewer/impl/datasource/FocusedTimelineMediaGalleryDataSourceFactory.kt index f7426aa4e9..f776b35016 100644 --- a/libraries/mediaviewer/impl/src/main/kotlin/io/element/android/libraries/mediaviewer/impl/datasource/FocusedTimelineMediaGalleryDataSourceFactory.kt +++ b/libraries/mediaviewer/impl/src/main/kotlin/io/element/android/libraries/mediaviewer/impl/datasource/FocusedTimelineMediaGalleryDataSourceFactory.kt @@ -18,6 +18,7 @@ interface FocusedTimelineMediaGalleryDataSourceFactory { fun createFor( eventId: EventId, mediaItem: MediaItem.Event, + onlyPinnedEvents: Boolean, ): MediaGalleryDataSource } @@ -30,6 +31,7 @@ class DefaultFocusedTimelineMediaGalleryDataSourceFactory @Inject constructor( override fun createFor( eventId: EventId, mediaItem: MediaItem.Event, + onlyPinnedEvents: Boolean, ): MediaGalleryDataSource { return TimelineMediaGalleryDataSource( room = room, @@ -37,6 +39,7 @@ class DefaultFocusedTimelineMediaGalleryDataSourceFactory @Inject constructor( room = room, eventId = eventId, initialMediaItem = mediaItem, + onlyPinnedEvents = onlyPinnedEvents, ), timelineMediaItemsFactory = timelineMediaItemsFactory, mediaItemsPostProcessor = mediaItemsPostProcessor, diff --git a/libraries/mediaviewer/impl/src/main/kotlin/io/element/android/libraries/mediaviewer/impl/datasource/MediaTimeline.kt b/libraries/mediaviewer/impl/src/main/kotlin/io/element/android/libraries/mediaviewer/impl/datasource/MediaTimeline.kt index 6dc4136193..2d7739cc32 100644 --- a/libraries/mediaviewer/impl/src/main/kotlin/io/element/android/libraries/mediaviewer/impl/datasource/MediaTimeline.kt +++ b/libraries/mediaviewer/impl/src/main/kotlin/io/element/android/libraries/mediaviewer/impl/datasource/MediaTimeline.kt @@ -12,6 +12,7 @@ import io.element.android.libraries.di.RoomScope import io.element.android.libraries.di.SingleIn import io.element.android.libraries.matrix.api.core.EventId import io.element.android.libraries.matrix.api.core.UniqueId +import io.element.android.libraries.matrix.api.room.CreateTimelineParams import io.element.android.libraries.matrix.api.room.MatrixRoom import io.element.android.libraries.matrix.api.timeline.Timeline import io.element.android.libraries.mediaviewer.impl.model.GroupedMediaItems @@ -44,7 +45,7 @@ class LiveMediaTimeline @Inject constructor( override suspend fun getTimeline(): Result = mutex.withLock { val currentTimeline = timeline if (currentTimeline == null) { - room.mediaTimeline(null) + room.createTimeline(CreateTimelineParams.MediaOnly) .onSuccess { timeline = it } } else { Result.success(currentTimeline) @@ -58,14 +59,22 @@ class LiveMediaTimeline @Inject constructor( /** * A class that will provide a media timeline that is focused on a particular event. + * Optionally, the timeline will only contain the pinned events. */ class FocusedMediaTimeline( private val room: MatrixRoom, private val eventId: EventId, + private val onlyPinnedEvents: Boolean, initialMediaItem: MediaItem.Event, ) : MediaTimeline { override suspend fun getTimeline(): Result { - return room.mediaTimeline(eventId) + return room.createTimeline( + createTimelineParams = if (onlyPinnedEvents) { + CreateTimelineParams.PinnedOnly + } else { + CreateTimelineParams.MediaOnlyFocused(eventId) + }, + ) } override val cache = persistentListOf( diff --git a/libraries/mediaviewer/impl/src/main/kotlin/io/element/android/libraries/mediaviewer/impl/gallery/root/MediaGalleryRootNode.kt b/libraries/mediaviewer/impl/src/main/kotlin/io/element/android/libraries/mediaviewer/impl/gallery/root/MediaGalleryRootNode.kt index 7317920005..f862788c30 100644 --- a/libraries/mediaviewer/impl/src/main/kotlin/io/element/android/libraries/mediaviewer/impl/gallery/root/MediaGalleryRootNode.kt +++ b/libraries/mediaviewer/impl/src/main/kotlin/io/element/android/libraries/mediaviewer/impl/gallery/root/MediaGalleryRootNode.kt @@ -27,6 +27,7 @@ import io.element.android.libraries.architecture.overlay.operation.show import io.element.android.libraries.di.RoomScope import io.element.android.libraries.matrix.api.core.EventId import io.element.android.libraries.matrix.api.media.MediaSource +import io.element.android.libraries.matrix.api.timeline.Timeline import io.element.android.libraries.mediaviewer.api.MediaGalleryEntryPoint import io.element.android.libraries.mediaviewer.api.MediaInfo import io.element.android.libraries.mediaviewer.api.MediaViewerEntryPoint @@ -96,9 +97,9 @@ class MediaGalleryRootNode @AssistedInject constructor( val mode = when (item) { is MediaItem.Audio, is MediaItem.Voice, - is MediaItem.File -> MediaViewerEntryPoint.MediaViewerMode.TimelineFilesAndAudios + is MediaItem.File -> MediaViewerEntryPoint.MediaViewerMode.TimelineFilesAndAudios(Timeline.Mode.MEDIA) is MediaItem.Image, - is MediaItem.Video -> MediaViewerEntryPoint.MediaViewerMode.TimelineImagesAndVideos + is MediaItem.Video -> MediaViewerEntryPoint.MediaViewerMode.TimelineImagesAndVideos(Timeline.Mode.MEDIA) } overlay.show( NavTarget.MediaViewer( diff --git a/libraries/mediaviewer/impl/src/main/kotlin/io/element/android/libraries/mediaviewer/impl/local/DefaultLocalMediaRenderer.kt b/libraries/mediaviewer/impl/src/main/kotlin/io/element/android/libraries/mediaviewer/impl/local/DefaultLocalMediaRenderer.kt index 4449e5eefd..8120788c5f 100644 --- a/libraries/mediaviewer/impl/src/main/kotlin/io/element/android/libraries/mediaviewer/impl/local/DefaultLocalMediaRenderer.kt +++ b/libraries/mediaviewer/impl/src/main/kotlin/io/element/android/libraries/mediaviewer/impl/local/DefaultLocalMediaRenderer.kt @@ -14,6 +14,7 @@ import com.squareup.anvil.annotations.ContributesBinding import io.element.android.libraries.di.AppScope import io.element.android.libraries.mediaviewer.api.local.LocalMedia import io.element.android.libraries.mediaviewer.api.local.LocalMediaRenderer +import me.saket.telephoto.zoomable.OverzoomEffect import me.saket.telephoto.zoomable.ZoomSpec import me.saket.telephoto.zoomable.rememberZoomableState import javax.inject.Inject @@ -24,7 +25,7 @@ class DefaultLocalMediaRenderer @Inject constructor() : LocalMediaRenderer { override fun Render(localMedia: LocalMedia) { val localMediaViewState = rememberLocalMediaViewState( zoomableState = rememberZoomableState( - zoomSpec = ZoomSpec(maxZoomFactor = 4f, preventOverOrUnderZoom = false) + zoomSpec = ZoomSpec(maxZoomFactor = 4f, overzoomEffect = OverzoomEffect.NoLimits) ) ) LocalMediaView( diff --git a/libraries/mediaviewer/impl/src/main/kotlin/io/element/android/libraries/mediaviewer/impl/viewer/MediaViewerDataSource.kt b/libraries/mediaviewer/impl/src/main/kotlin/io/element/android/libraries/mediaviewer/impl/viewer/MediaViewerDataSource.kt index ebaba4cdcd..3fd01cc08e 100644 --- a/libraries/mediaviewer/impl/src/main/kotlin/io/element/android/libraries/mediaviewer/impl/viewer/MediaViewerDataSource.kt +++ b/libraries/mediaviewer/impl/src/main/kotlin/io/element/android/libraries/mediaviewer/impl/viewer/MediaViewerDataSource.kt @@ -52,8 +52,8 @@ class MediaViewerDataSource( private val galleryMode = when (mode) { MediaViewerMode.SingleMedia, - MediaViewerMode.TimelineImagesAndVideos -> MediaGalleryMode.Images - MediaViewerMode.TimelineFilesAndAudios -> MediaGalleryMode.Files + is MediaViewerMode.TimelineImagesAndVideos -> MediaGalleryMode.Images + is MediaViewerMode.TimelineFilesAndAudios -> MediaGalleryMode.Files } // Map of sourceUrl to local media state diff --git a/libraries/mediaviewer/impl/src/main/kotlin/io/element/android/libraries/mediaviewer/impl/viewer/MediaViewerNode.kt b/libraries/mediaviewer/impl/src/main/kotlin/io/element/android/libraries/mediaviewer/impl/viewer/MediaViewerNode.kt index 7876641051..d994f374f9 100644 --- a/libraries/mediaviewer/impl/src/main/kotlin/io/element/android/libraries/mediaviewer/impl/viewer/MediaViewerNode.kt +++ b/libraries/mediaviewer/impl/src/main/kotlin/io/element/android/libraries/mediaviewer/impl/viewer/MediaViewerNode.kt @@ -22,6 +22,7 @@ import io.element.android.libraries.core.coroutine.CoroutineDispatchers import io.element.android.libraries.di.RoomScope import io.element.android.libraries.matrix.api.core.EventId import io.element.android.libraries.matrix.api.media.MatrixMediaLoader +import io.element.android.libraries.matrix.api.timeline.Timeline import io.element.android.libraries.mediaviewer.api.MediaViewerEntryPoint import io.element.android.libraries.mediaviewer.api.local.LocalMediaFactory import io.element.android.libraries.mediaviewer.impl.datasource.FocusedTimelineMediaGalleryDataSourceFactory @@ -69,16 +70,40 @@ class MediaViewerNode @AssistedInject constructor( // Should not happen timelineMediaGalleryDataSource } else { - // Does timelineMediaGalleryDataSource knows the eventId? - val lastData = timelineMediaGalleryDataSource.getLastData().dataOrNull() - val isEventKnown = lastData?.hasEvent(eventId) == true - if (isEventKnown) { - timelineMediaGalleryDataSource - } else { - focusedTimelineMediaGalleryDataSourceFactory.createFor( - eventId = eventId, - mediaItem = inputs.toMediaItem(), - ) + // Can we use a specific timeline? + val timelineMode = when (val mode = inputs.mode) { + is MediaViewerEntryPoint.MediaViewerMode.TimelineImagesAndVideos -> mode.timelineMode + is MediaViewerEntryPoint.MediaViewerMode.TimelineFilesAndAudios -> mode.timelineMode + else -> null + } + when (timelineMode) { + null -> timelineMediaGalleryDataSource + Timeline.Mode.LIVE -> { + // Even if the timelineMediaGalleryDataSource does not know the eventId, the SDK will create the timeline faster + timelineMediaGalleryDataSource + } + Timeline.Mode.FOCUSED_ON_EVENT -> { + // Does timelineMediaGalleryDataSource knows the eventId? + val lastData = timelineMediaGalleryDataSource.getLastData().dataOrNull() + val isEventKnown = lastData?.hasEvent(eventId) == true + if (isEventKnown) { + timelineMediaGalleryDataSource + } else { + focusedTimelineMediaGalleryDataSourceFactory.createFor( + eventId = eventId, + mediaItem = inputs.toMediaItem(), + onlyPinnedEvents = false, + ) + } + } + Timeline.Mode.PINNED_EVENTS -> { + focusedTimelineMediaGalleryDataSourceFactory.createFor( + eventId = eventId, + mediaItem = inputs.toMediaItem(), + onlyPinnedEvents = true, + ) + } + Timeline.Mode.MEDIA -> timelineMediaGalleryDataSource } } } diff --git a/libraries/mediaviewer/impl/src/main/kotlin/io/element/android/libraries/mediaviewer/impl/viewer/MediaViewerPresenter.kt b/libraries/mediaviewer/impl/src/main/kotlin/io/element/android/libraries/mediaviewer/impl/viewer/MediaViewerPresenter.kt index b926291461..834edacd76 100644 --- a/libraries/mediaviewer/impl/src/main/kotlin/io/element/android/libraries/mediaviewer/impl/viewer/MediaViewerPresenter.kt +++ b/libraries/mediaviewer/impl/src/main/kotlin/io/element/android/libraries/mediaviewer/impl/viewer/MediaViewerPresenter.kt @@ -204,8 +204,8 @@ class MediaViewerPresenter @AssistedInject constructor( private fun showNoMoreItemsSnackbar() { val messageResId = when (inputs.mode) { MediaViewerEntryPoint.MediaViewerMode.SingleMedia, - MediaViewerEntryPoint.MediaViewerMode.TimelineImagesAndVideos -> R.string.screen_media_details_no_more_media_to_show - MediaViewerEntryPoint.MediaViewerMode.TimelineFilesAndAudios -> R.string.screen_media_details_no_more_files_to_show + is MediaViewerEntryPoint.MediaViewerMode.TimelineImagesAndVideos -> R.string.screen_media_details_no_more_media_to_show + is MediaViewerEntryPoint.MediaViewerMode.TimelineFilesAndAudios -> R.string.screen_media_details_no_more_files_to_show } val message = SnackbarMessage(messageResId) snackbarDispatcher.post(message) diff --git a/libraries/mediaviewer/impl/src/main/kotlin/io/element/android/libraries/mediaviewer/impl/viewer/MediaViewerView.kt b/libraries/mediaviewer/impl/src/main/kotlin/io/element/android/libraries/mediaviewer/impl/viewer/MediaViewerView.kt index 3ba57cae33..438e60ff6b 100644 --- a/libraries/mediaviewer/impl/src/main/kotlin/io/element/android/libraries/mediaviewer/impl/viewer/MediaViewerView.kt +++ b/libraries/mediaviewer/impl/src/main/kotlin/io/element/android/libraries/mediaviewer/impl/viewer/MediaViewerView.kt @@ -81,6 +81,7 @@ import io.element.android.libraries.mediaviewer.impl.local.rememberLocalMediaVie import io.element.android.libraries.mediaviewer.impl.util.bgCanvasWithTransparency import io.element.android.libraries.ui.strings.CommonStrings import kotlinx.coroutines.delay +import me.saket.telephoto.zoomable.OverzoomEffect import me.saket.telephoto.zoomable.ZoomSpec import me.saket.telephoto.zoomable.rememberZoomableState @@ -297,7 +298,7 @@ private fun MediaViewerPage( ) { Box(contentAlignment = Alignment.Center) { val zoomableState = rememberZoomableState( - zoomSpec = ZoomSpec(maxZoomFactor = 4f, preventOverOrUnderZoom = false) + zoomSpec = ZoomSpec(maxZoomFactor = 4f, overzoomEffect = OverzoomEffect.NoLimits) ) val localMediaViewState = rememberLocalMediaViewState(zoomableState) val showThumbnail = !localMediaViewState.isReady diff --git a/libraries/mediaviewer/impl/src/main/res/values-cs/translations.xml b/libraries/mediaviewer/impl/src/main/res/values-cs/translations.xml index 3cab2b499a..bcb7b64237 100644 --- a/libraries/mediaviewer/impl/src/main/res/values-cs/translations.xml +++ b/libraries/mediaviewer/impl/src/main/res/values-cs/translations.xml @@ -16,8 +16,6 @@ "Název souboru" "Žádné další soubory k zobrazení" "Žádná další média k zobrazení" - "Tento soubor bude odstraněn z místnosti a členové k němu nebudou mít přístup." - "Smazat soubor?" "Nahrál(a)" "Nahráno" diff --git a/libraries/mediaviewer/impl/src/main/res/values-de/translations.xml b/libraries/mediaviewer/impl/src/main/res/values-de/translations.xml index f7cb2c9e60..e27fd3f1cc 100644 --- a/libraries/mediaviewer/impl/src/main/res/values-de/translations.xml +++ b/libraries/mediaviewer/impl/src/main/res/values-de/translations.xml @@ -16,8 +16,6 @@ "Dateiname" "Keine weiteren Dateien zum Anzeigen" "Keine weiteren Medien mehr zum Anzeigen" - "Diese Datei wird aus dem Chatroom entfernt und die Mitglieder werden keinen Zugriff mehr darauf haben." - "Datei löschen?" "Hochgeladen von" "Hochgeladen am" diff --git a/libraries/mediaviewer/impl/src/main/res/values-el/translations.xml b/libraries/mediaviewer/impl/src/main/res/values-el/translations.xml index 8452eb9158..3427270aae 100644 --- a/libraries/mediaviewer/impl/src/main/res/values-el/translations.xml +++ b/libraries/mediaviewer/impl/src/main/res/values-el/translations.xml @@ -11,8 +11,6 @@ "Πολυμέσα και αρχεία" "Μορφή αρχείου" "Όνομα αρχείου" - "Αυτό το αρχείο θα αφαιρεθεί από το δωμάτιο και τα μέλη δεν θα έχουν πρόσβαση σε αυτό." - "Διαγραφή αρχείου;" "Μεταφορτώθηκε από" "Μεταφορτώθηκε στις" diff --git a/libraries/mediaviewer/impl/src/main/res/values-et/translations.xml b/libraries/mediaviewer/impl/src/main/res/values-et/translations.xml index d66433e52e..63329a797d 100644 --- a/libraries/mediaviewer/impl/src/main/res/values-et/translations.xml +++ b/libraries/mediaviewer/impl/src/main/res/values-et/translations.xml @@ -16,8 +16,6 @@ "Failinimi" "Pole enam kuvatavaid faile" "Pole enam kuvatavat meediat" - "Järgnevaga eemaldame selle faili jututoast ja tema liikmed enam ei pääse failile ligi." - "Kas kustutame faili?" "Üleslaadija" "Üleslaaditud" diff --git a/libraries/mediaviewer/impl/src/main/res/values-fi/translations.xml b/libraries/mediaviewer/impl/src/main/res/values-fi/translations.xml index b477b7c94f..b3728cb9b7 100644 --- a/libraries/mediaviewer/impl/src/main/res/values-fi/translations.xml +++ b/libraries/mediaviewer/impl/src/main/res/values-fi/translations.xml @@ -16,8 +16,6 @@ "Tiedostonimi" "Ei enää näytettäviä tiedostoja" "Ei enää näytettävää mediaa" - "Tämä tiedosto poistetaan huoneesta, eikä jäsenillä ole enää pääsyä siihen." - "Poistetaanko tiedosto?" "Lähettäjä" "Lähetetty" diff --git a/libraries/mediaviewer/impl/src/main/res/values-fr/translations.xml b/libraries/mediaviewer/impl/src/main/res/values-fr/translations.xml index 007356e3f6..b6334095ab 100644 --- a/libraries/mediaviewer/impl/src/main/res/values-fr/translations.xml +++ b/libraries/mediaviewer/impl/src/main/res/values-fr/translations.xml @@ -16,8 +16,6 @@ "Nom du fichier" "Il n’y a plus de fichiers à montrer" "Il n’y a plus de médias à montrer" - "Ce fichier sera supprimé du salon et les membres n’y auront plus accès." - "Supprimer le fichier ?" "Envoyé par" "Envoyé le" diff --git a/libraries/mediaviewer/impl/src/main/res/values-hu/translations.xml b/libraries/mediaviewer/impl/src/main/res/values-hu/translations.xml index 8876145e58..14cc11fb96 100644 --- a/libraries/mediaviewer/impl/src/main/res/values-hu/translations.xml +++ b/libraries/mediaviewer/impl/src/main/res/values-hu/translations.xml @@ -16,8 +16,6 @@ "Fájlnév" "Nincs több megjeleníthető fájl" "Nincs több megjeleníthető média" - "Ez a fájl el lesz távolítva a szobából, és a tagok nem férhetnek hozzá." - "Törli a fájlt?" "Feltöltötte:" "Feltöltve:" diff --git a/libraries/mediaviewer/impl/src/main/res/values-it/translations.xml b/libraries/mediaviewer/impl/src/main/res/values-it/translations.xml index 1bdbfa08d9..72701194fc 100644 --- a/libraries/mediaviewer/impl/src/main/res/values-it/translations.xml +++ b/libraries/mediaviewer/impl/src/main/res/values-it/translations.xml @@ -16,8 +16,6 @@ "Nome del file" "Nessun altro file da mostrare" "Non ci sono più contenuti multimediali da mostrare" - "Questo file verrà rimosso dalla stanza e i membri non ne avranno accesso." - "Eliminare il file?" "Caricato da" "Caricato il" diff --git a/libraries/mediaviewer/impl/src/main/res/values-pl/translations.xml b/libraries/mediaviewer/impl/src/main/res/values-pl/translations.xml index 289b75a4d8..c398123873 100644 --- a/libraries/mediaviewer/impl/src/main/res/values-pl/translations.xml +++ b/libraries/mediaviewer/impl/src/main/res/values-pl/translations.xml @@ -2,6 +2,7 @@ "Ten plik zostanie usunięty z pokoju, a członkowie nie będą mieli do niego dostępu." "Usunąć plik?" + "Sprawdź połączenie internetowe i spróbuj ponownie." "Dokumenty, pliki audio i wiadomości głosowe przesłane do tego pokoju będą wyświetlane tutaj." "Jeszcze nie przesłano plików" "Wczytywanie plików…" @@ -13,8 +14,8 @@ "Media i pliki" "Format pliku" "Nazwa pliku" - "Plik zostanie usunięty z pokoju, a członkowie nie będą mieli do niego dostępu." - "Usunąć plik?" + "Brak plików do pokazania" + "Brak mediów do pokazania" "Przesłane przez" "Przesłane w dniu" diff --git a/libraries/mediaviewer/impl/src/main/res/values-pt/translations.xml b/libraries/mediaviewer/impl/src/main/res/values-pt/translations.xml index d36fb9cf83..453a00969d 100644 --- a/libraries/mediaviewer/impl/src/main/res/values-pt/translations.xml +++ b/libraries/mediaviewer/impl/src/main/res/values-pt/translations.xml @@ -2,6 +2,9 @@ "Este ficheiro será removido da sala e os membros deixarão de o poder aceder." "Eliminar ficheiro?" + "Verifica a tua ligação à Internet e tenta novamente." + "Documentos, ficheiros de áudio e mensagens de voz carregados para esta sala serão mostrados aqui." + "Ainda sem qualquer ficheiro" "A carregar ficheiros…" "A carregar multimédia…" "Ficheiros" @@ -11,7 +14,8 @@ "Multimédia e ficheiros" "Formato do ficheiro" "Nome do ficheiro" - "Eliminar ficheiro?" + "Sem mais ficheiros para mostrar" + "Sem mais multimédia para mostrar" "Enviado por" "Enviado a" diff --git a/libraries/mediaviewer/impl/src/main/res/values-ru/translations.xml b/libraries/mediaviewer/impl/src/main/res/values-ru/translations.xml index df898e332f..0598d68fa5 100644 --- a/libraries/mediaviewer/impl/src/main/res/values-ru/translations.xml +++ b/libraries/mediaviewer/impl/src/main/res/values-ru/translations.xml @@ -16,8 +16,6 @@ "Имя файла" "Больше нет файлов для показа" "Больше нет медиа для показа" - "Этот файл будет удален из комнаты и у участников не будет к нему доступа." - "Удалить файл?" "Загружено" "Загружено на" diff --git a/libraries/mediaviewer/impl/src/main/res/values-sk/translations.xml b/libraries/mediaviewer/impl/src/main/res/values-sk/translations.xml index 2b9dbd3952..4cfc16b3b3 100644 --- a/libraries/mediaviewer/impl/src/main/res/values-sk/translations.xml +++ b/libraries/mediaviewer/impl/src/main/res/values-sk/translations.xml @@ -16,8 +16,6 @@ "Názov súboru" "Žiadne ďalšie súbory na zobrazenie" "Žiadne ďalšie médiá na zobrazenie" - "Tento súbor bude odstránený z miestnosti a členovia k nemu nebudú mať prístup." - "Vymazať súbor?" "Nahrané používateľom" "Nahrané dňa" diff --git a/libraries/mediaviewer/impl/src/main/res/values-sv/translations.xml b/libraries/mediaviewer/impl/src/main/res/values-sv/translations.xml new file mode 100644 index 0000000000..29508b461a --- /dev/null +++ b/libraries/mediaviewer/impl/src/main/res/values-sv/translations.xml @@ -0,0 +1,16 @@ + + + "Den här filen kommer att tas bort från rummet och medlemmar kommer inte att ha tillgång till den." + "Radera fil?" + "Laddar in filer…" + "Läser in media…" + "Filer" + "Media" + "Bilder och videor som laddas upp till detta rum kommer att visas här." + "Ingen media uppladdad ännu" + "Media och filer" + "Filformat" + "Filnamn" + "Uppladdad av" + "Uppladdad på" + diff --git a/libraries/mediaviewer/impl/src/main/res/values-tr/translations.xml b/libraries/mediaviewer/impl/src/main/res/values-tr/translations.xml new file mode 100644 index 0000000000..30a1d13c4d --- /dev/null +++ b/libraries/mediaviewer/impl/src/main/res/values-tr/translations.xml @@ -0,0 +1,21 @@ + + + "Bu dosya odadan kaldırılır ve üyeler bu dosyaya erişemez." + "Dosyayı sil?" + "İnternet bağlantınızı kontrol edin ve tekrar deneyin." + "Bu odaya yüklenen belgeler, ses dosyaları ve sesli mesajlar burada gösterilecektir." + "Henüz yüklenen dosya yok" + "Dosyalar yükleniyor…" + "Medya yükleniyor…" + "Dosyalar" + "Medya" + "Bu odaya yüklenen resimler ve videolar burada gösterilecektir." + "Henüz yüklenen medya yok" + "Medya ve dosyalar" + "Dosya biçimi" + "Dosya adı" + "Gösterilecek daha fazla dosya yok" + "Gösterilecek daha fazla medya yok" + "Yükleyen:" + "Yüklendi" + diff --git a/libraries/mediaviewer/impl/src/main/res/values-uk/translations.xml b/libraries/mediaviewer/impl/src/main/res/values-uk/translations.xml index 33bb4ed210..45e1e1703b 100644 --- a/libraries/mediaviewer/impl/src/main/res/values-uk/translations.xml +++ b/libraries/mediaviewer/impl/src/main/res/values-uk/translations.xml @@ -14,8 +14,8 @@ "Медіа та файли" "Формат файлу" "Назва файлу" - "Цей файл буде вилучено з кімнати, і учасники не матимуть доступу до нього." - "Видалити файл?" + "Більше немає файлів для показу" + "Більше немає медіа для показу" "Вивантажено користувачем" "Вивантажено" diff --git a/libraries/mediaviewer/impl/src/main/res/values-zh-rTW/translations.xml b/libraries/mediaviewer/impl/src/main/res/values-zh-rTW/translations.xml index 41c4505419..9f0ec12011 100644 --- a/libraries/mediaviewer/impl/src/main/res/values-zh-rTW/translations.xml +++ b/libraries/mediaviewer/impl/src/main/res/values-zh-rTW/translations.xml @@ -14,8 +14,6 @@ "媒體與檔案" "檔案格式" "檔案名稱" - "此檔案將會從聊天室中移除,成員將無法存取該檔案。" - "刪除檔案?" "上傳者:" "上傳於" diff --git a/libraries/mediaviewer/impl/src/main/res/values-zh/translations.xml b/libraries/mediaviewer/impl/src/main/res/values-zh/translations.xml index 0a8b73eb54..08b33993dc 100644 --- a/libraries/mediaviewer/impl/src/main/res/values-zh/translations.xml +++ b/libraries/mediaviewer/impl/src/main/res/values-zh/translations.xml @@ -16,8 +16,6 @@ "文件名" "没有更多文件可显示了" "没有更多媒体可显示了" - "此文件将从房间中删除,并且成员将无法访问它。" - "删除文件?" "上传者:" "上传于" diff --git a/libraries/mediaviewer/impl/src/main/res/values/localazy.xml b/libraries/mediaviewer/impl/src/main/res/values/localazy.xml index 52a2218331..2982f8002f 100644 --- a/libraries/mediaviewer/impl/src/main/res/values/localazy.xml +++ b/libraries/mediaviewer/impl/src/main/res/values/localazy.xml @@ -16,8 +16,6 @@ "File name" "No more files to show" "No more media to show" - "This file will be removed from the room and members won’t have access to it." - "Delete file?" "Uploaded by" "Uploaded on" diff --git a/libraries/mediaviewer/impl/src/test/kotlin/io/element/android/libraries/mediaviewer/impl/datasource/DefaultFocusedTimelineMediaGalleryDataSourceFactoryTest.kt b/libraries/mediaviewer/impl/src/test/kotlin/io/element/android/libraries/mediaviewer/impl/datasource/DefaultFocusedTimelineMediaGalleryDataSourceFactoryTest.kt index a2ab9b162f..7496b01324 100644 --- a/libraries/mediaviewer/impl/src/test/kotlin/io/element/android/libraries/mediaviewer/impl/datasource/DefaultFocusedTimelineMediaGalleryDataSourceFactoryTest.kt +++ b/libraries/mediaviewer/impl/src/test/kotlin/io/element/android/libraries/mediaviewer/impl/datasource/DefaultFocusedTimelineMediaGalleryDataSourceFactoryTest.kt @@ -25,6 +25,7 @@ class DefaultFocusedTimelineMediaGalleryDataSourceFactoryTest { val result = sut.createFor( eventId = AN_EVENT_ID, mediaItem = aMediaItemImage(), + onlyPinnedEvents = false, ) assertThat(result).isInstanceOf(TimelineMediaGalleryDataSource::class.java) } diff --git a/libraries/mediaviewer/impl/src/test/kotlin/io/element/android/libraries/mediaviewer/impl/datasource/FocusedMediaTimelineTest.kt b/libraries/mediaviewer/impl/src/test/kotlin/io/element/android/libraries/mediaviewer/impl/datasource/FocusedMediaTimelineTest.kt index 1d4fd3adbe..5c46ffd910 100644 --- a/libraries/mediaviewer/impl/src/test/kotlin/io/element/android/libraries/mediaviewer/impl/datasource/FocusedMediaTimelineTest.kt +++ b/libraries/mediaviewer/impl/src/test/kotlin/io/element/android/libraries/mediaviewer/impl/datasource/FocusedMediaTimelineTest.kt @@ -9,6 +9,7 @@ package io.element.android.libraries.mediaviewer.impl.datasource import com.google.common.truth.Truth.assertThat import io.element.android.libraries.matrix.api.core.EventId +import io.element.android.libraries.matrix.api.room.CreateTimelineParams import io.element.android.libraries.matrix.api.room.MatrixRoom import io.element.android.libraries.matrix.api.timeline.Timeline import io.element.android.libraries.matrix.test.AN_EVENT_ID @@ -75,11 +76,11 @@ class FocusedMediaTimelineTest { @Test fun `getTimeline returns the timeline provided by the room`() = runTest { - val mediaTimelineResult = lambdaRecorder> { + val createTimelineResult = lambdaRecorder> { Result.success(FakeTimeline()) } val room = FakeMatrixRoom( - mediaTimelineResult = mediaTimelineResult, + createTimelineResult = createTimelineResult, ) val sut = createFocusedMediaTimeline( room = room, @@ -87,16 +88,36 @@ class FocusedMediaTimelineTest { ) val timeline = sut.getTimeline() assertThat(timeline.isSuccess).isTrue() - mediaTimelineResult.assertions().isCalledOnce().with(value(AN_EVENT_ID)) + createTimelineResult.assertions().isCalledOnce().with(value(CreateTimelineParams.MediaOnlyFocused(AN_EVENT_ID))) + } + + @Test + fun `getTimeline returns the timeline provided by the room for pinned Events`() = runTest { + val createTimelineResult = lambdaRecorder> { + Result.success(FakeTimeline()) + } + val room = FakeMatrixRoom( + createTimelineResult = createTimelineResult, + ) + val sut = createFocusedMediaTimeline( + room = room, + eventId = AN_EVENT_ID, + onlyPinnedEvent = true, + ) + val timeline = sut.getTimeline() + assertThat(timeline.isSuccess).isTrue() + createTimelineResult.assertions().isCalledOnce().with(value(CreateTimelineParams.PinnedOnly)) } private fun createFocusedMediaTimeline( room: MatrixRoom = FakeMatrixRoom(), eventId: EventId = AN_EVENT_ID, initialMediaItem: MediaItem.Event = aMediaItemImage(), + onlyPinnedEvent: Boolean = false, ) = FocusedMediaTimeline( room = room, eventId = eventId, initialMediaItem = initialMediaItem, + onlyPinnedEvents = onlyPinnedEvent, ) } diff --git a/libraries/mediaviewer/impl/src/test/kotlin/io/element/android/libraries/mediaviewer/impl/datasource/LiveMediaTimelineTest.kt b/libraries/mediaviewer/impl/src/test/kotlin/io/element/android/libraries/mediaviewer/impl/datasource/LiveMediaTimelineTest.kt index 95b62a5824..839f8798d2 100644 --- a/libraries/mediaviewer/impl/src/test/kotlin/io/element/android/libraries/mediaviewer/impl/datasource/LiveMediaTimelineTest.kt +++ b/libraries/mediaviewer/impl/src/test/kotlin/io/element/android/libraries/mediaviewer/impl/datasource/LiveMediaTimelineTest.kt @@ -8,7 +8,7 @@ package io.element.android.libraries.mediaviewer.impl.datasource import com.google.common.truth.Truth.assertThat -import io.element.android.libraries.matrix.api.core.EventId +import io.element.android.libraries.matrix.api.room.CreateTimelineParams import io.element.android.libraries.matrix.api.room.MatrixRoom import io.element.android.libraries.matrix.api.timeline.Timeline import io.element.android.libraries.matrix.test.room.FakeMatrixRoom @@ -28,22 +28,22 @@ class LiveMediaTimelineTest { @Test fun `getTimeline returns the timeline provided by the room, then from cache`() = runTest { - val mediaTimelineResult = lambdaRecorder> { + val createTimelineResult = lambdaRecorder> { Result.success(FakeTimeline()) } val room = FakeMatrixRoom( - mediaTimelineResult = mediaTimelineResult, + createTimelineResult = createTimelineResult, ) val sut = createLiveMediaTimeline( room = room, ) val timeline = sut.getTimeline() assertThat(timeline.isSuccess).isTrue() - mediaTimelineResult.assertions().isCalledOnce().with(value(null)) + createTimelineResult.assertions().isCalledOnce().with(value(CreateTimelineParams.MediaOnly)) val timeline2 = sut.getTimeline() assertThat(timeline2.isSuccess).isTrue() // No called another time - mediaTimelineResult.assertions().isCalledOnce() + createTimelineResult.assertions().isCalledOnce() } private fun createLiveMediaTimeline( diff --git a/libraries/mediaviewer/impl/src/test/kotlin/io/element/android/libraries/mediaviewer/impl/datasource/TimelineMediaGalleryDataSourceTest.kt b/libraries/mediaviewer/impl/src/test/kotlin/io/element/android/libraries/mediaviewer/impl/datasource/TimelineMediaGalleryDataSourceTest.kt index 736fd309f3..8e673ce7aa 100644 --- a/libraries/mediaviewer/impl/src/test/kotlin/io/element/android/libraries/mediaviewer/impl/datasource/TimelineMediaGalleryDataSourceTest.kt +++ b/libraries/mediaviewer/impl/src/test/kotlin/io/element/android/libraries/mediaviewer/impl/datasource/TimelineMediaGalleryDataSourceTest.kt @@ -57,7 +57,7 @@ class TimelineMediaGalleryDataSourceTest { val fakeTimeline = FakeTimeline() val sut = createTimelineMediaGalleryDataSource( room = FakeMatrixRoom( - mediaTimelineResult = { Result.success(fakeTimeline) }, + createTimelineResult = { Result.success(fakeTimeline) }, roomCoroutineScope = backgroundScope, ) ) @@ -75,7 +75,7 @@ class TimelineMediaGalleryDataSourceTest { runTest { val sut = createTimelineMediaGalleryDataSource( room = FakeMatrixRoom( - mediaTimelineResult = { Result.success(fakeTimeline) }, + createTimelineResult = { Result.success(fakeTimeline) }, roomCoroutineScope = backgroundScope, ) ) @@ -112,7 +112,7 @@ class TimelineMediaGalleryDataSourceTest { } val sut = createTimelineMediaGalleryDataSource( room = FakeMatrixRoom( - mediaTimelineResult = { Result.success(fakeTimeline) }, + createTimelineResult = { Result.success(fakeTimeline) }, roomCoroutineScope = backgroundScope, ) ) @@ -135,7 +135,7 @@ class TimelineMediaGalleryDataSourceTest { } val sut = createTimelineMediaGalleryDataSource( room = FakeMatrixRoom( - mediaTimelineResult = { Result.success(fakeTimeline) }, + createTimelineResult = { Result.success(fakeTimeline) }, roomCoroutineScope = backgroundScope, ) ) @@ -154,7 +154,7 @@ class TimelineMediaGalleryDataSourceTest { fun `test - failing to load timeline should emit an error`() = runTest { val sut = createTimelineMediaGalleryDataSource( room = FakeMatrixRoom( - mediaTimelineResult = { Result.failure(AN_EXCEPTION) }, + createTimelineResult = { Result.failure(AN_EXCEPTION) }, roomCoroutineScope = backgroundScope, ) ) @@ -176,7 +176,7 @@ class TimelineMediaGalleryDataSourceTest { ) val sut = createTimelineMediaGalleryDataSource( room = FakeMatrixRoom( - mediaTimelineResult = { Result.success(fakeTimeline) }, + createTimelineResult = { Result.success(fakeTimeline) }, roomCoroutineScope = backgroundScope, ) ) diff --git a/libraries/mediaviewer/impl/src/test/kotlin/io/element/android/libraries/mediaviewer/impl/gallery/MediaGalleryPresenterTest.kt b/libraries/mediaviewer/impl/src/test/kotlin/io/element/android/libraries/mediaviewer/impl/gallery/MediaGalleryPresenterTest.kt index 1a43bbacf6..81e270a09f 100644 --- a/libraries/mediaviewer/impl/src/test/kotlin/io/element/android/libraries/mediaviewer/impl/gallery/MediaGalleryPresenterTest.kt +++ b/libraries/mediaviewer/impl/src/test/kotlin/io/element/android/libraries/mediaviewer/impl/gallery/MediaGalleryPresenterTest.kt @@ -52,7 +52,7 @@ class MediaGalleryPresenterTest { ), room = FakeMatrixRoom( displayName = A_ROOM_NAME, - mediaTimelineResult = { Result.success(FakeTimeline()) }, + createTimelineResult = { Result.success(FakeTimeline()) }, ) ) presenter.test { @@ -71,7 +71,7 @@ class MediaGalleryPresenterTest { val presenter = createMediaGalleryPresenter( room = FakeMatrixRoom( displayName = A_ROOM_NAME, - mediaTimelineResult = { Result.success(FakeTimeline()) }, + createTimelineResult = { Result.success(FakeTimeline()) }, ) ) presenter.test { @@ -101,7 +101,7 @@ class MediaGalleryPresenterTest { room = FakeMatrixRoom( sessionId = A_USER_ID, displayName = A_ROOM_NAME, - mediaTimelineResult = { Result.success(FakeTimeline()) }, + createTimelineResult = { Result.success(FakeTimeline()) }, canRedactOwnResult = { Result.success(canDeleteOwn) } ) ) @@ -144,7 +144,7 @@ class MediaGalleryPresenterTest { room = FakeMatrixRoom( sessionId = A_USER_ID, displayName = A_ROOM_NAME, - mediaTimelineResult = { Result.success(FakeTimeline()) }, + createTimelineResult = { Result.success(FakeTimeline()) }, canRedactOtherResult = { Result.success(canDeleteOther) } ) ) @@ -177,7 +177,7 @@ class MediaGalleryPresenterTest { val presenter = createMediaGalleryPresenter( room = FakeMatrixRoom( displayName = A_ROOM_NAME, - mediaTimelineResult = { Result.success(FakeTimeline()) }, + createTimelineResult = { Result.success(FakeTimeline()) }, ) ) presenter.test { @@ -244,7 +244,7 @@ class MediaGalleryPresenterTest { ) val presenter = createMediaGalleryPresenter( room = FakeMatrixRoom( - mediaTimelineResult = { Result.success(FakeTimeline()) }, + createTimelineResult = { Result.success(FakeTimeline()) }, ), navigator = navigator, ) diff --git a/libraries/mediaviewer/impl/src/test/kotlin/io/element/android/libraries/mediaviewer/impl/viewer/MediaViewerDataSourceTest.kt b/libraries/mediaviewer/impl/src/test/kotlin/io/element/android/libraries/mediaviewer/impl/viewer/MediaViewerDataSourceTest.kt index b49c174d21..6eced261b1 100644 --- a/libraries/mediaviewer/impl/src/test/kotlin/io/element/android/libraries/mediaviewer/impl/viewer/MediaViewerDataSourceTest.kt +++ b/libraries/mediaviewer/impl/src/test/kotlin/io/element/android/libraries/mediaviewer/impl/viewer/MediaViewerDataSourceTest.kt @@ -137,7 +137,7 @@ class MediaViewerDataSourceTest { fun `test dataFlow with data galleryMode image`() = runTest { val galleryDataSource = FakeMediaGalleryDataSource() val sut = createMediaViewerDataSource( - mode = MediaViewerMode.TimelineImagesAndVideos, + mode = MediaViewerMode.TimelineImagesAndVideos(timelineMode = Timeline.Mode.MEDIA), galleryDataSource = galleryDataSource, ) sut.dataFlow().test { @@ -159,7 +159,7 @@ class MediaViewerDataSourceTest { fun `test dataFlow with data galleryMode files`() = runTest { val galleryDataSource = FakeMediaGalleryDataSource() val sut = createMediaViewerDataSource( - mode = MediaViewerMode.TimelineFilesAndAudios, + mode = MediaViewerMode.TimelineFilesAndAudios(timelineMode = Timeline.Mode.MEDIA), galleryDataSource = galleryDataSource, ) sut.dataFlow().test { @@ -265,7 +265,7 @@ class MediaViewerDataSourceTest { } private fun TestScope.createMediaViewerDataSource( - mode: MediaViewerMode = MediaViewerMode.TimelineImagesAndVideos, + mode: MediaViewerMode = MediaViewerMode.TimelineImagesAndVideos(timelineMode = Timeline.Mode.MEDIA), galleryDataSource: MediaGalleryDataSource = FakeMediaGalleryDataSource(), mediaLoader: MatrixMediaLoader = FakeMatrixMediaLoader(), localMediaFactory: LocalMediaFactory = FakeLocalMediaFactory(mockMediaUrl), diff --git a/libraries/mediaviewer/impl/src/test/kotlin/io/element/android/libraries/mediaviewer/impl/viewer/MediaViewerPresenterTest.kt b/libraries/mediaviewer/impl/src/test/kotlin/io/element/android/libraries/mediaviewer/impl/viewer/MediaViewerPresenterTest.kt index 03d66992bf..06418da15e 100644 --- a/libraries/mediaviewer/impl/src/test/kotlin/io/element/android/libraries/mediaviewer/impl/viewer/MediaViewerPresenterTest.kt +++ b/libraries/mediaviewer/impl/src/test/kotlin/io/element/android/libraries/mediaviewer/impl/viewer/MediaViewerPresenterTest.kt @@ -519,7 +519,7 @@ class MediaViewerPresenterTest { @Test fun `present - snackbar displayed when there is no more items forward images and videos`() { `present - snackbar displayed when there is no more items forward`( - mode = MediaViewerEntryPoint.MediaViewerMode.TimelineImagesAndVideos, + mode = MediaViewerEntryPoint.MediaViewerMode.TimelineImagesAndVideos(timelineMode = Timeline.Mode.MEDIA), expectedSnackbarResId = R.string.screen_media_details_no_more_media_to_show, ) } @@ -527,7 +527,7 @@ class MediaViewerPresenterTest { @Test fun `present - snackbar displayed when there is no more items forward files and audio`() { `present - snackbar displayed when there is no more items forward`( - mode = MediaViewerEntryPoint.MediaViewerMode.TimelineFilesAndAudios, + mode = MediaViewerEntryPoint.MediaViewerMode.TimelineFilesAndAudios(timelineMode = Timeline.Mode.MEDIA), expectedSnackbarResId = R.string.screen_media_details_no_more_files_to_show, ) } @@ -547,7 +547,7 @@ class MediaViewerPresenterTest { awaitFirstItem() mediaGalleryDataSource.emitGroupedMediaItems( AsyncData.Success( - if (mode == MediaViewerEntryPoint.MediaViewerMode.TimelineFilesAndAudios) { + if (mode is MediaViewerEntryPoint.MediaViewerMode.TimelineFilesAndAudios) { GroupedMediaItems( imageAndVideoItems = persistentListOf(), fileItems = persistentListOf(aForwardLoadingIndicator, anImage, aBackwardLoadingIndicator), @@ -568,7 +568,7 @@ class MediaViewerPresenterTest { // data source claims that there is no more items to load forward mediaGalleryDataSource.emitGroupedMediaItems( AsyncData.Success( - if (mode == MediaViewerEntryPoint.MediaViewerMode.TimelineFilesAndAudios) { + if (mode is MediaViewerEntryPoint.MediaViewerMode.TimelineFilesAndAudios) { GroupedMediaItems( imageAndVideoItems = persistentListOf(), fileItems = persistentListOf(anImage, aBackwardLoadingIndicator), @@ -590,7 +590,7 @@ class MediaViewerPresenterTest { @Test fun `present - snackbar displayed when there is no more items backward images and videos`() { `present - snackbar displayed when there is no more items backward`( - mode = MediaViewerEntryPoint.MediaViewerMode.TimelineImagesAndVideos, + mode = MediaViewerEntryPoint.MediaViewerMode.TimelineImagesAndVideos(timelineMode = Timeline.Mode.MEDIA), expectedSnackbarResId = R.string.screen_media_details_no_more_media_to_show, ) } @@ -598,7 +598,7 @@ class MediaViewerPresenterTest { @Test fun `present - snackbar displayed when there is no more items backward files and audio`() { `present - snackbar displayed when there is no more items backward`( - mode = MediaViewerEntryPoint.MediaViewerMode.TimelineFilesAndAudios, + mode = MediaViewerEntryPoint.MediaViewerMode.TimelineFilesAndAudios(timelineMode = Timeline.Mode.MEDIA), expectedSnackbarResId = R.string.screen_media_details_no_more_files_to_show, ) } @@ -618,7 +618,7 @@ class MediaViewerPresenterTest { awaitFirstItem() mediaGalleryDataSource.emitGroupedMediaItems( AsyncData.Success( - if (mode == MediaViewerEntryPoint.MediaViewerMode.TimelineFilesAndAudios) { + if (mode is MediaViewerEntryPoint.MediaViewerMode.TimelineFilesAndAudios) { GroupedMediaItems( imageAndVideoItems = persistentListOf(), fileItems = persistentListOf(aForwardLoadingIndicator, anImage, aBackwardLoadingIndicator), @@ -640,7 +640,7 @@ class MediaViewerPresenterTest { // data source claims that there is no more items to load backward mediaGalleryDataSource.emitGroupedMediaItems( AsyncData.Success( - if (mode == MediaViewerEntryPoint.MediaViewerMode.TimelineFilesAndAudios) { + if (mode is MediaViewerEntryPoint.MediaViewerMode.TimelineFilesAndAudios) { GroupedMediaItems( imageAndVideoItems = persistentListOf(), fileItems = persistentListOf(aForwardLoadingIndicator, anImage), diff --git a/libraries/permissions/api/src/main/res/values-tr/translations.xml b/libraries/permissions/api/src/main/res/values-tr/translations.xml new file mode 100644 index 0000000000..20451d91cf --- /dev/null +++ b/libraries/permissions/api/src/main/res/values-tr/translations.xml @@ -0,0 +1,7 @@ + + + "Uygulamanın kamerayı kullanmasına izin vermek için lütfen sistem ayarlarından izin verin." + "Lütfen sistem ayarlarından izin verin." + "Uygulamanın mikrofonu kullanmasına izin vermek için lütfen sistem ayarlarından izin verin." + "Uygulamanın bildirimleri görüntülemesine izin vermek için lütfen sistem ayarlarından izin verin." + diff --git a/libraries/permissions/impl/src/main/res/values-tr/translations.xml b/libraries/permissions/impl/src/main/res/values-tr/translations.xml new file mode 100644 index 0000000000..84407bc030 --- /dev/null +++ b/libraries/permissions/impl/src/main/res/values-tr/translations.xml @@ -0,0 +1,5 @@ + + + "Uygulamanın bildirimleri gösterebildiğini kontrol edin." + "İzinleri kontrol et" + diff --git a/libraries/preferences/api/src/main/kotlin/io/element/android/libraries/preferences/api/store/AppPreferencesStore.kt b/libraries/preferences/api/src/main/kotlin/io/element/android/libraries/preferences/api/store/AppPreferencesStore.kt index 865e2992d2..537c8d6040 100644 --- a/libraries/preferences/api/src/main/kotlin/io/element/android/libraries/preferences/api/store/AppPreferencesStore.kt +++ b/libraries/preferences/api/src/main/kotlin/io/element/android/libraries/preferences/api/store/AppPreferencesStore.kt @@ -20,9 +20,6 @@ interface AppPreferencesStore { suspend fun setTheme(theme: String) fun getThemeFlow(): Flow - suspend fun setSimplifiedSlidingSyncEnabled(enabled: Boolean) - fun isSimplifiedSlidingSyncEnabledFlow(): Flow - suspend fun setHideImagesAndVideos(value: Boolean) fun doesHideImagesAndVideosFlow(): Flow diff --git a/libraries/preferences/api/src/main/kotlin/io/element/android/libraries/preferences/api/store/EnableNativeSlidingSyncUseCase.kt b/libraries/preferences/api/src/main/kotlin/io/element/android/libraries/preferences/api/store/EnableNativeSlidingSyncUseCase.kt deleted file mode 100644 index 851d659428..0000000000 --- a/libraries/preferences/api/src/main/kotlin/io/element/android/libraries/preferences/api/store/EnableNativeSlidingSyncUseCase.kt +++ /dev/null @@ -1,23 +0,0 @@ -/* - * Copyright 2024 New Vector 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.libraries.preferences.api.store - -import kotlinx.coroutines.CoroutineScope -import kotlinx.coroutines.launch -import javax.inject.Inject - -class EnableNativeSlidingSyncUseCase @Inject constructor( - private val appPreferencesStore: AppPreferencesStore, - private val appCoroutineScope: CoroutineScope, -) { - operator fun invoke() { - appCoroutineScope.launch { - appPreferencesStore.setSimplifiedSlidingSyncEnabled(true) - } - } -} diff --git a/libraries/preferences/api/src/test/kotlin/io/element/android/libraries/preferences/api/store/EnableNativeSlidingSyncUseCaseTest.kt b/libraries/preferences/api/src/test/kotlin/io/element/android/libraries/preferences/api/store/EnableNativeSlidingSyncUseCaseTest.kt deleted file mode 100644 index e570e7d226..0000000000 --- a/libraries/preferences/api/src/test/kotlin/io/element/android/libraries/preferences/api/store/EnableNativeSlidingSyncUseCaseTest.kt +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Copyright 2024 New Vector 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.libraries.preferences.api.store - -import com.google.common.truth.Truth.assertThat -import io.element.android.libraries.preferences.test.InMemoryAppPreferencesStore -import kotlinx.coroutines.ExperimentalCoroutinesApi -import kotlinx.coroutines.flow.first -import kotlinx.coroutines.test.advanceUntilIdle -import kotlinx.coroutines.test.runTest -import org.junit.Test - -class EnableNativeSlidingSyncUseCaseTest { - @OptIn(ExperimentalCoroutinesApi::class) - @Test - fun `ensure that the use case sets the simplified sliding sync enabled flag`() = runTest { - val preferencesStore = InMemoryAppPreferencesStore() - val useCase = EnableNativeSlidingSyncUseCase(preferencesStore, this) - assertThat(preferencesStore.isSimplifiedSlidingSyncEnabledFlow().first()).isFalse() - - useCase() - advanceUntilIdle() - - assertThat(preferencesStore.isSimplifiedSlidingSyncEnabledFlow().first()).isTrue() - } -} diff --git a/libraries/preferences/impl/src/main/kotlin/io/element/android/libraries/preferences/impl/store/DefaultAppPreferencesStore.kt b/libraries/preferences/impl/src/main/kotlin/io/element/android/libraries/preferences/impl/store/DefaultAppPreferencesStore.kt index 1874b08b0e..06f4b05912 100644 --- a/libraries/preferences/impl/src/main/kotlin/io/element/android/libraries/preferences/impl/store/DefaultAppPreferencesStore.kt +++ b/libraries/preferences/impl/src/main/kotlin/io/element/android/libraries/preferences/impl/store/DefaultAppPreferencesStore.kt @@ -30,7 +30,6 @@ private val Context.dataStore: DataStore by preferencesDataStore(na private val developerModeKey = booleanPreferencesKey("developerMode") private val customElementCallBaseUrlKey = stringPreferencesKey("elementCallBaseUrl") private val themeKey = stringPreferencesKey("theme") -private val simplifiedSlidingSyncKey = booleanPreferencesKey("useSimplifiedSlidingSync") private val hideImagesAndVideosKey = booleanPreferencesKey("hideImagesAndVideos") private val logLevelKey = stringPreferencesKey("logLevel") @@ -82,18 +81,6 @@ class DefaultAppPreferencesStore @Inject constructor( } } - override suspend fun setSimplifiedSlidingSyncEnabled(enabled: Boolean) { - store.edit { prefs -> - prefs[simplifiedSlidingSyncKey] = enabled - } - } - - override fun isSimplifiedSlidingSyncEnabledFlow(): Flow { - return store.data.map { prefs -> - prefs[simplifiedSlidingSyncKey] ?: true - } - } - override suspend fun setHideImagesAndVideos(value: Boolean) { store.edit { prefs -> prefs[hideImagesAndVideosKey] = value diff --git a/libraries/preferences/test/src/main/kotlin/io/element/android/libraries/preferences/test/InMemoryAppPreferencesStore.kt b/libraries/preferences/test/src/main/kotlin/io/element/android/libraries/preferences/test/InMemoryAppPreferencesStore.kt index 3191b22073..1a332b42aa 100644 --- a/libraries/preferences/test/src/main/kotlin/io/element/android/libraries/preferences/test/InMemoryAppPreferencesStore.kt +++ b/libraries/preferences/test/src/main/kotlin/io/element/android/libraries/preferences/test/InMemoryAppPreferencesStore.kt @@ -51,14 +51,6 @@ class InMemoryAppPreferencesStore( return theme } - override suspend fun setSimplifiedSlidingSyncEnabled(enabled: Boolean) { - simplifiedSlidingSyncEnabled.value = enabled - } - - override fun isSimplifiedSlidingSyncEnabledFlow(): Flow { - return simplifiedSlidingSyncEnabled - } - override suspend fun setHideImagesAndVideos(value: Boolean) { hideImagesAndVideos.value = value } diff --git a/libraries/push/impl/src/main/res/values-cs/translations.xml b/libraries/push/impl/src/main/res/values-cs/translations.xml index 15a5d22de9..cc31275783 100644 --- a/libraries/push/impl/src/main/res/values-cs/translations.xml +++ b/libraries/push/impl/src/main/res/values-cs/translations.xml @@ -16,7 +16,7 @@ "%d oznámení" "Oznámení" - "Příchozí hovor" + "📹 Příchozí hovor" "** Nepodařilo se odeslat - otevřete prosím místnost" "Vstoupit" "Odmítnout" diff --git a/libraries/push/impl/src/main/res/values-fi/translations.xml b/libraries/push/impl/src/main/res/values-fi/translations.xml index 61c0890fd3..dab7f15fc0 100644 --- a/libraries/push/impl/src/main/res/values-fi/translations.xml +++ b/libraries/push/impl/src/main/res/values-fi/translations.xml @@ -14,7 +14,7 @@ "%d ilmoitusta" "Ilmoitus" - "Saapuva puhelu" + "📹 Saapuva puhelu" "** Lähetys epäonnistui - avaa huone" "Liity" "Hylkää" diff --git a/libraries/push/impl/src/main/res/values-fr/translations.xml b/libraries/push/impl/src/main/res/values-fr/translations.xml index eb386ed459..a198daec64 100644 --- a/libraries/push/impl/src/main/res/values-fr/translations.xml +++ b/libraries/push/impl/src/main/res/values-fr/translations.xml @@ -14,7 +14,7 @@ "%d notifications" "Notification" - "Appel entrant" + "📹 Appel entrant" "** Échec de l’envoi - veuillez ouvrir le salon" "Rejoindre" "Rejeter" diff --git a/libraries/push/impl/src/main/res/values-pl/translations.xml b/libraries/push/impl/src/main/res/values-pl/translations.xml index 1cd641e6f2..ee79042700 100644 --- a/libraries/push/impl/src/main/res/values-pl/translations.xml +++ b/libraries/push/impl/src/main/res/values-pl/translations.xml @@ -16,7 +16,7 @@ "%d powiadomień" "Powiadomienie" - "Przychodzące połączenie" + "📹 Połączenie przychodzące" "** Nie udało się wysłać - proszę otworzyć pokój" "Dołącz" "Odrzuć" diff --git a/libraries/push/impl/src/main/res/values-pt/translations.xml b/libraries/push/impl/src/main/res/values-pt/translations.xml index 49fa827131..24ddc2f216 100644 --- a/libraries/push/impl/src/main/res/values-pt/translations.xml +++ b/libraries/push/impl/src/main/res/values-pt/translations.xml @@ -14,7 +14,7 @@ "%d notificações" "Notificação" - "Chamada recebida" + "📹 A receber chamada" "** Falha no envio - por favor abre a sala" "Entrar" "Rejeitar" diff --git a/libraries/push/impl/src/main/res/values-ru/translations.xml b/libraries/push/impl/src/main/res/values-ru/translations.xml index 0387c42f2d..5b7167a787 100644 --- a/libraries/push/impl/src/main/res/values-ru/translations.xml +++ b/libraries/push/impl/src/main/res/values-ru/translations.xml @@ -16,7 +16,7 @@ "%d уведомлений" "Уведомление" - "Входящий вызов" + "📹 Входящий вызов" "** Не удалось отправить - пожалуйста, откройте комнату" "Присоединиться" "Отклонить" diff --git a/libraries/push/impl/src/main/res/values-sv/translations.xml b/libraries/push/impl/src/main/res/values-sv/translations.xml index d9c096af3d..f0ed754732 100644 --- a/libraries/push/impl/src/main/res/values-sv/translations.xml +++ b/libraries/push/impl/src/main/res/values-sv/translations.xml @@ -14,7 +14,7 @@ "%d aviseringar" "notis" - "Inkommande samtal" + "📹 Inkommande samtal" "** Misslyckades att skicka - vänligen öppna rummet" "Gå med" "Avvisa" diff --git a/libraries/push/impl/src/main/res/values-tr/translations.xml b/libraries/push/impl/src/main/res/values-tr/translations.xml new file mode 100644 index 0000000000..06f21783be --- /dev/null +++ b/libraries/push/impl/src/main/res/values-tr/translations.xml @@ -0,0 +1,81 @@ + + + "Çağrı" + "Etkinlikleri dinlemek" + "Gürültülü bildirimler" + "Çalan aramalar" + "Sessiz bildirimler" + + "%1$s: %2$d mesaj" + "%1$s: %2$d mesaj" + + + "%d bildirim" + "%d bildirim" + + "Bildirim" + "📹 Gelen çağrı" + "** Gönderilemedi - lütfen odayı açın" + "Katıl" + "Reddet" + + "%d davet" + "%d davet" + + "Sizi sohbete davet etti" + "%1$s sizi sohbete davet etti" + "Senden bahsettim: %1$s" + "Yeni Mesajlar" + + "%d yeni mesaj" + "%d yeni mesaj" + + "%1$s ile tepki verildi" + "Okundu olarak işaretle" + "Hızlı cevap" + "Sizi odaya katılmaya davet etti" + "%1$s sizi odaya katılmaya davet etti" + "Ben" + "%1$s belirtildi veya yanıtlandı" + "Bildirimi görüntülüyorsunuz! Beni tıklayın!" + "%1$s: %2$s" + "%1$s: %2$s %3$s" + + "%d okunmamış mesaj bildirimi" + "%d okunmamış mesaj bildirimi" + + "%1$s ve %2$s" + "%1$s içinde %2$s" + "%1$s içinde %2$s ve %3$s" + + "%d oda" + "%d oda" + + "Arkaplan senkronizasyonu" + "Google Hizmetleri" + "Geçerli bir Google Play Hizmeti bulunamadı. Bildirimler düzgün çalışmayabilir." + "Geçerli sağlayıcının adını al." + "Hiçbir gönderme sağlayıcısı seçilmedi." + "Geçerli gönderme sağlayıcısı: %1$s." + "Geçerli gönderme sağlayıcısı" + "Uygulamanın en az bir gönderme sağlayıcısına sahip olduğundan emin olun." + "Gönderim sağlayıcısı bulunamadı." + + "%1$d gönderme sağlayıcısı bulundu: %2$s" + "%1$d gönderme sağlayıcısı bulundu: %2$s" + + "Gönderme sağlayıcılarını tespit et" + "Uygulamanın bildirim görüntüleyebildiğini kontrol edin." + "Bildirime tıklanmadı." + "Bildirim görüntülenemiyor." + "Bildirime tıklandı!" + "Bildirimi görüntüle" + "Teste devam etmek için lütfen bildirime tıklayın." + "Uygulamanın push aldığından emin olun." + "Hata: itici isteği reddetti." + "Hata: %1$s." + "Hata, itme test edilemiyor." + "Hata, push beklenirken zaman aşımı oluştu." + "Geri itme döngüsü %1$d ms sürdü." + "Test Geri İtme döngüsü" + diff --git a/libraries/push/impl/src/main/res/values-uk/translations.xml b/libraries/push/impl/src/main/res/values-uk/translations.xml index 71e8f14d61..22f3b6e2ec 100644 --- a/libraries/push/impl/src/main/res/values-uk/translations.xml +++ b/libraries/push/impl/src/main/res/values-uk/translations.xml @@ -16,7 +16,7 @@ "%d сповіщень" "Сповіщення" - "Вхідний виклик" + "📹 Вхідний виклик" "** Не вдалося надіслати - відкрийте кімнату" "Доєднатися" "Відхилити" diff --git a/libraries/pushproviders/firebase/src/main/res/values-tr/translations.xml b/libraries/pushproviders/firebase/src/main/res/values-tr/translations.xml new file mode 100644 index 0000000000..af9b7c2318 --- /dev/null +++ b/libraries/pushproviders/firebase/src/main/res/values-tr/translations.xml @@ -0,0 +1,11 @@ + + + "Firebase\'in kullanılabilir olduğundan emin olun." + "Firebase kullanılamıyor." + "Firebase kullanılabilir." + "Firebase\'i kontrol et" + "Firebase belirtecinin mevcut olduğundan emin olun." + "Firebase belirteci bilinmiyor." + "Firebase belirteci: %1$s." + "Firebase jetonunu kontrol edin" + diff --git a/libraries/pushproviders/unifiedpush/src/main/res/values-tr/translations.xml b/libraries/pushproviders/unifiedpush/src/main/res/values-tr/translations.xml new file mode 100644 index 0000000000..5fee0a6938 --- /dev/null +++ b/libraries/pushproviders/unifiedpush/src/main/res/values-tr/translations.xml @@ -0,0 +1,10 @@ + + + "UnifiedPush distribütörlerinin mevcut olduğundan emin olun." + "İtme dağıtıcı bulunamadı." + + "%1$d dağıtıcı bulundu: %2$s." + "%1$d dağıtıcı bulundu: %2$s." + + "UnifiedPush\'u kontrol edin" + diff --git a/libraries/textcomposer/impl/src/main/res/values-hu/translations.xml b/libraries/textcomposer/impl/src/main/res/values-hu/translations.xml index 0353dca419..2b61cbd50f 100644 --- a/libraries/textcomposer/impl/src/main/res/values-hu/translations.xml +++ b/libraries/textcomposer/impl/src/main/res/values-hu/translations.xml @@ -4,7 +4,7 @@ "Felsorolás be/ki" "Formázási beállítások bezárása" "Kódblokk be/ki" - "Nem kötelező felirat…" + "Felirat hozzáadása…" "Üzenet…" "Hivatkozás létrehozása" "Hivatkozás szerkesztése" diff --git a/libraries/textcomposer/impl/src/main/res/values-nb/translations.xml b/libraries/textcomposer/impl/src/main/res/values-nb/translations.xml index 4dcab4e755..90601b710d 100644 --- a/libraries/textcomposer/impl/src/main/res/values-nb/translations.xml +++ b/libraries/textcomposer/impl/src/main/res/values-nb/translations.xml @@ -1,5 +1,7 @@ + "Aktiver/deaktiver punktliste" + "Aktiver kodeblokk" "Melding…" "Opprett en lenke" "Rediger lenke" @@ -10,6 +12,8 @@ "Innrykk" "Bruk inline-kodeformat" "Angi lenke" + "Aktiver/deaktiver nummerert liste" + "Slå på sitat" "Fjern lenke" "Fjern innrykk" "Lenke" diff --git a/libraries/textcomposer/impl/src/main/res/values-sv/translations.xml b/libraries/textcomposer/impl/src/main/res/values-sv/translations.xml index 02f5ede9f5..ca402f750b 100644 --- a/libraries/textcomposer/impl/src/main/res/values-sv/translations.xml +++ b/libraries/textcomposer/impl/src/main/res/values-sv/translations.xml @@ -4,6 +4,7 @@ "Växla punktlista" "Stäng formateringsalternativ" "Växla kodblock" + "Lägg till en bildtext" "Meddelande …" "Skapa en länk" "Redigera länk" diff --git a/libraries/textcomposer/impl/src/main/res/values-tr/translations.xml b/libraries/textcomposer/impl/src/main/res/values-tr/translations.xml new file mode 100644 index 0000000000..95796c5174 --- /dev/null +++ b/libraries/textcomposer/impl/src/main/res/values-tr/translations.xml @@ -0,0 +1,26 @@ + + + "Ek ekle" + "Madde işaretli listeyi aç/kapat" + "Biçimlendirme seçeneklerini kapat" + "Kod Bloğunu Aç/Kapat" + "Açıklama ekle" + "Mesaj…" + "Bir bağlantı oluştur" + "Bağlantıyı Düzenle" + "Kalın biçimi uygula" + "İtalik biçimi uygula" + "Üstü çizili biçimi uygula" + "Altı çizili biçimi uygula" + "Tam ekran modunu aç/kapat" + "Girinti" + "Satır içi kod biçimini uygula" + "Bağlantıyı ayarla" + "Numaralı listeyi aç/kapat" + "Oluşturma seçeneklerini aç" + "Alıntıyı Aç/Kapat" + "Bağlantıyı kaldır" + "Girintiyi kaldır" + "Bağlantı" + "Kaydetmek için basılı tut" + diff --git a/libraries/troubleshoot/impl/src/main/res/values-tr/translations.xml b/libraries/troubleshoot/impl/src/main/res/values-tr/translations.xml new file mode 100644 index 0000000000..24dba503e1 --- /dev/null +++ b/libraries/troubleshoot/impl/src/main/res/values-tr/translations.xml @@ -0,0 +1,11 @@ + + + "Testleri çalıştır" + "Testleri yeniden çalıştır" + "Bazı testler başarısız oldu. Lütfen ayrıntıları kontrol edin." + "Yapılandırmanızda bildirimlerin beklendiği gibi davranmamasına neden olabilecek herhangi bir sorunu algılamak için testleri çalıştırın." + "Düzeltmeye çalışın" + "Tüm testler başarıyla geçti." + "Sorun Giderme Bildirimleri" + "Bazı testlere bakmanız gerekiyor. Lütfen ayrıntıları kontrol edin." + diff --git a/libraries/ui-strings/src/main/res/values-be/translations.xml b/libraries/ui-strings/src/main/res/values-be/translations.xml index fbea21c512..08b0fcf858 100644 --- a/libraries/ui-strings/src/main/res/values-be/translations.xml +++ b/libraries/ui-strings/src/main/res/values-be/translations.xml @@ -122,6 +122,8 @@ "Прагляд у хроніцы" "Прагляд зыходнага кода" "Так" + "Ваш сервер зараз падтрымлівае новы, хутчэйшы пратакол. Выйдзіце з сістэмы і зноў увайдзіце, каб абнавіць яе. Гэта дапаможа вам пазбегнуць прымусовага выхаду з сістэмы, калі стары пратакол будзе пазней выдалены." + "Даступна абнаўленне" "Аб праграме" "Палітыка дапушчальнага выкарыстання" "Пашыраныя налады" diff --git a/libraries/ui-strings/src/main/res/values-cs/translations.xml b/libraries/ui-strings/src/main/res/values-cs/translations.xml index 43806c9215..5a592a8a68 100644 --- a/libraries/ui-strings/src/main/res/values-cs/translations.xml +++ b/libraries/ui-strings/src/main/res/values-cs/translations.xml @@ -131,6 +131,8 @@ "Zobrazit zdroj" "Ano" "Ano, zkusit znovu" + "Váš server nyní podporuje nový, rychlejší protokol. Chcete-li upgradovat, odhlaste se a znovu se přihlaste. Pokud to uděláte nyní, pomůže vám vyhnout se nucenému odhlášení, když bude starý protokol později odstraněn." + "Upgrade k dispozici" "O aplikaci" "Zásady používání" "Přidání titulku" @@ -145,7 +147,7 @@ "Zkopírováno do schránky" "Autorská práva" "Vytváření místnosti…" - "Opustit místnost" + "Místnost opuštěna" "Tmavé" "Chyba dešifrování" "Možnosti pro vývojáře" @@ -196,6 +198,7 @@ Důvod: %1$s." "Zpráva byla odstraněna" "Moderní" "Ztlumit" + "%1$s (%2$s)" "Žádné výsledky" "Žádný název místnosti" "Offline" @@ -245,7 +248,7 @@ Důvod: %1$s." "Nastavení" "Sdílená poloha" "Odhlašování" - "Něco se pokazilo" + "Něco se nepovedlo" "Zahajování chatu…" "Nálepka" "Úspěch" @@ -274,6 +277,7 @@ Důvod: %1$s." "Ověřeno" "Ověřit zařízení" "Ověření totožnosti" + "Ověřit uživatele" "Video" "Hlasová zpráva" "Čekání…" @@ -300,6 +304,7 @@ Důvod: %1$s." "%1$s nemá oprávnění k přístupu k vaší poloze. Přístup můžete povolit v Nastavení." "%1$s nemá oprávnění k přístupu k vaší poloze. Povolit přístup níže." "%1$s nemá oprávnění k přístupu k mikrofonu. Povolte přístup k nahrávání hlasové zprávy." + "Může to být způsobeno problémy se sítí nebo serverem." "Tato adresa místnosti již existuje, zkuste prosím upravit pole adresy místnosti nebo změnit název místnosti" "Některé znaky nejsou povoleny. Podporovány jsou pouze písmena, číslice a následující symboly ! $ & ‘ ( ) * + / ; = ? @ [ ] - . _" "Některé zprávy nebyly odeslány" diff --git a/libraries/ui-strings/src/main/res/values-de/translations.xml b/libraries/ui-strings/src/main/res/values-de/translations.xml index d9c55b2819..6a8ecc719b 100644 --- a/libraries/ui-strings/src/main/res/values-de/translations.xml +++ b/libraries/ui-strings/src/main/res/values-de/translations.xml @@ -129,6 +129,8 @@ "Quellcode anzeigen" "Ja" "Ja, versuchen Sie es noch einmal" + "Dein Server unterstützt jetzt ein neues, schnelleres Protokoll. Melde dich ab und melde dich wieder an, um zu aktualisieren. Wenn du das jetzt tust, vermeidest du eine erzwungene Abmeldung, wenn das alte Protokoll später entfernt wird." + "Aktualisierung verfügbar" "Über" "Nutzungsrichtlinie" "Hinzufügen einer Bildunterschrift" @@ -193,6 +195,7 @@ Grund: %1$s." "Nachricht entfernt" "Modern" "Stumm" + "%1$s(%2$s)" "Keine Ergebnisse" "Kein Raumname" "Offline" @@ -270,6 +273,7 @@ Grund: %1$s." "Verifiziert" "Gerät verifizieren" "Identität überprüfen" + "Benutzer verifizieren" "Video" "Sprachnachricht" "Warten…" @@ -278,6 +282,7 @@ Grund: %1$s." "%1$s\'s Identität has sich offenbar geändert. %2$s" "%1$s\'s %2$s Identität hat sich offenbar geändert. %3$s" "(%1$s)" + "Die verifizierte Identität von %1$s hat sich geändert." "Die verifizierte Identität von %1$s\'s %2$s hat sich geändert. %3$s" "Verifizierung zurückziehen" "Bestätigung" @@ -296,6 +301,7 @@ Grund: %1$s." "%1$s hat keine Erlaubnis, auf deinen Standort zuzugreifen. Du kannst den Zugriff in den Einstellungen aktivieren." "%1$s hat keine Erlaubnis, auf deinen Standort zuzugreifen. Aktiviere unten den Zugriff." "%1$s hat nicht die Erlaubnis auf dein Mikrofon zuzugreifen. Aktiviere den Zugriff, um eine Sprachnachricht aufzunehmen." + "Dies kann auf Netzwerk- oder Serverprobleme zurückzuführen sein." "Diese Chatroomadresse existiert bereits. Bitte versuchen Sie, das Adressenfeld des Chatrooms zu bearbeiten oder den Namen des Chatrooms zu ändern" "Einige Zeichen sind nicht erlaubt. Es werden nur Buchstaben, Ziffern und die folgenden Symbole unterstützt: ! $ & ‘ ( ) * + / ; = ? @ [ ] - . _" "Einige Nachrichten wurden nicht gesendet" @@ -338,7 +344,7 @@ Grund: %1$s." "Nachricht wird geladen…" "Alle anzeigen" "Chat" - "Beitrittsanfrage gesendet" + "Beitrittsanfrage geschickt" "Standort teilen" "Meinen Standort teilen" "In Apple Maps öffnen" diff --git a/libraries/ui-strings/src/main/res/values-el/translations.xml b/libraries/ui-strings/src/main/res/values-el/translations.xml index 61e583fc1c..1b792ea712 100644 --- a/libraries/ui-strings/src/main/res/values-el/translations.xml +++ b/libraries/ui-strings/src/main/res/values-el/translations.xml @@ -127,6 +127,8 @@ "Προβολή στο χρονοδιάγραμμα" "Προβολή πηγής" "Ναι" + "Ο διακομιστής σου υποστηρίζει τώρα ένα νέο, ταχύτερο πρωτόκολλο. Αποσυνδέσου και συνδέσου ξανά για αναβάθμιση τώρα. Κάνοντας αυτό τώρα θα σε βοηθήσει να αποφύγεις μια αναγκαστική αποσύνδεση όταν το παλιό πρωτόκολλο καταργηθεί αργότερα." + "Διαθέσιμη αναβάθμιση" "Σχετικά" "Πολιτική αποδεκτής χρήσης" "Η λεζάντα προστίθεται" diff --git a/libraries/ui-strings/src/main/res/values-et/translations.xml b/libraries/ui-strings/src/main/res/values-et/translations.xml index 47b4bcae03..7ec90fda74 100644 --- a/libraries/ui-strings/src/main/res/values-et/translations.xml +++ b/libraries/ui-strings/src/main/res/values-et/translations.xml @@ -129,6 +129,8 @@ "Vaata lähtekoodi" "Jah" "Jah, proovi uuesti" + "Sinu koduserver toetab uut ja kiiremat protokolli. Uuendamiseks logi korraks rakendusest välja ja siis tagasi. Mingil hetkel tulevikus vana protokoll eemaldatakse kasutusest ja tehes uuenduse nüüd väldid hilisemat sundkorras uuendust." + "Saadaval on uuendus" "Rakenduse teave" "Vastuvõetava kasutamise põhimõtted" "Lisame selgitust" @@ -193,6 +195,7 @@ Põhjus: %1$s." "Sõnum on eemaldatud" "Kaasaegne" "Summutatud" + "%1$s (%2$s)" "Otsingul pole tulemusi" "Jututoal puudub nimi" "Võrgust väljas" @@ -270,6 +273,7 @@ Põhjus: %1$s." "Verifitseeritud" "Verifitseeri seade" "Verifitseeri võrguidentiteet" + "Verifitseeri kasutaja" "Video" "Häälsõnum" "Ootame…" @@ -278,6 +282,7 @@ Põhjus: %1$s." "Kasutaja %1$s võrguidentiteet tundub olema muutunud. %2$s" "Kasutaja %1$s %2$s võrguidentiteet tundub olema muutunud. %3$s" "(%1$s)" + "%1$s kasutaja verifitseeritud identiteet on muutunud." "%1$s kasutaja (%2$s kasutajanimi) verifitseeritud identiteet on muutunud. %3$s" "Võta verifitseerimine tagasi" "Kinnitus" @@ -296,6 +301,7 @@ Põhjus: %1$s." "Rakendusel %1$s puudub õigus sinu asukohta tuvastada. Sa saad seda lubada süsteemi seadistustest." "Rakendusel %1$s puudub õigus sinu asukohta tuvastada. Järgnevalt anna vastavad õigused." "Rakendusel %1$s puudub õigus sinu nutiseadme mikrofoni kasutada. Järgnevalt anna õigused heli salvestamiseks." + "See võib olla põhjustatud võrgu- või serverivigadest." "Selline jututoa aadress on juba olemas. Palun proovi muuta kas aadressi või jututoa nime" "Mõned tähemärgid pole lubatud. Kasuta vaid tähti, numbreid ja neid kirjavahemärke ! $ & ‘ ( ) * + / ; = ? @ [ ] - . _" "Mõned sõnumid on saatmata" @@ -338,7 +344,7 @@ Põhjus: %1$s." "Laadime sõnumit…" "Näita kõiki" "Vestlus" - "Liitumispäring on saadetud" + "Liitumispalve on saadetud" "Jaga asukohta" "Jaga minu asukohta" "Ava Apple Mapsis" diff --git a/libraries/ui-strings/src/main/res/values-fa/translations.xml b/libraries/ui-strings/src/main/res/values-fa/translations.xml index b41246e3b7..d165cc09a2 100644 --- a/libraries/ui-strings/src/main/res/values-fa/translations.xml +++ b/libraries/ui-strings/src/main/res/values-fa/translations.xml @@ -112,6 +112,7 @@ "دیدن در خط زمانی" "دیدن منبع" "بله" + "ارتقا موجود است" "درباره" "سیاست استفادهٔ پذیرفتنی" "تنظیمات پیش‌رفته" diff --git a/libraries/ui-strings/src/main/res/values-fi/translations.xml b/libraries/ui-strings/src/main/res/values-fi/translations.xml index e43d2a583f..2528bab353 100644 --- a/libraries/ui-strings/src/main/res/values-fi/translations.xml +++ b/libraries/ui-strings/src/main/res/values-fi/translations.xml @@ -129,6 +129,8 @@ "Näytä lähde" "Kyllä" "Kyllä, yritä uudelleen" + "Palvelimesi tukee nyt uutta, nopeampaa protokollaa. Kirjaudu ulos ja takaisin sisään päivittääksesi nyt. Jos teet tämän nyt, voit välttää pakotetun uloskirjautumisen, kun vanha protokolla poistetaan myöhemmin." + "Päivitys saatavilla" "Tietoa" "Hyväksyttävän käytön käytäntö" "Lisätään kuvatekstiä" diff --git a/libraries/ui-strings/src/main/res/values-fr/translations.xml b/libraries/ui-strings/src/main/res/values-fr/translations.xml index 6d3c873dce..656962e1a4 100644 --- a/libraries/ui-strings/src/main/res/values-fr/translations.xml +++ b/libraries/ui-strings/src/main/res/values-fr/translations.xml @@ -129,6 +129,8 @@ "Afficher la source" "Oui" "Oui, réessayez" + "Votre serveur prend désormais en charge un nouveau protocole plus rapide. Déconnectez-vous, puis reconnectez-vous pour effectuer la mise à niveau dès maintenant. En le faisant tout de suite, vous éviterez une déconnexion forcée lorsque l’ancien protocole sera supprimé." + "Mise à niveau disponible" "À propos" "Politique d’utilisation acceptable" "Ajout d’une légende" @@ -193,6 +195,7 @@ Raison : %1$s." "Message supprimé" "Moderne" "Mettre en sourdine" + "%1$s (%2$s)" "Aucun résultat" "Salon sans nom" "Hors ligne" @@ -270,6 +273,7 @@ Raison : %1$s." "Vérifié(e)" "Vérifier la session" "Vérifier l’identité" + "Vérifier l’utilisateur" "Vidéo" "Message vocal" "En attente…" @@ -278,6 +282,7 @@ Raison : %1$s." "L’identité de %1$s semble avoir changé. %2$s" "L’identité de %1$s %2$s semble avoir changé. %3$s" "(%1$s)" + "L’identité vérifiée de l’utilisateur %1$s a changé." "L’identité vérifiée de %1$s %2$s a changé. %3$s" "Révoquer la vérification" "Confirmation" @@ -296,6 +301,7 @@ Raison : %1$s." "%1$s n’est pas autorisé à accéder à votre position. Vous pouvez activer l’accès dans les Paramètres." "%1$s n’est pas autorisé à accéder à votre position. Activez l’accès ci-dessous." "%1$s n’a pas l’autorisation d’utiliser le microphone. Autorisez l’utilisation pour enregistrer un message vocal." + "Cela peut être dû à des problèmes de réseau ou de serveur." "Cette adresse de salon existe déjà, veuillez essayer de modifier le champ d’adresse de salon ou de modifier le nom du salon" "Certains caractères ne sont pas autorisés. Seuls les lettres, les chiffres et les symboles suivants sont utilisables ! $ & ‘ ( ) * + / ; = ? @ [ ] - . _" "Certains messages n’ont pas été envoyés" @@ -338,7 +344,7 @@ Raison : %1$s." "Chargement du message…" "Voir tout" "Discussion" - "Demande d’adhésion envoyée" + "Demande de rejoindre le salon envoyée" "Partage de position" "Partager ma position" "Ouvrir dans Apple Maps" diff --git a/libraries/ui-strings/src/main/res/values-hu/translations.xml b/libraries/ui-strings/src/main/res/values-hu/translations.xml index a74d0a2ed0..66d8f44fbb 100644 --- a/libraries/ui-strings/src/main/res/values-hu/translations.xml +++ b/libraries/ui-strings/src/main/res/values-hu/translations.xml @@ -129,6 +129,8 @@ "Forrás megtekintése" "Igen" "Igen, újrapróbálkozás" + "A kiszolgálója mostantól egy új, gyorsabb protokollt támogat. A frissítéshez jelentkezzen ki, majd jelentkezzen be újra. Ha ezt most megteszi, elkerülheti a kényszerített kijelentkeztetést a régi protokollt eltávolításakor." + "Frissítés érhető el" "Névjegy" "Elfogadható használatra vonatkozó szabályzat" "Felirat hozzáadása" @@ -193,6 +195,7 @@ Ok: %1$s." "Üzenet eltávolítva" "Modern" "Némítás" + "%1$s (%2$s)" "Nincs találat" "Nincs szobanév" "Kapcsolat nélkül" @@ -270,6 +273,7 @@ Ok: %1$s." "Ellenőrizve" "Eszköz ellenőrzése" "Személyazonosság ellenőrzése" + "Felhasználó ellenőrzése" "Videó" "Hangüzenet" "Várakozás…" @@ -278,6 +282,7 @@ Ok: %1$s." "Úgy tűnik, hogy %1$s személyazonossága megváltozott. %2$s" "Úgy tűnik, hogy %1$s %2$s személyazonossága megváltozott. %3$s" "(%1$s)" + "%1$s ellenőrzött személyazonossága megváltozott." "%1$s, %2$s ellenőrzött személyazonossága megváltozott. %3$s" "Ellenőrzés visszavonása" "Megerősítés" @@ -296,6 +301,7 @@ Ok: %1$s." "Az %1$snek nincs engedélye, hogy hozzáférjen a tartózkodási helyéhez. Ezt a beállításokban engedélyezheti." "Az %1$snek nincs engedélye, hogy hozzáférjen a tartózkodási helyéhez. Engedélyezze alább az elérését." "Az %1$snek nincs engedélye, hogy hozzáférjen a mikrofonhoz. Engedélyezze, hogy tudjon hangüzenetet felvenni." + "Ennek oka hálózati vagy kiszolgálóprobléma lehet." "Ez a szobacím már létezik. Próbálja meg szerkeszteni a szobacím mezőt, vagy módosítsa a szoba nevét." "Egyes karakterek nem engedélyezettek. Csak a betűk, a számjegyek és a következő szimbólumok támogatottak: $ & \'() * +/; =? @ [] - . _" "Néhány üzenet nem került elküldésre" diff --git a/libraries/ui-strings/src/main/res/values-in/translations.xml b/libraries/ui-strings/src/main/res/values-in/translations.xml index 5ac935b1c5..f624fd4856 100644 --- a/libraries/ui-strings/src/main/res/values-in/translations.xml +++ b/libraries/ui-strings/src/main/res/values-in/translations.xml @@ -125,6 +125,8 @@ "Lihat di lini masa" "Tampilkan sumber" "Ya" + "Server Anda kini mendukung protokol baru yang lebih cepat. Keluar dan masuk lagi untuk memperbarui sekarang. Melakukan hal ini sekarang akan membantu Anda menghindari keluar paksa saat protokol lama dihapus nantinya." + "Peningkatan tersedia" "Tentang" "Kebijakan penggunaan wajar" "Menambahkan keterangan" diff --git a/libraries/ui-strings/src/main/res/values-it/translations.xml b/libraries/ui-strings/src/main/res/values-it/translations.xml index b6803448ca..5b97172682 100644 --- a/libraries/ui-strings/src/main/res/values-it/translations.xml +++ b/libraries/ui-strings/src/main/res/values-it/translations.xml @@ -129,6 +129,8 @@ "Vedi codice sorgente" "Sì" "Sì, riprova" + "Il tuo server ora supporta un nuovo protocollo più veloce. Esci e rientra per effettuare l\'aggiornamento. Se lo fai ora, eviterai una disconnessione forzata quando il vecchio protocollo verrà rimosso in seguito." + "Aggiornamento disponibile" "Informazioni" "Regole sull\'utilizzo consentito" "Aggiunta didascalia" diff --git a/libraries/ui-strings/src/main/res/values-nb/translations.xml b/libraries/ui-strings/src/main/res/values-nb/translations.xml index 94542dfb2e..249bc39893 100644 --- a/libraries/ui-strings/src/main/res/values-nb/translations.xml +++ b/libraries/ui-strings/src/main/res/values-nb/translations.xml @@ -113,6 +113,7 @@ "Ta bilde" "Vis kilde" "Ja" + "Oppgradering tilgjengelig" "Om" "Retningslinjer for akseptabel bruk" "Legger til bildetekst" @@ -145,6 +146,7 @@ "Mislyktes" "Favoritt" "Fil" + "Fil lagret i Nedlastinger" "GIF" "Bilde" "Som svar på %1$s" @@ -220,6 +222,7 @@ "Tekst" "Tråd" "Emne" + "Hva er dette rommet for?" "Kan ikke dekryptere" "Du har ikke tilgang til denne meldingen" "Avsenderens verifiserte identitet er endret" @@ -254,6 +257,10 @@ "🔐️ Bli med meg på %1$s" "Hei, snakk med meg på %1$s: %2$s" "%1$s Android" + "Kunne ikke velge medium, prøv igjen." + "Kunne ikke behandle media for opplasting, vennligst prøv igjen." + "Opplasting av media mislyktes, vennligst prøv igjen." + "Kunne ikke behandle media for opplasting, vennligst prøv igjen." "Kunne ikke hente brukerdetaljer" "Åpne i Apple Maps" "Åpne i Google Maps" diff --git a/libraries/ui-strings/src/main/res/values-nl/translations.xml b/libraries/ui-strings/src/main/res/values-nl/translations.xml index b9a672e706..6a967ab1f7 100644 --- a/libraries/ui-strings/src/main/res/values-nl/translations.xml +++ b/libraries/ui-strings/src/main/res/values-nl/translations.xml @@ -120,6 +120,8 @@ "Bekijk in tijdlijn" "Bron weergeven" "Ja" + "Je server ondersteunt nu een nieuw, sneller protocol. Log uit en log opnieuw in om nu te upgraden. Als je dit nu doet, voorkom je dat je geforceerd uitlogt wordt wanneer het oude protocol later wordt verwijderd." + "Upgrade beschikbaar" "Over" "Beleid inzake redelijk gebruik" "Geavanceerde instellingen" @@ -309,6 +311,7 @@ Reden: %1$s." "Bericht laden…" "Bekijk alles" "Chat" + "Verzoek om toe te treden verzonden" "Locatie delen" "Deel mijn locatie" "Openen in Apple Maps" diff --git a/libraries/ui-strings/src/main/res/values-pl/translations.xml b/libraries/ui-strings/src/main/res/values-pl/translations.xml index e6a643b21f..a09c4635bd 100644 --- a/libraries/ui-strings/src/main/res/values-pl/translations.xml +++ b/libraries/ui-strings/src/main/res/values-pl/translations.xml @@ -31,6 +31,7 @@ "Pokaż hasło" "Rozpocznij rozmowę" "Menu użytkownika" + "Wyświetl szczegóły" "Nagraj wiadomość głosową." "Zatrzymaj nagrywanie" "Akceptuj" @@ -130,6 +131,8 @@ "Wyświetl źródło" "Tak" "Tak, spróbuj ponownie" + "Twój serwer obsługuje teraz nowy, szybszy protokół. Wyloguj się i zaloguj ponownie, aby uaktualnić teraz. Zrobienie tego teraz pomoże uniknąć wymuszonego wylogowania, gdy stary protokół zostanie później usunięty." + "Dostępna aktualizacja" "O programie" "Polityka użytkowania" "Dodawanie opisu" @@ -151,6 +154,7 @@ "ID urządzenia" "Czat prywatny" "Nie pokazuj ponownie" + "Błąd pobierania" "Pobieram" "(edytowane)" "Edytowanie" @@ -168,6 +172,8 @@ Powód: %1$s." "Ulubione" "Ulubione" "Plik" + "Plik usunięty" + "Plik zapisany" "Plik zapisany do folderu Pobrane" "Przekaż wiadomość" "Często używane" @@ -180,6 +186,7 @@ Powód: %1$s." "Jasny" "Link został skopiowany do schowka" "Ładowanie…" + "Ładuję więcej…" "%1$d członek" "%1$d członki" @@ -191,6 +198,7 @@ Powód: %1$s." "Wiadomość usunięta" "Nowoczesny" "Wycisz" + "%1$s (%2$s)" "Brak wyników" "Brak nazwy pokoju" "Offline" @@ -227,7 +235,7 @@ Powód: %1$s." "Zapisano zmiany" "Zapisywanie" "Blokada ekranu" - "Wyszukaj kogoś" + "Szukaj osób" "Wyniki wyszukiwania" "Bezpieczeństwo" "Wyświetlone przez" @@ -269,6 +277,7 @@ Powód: %1$s." "Zweryfikowano" "Weryfikuj urządzenie" "Zweryfikuj tożsamość" + "Zweryfikuj użytkownika" "Film" "Wiadomość głosowa" "Oczekiwanie…" @@ -277,6 +286,8 @@ Powód: %1$s." "Tożsamość %1$s mogła ulec zmianie. %2$s" "Wygląda na to, że tożsamość %1$s %2$s uległa zmianie. %3$s" "(%1$s)" + "Zweryfikowana tożsamość %1$s %2$s uległa zmianie. %3$s" + "Wycofaj weryfikację" "Potwierdzenie" "Błąd" "Sukces" @@ -293,6 +304,7 @@ Powód: %1$s." "%1$s nie uzyskało uprawnienia do dostępu do twojej lokalizacji. Możesz włączyć dostęp w Ustawieniach." "%1$s nie ma uprawnień dostępu do Twojej lokalizacji. Włącz dostęp poniżej." "%1$s nie ma uprawnień dostępu do Twojego mikrofonu. Włącz dostęp, aby nagrać wiadomość głosową." + "Może to być spowodowane problemami z siecią lub serwerem." "Ten adres pokoju już istnieje. Spróbuj zmienić adres lub nazwę pokoju" "Niektóre znaki są niedozwolone. Obsługiwane są tylko litery, cyfry i następujące symbole ! $ & ‘ ( ) * + / ; = ? @ [ ] - . _" "Niektóre wiadomości nie zostały wysłane" diff --git a/libraries/ui-strings/src/main/res/values-pt/translations.xml b/libraries/ui-strings/src/main/res/values-pt/translations.xml index 516e7cdf0f..184a51c78a 100644 --- a/libraries/ui-strings/src/main/res/values-pt/translations.xml +++ b/libraries/ui-strings/src/main/res/values-pt/translations.xml @@ -29,6 +29,7 @@ "Mostrar senha" "Iniciar chamada" "Menu de utilizador" + "Ver detalhes" "Gravar mensagem de voz." "Parar gravação" "Aceitar" @@ -127,6 +128,9 @@ "Ver na cronologia" "Ver fonte" "Sim" + "Sim, tentar novamente" + "O teu servidor suporta agora um protocolo novo e mais rápido. Termina a sessão e volta a iniciar sessão para atualizar agora. Se o fizeres agora, evitarás um fim de sessão forçado quando o protocolo antigo for removido mais tarde." + "Atualização disponível" "Sobre" "Política de utilização aceitável" "A adicionar legenda" @@ -148,12 +152,13 @@ "ID do dispositivo" "Conversa direta" "Não mostrar novamente" + "Descarga falhada" "A descarregar" "(editada)" "A editar" "A editar legenda" "* %1$s %2$s" - "Encriptação" + "Cifragem" "Cifragem ativada" "Introduz o teu PIN" "Erro" @@ -165,6 +170,8 @@ Razão: %1$s." "Marcar como favorita" "Favoritas" "Ficheiro" + "Ficheiro eliminado" + "Ficheiro guardado" "Ficheiro guardado nas Transferências" "Reencaminhar mensagem" "Frequentemente utilizado" @@ -177,6 +184,7 @@ Razão: %1$s." "Claro" "Ligação copiada para a área de transferência" "A carregar…" + "A carregar mais…" "%1$d membro" "%1$d membros" @@ -187,6 +195,7 @@ Razão: %1$s." "Mensagem removida" "Moderno" "Silenciar" + "%1$s (%2$s)" "Sem resultados" "Sala sem nome" "Desligado" @@ -264,6 +273,7 @@ Razão: %1$s." "Verificado" "Verificar o dispositivo" "Verifica a identidade" + "Verificar utilizador" "Vídeo" "Mensagem de voz" "A aguardar…" @@ -272,6 +282,9 @@ Razão: %1$s." "A identidade de %1$s parece ter mudado. %2$s" "A identidade de %1$s (username: %2$s ) aparenta ter mudado. %3$s" "(%1$s)" + "A identidade verificada de %1$s foi alterada." + "A identidade verificada de %1$s %2$s foi alterada. %3$s" + "Retirar verificação" "Confirmação" "Erro" "Sucesso" @@ -288,6 +301,7 @@ Razão: %1$s." "A %1$s não tem permissão para aceder à tua localização. Podes ativar o acesso nas Definições." "A %1$s não tem permissão para aceder à tua localização. Continua para ativares o acesso." "A %1$s não tem permissão para aceder ao teu microfone. Permite o acesso para gravar uma mensagem de voz." + "Isto pode dever-se a problemas na rede ou no servidor." "Este endereço de sala já existe, tente editar o campo de endereço da sala ou altere o nome da sala" "Alguns caracteres não são permitidos. Apenas letras, dígitos e os seguintes símbolos são suportados! $ & ‘ ( ) * + / ; = ? @ [ ] - . _" "Algumas mensagens não foram enviadas" @@ -344,6 +358,8 @@ Razão: %1$s." "Versão: %1$s (%2$s)" "pt" "O histórico de mensagens não está disponível neste dispositivo" + "É necessário verificares este dispositivos para acederes a mensagens antigas" + "Não tens acesso a esta mensagem" "Impossível decifrar mensagem" "Esta mensagem foi bloqueada ou porque ainda não verificaste este dispositivo ou porque o remetente necessita de verificar a tua identidade." diff --git a/libraries/ui-strings/src/main/res/values-ro/translations.xml b/libraries/ui-strings/src/main/res/values-ro/translations.xml index 8a77f7d567..98d849ce1b 100644 --- a/libraries/ui-strings/src/main/res/values-ro/translations.xml +++ b/libraries/ui-strings/src/main/res/values-ro/translations.xml @@ -123,6 +123,8 @@ "Vedeți în cameră" "Vedeți sursă" "Da" + "Serverul dvs. acceptă acum un protocol nou, mai rapid. Deconectați-vă și conectați-vă din nou pentru a face upgrade acum. Dacă faceți acest lucru acum, vă va ajuta să evitați o deconectare forțată atunci când vechiul protocol este eliminat ulterior." + "Upgrade disponibil" "Despre" "Politică de utilizare rezonabilă" "Setări avansate" diff --git a/libraries/ui-strings/src/main/res/values-ru/translations.xml b/libraries/ui-strings/src/main/res/values-ru/translations.xml index db85cb90f8..0282471b12 100644 --- a/libraries/ui-strings/src/main/res/values-ru/translations.xml +++ b/libraries/ui-strings/src/main/res/values-ru/translations.xml @@ -131,6 +131,8 @@ "Показать источник" "Да" "Да, попробуйте еще раз" + "Теперь ваш сервер поддерживает новый, более быстрый протокол. Чтобы обновить его прямо сейчас, выйдите и войдите в свою учётную запись снова. Сделав это сейчас, вы сможете избежать принудительного выхода из системы при последующем удалении старого протокола." + "Доступно обновление" "О приложении" "Политика допустимого использования" "Добавление подписи" @@ -196,6 +198,7 @@ "Сообщение удалено" "Современный" "Выкл. звук" + "%1$s (%2$s)" "Ничего не найдено" "Название комнаты отсутствует" "Не в сети" diff --git a/libraries/ui-strings/src/main/res/values-sk/translations.xml b/libraries/ui-strings/src/main/res/values-sk/translations.xml index ef239dad16..b625d26b94 100644 --- a/libraries/ui-strings/src/main/res/values-sk/translations.xml +++ b/libraries/ui-strings/src/main/res/values-sk/translations.xml @@ -131,6 +131,8 @@ "Zobraziť zdroj" "Áno" "Áno, skúsiť to znova" + "Váš server teraz podporuje nový, rýchlejší protokol. Odhláste sa a prihláste sa znova, aby ste mohli aktualizovať. Ak to urobíte teraz, pomôže vám vyhnúť sa nútenému odhláseniu, keď sa starý protokol neskôr odstráni." + "Aktualizácia je k dispozícii" "O aplikácii" "Zásady prijateľného používania" "Pridáva sa titulok" @@ -196,6 +198,7 @@ Dôvod: %1$s." "Správa odstránená" "Moderné" "Stlmiť" + "%1$s (%2$s)" "Žiadne výsledky" "Žiadny názov miestnosti" "Offline" @@ -274,6 +277,7 @@ Dôvod: %1$s." "Overené" "Overiť zariadenie" "Overiť totožnosť" + "Overiť používateľa" "Video" "Hlasová správa" "Čaká sa…" @@ -282,6 +286,7 @@ Dôvod: %1$s." "Zdá sa, že totožnosť používateľa %1$s sa zmenila.%2$s" "Zdá sa, že identita %2$s používateľa %1$s sa zmenila. %3$s" "(%1$s)" + "Overená totožnosť používateľa %1$s sa zmenila." "Overená identita používateľa %1$s %2$s sa zmenila. %3$s" "Zrušiť overenie" "Potvrdenie" @@ -300,6 +305,7 @@ Dôvod: %1$s." "%1$s nemá povolenie na prístup k vašej polohe. Prístup môžete zapnúť v Nastaveniach." "%1$s nemá povolenie na prístup k vašej polohe. Povoľte prístup nižšie." "%1$s nemá povolenie na prístup k vášmu mikrofónu. Povoľte prístup na nahrávanie hlasovej správy." + "Môže to byť spôsobené problémami so sieťou alebo serverom." "Táto adresa miestnosti už existuje, skúste upraviť pole adresy miestnosti alebo zmeňte názov miestnosti" "Niektoré znaky nie sú povolené. Podporované sú iba písmená, číslice a nasledujúce symboly ! $ & \'() * +/; =? @ [] - . _" "Niektoré správy neboli odoslané" @@ -343,7 +349,7 @@ Dôvod: %1$s." "Načítava sa správa…" "Zobraziť všetko" "Konverzácia" - "Žiadosť o vstup odoslaná" + "Žiadosť o pripojenie bola odoslaná" "Zdieľať polohu" "Zdieľať moju polohu" "Otvoriť v Apple Maps" diff --git a/libraries/ui-strings/src/main/res/values-sv/translations.xml b/libraries/ui-strings/src/main/res/values-sv/translations.xml index 44f84c1bd2..9183ad7e87 100644 --- a/libraries/ui-strings/src/main/res/values-sv/translations.xml +++ b/libraries/ui-strings/src/main/res/values-sv/translations.xml @@ -32,6 +32,7 @@ "Spela in röstmeddelande." "Stoppa inspelning" "Godkänn" + "Lägg till bildtext" "Lägg till i tidslinjen" "Tillbaka" "Ring" @@ -45,8 +46,10 @@ "Bekräfta lösenord" "Fortsätt" "Kopiera" + "Kopiera bildtext" "Kopiera länk" "Kopiera länk till meddelande" + "Kopiera text" "Skapa" "Skapa ett rum" "Inaktivera" @@ -57,6 +60,7 @@ "Kassera" "Klar" "Redigera" + "Redigera bildtext" "Redigera omröstning" "Aktivera" "Avsluta omröstning" @@ -91,6 +95,8 @@ "Reagera" "Avvisa" "Ta bort" + "Ta bort bildtext" + "Ta bort meddelande" "Svara" "Svara i tråd" "Rapportera bugg" @@ -121,8 +127,12 @@ "Visa i tidslinjen" "Visa källkod" "Ja" + "Ja, försök igen" + "Din server stöder nu ett nytt, snabbare protokoll. Logga ut och logga in igen för att uppgradera nu. Om du gör detta nu hjälper du dig att undvika en tvingad utloggning när det gamla protokollet tas bort senare." + "Uppgradering tillgänglig" "Om" "Policy för godtagbar användning" + "Lägga till bildtext" "Avancerade inställningar" "Analysdata" "Utseende" @@ -141,9 +151,12 @@ "Enhets-ID" "Direktchatt" "Visa inte detta igen" + "Laddar ner" "(redigerad)" "Redigerar" + "Redigera bildtext" "* %1$s %2$s" + "Kryptering" "Kryptering aktiverad" "Ange din PIN-kod" "Fel" @@ -157,6 +170,7 @@ Anledning:%1$s." "Fil" "Fil sparad i Download" "Vidarebefordra meddelande" + "Används ofta" "GIF" "Bild" "Som svar på %1$s" @@ -237,11 +251,14 @@ Anledning:%1$s." "Ämne" "Vad handlar det här rummet om?" "Kan inte avkryptera" + "Skickad från en osäker enhet" "Du har inte tillgång till det här meddelandet" + "Avsändarens verifierade identitet har ändrats" "Inbjudan kunde inte skickas till en eller flera användare." "Kunde inte skicka inbjudningar" "Lås upp" "Avtysta" + "Samtal som inte stöds" "Händelse som inte stöds" "Användarnamn" "Verifiering avbruten" @@ -249,6 +266,7 @@ Anledning:%1$s." "Verifiering misslyckades" "Verifierad" "Verifiera enheten" + "Verifiera identitet" "Video" "Röstmeddelande" "Väntar …" @@ -273,6 +291,8 @@ Anledning:%1$s." "%1$s är inte behörig att komma åt din plats. Du kan aktivera åtkomst i Inställningar." "%1$s är inte behörig att komma åt din plats. Aktivera åtkomst nedan." "%1$s är inte behörig att komma åt din mikrofon. Aktivera åtkomst för att spela in ett röstmeddelande." + "Den här rumsadressen finns redan. Försök att redigera adressfältet för rummet eller ändra rummets namn" + "Vissa tecken är inte tillåtna. Endast bokstäver, siffror och följande symboler stöds ! $ & ‘ ( ) * + / ; = ? @ [ ] - . _" "Vissa meddelanden har inte skickats" "Tyvärr, ett fel uppstod" "Detta krypterade meddelandes äkthet kan inte garanteras på den här enheten." @@ -286,6 +306,7 @@ Anledning:%1$s." "%1$s Android" "Raseriskaka för att rapportera bugg" "Misslyckades att välja media, vänligen pröva igen." + "Bildtexter kanske inte är synliga för personer som använder äldre appar." "Misslyckades att bearbeta media för uppladdning, vänligen pröva igen." "Misslyckades att ladda upp media, vänligen pröva igen." "Tryck på ett meddelande och välj ”%1$s” för att inkludera det här." @@ -312,6 +333,7 @@ Anledning:%1$s." "Laddar meddelande …" "Visa alla" "Chatt" + "Begäran om att gå med skickad" "Dela plats" "Dela min plats" "Öppna i Apple Maps" @@ -324,4 +346,8 @@ Anledning:%1$s." "Plats" "Version: %1$s (%2$s)" "sv" + "Historiska meddelanden är inte tillgängliga på den här enheten" + "Du har inte tillgång till det här meddelandet" + "Det gick inte att dekryptera meddelandet" + "Det här meddelandet blockerades antingen för att du inte verifierade din enhet eller för att avsändaren måste verifiera din identitet." diff --git a/libraries/ui-strings/src/main/res/values-tr/translations.xml b/libraries/ui-strings/src/main/res/values-tr/translations.xml new file mode 100644 index 0000000000..46f87e2019 --- /dev/null +++ b/libraries/ui-strings/src/main/res/values-tr/translations.xml @@ -0,0 +1,365 @@ + + + "Sil" + + "%1$d basamak girildi" + "%1$d basamak girildi" + + "Şifreyi gizle" + "Aşağıya atla" + "Yalnızca bahsetmeler" + "Sessiz" + "Sayfa %1$d" + "Duraklat" + "PIN alanı" + "Oynat" + "Anket" + "Anket sona erdi" + "%1$s ile tepki verin" + "Diğer emojilerle tepki verin" + "Okuyan %1$s ve %2$s" + + "%1$s ve %2$d diğer kişi tarafından okundu" + "%1$s ve %2$d diğer kişi tarafından okundu" + + "Okuyan %1$s" + "Tümünü göstermek için dokunun" + "Tepkimeyi kaldır %1$s" + "Dosyaları gönder" + "Şifreyi göster" + "Bir arama başlatın" + "Kullanıcı menüsü" + "Ayrıntıları görüntüle" + "Sesli mesajı kaydedin." + "Kaydı durdur" + "Kabul et" + "Açıklama ekle" + "Zaman çizelgesine ekle" + "Geri" + "Çağrı" + "İptal" + "Şimdilik iptal et" + "Fotoğraf seç" + "Temizle" + "Kapat" + "Doğrulamayı tamamlayın" + "Onayla" + "Şifreyi onayla" + "Devam et" + "Kopyala" + "Açıklamayı kopyala" + "Bağlantıyı kopyala" + "Bağlantıyı mesaja kopyala" + "Metni kopyala" + "Oluştur" + "Bir oda oluştur" + "Devre dışı bırak" + "Hesabı devre dışı bırak" + "Reddet" + "Anketi Sil" + "Devre dışı" + "Vazgeç" + "Bitti" + "Düzenle" + "Açıklamayı düzenle" + "Anketi düzenle" + "Etkinleştir" + "Anketi sonlandır" + "PIN girin" + "Parolanızı mı unuttunuz?" + "İleri" + "Geri dön" + "Yoksay" + "Davet et" + "İnsanları davet et" + "İnsanları davet et %1$s" + "İnsanları davet et %1$s" + "Davetiyeler" + "Katıl" + "Daha fazla bilgi" + "Ayrıl" + "Sohbeti bırak" + "Odadan ayrıl" + "Daha fazla yükle" + "Hesabı yönet" + "Cihazları yönet" + "Mesaj" + "Sonraki" + "Hayır" + "Şimdi değil" + "TAMAM" + "Ayarlar" + "İle aç" + "Pin" + "Hızlı cevap" + "Alıntı" + "Tepki" + "Reddet" + "Kaldır" + "Açıklamayı kaldır" + "Mesajı kaldır" + "Yanıtla" + "Konuya cevap ver" + "Hata bildir" + "İçeriği bildir" + "Sıfırla" + "Kimliği sıfırla" + "Yeniden dene" + "Şifre çözmeyi tekrar deneyin" + "Kaydet" + "Ara" + "Gönder" + "Mesaj gönder" + "Paylaş" + "Linki paylaş" + "Göster" + "Tekrar oturum açın" + "Oturumu kapat" + "Yine de çıkış yap" + "Atla" + "Başlat" + "Sohbeti başlat" + "Doğrulamayı başlat" + "Haritayı yüklemek için dokunun" + "Fotoğraf çek" + "Seçenekler için dokunun" + "Tekrar deneyin" + "Sabitlemeyi kaldır" + "Zaman çizelgesinde görüntüle" + "Kaynağı görüntüle" + "Evet" + "Evet, tekrar dene" + "Sunucunuz artık yeni, daha hızlı bir protokolü destekliyor. Şimdi oturumu kapatıp tekrar oturum açarak yükseltme yapın. Bunu şimdi yapmak, eski protokol daha sonra kaldırıldığında zorunlu oturum kapatmayı önlemenize yardımcı olacaktır." + "Yükseltme mevcut" + "Hakkında" + "Kabul edilebilir kullanım politikası" + "Açıklama ekleme" + "Gelişmiş Ayarlar" + "Analizler" + "Görünüm" + "Ses" + "Engellenen kullanıcılar" + "Kabarcıklar" + "Çağrı başladı" + "Sohbet yedekleme" + "Panoya kopyalandı" + "Telif Hakkı" + "Oda yaratmak…" + "Sol oda" + "Koyu" + "Şifre çözme hatası" + "Geliştirici seçenekleri" + "Cihaz Kimliği" + "Doğrudan sohbet" + "Bunu bir daha gösterme" + "İndirme başarısız oldu" + "İndiriliyor" + "(düzenlendi)" + "Düzenleme" + "Açıklamayı düzenleme" + "* %1$s %2$s" + "Şifreleme" + "Şifreleme etkin" + "PIN\'inizi girin" + "Hata" + "Bir hata oluştu, yeni mesajlar için bildirim alamayabilirsiniz. Lütfen ayarlardan bildirimlerle ilgili sorunları giderin. + +Neden: %1$s." + "Herkes" + "Başarısız" + "Favori" + "Favorilere eklendi" + "Dosya" + "Dosya silindi" + "Dosya kaydedildi" + "Dosya İndirilenler\'e kaydedildi" + "Mesajı ilet" + "Sık kullanılanlar" + "GIF" + "Resim" + "Cevap olarak %1$s" + "APK\'yı yükleyin" + "Bu Matrix Kimliği bulunamıyor, bu nedenle davet alınmayabilir." + "Odadan ayrılma" + "Aydınlık" + "Bağlantı panoya kopyalandı" + "Yükleniyor…" + "Daha fazla yükleniyor…" + + "%1$d üye" + "%1$d üye" + + "Mesaj" + "Mesaj eylemleri" + "Mesaj düzeni" + "Mesaj kaldırıldı" + "Modern" + "Sessiz" + "%1$s (%2$s)" + "Sonuç yok" + "Oda adı yok" + "Çevrimdışı" + "Açık kaynak lisansları" + "veya" + "Şifre" + "Kişiler" + "Kalıcı bağlantı" + "İzin" + "Sabitlendi" + "Lütfen bekleyin…" + "Bu anketi sonlandırmak istediğinizden emin misiniz?" + "Anket: %1$s" + "Toplam oy: %1$s" + "Sonuçlar anket sona erdikten sonra gösterilecektir" + + "%d oy" + "%d oy" + + "Gizlilik Politikası" + "Tepki" + "Tepkiler" + "Kurtarma anahtarı" + "Yenileniyor…" + "Cevaplamak için %1$s" + "Hata bildir" + "Sorun bildir" + "Rapor gönderildi" + "Zengin metin editörü" + "Oda" + "Oda adı" + "örn. proje adınız" + "Kaydedilen değişiklikler" + "Kaydediliyor" + "Ekran kilidi" + "Birini arayın" + "Arama sonuçları" + "Güvenlik" + "Tarafından görüldü" + "Şuraya gönder" + "Gönderiliyor…" + "Gönderme başarısız oldu" + "Gönderildi" + "Sunucu desteklenmiyor" + "Sunucu URL\'si" + "Ayarlar" + "Paylaşılan konum" + "Oturumu kapatma" + "Bir şeyler ters gitti" + "Sohbet başlatılıyor…" + "Çıkartma" + "Başarılı" + "Öneriler" + "Senkronizasyon" + "Sistem" + "Metin" + "Üçüncü taraf bildirimleri" + "Konu" + "Konu" + "Bu oda ne hakkında?" + "Şifre çözülemiyor" + "Güvenli olmayan bir cihazdan gönderildi" + "Bu mesaja erişiminiz yok" + "Gönderenin doğrulanmış kimliği değişti" + "Davetler bir veya daha fazla kullanıcıya gönderilemedi." + "Davetiye(ler) gönderilemedi" + "Kilidi aç" + "Sesi aç" + "Desteklenmeyen çağrı" + "Desteklenmeyen etkinlik" + "Kullanıcı adı" + "Doğrulama iptal edildi" + "Doğrulama tamamlandı" + "Doğrulama başarısız" + "Doğrulandı" + "Cihazı doğrula" + "Kimliği doğrula" + "Kullanıcıyı Doğrula" + "Video" + "Sesli Mesaj" + "Bekleniyor…" + "Bu mesajı bekliyorum" + "Sen" + "%1$s kişinin kimliği değişmiş gibi görünüyor. %2$s" + "%1$s\'ın %2$s kimliği değişmiş gibi görünüyor. %3$s" + "(%1$s)" + "%1$s kullanıcısının doğrulanmış kimliği değişti." + "%1$s kullanıcısının %2$s doğrulanmış kimliği değişti. %3$s" + "Doğrulamayı iptal et" + "Onaylama" + "Hata" + "Başarılı" + "Uyarı" + "Değişiklikleriniz kaydedilmedi. Geri dönmek istediğinden emin misin?" + "Değişiklikleri Kaydet?" + "Ana sunucunuzun Matrix Authentication Service ve hesap oluşturmayı destekleyecek şekilde güncellenmesi gerekiyor." + "Kalıcı bağlantı oluşturulamadı" + "%1$s harita yüklenemedi. Lütfen daha sonra tekrar deneyin." + "Mesajlar yüklenemedi" + "%1$s konumunuza erişemedi. Lütfen daha sonra tekrar deneyin." + "Sesli mesajınız yüklenemedi." + "Mesaj bulunamadı" + "%1$s konumunuza erişim iznine sahip değil. Erişimi Ayarlar\'dan etkinleştirebilirsiniz." + "%1$s konumunuza erişim iznine sahip değil. Aşağıdan erişimi etkinleştirin." + "%1$s mikrofonunuza erişim izni yok. Sesli mesaj kaydetmek için erişimi etkinleştirin." + "Bunun nedeni ağ veya sunucu sorunları olabilir." + "Bu oda adresi zaten mevcut. Lütfen oda adres alanını düzenlemeyi deneyin veya oda adını değiştirin" + "Bazı karakterlere izin verilmez. Yalnızca harfler, rakamlar ve aşağıdaki semboller desteklenir ! $ &amp; \' ( ) * + / ; = ? @ [ ] - . _" + "Bazı mesajlar gönderilmedi" + "Üzgünüz, bir hata oluştu" + "Bu şifrelenmiş mesajın doğruluğu bu cihazda garanti edilemez." + "Daha önce doğrulanmış bir kullanıcı tarafından şifrelenmiştir." + "Şifrelenmemiş." + "Bilinmeyen veya silinmiş bir cihaz tarafından şifrelenmiştir." + "Sahibi tarafından doğrulanmamış bir cihaz tarafından şifrelenmiştir." + "Doğrulanmamış bir kullanıcı tarafından şifrelenmiştir." + "🔐️ Bana katılın %1$s" + "Hey, benimle konuş %1$s: %2$s" + "%1$s Android" + "Hata bildirmek için Rageshake" + "Medya seçilemedi, lütfen tekrar deneyin." + "Açıklamalar, eski uygulamaları kullanan kişiler tarafından görülemeyebilir." + "Medya yüklenemedi, lütfen tekrar deneyin." + "Medya yüklenemedi, lütfen tekrar deneyin." + "Bir mesaja basın ve buraya eklemek için “%1$s” yi seçin." + "Önemli mesajları kolayca keşfedilebilmeleri için sabitleyin" + + "%1$d Sabitlenmiş mesaj" + "%1$d Sabitlenmiş mesajlar" + + "Sabitlenmiş mesajlar" + "Kimliğinizi sıfırlamak için %1$s hesabınıza gitmek üzeresiniz. Daha sonra uygulamaya geri döneceksiniz." + "Onaylayamıyor musunuz? Kimliğinizi sıfırlamak için hesabınıza gidin." + "Doğrulamayı geri çek ve gönder" + "Doğrulamanızı geri çekebilir ve yine de bu mesajı gönderebilir veya şimdilik iptal edebilir ve %1$s yeniden doğruladıktan sonra daha sonra tekrar deneyebilirsiniz." + "%1$s kullanıcısının doğrulanmış kimliği değiştiği için mesajınız gönderilmedi" + "Yine de mesaj gönder" + "%1$s bir veya daha fazla doğrulanmamış cihaz kullanıyor. Mesajı yine de gönderebilir veya şimdilik iptal edebilir ve %2$s tüm cihazlarını doğruladıktan sonra tekrar deneyebilirsiniz." + "%1$s tüm cihazları doğrulamadığı için mesajınız gönderilmedi" + "Bir veya daha fazla cihazınız doğrulanmamış. Mesajı yine de gönderebilir veya şimdilik iptal edip tüm cihazlarınızı doğruladıktan sonra tekrar deneyebilirsiniz." + "Bir veya daha fazla cihazınızı doğrulamadığınız için mesajınız gönderilmedi" + "Medya yüklenemedi, lütfen tekrar deneyin." + "Kullanıcı ayrıntıları alınamadı" + "%1$s / %2$s" + "%1$s Sabitlenmiş mesajlar" + "Mesaj yükleniyor…" + "Tümünü görüntüle" + "Sohbet" + "Katılma isteği gönderildi" + "Konum paylaş" + "Konumumu paylaş" + "Apple Maps\'de aç" + "Google Maps\'te aç" + "OpenStreetMap\'te aç" + "Bu konumu paylaş" + "%1$s kullanıcısının doğrulanmış kimliği değiştiği için ileti gönderilmedi." + "%1$s tüm cihazları doğrulamadığı için mesaj gönderilmedi." + "Bir veya daha fazla cihazınızı doğrulamadığınız için mesaj gönderilmedi." + "Konum" + "Sürüm: %1$s (%2$s)" + "tr" + "Geçmiş mesajlar bu cihazda kullanılamıyor" + "Geçmiş mesajlara erişim için bu cihazı doğrulamanız gerekir" + "Bu mesaja erişiminiz yok" + "Mesaj şifresi çözülemedi" + "Bu mesaj, cihazınızı doğrulamadığınız veya gönderenin kimliğinizi doğrulaması gerektiği için engellendi." + diff --git a/libraries/ui-strings/src/main/res/values-uk/translations.xml b/libraries/ui-strings/src/main/res/values-uk/translations.xml index 1224525425..bbeefd6eca 100644 --- a/libraries/ui-strings/src/main/res/values-uk/translations.xml +++ b/libraries/ui-strings/src/main/res/values-uk/translations.xml @@ -131,6 +131,8 @@ "Переглянути джерело" "Так" "Так, повторити спробу" + "Ваш сервер тепер підтримує новий, швидший протокол. Вийдіть із системи та увійдіть знову, щоб оновити систему зараз. Якщо ви зробите це зараз, це допоможе вам уникнути примусового виходу з системи, коли старий протокол буде видалено пізніше." + "Доступне оновлення" "Відомості" "Політика прийнятного використання" "Додавання підпису" @@ -184,6 +186,7 @@ "Світла" "Посилання скопійовано в буфер обміну" "Завантаження" + "Завантаження наступних…" "%1$d учасник" "%1$d учасники" @@ -195,6 +198,7 @@ "Повідомлення вилучено" "Модерн" "Вимкнути звук" + "%1$s (%2$s)" "Немає результатів" "Немає назви кімнати" "Не в мережі" @@ -273,6 +277,7 @@ "Перевірено" "Верифікувати пристрій" "Підтвердити особу" + "Верифікувати користувача" "Відео" "Голосове повідомлення" "Очікування…" @@ -299,6 +304,7 @@ "%1$s не має дозволу на доступ до вашого розташування. Увімкнути доступ можна в Налаштуваннях." "%1$s не має дозволу на доступ до вашого розташування. Увімкніть доступ нижче." "%1$s не має доступу до вашого мікрофона. Надайте доступ, щоб записати голосове повідомлення." + "Це може бути пов\'язано з проблемами мережі або сервера." "Ця адреса кімнати вже існує, будь ласка, спробуйте відредагувати поле адреси кімнати або змінити назву кімнати" "Деякі символи не допускаються. Підтримуються тільки букви, цифри і наступні символи! $ & ‘ ( ) * + / ; = ? @ [ ] - . _" "Деякі повідомлення не були надіслані" diff --git a/libraries/ui-strings/src/main/res/values-zh-rTW/translations.xml b/libraries/ui-strings/src/main/res/values-zh-rTW/translations.xml index b35980f479..80d6f5e134 100644 --- a/libraries/ui-strings/src/main/res/values-zh-rTW/translations.xml +++ b/libraries/ui-strings/src/main/res/values-zh-rTW/translations.xml @@ -126,6 +126,8 @@ "檢視原始碼" "是" "是的,再試一次" + "您的伺服器現在支援新的、更快的協定。立即登出並重新登入以進行升級。現在這樣做將協助您避免在稍後移除舊協定時被強制登出。" + "可升級" "關於" "可接受使用政策" "新增標題" diff --git a/libraries/ui-strings/src/main/res/values-zh/translations.xml b/libraries/ui-strings/src/main/res/values-zh/translations.xml index 76ba789f3c..4f0c0fb06a 100644 --- a/libraries/ui-strings/src/main/res/values-zh/translations.xml +++ b/libraries/ui-strings/src/main/res/values-zh/translations.xml @@ -127,6 +127,8 @@ "查看源码" "是" "是的,再试一次" + "您的服务器现在支持更快的新协议。现在登出并重新登录以进行升级。现在这样做可以帮助您避免在以后删除旧协议时被强制登出。" + "有可用升级" "关于" "可接受的使用政策" "添加标题" @@ -190,6 +192,7 @@ "消息已移除" "现代" "静音" + "%1$s (%2$s)" "没有结果" "无聊天室名" "离线" diff --git a/libraries/ui-strings/src/main/res/values/localazy.xml b/libraries/ui-strings/src/main/res/values/localazy.xml index d76574c8dc..f847088ec9 100644 --- a/libraries/ui-strings/src/main/res/values/localazy.xml +++ b/libraries/ui-strings/src/main/res/values/localazy.xml @@ -129,6 +129,8 @@ "View source" "Yes" "Yes, try again" + "Your server now supports a new, faster protocol. Log out and log back in to upgrade now. Doing this now will help you avoid a forced logout when the old protocol is removed later." + "Upgrade available" "About" "Acceptable use policy" "Adding caption" @@ -280,6 +282,7 @@ Reason: %1$s." "%1$s\'s identity appears to have changed. %2$s" "%1$s’s %2$s identity appears to have changed. %3$s" "(%1$s)" + "%1$s’s verified identity has changed." "%1$s’s %2$s verified identity has changed. %3$s" "Withdraw verification" "Confirmation" diff --git a/plugins/src/main/kotlin/extension/locales.kt b/plugins/src/main/kotlin/extension/locales.kt index 4b83bac32a..ef842dbb1f 100644 --- a/plugins/src/main/kotlin/extension/locales.kt +++ b/plugins/src/main/kotlin/extension/locales.kt @@ -28,6 +28,7 @@ val locales = setOf( "ru", "sk", "sv", + "tr", "uk", "uz", "zh-rCN", diff --git a/screenshots/de/features.createroom.impl.addpeople_AddPeopleView_Day_0_de.png b/screenshots/de/features.createroom.impl.addpeople_AddPeopleView_Day_0_de.png index 202f5ec903..dbe48bd510 100644 --- a/screenshots/de/features.createroom.impl.addpeople_AddPeopleView_Day_0_de.png +++ b/screenshots/de/features.createroom.impl.addpeople_AddPeopleView_Day_0_de.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:2683c2af9b6e03d8a63478a277bc08fee3938a48cf446e81fee14b8177a7a0e5 -size 17005 +oid sha256:d67dd602ead4c0c58b91aa388d4b25edfb1cbb083272d68d242f76cba8013206 +size 16813 diff --git a/screenshots/de/features.createroom.impl.addpeople_AddPeopleView_Day_1_de.png b/screenshots/de/features.createroom.impl.addpeople_AddPeopleView_Day_1_de.png index 20fb2fd98d..df53bac8ba 100644 --- a/screenshots/de/features.createroom.impl.addpeople_AddPeopleView_Day_1_de.png +++ b/screenshots/de/features.createroom.impl.addpeople_AddPeopleView_Day_1_de.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:fabdf30f91e5d14fdb41a78f337adc1781e572bbdb346be34b6de1738362b577 -size 26228 +oid sha256:a613158ae574adcf48344204588d854c04bd95cdb3dc6700058f579e64550dd6 +size 26099 diff --git a/screenshots/de/features.createroom.impl.addpeople_AddPeopleView_Day_3_de.png b/screenshots/de/features.createroom.impl.addpeople_AddPeopleView_Day_3_de.png index 27a46e8484..425510fe87 100644 --- a/screenshots/de/features.createroom.impl.addpeople_AddPeopleView_Day_3_de.png +++ b/screenshots/de/features.createroom.impl.addpeople_AddPeopleView_Day_3_de.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:00a2119357556362eea4ffc31e982e87e0a2e18af95ab713b433851d5ad99d39 -size 44744 +oid sha256:bd241e34e59cb9a80d8fabe4584ea53af7e8f439ea9b8be1e370fe33c6f44f39 +size 44585 diff --git a/screenshots/de/features.createroom.impl.components_UserListView_Day_0_de.png b/screenshots/de/features.createroom.impl.components_UserListView_Day_0_de.png index d2a6652369..b01e8f3daa 100644 --- a/screenshots/de/features.createroom.impl.components_UserListView_Day_0_de.png +++ b/screenshots/de/features.createroom.impl.components_UserListView_Day_0_de.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:4a883439100e721d0749da6690882dad0decd6962ee82599fc7902746415d63d -size 9596 +oid sha256:1f3d3e011b7b2fd9f0732e9632333d65c6f22ddb4df448128ad18bce05fdea19 +size 9392 diff --git a/screenshots/de/features.createroom.impl.components_UserListView_Day_1_de.png b/screenshots/de/features.createroom.impl.components_UserListView_Day_1_de.png index 39a409488e..71d58d0eb7 100644 --- a/screenshots/de/features.createroom.impl.components_UserListView_Day_1_de.png +++ b/screenshots/de/features.createroom.impl.components_UserListView_Day_1_de.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:f9a7ec6c7c6406da82cbc68a31e1ac6af0c7cd4fcb9a162f2f222a0b98d43ace -size 20914 +oid sha256:0678bcfff323a0fa3991d45c36d45d9d16e97e6c670be714d6de612440b22bef +size 20710 diff --git a/screenshots/de/features.createroom.impl.components_UserListView_Day_9_de.png b/screenshots/de/features.createroom.impl.components_UserListView_Day_9_de.png index 82cb2036e1..821662ba5f 100644 --- a/screenshots/de/features.createroom.impl.components_UserListView_Day_9_de.png +++ b/screenshots/de/features.createroom.impl.components_UserListView_Day_9_de.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:89fecc1b67392dae4b62e99963c440db63adddcc0c9c4f6d81408560063b870d -size 37718 +oid sha256:95148a84c9a1d4574bfbf995a15d2711f59a26015fa6b928207b5e1266b72adb +size 37540 diff --git a/screenshots/de/features.createroom.impl.configureroom_ConfigureRoomViewDark_0_de.png b/screenshots/de/features.createroom.impl.configureroom_ConfigureRoomViewDark_0_de.png index 00bec43e13..0ecc776a1f 100644 --- a/screenshots/de/features.createroom.impl.configureroom_ConfigureRoomViewDark_0_de.png +++ b/screenshots/de/features.createroom.impl.configureroom_ConfigureRoomViewDark_0_de.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:457363c25841925076aaad53d728e631427f699cfb7545b8e1abb94fb6a2e774 -size 36741 +oid sha256:f311fd6462e979e179245d6ef1451918736770d1c2c187b126a2b36298163fe5 +size 36258 diff --git a/screenshots/de/features.createroom.impl.configureroom_ConfigureRoomViewDark_1_de.png b/screenshots/de/features.createroom.impl.configureroom_ConfigureRoomViewDark_1_de.png index e09d9d4951..a065983d39 100644 --- a/screenshots/de/features.createroom.impl.configureroom_ConfigureRoomViewDark_1_de.png +++ b/screenshots/de/features.createroom.impl.configureroom_ConfigureRoomViewDark_1_de.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:baf2c57107cd2f639535fc6fdf5b9885224c0f839d78fdbc85e14398f7439cd2 -size 49576 +oid sha256:0238457029de9b2bcb7835b6092a2e97674fcd90f31ce93658cd96ecb94c74f5 +size 49129 diff --git a/screenshots/de/features.createroom.impl.configureroom_ConfigureRoomViewDark_2_de.png b/screenshots/de/features.createroom.impl.configureroom_ConfigureRoomViewDark_2_de.png index ba26587c92..715a6fee1e 100644 --- a/screenshots/de/features.createroom.impl.configureroom_ConfigureRoomViewDark_2_de.png +++ b/screenshots/de/features.createroom.impl.configureroom_ConfigureRoomViewDark_2_de.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:eba277a783d50012cf4a51ec93c4cf02394befc9c5d04edd27ac8113e9257539 -size 63564 +oid sha256:2b2217c0206ff2a96efa24ec94d84ede4ed55bba8d0b879c233e6953d66f1cac +size 63126 diff --git a/screenshots/de/features.createroom.impl.configureroom_ConfigureRoomViewDark_3_de.png b/screenshots/de/features.createroom.impl.configureroom_ConfigureRoomViewDark_3_de.png index 09b64115e1..56fbc94f19 100644 --- a/screenshots/de/features.createroom.impl.configureroom_ConfigureRoomViewDark_3_de.png +++ b/screenshots/de/features.createroom.impl.configureroom_ConfigureRoomViewDark_3_de.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:c1f26d21ba37d244fcc5adb5b7580856f8e1a7670fd2defcd4befa3e2d07b8b6 -size 63685 +oid sha256:453fd456a574edc265563d4d6e27b09a050b26df402675de07f2f28ba76f8708 +size 63213 diff --git a/screenshots/de/features.createroom.impl.configureroom_ConfigureRoomViewDark_4_de.png b/screenshots/de/features.createroom.impl.configureroom_ConfigureRoomViewDark_4_de.png index 81b004f86b..f6a95e3575 100644 --- a/screenshots/de/features.createroom.impl.configureroom_ConfigureRoomViewDark_4_de.png +++ b/screenshots/de/features.createroom.impl.configureroom_ConfigureRoomViewDark_4_de.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:52f75d9234a0eace30ec10cbdeda6314cea0634d0ccbd2b8f453ec184a35cd13 -size 63592 +oid sha256:4e5ad97aa8f61c06b74c93d913d5b78629d0600b7c72fd6a97abd99032740124 +size 63118 diff --git a/screenshots/de/features.createroom.impl.configureroom_ConfigureRoomViewDark_5_de.png b/screenshots/de/features.createroom.impl.configureroom_ConfigureRoomViewDark_5_de.png index 5308d79c1e..119f85a43a 100644 --- a/screenshots/de/features.createroom.impl.configureroom_ConfigureRoomViewDark_5_de.png +++ b/screenshots/de/features.createroom.impl.configureroom_ConfigureRoomViewDark_5_de.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:6c28710d2afe583078a26c8b56c331a942c250cb599d4c00f9dc4cf04286c811 -size 63082 +oid sha256:d9e9109d76921acca7cbc99fb0394d8033340cf847c60417a1421d4f7b2765c3 +size 62610 diff --git a/screenshots/de/features.createroom.impl.configureroom_ConfigureRoomViewLight_0_de.png b/screenshots/de/features.createroom.impl.configureroom_ConfigureRoomViewLight_0_de.png index 1f6bca734e..512433de00 100644 --- a/screenshots/de/features.createroom.impl.configureroom_ConfigureRoomViewLight_0_de.png +++ b/screenshots/de/features.createroom.impl.configureroom_ConfigureRoomViewLight_0_de.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:9b449faf40487c6f34253b0157ae14c3df6a8a782b2af18fcd2b6f80198fa7d2 -size 37688 +oid sha256:f078b697c04a8bb129295b07f14464415a640990544fd4314d3034ab15a7be5b +size 37230 diff --git a/screenshots/de/features.createroom.impl.configureroom_ConfigureRoomViewLight_1_de.png b/screenshots/de/features.createroom.impl.configureroom_ConfigureRoomViewLight_1_de.png index ba57e7b40b..fe97eb211f 100644 --- a/screenshots/de/features.createroom.impl.configureroom_ConfigureRoomViewLight_1_de.png +++ b/screenshots/de/features.createroom.impl.configureroom_ConfigureRoomViewLight_1_de.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:09596614dfe191f7eb046aff9d44642e6ecbbf3fbdcb89181bae75c16d6ba72d -size 50492 +oid sha256:1535997d0af95e3e7f40437e2015c28d4acf6acb8b1ce31df28086f4ee79cba7 +size 50048 diff --git a/screenshots/de/features.createroom.impl.configureroom_ConfigureRoomViewLight_2_de.png b/screenshots/de/features.createroom.impl.configureroom_ConfigureRoomViewLight_2_de.png index 08823300da..9945778f01 100644 --- a/screenshots/de/features.createroom.impl.configureroom_ConfigureRoomViewLight_2_de.png +++ b/screenshots/de/features.createroom.impl.configureroom_ConfigureRoomViewLight_2_de.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:ae642483fc05fb50555e2fa5b83ac12d84a064c4b840a53a4ebf53d419f87242 -size 65036 +oid sha256:2e180746bac90d0227c6d39727dc3d1fbb00c316e37fa5b09f5bb710b7438377 +size 64595 diff --git a/screenshots/de/features.createroom.impl.configureroom_ConfigureRoomViewLight_3_de.png b/screenshots/de/features.createroom.impl.configureroom_ConfigureRoomViewLight_3_de.png index 3b9922cb36..ca120a72ae 100644 --- a/screenshots/de/features.createroom.impl.configureroom_ConfigureRoomViewLight_3_de.png +++ b/screenshots/de/features.createroom.impl.configureroom_ConfigureRoomViewLight_3_de.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:28606cedfc76d8600f8e935a42c4e98dc13c0b1d1733856bc20d064f99a39c5b -size 65826 +oid sha256:a18c0dac1ad5f1f66e4a1eb7540c70f06b4dd25a847771441324d4faf27beb35 +size 65387 diff --git a/screenshots/de/features.createroom.impl.configureroom_ConfigureRoomViewLight_4_de.png b/screenshots/de/features.createroom.impl.configureroom_ConfigureRoomViewLight_4_de.png index 837e2badf7..3ba9b83e5b 100644 --- a/screenshots/de/features.createroom.impl.configureroom_ConfigureRoomViewLight_4_de.png +++ b/screenshots/de/features.createroom.impl.configureroom_ConfigureRoomViewLight_4_de.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:3128a8b8ca419b6862d1e5a3e8713f4aefd6fccd494babf006ccbbe15391c956 -size 65747 +oid sha256:dde0ccc0574d99c4cfe78d6d8ab666759800be526f34a6c0ff5ea6814015cd47 +size 65302 diff --git a/screenshots/de/features.createroom.impl.configureroom_ConfigureRoomViewLight_5_de.png b/screenshots/de/features.createroom.impl.configureroom_ConfigureRoomViewLight_5_de.png index 7acd884662..b83f6d2530 100644 --- a/screenshots/de/features.createroom.impl.configureroom_ConfigureRoomViewLight_5_de.png +++ b/screenshots/de/features.createroom.impl.configureroom_ConfigureRoomViewLight_5_de.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:54396bda85421376b596d885a43f67a19b06e9d7980d01112b90849ae08568e1 -size 65181 +oid sha256:eebbb8402c34342de27f6d187d52c24b89ccd01e11a2c334e9a1c90301d2c39d +size 64733 diff --git a/screenshots/de/features.createroom.impl.root_CreateRoomRootView_Day_0_de.png b/screenshots/de/features.createroom.impl.root_CreateRoomRootView_Day_0_de.png index 2d07ffb504..225b7cb14b 100644 --- a/screenshots/de/features.createroom.impl.root_CreateRoomRootView_Day_0_de.png +++ b/screenshots/de/features.createroom.impl.root_CreateRoomRootView_Day_0_de.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:1b34cd0b4ea524e88df1185ed2223dcce00fb7efb7582f52dece9876b188a4cc -size 21796 +oid sha256:329d29a976cea60e562443f2aa3dce5dc2a403c4924dc27f83f2ea56e3018678 +size 21604 diff --git a/screenshots/de/features.createroom.impl.root_CreateRoomRootView_Day_3_de.png b/screenshots/de/features.createroom.impl.root_CreateRoomRootView_Day_3_de.png index 874582fed6..b78d6d4e52 100644 --- a/screenshots/de/features.createroom.impl.root_CreateRoomRootView_Day_3_de.png +++ b/screenshots/de/features.createroom.impl.root_CreateRoomRootView_Day_3_de.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:7b5433313f6359603e64477fc7cdebb10782cbe3c2a9ac8087ff2252c11ece55 -size 48294 +oid sha256:efba431d869044b1f671ebbf36f395d34b1f019d8409204dbe861ea8f53a0d6e +size 48096 diff --git a/screenshots/de/features.createroom.impl.root_CreateRoomRootView_Day_4_de.png b/screenshots/de/features.createroom.impl.root_CreateRoomRootView_Day_4_de.png new file mode 100644 index 0000000000..8a4eb88b0a --- /dev/null +++ b/screenshots/de/features.createroom.impl.root_CreateRoomRootView_Day_4_de.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f116908e30f3eae509ab91f269daaff5397373ed73546b698bc8358153a019e8 +size 44462 diff --git a/screenshots/de/features.joinroom.impl_JoinRoomView_Day_10_de.png b/screenshots/de/features.joinroom.impl_JoinRoomView_Day_10_de.png index 5cd0ea0b22..dce73bf2b5 100644 --- a/screenshots/de/features.joinroom.impl_JoinRoomView_Day_10_de.png +++ b/screenshots/de/features.joinroom.impl_JoinRoomView_Day_10_de.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:de336859078455943d159d4d5d7fe710ecbce95baff983c4b74fab67ba6c16df -size 109581 +oid sha256:a399a5f72fd163ad19d6959fbc9f66248301f7b600394ae41712426f9a370921 +size 50313 diff --git a/screenshots/de/features.joinroom.impl_JoinRoomView_Day_11_de.png b/screenshots/de/features.joinroom.impl_JoinRoomView_Day_11_de.png index 1f682b74ff..a1eb4e5627 100644 --- a/screenshots/de/features.joinroom.impl_JoinRoomView_Day_11_de.png +++ b/screenshots/de/features.joinroom.impl_JoinRoomView_Day_11_de.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:19de55a1492cdbb55219720334ac6f5432518462e5a19c4783a32828d7fac899 -size 110605 +oid sha256:330bd1fac2bc5e29713804f6059f9fa8fb0bb0913fe892b0ca5296f6af9cd2a4 +size 48355 diff --git a/screenshots/de/features.joinroom.impl_JoinRoomView_Day_12_de.png b/screenshots/de/features.joinroom.impl_JoinRoomView_Day_12_de.png index afb6b33005..7b9b11004a 100644 --- a/screenshots/de/features.joinroom.impl_JoinRoomView_Day_12_de.png +++ b/screenshots/de/features.joinroom.impl_JoinRoomView_Day_12_de.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:32c5e9a456ea8a2718e50eea5a90f719eff659ed9ada2ab2a9f8da23b2344644 -size 123199 +oid sha256:bfc6154b6ababf2057b430b8e5e91ac36db56d2e7c25542e4673d37d956e8be9 +size 49603 diff --git a/screenshots/de/features.joinroom.impl_JoinRoomView_Day_13_de.png b/screenshots/de/features.joinroom.impl_JoinRoomView_Day_13_de.png new file mode 100644 index 0000000000..e915cbfd56 --- /dev/null +++ b/screenshots/de/features.joinroom.impl_JoinRoomView_Day_13_de.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3d73caacbe926aafac405dbe24cc3adbe64adcbb14d6a189a1e565e4001e2043 +size 34791 diff --git a/screenshots/de/features.joinroom.impl_JoinRoomView_Day_14_de.png b/screenshots/de/features.joinroom.impl_JoinRoomView_Day_14_de.png new file mode 100644 index 0000000000..64c6fecfcb --- /dev/null +++ b/screenshots/de/features.joinroom.impl_JoinRoomView_Day_14_de.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9f91934bed9fcd2fbee19ad1905ae4e6ebd4d54fb6228f19635ff9d0272f6c93 +size 31595 diff --git a/screenshots/de/features.joinroom.impl_JoinRoomView_Day_15_de.png b/screenshots/de/features.joinroom.impl_JoinRoomView_Day_15_de.png new file mode 100644 index 0000000000..039a18afba --- /dev/null +++ b/screenshots/de/features.joinroom.impl_JoinRoomView_Day_15_de.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:32c249acf87d53f5f388a841c2bf56cee3a5d6feae59d98bcbe18e65b1db32ed +size 41299 diff --git a/screenshots/de/features.joinroom.impl_JoinRoomView_Day_16_de.png b/screenshots/de/features.joinroom.impl_JoinRoomView_Day_16_de.png new file mode 100644 index 0000000000..5be5f70731 --- /dev/null +++ b/screenshots/de/features.joinroom.impl_JoinRoomView_Day_16_de.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:174fe7d3e527a760dfec6ee4ea08808c701bc03a41b024994e9475232d0d5aa6 +size 52860 diff --git a/screenshots/de/features.joinroom.impl_JoinRoomView_Day_1_de.png b/screenshots/de/features.joinroom.impl_JoinRoomView_Day_1_de.png index 147fc99887..d4ef1b6d4d 100644 --- a/screenshots/de/features.joinroom.impl_JoinRoomView_Day_1_de.png +++ b/screenshots/de/features.joinroom.impl_JoinRoomView_Day_1_de.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:7d233e3dedc7fd2e0876243e250c24e2cf5e3bfa7ade8f3615c641e781c04ad0 -size 113116 +oid sha256:b60a08065ce81f4ec5e4767311299e5130822fbb2657d52ed5d78cb12850bfb0 +size 42551 diff --git a/screenshots/de/features.joinroom.impl_JoinRoomView_Day_2_de.png b/screenshots/de/features.joinroom.impl_JoinRoomView_Day_2_de.png index 4c40910f49..bddece6596 100644 --- a/screenshots/de/features.joinroom.impl_JoinRoomView_Day_2_de.png +++ b/screenshots/de/features.joinroom.impl_JoinRoomView_Day_2_de.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:da133e7680d61beb4367513f324ee9800bfaa6df338a3fec46ee6b69ef370566 -size 99473 +oid sha256:bde6c76f079cb2d234e626dd06ce12810567290f0a63edc5da006b7d47ecd59f +size 44360 diff --git a/screenshots/de/features.joinroom.impl_JoinRoomView_Day_3_de.png b/screenshots/de/features.joinroom.impl_JoinRoomView_Day_3_de.png index 2fbecb35de..2e41e77fe3 100644 --- a/screenshots/de/features.joinroom.impl_JoinRoomView_Day_3_de.png +++ b/screenshots/de/features.joinroom.impl_JoinRoomView_Day_3_de.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:203615332f2a04e244e1642e5216cf1fbe587451b4e6ef0928a02a8dbdfc83d4 -size 111758 +oid sha256:d6d386b185708760a4ce00aaeef6fc129a54599d7ea8773a57e21b584b48192a +size 32600 diff --git a/screenshots/de/features.joinroom.impl_JoinRoomView_Day_4_de.png b/screenshots/de/features.joinroom.impl_JoinRoomView_Day_4_de.png index a0cee32c3d..7ede2d9d1d 100644 --- a/screenshots/de/features.joinroom.impl_JoinRoomView_Day_4_de.png +++ b/screenshots/de/features.joinroom.impl_JoinRoomView_Day_4_de.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:45d925186a619b7fbe19211ddfc8c052a3571b53ea6fbc914d819473aed9328f -size 112045 +oid sha256:dced13f8f9c27554dd1a7307bd45533c5d46671549e40f6b2d7a648880d501c2 +size 47897 diff --git a/screenshots/de/features.joinroom.impl_JoinRoomView_Day_5_de.png b/screenshots/de/features.joinroom.impl_JoinRoomView_Day_5_de.png index 623dada791..9ae277ec44 100644 --- a/screenshots/de/features.joinroom.impl_JoinRoomView_Day_5_de.png +++ b/screenshots/de/features.joinroom.impl_JoinRoomView_Day_5_de.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:2cbf98f8a0c6208379c64f62c2c49a858d67a60469f0001e496c248736a2e82f -size 120862 +oid sha256:a7215d224c586efad218d642d76792b258e784c1a8430bc9ad9e2d058e9f23c4 +size 33308 diff --git a/screenshots/de/features.joinroom.impl_JoinRoomView_Day_6_de.png b/screenshots/de/features.joinroom.impl_JoinRoomView_Day_6_de.png index 73ad652a38..34dde50b7d 100644 --- a/screenshots/de/features.joinroom.impl_JoinRoomView_Day_6_de.png +++ b/screenshots/de/features.joinroom.impl_JoinRoomView_Day_6_de.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:e79835f689801de55e6c0b0db98b642d58e235d205f23e76c8eca383cbcfa1f4 -size 97392 +oid sha256:5d5e76a8e1c2532b8841f3d7f439674053095d7b8fe2b96292b7a5093191dd2f +size 27503 diff --git a/screenshots/de/features.joinroom.impl_JoinRoomView_Day_7_de.png b/screenshots/de/features.joinroom.impl_JoinRoomView_Day_7_de.png index afba2b6c29..f618849d4e 100644 --- a/screenshots/de/features.joinroom.impl_JoinRoomView_Day_7_de.png +++ b/screenshots/de/features.joinroom.impl_JoinRoomView_Day_7_de.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:fb15d62e0dd87f76ce8c9f8e2909c4f4a5711cfcae89a81cef2bab0468db5054 -size 101310 +oid sha256:84b9ea337a2cd46f34da8ff08e838c38b46bd306f0cb11722290a4065a3e6d01 +size 36941 diff --git a/screenshots/de/features.joinroom.impl_JoinRoomView_Day_8_de.png b/screenshots/de/features.joinroom.impl_JoinRoomView_Day_8_de.png index a3aaef1824..e3c6c5bff3 100644 --- a/screenshots/de/features.joinroom.impl_JoinRoomView_Day_8_de.png +++ b/screenshots/de/features.joinroom.impl_JoinRoomView_Day_8_de.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:5a975e41d142e75969ca6e4148c5a87acc57c3fc78c1a1bac65207b09ce3fe38 -size 113797 +oid sha256:787f2a7755a4675f3ca3e897553fdf83bc11dcb0357d0bd2615dfc8e52c47cb3 +size 34939 diff --git a/screenshots/de/features.joinroom.impl_JoinRoomView_Day_9_de.png b/screenshots/de/features.joinroom.impl_JoinRoomView_Day_9_de.png new file mode 100644 index 0000000000..5c8f515821 --- /dev/null +++ b/screenshots/de/features.joinroom.impl_JoinRoomView_Day_9_de.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:16f7dbc7fba02c10ae6479078eaf4cbe6fc4cde5fbb6b5da1e0343e0dde29774 +size 35629 diff --git a/screenshots/de/features.messages.impl_MessagesView_Day_3_de.png b/screenshots/de/features.messages.impl_MessagesView_Day_3_de.png index f99d9c7d6d..76f714c982 100644 --- a/screenshots/de/features.messages.impl_MessagesView_Day_3_de.png +++ b/screenshots/de/features.messages.impl_MessagesView_Day_3_de.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:d529b4fd0e5b5ba965bfcd6ebaebc3a00e85d06d56ece90e00c9a64bcef4d966 -size 60422 +oid sha256:f81a39d96eb3d1932f00efd8ada780609edc75db69288960829dd4be4551f100 +size 60411 diff --git a/screenshots/de/features.poll.api.pollcontent_PollAnswerViewEndedSelected_Day_0_de.png b/screenshots/de/features.poll.api.pollcontent_PollAnswerViewEndedSelected_Day_0_de.png index 98a0ae335f..f1a58048a0 100644 --- a/screenshots/de/features.poll.api.pollcontent_PollAnswerViewEndedSelected_Day_0_de.png +++ b/screenshots/de/features.poll.api.pollcontent_PollAnswerViewEndedSelected_Day_0_de.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:d47da269f00ff61627923ac38c863decf3b764e95c2d96c460673bff36d79879 -size 21824 +oid sha256:9f47404776f784b39bde50217ce260943fecfe0ca8f57756391785b1b7f227f8 +size 21823 diff --git a/screenshots/de/features.poll.api.pollcontent_PollContentViewCreatorEnded_Day_0_de.png b/screenshots/de/features.poll.api.pollcontent_PollContentViewCreatorEnded_Day_0_de.png index c70824b12d..348564e8b3 100644 --- a/screenshots/de/features.poll.api.pollcontent_PollContentViewCreatorEnded_Day_0_de.png +++ b/screenshots/de/features.poll.api.pollcontent_PollContentViewCreatorEnded_Day_0_de.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:641167924c8b1ce1485a4c2d8f5c62d80c00b26920e7fd8878728b1c5d776766 -size 48691 +oid sha256:eca84ceab1901c61ae1200b8dcb7eb1230daa0cb3f47cd65d85a538f8e515500 +size 48685 diff --git a/screenshots/de/features.poll.api.pollcontent_PollContentViewEnded_Day_0_de.png b/screenshots/de/features.poll.api.pollcontent_PollContentViewEnded_Day_0_de.png index c70824b12d..348564e8b3 100644 --- a/screenshots/de/features.poll.api.pollcontent_PollContentViewEnded_Day_0_de.png +++ b/screenshots/de/features.poll.api.pollcontent_PollContentViewEnded_Day_0_de.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:641167924c8b1ce1485a4c2d8f5c62d80c00b26920e7fd8878728b1c5d776766 -size 48691 +oid sha256:eca84ceab1901c61ae1200b8dcb7eb1230daa0cb3f47cd65d85a538f8e515500 +size 48685 diff --git a/screenshots/de/features.rageshake.impl.bugreport_BugReportView_Day_2_de.png b/screenshots/de/features.rageshake.impl.bugreport_BugReportView_Day_2_de.png index 7167008af8..9bcdda534e 100644 --- a/screenshots/de/features.rageshake.impl.bugreport_BugReportView_Day_2_de.png +++ b/screenshots/de/features.rageshake.impl.bugreport_BugReportView_Day_2_de.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:4a43926c96a5cfefe179091e79083ea3148b4f6d66c4f8356168ce8ba165d6a1 -size 75125 +oid sha256:8667989a8e4791ec4949543251bf72c1de93628ea635ad543030d3b96b6c4dd9 +size 75335 diff --git a/screenshots/de/features.roomaliasresolver.impl_RoomAliasResolverView_Day_1_de.png b/screenshots/de/features.roomaliasresolver.impl_RoomAliasResolverView_Day_1_de.png new file mode 100644 index 0000000000..e3c6c5bff3 --- /dev/null +++ b/screenshots/de/features.roomaliasresolver.impl_RoomAliasResolverView_Day_1_de.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:787f2a7755a4675f3ca3e897553fdf83bc11dcb0357d0bd2615dfc8e52c47cb3 +size 34939 diff --git a/screenshots/de/features.roomaliasresolver.impl_RoomAliasResolverView_Day_2_de.png b/screenshots/de/features.roomaliasresolver.impl_RoomAliasResolverView_Day_2_de.png index 49f1b7fc83..5a362ae534 100644 --- a/screenshots/de/features.roomaliasresolver.impl_RoomAliasResolverView_Day_2_de.png +++ b/screenshots/de/features.roomaliasresolver.impl_RoomAliasResolverView_Day_2_de.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:bb04686d6e7c4e26edacc4cf24a4e29adfcbff0527be23e89f58b7b09aea152f -size 101743 +oid sha256:1a35596ef35cd3fac5b9deb82df89b7066949c8c272bcb484c6ca52434b61a06 +size 27031 diff --git a/screenshots/de/features.roomdetails.impl.invite_RoomInviteMembersView_Day_0_de.png b/screenshots/de/features.roomdetails.impl.invite_RoomInviteMembersView_Day_0_de.png index 28b48c9672..59148bdc37 100644 --- a/screenshots/de/features.roomdetails.impl.invite_RoomInviteMembersView_Day_0_de.png +++ b/screenshots/de/features.roomdetails.impl.invite_RoomInviteMembersView_Day_0_de.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:7c8c2f78930685af16b95527f5781783693f0be8280808b412d8bfa581013aba -size 15649 +oid sha256:e12074298b55bc1e79d39dbf7200933653698417fc3bf9a40775989f33c0d114 +size 15458 diff --git a/screenshots/de/features.roomdetails.impl.invite_RoomInviteMembersView_Day_1_de.png b/screenshots/de/features.roomdetails.impl.invite_RoomInviteMembersView_Day_1_de.png index 22bd6ac780..13d90fca34 100644 --- a/screenshots/de/features.roomdetails.impl.invite_RoomInviteMembersView_Day_1_de.png +++ b/screenshots/de/features.roomdetails.impl.invite_RoomInviteMembersView_Day_1_de.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:bd1a9370e7482947abe8d9ac447116683db85aa8ebc8cca99d12d5cc3246fdca -size 26222 +oid sha256:fe94e25696521e9ed30951109002523f03c27d5bc8c12e934e1e987d3df159b8 +size 26098 diff --git a/screenshots/de/features.roomdetails.impl.members_RoomMemberListViewBanned_Day_0_de.png b/screenshots/de/features.roomdetails.impl.members_RoomMemberListViewBanned_Day_0_de.png index 9a6ec6a07a..305047698a 100644 --- a/screenshots/de/features.roomdetails.impl.members_RoomMemberListViewBanned_Day_0_de.png +++ b/screenshots/de/features.roomdetails.impl.members_RoomMemberListViewBanned_Day_0_de.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:c2c4d3664c29c0260da80d9e10784ee79f7697da67ef07b56a44385961bdddd0 -size 34061 +oid sha256:060b934a586c09671d8d9a8cf836f509cc69119b458a7ab11be295374c3de9a5 +size 33881 diff --git a/screenshots/de/features.roomdetails.impl.members_RoomMemberListViewBanned_Day_1_de.png b/screenshots/de/features.roomdetails.impl.members_RoomMemberListViewBanned_Day_1_de.png index 296d5e1fe3..eba88dc95e 100644 --- a/screenshots/de/features.roomdetails.impl.members_RoomMemberListViewBanned_Day_1_de.png +++ b/screenshots/de/features.roomdetails.impl.members_RoomMemberListViewBanned_Day_1_de.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:9050c23765ecd53f43848512031e9b49dfc07369cb107cbf35538bbfba80ed73 -size 34359 +oid sha256:dd5c940af37b03268f32d57e43d35eec59261fa9674d89ba09d2a234d5427e7b +size 34176 diff --git a/screenshots/de/features.roomdetails.impl.members_RoomMemberListViewBanned_Day_2_de.png b/screenshots/de/features.roomdetails.impl.members_RoomMemberListViewBanned_Day_2_de.png index 9894e67059..e50613340c 100644 --- a/screenshots/de/features.roomdetails.impl.members_RoomMemberListViewBanned_Day_2_de.png +++ b/screenshots/de/features.roomdetails.impl.members_RoomMemberListViewBanned_Day_2_de.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:492892e916387121192876e1e90e8a2a8862f65179e166910e87cf7ba67a2ef5 -size 25745 +oid sha256:bea5fe491eef49d520d53021f3ac2a4184b4b50422be6439f3822200643034ca +size 25558 diff --git a/screenshots/de/features.roomdetails.impl.members_RoomMemberListView_Day_0_de.png b/screenshots/de/features.roomdetails.impl.members_RoomMemberListView_Day_0_de.png index 1abe5f3155..f007819735 100644 --- a/screenshots/de/features.roomdetails.impl.members_RoomMemberListView_Day_0_de.png +++ b/screenshots/de/features.roomdetails.impl.members_RoomMemberListView_Day_0_de.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:471fbb4c02418814037434bda896789e60b0fd7d0d63579b6e368eb1b57a1eb9 -size 47040 +oid sha256:0b8333deb905a5e1431597f59fe58b14591cb2fc424c80804fbb1ce340ce8bb8 +size 46941 diff --git a/screenshots/de/features.roomdetails.impl.members_RoomMemberListView_Day_1_de.png b/screenshots/de/features.roomdetails.impl.members_RoomMemberListView_Day_1_de.png index c71d234d43..c7ee196df8 100644 --- a/screenshots/de/features.roomdetails.impl.members_RoomMemberListView_Day_1_de.png +++ b/screenshots/de/features.roomdetails.impl.members_RoomMemberListView_Day_1_de.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:20f7a2b75af02a76ef6d3ca99e5babeca32e1a25de075385e0a7f0965d6dee80 -size 12708 +oid sha256:c263b0b8fd4c6bdf53118aa5ed06ef919ae5973ed370580cd3d6290c455f9c39 +size 12524 diff --git a/screenshots/de/features.roomdetails.impl.members_RoomMemberListView_Day_2_de.png b/screenshots/de/features.roomdetails.impl.members_RoomMemberListView_Day_2_de.png index 86a2ae8a04..4bdd05fb18 100644 --- a/screenshots/de/features.roomdetails.impl.members_RoomMemberListView_Day_2_de.png +++ b/screenshots/de/features.roomdetails.impl.members_RoomMemberListView_Day_2_de.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:545e31ee319083c052eb97fb54cac5e4f97ac3d199289bdb544dda908fc2e941 -size 14062 +oid sha256:1fc655569ee74f678cf7355bc2cd69349d119c5bee233604f4c11815766371e8 +size 13876 diff --git a/screenshots/de/features.roomdetails.impl.members_RoomMemberListView_Day_3_de.png b/screenshots/de/features.roomdetails.impl.members_RoomMemberListView_Day_3_de.png index c71d234d43..c7ee196df8 100644 --- a/screenshots/de/features.roomdetails.impl.members_RoomMemberListView_Day_3_de.png +++ b/screenshots/de/features.roomdetails.impl.members_RoomMemberListView_Day_3_de.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:20f7a2b75af02a76ef6d3ca99e5babeca32e1a25de075385e0a7f0965d6dee80 -size 12708 +oid sha256:c263b0b8fd4c6bdf53118aa5ed06ef919ae5973ed370580cd3d6290c455f9c39 +size 12524 diff --git a/screenshots/de/features.roomdetails.impl.members_RoomMemberListView_Day_8_de.png b/screenshots/de/features.roomdetails.impl.members_RoomMemberListView_Day_8_de.png index 8055489688..9886eb1f07 100644 --- a/screenshots/de/features.roomdetails.impl.members_RoomMemberListView_Day_8_de.png +++ b/screenshots/de/features.roomdetails.impl.members_RoomMemberListView_Day_8_de.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:1f36c4fc25cfc9ba31e564d5c0f5520f4f3b08eb7bf839d6ed35bc4e1e1c9898 -size 21857 +oid sha256:7f29deb95619350659f5c1932c72d06edb952c06bb894d2afec87282503ce266 +size 21647 diff --git a/screenshots/de/features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Day_0_de.png b/screenshots/de/features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Day_0_de.png index 88f9bc02cc..ed7482c50a 100644 --- a/screenshots/de/features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Day_0_de.png +++ b/screenshots/de/features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Day_0_de.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:821fffec529240bef83cb0230fd262fa8775d07fbf9775e5af4bced0597b7384 -size 16283 +oid sha256:5a2c8c098a7d8f23342f561de6ab7f6edacdbe4fe5eeec53428e19a2ff2dd078 +size 16089 diff --git a/screenshots/de/features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Day_10_de.png b/screenshots/de/features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Day_10_de.png index f4da3cdc35..71af31f332 100644 --- a/screenshots/de/features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Day_10_de.png +++ b/screenshots/de/features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Day_10_de.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:2400bc1dd8fc0b1a8fe9b31724f28cbcdc26cf7824ae3ac49f289e9192fba5eb -size 51854 +oid sha256:133864d58cc04374073951dc02d58662260bdd9c2017a09f4049fc346ce3550b +size 51721 diff --git a/screenshots/de/features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Day_1_de.png b/screenshots/de/features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Day_1_de.png index 0ceaad4567..1e4f297013 100644 --- a/screenshots/de/features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Day_1_de.png +++ b/screenshots/de/features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Day_1_de.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:72a5fff0aa68f63d730611c91f9a83092bb9ff93c398e04c33f434e4bc55ef59 -size 73466 +oid sha256:6e964c116b3dd244021abbeb70e0a612e1d913b306f7d5aaab759f6fb101d086 +size 73293 diff --git a/screenshots/de/features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Day_2_de.png b/screenshots/de/features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Day_2_de.png index 152d19c0d4..6a4b90c0a7 100644 --- a/screenshots/de/features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Day_2_de.png +++ b/screenshots/de/features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Day_2_de.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:cc88eb3057bb53e39f63b66d9f209ab1a0ff1baf981c708291c10d0924f12e3d -size 66529 +oid sha256:18fe56867c3d0efc4e17b2d08c195fd66ebb4f27df0d6ce567bf5c6133ae42b2 +size 66339 diff --git a/screenshots/de/features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Day_3_de.png b/screenshots/de/features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Day_3_de.png index 9a3f586b9a..cf912dd5cd 100644 --- a/screenshots/de/features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Day_3_de.png +++ b/screenshots/de/features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Day_3_de.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:66e47c84c4eb0235a3f6b6e3525d0dd0b4df538f74a530042b9f07ee6632101f -size 66347 +oid sha256:d327354425d4fe637dfa63e2cc95931dc9f40a75ce88201248e069b06df29a4d +size 66150 diff --git a/screenshots/de/features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Day_4_de.png b/screenshots/de/features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Day_4_de.png index b11456191e..c285ad9b0a 100644 --- a/screenshots/de/features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Day_4_de.png +++ b/screenshots/de/features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Day_4_de.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:9f7137edd680e494c65683501a1b763c8ed60c19a0746ebc4f62204713945247 -size 61311 +oid sha256:b8de342bd67e9dddc743f8716da6c41dffa6e8c1d3fdc64bb092a3561170f71a +size 61148 diff --git a/screenshots/de/features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Day_6_de.png b/screenshots/de/features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Day_6_de.png index 5893185333..ad6ccc4c98 100644 --- a/screenshots/de/features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Day_6_de.png +++ b/screenshots/de/features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Day_6_de.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:4b0c5481c868eb7dc61aca6b5f0232aa1bda2db9f144b2ec3c5b9af38a8d45d1 -size 64488 +oid sha256:02d1579b6994061a9e397049cd7b446a98c9505dd13d72e159e91902928ea889 +size 64377 diff --git a/screenshots/de/features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Day_7_de.png b/screenshots/de/features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Day_7_de.png index b669e7a0db..859c7c4641 100644 --- a/screenshots/de/features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Day_7_de.png +++ b/screenshots/de/features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Day_7_de.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:e20fcee247e6481b0a8572e62406a6ca1860c213d21c6fa0d5dac0c96fd31516 -size 65931 +oid sha256:2c482326554e6872e8aef8cafb0fb5c568ce04749894856bae671b218066555f +size 65834 diff --git a/screenshots/de/features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Day_8_de.png b/screenshots/de/features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Day_8_de.png index b7f4ba7952..ef70ed7164 100644 --- a/screenshots/de/features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Day_8_de.png +++ b/screenshots/de/features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Day_8_de.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:06cfe3f276744cdc2e062713a5f0740fb4f3183e25d9c6e774d03c54b4e0834f -size 55992 +oid sha256:d51626bc080f77c4cfd8166780a4cca6cfb6f587beab7c88cebf131d8d606db6 +size 55879 diff --git a/screenshots/de/features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Day_9_de.png b/screenshots/de/features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Day_9_de.png index 2fa5bd13f9..76a4d898a5 100644 --- a/screenshots/de/features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Day_9_de.png +++ b/screenshots/de/features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Day_9_de.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:8246376167a0ec50efc38d493304380a6c3b74d472d44525001a75f4ca6b5ead -size 68844 +oid sha256:1b2f7973608d2a6cf008240270f42621f6d90640df828f892777ac0b477d11b2 +size 68666 diff --git a/screenshots/de/features.roomdetails.impl.securityandprivacy_SecurityAndPrivacyViewDark_0_de.png b/screenshots/de/features.roomdetails.impl.securityandprivacy_SecurityAndPrivacyViewDark_0_de.png index 72994deb64..8633ecc2d8 100644 --- a/screenshots/de/features.roomdetails.impl.securityandprivacy_SecurityAndPrivacyViewDark_0_de.png +++ b/screenshots/de/features.roomdetails.impl.securityandprivacy_SecurityAndPrivacyViewDark_0_de.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:14d765a01eae72aac266ed43f76dc90d22b7266d7101d0ff0375e57659024b1d -size 47752 +oid sha256:f383344042f1bb7d43d0e3a833a752037027fb0001ebd6cc40ff021d3ba6e46c +size 48565 diff --git a/screenshots/de/features.roomdetails.impl.securityandprivacy_SecurityAndPrivacyViewDark_1_de.png b/screenshots/de/features.roomdetails.impl.securityandprivacy_SecurityAndPrivacyViewDark_1_de.png index 7b08fa1778..5055643be0 100644 --- a/screenshots/de/features.roomdetails.impl.securityandprivacy_SecurityAndPrivacyViewDark_1_de.png +++ b/screenshots/de/features.roomdetails.impl.securityandprivacy_SecurityAndPrivacyViewDark_1_de.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:9175dd8bae4d6b6e3dc083df268d54614be201dc892d092920b270159eb21a6f -size 70104 +oid sha256:7cc757a69788e3eb07e4c87bc2dc1aaf71b5ceac308abf5241b3c96855293d37 +size 71472 diff --git a/screenshots/de/features.roomdetails.impl.securityandprivacy_SecurityAndPrivacyViewDark_2_de.png b/screenshots/de/features.roomdetails.impl.securityandprivacy_SecurityAndPrivacyViewDark_2_de.png index c4bcab84d1..fc337bf454 100644 --- a/screenshots/de/features.roomdetails.impl.securityandprivacy_SecurityAndPrivacyViewDark_2_de.png +++ b/screenshots/de/features.roomdetails.impl.securityandprivacy_SecurityAndPrivacyViewDark_2_de.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:25913f33e8fea06f17385015b5b1a88c98b34d99438baea85909c46d7b1b82a0 -size 70236 +oid sha256:784fac4a85c0d55c442662a7fdc98d98c9f7c1169bbbcab6f7bb89aea1b1209c +size 71604 diff --git a/screenshots/de/features.roomdetails.impl.securityandprivacy_SecurityAndPrivacyViewDark_3_de.png b/screenshots/de/features.roomdetails.impl.securityandprivacy_SecurityAndPrivacyViewDark_3_de.png index c9daaac280..aa7bdb9646 100644 --- a/screenshots/de/features.roomdetails.impl.securityandprivacy_SecurityAndPrivacyViewDark_3_de.png +++ b/screenshots/de/features.roomdetails.impl.securityandprivacy_SecurityAndPrivacyViewDark_3_de.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:23d85d68bc2dc825d6805623dbd193a5ef1b412a5cdf900441f01fcb2e318348 -size 68328 +oid sha256:f75d12955843c54ac735cb0b331f99b759355f40e590eccb3cdc773aed70a81f +size 69637 diff --git a/screenshots/de/features.roomdetails.impl.securityandprivacy_SecurityAndPrivacyViewDark_4_de.png b/screenshots/de/features.roomdetails.impl.securityandprivacy_SecurityAndPrivacyViewDark_4_de.png index 0cc055f73c..1420e7677f 100644 --- a/screenshots/de/features.roomdetails.impl.securityandprivacy_SecurityAndPrivacyViewDark_4_de.png +++ b/screenshots/de/features.roomdetails.impl.securityandprivacy_SecurityAndPrivacyViewDark_4_de.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:502681d6b4b59763d7d5a82297431bbaf1ce3d80f355d778df24ce627dfb8a7c -size 69739 +oid sha256:312e50890a21e2a79d39fb768800cccf674628b5b3b66ca05e470063c394a735 +size 71119 diff --git a/screenshots/de/features.roomdetails.impl.securityandprivacy_SecurityAndPrivacyViewDark_5_de.png b/screenshots/de/features.roomdetails.impl.securityandprivacy_SecurityAndPrivacyViewDark_5_de.png index bf80d60947..7ee9e9d9e4 100644 --- a/screenshots/de/features.roomdetails.impl.securityandprivacy_SecurityAndPrivacyViewDark_5_de.png +++ b/screenshots/de/features.roomdetails.impl.securityandprivacy_SecurityAndPrivacyViewDark_5_de.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:2949e189567007b37f6c81e281a8669318db77f3d02457efb544905a010b5354 -size 47515 +oid sha256:2c00b5f7bce75d364cb46d4cfe1f63bd6a9d003fb3f68e32486bd6f60520ae4f +size 48341 diff --git a/screenshots/de/features.roomdetails.impl.securityandprivacy_SecurityAndPrivacyViewDark_6_de.png b/screenshots/de/features.roomdetails.impl.securityandprivacy_SecurityAndPrivacyViewDark_6_de.png index bf80d60947..7ee9e9d9e4 100644 --- a/screenshots/de/features.roomdetails.impl.securityandprivacy_SecurityAndPrivacyViewDark_6_de.png +++ b/screenshots/de/features.roomdetails.impl.securityandprivacy_SecurityAndPrivacyViewDark_6_de.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:2949e189567007b37f6c81e281a8669318db77f3d02457efb544905a010b5354 -size 47515 +oid sha256:2c00b5f7bce75d364cb46d4cfe1f63bd6a9d003fb3f68e32486bd6f60520ae4f +size 48341 diff --git a/screenshots/de/features.roomdetails.impl.securityandprivacy_SecurityAndPrivacyViewDark_7_de.png b/screenshots/de/features.roomdetails.impl.securityandprivacy_SecurityAndPrivacyViewDark_7_de.png index 26a397618f..613aff3c94 100644 --- a/screenshots/de/features.roomdetails.impl.securityandprivacy_SecurityAndPrivacyViewDark_7_de.png +++ b/screenshots/de/features.roomdetails.impl.securityandprivacy_SecurityAndPrivacyViewDark_7_de.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:12cd5e58293045f53097220dabe12cc112b58e048baace0fe16441d882fdb3b6 -size 50175 +oid sha256:536fb85bdbc3e2660db78007728f0fc2f7830a0def406cc7214d484285c19fe2 +size 50439 diff --git a/screenshots/de/features.roomdetails.impl.securityandprivacy_SecurityAndPrivacyViewDark_8_de.png b/screenshots/de/features.roomdetails.impl.securityandprivacy_SecurityAndPrivacyViewDark_8_de.png index 0a0c20b3ef..084e63091e 100644 --- a/screenshots/de/features.roomdetails.impl.securityandprivacy_SecurityAndPrivacyViewDark_8_de.png +++ b/screenshots/de/features.roomdetails.impl.securityandprivacy_SecurityAndPrivacyViewDark_8_de.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:1fb0f53a1226c45749c3c5a610f6b61bc2f32735cd8a8191dba789be6bc233ef -size 41812 +oid sha256:a260d5bda02a37ed6b69370d12b4520c6031bb8934f09e46443b062abd71ffbd +size 42447 diff --git a/screenshots/de/features.roomdetails.impl.securityandprivacy_SecurityAndPrivacyViewLight_0_de.png b/screenshots/de/features.roomdetails.impl.securityandprivacy_SecurityAndPrivacyViewLight_0_de.png index 76af4e60a9..68c28f0a01 100644 --- a/screenshots/de/features.roomdetails.impl.securityandprivacy_SecurityAndPrivacyViewLight_0_de.png +++ b/screenshots/de/features.roomdetails.impl.securityandprivacy_SecurityAndPrivacyViewLight_0_de.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:87fe0c72b32ec3763e55e006ef2e8cd4fa136fe51909c1e2a014acbdf67f5acb -size 49984 +oid sha256:bbeda1904ab02151d6a80c32f0e9402327a06dfc4611d1d7d83bb44b52aed864 +size 50596 diff --git a/screenshots/de/features.roomdetails.impl.securityandprivacy_SecurityAndPrivacyViewLight_1_de.png b/screenshots/de/features.roomdetails.impl.securityandprivacy_SecurityAndPrivacyViewLight_1_de.png index f0cddc93c0..626117ba58 100644 --- a/screenshots/de/features.roomdetails.impl.securityandprivacy_SecurityAndPrivacyViewLight_1_de.png +++ b/screenshots/de/features.roomdetails.impl.securityandprivacy_SecurityAndPrivacyViewLight_1_de.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:20f6f802c0efde55dede378f3931ba91954a343b85e20622254edb9536eb8520 -size 72749 +oid sha256:12c6583a8adcbbe73757d872e29c39c5baab4361424e87a79fff34a9f3dee050 +size 74113 diff --git a/screenshots/de/features.roomdetails.impl.securityandprivacy_SecurityAndPrivacyViewLight_2_de.png b/screenshots/de/features.roomdetails.impl.securityandprivacy_SecurityAndPrivacyViewLight_2_de.png index 5d7c7fa59f..67a0be42e5 100644 --- a/screenshots/de/features.roomdetails.impl.securityandprivacy_SecurityAndPrivacyViewLight_2_de.png +++ b/screenshots/de/features.roomdetails.impl.securityandprivacy_SecurityAndPrivacyViewLight_2_de.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:6c86e60565c0c48536af6eb9335c6fbf8787338f40942873c6e9761546ae69fe -size 72980 +oid sha256:5e1ee6be576030ab071bfbee60b0b6d6f1e81e525e4ba04c84ef7768621be61b +size 74344 diff --git a/screenshots/de/features.roomdetails.impl.securityandprivacy_SecurityAndPrivacyViewLight_3_de.png b/screenshots/de/features.roomdetails.impl.securityandprivacy_SecurityAndPrivacyViewLight_3_de.png index a7601a169f..0bec6dfb4a 100644 --- a/screenshots/de/features.roomdetails.impl.securityandprivacy_SecurityAndPrivacyViewLight_3_de.png +++ b/screenshots/de/features.roomdetails.impl.securityandprivacy_SecurityAndPrivacyViewLight_3_de.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:44c111edf5a396ca4f8e2ec330a4ad911a74c031ff338936c629271831e8c4f6 -size 70624 +oid sha256:81949b7dc7f89b0a3941a853a1ce19e1d184a21d4d1c449b7f052277afed2c16 +size 72031 diff --git a/screenshots/de/features.roomdetails.impl.securityandprivacy_SecurityAndPrivacyViewLight_4_de.png b/screenshots/de/features.roomdetails.impl.securityandprivacy_SecurityAndPrivacyViewLight_4_de.png index 4d3fed3a26..39f27fa76b 100644 --- a/screenshots/de/features.roomdetails.impl.securityandprivacy_SecurityAndPrivacyViewLight_4_de.png +++ b/screenshots/de/features.roomdetails.impl.securityandprivacy_SecurityAndPrivacyViewLight_4_de.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:7771b32497709c40670f60d5fd8f7d8690ced4970944780f9ac300fd616aff2e -size 72328 +oid sha256:6118f7f47e086bfe78ef529f0f5ed3ca71172c4b43787b04046b6afa1f4e54fa +size 73692 diff --git a/screenshots/de/features.roomdetails.impl.securityandprivacy_SecurityAndPrivacyViewLight_5_de.png b/screenshots/de/features.roomdetails.impl.securityandprivacy_SecurityAndPrivacyViewLight_5_de.png index 783d558a72..2a51f8cb63 100644 --- a/screenshots/de/features.roomdetails.impl.securityandprivacy_SecurityAndPrivacyViewLight_5_de.png +++ b/screenshots/de/features.roomdetails.impl.securityandprivacy_SecurityAndPrivacyViewLight_5_de.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:3a5fac2cbe4257347412c281d4bee85ecce39045630a20516290dc120a75eb96 -size 49835 +oid sha256:b76f848c6cd6cd9a5b06a32c56d36d5c988ee26b75540c5794172bac8bc1a3fd +size 50568 diff --git a/screenshots/de/features.roomdetails.impl.securityandprivacy_SecurityAndPrivacyViewLight_6_de.png b/screenshots/de/features.roomdetails.impl.securityandprivacy_SecurityAndPrivacyViewLight_6_de.png index 783d558a72..2a51f8cb63 100644 --- a/screenshots/de/features.roomdetails.impl.securityandprivacy_SecurityAndPrivacyViewLight_6_de.png +++ b/screenshots/de/features.roomdetails.impl.securityandprivacy_SecurityAndPrivacyViewLight_6_de.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:3a5fac2cbe4257347412c281d4bee85ecce39045630a20516290dc120a75eb96 -size 49835 +oid sha256:b76f848c6cd6cd9a5b06a32c56d36d5c988ee26b75540c5794172bac8bc1a3fd +size 50568 diff --git a/screenshots/de/features.roomdetails.impl.securityandprivacy_SecurityAndPrivacyViewLight_7_de.png b/screenshots/de/features.roomdetails.impl.securityandprivacy_SecurityAndPrivacyViewLight_7_de.png index cfca1deb8f..45780e9eb1 100644 --- a/screenshots/de/features.roomdetails.impl.securityandprivacy_SecurityAndPrivacyViewLight_7_de.png +++ b/screenshots/de/features.roomdetails.impl.securityandprivacy_SecurityAndPrivacyViewLight_7_de.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:33974316edc62a80fa1279aebaf875449b721826c0696f0f280c7f966195dfa5 -size 52473 +oid sha256:025c1831c0817136766324c982006a8a8c075845fdf27557155d06edb24f9bf0 +size 52759 diff --git a/screenshots/de/features.roomdetails.impl.securityandprivacy_SecurityAndPrivacyViewLight_8_de.png b/screenshots/de/features.roomdetails.impl.securityandprivacy_SecurityAndPrivacyViewLight_8_de.png index 3382031c79..a0b9e5d656 100644 --- a/screenshots/de/features.roomdetails.impl.securityandprivacy_SecurityAndPrivacyViewLight_8_de.png +++ b/screenshots/de/features.roomdetails.impl.securityandprivacy_SecurityAndPrivacyViewLight_8_de.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:308c12cb5c1db09b7cb0ae42504b9f5df790f03e142ff023480451adeaa2f102 -size 43148 +oid sha256:db1a8f64d38169318cc4cfeaa743693d4aa5749275fbde0e531ba5ddc2752521 +size 43844 diff --git a/screenshots/de/features.userprofile.shared_UserProfileView_Day_8_de.png b/screenshots/de/features.userprofile.shared_UserProfileView_Day_8_de.png new file mode 100644 index 0000000000..2f6c5ca841 --- /dev/null +++ b/screenshots/de/features.userprofile.shared_UserProfileView_Day_8_de.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b9bee04a897472cb60541b6598fff904138061be4021d01b3ee65264868dc47e +size 37343 diff --git a/screenshots/de/features.verifysession.impl.incoming_IncomingVerificationView_Day_6_de.png b/screenshots/de/features.verifysession.impl.incoming_IncomingVerificationView_Day_6_de.png index d7e91ecc8c..b1a584694a 100644 --- a/screenshots/de/features.verifysession.impl.incoming_IncomingVerificationView_Day_6_de.png +++ b/screenshots/de/features.verifysession.impl.incoming_IncomingVerificationView_Day_6_de.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:c02bd36e06f22e03032829e6bc3a291bf8706fda27e5cbd56138c3cd036e14ea -size 34833 +oid sha256:c9c7c1d0b44e6b64d3e8a9122bbd928996140b35c963ccf4bcfc89414e796c7d +size 34784 diff --git a/screenshots/de/features.verifysession.impl.incoming_IncomingVerificationView_Day_7_de.png b/screenshots/de/features.verifysession.impl.incoming_IncomingVerificationView_Day_7_de.png index d7e91ecc8c..b1a584694a 100644 --- a/screenshots/de/features.verifysession.impl.incoming_IncomingVerificationView_Day_7_de.png +++ b/screenshots/de/features.verifysession.impl.incoming_IncomingVerificationView_Day_7_de.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:c02bd36e06f22e03032829e6bc3a291bf8706fda27e5cbd56138c3cd036e14ea -size 34833 +oid sha256:c9c7c1d0b44e6b64d3e8a9122bbd928996140b35c963ccf4bcfc89414e796c7d +size 34784 diff --git a/screenshots/de/libraries.matrix.ui.components_CreateDmConfirmationBottomSheet_Day_0_de.png b/screenshots/de/libraries.matrix.ui.components_CreateDmConfirmationBottomSheet_Day_0_de.png new file mode 100644 index 0000000000..57e38e94ac --- /dev/null +++ b/screenshots/de/libraries.matrix.ui.components_CreateDmConfirmationBottomSheet_Day_0_de.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:93dfdc0e4adfe743a67dd0bf94f651f032c31deee64ca6345a82a1b664f7b117 +size 28570 diff --git a/screenshots/de/libraries.matrix.ui.components_CreateDmConfirmationBottomSheet_Day_1_de.png b/screenshots/de/libraries.matrix.ui.components_CreateDmConfirmationBottomSheet_Day_1_de.png new file mode 100644 index 0000000000..517fe0fa4f --- /dev/null +++ b/screenshots/de/libraries.matrix.ui.components_CreateDmConfirmationBottomSheet_Day_1_de.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:eab77026323f4221a228c446703b565044e143dc5688269a77966d605464343c +size 26943 diff --git a/screenshots/de/libraries.roomselect.impl_RoomSelectView_Day_0_de.png b/screenshots/de/libraries.roomselect.impl_RoomSelectView_Day_0_de.png index b6d9281746..3b66447591 100644 --- a/screenshots/de/libraries.roomselect.impl_RoomSelectView_Day_0_de.png +++ b/screenshots/de/libraries.roomselect.impl_RoomSelectView_Day_0_de.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:cd763383c2d6f47b24dfe3f47d278973e29b00450096ff6f949931aa09ca75f8 -size 14089 +oid sha256:6ff19ac2b9dbf379714490d1c8b6b7a84e88f2227bcbb3fd693729cf97ce397c +size 13959 diff --git a/screenshots/de/libraries.roomselect.impl_RoomSelectView_Day_2_de.png b/screenshots/de/libraries.roomselect.impl_RoomSelectView_Day_2_de.png index ace652b5df..48294c4a85 100644 --- a/screenshots/de/libraries.roomselect.impl_RoomSelectView_Day_2_de.png +++ b/screenshots/de/libraries.roomselect.impl_RoomSelectView_Day_2_de.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:f0bfdf376aea0bd2954f29415ae0f494a18d7182b6da2cb71a2199ff4e53a380 -size 32427 +oid sha256:5b11f9a61532b3b5b7179bbae28cd9834128ed31b5b2d6fa18a5b58b87840c6d +size 32291 diff --git a/screenshots/de/libraries.roomselect.impl_RoomSelectView_Day_5_de.png b/screenshots/de/libraries.roomselect.impl_RoomSelectView_Day_5_de.png index 4cce3588aa..cee48fe4c4 100644 --- a/screenshots/de/libraries.roomselect.impl_RoomSelectView_Day_5_de.png +++ b/screenshots/de/libraries.roomselect.impl_RoomSelectView_Day_5_de.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:98501963992b0a158c299eaba73af2d3de09c8d73e6ef35b7042c291ce21c32e -size 30102 +oid sha256:3f506cdaf8275b1174541b7f50e19f5a2b7f6bd07136333392fbeac8449b8f38 +size 29963 diff --git a/screenshots/html/data.js b/screenshots/html/data.js index 9fa9c53236..2f1ee47dfb 100644 --- a/screenshots/html/data.js +++ b/screenshots/html/data.js @@ -1,60 +1,60 @@ // Generated file, do not edit export const screenshots = [ ["en","en-dark","de",], -["features.preferences.impl.about_AboutView_Day_0_en","features.preferences.impl.about_AboutView_Night_0_en",20119,], +["features.preferences.impl.about_AboutView_Day_0_en","features.preferences.impl.about_AboutView_Night_0_en",20132,], ["features.invite.impl.response_AcceptDeclineInviteView_Day_0_en","features.invite.impl.response_AcceptDeclineInviteView_Night_0_en",0,], -["features.invite.impl.response_AcceptDeclineInviteView_Day_1_en","features.invite.impl.response_AcceptDeclineInviteView_Night_1_en",20119,], -["features.invite.impl.response_AcceptDeclineInviteView_Day_2_en","features.invite.impl.response_AcceptDeclineInviteView_Night_2_en",20119,], -["features.invite.impl.response_AcceptDeclineInviteView_Day_3_en","features.invite.impl.response_AcceptDeclineInviteView_Night_3_en",20119,], -["features.invite.impl.response_AcceptDeclineInviteView_Day_4_en","features.invite.impl.response_AcceptDeclineInviteView_Night_4_en",20119,], -["features.logout.impl_AccountDeactivationView_Day_0_en","features.logout.impl_AccountDeactivationView_Night_0_en",20119,], -["features.logout.impl_AccountDeactivationView_Day_1_en","features.logout.impl_AccountDeactivationView_Night_1_en",20119,], -["features.logout.impl_AccountDeactivationView_Day_2_en","features.logout.impl_AccountDeactivationView_Night_2_en",20119,], -["features.logout.impl_AccountDeactivationView_Day_3_en","features.logout.impl_AccountDeactivationView_Night_3_en",20119,], -["features.logout.impl_AccountDeactivationView_Day_4_en","features.logout.impl_AccountDeactivationView_Night_4_en",20119,], +["features.invite.impl.response_AcceptDeclineInviteView_Day_1_en","features.invite.impl.response_AcceptDeclineInviteView_Night_1_en",20132,], +["features.invite.impl.response_AcceptDeclineInviteView_Day_2_en","features.invite.impl.response_AcceptDeclineInviteView_Night_2_en",20132,], +["features.invite.impl.response_AcceptDeclineInviteView_Day_3_en","features.invite.impl.response_AcceptDeclineInviteView_Night_3_en",20132,], +["features.invite.impl.response_AcceptDeclineInviteView_Day_4_en","features.invite.impl.response_AcceptDeclineInviteView_Night_4_en",20132,], +["features.logout.impl_AccountDeactivationView_Day_0_en","features.logout.impl_AccountDeactivationView_Night_0_en",20132,], +["features.logout.impl_AccountDeactivationView_Day_1_en","features.logout.impl_AccountDeactivationView_Night_1_en",20132,], +["features.logout.impl_AccountDeactivationView_Day_2_en","features.logout.impl_AccountDeactivationView_Night_2_en",20132,], +["features.logout.impl_AccountDeactivationView_Day_3_en","features.logout.impl_AccountDeactivationView_Night_3_en",20132,], +["features.logout.impl_AccountDeactivationView_Day_4_en","features.logout.impl_AccountDeactivationView_Night_4_en",20132,], ["features.login.impl.accountprovider_AccountProviderView_Day_0_en","features.login.impl.accountprovider_AccountProviderView_Night_0_en",0,], ["features.login.impl.accountprovider_AccountProviderView_Day_1_en","features.login.impl.accountprovider_AccountProviderView_Night_1_en",0,], ["features.login.impl.accountprovider_AccountProviderView_Day_2_en","features.login.impl.accountprovider_AccountProviderView_Night_2_en",0,], ["features.login.impl.accountprovider_AccountProviderView_Day_3_en","features.login.impl.accountprovider_AccountProviderView_Night_3_en",0,], ["features.messages.impl.actionlist_ActionListViewContent_Day_0_en","features.messages.impl.actionlist_ActionListViewContent_Night_0_en",0,], -["features.messages.impl.actionlist_ActionListViewContent_Day_10_en","features.messages.impl.actionlist_ActionListViewContent_Night_10_en",20119,], -["features.messages.impl.actionlist_ActionListViewContent_Day_11_en","features.messages.impl.actionlist_ActionListViewContent_Night_11_en",20119,], -["features.messages.impl.actionlist_ActionListViewContent_Day_12_en","features.messages.impl.actionlist_ActionListViewContent_Night_12_en",20119,], +["features.messages.impl.actionlist_ActionListViewContent_Day_10_en","features.messages.impl.actionlist_ActionListViewContent_Night_10_en",20132,], +["features.messages.impl.actionlist_ActionListViewContent_Day_11_en","features.messages.impl.actionlist_ActionListViewContent_Night_11_en",20132,], +["features.messages.impl.actionlist_ActionListViewContent_Day_12_en","features.messages.impl.actionlist_ActionListViewContent_Night_12_en",20132,], ["features.messages.impl.actionlist_ActionListViewContent_Day_1_en","features.messages.impl.actionlist_ActionListViewContent_Night_1_en",0,], -["features.messages.impl.actionlist_ActionListViewContent_Day_2_en","features.messages.impl.actionlist_ActionListViewContent_Night_2_en",20119,], -["features.messages.impl.actionlist_ActionListViewContent_Day_3_en","features.messages.impl.actionlist_ActionListViewContent_Night_3_en",20119,], -["features.messages.impl.actionlist_ActionListViewContent_Day_4_en","features.messages.impl.actionlist_ActionListViewContent_Night_4_en",20119,], -["features.messages.impl.actionlist_ActionListViewContent_Day_5_en","features.messages.impl.actionlist_ActionListViewContent_Night_5_en",20119,], -["features.messages.impl.actionlist_ActionListViewContent_Day_6_en","features.messages.impl.actionlist_ActionListViewContent_Night_6_en",20119,], -["features.messages.impl.actionlist_ActionListViewContent_Day_7_en","features.messages.impl.actionlist_ActionListViewContent_Night_7_en",20119,], -["features.messages.impl.actionlist_ActionListViewContent_Day_8_en","features.messages.impl.actionlist_ActionListViewContent_Night_8_en",20119,], -["features.messages.impl.actionlist_ActionListViewContent_Day_9_en","features.messages.impl.actionlist_ActionListViewContent_Night_9_en",20119,], -["features.createroom.impl.addpeople_AddPeopleView_Day_0_en","features.createroom.impl.addpeople_AddPeopleView_Night_0_en",20119,], -["features.createroom.impl.addpeople_AddPeopleView_Day_1_en","features.createroom.impl.addpeople_AddPeopleView_Night_1_en",20119,], -["features.createroom.impl.addpeople_AddPeopleView_Day_2_en","features.createroom.impl.addpeople_AddPeopleView_Night_2_en",20119,], -["features.createroom.impl.addpeople_AddPeopleView_Day_3_en","features.createroom.impl.addpeople_AddPeopleView_Night_3_en",20119,], -["features.preferences.impl.advanced_AdvancedSettingsView_Day_0_en","features.preferences.impl.advanced_AdvancedSettingsView_Night_0_en",20119,], -["features.preferences.impl.advanced_AdvancedSettingsView_Day_1_en","features.preferences.impl.advanced_AdvancedSettingsView_Night_1_en",20119,], -["features.preferences.impl.advanced_AdvancedSettingsView_Day_2_en","features.preferences.impl.advanced_AdvancedSettingsView_Night_2_en",20119,], -["features.preferences.impl.advanced_AdvancedSettingsView_Day_3_en","features.preferences.impl.advanced_AdvancedSettingsView_Night_3_en",20119,], -["features.preferences.impl.advanced_AdvancedSettingsView_Day_4_en","features.preferences.impl.advanced_AdvancedSettingsView_Night_4_en",20119,], -["libraries.designsystem.components.dialogs_AlertDialogContent_Dialogs_en","",20119,], -["libraries.designsystem.components.dialogs_AlertDialog_Day_0_en","libraries.designsystem.components.dialogs_AlertDialog_Night_0_en",20119,], -["features.analytics.impl_AnalyticsOptInView_Day_0_en","features.analytics.impl_AnalyticsOptInView_Night_0_en",20119,], -["features.analytics.api.preferences_AnalyticsPreferencesView_Day_0_en","features.analytics.api.preferences_AnalyticsPreferencesView_Night_0_en",20119,], -["features.preferences.impl.analytics_AnalyticsSettingsView_Day_0_en","features.preferences.impl.analytics_AnalyticsSettingsView_Night_0_en",20119,], +["features.messages.impl.actionlist_ActionListViewContent_Day_2_en","features.messages.impl.actionlist_ActionListViewContent_Night_2_en",20132,], +["features.messages.impl.actionlist_ActionListViewContent_Day_3_en","features.messages.impl.actionlist_ActionListViewContent_Night_3_en",20132,], +["features.messages.impl.actionlist_ActionListViewContent_Day_4_en","features.messages.impl.actionlist_ActionListViewContent_Night_4_en",20132,], +["features.messages.impl.actionlist_ActionListViewContent_Day_5_en","features.messages.impl.actionlist_ActionListViewContent_Night_5_en",20132,], +["features.messages.impl.actionlist_ActionListViewContent_Day_6_en","features.messages.impl.actionlist_ActionListViewContent_Night_6_en",20132,], +["features.messages.impl.actionlist_ActionListViewContent_Day_7_en","features.messages.impl.actionlist_ActionListViewContent_Night_7_en",20132,], +["features.messages.impl.actionlist_ActionListViewContent_Day_8_en","features.messages.impl.actionlist_ActionListViewContent_Night_8_en",20132,], +["features.messages.impl.actionlist_ActionListViewContent_Day_9_en","features.messages.impl.actionlist_ActionListViewContent_Night_9_en",20132,], +["features.createroom.impl.addpeople_AddPeopleView_Day_0_en","features.createroom.impl.addpeople_AddPeopleView_Night_0_en",20132,], +["features.createroom.impl.addpeople_AddPeopleView_Day_1_en","features.createroom.impl.addpeople_AddPeopleView_Night_1_en",20132,], +["features.createroom.impl.addpeople_AddPeopleView_Day_2_en","features.createroom.impl.addpeople_AddPeopleView_Night_2_en",20132,], +["features.createroom.impl.addpeople_AddPeopleView_Day_3_en","features.createroom.impl.addpeople_AddPeopleView_Night_3_en",20132,], +["features.preferences.impl.advanced_AdvancedSettingsView_Day_0_en","features.preferences.impl.advanced_AdvancedSettingsView_Night_0_en",20132,], +["features.preferences.impl.advanced_AdvancedSettingsView_Day_1_en","features.preferences.impl.advanced_AdvancedSettingsView_Night_1_en",20132,], +["features.preferences.impl.advanced_AdvancedSettingsView_Day_2_en","features.preferences.impl.advanced_AdvancedSettingsView_Night_2_en",20132,], +["features.preferences.impl.advanced_AdvancedSettingsView_Day_3_en","features.preferences.impl.advanced_AdvancedSettingsView_Night_3_en",20132,], +["features.preferences.impl.advanced_AdvancedSettingsView_Day_4_en","features.preferences.impl.advanced_AdvancedSettingsView_Night_4_en",20132,], +["libraries.designsystem.components.dialogs_AlertDialogContent_Dialogs_en","",20132,], +["libraries.designsystem.components.dialogs_AlertDialog_Day_0_en","libraries.designsystem.components.dialogs_AlertDialog_Night_0_en",20132,], +["features.analytics.impl_AnalyticsOptInView_Day_0_en","features.analytics.impl_AnalyticsOptInView_Night_0_en",20132,], +["features.analytics.api.preferences_AnalyticsPreferencesView_Day_0_en","features.analytics.api.preferences_AnalyticsPreferencesView_Night_0_en",20132,], +["features.preferences.impl.analytics_AnalyticsSettingsView_Day_0_en","features.preferences.impl.analytics_AnalyticsSettingsView_Night_0_en",20132,], ["libraries.designsystem.components_Announcement_Day_0_en","libraries.designsystem.components_Announcement_Night_0_en",0,], -["services.apperror.impl_AppErrorView_Day_0_en","services.apperror.impl_AppErrorView_Night_0_en",20119,], +["services.apperror.impl_AppErrorView_Day_0_en","services.apperror.impl_AppErrorView_Night_0_en",20132,], ["libraries.designsystem.components.async_AsyncActionView_Day_0_en","libraries.designsystem.components.async_AsyncActionView_Night_0_en",0,], -["libraries.designsystem.components.async_AsyncActionView_Day_1_en","libraries.designsystem.components.async_AsyncActionView_Night_1_en",20119,], +["libraries.designsystem.components.async_AsyncActionView_Day_1_en","libraries.designsystem.components.async_AsyncActionView_Night_1_en",20132,], ["libraries.designsystem.components.async_AsyncActionView_Day_2_en","libraries.designsystem.components.async_AsyncActionView_Night_2_en",0,], -["libraries.designsystem.components.async_AsyncActionView_Day_3_en","libraries.designsystem.components.async_AsyncActionView_Night_3_en",20119,], +["libraries.designsystem.components.async_AsyncActionView_Day_3_en","libraries.designsystem.components.async_AsyncActionView_Night_3_en",20132,], ["libraries.designsystem.components.async_AsyncActionView_Day_4_en","libraries.designsystem.components.async_AsyncActionView_Night_4_en",0,], -["libraries.designsystem.components.async_AsyncFailure_Day_0_en","libraries.designsystem.components.async_AsyncFailure_Night_0_en",20119,], +["libraries.designsystem.components.async_AsyncFailure_Day_0_en","libraries.designsystem.components.async_AsyncFailure_Night_0_en",20132,], ["libraries.designsystem.components.async_AsyncIndicatorFailure_Day_0_en","libraries.designsystem.components.async_AsyncIndicatorFailure_Night_0_en",0,], ["libraries.designsystem.components.async_AsyncIndicatorLoading_Day_0_en","libraries.designsystem.components.async_AsyncIndicatorLoading_Night_0_en",0,], ["libraries.designsystem.components.async_AsyncLoading_Day_0_en","libraries.designsystem.components.async_AsyncLoading_Night_0_en",0,], -["features.messages.impl.messagecomposer_AttachmentSourcePickerMenu_Day_0_en","features.messages.impl.messagecomposer_AttachmentSourcePickerMenu_Night_0_en",20119,], +["features.messages.impl.messagecomposer_AttachmentSourcePickerMenu_Day_0_en","features.messages.impl.messagecomposer_AttachmentSourcePickerMenu_Night_0_en",20132,], ["libraries.matrix.ui.components_AttachmentThumbnail_Day_0_en","libraries.matrix.ui.components_AttachmentThumbnail_Night_0_en",0,], ["libraries.matrix.ui.components_AttachmentThumbnail_Day_1_en","libraries.matrix.ui.components_AttachmentThumbnail_Night_1_en",0,], ["libraries.matrix.ui.components_AttachmentThumbnail_Day_2_en","libraries.matrix.ui.components_AttachmentThumbnail_Night_2_en",0,], @@ -64,18 +64,18 @@ export const screenshots = [ ["libraries.matrix.ui.components_AttachmentThumbnail_Day_6_en","libraries.matrix.ui.components_AttachmentThumbnail_Night_6_en",0,], ["libraries.matrix.ui.components_AttachmentThumbnail_Day_7_en","libraries.matrix.ui.components_AttachmentThumbnail_Night_7_en",0,], ["libraries.matrix.ui.components_AttachmentThumbnail_Day_8_en","libraries.matrix.ui.components_AttachmentThumbnail_Night_8_en",0,], -["features.messages.impl.attachments.preview_AttachmentsView_0_en","",20119,], -["features.messages.impl.attachments.preview_AttachmentsView_1_en","",20119,], -["features.messages.impl.attachments.preview_AttachmentsView_2_en","",20119,], -["features.messages.impl.attachments.preview_AttachmentsView_3_en","",20119,], -["features.messages.impl.attachments.preview_AttachmentsView_4_en","",20119,], -["features.messages.impl.attachments.preview_AttachmentsView_5_en","",20119,], +["features.messages.impl.attachments.preview_AttachmentsView_0_en","",20132,], +["features.messages.impl.attachments.preview_AttachmentsView_1_en","",20132,], +["features.messages.impl.attachments.preview_AttachmentsView_2_en","",20132,], +["features.messages.impl.attachments.preview_AttachmentsView_3_en","",20132,], +["features.messages.impl.attachments.preview_AttachmentsView_4_en","",20132,], +["features.messages.impl.attachments.preview_AttachmentsView_5_en","",20132,], ["features.messages.impl.attachments.preview_AttachmentsView_6_en","",0,], -["features.messages.impl.attachments.preview_AttachmentsView_7_en","",20119,], +["features.messages.impl.attachments.preview_AttachmentsView_7_en","",20132,], ["libraries.mediaviewer.impl.gallery.ui_AudioItemView_Day_0_en","libraries.mediaviewer.impl.gallery.ui_AudioItemView_Night_0_en",0,], ["libraries.mediaviewer.impl.gallery.ui_AudioItemView_Day_1_en","libraries.mediaviewer.impl.gallery.ui_AudioItemView_Night_1_en",0,], ["libraries.mediaviewer.impl.gallery.ui_AudioItemView_Day_2_en","libraries.mediaviewer.impl.gallery.ui_AudioItemView_Night_2_en",0,], -["libraries.matrix.ui.components_AvatarActionBottomSheet_Day_0_en","libraries.matrix.ui.components_AvatarActionBottomSheet_Night_0_en",20119,], +["libraries.matrix.ui.components_AvatarActionBottomSheet_Day_0_en","libraries.matrix.ui.components_AvatarActionBottomSheet_Night_0_en",20132,], ["features.knockrequests.impl.banner_AvatarRowRtl_Day_0_en","features.knockrequests.impl.banner_AvatarRowRtl_Night_0_en",0,], ["features.knockrequests.impl.banner_AvatarRowRtl_Day_1_en","features.knockrequests.impl.banner_AvatarRowRtl_Night_1_en",0,], ["features.knockrequests.impl.banner_AvatarRowRtl_Day_2_en","features.knockrequests.impl.banner_AvatarRowRtl_Night_2_en",0,], @@ -171,19 +171,22 @@ export const screenshots = [ ["libraries.designsystem.components.avatar_Avatar_Avatars_84_en","",0,], ["libraries.designsystem.components.avatar_Avatar_Avatars_85_en","",0,], ["libraries.designsystem.components.avatar_Avatar_Avatars_86_en","",0,], +["libraries.designsystem.components.avatar_Avatar_Avatars_87_en","",0,], +["libraries.designsystem.components.avatar_Avatar_Avatars_88_en","",0,], +["libraries.designsystem.components.avatar_Avatar_Avatars_89_en","",0,], ["libraries.designsystem.components.avatar_Avatar_Avatars_8_en","",0,], ["libraries.designsystem.components.avatar_Avatar_Avatars_9_en","",0,], ["libraries.designsystem.components.button_BackButton_Buttons_en","",0,], ["libraries.designsystem.components_Badge_Day_0_en","libraries.designsystem.components_Badge_Night_0_en",0,], ["libraries.designsystem.components_BigCheckmark_Day_0_en","libraries.designsystem.components_BigCheckmark_Night_0_en",0,], ["libraries.designsystem.components_BigIcon_Day_0_en","libraries.designsystem.components_BigIcon_Night_0_en",0,], -["features.preferences.impl.blockedusers_BlockedUsersView_Day_0_en","features.preferences.impl.blockedusers_BlockedUsersView_Night_0_en",20119,], -["features.preferences.impl.blockedusers_BlockedUsersView_Day_1_en","features.preferences.impl.blockedusers_BlockedUsersView_Night_1_en",20119,], -["features.preferences.impl.blockedusers_BlockedUsersView_Day_2_en","features.preferences.impl.blockedusers_BlockedUsersView_Night_2_en",20119,], -["features.preferences.impl.blockedusers_BlockedUsersView_Day_3_en","features.preferences.impl.blockedusers_BlockedUsersView_Night_3_en",20119,], -["features.preferences.impl.blockedusers_BlockedUsersView_Day_4_en","features.preferences.impl.blockedusers_BlockedUsersView_Night_4_en",20119,], -["features.preferences.impl.blockedusers_BlockedUsersView_Day_5_en","features.preferences.impl.blockedusers_BlockedUsersView_Night_5_en",20119,], -["features.preferences.impl.blockedusers_BlockedUsersView_Day_6_en","features.preferences.impl.blockedusers_BlockedUsersView_Night_6_en",20119,], +["features.preferences.impl.blockedusers_BlockedUsersView_Day_0_en","features.preferences.impl.blockedusers_BlockedUsersView_Night_0_en",20132,], +["features.preferences.impl.blockedusers_BlockedUsersView_Day_1_en","features.preferences.impl.blockedusers_BlockedUsersView_Night_1_en",20132,], +["features.preferences.impl.blockedusers_BlockedUsersView_Day_2_en","features.preferences.impl.blockedusers_BlockedUsersView_Night_2_en",20132,], +["features.preferences.impl.blockedusers_BlockedUsersView_Day_3_en","features.preferences.impl.blockedusers_BlockedUsersView_Night_3_en",20132,], +["features.preferences.impl.blockedusers_BlockedUsersView_Day_4_en","features.preferences.impl.blockedusers_BlockedUsersView_Night_4_en",20132,], +["features.preferences.impl.blockedusers_BlockedUsersView_Day_5_en","features.preferences.impl.blockedusers_BlockedUsersView_Night_5_en",20132,], +["features.preferences.impl.blockedusers_BlockedUsersView_Day_6_en","features.preferences.impl.blockedusers_BlockedUsersView_Night_6_en",20132,], ["libraries.designsystem.components_BloomInitials_Day_0_en","libraries.designsystem.components_BloomInitials_Night_0_en",0,], ["libraries.designsystem.components_BloomInitials_Day_1_en","libraries.designsystem.components_BloomInitials_Night_1_en",0,], ["libraries.designsystem.components_BloomInitials_Day_2_en","libraries.designsystem.components_BloomInitials_Night_2_en",0,], @@ -194,123 +197,126 @@ export const screenshots = [ ["libraries.designsystem.components_BloomInitials_Day_7_en","libraries.designsystem.components_BloomInitials_Night_7_en",0,], ["libraries.designsystem.components_Bloom_Day_0_en","libraries.designsystem.components_Bloom_Night_0_en",0,], ["libraries.designsystem.theme.components_BottomSheetDragHandle_Day_0_en","libraries.designsystem.theme.components_BottomSheetDragHandle_Night_0_en",0,], -["features.rageshake.impl.bugreport_BugReportView_Day_0_en","features.rageshake.impl.bugreport_BugReportView_Night_0_en",20119,], -["features.rageshake.impl.bugreport_BugReportView_Day_1_en","features.rageshake.impl.bugreport_BugReportView_Night_1_en",20119,], -["features.rageshake.impl.bugreport_BugReportView_Day_2_en","features.rageshake.impl.bugreport_BugReportView_Night_2_en",20119,], -["features.rageshake.impl.bugreport_BugReportView_Day_3_en","features.rageshake.impl.bugreport_BugReportView_Night_3_en",20119,], -["features.rageshake.impl.bugreport_BugReportView_Day_4_en","features.rageshake.impl.bugreport_BugReportView_Night_4_en",20119,], +["features.rageshake.impl.bugreport_BugReportView_Day_0_en","features.rageshake.impl.bugreport_BugReportView_Night_0_en",20132,], +["features.rageshake.impl.bugreport_BugReportView_Day_1_en","features.rageshake.impl.bugreport_BugReportView_Night_1_en",20132,], +["features.rageshake.impl.bugreport_BugReportView_Day_2_en","features.rageshake.impl.bugreport_BugReportView_Night_2_en",20132,], +["features.rageshake.impl.bugreport_BugReportView_Day_3_en","features.rageshake.impl.bugreport_BugReportView_Night_3_en",20132,], +["features.rageshake.impl.bugreport_BugReportView_Day_4_en","features.rageshake.impl.bugreport_BugReportView_Night_4_en",20132,], ["libraries.designsystem.atomic.molecules_ButtonColumnMolecule_Day_0_en","libraries.designsystem.atomic.molecules_ButtonColumnMolecule_Night_0_en",0,], ["libraries.designsystem.atomic.molecules_ButtonRowMolecule_Day_0_en","libraries.designsystem.atomic.molecules_ButtonRowMolecule_Night_0_en",0,], ["features.messages.impl.timeline.components_CallMenuItem_Day_0_en","features.messages.impl.timeline.components_CallMenuItem_Night_0_en",0,], ["features.messages.impl.timeline.components_CallMenuItem_Day_1_en","features.messages.impl.timeline.components_CallMenuItem_Night_1_en",0,], -["features.messages.impl.timeline.components_CallMenuItem_Day_2_en","features.messages.impl.timeline.components_CallMenuItem_Night_2_en",20119,], -["features.messages.impl.timeline.components_CallMenuItem_Day_3_en","features.messages.impl.timeline.components_CallMenuItem_Night_3_en",20119,], +["features.messages.impl.timeline.components_CallMenuItem_Day_2_en","features.messages.impl.timeline.components_CallMenuItem_Night_2_en",20132,], +["features.messages.impl.timeline.components_CallMenuItem_Day_3_en","features.messages.impl.timeline.components_CallMenuItem_Night_3_en",20132,], ["features.messages.impl.timeline.components_CallMenuItem_Day_4_en","features.messages.impl.timeline.components_CallMenuItem_Night_4_en",0,], ["features.call.impl.ui_CallScreenPipView_Day_0_en","features.call.impl.ui_CallScreenPipView_Night_0_en",0,], ["features.call.impl.ui_CallScreenPipView_Day_1_en","features.call.impl.ui_CallScreenPipView_Night_1_en",0,], ["features.call.impl.ui_CallScreenView_Day_0_en","features.call.impl.ui_CallScreenView_Night_0_en",0,], -["features.call.impl.ui_CallScreenView_Day_1_en","features.call.impl.ui_CallScreenView_Night_1_en",20119,], -["features.call.impl.ui_CallScreenView_Day_2_en","features.call.impl.ui_CallScreenView_Night_2_en",20119,], -["features.call.impl.ui_CallScreenView_Day_3_en","features.call.impl.ui_CallScreenView_Night_3_en",20119,], -["libraries.textcomposer_CaptionWarningBottomSheet_Day_0_en","libraries.textcomposer_CaptionWarningBottomSheet_Night_0_en",20119,], -["features.login.impl.screens.changeaccountprovider_ChangeAccountProviderView_Day_0_en","features.login.impl.screens.changeaccountprovider_ChangeAccountProviderView_Night_0_en",20119,], -["features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Day_0_en","features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Night_0_en",20119,], -["features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Day_10_en","features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Night_10_en",20119,], -["features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Day_1_en","features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Night_1_en",20119,], -["features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Day_2_en","features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Night_2_en",20119,], -["features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Day_3_en","features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Night_3_en",20119,], -["features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Day_4_en","features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Night_4_en",20119,], -["features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Day_5_en","features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Night_5_en",20119,], -["features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Day_6_en","features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Night_6_en",20119,], -["features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Day_7_en","features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Night_7_en",20119,], -["features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Day_8_en","features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Night_8_en",20119,], -["features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Day_9_en","features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Night_9_en",20119,], -["features.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_Day_0_en","features.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_Night_0_en",20119,], -["features.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_Day_1_en","features.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_Night_1_en",20119,], -["features.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_Day_2_en","features.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_Night_2_en",20119,], -["features.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_Day_3_en","features.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_Night_3_en",20119,], -["features.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_Day_4_en","features.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_Night_4_en",20119,], -["features.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_Day_5_en","features.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_Night_5_en",20119,], -["features.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_Day_6_en","features.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_Night_6_en",20119,], +["features.call.impl.ui_CallScreenView_Day_1_en","features.call.impl.ui_CallScreenView_Night_1_en",20132,], +["features.call.impl.ui_CallScreenView_Day_2_en","features.call.impl.ui_CallScreenView_Night_2_en",20132,], +["features.call.impl.ui_CallScreenView_Day_3_en","features.call.impl.ui_CallScreenView_Night_3_en",20132,], +["libraries.textcomposer_CaptionWarningBottomSheet_Day_0_en","libraries.textcomposer_CaptionWarningBottomSheet_Night_0_en",20132,], +["features.login.impl.screens.changeaccountprovider_ChangeAccountProviderView_Day_0_en","features.login.impl.screens.changeaccountprovider_ChangeAccountProviderView_Night_0_en",20132,], +["features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Day_0_en","features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Night_0_en",20132,], +["features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Day_10_en","features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Night_10_en",20132,], +["features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Day_1_en","features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Night_1_en",20132,], +["features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Day_2_en","features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Night_2_en",20132,], +["features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Day_3_en","features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Night_3_en",20132,], +["features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Day_4_en","features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Night_4_en",20132,], +["features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Day_5_en","features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Night_5_en",20132,], +["features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Day_6_en","features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Night_6_en",20132,], +["features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Day_7_en","features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Night_7_en",20132,], +["features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Day_8_en","features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Night_8_en",20132,], +["features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Day_9_en","features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Night_9_en",20132,], +["features.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_Day_0_en","features.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_Night_0_en",20132,], +["features.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_Day_1_en","features.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_Night_1_en",20132,], +["features.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_Day_2_en","features.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_Night_2_en",20132,], +["features.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_Day_3_en","features.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_Night_3_en",20132,], +["features.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_Day_4_en","features.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_Night_4_en",20132,], +["features.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_Day_5_en","features.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_Night_5_en",20132,], +["features.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_Day_6_en","features.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_Night_6_en",20132,], ["features.login.impl.changeserver_ChangeServerView_Day_0_en","features.login.impl.changeserver_ChangeServerView_Night_0_en",0,], -["features.login.impl.changeserver_ChangeServerView_Day_1_en","features.login.impl.changeserver_ChangeServerView_Night_1_en",20119,], -["features.login.impl.changeserver_ChangeServerView_Day_2_en","features.login.impl.changeserver_ChangeServerView_Night_2_en",20119,], +["features.login.impl.changeserver_ChangeServerView_Day_1_en","features.login.impl.changeserver_ChangeServerView_Night_1_en",20132,], +["features.login.impl.changeserver_ChangeServerView_Day_2_en","features.login.impl.changeserver_ChangeServerView_Night_2_en",20132,], ["libraries.matrix.ui.components_CheckableResolvedUserRow_en","",0,], -["libraries.matrix.ui.components_CheckableUnresolvedUserRow_en","",20119,], +["libraries.matrix.ui.components_CheckableUnresolvedUserRow_en","",20132,], ["libraries.designsystem.theme.components_Checkboxes_Toggles_en","",0,], ["libraries.designsystem.theme.components_CircularProgressIndicator_Progress_Indicators_en","",0,], ["libraries.designsystem.components_ClickableLinkText_Text_en","",0,], ["libraries.designsystem.theme_ColorAliases_Day_0_en","libraries.designsystem.theme_ColorAliases_Night_0_en",0,], -["libraries.designsystem.atomic.molecules_ComposerAlertMolecule_Day_0_en","libraries.designsystem.atomic.molecules_ComposerAlertMolecule_Night_0_en",20119,], -["libraries.designsystem.atomic.molecules_ComposerAlertMolecule_Day_1_en","libraries.designsystem.atomic.molecules_ComposerAlertMolecule_Night_1_en",20119,], -["libraries.textcomposer_ComposerModeView_Day_0_en","libraries.textcomposer_ComposerModeView_Night_0_en",20119,], +["libraries.designsystem.atomic.molecules_ComposerAlertMolecule_Day_0_en","libraries.designsystem.atomic.molecules_ComposerAlertMolecule_Night_0_en",20132,], +["libraries.designsystem.atomic.molecules_ComposerAlertMolecule_Day_1_en","libraries.designsystem.atomic.molecules_ComposerAlertMolecule_Night_1_en",20132,], +["libraries.textcomposer_ComposerModeView_Day_0_en","libraries.textcomposer_ComposerModeView_Night_0_en",20132,], ["libraries.textcomposer_ComposerModeView_Day_1_en","libraries.textcomposer_ComposerModeView_Night_1_en",0,], ["libraries.textcomposer_ComposerModeView_Day_2_en","libraries.textcomposer_ComposerModeView_Night_2_en",0,], ["libraries.textcomposer_ComposerModeView_Day_3_en","libraries.textcomposer_ComposerModeView_Night_3_en",0,], ["libraries.textcomposer.components_ComposerOptionsButton_Day_0_en","libraries.textcomposer.components_ComposerOptionsButton_Night_0_en",0,], ["libraries.designsystem.components.avatar_CompositeAvatar_Avatars_en","",0,], -["features.createroom.impl.configureroom_ConfigureRoomViewDark_0_en","",20119,], -["features.createroom.impl.configureroom_ConfigureRoomViewDark_1_en","",20119,], -["features.createroom.impl.configureroom_ConfigureRoomViewDark_2_en","",20119,], -["features.createroom.impl.configureroom_ConfigureRoomViewDark_3_en","",20119,], -["features.createroom.impl.configureroom_ConfigureRoomViewDark_4_en","",20119,], -["features.createroom.impl.configureroom_ConfigureRoomViewDark_5_en","",20119,], -["features.createroom.impl.configureroom_ConfigureRoomViewLight_0_en","",20119,], -["features.createroom.impl.configureroom_ConfigureRoomViewLight_1_en","",20119,], -["features.createroom.impl.configureroom_ConfigureRoomViewLight_2_en","",20119,], -["features.createroom.impl.configureroom_ConfigureRoomViewLight_3_en","",20119,], -["features.createroom.impl.configureroom_ConfigureRoomViewLight_4_en","",20119,], -["features.createroom.impl.configureroom_ConfigureRoomViewLight_5_en","",20119,], -["features.login.impl.screens.confirmaccountprovider_ConfirmAccountProviderView_Day_0_en","features.login.impl.screens.confirmaccountprovider_ConfirmAccountProviderView_Night_0_en",20119,], -["features.login.impl.screens.confirmaccountprovider_ConfirmAccountProviderView_Day_1_en","features.login.impl.screens.confirmaccountprovider_ConfirmAccountProviderView_Night_1_en",20119,], -["features.login.impl.screens.confirmaccountprovider_ConfirmAccountProviderView_Day_2_en","features.login.impl.screens.confirmaccountprovider_ConfirmAccountProviderView_Night_2_en",20119,], -["features.roomlist.impl.components_ConfirmRecoveryKeyBanner_Day_0_en","features.roomlist.impl.components_ConfirmRecoveryKeyBanner_Night_0_en",20119,], +["features.createroom.impl.configureroom_ConfigureRoomViewDark_0_en","",20132,], +["features.createroom.impl.configureroom_ConfigureRoomViewDark_1_en","",20132,], +["features.createroom.impl.configureroom_ConfigureRoomViewDark_2_en","",20132,], +["features.createroom.impl.configureroom_ConfigureRoomViewDark_3_en","",20132,], +["features.createroom.impl.configureroom_ConfigureRoomViewDark_4_en","",20132,], +["features.createroom.impl.configureroom_ConfigureRoomViewDark_5_en","",20132,], +["features.createroom.impl.configureroom_ConfigureRoomViewLight_0_en","",20132,], +["features.createroom.impl.configureroom_ConfigureRoomViewLight_1_en","",20132,], +["features.createroom.impl.configureroom_ConfigureRoomViewLight_2_en","",20132,], +["features.createroom.impl.configureroom_ConfigureRoomViewLight_3_en","",20132,], +["features.createroom.impl.configureroom_ConfigureRoomViewLight_4_en","",20132,], +["features.createroom.impl.configureroom_ConfigureRoomViewLight_5_en","",20132,], +["features.login.impl.screens.confirmaccountprovider_ConfirmAccountProviderView_Day_0_en","features.login.impl.screens.confirmaccountprovider_ConfirmAccountProviderView_Night_0_en",20132,], +["features.login.impl.screens.confirmaccountprovider_ConfirmAccountProviderView_Day_1_en","features.login.impl.screens.confirmaccountprovider_ConfirmAccountProviderView_Night_1_en",20132,], +["features.login.impl.screens.confirmaccountprovider_ConfirmAccountProviderView_Day_2_en","features.login.impl.screens.confirmaccountprovider_ConfirmAccountProviderView_Night_2_en",20132,], +["features.roomlist.impl.components_ConfirmRecoveryKeyBanner_Day_0_en","features.roomlist.impl.components_ConfirmRecoveryKeyBanner_Night_0_en",20132,], ["libraries.designsystem.components.dialogs_ConfirmationDialogContent_Dialogs_en","",0,], ["libraries.designsystem.components.dialogs_ConfirmationDialog_Day_0_en","libraries.designsystem.components.dialogs_ConfirmationDialog_Night_0_en",0,], ["features.networkmonitor.api.ui_ConnectivityIndicatorView_Day_0_en","features.networkmonitor.api.ui_ConnectivityIndicatorView_Night_0_en",0,], ["libraries.designsystem.atomic.atoms_CounterAtom_Day_0_en","libraries.designsystem.atomic.atoms_CounterAtom_Night_0_en",0,], -["features.rageshake.api.crash_CrashDetectionView_Day_0_en","features.rageshake.api.crash_CrashDetectionView_Night_0_en",20119,], -["features.login.impl.screens.createaccount_CreateAccountView_Day_0_en","features.login.impl.screens.createaccount_CreateAccountView_Night_0_en",20119,], -["features.login.impl.screens.createaccount_CreateAccountView_Day_1_en","features.login.impl.screens.createaccount_CreateAccountView_Night_1_en",20119,], -["features.login.impl.screens.createaccount_CreateAccountView_Day_2_en","features.login.impl.screens.createaccount_CreateAccountView_Night_2_en",20119,], -["features.login.impl.screens.createaccount_CreateAccountView_Day_3_en","features.login.impl.screens.createaccount_CreateAccountView_Night_3_en",20119,], -["features.poll.impl.create_CreatePollView_Day_0_en","features.poll.impl.create_CreatePollView_Night_0_en",20119,], -["features.poll.impl.create_CreatePollView_Day_1_en","features.poll.impl.create_CreatePollView_Night_1_en",20119,], -["features.poll.impl.create_CreatePollView_Day_2_en","features.poll.impl.create_CreatePollView_Night_2_en",20119,], -["features.poll.impl.create_CreatePollView_Day_3_en","features.poll.impl.create_CreatePollView_Night_3_en",20119,], -["features.poll.impl.create_CreatePollView_Day_4_en","features.poll.impl.create_CreatePollView_Night_4_en",20119,], -["features.poll.impl.create_CreatePollView_Day_5_en","features.poll.impl.create_CreatePollView_Night_5_en",20119,], -["features.poll.impl.create_CreatePollView_Day_6_en","features.poll.impl.create_CreatePollView_Night_6_en",20119,], -["features.poll.impl.create_CreatePollView_Day_7_en","features.poll.impl.create_CreatePollView_Night_7_en",20119,], -["features.createroom.impl.root_CreateRoomRootView_Day_0_en","features.createroom.impl.root_CreateRoomRootView_Night_0_en",20119,], -["features.createroom.impl.root_CreateRoomRootView_Day_1_en","features.createroom.impl.root_CreateRoomRootView_Night_1_en",20119,], -["features.createroom.impl.root_CreateRoomRootView_Day_2_en","features.createroom.impl.root_CreateRoomRootView_Night_2_en",20119,], -["features.createroom.impl.root_CreateRoomRootView_Day_3_en","features.createroom.impl.root_CreateRoomRootView_Night_3_en",20119,], -["libraries.dateformatter.impl.previews_DateFormatterModeView_0_en","",20119,], -["libraries.dateformatter.impl.previews_DateFormatterModeView_1_en","",20119,], -["libraries.dateformatter.impl.previews_DateFormatterModeView_2_en","",20119,], -["libraries.dateformatter.impl.previews_DateFormatterModeView_3_en","",20119,], -["libraries.dateformatter.impl.previews_DateFormatterModeView_4_en","",20119,], +["features.rageshake.api.crash_CrashDetectionView_Day_0_en","features.rageshake.api.crash_CrashDetectionView_Night_0_en",20132,], +["features.login.impl.screens.createaccount_CreateAccountView_Day_0_en","features.login.impl.screens.createaccount_CreateAccountView_Night_0_en",20132,], +["features.login.impl.screens.createaccount_CreateAccountView_Day_1_en","features.login.impl.screens.createaccount_CreateAccountView_Night_1_en",20132,], +["features.login.impl.screens.createaccount_CreateAccountView_Day_2_en","features.login.impl.screens.createaccount_CreateAccountView_Night_2_en",20132,], +["features.login.impl.screens.createaccount_CreateAccountView_Day_3_en","features.login.impl.screens.createaccount_CreateAccountView_Night_3_en",20132,], +["libraries.matrix.ui.components_CreateDmConfirmationBottomSheet_Day_0_en","libraries.matrix.ui.components_CreateDmConfirmationBottomSheet_Night_0_en",20136,], +["libraries.matrix.ui.components_CreateDmConfirmationBottomSheet_Day_1_en","libraries.matrix.ui.components_CreateDmConfirmationBottomSheet_Night_1_en",20136,], +["features.poll.impl.create_CreatePollView_Day_0_en","features.poll.impl.create_CreatePollView_Night_0_en",20132,], +["features.poll.impl.create_CreatePollView_Day_1_en","features.poll.impl.create_CreatePollView_Night_1_en",20132,], +["features.poll.impl.create_CreatePollView_Day_2_en","features.poll.impl.create_CreatePollView_Night_2_en",20132,], +["features.poll.impl.create_CreatePollView_Day_3_en","features.poll.impl.create_CreatePollView_Night_3_en",20132,], +["features.poll.impl.create_CreatePollView_Day_4_en","features.poll.impl.create_CreatePollView_Night_4_en",20132,], +["features.poll.impl.create_CreatePollView_Day_5_en","features.poll.impl.create_CreatePollView_Night_5_en",20132,], +["features.poll.impl.create_CreatePollView_Day_6_en","features.poll.impl.create_CreatePollView_Night_6_en",20132,], +["features.poll.impl.create_CreatePollView_Day_7_en","features.poll.impl.create_CreatePollView_Night_7_en",20132,], +["features.createroom.impl.root_CreateRoomRootView_Day_0_en","features.createroom.impl.root_CreateRoomRootView_Night_0_en",20132,], +["features.createroom.impl.root_CreateRoomRootView_Day_1_en","features.createroom.impl.root_CreateRoomRootView_Night_1_en",20132,], +["features.createroom.impl.root_CreateRoomRootView_Day_2_en","features.createroom.impl.root_CreateRoomRootView_Night_2_en",20132,], +["features.createroom.impl.root_CreateRoomRootView_Day_3_en","features.createroom.impl.root_CreateRoomRootView_Night_3_en",20132,], +["features.createroom.impl.root_CreateRoomRootView_Day_4_en","features.createroom.impl.root_CreateRoomRootView_Night_4_en",20136,], +["libraries.dateformatter.impl.previews_DateFormatterModeView_0_en","",20132,], +["libraries.dateformatter.impl.previews_DateFormatterModeView_1_en","",20132,], +["libraries.dateformatter.impl.previews_DateFormatterModeView_2_en","",20132,], +["libraries.dateformatter.impl.previews_DateFormatterModeView_3_en","",20132,], +["libraries.dateformatter.impl.previews_DateFormatterModeView_4_en","",20132,], ["libraries.mediaviewer.impl.gallery.ui_DateItemView_Day_0_en","libraries.mediaviewer.impl.gallery.ui_DateItemView_Night_0_en",0,], ["libraries.mediaviewer.impl.gallery.ui_DateItemView_Day_1_en","libraries.mediaviewer.impl.gallery.ui_DateItemView_Night_1_en",0,], -["libraries.designsystem.theme.components.previews_DatePickerDark_DateTime_pickers_en","",20119,], -["libraries.designsystem.theme.components.previews_DatePickerLight_DateTime_pickers_en","",20119,], +["libraries.designsystem.theme.components.previews_DatePickerDark_DateTime_pickers_en","",20132,], +["libraries.designsystem.theme.components.previews_DatePickerLight_DateTime_pickers_en","",20132,], ["features.logout.impl.direct_DefaultDirectLogoutView_Day_0_en","features.logout.impl.direct_DefaultDirectLogoutView_Night_0_en",0,], -["features.logout.impl.direct_DefaultDirectLogoutView_Day_1_en","features.logout.impl.direct_DefaultDirectLogoutView_Night_1_en",20119,], -["features.logout.impl.direct_DefaultDirectLogoutView_Day_2_en","features.logout.impl.direct_DefaultDirectLogoutView_Night_2_en",20119,], -["features.logout.impl.direct_DefaultDirectLogoutView_Day_3_en","features.logout.impl.direct_DefaultDirectLogoutView_Night_3_en",20119,], +["features.logout.impl.direct_DefaultDirectLogoutView_Day_1_en","features.logout.impl.direct_DefaultDirectLogoutView_Night_1_en",20132,], +["features.logout.impl.direct_DefaultDirectLogoutView_Day_2_en","features.logout.impl.direct_DefaultDirectLogoutView_Night_2_en",20132,], +["features.logout.impl.direct_DefaultDirectLogoutView_Day_3_en","features.logout.impl.direct_DefaultDirectLogoutView_Night_3_en",20132,], ["features.logout.impl.direct_DefaultDirectLogoutView_Day_4_en","features.logout.impl.direct_DefaultDirectLogoutView_Night_4_en",0,], -["features.preferences.impl.notifications.edit_DefaultNotificationSettingOption_Day_0_en","features.preferences.impl.notifications.edit_DefaultNotificationSettingOption_Night_0_en",20119,], -["features.roomlist.impl.components_DefaultRoomListTopBarWithIndicator_Day_0_en","features.roomlist.impl.components_DefaultRoomListTopBarWithIndicator_Night_0_en",20119,], -["features.roomlist.impl.components_DefaultRoomListTopBar_Day_0_en","features.roomlist.impl.components_DefaultRoomListTopBar_Night_0_en",20119,], +["features.preferences.impl.notifications.edit_DefaultNotificationSettingOption_Day_0_en","features.preferences.impl.notifications.edit_DefaultNotificationSettingOption_Night_0_en",20132,], +["features.roomlist.impl.components_DefaultRoomListTopBarWithIndicator_Day_0_en","features.roomlist.impl.components_DefaultRoomListTopBarWithIndicator_Night_0_en",20132,], +["features.roomlist.impl.components_DefaultRoomListTopBar_Day_0_en","features.roomlist.impl.components_DefaultRoomListTopBar_Night_0_en",20132,], ["features.licenses.impl.details_DependenciesDetailsView_Day_0_en","features.licenses.impl.details_DependenciesDetailsView_Night_0_en",0,], -["features.licenses.impl.list_DependencyLicensesListView_Day_0_en","features.licenses.impl.list_DependencyLicensesListView_Night_0_en",20119,], -["features.licenses.impl.list_DependencyLicensesListView_Day_1_en","features.licenses.impl.list_DependencyLicensesListView_Night_1_en",20119,], -["features.licenses.impl.list_DependencyLicensesListView_Day_2_en","features.licenses.impl.list_DependencyLicensesListView_Night_2_en",20119,], -["features.licenses.impl.list_DependencyLicensesListView_Day_3_en","features.licenses.impl.list_DependencyLicensesListView_Night_3_en",20119,], -["features.preferences.impl.developer_DeveloperSettingsView_Day_0_en","features.preferences.impl.developer_DeveloperSettingsView_Night_0_en",20119,], -["features.preferences.impl.developer_DeveloperSettingsView_Day_1_en","features.preferences.impl.developer_DeveloperSettingsView_Night_1_en",20119,], -["features.preferences.impl.developer_DeveloperSettingsView_Day_2_en","features.preferences.impl.developer_DeveloperSettingsView_Night_2_en",20119,], +["features.licenses.impl.list_DependencyLicensesListView_Day_0_en","features.licenses.impl.list_DependencyLicensesListView_Night_0_en",20132,], +["features.licenses.impl.list_DependencyLicensesListView_Day_1_en","features.licenses.impl.list_DependencyLicensesListView_Night_1_en",20132,], +["features.licenses.impl.list_DependencyLicensesListView_Day_2_en","features.licenses.impl.list_DependencyLicensesListView_Night_2_en",20132,], +["features.licenses.impl.list_DependencyLicensesListView_Day_3_en","features.licenses.impl.list_DependencyLicensesListView_Night_3_en",20132,], +["features.preferences.impl.developer_DeveloperSettingsView_Day_0_en","features.preferences.impl.developer_DeveloperSettingsView_Night_0_en",20132,], +["features.preferences.impl.developer_DeveloperSettingsView_Day_1_en","features.preferences.impl.developer_DeveloperSettingsView_Night_1_en",20132,], +["features.preferences.impl.developer_DeveloperSettingsView_Day_2_en","features.preferences.impl.developer_DeveloperSettingsView_Night_2_en",20132,], ["libraries.designsystem.theme.components_DialogWithDestructiveButton_Dialog_with_destructive_button_Dialogs_en","",0,], ["libraries.designsystem.theme.components_DialogWithOnlyMessageAndOkButton_Dialog_with_only_message_and_ok_button_Dialogs_en","",0,], ["libraries.designsystem.theme.components_DialogWithThirdButton_Dialog_with_third_button_Dialogs_en","",0,], @@ -323,17 +329,17 @@ export const screenshots = [ ["libraries.designsystem.text_DpScale_1_0f__en","",0,], ["libraries.designsystem.text_DpScale_1_5f__en","",0,], ["libraries.designsystem.theme.components_DropdownMenuItem_Menus_en","",0,], -["features.preferences.impl.notifications.edit_EditDefaultNotificationSettingView_Day_0_en","features.preferences.impl.notifications.edit_EditDefaultNotificationSettingView_Night_0_en",20119,], -["features.preferences.impl.notifications.edit_EditDefaultNotificationSettingView_Day_1_en","features.preferences.impl.notifications.edit_EditDefaultNotificationSettingView_Night_1_en",20119,], -["features.preferences.impl.notifications.edit_EditDefaultNotificationSettingView_Day_2_en","features.preferences.impl.notifications.edit_EditDefaultNotificationSettingView_Night_2_en",20119,], -["features.preferences.impl.notifications.edit_EditDefaultNotificationSettingView_Day_3_en","features.preferences.impl.notifications.edit_EditDefaultNotificationSettingView_Night_3_en",20119,], -["features.preferences.impl.notifications.edit_EditDefaultNotificationSettingView_Day_4_en","features.preferences.impl.notifications.edit_EditDefaultNotificationSettingView_Night_4_en",20119,], -["features.roomdetails.impl.securityandprivacy.editroomaddress_EditRoomAddressView_Day_0_en","features.roomdetails.impl.securityandprivacy.editroomaddress_EditRoomAddressView_Night_0_en",20122,], -["features.roomdetails.impl.securityandprivacy.editroomaddress_EditRoomAddressView_Day_1_en","features.roomdetails.impl.securityandprivacy.editroomaddress_EditRoomAddressView_Night_1_en",20122,], -["features.roomdetails.impl.securityandprivacy.editroomaddress_EditRoomAddressView_Day_2_en","features.roomdetails.impl.securityandprivacy.editroomaddress_EditRoomAddressView_Night_2_en",20122,], -["features.roomdetails.impl.securityandprivacy.editroomaddress_EditRoomAddressView_Day_3_en","features.roomdetails.impl.securityandprivacy.editroomaddress_EditRoomAddressView_Night_3_en",20122,], -["features.roomdetails.impl.securityandprivacy.editroomaddress_EditRoomAddressView_Day_4_en","features.roomdetails.impl.securityandprivacy.editroomaddress_EditRoomAddressView_Night_4_en",20122,], -["features.preferences.impl.user.editprofile_EditUserProfileView_Day_0_en","features.preferences.impl.user.editprofile_EditUserProfileView_Night_0_en",20119,], +["features.preferences.impl.notifications.edit_EditDefaultNotificationSettingView_Day_0_en","features.preferences.impl.notifications.edit_EditDefaultNotificationSettingView_Night_0_en",20132,], +["features.preferences.impl.notifications.edit_EditDefaultNotificationSettingView_Day_1_en","features.preferences.impl.notifications.edit_EditDefaultNotificationSettingView_Night_1_en",20132,], +["features.preferences.impl.notifications.edit_EditDefaultNotificationSettingView_Day_2_en","features.preferences.impl.notifications.edit_EditDefaultNotificationSettingView_Night_2_en",20132,], +["features.preferences.impl.notifications.edit_EditDefaultNotificationSettingView_Day_3_en","features.preferences.impl.notifications.edit_EditDefaultNotificationSettingView_Night_3_en",20132,], +["features.preferences.impl.notifications.edit_EditDefaultNotificationSettingView_Day_4_en","features.preferences.impl.notifications.edit_EditDefaultNotificationSettingView_Night_4_en",20132,], +["features.roomdetails.impl.securityandprivacy.editroomaddress_EditRoomAddressView_Day_0_en","features.roomdetails.impl.securityandprivacy.editroomaddress_EditRoomAddressView_Night_0_en",20132,], +["features.roomdetails.impl.securityandprivacy.editroomaddress_EditRoomAddressView_Day_1_en","features.roomdetails.impl.securityandprivacy.editroomaddress_EditRoomAddressView_Night_1_en",20132,], +["features.roomdetails.impl.securityandprivacy.editroomaddress_EditRoomAddressView_Day_2_en","features.roomdetails.impl.securityandprivacy.editroomaddress_EditRoomAddressView_Night_2_en",20132,], +["features.roomdetails.impl.securityandprivacy.editroomaddress_EditRoomAddressView_Day_3_en","features.roomdetails.impl.securityandprivacy.editroomaddress_EditRoomAddressView_Night_3_en",20132,], +["features.roomdetails.impl.securityandprivacy.editroomaddress_EditRoomAddressView_Day_4_en","features.roomdetails.impl.securityandprivacy.editroomaddress_EditRoomAddressView_Night_4_en",20132,], +["features.preferences.impl.user.editprofile_EditUserProfileView_Day_0_en","features.preferences.impl.user.editprofile_EditUserProfileView_Night_0_en",20132,], ["libraries.matrix.ui.components_EditableAvatarView_Day_0_en","libraries.matrix.ui.components_EditableAvatarView_Night_0_en",0,], ["libraries.matrix.ui.components_EditableAvatarView_Day_1_en","libraries.matrix.ui.components_EditableAvatarView_Night_1_en",0,], ["libraries.matrix.ui.components_EditableAvatarView_Day_2_en","libraries.matrix.ui.components_EditableAvatarView_Night_2_en",0,], @@ -343,9 +349,9 @@ export const screenshots = [ ["libraries.designsystem.atomic.atoms_ElementLogoAtomMedium_Day_0_en","libraries.designsystem.atomic.atoms_ElementLogoAtomMedium_Night_0_en",0,], ["features.messages.impl.timeline.components.customreaction_EmojiItem_Day_0_en","features.messages.impl.timeline.components.customreaction_EmojiItem_Night_0_en",0,], ["features.messages.impl.timeline.components.customreaction_EmojiPicker_Day_0_en","features.messages.impl.timeline.components.customreaction_EmojiPicker_Night_0_en",0,], -["libraries.designsystem.components.dialogs_ErrorDialogContent_Dialogs_en","",20119,], -["libraries.designsystem.components.dialogs_ErrorDialogWithDoNotShowAgain_Day_0_en","libraries.designsystem.components.dialogs_ErrorDialogWithDoNotShowAgain_Night_0_en",20119,], -["libraries.designsystem.components.dialogs_ErrorDialog_Day_0_en","libraries.designsystem.components.dialogs_ErrorDialog_Night_0_en",20119,], +["libraries.designsystem.components.dialogs_ErrorDialogContent_Dialogs_en","",20132,], +["libraries.designsystem.components.dialogs_ErrorDialogWithDoNotShowAgain_Day_0_en","libraries.designsystem.components.dialogs_ErrorDialogWithDoNotShowAgain_Night_0_en",20132,], +["libraries.designsystem.components.dialogs_ErrorDialog_Day_0_en","libraries.designsystem.components.dialogs_ErrorDialog_Night_0_en",20132,], ["features.messages.impl.timeline.debug_EventDebugInfoView_Day_0_en","features.messages.impl.timeline.debug_EventDebugInfoView_Night_0_en",0,], ["libraries.featureflag.ui_FeatureListView_Day_0_en","libraries.featureflag.ui_FeatureListView_Night_0_en",0,], ["libraries.mediaviewer.impl.gallery.ui_FileItemView_Day_0_en","libraries.mediaviewer.impl.gallery.ui_FileItemView_Night_0_en",0,], @@ -363,15 +369,15 @@ export const screenshots = [ ["libraries.designsystem.theme.components_FloatingActionButton_Floating_Action_Buttons_en","",0,], ["libraries.designsystem.atomic.pages_FlowStepPage_Day_0_en","libraries.designsystem.atomic.pages_FlowStepPage_Night_0_en",0,], ["features.messages.impl.timeline.focus_FocusRequestStateView_Day_0_en","features.messages.impl.timeline.focus_FocusRequestStateView_Night_0_en",0,], -["features.messages.impl.timeline.focus_FocusRequestStateView_Day_1_en","features.messages.impl.timeline.focus_FocusRequestStateView_Night_1_en",20119,], -["features.messages.impl.timeline.focus_FocusRequestStateView_Day_2_en","features.messages.impl.timeline.focus_FocusRequestStateView_Night_2_en",20119,], -["features.messages.impl.timeline.focus_FocusRequestStateView_Day_3_en","features.messages.impl.timeline.focus_FocusRequestStateView_Night_3_en",20119,], +["features.messages.impl.timeline.focus_FocusRequestStateView_Day_1_en","features.messages.impl.timeline.focus_FocusRequestStateView_Night_1_en",20132,], +["features.messages.impl.timeline.focus_FocusRequestStateView_Day_2_en","features.messages.impl.timeline.focus_FocusRequestStateView_Night_2_en",20132,], +["features.messages.impl.timeline.focus_FocusRequestStateView_Day_3_en","features.messages.impl.timeline.focus_FocusRequestStateView_Night_3_en",20132,], ["libraries.textcomposer.components_FormattingOption_Day_0_en","libraries.textcomposer.components_FormattingOption_Night_0_en",0,], ["features.messages.impl.forward_ForwardMessagesView_Day_0_en","features.messages.impl.forward_ForwardMessagesView_Night_0_en",0,], ["features.messages.impl.forward_ForwardMessagesView_Day_1_en","features.messages.impl.forward_ForwardMessagesView_Night_1_en",0,], ["features.messages.impl.forward_ForwardMessagesView_Day_2_en","features.messages.impl.forward_ForwardMessagesView_Night_2_en",0,], -["features.messages.impl.forward_ForwardMessagesView_Day_3_en","features.messages.impl.forward_ForwardMessagesView_Night_3_en",20119,], -["features.roomlist.impl.components_FullScreenIntentPermissionBanner_Day_0_en","features.roomlist.impl.components_FullScreenIntentPermissionBanner_Night_0_en",20119,], +["features.messages.impl.forward_ForwardMessagesView_Day_3_en","features.messages.impl.forward_ForwardMessagesView_Night_3_en",20132,], +["features.roomlist.impl.components_FullScreenIntentPermissionBanner_Day_0_en","features.roomlist.impl.components_FullScreenIntentPermissionBanner_Night_0_en",20132,], ["libraries.designsystem.components.button_GradientFloatingActionButtonCircleShape_Day_0_en","libraries.designsystem.components.button_GradientFloatingActionButtonCircleShape_Night_0_en",0,], ["libraries.designsystem.components.button_GradientFloatingActionButton_Day_0_en","libraries.designsystem.components.button_GradientFloatingActionButton_Night_0_en",0,], ["features.messages.impl.timeline.components.group_GroupHeaderView_Day_0_en","features.messages.impl.timeline.components.group_GroupHeaderView_Night_0_en",0,], @@ -383,8 +389,8 @@ export const screenshots = [ ["libraries.designsystem.atomic.molecules_IconTitlePlaceholdersRowMolecule_Day_0_en","libraries.designsystem.atomic.molecules_IconTitlePlaceholdersRowMolecule_Night_0_en",0,], ["libraries.designsystem.atomic.molecules_IconTitleSubtitleMolecule_Day_0_en","libraries.designsystem.atomic.molecules_IconTitleSubtitleMolecule_Night_0_en",0,], ["libraries.designsystem.theme.components_IconToggleButton_Toggles_en","",0,], -["appicon.element_Icon_en","",0,], ["appicon.enterprise_Icon_en","",0,], +["appicon.element_Icon_en","",0,], ["libraries.designsystem.icons_IconsCompound_Day_0_en","libraries.designsystem.icons_IconsCompound_Night_0_en",0,], ["libraries.designsystem.icons_IconsCompound_Day_1_en","libraries.designsystem.icons_IconsCompound_Night_1_en",0,], ["libraries.designsystem.icons_IconsCompound_Day_2_en","libraries.designsystem.icons_IconsCompound_Night_2_en",0,], @@ -393,8 +399,8 @@ export const screenshots = [ ["libraries.designsystem.icons_IconsCompound_Day_5_en","libraries.designsystem.icons_IconsCompound_Night_5_en",0,], ["libraries.designsystem.icons_IconsOther_Day_0_en","libraries.designsystem.icons_IconsOther_Night_0_en",0,], ["features.messages.impl.crypto.identity_IdentityChangeStateView_Day_0_en","features.messages.impl.crypto.identity_IdentityChangeStateView_Night_0_en",0,], -["features.messages.impl.crypto.identity_IdentityChangeStateView_Day_1_en","features.messages.impl.crypto.identity_IdentityChangeStateView_Night_1_en",20119,], -["features.messages.impl.crypto.identity_IdentityChangeStateView_Day_2_en","features.messages.impl.crypto.identity_IdentityChangeStateView_Night_2_en",20119,], +["features.messages.impl.crypto.identity_IdentityChangeStateView_Day_1_en","features.messages.impl.crypto.identity_IdentityChangeStateView_Night_1_en",20132,], +["features.messages.impl.crypto.identity_IdentityChangeStateView_Day_2_en","features.messages.impl.crypto.identity_IdentityChangeStateView_Night_2_en",20132,], ["libraries.mediaviewer.impl.gallery.ui_ImageItemView_Day_0_en","libraries.mediaviewer.impl.gallery.ui_ImageItemView_Night_0_en",0,], ["libraries.matrix.ui.messages.reply_InReplyToView_Day_0_en","libraries.matrix.ui.messages.reply_InReplyToView_Night_0_en",0,], ["libraries.matrix.ui.messages.reply_InReplyToView_Day_10_en","libraries.matrix.ui.messages.reply_InReplyToView_Night_10_en",0,], @@ -402,63 +408,68 @@ export const screenshots = [ ["libraries.matrix.ui.messages.reply_InReplyToView_Day_1_en","libraries.matrix.ui.messages.reply_InReplyToView_Night_1_en",0,], ["libraries.matrix.ui.messages.reply_InReplyToView_Day_2_en","libraries.matrix.ui.messages.reply_InReplyToView_Night_2_en",0,], ["libraries.matrix.ui.messages.reply_InReplyToView_Day_3_en","libraries.matrix.ui.messages.reply_InReplyToView_Night_3_en",0,], -["libraries.matrix.ui.messages.reply_InReplyToView_Day_4_en","libraries.matrix.ui.messages.reply_InReplyToView_Night_4_en",20119,], +["libraries.matrix.ui.messages.reply_InReplyToView_Day_4_en","libraries.matrix.ui.messages.reply_InReplyToView_Night_4_en",20132,], ["libraries.matrix.ui.messages.reply_InReplyToView_Day_5_en","libraries.matrix.ui.messages.reply_InReplyToView_Night_5_en",0,], ["libraries.matrix.ui.messages.reply_InReplyToView_Day_6_en","libraries.matrix.ui.messages.reply_InReplyToView_Night_6_en",0,], ["libraries.matrix.ui.messages.reply_InReplyToView_Day_7_en","libraries.matrix.ui.messages.reply_InReplyToView_Night_7_en",0,], -["libraries.matrix.ui.messages.reply_InReplyToView_Day_8_en","libraries.matrix.ui.messages.reply_InReplyToView_Night_8_en",20119,], +["libraries.matrix.ui.messages.reply_InReplyToView_Day_8_en","libraries.matrix.ui.messages.reply_InReplyToView_Night_8_en",20132,], ["libraries.matrix.ui.messages.reply_InReplyToView_Day_9_en","libraries.matrix.ui.messages.reply_InReplyToView_Night_9_en",0,], -["features.call.impl.ui_IncomingCallScreen_Day_0_en","features.call.impl.ui_IncomingCallScreen_Night_0_en",20119,], -["features.verifysession.impl.incoming_IncomingVerificationView_Day_0_en","features.verifysession.impl.incoming_IncomingVerificationView_Night_0_en",20119,], -["features.verifysession.impl.incoming_IncomingVerificationView_Day_1_en","features.verifysession.impl.incoming_IncomingVerificationView_Night_1_en",20119,], -["features.verifysession.impl.incoming_IncomingVerificationView_Day_2_en","features.verifysession.impl.incoming_IncomingVerificationView_Night_2_en",20119,], -["features.verifysession.impl.incoming_IncomingVerificationView_Day_3_en","features.verifysession.impl.incoming_IncomingVerificationView_Night_3_en",20119,], -["features.verifysession.impl.incoming_IncomingVerificationView_Day_4_en","features.verifysession.impl.incoming_IncomingVerificationView_Night_4_en",20119,], -["features.verifysession.impl.incoming_IncomingVerificationView_Day_5_en","features.verifysession.impl.incoming_IncomingVerificationView_Night_5_en",20119,], -["features.verifysession.impl.incoming_IncomingVerificationView_Day_6_en","features.verifysession.impl.incoming_IncomingVerificationView_Night_6_en",20119,], -["features.verifysession.impl.incoming_IncomingVerificationView_Day_7_en","features.verifysession.impl.incoming_IncomingVerificationView_Night_7_en",20119,], +["features.call.impl.ui_IncomingCallScreen_Day_0_en","features.call.impl.ui_IncomingCallScreen_Night_0_en",20132,], +["features.verifysession.impl.incoming_IncomingVerificationView_Day_0_en","features.verifysession.impl.incoming_IncomingVerificationView_Night_0_en",20132,], +["features.verifysession.impl.incoming_IncomingVerificationView_Day_1_en","features.verifysession.impl.incoming_IncomingVerificationView_Night_1_en",20132,], +["features.verifysession.impl.incoming_IncomingVerificationView_Day_2_en","features.verifysession.impl.incoming_IncomingVerificationView_Night_2_en",20132,], +["features.verifysession.impl.incoming_IncomingVerificationView_Day_3_en","features.verifysession.impl.incoming_IncomingVerificationView_Night_3_en",20132,], +["features.verifysession.impl.incoming_IncomingVerificationView_Day_4_en","features.verifysession.impl.incoming_IncomingVerificationView_Night_4_en",20132,], +["features.verifysession.impl.incoming_IncomingVerificationView_Day_5_en","features.verifysession.impl.incoming_IncomingVerificationView_Night_5_en",20132,], +["features.verifysession.impl.incoming_IncomingVerificationView_Day_6_en","features.verifysession.impl.incoming_IncomingVerificationView_Night_6_en",20132,], +["features.verifysession.impl.incoming_IncomingVerificationView_Day_7_en","features.verifysession.impl.incoming_IncomingVerificationView_Night_7_en",20132,], +["features.networkmonitor.api.ui_Indicator_Day_0_en","features.networkmonitor.api.ui_Indicator_Night_0_en",0,], ["libraries.designsystem.atomic.molecules_InfoListItemMolecule_Day_0_en","libraries.designsystem.atomic.molecules_InfoListItemMolecule_Night_0_en",0,], ["libraries.designsystem.atomic.organisms_InfoListOrganism_Day_0_en","libraries.designsystem.atomic.organisms_InfoListOrganism_Night_0_en",0,], -["libraries.matrix.ui.components_InviteSenderView_Day_0_en","libraries.matrix.ui.components_InviteSenderView_Night_0_en",20119,], +["libraries.matrix.ui.components_InviteSenderView_Day_0_en","libraries.matrix.ui.components_InviteSenderView_Night_0_en",20132,], ["features.joinroom.impl_JoinRoomView_Day_0_en","features.joinroom.impl_JoinRoomView_Night_0_en",0,], -["features.joinroom.impl_JoinRoomView_Day_10_en","features.joinroom.impl_JoinRoomView_Night_10_en",20119,], -["features.joinroom.impl_JoinRoomView_Day_11_en","features.joinroom.impl_JoinRoomView_Night_11_en",20119,], -["features.joinroom.impl_JoinRoomView_Day_12_en","features.joinroom.impl_JoinRoomView_Night_12_en",20119,], -["features.joinroom.impl_JoinRoomView_Day_1_en","features.joinroom.impl_JoinRoomView_Night_1_en",20119,], -["features.joinroom.impl_JoinRoomView_Day_2_en","features.joinroom.impl_JoinRoomView_Night_2_en",20119,], -["features.joinroom.impl_JoinRoomView_Day_3_en","features.joinroom.impl_JoinRoomView_Night_3_en",20119,], -["features.joinroom.impl_JoinRoomView_Day_4_en","features.joinroom.impl_JoinRoomView_Night_4_en",20119,], -["features.joinroom.impl_JoinRoomView_Day_5_en","features.joinroom.impl_JoinRoomView_Night_5_en",20119,], -["features.joinroom.impl_JoinRoomView_Day_6_en","features.joinroom.impl_JoinRoomView_Night_6_en",20119,], -["features.joinroom.impl_JoinRoomView_Day_7_en","features.joinroom.impl_JoinRoomView_Night_7_en",20119,], -["features.joinroom.impl_JoinRoomView_Day_8_en","features.joinroom.impl_JoinRoomView_Night_8_en",20119,], -["features.joinroom.impl_JoinRoomView_Day_9_en","features.joinroom.impl_JoinRoomView_Night_9_en",0,], -["features.knockrequests.impl.banner_KnockRequestsBannerView_Day_0_en","features.knockrequests.impl.banner_KnockRequestsBannerView_Night_0_en",20119,], -["features.knockrequests.impl.banner_KnockRequestsBannerView_Day_1_en","features.knockrequests.impl.banner_KnockRequestsBannerView_Night_1_en",20119,], -["features.knockrequests.impl.banner_KnockRequestsBannerView_Day_2_en","features.knockrequests.impl.banner_KnockRequestsBannerView_Night_2_en",20119,], -["features.knockrequests.impl.banner_KnockRequestsBannerView_Day_3_en","features.knockrequests.impl.banner_KnockRequestsBannerView_Night_3_en",20119,], -["features.knockrequests.impl.banner_KnockRequestsBannerView_Day_4_en","features.knockrequests.impl.banner_KnockRequestsBannerView_Night_4_en",20119,], -["features.knockrequests.impl.banner_KnockRequestsBannerView_Day_5_en","features.knockrequests.impl.banner_KnockRequestsBannerView_Night_5_en",20119,], -["features.knockrequests.impl.banner_KnockRequestsBannerView_Day_6_en","features.knockrequests.impl.banner_KnockRequestsBannerView_Night_6_en",20119,], -["features.knockrequests.impl.list_KnockRequestsListView_Day_0_en","features.knockrequests.impl.list_KnockRequestsListView_Night_0_en",20119,], -["features.knockrequests.impl.list_KnockRequestsListView_Day_10_en","features.knockrequests.impl.list_KnockRequestsListView_Night_10_en",20119,], -["features.knockrequests.impl.list_KnockRequestsListView_Day_1_en","features.knockrequests.impl.list_KnockRequestsListView_Night_1_en",20119,], -["features.knockrequests.impl.list_KnockRequestsListView_Day_2_en","features.knockrequests.impl.list_KnockRequestsListView_Night_2_en",20119,], -["features.knockrequests.impl.list_KnockRequestsListView_Day_3_en","features.knockrequests.impl.list_KnockRequestsListView_Night_3_en",20119,], -["features.knockrequests.impl.list_KnockRequestsListView_Day_4_en","features.knockrequests.impl.list_KnockRequestsListView_Night_4_en",20119,], -["features.knockrequests.impl.list_KnockRequestsListView_Day_5_en","features.knockrequests.impl.list_KnockRequestsListView_Night_5_en",20119,], -["features.knockrequests.impl.list_KnockRequestsListView_Day_6_en","features.knockrequests.impl.list_KnockRequestsListView_Night_6_en",20119,], -["features.knockrequests.impl.list_KnockRequestsListView_Day_7_en","features.knockrequests.impl.list_KnockRequestsListView_Night_7_en",20119,], -["features.knockrequests.impl.list_KnockRequestsListView_Day_8_en","features.knockrequests.impl.list_KnockRequestsListView_Night_8_en",20119,], -["features.knockrequests.impl.list_KnockRequestsListView_Day_9_en","features.knockrequests.impl.list_KnockRequestsListView_Night_9_en",20119,], +["features.joinroom.impl_JoinRoomView_Day_10_en","features.joinroom.impl_JoinRoomView_Night_10_en",20132,], +["features.joinroom.impl_JoinRoomView_Day_11_en","features.joinroom.impl_JoinRoomView_Night_11_en",20132,], +["features.joinroom.impl_JoinRoomView_Day_12_en","features.joinroom.impl_JoinRoomView_Night_12_en",20132,], +["features.joinroom.impl_JoinRoomView_Day_13_en","features.joinroom.impl_JoinRoomView_Night_13_en",20136,], +["features.joinroom.impl_JoinRoomView_Day_14_en","features.joinroom.impl_JoinRoomView_Night_14_en",20136,], +["features.joinroom.impl_JoinRoomView_Day_15_en","features.joinroom.impl_JoinRoomView_Night_15_en",20136,], +["features.joinroom.impl_JoinRoomView_Day_16_en","features.joinroom.impl_JoinRoomView_Night_16_en",20136,], +["features.joinroom.impl_JoinRoomView_Day_1_en","features.joinroom.impl_JoinRoomView_Night_1_en",20132,], +["features.joinroom.impl_JoinRoomView_Day_2_en","features.joinroom.impl_JoinRoomView_Night_2_en",20132,], +["features.joinroom.impl_JoinRoomView_Day_3_en","features.joinroom.impl_JoinRoomView_Night_3_en",20132,], +["features.joinroom.impl_JoinRoomView_Day_4_en","features.joinroom.impl_JoinRoomView_Night_4_en",20132,], +["features.joinroom.impl_JoinRoomView_Day_5_en","features.joinroom.impl_JoinRoomView_Night_5_en",20132,], +["features.joinroom.impl_JoinRoomView_Day_6_en","features.joinroom.impl_JoinRoomView_Night_6_en",20132,], +["features.joinroom.impl_JoinRoomView_Day_7_en","features.joinroom.impl_JoinRoomView_Night_7_en",20132,], +["features.joinroom.impl_JoinRoomView_Day_8_en","features.joinroom.impl_JoinRoomView_Night_8_en",20132,], +["features.joinroom.impl_JoinRoomView_Day_9_en","features.joinroom.impl_JoinRoomView_Night_9_en",20136,], +["features.knockrequests.impl.banner_KnockRequestsBannerView_Day_0_en","features.knockrequests.impl.banner_KnockRequestsBannerView_Night_0_en",20132,], +["features.knockrequests.impl.banner_KnockRequestsBannerView_Day_1_en","features.knockrequests.impl.banner_KnockRequestsBannerView_Night_1_en",20132,], +["features.knockrequests.impl.banner_KnockRequestsBannerView_Day_2_en","features.knockrequests.impl.banner_KnockRequestsBannerView_Night_2_en",20132,], +["features.knockrequests.impl.banner_KnockRequestsBannerView_Day_3_en","features.knockrequests.impl.banner_KnockRequestsBannerView_Night_3_en",20132,], +["features.knockrequests.impl.banner_KnockRequestsBannerView_Day_4_en","features.knockrequests.impl.banner_KnockRequestsBannerView_Night_4_en",20132,], +["features.knockrequests.impl.banner_KnockRequestsBannerView_Day_5_en","features.knockrequests.impl.banner_KnockRequestsBannerView_Night_5_en",20132,], +["features.knockrequests.impl.banner_KnockRequestsBannerView_Day_6_en","features.knockrequests.impl.banner_KnockRequestsBannerView_Night_6_en",20132,], +["features.knockrequests.impl.list_KnockRequestsListView_Day_0_en","features.knockrequests.impl.list_KnockRequestsListView_Night_0_en",20132,], +["features.knockrequests.impl.list_KnockRequestsListView_Day_10_en","features.knockrequests.impl.list_KnockRequestsListView_Night_10_en",20132,], +["features.knockrequests.impl.list_KnockRequestsListView_Day_1_en","features.knockrequests.impl.list_KnockRequestsListView_Night_1_en",20132,], +["features.knockrequests.impl.list_KnockRequestsListView_Day_2_en","features.knockrequests.impl.list_KnockRequestsListView_Night_2_en",20132,], +["features.knockrequests.impl.list_KnockRequestsListView_Day_3_en","features.knockrequests.impl.list_KnockRequestsListView_Night_3_en",20132,], +["features.knockrequests.impl.list_KnockRequestsListView_Day_4_en","features.knockrequests.impl.list_KnockRequestsListView_Night_4_en",20132,], +["features.knockrequests.impl.list_KnockRequestsListView_Day_5_en","features.knockrequests.impl.list_KnockRequestsListView_Night_5_en",20132,], +["features.knockrequests.impl.list_KnockRequestsListView_Day_6_en","features.knockrequests.impl.list_KnockRequestsListView_Night_6_en",20132,], +["features.knockrequests.impl.list_KnockRequestsListView_Day_7_en","features.knockrequests.impl.list_KnockRequestsListView_Night_7_en",20132,], +["features.knockrequests.impl.list_KnockRequestsListView_Day_8_en","features.knockrequests.impl.list_KnockRequestsListView_Night_8_en",20132,], +["features.knockrequests.impl.list_KnockRequestsListView_Day_9_en","features.knockrequests.impl.list_KnockRequestsListView_Night_9_en",20132,], ["libraries.designsystem.components_LabelledCheckbox_Toggles_en","",0,], ["features.leaveroom.api_LeaveRoomView_Day_0_en","features.leaveroom.api_LeaveRoomView_Night_0_en",0,], -["features.leaveroom.api_LeaveRoomView_Day_1_en","features.leaveroom.api_LeaveRoomView_Night_1_en",20119,], -["features.leaveroom.api_LeaveRoomView_Day_2_en","features.leaveroom.api_LeaveRoomView_Night_2_en",20119,], -["features.leaveroom.api_LeaveRoomView_Day_3_en","features.leaveroom.api_LeaveRoomView_Night_3_en",20119,], -["features.leaveroom.api_LeaveRoomView_Day_4_en","features.leaveroom.api_LeaveRoomView_Night_4_en",20119,], -["features.leaveroom.api_LeaveRoomView_Day_5_en","features.leaveroom.api_LeaveRoomView_Night_5_en",20119,], -["features.leaveroom.api_LeaveRoomView_Day_6_en","features.leaveroom.api_LeaveRoomView_Night_6_en",20119,], +["features.leaveroom.api_LeaveRoomView_Day_1_en","features.leaveroom.api_LeaveRoomView_Night_1_en",20132,], +["features.leaveroom.api_LeaveRoomView_Day_2_en","features.leaveroom.api_LeaveRoomView_Night_2_en",20132,], +["features.leaveroom.api_LeaveRoomView_Day_3_en","features.leaveroom.api_LeaveRoomView_Night_3_en",20132,], +["features.leaveroom.api_LeaveRoomView_Day_4_en","features.leaveroom.api_LeaveRoomView_Night_4_en",20132,], +["features.leaveroom.api_LeaveRoomView_Day_5_en","features.leaveroom.api_LeaveRoomView_Night_5_en",20132,], +["features.leaveroom.api_LeaveRoomView_Day_6_en","features.leaveroom.api_LeaveRoomView_Night_6_en",20132,], ["libraries.designsystem.background_LightGradientBackground_Day_0_en","libraries.designsystem.background_LightGradientBackground_Night_0_en",0,], ["libraries.designsystem.theme.components_LinearProgressIndicator_Progress_Indicators_en","",0,], ["libraries.designsystem.components.dialogs_ListDialogContent_Dialogs_en","",0,], @@ -515,29 +526,29 @@ export const screenshots = [ ["libraries.designsystem.theme.components_ListSupportingTextSmallPadding_List_supporting_text_-_small_padding_List_sections_en","",0,], ["libraries.textcomposer.components_LiveWaveformView_Day_0_en","libraries.textcomposer.components_LiveWaveformView_Night_0_en",0,], ["appnav.room.joined_LoadingRoomNodeView_Day_0_en","appnav.room.joined_LoadingRoomNodeView_Night_0_en",0,], -["appnav.room.joined_LoadingRoomNodeView_Day_1_en","appnav.room.joined_LoadingRoomNodeView_Night_1_en",20119,], -["features.lockscreen.impl.settings_LockScreenSettingsView_Day_0_en","features.lockscreen.impl.settings_LockScreenSettingsView_Night_0_en",20119,], -["features.lockscreen.impl.settings_LockScreenSettingsView_Day_1_en","features.lockscreen.impl.settings_LockScreenSettingsView_Night_1_en",20119,], -["features.lockscreen.impl.settings_LockScreenSettingsView_Day_2_en","features.lockscreen.impl.settings_LockScreenSettingsView_Night_2_en",20119,], +["appnav.room.joined_LoadingRoomNodeView_Day_1_en","appnav.room.joined_LoadingRoomNodeView_Night_1_en",20132,], +["features.lockscreen.impl.settings_LockScreenSettingsView_Day_0_en","features.lockscreen.impl.settings_LockScreenSettingsView_Night_0_en",20132,], +["features.lockscreen.impl.settings_LockScreenSettingsView_Day_1_en","features.lockscreen.impl.settings_LockScreenSettingsView_Night_1_en",20132,], +["features.lockscreen.impl.settings_LockScreenSettingsView_Day_2_en","features.lockscreen.impl.settings_LockScreenSettingsView_Night_2_en",20132,], ["appnav.loggedin_LoggedInView_Day_0_en","appnav.loggedin_LoggedInView_Night_0_en",0,], -["appnav.loggedin_LoggedInView_Day_1_en","appnav.loggedin_LoggedInView_Night_1_en",20119,], -["appnav.loggedin_LoggedInView_Day_2_en","appnav.loggedin_LoggedInView_Night_2_en",20119,], -["appnav.loggedin_LoggedInView_Day_3_en","appnav.loggedin_LoggedInView_Night_3_en",20119,], -["features.login.impl.screens.loginpassword_LoginPasswordView_Day_0_en","features.login.impl.screens.loginpassword_LoginPasswordView_Night_0_en",20119,], -["features.login.impl.screens.loginpassword_LoginPasswordView_Day_1_en","features.login.impl.screens.loginpassword_LoginPasswordView_Night_1_en",20119,], -["features.login.impl.screens.loginpassword_LoginPasswordView_Day_2_en","features.login.impl.screens.loginpassword_LoginPasswordView_Night_2_en",20119,], -["features.logout.impl_LogoutView_Day_0_en","features.logout.impl_LogoutView_Night_0_en",20119,], -["features.logout.impl_LogoutView_Day_1_en","features.logout.impl_LogoutView_Night_1_en",20119,], -["features.logout.impl_LogoutView_Day_2_en","features.logout.impl_LogoutView_Night_2_en",20119,], -["features.logout.impl_LogoutView_Day_3_en","features.logout.impl_LogoutView_Night_3_en",20119,], -["features.logout.impl_LogoutView_Day_4_en","features.logout.impl_LogoutView_Night_4_en",20119,], -["features.logout.impl_LogoutView_Day_5_en","features.logout.impl_LogoutView_Night_5_en",20119,], -["features.logout.impl_LogoutView_Day_6_en","features.logout.impl_LogoutView_Night_6_en",20119,], -["features.logout.impl_LogoutView_Day_7_en","features.logout.impl_LogoutView_Night_7_en",20119,], -["features.logout.impl_LogoutView_Day_8_en","features.logout.impl_LogoutView_Night_8_en",20119,], -["features.logout.impl_LogoutView_Day_9_en","features.logout.impl_LogoutView_Night_9_en",20119,], +["appnav.loggedin_LoggedInView_Day_1_en","appnav.loggedin_LoggedInView_Night_1_en",20132,], +["appnav.loggedin_LoggedInView_Day_2_en","appnav.loggedin_LoggedInView_Night_2_en",20132,], +["appnav.loggedin_LoggedInView_Day_3_en","appnav.loggedin_LoggedInView_Night_3_en",20132,], +["features.login.impl.screens.loginpassword_LoginPasswordView_Day_0_en","features.login.impl.screens.loginpassword_LoginPasswordView_Night_0_en",20132,], +["features.login.impl.screens.loginpassword_LoginPasswordView_Day_1_en","features.login.impl.screens.loginpassword_LoginPasswordView_Night_1_en",20132,], +["features.login.impl.screens.loginpassword_LoginPasswordView_Day_2_en","features.login.impl.screens.loginpassword_LoginPasswordView_Night_2_en",20132,], +["features.logout.impl_LogoutView_Day_0_en","features.logout.impl_LogoutView_Night_0_en",20132,], +["features.logout.impl_LogoutView_Day_1_en","features.logout.impl_LogoutView_Night_1_en",20132,], +["features.logout.impl_LogoutView_Day_2_en","features.logout.impl_LogoutView_Night_2_en",20132,], +["features.logout.impl_LogoutView_Day_3_en","features.logout.impl_LogoutView_Night_3_en",20132,], +["features.logout.impl_LogoutView_Day_4_en","features.logout.impl_LogoutView_Night_4_en",20132,], +["features.logout.impl_LogoutView_Day_5_en","features.logout.impl_LogoutView_Night_5_en",20132,], +["features.logout.impl_LogoutView_Day_6_en","features.logout.impl_LogoutView_Night_6_en",20132,], +["features.logout.impl_LogoutView_Day_7_en","features.logout.impl_LogoutView_Night_7_en",20132,], +["features.logout.impl_LogoutView_Day_8_en","features.logout.impl_LogoutView_Night_8_en",20132,], +["features.logout.impl_LogoutView_Day_9_en","features.logout.impl_LogoutView_Night_9_en",20132,], ["libraries.designsystem.components.button_MainActionButton_Buttons_en","",0,], -["libraries.textcomposer_MarkdownTextComposerEdit_Day_0_en","libraries.textcomposer_MarkdownTextComposerEdit_Night_0_en",20119,], +["libraries.textcomposer_MarkdownTextComposerEdit_Day_0_en","libraries.textcomposer_MarkdownTextComposerEdit_Night_0_en",20132,], ["libraries.textcomposer.components.markdown_MarkdownTextInput_Day_0_en","libraries.textcomposer.components.markdown_MarkdownTextInput_Night_0_en",0,], ["libraries.designsystem.atomic.atoms_MatrixBadgeAtomNegative_Day_0_en","libraries.designsystem.atomic.atoms_MatrixBadgeAtomNegative_Night_0_en",0,], ["libraries.designsystem.atomic.atoms_MatrixBadgeAtomNeutral_Day_0_en","libraries.designsystem.atomic.atoms_MatrixBadgeAtomNeutral_Night_0_en",0,], @@ -549,22 +560,22 @@ export const screenshots = [ ["libraries.matrix.ui.components_MatrixUserRow_Day_1_en","libraries.matrix.ui.components_MatrixUserRow_Night_1_en",0,], ["libraries.mediaviewer.impl.local.audio_MediaAudioView_Day_0_en","libraries.mediaviewer.impl.local.audio_MediaAudioView_Night_0_en",0,], ["libraries.mediaviewer.impl.local.audio_MediaAudioView_Day_1_en","libraries.mediaviewer.impl.local.audio_MediaAudioView_Night_1_en",0,], -["libraries.mediaviewer.impl.details_MediaDeleteConfirmationBottomSheet_Day_0_en","libraries.mediaviewer.impl.details_MediaDeleteConfirmationBottomSheet_Night_0_en",20119,], -["libraries.mediaviewer.impl.details_MediaDetailsBottomSheet_Day_0_en","libraries.mediaviewer.impl.details_MediaDetailsBottomSheet_Night_0_en",20119,], +["libraries.mediaviewer.impl.details_MediaDeleteConfirmationBottomSheet_Day_0_en","libraries.mediaviewer.impl.details_MediaDeleteConfirmationBottomSheet_Night_0_en",20132,], +["libraries.mediaviewer.impl.details_MediaDetailsBottomSheet_Day_0_en","libraries.mediaviewer.impl.details_MediaDetailsBottomSheet_Night_0_en",20132,], ["libraries.mediaviewer.impl.local.file_MediaFileView_Day_0_en","libraries.mediaviewer.impl.local.file_MediaFileView_Night_0_en",0,], -["libraries.mediaviewer.impl.gallery_MediaGalleryView_Day_0_en","libraries.mediaviewer.impl.gallery_MediaGalleryView_Night_0_en",20119,], -["libraries.mediaviewer.impl.gallery_MediaGalleryView_Day_10_en","libraries.mediaviewer.impl.gallery_MediaGalleryView_Night_10_en",20119,], -["libraries.mediaviewer.impl.gallery_MediaGalleryView_Day_11_en","libraries.mediaviewer.impl.gallery_MediaGalleryView_Night_11_en",20119,], -["libraries.mediaviewer.impl.gallery_MediaGalleryView_Day_12_en","libraries.mediaviewer.impl.gallery_MediaGalleryView_Night_12_en",20119,], -["libraries.mediaviewer.impl.gallery_MediaGalleryView_Day_1_en","libraries.mediaviewer.impl.gallery_MediaGalleryView_Night_1_en",20119,], -["libraries.mediaviewer.impl.gallery_MediaGalleryView_Day_2_en","libraries.mediaviewer.impl.gallery_MediaGalleryView_Night_2_en",20119,], -["libraries.mediaviewer.impl.gallery_MediaGalleryView_Day_3_en","libraries.mediaviewer.impl.gallery_MediaGalleryView_Night_3_en",20119,], -["libraries.mediaviewer.impl.gallery_MediaGalleryView_Day_4_en","libraries.mediaviewer.impl.gallery_MediaGalleryView_Night_4_en",20119,], -["libraries.mediaviewer.impl.gallery_MediaGalleryView_Day_5_en","libraries.mediaviewer.impl.gallery_MediaGalleryView_Night_5_en",20119,], -["libraries.mediaviewer.impl.gallery_MediaGalleryView_Day_6_en","libraries.mediaviewer.impl.gallery_MediaGalleryView_Night_6_en",20119,], -["libraries.mediaviewer.impl.gallery_MediaGalleryView_Day_7_en","libraries.mediaviewer.impl.gallery_MediaGalleryView_Night_7_en",20119,], -["libraries.mediaviewer.impl.gallery_MediaGalleryView_Day_8_en","libraries.mediaviewer.impl.gallery_MediaGalleryView_Night_8_en",20119,], -["libraries.mediaviewer.impl.gallery_MediaGalleryView_Day_9_en","libraries.mediaviewer.impl.gallery_MediaGalleryView_Night_9_en",20119,], +["libraries.mediaviewer.impl.gallery_MediaGalleryView_Day_0_en","libraries.mediaviewer.impl.gallery_MediaGalleryView_Night_0_en",20132,], +["libraries.mediaviewer.impl.gallery_MediaGalleryView_Day_10_en","libraries.mediaviewer.impl.gallery_MediaGalleryView_Night_10_en",20132,], +["libraries.mediaviewer.impl.gallery_MediaGalleryView_Day_11_en","libraries.mediaviewer.impl.gallery_MediaGalleryView_Night_11_en",20132,], +["libraries.mediaviewer.impl.gallery_MediaGalleryView_Day_12_en","libraries.mediaviewer.impl.gallery_MediaGalleryView_Night_12_en",20132,], +["libraries.mediaviewer.impl.gallery_MediaGalleryView_Day_1_en","libraries.mediaviewer.impl.gallery_MediaGalleryView_Night_1_en",20132,], +["libraries.mediaviewer.impl.gallery_MediaGalleryView_Day_2_en","libraries.mediaviewer.impl.gallery_MediaGalleryView_Night_2_en",20132,], +["libraries.mediaviewer.impl.gallery_MediaGalleryView_Day_3_en","libraries.mediaviewer.impl.gallery_MediaGalleryView_Night_3_en",20132,], +["libraries.mediaviewer.impl.gallery_MediaGalleryView_Day_4_en","libraries.mediaviewer.impl.gallery_MediaGalleryView_Night_4_en",20132,], +["libraries.mediaviewer.impl.gallery_MediaGalleryView_Day_5_en","libraries.mediaviewer.impl.gallery_MediaGalleryView_Night_5_en",20132,], +["libraries.mediaviewer.impl.gallery_MediaGalleryView_Day_6_en","libraries.mediaviewer.impl.gallery_MediaGalleryView_Night_6_en",20132,], +["libraries.mediaviewer.impl.gallery_MediaGalleryView_Day_7_en","libraries.mediaviewer.impl.gallery_MediaGalleryView_Night_7_en",20132,], +["libraries.mediaviewer.impl.gallery_MediaGalleryView_Day_8_en","libraries.mediaviewer.impl.gallery_MediaGalleryView_Night_8_en",20132,], +["libraries.mediaviewer.impl.gallery_MediaGalleryView_Day_9_en","libraries.mediaviewer.impl.gallery_MediaGalleryView_Night_9_en",20132,], ["libraries.mediaviewer.impl.local.image_MediaImageView_Day_0_en","libraries.mediaviewer.impl.local.image_MediaImageView_Night_0_en",0,], ["libraries.mediaviewer.impl.local.player_MediaPlayerControllerView_Day_0_en","libraries.mediaviewer.impl.local.player_MediaPlayerControllerView_Night_0_en",0,], ["libraries.mediaviewer.impl.local.player_MediaPlayerControllerView_Day_1_en","libraries.mediaviewer.impl.local.player_MediaPlayerControllerView_Night_1_en",0,], @@ -572,13 +583,13 @@ export const screenshots = [ ["libraries.mediaviewer.impl.local.video_MediaVideoView_Day_0_en","libraries.mediaviewer.impl.local.video_MediaVideoView_Night_0_en",0,], ["libraries.mediaviewer.impl.viewer_MediaViewerView_0_en","",0,], ["libraries.mediaviewer.impl.viewer_MediaViewerView_10_en","",0,], -["libraries.mediaviewer.impl.viewer_MediaViewerView_11_en","",20119,], -["libraries.mediaviewer.impl.viewer_MediaViewerView_12_en","",20119,], +["libraries.mediaviewer.impl.viewer_MediaViewerView_11_en","",20132,], +["libraries.mediaviewer.impl.viewer_MediaViewerView_12_en","",20132,], ["libraries.mediaviewer.impl.viewer_MediaViewerView_13_en","",0,], -["libraries.mediaviewer.impl.viewer_MediaViewerView_14_en","",20122,], +["libraries.mediaviewer.impl.viewer_MediaViewerView_14_en","",20132,], ["libraries.mediaviewer.impl.viewer_MediaViewerView_15_en","",0,], ["libraries.mediaviewer.impl.viewer_MediaViewerView_1_en","",0,], -["libraries.mediaviewer.impl.viewer_MediaViewerView_2_en","",20119,], +["libraries.mediaviewer.impl.viewer_MediaViewerView_2_en","",20132,], ["libraries.mediaviewer.impl.viewer_MediaViewerView_3_en","",0,], ["libraries.mediaviewer.impl.viewer_MediaViewerView_4_en","",0,], ["libraries.mediaviewer.impl.viewer_MediaViewerView_5_en","",0,], @@ -590,7 +601,7 @@ export const screenshots = [ ["libraries.textcomposer.mentions_MentionSpanTheme_Day_0_en","libraries.textcomposer.mentions_MentionSpanTheme_Night_0_en",0,], ["libraries.designsystem.theme.components.previews_Menu_Menus_en","",0,], ["features.messages.impl.messagecomposer_MessageComposerViewVoice_Day_0_en","features.messages.impl.messagecomposer_MessageComposerViewVoice_Night_0_en",0,], -["features.messages.impl.messagecomposer_MessageComposerView_Day_0_en","features.messages.impl.messagecomposer_MessageComposerView_Night_0_en",20119,], +["features.messages.impl.messagecomposer_MessageComposerView_Day_0_en","features.messages.impl.messagecomposer_MessageComposerView_Night_0_en",20132,], ["features.messages.impl.timeline.components_MessageEventBubble_Day_0_en","features.messages.impl.timeline.components_MessageEventBubble_Night_0_en",0,], ["features.messages.impl.timeline.components_MessageEventBubble_Day_10_en","features.messages.impl.timeline.components_MessageEventBubble_Night_10_en",0,], ["features.messages.impl.timeline.components_MessageEventBubble_Day_11_en","features.messages.impl.timeline.components_MessageEventBubble_Night_11_en",0,], @@ -607,7 +618,7 @@ export const screenshots = [ ["features.messages.impl.timeline.components_MessageEventBubble_Day_7_en","features.messages.impl.timeline.components_MessageEventBubble_Night_7_en",0,], ["features.messages.impl.timeline.components_MessageEventBubble_Day_8_en","features.messages.impl.timeline.components_MessageEventBubble_Night_8_en",0,], ["features.messages.impl.timeline.components_MessageEventBubble_Day_9_en","features.messages.impl.timeline.components_MessageEventBubble_Night_9_en",0,], -["features.messages.impl.timeline.components_MessageShieldView_Day_0_en","features.messages.impl.timeline.components_MessageShieldView_Night_0_en",20119,], +["features.messages.impl.timeline.components_MessageShieldView_Day_0_en","features.messages.impl.timeline.components_MessageShieldView_Night_0_en",20132,], ["features.messages.impl.timeline.components_MessageStateEventContainer_Day_0_en","features.messages.impl.timeline.components_MessageStateEventContainer_Night_0_en",0,], ["features.messages.impl.timeline.components_MessagesReactionButtonAdd_Day_0_en","features.messages.impl.timeline.components_MessagesReactionButtonAdd_Night_0_en",0,], ["features.messages.impl.timeline.components_MessagesReactionButtonExtra_Day_0_en","features.messages.impl.timeline.components_MessagesReactionButtonExtra_Night_0_en",0,], @@ -615,23 +626,23 @@ export const screenshots = [ ["features.messages.impl.timeline.components_MessagesReactionButton_Day_1_en","features.messages.impl.timeline.components_MessagesReactionButton_Night_1_en",0,], ["features.messages.impl.timeline.components_MessagesReactionButton_Day_2_en","features.messages.impl.timeline.components_MessagesReactionButton_Night_2_en",0,], ["features.messages.impl.timeline.components_MessagesReactionButton_Day_3_en","features.messages.impl.timeline.components_MessagesReactionButton_Night_3_en",0,], -["features.messages.impl.crypto.identity_MessagesViewWithIdentityChange_Day_0_en","features.messages.impl.crypto.identity_MessagesViewWithIdentityChange_Night_0_en",20119,], -["features.messages.impl.crypto.identity_MessagesViewWithIdentityChange_Day_1_en","features.messages.impl.crypto.identity_MessagesViewWithIdentityChange_Night_1_en",20119,], -["features.messages.impl.crypto.identity_MessagesViewWithIdentityChange_Day_2_en","features.messages.impl.crypto.identity_MessagesViewWithIdentityChange_Night_2_en",20119,], -["features.messages.impl_MessagesView_Day_0_en","features.messages.impl_MessagesView_Night_0_en",20119,], -["features.messages.impl_MessagesView_Day_10_en","features.messages.impl_MessagesView_Night_10_en",20119,], -["features.messages.impl_MessagesView_Day_11_en","features.messages.impl_MessagesView_Night_11_en",20119,], -["features.messages.impl_MessagesView_Day_1_en","features.messages.impl_MessagesView_Night_1_en",20119,], -["features.messages.impl_MessagesView_Day_2_en","features.messages.impl_MessagesView_Night_2_en",20119,], -["features.messages.impl_MessagesView_Day_3_en","features.messages.impl_MessagesView_Night_3_en",20119,], -["features.messages.impl_MessagesView_Day_4_en","features.messages.impl_MessagesView_Night_4_en",20119,], -["features.messages.impl_MessagesView_Day_5_en","features.messages.impl_MessagesView_Night_5_en",20119,], -["features.messages.impl_MessagesView_Day_6_en","features.messages.impl_MessagesView_Night_6_en",20119,], -["features.messages.impl_MessagesView_Day_7_en","features.messages.impl_MessagesView_Night_7_en",20119,], -["features.messages.impl_MessagesView_Day_8_en","features.messages.impl_MessagesView_Night_8_en",20119,], -["features.messages.impl_MessagesView_Day_9_en","features.messages.impl_MessagesView_Night_9_en",20119,], +["features.messages.impl.crypto.identity_MessagesViewWithIdentityChange_Day_0_en","features.messages.impl.crypto.identity_MessagesViewWithIdentityChange_Night_0_en",20132,], +["features.messages.impl.crypto.identity_MessagesViewWithIdentityChange_Day_1_en","features.messages.impl.crypto.identity_MessagesViewWithIdentityChange_Night_1_en",20132,], +["features.messages.impl.crypto.identity_MessagesViewWithIdentityChange_Day_2_en","features.messages.impl.crypto.identity_MessagesViewWithIdentityChange_Night_2_en",20132,], +["features.messages.impl_MessagesView_Day_0_en","features.messages.impl_MessagesView_Night_0_en",20132,], +["features.messages.impl_MessagesView_Day_10_en","features.messages.impl_MessagesView_Night_10_en",20132,], +["features.messages.impl_MessagesView_Day_11_en","features.messages.impl_MessagesView_Night_11_en",20132,], +["features.messages.impl_MessagesView_Day_1_en","features.messages.impl_MessagesView_Night_1_en",20132,], +["features.messages.impl_MessagesView_Day_2_en","features.messages.impl_MessagesView_Night_2_en",20132,], +["features.messages.impl_MessagesView_Day_3_en","features.messages.impl_MessagesView_Night_3_en",20132,], +["features.messages.impl_MessagesView_Day_4_en","features.messages.impl_MessagesView_Night_4_en",20132,], +["features.messages.impl_MessagesView_Day_5_en","features.messages.impl_MessagesView_Night_5_en",20132,], +["features.messages.impl_MessagesView_Day_6_en","features.messages.impl_MessagesView_Night_6_en",20132,], +["features.messages.impl_MessagesView_Day_7_en","features.messages.impl_MessagesView_Night_7_en",20132,], +["features.messages.impl_MessagesView_Day_8_en","features.messages.impl_MessagesView_Night_8_en",20132,], +["features.messages.impl_MessagesView_Day_9_en","features.messages.impl_MessagesView_Night_9_en",20132,], ["features.migration.impl_MigrationView_Day_0_en","features.migration.impl_MigrationView_Night_0_en",0,], -["features.migration.impl_MigrationView_Day_1_en","features.migration.impl_MigrationView_Night_1_en",20119,], +["features.migration.impl_MigrationView_Day_1_en","features.migration.impl_MigrationView_Night_1_en",20132,], ["libraries.designsystem.theme.components_ModalBottomSheetDark_Bottom_Sheets_en","",0,], ["libraries.designsystem.theme.components_ModalBottomSheetLight_Bottom_Sheets_en","",0,], ["appicon.element_MonochromeIcon_en","",0,], @@ -640,28 +651,28 @@ export const screenshots = [ ["libraries.designsystem.components.list_MutipleSelectionListItemSelectedTrailingContent_Multiple_selection_List_item_-_selection_in_trailing_content_List_items_en","",0,], ["libraries.designsystem.components.list_MutipleSelectionListItemSelected_Multiple_selection_List_item_-_selection_in_supporting_text_List_items_en","",0,], ["libraries.designsystem.components.list_MutipleSelectionListItem_Multiple_selection_List_item_-_no_selection_List_items_en","",0,], -["features.roomlist.impl.components_NativeSlidingSyncMigrationBanner_Day_0_en","features.roomlist.impl.components_NativeSlidingSyncMigrationBanner_Night_0_en",20119,], -["features.preferences.impl.notifications_NotificationSettingsView_Day_0_en","features.preferences.impl.notifications_NotificationSettingsView_Night_0_en",20119,], -["features.preferences.impl.notifications_NotificationSettingsView_Day_10_en","features.preferences.impl.notifications_NotificationSettingsView_Night_10_en",20119,], -["features.preferences.impl.notifications_NotificationSettingsView_Day_11_en","features.preferences.impl.notifications_NotificationSettingsView_Night_11_en",20119,], -["features.preferences.impl.notifications_NotificationSettingsView_Day_12_en","features.preferences.impl.notifications_NotificationSettingsView_Night_12_en",20119,], -["features.preferences.impl.notifications_NotificationSettingsView_Day_1_en","features.preferences.impl.notifications_NotificationSettingsView_Night_1_en",20119,], -["features.preferences.impl.notifications_NotificationSettingsView_Day_2_en","features.preferences.impl.notifications_NotificationSettingsView_Night_2_en",20119,], -["features.preferences.impl.notifications_NotificationSettingsView_Day_3_en","features.preferences.impl.notifications_NotificationSettingsView_Night_3_en",20119,], -["features.preferences.impl.notifications_NotificationSettingsView_Day_4_en","features.preferences.impl.notifications_NotificationSettingsView_Night_4_en",20119,], -["features.preferences.impl.notifications_NotificationSettingsView_Day_5_en","features.preferences.impl.notifications_NotificationSettingsView_Night_5_en",20119,], -["features.preferences.impl.notifications_NotificationSettingsView_Day_6_en","features.preferences.impl.notifications_NotificationSettingsView_Night_6_en",20119,], -["features.preferences.impl.notifications_NotificationSettingsView_Day_7_en","features.preferences.impl.notifications_NotificationSettingsView_Night_7_en",20119,], -["features.preferences.impl.notifications_NotificationSettingsView_Day_8_en","features.preferences.impl.notifications_NotificationSettingsView_Night_8_en",20119,], -["features.preferences.impl.notifications_NotificationSettingsView_Day_9_en","features.preferences.impl.notifications_NotificationSettingsView_Night_9_en",20119,], -["features.ftue.impl.notifications_NotificationsOptInView_Day_0_en","features.ftue.impl.notifications_NotificationsOptInView_Night_0_en",20119,], +["features.roomlist.impl.components_NativeSlidingSyncMigrationBanner_Day_0_en","features.roomlist.impl.components_NativeSlidingSyncMigrationBanner_Night_0_en",20132,], +["features.preferences.impl.notifications_NotificationSettingsView_Day_0_en","features.preferences.impl.notifications_NotificationSettingsView_Night_0_en",20132,], +["features.preferences.impl.notifications_NotificationSettingsView_Day_10_en","features.preferences.impl.notifications_NotificationSettingsView_Night_10_en",20132,], +["features.preferences.impl.notifications_NotificationSettingsView_Day_11_en","features.preferences.impl.notifications_NotificationSettingsView_Night_11_en",20132,], +["features.preferences.impl.notifications_NotificationSettingsView_Day_12_en","features.preferences.impl.notifications_NotificationSettingsView_Night_12_en",20132,], +["features.preferences.impl.notifications_NotificationSettingsView_Day_1_en","features.preferences.impl.notifications_NotificationSettingsView_Night_1_en",20132,], +["features.preferences.impl.notifications_NotificationSettingsView_Day_2_en","features.preferences.impl.notifications_NotificationSettingsView_Night_2_en",20132,], +["features.preferences.impl.notifications_NotificationSettingsView_Day_3_en","features.preferences.impl.notifications_NotificationSettingsView_Night_3_en",20132,], +["features.preferences.impl.notifications_NotificationSettingsView_Day_4_en","features.preferences.impl.notifications_NotificationSettingsView_Night_4_en",20132,], +["features.preferences.impl.notifications_NotificationSettingsView_Day_5_en","features.preferences.impl.notifications_NotificationSettingsView_Night_5_en",20132,], +["features.preferences.impl.notifications_NotificationSettingsView_Day_6_en","features.preferences.impl.notifications_NotificationSettingsView_Night_6_en",20132,], +["features.preferences.impl.notifications_NotificationSettingsView_Day_7_en","features.preferences.impl.notifications_NotificationSettingsView_Night_7_en",20132,], +["features.preferences.impl.notifications_NotificationSettingsView_Day_8_en","features.preferences.impl.notifications_NotificationSettingsView_Night_8_en",20132,], +["features.preferences.impl.notifications_NotificationSettingsView_Day_9_en","features.preferences.impl.notifications_NotificationSettingsView_Night_9_en",20132,], +["features.ftue.impl.notifications_NotificationsOptInView_Day_0_en","features.ftue.impl.notifications_NotificationsOptInView_Night_0_en",20132,], ["libraries.oidc.impl.webview_OidcView_Day_0_en","libraries.oidc.impl.webview_OidcView_Night_0_en",0,], ["libraries.oidc.impl.webview_OidcView_Day_1_en","libraries.oidc.impl.webview_OidcView_Night_1_en",0,], ["libraries.designsystem.atomic.pages_OnBoardingPage_Day_0_en","libraries.designsystem.atomic.pages_OnBoardingPage_Night_0_en",0,], -["features.onboarding.impl_OnBoardingView_Day_0_en","features.onboarding.impl_OnBoardingView_Night_0_en",20119,], -["features.onboarding.impl_OnBoardingView_Day_1_en","features.onboarding.impl_OnBoardingView_Night_1_en",20119,], -["features.onboarding.impl_OnBoardingView_Day_2_en","features.onboarding.impl_OnBoardingView_Night_2_en",20119,], -["features.onboarding.impl_OnBoardingView_Day_3_en","features.onboarding.impl_OnBoardingView_Night_3_en",20119,], +["features.onboarding.impl_OnBoardingView_Day_0_en","features.onboarding.impl_OnBoardingView_Night_0_en",20132,], +["features.onboarding.impl_OnBoardingView_Day_1_en","features.onboarding.impl_OnBoardingView_Night_1_en",20132,], +["features.onboarding.impl_OnBoardingView_Day_2_en","features.onboarding.impl_OnBoardingView_Night_2_en",20132,], +["features.onboarding.impl_OnBoardingView_Day_3_en","features.onboarding.impl_OnBoardingView_Night_3_en",20132,], ["libraries.designsystem.background_OnboardingBackground_Day_0_en","libraries.designsystem.background_OnboardingBackground_Night_0_en",0,], ["libraries.designsystem.theme.components_OutlinedButtonLargeLowPadding_Buttons_en","",0,], ["libraries.designsystem.theme.components_OutlinedButtonLarge_Buttons_en","",0,], @@ -675,65 +686,65 @@ export const screenshots = [ ["libraries.designsystem.components_PageTitleWithIconFull_Day_4_en","libraries.designsystem.components_PageTitleWithIconFull_Night_4_en",0,], ["libraries.designsystem.components_PageTitleWithIconFull_Day_5_en","libraries.designsystem.components_PageTitleWithIconFull_Night_5_en",0,], ["libraries.designsystem.components_PageTitleWithIconMinimal_Day_0_en","libraries.designsystem.components_PageTitleWithIconMinimal_Night_0_en",0,], -["libraries.mediaviewer.impl.local.pdf_PdfPagesErrorView_Day_0_en","libraries.mediaviewer.impl.local.pdf_PdfPagesErrorView_Night_0_en",20119,], -["features.roomdetails.impl.rolesandpermissions.changeroles_PendingMemberRowWithLongName_Day_0_en","features.roomdetails.impl.rolesandpermissions.changeroles_PendingMemberRowWithLongName_Night_0_en",20119,], -["libraries.permissions.api_PermissionsView_Day_0_en","libraries.permissions.api_PermissionsView_Night_0_en",20119,], -["libraries.permissions.api_PermissionsView_Day_1_en","libraries.permissions.api_PermissionsView_Night_1_en",20119,], -["libraries.permissions.api_PermissionsView_Day_2_en","libraries.permissions.api_PermissionsView_Night_2_en",20119,], -["libraries.permissions.api_PermissionsView_Day_3_en","libraries.permissions.api_PermissionsView_Night_3_en",20119,], +["libraries.mediaviewer.impl.local.pdf_PdfPagesErrorView_Day_0_en","libraries.mediaviewer.impl.local.pdf_PdfPagesErrorView_Night_0_en",20132,], +["features.roomdetails.impl.rolesandpermissions.changeroles_PendingMemberRowWithLongName_Day_0_en","features.roomdetails.impl.rolesandpermissions.changeroles_PendingMemberRowWithLongName_Night_0_en",20132,], +["libraries.permissions.api_PermissionsView_Day_0_en","libraries.permissions.api_PermissionsView_Night_0_en",20132,], +["libraries.permissions.api_PermissionsView_Day_1_en","libraries.permissions.api_PermissionsView_Night_1_en",20132,], +["libraries.permissions.api_PermissionsView_Day_2_en","libraries.permissions.api_PermissionsView_Night_2_en",20132,], +["libraries.permissions.api_PermissionsView_Day_3_en","libraries.permissions.api_PermissionsView_Night_3_en",20132,], ["features.lockscreen.impl.components_PinEntryTextField_Day_0_en","features.lockscreen.impl.components_PinEntryTextField_Night_0_en",0,], ["libraries.designsystem.components_PinIcon_Day_0_en","libraries.designsystem.components_PinIcon_Night_0_en",0,], ["features.lockscreen.impl.unlock.keypad_PinKeypad_Day_0_en","features.lockscreen.impl.unlock.keypad_PinKeypad_Night_0_en",0,], -["features.lockscreen.impl.unlock_PinUnlockViewInApp_Day_0_en","features.lockscreen.impl.unlock_PinUnlockViewInApp_Night_0_en",20119,], -["features.lockscreen.impl.unlock_PinUnlockViewInApp_Day_1_en","features.lockscreen.impl.unlock_PinUnlockViewInApp_Night_1_en",20119,], -["features.lockscreen.impl.unlock_PinUnlockViewInApp_Day_2_en","features.lockscreen.impl.unlock_PinUnlockViewInApp_Night_2_en",20119,], -["features.lockscreen.impl.unlock_PinUnlockViewInApp_Day_3_en","features.lockscreen.impl.unlock_PinUnlockViewInApp_Night_3_en",20119,], -["features.lockscreen.impl.unlock_PinUnlockViewInApp_Day_4_en","features.lockscreen.impl.unlock_PinUnlockViewInApp_Night_4_en",20119,], -["features.lockscreen.impl.unlock_PinUnlockViewInApp_Day_5_en","features.lockscreen.impl.unlock_PinUnlockViewInApp_Night_5_en",20119,], -["features.lockscreen.impl.unlock_PinUnlockViewInApp_Day_6_en","features.lockscreen.impl.unlock_PinUnlockViewInApp_Night_6_en",20119,], -["features.lockscreen.impl.unlock_PinUnlockViewInApp_Day_7_en","features.lockscreen.impl.unlock_PinUnlockViewInApp_Night_7_en",20119,], -["features.lockscreen.impl.unlock_PinUnlockView_Day_0_en","features.lockscreen.impl.unlock_PinUnlockView_Night_0_en",20119,], -["features.lockscreen.impl.unlock_PinUnlockView_Day_1_en","features.lockscreen.impl.unlock_PinUnlockView_Night_1_en",20119,], -["features.lockscreen.impl.unlock_PinUnlockView_Day_2_en","features.lockscreen.impl.unlock_PinUnlockView_Night_2_en",20119,], -["features.lockscreen.impl.unlock_PinUnlockView_Day_3_en","features.lockscreen.impl.unlock_PinUnlockView_Night_3_en",20119,], -["features.lockscreen.impl.unlock_PinUnlockView_Day_4_en","features.lockscreen.impl.unlock_PinUnlockView_Night_4_en",20119,], -["features.lockscreen.impl.unlock_PinUnlockView_Day_5_en","features.lockscreen.impl.unlock_PinUnlockView_Night_5_en",20119,], -["features.lockscreen.impl.unlock_PinUnlockView_Day_6_en","features.lockscreen.impl.unlock_PinUnlockView_Night_6_en",20119,], -["features.lockscreen.impl.unlock_PinUnlockView_Day_7_en","features.lockscreen.impl.unlock_PinUnlockView_Night_7_en",20119,], +["features.lockscreen.impl.unlock_PinUnlockViewInApp_Day_0_en","features.lockscreen.impl.unlock_PinUnlockViewInApp_Night_0_en",20132,], +["features.lockscreen.impl.unlock_PinUnlockViewInApp_Day_1_en","features.lockscreen.impl.unlock_PinUnlockViewInApp_Night_1_en",20132,], +["features.lockscreen.impl.unlock_PinUnlockViewInApp_Day_2_en","features.lockscreen.impl.unlock_PinUnlockViewInApp_Night_2_en",20132,], +["features.lockscreen.impl.unlock_PinUnlockViewInApp_Day_3_en","features.lockscreen.impl.unlock_PinUnlockViewInApp_Night_3_en",20132,], +["features.lockscreen.impl.unlock_PinUnlockViewInApp_Day_4_en","features.lockscreen.impl.unlock_PinUnlockViewInApp_Night_4_en",20132,], +["features.lockscreen.impl.unlock_PinUnlockViewInApp_Day_5_en","features.lockscreen.impl.unlock_PinUnlockViewInApp_Night_5_en",20132,], +["features.lockscreen.impl.unlock_PinUnlockViewInApp_Day_6_en","features.lockscreen.impl.unlock_PinUnlockViewInApp_Night_6_en",20132,], +["features.lockscreen.impl.unlock_PinUnlockViewInApp_Day_7_en","features.lockscreen.impl.unlock_PinUnlockViewInApp_Night_7_en",20132,], +["features.lockscreen.impl.unlock_PinUnlockView_Day_0_en","features.lockscreen.impl.unlock_PinUnlockView_Night_0_en",20132,], +["features.lockscreen.impl.unlock_PinUnlockView_Day_1_en","features.lockscreen.impl.unlock_PinUnlockView_Night_1_en",20132,], +["features.lockscreen.impl.unlock_PinUnlockView_Day_2_en","features.lockscreen.impl.unlock_PinUnlockView_Night_2_en",20132,], +["features.lockscreen.impl.unlock_PinUnlockView_Day_3_en","features.lockscreen.impl.unlock_PinUnlockView_Night_3_en",20132,], +["features.lockscreen.impl.unlock_PinUnlockView_Day_4_en","features.lockscreen.impl.unlock_PinUnlockView_Night_4_en",20132,], +["features.lockscreen.impl.unlock_PinUnlockView_Day_5_en","features.lockscreen.impl.unlock_PinUnlockView_Night_5_en",20132,], +["features.lockscreen.impl.unlock_PinUnlockView_Day_6_en","features.lockscreen.impl.unlock_PinUnlockView_Night_6_en",20132,], +["features.lockscreen.impl.unlock_PinUnlockView_Day_7_en","features.lockscreen.impl.unlock_PinUnlockView_Night_7_en",20132,], ["features.messages.impl.pinned.banner_PinnedMessagesBannerView_Day_0_en","features.messages.impl.pinned.banner_PinnedMessagesBannerView_Night_0_en",0,], -["features.messages.impl.pinned.banner_PinnedMessagesBannerView_Day_10_en","features.messages.impl.pinned.banner_PinnedMessagesBannerView_Night_10_en",20119,], -["features.messages.impl.pinned.banner_PinnedMessagesBannerView_Day_1_en","features.messages.impl.pinned.banner_PinnedMessagesBannerView_Night_1_en",20119,], -["features.messages.impl.pinned.banner_PinnedMessagesBannerView_Day_2_en","features.messages.impl.pinned.banner_PinnedMessagesBannerView_Night_2_en",20119,], -["features.messages.impl.pinned.banner_PinnedMessagesBannerView_Day_3_en","features.messages.impl.pinned.banner_PinnedMessagesBannerView_Night_3_en",20119,], -["features.messages.impl.pinned.banner_PinnedMessagesBannerView_Day_4_en","features.messages.impl.pinned.banner_PinnedMessagesBannerView_Night_4_en",20119,], -["features.messages.impl.pinned.banner_PinnedMessagesBannerView_Day_5_en","features.messages.impl.pinned.banner_PinnedMessagesBannerView_Night_5_en",20119,], -["features.messages.impl.pinned.banner_PinnedMessagesBannerView_Day_6_en","features.messages.impl.pinned.banner_PinnedMessagesBannerView_Night_6_en",20119,], -["features.messages.impl.pinned.banner_PinnedMessagesBannerView_Day_7_en","features.messages.impl.pinned.banner_PinnedMessagesBannerView_Night_7_en",20119,], -["features.messages.impl.pinned.banner_PinnedMessagesBannerView_Day_8_en","features.messages.impl.pinned.banner_PinnedMessagesBannerView_Night_8_en",20119,], -["features.messages.impl.pinned.banner_PinnedMessagesBannerView_Day_9_en","features.messages.impl.pinned.banner_PinnedMessagesBannerView_Night_9_en",20119,], -["features.messages.impl.pinned.list_PinnedMessagesListView_Day_0_en","features.messages.impl.pinned.list_PinnedMessagesListView_Night_0_en",20119,], -["features.messages.impl.pinned.list_PinnedMessagesListView_Day_1_en","features.messages.impl.pinned.list_PinnedMessagesListView_Night_1_en",20119,], -["features.messages.impl.pinned.list_PinnedMessagesListView_Day_2_en","features.messages.impl.pinned.list_PinnedMessagesListView_Night_2_en",20119,], -["features.messages.impl.pinned.list_PinnedMessagesListView_Day_3_en","features.messages.impl.pinned.list_PinnedMessagesListView_Night_3_en",20119,], +["features.messages.impl.pinned.banner_PinnedMessagesBannerView_Day_10_en","features.messages.impl.pinned.banner_PinnedMessagesBannerView_Night_10_en",20132,], +["features.messages.impl.pinned.banner_PinnedMessagesBannerView_Day_1_en","features.messages.impl.pinned.banner_PinnedMessagesBannerView_Night_1_en",20132,], +["features.messages.impl.pinned.banner_PinnedMessagesBannerView_Day_2_en","features.messages.impl.pinned.banner_PinnedMessagesBannerView_Night_2_en",20132,], +["features.messages.impl.pinned.banner_PinnedMessagesBannerView_Day_3_en","features.messages.impl.pinned.banner_PinnedMessagesBannerView_Night_3_en",20132,], +["features.messages.impl.pinned.banner_PinnedMessagesBannerView_Day_4_en","features.messages.impl.pinned.banner_PinnedMessagesBannerView_Night_4_en",20132,], +["features.messages.impl.pinned.banner_PinnedMessagesBannerView_Day_5_en","features.messages.impl.pinned.banner_PinnedMessagesBannerView_Night_5_en",20132,], +["features.messages.impl.pinned.banner_PinnedMessagesBannerView_Day_6_en","features.messages.impl.pinned.banner_PinnedMessagesBannerView_Night_6_en",20132,], +["features.messages.impl.pinned.banner_PinnedMessagesBannerView_Day_7_en","features.messages.impl.pinned.banner_PinnedMessagesBannerView_Night_7_en",20132,], +["features.messages.impl.pinned.banner_PinnedMessagesBannerView_Day_8_en","features.messages.impl.pinned.banner_PinnedMessagesBannerView_Night_8_en",20132,], +["features.messages.impl.pinned.banner_PinnedMessagesBannerView_Day_9_en","features.messages.impl.pinned.banner_PinnedMessagesBannerView_Night_9_en",20132,], +["features.messages.impl.pinned.list_PinnedMessagesListView_Day_0_en","features.messages.impl.pinned.list_PinnedMessagesListView_Night_0_en",20132,], +["features.messages.impl.pinned.list_PinnedMessagesListView_Day_1_en","features.messages.impl.pinned.list_PinnedMessagesListView_Night_1_en",20132,], +["features.messages.impl.pinned.list_PinnedMessagesListView_Day_2_en","features.messages.impl.pinned.list_PinnedMessagesListView_Night_2_en",20132,], +["features.messages.impl.pinned.list_PinnedMessagesListView_Day_3_en","features.messages.impl.pinned.list_PinnedMessagesListView_Night_3_en",20132,], ["libraries.designsystem.atomic.atoms_PlaceholderAtom_Day_0_en","libraries.designsystem.atomic.atoms_PlaceholderAtom_Night_0_en",0,], -["features.poll.api.pollcontent_PollAnswerViewDisclosedNotSelected_Day_0_en","features.poll.api.pollcontent_PollAnswerViewDisclosedNotSelected_Night_0_en",20119,], -["features.poll.api.pollcontent_PollAnswerViewDisclosedSelected_Day_0_en","features.poll.api.pollcontent_PollAnswerViewDisclosedSelected_Night_0_en",20119,], -["features.poll.api.pollcontent_PollAnswerViewEndedSelected_Day_0_en","features.poll.api.pollcontent_PollAnswerViewEndedSelected_Night_0_en",20119,], -["features.poll.api.pollcontent_PollAnswerViewEndedWinnerNotSelected_Day_0_en","features.poll.api.pollcontent_PollAnswerViewEndedWinnerNotSelected_Night_0_en",20119,], -["features.poll.api.pollcontent_PollAnswerViewEndedWinnerSelected_Day_0_en","features.poll.api.pollcontent_PollAnswerViewEndedWinnerSelected_Night_0_en",20119,], +["features.poll.api.pollcontent_PollAnswerViewDisclosedNotSelected_Day_0_en","features.poll.api.pollcontent_PollAnswerViewDisclosedNotSelected_Night_0_en",20132,], +["features.poll.api.pollcontent_PollAnswerViewDisclosedSelected_Day_0_en","features.poll.api.pollcontent_PollAnswerViewDisclosedSelected_Night_0_en",20132,], +["features.poll.api.pollcontent_PollAnswerViewEndedSelected_Day_0_en","features.poll.api.pollcontent_PollAnswerViewEndedSelected_Night_0_en",20132,], +["features.poll.api.pollcontent_PollAnswerViewEndedWinnerNotSelected_Day_0_en","features.poll.api.pollcontent_PollAnswerViewEndedWinnerNotSelected_Night_0_en",20132,], +["features.poll.api.pollcontent_PollAnswerViewEndedWinnerSelected_Day_0_en","features.poll.api.pollcontent_PollAnswerViewEndedWinnerSelected_Night_0_en",20132,], ["features.poll.api.pollcontent_PollAnswerViewUndisclosedNotSelected_Day_0_en","features.poll.api.pollcontent_PollAnswerViewUndisclosedNotSelected_Night_0_en",0,], ["features.poll.api.pollcontent_PollAnswerViewUndisclosedSelected_Day_0_en","features.poll.api.pollcontent_PollAnswerViewUndisclosedSelected_Night_0_en",0,], -["features.poll.api.pollcontent_PollContentViewCreatorEditable_Day_0_en","features.poll.api.pollcontent_PollContentViewCreatorEditable_Night_0_en",20119,], -["features.poll.api.pollcontent_PollContentViewCreatorEnded_Day_0_en","features.poll.api.pollcontent_PollContentViewCreatorEnded_Night_0_en",20119,], -["features.poll.api.pollcontent_PollContentViewCreator_Day_0_en","features.poll.api.pollcontent_PollContentViewCreator_Night_0_en",20119,], -["features.poll.api.pollcontent_PollContentViewDisclosed_Day_0_en","features.poll.api.pollcontent_PollContentViewDisclosed_Night_0_en",20119,], -["features.poll.api.pollcontent_PollContentViewEnded_Day_0_en","features.poll.api.pollcontent_PollContentViewEnded_Night_0_en",20119,], -["features.poll.api.pollcontent_PollContentViewUndisclosed_Day_0_en","features.poll.api.pollcontent_PollContentViewUndisclosed_Night_0_en",20119,], -["features.poll.impl.history_PollHistoryView_Day_0_en","features.poll.impl.history_PollHistoryView_Night_0_en",20119,], -["features.poll.impl.history_PollHistoryView_Day_1_en","features.poll.impl.history_PollHistoryView_Night_1_en",20119,], -["features.poll.impl.history_PollHistoryView_Day_2_en","features.poll.impl.history_PollHistoryView_Night_2_en",20119,], -["features.poll.impl.history_PollHistoryView_Day_3_en","features.poll.impl.history_PollHistoryView_Night_3_en",20119,], -["features.poll.impl.history_PollHistoryView_Day_4_en","features.poll.impl.history_PollHistoryView_Night_4_en",20119,], +["features.poll.api.pollcontent_PollContentViewCreatorEditable_Day_0_en","features.poll.api.pollcontent_PollContentViewCreatorEditable_Night_0_en",20132,], +["features.poll.api.pollcontent_PollContentViewCreatorEnded_Day_0_en","features.poll.api.pollcontent_PollContentViewCreatorEnded_Night_0_en",20132,], +["features.poll.api.pollcontent_PollContentViewCreator_Day_0_en","features.poll.api.pollcontent_PollContentViewCreator_Night_0_en",20132,], +["features.poll.api.pollcontent_PollContentViewDisclosed_Day_0_en","features.poll.api.pollcontent_PollContentViewDisclosed_Night_0_en",20132,], +["features.poll.api.pollcontent_PollContentViewEnded_Day_0_en","features.poll.api.pollcontent_PollContentViewEnded_Night_0_en",20132,], +["features.poll.api.pollcontent_PollContentViewUndisclosed_Day_0_en","features.poll.api.pollcontent_PollContentViewUndisclosed_Night_0_en",20132,], +["features.poll.impl.history_PollHistoryView_Day_0_en","features.poll.impl.history_PollHistoryView_Night_0_en",20132,], +["features.poll.impl.history_PollHistoryView_Day_1_en","features.poll.impl.history_PollHistoryView_Night_1_en",20132,], +["features.poll.impl.history_PollHistoryView_Day_2_en","features.poll.impl.history_PollHistoryView_Night_2_en",20132,], +["features.poll.impl.history_PollHistoryView_Day_3_en","features.poll.impl.history_PollHistoryView_Night_3_en",20132,], +["features.poll.impl.history_PollHistoryView_Day_4_en","features.poll.impl.history_PollHistoryView_Night_4_en",20132,], ["features.poll.api.pollcontent_PollTitleView_Day_0_en","features.poll.api.pollcontent_PollTitleView_Night_0_en",0,], ["libraries.designsystem.components.preferences_PreferenceCategory_Preferences_en","",0,], ["libraries.designsystem.components.preferences_PreferenceCheckbox_Preferences_en","",0,], @@ -751,202 +762,202 @@ export const screenshots = [ ["libraries.designsystem.components.preferences_PreferenceTextLight_Preferences_en","",0,], ["libraries.designsystem.components.preferences_PreferenceTextWithEndBadgeDark_Preferences_en","",0,], ["libraries.designsystem.components.preferences_PreferenceTextWithEndBadgeLight_Preferences_en","",0,], -["features.preferences.impl.root_PreferencesRootViewDark_0_en","",20119,], -["features.preferences.impl.root_PreferencesRootViewDark_1_en","",20119,], -["features.preferences.impl.root_PreferencesRootViewLight_0_en","",20119,], -["features.preferences.impl.root_PreferencesRootViewLight_1_en","",20119,], +["features.preferences.impl.root_PreferencesRootViewDark_0_en","",20132,], +["features.preferences.impl.root_PreferencesRootViewDark_1_en","",20132,], +["features.preferences.impl.root_PreferencesRootViewLight_0_en","",20132,], +["features.preferences.impl.root_PreferencesRootViewLight_1_en","",20132,], ["features.messages.impl.timeline.components.event_ProgressButton_Day_0_en","features.messages.impl.timeline.components.event_ProgressButton_Night_0_en",0,], -["libraries.designsystem.components_ProgressDialogContent_Dialogs_en","",20119,], -["libraries.designsystem.components_ProgressDialog_Day_0_en","libraries.designsystem.components_ProgressDialog_Night_0_en",20119,], -["features.messages.impl.timeline.protection_ProtectedView_Day_0_en","features.messages.impl.timeline.protection_ProtectedView_Night_0_en",20119,], -["features.messages.impl.timeline.protection_ProtectedView_Day_1_en","features.messages.impl.timeline.protection_ProtectedView_Night_1_en",20119,], -["features.messages.impl.timeline.protection_ProtectedView_Day_2_en","features.messages.impl.timeline.protection_ProtectedView_Night_2_en",20119,], -["features.messages.impl.timeline.protection_ProtectedView_Day_3_en","features.messages.impl.timeline.protection_ProtectedView_Night_3_en",20119,], -["features.login.impl.screens.qrcode.confirmation_QrCodeConfirmationView_Day_0_en","features.login.impl.screens.qrcode.confirmation_QrCodeConfirmationView_Night_0_en",20119,], -["features.login.impl.screens.qrcode.confirmation_QrCodeConfirmationView_Day_1_en","features.login.impl.screens.qrcode.confirmation_QrCodeConfirmationView_Night_1_en",20119,], -["features.login.impl.screens.qrcode.confirmation_QrCodeConfirmationView_Day_2_en","features.login.impl.screens.qrcode.confirmation_QrCodeConfirmationView_Night_2_en",20119,], -["features.login.impl.screens.qrcode.error_QrCodeErrorView_Day_0_en","features.login.impl.screens.qrcode.error_QrCodeErrorView_Night_0_en",20119,], -["features.login.impl.screens.qrcode.error_QrCodeErrorView_Day_1_en","features.login.impl.screens.qrcode.error_QrCodeErrorView_Night_1_en",20119,], -["features.login.impl.screens.qrcode.error_QrCodeErrorView_Day_2_en","features.login.impl.screens.qrcode.error_QrCodeErrorView_Night_2_en",20119,], -["features.login.impl.screens.qrcode.error_QrCodeErrorView_Day_3_en","features.login.impl.screens.qrcode.error_QrCodeErrorView_Night_3_en",20119,], -["features.login.impl.screens.qrcode.error_QrCodeErrorView_Day_4_en","features.login.impl.screens.qrcode.error_QrCodeErrorView_Night_4_en",20119,], -["features.login.impl.screens.qrcode.error_QrCodeErrorView_Day_5_en","features.login.impl.screens.qrcode.error_QrCodeErrorView_Night_5_en",20119,], -["features.login.impl.screens.qrcode.error_QrCodeErrorView_Day_6_en","features.login.impl.screens.qrcode.error_QrCodeErrorView_Night_6_en",20119,], -["features.login.impl.screens.qrcode.intro_QrCodeIntroView_Day_0_en","features.login.impl.screens.qrcode.intro_QrCodeIntroView_Night_0_en",20119,], -["features.login.impl.screens.qrcode.intro_QrCodeIntroView_Day_1_en","features.login.impl.screens.qrcode.intro_QrCodeIntroView_Night_1_en",20119,], -["features.login.impl.screens.qrcode.scan_QrCodeScanView_Day_0_en","features.login.impl.screens.qrcode.scan_QrCodeScanView_Night_0_en",20119,], -["features.login.impl.screens.qrcode.scan_QrCodeScanView_Day_1_en","features.login.impl.screens.qrcode.scan_QrCodeScanView_Night_1_en",20119,], -["features.login.impl.screens.qrcode.scan_QrCodeScanView_Day_2_en","features.login.impl.screens.qrcode.scan_QrCodeScanView_Night_2_en",20119,], -["features.login.impl.screens.qrcode.scan_QrCodeScanView_Day_3_en","features.login.impl.screens.qrcode.scan_QrCodeScanView_Night_3_en",20119,], +["libraries.designsystem.components_ProgressDialogContent_Dialogs_en","",20132,], +["libraries.designsystem.components_ProgressDialog_Day_0_en","libraries.designsystem.components_ProgressDialog_Night_0_en",20132,], +["features.messages.impl.timeline.protection_ProtectedView_Day_0_en","features.messages.impl.timeline.protection_ProtectedView_Night_0_en",20132,], +["features.messages.impl.timeline.protection_ProtectedView_Day_1_en","features.messages.impl.timeline.protection_ProtectedView_Night_1_en",20132,], +["features.messages.impl.timeline.protection_ProtectedView_Day_2_en","features.messages.impl.timeline.protection_ProtectedView_Night_2_en",20132,], +["features.messages.impl.timeline.protection_ProtectedView_Day_3_en","features.messages.impl.timeline.protection_ProtectedView_Night_3_en",20132,], +["features.login.impl.screens.qrcode.confirmation_QrCodeConfirmationView_Day_0_en","features.login.impl.screens.qrcode.confirmation_QrCodeConfirmationView_Night_0_en",20132,], +["features.login.impl.screens.qrcode.confirmation_QrCodeConfirmationView_Day_1_en","features.login.impl.screens.qrcode.confirmation_QrCodeConfirmationView_Night_1_en",20132,], +["features.login.impl.screens.qrcode.confirmation_QrCodeConfirmationView_Day_2_en","features.login.impl.screens.qrcode.confirmation_QrCodeConfirmationView_Night_2_en",20132,], +["features.login.impl.screens.qrcode.error_QrCodeErrorView_Day_0_en","features.login.impl.screens.qrcode.error_QrCodeErrorView_Night_0_en",20132,], +["features.login.impl.screens.qrcode.error_QrCodeErrorView_Day_1_en","features.login.impl.screens.qrcode.error_QrCodeErrorView_Night_1_en",20132,], +["features.login.impl.screens.qrcode.error_QrCodeErrorView_Day_2_en","features.login.impl.screens.qrcode.error_QrCodeErrorView_Night_2_en",20132,], +["features.login.impl.screens.qrcode.error_QrCodeErrorView_Day_3_en","features.login.impl.screens.qrcode.error_QrCodeErrorView_Night_3_en",20132,], +["features.login.impl.screens.qrcode.error_QrCodeErrorView_Day_4_en","features.login.impl.screens.qrcode.error_QrCodeErrorView_Night_4_en",20132,], +["features.login.impl.screens.qrcode.error_QrCodeErrorView_Day_5_en","features.login.impl.screens.qrcode.error_QrCodeErrorView_Night_5_en",20132,], +["features.login.impl.screens.qrcode.error_QrCodeErrorView_Day_6_en","features.login.impl.screens.qrcode.error_QrCodeErrorView_Night_6_en",20132,], +["features.login.impl.screens.qrcode.intro_QrCodeIntroView_Day_0_en","features.login.impl.screens.qrcode.intro_QrCodeIntroView_Night_0_en",20132,], +["features.login.impl.screens.qrcode.intro_QrCodeIntroView_Day_1_en","features.login.impl.screens.qrcode.intro_QrCodeIntroView_Night_1_en",20132,], +["features.login.impl.screens.qrcode.scan_QrCodeScanView_Day_0_en","features.login.impl.screens.qrcode.scan_QrCodeScanView_Night_0_en",20132,], +["features.login.impl.screens.qrcode.scan_QrCodeScanView_Day_1_en","features.login.impl.screens.qrcode.scan_QrCodeScanView_Night_1_en",20132,], +["features.login.impl.screens.qrcode.scan_QrCodeScanView_Day_2_en","features.login.impl.screens.qrcode.scan_QrCodeScanView_Night_2_en",20132,], +["features.login.impl.screens.qrcode.scan_QrCodeScanView_Day_3_en","features.login.impl.screens.qrcode.scan_QrCodeScanView_Night_3_en",20132,], ["libraries.designsystem.theme.components_RadioButton_Toggles_en","",0,], -["features.rageshake.api.detection_RageshakeDialogContent_Day_0_en","features.rageshake.api.detection_RageshakeDialogContent_Night_0_en",20119,], -["features.rageshake.api.preferences_RageshakePreferencesView_Day_0_en","features.rageshake.api.preferences_RageshakePreferencesView_Night_0_en",20119,], +["features.rageshake.api.detection_RageshakeDialogContent_Day_0_en","features.rageshake.api.detection_RageshakeDialogContent_Night_0_en",20132,], +["features.rageshake.api.preferences_RageshakePreferencesView_Day_0_en","features.rageshake.api.preferences_RageshakePreferencesView_Night_0_en",20132,], ["features.rageshake.api.preferences_RageshakePreferencesView_Day_1_en","features.rageshake.api.preferences_RageshakePreferencesView_Night_1_en",0,], ["features.messages.impl.timeline.components.reactionsummary_ReactionSummaryViewContent_Day_0_en","features.messages.impl.timeline.components.reactionsummary_ReactionSummaryViewContent_Night_0_en",0,], -["features.messages.impl.timeline.components.receipt.bottomsheet_ReadReceiptBottomSheet_Day_0_en","features.messages.impl.timeline.components.receipt.bottomsheet_ReadReceiptBottomSheet_Night_0_en",20119,], -["features.messages.impl.timeline.components.receipt.bottomsheet_ReadReceiptBottomSheet_Day_1_en","features.messages.impl.timeline.components.receipt.bottomsheet_ReadReceiptBottomSheet_Night_1_en",20119,], -["features.messages.impl.timeline.components.receipt.bottomsheet_ReadReceiptBottomSheet_Day_2_en","features.messages.impl.timeline.components.receipt.bottomsheet_ReadReceiptBottomSheet_Night_2_en",20119,], -["features.messages.impl.timeline.components.receipt.bottomsheet_ReadReceiptBottomSheet_Day_3_en","features.messages.impl.timeline.components.receipt.bottomsheet_ReadReceiptBottomSheet_Night_3_en",20119,], -["features.messages.impl.timeline.components.receipt.bottomsheet_ReadReceiptBottomSheet_Day_4_en","features.messages.impl.timeline.components.receipt.bottomsheet_ReadReceiptBottomSheet_Night_4_en",20119,], -["features.messages.impl.timeline.components.receipt.bottomsheet_ReadReceiptBottomSheet_Day_5_en","features.messages.impl.timeline.components.receipt.bottomsheet_ReadReceiptBottomSheet_Night_5_en",20119,], -["features.securebackup.impl.setup.views_RecoveryKeyView_Day_0_en","features.securebackup.impl.setup.views_RecoveryKeyView_Night_0_en",20119,], -["features.securebackup.impl.setup.views_RecoveryKeyView_Day_10_en","features.securebackup.impl.setup.views_RecoveryKeyView_Night_10_en",20119,], -["features.securebackup.impl.setup.views_RecoveryKeyView_Day_11_en","features.securebackup.impl.setup.views_RecoveryKeyView_Night_11_en",20119,], -["features.securebackup.impl.setup.views_RecoveryKeyView_Day_12_en","features.securebackup.impl.setup.views_RecoveryKeyView_Night_12_en",20119,], -["features.securebackup.impl.setup.views_RecoveryKeyView_Day_13_en","features.securebackup.impl.setup.views_RecoveryKeyView_Night_13_en",20119,], -["features.securebackup.impl.setup.views_RecoveryKeyView_Day_1_en","features.securebackup.impl.setup.views_RecoveryKeyView_Night_1_en",20119,], -["features.securebackup.impl.setup.views_RecoveryKeyView_Day_2_en","features.securebackup.impl.setup.views_RecoveryKeyView_Night_2_en",20119,], -["features.securebackup.impl.setup.views_RecoveryKeyView_Day_3_en","features.securebackup.impl.setup.views_RecoveryKeyView_Night_3_en",20119,], -["features.securebackup.impl.setup.views_RecoveryKeyView_Day_4_en","features.securebackup.impl.setup.views_RecoveryKeyView_Night_4_en",20119,], -["features.securebackup.impl.setup.views_RecoveryKeyView_Day_5_en","features.securebackup.impl.setup.views_RecoveryKeyView_Night_5_en",20119,], -["features.securebackup.impl.setup.views_RecoveryKeyView_Day_6_en","features.securebackup.impl.setup.views_RecoveryKeyView_Night_6_en",20119,], -["features.securebackup.impl.setup.views_RecoveryKeyView_Day_7_en","features.securebackup.impl.setup.views_RecoveryKeyView_Night_7_en",20119,], -["features.securebackup.impl.setup.views_RecoveryKeyView_Day_8_en","features.securebackup.impl.setup.views_RecoveryKeyView_Night_8_en",20119,], -["features.securebackup.impl.setup.views_RecoveryKeyView_Day_9_en","features.securebackup.impl.setup.views_RecoveryKeyView_Night_9_en",20119,], +["features.messages.impl.timeline.components.receipt.bottomsheet_ReadReceiptBottomSheet_Day_0_en","features.messages.impl.timeline.components.receipt.bottomsheet_ReadReceiptBottomSheet_Night_0_en",20132,], +["features.messages.impl.timeline.components.receipt.bottomsheet_ReadReceiptBottomSheet_Day_1_en","features.messages.impl.timeline.components.receipt.bottomsheet_ReadReceiptBottomSheet_Night_1_en",20132,], +["features.messages.impl.timeline.components.receipt.bottomsheet_ReadReceiptBottomSheet_Day_2_en","features.messages.impl.timeline.components.receipt.bottomsheet_ReadReceiptBottomSheet_Night_2_en",20132,], +["features.messages.impl.timeline.components.receipt.bottomsheet_ReadReceiptBottomSheet_Day_3_en","features.messages.impl.timeline.components.receipt.bottomsheet_ReadReceiptBottomSheet_Night_3_en",20132,], +["features.messages.impl.timeline.components.receipt.bottomsheet_ReadReceiptBottomSheet_Day_4_en","features.messages.impl.timeline.components.receipt.bottomsheet_ReadReceiptBottomSheet_Night_4_en",20132,], +["features.messages.impl.timeline.components.receipt.bottomsheet_ReadReceiptBottomSheet_Day_5_en","features.messages.impl.timeline.components.receipt.bottomsheet_ReadReceiptBottomSheet_Night_5_en",20132,], +["features.securebackup.impl.setup.views_RecoveryKeyView_Day_0_en","features.securebackup.impl.setup.views_RecoveryKeyView_Night_0_en",20132,], +["features.securebackup.impl.setup.views_RecoveryKeyView_Day_10_en","features.securebackup.impl.setup.views_RecoveryKeyView_Night_10_en",20132,], +["features.securebackup.impl.setup.views_RecoveryKeyView_Day_11_en","features.securebackup.impl.setup.views_RecoveryKeyView_Night_11_en",20132,], +["features.securebackup.impl.setup.views_RecoveryKeyView_Day_12_en","features.securebackup.impl.setup.views_RecoveryKeyView_Night_12_en",20132,], +["features.securebackup.impl.setup.views_RecoveryKeyView_Day_13_en","features.securebackup.impl.setup.views_RecoveryKeyView_Night_13_en",20132,], +["features.securebackup.impl.setup.views_RecoveryKeyView_Day_1_en","features.securebackup.impl.setup.views_RecoveryKeyView_Night_1_en",20132,], +["features.securebackup.impl.setup.views_RecoveryKeyView_Day_2_en","features.securebackup.impl.setup.views_RecoveryKeyView_Night_2_en",20132,], +["features.securebackup.impl.setup.views_RecoveryKeyView_Day_3_en","features.securebackup.impl.setup.views_RecoveryKeyView_Night_3_en",20132,], +["features.securebackup.impl.setup.views_RecoveryKeyView_Day_4_en","features.securebackup.impl.setup.views_RecoveryKeyView_Night_4_en",20132,], +["features.securebackup.impl.setup.views_RecoveryKeyView_Day_5_en","features.securebackup.impl.setup.views_RecoveryKeyView_Night_5_en",20132,], +["features.securebackup.impl.setup.views_RecoveryKeyView_Day_6_en","features.securebackup.impl.setup.views_RecoveryKeyView_Night_6_en",20132,], +["features.securebackup.impl.setup.views_RecoveryKeyView_Day_7_en","features.securebackup.impl.setup.views_RecoveryKeyView_Night_7_en",20132,], +["features.securebackup.impl.setup.views_RecoveryKeyView_Day_8_en","features.securebackup.impl.setup.views_RecoveryKeyView_Night_8_en",20132,], +["features.securebackup.impl.setup.views_RecoveryKeyView_Day_9_en","features.securebackup.impl.setup.views_RecoveryKeyView_Night_9_en",20132,], ["libraries.designsystem.atomic.atoms_RedIndicatorAtom_Day_0_en","libraries.designsystem.atomic.atoms_RedIndicatorAtom_Night_0_en",0,], ["features.messages.impl.timeline.components_ReplySwipeIndicator_Day_0_en","features.messages.impl.timeline.components_ReplySwipeIndicator_Night_0_en",0,], -["features.messages.impl.report_ReportMessageView_Day_0_en","features.messages.impl.report_ReportMessageView_Night_0_en",20119,], -["features.messages.impl.report_ReportMessageView_Day_1_en","features.messages.impl.report_ReportMessageView_Night_1_en",20119,], -["features.messages.impl.report_ReportMessageView_Day_2_en","features.messages.impl.report_ReportMessageView_Night_2_en",20119,], -["features.messages.impl.report_ReportMessageView_Day_3_en","features.messages.impl.report_ReportMessageView_Night_3_en",20119,], -["features.messages.impl.report_ReportMessageView_Day_4_en","features.messages.impl.report_ReportMessageView_Night_4_en",20119,], -["features.messages.impl.report_ReportMessageView_Day_5_en","features.messages.impl.report_ReportMessageView_Night_5_en",20119,], -["features.securebackup.impl.reset.password_ResetIdentityPasswordView_Day_0_en","features.securebackup.impl.reset.password_ResetIdentityPasswordView_Night_0_en",20119,], -["features.securebackup.impl.reset.password_ResetIdentityPasswordView_Day_1_en","features.securebackup.impl.reset.password_ResetIdentityPasswordView_Night_1_en",20119,], -["features.securebackup.impl.reset.password_ResetIdentityPasswordView_Day_2_en","features.securebackup.impl.reset.password_ResetIdentityPasswordView_Night_2_en",20119,], -["features.securebackup.impl.reset.password_ResetIdentityPasswordView_Day_3_en","features.securebackup.impl.reset.password_ResetIdentityPasswordView_Night_3_en",20119,], -["features.securebackup.impl.reset.root_ResetIdentityRootView_Day_0_en","features.securebackup.impl.reset.root_ResetIdentityRootView_Night_0_en",20119,], -["features.securebackup.impl.reset.root_ResetIdentityRootView_Day_1_en","features.securebackup.impl.reset.root_ResetIdentityRootView_Night_1_en",20119,], +["features.messages.impl.report_ReportMessageView_Day_0_en","features.messages.impl.report_ReportMessageView_Night_0_en",20132,], +["features.messages.impl.report_ReportMessageView_Day_1_en","features.messages.impl.report_ReportMessageView_Night_1_en",20132,], +["features.messages.impl.report_ReportMessageView_Day_2_en","features.messages.impl.report_ReportMessageView_Night_2_en",20132,], +["features.messages.impl.report_ReportMessageView_Day_3_en","features.messages.impl.report_ReportMessageView_Night_3_en",20132,], +["features.messages.impl.report_ReportMessageView_Day_4_en","features.messages.impl.report_ReportMessageView_Night_4_en",20132,], +["features.messages.impl.report_ReportMessageView_Day_5_en","features.messages.impl.report_ReportMessageView_Night_5_en",20132,], +["features.securebackup.impl.reset.password_ResetIdentityPasswordView_Day_0_en","features.securebackup.impl.reset.password_ResetIdentityPasswordView_Night_0_en",20132,], +["features.securebackup.impl.reset.password_ResetIdentityPasswordView_Day_1_en","features.securebackup.impl.reset.password_ResetIdentityPasswordView_Night_1_en",20132,], +["features.securebackup.impl.reset.password_ResetIdentityPasswordView_Day_2_en","features.securebackup.impl.reset.password_ResetIdentityPasswordView_Night_2_en",20132,], +["features.securebackup.impl.reset.password_ResetIdentityPasswordView_Day_3_en","features.securebackup.impl.reset.password_ResetIdentityPasswordView_Night_3_en",20132,], +["features.securebackup.impl.reset.root_ResetIdentityRootView_Day_0_en","features.securebackup.impl.reset.root_ResetIdentityRootView_Night_0_en",20132,], +["features.securebackup.impl.reset.root_ResetIdentityRootView_Day_1_en","features.securebackup.impl.reset.root_ResetIdentityRootView_Night_1_en",20132,], ["features.messages.impl.crypto.sendfailure.resolve_ResolveVerifiedUserSendFailureView_Day_0_en","features.messages.impl.crypto.sendfailure.resolve_ResolveVerifiedUserSendFailureView_Night_0_en",0,], -["features.messages.impl.crypto.sendfailure.resolve_ResolveVerifiedUserSendFailureView_Day_1_en","features.messages.impl.crypto.sendfailure.resolve_ResolveVerifiedUserSendFailureView_Night_1_en",20119,], -["features.messages.impl.crypto.sendfailure.resolve_ResolveVerifiedUserSendFailureView_Day_2_en","features.messages.impl.crypto.sendfailure.resolve_ResolveVerifiedUserSendFailureView_Night_2_en",20119,], -["libraries.designsystem.components.dialogs_RetryDialogContent_Dialogs_en","",20119,], -["libraries.designsystem.components.dialogs_RetryDialog_Day_0_en","libraries.designsystem.components.dialogs_RetryDialog_Night_0_en",20119,], -["features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Day_0_en","features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Night_0_en",20119,], -["features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Day_1_en","features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Night_1_en",20119,], -["features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Day_2_en","features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Night_2_en",20119,], -["features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Day_3_en","features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Night_3_en",20119,], -["features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Day_4_en","features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Night_4_en",20119,], -["features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Day_5_en","features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Night_5_en",20119,], -["features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Day_6_en","features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Night_6_en",20119,], -["features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Day_7_en","features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Night_7_en",20119,], +["features.messages.impl.crypto.sendfailure.resolve_ResolveVerifiedUserSendFailureView_Day_1_en","features.messages.impl.crypto.sendfailure.resolve_ResolveVerifiedUserSendFailureView_Night_1_en",20132,], +["features.messages.impl.crypto.sendfailure.resolve_ResolveVerifiedUserSendFailureView_Day_2_en","features.messages.impl.crypto.sendfailure.resolve_ResolveVerifiedUserSendFailureView_Night_2_en",20132,], +["libraries.designsystem.components.dialogs_RetryDialogContent_Dialogs_en","",20132,], +["libraries.designsystem.components.dialogs_RetryDialog_Day_0_en","libraries.designsystem.components.dialogs_RetryDialog_Night_0_en",20132,], +["features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Day_0_en","features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Night_0_en",20132,], +["features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Day_1_en","features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Night_1_en",20132,], +["features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Day_2_en","features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Night_2_en",20132,], +["features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Day_3_en","features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Night_3_en",20132,], +["features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Day_4_en","features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Night_4_en",20132,], +["features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Day_5_en","features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Night_5_en",20132,], +["features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Day_6_en","features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Night_6_en",20132,], +["features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Day_7_en","features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Night_7_en",20132,], ["libraries.matrix.ui.room.address_RoomAddressField_Day_0_en","libraries.matrix.ui.room.address_RoomAddressField_Night_0_en",0,], ["features.roomaliasresolver.impl_RoomAliasResolverView_Day_0_en","features.roomaliasresolver.impl_RoomAliasResolverView_Night_0_en",0,], -["features.roomaliasresolver.impl_RoomAliasResolverView_Day_1_en","features.roomaliasresolver.impl_RoomAliasResolverView_Night_1_en",0,], -["features.roomaliasresolver.impl_RoomAliasResolverView_Day_2_en","features.roomaliasresolver.impl_RoomAliasResolverView_Night_2_en",20119,], -["features.roomdetails.impl_RoomDetailsDark_0_en","",20119,], -["features.roomdetails.impl_RoomDetailsDark_10_en","",20119,], -["features.roomdetails.impl_RoomDetailsDark_11_en","",20119,], -["features.roomdetails.impl_RoomDetailsDark_12_en","",20119,], -["features.roomdetails.impl_RoomDetailsDark_13_en","",20119,], -["features.roomdetails.impl_RoomDetailsDark_14_en","",20119,], -["features.roomdetails.impl_RoomDetailsDark_15_en","",20119,], -["features.roomdetails.impl_RoomDetailsDark_1_en","",20119,], -["features.roomdetails.impl_RoomDetailsDark_2_en","",20119,], -["features.roomdetails.impl_RoomDetailsDark_3_en","",20119,], -["features.roomdetails.impl_RoomDetailsDark_4_en","",20119,], -["features.roomdetails.impl_RoomDetailsDark_5_en","",20119,], -["features.roomdetails.impl_RoomDetailsDark_6_en","",20119,], -["features.roomdetails.impl_RoomDetailsDark_7_en","",20119,], -["features.roomdetails.impl_RoomDetailsDark_8_en","",20119,], -["features.roomdetails.impl_RoomDetailsDark_9_en","",20119,], -["features.roomdetails.impl.edit_RoomDetailsEditView_Day_0_en","features.roomdetails.impl.edit_RoomDetailsEditView_Night_0_en",20119,], -["features.roomdetails.impl.edit_RoomDetailsEditView_Day_1_en","features.roomdetails.impl.edit_RoomDetailsEditView_Night_1_en",20119,], -["features.roomdetails.impl.edit_RoomDetailsEditView_Day_2_en","features.roomdetails.impl.edit_RoomDetailsEditView_Night_2_en",20119,], -["features.roomdetails.impl.edit_RoomDetailsEditView_Day_3_en","features.roomdetails.impl.edit_RoomDetailsEditView_Night_3_en",20119,], -["features.roomdetails.impl.edit_RoomDetailsEditView_Day_4_en","features.roomdetails.impl.edit_RoomDetailsEditView_Night_4_en",20119,], -["features.roomdetails.impl.edit_RoomDetailsEditView_Day_5_en","features.roomdetails.impl.edit_RoomDetailsEditView_Night_5_en",20119,], -["features.roomdetails.impl.edit_RoomDetailsEditView_Day_6_en","features.roomdetails.impl.edit_RoomDetailsEditView_Night_6_en",20119,], -["features.roomdetails.impl.edit_RoomDetailsEditView_Day_7_en","features.roomdetails.impl.edit_RoomDetailsEditView_Night_7_en",20119,], -["features.roomdetails.impl_RoomDetails_0_en","",20119,], -["features.roomdetails.impl_RoomDetails_10_en","",20119,], -["features.roomdetails.impl_RoomDetails_11_en","",20119,], -["features.roomdetails.impl_RoomDetails_12_en","",20119,], -["features.roomdetails.impl_RoomDetails_13_en","",20119,], -["features.roomdetails.impl_RoomDetails_14_en","",20119,], -["features.roomdetails.impl_RoomDetails_15_en","",20119,], -["features.roomdetails.impl_RoomDetails_1_en","",20119,], -["features.roomdetails.impl_RoomDetails_2_en","",20119,], -["features.roomdetails.impl_RoomDetails_3_en","",20119,], -["features.roomdetails.impl_RoomDetails_4_en","",20119,], -["features.roomdetails.impl_RoomDetails_5_en","",20119,], -["features.roomdetails.impl_RoomDetails_6_en","",20119,], -["features.roomdetails.impl_RoomDetails_7_en","",20119,], -["features.roomdetails.impl_RoomDetails_8_en","",20119,], -["features.roomdetails.impl_RoomDetails_9_en","",20119,], -["features.roomdirectory.impl.root_RoomDirectoryView_Day_0_en","features.roomdirectory.impl.root_RoomDirectoryView_Night_0_en",20119,], -["features.roomdirectory.impl.root_RoomDirectoryView_Day_1_en","features.roomdirectory.impl.root_RoomDirectoryView_Night_1_en",20119,], -["features.roomdirectory.impl.root_RoomDirectoryView_Day_2_en","features.roomdirectory.impl.root_RoomDirectoryView_Night_2_en",20119,], -["features.roomdetails.impl.invite_RoomInviteMembersView_Day_0_en","features.roomdetails.impl.invite_RoomInviteMembersView_Night_0_en",20119,], -["features.roomdetails.impl.invite_RoomInviteMembersView_Day_1_en","features.roomdetails.impl.invite_RoomInviteMembersView_Night_1_en",20119,], -["features.roomdetails.impl.invite_RoomInviteMembersView_Day_2_en","features.roomdetails.impl.invite_RoomInviteMembersView_Night_2_en",20119,], -["features.roomdetails.impl.invite_RoomInviteMembersView_Day_3_en","features.roomdetails.impl.invite_RoomInviteMembersView_Night_3_en",20119,], -["features.roomdetails.impl.invite_RoomInviteMembersView_Day_4_en","features.roomdetails.impl.invite_RoomInviteMembersView_Night_4_en",20119,], -["features.roomdetails.impl.invite_RoomInviteMembersView_Day_5_en","features.roomdetails.impl.invite_RoomInviteMembersView_Night_5_en",20119,], -["features.roomdetails.impl.invite_RoomInviteMembersView_Day_6_en","features.roomdetails.impl.invite_RoomInviteMembersView_Night_6_en",20119,], -["features.roomdetails.impl.invite_RoomInviteMembersView_Day_7_en","features.roomdetails.impl.invite_RoomInviteMembersView_Night_7_en",20119,], -["features.roomlist.impl.components_RoomListContentView_Day_0_en","features.roomlist.impl.components_RoomListContentView_Night_0_en",20119,], -["features.roomlist.impl.components_RoomListContentView_Day_1_en","features.roomlist.impl.components_RoomListContentView_Night_1_en",20119,], +["features.roomaliasresolver.impl_RoomAliasResolverView_Day_1_en","features.roomaliasresolver.impl_RoomAliasResolverView_Night_1_en",20136,], +["features.roomaliasresolver.impl_RoomAliasResolverView_Day_2_en","features.roomaliasresolver.impl_RoomAliasResolverView_Night_2_en",20132,], +["features.roomdetails.impl_RoomDetailsDark_0_en","",20132,], +["features.roomdetails.impl_RoomDetailsDark_10_en","",20132,], +["features.roomdetails.impl_RoomDetailsDark_11_en","",20132,], +["features.roomdetails.impl_RoomDetailsDark_12_en","",20132,], +["features.roomdetails.impl_RoomDetailsDark_13_en","",20132,], +["features.roomdetails.impl_RoomDetailsDark_14_en","",20132,], +["features.roomdetails.impl_RoomDetailsDark_15_en","",20132,], +["features.roomdetails.impl_RoomDetailsDark_1_en","",20132,], +["features.roomdetails.impl_RoomDetailsDark_2_en","",20132,], +["features.roomdetails.impl_RoomDetailsDark_3_en","",20132,], +["features.roomdetails.impl_RoomDetailsDark_4_en","",20132,], +["features.roomdetails.impl_RoomDetailsDark_5_en","",20132,], +["features.roomdetails.impl_RoomDetailsDark_6_en","",20132,], +["features.roomdetails.impl_RoomDetailsDark_7_en","",20132,], +["features.roomdetails.impl_RoomDetailsDark_8_en","",20132,], +["features.roomdetails.impl_RoomDetailsDark_9_en","",20132,], +["features.roomdetails.impl.edit_RoomDetailsEditView_Day_0_en","features.roomdetails.impl.edit_RoomDetailsEditView_Night_0_en",20132,], +["features.roomdetails.impl.edit_RoomDetailsEditView_Day_1_en","features.roomdetails.impl.edit_RoomDetailsEditView_Night_1_en",20132,], +["features.roomdetails.impl.edit_RoomDetailsEditView_Day_2_en","features.roomdetails.impl.edit_RoomDetailsEditView_Night_2_en",20132,], +["features.roomdetails.impl.edit_RoomDetailsEditView_Day_3_en","features.roomdetails.impl.edit_RoomDetailsEditView_Night_3_en",20132,], +["features.roomdetails.impl.edit_RoomDetailsEditView_Day_4_en","features.roomdetails.impl.edit_RoomDetailsEditView_Night_4_en",20132,], +["features.roomdetails.impl.edit_RoomDetailsEditView_Day_5_en","features.roomdetails.impl.edit_RoomDetailsEditView_Night_5_en",20132,], +["features.roomdetails.impl.edit_RoomDetailsEditView_Day_6_en","features.roomdetails.impl.edit_RoomDetailsEditView_Night_6_en",20132,], +["features.roomdetails.impl.edit_RoomDetailsEditView_Day_7_en","features.roomdetails.impl.edit_RoomDetailsEditView_Night_7_en",20132,], +["features.roomdetails.impl_RoomDetails_0_en","",20132,], +["features.roomdetails.impl_RoomDetails_10_en","",20132,], +["features.roomdetails.impl_RoomDetails_11_en","",20132,], +["features.roomdetails.impl_RoomDetails_12_en","",20132,], +["features.roomdetails.impl_RoomDetails_13_en","",20132,], +["features.roomdetails.impl_RoomDetails_14_en","",20132,], +["features.roomdetails.impl_RoomDetails_15_en","",20132,], +["features.roomdetails.impl_RoomDetails_1_en","",20132,], +["features.roomdetails.impl_RoomDetails_2_en","",20132,], +["features.roomdetails.impl_RoomDetails_3_en","",20132,], +["features.roomdetails.impl_RoomDetails_4_en","",20132,], +["features.roomdetails.impl_RoomDetails_5_en","",20132,], +["features.roomdetails.impl_RoomDetails_6_en","",20132,], +["features.roomdetails.impl_RoomDetails_7_en","",20132,], +["features.roomdetails.impl_RoomDetails_8_en","",20132,], +["features.roomdetails.impl_RoomDetails_9_en","",20132,], +["features.roomdirectory.impl.root_RoomDirectoryView_Day_0_en","features.roomdirectory.impl.root_RoomDirectoryView_Night_0_en",20132,], +["features.roomdirectory.impl.root_RoomDirectoryView_Day_1_en","features.roomdirectory.impl.root_RoomDirectoryView_Night_1_en",20132,], +["features.roomdirectory.impl.root_RoomDirectoryView_Day_2_en","features.roomdirectory.impl.root_RoomDirectoryView_Night_2_en",20132,], +["features.roomdetails.impl.invite_RoomInviteMembersView_Day_0_en","features.roomdetails.impl.invite_RoomInviteMembersView_Night_0_en",20132,], +["features.roomdetails.impl.invite_RoomInviteMembersView_Day_1_en","features.roomdetails.impl.invite_RoomInviteMembersView_Night_1_en",20132,], +["features.roomdetails.impl.invite_RoomInviteMembersView_Day_2_en","features.roomdetails.impl.invite_RoomInviteMembersView_Night_2_en",20132,], +["features.roomdetails.impl.invite_RoomInviteMembersView_Day_3_en","features.roomdetails.impl.invite_RoomInviteMembersView_Night_3_en",20132,], +["features.roomdetails.impl.invite_RoomInviteMembersView_Day_4_en","features.roomdetails.impl.invite_RoomInviteMembersView_Night_4_en",20132,], +["features.roomdetails.impl.invite_RoomInviteMembersView_Day_5_en","features.roomdetails.impl.invite_RoomInviteMembersView_Night_5_en",20132,], +["features.roomdetails.impl.invite_RoomInviteMembersView_Day_6_en","features.roomdetails.impl.invite_RoomInviteMembersView_Night_6_en",20132,], +["features.roomdetails.impl.invite_RoomInviteMembersView_Day_7_en","features.roomdetails.impl.invite_RoomInviteMembersView_Night_7_en",20132,], +["features.roomlist.impl.components_RoomListContentView_Day_0_en","features.roomlist.impl.components_RoomListContentView_Night_0_en",20132,], +["features.roomlist.impl.components_RoomListContentView_Day_1_en","features.roomlist.impl.components_RoomListContentView_Night_1_en",20132,], ["features.roomlist.impl.components_RoomListContentView_Day_2_en","features.roomlist.impl.components_RoomListContentView_Night_2_en",0,], -["features.roomlist.impl.components_RoomListContentView_Day_3_en","features.roomlist.impl.components_RoomListContentView_Night_3_en",20119,], -["features.roomlist.impl.components_RoomListContentView_Day_4_en","features.roomlist.impl.components_RoomListContentView_Night_4_en",20119,], -["features.roomlist.impl.components_RoomListContentView_Day_5_en","features.roomlist.impl.components_RoomListContentView_Night_5_en",20119,], -["features.roomlist.impl.filters_RoomListFiltersView_Day_0_en","features.roomlist.impl.filters_RoomListFiltersView_Night_0_en",20119,], -["features.roomlist.impl.filters_RoomListFiltersView_Day_1_en","features.roomlist.impl.filters_RoomListFiltersView_Night_1_en",20119,], -["features.roomlist.impl_RoomListModalBottomSheetContent_Day_0_en","features.roomlist.impl_RoomListModalBottomSheetContent_Night_0_en",20119,], -["features.roomlist.impl_RoomListModalBottomSheetContent_Day_1_en","features.roomlist.impl_RoomListModalBottomSheetContent_Night_1_en",20119,], -["features.roomlist.impl_RoomListModalBottomSheetContent_Day_2_en","features.roomlist.impl_RoomListModalBottomSheetContent_Night_2_en",20119,], +["features.roomlist.impl.components_RoomListContentView_Day_3_en","features.roomlist.impl.components_RoomListContentView_Night_3_en",20132,], +["features.roomlist.impl.components_RoomListContentView_Day_4_en","features.roomlist.impl.components_RoomListContentView_Night_4_en",20132,], +["features.roomlist.impl.components_RoomListContentView_Day_5_en","features.roomlist.impl.components_RoomListContentView_Night_5_en",20132,], +["features.roomlist.impl.filters_RoomListFiltersView_Day_0_en","features.roomlist.impl.filters_RoomListFiltersView_Night_0_en",20132,], +["features.roomlist.impl.filters_RoomListFiltersView_Day_1_en","features.roomlist.impl.filters_RoomListFiltersView_Night_1_en",20132,], +["features.roomlist.impl_RoomListModalBottomSheetContent_Day_0_en","features.roomlist.impl_RoomListModalBottomSheetContent_Night_0_en",20132,], +["features.roomlist.impl_RoomListModalBottomSheetContent_Day_1_en","features.roomlist.impl_RoomListModalBottomSheetContent_Night_1_en",20132,], +["features.roomlist.impl_RoomListModalBottomSheetContent_Day_2_en","features.roomlist.impl_RoomListModalBottomSheetContent_Night_2_en",20132,], ["features.roomlist.impl.search_RoomListSearchContent_Day_0_en","features.roomlist.impl.search_RoomListSearchContent_Night_0_en",0,], -["features.roomlist.impl.search_RoomListSearchContent_Day_1_en","features.roomlist.impl.search_RoomListSearchContent_Night_1_en",20119,], -["features.roomlist.impl.search_RoomListSearchContent_Day_2_en","features.roomlist.impl.search_RoomListSearchContent_Night_2_en",20119,], -["features.roomlist.impl_RoomListView_Day_0_en","features.roomlist.impl_RoomListView_Night_0_en",20119,], -["features.roomlist.impl_RoomListView_Day_10_en","features.roomlist.impl_RoomListView_Night_10_en",20119,], -["features.roomlist.impl_RoomListView_Day_1_en","features.roomlist.impl_RoomListView_Night_1_en",20119,], -["features.roomlist.impl_RoomListView_Day_2_en","features.roomlist.impl_RoomListView_Night_2_en",20119,], -["features.roomlist.impl_RoomListView_Day_3_en","features.roomlist.impl_RoomListView_Night_3_en",20119,], -["features.roomlist.impl_RoomListView_Day_4_en","features.roomlist.impl_RoomListView_Night_4_en",20119,], -["features.roomlist.impl_RoomListView_Day_5_en","features.roomlist.impl_RoomListView_Night_5_en",20119,], -["features.roomlist.impl_RoomListView_Day_6_en","features.roomlist.impl_RoomListView_Night_6_en",20119,], -["features.roomlist.impl_RoomListView_Day_7_en","features.roomlist.impl_RoomListView_Night_7_en",20119,], +["features.roomlist.impl.search_RoomListSearchContent_Day_1_en","features.roomlist.impl.search_RoomListSearchContent_Night_1_en",20132,], +["features.roomlist.impl.search_RoomListSearchContent_Day_2_en","features.roomlist.impl.search_RoomListSearchContent_Night_2_en",20132,], +["features.roomlist.impl_RoomListView_Day_0_en","features.roomlist.impl_RoomListView_Night_0_en",20132,], +["features.roomlist.impl_RoomListView_Day_10_en","features.roomlist.impl_RoomListView_Night_10_en",20132,], +["features.roomlist.impl_RoomListView_Day_1_en","features.roomlist.impl_RoomListView_Night_1_en",20132,], +["features.roomlist.impl_RoomListView_Day_2_en","features.roomlist.impl_RoomListView_Night_2_en",20132,], +["features.roomlist.impl_RoomListView_Day_3_en","features.roomlist.impl_RoomListView_Night_3_en",20132,], +["features.roomlist.impl_RoomListView_Day_4_en","features.roomlist.impl_RoomListView_Night_4_en",20132,], +["features.roomlist.impl_RoomListView_Day_5_en","features.roomlist.impl_RoomListView_Night_5_en",20132,], +["features.roomlist.impl_RoomListView_Day_6_en","features.roomlist.impl_RoomListView_Night_6_en",20132,], +["features.roomlist.impl_RoomListView_Day_7_en","features.roomlist.impl_RoomListView_Night_7_en",20132,], ["features.roomlist.impl_RoomListView_Day_8_en","features.roomlist.impl_RoomListView_Night_8_en",0,], ["features.roomlist.impl_RoomListView_Day_9_en","features.roomlist.impl_RoomListView_Night_9_en",0,], -["features.roomdetails.impl.members_RoomMemberListViewBanned_Day_0_en","features.roomdetails.impl.members_RoomMemberListViewBanned_Night_0_en",20119,], -["features.roomdetails.impl.members_RoomMemberListViewBanned_Day_1_en","features.roomdetails.impl.members_RoomMemberListViewBanned_Night_1_en",20119,], -["features.roomdetails.impl.members_RoomMemberListViewBanned_Day_2_en","features.roomdetails.impl.members_RoomMemberListViewBanned_Night_2_en",20119,], -["features.roomdetails.impl.members_RoomMemberListView_Day_0_en","features.roomdetails.impl.members_RoomMemberListView_Night_0_en",20119,], -["features.roomdetails.impl.members_RoomMemberListView_Day_1_en","features.roomdetails.impl.members_RoomMemberListView_Night_1_en",20119,], -["features.roomdetails.impl.members_RoomMemberListView_Day_2_en","features.roomdetails.impl.members_RoomMemberListView_Night_2_en",20119,], -["features.roomdetails.impl.members_RoomMemberListView_Day_3_en","features.roomdetails.impl.members_RoomMemberListView_Night_3_en",20119,], -["features.roomdetails.impl.members_RoomMemberListView_Day_4_en","features.roomdetails.impl.members_RoomMemberListView_Night_4_en",20119,], +["features.roomdetails.impl.members_RoomMemberListViewBanned_Day_0_en","features.roomdetails.impl.members_RoomMemberListViewBanned_Night_0_en",20132,], +["features.roomdetails.impl.members_RoomMemberListViewBanned_Day_1_en","features.roomdetails.impl.members_RoomMemberListViewBanned_Night_1_en",20132,], +["features.roomdetails.impl.members_RoomMemberListViewBanned_Day_2_en","features.roomdetails.impl.members_RoomMemberListViewBanned_Night_2_en",20132,], +["features.roomdetails.impl.members_RoomMemberListView_Day_0_en","features.roomdetails.impl.members_RoomMemberListView_Night_0_en",20132,], +["features.roomdetails.impl.members_RoomMemberListView_Day_1_en","features.roomdetails.impl.members_RoomMemberListView_Night_1_en",20132,], +["features.roomdetails.impl.members_RoomMemberListView_Day_2_en","features.roomdetails.impl.members_RoomMemberListView_Night_2_en",20132,], +["features.roomdetails.impl.members_RoomMemberListView_Day_3_en","features.roomdetails.impl.members_RoomMemberListView_Night_3_en",20132,], +["features.roomdetails.impl.members_RoomMemberListView_Day_4_en","features.roomdetails.impl.members_RoomMemberListView_Night_4_en",20132,], ["features.roomdetails.impl.members_RoomMemberListView_Day_5_en","features.roomdetails.impl.members_RoomMemberListView_Night_5_en",0,], -["features.roomdetails.impl.members_RoomMemberListView_Day_6_en","features.roomdetails.impl.members_RoomMemberListView_Night_6_en",20119,], -["features.roomdetails.impl.members_RoomMemberListView_Day_7_en","features.roomdetails.impl.members_RoomMemberListView_Night_7_en",20119,], -["features.roomdetails.impl.members_RoomMemberListView_Day_8_en","features.roomdetails.impl.members_RoomMemberListView_Night_8_en",20119,], +["features.roomdetails.impl.members_RoomMemberListView_Day_6_en","features.roomdetails.impl.members_RoomMemberListView_Night_6_en",20132,], +["features.roomdetails.impl.members_RoomMemberListView_Day_7_en","features.roomdetails.impl.members_RoomMemberListView_Night_7_en",20132,], +["features.roomdetails.impl.members_RoomMemberListView_Day_8_en","features.roomdetails.impl.members_RoomMemberListView_Night_8_en",20132,], ["libraries.designsystem.atomic.molecules_RoomMembersCountMolecule_Day_0_en","libraries.designsystem.atomic.molecules_RoomMembersCountMolecule_Night_0_en",0,], -["features.roomdetails.impl.members.moderation_RoomMembersModerationView_Day_0_en","features.roomdetails.impl.members.moderation_RoomMembersModerationView_Night_0_en",20119,], -["features.roomdetails.impl.members.moderation_RoomMembersModerationView_Day_1_en","features.roomdetails.impl.members.moderation_RoomMembersModerationView_Night_1_en",20119,], -["features.roomdetails.impl.members.moderation_RoomMembersModerationView_Day_2_en","features.roomdetails.impl.members.moderation_RoomMembersModerationView_Night_2_en",20119,], -["features.roomdetails.impl.members.moderation_RoomMembersModerationView_Day_3_en","features.roomdetails.impl.members.moderation_RoomMembersModerationView_Night_3_en",20119,], -["features.roomdetails.impl.members.moderation_RoomMembersModerationView_Day_4_en","features.roomdetails.impl.members.moderation_RoomMembersModerationView_Night_4_en",20119,], +["features.roomdetails.impl.members.moderation_RoomMembersModerationView_Day_0_en","features.roomdetails.impl.members.moderation_RoomMembersModerationView_Night_0_en",20132,], +["features.roomdetails.impl.members.moderation_RoomMembersModerationView_Day_1_en","features.roomdetails.impl.members.moderation_RoomMembersModerationView_Night_1_en",20132,], +["features.roomdetails.impl.members.moderation_RoomMembersModerationView_Day_2_en","features.roomdetails.impl.members.moderation_RoomMembersModerationView_Night_2_en",20132,], +["features.roomdetails.impl.members.moderation_RoomMembersModerationView_Day_3_en","features.roomdetails.impl.members.moderation_RoomMembersModerationView_Night_3_en",20132,], +["features.roomdetails.impl.members.moderation_RoomMembersModerationView_Day_4_en","features.roomdetails.impl.members.moderation_RoomMembersModerationView_Night_4_en",20132,], ["features.roomdetails.impl.members.moderation_RoomMembersModerationView_Day_5_en","features.roomdetails.impl.members.moderation_RoomMembersModerationView_Night_5_en",0,], -["features.roomdetails.impl.members.moderation_RoomMembersModerationView_Day_6_en","features.roomdetails.impl.members.moderation_RoomMembersModerationView_Night_6_en",20119,], -["features.roomdetails.impl.members.moderation_RoomMembersModerationView_Day_7_en","features.roomdetails.impl.members.moderation_RoomMembersModerationView_Night_7_en",20119,], -["features.roomdetails.impl.members.moderation_RoomMembersModerationView_Day_8_en","features.roomdetails.impl.members.moderation_RoomMembersModerationView_Night_8_en",20119,], +["features.roomdetails.impl.members.moderation_RoomMembersModerationView_Day_6_en","features.roomdetails.impl.members.moderation_RoomMembersModerationView_Night_6_en",20132,], +["features.roomdetails.impl.members.moderation_RoomMembersModerationView_Day_7_en","features.roomdetails.impl.members.moderation_RoomMembersModerationView_Night_7_en",20132,], +["features.roomdetails.impl.members.moderation_RoomMembersModerationView_Day_8_en","features.roomdetails.impl.members.moderation_RoomMembersModerationView_Night_8_en",20132,], ["features.roomdetails.impl.members.moderation_RoomMembersModerationView_Day_9_en","features.roomdetails.impl.members.moderation_RoomMembersModerationView_Night_9_en",0,], -["features.roomdetails.impl.notificationsettings_RoomNotificationSettingsOption_Day_0_en","features.roomdetails.impl.notificationsettings_RoomNotificationSettingsOption_Night_0_en",20119,], -["features.roomdetails.impl.notificationsettings_RoomNotificationSettingsView_Day_0_en","features.roomdetails.impl.notificationsettings_RoomNotificationSettingsView_Night_0_en",20119,], -["features.roomdetails.impl.notificationsettings_RoomNotificationSettingsView_Day_1_en","features.roomdetails.impl.notificationsettings_RoomNotificationSettingsView_Night_1_en",20119,], -["features.roomdetails.impl.notificationsettings_RoomNotificationSettingsView_Day_2_en","features.roomdetails.impl.notificationsettings_RoomNotificationSettingsView_Night_2_en",20119,], -["features.roomdetails.impl.notificationsettings_RoomNotificationSettingsView_Day_3_en","features.roomdetails.impl.notificationsettings_RoomNotificationSettingsView_Night_3_en",20119,], -["features.roomdetails.impl.notificationsettings_RoomNotificationSettingsView_Day_4_en","features.roomdetails.impl.notificationsettings_RoomNotificationSettingsView_Night_4_en",20119,], -["features.roomdetails.impl.notificationsettings_RoomNotificationSettingsView_Day_5_en","features.roomdetails.impl.notificationsettings_RoomNotificationSettingsView_Night_5_en",20119,], -["features.roomdetails.impl.notificationsettings_RoomNotificationSettingsView_Day_6_en","features.roomdetails.impl.notificationsettings_RoomNotificationSettingsView_Night_6_en",20119,], -["libraries.roomselect.impl_RoomSelectView_Day_0_en","libraries.roomselect.impl_RoomSelectView_Night_0_en",20119,], -["libraries.roomselect.impl_RoomSelectView_Day_1_en","libraries.roomselect.impl_RoomSelectView_Night_1_en",20119,], -["libraries.roomselect.impl_RoomSelectView_Day_2_en","libraries.roomselect.impl_RoomSelectView_Night_2_en",20119,], -["libraries.roomselect.impl_RoomSelectView_Day_3_en","libraries.roomselect.impl_RoomSelectView_Night_3_en",20119,], -["libraries.roomselect.impl_RoomSelectView_Day_4_en","libraries.roomselect.impl_RoomSelectView_Night_4_en",20119,], -["libraries.roomselect.impl_RoomSelectView_Day_5_en","libraries.roomselect.impl_RoomSelectView_Night_5_en",20119,], +["features.roomdetails.impl.notificationsettings_RoomNotificationSettingsOption_Day_0_en","features.roomdetails.impl.notificationsettings_RoomNotificationSettingsOption_Night_0_en",20132,], +["features.roomdetails.impl.notificationsettings_RoomNotificationSettingsView_Day_0_en","features.roomdetails.impl.notificationsettings_RoomNotificationSettingsView_Night_0_en",20132,], +["features.roomdetails.impl.notificationsettings_RoomNotificationSettingsView_Day_1_en","features.roomdetails.impl.notificationsettings_RoomNotificationSettingsView_Night_1_en",20132,], +["features.roomdetails.impl.notificationsettings_RoomNotificationSettingsView_Day_2_en","features.roomdetails.impl.notificationsettings_RoomNotificationSettingsView_Night_2_en",20132,], +["features.roomdetails.impl.notificationsettings_RoomNotificationSettingsView_Day_3_en","features.roomdetails.impl.notificationsettings_RoomNotificationSettingsView_Night_3_en",20132,], +["features.roomdetails.impl.notificationsettings_RoomNotificationSettingsView_Day_4_en","features.roomdetails.impl.notificationsettings_RoomNotificationSettingsView_Night_4_en",20132,], +["features.roomdetails.impl.notificationsettings_RoomNotificationSettingsView_Day_5_en","features.roomdetails.impl.notificationsettings_RoomNotificationSettingsView_Night_5_en",20132,], +["features.roomdetails.impl.notificationsettings_RoomNotificationSettingsView_Day_6_en","features.roomdetails.impl.notificationsettings_RoomNotificationSettingsView_Night_6_en",20132,], +["libraries.roomselect.impl_RoomSelectView_Day_0_en","libraries.roomselect.impl_RoomSelectView_Night_0_en",20132,], +["libraries.roomselect.impl_RoomSelectView_Day_1_en","libraries.roomselect.impl_RoomSelectView_Night_1_en",20132,], +["libraries.roomselect.impl_RoomSelectView_Day_2_en","libraries.roomselect.impl_RoomSelectView_Night_2_en",20132,], +["libraries.roomselect.impl_RoomSelectView_Day_3_en","libraries.roomselect.impl_RoomSelectView_Night_3_en",20132,], +["libraries.roomselect.impl_RoomSelectView_Day_4_en","libraries.roomselect.impl_RoomSelectView_Night_4_en",20132,], +["libraries.roomselect.impl_RoomSelectView_Day_5_en","libraries.roomselect.impl_RoomSelectView_Night_5_en",20132,], ["features.roomlist.impl.components_RoomSummaryPlaceholderRow_Day_0_en","features.roomlist.impl.components_RoomSummaryPlaceholderRow_Night_0_en",0,], ["features.roomlist.impl.components_RoomSummaryRow_Day_0_en","features.roomlist.impl.components_RoomSummaryRow_Night_0_en",0,], ["features.roomlist.impl.components_RoomSummaryRow_Day_10_en","features.roomlist.impl.components_RoomSummaryRow_Night_10_en",0,], @@ -969,12 +980,12 @@ export const screenshots = [ ["features.roomlist.impl.components_RoomSummaryRow_Day_26_en","features.roomlist.impl.components_RoomSummaryRow_Night_26_en",0,], ["features.roomlist.impl.components_RoomSummaryRow_Day_27_en","features.roomlist.impl.components_RoomSummaryRow_Night_27_en",0,], ["features.roomlist.impl.components_RoomSummaryRow_Day_28_en","features.roomlist.impl.components_RoomSummaryRow_Night_28_en",0,], -["features.roomlist.impl.components_RoomSummaryRow_Day_29_en","features.roomlist.impl.components_RoomSummaryRow_Night_29_en",20119,], -["features.roomlist.impl.components_RoomSummaryRow_Day_2_en","features.roomlist.impl.components_RoomSummaryRow_Night_2_en",20119,], -["features.roomlist.impl.components_RoomSummaryRow_Day_30_en","features.roomlist.impl.components_RoomSummaryRow_Night_30_en",20119,], -["features.roomlist.impl.components_RoomSummaryRow_Day_31_en","features.roomlist.impl.components_RoomSummaryRow_Night_31_en",20119,], -["features.roomlist.impl.components_RoomSummaryRow_Day_32_en","features.roomlist.impl.components_RoomSummaryRow_Night_32_en",20119,], -["features.roomlist.impl.components_RoomSummaryRow_Day_33_en","features.roomlist.impl.components_RoomSummaryRow_Night_33_en",20119,], +["features.roomlist.impl.components_RoomSummaryRow_Day_29_en","features.roomlist.impl.components_RoomSummaryRow_Night_29_en",20132,], +["features.roomlist.impl.components_RoomSummaryRow_Day_2_en","features.roomlist.impl.components_RoomSummaryRow_Night_2_en",20132,], +["features.roomlist.impl.components_RoomSummaryRow_Day_30_en","features.roomlist.impl.components_RoomSummaryRow_Night_30_en",20132,], +["features.roomlist.impl.components_RoomSummaryRow_Day_31_en","features.roomlist.impl.components_RoomSummaryRow_Night_31_en",20132,], +["features.roomlist.impl.components_RoomSummaryRow_Day_32_en","features.roomlist.impl.components_RoomSummaryRow_Night_32_en",20132,], +["features.roomlist.impl.components_RoomSummaryRow_Day_33_en","features.roomlist.impl.components_RoomSummaryRow_Night_33_en",20132,], ["features.roomlist.impl.components_RoomSummaryRow_Day_3_en","features.roomlist.impl.components_RoomSummaryRow_Night_3_en",0,], ["features.roomlist.impl.components_RoomSummaryRow_Day_4_en","features.roomlist.impl.components_RoomSummaryRow_Night_4_en",0,], ["features.roomlist.impl.components_RoomSummaryRow_Day_5_en","features.roomlist.impl.components_RoomSummaryRow_Night_5_en",0,], @@ -982,77 +993,77 @@ export const screenshots = [ ["features.roomlist.impl.components_RoomSummaryRow_Day_7_en","features.roomlist.impl.components_RoomSummaryRow_Night_7_en",0,], ["features.roomlist.impl.components_RoomSummaryRow_Day_8_en","features.roomlist.impl.components_RoomSummaryRow_Night_8_en",0,], ["features.roomlist.impl.components_RoomSummaryRow_Day_9_en","features.roomlist.impl.components_RoomSummaryRow_Night_9_en",0,], -["appnav.root_RootView_Day_0_en","appnav.root_RootView_Night_0_en",20119,], -["appnav.root_RootView_Day_1_en","appnav.root_RootView_Night_1_en",20119,], -["appnav.root_RootView_Day_2_en","appnav.root_RootView_Night_2_en",20119,], +["appnav.root_RootView_Day_0_en","appnav.root_RootView_Night_0_en",20132,], +["appnav.root_RootView_Day_1_en","appnav.root_RootView_Night_1_en",20132,], +["appnav.root_RootView_Day_2_en","appnav.root_RootView_Night_2_en",20132,], ["appicon.element_RoundIcon_en","",0,], ["appicon.enterprise_RoundIcon_en","",0,], ["libraries.designsystem.atomic.atoms_RoundedIconAtom_Day_0_en","libraries.designsystem.atomic.atoms_RoundedIconAtom_Night_0_en",0,], -["features.verifysession.impl.emoji_SasEmojis_Day_0_en","features.verifysession.impl.emoji_SasEmojis_Night_0_en",20119,], -["features.login.impl.screens.searchaccountprovider_SearchAccountProviderView_Day_0_en","features.login.impl.screens.searchaccountprovider_SearchAccountProviderView_Night_0_en",20119,], -["features.login.impl.screens.searchaccountprovider_SearchAccountProviderView_Day_1_en","features.login.impl.screens.searchaccountprovider_SearchAccountProviderView_Night_1_en",20119,], +["features.verifysession.impl.emoji_SasEmojis_Day_0_en","features.verifysession.impl.emoji_SasEmojis_Night_0_en",20132,], +["features.login.impl.screens.searchaccountprovider_SearchAccountProviderView_Day_0_en","features.login.impl.screens.searchaccountprovider_SearchAccountProviderView_Night_0_en",20132,], +["features.login.impl.screens.searchaccountprovider_SearchAccountProviderView_Day_1_en","features.login.impl.screens.searchaccountprovider_SearchAccountProviderView_Night_1_en",20132,], ["libraries.designsystem.theme.components_SearchBarActiveNoneQuery_Search_views_en","",0,], ["libraries.designsystem.theme.components_SearchBarActiveWithContent_Search_views_en","",0,], -["libraries.designsystem.theme.components_SearchBarActiveWithNoResults_Search_views_en","",20119,], +["libraries.designsystem.theme.components_SearchBarActiveWithNoResults_Search_views_en","",20132,], ["libraries.designsystem.theme.components_SearchBarActiveWithQueryNoBackButton_Search_views_en","",0,], ["libraries.designsystem.theme.components_SearchBarActiveWithQuery_Search_views_en","",0,], ["libraries.designsystem.theme.components_SearchBarInactive_Search_views_en","",0,], -["features.createroom.impl.components_SearchMultipleUsersResultItem_en","",20119,], -["features.createroom.impl.components_SearchSingleUserResultItem_en","",20119,], -["features.securebackup.impl.disable_SecureBackupDisableView_Day_0_en","features.securebackup.impl.disable_SecureBackupDisableView_Night_0_en",20119,], -["features.securebackup.impl.disable_SecureBackupDisableView_Day_1_en","features.securebackup.impl.disable_SecureBackupDisableView_Night_1_en",20119,], -["features.securebackup.impl.disable_SecureBackupDisableView_Day_2_en","features.securebackup.impl.disable_SecureBackupDisableView_Night_2_en",20119,], -["features.securebackup.impl.disable_SecureBackupDisableView_Day_3_en","features.securebackup.impl.disable_SecureBackupDisableView_Night_3_en",20119,], -["features.securebackup.impl.enter_SecureBackupEnterRecoveryKeyView_Day_0_en","features.securebackup.impl.enter_SecureBackupEnterRecoveryKeyView_Night_0_en",20119,], -["features.securebackup.impl.enter_SecureBackupEnterRecoveryKeyView_Day_1_en","features.securebackup.impl.enter_SecureBackupEnterRecoveryKeyView_Night_1_en",20119,], -["features.securebackup.impl.enter_SecureBackupEnterRecoveryKeyView_Day_2_en","features.securebackup.impl.enter_SecureBackupEnterRecoveryKeyView_Night_2_en",20119,], -["features.securebackup.impl.enter_SecureBackupEnterRecoveryKeyView_Day_3_en","features.securebackup.impl.enter_SecureBackupEnterRecoveryKeyView_Night_3_en",20119,], -["features.securebackup.impl.root_SecureBackupRootView_Day_0_en","features.securebackup.impl.root_SecureBackupRootView_Night_0_en",20119,], -["features.securebackup.impl.root_SecureBackupRootView_Day_10_en","features.securebackup.impl.root_SecureBackupRootView_Night_10_en",20119,], -["features.securebackup.impl.root_SecureBackupRootView_Day_11_en","features.securebackup.impl.root_SecureBackupRootView_Night_11_en",20119,], -["features.securebackup.impl.root_SecureBackupRootView_Day_12_en","features.securebackup.impl.root_SecureBackupRootView_Night_12_en",20119,], -["features.securebackup.impl.root_SecureBackupRootView_Day_13_en","features.securebackup.impl.root_SecureBackupRootView_Night_13_en",20119,], -["features.securebackup.impl.root_SecureBackupRootView_Day_14_en","features.securebackup.impl.root_SecureBackupRootView_Night_14_en",20119,], -["features.securebackup.impl.root_SecureBackupRootView_Day_15_en","features.securebackup.impl.root_SecureBackupRootView_Night_15_en",20119,], -["features.securebackup.impl.root_SecureBackupRootView_Day_16_en","features.securebackup.impl.root_SecureBackupRootView_Night_16_en",20119,], -["features.securebackup.impl.root_SecureBackupRootView_Day_17_en","features.securebackup.impl.root_SecureBackupRootView_Night_17_en",20119,], -["features.securebackup.impl.root_SecureBackupRootView_Day_1_en","features.securebackup.impl.root_SecureBackupRootView_Night_1_en",20119,], -["features.securebackup.impl.root_SecureBackupRootView_Day_2_en","features.securebackup.impl.root_SecureBackupRootView_Night_2_en",20119,], -["features.securebackup.impl.root_SecureBackupRootView_Day_3_en","features.securebackup.impl.root_SecureBackupRootView_Night_3_en",20119,], -["features.securebackup.impl.root_SecureBackupRootView_Day_4_en","features.securebackup.impl.root_SecureBackupRootView_Night_4_en",20119,], -["features.securebackup.impl.root_SecureBackupRootView_Day_5_en","features.securebackup.impl.root_SecureBackupRootView_Night_5_en",20119,], -["features.securebackup.impl.root_SecureBackupRootView_Day_6_en","features.securebackup.impl.root_SecureBackupRootView_Night_6_en",20119,], -["features.securebackup.impl.root_SecureBackupRootView_Day_7_en","features.securebackup.impl.root_SecureBackupRootView_Night_7_en",20119,], -["features.securebackup.impl.root_SecureBackupRootView_Day_8_en","features.securebackup.impl.root_SecureBackupRootView_Night_8_en",20119,], -["features.securebackup.impl.root_SecureBackupRootView_Day_9_en","features.securebackup.impl.root_SecureBackupRootView_Night_9_en",20119,], -["features.securebackup.impl.setup_SecureBackupSetupViewChange_Day_0_en","features.securebackup.impl.setup_SecureBackupSetupViewChange_Night_0_en",20119,], -["features.securebackup.impl.setup_SecureBackupSetupViewChange_Day_1_en","features.securebackup.impl.setup_SecureBackupSetupViewChange_Night_1_en",20119,], -["features.securebackup.impl.setup_SecureBackupSetupViewChange_Day_2_en","features.securebackup.impl.setup_SecureBackupSetupViewChange_Night_2_en",20119,], -["features.securebackup.impl.setup_SecureBackupSetupViewChange_Day_3_en","features.securebackup.impl.setup_SecureBackupSetupViewChange_Night_3_en",20119,], -["features.securebackup.impl.setup_SecureBackupSetupViewChange_Day_4_en","features.securebackup.impl.setup_SecureBackupSetupViewChange_Night_4_en",20119,], -["features.securebackup.impl.setup_SecureBackupSetupView_Day_0_en","features.securebackup.impl.setup_SecureBackupSetupView_Night_0_en",20119,], -["features.securebackup.impl.setup_SecureBackupSetupView_Day_1_en","features.securebackup.impl.setup_SecureBackupSetupView_Night_1_en",20119,], -["features.securebackup.impl.setup_SecureBackupSetupView_Day_2_en","features.securebackup.impl.setup_SecureBackupSetupView_Night_2_en",20119,], -["features.securebackup.impl.setup_SecureBackupSetupView_Day_3_en","features.securebackup.impl.setup_SecureBackupSetupView_Night_3_en",20119,], -["features.securebackup.impl.setup_SecureBackupSetupView_Day_4_en","features.securebackup.impl.setup_SecureBackupSetupView_Night_4_en",20119,], -["features.roomdetails.impl.securityandprivacy_SecurityAndPrivacyViewDark_0_en","",20122,], -["features.roomdetails.impl.securityandprivacy_SecurityAndPrivacyViewDark_1_en","",20122,], -["features.roomdetails.impl.securityandprivacy_SecurityAndPrivacyViewDark_2_en","",20122,], -["features.roomdetails.impl.securityandprivacy_SecurityAndPrivacyViewDark_3_en","",20122,], -["features.roomdetails.impl.securityandprivacy_SecurityAndPrivacyViewDark_4_en","",20122,], -["features.roomdetails.impl.securityandprivacy_SecurityAndPrivacyViewDark_5_en","",20122,], -["features.roomdetails.impl.securityandprivacy_SecurityAndPrivacyViewDark_6_en","",20122,], -["features.roomdetails.impl.securityandprivacy_SecurityAndPrivacyViewDark_7_en","",20122,], -["features.roomdetails.impl.securityandprivacy_SecurityAndPrivacyViewDark_8_en","",20122,], -["features.roomdetails.impl.securityandprivacy_SecurityAndPrivacyViewLight_0_en","",20122,], -["features.roomdetails.impl.securityandprivacy_SecurityAndPrivacyViewLight_1_en","",20122,], -["features.roomdetails.impl.securityandprivacy_SecurityAndPrivacyViewLight_2_en","",20122,], -["features.roomdetails.impl.securityandprivacy_SecurityAndPrivacyViewLight_3_en","",20122,], -["features.roomdetails.impl.securityandprivacy_SecurityAndPrivacyViewLight_4_en","",20122,], -["features.roomdetails.impl.securityandprivacy_SecurityAndPrivacyViewLight_5_en","",20122,], -["features.roomdetails.impl.securityandprivacy_SecurityAndPrivacyViewLight_6_en","",20122,], -["features.roomdetails.impl.securityandprivacy_SecurityAndPrivacyViewLight_7_en","",20122,], -["features.roomdetails.impl.securityandprivacy_SecurityAndPrivacyViewLight_8_en","",20122,], +["features.createroom.impl.components_SearchMultipleUsersResultItem_en","",20132,], +["features.createroom.impl.components_SearchSingleUserResultItem_en","",20132,], +["features.securebackup.impl.disable_SecureBackupDisableView_Day_0_en","features.securebackup.impl.disable_SecureBackupDisableView_Night_0_en",20132,], +["features.securebackup.impl.disable_SecureBackupDisableView_Day_1_en","features.securebackup.impl.disable_SecureBackupDisableView_Night_1_en",20132,], +["features.securebackup.impl.disable_SecureBackupDisableView_Day_2_en","features.securebackup.impl.disable_SecureBackupDisableView_Night_2_en",20132,], +["features.securebackup.impl.disable_SecureBackupDisableView_Day_3_en","features.securebackup.impl.disable_SecureBackupDisableView_Night_3_en",20132,], +["features.securebackup.impl.enter_SecureBackupEnterRecoveryKeyView_Day_0_en","features.securebackup.impl.enter_SecureBackupEnterRecoveryKeyView_Night_0_en",20132,], +["features.securebackup.impl.enter_SecureBackupEnterRecoveryKeyView_Day_1_en","features.securebackup.impl.enter_SecureBackupEnterRecoveryKeyView_Night_1_en",20132,], +["features.securebackup.impl.enter_SecureBackupEnterRecoveryKeyView_Day_2_en","features.securebackup.impl.enter_SecureBackupEnterRecoveryKeyView_Night_2_en",20132,], +["features.securebackup.impl.enter_SecureBackupEnterRecoveryKeyView_Day_3_en","features.securebackup.impl.enter_SecureBackupEnterRecoveryKeyView_Night_3_en",20132,], +["features.securebackup.impl.root_SecureBackupRootView_Day_0_en","features.securebackup.impl.root_SecureBackupRootView_Night_0_en",20132,], +["features.securebackup.impl.root_SecureBackupRootView_Day_10_en","features.securebackup.impl.root_SecureBackupRootView_Night_10_en",20132,], +["features.securebackup.impl.root_SecureBackupRootView_Day_11_en","features.securebackup.impl.root_SecureBackupRootView_Night_11_en",20132,], +["features.securebackup.impl.root_SecureBackupRootView_Day_12_en","features.securebackup.impl.root_SecureBackupRootView_Night_12_en",20132,], +["features.securebackup.impl.root_SecureBackupRootView_Day_13_en","features.securebackup.impl.root_SecureBackupRootView_Night_13_en",20132,], +["features.securebackup.impl.root_SecureBackupRootView_Day_14_en","features.securebackup.impl.root_SecureBackupRootView_Night_14_en",20132,], +["features.securebackup.impl.root_SecureBackupRootView_Day_15_en","features.securebackup.impl.root_SecureBackupRootView_Night_15_en",20132,], +["features.securebackup.impl.root_SecureBackupRootView_Day_16_en","features.securebackup.impl.root_SecureBackupRootView_Night_16_en",20132,], +["features.securebackup.impl.root_SecureBackupRootView_Day_17_en","features.securebackup.impl.root_SecureBackupRootView_Night_17_en",20132,], +["features.securebackup.impl.root_SecureBackupRootView_Day_1_en","features.securebackup.impl.root_SecureBackupRootView_Night_1_en",20132,], +["features.securebackup.impl.root_SecureBackupRootView_Day_2_en","features.securebackup.impl.root_SecureBackupRootView_Night_2_en",20132,], +["features.securebackup.impl.root_SecureBackupRootView_Day_3_en","features.securebackup.impl.root_SecureBackupRootView_Night_3_en",20132,], +["features.securebackup.impl.root_SecureBackupRootView_Day_4_en","features.securebackup.impl.root_SecureBackupRootView_Night_4_en",20132,], +["features.securebackup.impl.root_SecureBackupRootView_Day_5_en","features.securebackup.impl.root_SecureBackupRootView_Night_5_en",20132,], +["features.securebackup.impl.root_SecureBackupRootView_Day_6_en","features.securebackup.impl.root_SecureBackupRootView_Night_6_en",20132,], +["features.securebackup.impl.root_SecureBackupRootView_Day_7_en","features.securebackup.impl.root_SecureBackupRootView_Night_7_en",20132,], +["features.securebackup.impl.root_SecureBackupRootView_Day_8_en","features.securebackup.impl.root_SecureBackupRootView_Night_8_en",20132,], +["features.securebackup.impl.root_SecureBackupRootView_Day_9_en","features.securebackup.impl.root_SecureBackupRootView_Night_9_en",20132,], +["features.securebackup.impl.setup_SecureBackupSetupViewChange_Day_0_en","features.securebackup.impl.setup_SecureBackupSetupViewChange_Night_0_en",20132,], +["features.securebackup.impl.setup_SecureBackupSetupViewChange_Day_1_en","features.securebackup.impl.setup_SecureBackupSetupViewChange_Night_1_en",20132,], +["features.securebackup.impl.setup_SecureBackupSetupViewChange_Day_2_en","features.securebackup.impl.setup_SecureBackupSetupViewChange_Night_2_en",20132,], +["features.securebackup.impl.setup_SecureBackupSetupViewChange_Day_3_en","features.securebackup.impl.setup_SecureBackupSetupViewChange_Night_3_en",20132,], +["features.securebackup.impl.setup_SecureBackupSetupViewChange_Day_4_en","features.securebackup.impl.setup_SecureBackupSetupViewChange_Night_4_en",20132,], +["features.securebackup.impl.setup_SecureBackupSetupView_Day_0_en","features.securebackup.impl.setup_SecureBackupSetupView_Night_0_en",20132,], +["features.securebackup.impl.setup_SecureBackupSetupView_Day_1_en","features.securebackup.impl.setup_SecureBackupSetupView_Night_1_en",20132,], +["features.securebackup.impl.setup_SecureBackupSetupView_Day_2_en","features.securebackup.impl.setup_SecureBackupSetupView_Night_2_en",20132,], +["features.securebackup.impl.setup_SecureBackupSetupView_Day_3_en","features.securebackup.impl.setup_SecureBackupSetupView_Night_3_en",20132,], +["features.securebackup.impl.setup_SecureBackupSetupView_Day_4_en","features.securebackup.impl.setup_SecureBackupSetupView_Night_4_en",20132,], +["features.roomdetails.impl.securityandprivacy_SecurityAndPrivacyViewDark_0_en","",20132,], +["features.roomdetails.impl.securityandprivacy_SecurityAndPrivacyViewDark_1_en","",20132,], +["features.roomdetails.impl.securityandprivacy_SecurityAndPrivacyViewDark_2_en","",20132,], +["features.roomdetails.impl.securityandprivacy_SecurityAndPrivacyViewDark_3_en","",20132,], +["features.roomdetails.impl.securityandprivacy_SecurityAndPrivacyViewDark_4_en","",20132,], +["features.roomdetails.impl.securityandprivacy_SecurityAndPrivacyViewDark_5_en","",20132,], +["features.roomdetails.impl.securityandprivacy_SecurityAndPrivacyViewDark_6_en","",20132,], +["features.roomdetails.impl.securityandprivacy_SecurityAndPrivacyViewDark_7_en","",20132,], +["features.roomdetails.impl.securityandprivacy_SecurityAndPrivacyViewDark_8_en","",20132,], +["features.roomdetails.impl.securityandprivacy_SecurityAndPrivacyViewLight_0_en","",20132,], +["features.roomdetails.impl.securityandprivacy_SecurityAndPrivacyViewLight_1_en","",20132,], +["features.roomdetails.impl.securityandprivacy_SecurityAndPrivacyViewLight_2_en","",20132,], +["features.roomdetails.impl.securityandprivacy_SecurityAndPrivacyViewLight_3_en","",20132,], +["features.roomdetails.impl.securityandprivacy_SecurityAndPrivacyViewLight_4_en","",20132,], +["features.roomdetails.impl.securityandprivacy_SecurityAndPrivacyViewLight_5_en","",20132,], +["features.roomdetails.impl.securityandprivacy_SecurityAndPrivacyViewLight_6_en","",20132,], +["features.roomdetails.impl.securityandprivacy_SecurityAndPrivacyViewLight_7_en","",20132,], +["features.roomdetails.impl.securityandprivacy_SecurityAndPrivacyViewLight_8_en","",20132,], ["libraries.matrix.ui.components_SelectedRoom_Day_0_en","libraries.matrix.ui.components_SelectedRoom_Night_0_en",0,], ["libraries.matrix.ui.components_SelectedRoom_Day_1_en","libraries.matrix.ui.components_SelectedRoom_Night_1_en",0,], ["libraries.matrix.ui.components_SelectedRoom_Day_2_en","libraries.matrix.ui.components_SelectedRoom_Night_2_en",0,], @@ -1060,11 +1071,11 @@ export const screenshots = [ ["libraries.matrix.ui.components_SelectedUser_Day_0_en","libraries.matrix.ui.components_SelectedUser_Night_0_en",0,], ["libraries.matrix.ui.components_SelectedUsersRowList_Day_0_en","libraries.matrix.ui.components_SelectedUsersRowList_Night_0_en",0,], ["libraries.textcomposer.components_SendButton_Day_0_en","libraries.textcomposer.components_SendButton_Night_0_en",0,], -["features.location.impl.send_SendLocationView_Day_0_en","features.location.impl.send_SendLocationView_Night_0_en",20119,], -["features.location.impl.send_SendLocationView_Day_1_en","features.location.impl.send_SendLocationView_Night_1_en",20119,], -["features.location.impl.send_SendLocationView_Day_2_en","features.location.impl.send_SendLocationView_Night_2_en",20119,], -["features.location.impl.send_SendLocationView_Day_3_en","features.location.impl.send_SendLocationView_Night_3_en",20119,], -["features.location.impl.send_SendLocationView_Day_4_en","features.location.impl.send_SendLocationView_Night_4_en",20119,], +["features.location.impl.send_SendLocationView_Day_0_en","features.location.impl.send_SendLocationView_Night_0_en",20132,], +["features.location.impl.send_SendLocationView_Day_1_en","features.location.impl.send_SendLocationView_Night_1_en",20132,], +["features.location.impl.send_SendLocationView_Day_2_en","features.location.impl.send_SendLocationView_Night_2_en",20132,], +["features.location.impl.send_SendLocationView_Day_3_en","features.location.impl.send_SendLocationView_Night_3_en",20132,], +["features.location.impl.send_SendLocationView_Day_4_en","features.location.impl.send_SendLocationView_Night_4_en",20132,], ["libraries.matrix.ui.messages.sender_SenderName_Day_0_en","libraries.matrix.ui.messages.sender_SenderName_Night_0_en",0,], ["libraries.matrix.ui.messages.sender_SenderName_Day_1_en","libraries.matrix.ui.messages.sender_SenderName_Night_1_en",0,], ["libraries.matrix.ui.messages.sender_SenderName_Day_2_en","libraries.matrix.ui.messages.sender_SenderName_Night_2_en",0,], @@ -1074,27 +1085,27 @@ export const screenshots = [ ["libraries.matrix.ui.messages.sender_SenderName_Day_6_en","libraries.matrix.ui.messages.sender_SenderName_Night_6_en",0,], ["libraries.matrix.ui.messages.sender_SenderName_Day_7_en","libraries.matrix.ui.messages.sender_SenderName_Night_7_en",0,], ["libraries.matrix.ui.messages.sender_SenderName_Day_8_en","libraries.matrix.ui.messages.sender_SenderName_Night_8_en",0,], -["features.verifysession.impl.incoming.ui_SessionDetailsView_Day_0_en","features.verifysession.impl.incoming.ui_SessionDetailsView_Night_0_en",20119,], -["features.roomlist.impl.components_SetUpRecoveryKeyBanner_Day_0_en","features.roomlist.impl.components_SetUpRecoveryKeyBanner_Night_0_en",20119,], -["features.lockscreen.impl.setup.biometric_SetupBiometricView_Day_0_en","features.lockscreen.impl.setup.biometric_SetupBiometricView_Night_0_en",20119,], -["features.lockscreen.impl.setup.pin_SetupPinView_Day_0_en","features.lockscreen.impl.setup.pin_SetupPinView_Night_0_en",20119,], -["features.lockscreen.impl.setup.pin_SetupPinView_Day_1_en","features.lockscreen.impl.setup.pin_SetupPinView_Night_1_en",20119,], -["features.lockscreen.impl.setup.pin_SetupPinView_Day_2_en","features.lockscreen.impl.setup.pin_SetupPinView_Night_2_en",20119,], -["features.lockscreen.impl.setup.pin_SetupPinView_Day_3_en","features.lockscreen.impl.setup.pin_SetupPinView_Night_3_en",20119,], -["features.lockscreen.impl.setup.pin_SetupPinView_Day_4_en","features.lockscreen.impl.setup.pin_SetupPinView_Night_4_en",20119,], +["features.verifysession.impl.incoming.ui_SessionDetailsView_Day_0_en","features.verifysession.impl.incoming.ui_SessionDetailsView_Night_0_en",20132,], +["features.roomlist.impl.components_SetUpRecoveryKeyBanner_Day_0_en","features.roomlist.impl.components_SetUpRecoveryKeyBanner_Night_0_en",20132,], +["features.lockscreen.impl.setup.biometric_SetupBiometricView_Day_0_en","features.lockscreen.impl.setup.biometric_SetupBiometricView_Night_0_en",20132,], +["features.lockscreen.impl.setup.pin_SetupPinView_Day_0_en","features.lockscreen.impl.setup.pin_SetupPinView_Night_0_en",20132,], +["features.lockscreen.impl.setup.pin_SetupPinView_Day_1_en","features.lockscreen.impl.setup.pin_SetupPinView_Night_1_en",20132,], +["features.lockscreen.impl.setup.pin_SetupPinView_Day_2_en","features.lockscreen.impl.setup.pin_SetupPinView_Night_2_en",20132,], +["features.lockscreen.impl.setup.pin_SetupPinView_Day_3_en","features.lockscreen.impl.setup.pin_SetupPinView_Night_3_en",20132,], +["features.lockscreen.impl.setup.pin_SetupPinView_Day_4_en","features.lockscreen.impl.setup.pin_SetupPinView_Night_4_en",20132,], ["features.share.impl_ShareView_Day_0_en","features.share.impl_ShareView_Night_0_en",0,], ["features.share.impl_ShareView_Day_1_en","features.share.impl_ShareView_Night_1_en",0,], ["features.share.impl_ShareView_Day_2_en","features.share.impl_ShareView_Night_2_en",0,], -["features.share.impl_ShareView_Day_3_en","features.share.impl_ShareView_Night_3_en",20119,], -["features.location.impl.show_ShowLocationView_Day_0_en","features.location.impl.show_ShowLocationView_Night_0_en",20119,], -["features.location.impl.show_ShowLocationView_Day_1_en","features.location.impl.show_ShowLocationView_Night_1_en",20119,], -["features.location.impl.show_ShowLocationView_Day_2_en","features.location.impl.show_ShowLocationView_Night_2_en",20119,], -["features.location.impl.show_ShowLocationView_Day_3_en","features.location.impl.show_ShowLocationView_Night_3_en",20119,], -["features.location.impl.show_ShowLocationView_Day_4_en","features.location.impl.show_ShowLocationView_Night_4_en",20119,], -["features.location.impl.show_ShowLocationView_Day_5_en","features.location.impl.show_ShowLocationView_Night_5_en",20119,], -["features.location.impl.show_ShowLocationView_Day_6_en","features.location.impl.show_ShowLocationView_Night_6_en",20119,], -["features.location.impl.show_ShowLocationView_Day_7_en","features.location.impl.show_ShowLocationView_Night_7_en",20119,], -["features.signedout.impl_SignedOutView_Day_0_en","features.signedout.impl_SignedOutView_Night_0_en",20119,], +["features.share.impl_ShareView_Day_3_en","features.share.impl_ShareView_Night_3_en",20132,], +["features.location.impl.show_ShowLocationView_Day_0_en","features.location.impl.show_ShowLocationView_Night_0_en",20132,], +["features.location.impl.show_ShowLocationView_Day_1_en","features.location.impl.show_ShowLocationView_Night_1_en",20132,], +["features.location.impl.show_ShowLocationView_Day_2_en","features.location.impl.show_ShowLocationView_Night_2_en",20132,], +["features.location.impl.show_ShowLocationView_Day_3_en","features.location.impl.show_ShowLocationView_Night_3_en",20132,], +["features.location.impl.show_ShowLocationView_Day_4_en","features.location.impl.show_ShowLocationView_Night_4_en",20132,], +["features.location.impl.show_ShowLocationView_Day_5_en","features.location.impl.show_ShowLocationView_Night_5_en",20132,], +["features.location.impl.show_ShowLocationView_Day_6_en","features.location.impl.show_ShowLocationView_Night_6_en",20132,], +["features.location.impl.show_ShowLocationView_Day_7_en","features.location.impl.show_ShowLocationView_Night_7_en",20132,], +["features.signedout.impl_SignedOutView_Day_0_en","features.signedout.impl_SignedOutView_Night_0_en",20132,], ["libraries.designsystem.components.dialogs_SingleSelectionDialogContent_Dialogs_en","",0,], ["libraries.designsystem.components.dialogs_SingleSelectionDialog_Day_0_en","libraries.designsystem.components.dialogs_SingleSelectionDialog_Night_0_en",0,], ["libraries.designsystem.components.list_SingleSelectionListItemCustomFormattert_Single_selection_List_item_-_custom_formatter_List_items_en","",0,], @@ -1103,7 +1114,7 @@ export const screenshots = [ ["libraries.designsystem.components.list_SingleSelectionListItemUnselectedWithSupportingText_Single_selection_List_item_-_no_selection,_supporting_text_List_items_en","",0,], ["libraries.designsystem.components.list_SingleSelectionListItem_Single_selection_List_item_-_no_selection_List_items_en","",0,], ["libraries.designsystem.theme.components_Sliders_Sliders_en","",0,], -["features.login.impl.dialogs_SlidingSyncNotSupportedDialog_Day_0_en","features.login.impl.dialogs_SlidingSyncNotSupportedDialog_Night_0_en",20119,], +["features.login.impl.dialogs_SlidingSyncNotSupportedDialog_Day_0_en","features.login.impl.dialogs_SlidingSyncNotSupportedDialog_Night_0_en",20132,], ["libraries.designsystem.theme.components_SnackbarWithActionAndCloseButton_Snackbar_with_action_and_close_button_Snackbars_en","",0,], ["libraries.designsystem.theme.components_SnackbarWithActionOnNewLineAndCloseButton_Snackbar_with_action_and_close_button_on_new_line_Snackbars_en","",0,], ["libraries.designsystem.theme.components_SnackbarWithActionOnNewLine_Snackbar_with_action_on_new_line_Snackbars_en","",0,], @@ -1113,40 +1124,40 @@ export const screenshots = [ ["libraries.designsystem.modifiers_SquareSizeModifierLargeHeight_en","",0,], ["libraries.designsystem.modifiers_SquareSizeModifierLargeWidth_en","",0,], ["features.location.api.internal_StaticMapPlaceholder_Day_0_en","features.location.api.internal_StaticMapPlaceholder_Night_0_en",0,], -["features.location.api.internal_StaticMapPlaceholder_Day_1_en","features.location.api.internal_StaticMapPlaceholder_Night_1_en",20119,], +["features.location.api.internal_StaticMapPlaceholder_Day_1_en","features.location.api.internal_StaticMapPlaceholder_Night_1_en",20132,], ["features.location.api_StaticMapView_Day_0_en","features.location.api_StaticMapView_Night_0_en",0,], -["features.messages.impl.messagecomposer.suggestions_SuggestionsPickerView_Day_0_en","features.messages.impl.messagecomposer.suggestions_SuggestionsPickerView_Night_0_en",20119,], +["features.messages.impl.messagecomposer.suggestions_SuggestionsPickerView_Day_0_en","features.messages.impl.messagecomposer.suggestions_SuggestionsPickerView_Night_0_en",20132,], ["libraries.designsystem.atomic.pages_SunsetPage_Day_0_en","libraries.designsystem.atomic.pages_SunsetPage_Night_0_en",0,], ["libraries.designsystem.components.button_SuperButton_Day_0_en","libraries.designsystem.components.button_SuperButton_Night_0_en",0,], ["libraries.designsystem.theme.components_Surface_en","",0,], ["libraries.designsystem.theme.components_Switch_Toggles_en","",0,], -["appnav.loggedin_SyncStateView_Day_0_en","appnav.loggedin_SyncStateView_Night_0_en",20119,], +["appnav.loggedin_SyncStateView_Day_0_en","appnav.loggedin_SyncStateView_Night_0_en",20132,], ["libraries.designsystem.theme.components_TextButtonLargeLowPadding_Buttons_en","",0,], ["libraries.designsystem.theme.components_TextButtonLarge_Buttons_en","",0,], ["libraries.designsystem.theme.components_TextButtonMediumLowPadding_Buttons_en","",0,], ["libraries.designsystem.theme.components_TextButtonMedium_Buttons_en","",0,], ["libraries.designsystem.theme.components_TextButtonSmall_Buttons_en","",0,], -["libraries.textcomposer_TextComposerAddCaption_Day_0_en","libraries.textcomposer_TextComposerAddCaption_Night_0_en",20119,], -["libraries.textcomposer_TextComposerCaption_Day_0_en","libraries.textcomposer_TextComposerCaption_Night_0_en",20119,], -["libraries.textcomposer_TextComposerEditCaption_Day_0_en","libraries.textcomposer_TextComposerEditCaption_Night_0_en",20119,], -["libraries.textcomposer_TextComposerEdit_Day_0_en","libraries.textcomposer_TextComposerEdit_Night_0_en",20119,], -["libraries.textcomposer_TextComposerFormatting_Day_0_en","libraries.textcomposer_TextComposerFormatting_Night_0_en",20119,], -["libraries.textcomposer_TextComposerLinkDialogCreateLinkWithoutText_Day_0_en","libraries.textcomposer_TextComposerLinkDialogCreateLinkWithoutText_Night_0_en",20119,], -["libraries.textcomposer_TextComposerLinkDialogCreateLink_Day_0_en","libraries.textcomposer_TextComposerLinkDialogCreateLink_Night_0_en",20119,], -["libraries.textcomposer_TextComposerLinkDialogEditLink_Day_0_en","libraries.textcomposer_TextComposerLinkDialogEditLink_Night_0_en",20119,], -["libraries.textcomposer_TextComposerReply_Day_0_en","libraries.textcomposer_TextComposerReply_Night_0_en",20119,], -["libraries.textcomposer_TextComposerReply_Day_10_en","libraries.textcomposer_TextComposerReply_Night_10_en",20119,], -["libraries.textcomposer_TextComposerReply_Day_11_en","libraries.textcomposer_TextComposerReply_Night_11_en",20119,], -["libraries.textcomposer_TextComposerReply_Day_1_en","libraries.textcomposer_TextComposerReply_Night_1_en",20119,], -["libraries.textcomposer_TextComposerReply_Day_2_en","libraries.textcomposer_TextComposerReply_Night_2_en",20119,], -["libraries.textcomposer_TextComposerReply_Day_3_en","libraries.textcomposer_TextComposerReply_Night_3_en",20119,], -["libraries.textcomposer_TextComposerReply_Day_4_en","libraries.textcomposer_TextComposerReply_Night_4_en",20119,], -["libraries.textcomposer_TextComposerReply_Day_5_en","libraries.textcomposer_TextComposerReply_Night_5_en",20119,], -["libraries.textcomposer_TextComposerReply_Day_6_en","libraries.textcomposer_TextComposerReply_Night_6_en",20119,], -["libraries.textcomposer_TextComposerReply_Day_7_en","libraries.textcomposer_TextComposerReply_Night_7_en",20119,], -["libraries.textcomposer_TextComposerReply_Day_8_en","libraries.textcomposer_TextComposerReply_Night_8_en",20119,], -["libraries.textcomposer_TextComposerReply_Day_9_en","libraries.textcomposer_TextComposerReply_Night_9_en",20119,], -["libraries.textcomposer_TextComposerSimple_Day_0_en","libraries.textcomposer_TextComposerSimple_Night_0_en",20119,], +["libraries.textcomposer_TextComposerAddCaption_Day_0_en","libraries.textcomposer_TextComposerAddCaption_Night_0_en",20132,], +["libraries.textcomposer_TextComposerCaption_Day_0_en","libraries.textcomposer_TextComposerCaption_Night_0_en",20132,], +["libraries.textcomposer_TextComposerEditCaption_Day_0_en","libraries.textcomposer_TextComposerEditCaption_Night_0_en",20132,], +["libraries.textcomposer_TextComposerEdit_Day_0_en","libraries.textcomposer_TextComposerEdit_Night_0_en",20132,], +["libraries.textcomposer_TextComposerFormatting_Day_0_en","libraries.textcomposer_TextComposerFormatting_Night_0_en",20132,], +["libraries.textcomposer_TextComposerLinkDialogCreateLinkWithoutText_Day_0_en","libraries.textcomposer_TextComposerLinkDialogCreateLinkWithoutText_Night_0_en",20132,], +["libraries.textcomposer_TextComposerLinkDialogCreateLink_Day_0_en","libraries.textcomposer_TextComposerLinkDialogCreateLink_Night_0_en",20132,], +["libraries.textcomposer_TextComposerLinkDialogEditLink_Day_0_en","libraries.textcomposer_TextComposerLinkDialogEditLink_Night_0_en",20132,], +["libraries.textcomposer_TextComposerReply_Day_0_en","libraries.textcomposer_TextComposerReply_Night_0_en",20132,], +["libraries.textcomposer_TextComposerReply_Day_10_en","libraries.textcomposer_TextComposerReply_Night_10_en",20132,], +["libraries.textcomposer_TextComposerReply_Day_11_en","libraries.textcomposer_TextComposerReply_Night_11_en",20132,], +["libraries.textcomposer_TextComposerReply_Day_1_en","libraries.textcomposer_TextComposerReply_Night_1_en",20132,], +["libraries.textcomposer_TextComposerReply_Day_2_en","libraries.textcomposer_TextComposerReply_Night_2_en",20132,], +["libraries.textcomposer_TextComposerReply_Day_3_en","libraries.textcomposer_TextComposerReply_Night_3_en",20132,], +["libraries.textcomposer_TextComposerReply_Day_4_en","libraries.textcomposer_TextComposerReply_Night_4_en",20132,], +["libraries.textcomposer_TextComposerReply_Day_5_en","libraries.textcomposer_TextComposerReply_Night_5_en",20132,], +["libraries.textcomposer_TextComposerReply_Day_6_en","libraries.textcomposer_TextComposerReply_Night_6_en",20132,], +["libraries.textcomposer_TextComposerReply_Day_7_en","libraries.textcomposer_TextComposerReply_Night_7_en",20132,], +["libraries.textcomposer_TextComposerReply_Day_8_en","libraries.textcomposer_TextComposerReply_Night_8_en",20132,], +["libraries.textcomposer_TextComposerReply_Day_9_en","libraries.textcomposer_TextComposerReply_Night_9_en",20132,], +["libraries.textcomposer_TextComposerSimple_Day_0_en","libraries.textcomposer_TextComposerSimple_Night_0_en",20132,], ["libraries.textcomposer_TextComposerVoice_Day_0_en","libraries.textcomposer_TextComposerVoice_Night_0_en",0,], ["libraries.designsystem.theme.components_TextDark_Text_en","",0,], ["libraries.designsystem.components.list_TextFieldListItemEmpty_Text_field_List_item_-_empty_List_items_en","",0,], @@ -1156,14 +1167,14 @@ export const screenshots = [ ["libraries.designsystem.theme.components_TextFieldsLight_TextFields_en","",0,], ["libraries.textcomposer.components_TextFormatting_Day_0_en","libraries.textcomposer.components_TextFormatting_Night_0_en",0,], ["libraries.designsystem.theme.components_TextLight_Text_en","",0,], -["libraries.designsystem.theme.components.previews_TimePickerHorizontal_DateTime_pickers_en","",20119,], -["libraries.designsystem.theme.components.previews_TimePickerVerticalDark_DateTime_pickers_en","",20119,], -["libraries.designsystem.theme.components.previews_TimePickerVerticalLight_DateTime_pickers_en","",20119,], +["libraries.designsystem.theme.components.previews_TimePickerHorizontal_DateTime_pickers_en","",20132,], +["libraries.designsystem.theme.components.previews_TimePickerVerticalDark_DateTime_pickers_en","",20132,], +["libraries.designsystem.theme.components.previews_TimePickerVerticalLight_DateTime_pickers_en","",20132,], ["features.messages.impl.timeline.components_TimelineEventTimestampView_Day_0_en","features.messages.impl.timeline.components_TimelineEventTimestampView_Night_0_en",0,], ["features.messages.impl.timeline.components_TimelineEventTimestampView_Day_1_en","features.messages.impl.timeline.components_TimelineEventTimestampView_Night_1_en",0,], ["features.messages.impl.timeline.components_TimelineEventTimestampView_Day_2_en","features.messages.impl.timeline.components_TimelineEventTimestampView_Night_2_en",0,], -["features.messages.impl.timeline.components_TimelineEventTimestampView_Day_3_en","features.messages.impl.timeline.components_TimelineEventTimestampView_Night_3_en",20119,], -["features.messages.impl.timeline.components_TimelineEventTimestampView_Day_4_en","features.messages.impl.timeline.components_TimelineEventTimestampView_Night_4_en",20119,], +["features.messages.impl.timeline.components_TimelineEventTimestampView_Day_3_en","features.messages.impl.timeline.components_TimelineEventTimestampView_Night_3_en",20132,], +["features.messages.impl.timeline.components_TimelineEventTimestampView_Day_4_en","features.messages.impl.timeline.components_TimelineEventTimestampView_Night_4_en",20132,], ["features.messages.impl.timeline.components_TimelineEventTimestampView_Day_5_en","features.messages.impl.timeline.components_TimelineEventTimestampView_Night_5_en",0,], ["features.messages.impl.timeline.components_TimelineEventTimestampView_Day_6_en","features.messages.impl.timeline.components_TimelineEventTimestampView_Night_6_en",0,], ["features.messages.impl.timeline.components.event_TimelineImageWithCaptionRow_Day_0_en","features.messages.impl.timeline.components.event_TimelineImageWithCaptionRow_Night_0_en",0,], @@ -1172,18 +1183,18 @@ export const screenshots = [ ["features.messages.impl.timeline.components.event_TimelineItemAudioView_Day_2_en","features.messages.impl.timeline.components.event_TimelineItemAudioView_Night_2_en",0,], ["features.messages.impl.timeline.components.event_TimelineItemAudioView_Day_3_en","features.messages.impl.timeline.components.event_TimelineItemAudioView_Night_3_en",0,], ["features.messages.impl.timeline.components.event_TimelineItemAudioView_Day_4_en","features.messages.impl.timeline.components.event_TimelineItemAudioView_Night_4_en",0,], -["features.messages.impl.timeline.components_TimelineItemCallNotifyView_Day_0_en","features.messages.impl.timeline.components_TimelineItemCallNotifyView_Night_0_en",20119,], +["features.messages.impl.timeline.components_TimelineItemCallNotifyView_Day_0_en","features.messages.impl.timeline.components_TimelineItemCallNotifyView_Night_0_en",20132,], ["features.messages.impl.timeline.components.virtual_TimelineItemDaySeparatorView_Day_0_en","features.messages.impl.timeline.components.virtual_TimelineItemDaySeparatorView_Night_0_en",0,], ["features.messages.impl.timeline.components.virtual_TimelineItemDaySeparatorView_Day_1_en","features.messages.impl.timeline.components.virtual_TimelineItemDaySeparatorView_Night_1_en",0,], -["features.messages.impl.timeline.components.event_TimelineItemEncryptedView_Day_0_en","features.messages.impl.timeline.components.event_TimelineItemEncryptedView_Night_0_en",20119,], -["features.messages.impl.timeline.components.event_TimelineItemEncryptedView_Day_1_en","features.messages.impl.timeline.components.event_TimelineItemEncryptedView_Night_1_en",20119,], -["features.messages.impl.timeline.components.event_TimelineItemEncryptedView_Day_2_en","features.messages.impl.timeline.components.event_TimelineItemEncryptedView_Night_2_en",20119,], -["features.messages.impl.timeline.components.event_TimelineItemEncryptedView_Day_3_en","features.messages.impl.timeline.components.event_TimelineItemEncryptedView_Night_3_en",20119,], -["features.messages.impl.timeline.components.event_TimelineItemEncryptedView_Day_4_en","features.messages.impl.timeline.components.event_TimelineItemEncryptedView_Night_4_en",20119,], -["features.messages.impl.timeline.components.event_TimelineItemEncryptedView_Day_5_en","features.messages.impl.timeline.components.event_TimelineItemEncryptedView_Night_5_en",20119,], -["features.messages.impl.timeline.components.event_TimelineItemEncryptedView_Day_6_en","features.messages.impl.timeline.components.event_TimelineItemEncryptedView_Night_6_en",20119,], -["features.messages.impl.timeline.components.event_TimelineItemEncryptedView_Day_7_en","features.messages.impl.timeline.components.event_TimelineItemEncryptedView_Night_7_en",20119,], -["features.messages.impl.timeline.components.event_TimelineItemEncryptedView_Day_8_en","features.messages.impl.timeline.components.event_TimelineItemEncryptedView_Night_8_en",20119,], +["features.messages.impl.timeline.components.event_TimelineItemEncryptedView_Day_0_en","features.messages.impl.timeline.components.event_TimelineItemEncryptedView_Night_0_en",20132,], +["features.messages.impl.timeline.components.event_TimelineItemEncryptedView_Day_1_en","features.messages.impl.timeline.components.event_TimelineItemEncryptedView_Night_1_en",20132,], +["features.messages.impl.timeline.components.event_TimelineItemEncryptedView_Day_2_en","features.messages.impl.timeline.components.event_TimelineItemEncryptedView_Night_2_en",20132,], +["features.messages.impl.timeline.components.event_TimelineItemEncryptedView_Day_3_en","features.messages.impl.timeline.components.event_TimelineItemEncryptedView_Night_3_en",20132,], +["features.messages.impl.timeline.components.event_TimelineItemEncryptedView_Day_4_en","features.messages.impl.timeline.components.event_TimelineItemEncryptedView_Night_4_en",20132,], +["features.messages.impl.timeline.components.event_TimelineItemEncryptedView_Day_5_en","features.messages.impl.timeline.components.event_TimelineItemEncryptedView_Night_5_en",20132,], +["features.messages.impl.timeline.components.event_TimelineItemEncryptedView_Day_6_en","features.messages.impl.timeline.components.event_TimelineItemEncryptedView_Night_6_en",20132,], +["features.messages.impl.timeline.components.event_TimelineItemEncryptedView_Day_7_en","features.messages.impl.timeline.components.event_TimelineItemEncryptedView_Night_7_en",20132,], +["features.messages.impl.timeline.components.event_TimelineItemEncryptedView_Day_8_en","features.messages.impl.timeline.components.event_TimelineItemEncryptedView_Night_8_en",20132,], ["features.messages.impl.timeline.components_TimelineItemEventRowDisambiguated_Day_0_en","features.messages.impl.timeline.components_TimelineItemEventRowDisambiguated_Night_0_en",0,], ["features.messages.impl.timeline.components_TimelineItemEventRowForDirectRoom_Day_0_en","features.messages.impl.timeline.components_TimelineItemEventRowForDirectRoom_Night_0_en",0,], ["features.messages.impl.timeline.components_TimelineItemEventRowLongSenderName_en","",0,], @@ -1191,17 +1202,17 @@ export const screenshots = [ ["features.messages.impl.timeline.components_TimelineItemEventRowTimestamp_Day_0_en","features.messages.impl.timeline.components_TimelineItemEventRowTimestamp_Night_0_en",0,], ["features.messages.impl.timeline.components_TimelineItemEventRowTimestamp_Day_1_en","features.messages.impl.timeline.components_TimelineItemEventRowTimestamp_Night_1_en",0,], ["features.messages.impl.timeline.components_TimelineItemEventRowTimestamp_Day_2_en","features.messages.impl.timeline.components_TimelineItemEventRowTimestamp_Night_2_en",0,], -["features.messages.impl.timeline.components_TimelineItemEventRowTimestamp_Day_3_en","features.messages.impl.timeline.components_TimelineItemEventRowTimestamp_Night_3_en",20119,], -["features.messages.impl.timeline.components_TimelineItemEventRowTimestamp_Day_4_en","features.messages.impl.timeline.components_TimelineItemEventRowTimestamp_Night_4_en",20119,], +["features.messages.impl.timeline.components_TimelineItemEventRowTimestamp_Day_3_en","features.messages.impl.timeline.components_TimelineItemEventRowTimestamp_Night_3_en",20132,], +["features.messages.impl.timeline.components_TimelineItemEventRowTimestamp_Day_4_en","features.messages.impl.timeline.components_TimelineItemEventRowTimestamp_Night_4_en",20132,], ["features.messages.impl.timeline.components_TimelineItemEventRowTimestamp_Day_5_en","features.messages.impl.timeline.components_TimelineItemEventRowTimestamp_Night_5_en",0,], ["features.messages.impl.timeline.components_TimelineItemEventRowTimestamp_Day_6_en","features.messages.impl.timeline.components_TimelineItemEventRowTimestamp_Night_6_en",0,], -["features.messages.impl.timeline.components_TimelineItemEventRowUtd_Day_0_en","features.messages.impl.timeline.components_TimelineItemEventRowUtd_Night_0_en",20119,], -["features.messages.impl.timeline.components_TimelineItemEventRowWithManyReactions_Day_0_en","features.messages.impl.timeline.components_TimelineItemEventRowWithManyReactions_Night_0_en",20119,], +["features.messages.impl.timeline.components_TimelineItemEventRowUtd_Day_0_en","features.messages.impl.timeline.components_TimelineItemEventRowUtd_Night_0_en",20132,], +["features.messages.impl.timeline.components_TimelineItemEventRowWithManyReactions_Day_0_en","features.messages.impl.timeline.components_TimelineItemEventRowWithManyReactions_Night_0_en",20132,], ["features.messages.impl.timeline.components_TimelineItemEventRowWithRR_Day_0_en","features.messages.impl.timeline.components_TimelineItemEventRowWithRR_Night_0_en",0,], ["features.messages.impl.timeline.components_TimelineItemEventRowWithRR_Day_1_en","features.messages.impl.timeline.components_TimelineItemEventRowWithRR_Night_1_en",0,], ["features.messages.impl.timeline.components_TimelineItemEventRowWithRR_Day_2_en","features.messages.impl.timeline.components_TimelineItemEventRowWithRR_Night_2_en",0,], -["features.messages.impl.timeline.components_TimelineItemEventRowWithReplyInformative_Day_0_en","features.messages.impl.timeline.components_TimelineItemEventRowWithReplyInformative_Night_0_en",20119,], -["features.messages.impl.timeline.components_TimelineItemEventRowWithReplyInformative_Day_1_en","features.messages.impl.timeline.components_TimelineItemEventRowWithReplyInformative_Night_1_en",20119,], +["features.messages.impl.timeline.components_TimelineItemEventRowWithReplyInformative_Day_0_en","features.messages.impl.timeline.components_TimelineItemEventRowWithReplyInformative_Night_0_en",20132,], +["features.messages.impl.timeline.components_TimelineItemEventRowWithReplyInformative_Day_1_en","features.messages.impl.timeline.components_TimelineItemEventRowWithReplyInformative_Night_1_en",20132,], ["features.messages.impl.timeline.components_TimelineItemEventRowWithReplyOther_Day_0_en","features.messages.impl.timeline.components_TimelineItemEventRowWithReplyOther_Night_0_en",0,], ["features.messages.impl.timeline.components_TimelineItemEventRowWithReplyOther_Day_1_en","features.messages.impl.timeline.components_TimelineItemEventRowWithReplyOther_Night_1_en",0,], ["features.messages.impl.timeline.components_TimelineItemEventRowWithReply_Day_0_en","features.messages.impl.timeline.components_TimelineItemEventRowWithReply_Night_0_en",0,], @@ -1210,40 +1221,40 @@ export const screenshots = [ ["features.messages.impl.timeline.components_TimelineItemEventRowWithReply_Day_1_en","features.messages.impl.timeline.components_TimelineItemEventRowWithReply_Night_1_en",0,], ["features.messages.impl.timeline.components_TimelineItemEventRowWithReply_Day_2_en","features.messages.impl.timeline.components_TimelineItemEventRowWithReply_Night_2_en",0,], ["features.messages.impl.timeline.components_TimelineItemEventRowWithReply_Day_3_en","features.messages.impl.timeline.components_TimelineItemEventRowWithReply_Night_3_en",0,], -["features.messages.impl.timeline.components_TimelineItemEventRowWithReply_Day_4_en","features.messages.impl.timeline.components_TimelineItemEventRowWithReply_Night_4_en",20119,], +["features.messages.impl.timeline.components_TimelineItemEventRowWithReply_Day_4_en","features.messages.impl.timeline.components_TimelineItemEventRowWithReply_Night_4_en",20132,], ["features.messages.impl.timeline.components_TimelineItemEventRowWithReply_Day_5_en","features.messages.impl.timeline.components_TimelineItemEventRowWithReply_Night_5_en",0,], ["features.messages.impl.timeline.components_TimelineItemEventRowWithReply_Day_6_en","features.messages.impl.timeline.components_TimelineItemEventRowWithReply_Night_6_en",0,], ["features.messages.impl.timeline.components_TimelineItemEventRowWithReply_Day_7_en","features.messages.impl.timeline.components_TimelineItemEventRowWithReply_Night_7_en",0,], -["features.messages.impl.timeline.components_TimelineItemEventRowWithReply_Day_8_en","features.messages.impl.timeline.components_TimelineItemEventRowWithReply_Night_8_en",20119,], +["features.messages.impl.timeline.components_TimelineItemEventRowWithReply_Day_8_en","features.messages.impl.timeline.components_TimelineItemEventRowWithReply_Night_8_en",20132,], ["features.messages.impl.timeline.components_TimelineItemEventRowWithReply_Day_9_en","features.messages.impl.timeline.components_TimelineItemEventRowWithReply_Night_9_en",0,], ["features.messages.impl.timeline.components_TimelineItemEventRow_Day_0_en","features.messages.impl.timeline.components_TimelineItemEventRow_Night_0_en",0,], -["features.messages.impl.timeline.components_TimelineItemEventTimestampBelow_en","",20119,], +["features.messages.impl.timeline.components_TimelineItemEventTimestampBelow_en","",20132,], ["features.messages.impl.timeline.components.event_TimelineItemFileView_Day_0_en","features.messages.impl.timeline.components.event_TimelineItemFileView_Night_0_en",0,], ["features.messages.impl.timeline.components.event_TimelineItemFileView_Day_1_en","features.messages.impl.timeline.components.event_TimelineItemFileView_Night_1_en",0,], ["features.messages.impl.timeline.components.event_TimelineItemFileView_Day_2_en","features.messages.impl.timeline.components.event_TimelineItemFileView_Night_2_en",0,], ["features.messages.impl.timeline.components.event_TimelineItemFileView_Day_3_en","features.messages.impl.timeline.components.event_TimelineItemFileView_Night_3_en",0,], ["features.messages.impl.timeline.components.event_TimelineItemFileView_Day_4_en","features.messages.impl.timeline.components.event_TimelineItemFileView_Night_4_en",0,], -["features.messages.impl.timeline.components_TimelineItemGroupedEventsRowContentCollapse_Day_0_en","features.messages.impl.timeline.components_TimelineItemGroupedEventsRowContentCollapse_Night_0_en",20119,], -["features.messages.impl.timeline.components_TimelineItemGroupedEventsRowContentExpanded_Day_0_en","features.messages.impl.timeline.components_TimelineItemGroupedEventsRowContentExpanded_Night_0_en",20119,], -["features.messages.impl.timeline.components.event_TimelineItemImageViewHideMediaContent_Day_0_en","features.messages.impl.timeline.components.event_TimelineItemImageViewHideMediaContent_Night_0_en",20119,], +["features.messages.impl.timeline.components_TimelineItemGroupedEventsRowContentCollapse_Day_0_en","features.messages.impl.timeline.components_TimelineItemGroupedEventsRowContentCollapse_Night_0_en",20132,], +["features.messages.impl.timeline.components_TimelineItemGroupedEventsRowContentExpanded_Day_0_en","features.messages.impl.timeline.components_TimelineItemGroupedEventsRowContentExpanded_Night_0_en",20132,], +["features.messages.impl.timeline.components.event_TimelineItemImageViewHideMediaContent_Day_0_en","features.messages.impl.timeline.components.event_TimelineItemImageViewHideMediaContent_Night_0_en",20132,], ["features.messages.impl.timeline.components.event_TimelineItemImageView_Day_0_en","features.messages.impl.timeline.components.event_TimelineItemImageView_Night_0_en",0,], ["features.messages.impl.timeline.components.event_TimelineItemImageView_Day_1_en","features.messages.impl.timeline.components.event_TimelineItemImageView_Night_1_en",0,], ["features.messages.impl.timeline.components.event_TimelineItemImageView_Day_2_en","features.messages.impl.timeline.components.event_TimelineItemImageView_Night_2_en",0,], ["features.messages.impl.timeline.components.event_TimelineItemImageView_Day_3_en","features.messages.impl.timeline.components.event_TimelineItemImageView_Night_3_en",0,], ["features.messages.impl.timeline.components.event_TimelineItemInformativeView_Day_0_en","features.messages.impl.timeline.components.event_TimelineItemInformativeView_Night_0_en",0,], -["features.messages.impl.timeline.components.event_TimelineItemLegacyCallInviteView_Day_0_en","features.messages.impl.timeline.components.event_TimelineItemLegacyCallInviteView_Night_0_en",20119,], +["features.messages.impl.timeline.components.event_TimelineItemLegacyCallInviteView_Day_0_en","features.messages.impl.timeline.components.event_TimelineItemLegacyCallInviteView_Night_0_en",20132,], ["features.messages.impl.timeline.components.event_TimelineItemLocationView_Day_0_en","features.messages.impl.timeline.components.event_TimelineItemLocationView_Night_0_en",0,], ["features.messages.impl.timeline.components.event_TimelineItemLocationView_Day_1_en","features.messages.impl.timeline.components.event_TimelineItemLocationView_Night_1_en",0,], -["features.messages.impl.timeline.components.event_TimelineItemPollView_Day_0_en","features.messages.impl.timeline.components.event_TimelineItemPollView_Night_0_en",20119,], -["features.messages.impl.timeline.components.event_TimelineItemPollView_Day_1_en","features.messages.impl.timeline.components.event_TimelineItemPollView_Night_1_en",20119,], -["features.messages.impl.timeline.components.event_TimelineItemPollView_Day_2_en","features.messages.impl.timeline.components.event_TimelineItemPollView_Night_2_en",20119,], -["features.messages.impl.timeline.components.event_TimelineItemPollView_Day_3_en","features.messages.impl.timeline.components.event_TimelineItemPollView_Night_3_en",20119,], -["features.messages.impl.timeline.components_TimelineItemReactionsLayout_Day_0_en","features.messages.impl.timeline.components_TimelineItemReactionsLayout_Night_0_en",20119,], +["features.messages.impl.timeline.components.event_TimelineItemPollView_Day_0_en","features.messages.impl.timeline.components.event_TimelineItemPollView_Night_0_en",20132,], +["features.messages.impl.timeline.components.event_TimelineItemPollView_Day_1_en","features.messages.impl.timeline.components.event_TimelineItemPollView_Night_1_en",20132,], +["features.messages.impl.timeline.components.event_TimelineItemPollView_Day_2_en","features.messages.impl.timeline.components.event_TimelineItemPollView_Night_2_en",20132,], +["features.messages.impl.timeline.components.event_TimelineItemPollView_Day_3_en","features.messages.impl.timeline.components.event_TimelineItemPollView_Night_3_en",20132,], +["features.messages.impl.timeline.components_TimelineItemReactionsLayout_Day_0_en","features.messages.impl.timeline.components_TimelineItemReactionsLayout_Night_0_en",20132,], ["features.messages.impl.timeline.components_TimelineItemReactionsViewFew_Day_0_en","features.messages.impl.timeline.components_TimelineItemReactionsViewFew_Night_0_en",0,], -["features.messages.impl.timeline.components_TimelineItemReactionsViewIncoming_Day_0_en","features.messages.impl.timeline.components_TimelineItemReactionsViewIncoming_Night_0_en",20119,], -["features.messages.impl.timeline.components_TimelineItemReactionsViewOutgoing_Day_0_en","features.messages.impl.timeline.components_TimelineItemReactionsViewOutgoing_Night_0_en",20119,], +["features.messages.impl.timeline.components_TimelineItemReactionsViewIncoming_Day_0_en","features.messages.impl.timeline.components_TimelineItemReactionsViewIncoming_Night_0_en",20132,], +["features.messages.impl.timeline.components_TimelineItemReactionsViewOutgoing_Day_0_en","features.messages.impl.timeline.components_TimelineItemReactionsViewOutgoing_Night_0_en",20132,], ["features.messages.impl.timeline.components_TimelineItemReactionsView_Day_0_en","features.messages.impl.timeline.components_TimelineItemReactionsView_Night_0_en",0,], -["features.messages.impl.timeline.components.virtual_TimelineItemReadMarkerView_Day_0_en","features.messages.impl.timeline.components.virtual_TimelineItemReadMarkerView_Night_0_en",20119,], +["features.messages.impl.timeline.components.virtual_TimelineItemReadMarkerView_Day_0_en","features.messages.impl.timeline.components.virtual_TimelineItemReadMarkerView_Night_0_en",20132,], ["features.messages.impl.timeline.components.receipt_TimelineItemReadReceiptView_Day_0_en","features.messages.impl.timeline.components.receipt_TimelineItemReadReceiptView_Night_0_en",0,], ["features.messages.impl.timeline.components.receipt_TimelineItemReadReceiptView_Day_1_en","features.messages.impl.timeline.components.receipt_TimelineItemReadReceiptView_Night_1_en",0,], ["features.messages.impl.timeline.components.receipt_TimelineItemReadReceiptView_Day_2_en","features.messages.impl.timeline.components.receipt_TimelineItemReadReceiptView_Night_2_en",0,], @@ -1252,8 +1263,8 @@ export const screenshots = [ ["features.messages.impl.timeline.components.receipt_TimelineItemReadReceiptView_Day_5_en","features.messages.impl.timeline.components.receipt_TimelineItemReadReceiptView_Night_5_en",0,], ["features.messages.impl.timeline.components.receipt_TimelineItemReadReceiptView_Day_6_en","features.messages.impl.timeline.components.receipt_TimelineItemReadReceiptView_Night_6_en",0,], ["features.messages.impl.timeline.components.receipt_TimelineItemReadReceiptView_Day_7_en","features.messages.impl.timeline.components.receipt_TimelineItemReadReceiptView_Night_7_en",0,], -["features.messages.impl.timeline.components.event_TimelineItemRedactedView_Day_0_en","features.messages.impl.timeline.components.event_TimelineItemRedactedView_Night_0_en",20119,], -["features.messages.impl.timeline.components.virtual_TimelineItemRoomBeginningView_Day_0_en","features.messages.impl.timeline.components.virtual_TimelineItemRoomBeginningView_Night_0_en",20119,], +["features.messages.impl.timeline.components.event_TimelineItemRedactedView_Day_0_en","features.messages.impl.timeline.components.event_TimelineItemRedactedView_Night_0_en",20132,], +["features.messages.impl.timeline.components.virtual_TimelineItemRoomBeginningView_Day_0_en","features.messages.impl.timeline.components.virtual_TimelineItemRoomBeginningView_Night_0_en",20132,], ["features.messages.impl.timeline.components_TimelineItemStateEventRow_Day_0_en","features.messages.impl.timeline.components_TimelineItemStateEventRow_Night_0_en",0,], ["features.messages.impl.timeline.components.event_TimelineItemStateView_Day_0_en","features.messages.impl.timeline.components.event_TimelineItemStateView_Night_0_en",0,], ["features.messages.impl.timeline.components.event_TimelineItemStickerView_Day_0_en","features.messages.impl.timeline.components.event_TimelineItemStickerView_Night_0_en",0,], @@ -1266,8 +1277,8 @@ export const screenshots = [ ["features.messages.impl.timeline.components.event_TimelineItemTextView_Day_3_en","features.messages.impl.timeline.components.event_TimelineItemTextView_Night_3_en",0,], ["features.messages.impl.timeline.components.event_TimelineItemTextView_Day_4_en","features.messages.impl.timeline.components.event_TimelineItemTextView_Night_4_en",0,], ["features.messages.impl.timeline.components.event_TimelineItemTextView_Day_5_en","features.messages.impl.timeline.components.event_TimelineItemTextView_Night_5_en",0,], -["features.messages.impl.timeline.components.event_TimelineItemUnknownView_Day_0_en","features.messages.impl.timeline.components.event_TimelineItemUnknownView_Night_0_en",20119,], -["features.messages.impl.timeline.components.event_TimelineItemVideoViewHideMediaContent_Day_0_en","features.messages.impl.timeline.components.event_TimelineItemVideoViewHideMediaContent_Night_0_en",20119,], +["features.messages.impl.timeline.components.event_TimelineItemUnknownView_Day_0_en","features.messages.impl.timeline.components.event_TimelineItemUnknownView_Night_0_en",20132,], +["features.messages.impl.timeline.components.event_TimelineItemVideoViewHideMediaContent_Day_0_en","features.messages.impl.timeline.components.event_TimelineItemVideoViewHideMediaContent_Night_0_en",20132,], ["features.messages.impl.timeline.components.event_TimelineItemVideoView_Day_0_en","features.messages.impl.timeline.components.event_TimelineItemVideoView_Night_0_en",0,], ["features.messages.impl.timeline.components.event_TimelineItemVideoView_Day_1_en","features.messages.impl.timeline.components.event_TimelineItemVideoView_Night_1_en",0,], ["features.messages.impl.timeline.components.event_TimelineItemVideoView_Day_2_en","features.messages.impl.timeline.components.event_TimelineItemVideoView_Night_2_en",0,], @@ -1290,84 +1301,85 @@ export const screenshots = [ ["features.messages.impl.timeline.components.event_TimelineItemVoiceView_Day_9_en","features.messages.impl.timeline.components.event_TimelineItemVoiceView_Night_9_en",0,], ["features.messages.impl.timeline.components.virtual_TimelineLoadingMoreIndicator_Day_0_en","features.messages.impl.timeline.components.virtual_TimelineLoadingMoreIndicator_Night_0_en",0,], ["features.messages.impl.timeline.components.event_TimelineVideoWithCaptionRow_Day_0_en","features.messages.impl.timeline.components.event_TimelineVideoWithCaptionRow_Night_0_en",0,], -["features.messages.impl.timeline_TimelineViewMessageShield_Day_0_en","features.messages.impl.timeline_TimelineViewMessageShield_Night_0_en",20119,], -["features.messages.impl.timeline_TimelineView_Day_0_en","features.messages.impl.timeline_TimelineView_Night_0_en",20119,], +["features.messages.impl.timeline_TimelineViewMessageShield_Day_0_en","features.messages.impl.timeline_TimelineViewMessageShield_Night_0_en",20132,], +["features.messages.impl.timeline_TimelineView_Day_0_en","features.messages.impl.timeline_TimelineView_Night_0_en",20132,], ["features.messages.impl.timeline_TimelineView_Day_10_en","features.messages.impl.timeline_TimelineView_Night_10_en",0,], -["features.messages.impl.timeline_TimelineView_Day_11_en","features.messages.impl.timeline_TimelineView_Night_11_en",20119,], -["features.messages.impl.timeline_TimelineView_Day_12_en","features.messages.impl.timeline_TimelineView_Night_12_en",20119,], -["features.messages.impl.timeline_TimelineView_Day_13_en","features.messages.impl.timeline_TimelineView_Night_13_en",20119,], -["features.messages.impl.timeline_TimelineView_Day_14_en","features.messages.impl.timeline_TimelineView_Night_14_en",20119,], -["features.messages.impl.timeline_TimelineView_Day_15_en","features.messages.impl.timeline_TimelineView_Night_15_en",20119,], -["features.messages.impl.timeline_TimelineView_Day_16_en","features.messages.impl.timeline_TimelineView_Night_16_en",20119,], -["features.messages.impl.timeline_TimelineView_Day_17_en","features.messages.impl.timeline_TimelineView_Night_17_en",20119,], -["features.messages.impl.timeline_TimelineView_Day_1_en","features.messages.impl.timeline_TimelineView_Night_1_en",20119,], +["features.messages.impl.timeline_TimelineView_Day_11_en","features.messages.impl.timeline_TimelineView_Night_11_en",20132,], +["features.messages.impl.timeline_TimelineView_Day_12_en","features.messages.impl.timeline_TimelineView_Night_12_en",20132,], +["features.messages.impl.timeline_TimelineView_Day_13_en","features.messages.impl.timeline_TimelineView_Night_13_en",20132,], +["features.messages.impl.timeline_TimelineView_Day_14_en","features.messages.impl.timeline_TimelineView_Night_14_en",20132,], +["features.messages.impl.timeline_TimelineView_Day_15_en","features.messages.impl.timeline_TimelineView_Night_15_en",20132,], +["features.messages.impl.timeline_TimelineView_Day_16_en","features.messages.impl.timeline_TimelineView_Night_16_en",20132,], +["features.messages.impl.timeline_TimelineView_Day_17_en","features.messages.impl.timeline_TimelineView_Night_17_en",20132,], +["features.messages.impl.timeline_TimelineView_Day_1_en","features.messages.impl.timeline_TimelineView_Night_1_en",20132,], ["features.messages.impl.timeline_TimelineView_Day_2_en","features.messages.impl.timeline_TimelineView_Night_2_en",0,], ["features.messages.impl.timeline_TimelineView_Day_3_en","features.messages.impl.timeline_TimelineView_Night_3_en",0,], -["features.messages.impl.timeline_TimelineView_Day_4_en","features.messages.impl.timeline_TimelineView_Night_4_en",20119,], +["features.messages.impl.timeline_TimelineView_Day_4_en","features.messages.impl.timeline_TimelineView_Night_4_en",20132,], ["features.messages.impl.timeline_TimelineView_Day_5_en","features.messages.impl.timeline_TimelineView_Night_5_en",0,], -["features.messages.impl.timeline_TimelineView_Day_6_en","features.messages.impl.timeline_TimelineView_Night_6_en",20119,], +["features.messages.impl.timeline_TimelineView_Day_6_en","features.messages.impl.timeline_TimelineView_Night_6_en",20132,], ["features.messages.impl.timeline_TimelineView_Day_7_en","features.messages.impl.timeline_TimelineView_Night_7_en",0,], -["features.messages.impl.timeline_TimelineView_Day_8_en","features.messages.impl.timeline_TimelineView_Night_8_en",20119,], +["features.messages.impl.timeline_TimelineView_Day_8_en","features.messages.impl.timeline_TimelineView_Night_8_en",20132,], ["features.messages.impl.timeline_TimelineView_Day_9_en","features.messages.impl.timeline_TimelineView_Night_9_en",0,], ["libraries.designsystem.theme.components_TopAppBar_App_Bars_en","",0,], -["libraries.troubleshoot.impl_TroubleshootNotificationsView_Day_0_en","libraries.troubleshoot.impl_TroubleshootNotificationsView_Night_0_en",20119,], -["libraries.troubleshoot.impl_TroubleshootNotificationsView_Day_1_en","libraries.troubleshoot.impl_TroubleshootNotificationsView_Night_1_en",20119,], -["libraries.troubleshoot.impl_TroubleshootNotificationsView_Day_2_en","libraries.troubleshoot.impl_TroubleshootNotificationsView_Night_2_en",20119,], -["libraries.troubleshoot.impl_TroubleshootNotificationsView_Day_3_en","libraries.troubleshoot.impl_TroubleshootNotificationsView_Night_3_en",20119,], -["libraries.troubleshoot.impl_TroubleshootNotificationsView_Day_4_en","libraries.troubleshoot.impl_TroubleshootNotificationsView_Night_4_en",20119,], -["libraries.troubleshoot.impl_TroubleshootNotificationsView_Day_5_en","libraries.troubleshoot.impl_TroubleshootNotificationsView_Night_5_en",20119,], -["libraries.troubleshoot.impl_TroubleshootNotificationsView_Day_6_en","libraries.troubleshoot.impl_TroubleshootNotificationsView_Night_6_en",20119,], -["libraries.troubleshoot.impl_TroubleshootNotificationsView_Day_7_en","libraries.troubleshoot.impl_TroubleshootNotificationsView_Night_7_en",20119,], +["libraries.troubleshoot.impl_TroubleshootNotificationsView_Day_0_en","libraries.troubleshoot.impl_TroubleshootNotificationsView_Night_0_en",20132,], +["libraries.troubleshoot.impl_TroubleshootNotificationsView_Day_1_en","libraries.troubleshoot.impl_TroubleshootNotificationsView_Night_1_en",20132,], +["libraries.troubleshoot.impl_TroubleshootNotificationsView_Day_2_en","libraries.troubleshoot.impl_TroubleshootNotificationsView_Night_2_en",20132,], +["libraries.troubleshoot.impl_TroubleshootNotificationsView_Day_3_en","libraries.troubleshoot.impl_TroubleshootNotificationsView_Night_3_en",20132,], +["libraries.troubleshoot.impl_TroubleshootNotificationsView_Day_4_en","libraries.troubleshoot.impl_TroubleshootNotificationsView_Night_4_en",20132,], +["libraries.troubleshoot.impl_TroubleshootNotificationsView_Day_5_en","libraries.troubleshoot.impl_TroubleshootNotificationsView_Night_5_en",20132,], +["libraries.troubleshoot.impl_TroubleshootNotificationsView_Day_6_en","libraries.troubleshoot.impl_TroubleshootNotificationsView_Night_6_en",20132,], +["libraries.troubleshoot.impl_TroubleshootNotificationsView_Day_7_en","libraries.troubleshoot.impl_TroubleshootNotificationsView_Night_7_en",20132,], ["features.messages.impl.typing_TypingNotificationView_Day_0_en","features.messages.impl.typing_TypingNotificationView_Night_0_en",0,], -["features.messages.impl.typing_TypingNotificationView_Day_1_en","features.messages.impl.typing_TypingNotificationView_Night_1_en",20119,], -["features.messages.impl.typing_TypingNotificationView_Day_2_en","features.messages.impl.typing_TypingNotificationView_Night_2_en",20119,], -["features.messages.impl.typing_TypingNotificationView_Day_3_en","features.messages.impl.typing_TypingNotificationView_Night_3_en",20119,], -["features.messages.impl.typing_TypingNotificationView_Day_4_en","features.messages.impl.typing_TypingNotificationView_Night_4_en",20119,], -["features.messages.impl.typing_TypingNotificationView_Day_5_en","features.messages.impl.typing_TypingNotificationView_Night_5_en",20119,], -["features.messages.impl.typing_TypingNotificationView_Day_6_en","features.messages.impl.typing_TypingNotificationView_Night_6_en",20119,], +["features.messages.impl.typing_TypingNotificationView_Day_1_en","features.messages.impl.typing_TypingNotificationView_Night_1_en",20132,], +["features.messages.impl.typing_TypingNotificationView_Day_2_en","features.messages.impl.typing_TypingNotificationView_Night_2_en",20132,], +["features.messages.impl.typing_TypingNotificationView_Day_3_en","features.messages.impl.typing_TypingNotificationView_Night_3_en",20132,], +["features.messages.impl.typing_TypingNotificationView_Day_4_en","features.messages.impl.typing_TypingNotificationView_Night_4_en",20132,], +["features.messages.impl.typing_TypingNotificationView_Day_5_en","features.messages.impl.typing_TypingNotificationView_Night_5_en",20132,], +["features.messages.impl.typing_TypingNotificationView_Day_6_en","features.messages.impl.typing_TypingNotificationView_Night_6_en",20132,], ["features.messages.impl.typing_TypingNotificationView_Day_7_en","features.messages.impl.typing_TypingNotificationView_Night_7_en",0,], ["features.messages.impl.typing_TypingNotificationView_Day_8_en","features.messages.impl.typing_TypingNotificationView_Night_8_en",0,], ["libraries.designsystem.atomic.atoms_UnreadIndicatorAtom_Day_0_en","libraries.designsystem.atomic.atoms_UnreadIndicatorAtom_Night_0_en",0,], -["libraries.matrix.ui.components_UnresolvedUserRow_en","",20119,], +["libraries.matrix.ui.components_UnresolvedUserRow_en","",20132,], ["libraries.matrix.ui.components_UnsavedAvatar_Day_0_en","libraries.matrix.ui.components_UnsavedAvatar_Night_0_en",0,], ["libraries.designsystem.components.avatar_UserAvatarColors_Day_0_en","libraries.designsystem.components.avatar_UserAvatarColors_Night_0_en",0,], -["features.roomdetails.impl.notificationsettings_UserDefinedRoomNotificationSettingsView_Day_0_en","features.roomdetails.impl.notificationsettings_UserDefinedRoomNotificationSettingsView_Night_0_en",20119,], -["features.createroom.impl.components_UserListView_Day_0_en","features.createroom.impl.components_UserListView_Night_0_en",20119,], -["features.createroom.impl.components_UserListView_Day_1_en","features.createroom.impl.components_UserListView_Night_1_en",20119,], -["features.createroom.impl.components_UserListView_Day_2_en","features.createroom.impl.components_UserListView_Night_2_en",20119,], +["features.roomdetails.impl.notificationsettings_UserDefinedRoomNotificationSettingsView_Day_0_en","features.roomdetails.impl.notificationsettings_UserDefinedRoomNotificationSettingsView_Night_0_en",20132,], +["features.createroom.impl.components_UserListView_Day_0_en","features.createroom.impl.components_UserListView_Night_0_en",20132,], +["features.createroom.impl.components_UserListView_Day_1_en","features.createroom.impl.components_UserListView_Night_1_en",20132,], +["features.createroom.impl.components_UserListView_Day_2_en","features.createroom.impl.components_UserListView_Night_2_en",20132,], ["features.createroom.impl.components_UserListView_Day_3_en","features.createroom.impl.components_UserListView_Night_3_en",0,], ["features.createroom.impl.components_UserListView_Day_4_en","features.createroom.impl.components_UserListView_Night_4_en",0,], ["features.createroom.impl.components_UserListView_Day_5_en","features.createroom.impl.components_UserListView_Night_5_en",0,], ["features.createroom.impl.components_UserListView_Day_6_en","features.createroom.impl.components_UserListView_Night_6_en",0,], -["features.createroom.impl.components_UserListView_Day_7_en","features.createroom.impl.components_UserListView_Night_7_en",20119,], +["features.createroom.impl.components_UserListView_Day_7_en","features.createroom.impl.components_UserListView_Night_7_en",20132,], ["features.createroom.impl.components_UserListView_Day_8_en","features.createroom.impl.components_UserListView_Night_8_en",0,], -["features.createroom.impl.components_UserListView_Day_9_en","features.createroom.impl.components_UserListView_Night_9_en",20119,], +["features.createroom.impl.components_UserListView_Day_9_en","features.createroom.impl.components_UserListView_Night_9_en",20132,], ["features.preferences.impl.user_UserPreferences_Day_0_en","features.preferences.impl.user_UserPreferences_Night_0_en",0,], ["features.preferences.impl.user_UserPreferences_Day_1_en","features.preferences.impl.user_UserPreferences_Night_1_en",0,], ["features.preferences.impl.user_UserPreferences_Day_2_en","features.preferences.impl.user_UserPreferences_Night_2_en",0,], -["features.userprofile.shared_UserProfileHeaderSection_Day_0_en","features.userprofile.shared_UserProfileHeaderSection_Night_0_en",20119,], -["features.userprofile.shared_UserProfileView_Day_0_en","features.userprofile.shared_UserProfileView_Night_0_en",20119,], -["features.userprofile.shared_UserProfileView_Day_1_en","features.userprofile.shared_UserProfileView_Night_1_en",20119,], -["features.userprofile.shared_UserProfileView_Day_2_en","features.userprofile.shared_UserProfileView_Night_2_en",20119,], -["features.userprofile.shared_UserProfileView_Day_3_en","features.userprofile.shared_UserProfileView_Night_3_en",20119,], -["features.userprofile.shared_UserProfileView_Day_4_en","features.userprofile.shared_UserProfileView_Night_4_en",20119,], -["features.userprofile.shared_UserProfileView_Day_5_en","features.userprofile.shared_UserProfileView_Night_5_en",20119,], -["features.userprofile.shared_UserProfileView_Day_6_en","features.userprofile.shared_UserProfileView_Night_6_en",20119,], -["features.userprofile.shared_UserProfileView_Day_7_en","features.userprofile.shared_UserProfileView_Night_7_en",20119,], -["features.verifysession.impl.outgoing_VerifySelfSessionView_Day_0_en","features.verifysession.impl.outgoing_VerifySelfSessionView_Night_0_en",20119,], -["features.verifysession.impl.outgoing_VerifySelfSessionView_Day_10_en","features.verifysession.impl.outgoing_VerifySelfSessionView_Night_10_en",20119,], +["features.userprofile.shared_UserProfileHeaderSection_Day_0_en","features.userprofile.shared_UserProfileHeaderSection_Night_0_en",20132,], +["features.userprofile.shared_UserProfileView_Day_0_en","features.userprofile.shared_UserProfileView_Night_0_en",20132,], +["features.userprofile.shared_UserProfileView_Day_1_en","features.userprofile.shared_UserProfileView_Night_1_en",20132,], +["features.userprofile.shared_UserProfileView_Day_2_en","features.userprofile.shared_UserProfileView_Night_2_en",20132,], +["features.userprofile.shared_UserProfileView_Day_3_en","features.userprofile.shared_UserProfileView_Night_3_en",20132,], +["features.userprofile.shared_UserProfileView_Day_4_en","features.userprofile.shared_UserProfileView_Night_4_en",20132,], +["features.userprofile.shared_UserProfileView_Day_5_en","features.userprofile.shared_UserProfileView_Night_5_en",20132,], +["features.userprofile.shared_UserProfileView_Day_6_en","features.userprofile.shared_UserProfileView_Night_6_en",20132,], +["features.userprofile.shared_UserProfileView_Day_7_en","features.userprofile.shared_UserProfileView_Night_7_en",20132,], +["features.userprofile.shared_UserProfileView_Day_8_en","features.userprofile.shared_UserProfileView_Night_8_en",20136,], +["features.verifysession.impl.outgoing_VerifySelfSessionView_Day_0_en","features.verifysession.impl.outgoing_VerifySelfSessionView_Night_0_en",20132,], +["features.verifysession.impl.outgoing_VerifySelfSessionView_Day_10_en","features.verifysession.impl.outgoing_VerifySelfSessionView_Night_10_en",20132,], ["features.verifysession.impl.outgoing_VerifySelfSessionView_Day_11_en","features.verifysession.impl.outgoing_VerifySelfSessionView_Night_11_en",0,], ["features.verifysession.impl.outgoing_VerifySelfSessionView_Day_12_en","features.verifysession.impl.outgoing_VerifySelfSessionView_Night_12_en",0,], -["features.verifysession.impl.outgoing_VerifySelfSessionView_Day_13_en","features.verifysession.impl.outgoing_VerifySelfSessionView_Night_13_en",20119,], -["features.verifysession.impl.outgoing_VerifySelfSessionView_Day_1_en","features.verifysession.impl.outgoing_VerifySelfSessionView_Night_1_en",20119,], -["features.verifysession.impl.outgoing_VerifySelfSessionView_Day_2_en","features.verifysession.impl.outgoing_VerifySelfSessionView_Night_2_en",20119,], -["features.verifysession.impl.outgoing_VerifySelfSessionView_Day_3_en","features.verifysession.impl.outgoing_VerifySelfSessionView_Night_3_en",20119,], -["features.verifysession.impl.outgoing_VerifySelfSessionView_Day_4_en","features.verifysession.impl.outgoing_VerifySelfSessionView_Night_4_en",20119,], -["features.verifysession.impl.outgoing_VerifySelfSessionView_Day_5_en","features.verifysession.impl.outgoing_VerifySelfSessionView_Night_5_en",20119,], -["features.verifysession.impl.outgoing_VerifySelfSessionView_Day_6_en","features.verifysession.impl.outgoing_VerifySelfSessionView_Night_6_en",20119,], -["features.verifysession.impl.outgoing_VerifySelfSessionView_Day_7_en","features.verifysession.impl.outgoing_VerifySelfSessionView_Night_7_en",20119,], -["features.verifysession.impl.outgoing_VerifySelfSessionView_Day_8_en","features.verifysession.impl.outgoing_VerifySelfSessionView_Night_8_en",20119,], -["features.verifysession.impl.outgoing_VerifySelfSessionView_Day_9_en","features.verifysession.impl.outgoing_VerifySelfSessionView_Night_9_en",20119,], +["features.verifysession.impl.outgoing_VerifySelfSessionView_Day_13_en","features.verifysession.impl.outgoing_VerifySelfSessionView_Night_13_en",20132,], +["features.verifysession.impl.outgoing_VerifySelfSessionView_Day_1_en","features.verifysession.impl.outgoing_VerifySelfSessionView_Night_1_en",20132,], +["features.verifysession.impl.outgoing_VerifySelfSessionView_Day_2_en","features.verifysession.impl.outgoing_VerifySelfSessionView_Night_2_en",20132,], +["features.verifysession.impl.outgoing_VerifySelfSessionView_Day_3_en","features.verifysession.impl.outgoing_VerifySelfSessionView_Night_3_en",20132,], +["features.verifysession.impl.outgoing_VerifySelfSessionView_Day_4_en","features.verifysession.impl.outgoing_VerifySelfSessionView_Night_4_en",20132,], +["features.verifysession.impl.outgoing_VerifySelfSessionView_Day_5_en","features.verifysession.impl.outgoing_VerifySelfSessionView_Night_5_en",20132,], +["features.verifysession.impl.outgoing_VerifySelfSessionView_Day_6_en","features.verifysession.impl.outgoing_VerifySelfSessionView_Night_6_en",20132,], +["features.verifysession.impl.outgoing_VerifySelfSessionView_Day_7_en","features.verifysession.impl.outgoing_VerifySelfSessionView_Night_7_en",20132,], +["features.verifysession.impl.outgoing_VerifySelfSessionView_Day_8_en","features.verifysession.impl.outgoing_VerifySelfSessionView_Night_8_en",20132,], +["features.verifysession.impl.outgoing_VerifySelfSessionView_Day_9_en","features.verifysession.impl.outgoing_VerifySelfSessionView_Night_9_en",20132,], ["libraries.designsystem.ruler_VerticalRuler_Day_0_en","libraries.designsystem.ruler_VerticalRuler_Night_0_en",0,], ["libraries.mediaviewer.impl.gallery.ui_VideoItemView_Day_0_en","libraries.mediaviewer.impl.gallery.ui_VideoItemView_Night_0_en",0,], ["libraries.mediaviewer.impl.gallery.ui_VideoItemView_Day_1_en","libraries.mediaviewer.impl.gallery.ui_VideoItemView_Night_1_en",0,], @@ -1393,6 +1405,6 @@ export const screenshots = [ ["libraries.textcomposer.components_VoiceMessageRecording_Day_0_en","libraries.textcomposer.components_VoiceMessageRecording_Night_0_en",0,], ["libraries.textcomposer.components_VoiceMessage_Day_0_en","libraries.textcomposer.components_VoiceMessage_Night_0_en",0,], ["libraries.designsystem.components.media_WaveformPlaybackView_Day_0_en","libraries.designsystem.components.media_WaveformPlaybackView_Night_0_en",0,], -["features.ftue.impl.welcome_WelcomeView_Day_0_en","features.ftue.impl.welcome_WelcomeView_Night_0_en",20119,], +["features.ftue.impl.welcome_WelcomeView_Day_0_en","features.ftue.impl.welcome_WelcomeView_Night_0_en",20132,], ["libraries.designsystem.ruler_WithRulers_Day_0_en","libraries.designsystem.ruler_WithRulers_Night_0_en",0,], ]; diff --git a/tests/testutils/src/main/kotlin/io/element/android/tests/testutils/EnsureCalledOnce.kt b/tests/testutils/src/main/kotlin/io/element/android/tests/testutils/EnsureCalledOnce.kt index a794a2851b..15d09e17a9 100644 --- a/tests/testutils/src/main/kotlin/io/element/android/tests/testutils/EnsureCalledOnce.kt +++ b/tests/testutils/src/main/kotlin/io/element/android/tests/testutils/EnsureCalledOnce.kt @@ -84,6 +84,27 @@ class EnsureCalledOnceWithTwoParams( } } +class EnsureCalledOnceWithTwoParamsAndResult( + private val expectedParam1: T, + private val expectedParam2: U, + private val result: R, +) : (T, U) -> R { + private var counter = 0 + override fun invoke(p1: T, p2: U): R { + if (p1 != expectedParam1 || p2 != expectedParam2) { + throw AssertionError("Expected to be called with $expectedParam1 and $expectedParam2, but was called with $p1 and $p2") + } + counter++ + return result + } + + fun assertSuccess() { + if (counter != 1) { + throw AssertionError("Expected to be called once, but was called $counter times") + } + } +} + /** * Shortcut for [ ensureCalledOnceWithParam] with Unit result. */ diff --git a/tests/testutils/src/main/kotlin/io/element/android/tests/testutils/EnsureNeverCalled.kt b/tests/testutils/src/main/kotlin/io/element/android/tests/testutils/EnsureNeverCalled.kt index 28c57e62f6..689a52c792 100644 --- a/tests/testutils/src/main/kotlin/io/element/android/tests/testutils/EnsureNeverCalled.kt +++ b/tests/testutils/src/main/kotlin/io/element/android/tests/testutils/EnsureNeverCalled.kt @@ -32,3 +32,9 @@ class EnsureNeverCalledWithTwoParams : (T, U) -> Unit { lambdaError("Should not be called and is called with $p1 and $p2") } } + +class EnsureNeverCalledWithTwoParamsAndResult : (T, U) -> R { + override fun invoke(p1: T, p2: U): R { + lambdaError("Should not be called and is called with $p1 and $p2") + } +} diff --git a/tests/uitests/src/test/snapshots/images/appnav.loggedin_LoggedInView_Day_3_en.png b/tests/uitests/src/test/snapshots/images/appnav.loggedin_LoggedInView_Day_3_en.png index 3c4c448d47..d6d6a5a13c 100644 --- a/tests/uitests/src/test/snapshots/images/appnav.loggedin_LoggedInView_Day_3_en.png +++ b/tests/uitests/src/test/snapshots/images/appnav.loggedin_LoggedInView_Day_3_en.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:0078ea63dae1b2a879c2b367f096307a7f20c72b3e400284c9bb4fd948a8cbff -size 25116 +oid sha256:4a4b04cdfbed4c67792daea3b5d31cec0f763b2cdf4ecee962ce5652ef01af57 +size 24338 diff --git a/tests/uitests/src/test/snapshots/images/appnav.loggedin_LoggedInView_Night_3_en.png b/tests/uitests/src/test/snapshots/images/appnav.loggedin_LoggedInView_Night_3_en.png index a8bce592f9..4c07cc2a0d 100644 --- a/tests/uitests/src/test/snapshots/images/appnav.loggedin_LoggedInView_Night_3_en.png +++ b/tests/uitests/src/test/snapshots/images/appnav.loggedin_LoggedInView_Night_3_en.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:29b448b13c0bd0afb0e7d085f5fc6d137b63dbeae75e1286cd236a8d4bea67b9 -size 23178 +oid sha256:6927236633af4aff987dcb40d16ee7ca3187a7b1841aa82147a41210c65e71e4 +size 22444 diff --git a/tests/uitests/src/test/snapshots/images/features.messages.impl.crypto.identity_IdentityChangeStateView_Day_2_en.png b/tests/uitests/src/test/snapshots/images/features.messages.impl.crypto.identity_IdentityChangeStateView_Day_2_en.png index 0219280752..d2e968638a 100644 --- a/tests/uitests/src/test/snapshots/images/features.messages.impl.crypto.identity_IdentityChangeStateView_Day_2_en.png +++ b/tests/uitests/src/test/snapshots/images/features.messages.impl.crypto.identity_IdentityChangeStateView_Day_2_en.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:3ffda5a15b4c2a56009940901b0f5b102536efbc77a540c9814c4e644618509e -size 25186 +oid sha256:0bceb89945fbdc84bfd2778d5061b61b5602a147c8c4325f1893b9a2e5dd411e +size 27588 diff --git a/tests/uitests/src/test/snapshots/images/features.messages.impl.crypto.identity_IdentityChangeStateView_Night_2_en.png b/tests/uitests/src/test/snapshots/images/features.messages.impl.crypto.identity_IdentityChangeStateView_Night_2_en.png index 234e7f99d2..aa095fb225 100644 --- a/tests/uitests/src/test/snapshots/images/features.messages.impl.crypto.identity_IdentityChangeStateView_Night_2_en.png +++ b/tests/uitests/src/test/snapshots/images/features.messages.impl.crypto.identity_IdentityChangeStateView_Night_2_en.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:9370c42c42cbb9878244c4a1318d7e59725afc90ab1bca818a2a2619a41a6479 -size 27931 +oid sha256:b098eebc72bc5388453bc7a8ba46e62fb64b994b5240dda4bf1f59161362e97a +size 29408 diff --git a/tests/uitests/src/test/snapshots/images/features.messages.impl.crypto.identity_MessagesViewWithIdentityChange_Day_2_en.png b/tests/uitests/src/test/snapshots/images/features.messages.impl.crypto.identity_MessagesViewWithIdentityChange_Day_2_en.png index 73b3cec711..857344e8d9 100644 --- a/tests/uitests/src/test/snapshots/images/features.messages.impl.crypto.identity_MessagesViewWithIdentityChange_Day_2_en.png +++ b/tests/uitests/src/test/snapshots/images/features.messages.impl.crypto.identity_MessagesViewWithIdentityChange_Day_2_en.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:ab8c08410091863015fdf8e9cfeaf4259f470b500d7901d3dffff83483fb53a3 -size 65168 +oid sha256:62baf6570e7b118a943efd1aa7482d865a3984646cc41afa28a8dccd6246b580 +size 68313 diff --git a/tests/uitests/src/test/snapshots/images/features.messages.impl.crypto.identity_MessagesViewWithIdentityChange_Night_2_en.png b/tests/uitests/src/test/snapshots/images/features.messages.impl.crypto.identity_MessagesViewWithIdentityChange_Night_2_en.png index 6c06c9b772..d87569a76c 100644 --- a/tests/uitests/src/test/snapshots/images/features.messages.impl.crypto.identity_MessagesViewWithIdentityChange_Night_2_en.png +++ b/tests/uitests/src/test/snapshots/images/features.messages.impl.crypto.identity_MessagesViewWithIdentityChange_Night_2_en.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:ee7cdf903b25290a383c19ffa8f55759449469019f4b387366a0c538d59cc4b8 -size 69210 +oid sha256:66343e5a2a84a1caf4d4606ec3985866be85ee4d4a0b02d8fd374364c561f411 +size 70575 diff --git a/tests/uitests/src/test/snapshots/images/features.messages.impl.messagecomposer_DisabledComposerView_Day_0_en.png b/tests/uitests/src/test/snapshots/images/features.messages.impl.messagecomposer_DisabledComposerView_Day_0_en.png new file mode 100644 index 0000000000..205952091d --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.messages.impl.messagecomposer_DisabledComposerView_Day_0_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0d866ee561b4109bf1bb4d1cc3b34d32ad0c67ae51f7599088898acd4310f961 +size 6725 diff --git a/tests/uitests/src/test/snapshots/images/features.messages.impl.messagecomposer_DisabledComposerView_Night_0_en.png b/tests/uitests/src/test/snapshots/images/features.messages.impl.messagecomposer_DisabledComposerView_Night_0_en.png new file mode 100644 index 0000000000..a5be35d80b --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.messages.impl.messagecomposer_DisabledComposerView_Night_0_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3fcb7d90743e35ebf03f09129e02f4df7d0b3b883c451fb45f57f70669b5d4c5 +size 6382 diff --git a/tests/uitests/src/test/snapshots/images/features.messages.impl.messagecomposer_MessageComposerView_Day_0_en.png b/tests/uitests/src/test/snapshots/images/features.messages.impl.messagecomposer_MessageComposerView_Day_0_en.png index 37713151e1..8bf1f125bc 100644 --- a/tests/uitests/src/test/snapshots/images/features.messages.impl.messagecomposer_MessageComposerView_Day_0_en.png +++ b/tests/uitests/src/test/snapshots/images/features.messages.impl.messagecomposer_MessageComposerView_Day_0_en.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:409936daa72c7e70334f2ff5d62e84e41b5b79277fefb064b4a9183bd3925549 -size 16357 +oid sha256:ceb6210817e79599a968157aebb7fd1d4e80ddbb8f3e57aabfb58d8f6066b9d4 +size 19455 diff --git a/tests/uitests/src/test/snapshots/images/features.messages.impl.messagecomposer_MessageComposerView_Night_0_en.png b/tests/uitests/src/test/snapshots/images/features.messages.impl.messagecomposer_MessageComposerView_Night_0_en.png index dc1fac5911..7743b1f55a 100644 --- a/tests/uitests/src/test/snapshots/images/features.messages.impl.messagecomposer_MessageComposerView_Night_0_en.png +++ b/tests/uitests/src/test/snapshots/images/features.messages.impl.messagecomposer_MessageComposerView_Night_0_en.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:99c74f986295bd66f52346723a562a8d87b4eca9bda021220e8e916fecc86784 -size 15106 +oid sha256:6394543bdd107f70a09bdcb164163984112a25f90eed93850cb525572dd53045 +size 17888 diff --git a/tests/uitests/src/test/snapshots/images/features.roomlist.impl.components_NativeSlidingSyncMigrationBanner_Day_0_en.png b/tests/uitests/src/test/snapshots/images/features.roomlist.impl.components_NativeSlidingSyncMigrationBanner_Day_0_en.png deleted file mode 100644 index 575c6f033d..0000000000 --- a/tests/uitests/src/test/snapshots/images/features.roomlist.impl.components_NativeSlidingSyncMigrationBanner_Day_0_en.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:bd29991ad9e550e5f1e997bffd89bd26d68a97a11213819e6f646c594deb0a32 -size 37054 diff --git a/tests/uitests/src/test/snapshots/images/features.roomlist.impl.components_NativeSlidingSyncMigrationBanner_Night_0_en.png b/tests/uitests/src/test/snapshots/images/features.roomlist.impl.components_NativeSlidingSyncMigrationBanner_Night_0_en.png deleted file mode 100644 index c34aca9a8c..0000000000 --- a/tests/uitests/src/test/snapshots/images/features.roomlist.impl.components_NativeSlidingSyncMigrationBanner_Night_0_en.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:d0abbd15a76d2b3b6a4d66e2ed7df83f1cff94ca03c38b7b2e4ca1e4075229ce -size 35731 diff --git a/tests/uitests/src/test/snapshots/images/features.roomlist.impl.components_RoomListContentView_Day_5_en.png b/tests/uitests/src/test/snapshots/images/features.roomlist.impl.components_RoomListContentView_Day_5_en.png deleted file mode 100644 index 333bc47ff9..0000000000 --- a/tests/uitests/src/test/snapshots/images/features.roomlist.impl.components_RoomListContentView_Day_5_en.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:e1f630cfee64876a7143dff8720de4166248607d2c1247c857ed35290d08ab07 -size 73216 diff --git a/tests/uitests/src/test/snapshots/images/features.roomlist.impl.components_RoomListContentView_Night_5_en.png b/tests/uitests/src/test/snapshots/images/features.roomlist.impl.components_RoomListContentView_Night_5_en.png deleted file mode 100644 index d6d3773dd5..0000000000 --- a/tests/uitests/src/test/snapshots/images/features.roomlist.impl.components_RoomListContentView_Night_5_en.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:a8dfdf6bf277bee38b0e63dc4da4c28c7cff394419486681c4ddf8cff20bfb34 -size 71739 diff --git a/tests/uitests/src/test/snapshots/images/libraries.designsystem.atomic.molecules_ComposerAlertMolecule_Day_0_en.png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.atomic.molecules_ComposerAlertMolecule_Day_0_en.png index efa4a70bf3..157f3e59e2 100644 --- a/tests/uitests/src/test/snapshots/images/libraries.designsystem.atomic.molecules_ComposerAlertMolecule_Day_0_en.png +++ b/tests/uitests/src/test/snapshots/images/libraries.designsystem.atomic.molecules_ComposerAlertMolecule_Day_0_en.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:267bd9c09da1732222fc833e302b06c2107a2964524e8f98f5fdd7d2884543a5 -size 20808 +oid sha256:ff4fbcc142dac5a501eabb228009663eed497a2d30d8e29e0fe68b462a82997d +size 20369 diff --git a/tests/uitests/src/test/snapshots/images/libraries.designsystem.atomic.molecules_ComposerAlertMolecule_Night_0_en.png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.atomic.molecules_ComposerAlertMolecule_Night_0_en.png index 311ce5e56b..5338f9a2de 100644 --- a/tests/uitests/src/test/snapshots/images/libraries.designsystem.atomic.molecules_ComposerAlertMolecule_Night_0_en.png +++ b/tests/uitests/src/test/snapshots/images/libraries.designsystem.atomic.molecules_ComposerAlertMolecule_Night_0_en.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:35499aea0d8741002ee546553ac0ec8fee64abeb93db8913e585804ed28539fc -size 23451 +oid sha256:570d33be676b5a603f13c1beb364d41e8c19a6d1c501c3082cc197cd26344d4e +size 22546 diff --git a/tools/localazy/config.json b/tools/localazy/config.json index ac8a51169d..a085b36619 100644 --- a/tools/localazy/config.json +++ b/tools/localazy/config.json @@ -4,7 +4,8 @@ "name" : ":appnav", "includeRegex" : [ "banner\\.migrate_to_native_sliding_sync\\.force_logout.title", - "banner\\.migrate_to_native_sliding_sync\\.action" + "banner\\.migrate_to_native_sliding_sync\\.action", + "banner\\.migrate_to_native_sliding_sync\\.app_force_logout\\.title" ] }, { @@ -168,7 +169,6 @@ "session_verification_banner_.*", "confirm_recovery_key_banner_.*", "banner\\.set_up_recovery\\..*", - "banner\\.migrate_to_native_sliding_sync\\..*", "full_screen_intent_banner_.*", "screen_migration_.*", "screen_invites_.*",