diff --git a/.github/workflows/danger.yml b/.github/workflows/danger.yml index 2d39bfa7df..7fc9405912 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.4 + uses: danger/danger-js@13.0.4 with: args: "--dangerfile ./tools/danger/dangerfile.js" env: diff --git a/.github/workflows/quality.yml b/.github/workflows/quality.yml index 505eb2607c..50a2a59170 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.4 + uses: danger/danger-js@13.0.4 with: args: "--dangerfile ./tools/danger/dangerfile-lint.js" env: diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index bc4acfd5aa..4e0c9b9446 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -2,8 +2,8 @@ -* [Contributing code to Matrix](#contributing-code-to-matrix) * [Developer onboarding](#developer-onboarding) +* [Contributing code to Matrix](#contributing-code-to-matrix) * [Android Studio settings](#android-studio-settings) * [Compilation](#compilation) * [Strings](#strings) @@ -28,18 +28,18 @@ -## Contributing code to Matrix - -Please read https://github.com/matrix-org/synapse/blob/master/CONTRIBUTING.md - -Element X Android support can be found in this room: [![Element X Android Matrix room #element-x-android:matrix.org](https://img.shields.io/matrix/element-x-android:matrix.org.svg?label=%23element-x-android:matrix.org&logo=matrix&server_fqdn=matrix.org)](https://matrix.to/#/#element-x-android:matrix.org). - -The rest of the document contains specific rules for Matrix Android projects - ## Developer onboarding For a detailed overview of the project, see [Developer Onboarding](./docs/_developer_onboarding.md). +## Contributing code to Matrix + +If instead of contributing to the Element X Android project, you want to contribute to Synapse, the homeserver implementation, please read the [Synapse contribution guide](https://element-hq.github.io/synapse/latest/development/contributing_guide.html). + +Element X Android support can be found in this room: [![Element X Android Matrix room #element-x-android:matrix.org](https://img.shields.io/matrix/element-x-android:matrix.org.svg?label=%23element-x-android:matrix.org&logo=matrix&server_fqdn=matrix.org)](https://matrix.to/#/#element-x-android:matrix.org). + +The rest of the document contains specific rules for Matrix Android projects. + ## Android Studio settings Please set the "hard wrap" setting of Android Studio to 160 chars, this is the setting we use internally to format the source code (Menu `Settings/Editor/Code Style` then `Hard wrap at`). diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 107f9431f2..8e6d68bada 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -300,6 +300,7 @@ licensee { allow("Apache-2.0") allow("MIT") allow("BSD-2-Clause") + allow("BSD-3-Clause") allowUrl("https://opensource.org/licenses/MIT") allowUrl("https://developer.android.com/studio/terms.html") allowUrl("https://www.zetetic.net/sqlcipher/license/") diff --git a/app/src/main/res/xml/locales_config.xml b/app/src/main/res/xml/locales_config.xml index 3dd40c5c1b..4e71ac402c 100644 --- a/app/src/main/res/xml/locales_config.xml +++ b/app/src/main/res/xml/locales_config.xml @@ -3,6 +3,7 @@ + @@ -17,6 +18,7 @@ + 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 95ef6e54a5..d3ab19466f 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 @@ -78,15 +78,21 @@ class SyncOrchestrator @AssistedInject constructor( internal fun observeStates() = coroutineScope.launch { Timber.tag(tag).d("start observing the app and network state") + val isAppActiveFlow = combine( + appForegroundStateService.isInForeground, + appForegroundStateService.isInCall, + appForegroundStateService.isSyncingNotificationEvent, + appForegroundStateService.hasRingingCall, + ) { isInForeground, isInCall, isSyncingNotificationEvent, hasRingingCall -> + isInForeground || isInCall || isSyncingNotificationEvent || hasRingingCall + } + combine( // small debounce to avoid spamming startSync when the state is changing quickly in case of error. syncService.syncState.debounce(100.milliseconds), networkMonitor.connectivity, - appForegroundStateService.isInForeground, - appForegroundStateService.isInCall, - appForegroundStateService.isSyncingNotificationEvent, - ) { syncState, networkState, isInForeground, isInCall, isSyncingNotificationEvent -> - val isAppActive = isInForeground || isInCall || isSyncingNotificationEvent + isAppActiveFlow, + ) { syncState, networkState, isAppActive -> val isNetworkAvailable = networkState == NetworkStatus.Connected Timber.tag(tag).d("isAppActive=$isAppActive, isNetworkAvailable=$isNetworkAvailable") diff --git a/appnav/src/main/res/values-cy/translations.xml b/appnav/src/main/res/values-cy/translations.xml new file mode 100644 index 0000000000..86953eb820 --- /dev/null +++ b/appnav/src/main/res/values-cy/translations.xml @@ -0,0 +1,6 @@ + + + "Allgofnodi ac Uwchraddio" + "Nid yw %1$s bellach yn cefnogi\'r hen brotocol. Allgofnodwch a mewngofnodi\'n ôl i barhau i ddefnyddio\'r ap." + "Nid yw eich gweinydd cartref yn cefnogi\'r hen brotocol mwyach. Allgofnodwch a mewngofnodwch yn ôl i barhau i ddefnyddio\'r ap." + diff --git a/appnav/src/main/res/values-nb/translations.xml b/appnav/src/main/res/values-nb/translations.xml index cf42633154..8270499853 100644 --- a/appnav/src/main/res/values-nb/translations.xml +++ b/appnav/src/main/res/values-nb/translations.xml @@ -1,5 +1,6 @@ "Logg ut og oppgrader" + "%1$s støtter ikke lenger den gamle protokollen. Logg ut og logg inn igjen for å fortsette å bruke appen." "Hjemmeserveren din støtter ikke lenger den gamle protokollen. Vennligst logg ut og inn igjen for å fortsette å bruke appen." 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 b06ea5ca21..2c143df095 100644 --- a/appnav/src/test/kotlin/io/element/android/appnav/SyncOrchestratorTest.kt +++ b/appnav/src/test/kotlin/io/element/android/appnav/SyncOrchestratorTest.kt @@ -236,6 +236,50 @@ class SyncOrchestratorTest { stopSyncRecorder.assertions().isCalledOnce() } + @Test + fun `when the app was in background and we have an incoming ringing call, a sync will be started`() = runTest { + val startSyncRecorder = lambdaRecorder> { Result.success(Unit) } + val stopSyncRecorder = lambdaRecorder> { Result.success(Unit) } + val syncService = FakeSyncService(initialSyncState = SyncState.Idle).apply { + startSyncLambda = startSyncRecorder + stopSyncLambda = stopSyncRecorder + } + val networkMonitor = FakeNetworkMonitor(initialStatus = NetworkStatus.Connected) + val appForegroundStateService = FakeAppForegroundStateService( + initialForegroundValue = false, + initialIsSyncingNotificationEventValue = false, + initialHasRingingCall = false, + ) + val syncOrchestrator = createSyncOrchestrator( + syncService = syncService, + networkMonitor = networkMonitor, + appForegroundStateService = appForegroundStateService, + ) + + // We start observing + syncOrchestrator.observeStates() + + // Advance the time to make sure the orchestrator has had time to start processing the inputs + advanceTimeBy(100.milliseconds) + + // Start sync was never called + startSyncRecorder.assertions().isNeverCalled() + + // Now we receive a ringing call + appForegroundStateService.updateHasRingingCall(true) + + // Start sync will be called shortly after + advanceTimeBy(1.milliseconds) + startSyncRecorder.assertions().isCalledOnce() + + // If the sync is running and the ringing call notification is now over, the sync stops after a delay + syncService.emitSyncState(SyncState.Running) + appForegroundStateService.updateHasRingingCall(false) + + advanceTimeBy(10.seconds) + stopSyncRecorder.assertions().isCalledOnce() + } + @Test fun `when the app is in foreground, we sync for a notification and a call is ongoing, the sync will only stop when all conditions are false`() = runTest { val startSyncRecorder = lambdaRecorder> { Result.success(Unit) } diff --git a/docs/_developer_onboarding.md b/docs/_developer_onboarding.md index 738bd12430..525ab96fc0 100644 --- a/docs/_developer_onboarding.md +++ b/docs/_developer_onboarding.md @@ -10,7 +10,7 @@ * [Sync](#sync) * [Rust SDK](#rust-sdk) * [Matrix Rust Component Kotlin](#matrix-rust-component-kotlin) - * [Build the SDK locally](#build-the-sdk-locally) + * [Building the SDK locally](#building-the-sdk-locally) * [The Android project](#the-android-project) * [Application](#application) * [Jetpack Compose](#jetpack-compose) @@ -107,7 +107,7 @@ This is the goal of https://github.com/matrix-org/matrix-rust-components-kotlin. This repository is used for distributing kotlin releases of the Matrix Rust SDK. It'll provide the corresponding aar and also publish them on maven. -Most of the time you want to use the releases made on maven with gradle: +Most of the time **you want to use the releases made on maven with gradle**: ```groovy implementation("org.matrix.rustcomponents:sdk-android:latest-version") @@ -115,7 +115,9 @@ implementation("org.matrix.rustcomponents:sdk-android:latest-version") You can also have access to the aars through the [release](https://github.com/matrix-org/matrix-rust-components-kotlin/releases) page. -#### Build the SDK locally +#### Building the SDK locally + +If you want to make changes to the SDK or test them before integrating it with your codebase, you can build the SDK locally too. Prerequisites: * Install the Android NDK (Native Development Kit). To do this from within diff --git a/enterprise b/enterprise index 665a15a190..0299b8ec4f 160000 --- a/enterprise +++ b/enterprise @@ -1 +1 @@ -Subproject commit 665a15a1907a116816ffd1653bccfeaeeb7a2968 +Subproject commit 0299b8ec4f4233a39230d4c35b97f89728c35fd1 diff --git a/fastlane/metadata/android/en-US/changelogs/202504030.txt b/fastlane/metadata/android/en-US/changelogs/202504030.txt new file mode 100644 index 0000000000..a4b397f1bb --- /dev/null +++ b/fastlane/metadata/android/en-US/changelogs/202504030.txt @@ -0,0 +1,2 @@ +Main changes in this version: bug fixes and improvements. +Full changelog: https://github.com/element-hq/element-x-android/releases \ No newline at end of file diff --git a/features/analytics/api/src/main/res/values-cy/translations.xml b/features/analytics/api/src/main/res/values-cy/translations.xml new file mode 100644 index 0000000000..5971515095 --- /dev/null +++ b/features/analytics/api/src/main/res/values-cy/translations.xml @@ -0,0 +1,4 @@ + + + "yma" + diff --git a/features/analytics/api/src/main/res/values-lt/translations.xml b/features/analytics/api/src/main/res/values-lt/translations.xml new file mode 100644 index 0000000000..3d5b510b99 --- /dev/null +++ b/features/analytics/api/src/main/res/values-lt/translations.xml @@ -0,0 +1,7 @@ + + + "Dalinkitės anoniminiais naudojimo duomenimis ir padėkite mums nustatyti problemas." + "Galite perskaityti visas mūsų sąlygas %1$s ." + "čia" + "Dalytis analitiniais duomenimis" + diff --git a/features/analytics/impl/src/main/res/values-cy/translations.xml b/features/analytics/impl/src/main/res/values-cy/translations.xml new file mode 100644 index 0000000000..b3f6539e7c --- /dev/null +++ b/features/analytics/impl/src/main/res/values-cy/translations.xml @@ -0,0 +1,4 @@ + + + "yma" + diff --git a/features/analytics/impl/src/main/res/values-lt/translations.xml b/features/analytics/impl/src/main/res/values-lt/translations.xml new file mode 100644 index 0000000000..bdd2bbb1d1 --- /dev/null +++ b/features/analytics/impl/src/main/res/values-lt/translations.xml @@ -0,0 +1,10 @@ + + + "Mes nekaupsime ir neprofiliuosime jokių asmens duomenų" + "Dalinkitės anoniminiais naudojimo duomenimis ir padėkite mums nustatyti problemas." + "Galite perskaityti visas mūsų sąlygas %1$s ." + "čia" + "Tai galite bet kada išjungti" + "Mes nesidalinsime Jūsų duomenimis su trečiosiomis šalimis" + "Padėkite pagerinti %1$s" + diff --git a/features/call/impl/build.gradle.kts b/features/call/impl/build.gradle.kts index f0a9eedca0..343da45b47 100644 --- a/features/call/impl/build.gradle.kts +++ b/features/call/impl/build.gradle.kts @@ -66,6 +66,7 @@ dependencies { implementation(projects.appconfig) implementation(projects.features.enterprise.api) implementation(projects.libraries.architecture) + implementation(projects.libraries.androidutils) implementation(projects.libraries.core) implementation(projects.libraries.designsystem) implementation(projects.libraries.featureflag.api) diff --git a/features/call/impl/src/main/kotlin/io/element/android/features/call/impl/ui/CallScreenView.kt b/features/call/impl/src/main/kotlin/io/element/android/features/call/impl/ui/CallScreenView.kt index 7ace349f6f..25e856444c 100644 --- a/features/call/impl/src/main/kotlin/io/element/android/features/call/impl/ui/CallScreenView.kt +++ b/features/call/impl/src/main/kotlin/io/element/android/features/call/impl/ui/CallScreenView.kt @@ -8,6 +8,10 @@ package io.element.android.features.call.impl.ui import android.annotation.SuppressLint +import android.content.Context +import android.media.AudioDeviceCallback +import android.media.AudioDeviceInfo +import android.media.AudioManager import android.util.Log import android.view.ViewGroup import android.webkit.ConsoleMessage @@ -21,12 +25,17 @@ import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.padding import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.runtime.Composable +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember +import androidx.compose.runtime.setValue import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.platform.LocalInspectionMode import androidx.compose.ui.res.stringResource import androidx.compose.ui.tooling.preview.PreviewParameter import androidx.compose.ui.viewinterop.AndroidView +import androidx.core.content.getSystemService import io.element.android.compound.tokens.generated.CompoundIcons import io.element.android.features.call.impl.R import io.element.android.features.call.impl.pip.PictureInPictureEvents @@ -35,6 +44,8 @@ import io.element.android.features.call.impl.pip.PictureInPictureStateProvider import io.element.android.features.call.impl.pip.aPictureInPictureState import io.element.android.features.call.impl.utils.WebViewPipController import io.element.android.features.call.impl.utils.WebViewWidgetMessageInterceptor +import io.element.android.libraries.androidutils.compat.disableExternalAudioDevice +import io.element.android.libraries.androidutils.compat.enableExternalAudioDevice import io.element.android.libraries.architecture.AsyncData import io.element.android.libraries.designsystem.components.ProgressDialog import io.element.android.libraries.designsystem.components.button.BackButton @@ -147,9 +158,11 @@ private fun CallWebView( Text("WebView - can't be previewed") } } else { + var audioDeviceCallback: AudioDeviceCallback? by remember { mutableStateOf(null) } AndroidView( modifier = modifier, factory = { context -> + audioDeviceCallback = context.setupAudioConfiguration() WebView(context).apply { onWebViewCreate(this) setup(userAgent, onPermissionsRequest) @@ -161,12 +174,41 @@ private fun CallWebView( } }, onRelease = { webView -> + // Reset audio mode + webView.context.releaseAudioConfiguration(audioDeviceCallback) webView.destroy() } ) } } +private fun Context.setupAudioConfiguration(): AudioDeviceCallback? { + val audioManager = getSystemService() ?: return null + // Set 'voice call' mode so volume keys actually control the call volume + audioManager.mode = AudioManager.MODE_IN_COMMUNICATION + audioManager.enableExternalAudioDevice() + return object : AudioDeviceCallback() { + override fun onAudioDevicesAdded(addedDevices: Array?) { + Timber.d("Audio devices added") + audioManager.enableExternalAudioDevice() + } + + override fun onAudioDevicesRemoved(removedDevices: Array?) { + Timber.d("Audio devices removed") + audioManager.enableExternalAudioDevice() + } + }.also { + audioManager.registerAudioDeviceCallback(it, null) + } +} + +private fun Context.releaseAudioConfiguration(audioDeviceCallback: AudioDeviceCallback?) { + val audioManager = getSystemService() ?: return + audioManager.unregisterAudioDeviceCallback(audioDeviceCallback) + audioManager.disableExternalAudioDevice() + audioManager.mode = AudioManager.MODE_NORMAL +} + @SuppressLint("SetJavaScriptEnabled") private fun WebView.setup( userAgent: String, diff --git a/features/call/impl/src/main/kotlin/io/element/android/features/call/impl/utils/ActiveCallManager.kt b/features/call/impl/src/main/kotlin/io/element/android/features/call/impl/utils/ActiveCallManager.kt index fe266d1cf6..59e19d3fe2 100644 --- a/features/call/impl/src/main/kotlin/io/element/android/features/call/impl/utils/ActiveCallManager.kt +++ b/features/call/impl/src/main/kotlin/io/element/android/features/call/impl/utils/ActiveCallManager.kt @@ -26,6 +26,7 @@ import io.element.android.libraries.matrix.api.MatrixClientProvider import io.element.android.libraries.push.api.notifications.ForegroundServiceType import io.element.android.libraries.push.api.notifications.NotificationIdProvider import io.element.android.libraries.push.api.notifications.OnMissedCallNotificationHandler +import io.element.android.services.appnavstate.api.AppForegroundStateService import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.ExperimentalCoroutinesApi import kotlinx.coroutines.Job @@ -87,7 +88,9 @@ class DefaultActiveCallManager @Inject constructor( private val notificationManagerCompat: NotificationManagerCompat, private val matrixClientProvider: MatrixClientProvider, private val defaultCurrentCallService: DefaultCurrentCallService, + private val appForegroundStateService: AppForegroundStateService, ) : ActiveCallManager { + private val tag = "DefaultActiveCallManager" private var timedOutCallJob: Job? = null @VisibleForTesting(otherwise = VisibleForTesting.PRIVATE) @@ -106,9 +109,11 @@ class DefaultActiveCallManager @Inject constructor( override suspend fun registerIncomingCall(notificationData: CallNotificationData) { mutex.withLock { + appForegroundStateService.updateHasRingingCall(true) + Timber.tag(tag).d("Received incoming call for room id: ${notificationData.roomId}") if (activeCall.value != null) { displayMissedCallNotification(notificationData) - Timber.w("Already have an active call, ignoring incoming call: $notificationData") + Timber.tag(tag).w("Already have an active call, ignoring incoming call: $notificationData") return } activeCall.value = ActiveCall( @@ -129,6 +134,7 @@ class DefaultActiveCallManager @Inject constructor( // Acquire a wake lock to keep the device awake during the incoming call, so we can process the room info data if (activeWakeLock?.isHeld == false) { + Timber.tag(tag).d("Acquiring partial wakelock") activeWakeLock.acquire(ElementCallConfig.RINGING_CALL_DURATION_SECONDS * 1000L) } } @@ -139,10 +145,13 @@ class DefaultActiveCallManager @Inject constructor( */ @VisibleForTesting(otherwise = VisibleForTesting.PRIVATE) suspend fun incomingCallTimedOut(displayMissedCallNotification: Boolean) = mutex.withLock { + Timber.tag(tag).d("Incoming call timed out") + val previousActiveCall = activeCall.value ?: return val notificationData = (previousActiveCall.callState as? CallState.Ringing)?.notificationData ?: return activeCall.value = null if (activeWakeLock?.isHeld == true) { + Timber.tag(tag).d("Releasing partial wakelock after timeout") activeWakeLock.release() } @@ -155,11 +164,12 @@ class DefaultActiveCallManager @Inject constructor( override suspend fun hungUpCall(callType: CallType) = mutex.withLock { if (activeCall.value?.callType != callType) { - Timber.w("Call type $callType does not match the active call type, ignoring") + Timber.tag(tag).w("Call type $callType does not match the active call type, ignoring") return } cancelIncomingCallNotification() if (activeWakeLock?.isHeld == true) { + Timber.tag(tag).d("Releasing partial wakelock after hang up") activeWakeLock.release() } timedOutCallJob?.cancel() @@ -169,6 +179,7 @@ class DefaultActiveCallManager @Inject constructor( override suspend fun joinedCall(callType: CallType) = mutex.withLock { cancelIncomingCallNotification() if (activeWakeLock?.isHeld == true) { + Timber.tag(tag).d("Releasing partial wakelock after joining call") activeWakeLock.release() } timedOutCallJob?.cancel() @@ -181,6 +192,7 @@ class DefaultActiveCallManager @Inject constructor( @SuppressLint("MissingPermission") private suspend fun showIncomingCallNotification(notificationData: CallNotificationData) { + Timber.tag(tag).d("Displaying ringing call notification") val notification = ringingCallNotificationCreator.createNotification( sessionId = notificationData.sessionId, roomId = notificationData.roomId, @@ -204,10 +216,13 @@ class DefaultActiveCallManager @Inject constructor( } private fun cancelIncomingCallNotification() { + appForegroundStateService.updateHasRingingCall(false) + Timber.tag(tag).d("Ringing call notification cancelled") notificationManagerCompat.cancel(NotificationIdProvider.getForegroundServiceNotificationId(ForegroundServiceType.INCOMING_CALL)) } private fun displayMissedCallNotification(notificationData: CallNotificationData) { + Timber.tag(tag).d("Displaying missed call notification") coroutineScope.launch { onMissedCallNotificationHandler.addMissedCallNotification( sessionId = notificationData.sessionId, @@ -227,14 +242,14 @@ class DefaultActiveCallManager @Inject constructor( .flatMapLatest { activeCall -> val callType = activeCall.callType as CallType.RoomCall // Get a flow of updated `hasRoomCall` and `activeRoomCallParticipants` values for the room - matrixClientProvider.getOrRestore(callType.sessionId).getOrNull() - ?.getRoom(callType.roomId) - ?.roomInfoFlow - ?.map { - Timber.d("Has room call status changed for ringing call: ${it.hasRoomCall}") - it.hasRoomCall to (callType.sessionId in it.activeRoomCallParticipants) - } - ?: flowOf() + val room = matrixClientProvider.getOrRestore(callType.sessionId).getOrNull()?.getRoom(callType.roomId) ?: run { + Timber.tag(tag).d("Couldn't find room for incoming call: $activeCall") + return@flatMapLatest flowOf() + } + room.roomInfoFlow.map { + Timber.tag(tag).d("Has room call status changed for ringing call: ${it.hasRoomCall}") + it.hasRoomCall to (callType.sessionId in it.activeRoomCallParticipants) + } } // We only want to check if the room active call status changes .distinctUntilChanged() diff --git a/features/call/impl/src/main/kotlin/io/element/android/features/call/impl/utils/CallIntentDataParser.kt b/features/call/impl/src/main/kotlin/io/element/android/features/call/impl/utils/CallIntentDataParser.kt index 827427e0cf..c81b87746e 100644 --- a/features/call/impl/src/main/kotlin/io/element/android/features/call/impl/utils/CallIntentDataParser.kt +++ b/features/call/impl/src/main/kotlin/io/element/android/features/call/impl/utils/CallIntentDataParser.kt @@ -8,6 +8,7 @@ package io.element.android.features.call.impl.utils import android.net.Uri +import androidx.core.net.toUri import javax.inject.Inject class CallIntentDataParser @Inject constructor() { @@ -17,7 +18,7 @@ class CallIntentDataParser @Inject constructor() { ) fun parse(data: String?): String? { - val parsedUrl = data?.let { Uri.parse(data) } ?: return null + val parsedUrl = data?.toUri() ?: return null val scheme = parsedUrl.scheme return when { scheme in validHttpSchemes -> parsedUrl @@ -37,7 +38,7 @@ class CallIntentDataParser @Inject constructor() { private fun Uri.getUrlParameter(): Uri? { return getQueryParameter("url") ?.let { urlParameter -> - Uri.parse(urlParameter).takeIf { uri -> + urlParameter.toUri().takeIf { uri -> uri.scheme in validHttpSchemes && !uri.host.isNullOrBlank() } } diff --git a/features/call/impl/src/main/res/values-cy/translations.xml b/features/call/impl/src/main/res/values-cy/translations.xml new file mode 100644 index 0000000000..13f92c64d4 --- /dev/null +++ b/features/call/impl/src/main/res/values-cy/translations.xml @@ -0,0 +1,6 @@ + + + "Galwad cyfredol" + "Tapio i ddychwelyd i\'r alwad" + "☎️ Galwad ar y gweill" + diff --git a/features/call/impl/src/test/kotlin/io/element/android/features/call/utils/DefaultActiveCallManagerTest.kt b/features/call/impl/src/test/kotlin/io/element/android/features/call/utils/DefaultActiveCallManagerTest.kt index ff53b1ff77..d6e06882a2 100644 --- a/features/call/impl/src/test/kotlin/io/element/android/features/call/utils/DefaultActiveCallManagerTest.kt +++ b/features/call/impl/src/test/kotlin/io/element/android/features/call/utils/DefaultActiveCallManagerTest.kt @@ -35,6 +35,7 @@ import io.element.android.libraries.push.api.notifications.NotificationIdProvide import io.element.android.libraries.push.test.notifications.FakeImageLoaderHolder import io.element.android.libraries.push.test.notifications.FakeOnMissedCallNotificationHandler import io.element.android.libraries.push.test.notifications.push.FakeNotificationBitmapLoader +import io.element.android.services.appnavstate.test.FakeAppForegroundStateService import io.element.android.tests.testutils.lambda.lambdaRecorder import io.element.android.tests.testutils.lambda.value import io.mockk.mockk @@ -323,5 +324,6 @@ class DefaultActiveCallManagerTest { notificationManagerCompat = notificationManagerCompat, matrixClientProvider = matrixClientProvider, defaultCurrentCallService = DefaultCurrentCallService(), + appForegroundStateService = FakeAppForegroundStateService(), ) } diff --git a/features/createroom/impl/src/main/res/values-cy/translations.xml b/features/createroom/impl/src/main/res/values-cy/translations.xml new file mode 100644 index 0000000000..78f88a2112 --- /dev/null +++ b/features/createroom/impl/src/main/res/values-cy/translations.xml @@ -0,0 +1,14 @@ + + + "Gwahodd pobl" + "Gall unrhyw un ymuno â\'r ystafell hon" + "Unrhyw un" + "Mynediad i\'r Ystafell" + "Gall unrhyw un ofyn am gael ymuno â\'r ystafell ond bydd rhaid i weinyddwr neu gymedrolwr dderbyn y cais" + "Gofyn i gael ymuno" + "Er mwyn i\'r ystafell hon fod yn weladwy yn y cyfeiriadur ystafelloedd cyhoeddus, bydd angen cyfeiriad ystafell arnoch." + "Cyfeiriad yr ystafell" + "Enw\'r ystafell" + "Gwelededd yr ystafell" + "Creu ystafell" + diff --git a/features/createroom/impl/src/main/res/values-lt/translations.xml b/features/createroom/impl/src/main/res/values-lt/translations.xml new file mode 100644 index 0000000000..2f7a4438ea --- /dev/null +++ b/features/createroom/impl/src/main/res/values-lt/translations.xml @@ -0,0 +1,14 @@ + + + "Naujas kambarys" + "Pakviesti žmonių" + "Kuriant kambarį įvyko klaida" + "Į šį kambarį gali patekti tik pakviesti žmonės. Visi pranešimai yra užšifruoti nuo pradžios iki galo." + "Privatus kambarys" + "Bet kas gali rasti šį kambarį. +Tai galite bet kada pakeisti kambario nustatymuose." + "Kambario pavadinimas" + "Kurti kambarį" + "Tema (nebūtina)" + "Bandant pradėti pokalbį įvyko klaida" + diff --git a/features/createroom/impl/src/main/res/values-nb/translations.xml b/features/createroom/impl/src/main/res/values-nb/translations.xml index 9b79740a97..9266993fd4 100644 --- a/features/createroom/impl/src/main/res/values-nb/translations.xml +++ b/features/createroom/impl/src/main/res/values-nb/translations.xml @@ -9,8 +9,11 @@ Du kan endre dette når som helst i rominnstillingene." "Offentlig rom" "Alle kan bli med i dette rommet" + "Alle" + "Tilgang til rom" "Alle kan be om å få bli med i rommet, men en administrator eller moderator må godta forespørselen" "Be om å bli med" + "For at dette rommet skal være synlig i den offentlige romkatalogen, trenger du en romadresse." "Romadresse" "Romnavn" "Romsynlighet" @@ -18,7 +21,10 @@ Du kan endre dette når som helst i rominnstillingene." "Emne (valgfritt)" "Romkatalog" "Det oppstod en feil når du prøvde å starte en chat" + "Bli med i rommet med adresse" "Ikke en gyldig adresse" + "Gå inn…" + "Matchende rom funnet" "Rom ikke funnet" "f.eks. #rom-navn:matrix.org" diff --git a/features/createroom/impl/src/main/res/values-nl/translations.xml b/features/createroom/impl/src/main/res/values-nl/translations.xml index 7cdeffcfe6..29d070a263 100644 --- a/features/createroom/impl/src/main/res/values-nl/translations.xml +++ b/features/createroom/impl/src/main/res/values-nl/translations.xml @@ -3,7 +3,7 @@ "Nieuwe kamer" "Mensen uitnodigen" "Er is een fout opgetreden bij het aanmaken van de kamer" - "Berichten in deze kamer zijn versleuteld. Versleuteling kan achteraf niet worden uitgeschakeld." + "Alleen uitgenodigde personen hebben toegang tot deze kamer. Alle berichten zijn end-to-end versleuteld." "Privé kamer" "Iedereen kan deze kamer vinden. Je kunt dit op elk gewenst moment wijzigen in de kamerinstellingen." 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 a570bfef9f..b7006f7715 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 @@ -4,7 +4,7 @@ "Convidar pessoas" "Ocorreu um erro ao criar a sala" "Apenas as pessoas convidadas podem aceder a esta sala. Todas as mensagens são criptografadas de ponta a ponta." - "Sala privativa (somente por convite)" + "Sala privada" "Qualquer um pode encontrar esta sala. Você pode mudar isso a qualquer momento nas configurações da sala." "Nome da sala" diff --git a/features/deactivation/impl/src/main/res/values-cy/translations.xml b/features/deactivation/impl/src/main/res/values-cy/translations.xml new file mode 100644 index 0000000000..8c2c6e1609 --- /dev/null +++ b/features/deactivation/impl/src/main/res/values-cy/translations.xml @@ -0,0 +1,4 @@ + + + "Cau cyfrif" + diff --git a/features/deactivation/impl/src/main/res/values-eu/translations.xml b/features/deactivation/impl/src/main/res/values-eu/translations.xml index c8b4aa3e32..d55c272e65 100644 --- a/features/deactivation/impl/src/main/res/values-eu/translations.xml +++ b/features/deactivation/impl/src/main/res/values-eu/translations.xml @@ -1,6 +1,9 @@ "Ezabatu nire mezu guztiak" + "Kontuaren desaktibazioa %1$s, honakoa eragingo du:" + "ezin da desegin" + "Ezgaitu betiko" "Kendu zure burua txat gela guztietatik." "Desaktibatu kontua" diff --git a/features/ftue/impl/src/main/res/values-cy/translations.xml b/features/ftue/impl/src/main/res/values-cy/translations.xml new file mode 100644 index 0000000000..63630b863d --- /dev/null +++ b/features/ftue/impl/src/main/res/values-cy/translations.xml @@ -0,0 +1,4 @@ + + + "Ffwrdd â ni!" + diff --git a/features/invite/impl/src/main/res/values-cy/translations.xml b/features/invite/impl/src/main/res/values-cy/translations.xml new file mode 100644 index 0000000000..08fc08910c --- /dev/null +++ b/features/invite/impl/src/main/res/values-cy/translations.xml @@ -0,0 +1,7 @@ + + + "Iawn, gwrthod a rhwystro" + "Ydych chi\'n siŵr eich bod am wrthod y gwahoddiad i ymuno â\'r ystafell hon? Bydd hyn hefyd yn atal %1$s rhag cysylltu â chi neu eich gwahodd i ystafelloedd." + "Gwrthod gwahoddiad a rhwystro" + "Gwrthod a rhwystro" + diff --git a/features/invite/impl/src/main/res/values-lt/translations.xml b/features/invite/impl/src/main/res/values-lt/translations.xml new file mode 100644 index 0000000000..c94b61fd5d --- /dev/null +++ b/features/invite/impl/src/main/res/values-lt/translations.xml @@ -0,0 +1,9 @@ + + + "Ar tikrai norite atmesti kvietimą prisijungti prie %1$s?" + "Atmesti kvietimą" + "Ar tikrai norite atmesti šį privatų pokalbį su %1$s ?" + "Atmesti pokalbį" + "Jokių kvietimų" + "%1$s(%2$s) pakvietė Jus" + diff --git a/features/invite/impl/src/main/res/values-nb/translations.xml b/features/invite/impl/src/main/res/values-nb/translations.xml index 1e64bc42a4..224ad72689 100644 --- a/features/invite/impl/src/main/res/values-nb/translations.xml +++ b/features/invite/impl/src/main/res/values-nb/translations.xml @@ -7,6 +7,7 @@ "Ingen invitasjoner" "%1$s(%2$s) inviterte deg" "Ja, avslå og blokker" + "Er du sikker på at du vil avslå invitasjonen til å bli med i dette rommet? Dette vil også forhindre %1$s fra å kontakte deg eller invitere deg til rom." "Avslå invitasjon og blokker" "Avslå og blokker" diff --git a/features/joinroom/impl/src/main/kotlin/io/element/android/features/joinroom/impl/JoinRoomStateProvider.kt b/features/joinroom/impl/src/main/kotlin/io/element/android/features/joinroom/impl/JoinRoomStateProvider.kt index e21794b46d..d191915972 100644 --- a/features/joinroom/impl/src/main/kotlin/io/element/android/features/joinroom/impl/JoinRoomStateProvider.kt +++ b/features/joinroom/impl/src/main/kotlin/io/element/android/features/joinroom/impl/JoinRoomStateProvider.kt @@ -47,7 +47,7 @@ open class JoinRoomStateProvider : PreviewParameterProvider { ), aJoinRoomState( contentState = aLoadedContentState(joinAuthorisationStatus = JoinAuthorisationStatus.CanJoin), - joinAction = AsyncAction.Failure(ClientException.Generic("Something went wrong")) + joinAction = AsyncAction.Failure(ClientException.Generic("Something went wrong", null)) ), aJoinRoomState( contentState = aLoadedContentState(joinAuthorisationStatus = JoinAuthorisationStatus.IsInvited(null)) diff --git a/features/joinroom/impl/src/main/res/values-cy/translations.xml b/features/joinroom/impl/src/main/res/values-cy/translations.xml new file mode 100644 index 0000000000..7b83e67d68 --- /dev/null +++ b/features/joinroom/impl/src/main/res/values-cy/translations.xml @@ -0,0 +1,16 @@ + + + "Diddymu cais" + "Iawn, diddymu" + "Ydych chi\'n siŵr eich bod am ddiddymu\'ch cais i ymuno â\'r ystafell hon?" + "Diddymu cais i ymuno" + "Iawn, gwrthod a rhwystro" + "Ydych chi\'n siŵr eich bod am wrthod y gwahoddiad i ymuno â\'r ystafell hon? Bydd hyn hefyd yn atal %1$s rhag cysylltu â chi neu eich gwahodd i ystafelloedd." + "Gwrthod gwahoddiad a rhwystro" + "Gwrthod a rhwystro" + "Neges (dewisol)" + "Byddwch yn derbyn gwahoddiad i ymuno â\'r ystafell os caiff eich cais ei dderbyn." + "Anfonwyd y cais i ymuno" + "Doedd dim modd dangos rhagolwg yr ystafell. Gall hyn fod oherwydd problemau rhwydwaith neu weinydd." + "Doedd dim modd dangos rhagolwg yr ystafell hon" + diff --git a/features/joinroom/impl/src/main/res/values-eu/translations.xml b/features/joinroom/impl/src/main/res/values-eu/translations.xml index 8e5cb2641a..b2d30220fb 100644 --- a/features/joinroom/impl/src/main/res/values-eu/translations.xml +++ b/features/joinroom/impl/src/main/res/values-eu/translations.xml @@ -1,7 +1,9 @@ + "Arrazoia: %1$s." "Utzi eskaera bertan behera" "Bai, utzi bertan behera" + "Ahaztu gela hau" "Sartu gelan" "Bidali batzeko eskaera" "Mezua (aukerakoa)" diff --git a/features/joinroom/impl/src/main/res/values-nb/translations.xml b/features/joinroom/impl/src/main/res/values-nb/translations.xml index da5fa44dbb..f1f4d7afda 100644 --- a/features/joinroom/impl/src/main/res/values-nb/translations.xml +++ b/features/joinroom/impl/src/main/res/values-nb/translations.xml @@ -8,6 +8,7 @@ "Er du sikker på at du vil kansellere forespørselen din om å bli med i dette rommet?" "Avbryt forespørsel om å bli med" "Ja, avslå og blokker" + "Er du sikker på at du vil avslå invitasjonen til å bli med i dette rommet? Dette vil også forhindre %1$s fra å kontakte deg eller invitere deg til rom." "Avslå invitasjon og blokker" "Avslå og blokker" "Å bli med i rommet mislyktes." @@ -20,6 +21,8 @@ "Melding (valgfritt)" "Du vil motta en invitasjon til å bli med i rommet hvis forespørselen din blir akseptert." "Forespørsel om å bli med sendt" + "Vi kunne ikke vise forhåndsvisningen av rommet. Dette kan skyldes nettverks- eller serverproblemer." + "Vi kunne ikke vise forhåndsvisning av dette rommet" "%1$s støtter ikke områder ennå. Du kan få tilgang til områder på nett." "Områder støttes ikke ennå" "Klikk på knappen nedenfor, så vil en romadministrator bli varslet. Du vil kunne delta i samtalen når den er godkjent." diff --git a/features/joinroom/impl/src/main/res/values-nl/translations.xml b/features/joinroom/impl/src/main/res/values-nl/translations.xml index c64b8917d3..f7d19d9fd1 100644 --- a/features/joinroom/impl/src/main/res/values-nl/translations.xml +++ b/features/joinroom/impl/src/main/res/values-nl/translations.xml @@ -1,8 +1,10 @@ + "Verzoek annuleren" "Toetreden tot de kamer" "Klop om deel te nemen" "Bericht (optioneel)" + "Je ontvangt een uitnodiging om deel te nemen aan de kamer als je aanvraag wordt geaccepteerd." "Verzoek om toe te treden verzonden" "%1$s ondersteunt nog geen spaces. Je kunt spaces benaderen via de webbrowser." "Spaces worden nog niet ondersteund" diff --git a/features/joinroom/impl/src/test/kotlin/io/element/android/features/joinroom/impl/JoinRoomPresenterTest.kt b/features/joinroom/impl/src/test/kotlin/io/element/android/features/joinroom/impl/JoinRoomPresenterTest.kt index 22f7796a5b..7d151e5530 100644 --- a/features/joinroom/impl/src/test/kotlin/io/element/android/features/joinroom/impl/JoinRoomPresenterTest.kt +++ b/features/joinroom/impl/src/test/kotlin/io/element/android/features/joinroom/impl/JoinRoomPresenterTest.kt @@ -250,7 +250,7 @@ class JoinRoomPresenterTest { val presenter = createJoinRoomPresenter( roomDescription = Optional.of(roomDescription), joinRoomLambda = { _, _, _ -> - Result.failure(ClientException.MatrixApi(ErrorKind.Forbidden, "403", "Forbidden")) + Result.failure(ClientException.MatrixApi(ErrorKind.Forbidden, "403", "Forbidden", null)) }, ) presenter.test { @@ -742,7 +742,7 @@ class JoinRoomPresenterTest { fun `present - when room is not known RoomPreview is loaded with error Forbidden`() = runTest { val client = FakeMatrixClient( getRoomPreviewResult = { _, _ -> - Result.failure(ClientException.MatrixApi(ErrorKind.Forbidden, "403", "Forbidden")) + Result.failure(ClientException.MatrixApi(ErrorKind.Forbidden, "403", "Forbidden", null)) } ) val presenter = createJoinRoomPresenter( diff --git a/features/knockrequests/impl/src/main/res/values-cy/translations.xml b/features/knockrequests/impl/src/main/res/values-cy/translations.xml new file mode 100644 index 0000000000..2ea2ec041e --- /dev/null +++ b/features/knockrequests/impl/src/main/res/values-cy/translations.xml @@ -0,0 +1,32 @@ + + + "Iawn, derbyn y cyfan" + "Ydych chi\'n siŵr eich bod am dderbyn pob cais i ymuno?" + "Derbyn pob cais" + "Derbyn y cyfan" + "Doedd dim modd derbyn pob cais. Hoffech chi roi cynnig arall arni?" + "Wedi methu derbyn pob cais" + "Yn derbyn pob cais i ymuno" + "Doedd dim modd derbyn y cais hwn. Hoffech chi roi cynnig arall arni?" + "Wedi methu â derbyn y cais" + "Yn derbyn cais i ymuno" + "Iawn, gwrthod a gwahardd" + "Ydych chi\'n siŵr eich bod am wrthod a gwahardd %1$s? Bydd y defnyddiwr hwn ddim yn gallu gofyn am fynediad i ymuno â\'r ystafell hon eto." + "Gwrthod a gwahardd mynediad" + "Yn gwrthod a gwahardd mynediad" + "Iawn, gwrthod" + "Ydych chi\'n siŵr eich bod am wrthod %1$s cais i ymuno â\'r ystafell hon?" + "Gwrthod mynediad" + "Gwrthod a gwahardd" + "Doedd dim modd i ni wrthod y cais hwn. Hoffech chi roi cynnig arall arni?" + "Wedi methu â gwrthod y cais" + "Yn gwrthod cais i ymuno" + "Pan fydd rhywun yn gofyn am gael ymuno â\'r ystafell, byddwch yn gallu gweld eu cais yma." + "Dim cais i ymuno yn disgwyl" + "Yn llwytho ceisiadau i ymuno…" + "Ceisiadau i ymuno" + "Gweld y cyfan" + "Derbyn" + "Mae %1$s eisiau ymuno â\'r ystafell hon" + "Golwg" + diff --git a/features/knockrequests/impl/src/main/res/values-lt/translations.xml b/features/knockrequests/impl/src/main/res/values-lt/translations.xml new file mode 100644 index 0000000000..df25b7a23a --- /dev/null +++ b/features/knockrequests/impl/src/main/res/values-lt/translations.xml @@ -0,0 +1,4 @@ + + + "Priimti" + diff --git a/features/knockrequests/impl/src/main/res/values-nb/translations.xml b/features/knockrequests/impl/src/main/res/values-nb/translations.xml index 278fdff59e..1616a4b5ca 100644 --- a/features/knockrequests/impl/src/main/res/values-nb/translations.xml +++ b/features/knockrequests/impl/src/main/res/values-nb/translations.xml @@ -1,9 +1,18 @@ "Ja, godta alle" + "Er du sikker på at du vil godta alle forespørsler om å bli med?" "Godta alle forespørsler" + "Godta alle" + "Vi kunne ikke godta alle forespørsler. Vil du prøve igjen?" + "Kunne ikke godta alle forespørsler" "Godtar alle forespørsler om å bli med" + "Vi kunne ikke godta denne forespørselen. Vil du prøve igjen?" + "Kunne ikke godta forespørselen" "Godtar forespørsel om å bli med" + "Ja, avslå og utesteng" + "Er du sikker på at du vil avvise og utestenge %1$s? Denne brukeren vil ikke kunne be om tilgang til dette rommet igjen." + "Avslå og forby tilgang" "Avslår og forbyr tilgang" "Ja, avslå" "Er du sikker på at du vil avslå %1$ss forespørsel om å bli med i dette rommet?" @@ -12,8 +21,14 @@ "Vi kunne ikke avslå denne forespørselen. Vil du prøve igjen?" "Kunne ikke avslå forespørselen" "Avslår forespørsel om å bli med" + "Når noen ber om å bli med i rommet, vil du kunne se forespørselen deres her." "Ingen ventende forespørsel om å bli med" + "Laster inn forespørsler om å bli med…" "Forespørsler om å bli med" + + "%1$s +%2$d andre ønsker å bli med i dette rommet" + "%1$s +%2$d andre ønsker å bli med i dette rommet" + "Vis alle" "Godta" "%1$s ønsker å bli med i dette rommet" diff --git a/features/leaveroom/api/src/main/res/values-cy/translations.xml b/features/leaveroom/api/src/main/res/values-cy/translations.xml new file mode 100644 index 0000000000..1ce4f2f3b4 --- /dev/null +++ b/features/leaveroom/api/src/main/res/values-cy/translations.xml @@ -0,0 +1,7 @@ + + + "Ydych chi\'n siŵr eich bod am adael y sgwrs hon? Dyw\'r sgwrs hon ddim yn gyhoeddus a fyddwch chi ddim yn gallu ailymuno heb wahoddiad." + "Ydych chi\'n siŵr eich bod am adael yr ystafell hon? Chi yw\'r unig berson yma. Os byddwch yn gadael, fydd neb yn gallu ymuno yn y dyfodol, gan gynnwys chi." + "Ydych chi\'n siŵr eich bod am adael yr ystafell hon? Dyw\'r ystafell hon ddim yn gyhoeddus a fyddwch chi ddim yn gallu ailymuno heb wahoddiad." + "Ydych chi\'n siŵr eich bod am adael yr ystafell?" + diff --git a/features/leaveroom/api/src/main/res/values-lt/translations.xml b/features/leaveroom/api/src/main/res/values-lt/translations.xml new file mode 100644 index 0000000000..c204c28083 --- /dev/null +++ b/features/leaveroom/api/src/main/res/values-lt/translations.xml @@ -0,0 +1,6 @@ + + + "Ar tikrai norite išeiti iš šio kambario? Jūs esate vienintelis žmogus jame. Jei išeisite, niekas negalės prisijungti ateityje, įskaitant Jus." + "Ar tikrai norite išeiti iš šio kambario? Šis kambarys nėra viešas ir negalėsite vėl prisijungti be kvietimo." + "Ar tikrai norite išeiti iš kambario?" + diff --git a/features/leaveroom/api/src/main/res/values-pt-rBR/translations.xml b/features/leaveroom/api/src/main/res/values-pt-rBR/translations.xml index bb4f35d07f..b55010ad80 100644 --- a/features/leaveroom/api/src/main/res/values-pt-rBR/translations.xml +++ b/features/leaveroom/api/src/main/res/values-pt-rBR/translations.xml @@ -1,5 +1,6 @@ + "Tem certeza de que deseja sair dessa conversa? Essa conversa não é pública e você não poderá entrar novamente sem um convite." "Tem certeza de que deseja sair desta sala? Você é a única pessoa aqui. Se você sair, ninguém poderá ingressar no futuro, inclusive você." "Tem certeza de que deseja sair desta sala? Esta sala não é pública e você não poderá entrar novamente sem um convite." "Tem certeza de que deseja sair da sala?" diff --git a/features/lockscreen/impl/src/main/res/values-cy/translations.xml b/features/lockscreen/impl/src/main/res/values-cy/translations.xml new file mode 100644 index 0000000000..5e7217a738 --- /dev/null +++ b/features/lockscreen/impl/src/main/res/values-cy/translations.xml @@ -0,0 +1,5 @@ + + + "Wedi anghofio\'ch PIN?" + "Cadarnhau eich PIN" + diff --git a/features/lockscreen/impl/src/main/res/values-lt/translations.xml b/features/lockscreen/impl/src/main/res/values-lt/translations.xml new file mode 100644 index 0000000000..b6b5eaa619 --- /dev/null +++ b/features/lockscreen/impl/src/main/res/values-lt/translations.xml @@ -0,0 +1,4 @@ + + + "Atsijungiama…" + diff --git a/features/login/impl/src/main/kotlin/io/element/android/features/login/impl/util/Util.kt b/features/login/impl/src/main/kotlin/io/element/android/features/login/impl/util/Util.kt index 6c10faa05b..36ee64c600 100644 --- a/features/login/impl/src/main/kotlin/io/element/android/features/login/impl/util/Util.kt +++ b/features/login/impl/src/main/kotlin/io/element/android/features/login/impl/util/Util.kt @@ -9,11 +9,11 @@ package io.element.android.features.login.impl.util import android.content.Context import android.content.Intent -import android.net.Uri +import androidx.core.net.toUri import io.element.android.appconfig.AuthenticationConfig import io.element.android.libraries.core.data.tryOrNull fun openLearnMorePage(context: Context) { - val intent = Intent(Intent.ACTION_VIEW, Uri.parse(AuthenticationConfig.SLIDING_SYNC_READ_MORE_URL)) + val intent = Intent(Intent.ACTION_VIEW, AuthenticationConfig.SLIDING_SYNC_READ_MORE_URL.toUri()) tryOrNull { context.startActivity(intent) } } diff --git a/features/login/impl/src/main/kotlin/io/element/android/features/login/impl/web/WebClientUrlForAuthenticationRetriever.kt b/features/login/impl/src/main/kotlin/io/element/android/features/login/impl/web/WebClientUrlForAuthenticationRetriever.kt index a5d9ec754a..3793f3a53b 100644 --- a/features/login/impl/src/main/kotlin/io/element/android/features/login/impl/web/WebClientUrlForAuthenticationRetriever.kt +++ b/features/login/impl/src/main/kotlin/io/element/android/features/login/impl/web/WebClientUrlForAuthenticationRetriever.kt @@ -7,7 +7,7 @@ package io.element.android.features.login.impl.web -import android.net.Uri +import androidx.core.net.toUri import com.squareup.anvil.annotations.ContributesBinding import io.element.android.appconfig.AuthenticationConfig import io.element.android.features.login.impl.resolver.network.WellknownAPI @@ -43,7 +43,7 @@ class DefaultWebClientUrlForAuthenticationRetriever @Inject constructor( } val registrationHelperUrl = result.registrationHelperUrl return if (registrationHelperUrl != null) { - Uri.parse(registrationHelperUrl) + registrationHelperUrl.toUri() .buildUpon() .appendQueryParameter("hs_url", homeServerUrl) .build() diff --git a/features/login/impl/src/main/res/values-cy/translations.xml b/features/login/impl/src/main/res/values-cy/translations.xml new file mode 100644 index 0000000000..dc88dc54d0 --- /dev/null +++ b/features/login/impl/src/main/res/values-cy/translations.xml @@ -0,0 +1,15 @@ + + + "Arall" + "Creu cyfrif" + "Mae\'r cyfrif hwn wedi\'i gau." + "Croeso nôl!" + "Nid yw\'r cysylltiad yn ddiogel" + "Cafodd y mewngofnodi ei ddiddymu ar y ddyfais arall." + "Cais mewngofnodi wedi\'i ddiddymu" + "Gwrthodwyd y mewngofnodi" + "Heb gwblhau\'r mewngofnodi mewn pryd" + "Nid yw\'r cod QR yn cael ei gefnogi" + "Ceisiwch eto" + "Digwyddodd gwall annisgwyl. Ceisiwch eto." + diff --git a/features/login/impl/src/main/res/values-lt/translations.xml b/features/login/impl/src/main/res/values-lt/translations.xml new file mode 100644 index 0000000000..dcc959242b --- /dev/null +++ b/features/login/impl/src/main/res/values-lt/translations.xml @@ -0,0 +1,27 @@ + + + "Keisti paskyros teikėją" + "Čia bus saugomi Jūsų pokalbiai - panašiai kaip el. pašto paslaugų teikėjas saugo Jūsų el. laiškus." + "Čia bus saugomi Jūsų pokalbiai - panašiai kaip el. pašto paslaugų teikėjas saugo Jūsų el. laiškus." + "Keisti paskyros teikėją" + "Nepavyko pasiekti šio serverio. Patikrinkite, ar teisingai įvedėte serverio URL. Jei URL yra teisingas, susisiekite su serverio administracija dėl tolimesnės pagalbos." + "Šiuo metu šis serveris nepalaiko slenkančios sinchronizacijos (sliding sync)." + "Serverio URL" + "Galite prisijungti tik prie serverio, palaikančio slenkančią sinchronizaciją (sliding sync). Jūsų serverio administracija turėtų ją sukonfigūruoti. %1$s" + "Koks yra Jūsų serverio adresas?" + "Sukurti paskyrą" + "Ši paskyra buvo išjungta." + "Neteisingas vartotojo vardas ir (arba) slaptažodis" + "Tai nėra tinkamas vartotojo vardas. Reikalingas formatas: \'@vartotojas:serveris.org\'" + "Pasirinktas serveris nepalaiko slaptažodžio ar OIDC prisijungimo. Susisiekite su serverio administracija arba pasirinkite kitą serverį." + "Įveskite savo duomenis" + "Matrix yra atviras tinklas, skirtas saugiam, decentralizuotam bendravimui." + "Sveiki sugrįžę!" + "Prisijungti prie %1$s" + "Keisti paskyros teikėją" + "Privatus serveris “Element” darbuotojams." + "Matrix yra atviras tinklas, skirtas saugiam, decentralizuotam bendravimui." + "Čia bus saugomi Jūsų pokalbiai - panašiai kaip el. pašto paslaugų teikėjas saugo Jūsų el. laiškus." + "Jūs ruošiatės prisijungti prie %1$s" + "Jūs ruošiatės susikurti paskyrą %1$s" + 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 3accfb170e..1ab5de35c9 100644 --- a/features/login/impl/src/main/res/values-nb/translations.xml +++ b/features/login/impl/src/main/res/values-nb/translations.xml @@ -55,6 +55,7 @@ Prøv å logge på manuelt, eller skann QR-koden med en annen enhet." "Kontotilbyderen din støtter ikke %1$s." "%1$s støttes ikke" "Klar til å skanne" + "Åpne %1$s på en datamaskin" "Klikk på avataren din" "Velg %1$s" "«Koble til ny enhet»" 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 ec80fa9cdb..d4702ed3d8 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 @@ -23,6 +23,7 @@ "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\'" + "Este servidor está configurado para usar tokens de atualização. Eles não são suportados ao usar login baseado em senha." "O servidor selecionado não suporta senha ou login no OIDC. Entre em contato com o administrador ou escolha outro servidor." "Insira seus dados" "A Matrix é uma rede aberta para comunicação segura e descentralizada." diff --git a/features/logout/impl/src/main/res/values-cy/translations.xml b/features/logout/impl/src/main/res/values-cy/translations.xml new file mode 100644 index 0000000000..6a915509b2 --- /dev/null +++ b/features/logout/impl/src/main/res/values-cy/translations.xml @@ -0,0 +1,6 @@ + + + "Allgofnodi" + "Allgofnodi" + "Allgofnodi" + diff --git a/features/logout/impl/src/main/res/values-lt/translations.xml b/features/logout/impl/src/main/res/values-lt/translations.xml new file mode 100644 index 0000000000..27bfab2007 --- /dev/null +++ b/features/logout/impl/src/main/res/values-lt/translations.xml @@ -0,0 +1,5 @@ + + + "Ar tikrai norite atsijungti?" + "Atsijungiama…" + diff --git a/features/logout/impl/src/main/res/values-pt-rBR/translations.xml b/features/logout/impl/src/main/res/values-pt-rBR/translations.xml index d5787232bf..b12a2aa470 100644 --- a/features/logout/impl/src/main/res/values-pt-rBR/translations.xml +++ b/features/logout/impl/src/main/res/values-pt-rBR/translations.xml @@ -4,10 +4,15 @@ "Sair" "Sair" "Saindo…" + "Você está prestes a sair da sua última sessão. Se você sair agora, perderá o acesso às suas mensagens criptografadas." "Você desativou o backup" + "O backup das suas chaves ainda estava sendo feito quando você ficou off-line. Reconecte-se para que você possa fazer o backup de suas chaves antes de sair." "O backup das suas chaves ainda está em andamento" + "Aguarde até que isso seja concluído antes de sair." "O backup das suas chaves ainda está em andamento" "Sair" + "Você está prestes a sair da sua última sessão. Se você sair agora, perderá o acesso às suas mensagens criptografadas." "A recuperação não está configurada" + "Você está prestes a sair da sua última sessão. Se você sair agora, poderá perder o acesso às suas mensagens criptografadas." "Você salvou sua chave de recuperação?" 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 87134ac7d0..948b8c3cb3 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 @@ -363,7 +363,9 @@ private fun MessagesViewContent( }, content = { paddingValues -> Box(modifier = Modifier.padding(paddingValues)) { - val scrollBehavior = PinnedMessagesBannerViewDefaults.rememberExitOnScrollBehavior() + val scrollBehavior = PinnedMessagesBannerViewDefaults.rememberScrollBehavior( + pinnedMessagesCount = state.pinnedMessagesBannerState.pinnedMessagesCount(), + ) TimelineView( state = state.timelineState, timelineProtectionState = state.timelineProtectionState, diff --git a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/actionlist/ActionListView.kt b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/actionlist/ActionListView.kt index ba58d326e2..8eb4bb8554 100644 --- a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/actionlist/ActionListView.kt +++ b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/actionlist/ActionListView.kt @@ -39,6 +39,8 @@ import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.res.stringResource import androidx.compose.ui.semantics.clearAndSetSemantics import androidx.compose.ui.semantics.contentDescription +import androidx.compose.ui.semantics.semantics +import androidx.compose.ui.semantics.traversalIndex import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.tooling.preview.PreviewParameter @@ -188,6 +190,7 @@ private fun ActionListViewContent( modifier = Modifier .fillMaxWidth() .padding(horizontal = 16.dp) + .clearAndSetSemantics {}, ) if (target.event.messageShield != null) { MessageShieldView( @@ -347,12 +350,21 @@ private fun EmojiReactionsRow( ) for (emoji in defaultEmojis) { val isHighlighted = highlightedEmojis.contains(emoji) - EmojiButton(emoji, isHighlighted, onEmojiReactionClick) + EmojiButton( + modifier = Modifier + // Make it appear after the more useful actions for the accessibility service + .semantics { + traversalIndex = 1f + }, + emoji = emoji, + isHighlighted = isHighlighted, + onClick = onEmojiReactionClick + ) } Box( modifier = Modifier .size(48.dp), - contentAlignment = Alignment.Center + contentAlignment = Alignment.Center, ) { Icon( imageVector = CompoundIcons.ReactionAdd(), @@ -366,6 +378,10 @@ private fun EmojiReactionsRow( indication = ripple(bounded = false, radius = emojiRippleRadius), interactionSource = remember { MutableInteractionSource() } ) + // Make it appear after the more useful actions for the accessibility service + .semantics { + traversalIndex = 1f + } ) } } @@ -413,6 +429,7 @@ private fun EmojiButton( emoji: String, isHighlighted: Boolean, onClick: (String) -> Unit, + modifier: Modifier = Modifier, ) { val backgroundColor = if (isHighlighted) { ElementTheme.colors.bgActionPrimaryRest @@ -425,10 +442,16 @@ private fun EmojiButton( stringResource(id = CommonStrings.a11y_react_with, emoji) } Box( - modifier = Modifier + modifier = modifier .size(48.dp) .background(backgroundColor, CircleShape) - .clearAndSetSemantics { + .clickable( + enabled = true, + onClick = { onClick(emoji) }, + indication = ripple(bounded = false, radius = emojiRippleRadius), + interactionSource = remember { MutableInteractionSource() } + ) + .semantics { contentDescription = description }, contentAlignment = Alignment.Center @@ -436,13 +459,6 @@ private fun EmojiButton( Text( emoji, style = ElementTheme.typography.fontBodyLgRegular.copy(fontSize = 24.dp.toSp(), color = Color.White), - modifier = Modifier - .clickable( - enabled = true, - onClick = { onClick(emoji) }, - indication = ripple(bounded = false, radius = emojiRippleRadius), - interactionSource = remember { MutableInteractionSource() } - ) ) } } 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 index e72e094a5e..02d009d2ce 100644 --- 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 @@ -48,6 +48,7 @@ internal fun DisabledComposerView( IconColorButton( onClick = {}, imageVector = CompoundIcons.Plus(), + contentDescription = null, iconColorButtonStyle = IconColorButtonStyle.Disabled, ) diff --git a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/pinned/banner/PinnedMessagesBannerView.kt b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/pinned/banner/PinnedMessagesBannerView.kt index dcbc0695b2..aef0848b1e 100644 --- a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/pinned/banner/PinnedMessagesBannerView.kt +++ b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/pinned/banner/PinnedMessagesBannerView.kt @@ -265,7 +265,7 @@ internal interface PinnedMessagesBannerViewScrollBehavior { internal object PinnedMessagesBannerViewDefaults { @Composable - fun rememberExitOnScrollBehavior(): PinnedMessagesBannerViewScrollBehavior = remember { + fun rememberScrollBehavior(pinnedMessagesCount: Int): PinnedMessagesBannerViewScrollBehavior = remember(pinnedMessagesCount) { ExitOnScrollBehavior() } } diff --git a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/TimelineView.kt b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/TimelineView.kt index 7dea7c6696..6e677e5984 100644 --- a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/TimelineView.kt +++ b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/TimelineView.kt @@ -8,7 +8,6 @@ package io.element.android.features.messages.impl.timeline import android.view.HapticFeedbackConstants -import android.view.accessibility.AccessibilityManager import androidx.compose.animation.AnimatedVisibility import androidx.compose.animation.core.tween import androidx.compose.animation.fadeIn @@ -75,6 +74,7 @@ import io.element.android.libraries.matrix.api.timeline.Timeline import io.element.android.libraries.testtags.TestTags import io.element.android.libraries.testtags.testTag import io.element.android.libraries.ui.strings.CommonStrings +import io.element.android.libraries.ui.utils.time.isTalkbackActive import io.element.android.wysiwyg.link.Link import kotlinx.coroutines.ExperimentalCoroutinesApi import kotlinx.coroutines.FlowPreview @@ -126,10 +126,7 @@ fun TimelineView( val context = LocalContext.current val view = LocalView.current // Disable reverse layout when TalkBack is enabled to avoid incorrect ordering issues seen in the current Compose UI version - val useReverseLayout = remember { - val accessibilityManager = context.getSystemService(AccessibilityManager::class.java) - accessibilityManager.isTouchExplorationEnabled.not() - } + val useReverseLayout = !isTalkbackActive() fun inReplyToClick(eventId: EventId) { state.eventSink(TimelineEvents.FocusOnEvent(eventId)) @@ -159,7 +156,7 @@ fun TimelineView( .testTag(TestTags.timeline), state = lazyListState, reverseLayout = useReverseLayout, - contentPadding = PaddingValues(vertical = 8.dp), + contentPadding = PaddingValues(top = 64.dp, bottom = 8.dp), ) { items( items = state.timelineItems, diff --git a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/components/MessageEventBubble.kt b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/components/MessageEventBubble.kt index c5f243a18a..ad5337031c 100644 --- a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/components/MessageEventBubble.kt +++ b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/components/MessageEventBubble.kt @@ -49,6 +49,7 @@ import io.element.android.libraries.designsystem.theme.messageFromMeBackground import io.element.android.libraries.designsystem.theme.messageFromOtherBackground import io.element.android.libraries.testtags.TestTags import io.element.android.libraries.testtags.testTag +import io.element.android.libraries.ui.utils.time.isTalkbackActive private val BUBBLE_RADIUS = 12.dp private val avatarRadius = AvatarSize.TimelineSender.dp / 2 @@ -95,6 +96,17 @@ fun MessageEventBubble( } } + val clickableModifier = if (isTalkbackActive()) { + Modifier + } else { + Modifier.combinedClickable( + onClick = onClick, + onLongClick = onLongClick, + indication = ripple(), + interactionSource = interactionSource + ) + } + // Ignore state.isHighlighted for now, we need a design decision on it. val backgroundBubbleColor = when { state.isMine -> ElementTheme.colors.messageFromMeBackground @@ -137,12 +149,7 @@ fun MessageEventBubble( .toDp() ) .clip(bubbleShape) - .combinedClickable( - onClick = onClick, - onLongClick = onLongClick, - indication = ripple(), - interactionSource = interactionSource - ), + .then(clickableModifier), color = backgroundBubbleColor, shape = bubbleShape, content = content diff --git a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/components/TimelineEventTimestampView.kt b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/components/TimelineEventTimestampView.kt index 9a467eeea7..a29c13ccd5 100644 --- a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/components/TimelineEventTimestampView.kt +++ b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/components/TimelineEventTimestampView.kt @@ -18,6 +18,8 @@ import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.res.stringResource +import androidx.compose.ui.semantics.invisibleToUser +import androidx.compose.ui.semantics.semantics import androidx.compose.ui.tooling.preview.PreviewParameter import androidx.compose.ui.unit.dp import io.element.android.compound.theme.ElementTheme @@ -77,7 +79,8 @@ fun TimelineEventTimestampView( .size(15.dp, 18.dp) .clickable(isVerifiedUserSendFailure) { eventSink(TimelineEvents.ComputeVerifiedUserSendFailure(event)) - }, + } + .semantics { invisibleToUser() } ) } @@ -91,7 +94,8 @@ fun TimelineEventTimestampView( .size(15.dp) .clickable { eventSink(TimelineEvents.ShowShieldDialog(shield)) - }, + } + .semantics { invisibleToUser() }, tint = shield.toIconColor(), ) Spacer(modifier = Modifier.width(4.dp)) diff --git a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/components/TimelineItemEventRow.kt b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/components/TimelineItemEventRow.kt index 1b0a4df559..f3b890cb18 100644 --- a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/components/TimelineItemEventRow.kt +++ b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/components/TimelineItemEventRow.kt @@ -37,13 +37,12 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.draw.clip import androidx.compose.ui.platform.LocalViewConfiguration import androidx.compose.ui.platform.ViewConfiguration -import androidx.compose.ui.platform.testTag import androidx.compose.ui.res.stringResource import androidx.compose.ui.semantics.clearAndSetSemantics -import androidx.compose.ui.semantics.contentDescription import androidx.compose.ui.semantics.invisibleToUser +import androidx.compose.ui.semantics.isTraversalGroup import androidx.compose.ui.semantics.semantics -import androidx.compose.ui.semantics.testTag +import androidx.compose.ui.semantics.traversalIndex import androidx.compose.ui.unit.DpOffset import androidx.compose.ui.unit.IntOffset import androidx.compose.ui.unit.dp @@ -96,6 +95,7 @@ import io.element.android.libraries.matrix.ui.messages.sender.SenderNameMode import io.element.android.libraries.testtags.TestTags import io.element.android.libraries.testtags.testTag import io.element.android.libraries.ui.strings.CommonStrings +import io.element.android.libraries.ui.utils.time.isTalkbackActive import io.element.android.wysiwyg.link.Link import kotlinx.coroutines.launch import kotlin.math.abs @@ -245,7 +245,7 @@ fun TimelineItemEventRow( ), renderReadReceipts = renderReadReceipts, onReadReceiptsClick = { onReadReceiptClick(event) }, - modifier = Modifier.padding(top = 4.dp), + modifier = Modifier.padding(top = 4.dp) ) } } @@ -595,7 +595,10 @@ private fun MessageEventBubbleContent( timestampPosition = timestampPosition, eventSink = eventSink, canShrinkContent = canShrinkContent, - modifier = timestampLayoutModifier, + modifier = timestampLayoutModifier.semantics(mergeDescendants = false) { + isTraversalGroup = true + traversalIndex = -1f + }, content = { onContentLayoutChange -> eventContentView(contentModifier, onContentLayoutChange) } @@ -607,17 +610,23 @@ private fun MessageEventBubbleContent( val inReplyToModifier = Modifier .padding(top = topPadding, start = 8.dp, end = 8.dp) .clip(RoundedCornerShape(6.dp)) - // FIXME when a node is clickable, its contents won't be added to the semantics tree of its parent - .clickable(onClick = inReplyToClick) + + val talkbackCompatModifier = if (isTalkbackActive()) { + // Use z-index to make the replied to text being read after the message + // Usually, you'd use traversalIndex for that, but it's not working for some reason + inReplyToModifier.zIndex(1f) + } else { + inReplyToModifier.clickable(onClick = inReplyToClick) + } InReplyToView( inReplyTo = inReplyTo, hideImage = timelineProtectionState.hideMediaContent(inReplyTo.eventId()), - modifier = inReplyToModifier, + modifier = talkbackCompatModifier, ) } if (inReplyToDetails != null) { // Use SubComposeLayout only if necessary as it can have consequences on the performance. - EqualWidthColumn(modifier = modifier, spacing = 8.dp) { + EqualWidthColumn(spacing = 8.dp) { threadDecoration() inReplyTo(inReplyToDetails) contentWithTimestamp() @@ -651,9 +660,7 @@ private fun MessageEventBubbleContent( paddingBehaviour = paddingBehaviour, inReplyToDetails = event.inReplyTo, canShrinkContent = event.content is TimelineItemVoiceContent, - modifier = bubbleModifier.semantics(mergeDescendants = true) { - contentDescription = event.safeSenderName - } + modifier = bubbleModifier, ) } diff --git a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/components/TimelineItemGroupedEventsRow.kt b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/components/TimelineItemGroupedEventsRow.kt index 112b3dbea6..8f868370b3 100644 --- a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/components/TimelineItemGroupedEventsRow.kt +++ b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/components/TimelineItemGroupedEventsRow.kt @@ -14,6 +14,8 @@ import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.saveable.rememberSaveable import androidx.compose.ui.Modifier import androidx.compose.ui.res.pluralStringResource +import androidx.compose.ui.semantics.clearAndSetSemantics +import androidx.compose.ui.semantics.contentDescription import io.element.android.features.messages.impl.R import io.element.android.features.messages.impl.timeline.TimelineEvents import io.element.android.features.messages.impl.timeline.TimelineRoomInfo @@ -25,6 +27,7 @@ import io.element.android.features.messages.impl.timeline.components.layout.Cont import io.element.android.features.messages.impl.timeline.components.receipt.ReadReceiptViewState import io.element.android.features.messages.impl.timeline.components.receipt.TimelineItemReadReceiptView import io.element.android.features.messages.impl.timeline.model.TimelineItem +import io.element.android.features.messages.impl.timeline.model.event.TimelineItemStateContent import io.element.android.features.messages.impl.timeline.protection.TimelineProtectionEvent import io.element.android.features.messages.impl.timeline.protection.TimelineProtectionState import io.element.android.features.messages.impl.timeline.protection.aTimelineProtectionState @@ -140,7 +143,16 @@ private fun TimelineItemGroupedEventsRowContent( }, ) { Column(modifier = modifier.animateContentSize()) { + val groupedEventsTitle = pluralStringResource( + id = R.plurals.screen_room_timeline_state_changes, + count = timelineItem.events.size, + timelineItem.events.size + ) GroupHeaderView( + modifier = Modifier.clearAndSetSemantics { + val groupedEventsContent = timelineItem.events.reversed().joinToString(separator = "\n") { (it.content as TimelineItemStateContent).body } + contentDescription = groupedEventsTitle + groupedEventsContent + }, text = pluralStringResource( id = R.plurals.screen_room_timeline_state_changes, count = timelineItem.events.size, diff --git a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/components/TimelineItemReactionsView.kt b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/components/TimelineItemReactionsView.kt index 8c72ae7710..02cfa39830 100644 --- a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/components/TimelineItemReactionsView.kt +++ b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/components/TimelineItemReactionsView.kt @@ -16,6 +16,8 @@ import androidx.compose.runtime.setValue import androidx.compose.ui.Modifier import androidx.compose.ui.platform.LocalLayoutDirection import androidx.compose.ui.res.stringResource +import androidx.compose.ui.semantics.invisibleToUser +import androidx.compose.ui.semantics.semantics import androidx.compose.ui.unit.LayoutDirection import androidx.compose.ui.unit.dp import io.element.android.features.messages.impl.R @@ -40,7 +42,9 @@ fun TimelineItemReactionsView( ) { var expanded: Boolean by rememberSaveable { mutableStateOf(false) } TimelineItemReactionsView( - modifier = modifier, + modifier = modifier.semantics { + invisibleToUser() + }, reactions = reactionsState.reactions, userCanSendReaction = userCanSendReaction, expanded = expanded, diff --git a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/components/TimelineItemRow.kt b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/components/TimelineItemRow.kt index 8595364f2c..88b19c43fe 100644 --- a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/components/TimelineItemRow.kt +++ b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/components/TimelineItemRow.kt @@ -7,6 +7,8 @@ package io.element.android.features.messages.impl.timeline.components +import androidx.compose.foundation.ExperimentalFoundationApi +import androidx.compose.foundation.combinedClickable import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height @@ -17,6 +19,9 @@ import androidx.compose.ui.draw.drawWithCache import androidx.compose.ui.geometry.Offset import androidx.compose.ui.geometry.Size import androidx.compose.ui.graphics.Brush +import androidx.compose.ui.res.stringResource +import androidx.compose.ui.semantics.contentDescription +import androidx.compose.ui.semantics.semantics import androidx.compose.ui.unit.Dp import androidx.compose.ui.unit.dp import io.element.android.compound.theme.ElementTheme @@ -28,6 +33,7 @@ import io.element.android.features.messages.impl.timeline.model.TimelineItem import io.element.android.features.messages.impl.timeline.model.event.TimelineItemCallNotifyContent import io.element.android.features.messages.impl.timeline.model.event.TimelineItemLegacyCallInviteContent import io.element.android.features.messages.impl.timeline.model.event.TimelineItemStateContent +import io.element.android.features.messages.impl.timeline.model.event.TimelineItemVoiceContent import io.element.android.features.messages.impl.timeline.protection.TimelineProtectionEvent import io.element.android.features.messages.impl.timeline.protection.TimelineProtectionState import io.element.android.libraries.designsystem.preview.ElementPreview @@ -37,8 +43,12 @@ import io.element.android.libraries.designsystem.theme.LocalBuildMeta import io.element.android.libraries.designsystem.theme.highlightedMessageBackgroundColor import io.element.android.libraries.matrix.api.core.EventId import io.element.android.libraries.matrix.api.core.UserId +import io.element.android.libraries.ui.strings.CommonStrings +import io.element.android.libraries.ui.utils.time.isTalkbackActive import io.element.android.wysiwyg.link.Link +import kotlin.time.DurationUnit +@OptIn(ExperimentalFoundationApi::class) @Composable internal fun TimelineItemRow( timelineItem: TimelineItem, @@ -120,7 +130,28 @@ internal fun TimelineItemRow( ) } else -> { + val a11yVoiceMessage = stringResource(CommonStrings.a11y_voice_message) TimelineItemEventRow( + modifier = Modifier + .semantics(mergeDescendants = true) { + contentDescription = if (timelineItem.content is TimelineItemVoiceContent) { + val voiceMessageText = String.format(a11yVoiceMessage, timelineItem.content.duration.toString(DurationUnit.MINUTES)) + "${timelineItem.safeSenderName}, $voiceMessageText" + } else { + timelineItem.safeSenderName + } + } + // Custom clickable that applies over the whole item for accessibility + .then( + if (isTalkbackActive()) { + Modifier.combinedClickable( + onClick = { onContentClick(timelineItem) }, + onLongClick = { onLongClick(timelineItem) } + ) + } else { + Modifier + } + ), event = timelineItem, timelineRoomInfo = timelineRoomInfo, renderReadReceipts = renderReadReceipts, diff --git a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/components/event/TimelineItemFileView.kt b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/components/event/TimelineItemFileView.kt index 06e0ea6616..86218b8e25 100644 --- a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/components/event/TimelineItemFileView.kt +++ b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/components/event/TimelineItemFileView.kt @@ -11,6 +11,7 @@ import androidx.compose.foundation.layout.size import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.compose.ui.draw.rotate +import androidx.compose.ui.res.stringResource import androidx.compose.ui.tooling.preview.PreviewParameter import androidx.compose.ui.unit.dp import io.element.android.compound.theme.ElementTheme @@ -21,6 +22,7 @@ import io.element.android.libraries.designsystem.icons.CompoundDrawables 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.ui.strings.CommonStrings @Composable fun TimelineItemFileView( @@ -37,7 +39,7 @@ fun TimelineItemFileView( icon = { Icon( resourceId = CompoundDrawables.ic_compound_attachment, - contentDescription = null, + contentDescription = stringResource(CommonStrings.common_file), tint = ElementTheme.colors.iconPrimary, modifier = Modifier .size(16.dp) diff --git a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/components/event/TimelineItemImageView.kt b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/components/event/TimelineItemImageView.kt index b9e512cd9c..680489d3bb 100644 --- a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/components/event/TimelineItemImageView.kt +++ b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/components/event/TimelineItemImageView.kt @@ -33,8 +33,6 @@ import androidx.compose.ui.graphics.Color import androidx.compose.ui.layout.ContentScale import androidx.compose.ui.platform.LocalInspectionMode import androidx.compose.ui.res.stringResource -import androidx.compose.ui.semantics.contentDescription -import androidx.compose.ui.semantics.semantics import androidx.compose.ui.tooling.preview.PreviewParameter import androidx.compose.ui.unit.dp import coil3.compose.AsyncImage @@ -55,6 +53,7 @@ import io.element.android.libraries.designsystem.preview.ElementPreview import io.element.android.libraries.designsystem.preview.PreviewsDayNight import io.element.android.libraries.textcomposer.ElementRichTextEditorStyle import io.element.android.libraries.ui.strings.CommonStrings +import io.element.android.libraries.ui.utils.time.isTalkbackActive import io.element.android.wysiwyg.compose.EditorStyledText import io.element.android.wysiwyg.link.Link @@ -71,10 +70,9 @@ fun TimelineItemImageView( onContentLayoutChange: (ContentAvoidingLayoutData) -> Unit, modifier: Modifier = Modifier, ) { - val description = stringResource(CommonStrings.common_image) - Column( - modifier = modifier.semantics { contentDescription = description }, - ) { + val a11yLabel = stringResource(CommonStrings.common_image) + val description = content.caption?.let { "$a11yLabel: $it" } ?: a11yLabel + Column(modifier = modifier) { val containerModifier = if (content.showCaption) { Modifier.clip(RoundedCornerShape(10.dp)) } else { @@ -93,7 +91,16 @@ fun TimelineItemImageView( modifier = Modifier .fillMaxWidth() .then(if (isLoaded) Modifier.background(Color.White) else Modifier) - .then(if (onContentClick != null) Modifier.combinedClickable(onClick = onContentClick, onLongClick = onLongClick) else Modifier), + .then( + if (!isTalkbackActive() && onContentClick != null) { + Modifier.combinedClickable( + onClick = onContentClick, + onLongClick = onLongClick + ) + } else { + Modifier + } + ), model = content.thumbnailMediaRequestData, contentScale = ContentScale.Fit, alignment = Alignment.Center, diff --git a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/components/event/TimelineItemVideoView.kt b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/components/event/TimelineItemVideoView.kt index 6855849793..4ac09f106d 100644 --- a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/components/event/TimelineItemVideoView.kt +++ b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/components/event/TimelineItemVideoView.kt @@ -36,7 +36,7 @@ import androidx.compose.ui.graphics.ColorFilter import androidx.compose.ui.layout.ContentScale import androidx.compose.ui.platform.LocalInspectionMode import androidx.compose.ui.res.stringResource -import androidx.compose.ui.semantics.contentDescription +import androidx.compose.ui.semantics.invisibleToUser import androidx.compose.ui.semantics.semantics import androidx.compose.ui.tooling.preview.PreviewParameter import androidx.compose.ui.unit.dp @@ -63,6 +63,7 @@ import io.element.android.libraries.matrix.ui.media.MAX_THUMBNAIL_WIDTH import io.element.android.libraries.matrix.ui.media.MediaRequestData import io.element.android.libraries.textcomposer.ElementRichTextEditorStyle import io.element.android.libraries.ui.strings.CommonStrings +import io.element.android.libraries.ui.utils.time.isTalkbackActive import io.element.android.wysiwyg.compose.EditorStyledText import io.element.android.wysiwyg.link.Link @@ -79,10 +80,10 @@ fun TimelineItemVideoView( onContentLayoutChange: (ContentAvoidingLayoutData) -> Unit, modifier: Modifier = Modifier, ) { - val description = stringResource(CommonStrings.common_video) - Column( - modifier = modifier.semantics { contentDescription = description } - ) { + val isTalkbackActive = isTalkbackActive() + val a11yLabel = stringResource(CommonStrings.common_video) + val description = content.caption?.let { "$a11yLabel: $it" } ?: a11yLabel + Column(modifier = modifier) { val containerModifier = if (content.showCaption) { Modifier .padding(top = 6.dp) @@ -104,7 +105,16 @@ fun TimelineItemVideoView( modifier = Modifier .fillMaxWidth() .then(if (isLoaded) Modifier.background(Color.White) else Modifier) - .then(if (onContentClick != null) Modifier.combinedClickable(onClick = onContentClick, onLongClick = onLongClick) else Modifier), + .then( + if (!isTalkbackActive && onContentClick != null) { + Modifier.combinedClickable( + onClick = onContentClick, + onLongClick = onLongClick + ) + } else { + Modifier + } + ), model = MediaRequestData( source = content.thumbnailSource, kind = MediaRequestData.Kind.Thumbnail( @@ -126,6 +136,7 @@ fun TimelineItemVideoView( imageVector = CompoundIcons.PlaySolid(), contentDescription = stringResource(id = CommonStrings.a11y_play), colorFilter = ColorFilter.tint(Color.White), + modifier = Modifier.semantics { invisibleToUser() } ) } } diff --git a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/components/event/TimelineItemVoiceView.kt b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/components/event/TimelineItemVoiceView.kt index 1d357bdd2f..02d08a8f43 100644 --- a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/components/event/TimelineItemVoiceView.kt +++ b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/components/event/TimelineItemVoiceView.kt @@ -27,10 +27,11 @@ import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.vector.ImageVector import androidx.compose.ui.layout.onSizeChanged -import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.res.stringResource +import androidx.compose.ui.semantics.clearAndSetSemantics import androidx.compose.ui.semantics.contentDescription -import androidx.compose.ui.semantics.semantics +import androidx.compose.ui.semantics.disabled +import androidx.compose.ui.semantics.onClick import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.tooling.preview.PreviewParameter import androidx.compose.ui.tooling.preview.PreviewParameterProvider @@ -40,7 +41,6 @@ import io.element.android.compound.tokens.generated.CompoundIcons import io.element.android.features.messages.impl.timeline.components.layout.ContentAvoidingLayoutData import io.element.android.features.messages.impl.timeline.model.event.TimelineItemVoiceContent import io.element.android.features.messages.impl.timeline.model.event.TimelineItemVoiceContentProvider -import io.element.android.libraries.androidutils.accessibility.isScreenReaderEnabled import io.element.android.libraries.designsystem.components.media.WaveformPlaybackView import io.element.android.libraries.designsystem.preview.ElementPreview import io.element.android.libraries.designsystem.preview.PreviewsDayNight @@ -49,6 +49,7 @@ import io.element.android.libraries.designsystem.theme.components.Icon import io.element.android.libraries.designsystem.theme.components.IconButton import io.element.android.libraries.designsystem.theme.components.Text import io.element.android.libraries.ui.strings.CommonStrings +import io.element.android.libraries.ui.utils.time.isTalkbackActive import io.element.android.libraries.voiceplayer.api.VoiceMessageEvents import io.element.android.libraries.voiceplayer.api.VoiceMessageState import io.element.android.libraries.voiceplayer.api.VoiceMessageStateProvider @@ -66,10 +67,27 @@ fun TimelineItemVoiceView( } val a11y = stringResource(CommonStrings.common_voice_message) + val a11yActionLabel = stringResource( + when (state.button) { + VoiceMessageState.Button.Play -> CommonStrings.a11y_play + VoiceMessageState.Button.Pause -> CommonStrings.a11y_pause + VoiceMessageState.Button.Downloading -> CommonStrings.common_downloading + VoiceMessageState.Button.Retry -> CommonStrings.action_retry + VoiceMessageState.Button.Disabled -> CommonStrings.error_unknown + } + ) Row( modifier = modifier - .semantics { + .clearAndSetSemantics { contentDescription = a11y + if (state.button == VoiceMessageState.Button.Disabled) { + disabled() + } else if (state.button in listOf(VoiceMessageState.Button.Play, VoiceMessageState.Button.Pause)) { + onClick(label = a11yActionLabel) { + playPause() + true + } + } } .onSizeChanged { onContentLayoutChange( @@ -81,12 +99,14 @@ fun TimelineItemVoiceView( }, verticalAlignment = Alignment.CenterVertically, ) { - when (state.button) { - VoiceMessageState.Button.Play -> PlayButton(onClick = ::playPause) - VoiceMessageState.Button.Pause -> PauseButton(onClick = ::playPause) - VoiceMessageState.Button.Downloading -> ProgressButton() - VoiceMessageState.Button.Retry -> RetryButton(onClick = ::playPause) - VoiceMessageState.Button.Disabled -> PlayButton(onClick = {}, enabled = false) + if (!isTalkbackActive()) { + when (state.button) { + VoiceMessageState.Button.Play -> PlayButton(onClick = ::playPause) + VoiceMessageState.Button.Pause -> PauseButton(onClick = ::playPause) + VoiceMessageState.Button.Downloading -> ProgressButton() + VoiceMessageState.Button.Retry -> RetryButton(onClick = ::playPause) + VoiceMessageState.Button.Disabled -> PlayButton(onClick = {}, enabled = false) + } } Spacer(Modifier.width(8.dp)) Text( @@ -97,13 +117,12 @@ fun TimelineItemVoiceView( overflow = TextOverflow.Ellipsis, ) Spacer(Modifier.width(8.dp)) - val context = LocalContext.current WaveformPlaybackView( showCursor = state.showCursor, playbackProgress = state.progress, waveform = content.waveform, modifier = Modifier.height(34.dp), - seekEnabled = !context.isScreenReaderEnabled(), + seekEnabled = !isTalkbackActive(), onSeek = { state.eventSink(VoiceMessageEvents.Seek(it)) }, ) } diff --git a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/components/receipt/TimelineItemReadReceiptView.kt b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/components/receipt/TimelineItemReadReceiptView.kt index 80d594d4d7..e7d80a9d6c 100644 --- a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/components/receipt/TimelineItemReadReceiptView.kt +++ b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/components/receipt/TimelineItemReadReceiptView.kt @@ -26,6 +26,7 @@ import androidx.compose.ui.res.pluralStringResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.semantics.clearAndSetSemantics import androidx.compose.ui.semantics.contentDescription +import androidx.compose.ui.semantics.invisibleToUser import androidx.compose.ui.semantics.testTag import androidx.compose.ui.tooling.preview.PreviewParameter import androidx.compose.ui.unit.dp @@ -56,7 +57,11 @@ fun TimelineItemReadReceiptView( ) { if (state.receipts.isNotEmpty()) { if (renderReadReceipts) { - ReadReceiptsRow(modifier = modifier) { + ReadReceiptsRow( + modifier = modifier.clearAndSetSemantics { + invisibleToUser() + } + ) { ReadReceiptsAvatars( receipts = state.receipts, modifier = Modifier diff --git a/features/messages/impl/src/main/res/values-cy/translations.xml b/features/messages/impl/src/main/res/values-cy/translations.xml new file mode 100644 index 0000000000..7d35b11de9 --- /dev/null +++ b/features/messages/impl/src/main/res/values-cy/translations.xml @@ -0,0 +1,24 @@ + + + "Gweithgareddau" + "Baneri" + "Bwyd a Diod" + "Anifeiliaid a Natur" + "Gwrthrychau" + "Wynebau Hapus a Phobl" + "Teithio a Llefydd" + "Symbolau" + "Rhwystro defnyddiwr" + "Camera" + "Cymryd llun" + "Atodiad" + "Lleoliad" + "Pôl" + "Rhowch wybod i\'r ystafell gyfan" + "Pawb" + "Dangos llai" + "Dangos llai" + "Dangos rhagor" + "Newydd" + "%1$s a %2$s" + diff --git a/features/messages/impl/src/main/res/values-lt/translations.xml b/features/messages/impl/src/main/res/values-lt/translations.xml new file mode 100644 index 0000000000..0b5c33adeb --- /dev/null +++ b/features/messages/impl/src/main/res/values-lt/translations.xml @@ -0,0 +1,28 @@ + + + "Veikla" + "Vėliavos" + "Maistas ir Gėrimai" + "Gyvūnai ir Gamta" + "Objektai" + "Šypsenėlės ir Žmonės" + "Kelionės ir Vietovės" + "Simboliai" + "Blokuoti vartotoją" + "Pažymėkite, jei norite paslėpti visas esamas ir būsimas šio vartotojo žinutes" + "Apie šią žinutę bus pranešta Jūsų serverio administracijai. Jie negalės perskaityti jokių užšifruotų žinučių." + "Skundo dėl šio turinio priežastis" + "Kamera" + "Fotografuoti" + "Įrašyti vaizdo įrašą" + "Priedas" + "Nuotraukų ir vaizdo įrašų biblioteka" + "Tai yra %1$s pradžia." + "Tai yra šio pokalbio pradžia." + "Naujų" + + "%1$d kambario pakeitimas" + "%1$d kambario pakeitimai" + "%1$d kambario pakeitimų" + + diff --git a/features/messages/impl/src/main/res/values-pt-rBR/translations.xml b/features/messages/impl/src/main/res/values-pt-rBR/translations.xml index 1c668ae3f6..fb7eaa3916 100644 --- a/features/messages/impl/src/main/res/values-pt-rBR/translations.xml +++ b/features/messages/impl/src/main/res/values-pt-rBR/translations.xml @@ -21,6 +21,7 @@ "Enquete" "Formatação de texto" "O histórico de mensagens não está disponível no momento." + "O histórico de mensagens não está disponível nesta sala. Verifique este dispositivo para ver seu histórico de mensagens." "Gostaria de convidá-los de volta?" "Você está sozinho neste chat" "Notificar a sala inteira" diff --git a/features/onboarding/impl/src/main/res/values-cy/translations.xml b/features/onboarding/impl/src/main/res/values-cy/translations.xml new file mode 100644 index 0000000000..f56f8f8a54 --- /dev/null +++ b/features/onboarding/impl/src/main/res/values-cy/translations.xml @@ -0,0 +1,4 @@ + + + "Creu cyfrif" + diff --git a/features/onboarding/impl/src/main/res/values-lt/translations.xml b/features/onboarding/impl/src/main/res/values-lt/translations.xml new file mode 100644 index 0000000000..1b1d332698 --- /dev/null +++ b/features/onboarding/impl/src/main/res/values-lt/translations.xml @@ -0,0 +1,8 @@ + + + "Prisijunkite rankiniu būdu" + "Prisijunkite naudodami QR kodą" + "Sukurti paskyrą" + "Sveiki atvykę į %1$s. Įkrautas greitumui ir paprastumui." + "Būkite savo elemente" + diff --git a/features/poll/impl/src/main/res/values-cy/translations.xml b/features/poll/impl/src/main/res/values-cy/translations.xml new file mode 100644 index 0000000000..372fca182f --- /dev/null +++ b/features/poll/impl/src/main/res/values-cy/translations.xml @@ -0,0 +1,10 @@ + + + "Ychwanegu dewis" + "Dyw eich newidiadau heb gael eu cadw. Ydych chi\'n siŵr eich bod am fynd nôl?" + "Creu Pôl" + "Dileu Pôl" + "Golygu pôl" + "Parhaus" + "Polau" + diff --git a/features/poll/impl/src/main/res/values-de/translations.xml b/features/poll/impl/src/main/res/values-de/translations.xml index 99520079e6..cfa9e14c5c 100644 --- a/features/poll/impl/src/main/res/values-de/translations.xml +++ b/features/poll/impl/src/main/res/values-de/translations.xml @@ -12,8 +12,8 @@ "Umfrage löschen" "Umfrage bearbeiten" "Keine laufenden Umfragen vorhanden." - "Keine vergangenen Umfragen vorhanden." + "Keine beendeten Umfragen vorhanden." "Aktuell" - "Vergangene" + "Vergangenheit" "Umfragen" diff --git a/features/poll/impl/src/main/res/values-nb/translations.xml b/features/poll/impl/src/main/res/values-nb/translations.xml index 29af6a274b..5e363ff4a2 100644 --- a/features/poll/impl/src/main/res/values-nb/translations.xml +++ b/features/poll/impl/src/main/res/values-nb/translations.xml @@ -14,5 +14,6 @@ "Finner ingen pågående avstemninger." "Kan ikke finne noen tidligere avstemninger." "Pågående" + "Fortid" "Avstemninger" diff --git a/features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/advanced/AdvancedSettingsEvents.kt b/features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/advanced/AdvancedSettingsEvents.kt index fabaf7afc5..fc78ae561a 100644 --- a/features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/advanced/AdvancedSettingsEvents.kt +++ b/features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/advanced/AdvancedSettingsEvents.kt @@ -7,16 +7,13 @@ package io.element.android.features.preferences.impl.advanced -import io.element.android.compound.theme.Theme import io.element.android.libraries.matrix.api.media.MediaPreviewValue sealed interface AdvancedSettingsEvents { data class SetDeveloperModeEnabled(val enabled: Boolean) : AdvancedSettingsEvents data class SetSharePresenceEnabled(val enabled: Boolean) : AdvancedSettingsEvents data class SetCompressMedia(val compress: Boolean) : AdvancedSettingsEvents - data object ChangeTheme : AdvancedSettingsEvents - data object CancelChangeTheme : AdvancedSettingsEvents - data class SetTheme(val theme: Theme) : AdvancedSettingsEvents + data class SetTheme(val theme: ThemeOption) : AdvancedSettingsEvents data class SetTimelineMediaPreviewValue(val value: MediaPreviewValue) : AdvancedSettingsEvents data class SetHideInviteAvatars(val value: Boolean) : AdvancedSettingsEvents } diff --git a/features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/advanced/AdvancedSettingsPresenter.kt b/features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/advanced/AdvancedSettingsPresenter.kt index 065c6fc553..41ac9bb0f4 100644 --- a/features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/advanced/AdvancedSettingsPresenter.kt +++ b/features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/advanced/AdvancedSettingsPresenter.kt @@ -9,11 +9,10 @@ package io.element.android.features.preferences.impl.advanced import androidx.compose.runtime.Composable import androidx.compose.runtime.collectAsState +import androidx.compose.runtime.derivedStateOf import androidx.compose.runtime.getValue -import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember import androidx.compose.runtime.rememberCoroutineScope -import androidx.compose.runtime.setValue import io.element.android.compound.theme.Theme import io.element.android.compound.theme.mapToTheme import io.element.android.libraries.architecture.Presenter @@ -39,11 +38,9 @@ class AdvancedSettingsPresenter @Inject constructor( val doesCompressMedia by remember { sessionPreferencesStore.doesCompressMedia() }.collectAsState(initial = true) - val theme by remember { + val theme = remember { appPreferencesStore.getThemeFlow().mapToTheme() }.collectAsState(initial = Theme.System) - var showChangeThemeDialog by remember { mutableStateOf(false) } - val hideInviteAvatars by remember { appPreferencesStore.getHideInviteAvatarsFlow() }.collectAsState(false) @@ -52,6 +49,16 @@ class AdvancedSettingsPresenter @Inject constructor( appPreferencesStore.getTimelineMediaPreviewValueFlow() }.collectAsState(initial = MediaPreviewValue.On) + val themeOption by remember { + derivedStateOf { + when (theme.value) { + Theme.System -> ThemeOption.System + Theme.Dark -> ThemeOption.Dark + Theme.Light -> ThemeOption.Light + } + } + } + fun handleEvents(event: AdvancedSettingsEvents) { when (event) { is AdvancedSettingsEvents.SetDeveloperModeEnabled -> localCoroutineScope.launch { @@ -63,11 +70,12 @@ class AdvancedSettingsPresenter @Inject constructor( is AdvancedSettingsEvents.SetCompressMedia -> localCoroutineScope.launch { sessionPreferencesStore.setCompressMedia(event.compress) } - AdvancedSettingsEvents.CancelChangeTheme -> showChangeThemeDialog = false - AdvancedSettingsEvents.ChangeTheme -> showChangeThemeDialog = true is AdvancedSettingsEvents.SetTheme -> localCoroutineScope.launch { - appPreferencesStore.setTheme(event.theme.name) - showChangeThemeDialog = false + when (event.theme) { + ThemeOption.System -> appPreferencesStore.setTheme(Theme.System.name) + ThemeOption.Dark -> appPreferencesStore.setTheme(Theme.Dark.name) + ThemeOption.Light -> appPreferencesStore.setTheme(Theme.Light.name) + } } is AdvancedSettingsEvents.SetHideInviteAvatars -> localCoroutineScope.launch { appPreferencesStore.setHideInviteAvatars(event.value) @@ -82,8 +90,7 @@ class AdvancedSettingsPresenter @Inject constructor( isDeveloperModeEnabled = isDeveloperModeEnabled, isSharePresenceEnabled = isSharePresenceEnabled, doesCompressMedia = doesCompressMedia, - theme = theme, - showChangeThemeDialog = showChangeThemeDialog, + theme = themeOption, hideInviteAvatars = hideInviteAvatars, timelineMediaPreviewValue = timelineMediaPreviewValue, eventSink = { handleEvents(it) } diff --git a/features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/advanced/AdvancedSettingsState.kt b/features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/advanced/AdvancedSettingsState.kt index 9f55036154..5b91c65f08 100644 --- a/features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/advanced/AdvancedSettingsState.kt +++ b/features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/advanced/AdvancedSettingsState.kt @@ -7,16 +7,33 @@ package io.element.android.features.preferences.impl.advanced -import io.element.android.compound.theme.Theme +import androidx.compose.runtime.Composable +import androidx.compose.ui.res.stringResource +import io.element.android.libraries.designsystem.components.preferences.DropdownOption import io.element.android.libraries.matrix.api.media.MediaPreviewValue +import io.element.android.libraries.ui.strings.CommonStrings data class AdvancedSettingsState( val isDeveloperModeEnabled: Boolean, val isSharePresenceEnabled: Boolean, val doesCompressMedia: Boolean, - val theme: Theme, - val showChangeThemeDialog: Boolean, + val theme: ThemeOption, val hideInviteAvatars: Boolean, val timelineMediaPreviewValue: MediaPreviewValue, val eventSink: (AdvancedSettingsEvents) -> Unit ) + +enum class ThemeOption : DropdownOption { + System { + @Composable + override fun getText(): String = stringResource(CommonStrings.common_system) + }, + Dark { + @Composable + override fun getText(): String = stringResource(CommonStrings.common_dark) + }, + Light { + @Composable + override fun getText(): String = stringResource(CommonStrings.common_light) + } +} diff --git a/features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/advanced/AdvancedSettingsStateProvider.kt b/features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/advanced/AdvancedSettingsStateProvider.kt index 19e4b8b26a..b0b9ed34fd 100644 --- a/features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/advanced/AdvancedSettingsStateProvider.kt +++ b/features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/advanced/AdvancedSettingsStateProvider.kt @@ -8,7 +8,6 @@ package io.element.android.features.preferences.impl.advanced import androidx.compose.ui.tooling.preview.PreviewParameterProvider -import io.element.android.compound.theme.Theme import io.element.android.libraries.matrix.api.media.MediaPreviewValue open class AdvancedSettingsStateProvider : PreviewParameterProvider { @@ -16,7 +15,6 @@ open class AdvancedSettingsStateProvider : PreviewParameterProvider Unit = {}, ) = AdvancedSettingsState( isDeveloperModeEnabled = isDeveloperModeEnabled, isSharePresenceEnabled = isSharePresenceEnabled, doesCompressMedia = doesCompressMedia, - theme = Theme.System, - showChangeThemeDialog = showChangeThemeDialog, + theme = theme, hideInviteAvatars = hideInviteAvatars, timelineMediaPreviewValue = timelineMediaPreviewValue, eventSink = eventSink diff --git a/features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/advanced/AdvancedSettingsView.kt b/features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/advanced/AdvancedSettingsView.kt index dc26487f91..ab97062e4c 100644 --- a/features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/advanced/AdvancedSettingsView.kt +++ b/features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/advanced/AdvancedSettingsView.kt @@ -12,14 +12,11 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.res.stringResource import androidx.compose.ui.tooling.preview.PreviewParameter import im.vector.app.features.analytics.plan.Interaction -import io.element.android.compound.theme.Theme -import io.element.android.compound.theme.themes import io.element.android.features.preferences.impl.R import io.element.android.libraries.architecture.coverage.ExcludeFromCoverage -import io.element.android.libraries.designsystem.components.dialogs.ListOption -import io.element.android.libraries.designsystem.components.dialogs.SingleSelectionDialog import io.element.android.libraries.designsystem.components.list.ListItemContent import io.element.android.libraries.designsystem.components.preferences.PreferenceCategory +import io.element.android.libraries.designsystem.components.preferences.PreferenceDropdown import io.element.android.libraries.designsystem.components.preferences.PreferencePage import io.element.android.libraries.designsystem.components.preferences.PreferenceSwitch import io.element.android.libraries.designsystem.preview.ElementPreviewDark @@ -34,8 +31,7 @@ import io.element.android.libraries.matrix.api.media.MediaPreviewValue import io.element.android.libraries.ui.strings.CommonStrings import io.element.android.services.analytics.compose.LocalAnalyticsService import io.element.android.services.analyticsproviders.api.trackers.captureInteraction -import kotlinx.collections.immutable.ImmutableList -import kotlinx.collections.immutable.toImmutableList +import kotlinx.collections.immutable.toPersistentList @Composable fun AdvancedSettingsView( @@ -49,15 +45,12 @@ fun AdvancedSettingsView( onBackClick = onBackClick, title = stringResource(id = CommonStrings.common_advanced_settings) ) { - ListItem( - headlineContent = { - Text(text = stringResource(id = CommonStrings.common_appearance)) - }, - trailingContent = ListItemContent.Text( - state.theme.toHumanReadable() - ), - onClick = { - state.eventSink(AdvancedSettingsEvents.ChangeTheme) + PreferenceDropdown( + title = stringResource(id = CommonStrings.common_appearance), + selectedOption = state.theme, + options = ThemeOption.entries.toPersistentList(), + onSelectOption = { logLevel -> + state.eventSink(AdvancedSettingsEvents.SetTheme(logLevel)) } ) ListItem( @@ -108,21 +101,6 @@ fun AdvancedSettingsView( ) ModerationAndSafety(state) } - - if (state.showChangeThemeDialog) { - SingleSelectionDialog( - options = getOptions(), - initialSelection = themes.indexOf(state.theme), - onSelectOption = { - state.eventSink( - AdvancedSettingsEvents.SetTheme( - themes[it] - ) - ) - }, - onDismissRequest = { state.eventSink(AdvancedSettingsEvents.CancelChangeTheme) }, - ) - } } @Composable @@ -176,24 +154,6 @@ private fun ModerationAndSafety( } } -@Composable -private fun getOptions(): ImmutableList { - return themes.map { - ListOption(title = it.toHumanReadable()) - }.toImmutableList() -} - -@Composable -private fun Theme.toHumanReadable(): String { - return stringResource( - id = when (this) { - Theme.System -> CommonStrings.common_system - Theme.Dark -> CommonStrings.common_dark - Theme.Light -> CommonStrings.common_light - } - ) -} - @PreviewWithLargeHeight @Composable internal fun AdvancedSettingsViewLightPreview(@PreviewParameter(AdvancedSettingsStateProvider::class) state: AdvancedSettingsState) = diff --git a/features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/developer/tracing/LogLevelItem.kt b/features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/developer/tracing/LogLevelItem.kt index 9707fc30e7..7148cff57f 100644 --- a/features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/developer/tracing/LogLevelItem.kt +++ b/features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/developer/tracing/LogLevelItem.kt @@ -7,22 +7,28 @@ package io.element.android.features.preferences.impl.developer.tracing +import androidx.compose.runtime.Composable import io.element.android.libraries.designsystem.components.preferences.DropdownOption enum class LogLevelItem : DropdownOption { ERROR { - override val text: String = "Error" + @Composable + override fun getText(): String = "Error" }, WARN { - override val text: String = "Warn" + @Composable + override fun getText(): String = "Warn" }, INFO { - override val text: String = "Info" + @Composable + override fun getText(): String = "Info" }, DEBUG { - override val text: String = "Debug" + @Composable + override fun getText(): String = "Debug" }, TRACE { - override val text: String = "Trace" + @Composable + override fun getText(): String = "Trace" } } diff --git a/features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/user/editprofile/EditUserProfilePresenter.kt b/features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/user/editprofile/EditUserProfilePresenter.kt index 9d57829360..1464ecf584 100644 --- a/features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/user/editprofile/EditUserProfilePresenter.kt +++ b/features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/user/editprofile/EditUserProfilePresenter.kt @@ -58,7 +58,7 @@ class EditUserProfilePresenter @AssistedInject constructor( @Composable override fun present(): EditUserProfileState { val cameraPermissionState = cameraPermissionPresenter.present() - var userAvatarUri by rememberSaveable { mutableStateOf(matrixUser.avatarUrl?.let { Uri.parse(it) }) } + var userAvatarUri by rememberSaveable { mutableStateOf(matrixUser.avatarUrl?.toUri()) } var userDisplayName by rememberSaveable { mutableStateOf(matrixUser.displayName) } val cameraPhotoPicker = mediaPickerProvider.registerCameraPhotoPicker( onResult = { uri -> diff --git a/features/preferences/impl/src/main/res/values-cs/translations.xml b/features/preferences/impl/src/main/res/values-cs/translations.xml index 3faddd54b4..db7f28a99d 100644 --- a/features/preferences/impl/src/main/res/values-cs/translations.xml +++ b/features/preferences/impl/src/main/res/values-cs/translations.xml @@ -19,6 +19,11 @@ "Pokud je vypnuto, potvrzení o přečtení se nikomu neodesílají. Stále budete dostávat potvrzení o přečtení od ostatních uživatelů." "Sdílejte přítomnost" "Pokud je tato funkce vypnutá, nebudete moci odesílat ani přijímat potvrzení o přečtení ani upozornění o psaní." + "Vždy skrýt" + "Vždy zobrazit" + "V soukromých místnostech" + "Skryté médium lze vždy zobrazit klepnutím na něj" + "Zobrazit média na časové ose" "Povolit možnost zobrazení zdroje zprávy na časové ose." "Nemáte žádné blokované uživatele" "Odblokovat" @@ -60,6 +65,7 @@ Pokud budete pokračovat, některá nastavení se mohou změnit." "systémová nastavení" "Systémová oznámení byla vypnuta" "Oznámení" + "Historie push oznámení" "Odstraňování problémů" "Odstraňování problémů s upozorněními" diff --git a/features/preferences/impl/src/main/res/values-cy/translations.xml b/features/preferences/impl/src/main/res/values-cy/translations.xml new file mode 100644 index 0000000000..d9dbc069d7 --- /dev/null +++ b/features/preferences/impl/src/main/res/values-cy/translations.xml @@ -0,0 +1,25 @@ + + + "Er mwyn sicrhau fyddwch chi ddim yn colli galwad bwysig, newidiwch eich gosodiadau i ganiatáu hysbysiadau sgrin lawn pan fydd eich ffôn wedi\'i gloi." + "Gwella profiad eich galwadau" + "URL sylfaen Galwad Element Cyfaddas" + "Gosod URL sylfaen cyfaddas ar gyfer Galwad Element." + "URL annilys, gwnewch yn siŵr eich bod yn cynnwys y protocol (http/https) a\'r cyfeiriad cywir." + "Cuddio afatarau yn y ceisiadau gwahoddiad i ystafell" + "Cuddio rhagolygon cyfryngau yn y llinell amser" + "Cymedroli a Diogelwch" + "Derbynebau darllen" + "Cuddio bob tro" + "Dangos bob tro" + "Mewn ystafelloedd preifat" + "Mae modd dangos cyfrwng cudd trwy dapio arno" + "Dangos cyfryngau mewn llinell amser" + "Dad-rwystro" + "Enw dangos" + "Golygu proffil" + "Gosodiadau ychwanegol" + "Crybwyll" + "Y Cyfan" + "Crybwyll" + "Hysbysiadau" + diff --git a/features/preferences/impl/src/main/res/values-de/translations.xml b/features/preferences/impl/src/main/res/values-de/translations.xml index 3f325e88af..71ebbf89d1 100644 --- a/features/preferences/impl/src/main/res/values-de/translations.xml +++ b/features/preferences/impl/src/main/res/values-de/translations.xml @@ -19,6 +19,11 @@ "Wenn diese Option deaktiviert ist, werden Ihre Lesebestätigungen an niemanden gesendet. Du erhältst weiterhin Lesebestätigungen von anderen Benutzern." "Präsenz teilen" "Wenn diese Option deaktiviert ist, kannst du keine Lesebestätigungen oder Tipp-Benachrichtigungen senden oder empfangen." + "Immer verstecken" + "Immer anzeigen" + "In privaten Chatrooms" + "Ein verstecktes Medium kann jederzeit durch Antippen angezeigt werden" + "Medien in der Zeitleiste anzeigen" "Option aktiveren, um Nachrichtenquelle in der Zeitleiste anzuzeigen." "Du hast keine blockierten Nutzer" "Blockierung aufheben" @@ -58,6 +63,7 @@ Wenn du fortfährst, können sich einige deiner Einstellungen ändern." "Systemeinstellungen" "Systembenachrichtigungen deaktiviert" "Benachrichtigungen" + "Verlauf pushen" "Fehlerbehebung" "Fehlerbehebung für Benachrichtigungen" diff --git a/features/preferences/impl/src/main/res/values-et/translations.xml b/features/preferences/impl/src/main/res/values-et/translations.xml index 6c5c1af22d..e9ee78f429 100644 --- a/features/preferences/impl/src/main/res/values-et/translations.xml +++ b/features/preferences/impl/src/main/res/values-et/translations.xml @@ -19,6 +19,11 @@ "Kui lülitad selle valiku välja, siis mitte keegi enam ei saa sinult lugemisteatisi. Küll aga saad sina teiste kasutajate lugemisteatisi." "Jaga oma olekut" "Kui see eelistus on välja lülitatud, siis sa ei saa ega saada ei lugemisteatisi ega kirjutamise teavitusi." + "Peida alati" + "Näita alati" + "Privaatsetes jututubades" + "Peidetud meediumi saad alati näha temal klõpsides" + "Näita ajajoonel meediat" "Selle eelistuse sisselülitamisel on võimalik ajajoonel vaadata sõnumite lähtekoodi." "Sa pole ühtegi kasutajat blokeerinud" "Eemalda blokeering" @@ -58,6 +63,7 @@ Kui sa jätkad muutmist, siis võivad muutuda ka need peidetud eelistused.""süsteemi seadistusi" "Süsteemi teavitused on välja lülitatud" "Teavitused" + "Tõuketeadete ajalugu" "Veaotsing" "Teavituste veaotsing" diff --git a/features/preferences/impl/src/main/res/values-fi/translations.xml b/features/preferences/impl/src/main/res/values-fi/translations.xml index 710447578f..f938235e66 100644 --- a/features/preferences/impl/src/main/res/values-fi/translations.xml +++ b/features/preferences/impl/src/main/res/values-fi/translations.xml @@ -8,14 +8,22 @@ "Mukautettu Element Call URL-osoite" "Aseta mukautettu URL-osoite Element Callille." "Virheellinen URL-osoite. Varmista, että sisällytät protokollan (http/https) ja oikean osoitteen." + "Piilota huoneiden avatarit kutsuista" + "Piilota median esikatselu aikajanalla" "Lähetä valokuvia ja videoita nopeammin ja vähennä datan käyttöä." "Optimoi median laatu" + "Moderointi ja Turvallisuus" "Push-ilmoitusten tarjoaja" "Ota rikastettu tekstieditori pois käytöstä, jotta voit kirjoittaa Markdownia manuaalisesti." "Lukukuittaukset" "Jos tämä on poissa päältä, sinun lukukuittauksia ei lähetetä kenellekään. Vastaanotat silti lukukuittauksia muilta käyttäjiltä." "Jaa läsnäolo" "Jos tämä on poissa päältä, et lähetä tai vastaanota lukukuittauksia tai kirjoitusilmotuksia." + "Piilota aina" + "Näytä aina" + "Yksityisissä huoneissa" + "Piilotetun median voi aina näyttää napauttamalla sitä" + "Näytä media aikajanalla" "Ota käyttöön mahdollisuus tarkastella viestin lähdettä aikajanalla." "Et ole estänyt ketään" "Poista esto" @@ -55,6 +63,7 @@ Jos jatkat, jotkin asetukset saattavat muuttua." "järjestelmäsi asetuksia" "Järjestelmän ilmoitukset on poissa päältä" "Ilmoitukset" + "Push-historia" "Vianmääritys" "Ilmoitusten vianmääritys" diff --git a/features/preferences/impl/src/main/res/values-fr/translations.xml b/features/preferences/impl/src/main/res/values-fr/translations.xml index 1b56f3b39e..1180454d03 100644 --- a/features/preferences/impl/src/main/res/values-fr/translations.xml +++ b/features/preferences/impl/src/main/res/values-fr/translations.xml @@ -19,6 +19,11 @@ "En cas de désactivation, vos accusés de lecture ne seront pas envoyés aux autres membres. Vous verrez toujours les accusés des autres membres." "Partager la présence" "Si cette option est désactivée, vous ne pourrez ni envoyer ni recevoir de confirmations de lecture ni de notifications de saisie." + "Toujours cacher" + "Toujours montrer" + "Dans les salons privés" + "Un média caché peut toujours être affiché en cliquant dessus" + "Afficher les médias dans les discussions." "Activer cette option pour pouvoir voir la source des messages dans la discussion." "Vous n’avez bloqué personne" "Débloquer" @@ -58,6 +63,7 @@ Si vous continuez, il est possible que certains de vos paramètres soient modifi "paramètres du système" "Les notifications du système sont désactivées" "Notifications" + "Historique des Push" "Dépannage" "Dépanner les notifications" diff --git a/features/preferences/impl/src/main/res/values-hu/translations.xml b/features/preferences/impl/src/main/res/values-hu/translations.xml index 3afb42eba4..da63c18fb7 100644 --- a/features/preferences/impl/src/main/res/values-hu/translations.xml +++ b/features/preferences/impl/src/main/res/values-hu/translations.xml @@ -19,6 +19,11 @@ "Ha ki van kapcsolva, az olvasási visszaigazolások nem lesznek elküldve senkinek. A többi felhasználó olvasási visszaigazolását továbbra is meg fogja kapni." "Jelenlét megosztása" "Ha ki van kapcsolva, nem tud olvasási visszaigazolást vagy írási értesítést küldeni és fogadni" + "Elrejtés mindig" + "Megjelenítés mindig" + "Privát szobákban" + "A rejtett médiatartalmak koppintással jeleníthetők meg" + "Média megjelenítése az idővonalon" "Engedélyezze a beállítást az üzenet forrásának megjelenítéséhez az idővonalon." "Nincsenek letiltott felhasználók" "Letiltás feloldása" @@ -58,6 +63,7 @@ Ha folytatja, egyes beállítások megváltozhatnak." "rendszerbeállításokat" "A rendszerértesítések ki vannak kapcsolva" "Értesítések" + "Leküldéses értesítés előzmények" "Hibaelhárítás" "Értesítések hibaelhárítása" diff --git a/features/preferences/impl/src/main/res/values-lt/translations.xml b/features/preferences/impl/src/main/res/values-lt/translations.xml new file mode 100644 index 0000000000..b0a2f7bd81 --- /dev/null +++ b/features/preferences/impl/src/main/res/values-lt/translations.xml @@ -0,0 +1,7 @@ + + + "Pasirinkite, kaip gauti pranešimus" + "Atblokuoti" + "Vėl galėsite matyti visas iš jų gautas žinutes." + "Atblokuoti vartotoją" + diff --git a/features/preferences/impl/src/main/res/values-nb/translations.xml b/features/preferences/impl/src/main/res/values-nb/translations.xml index e8fc907026..84283b898b 100644 --- a/features/preferences/impl/src/main/res/values-nb/translations.xml +++ b/features/preferences/impl/src/main/res/values-nb/translations.xml @@ -5,14 +5,25 @@ "Velg hvordan du vil motta varsler" "Utviklermodus" "Aktiver for å få tilgang til funksjoner og funksjonalitet for utviklere." + "Egendefinert Element Call base URL" + "Angi en egendefinert base URL for Element Call." "Ugyldig URL. Pass på at du inkluderer protokollen (http/https) og riktig adresse." + "Skjul avatarer i invitasjonsforespørsler til rom" + "Skjul forhåndsvisninger av medier på tidslinjen" "Last opp bilder og videoer raskere og reduser databruken" "Optimaliser mediekvaliteten" + "Moderasjon og sikkerhet" + "Leverandør av pushvarsling" "Deaktiver rik tekstredigering for å skrive Markdown manuelt." "Lesebekreftelser" "Hvis slått av, sendes ikke lesebekreftelsene dine til noen. Du vil fortsatt motta lesebekreftelser fra andre brukere." "Del tilstedeværelse" "Hvis slått av, kan du ikke sende eller motta lesebekreftelser eller skrivevarsler." + "Skjul alltid" + "Vis alltid" + "I private rom" + "Et skjult medium kan alltid vises ved å trykke på det" + "Vis medier i tidslinjen" "Aktiver alternativet for å vise meldingskilden på tidslinjen." "Du har ingen blokkerte brukere" "Fjern blokkering" @@ -52,6 +63,7 @@ Hvis du fortsetter, kan noen av innstillingene dine endres." "systeminnstillinger" "Systemvarsler er slått av" "Varslinger" + "Push-historikk" "Feilsøk" "Feilsøk varsler" 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 b5a6d99fa7..2764270e44 100644 --- a/features/preferences/impl/src/main/res/values-pl/translations.xml +++ b/features/preferences/impl/src/main/res/values-pl/translations.xml @@ -55,6 +55,7 @@ Niektóre ustawienia mogą ulec zmianie, jeśli kontynuujesz." "ustawienia systemowe" "Powiadomienia systemowe wyłączone" "Powiadomienia" + "Historia powiadomień Push" "Rozwiązywanie problemów" "Rozwiązywanie problemów powiadomień" diff --git a/features/preferences/impl/src/main/res/values-pt-rBR/translations.xml b/features/preferences/impl/src/main/res/values-pt-rBR/translations.xml index 42ac543aee..01be12bd80 100644 --- a/features/preferences/impl/src/main/res/values-pt-rBR/translations.xml +++ b/features/preferences/impl/src/main/res/values-pt-rBR/translations.xml @@ -40,6 +40,7 @@ Se você continuar, algumas de suas configurações poderão mudar." "A configuração não foi corrigida, tente novamente." "Bate-papos em grupo" "Convites" + "Seu servidor doméstico não suporta esta opção em salas criptografadas. Você pode não ser notificado em algumas salas." "Menções" "Todos" "Menções" diff --git a/features/preferences/impl/src/main/res/values-ru/translations.xml b/features/preferences/impl/src/main/res/values-ru/translations.xml index c015011c89..dcdebe4282 100644 --- a/features/preferences/impl/src/main/res/values-ru/translations.xml +++ b/features/preferences/impl/src/main/res/values-ru/translations.xml @@ -8,14 +8,21 @@ "Базовый URL сервера звонков Element" "Задайте свой сервер Element Call." "Адрес указан неверно, удостоверьтесь, что вы указали протокол (http/https) и правильный адрес." + "Скрыть аватары в запросах на приглашение в комнату" + "Скрыть предварительный просмотр медиафайлов на временной шкале" "Загружайте фотографии и видео быстрее и сокращайте потребление трафика" "Оптимизировать качество мультимедиа" + "Модерация и безопасность" "Поставщик push-уведомлений" "Отключить редактор форматированного текста и включить Markdown." "Уведомления о прочтении" "Если этот параметр выключен, ваш статус о прочтении не будет отображаться. Вы по-прежнему будете видеть статус о прочтении от других пользователей." "Поделиться присутствием" "Если выключено, вы не сможете отправлять, получать уведомления о прочтении и наборе текста" + "Всегда скрывать" + "Всегда показывать" + "В личных комнатах" + "Скрытый медиафайл всегда можно отобразить, нажав на него." "Включить опцию просмотра источника сообщения в ленте." "У вас нет заблокированных пользователей" "Разблокировать" diff --git a/features/preferences/impl/src/main/res/values-sk/translations.xml b/features/preferences/impl/src/main/res/values-sk/translations.xml index 0a4cdb7c27..33dddb66e7 100644 --- a/features/preferences/impl/src/main/res/values-sk/translations.xml +++ b/features/preferences/impl/src/main/res/values-sk/translations.xml @@ -19,6 +19,11 @@ "Ak je táto funkcia vypnutá, vaše potvrdenia o prečítaní sa nebudú nikomu odosielať. Stále budete dostávať potvrdenia o prečítaní od ostatných používateľov." "Zdieľať prítomnosť" "Ak je vypnuté, nebudete môcť odosielať ani prijímať potvrdenia o prečítaní alebo upozornenia o písaní" + "Vždy skryť" + "Vždy zobraziť" + "V súkromných miestnostiach" + "Skryté médium sa dá vždy zobraziť ťuknutím naň" + "Zobraziť médiá na časovej osi" "Povoliť možnosť zobrazenia zdroja správy na časovej osi." "Nemáte žiadnych blokovaných používateľov" "Odblokovať" @@ -60,6 +65,7 @@ Ak budete pokračovať, niektoré z vašich nastavení sa môžu zmeniť.""nastavenia systému" "Systémové oznámenia sú vypnuté" "Oznámenia" + "História push oznámení" "Riešenie problémov" "Oznámenia riešení problémov" 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 bd360b6f45..831280255c 100644 --- a/features/preferences/impl/src/main/res/values-sv/translations.xml +++ b/features/preferences/impl/src/main/res/values-sv/translations.xml @@ -19,6 +19,11 @@ "Om det är avstängt kommer dina läskvitton inte att skickas till någon. Du kommer fortfarande att få läskvitton från andra användare." "Dela närvaro" "Om det är avstängt kan du inte skicka eller ta emot läskvitton eller skrivnotiser" + "Göm alltid" + "Visa alltid" + "I privata rum" + "En dold media kan alltid visas genom att trycka på den" + "Visa media i tidslinjen" "Aktivera alternativet för att visa meddelandekälla i tidslinjen." "Du har inga blockerade användare" "Avblockera" @@ -58,6 +63,7 @@ Om du fortsätter kan vissa av dina inställningar ändras." "systeminställningar" "Systemaviseringar avstängda" "Aviseringar" + "Push-historik" "Felsök" "Felsök aviseringar" diff --git a/features/preferences/impl/src/main/res/values-uk/translations.xml b/features/preferences/impl/src/main/res/values-uk/translations.xml index 4a92a89832..22ca6bbc22 100644 --- a/features/preferences/impl/src/main/res/values-uk/translations.xml +++ b/features/preferences/impl/src/main/res/values-uk/translations.xml @@ -19,6 +19,11 @@ "Якщо вимкнено, ваші сповіщення про прочитання нікому не надсилатимуться. Ви все одно отримуватимете сповіщення про прочитання від інших користувачів." "Поділіться присутністю" "Якщо цей параметр вимкнено, ви не зможете надсилати й отримувати звіти про прочитання чи сповіщення про введення тексту." + "Завжди ховати" + "Завжди показувати" + "У приватних кімнатах" + "Сховані медіа завжди можна переглянути, натиснувши на нього" + "Показувати медіа у стрічці" "Увімкнути опцію для перегляду коду повідомлення в стрічці" "У вас немає заблокованих користувачів." "Розблокувати" @@ -58,6 +63,7 @@ "системні налаштування" "Системні сповіщення вимкнені" "Сповіщення" + "Історія push-сповіщень" "Усунення несправностей" "Усунення неполадок сповіщень" diff --git a/features/preferences/impl/src/test/kotlin/io/element/android/features/preferences/impl/advanced/AdvancedSettingsPresenterTest.kt b/features/preferences/impl/src/test/kotlin/io/element/android/features/preferences/impl/advanced/AdvancedSettingsPresenterTest.kt index a5014ac719..317cd5b06c 100644 --- a/features/preferences/impl/src/test/kotlin/io/element/android/features/preferences/impl/advanced/AdvancedSettingsPresenterTest.kt +++ b/features/preferences/impl/src/test/kotlin/io/element/android/features/preferences/impl/advanced/AdvancedSettingsPresenterTest.kt @@ -11,11 +11,10 @@ import app.cash.molecule.RecompositionMode import app.cash.molecule.moleculeFlow import app.cash.turbine.test import com.google.common.truth.Truth.assertThat -import io.element.android.compound.theme.Theme +import io.element.android.libraries.matrix.api.media.MediaPreviewValue import io.element.android.libraries.preferences.test.InMemoryAppPreferencesStore import io.element.android.libraries.preferences.test.InMemorySessionPreferencesStore import io.element.android.tests.testutils.WarmUpRule -import io.element.android.tests.testutils.awaitLastSequentialItem import kotlinx.coroutines.test.runTest import org.junit.Rule import org.junit.Test @@ -30,12 +29,12 @@ class AdvancedSettingsPresenterTest { moleculeFlow(RecompositionMode.Immediate) { presenter.present() }.test { - val initialState = awaitLastSequentialItem() - assertThat(initialState.isDeveloperModeEnabled).isFalse() - assertThat(initialState.showChangeThemeDialog).isFalse() - assertThat(initialState.isSharePresenceEnabled).isTrue() - assertThat(initialState.doesCompressMedia).isTrue() - assertThat(initialState.theme).isEqualTo(Theme.System) + with(awaitItem()) { + assertThat(isDeveloperModeEnabled).isFalse() + assertThat(isSharePresenceEnabled).isTrue() + assertThat(doesCompressMedia).isTrue() + assertThat(theme).isEqualTo(ThemeOption.System) + } } } @@ -45,12 +44,17 @@ class AdvancedSettingsPresenterTest { moleculeFlow(RecompositionMode.Immediate) { presenter.present() }.test { - val initialState = awaitLastSequentialItem() - assertThat(initialState.isDeveloperModeEnabled).isFalse() - initialState.eventSink.invoke(AdvancedSettingsEvents.SetDeveloperModeEnabled(true)) - assertThat(awaitItem().isDeveloperModeEnabled).isTrue() - initialState.eventSink.invoke(AdvancedSettingsEvents.SetDeveloperModeEnabled(false)) - assertThat(awaitItem().isDeveloperModeEnabled).isFalse() + with(awaitItem()) { + assertThat(isDeveloperModeEnabled).isFalse() + eventSink(AdvancedSettingsEvents.SetDeveloperModeEnabled(true)) + } + with(awaitItem()) { + assertThat(isDeveloperModeEnabled).isTrue() + eventSink(AdvancedSettingsEvents.SetDeveloperModeEnabled(false)) + } + with(awaitItem()) { + assertThat(isDeveloperModeEnabled).isFalse() + } } } @@ -60,12 +64,17 @@ class AdvancedSettingsPresenterTest { moleculeFlow(RecompositionMode.Immediate) { presenter.present() }.test { - val initialState = awaitLastSequentialItem() - assertThat(initialState.isSharePresenceEnabled).isTrue() - initialState.eventSink.invoke(AdvancedSettingsEvents.SetSharePresenceEnabled(false)) - assertThat(awaitItem().isSharePresenceEnabled).isFalse() - initialState.eventSink.invoke(AdvancedSettingsEvents.SetSharePresenceEnabled(true)) - assertThat(awaitItem().isSharePresenceEnabled).isTrue() + with(awaitItem()) { + assertThat(isSharePresenceEnabled).isTrue() + eventSink(AdvancedSettingsEvents.SetSharePresenceEnabled(false)) + } + with(awaitItem()) { + assertThat(isSharePresenceEnabled).isFalse() + eventSink(AdvancedSettingsEvents.SetSharePresenceEnabled(true)) + } + with(awaitItem()) { + assertThat(isSharePresenceEnabled).isTrue() + } } } @@ -75,12 +84,17 @@ class AdvancedSettingsPresenterTest { moleculeFlow(RecompositionMode.Immediate) { presenter.present() }.test { - val initialState = awaitLastSequentialItem() - assertThat(initialState.doesCompressMedia).isTrue() - initialState.eventSink.invoke(AdvancedSettingsEvents.SetCompressMedia(false)) - assertThat(awaitItem().doesCompressMedia).isFalse() - initialState.eventSink.invoke(AdvancedSettingsEvents.SetCompressMedia(true)) - assertThat(awaitItem().doesCompressMedia).isTrue() + with(awaitItem()) { + assertThat(doesCompressMedia).isTrue() + eventSink(AdvancedSettingsEvents.SetCompressMedia(false)) + } + with(awaitItem()) { + assertThat(doesCompressMedia).isFalse() + eventSink(AdvancedSettingsEvents.SetCompressMedia(true)) + } + with(awaitItem()) { + assertThat(doesCompressMedia).isTrue() + } } } @@ -90,20 +104,61 @@ class AdvancedSettingsPresenterTest { moleculeFlow(RecompositionMode.Immediate) { presenter.present() }.test { - val initialState = awaitLastSequentialItem() - initialState.eventSink.invoke(AdvancedSettingsEvents.ChangeTheme) - val withDialog = awaitItem() - assertThat(withDialog.showChangeThemeDialog).isTrue() - // Cancel - withDialog.eventSink(AdvancedSettingsEvents.CancelChangeTheme) - val withoutDialog = awaitItem() - assertThat(withoutDialog.showChangeThemeDialog).isFalse() - withDialog.eventSink.invoke(AdvancedSettingsEvents.ChangeTheme) - assertThat(awaitItem().showChangeThemeDialog).isTrue() - withDialog.eventSink(AdvancedSettingsEvents.SetTheme(Theme.Light)) - val withNewTheme = awaitItem() - assertThat(withNewTheme.showChangeThemeDialog).isFalse() - assertThat(withNewTheme.theme).isEqualTo(Theme.Light) + with(awaitItem()) { + assertThat(theme).isEqualTo(ThemeOption.System) + eventSink(AdvancedSettingsEvents.SetTheme(ThemeOption.Dark)) + } + with(awaitItem()) { + assertThat(theme).isEqualTo(ThemeOption.Dark) + eventSink(AdvancedSettingsEvents.SetTheme(ThemeOption.Light)) + } + with(awaitItem()) { + assertThat(theme).isEqualTo(ThemeOption.Light) + eventSink(AdvancedSettingsEvents.SetTheme(ThemeOption.System)) + } + with(awaitItem()) { + assertThat(theme).isEqualTo(ThemeOption.System) + } + } + } + + @Test + fun `present - hide invite avatars`() = runTest { + val presenter = createAdvancedSettingsPresenter() + moleculeFlow(RecompositionMode.Immediate) { + presenter.present() + }.test { + with(awaitItem()) { + assertThat(hideInviteAvatars).isFalse() + eventSink(AdvancedSettingsEvents.SetHideInviteAvatars(true)) + } + with(awaitItem()) { + assertThat(hideInviteAvatars).isTrue() + eventSink(AdvancedSettingsEvents.SetHideInviteAvatars(false)) + } + with(awaitItem()) { + assertThat(hideInviteAvatars).isFalse() + } + } + } + + @Test + fun `present - timeline media preview value`() = runTest { + val presenter = createAdvancedSettingsPresenter() + moleculeFlow(RecompositionMode.Immediate) { + presenter.present() + }.test { + with(awaitItem()) { + assertThat(timelineMediaPreviewValue).isEqualTo(MediaPreviewValue.On) + eventSink(AdvancedSettingsEvents.SetTimelineMediaPreviewValue(MediaPreviewValue.Off)) + } + with(awaitItem()) { + assertThat(timelineMediaPreviewValue).isEqualTo(MediaPreviewValue.Off) + eventSink(AdvancedSettingsEvents.SetTimelineMediaPreviewValue(MediaPreviewValue.Private)) + } + with(awaitItem()) { + assertThat(timelineMediaPreviewValue).isEqualTo(MediaPreviewValue.Private) + } } } diff --git a/features/preferences/impl/src/test/kotlin/io/element/android/features/preferences/impl/advanced/AdvancedSettingsViewTest.kt b/features/preferences/impl/src/test/kotlin/io/element/android/features/preferences/impl/advanced/AdvancedSettingsViewTest.kt index a8e105e22a..baf55d2999 100644 --- a/features/preferences/impl/src/test/kotlin/io/element/android/features/preferences/impl/advanced/AdvancedSettingsViewTest.kt +++ b/features/preferences/impl/src/test/kotlin/io/element/android/features/preferences/impl/advanced/AdvancedSettingsViewTest.kt @@ -14,8 +14,8 @@ import androidx.compose.ui.test.junit4.createAndroidComposeRule import androidx.test.ext.junit.runners.AndroidJUnit4 import com.google.common.truth.Truth.assertThat import im.vector.app.features.analytics.plan.Interaction -import io.element.android.compound.theme.Theme import io.element.android.features.preferences.impl.R +import io.element.android.libraries.matrix.api.media.MediaPreviewValue import io.element.android.libraries.ui.strings.CommonStrings import io.element.android.services.analytics.api.AnalyticsService import io.element.android.services.analytics.compose.LocalAnalyticsService @@ -29,6 +29,7 @@ import org.junit.Rule import org.junit.Test import org.junit.rules.TestRule import org.junit.runner.RunWith +import org.robolectric.annotation.Config @RunWith(AndroidJUnit4::class) class AdvancedSettingsViewTest { @@ -49,29 +50,17 @@ class AdvancedSettingsViewTest { } } - @Test - fun `clicking on Appearance emits the expected event`() { - val eventsRecorder = EventsRecorder() - rule.setAdvancedSettingsView( - state = aAdvancedSettingsState( - eventSink = eventsRecorder - ), - ) - rule.clickOn(CommonStrings.common_appearance) - eventsRecorder.assertSingle(AdvancedSettingsEvents.ChangeTheme) - } - @Test fun `clicking on other theme emits the expected event`() { val eventsRecorder = EventsRecorder() rule.setAdvancedSettingsView( state = aAdvancedSettingsState( eventSink = eventsRecorder, - showChangeThemeDialog = true ), ) + rule.clickOn(CommonStrings.common_appearance) rule.clickOn(CommonStrings.common_dark) - eventsRecorder.assertSingle(AdvancedSettingsEvents.SetTheme(Theme.Dark)) + eventsRecorder.assertSingle(AdvancedSettingsEvents.SetTheme(ThemeOption.Dark)) } @Test @@ -140,6 +129,34 @@ class AdvancedSettingsViewTest { ) ) } + + @Test + @Config(qualifiers = "h640dp") + fun `clicking on hide invite avatars emits the expected event`() { + val eventsRecorder = EventsRecorder() + rule.setAdvancedSettingsView( + state = aAdvancedSettingsState( + eventSink = eventsRecorder, + hideInviteAvatars = false + ), + ) + rule.clickOn(R.string.screen_advanced_settings_hide_invite_avatars_toggle_title) + eventsRecorder.assertSingle(AdvancedSettingsEvents.SetHideInviteAvatars(true)) + } + + @Test + @Config(qualifiers = "h640dp") + fun `clicking on timeline media preview emits the expected event`() { + val eventsRecorder = EventsRecorder() + rule.setAdvancedSettingsView( + state = aAdvancedSettingsState( + eventSink = eventsRecorder, + timelineMediaPreviewValue = MediaPreviewValue.On + ), + ) + rule.clickOn(R.string.screen_advanced_settings_show_media_timeline_always_hide) + eventsRecorder.assertSingle(AdvancedSettingsEvents.SetTimelineMediaPreviewValue(MediaPreviewValue.Off)) + } } private fun AndroidComposeTestRule.setAdvancedSettingsView( diff --git a/features/rageshake/api/src/main/res/values-cy/translations.xml b/features/rageshake/api/src/main/res/values-cy/translations.xml new file mode 100644 index 0000000000..2081e88ef9 --- /dev/null +++ b/features/rageshake/api/src/main/res/values-cy/translations.xml @@ -0,0 +1,5 @@ + + + "Chwalodd %1$s y tro diwethaf iddo gael ei ddefnyddio. Hoffech chi rannu adroddiad gwall gyda ni?" + "Mae\'n ymddangos eich bod yn ysgwyd y ffôn mewn rhwystredigaeth. Hoffech chi agor y sgrin adrodd gwallau?" + diff --git a/features/rageshake/api/src/main/res/values-lt/translations.xml b/features/rageshake/api/src/main/res/values-lt/translations.xml new file mode 100644 index 0000000000..49762d57ca --- /dev/null +++ b/features/rageshake/api/src/main/res/values-lt/translations.xml @@ -0,0 +1,7 @@ + + + "%1$s nulūžo paskutinį kartą, kai buvo naudojama. Ar norėtumėte su mumis pasidalyti strigčių ataskaita?" + "Atrodo, kad nusivylęs purtote telefoną. Ar norėtumėte atidaryti pranešimo apie klaidas ekraną?" + "Rageshake" + "Aptikimo riba" + diff --git a/features/rageshake/impl/src/main/res/values-cy/translations.xml b/features/rageshake/impl/src/main/res/values-cy/translations.xml new file mode 100644 index 0000000000..a18eb215b5 --- /dev/null +++ b/features/rageshake/impl/src/main/res/values-cy/translations.xml @@ -0,0 +1,4 @@ + + + "Chwalodd %1$s y tro diwethaf iddo gael ei ddefnyddio. Hoffech chi rannu adroddiad gwall gyda ni?" + diff --git a/features/rageshake/impl/src/main/res/values-de/translations.xml b/features/rageshake/impl/src/main/res/values-de/translations.xml index ed85e17f85..70f832e10a 100644 --- a/features/rageshake/impl/src/main/res/values-de/translations.xml +++ b/features/rageshake/impl/src/main/res/values-de/translations.xml @@ -9,7 +9,7 @@ "Wenn möglich, verfasse die Beschreibung bitte auf Englisch." "Die Beschreibung ist zu kurz. Bitte geben Sie weitere Informationen darüber an, was passiert ist." "Absturzprotokolle senden" - "Protokolle zulassen" + "Logdateien mitsenden" "Bildschirmfoto senden" "Die Protokolle werden deiner Nachricht beigefügt, um sicherzustellen, dass alles ordnungsgemäß funktioniert. Um deine Nachricht ohne Protokolle zu senden, deaktiviere diese Einstellung." "%1$s ist bei der letzten Nutzung abgestürzt. Möchtest du einen Absturzbericht mit uns teilen?" diff --git a/features/rageshake/impl/src/main/res/values-lt/translations.xml b/features/rageshake/impl/src/main/res/values-lt/translations.xml new file mode 100644 index 0000000000..9a3889bbbc --- /dev/null +++ b/features/rageshake/impl/src/main/res/values-lt/translations.xml @@ -0,0 +1,14 @@ + + + "Pridėti ekrano nuotrauką" + "Jei turite papildomų klausimų, galite susisiekti su manimi." + "Redaguoti ekrano nuotrauką" + "Apibūdinkite problemą. Ką padarėte? Ko tikėjotės? Kas iš tikrųjų įvyko? Pateikite kuo daugiau detalių." + "Apibūdinkite problemą…" + "Jei įmanoma, aprašymą parašykite anglų kalba." + "Siųsti gedimų žurnalus" + "Leisti žurnalus" + "Siųsti ekrano nuotrauką" + "Prie žinutės bus pridėti žurnalai, kad įsitikintumėme, jog viskas veikia tinkamai. Jei norite išsiųsti savo žinutę be žurnalų, išjunkite šį nustatymą." + "%1$s nulūžo paskutinį kartą, kai buvo naudojama. Ar norėtumėte su mumis pasidalyti strigčių ataskaita?" + diff --git a/features/rageshake/impl/src/main/res/values-pt-rBR/translations.xml b/features/rageshake/impl/src/main/res/values-pt-rBR/translations.xml index 885c9a6fe6..6e2e2b677f 100644 --- a/features/rageshake/impl/src/main/res/values-pt-rBR/translations.xml +++ b/features/rageshake/impl/src/main/res/values-pt-rBR/translations.xml @@ -7,6 +7,7 @@ "Descreva o problema. O que você fez? O que você esperava que acontecesse? O que realmente aconteceu? Por favor, forneça o máximo de detalhes possível." "Descreva o problema…" "Se possível, escreva a descrição em inglês." + "A descrição é muito curta, por favor, forneça mais detalhes sobre o que aconteceu. Obrigado!" "Enviar registros de falhas" "Permitir registros" "Enviar captura de tela" diff --git a/features/roomaliasresolver/impl/src/main/kotlin/io/element/android/features/roomaliasresolver/impl/RoomAliasResolverStateProvider.kt b/features/roomaliasresolver/impl/src/main/kotlin/io/element/android/features/roomaliasresolver/impl/RoomAliasResolverStateProvider.kt index d629089cf8..49786b6436 100644 --- a/features/roomaliasresolver/impl/src/main/kotlin/io/element/android/features/roomaliasresolver/impl/RoomAliasResolverStateProvider.kt +++ b/features/roomaliasresolver/impl/src/main/kotlin/io/element/android/features/roomaliasresolver/impl/RoomAliasResolverStateProvider.kt @@ -18,7 +18,7 @@ open class RoomAliasResolverStateProvider : PreviewParameterProvider + + "Doedd dim modd dangos rhagolwg yr ystafell hon" + diff --git a/features/roomaliasresolver/impl/src/main/res/values-nb/translations.xml b/features/roomaliasresolver/impl/src/main/res/values-nb/translations.xml index 4fd8f68bdf..1a9a264e9f 100644 --- a/features/roomaliasresolver/impl/src/main/res/values-nb/translations.xml +++ b/features/roomaliasresolver/impl/src/main/res/values-nb/translations.xml @@ -1,4 +1,5 @@ + "Vi kunne ikke vise forhåndsvisning av dette rommet" "Kunne ikke løse romalias." diff --git a/features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/edit/RoomDetailsEditStateProvider.kt b/features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/edit/RoomDetailsEditStateProvider.kt index 46304e7aaf..0b979be743 100644 --- a/features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/edit/RoomDetailsEditStateProvider.kt +++ b/features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/edit/RoomDetailsEditStateProvider.kt @@ -9,6 +9,7 @@ package io.element.android.features.roomdetails.impl.edit import android.net.Uri import androidx.compose.ui.tooling.preview.PreviewParameterProvider +import androidx.core.net.toUri import io.element.android.libraries.architecture.AsyncAction import io.element.android.libraries.matrix.api.core.RoomId import io.element.android.libraries.matrix.ui.media.AvatarAction @@ -22,7 +23,7 @@ open class RoomDetailsEditStateProvider : PreviewParameterProvider { TextFieldDialog( - title = stringResource(R.string.screen_room_member_list_kick_member_confirmation_title), - submitText = stringResource(R.string.screen_room_member_list_kick_member_confirmation_action), + title = stringResource(CommonStrings.screen_bottom_sheet_manage_room_member_kick_member_confirmation_title), + submitText = stringResource(CommonStrings.screen_bottom_sheet_manage_room_member_kick_member_confirmation_action), onSubmit = { reason -> state.eventSink(RoomMembersModerationEvents.DoKickUser(reason = reason)) }, onDismissRequest = { state.eventSink(RoomMembersModerationEvents.Reset) }, placeholder = stringResource(id = CommonStrings.common_reason), label = stringResource(id = CommonStrings.common_reason), - content = stringResource(R.string.screen_room_member_list_kick_member_confirmation_description), + content = stringResource(CommonStrings.screen_bottom_sheet_manage_room_member_kick_member_confirmation_description), value = "", ) } @@ -106,7 +106,7 @@ fun RoomMembersModerationView( LaunchedEffect(action) { val userDisplayName = state.selectedRoomMember?.getBestName().orEmpty() asyncIndicatorState.enqueue { - AsyncIndicator.Loading(text = stringResource(R.string.screen_room_member_list_removing_user, userDisplayName)) + AsyncIndicator.Loading(text = stringResource(CommonStrings.screen_bottom_sheet_manage_room_member_removing_user, userDisplayName)) } } } @@ -129,15 +129,15 @@ fun RoomMembersModerationView( when (val action = state.banUserAsyncAction) { is AsyncAction.Confirming -> { TextFieldDialog( - title = stringResource(R.string.screen_room_member_list_ban_member_confirmation_title), - submitText = stringResource(R.string.screen_room_member_list_ban_member_confirmation_action), + title = stringResource(CommonStrings.screen_bottom_sheet_manage_room_member_ban_member_confirmation_title), + submitText = stringResource(CommonStrings.screen_bottom_sheet_manage_room_member_ban_member_confirmation_action), onSubmit = { reason -> state.eventSink(RoomMembersModerationEvents.DoBanUser(reason = reason)) }, onDismissRequest = { state.eventSink(RoomMembersModerationEvents.Reset) }, placeholder = stringResource(id = CommonStrings.common_reason), label = stringResource(id = CommonStrings.common_reason), - content = stringResource(R.string.screen_room_member_list_ban_member_confirmation_description), + content = stringResource(CommonStrings.screen_bottom_sheet_manage_room_member_ban_member_confirmation_description), value = "", ) } @@ -145,7 +145,7 @@ fun RoomMembersModerationView( LaunchedEffect(action) { val userDisplayName = state.selectedRoomMember?.getBestName().orEmpty() asyncIndicatorState.enqueue { - AsyncIndicator.Loading(text = stringResource(R.string.screen_room_member_list_banning_user, userDisplayName)) + AsyncIndicator.Loading(text = stringResource(CommonStrings.screen_bottom_sheet_manage_room_member_banning_user, userDisplayName)) } } } @@ -260,7 +260,7 @@ private fun RoomMemberActionsBottomSheet( when (action) { is ModerationAction.DisplayProfile -> { ListItem( - headlineContent = { Text(stringResource(R.string.screen_room_member_list_manage_member_user_info)) }, + headlineContent = { Text(stringResource(CommonStrings.screen_bottom_sheet_manage_room_member_member_user_info)) }, leadingContent = ListItemContent.Icon(IconSource.Vector(CompoundIcons.Info())), onClick = { coroutineScope.launch { @@ -272,7 +272,7 @@ private fun RoomMemberActionsBottomSheet( } is ModerationAction.KickUser -> { ListItem( - headlineContent = { Text(stringResource(R.string.screen_room_member_list_manage_member_remove)) }, + headlineContent = { Text(stringResource(CommonStrings.screen_bottom_sheet_manage_room_member_remove)) }, leadingContent = ListItemContent.Icon(IconSource.Vector(CompoundIcons.Block())), onClick = { coroutineScope.launch { 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 a686d58c90..da7ae7bcfb 100644 --- a/features/roomdetails/impl/src/main/res/values-be/translations.xml +++ b/features/roomdetails/impl/src/main/res/values-be/translations.xml @@ -60,29 +60,20 @@ "Інфармацыя аб пакоі" "Тэма" "Ідзе абнаўленне пакоя…" - "Заблакіраваць" - "Яны не змогуць зноў далучыцца да гэтага пакоя, калі іх запросяць." - "Вы ўпэўнены, што хочаце заблакіраваць гэтага карыстальніка?" "У гэтым пакоі няма заблакіраваных удзельнікаў." - "Блакіроўка %1$s" "%1$d удзельнік" "%1$d удзельнікі" "%1$d удзельнікаў" - "Выдаліць і заблакіраваць удзельніка" - "Выдаліць удзельніка з пакоя" "Выдаліць і заблакіраваць удзельніка" "Толькі выдаліць удзельніка" - "Выдаліць удзельніка і забараніць далучацца ў будучыні?" "Разблакіраваць" "Яны змогуць зноў далучыцца да гэтага пакоя, калі іх запросяць." "Разблакіраваць удзельніка" - "Прагляд профілю" "Заблакіраваныя" "Удзельнікі" "У чаканні" - "Выдаленне %1$s …" "Адміністратар" "Мадэратар" "Удзельнікі пакоя" 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 1e29ffa3df..73e51ad045 100644 --- a/features/roomdetails/impl/src/main/res/values-cs/translations.xml +++ b/features/roomdetails/impl/src/main/res/values-cs/translations.xml @@ -66,29 +66,20 @@ "Informace o místnosti" "Téma" "Aktualizace místnosti…" - "Vykázat" - "Nebudou se moci znovu připojit k této místnosti, pokud budou pozváni." - "Jste si jisti, že chcete vykázat tohoto člena?" "V této místnosti nejsou žádní vykázaní uživatelé." - "Vykazování %1$s" "%1$d osoba" "%1$d osoby" "%1$d osob" - "Odebrat a vykázat člena" - "Odebrat z místnosti" "Odebrat a vykázat člena" "Pouze odebrat člena" - "Odebrat člena a zakázat mu připojení v budoucnu?" "Zrušit vykázání" "Pokud budou pozváni, budou se moci do této místnosti znovu připojit." "Zrušit vykázání uživatele" - "Zobrazit profil" "Vykázaní" "Členové" "Nevyřízeno" - "Odstraňování %1$s…" "Správce" "Moderátor" "Členové místnosti" diff --git a/features/roomdetails/impl/src/main/res/values-cy/translations.xml b/features/roomdetails/impl/src/main/res/values-cy/translations.xml new file mode 100644 index 0000000000..2dae23ed42 --- /dev/null +++ b/features/roomdetails/impl/src/main/res/values-cy/translations.xml @@ -0,0 +1,57 @@ + + + "Bydd angen cyfeiriad ystafell arnoch i\'w wneud yn weladwy yn y cyfeiriadur." + "Cyfeiriad yr ystafell" + "Polau" + "Pawb" + "Gostwng" + "Fyddwch chi ddim yn gallu dadwneud y newid hwn gan eich bod yn israddio eich hun, os mai chi yw\'r defnyddiwr breintiedig olaf yn yr ystafell bydd yn amhosibl adennill breintiau." + "Aelodau" + "Cadw\'r newidiadau?" + "Eisoes yn aelod" + "Gwahodd pobl" + "Gadael y sgwrs" + "Gadael yr ystafell" + "Cyfaddas" + "Rhagosodiad" + "Hysbysiadau" + "Negeseuon wedi\'u pinio" + "Proffil" + "Ceisiadau i ymuno" + "Enw\'r ystafell" + "Diogelwch" + "Manylion ystafell" + "Pwnc" + "Gwahardd o ystafell" + "Adfer" + "Wedi\'i wahardd" + "Aelodau" + "Dan ystyriaeth" + "Gweinyddwr" + "Aelodau\'r ystafell" + "Gosodiad rhagosodedig" + "Caniatâd" + "Rolau" + "Ychwanegu cyfeiriad ystafell" + "Gall unrhyw un ofyn am gael ymuno â\'r ystafell ond bydd rhaid i weinyddwr neu gymedrolwr dderbyn y cais." + "Gofyn i gael ymuno" + "Iawn, galluogi amgryptio" + "Unwaith y bydd wedi\'i alluogi, does dim modd analluogi amgryptio ar gyfer ystafell, dim ond ar gyfer aelodau\'r ystafell y bydd hanes neges yn weladwy ers iddyn nhw gael eu gwahodd neu ers iddyn nhw ymuno â\'r ystafell. +Fydd neb arwahân i aelodau\'r ystafell yn gallu darllen negeseuon. Gall hyn atal botiau a phontydd i weithio\'n gywir. +Nid ydym yn argymell galluogi amgryptio ar gyfer ystafelloedd y gall unrhyw un ddod o hyd iddynt ac ymuno â nhw." + "Galluogi amgryptio?" + "Unwaith y bydd wedi\'i alluogi, does dim modd analluogi amgryptio." + "Amgryptiad" + "Galluogi amgryptio o\'r dechrau i\'r diwedd" + "Gall unrhyw un ddod o hyd iddo ac ymuno" + "Unrhyw un" + "Dim ond os cawn nhw wahoddiad gall pobl ymuno" + "Gwahoddiad yn unig" + "Mynediad ystafell" + "Nid yw gofodau\'n cael eu cefnogi ar hyn o bryd" + "Aelodau gofod" + "Bydd angen cyfeiriad ystafell arnoch er mwyn ei wneud yn weladwy yn y cyfeiriadur ystafelloedd." + "Cyfeiriad yr ystafell" + "Unrhyw un" + "Gwelededd yr ystafell" + 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 c2833195a4..cc4db8162f 100644 --- a/features/roomdetails/impl/src/main/res/values-de/translations.xml +++ b/features/roomdetails/impl/src/main/res/values-de/translations.xml @@ -66,28 +66,19 @@ "Informationen" "Thema" "Raum wird aktualisiert…" - "Sperren" - "Sie können dem Raum nicht mehr beitreten, selbst wenn sie eingeladen werden." - "Bist du sicher, dass du dieses Mitglied sperren möchtest?" "In diesem Raum gibt es keine gesperrten Benutzer." - "%1$s wird gesperrt." "%1$d Person" "%1$d Personen" - "Mitglied entfernen und sperren" - "Mitglied entfernen" "Mitglied entfernen und sperren" "Mitglied nur entfernen" - "Mitglied entfernen und den erneuten Beitritt sperren?" "Sperre aufheben" "Die Nutzer können den Raum wieder beitreten, wenn sie dazu eingeladen werden." "Benutzer entsperren" - "Benutzerinformationen anzeigen" "Gesperrt" "Mitglieder" "Ausstehend" - "%1$s wird entfernt." "Administrator" "Moderator" "Mitglieder" 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 16d6fa18a4..33624d1779 100644 --- a/features/roomdetails/impl/src/main/res/values-el/translations.xml +++ b/features/roomdetails/impl/src/main/res/values-el/translations.xml @@ -63,28 +63,19 @@ "Πληροφορίες δωματίου" "Θέμα" "Ενημέρωση δωματίου…" - "Αποκλεισμός" - "Δεν θα μπορεί να συμμετέχει ξανά σε αυτό το δωμάτιο εάν προσκληθεί." - "Θες σίγουρα να αποκλείσεις αυτό το μέλος;" "Δεν υπάρχουν αποκλεισμένοι χρήστες σε αυτό το δωμάτιο." - "Αποκλεισμός %1$s" "%1$d άτομο" "%1$d άτομα" - "Αφαίρεση και αποκλεισμός μέλους" - "Αφαίρεση από το δωμάτιο" "Αφαίρεση και αποκλεισμός μέλους" "Μόνο αφαίρεση μέλους" - "Αφαίρεση μέλους και απαγόρευση συμμετοχής στο μέλλον;" "Αναίρεση αποκλεισμού" "Θα μπορεί να συμμετάσχει ξανά στο δωμάτιο εάν προσκληθεί." "Άρση αποκλεισμού χρήστη" - "Προβολή προφίλ" "Αποκλεισμένοι" "Μέλη" "Σε αναμονή" - "Αφαίρεση %1$s…" "Διαχειριστής" "Συντονιστής" "Μέλη δωματίου" diff --git a/features/roomdetails/impl/src/main/res/values-es/translations.xml b/features/roomdetails/impl/src/main/res/values-es/translations.xml index 42e3ec8315..c98d65b90a 100644 --- a/features/roomdetails/impl/src/main/res/values-es/translations.xml +++ b/features/roomdetails/impl/src/main/res/values-es/translations.xml @@ -66,28 +66,19 @@ "Información de la sala" "Tema" "Actualizando la sala…" - "Vetar" - "No podrán volver a unirse a esta sala si son invitados." - "¿Estás seguro de que quieres vetar a este miembro?" "No hay usuarios vetados en esta sala." - "Vetando a %1$s" "Una persona" "%1$d personas" - "Sacar y vetar a un miembro" - "Sacar de la sala" "Sacar y vetar a un miembro" "Solo eliminar miembro" - "¿Sacar al miembro y prohibirle unirse en el futuro?" "Quitar veto" "Podrán volver a unirse a esta sala si son invitados de nuevo." "Quitar veto al usuario" - "Ver perfil" "Vetados" "Miembros" "Pendiente" - "Eliminando %1$s…" "Admin" "Moderador" "Miembros de la sala" 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 16f3d852b1..9fb14d85ec 100644 --- a/features/roomdetails/impl/src/main/res/values-et/translations.xml +++ b/features/roomdetails/impl/src/main/res/values-et/translations.xml @@ -66,31 +66,19 @@ "Jututoa teave" "Teema" "Uuendame jututuba…" - "Sea suhtluskeeld" - "Ta ei saa selle jututoaga liituda isegi kutse olemasolul." - "Kas sa oled kindel, et soovid sellele kasutajale seada suhtluskeelu?" "Jututoas pole suhtluskeeluga kasutajaid" - "Seame kasutajale %1$s suhtluskeelu" "%1$d osaleja" "%1$d osalejat" - "Eemalda" - "Uue kutse saamisel on tal võimalik selle jututoaga uuesti liituda." - "Kas sa oled kindel, et soovid selle osaleja eemaldada?" - "Eemalda ja sea suhtluskeeld" - "Eemalda kasutaja jututoast" "Eemalda ja sea suhtluskeeld" "Ainult eemalda kasutaja" - "Kas eemaldama kasutaja ja seame talle tulevikuks suhtluskeelu?" "Eemalda suhtluskeeld" "Kutse olemasolul saab ta nüüd jututoaga uuesti liituda" "Eemalda kasutaja suhtluskeeld" - "Vaata profiili" "Suhtluskeeluga kasutajad" "Liikmed" "Ootel" - "Eemaldame kasutajat %1$s…" "Peakasutaja" "Moderaator" "Jututoas osalejad" diff --git a/features/roomdetails/impl/src/main/res/values-eu/translations.xml b/features/roomdetails/impl/src/main/res/values-eu/translations.xml index ecbdc614d4..bd2a370942 100644 --- a/features/roomdetails/impl/src/main/res/values-eu/translations.xml +++ b/features/roomdetails/impl/src/main/res/values-eu/translations.xml @@ -62,26 +62,18 @@ "Gelaren informazioa" "Gaia" "Gela eguneratzen…" - "Ezarri debekua" - "Ziur kide honi debekua ezarri nahi diozula?" "Gela honetan ez dago debekua ezarri zaion erabiltzailerik." - "%1$s(r)i debekua ezartzen" "Pertsona %1$d" "%1$d pertsona" - "Kendu kidea eta ezarri debekua" - "Kendu gelatik" "Kendu kidea eta ezarri debekua" "Kendu kidea soilik" - "Kidea kendu eta etorkizunean sartzea debekatu?" "Kendu debekua" "Kendu debekua erabiltzaileari" - "Ikusi profila" "Debekatuta" "Kideak" "Zain" - "%1$s kentzen…" "Kudeatzailea" "Moderatzailea" "Gelako kideak" diff --git a/features/roomdetails/impl/src/main/res/values-fa/translations.xml b/features/roomdetails/impl/src/main/res/values-fa/translations.xml index 491435d52d..062ce0949c 100644 --- a/features/roomdetails/impl/src/main/res/values-fa/translations.xml +++ b/features/roomdetails/impl/src/main/res/values-fa/translations.xml @@ -56,19 +56,13 @@ "اطّلاعات اتاق" "موضوع" "به‌روز کردن اتاق…" - "تحریم" - "تحریم کردن %1$s" - "برداشت و تحریم عضو" - "برداشتن از اتاق" "برداشت و تحریم عضو" "تنها برداشتن عضو" "رفع انسداد" "تحریم نکردن کاربر" - "دیدن نمایه" "محروم" "اعضا" "منتظر" - "برداشتن %1$s…" "مدیر" "ناظمر" "اعضای اتاق" diff --git a/features/roomdetails/impl/src/main/res/values-fi/translations.xml b/features/roomdetails/impl/src/main/res/values-fi/translations.xml index a1e0d29e3a..82314e3b68 100644 --- a/features/roomdetails/impl/src/main/res/values-fi/translations.xml +++ b/features/roomdetails/impl/src/main/res/values-fi/translations.xml @@ -66,28 +66,19 @@ "Huoneen tiedot" "Aihe" "Muokataan huonetta…" - "Anna porttikielto" - "He eivät voi enää liittyä tähän huoneeseen, jos heidät kutsutaan." - "Haluatko varmasti antaa tälle jäsenelle porttikiellon?" "Tässä huoneessa ei ole porttikieltoja" - "Annetaan porttikieltoa käyttäjälle %1$s" "%1$d henkilö" "%1$d henkilöä" - "Poista jäsen huoneesta ja anna porttikielto" - "Poista huoneesta" "Poista jäsen huoneesta ja anna porttikielto" "Poista vain jäsen huoneesta" - "Poistetaanko jäsen huoneesta ja kielletäänkö heitä liittymästä tulevaisuudessa?" "Poista porttikielto" "He voivat liittyä tähän huoneeseen uudelleen, jos heidät kutsutaan." "Poista käyttäjän porttikielto" - "Näytä profiili" "Porttikiellot" "Jäsenet" "Kutsuttu" - "Poistetaan käyttäjää %1$s huoneesta…" "Ylläpitäjä" "Valvoja" "Huoneen jäsenet" diff --git a/features/roomdetails/impl/src/main/res/values-fr/translations.xml b/features/roomdetails/impl/src/main/res/values-fr/translations.xml index e407265c4e..fc311b403f 100644 --- a/features/roomdetails/impl/src/main/res/values-fr/translations.xml +++ b/features/roomdetails/impl/src/main/res/values-fr/translations.xml @@ -66,28 +66,19 @@ "Informations du salon" "Sujet" "Mise à jour du salon…" - "Bannir" - "L‘utilisateur ne pourra pas rejoindre le salon à nouveau, même si il est invité." - "Êtes-vous certain de vouloir bannir ce membre ?" "Il n’y a pas d’utilisateur banni dans ce salon." - "Bannissement de %1$s" "%1$d personne" "%1$d personnes" - "Retirer et bannir ce membre" - "Retirer le membre du salon" "Retirer et bannir ce membre" "Retirer le membre uniquement" - "Retirer le membre et interdire l’adhésion à l’avenir ?" "Débannir" - "Cet utilisateur pourra rejoindre le salon à nouveau si il est invité." + "Il pourra rejoindre le salon à nouveau si il est invité." "Débannir l’utilisateur" - "Voir le profil" "Bannis" "Membres" "En attente" - "Enlever %1$s…" "Administrateur" "Modérateur" "Membres du salon" 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 e9cec9a02a..775379ad32 100644 --- a/features/roomdetails/impl/src/main/res/values-hu/translations.xml +++ b/features/roomdetails/impl/src/main/res/values-hu/translations.xml @@ -66,31 +66,19 @@ "Szobainformációk" "Téma" "Szoba frissítése…" - "Kitiltás" - "Többé nem csatlakozhat ehhez a szobához, akkor sem, ha meghívják." - "Biztos, hogy kitiltja ezt a tagot?" "Ebben a szobában nincsenek kitiltott felhasználók." - "%1$s kitiltása" "%1$d személy" "%1$d személy" - "Eltávolítás" - "Ehhez a szobához is csatlakozhat, ha meghívják." - "Biztos, hogy eltávolítja ezt a tagot?" - "Eltávolítás és a tag kitiltása" - "Eltávolítás a szobából" "Eltávolítás és a tag kitiltása" "Csak a tag eltávolítása" - "Eltávolítja a tagot, és megtiltja a jövőbeni csatlakozást?" "Tiltás feloldása" "Ehhez a szobához is csatlakozhat, ha meghívják." "Felhasználó tiltásának feloldása" - "Profil megtekintése" "Kitiltva" "Tagok" "Függőben" - "%1$s eltávolítása…" "Adminisztrátor" "Moderátor" "Szoba tagjai" 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 99c763ca9f..23ca7b6c6c 100644 --- a/features/roomdetails/impl/src/main/res/values-in/translations.xml +++ b/features/roomdetails/impl/src/main/res/values-in/translations.xml @@ -63,27 +63,18 @@ "Info ruangan" "Topik" "Memperbarui ruangan…" - "Cekal" - "Mereka tidak akan dapat bergabung ke ruangan ini lagi jika diundang." - "Apakah Anda yakin ingin mencekal anggota ini?" "Tidak ada pengguna yang dicekal dalam ruangan ini." - "Mencekal %1$s" "%1$d orang" - "Keluarkan dan cekal anggota" - "Keluarkan dari ruangan" "Keluarkan dan cekal anggota" "Hanya keluarkan anggota" - "Keluarkan pengguna dan cekal pengguna bergabung lagi di masa mendatang?" "Batalkan pencekalan" "Pengguna dapat bergabung ke ruangan ini lagi jika diundang." "Batalkan pencekalan pengguna" - "Tampilkan profil" "Tercekal" "Anggota" "Tertunda" - "Mengeluarkan %1$s…" "Admin" "Moderator" "Anggota ruangan" diff --git a/features/roomdetails/impl/src/main/res/values-it/translations.xml b/features/roomdetails/impl/src/main/res/values-it/translations.xml index 5ba1ecea09..54de5f5407 100644 --- a/features/roomdetails/impl/src/main/res/values-it/translations.xml +++ b/features/roomdetails/impl/src/main/res/values-it/translations.xml @@ -66,28 +66,19 @@ "Informazioni sulla stanza" "Argomento" "Aggiornamento della stanza…" - "Escludi" - "Non potrà entrare nuovamente in questa stanza se invitato." - "Vuoi davvero escludere questo membro?" "Non ci sono utenti esclusi in questa stanza." - "Esclusione di %1$s" "1 persona" "%1$d persone" - "Rimuovi ed escludi" - "Rimuovi dalla stanza" "Rimuovi ed escludi" "Rimuovi soltanto" - "Rimuovere e vietare l\'accesso in futuro?" "Riammetti" "Potrà entrare nuovamente in questa stanza se invitato." "Riammetti utente" - "Visualizza profilo" "Esclusi" "Membri" "In attesa" - "Rimozione di %1$s…" "Amministratore" "Moderatore" "Membri della stanza" diff --git a/features/roomdetails/impl/src/main/res/values-ka/translations.xml b/features/roomdetails/impl/src/main/res/values-ka/translations.xml index c4a019ec9e..a3a3954148 100644 --- a/features/roomdetails/impl/src/main/res/values-ka/translations.xml +++ b/features/roomdetails/impl/src/main/res/values-ka/translations.xml @@ -55,28 +55,19 @@ "ოთახის ინფორმაცია" "თემა" "ოთახის განახლება…" - "დაბლოკვა" - "მოწვევის შემთხვევაში ამ ოთახში კვლავ გაწევრიანებას ვერ შეძლებენ." - "დარწმუნებული ხართ, რომ ამ წევრის დაბლოკვა გსურთ?" "ამ ოთახში არაა დაბლოკილი მომხმარებლები." - "%1$s-ს დაბლოკვა" "%1$d ადამიანი" "%1$d ადამიანი" - "წევრის წაშლა და დაბლოკვა" - "ოთახიდან გაგდება" "წევრის წაშლა და დაბლოკვა" "მხოლოდ წევრის წაშლა" - "გსურთ წევრის გაგდება და მომავალში გაწევრიანების აკრძალვა?" "განბლოკვა" "მოწვევის შემთხვევაში განბლოკილი მომხმარებელი ისევ შეძლებს ოთახს შეუერთდეს." "მომხმარებლის განბლოკვა" - "პროფილის ნახვა" "დაბლოკილები" "წევრები" "მომლოდინე" - "%1$s-ს გაგდება…" "ადმინისტრატორი" "მოდერატორი" "ოთახის წევრები" diff --git a/features/roomdetails/impl/src/main/res/values-lt/translations.xml b/features/roomdetails/impl/src/main/res/values-lt/translations.xml new file mode 100644 index 0000000000..792ce9cf82 --- /dev/null +++ b/features/roomdetails/impl/src/main/res/values-lt/translations.xml @@ -0,0 +1,25 @@ + + + "Pridėti temą" + "Jau narys" + "Jau pakviestas" + "Redaguoti kambarį" + "Įvyko nežinoma klaida ir informacijos pakeisti nepavyko." + "Nepavyko atnaujinti kambario" + "Žinutės yra užrakintos. Tik Jūs ir gavėjai turite unikalius raktus joms atrakinti." + "Įjungtas žinučių šifravimas" + "Pakviesti žmonių" + "Palikti kambarį" + "Kambario pavadinimas" + "Saugumas" + "Bendrinti kambarį" + "Tema" + "Atnaujinamas kambarys…" + + "%1$d asmuo" + "%1$d asmenys" + "%1$d asmenų" + + "Laukiama" + "Kambario nariai" + 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 5ed7599258..924f7a2eff 100644 --- a/features/roomdetails/impl/src/main/res/values-nb/translations.xml +++ b/features/roomdetails/impl/src/main/res/values-nb/translations.xml @@ -66,28 +66,19 @@ "Informasjon om rommet" "Emne" "Oppdaterer rommet …" - "Utesteng" - "De vil ikke kunne bli med i dette rommet igjen hvis de blir invitert." - "Er du sikker på at du vil utestenge dette medlemmet?" "Det er ingen utestengte brukere i dette rommet." - "Utestenger %1$s" "%1$d person" "%1$d personer" - "Fjern og utesteng medlem" - "Fjern fra rommet" "Fjern og utesteng medlem" "Bare fjern medlem" - "Fjerne medlem og utestenge fra å bli med i fremtiden?" "Opphev utestengelse" "De vil kunne bli med i dette rommet igjen hvis de blir invitert." "Opphev utestengelse av bruker" - "Vis profil" "Utestengt" "Medlemmer" "Venter" - "Fjerner %1$s…" "Administrator" "Moderator" "Medlemmer av rommet" @@ -124,18 +115,33 @@ "Alle kan be om å bli med i rommet, men en administrator eller moderator må godta forespørselen." "Be om å bli med" "Ja, aktiver kryptering" + "Når kryptering for et rom er aktivert, kan den ikke deaktiveres. Meldingshistorikken vil bare være synlig for rommedlemmer siden de ble invitert eller siden de ble med i rommet. +Ingen andre enn rommedlemmene vil kunne lese meldingene. Dette kan føre til at bots og broer ikke fungerer som de skal. +Vi anbefaler ikke å aktivere kryptering for rom som hvem som helst kan finne og bli med i." "Vil du aktivere kryptering?" "Når kryptering er aktivert, kan det ikke deaktiveres." "Kryptering" "Aktiver ende-til-ende-kryptering" "Alle kan finne og bli med" + "Alle" "Folk kan bare bli med hvis de er invitert" "Kun for inviterte" + "Tilgang til rom" "Områder støttes ikke for øyeblikket" "Medlemmer av område" + "Du trenger en adresse til rommet for å gjøre rommet synlig i romkatalogen." "Romadresse" + "Tillat at dette rommet blir funnet ved å søke %1$s offentlig romkatalog" "Synlig i offentlig romkatalog" + "Alle" + "Hvem kan lese historikk" "Medlemmer bare siden de ble invitert" + "Kun medlemmer siden du valgte dette alternativet" + "Romadresser er måter å finne og få tilgang til rom på. Dette sikrer også at du enkelt kan dele rommet ditt med andre. +Du kan velge å publisere rommet ditt i hjemeserverens offentlige romkatalog." + "Publisering av rom" + "Romadresser er en måte å finne og få tilgang til rommene på. Dette sikrer også at du enkelt kan dele rommet ditt med andre. +Adressen er også nødvendig for å gjøre rommet synlig i den offentlige romkatalogen på %1$s." "Romsynlighet" "Sikkerhet og personvern" 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 301fd600d9..2b190fc4db 100644 --- a/features/roomdetails/impl/src/main/res/values-nl/translations.xml +++ b/features/roomdetails/impl/src/main/res/values-nl/translations.xml @@ -7,11 +7,11 @@ "Personen verbannen" "Berichten verwijderen" "Iedereen" - "Personen uitnodigen" + "Nodig personen uit en accepteer verzoeken om deel te nemen" "Moderatie van leden" "Berichten en inhoud" "Beheerders en moderators" - "Personen verwijderen" + "Verwijder personen en weiger verzoeken om deel te nemen" "Kamerafbeelding wijzigen" "Kamergegevens" "Kamernaam wijzigen" @@ -60,28 +60,19 @@ "Kamer info" "Onderwerp" "Kamer bijwerken…" - "Verbannen" - "Ze kunnen niet meer toetreden tot deze kamer als ze worden uitgenodigd." - "Weet je zeker dat je dit lid wilt verbannen?" "Er zijn geen verbannen gebruikers in deze kamer." - "%1$s verbannen" "%1$d persoon" "%1$d personen" - "Lid verwijderen en verbannen" - "Verwijderen uit kamer" "Lid verwijderen en verbannen" "Alleen lid verwijderen" - "Lid verwijderen en toekomstige deelname verbieden?" "Ontbannen" "Ze kunnen opnieuw tot de kamer toetreden als ze worden uitgenodigd." "Ontban gebruiker" - "Profiel bekijken" "Verbannen" "Leden" "In behandeling" - "%1$s wordt verwijderd…" "Beheerder" "Moderator" "Kamerleden" 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 3d8954e760..d13337096d 100644 --- a/features/roomdetails/impl/src/main/res/values-pl/translations.xml +++ b/features/roomdetails/impl/src/main/res/values-pl/translations.xml @@ -66,29 +66,20 @@ "Informacje pokoju" "Temat" "Aktualizuję pokój…" - "Zbanuj" - "Nie będą mogli ponownie dołączyć do tego pokoju, jeśli zostaną zaproszeni." - "Czy na pewno chcesz zbanować tego członka?" "W tym pokoju nie ma zbanowanych użytkowników." - "Banowanie %1$s" "%1$d osoba" "%1$d osoby" "%1$d osób" - "Usuń i zbanuj członka" - "Usuń z pokoju" "Usuń i zbanuj członka" "Tylko usuń członka" - "Usunąć członka i zablokować możliwość dołączenia w przyszłości?" "Odbanuj" "Będą mogli ponownie dołączyć do tego pokoju, jeśli zostaną zaproszeni." "Odbanuj użytkownika" - "Wyświetl profil" "Zbanowanych" "Członków" "Oczekujące" - "Usuwanie %1$s…" "Administrator" "Moderator" "Członkowie pokoju" diff --git a/features/roomdetails/impl/src/main/res/values-pt-rBR/translations.xml b/features/roomdetails/impl/src/main/res/values-pt-rBR/translations.xml index f7e4d5f9e0..c9e5c53c23 100644 --- a/features/roomdetails/impl/src/main/res/values-pt-rBR/translations.xml +++ b/features/roomdetails/impl/src/main/res/values-pt-rBR/translations.xml @@ -1,23 +1,28 @@ "Ocorreu um erro ao atualizar a configuração de notificação." + "Seu servidor doméstico não suporta esta opção em salas criptografadas. Você pode não ser notificado em algumas salas." "Enquetes" "Somente administradores" "Banir pessoas" "Remover mensagens" "Todos" - "Convidar pessoas" + "Convide pessoas e aceite solicitações de entrada" "Moderação de membros" "Mensagens e conteúdo" "Administradores e moderadores" - "Remover pessoas" + "Remover pessoas e recusar solicitações de entrada" "Alterar avatar da sala" "Detalhes da sala" "Alterar nome da sala" "Alterar tópico da sala" "Enviar mensagens" "Editar administradores" + "Você não poderá desfazer essa ação. Você está promovendo o usuário a ter o mesmo nível de poder que você." "Adicionar administrador?" + "Reduzir privilégio" + "Você não poderá desfazer essa alteração, pois estará se rebaixando. Se você for o último usuário privilegiado na sala, será impossível recuperar os privilégios." + "Reduzir seu próprio privilégio?" "Editar moderadores" "Administradores" "Moderadores" @@ -47,25 +52,18 @@ "Compartilhar sala" "Tópico" "Atualizando a sala…" - "Banir" - "Tem certeza de que quer banir este membro?" - "Banindo %1$s" "%1$d pessoa" "%1$d pessoas" - "Remover e banir membro" - "Remover da sala" "Remover e banir membro" "Somente remover membro" - "Remover membro e banir de entrar novamente no futuro?" "Desbanir" + "Eles poderão entrar nesta sala novamente se forem convidados." "Desbanir usuário" - "Ver perfil" "Banidos" "Membros" "Pendente" - "Removendo %1$s…" "Administrador" "Moderador" "Membros da sala" @@ -80,6 +78,7 @@ "Ocorreu um erro ao carregar as configurações de notificação." "Falha ao restaurar o modo padrão, tente novamente." "Falha ao definir o modo, tente novamente." + "Seu servidor doméstico não suporta esta opção em salas criptografadas, você não será notificado nesta sala." "Todas as mensagens" "Somente menções e palavras-chave" "Nesta sala, notifique-me para" 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 7bc9f38097..8eadbeed09 100644 --- a/features/roomdetails/impl/src/main/res/values-pt/translations.xml +++ b/features/roomdetails/impl/src/main/res/values-pt/translations.xml @@ -66,28 +66,19 @@ "Informação da sala" "Descrição" "A atualizar sala…" - "Banir" - "Não poderão voltar a entrar nesta sala, mesmo se forem convidados." - "Tens a certeza que queres banir este participante?" "Não há nenhum utilizador banido desta sala." - "A banir %1$s" "%1$d pessoa" "%1$d pessoas" - "Remover e banir participante" - "Remover da sala" "Remover e banir participante" "Remover apenas" - "Remover participante e proibir que entre no futuro?" "Anular banimento" "Poderão juntar-se novamente a esta sala se forem convidados." "Anular banimento do utilizador" - "Ver perfil" "Banidos" "Participantes" "Pendente" - "A remover %1$s…" "Administrador" "Moderador" "Participantes" 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 38c9fdc5c1..622278dc64 100644 --- a/features/roomdetails/impl/src/main/res/values-ro/translations.xml +++ b/features/roomdetails/impl/src/main/res/values-ro/translations.xml @@ -60,28 +60,19 @@ "Informatii camera" "Subiect" "Se actualizează camera…" - "Interzicere" - "Nu se vor putea alătura din nou acestei camere dacă sunt invitați." - "Sunteți sigur că doriți să interziceți acest membru?" "Nu există utilizatori interziși în această cameră." - "Se interzice %1$s" "o persoană" "%1$d persoane" - "Eliminați și interziceți membrul" - "Înlăturați membrul" "Eliminați și interziceți membrul" "Doar înlăturare" - "Înlăturați membrul și interziceți-i să se alăture în viitor?" "Anulare excludere" "Se vor putea alătura din nou acestei săli dacă sunt invitați." "Anulați interzicerea utilizatorului" - "Vizualizare profil" "Excluși" "Membri" "În așteptare" - "Se elimină %1$s" "Administrator" "Moderator" "Membrii camerei" 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 7c984f573e..77d0b94eb3 100644 --- a/features/roomdetails/impl/src/main/res/values-ru/translations.xml +++ b/features/roomdetails/impl/src/main/res/values-ru/translations.xml @@ -66,29 +66,20 @@ "Информация о комнате" "Тема" "Обновление комнаты…" - "Заблокировать" - "Они не смогут снова присоединиться к этой комнате, если их пригласят." - "Вы уверены, что хотите заблокировать этого участника?" "В этой комнате нет заблокированных пользователей." - "Блокировка %1$s" "%1$d пользователь" "%1$d пользователя" "%1$d пользователей" - "Удалить и заблокировать участника" - "Удалить участника из комнаты" "Удалить и заблокировать участника" "Только удалить участника" - "Удалить участника и запретить присоединяться в будущем?" "Разблокировать" "Они снова смогут присоединиться в эту комнату если их пригласят." "Разбанить пользователя?" - "Посмотреть профиль" "Заблокированные" "Участники" "В ожидании" - "Удаление %1$s…" "Администратор" "Модератор" "Участники комнаты" diff --git a/features/roomdetails/impl/src/main/res/values-sk/translations.xml b/features/roomdetails/impl/src/main/res/values-sk/translations.xml index 39e2fccaa9..a78ccb9885 100644 --- a/features/roomdetails/impl/src/main/res/values-sk/translations.xml +++ b/features/roomdetails/impl/src/main/res/values-sk/translations.xml @@ -66,32 +66,20 @@ "Informácie o miestnosti" "Téma" "Aktualizácia miestnosti…" - "Zakázať" - "Nebudú sa môcť pripojiť k tejto miestnosti znova ani ak budú pozvaní." - "Ste si istý, že chcete zakázať tohto člena?" "V tejto miestnosti nie sú žiadni zakázaní používatelia." - "Zakazuje sa %1$s" "%1$d osoba" "%1$d osoby" "%1$d osôb" - "Odstrániť" - "V prípade pozvania sa budú môcť znova pripojiť k tejto miestnosti." - "Ste si istý, že chcete odstrániť tohto člena?" - "Odstrániť a zakázať člena" - "Odstrániť z miestnosti" "Odstrániť a zakázať člena" "Iba odstrániť člena" - "Odstrániť člena a zakázať vstup v budúcnosti?" "Zrušiť zákaz" "V prípade pozvania sa budú môcť znova pripojiť k tejto miestnosti." "Zrušiť zákaz používateľa" - "Zobraziť profil" "Zakázaní" "Členovia" "Čaká sa" - "Odstraňuje sa %1$s…" "Administrátor" "Moderátor" "Členovia miestnosti" 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 988c1dfdbc..a576036c45 100644 --- a/features/roomdetails/impl/src/main/res/values-sv/translations.xml +++ b/features/roomdetails/impl/src/main/res/values-sv/translations.xml @@ -66,31 +66,19 @@ "Rumsinfo" "Ämne" "Uppdaterar rummet …" - "Banna" - "Denne kommer inte att kunna gå med i det här rummet igen om denne bjuds in." - "Är du säker på att du vill banna den här medlemmen?" "Det finns inga bannade användare i det här rummet." - "Bannar %1$s" "%1$d person" "%1$d personer" - "Ta bort" - "Denne kommer kunna gå med i rummet igen om denne bjuds in" - "Är du säker på att du vill ta bort den här medlemmen?" - "Ta bort och banna medlem" - "Ta bort från rummet" "Ta bort och banna medlem" "Ta bara bort medlem" - "Ta bort medlem och banna från att gå med i framtiden?" "Avbanna" "Denne kommer kunna gå med i rummet igen om denne bjuds in" "Avbanna användare" - "Visa profil" "Bannade" "Medlemmar" "Väntar" - "Tar bort %1$s …" "Admin" "Moderator" "Rumsmedlemmar" diff --git a/features/roomdetails/impl/src/main/res/values-tr/translations.xml b/features/roomdetails/impl/src/main/res/values-tr/translations.xml index f3dfc3f336..67a8845821 100644 --- a/features/roomdetails/impl/src/main/res/values-tr/translations.xml +++ b/features/roomdetails/impl/src/main/res/values-tr/translations.xml @@ -66,28 +66,19 @@ "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" 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 745c2dd029..3f8d33e720 100644 --- a/features/roomdetails/impl/src/main/res/values-uk/translations.xml +++ b/features/roomdetails/impl/src/main/res/values-uk/translations.xml @@ -66,29 +66,20 @@ "Інформація про кімнату" "Тема" "Оновлення кімнати…" - "Заблокувати" - "Він не зможе приєднатися до цієї кімнати знову, якщо його запросять." - "Ви точно хочете заблокувати цього користувача?" "У цій кімнаті немає заблокованих користувачів." - "Блокування %1$s" "%1$d особа" "%1$d особи" "%1$d осіб" - "Вилучити й заблокувати учасника" - "Вилучити з кімнати" "Вилучити й заблокувати учасника" "Лише вилучити учасника" - "Вилучити учасника та заборонити приєднання в майбутньому?" "Розблокувати" "Вони зможуть знову приєднатися до цієї кімнати, якщо їх запросять." "Розблокувати користувача" - "Переглянути профіль" "Заблоковані" "Учасники" "На розгляді" - "Вилучення %1$s…" "Адміністратор" "Модератор" "Учасники кімнати" diff --git a/features/roomdetails/impl/src/main/res/values-zh-rTW/translations.xml b/features/roomdetails/impl/src/main/res/values-zh-rTW/translations.xml index 0ab09b2fa9..ac32c3597b 100644 --- a/features/roomdetails/impl/src/main/res/values-zh-rTW/translations.xml +++ b/features/roomdetails/impl/src/main/res/values-zh-rTW/translations.xml @@ -66,27 +66,18 @@ "聊天室資訊" "主題" "正在更新聊天室…" - "加入黑名單" - "即使收到邀請,他們仍然無法加入聊天室。" - "您確定要將此成員加入黑名單?" "此聊天室沒有黑名單。" - "正在將 %1$s 加入黑名單" "%1$d 位夥伴" - "踢出並加入黑名單" - "踢出聊天室" "踢出並加入黑名單" "僅移除成員" - "移除成員並禁止未來再度加入?" "解除黑名單" "如果收到邀請,他們能再次加入聊天室。" "解除黑名單" - "查看個人檔案" "黑名單" "成員" "待定" - "正在踢出 %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 10a6e19265..367741e4ef 100644 --- a/features/roomdetails/impl/src/main/res/values-zh/translations.xml +++ b/features/roomdetails/impl/src/main/res/values-zh/translations.xml @@ -66,27 +66,18 @@ "聊天室信息" "主题" "正在更新聊天室……" - "封禁" - "即使受到邀请,他们也无法再次加入聊天室。" - "您确定要封禁该成员吗?" "此聊天室里没有被封禁的用户。" - "封禁 %1$s" "%1$d 人" - "移除并封禁成员" - "从聊天室移除" "移除并封禁成员" "仅移除成员" - "删除成员并禁止重新加入?" "取消封禁" "如果受到邀请,他们可以重新加入聊天室。" "解封用户" - "查看个人资料" "已封禁用户" "成员" "待处理" - "正在移除 %1$s……" "管理员" "协管员" "聊天室成员" diff --git a/features/roomdetails/impl/src/main/res/values/localazy.xml b/features/roomdetails/impl/src/main/res/values/localazy.xml index fb2cfc686e..883f300bff 100644 --- a/features/roomdetails/impl/src/main/res/values/localazy.xml +++ b/features/roomdetails/impl/src/main/res/values/localazy.xml @@ -66,31 +66,19 @@ "Room info" "Topic" "Updating room…" - "Ban" - "They won’t be able to join this room again if invited." - "Are you sure you want to ban this member?" "There are no banned users in this room." - "Banning %1$s" "%1$d person" "%1$d people" - "Remove" - "They will be able to join this room again if invited." - "Are you sure you want to remove this member?" - "Remove and ban member" - "Remove from room" - "Remove and ban member" + "Ban from room" "Only remove member" - "Remove member and ban from joining in the future?" "Unban" "They will be able to join this room again if invited." "Unban user" - "View profile" "Banned" "Members" "Pending" - "Removing %1$s…" "Admin" "Moderator" "Room members" diff --git a/features/roomdetails/impl/src/test/kotlin/io/element/android/features/roomdetails/impl/members/moderation/RoomMembersModerationViewTest.kt b/features/roomdetails/impl/src/test/kotlin/io/element/android/features/roomdetails/impl/members/moderation/RoomMembersModerationViewTest.kt index 14c550d0c4..b501c808c7 100644 --- a/features/roomdetails/impl/src/test/kotlin/io/element/android/features/roomdetails/impl/members/moderation/RoomMembersModerationViewTest.kt +++ b/features/roomdetails/impl/src/test/kotlin/io/element/android/features/roomdetails/impl/members/moderation/RoomMembersModerationViewTest.kt @@ -72,7 +72,7 @@ class RoomMembersModerationViewTest { state = state, onDisplayMemberProfile = callback ) - rule.clickOn(R.string.screen_room_member_list_manage_member_user_info) + rule.clickOn(CommonStrings.screen_bottom_sheet_manage_room_member_member_user_info) } } @@ -92,7 +92,7 @@ class RoomMembersModerationViewTest { rule.setRoomMembersModerationView( state = state, ) - rule.clickOn(R.string.screen_room_member_list_manage_member_remove) + rule.clickOn(CommonStrings.screen_bottom_sheet_manage_room_member_remove) // Give time for the bottom sheet to animate rule.mainClock.advanceTimeBy(1_000) eventsRecorder.assertSingle(RoomMembersModerationEvents.KickUser) @@ -129,7 +129,7 @@ class RoomMembersModerationViewTest { ) val reason = rule.activity.getString(CommonStrings.common_reason) rule.onNodeWithText(reason).performTextInput(A_REASON) - rule.clickOn(R.string.screen_room_member_list_kick_member_confirmation_action) + rule.clickOn(CommonStrings.screen_bottom_sheet_manage_room_member_kick_member_confirmation_action) eventsRecorder.assertSingle(RoomMembersModerationEvents.DoKickUser(reason = A_REASON)) } @@ -146,7 +146,7 @@ class RoomMembersModerationViewTest { state = state, ) // Note: the string key semantics is not perfect here :/ - rule.clickOn(R.string.screen_room_member_list_kick_member_confirmation_action) + rule.clickOn(CommonStrings.screen_bottom_sheet_manage_room_member_kick_member_confirmation_action) eventsRecorder.assertSingle(RoomMembersModerationEvents.DoKickUser(reason = "")) } @@ -205,7 +205,7 @@ class RoomMembersModerationViewTest { ) val reason = rule.activity.getString(CommonStrings.common_reason) rule.onNodeWithText(reason).performTextInput(A_REASON) - rule.clickOn(R.string.screen_room_member_list_ban_member_confirmation_action) + rule.clickOn(CommonStrings.screen_bottom_sheet_manage_room_member_ban_member_confirmation_action) eventsRecorder.assertSingle(RoomMembersModerationEvents.DoBanUser(reason = A_REASON)) } @@ -222,7 +222,7 @@ class RoomMembersModerationViewTest { state = state, ) // Note: the string key semantics is not perfect here :/ - rule.clickOn(R.string.screen_room_member_list_ban_member_confirmation_action) + rule.clickOn(CommonStrings.screen_bottom_sheet_manage_room_member_ban_member_confirmation_action) eventsRecorder.assertSingle(RoomMembersModerationEvents.DoBanUser(reason = "")) } diff --git a/features/roomlist/impl/src/main/res/values-cy/translations.xml b/features/roomlist/impl/src/main/res/values-cy/translations.xml new file mode 100644 index 0000000000..a3ae4d7bd1 --- /dev/null +++ b/features/roomlist/impl/src/main/res/values-cy/translations.xml @@ -0,0 +1,19 @@ + + + "Adferwch eich hunaniaeth cryptograffig a hanes negeseuon gydag allwedd adfer os ydych wedi colli eich holl ddyfeisiau presennol." + "Gosod adfer" + "Gosodwch adferiad i ddiogelu eich cyfrif" + "Cadarnhewch eich allwedd adfer i gynnal mynediad i\'ch storfa allweddi a\'ch hanes negeseuon." + "Rhowch eich allwedd adfer" + "Wedi anghofio\'ch allwedd adfer?" + "Dyw eich allwedd storfa heb ei gydweddu" + "Er mwyn sicrhau fyddwch chi ddim yn colli galwad bwysig, newidiwch eich gosodiadau i ganiatáu hysbysiadau sgrin lawn pan fydd eich ffôn wedi\'i gloi." + "Gwella profiad eich galwadau" + "Anfonwyd y cais i ymuno" + "Gwahoddiadau" + "Pobl" + "Ystafelloedd" + "Sgyrsiau" + "Marcio fel wedi\'i ddarllen" + "Marcio fel heb ei ddarllen" + diff --git a/features/roomlist/impl/src/main/res/values-lt/translations.xml b/features/roomlist/impl/src/main/res/values-lt/translations.xml new file mode 100644 index 0000000000..37e9003c20 --- /dev/null +++ b/features/roomlist/impl/src/main/res/values-lt/translations.xml @@ -0,0 +1,15 @@ + + + "Ar tikrai norite atmesti kvietimą prisijungti prie %1$s?" + "Atmesti kvietimą" + "Ar tikrai norite atmesti šį privatų pokalbį su %1$s ?" + "Atmesti pokalbį" + "Jokių kvietimų" + "%1$s(%2$s) pakvietė Jus" + "Sukurti naują pokalbį arba kambarį" + "Kvietimai" + "Žmonės" + "Pokalbiai" + "Panašu, kad naudojate naują įrenginį. Patvirtinkite naudodami kitą įrenginį, kad galėtumėte pasiekti savo šifruotas žinutes." + "Patvirtinkite, kad tai Jūs" + 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 15cfe25708..7e4de08fae 100644 --- a/features/roomlist/impl/src/main/res/values-nb/translations.xml +++ b/features/roomlist/impl/src/main/res/values-nb/translations.xml @@ -3,6 +3,7 @@ "Gjenopprett din kryptografiske identitet og meldingshistorikk med en gjenopprettingsnøkkel hvis du har mistet alle dine brukte enheter." "Konfigurer gjenoppretting" "Konfigurer gjenoppretting for å beskytte kontoen din" + "Verifiser gjenopprettingsnøkkelen for å opprettholde tilgangen til nøkkellageret og meldingshistorikken." "Skriv inn gjenopprettingsnøkkelen din" "Har du glemt din gjenopprettingsnøkkel?" "Nøkkellagringen din er ikke synkronisert" @@ -21,10 +22,14 @@ "Kom i gang med å sende meldinger til noen." "Ingen chatter ennå." "Favoritter" + "Du kan legge til en chat blant favorittene dine i chat-innstillingene. +Inntil videre kan du velge bort filtre for å se de andre chattene dine" "Du har ikke favorittchatter ennå" "Invitasjoner" "Du har ingen ventende invitasjoner." "Lav prioritet" + "Du kan velge bort filtre for å se de andre chattene dine" + "Du har ikke chatter for dette utvalget" "Personer" "Du har ingen DM-er ennå" "Rom" 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 2b3462981b..425e21d5ed 100644 --- a/features/roomlist/impl/src/main/res/values-nl/translations.xml +++ b/features/roomlist/impl/src/main/res/values-nl/translations.xml @@ -1,8 +1,10 @@ + "Herstel je cryptografische identiteit en berichtengeschiedenis met een herstelsleutel voor als je al je bestaande apparaten kwijt bent." "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" + "Herstel instellen om je account te beschermen" + "Bevestig je herstelsleutel om toegang te houden tot je sleutelopslag en berichtengeschiedenis." + "Je sleutelopslag is niet gesynchroniseerd" "Pas je instellingen aan om meldingen op het volledige scherm toe te staan wanneer de telefoon is vergrendeld. Zo mis je nooit een belangrijk gesprek." "Verbeter je gesprekservaring" "Weet je zeker dat je de uitnodiging om toe te treden tot %1$s wilt weigeren?" 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 fa89f05d83..e7fa45e779 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 @@ -1,8 +1,9 @@ "Configurar a recuperação" + "Confirme sua chave de recuperação para manter o acesso ao seu armazenamento de chaves e histórico de mensagens." "Esqueceu sua chave de recuperação?" - "Insira sua chave de recuperação" + "Seu armazenamento de chaves está fora de sincronia" "Tem certeza de que deseja recusar o convite para ingressar em %1$s?" "Recusar convite" "Tem certeza de que deseja recusar esse chat privado com %1$s?" @@ -15,9 +16,12 @@ "Comece enviando uma mensagem para alguém." "Ainda não há conversas." "Favoritos" + "Você pode adicionar um bate-papo aos seus favoritos nas configurações de bate-papo. +Por enquanto, você pode desmarcar os filtros para ver seus outros bate-papos" "Você não tem nenhuma conversa favorita ainda" "Convites" "Baixa prioridade" + "Você pode desmarcar filtros para ver suas outras conversas" "Você não tem conversas para esta seleção" "Pessoas" "Você não tem nenhum conversa privada ainda" diff --git a/features/securebackup/impl/src/main/res/values-cy/translations.xml b/features/securebackup/impl/src/main/res/values-cy/translations.xml new file mode 100644 index 0000000000..09449fbaff --- /dev/null +++ b/features/securebackup/impl/src/main/res/values-cy/translations.xml @@ -0,0 +1,10 @@ + + + "Gosod adfer" + "Bydd dileu storfa allweddi\'n tynnu eich hunaniaeth cryptograffig a\'ch allweddi neges o\'r gweinydd ac yn diffodd y nodweddion diogelwch canlynol:" + "Rhowch eich allwedd adfer" + "Ysgrifennwch yr allwedd adfer hon yn rhywle diogel, fel rheolwr cyfrinair, nodyn wedi\'i amgryptio, neu mewn man dan glo." + "Cadwch eich allwedd adfer yn rhywle diogel" + "Gosod adfer" + "Digwyddodd gwall anhysbys. Gwiriwch fod cyfrinair eich cyfrif yn gywir a cheisio eto." + diff --git a/features/securebackup/impl/src/main/res/values-eu/translations.xml b/features/securebackup/impl/src/main/res/values-eu/translations.xml index 6041c88418..3cb643a04c 100644 --- a/features/securebackup/impl/src/main/res/values-eu/translations.xml +++ b/features/securebackup/impl/src/main/res/values-eu/translations.xml @@ -15,6 +15,7 @@ "Jarraitu argibideak berreskuratze-gako berri bat sortzeko" "Gorde berreskuratze-gako berria pasahitz-kudeatzaile batean edo enkriptatutako ohar batean" "Berrezarri zure kontuaren enkriptazioa beste gailu bat erabiliz" + "Jarraitu berrezarpenarekin" "Ezin duzu baieztatu? Zure identitatea berrezarri beharko duzu." "Desaktibatu" "Enkriptatutako mezuak galduko dituzu gailu guztietan saioa amaitzen baduzu." diff --git a/features/securebackup/impl/src/main/res/values-nb/translations.xml b/features/securebackup/impl/src/main/res/values-nb/translations.xml index 1123e3ef2c..518e23e070 100644 --- a/features/securebackup/impl/src/main/res/values-nb/translations.xml +++ b/features/securebackup/impl/src/main/res/values-nb/translations.xml @@ -4,13 +4,16 @@ "Slå på sikkerhetskopiering" "Lagre din kryptografiske identitet og meldingsnøkler sikkert på serveren. Dette gjør at du kan se meldingshistorikken din på alle nye enheter. %1$s." "Nøkkellagring" + "Nøkkellagring må være slått på for å konfigurere gjenoppretting." "Last opp nøkler fra denne enheten" + "Tillat nøkkellagring" "Endre gjenopprettingsnøkkel" "Gjenopprett din kryptografiske identitet og meldingshistorikk med en gjenopprettingsnøkkel hvis du har mistet alle dine brukte enheter." "Skriv inn gjenopprettingsnøkkel" "Nøkkellagringen din er for øyeblikket ikke synkronisert." "Konfigurer gjenoppretting" "Få tilgang til de krypterte meldingene dine hvis du mister alle enhetene dine eller blir logget ut av %1$s overalt." + "Åpne %1$s på en datamaskin" "Logg på kontoen din igjen" "Når du blir bedt om å verifisere din enhet, velger du %1$s" "Tilbakestill alt" @@ -26,6 +29,7 @@ "Slå av" "Du mister de krypterte meldingene dine hvis du er logget ut av alle enheter." "Er du sikker på at du vil slå av sikkerhetskopiering?" + "Sletting av nøkkellagring vil fjerne din kryptografiske identitet og meldingsnøkler fra serveren og deaktivere følgende sikkerhetsfunksjoner:" "Du vil ikke ha kryptert meldingshistorikk på nye enheter" "Du mister tilgangen til de krypterte meldingene dine hvis du er logget ut av %1$s overalt" "Er du sikker på at du vil slå av nøkkellagring og slette den?" @@ -36,8 +40,10 @@ "Endre gjenopprettingsnøkkelen?" "Opprett ny gjenopprettingsnøkkel" "Sørg for at ingen kan se denne skjermen!" + "Prøv igjen for å verifisere tilgangen til nøkkellageret ditt." "Feil gjenopprettingsnøkkel" "Hvis du har en sikkerhetsnøkkel eller sikkerhetsfrase, vil dette også fungere." + "Angi…" "Har du mistet gjenopprettingsnøkkelen?" "Gjenopprettingsnøkkel bekreftet" "Skriv inn gjenopprettingsnøkkelen din" @@ -49,6 +55,7 @@ "Lagre gjenopprettingsnøkkelen på et trygt sted" "Du vil ikke ha tilgang til den nye gjenopprettingsnøkkelen etter dette trinnet." "Har du lagret gjenopprettingsnøkkelen din?" + "Nøkkellagringen din er beskyttet av en gjenopprettingsnøkkel. Hvis du trenger en ny gjenopprettingsnøkkel etter konfigureringen, kan du opprette den på nytt ved å velge «Endre gjenopprettingsnøkkel»." "Generer gjenopprettingsnøkkelen din" "Ikke del dette med noen!" "Gjenopprettingsoppsett vellykket" @@ -57,6 +64,7 @@ "Denne prosessen kan ikke angres." "Er du sikker på at du vil tilbakestille identiteten din?" "En ukjent feil har oppstått. Vennligst sjekk at passordet ditt er riktig og prøv igjen." + "Angi…" "Bekreft at du vil tilbakestille identiteten din." "Skriv inn passordet til kontoen din for å fortsette" diff --git a/features/securebackup/impl/src/main/res/values-nl/translations.xml b/features/securebackup/impl/src/main/res/values-nl/translations.xml index 30f8362ed6..047f06d3fe 100644 --- a/features/securebackup/impl/src/main/res/values-nl/translations.xml +++ b/features/securebackup/impl/src/main/res/values-nl/translations.xml @@ -3,10 +3,10 @@ "Back-up uitschakelen" "Back-up inschakelen" "Sla je cryptografische identiteit en berichtsleutels veilig op de server op. Zo kun je je berichtgeschiedenis bekijken op nieuwe apparaten. %1$s." - "Back-up" + "Sleutelopslag" "Herstelsleutel wijzigen" "Voer herstelsleutel in" - "Je chatback-up is momenteel niet gesynchroniseerd." + "Je sleutelopslag is momenteel niet gesynchroniseerd." "Herstelmogelijkheid instellen" "Krijg toegang tot je versleutelde berichten als je al je apparaten kwijtraakt of overal uit %1$s bent uitgelogd." "Open %1$s op een desktopapparaat" @@ -36,7 +36,7 @@ "Herstelsleutel wijzigen?" "Maak een nieuwe herstelsleutel" "Zorg ervoor dat niemand dit scherm kan zien!" - "Probeer het opnieuw om toegang tot je chatback-up te bevestigen." + "Probeer het opnieuw om toegang tot je sleutelopslag te bevestigen." "Onjuiste herstelsleutel" "Als je een beveiligingssleutel of beveiligingszin hebt, werkt dit ook." "Voer in…" diff --git a/features/securebackup/impl/src/main/res/values-pt-rBR/translations.xml b/features/securebackup/impl/src/main/res/values-pt-rBR/translations.xml index 240698bd56..0f378ca615 100644 --- a/features/securebackup/impl/src/main/res/values-pt-rBR/translations.xml +++ b/features/securebackup/impl/src/main/res/values-pt-rBR/translations.xml @@ -22,6 +22,7 @@ "Chave de recuperação alterada" "Alterar chave de recuperação?" "Certifique-se de que ninguém possa ver essa tela!" + "Tente novamente para confirmar o acesso ao seu armazenamento de chaves." "Chave de recuperação incorreta" "Se você tiver uma chave de segurança ou frase de segurança, isso também funcionará." "Inserir…" diff --git a/features/userprofile/shared/src/main/res/values-cy/translations.xml b/features/userprofile/shared/src/main/res/values-cy/translations.xml new file mode 100644 index 0000000000..3e936f7a76 --- /dev/null +++ b/features/userprofile/shared/src/main/res/values-cy/translations.xml @@ -0,0 +1,10 @@ + + + "Rhwystro" + "Rhwystro defnyddiwr" + "Dad-rwystro" + "Rhwystro" + "Rhwystro defnyddiwr" + "Proffil" + "Dad-rwystro" + diff --git a/features/userprofile/shared/src/main/res/values-lt/translations.xml b/features/userprofile/shared/src/main/res/values-lt/translations.xml new file mode 100644 index 0000000000..327d8ffc2b --- /dev/null +++ b/features/userprofile/shared/src/main/res/values-lt/translations.xml @@ -0,0 +1,16 @@ + + + "Blokuoti" + "Užblokuoti vartotojai negalės siųsti Jums žinučių, ir visos jų žinutės bus paslėptos. Galėsite juos atblokuoti bet kuriuo metu." + "Blokuoti vartotoją" + "Atblokuoti" + "Vėl galėsite matyti visas iš jų gautas žinutes." + "Atblokuoti vartotoją" + "Blokuoti" + "Užblokuoti vartotojai negalės siųsti Jums žinučių, ir visos jų žinutės bus paslėptos. Galėsite juos atblokuoti bet kuriuo metu." + "Blokuoti vartotoją" + "Atblokuoti" + "Vėl galėsite matyti visas iš jų gautas žinutes." + "Atblokuoti vartotoją" + "Bandant pradėti pokalbį įvyko klaida" + diff --git a/features/userprofile/shared/src/main/res/values-nl/translations.xml b/features/userprofile/shared/src/main/res/values-nl/translations.xml index 7acdb58bdb..ce8bebad41 100644 --- a/features/userprofile/shared/src/main/res/values-nl/translations.xml +++ b/features/userprofile/shared/src/main/res/values-nl/translations.xml @@ -13,5 +13,6 @@ "Deblokkeren" "Je zult alle berichten van hen weer kunnen zien." "Gebruiker deblokkeren" + "Verifieer %1$s" "Er is een fout opgetreden bij het starten van een chat" diff --git a/features/verifysession/impl/src/main/res/values-cy/translations.xml b/features/verifysession/impl/src/main/res/values-cy/translations.xml new file mode 100644 index 0000000000..2e7e3a1024 --- /dev/null +++ b/features/verifysession/impl/src/main/res/values-cy/translations.xml @@ -0,0 +1,5 @@ + + + "Mewngofnodwyd" + "Methodd y gwirio" + diff --git a/features/verifysession/impl/src/main/res/values-lt/translations.xml b/features/verifysession/impl/src/main/res/values-lt/translations.xml new file mode 100644 index 0000000000..0fd7a2e755 --- /dev/null +++ b/features/verifysession/impl/src/main/res/values-lt/translations.xml @@ -0,0 +1,18 @@ + + + "Kažkas atrodo ne taip. Baigėsi užklausos skirtasis laikas arba užklausa buvo atmesta." + "Patvirtinkite, kad žemiau esantys jaustukai atitinka tuos, kurie rodomi kitoje sesijoje." + "Palyginkite jaustukus" + "Jūsų nauja sesija dabar patvirtinta. Ji turi prieigą prie jūsų užšifruotų pranešimų, o kiti vartotojai matys ją kaip patikimą." + "Įrodykite, kad tai Jūs, norėdami pasiekti savo užšifruotų pranešimų istoriją." + "Atidaryti esamą sesiją" + "Pakartoti patvirtinimą" + "Aš pasiruošęs" + "Laukiama atitikimo…" + "Palyginkite unikalius jaustukus, įsitikindami, kad jie rodomi ta pačia tvarka." + "Jie nesutampa" + "Jie sutampa" + "Kitoje sesijoje priimkite prašymą pradėti tikrinimo procesą, kad galėtumėte tęsti." + "Laukiama prašymo priėmimo" + "Atsijungiama…" + 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 88148f2a0a..afb8298a20 100644 --- a/features/verifysession/impl/src/main/res/values-nb/translations.xml +++ b/features/verifysession/impl/src/main/res/values-nb/translations.xml @@ -17,6 +17,7 @@ "Kontroller at tallene nedenfor stemmer overens med dem som vises på den andre sesjonen." "Sammenlign tallene" "Den nye sesjonen din er nå bekreftet. Den har tilgang til de krypterte meldingene dine, og andre brukere vil se den som klarert." + "Nå kan du stole på identiteten til denne brukeren når du sender eller mottar meldinger." "Skriv inn gjenopprettingsnøkkel" "Enten ble forespørselen tidsavbrutt, forespørselen ble avslått eller det var en feil i verifiseringen." "Bevis at det er deg for å få tilgang til den krypterte meldingshistorikken din." @@ -40,6 +41,7 @@ "Åpne appen på en annen bekreftet enhet" "For ekstra sikkerhet, verifiser denne brukeren ved å sammenligne et sett med emojier på enhetene dine. Gjør dette ved å bruke en pålitelig måte å kommunisere på." "Vil du verifisere denne brukeren?" + "For ekstra sikkerhet vil en annen bruker bekrefte identiteten din. Du får se et sett med emojier som du må sammenligne." "Du skal se en popup på den andre enheten. Start bekreftelsen derfra nå." "Start verifiseringen på den andre enheten" "Venter på den andre enheten" 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 6e4c7644ee..54797b1244 100644 --- a/features/verifysession/impl/src/main/res/values-nl/translations.xml +++ b/features/verifysession/impl/src/main/res/values-nl/translations.xml @@ -24,7 +24,11 @@ "Wachten om te vergelijken" "Vergelijk een unieke combinatie van emoji\'s." "Vergelijk de unieke emoji\'s, ze dienen in dezelfde volgorde te worden weergegeven." + "Ingelogd" + "Ga alleen verder als je deze verificatie hebt gestart." + "Verifieer het andere apparaat om je berichtengeschiedenis veilig te houden." "Apparaat geverifieerd" + "Verificatieverzocht" "Ze komen niet overeen" "Ze komen overeen" "Accepteer het verzoek tot verificatie in je andere sessie om door te gaan." diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index e7af576f45..d95511c4be 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -3,29 +3,24 @@ [versions] # Project -android_gradle_plugin = "8.9.1" +android_gradle_plugin = "8.9.2" kotlin = "2.1.20" kotlinpoet = "2.1.0" ksp = "2.1.20-2.0.0" firebaseAppDistribution = "5.1.1" # AndroidX -core = "1.15.0" -# Warning: there is an issue with 1.1.0 and 1.1.1, that I cannot repro on unit test. -# To repro with the application: -# Clear the storage of the application and run the app. Nearly each time, there is an infinite loading -# due to the DefaultMigrationStore not behaving as expected. -# Stick to 1.0.0 for now, and ensure that this scenario cannot be reproduced when upgrading the version. -datastore = "1.0.0" +core = "1.16.0" +datastore = "1.1.4" constraintlayout = "2.2.1" constraintlayout_compose = "1.1.1" lifecycle = "2.8.7" activity = "1.10.1" -media3 = "1.6.0" +media3 = "1.6.1" camera = "1.4.2" # Compose -compose_bom = "2025.03.01" +compose_bom = "2025.04.00" composecompiler = "1.5.15" # Coroutines @@ -53,7 +48,7 @@ telephoto = "0.15.1" dependencyAnalysis = "2.16.0" # DI -dagger = "2.56.1" +dagger = "2.56.2" anvil = "0.4.1" # Auto service @@ -172,16 +167,16 @@ showkase = { module = "com.airbnb.android:showkase", version.ref = "showkase" } showkase_processor = { module = "com.airbnb.android:showkase-processor", version.ref = "showkase" } jsoup = "org.jsoup:jsoup:1.19.1" appyx_core = { module = "com.bumble.appyx:core", version.ref = "appyx" } -molecule-runtime = "app.cash.molecule:molecule-runtime:2.0.0" +molecule-runtime = "app.cash.molecule:molecule-runtime:2.1.0" timber = "com.jakewharton.timber:timber:5.0.1" -matrix_sdk = "org.matrix.rustcomponents:sdk-android:25.4.8" +matrix_sdk = "org.matrix.rustcomponents:sdk-android:25.4.22" 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" } sqldelight-driver-jvm = { module = "app.cash.sqldelight:sqlite-driver", version.ref = "sqldelight" } sqldelight-coroutines = { module = "app.cash.sqldelight:coroutines-extensions", version.ref = "sqldelight" } sqlcipher = "net.zetetic:android-database-sqlcipher:4.5.4" -sqlite = "androidx.sqlite:sqlite-ktx:2.4.0" +sqlite = "androidx.sqlite:sqlite-ktx:2.5.0" unifiedpush = "com.github.UnifiedPush:android-connector:2.4.0" otaliastudios_transcoder = "com.otaliastudios:transcoder:0.11.2" vanniktech_blurhash = "com.vanniktech:blurhash:0.3.0" @@ -195,13 +190,13 @@ opusencoder = "io.element.android:opusencoder:1.1.0" zxing_cpp = "io.github.zxing-cpp:android:2.3.0" # Analytics -posthog = "com.posthog:posthog-android:3.13.1" -sentry = "io.sentry:sentry-android:8.6.0" +posthog = "com.posthog:posthog-android:3.14.0" +sentry = "io.sentry:sentry-android:8.8.0" # main branch can be tested replacing the version with main-SNAPSHOT matrix_analytics_events = "com.github.matrix-org:matrix-analytics-events:0.28.0" # Emojibase -matrix_emojibase_bindings = "io.element.android:emojibase-bindings:1.3.4" +matrix_emojibase_bindings = "io.element.android:emojibase-bindings:1.4.2" sigpwned_emoji4j = "com.sigpwned:emoji4j-core:16.0.0" # Di diff --git a/libraries/androidutils/src/main/kotlin/io/element/android/libraries/androidutils/browser/ChromeCustomTab.kt b/libraries/androidutils/src/main/kotlin/io/element/android/libraries/androidutils/browser/ChromeCustomTab.kt index d4292a2773..8e6bf24f91 100644 --- a/libraries/androidutils/src/main/kotlin/io/element/android/libraries/androidutils/browser/ChromeCustomTab.kt +++ b/libraries/androidutils/src/main/kotlin/io/element/android/libraries/androidutils/browser/ChromeCustomTab.kt @@ -9,12 +9,12 @@ package io.element.android.libraries.androidutils.browser import android.app.Activity import android.content.ActivityNotFoundException -import android.net.Uri import android.os.Bundle import android.provider.Browser import androidx.browser.customtabs.CustomTabColorSchemeParams import androidx.browser.customtabs.CustomTabsIntent import androidx.browser.customtabs.CustomTabsSession +import androidx.core.net.toUri import io.element.android.libraries.androidutils.system.openUrlInExternalApp import java.util.Locale @@ -58,7 +58,7 @@ fun Activity.openUrlInChromeCustomTab( putString("Accept-Language", Locale.getDefault().toLanguageTag()) }) } - .launchUrl(this, Uri.parse(url)) + .launchUrl(this, url.toUri()) } catch (activityNotFoundException: ActivityNotFoundException) { openUrlInExternalApp(url) } diff --git a/libraries/androidutils/src/main/kotlin/io/element/android/libraries/androidutils/compat/AudioManager.kt b/libraries/androidutils/src/main/kotlin/io/element/android/libraries/androidutils/compat/AudioManager.kt new file mode 100644 index 0000000000..5e77d0d00a --- /dev/null +++ b/libraries/androidutils/src/main/kotlin/io/element/android/libraries/androidutils/compat/AudioManager.kt @@ -0,0 +1,70 @@ +/* + * 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.androidutils.compat + +import android.media.AudioDeviceInfo +import android.media.AudioManager +import android.os.Build +import io.element.android.libraries.core.data.tryOrNull +import timber.log.Timber + +fun AudioManager.enableExternalAudioDevice() { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) { + // The list of device types that are considered as communication devices, sorted by likelihood of it being used for communication. + val wantedDeviceTypes = listOf( + // Paired bluetooth device with microphone + AudioDeviceInfo.TYPE_BLUETOOTH_SCO, + // USB devices which can play or record audio + AudioDeviceInfo.TYPE_USB_HEADSET, + AudioDeviceInfo.TYPE_USB_DEVICE, + AudioDeviceInfo.TYPE_USB_ACCESSORY, + // Wired audio devices + AudioDeviceInfo.TYPE_WIRED_HEADSET, + AudioDeviceInfo.TYPE_WIRED_HEADPHONES, + // The built-in speaker of the device + AudioDeviceInfo.TYPE_BUILTIN_SPEAKER, + // The built-in earpiece of the device + AudioDeviceInfo.TYPE_BUILTIN_EARPIECE, + ) + val devices = availableCommunicationDevices + val selectedDevice = devices.minByOrNull { + wantedDeviceTypes.indexOf(it.type).let { index -> + // If the device type is not in the wantedDeviceTypes list, we give it a low priority + if (index == -1) Int.MAX_VALUE else index + } + } + selectedDevice?.let { device -> + Timber.d("Audio device selected, type: ${device.type}") + tryOrNull( + onError = { failure -> + Timber.e(failure, "Audio: exception when setting communication device") + } + ) { + setCommunicationDevice(device).also { + if (!it) { + Timber.w("Audio: unable to set the communication device") + } + } + } + } + } else { + // If we don't have access to the new APIs, use the deprecated ones + @Suppress("DEPRECATION") + isSpeakerphoneOn = true + } +} + +fun AudioManager.disableExternalAudioDevice() { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) { + clearCommunicationDevice() + } else { + // If we don't have access to the new APIs, use the deprecated ones + @Suppress("DEPRECATION") + isSpeakerphoneOn = false + } +} diff --git a/libraries/androidutils/src/main/kotlin/io/element/android/libraries/androidutils/system/SystemUtils.kt b/libraries/androidutils/src/main/kotlin/io/element/android/libraries/androidutils/system/SystemUtils.kt index ed4fd31d4c..8e45262da1 100644 --- a/libraries/androidutils/src/main/kotlin/io/element/android/libraries/androidutils/system/SystemUtils.kt +++ b/libraries/androidutils/src/main/kotlin/io/element/android/libraries/androidutils/system/SystemUtils.kt @@ -19,6 +19,7 @@ import android.widget.Toast import androidx.activity.result.ActivityResultLauncher import androidx.annotation.RequiresApi import androidx.core.content.pm.PackageInfoCompat +import androidx.core.net.toUri import io.element.android.libraries.androidutils.R import io.element.android.libraries.androidutils.compat.getApplicationInfoCompat import io.element.android.libraries.core.mimetype.MimeTypes @@ -121,7 +122,7 @@ fun Context.startInstallFromSourceIntent( noActivityFoundMessage: String = getString(R.string.error_no_compatible_app_found), ) { val intent = Intent(Settings.ACTION_MANAGE_UNKNOWN_APP_SOURCES) - .setData(Uri.parse("package:$packageName")) + .setData("package:$packageName".toUri()) try { activityResultLauncher.launch(intent) } catch (activityNotFoundException: ActivityNotFoundException) { @@ -165,7 +166,7 @@ fun Context.openUrlInExternalApp( url: String, errorMessage: String = getString(R.string.error_no_compatible_app_found), ) { - val intent = Intent(Intent.ACTION_VIEW, Uri.parse(url)) + val intent = Intent(Intent.ACTION_VIEW, url.toUri()) if (this !is Activity) { intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK) } diff --git a/libraries/androidutils/src/main/kotlin/io/element/android/libraries/androidutils/uri/UriExtensions.kt b/libraries/androidutils/src/main/kotlin/io/element/android/libraries/androidutils/uri/UriExtensions.kt index 411dbda511..bef2a50183 100644 --- a/libraries/androidutils/src/main/kotlin/io/element/android/libraries/androidutils/uri/UriExtensions.kt +++ b/libraries/androidutils/src/main/kotlin/io/element/android/libraries/androidutils/uri/UriExtensions.kt @@ -8,7 +8,8 @@ package io.element.android.libraries.androidutils.uri import android.net.Uri +import androidx.core.net.toUri const val IGNORED_SCHEMA = "ignored" -fun createIgnoredUri(path: String): Uri = Uri.parse("$IGNORED_SCHEMA://$path") +fun createIgnoredUri(path: String): Uri = "$IGNORED_SCHEMA://$path".toUri() diff --git a/libraries/androidutils/src/main/res/values-cy/translations.xml b/libraries/androidutils/src/main/res/values-cy/translations.xml new file mode 100644 index 0000000000..edd5b610d8 --- /dev/null +++ b/libraries/androidutils/src/main/res/values-cy/translations.xml @@ -0,0 +1,4 @@ + + + "Heb ganfod ap cydnaws i drin y weithred hon." + diff --git a/libraries/androidutils/src/main/res/values-lt/translations.xml b/libraries/androidutils/src/main/res/values-lt/translations.xml new file mode 100644 index 0000000000..69e6db16fa --- /dev/null +++ b/libraries/androidutils/src/main/res/values-lt/translations.xml @@ -0,0 +1,4 @@ + + + "Nerasta suderinamos programos, kuri galėtų atlikti šį veiksmą." + diff --git a/libraries/core/src/main/kotlin/io/element/android/libraries/core/mimetype/MimeTypes.kt b/libraries/core/src/main/kotlin/io/element/android/libraries/core/mimetype/MimeTypes.kt index 82c1cb2c71..357fce2feb 100644 --- a/libraries/core/src/main/kotlin/io/element/android/libraries/core/mimetype/MimeTypes.kt +++ b/libraries/core/src/main/kotlin/io/element/android/libraries/core/mimetype/MimeTypes.kt @@ -24,6 +24,7 @@ object MimeTypes { const val Jpeg = "image/jpeg" const val Gif = "image/gif" const val WebP = "image/webp" + const val Svg = "image/svg+xml" const val Videos = "video/*" const val Mp4 = "video/mp4" diff --git a/libraries/dateformatter/impl/src/main/res/values-cy/translations.xml b/libraries/dateformatter/impl/src/main/res/values-cy/translations.xml new file mode 100644 index 0000000000..0535f86e7b --- /dev/null +++ b/libraries/dateformatter/impl/src/main/res/values-cy/translations.xml @@ -0,0 +1,5 @@ + + + "%1$s am %2$s" + "Y mis hwn" + diff --git a/libraries/dateformatter/impl/src/main/res/values-de/translations.xml b/libraries/dateformatter/impl/src/main/res/values-de/translations.xml index f09a5ce4b8..e98c51e851 100644 --- a/libraries/dateformatter/impl/src/main/res/values-de/translations.xml +++ b/libraries/dateformatter/impl/src/main/res/values-de/translations.xml @@ -1,5 +1,5 @@ - "%1$sbei %2$s" + "%1$s um %2$s" "Diesen Monat" diff --git a/libraries/dateformatter/impl/src/main/res/values-nb/translations.xml b/libraries/dateformatter/impl/src/main/res/values-nb/translations.xml new file mode 100644 index 0000000000..a31d53cb43 --- /dev/null +++ b/libraries/dateformatter/impl/src/main/res/values-nb/translations.xml @@ -0,0 +1,5 @@ + + + "%1$s kl. %2$s" + "Denne måneden" + diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/avatar/Avatar.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/avatar/Avatar.kt index 1086fec9d0..6cfa911361 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/avatar/Avatar.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/avatar/Avatar.kt @@ -23,6 +23,7 @@ import androidx.compose.ui.draw.clip import androidx.compose.ui.layout.ContentScale import androidx.compose.ui.platform.LocalInspectionMode import androidx.compose.ui.semantics.clearAndSetSemantics +import androidx.compose.ui.semantics.contentDescription import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.tooling.preview.PreviewParameter import androidx.compose.ui.unit.Dp @@ -59,6 +60,7 @@ fun Avatar( avatarData = avatarData, forcedAvatarSize = forcedAvatarSize, modifier = commonModifier, + contentDescription = contentDescription, ) } else { ImageAvatar( @@ -103,11 +105,13 @@ private fun ImageAvatar( InitialsAvatar( avatarData = avatarData, forcedAvatarSize = forcedAvatarSize, + contentDescription = contentDescription, ) } else -> InitialsAvatar( avatarData = avatarData, forcedAvatarSize = forcedAvatarSize, + contentDescription = contentDescription, ) } } @@ -118,6 +122,7 @@ private fun ImageAvatar( private fun InitialsAvatar( avatarData: AvatarData, forcedAvatarSize: Dp?, + contentDescription: String?, modifier: Modifier = Modifier, ) { val avatarColors = AvatarColorsProvider.provide(avatarData.id) @@ -130,7 +135,11 @@ private fun InitialsAvatar( val lineHeight = originalFont.lineHeight * ratio Text( modifier = Modifier - .clearAndSetSemantics {} + .clearAndSetSemantics { + contentDescription?.let { + this.contentDescription = it + } + } .align(Alignment.Center), text = avatarData.initial, style = originalFont.copy(fontSize = fontSize, lineHeight = lineHeight, letterSpacing = 0.sp), diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/preferences/PreferenceDropdown.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/preferences/PreferenceDropdown.kt index 44bd714f26..7be47338ca 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/preferences/PreferenceDropdown.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/preferences/PreferenceDropdown.kt @@ -99,9 +99,10 @@ fun PreferenceDropdown( */ interface DropdownOption { /** - * The text to display for this option. + * Returns the text to be displayed for this option. */ - val text: String + @Composable + fun getText(): String } @Composable @@ -123,7 +124,7 @@ private fun DropdownTrailingContent( verticalAlignment = Alignment.CenterVertically, ) { Text( - text = selectedOption?.text.orEmpty(), + text = selectedOption?.getText().orEmpty(), maxLines = 1, style = ElementTheme.typography.fontBodyMdRegular, color = ElementTheme.colors.textSecondary, @@ -139,7 +140,7 @@ private fun DropdownTrailingContent( DropdownMenuItem( text = { Text( - text = option.text, + text = option.getText(), style = ElementTheme.typography.fontBodyMdRegular ) }, @@ -158,13 +159,16 @@ private fun DropdownTrailingContent( internal fun PreferenceDropdownPreview() = ElementThemedPreview { val options = listOf( object : DropdownOption { - override val text = "Option 1" + @Composable + override fun getText(): String = "Option 1" }, object : DropdownOption { - override val text = "Option 2" + @Composable + override fun getText(): String = "Option 2" }, object : DropdownOption { - override val text = "Option 3" + @Composable + override fun getText(): String = "Option 3" }, ).toImmutableList() diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/IconColorButton.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/IconColorButton.kt index 8e7407c6ac..cc863bcf8d 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/IconColorButton.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/IconColorButton.kt @@ -19,13 +19,11 @@ import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.draw.clip import androidx.compose.ui.graphics.vector.ImageVector -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.ui.strings.CommonStrings /** * Button with colored background. @@ -35,6 +33,7 @@ import io.element.android.libraries.ui.strings.CommonStrings fun IconColorButton( onClick: () -> Unit, imageVector: ImageVector, + contentDescription: String?, modifier: Modifier = Modifier, buttonSize: ButtonSize = ButtonSize.Large, iconColorButtonStyle: IconColorButtonStyle = IconColorButtonStyle.Primary, @@ -55,7 +54,7 @@ fun IconColorButton( .background(bgColor) .padding(buttonSize.toContainerPadding()), imageVector = imageVector, - contentDescription = stringResource(CommonStrings.action_close), + contentDescription = contentDescription, tint = ElementTheme.colors.iconOnSolidPrimary ) } @@ -101,6 +100,7 @@ internal fun IconColorButtonPreview() = ElementPreview { IconColorButton( onClick = {}, imageVector = CompoundIcons.Close(), + contentDescription = null, buttonSize = size, iconColorButtonStyle = style, ) diff --git a/libraries/eventformatter/impl/src/main/res/values-lt/translations.xml b/libraries/eventformatter/impl/src/main/res/values-lt/translations.xml new file mode 100644 index 0000000000..9fb1486d59 --- /dev/null +++ b/libraries/eventformatter/impl/src/main/res/values-lt/translations.xml @@ -0,0 +1,57 @@ + + + "(taip pat buvo pakeistas ir avataras)" + "%1$s pakeitė savo avatarą" + "Jūs pakeitėte savo avatarą" + "%1$s pakeitė savo slapyvardį iš %2$s į %3$s" + "Jūs pakeitėte savo slapyvardį iš %1$s į %2$s" + "%1$s pašalino savo slapyvardį (jis buvo %2$s)" + "Jūs pašalinote savo slapyvardį (jis buvo %1$s)" + "%1$s pakeitė savo slapyvardį į %2$s" + "Jūs nustatėte savo slapyvardį į %1$s" + "%1$s pakeitė kambario avatarą" + "Jūs pakeitėte kambario avatarą" + "%1$s pašalino kambario avatarą" + "Jūs pašalinote kambario avatarą" + "%1$s uždraudė %2$s" + "Jūs uždraudėte %1$s" + "%1$s sukūrė kambarį" + "Jūs sukūrėte kambarį" + "%1$s pakvietė %2$s" + "%1$s priėmė kvietimą" + "Priėmėte kvietimą" + "Jūs pakvietėte %1$s" + "%1$s pakvietė Jus" + "%1$s prisijungė prie kambario" + "Jūs prisijungėte prie kambario" + "%1$s prašo prisijungti" + "%1$s suteikė prieigą %2$s" + "Jūs leidote %1$s prisijungti" + "Jūs paprašėte prisijungti" + "%1$s atmetė %2$s prisijungimo prašymą" + "Jūs atmetėte %1$s prisijungimo prašymą" + "%1$s atmetė Jūsų prisijungimo prašymą" + "%1$s nebenori prisijungti" + "Jūs atšaukėte savo prisijungimo prašymą" + "%1$s išėjo iš kambario" + "Jūs išėjote iš kambario" + "%1$s pakeitė kambario pavadinimą į: %2$s" + "Pakeitėte kambario pavadinimą į: %1$s" + "%1$s pašalino kambario pavadinimą" + "Jūs pašalinote kambario pavadinimą" + "%1$s atmetė kvietimą" + "Jūs atmetėte kvietimą" + "%1$s pašalino %2$s" + "Jūs pašalinote %1$s" + "%1$s išsiuntė kvietimą %2$s prisijungti prie kambario" + "Išsiuntėte kvietimą %1$s prisijungti prie kambario" + "%1$s atšaukė kvietimą %2$s prisijungti prie kambario" + "Jūs atšaukėte kvietimą %1$s prisijungti prie kambario" + "%1$s pakeitė temą į: %2$s" + "Pakeitėte temą į: %1$s" + "%1$s pašalino kambario temą" + "Jūs pašalinote kambario temą" + "%1$s panaikino uždraudimą %2$s" + "Jūs panaikinote uždraudimą %1$s" + "%1$s padarė nežinomą savo narystės pakeitimą" + diff --git a/libraries/eventformatter/impl/src/main/res/values-nl/translations.xml b/libraries/eventformatter/impl/src/main/res/values-nl/translations.xml index 1462ac4a24..4cf94798d6 100644 --- a/libraries/eventformatter/impl/src/main/res/values-nl/translations.xml +++ b/libraries/eventformatter/impl/src/main/res/values-nl/translations.xml @@ -28,8 +28,8 @@ "%1$s heeft je uitgenodigd" "%1$s is tot de kamer toegetreden" "Je bent toegetreden tot de kamer" - "%1$s heeft gevraagd om toe te treden" - "%1$s heeft %2$s toegestaan toe te treden" + "%1$s vraagt om toe te treden" + "%1$s heeft %2$s toegang verleend" "Je hebt %1$s toegestaan toe te treden" "Je hebt gevraagd om toe te treden" "%1$s heeft %2$s\'s verzoek om toe te treden afgewezen" diff --git a/libraries/eventformatter/impl/src/main/res/values-pt-rBR/translations.xml b/libraries/eventformatter/impl/src/main/res/values-pt-rBR/translations.xml index 5148cc7638..7d6bbd1edf 100644 --- a/libraries/eventformatter/impl/src/main/res/values-pt-rBR/translations.xml +++ b/libraries/eventformatter/impl/src/main/res/values-pt-rBR/translations.xml @@ -29,7 +29,7 @@ "%1$s entrou na sala" "Você entrou na sala" "%1$s solicitou entrada" - "%1$s permitiu que o %2$s entrar" + "%1$sconcedeu acesso a %2$s" "Você permitiu que o %1$s entrasse" "Você solicitou entrada" "%1$s rejeitou a solicitação de %2$s para entrar" diff --git a/libraries/fullscreenintent/impl/src/main/kotlin/io/element/android/libraries/fullscreenintent/impl/FullScreenIntentPermissionsPresenter.kt b/libraries/fullscreenintent/impl/src/main/kotlin/io/element/android/libraries/fullscreenintent/impl/FullScreenIntentPermissionsPresenter.kt index 992c345e5c..3e427b6fa6 100644 --- a/libraries/fullscreenintent/impl/src/main/kotlin/io/element/android/libraries/fullscreenintent/impl/FullScreenIntentPermissionsPresenter.kt +++ b/libraries/fullscreenintent/impl/src/main/kotlin/io/element/android/libraries/fullscreenintent/impl/FullScreenIntentPermissionsPresenter.kt @@ -9,7 +9,6 @@ package io.element.android.libraries.fullscreenintent.impl import android.content.ActivityNotFoundException import android.content.Intent -import android.net.Uri import android.os.Build import android.provider.Settings import androidx.compose.runtime.Composable @@ -17,6 +16,7 @@ import androidx.compose.runtime.collectAsState import androidx.compose.runtime.getValue import androidx.compose.runtime.rememberCoroutineScope import androidx.core.app.NotificationManagerCompat +import androidx.core.net.toUri import androidx.datastore.preferences.core.booleanPreferencesKey import androidx.datastore.preferences.core.edit import io.element.android.libraries.architecture.Presenter @@ -77,7 +77,7 @@ class FullScreenIntentPermissionsPresenter @Inject constructor( try { val intent = Intent( Settings.ACTION_MANAGE_APP_USE_FULL_SCREEN_INTENT, - Uri.parse("package:${buildMeta.applicationId}") + "package:${buildMeta.applicationId}".toUri() ) externalIntentLauncher.launch(intent) } catch (e: ActivityNotFoundException) { diff --git a/libraries/matrix/api/src/main/kotlin/io/element/android/libraries/matrix/api/exception/ClientException.kt b/libraries/matrix/api/src/main/kotlin/io/element/android/libraries/matrix/api/exception/ClientException.kt index eba1654714..56497e8fa6 100644 --- a/libraries/matrix/api/src/main/kotlin/io/element/android/libraries/matrix/api/exception/ClientException.kt +++ b/libraries/matrix/api/src/main/kotlin/io/element/android/libraries/matrix/api/exception/ClientException.kt @@ -7,10 +7,10 @@ package io.element.android.libraries.matrix.api.exception -sealed class ClientException(message: String) : Exception(message) { - class Generic(message: String) : ClientException(message) - class MatrixApi(val kind: ErrorKind, val code: String, message: String) : ClientException(message) - class Other(message: String) : ClientException(message) +sealed class ClientException(message: String, val details: String?) : Exception(message) { + class Generic(message: String, details: String?) : ClientException(message, details) + class MatrixApi(val kind: ErrorKind, val code: String, message: String, details: String?) : ClientException(message, details) + class Other(message: String) : ClientException(message, null) } fun ClientException.isNetworkError(): Boolean { diff --git a/libraries/matrix/api/src/main/kotlin/io/element/android/libraries/matrix/api/notification/NotificationData.kt b/libraries/matrix/api/src/main/kotlin/io/element/android/libraries/matrix/api/notification/NotificationData.kt index 2c77f70d0a..5ac236ad80 100644 --- a/libraries/matrix/api/src/main/kotlin/io/element/android/libraries/matrix/api/notification/NotificationData.kt +++ b/libraries/matrix/api/src/main/kotlin/io/element/android/libraries/matrix/api/notification/NotificationData.kt @@ -106,7 +106,7 @@ sealed interface NotificationContent { data object RoomServerAcl : StateEvent data object RoomThirdPartyInvite : StateEvent data object RoomTombstone : StateEvent - data object RoomTopic : StateEvent + data class RoomTopic(val topic: String) : StateEvent data object SpaceChild : StateEvent data object SpaceParent : StateEvent } diff --git a/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/RustMatrixClient.kt b/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/RustMatrixClient.kt index d3a004115f..0606318f16 100644 --- a/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/RustMatrixClient.kt +++ b/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/RustMatrixClient.kt @@ -221,6 +221,9 @@ class RustMatrixClient( override val userProfile: StateFlow = _userProfile override val ignoredUsersFlow = mxCallbackFlow> { + // Fetch the initial value manually, the SDK won't return it automatically + channel.trySend(innerClient.ignoredUsers().map(::UserId).toPersistentList()) + innerClient.subscribeToIgnoredUsers(object : IgnoredUsersListener { override fun call(ignoredUserIds: List) { channel.trySend(ignoredUserIds.map(::UserId).toPersistentList()) diff --git a/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/exception/ClientException.kt b/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/exception/ClientException.kt index b721a3211c..21b7f393a1 100644 --- a/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/exception/ClientException.kt +++ b/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/exception/ClientException.kt @@ -14,11 +14,12 @@ fun Throwable.mapClientException(): ClientException { return when (this) { is RustClientException -> { when (this) { - is RustClientException.Generic -> ClientException.Generic(msg) + is RustClientException.Generic -> ClientException.Generic(msg, details) is RustClientException.MatrixApi -> ClientException.MatrixApi( kind = kind.map(), code = code, - message = msg + message = msg, + details = details, ) } } diff --git a/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/notification/TimelineEventToNotificationContentMapper.kt b/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/notification/TimelineEventToNotificationContentMapper.kt index e05a4d7e67..cf914abe8d 100644 --- a/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/notification/TimelineEventToNotificationContentMapper.kt +++ b/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/notification/TimelineEventToNotificationContentMapper.kt @@ -62,7 +62,7 @@ private fun StateEventContent.toContent(): NotificationContent.StateEvent { StateEventContent.RoomServerAcl -> NotificationContent.StateEvent.RoomServerAcl StateEventContent.RoomThirdPartyInvite -> NotificationContent.StateEvent.RoomThirdPartyInvite StateEventContent.RoomTombstone -> NotificationContent.StateEvent.RoomTombstone - StateEventContent.RoomTopic -> NotificationContent.StateEvent.RoomTopic + is StateEventContent.RoomTopic -> NotificationContent.StateEvent.RoomTopic(topic) StateEventContent.SpaceChild -> NotificationContent.StateEvent.SpaceChild StateEventContent.SpaceParent -> NotificationContent.StateEvent.SpaceParent } diff --git a/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/permalink/DefaultMatrixToConverter.kt b/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/permalink/DefaultMatrixToConverter.kt index c578ca5cc8..9e881f18aa 100644 --- a/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/permalink/DefaultMatrixToConverter.kt +++ b/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/permalink/DefaultMatrixToConverter.kt @@ -8,6 +8,7 @@ package io.element.android.libraries.matrix.impl.permalink import android.net.Uri +import androidx.core.net.toUri import com.squareup.anvil.annotations.ContributesBinding import io.element.android.appconfig.MatrixConfiguration import io.element.android.libraries.core.extensions.replacePrefix @@ -43,7 +44,7 @@ class DefaultMatrixToConverter @Inject constructor() : MatrixToConverter { // Web or client url SUPPORTED_PATHS.any { it in uriString } -> { val path = SUPPORTED_PATHS.first { it in uriString } - Uri.parse(baseUrl + uriString.substringAfter(path)) + (baseUrl + uriString.substringAfter(path)).toUri() } // URL is not supported else -> null diff --git a/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/permalink/DefaultPermalinkParser.kt b/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/permalink/DefaultPermalinkParser.kt index d27a9a79df..80f59b9469 100644 --- a/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/permalink/DefaultPermalinkParser.kt +++ b/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/permalink/DefaultPermalinkParser.kt @@ -7,7 +7,7 @@ package io.element.android.libraries.matrix.impl.permalink -import android.net.Uri +import androidx.core.net.toUri import com.squareup.anvil.annotations.ContributesBinding import io.element.android.libraries.di.AppScope import io.element.android.libraries.matrix.api.core.EventId @@ -38,7 +38,7 @@ class DefaultPermalinkParser @Inject constructor( * https://github.com/matrix-org/matrix-doc/blob/master/proposals/1704-matrix.to-permalinks.md */ override fun parse(uriString: String): PermalinkData { - val uri = Uri.parse(uriString) + val uri = uriString.toUri() // the client or element-based domain permalinks (e.g. https://app.element.io/#/user/@chagai95:matrix.org) don't have the // mxid in the first param (like matrix.to does - https://matrix.to/#/@chagai95:matrix.org) but rather in the second after /user/ so /user/mxid // so convert URI to matrix.to to simplify parsing process diff --git a/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/room/RoomContentForwarder.kt b/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/room/RoomContentForwarder.kt index c4d2d3bc98..3a131e6a19 100644 --- a/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/room/RoomContentForwarder.kt +++ b/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/room/RoomContentForwarder.kt @@ -16,6 +16,7 @@ import io.element.android.libraries.matrix.impl.roomlist.roomOrNull import io.element.android.libraries.matrix.impl.timeline.runWithTimelineListenerRegistered import kotlinx.coroutines.CancellationException import kotlinx.coroutines.withTimeout +import org.matrix.rustcomponents.sdk.MsgLikeKind import org.matrix.rustcomponents.sdk.RoomListService import org.matrix.rustcomponents.sdk.Timeline import org.matrix.rustcomponents.sdk.TimelineItemContent @@ -42,7 +43,10 @@ class RoomContentForwarder( toRoomIds: List, timeoutMs: Long = 5000L ) { - val content = (fromTimeline.getEventTimelineItemByEventId(eventId.value).content as? TimelineItemContent.Message)?.content + val messageLikeContent = (fromTimeline.getEventTimelineItemByEventId(eventId.value).content as? TimelineItemContent.MsgLike)?.content + ?: throw ForwardEventException(toRoomIds) + + val content = (messageLikeContent.kind as? MsgLikeKind.Message)?.content ?: throw ForwardEventException(toRoomIds) val targetSlidingSyncRooms = toRoomIds.mapNotNull { roomId -> roomListService.roomOrNull(roomId.value) } diff --git a/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/room/RustRoomPreview.kt b/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/room/RustRoomPreview.kt index 88c2836a06..44c294a707 100644 --- a/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/room/RustRoomPreview.kt +++ b/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/room/RustRoomPreview.kt @@ -48,8 +48,8 @@ class RustRoomPreview( override suspend fun membershipDetails(): Result = runCatching { val details = inner.ownMembershipDetails() ?: return@runCatching null RoomMembershipDetails( - currentUserMember = RoomMemberMapper.map(details.ownRoomMember), - senderMember = details.senderRoomMember?.let { RoomMemberMapper.map(it) }, + currentUserMember = RoomMemberMapper.map(details.roomMember), + senderMember = details.senderInfo?.let { RoomMemberMapper.map(it) }, ) } diff --git a/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/timeline/item/event/EventMessageMapper.kt b/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/timeline/item/event/EventMessageMapper.kt index 8c2f8645b2..7cd12d0f38 100644 --- a/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/timeline/item/event/EventMessageMapper.kt +++ b/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/timeline/item/event/EventMessageMapper.kt @@ -23,24 +23,25 @@ import io.element.android.libraries.matrix.api.timeline.item.event.VideoMessageT import io.element.android.libraries.matrix.api.timeline.item.event.VoiceMessageType import io.element.android.libraries.matrix.impl.media.map import io.element.android.libraries.matrix.impl.timeline.reply.InReplyToMapper +import org.matrix.rustcomponents.sdk.InReplyToDetails import org.matrix.rustcomponents.sdk.MessageType +import org.matrix.rustcomponents.sdk.MsgLikeKind import org.matrix.rustcomponents.sdk.use import org.matrix.rustcomponents.sdk.FormattedBody as RustFormattedBody -import org.matrix.rustcomponents.sdk.MessageContent as Message import org.matrix.rustcomponents.sdk.MessageFormat as RustMessageFormat import org.matrix.rustcomponents.sdk.MessageType as RustMessageType class EventMessageMapper { private val inReplyToMapper by lazy { InReplyToMapper(TimelineEventContentMapper()) } - fun map(message: Message): MessageContent = message.use { - val type = it.msgType.use(this::mapMessageType) - val inReplyToEvent: InReplyTo? = it.inReplyTo?.use(inReplyToMapper::map) + fun map(message: MsgLikeKind.Message, inReplyTo: InReplyToDetails?, isThreaded: Boolean): MessageContent = message.use { + val type = it.content.msgType.use(this::mapMessageType) + val inReplyToEvent: InReplyTo? = inReplyTo?.use(inReplyToMapper::map) MessageContent( - body = it.body, + body = it.content.body, inReplyTo = inReplyToEvent, - isEdited = it.isEdited, - isThreaded = it.threadRoot != null, + isEdited = it.content.isEdited, + isThreaded = isThreaded, type = type ) } diff --git a/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/timeline/item/event/EventTimelineItemMapper.kt b/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/timeline/item/event/EventTimelineItemMapper.kt index 89661b5888..6d7ca02784 100644 --- a/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/timeline/item/event/EventTimelineItemMapper.kt +++ b/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/timeline/item/event/EventTimelineItemMapper.kt @@ -28,6 +28,7 @@ import org.matrix.rustcomponents.sdk.EventOrTransactionId import org.matrix.rustcomponents.sdk.QueueWedgeError import org.matrix.rustcomponents.sdk.Reaction import org.matrix.rustcomponents.sdk.ShieldState +import org.matrix.rustcomponents.sdk.TimelineItemContent import uniffi.matrix_sdk_common.ShieldStateCode import org.matrix.rustcomponents.sdk.EventSendState as RustEventSendState import org.matrix.rustcomponents.sdk.EventTimelineItem as RustEventTimelineItem @@ -48,7 +49,7 @@ class EventTimelineItemMapper( isOwn = isOwn, isRemote = isRemote, localSendState = localSendState?.map(), - reactions = reactions.map(), + reactions = (content as? TimelineItemContent.MsgLike)?.content?.reactions.map(), receipts = readReceipts.map(), sender = UserId(sender), senderProfile = senderProfile.map(), diff --git a/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/timeline/item/event/TimelineEventContentMapper.kt b/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/timeline/item/event/TimelineEventContentMapper.kt index 4d1de2cbfa..f383df5ccf 100644 --- a/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/timeline/item/event/TimelineEventContentMapper.kt +++ b/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/timeline/item/event/TimelineEventContentMapper.kt @@ -27,6 +27,7 @@ import io.element.android.libraries.matrix.impl.media.map import io.element.android.libraries.matrix.impl.poll.map import kotlinx.collections.immutable.toImmutableList import kotlinx.collections.immutable.toImmutableMap +import org.matrix.rustcomponents.sdk.MsgLikeKind import org.matrix.rustcomponents.sdk.TimelineItemContent import org.matrix.rustcomponents.sdk.use import uniffi.matrix_sdk_ui.RoomPinnedEventsChange @@ -54,8 +55,43 @@ class TimelineEventContentMapper( error = it.error ) } - is TimelineItemContent.Message -> { - eventMessageMapper.map(it.content) + is TimelineItemContent.MsgLike -> { + when (val kind = it.content.kind) { + is MsgLikeKind.Message -> { + val inReplyTo = it.content.inReplyTo + val isThreaded = it.content.threadRoot != null + eventMessageMapper.map(kind, inReplyTo, isThreaded) + } + is MsgLikeKind.Redacted -> { + RedactedContent + } + is MsgLikeKind.Poll -> { + PollContent( + question = kind.question, + kind = kind.kind.map(), + maxSelections = kind.maxSelections, + answers = kind.answers.map { answer -> answer.map() }.toImmutableList(), + votes = kind.votes.mapValues { vote -> + vote.value.map { userId -> UserId(userId) }.toImmutableList() + }.toImmutableMap(), + endTime = kind.endTime, + isEdited = kind.hasBeenEdited, + ) + } + is MsgLikeKind.UnableToDecrypt -> { + UnableToDecryptContent( + data = kind.msg.map() + ) + } + is MsgLikeKind.Sticker -> { + StickerContent( + filename = kind.body, + body = null, + info = kind.info.map(), + source = kind.source.map(), + ) + } + } } is TimelineItemContent.ProfileChange -> { ProfileChangeContent( @@ -65,9 +101,6 @@ class TimelineEventContentMapper( prevAvatarUrl = it.prevAvatarUrl ) } - TimelineItemContent.RedactedMessage -> { - RedactedContent - } is TimelineItemContent.RoomMembership -> { RoomMembershipContent( userId = UserId(it.userId), @@ -81,32 +114,6 @@ class TimelineEventContentMapper( content = it.content.map() ) } - is TimelineItemContent.Sticker -> { - StickerContent( - filename = it.body, - body = null, - info = it.info.map(), - source = it.source.map(), - ) - } - is TimelineItemContent.Poll -> { - PollContent( - question = it.question, - kind = it.kind.map(), - maxSelections = it.maxSelections, - answers = it.answers.map { answer -> answer.map() }.toImmutableList(), - votes = it.votes.mapValues { vote -> - vote.value.map { userId -> UserId(userId) }.toImmutableList() - }.toImmutableMap(), - endTime = it.endTime, - isEdited = it.hasBeenEdited, - ) - } - is TimelineItemContent.UnableToDecrypt -> { - UnableToDecryptContent( - data = it.msg.map() - ) - } is TimelineItemContent.CallInvite -> LegacyCallInviteContent is TimelineItemContent.CallNotify -> CallNotifyContent } diff --git a/libraries/matrix/impl/src/test/kotlin/io/element/android/libraries/matrix/impl/fixtures/factories/EventTimelineItem.kt b/libraries/matrix/impl/src/test/kotlin/io/element/android/libraries/matrix/impl/fixtures/factories/EventTimelineItem.kt index ff8fcaa78d..3b59ad903a 100644 --- a/libraries/matrix/impl/src/test/kotlin/io/element/android/libraries/matrix/impl/fixtures/factories/EventTimelineItem.kt +++ b/libraries/matrix/impl/src/test/kotlin/io/element/android/libraries/matrix/impl/fixtures/factories/EventTimelineItem.kt @@ -15,7 +15,6 @@ import org.matrix.rustcomponents.sdk.EventSendState import org.matrix.rustcomponents.sdk.EventTimelineItem import org.matrix.rustcomponents.sdk.EventTimelineItemDebugInfo import org.matrix.rustcomponents.sdk.ProfileDetails -import org.matrix.rustcomponents.sdk.Reaction import org.matrix.rustcomponents.sdk.Receipt import org.matrix.rustcomponents.sdk.ShieldState import org.matrix.rustcomponents.sdk.TimelineItemContent @@ -30,7 +29,6 @@ fun aRustEventTimelineItem( isEditable: Boolean = true, content: TimelineItemContent = aRustTimelineItemMessageContent(), timestamp: ULong = 0uL, - reactions: List = emptyList(), debugInfo: EventTimelineItemDebugInfo = anEventTimelineItemDebugInfo(), localSendState: EventSendState? = null, readReceipts: Map = emptyMap(), @@ -49,7 +47,6 @@ fun aRustEventTimelineItem( canBeRepliedTo = canBeRepliedTo, content = content, localSendState = localSendState, - reactions = reactions, readReceipts = readReceipts, origin = origin, localCreatedAt = localCreatedAt, diff --git a/libraries/matrix/impl/src/test/kotlin/io/element/android/libraries/matrix/impl/fixtures/factories/EventTimelineItemContent.kt b/libraries/matrix/impl/src/test/kotlin/io/element/android/libraries/matrix/impl/fixtures/factories/EventTimelineItemContent.kt index 9fe3a7569a..b7ea8510c2 100644 --- a/libraries/matrix/impl/src/test/kotlin/io/element/android/libraries/matrix/impl/fixtures/factories/EventTimelineItemContent.kt +++ b/libraries/matrix/impl/src/test/kotlin/io/element/android/libraries/matrix/impl/fixtures/factories/EventTimelineItemContent.kt @@ -9,16 +9,24 @@ package io.element.android.libraries.matrix.impl.fixtures.factories import org.matrix.rustcomponents.sdk.MessageContent import org.matrix.rustcomponents.sdk.MessageType +import org.matrix.rustcomponents.sdk.MsgLikeContent +import org.matrix.rustcomponents.sdk.MsgLikeKind import org.matrix.rustcomponents.sdk.TextMessageContent import org.matrix.rustcomponents.sdk.TimelineItemContent -fun aRustTimelineItemMessageContent(body: String = "Hello") = TimelineItemContent.Message( - content = MessageContent( - msgType = MessageType.Text(content = TextMessageContent(body = body, formatted = null)), - body = body, - inReplyTo = null, +fun aRustTimelineItemMessageContent(body: String = "Hello") = TimelineItemContent.MsgLike( + content = MsgLikeContent( + kind = MsgLikeKind.Message( + content = MessageContent( + msgType = MessageType.Text(content = TextMessageContent(body = body, formatted = null)), + body = body, + isEdited = false, + mentions = null, + ) + ), + reactions = emptyList(), threadRoot = null, - isEdited = false, - mentions = null, - ) + inReplyTo = null, + threadSummary = null, + ), ) diff --git a/libraries/matrix/impl/src/test/kotlin/io/element/android/libraries/matrix/impl/fixtures/factories/NotificationItem.kt b/libraries/matrix/impl/src/test/kotlin/io/element/android/libraries/matrix/impl/fixtures/factories/NotificationItem.kt index ce6b333680..7df10e623c 100644 --- a/libraries/matrix/impl/src/test/kotlin/io/element/android/libraries/matrix/impl/fixtures/factories/NotificationItem.kt +++ b/libraries/matrix/impl/src/test/kotlin/io/element/android/libraries/matrix/impl/fixtures/factories/NotificationItem.kt @@ -7,9 +7,11 @@ package io.element.android.libraries.matrix.impl.fixtures.factories +import io.element.android.libraries.matrix.api.core.ThreadId import io.element.android.libraries.matrix.impl.fixtures.fakes.FakeRustTimelineEvent import io.element.android.libraries.matrix.test.A_ROOM_NAME import io.element.android.libraries.matrix.test.A_USER_NAME +import org.matrix.rustcomponents.sdk.JoinRule import org.matrix.rustcomponents.sdk.NotificationEvent import org.matrix.rustcomponents.sdk.NotificationItem import org.matrix.rustcomponents.sdk.NotificationRoomInfo @@ -22,12 +24,14 @@ fun aRustNotificationItem( roomInfo: NotificationRoomInfo = aRustNotificationRoomInfo(), isNoisy: Boolean? = false, hasMention: Boolean? = false, + threadId: ThreadId? = null, ) = NotificationItem( event = event, senderInfo = senderInfo, roomInfo = roomInfo, isNoisy = isNoisy, hasMention = hasMention, + threadId = threadId?.value, ) fun aRustNotificationSenderInfo( @@ -47,6 +51,8 @@ fun aRustNotificationRoomInfo( joinedMembersCount: ULong = 2u, isEncrypted: Boolean? = true, isDirect: Boolean = false, + joinRule: JoinRule? = null, + isPublic: Boolean = true, ) = NotificationRoomInfo( displayName = displayName, avatarUrl = avatarUrl, @@ -54,6 +60,8 @@ fun aRustNotificationRoomInfo( joinedMembersCount = joinedMembersCount, isEncrypted = isEncrypted, isDirect = isDirect, + joinRule = joinRule, + isPublic = isPublic, ) fun aRustNotificationEventTimeline( diff --git a/libraries/matrixui/src/main/kotlin/io/element/android/libraries/matrix/ui/components/EditableAvatarView.kt b/libraries/matrixui/src/main/kotlin/io/element/android/libraries/matrix/ui/components/EditableAvatarView.kt index 1a0cd53f6d..eb46482c5c 100644 --- a/libraries/matrixui/src/main/kotlin/io/element/android/libraries/matrix/ui/components/EditableAvatarView.kt +++ b/libraries/matrixui/src/main/kotlin/io/element/android/libraries/matrix/ui/components/EditableAvatarView.kt @@ -23,9 +23,13 @@ import androidx.compose.runtime.remember 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.semantics.clearAndSetSemantics +import androidx.compose.ui.semantics.contentDescription import androidx.compose.ui.tooling.preview.PreviewParameter import androidx.compose.ui.tooling.preview.PreviewParameterProvider import androidx.compose.ui.unit.dp +import androidx.core.net.toUri import io.element.android.compound.theme.ElementTheme import io.element.android.compound.tokens.generated.CompoundIcons import io.element.android.libraries.designsystem.components.avatar.Avatar @@ -36,6 +40,7 @@ import io.element.android.libraries.designsystem.preview.PreviewsDayNight import io.element.android.libraries.designsystem.theme.components.Icon import io.element.android.libraries.testtags.TestTags import io.element.android.libraries.testtags.testTag +import io.element.android.libraries.ui.strings.CommonStrings @Composable fun EditableAvatarView( @@ -50,6 +55,7 @@ fun EditableAvatarView( modifier = modifier.fillMaxWidth(), horizontalAlignment = Alignment.CenterHorizontally, ) { + val a11yAvatar = stringResource(CommonStrings.a11y_avatar) Box( modifier = Modifier .size(avatarSize.dp) @@ -59,6 +65,9 @@ fun EditableAvatarView( indication = ripple(bounded = false), ) .testTag(TestTags.editAvatar) + .clearAndSetSemantics { + contentDescription = a11yAvatar + }, ) { when (avatarUrl?.scheme) { null, "mxc" -> { @@ -112,7 +121,7 @@ open class EditableAvatarViewUriProvider : PreviewParameterProvider { override val values: Sequence get() = sequenceOf( null, - Uri.parse("mxc://matrix.org/123456"), - Uri.parse("https://example.com/avatar.jpg"), + "mxc://matrix.org/123456".toUri(), + "https://example.com/avatar.jpg".toUri(), ) } diff --git a/libraries/matrixui/src/main/kotlin/io/element/android/libraries/matrix/ui/messages/reply/InReplyToView.kt b/libraries/matrixui/src/main/kotlin/io/element/android/libraries/matrix/ui/messages/reply/InReplyToView.kt index d3135d9fd8..1b8e8bfd26 100644 --- a/libraries/matrixui/src/main/kotlin/io/element/android/libraries/matrix/ui/messages/reply/InReplyToView.kt +++ b/libraries/matrixui/src/main/kotlin/io/element/android/libraries/matrix/ui/messages/reply/InReplyToView.kt @@ -24,7 +24,9 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.draw.clip import androidx.compose.ui.res.stringResource import androidx.compose.ui.semantics.contentDescription +import androidx.compose.ui.semantics.isTraversalGroup import androidx.compose.ui.semantics.semantics +import androidx.compose.ui.semantics.traversalIndex import androidx.compose.ui.text.font.FontStyle import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.text.style.TextOverflow @@ -58,7 +60,7 @@ fun InReplyToView( senderId = inReplyTo.senderId, senderProfile = inReplyTo.senderProfile, metadata = inReplyTo.metadata(hideImage), - modifier = modifier + modifier = modifier, ) } is InReplyToDetails.Error -> @@ -96,13 +98,18 @@ private fun ReplyToReadyContent( Spacer(modifier = Modifier.width(8.dp)) } val a11InReplyToText = stringResource(CommonStrings.common_in_reply_to, senderProfile.getDisambiguatedDisplayName(senderId)) - Column(verticalArrangement = Arrangement.SpaceBetween) { + Column( + modifier = Modifier.semantics(mergeDescendants = false) { isTraversalGroup = true }, + verticalArrangement = Arrangement.SpaceBetween + ) { SenderName( senderId = senderId, senderProfile = senderProfile, senderNameMode = SenderNameMode.Reply, modifier = Modifier.semantics { contentDescription = a11InReplyToText + isTraversalGroup = true + traversalIndex = 1f }, ) ReplyToContentText(metadata) @@ -169,6 +176,10 @@ private fun ReplyToContentText(metadata: InReplyToMetadata?) { else -> FontStyle.Normal } Row( + modifier = Modifier.semantics(mergeDescendants = false) { + isTraversalGroup = true + traversalIndex = -1f + }, verticalAlignment = Alignment.CenterVertically, ) { if (iconResourceId != null) { diff --git a/libraries/matrixui/src/main/res/values-cy/translations.xml b/libraries/matrixui/src/main/res/values-cy/translations.xml new file mode 100644 index 0000000000..2233590a87 --- /dev/null +++ b/libraries/matrixui/src/main/res/values-cy/translations.xml @@ -0,0 +1,6 @@ + + + "Anfon gwahoddiad" + "Hoffech chi ddechrau sgwrs gyda %1$s?" + "Anfon gwahoddiad?" + diff --git a/libraries/matrixui/src/main/res/values-lt/translations.xml b/libraries/matrixui/src/main/res/values-lt/translations.xml new file mode 100644 index 0000000000..e80c6ada53 --- /dev/null +++ b/libraries/matrixui/src/main/res/values-lt/translations.xml @@ -0,0 +1,4 @@ + + + "%1$s(%2$s) pakvietė Jus" + diff --git a/libraries/mediaupload/impl/src/main/kotlin/io/element/android/libraries/mediaupload/impl/AndroidMediaPreProcessor.kt b/libraries/mediaupload/impl/src/main/kotlin/io/element/android/libraries/mediaupload/impl/AndroidMediaPreProcessor.kt index 3fb96a75b3..5f662d416f 100644 --- a/libraries/mediaupload/impl/src/main/kotlin/io/element/android/libraries/mediaupload/impl/AndroidMediaPreProcessor.kt +++ b/libraries/mediaupload/impl/src/main/kotlin/io/element/android/libraries/mediaupload/impl/AndroidMediaPreProcessor.kt @@ -62,7 +62,7 @@ class AndroidMediaPreProcessor @Inject constructor( */ private const val IMAGE_SCALE_REF_SIZE = 640 - private val notCompressibleImageTypes = listOf(MimeTypes.Gif, MimeTypes.WebP) + private val notCompressibleImageTypes = listOf(MimeTypes.Gif, MimeTypes.WebP, MimeTypes.Svg) } private val contentResolver = context.contentResolver @@ -75,6 +75,10 @@ class AndroidMediaPreProcessor @Inject constructor( ): Result = withContext(coroutineDispatchers.computation) { runCatching { val result = when { + // Special case for SVG, since Android can't read its metadata or create a thumbnail, it must be sent as a file + mimeType == MimeTypes.Svg -> { + processFile(uri, mimeType) + } mimeType.isMimeTypeImage() -> { val shouldBeCompressed = compressIfPossible && mimeType !in notCompressibleImageTypes processImage(uri, mimeType, shouldBeCompressed) diff --git a/libraries/mediaviewer/impl/src/main/res/values-cy/translations.xml b/libraries/mediaviewer/impl/src/main/res/values-cy/translations.xml new file mode 100644 index 0000000000..f0ba179270 --- /dev/null +++ b/libraries/mediaviewer/impl/src/main/res/values-cy/translations.xml @@ -0,0 +1,11 @@ + + + "Ffeiliau" + "Cyfryngau" + "Fformat ffeil" + "Enw\'r ffeil" + "Dim mwy o ffeiliau i\'w dangos" + "Dim mwy o gyfryngau i\'w dangos" + "Llwythwyd gan" + "Llwythwyd i fyny ar" + diff --git a/libraries/oidc/impl/src/main/kotlin/io/element/android/libraries/oidc/impl/customtab/CustomTabHandler.kt b/libraries/oidc/impl/src/main/kotlin/io/element/android/libraries/oidc/impl/customtab/CustomTabHandler.kt index 42d1391e9f..64c21596c1 100644 --- a/libraries/oidc/impl/src/main/kotlin/io/element/android/libraries/oidc/impl/customtab/CustomTabHandler.kt +++ b/libraries/oidc/impl/src/main/kotlin/io/element/android/libraries/oidc/impl/customtab/CustomTabHandler.kt @@ -10,10 +10,10 @@ package io.element.android.libraries.oidc.impl.customtab import android.app.Activity import android.content.ComponentName import android.content.Context -import android.net.Uri import androidx.browser.customtabs.CustomTabsClient import androidx.browser.customtabs.CustomTabsServiceConnection import androidx.browser.customtabs.CustomTabsSession +import androidx.core.net.toUri import io.element.android.libraries.androidutils.browser.openUrlInChromeCustomTab import io.element.android.libraries.di.ApplicationContext import javax.inject.Inject @@ -55,7 +55,7 @@ class CustomTabHandler @Inject constructor( customTabsSession = customTabsClient?.newSession(null) } - customTabsSession?.mayLaunchUrl(Uri.parse(url), null, null) + customTabsSession?.mayLaunchUrl(url.toUri(), null, null) } fun disposeCustomTab() { diff --git a/libraries/permissions/api/src/main/res/values-cy/translations.xml b/libraries/permissions/api/src/main/res/values-cy/translations.xml new file mode 100644 index 0000000000..e72a9d09a4 --- /dev/null +++ b/libraries/permissions/api/src/main/res/values-cy/translations.xml @@ -0,0 +1,7 @@ + + + "Er mwyn gadael i\'r rhaglen ddefnyddio\'r camera, rhowch ganiatâd iddo yn y gosodiadau system." + "Rhowch ganiatâd yn y gosodiadau system." + "Er mwyn gadael i\'r cais ddefnyddio\'r meicroffon, rhowch ganiatâd yng ngosodiadau\'r system." + "Er mwyn gadael i\'r ap ddangos hysbysiadau, rhowch ganiatâd yn y gosodiadau system." + diff --git a/libraries/push/impl/src/main/kotlin/io/element/android/libraries/push/impl/history/DefaultPushHistoryService.kt b/libraries/push/impl/src/main/kotlin/io/element/android/libraries/push/impl/history/DefaultPushHistoryService.kt index ba0fe826eb..23ae48ea31 100644 --- a/libraries/push/impl/src/main/kotlin/io/element/android/libraries/push/impl/history/DefaultPushHistoryService.kt +++ b/libraries/push/impl/src/main/kotlin/io/element/android/libraries/push/impl/history/DefaultPushHistoryService.kt @@ -7,8 +7,13 @@ package io.element.android.libraries.push.impl.history +import android.content.Context +import android.os.Build +import android.os.PowerManager +import androidx.core.content.getSystemService import com.squareup.anvil.annotations.ContributesBinding import io.element.android.libraries.di.AppScope +import io.element.android.libraries.di.ApplicationContext import io.element.android.libraries.matrix.api.core.EventId import io.element.android.libraries.matrix.api.core.RoomId import io.element.android.libraries.matrix.api.core.SessionId @@ -21,15 +26,38 @@ import javax.inject.Inject class DefaultPushHistoryService @Inject constructor( private val pushDatabase: PushDatabase, private val systemClock: SystemClock, + @ApplicationContext context: Context, ) : PushHistoryService { + private val powerManager = context.getSystemService() + private val packageName = context.packageName + override fun onPushReceived( providerInfo: String, eventId: EventId?, roomId: RoomId?, sessionId: SessionId?, hasBeenResolved: Boolean, + includeDeviceState: Boolean, comment: String?, ) { + val finalComment = buildString { + append(comment.orEmpty()) + if (includeDeviceState && powerManager != null) { + // Add info about device state + append("\n") + append(" - Idle: ${powerManager.isDeviceIdleMode}\n") + append(" - Power Save Mode: ${powerManager.isPowerSaveMode}\n") + append(" - Ignoring Battery Optimizations: ${powerManager.isIgnoringBatteryOptimizations(packageName)}\n") + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) { + append(" - Device Light Idle Mode: ${powerManager.isDeviceLightIdleMode}\n") + append(" - Low Power Standby Enabled: ${powerManager.isLowPowerStandbyEnabled}\n") + } + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.UPSIDE_DOWN_CAKE) { + append(" - Exempt from Low Power Standby: ${powerManager.isExemptFromLowPowerStandby}\n") + } + } + }.takeIf { it.isNotEmpty() } + pushDatabase.pushHistoryQueries.insertPushHistory( PushHistory( pushDate = systemClock.epochMillis(), @@ -38,11 +66,11 @@ class DefaultPushHistoryService @Inject constructor( roomId = roomId?.value, sessionId = sessionId?.value, hasBeenResolved = if (hasBeenResolved) 1 else 0, - comment = comment, + comment = finalComment, ) ) - // Keep only the last 100 events - pushDatabase.pushHistoryQueries.removeOldest(100) + // Keep only the last 1_000 events + pushDatabase.pushHistoryQueries.removeOldest(1_000) } } diff --git a/libraries/push/impl/src/main/kotlin/io/element/android/libraries/push/impl/history/PushHistoryService.kt b/libraries/push/impl/src/main/kotlin/io/element/android/libraries/push/impl/history/PushHistoryService.kt index b66fd0317b..31d431bb2c 100644 --- a/libraries/push/impl/src/main/kotlin/io/element/android/libraries/push/impl/history/PushHistoryService.kt +++ b/libraries/push/impl/src/main/kotlin/io/element/android/libraries/push/impl/history/PushHistoryService.kt @@ -22,19 +22,22 @@ interface PushHistoryService { roomId: RoomId?, sessionId: SessionId?, hasBeenResolved: Boolean, + includeDeviceState: Boolean, comment: String?, ) } fun PushHistoryService.onInvalidPushReceived( providerInfo: String, + data: String, ) = onPushReceived( providerInfo = providerInfo, eventId = null, roomId = null, sessionId = null, hasBeenResolved = false, - comment = "Invalid push data", + includeDeviceState = false, + comment = "Invalid or ignored push data:\n$data", ) fun PushHistoryService.onUnableToRetrieveSession( @@ -48,6 +51,7 @@ fun PushHistoryService.onUnableToRetrieveSession( roomId = roomId, sessionId = null, hasBeenResolved = false, + includeDeviceState = true, comment = "Unable to retrieve session: $reason", ) @@ -63,6 +67,7 @@ fun PushHistoryService.onUnableToResolveEvent( roomId = roomId, sessionId = sessionId, hasBeenResolved = false, + includeDeviceState = true, comment = "Unable to resolve event: $reason", ) @@ -78,6 +83,7 @@ fun PushHistoryService.onSuccess( roomId = roomId, sessionId = sessionId, hasBeenResolved = true, + includeDeviceState = false, comment = buildString { append("Success") if (comment.isNullOrBlank().not()) { @@ -94,5 +100,6 @@ fun PushHistoryService.onDiagnosticPush( roomId = null, sessionId = null, hasBeenResolved = true, + includeDeviceState = false, comment = "Diagnostic push", ) diff --git a/libraries/push/impl/src/main/kotlin/io/element/android/libraries/push/impl/notifications/CallNotificationEventResolver.kt b/libraries/push/impl/src/main/kotlin/io/element/android/libraries/push/impl/notifications/CallNotificationEventResolver.kt index b41dae4500..1857ef2b9b 100644 --- a/libraries/push/impl/src/main/kotlin/io/element/android/libraries/push/impl/notifications/CallNotificationEventResolver.kt +++ b/libraries/push/impl/src/main/kotlin/io/element/android/libraries/push/impl/notifications/CallNotificationEventResolver.kt @@ -17,6 +17,7 @@ import io.element.android.libraries.push.impl.R import io.element.android.libraries.push.impl.notifications.model.NotifiableEvent import io.element.android.libraries.push.impl.notifications.model.NotifiableRingingCallEvent import io.element.android.services.toolbox.api.strings.StringProvider +import timber.log.Timber import javax.inject.Inject /** @@ -69,6 +70,9 @@ class DefaultCallNotificationEventResolver @Inject constructor( senderAvatarUrl = senderAvatarUrl, ) } else { + val now = System.currentTimeMillis() + val elapsed = now - timestamp + Timber.d("Event $eventId is call notify but should not ring: $timestamp vs $now ($elapsed ms elapsed), notify: ${content.type}") // Create a simple message notification event buildNotifiableMessageEvent( sessionId = sessionId, diff --git a/libraries/push/impl/src/main/kotlin/io/element/android/libraries/push/impl/notifications/DefaultNotifiableEventResolver.kt b/libraries/push/impl/src/main/kotlin/io/element/android/libraries/push/impl/notifications/DefaultNotifiableEventResolver.kt index d7557f41df..982daec73e 100644 --- a/libraries/push/impl/src/main/kotlin/io/element/android/libraries/push/impl/notifications/DefaultNotifiableEventResolver.kt +++ b/libraries/push/impl/src/main/kotlin/io/element/android/libraries/push/impl/notifications/DefaultNotifiableEventResolver.kt @@ -92,8 +92,9 @@ class DefaultNotifiableEventResolver @Inject constructor( return notificationData.flatMap { if (it == null) { Timber.tag(loggerTag.value).d("No notification data found for event $eventId") - return@flatMap Result.failure(ResolvingException("Unable to resolve event")) + return@flatMap Result.failure(ResolvingException("Unable to resolve event $eventId")) } else { + Timber.tag(loggerTag.value).d("Found notification item for $eventId") it.asNotifiableEvent(client, sessionId) } } @@ -250,7 +251,7 @@ class DefaultNotifiableEventResolver @Inject constructor( NotificationContent.StateEvent.RoomServerAcl, NotificationContent.StateEvent.RoomThirdPartyInvite, NotificationContent.StateEvent.RoomTombstone, - NotificationContent.StateEvent.RoomTopic, + is NotificationContent.StateEvent.RoomTopic, NotificationContent.StateEvent.SpaceChild, NotificationContent.StateEvent.SpaceParent -> { Timber.tag(loggerTag.value).d("Ignoring notification for state event ${content.javaClass.simpleName}") diff --git a/libraries/push/impl/src/main/kotlin/io/element/android/libraries/push/impl/notifications/model/NotifiableMessageEvent.kt b/libraries/push/impl/src/main/kotlin/io/element/android/libraries/push/impl/notifications/model/NotifiableMessageEvent.kt index 21feeb1cd3..ba7cd2f78b 100644 --- a/libraries/push/impl/src/main/kotlin/io/element/android/libraries/push/impl/notifications/model/NotifiableMessageEvent.kt +++ b/libraries/push/impl/src/main/kotlin/io/element/android/libraries/push/impl/notifications/model/NotifiableMessageEvent.kt @@ -7,6 +7,7 @@ package io.element.android.libraries.push.impl.notifications.model import android.net.Uri +import androidx.core.net.toUri import io.element.android.libraries.matrix.api.core.EventId import io.element.android.libraries.matrix.api.core.RoomId import io.element.android.libraries.matrix.api.core.SessionId @@ -52,7 +53,7 @@ data class NotifiableMessageEvent( // Example of value: // content://io.element.android.x.debug.notifications.fileprovider/downloads/temp/notif/matrix.org/XGItzSDOnSyXjYtOPfiKexDJ val imageUri: Uri? - get() = imageUriString?.let { Uri.parse(it) } + get() = imageUriString?.toUri() } /** diff --git a/libraries/push/impl/src/main/kotlin/io/element/android/libraries/push/impl/push/DefaultPushHandler.kt b/libraries/push/impl/src/main/kotlin/io/element/android/libraries/push/impl/push/DefaultPushHandler.kt index 697ff67759..f6b6ace866 100644 --- a/libraries/push/impl/src/main/kotlin/io/element/android/libraries/push/impl/push/DefaultPushHandler.kt +++ b/libraries/push/impl/src/main/kotlin/io/element/android/libraries/push/impl/push/DefaultPushHandler.kt @@ -72,9 +72,9 @@ class DefaultPushHandler @Inject constructor( } } - override suspend fun handleInvalid(providerInfo: String) { + override suspend fun handleInvalid(providerInfo: String, data: String) { incrementPushDataStore.incrementPushCounter() - pushHistoryService.onInvalidPushReceived(providerInfo) + pushHistoryService.onInvalidPushReceived(providerInfo, data) } /** @@ -133,10 +133,12 @@ class DefaultPushHandler @Inject constructor( is ResolvedPushEvent.Event -> { when (val notifiableEvent = resolvedPushEvent.notifiableEvent) { is NotifiableRingingCallEvent -> { + Timber.tag(loggerTag.value).d("Notifiable event ${pushData.eventId} is ringing call: $notifiableEvent") onNotifiableEventReceived.onNotifiableEventReceived(notifiableEvent) handleRingingCallEvent(notifiableEvent) } else -> { + Timber.tag(loggerTag.value).d("Notifiable event ${pushData.eventId} is normal event: $notifiableEvent") val userPushStore = userPushStoreFactory.getOrCreate(userId) val areNotificationsEnabled = userPushStore.getNotificationEnabledForDevice().first() if (areNotificationsEnabled) { 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 cc31275783..d072a1c3b1 100644 --- a/libraries/push/impl/src/main/res/values-cs/translations.xml +++ b/libraries/push/impl/src/main/res/values-cs/translations.xml @@ -71,6 +71,7 @@ "Nalezeni %1$d push poskytovatelé: %2$s" "Nalezeno %1$d push poskytovatelů: %2$s" + "Aplikace byla vytvořena s podporou: %1$s" "Zjistit push poskytovatele" "Zkontrolujte, zda aplikace může zobrazit oznámení." "Na oznámení nebylo kliknuto." diff --git a/libraries/push/impl/src/main/res/values-cy/translations.xml b/libraries/push/impl/src/main/res/values-cy/translations.xml new file mode 100644 index 0000000000..0e6557db58 --- /dev/null +++ b/libraries/push/impl/src/main/res/values-cy/translations.xml @@ -0,0 +1,33 @@ + + + "Galw" + "Gwrando am ddigwyddiadau" + "Hysbysiadau swnllyd" + "Galwadau\'n canu" + "Hysbysiadau tawel" + "Hysbysiad" + "📹 Galwad i mewn" + "** Wedi methu anfon - agorwch yr ystafell" + "Ymuno" + "Gwrthod" + "Wedi eich gwahodd i sgwrsio" + "Mae %1$s wedi eich gwahodd i sgwrsio" + "Wedi eich crybwyll: %1$s" + "Negeseuon Newydd" + "Wedi ymateb gyda %1$s" + "Marcio fel wedi\'i ddarllen" + "Ateb cyflym" + "Wedi\'ch gwahodd i ymuno â\'r ystafell" + "Mae %1$s wedi eich gwahodd i ymuno â\'r ystafell" + "Fi" + "Crybwyllodd neu atebodd %1$s" + "Rydych chi\'n edrych ar yr hysbysiad! Cliciwch fi!" + "%1$s: %2$s" + "%1$s : %2$s %3$s" + "%1$s a %2$s" + "%1$s yn %2$s" + "%1$s yn %2$s a %3$s" + "Cydweddu\'n y cefndir" + "Gwasanaethau Google" + "Heb ganfod Google Play Services dilys. Efallai fydd hysbysiadau ddim yn gweithio\'n iawn." + diff --git a/libraries/push/impl/src/main/res/values-de/translations.xml b/libraries/push/impl/src/main/res/values-de/translations.xml index f16303f87c..c4eb926a2c 100644 --- a/libraries/push/impl/src/main/res/values-de/translations.xml +++ b/libraries/push/impl/src/main/res/values-de/translations.xml @@ -64,6 +64,7 @@ "%1$d Push-Anbieter gefunden: %2$s" "%1$d Push-Anbieter gefunden: %2$s" + "Die Anwendung wurde mit Unterstützung für Folgendes erstellt: %1$s" "Push-Anbieter erkennen" "Prüfe, ob die Anwendung Benachrichtigungen anzeigen kann." "Die Benachrichtigung wurde nicht angeklickt." diff --git a/libraries/push/impl/src/main/res/values-et/translations.xml b/libraries/push/impl/src/main/res/values-et/translations.xml index 6a0c1cf5c0..dba0b86774 100644 --- a/libraries/push/impl/src/main/res/values-et/translations.xml +++ b/libraries/push/impl/src/main/res/values-et/translations.xml @@ -64,6 +64,7 @@ "Leidsime %1$d tõuketeenuse pakkuja: %2$s" "Leidsime %1$d tõuketeenuse pakkujat: %2$s" + "Rakendus on kompileeritud kaasneva toega teenusele: %1$s" "Tuvasta tõuketeenuste pakkujad" "Palun kontrolli, et rakendus saaks kuvada teavitusi." "Sa pole teavitust klõpsinud." diff --git a/libraries/push/impl/src/main/res/values-eu/translations.xml b/libraries/push/impl/src/main/res/values-eu/translations.xml index 288ae15d4c..ba7ef87619 100644 --- a/libraries/push/impl/src/main/res/values-eu/translations.xml +++ b/libraries/push/impl/src/main/res/values-eu/translations.xml @@ -22,6 +22,7 @@ "%d gonbidapen" "Txatetzera gonbidatu zaitu" + "%1$s(e)k txatera gonbidatu zaitu" "Aipatu zaitu: %1$s" "Mezu berriak" @@ -42,6 +43,7 @@ "Irakurri gabeko mezu %den jakinarazpena" "Irakurri gabeko %d mezuren jakinarazpena" + "%1$s eta %2$s" "%1$s %2$s gelan" "%1$s %2$s gelan eta %3$s" 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 dab7f15fc0..1b6fa8377a 100644 --- a/libraries/push/impl/src/main/res/values-fi/translations.xml +++ b/libraries/push/impl/src/main/res/values-fi/translations.xml @@ -64,6 +64,7 @@ "Löytyi %1$d push-palveluntarjoaja: %2$s" "Löytyi %1$d push-palveluntarjoajaa: %2$s" + "Sovellus on rakennettu tukemaan: %1$s" "Push-palveluntarjoajien havaitseminen" "Tarkistaa, että sovellus voi näyttää ilmoituksen." "Ilmoitusta ei ole klikattu." 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 a198daec64..8b59a18fd9 100644 --- a/libraries/push/impl/src/main/res/values-fr/translations.xml +++ b/libraries/push/impl/src/main/res/values-fr/translations.xml @@ -64,6 +64,7 @@ "%1$d fournisseur de Push détecté : %2$s" "%1$d fournisseurs de Push détectés : %2$s" + "L’application a été compilée avec la prise en charge de : %1$s" "Détecter les fournisseurs de Push" "Vérifier que l’application peut afficher des notifications." "Vous n’avez pas cliqué sur la notification." diff --git a/libraries/push/impl/src/main/res/values-hu/translations.xml b/libraries/push/impl/src/main/res/values-hu/translations.xml index 6d478516f6..c0aad928d4 100644 --- a/libraries/push/impl/src/main/res/values-hu/translations.xml +++ b/libraries/push/impl/src/main/res/values-hu/translations.xml @@ -64,6 +64,7 @@ "%1$d leküldéses szolgáltató találva: %2$s" "%1$d leküldéses szolgáltató találva: %2$s" + "Az alkalmazás úgy lett összeállítva, hogy támogatja a következőket: %1$s" "Leküldéses értesítési szolgáltatók észlelése" "Ellenőrizze, hogy az alkalmazás képes-e megjeleníteni az értesítést." "Az értesítésre nem kattintottak rá." diff --git a/libraries/push/impl/src/main/res/values-lt/translations.xml b/libraries/push/impl/src/main/res/values-lt/translations.xml new file mode 100644 index 0000000000..f2bbba6cf1 --- /dev/null +++ b/libraries/push/impl/src/main/res/values-lt/translations.xml @@ -0,0 +1,51 @@ + + + "Skambinti" + "Klausomasi įvykių" + "Triukšmingi pranešimai" + "Tylūs pranešimai" + + "%1$s: %2$d žinutė" + "%1$s: %2$d žinutės" + "%1$s: %2$d žinučių" + + + "%d pranešimas" + "%d pranešimai" + "%d pranešimų" + + "Pranešimas" + "** Nepavyko išsiųsti - prašome atidaryti kambarį" + + "%d kvietimas" + "%d kvietimai" + "%d kvietimų" + + "Naujos žinutės" + + "%d nauja žinutė" + "%d naujos žinutės" + "%d naujų žinučių" + + "Sparčiai atsakyti" + "Aš" + "Jūs žiūrite pranešimą! Spustelėkite mane!" + "%1$s: %2$s" + "%1$s: %2$s %3$s" + + "%d neperskaityta žinutė" + "%d neperskaitytos žinutės" + "%d neperskaitytų žinučių" + + "%1$s ir %2$s" + "%1$s (%2$s)" + "%1$s (%2$s) ir %3$s" + + "%d kambaryje" + "%d kambariuose" + "%d kambarių" + + "Sinchronizavimas fone" + "Google Services" + "Nerasta veikiančių \"Google Play Services\". Pranešimai gali veikti netinkamai." + diff --git a/libraries/push/impl/src/main/res/values-nb/translations.xml b/libraries/push/impl/src/main/res/values-nb/translations.xml index 4187b4c2f8..2607e4d17d 100644 --- a/libraries/push/impl/src/main/res/values-nb/translations.xml +++ b/libraries/push/impl/src/main/res/values-nb/translations.xml @@ -1,7 +1,9 @@ "Anrop" + "Lytter etter hendelser" "Støyende varsler" + "Ringende anrop" "Stille varsler" "%1$s: %2$d melding" @@ -56,7 +58,13 @@ "Ingen push-leverandører er valgt." "Gjeldende push-leverandør: %1$s." "Nåværende push-leverandør" + "Påse at applikasjonen har minst én push-leverandør." "Ingen push-leverandører funnet." + + "Fant %1$d push-leverandør: %2$s" + "Fant %1$d push-leverandører: %2$s" + + "Applikasjonen ble bygget med støtte for: %1$s" "Oppdag push-leverandører" "Kontroller at programmet kan vise varsler." "Det er ikke klikket på varselet." @@ -68,4 +76,7 @@ "Feil: pusheren har avvist forespørselen." "Feil: %1$s." "Feil, kan ikke teste push." + "Feil, tidsavbrudd i påvente av push." + "Push loop back tok %1$d ms." + "Test Push loop back" diff --git a/libraries/push/impl/src/main/res/values-nl/translations.xml b/libraries/push/impl/src/main/res/values-nl/translations.xml index 6954296e4a..7057bdb19b 100644 --- a/libraries/push/impl/src/main/res/values-nl/translations.xml +++ b/libraries/push/impl/src/main/res/values-nl/translations.xml @@ -14,7 +14,7 @@ "%d meldingen" "Melding" - "Inkomende oproep" + "📹 Inkomende oproep" "** Verzenden is mislukt - open de kamer" "Deelnemen" "Weiger" 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 5b7167a787..e2dc7c0472 100644 --- a/libraries/push/impl/src/main/res/values-ru/translations.xml +++ b/libraries/push/impl/src/main/res/values-ru/translations.xml @@ -71,6 +71,7 @@ "Найдено %1$d push-провайдеров: %2$s" "Найдено %1$d push-провайдеров: %2$s" + "Приложение было создано с поддержкой: %1$s" "Обнаружение поставщиков push-уведомлений" "Убедитесь, что приложение может отображать уведомление." "Уведомление не было нажато." diff --git a/libraries/push/impl/src/main/res/values-sk/translations.xml b/libraries/push/impl/src/main/res/values-sk/translations.xml index 5c1b2febf4..d399483dd1 100644 --- a/libraries/push/impl/src/main/res/values-sk/translations.xml +++ b/libraries/push/impl/src/main/res/values-sk/translations.xml @@ -71,6 +71,7 @@ "Nájdení %1$d poskytovatelia služby push: %2$s" "Nájdených %1$d poskytovateľov služby push: %2$s" + "Aplikácia bola vytvorená s podporou pre: %1$s" "Zistiť poskytovateľov push" "Skontrolujte, či aplikácia dokáže zobraziť upozornenie." "Na oznámenie nebolo kliknuté." 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 f0ed754732..9fe878cbc5 100644 --- a/libraries/push/impl/src/main/res/values-sv/translations.xml +++ b/libraries/push/impl/src/main/res/values-sv/translations.xml @@ -64,6 +64,7 @@ "Hittade %1$d push-leverantör: %2$s" "Hittade %1$d push-leverantörer: %2$s" + "Applikationen byggdes med stöd för: %1$s" "Upptäck push-leverantörer" "Kontrollera att applikationen kan visa avisering." "Aviseringen har inte klickats på." 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 22f3b6e2ec..016599e783 100644 --- a/libraries/push/impl/src/main/res/values-uk/translations.xml +++ b/libraries/push/impl/src/main/res/values-uk/translations.xml @@ -71,6 +71,7 @@ "Виявлено %1$d постачальники: %2$s" "Виявлено %1$d постачальників: %2$s" + "Застосунок створено за підтримки: %1$s" "Виявлення постачальників push-сповіщень" "Перевірте, чи може застосунок показувати сповіщення." "Ви не натиснули на сповіщення." diff --git a/libraries/push/impl/src/test/kotlin/io/element/android/libraries/push/impl/history/FakePushHistoryService.kt b/libraries/push/impl/src/test/kotlin/io/element/android/libraries/push/impl/history/FakePushHistoryService.kt index a88ab7ccc4..50a06756dc 100644 --- a/libraries/push/impl/src/test/kotlin/io/element/android/libraries/push/impl/history/FakePushHistoryService.kt +++ b/libraries/push/impl/src/test/kotlin/io/element/android/libraries/push/impl/history/FakePushHistoryService.kt @@ -19,8 +19,9 @@ class FakePushHistoryService( RoomId?, SessionId?, Boolean, + Boolean, String? - ) -> Unit = { _, _, _, _, _, _ -> lambdaError() } + ) -> Unit = { _, _, _, _, _, _, _ -> lambdaError() } ) : PushHistoryService { override fun onPushReceived( providerInfo: String, @@ -28,6 +29,7 @@ class FakePushHistoryService( roomId: RoomId?, sessionId: SessionId?, hasBeenResolved: Boolean, + includeDeviceState: Boolean, comment: String?, ) { onPushReceivedResult( @@ -36,6 +38,7 @@ class FakePushHistoryService( roomId, sessionId, hasBeenResolved, + includeDeviceState, comment ) } diff --git a/libraries/push/impl/src/test/kotlin/io/element/android/libraries/push/impl/notifications/DefaultNotifiableEventResolverTest.kt b/libraries/push/impl/src/test/kotlin/io/element/android/libraries/push/impl/notifications/DefaultNotifiableEventResolverTest.kt index 677727ea8c..479075694e 100644 --- a/libraries/push/impl/src/test/kotlin/io/element/android/libraries/push/impl/notifications/DefaultNotifiableEventResolverTest.kt +++ b/libraries/push/impl/src/test/kotlin/io/element/android/libraries/push/impl/notifications/DefaultNotifiableEventResolverTest.kt @@ -783,7 +783,7 @@ class DefaultNotifiableEventResolverTest { testFailure(NotificationContent.StateEvent.RoomServerAcl) testFailure(NotificationContent.StateEvent.RoomThirdPartyInvite) testFailure(NotificationContent.StateEvent.RoomTombstone) - testFailure(NotificationContent.StateEvent.RoomTopic) + testFailure(NotificationContent.StateEvent.RoomTopic("")) testFailure(NotificationContent.StateEvent.SpaceChild) testFailure(NotificationContent.StateEvent.SpaceParent) } diff --git a/libraries/push/impl/src/test/kotlin/io/element/android/libraries/push/impl/push/DefaultPushHandlerTest.kt b/libraries/push/impl/src/test/kotlin/io/element/android/libraries/push/impl/push/DefaultPushHandlerTest.kt index 4df8cd2ecd..77b71c0c69 100644 --- a/libraries/push/impl/src/test/kotlin/io/element/android/libraries/push/impl/push/DefaultPushHandlerTest.kt +++ b/libraries/push/impl/src/test/kotlin/io/element/android/libraries/push/impl/push/DefaultPushHandlerTest.kt @@ -60,7 +60,7 @@ class DefaultPushHandlerTest { @Test fun `check handleInvalid behavior`() = runTest { val incrementPushCounterResult = lambdaRecorder {} - val onPushReceivedResult = lambdaRecorder { _, _, _, _, _, _ -> } + val onPushReceivedResult = lambdaRecorder { _, _, _, _, _, _, _ -> } val pushHistoryService = FakePushHistoryService( onPushReceivedResult = onPushReceivedResult, ) @@ -68,12 +68,12 @@ class DefaultPushHandlerTest { incrementPushCounterResult = incrementPushCounterResult, pushHistoryService = pushHistoryService, ) - defaultPushHandler.handleInvalid(A_PUSHER_INFO) + defaultPushHandler.handleInvalid(A_PUSHER_INFO, "data") incrementPushCounterResult.assertions() .isCalledOnce() onPushReceivedResult.assertions() .isCalledOnce() - .with(value(A_PUSHER_INFO), value(null), value(null), value(null), value(false), value("Invalid push data")) + .with(value(A_PUSHER_INFO), value(null), value(null), value(null), value(false), value(false), value("Invalid or ignored push data:\ndata")) } @Test @@ -85,7 +85,7 @@ class DefaultPushHandlerTest { } val onNotifiableEventReceived = lambdaRecorder {} val incrementPushCounterResult = lambdaRecorder {} - val onPushReceivedResult = lambdaRecorder { _, _, _, _, _, _ -> } + val onPushReceivedResult = lambdaRecorder { _, _, _, _, _, _, _ -> } val pushHistoryService = FakePushHistoryService( onPushReceivedResult = onPushReceivedResult, ) @@ -133,7 +133,7 @@ class DefaultPushHandlerTest { unread = 0, clientSecret = A_SECRET, ) - val onPushReceivedResult = lambdaRecorder { _, _, _, _, _, _ -> } + val onPushReceivedResult = lambdaRecorder { _, _, _, _, _, _, _ -> } val pushHistoryService = FakePushHistoryService( onPushReceivedResult = onPushReceivedResult, ) @@ -176,7 +176,7 @@ class DefaultPushHandlerTest { unread = 0, clientSecret = A_SECRET, ) - val onPushReceivedResult = lambdaRecorder { _, _, _, _, _, _ -> } + val onPushReceivedResult = lambdaRecorder { _, _, _, _, _, _, _ -> } val pushHistoryService = FakePushHistoryService( onPushReceivedResult = onPushReceivedResult, ) @@ -221,7 +221,7 @@ class DefaultPushHandlerTest { unread = 0, clientSecret = A_SECRET, ) - val onPushReceivedResult = lambdaRecorder { _, _, _, _, _, _ -> } + val onPushReceivedResult = lambdaRecorder { _, _, _, _, _, _, _ -> } val pushHistoryService = FakePushHistoryService( onPushReceivedResult = onPushReceivedResult, ) @@ -263,7 +263,7 @@ class DefaultPushHandlerTest { unread = 0, clientSecret = A_SECRET, ) - val onPushReceivedResult = lambdaRecorder { _, _, _, _, _, _ -> } + val onPushReceivedResult = lambdaRecorder { _, _, _, _, _, _, _ -> } val pushHistoryService = FakePushHistoryService( onPushReceivedResult = onPushReceivedResult, ) @@ -290,7 +290,7 @@ class DefaultPushHandlerTest { .isNeverCalled() onPushReceivedResult.assertions() .isCalledOnce() - .with(any(), value(AN_EVENT_ID), value(A_ROOM_ID), value(A_USER_ID), value(false), any()) + .with(any(), value(AN_EVENT_ID), value(A_ROOM_ID), value(A_USER_ID), value(false), value(true), any()) } @Test @@ -314,7 +314,7 @@ class DefaultPushHandlerTest { > { _, _, _, _, _, _, _, _ -> } val elementCallEntryPoint = FakeElementCallEntryPoint(handleIncomingCallResult = handleIncomingCallLambda) val onNotifiableEventReceived = lambdaRecorder {} - val onPushReceivedResult = lambdaRecorder { _, _, _, _, _, _ -> } + val onPushReceivedResult = lambdaRecorder { _, _, _, _, _, _, _ -> } val pushHistoryService = FakePushHistoryService( onPushReceivedResult = onPushReceivedResult, ) @@ -359,7 +359,7 @@ class DefaultPushHandlerTest { Unit, > { _, _, _, _, _, _, _, _ -> } val elementCallEntryPoint = FakeElementCallEntryPoint(handleIncomingCallResult = handleIncomingCallLambda) - val onPushReceivedResult = lambdaRecorder { _, _, _, _, _, _ -> } + val onPushReceivedResult = lambdaRecorder { _, _, _, _, _, _, _ -> } val pushHistoryService = FakePushHistoryService( onPushReceivedResult = onPushReceivedResult, ) @@ -403,7 +403,7 @@ class DefaultPushHandlerTest { Unit, > { _, _, _, _, _, _, _, _ -> } val elementCallEntryPoint = FakeElementCallEntryPoint(handleIncomingCallResult = handleIncomingCallLambda) - val onPushReceivedResult = lambdaRecorder { _, _, _, _, _, _ -> } + val onPushReceivedResult = lambdaRecorder { _, _, _, _, _, _, _ -> } val pushHistoryService = FakePushHistoryService( onPushReceivedResult = onPushReceivedResult, ) @@ -444,7 +444,7 @@ class DefaultPushHandlerTest { ) val onRedactedEventReceived = lambdaRecorder { } val incrementPushCounterResult = lambdaRecorder {} - val onPushReceivedResult = lambdaRecorder { _, _, _, _, _, _ -> } + val onPushReceivedResult = lambdaRecorder { _, _, _, _, _, _, _ -> } val pushHistoryService = FakePushHistoryService( onPushReceivedResult = onPushReceivedResult, ) @@ -476,7 +476,7 @@ class DefaultPushHandlerTest { clientSecret = A_SECRET, ) val diagnosticPushHandler = DiagnosticPushHandler() - val onPushReceivedResult = lambdaRecorder { _, _, _, _, _, _ -> } + val onPushReceivedResult = lambdaRecorder { _, _, _, _, _, _, _ -> } val pushHistoryService = FakePushHistoryService( onPushReceivedResult = onPushReceivedResult, ) diff --git a/libraries/push/test/src/main/kotlin/io/element/android/libraries/push/test/FakePushService.kt b/libraries/push/test/src/main/kotlin/io/element/android/libraries/push/test/FakePushService.kt index a875de68de..5c3c01e8e8 100644 --- a/libraries/push/test/src/main/kotlin/io/element/android/libraries/push/test/FakePushService.kt +++ b/libraries/push/test/src/main/kotlin/io/element/android/libraries/push/test/FakePushService.kt @@ -89,7 +89,7 @@ class FakePushService( pushCounterFlow.value = counter } - override suspend fun resetPushHistory() { + override suspend fun resetPushHistory() = simulateLongTask { resetPushHistoryResult() } } diff --git a/libraries/push/test/src/main/kotlin/io/element/android/libraries/push/test/test/FakePushHandler.kt b/libraries/push/test/src/main/kotlin/io/element/android/libraries/push/test/test/FakePushHandler.kt index 933790d3e9..1279d6e5a0 100644 --- a/libraries/push/test/src/main/kotlin/io/element/android/libraries/push/test/test/FakePushHandler.kt +++ b/libraries/push/test/src/main/kotlin/io/element/android/libraries/push/test/test/FakePushHandler.kt @@ -13,13 +13,13 @@ import io.element.android.tests.testutils.lambda.lambdaError class FakePushHandler( private val handleResult: (PushData, String) -> Unit = { _, _ -> lambdaError() }, - private val handleInvalidResult: (String) -> Unit = { lambdaError() }, + private val handleInvalidResult: (String, String) -> Unit = { _, _ -> lambdaError() }, ) : PushHandler { override suspend fun handle(pushData: PushData, providerInfo: String) { handleResult(pushData, providerInfo) } - override suspend fun handleInvalid(providerInfo: String) { - handleInvalidResult(providerInfo) + override suspend fun handleInvalid(providerInfo: String, data: String) { + handleInvalidResult(providerInfo, data) } } diff --git a/libraries/pushproviders/api/src/main/kotlin/io/element/android/libraries/pushproviders/api/PushHandler.kt b/libraries/pushproviders/api/src/main/kotlin/io/element/android/libraries/pushproviders/api/PushHandler.kt index 46dca54f5b..a9dfd76c2c 100644 --- a/libraries/pushproviders/api/src/main/kotlin/io/element/android/libraries/pushproviders/api/PushHandler.kt +++ b/libraries/pushproviders/api/src/main/kotlin/io/element/android/libraries/pushproviders/api/PushHandler.kt @@ -15,5 +15,6 @@ interface PushHandler { suspend fun handleInvalid( providerInfo: String, + data: String, ) } diff --git a/libraries/pushproviders/firebase/src/main/kotlin/io/element/android/libraries/pushproviders/firebase/VectorFirebaseMessagingService.kt b/libraries/pushproviders/firebase/src/main/kotlin/io/element/android/libraries/pushproviders/firebase/VectorFirebaseMessagingService.kt index 3fd2e77f22..d7c7777168 100644 --- a/libraries/pushproviders/firebase/src/main/kotlin/io/element/android/libraries/pushproviders/firebase/VectorFirebaseMessagingService.kt +++ b/libraries/pushproviders/firebase/src/main/kotlin/io/element/android/libraries/pushproviders/firebase/VectorFirebaseMessagingService.kt @@ -31,20 +31,23 @@ class VectorFirebaseMessagingService : FirebaseMessagingService() { } override fun onNewToken(token: String) { - Timber.tag(loggerTag.value).d("New Firebase token") + Timber.tag(loggerTag.value).w("New Firebase token") coroutineScope.launch { firebaseNewTokenHandler.handle(token) } } override fun onMessageReceived(message: RemoteMessage) { - Timber.tag(loggerTag.value).d("New Firebase message") + Timber.tag(loggerTag.value).w("New Firebase message. Priority: ${message.priority}/${message.originalPriority}") coroutineScope.launch { val pushData = pushParser.parse(message.data) if (pushData == null) { Timber.tag(loggerTag.value).w("Invalid data received from Firebase") pushHandler.handleInvalid( providerInfo = FirebaseConfig.NAME, + data = message.data.keys.joinToString("\n") { + "$it: ${message.data[it]}" + }, ) } else { pushHandler.handle( diff --git a/libraries/pushproviders/firebase/src/test/kotlin/io/element/android/libraries/pushproviders/firebase/VectorFirebaseMessagingServiceTest.kt b/libraries/pushproviders/firebase/src/test/kotlin/io/element/android/libraries/pushproviders/firebase/VectorFirebaseMessagingServiceTest.kt index f47b614619..6b8c19934f 100644 --- a/libraries/pushproviders/firebase/src/test/kotlin/io/element/android/libraries/pushproviders/firebase/VectorFirebaseMessagingServiceTest.kt +++ b/libraries/pushproviders/firebase/src/test/kotlin/io/element/android/libraries/pushproviders/firebase/VectorFirebaseMessagingServiceTest.kt @@ -32,13 +32,24 @@ import org.robolectric.RobolectricTestRunner class VectorFirebaseMessagingServiceTest { @Test fun `test receiving invalid data`() = runTest { - val lambda = lambdaRecorder {} + val lambda = lambdaRecorder { _, _ -> } val vectorFirebaseMessagingService = createVectorFirebaseMessagingService( pushHandler = FakePushHandler(handleInvalidResult = lambda) ) - vectorFirebaseMessagingService.onMessageReceived(RemoteMessage(Bundle())) + vectorFirebaseMessagingService.onMessageReceived( + message = RemoteMessage( + Bundle().apply { + putString("a", "A") + putString("b", "B") + } + ) + ) runCurrent() lambda.assertions().isCalledOnce() + .with( + value(FirebaseConfig.NAME), + value("a: A\nb: B"), + ) } @Test diff --git a/libraries/pushproviders/unifiedpush/src/main/kotlin/io/element/android/libraries/pushproviders/unifiedpush/VectorUnifiedPushMessagingReceiver.kt b/libraries/pushproviders/unifiedpush/src/main/kotlin/io/element/android/libraries/pushproviders/unifiedpush/VectorUnifiedPushMessagingReceiver.kt index 328f5be8c7..684e08be5b 100644 --- a/libraries/pushproviders/unifiedpush/src/main/kotlin/io/element/android/libraries/pushproviders/unifiedpush/VectorUnifiedPushMessagingReceiver.kt +++ b/libraries/pushproviders/unifiedpush/src/main/kotlin/io/element/android/libraries/pushproviders/unifiedpush/VectorUnifiedPushMessagingReceiver.kt @@ -46,13 +46,14 @@ class VectorUnifiedPushMessagingReceiver : MessagingReceiver() { * @param instance connection, for multi-account */ override fun onMessage(context: Context, message: ByteArray, instance: String) { - Timber.tag(loggerTag.value).d("New message") + Timber.tag(loggerTag.value).w("New message") coroutineScope.launch { val pushData = pushParser.parse(message, instance) if (pushData == null) { Timber.tag(loggerTag.value).w("Invalid data received from UnifiedPush") pushHandler.handleInvalid( providerInfo = "${UnifiedPushConfig.NAME} - $instance", + data = String(message), ) } else { pushHandler.handle( @@ -68,7 +69,7 @@ class VectorUnifiedPushMessagingReceiver : MessagingReceiver() { * You should send the endpoint to your application server and sync for missing notifications. */ override fun onNewEndpoint(context: Context, endpoint: String, instance: String) { - Timber.tag(loggerTag.value).i("onNewEndpoint: $endpoint") + Timber.tag(loggerTag.value).w("onNewEndpoint: $endpoint") coroutineScope.launch { val gateway = unifiedPushGatewayResolver.getGateway(endpoint) .let { gatewayResult -> @@ -109,7 +110,7 @@ class VectorUnifiedPushMessagingReceiver : MessagingReceiver() { * Called when this application is unregistered from receiving push messages. */ override fun onUnregistered(context: Context, instance: String) { - Timber.tag(loggerTag.value).d("Unifiedpush: Unregistered") + Timber.tag(loggerTag.value).w("Unifiedpush: Unregistered") /* val mode = BackgroundSyncMode.FDROID_BACKGROUND_SYNC_MODE_FOR_REALTIME pushDataStore.setFdroidSyncBackgroundMode(mode) diff --git a/libraries/pushproviders/unifiedpush/src/main/res/values-nb/translations.xml b/libraries/pushproviders/unifiedpush/src/main/res/values-nb/translations.xml new file mode 100644 index 0000000000..67f6895953 --- /dev/null +++ b/libraries/pushproviders/unifiedpush/src/main/res/values-nb/translations.xml @@ -0,0 +1,10 @@ + + + "Påse at UnifiedPush-distributører er tilgjengelige." + "Ingen push-distributører funnet." + + "%1$d distributør funnet: %2$s." + "%1$d distributører funnet: %2$s." + + "Sjekk UnifiedPush" + diff --git a/libraries/pushproviders/unifiedpush/src/test/kotlin/io/element/android/libraries/pushproviders/unifiedpush/VectorUnifiedPushMessagingReceiverTest.kt b/libraries/pushproviders/unifiedpush/src/test/kotlin/io/element/android/libraries/pushproviders/unifiedpush/VectorUnifiedPushMessagingReceiverTest.kt index b445e73fec..bcacdc3d7a 100644 --- a/libraries/pushproviders/unifiedpush/src/test/kotlin/io/element/android/libraries/pushproviders/unifiedpush/VectorUnifiedPushMessagingReceiverTest.kt +++ b/libraries/pushproviders/unifiedpush/src/test/kotlin/io/element/android/libraries/pushproviders/unifiedpush/VectorUnifiedPushMessagingReceiverTest.kt @@ -90,7 +90,7 @@ class VectorUnifiedPushMessagingReceiverTest { @Test fun `onMessage invalid invokes the push handler invalid method`() = runTest { val context = InstrumentationRegistry.getInstrumentation().context - val handleInvalidResult = lambdaRecorder { } + val handleInvalidResult = lambdaRecorder { _, _ -> } val vectorUnifiedPushMessagingReceiver = createVectorUnifiedPushMessagingReceiver( pushHandler = FakePushHandler( handleInvalidResult = handleInvalidResult, diff --git a/libraries/textcomposer/impl/src/main/kotlin/io/element/android/libraries/textcomposer/TextComposer.kt b/libraries/textcomposer/impl/src/main/kotlin/io/element/android/libraries/textcomposer/TextComposer.kt index b2adb257d1..83d51612d2 100644 --- a/libraries/textcomposer/impl/src/main/kotlin/io/element/android/libraries/textcomposer/TextComposer.kt +++ b/libraries/textcomposer/impl/src/main/kotlin/io/element/android/libraries/textcomposer/TextComposer.kt @@ -148,6 +148,7 @@ fun TextComposer( IconColorButton( onClick = onAddAttachment, imageVector = CompoundIcons.Plus(), + contentDescription = stringResource(R.string.rich_text_editor_a11y_add_attachment), ) } } @@ -292,6 +293,7 @@ fun TextComposer( IconColorButton( onClick = onDismissTextFormatting, imageVector = CompoundIcons.Close(), + contentDescription = stringResource(CommonStrings.action_close), ) }, textFormatting = textFormattingOptions, diff --git a/libraries/textcomposer/impl/src/main/res/values-cy/translations.xml b/libraries/textcomposer/impl/src/main/res/values-cy/translations.xml new file mode 100644 index 0000000000..8fc6c899b9 --- /dev/null +++ b/libraries/textcomposer/impl/src/main/res/values-cy/translations.xml @@ -0,0 +1,27 @@ + + + "Ychwanegu atodiad" + "Toglo\'r rhestr fwledi" + "Cau\'r dewisiadau fformatio" + "Toglo\'r bloc cod" + "Ychwanegu capsiwn" + "Neges wedi\'i hamgryptio…" + "Neges…" + "Neges heb ei hamgryptio…" + "Creu dolen" + "Golygu dolen" + "Gosod fformat trwm" + "Gosod fformat italig" + "Gosod fformat llinell trwodd" + "Gosod fformat tanlinellu" + "Toglo\'r modd sgrin lawn" + "Mewnoliad" + "Gosod fformat cod mewnlin" + "Gosod dolen" + "Toglo\'r rhestr wedi\'i rhifo" + "Agor y dewisiadau cyfansoddi" + "Toglo\'r dyfyniad" + "Dileu dolen" + "Dadmewnoli" + "Dolen" + diff --git a/libraries/textcomposer/impl/src/main/res/values-lt/translations.xml b/libraries/textcomposer/impl/src/main/res/values-lt/translations.xml new file mode 100644 index 0000000000..b23358c57a --- /dev/null +++ b/libraries/textcomposer/impl/src/main/res/values-lt/translations.xml @@ -0,0 +1,17 @@ + + + "Perjungti punktų sąrašą" + "Kodo blokas" + "Žinutė…" + "Taikyti paryškintą formatą" + "Taikyti pasvirusį formatą" + "Taikyti perbrauktą formatą" + "Taikyti pabrauktą formatą" + "Perjungti viso ekrano režimą" + "Atitraukti" + "Taikyti įterpto kodo formatą" + "Nustatyti nuorodą" + "Perjungti sunumeruotą sąrašą" + "Cituoti" + "Panaikinti atitraukimą" + 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 06a01dfcd9..fab385b304 100644 --- a/libraries/textcomposer/impl/src/main/res/values-nb/translations.xml +++ b/libraries/textcomposer/impl/src/main/res/values-nb/translations.xml @@ -5,7 +5,9 @@ "Lukk formateringsvalg" "Aktiver kodeblokk" "Legg til en tekstbeskrivelse" + "Kryptert melding…" "Melding…" + "Ukryptert melding…" "Opprett en lenke" "Rediger lenke" "Bruk fet skrift" diff --git a/libraries/troubleshoot/impl/src/main/kotlin/io/element/android/libraries/troubleshoot/impl/history/PushHistoryEvents.kt b/libraries/troubleshoot/impl/src/main/kotlin/io/element/android/libraries/troubleshoot/impl/history/PushHistoryEvents.kt index 7b6d5f616d..c18a480899 100644 --- a/libraries/troubleshoot/impl/src/main/kotlin/io/element/android/libraries/troubleshoot/impl/history/PushHistoryEvents.kt +++ b/libraries/troubleshoot/impl/src/main/kotlin/io/element/android/libraries/troubleshoot/impl/history/PushHistoryEvents.kt @@ -8,5 +8,7 @@ package io.element.android.libraries.troubleshoot.impl.history sealed interface PushHistoryEvents { - data object Reset : PushHistoryEvents + data class SetShowOnlyErrors(val showOnlyErrors: Boolean) : PushHistoryEvents + data class Reset(val requiresConfirmation: Boolean) : PushHistoryEvents + data object ClearDialog : PushHistoryEvents } diff --git a/libraries/troubleshoot/impl/src/main/kotlin/io/element/android/libraries/troubleshoot/impl/history/PushHistoryPresenter.kt b/libraries/troubleshoot/impl/src/main/kotlin/io/element/android/libraries/troubleshoot/impl/history/PushHistoryPresenter.kt index d7b0592b5b..ec6f2f0abb 100644 --- a/libraries/troubleshoot/impl/src/main/kotlin/io/element/android/libraries/troubleshoot/impl/history/PushHistoryPresenter.kt +++ b/libraries/troubleshoot/impl/src/main/kotlin/io/element/android/libraries/troubleshoot/impl/history/PushHistoryPresenter.kt @@ -10,11 +10,15 @@ package io.element.android.libraries.troubleshoot.impl.history import androidx.compose.runtime.Composable import androidx.compose.runtime.collectAsState import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember import androidx.compose.runtime.rememberCoroutineScope +import androidx.compose.runtime.setValue +import io.element.android.libraries.architecture.AsyncAction import io.element.android.libraries.architecture.Presenter import io.element.android.libraries.push.api.PushService import kotlinx.collections.immutable.toImmutableList +import kotlinx.coroutines.flow.map import kotlinx.coroutines.launch import javax.inject.Inject @@ -25,14 +29,36 @@ class PushHistoryPresenter @Inject constructor( override fun present(): PushHistoryState { val coroutineScope = rememberCoroutineScope() val pushCounter by pushService.pushCounter.collectAsState(0) - val pushHistory by remember { - pushService.getPushHistoryItemsFlow() + var showOnlyErrors: Boolean by remember { mutableStateOf(false) } + val pushHistory by remember(showOnlyErrors) { + pushService.getPushHistoryItemsFlow().map { + if (showOnlyErrors) { + it.filter { item -> item.hasBeenResolved.not() } + } else { + it + } + } }.collectAsState(emptyList()) + var resetAction: AsyncAction by remember { mutableStateOf(AsyncAction.Uninitialized) } fun handleEvents(event: PushHistoryEvents) { when (event) { - PushHistoryEvents.Reset -> coroutineScope.launch { - pushService.resetPushHistory() + is PushHistoryEvents.SetShowOnlyErrors -> { + showOnlyErrors = event.showOnlyErrors + } + is PushHistoryEvents.Reset -> { + if (event.requiresConfirmation) { + resetAction = AsyncAction.ConfirmingNoParams + } else { + resetAction = AsyncAction.Loading + coroutineScope.launch { + pushService.resetPushHistory() + resetAction = AsyncAction.Uninitialized + } + } + } + PushHistoryEvents.ClearDialog -> { + resetAction = AsyncAction.Uninitialized } } } @@ -40,6 +66,8 @@ class PushHistoryPresenter @Inject constructor( return PushHistoryState( pushCounter = pushCounter, pushHistoryItems = pushHistory.toImmutableList(), + showOnlyErrors = showOnlyErrors, + resetAction = resetAction, eventSink = ::handleEvents ) } diff --git a/libraries/troubleshoot/impl/src/main/kotlin/io/element/android/libraries/troubleshoot/impl/history/PushHistoryState.kt b/libraries/troubleshoot/impl/src/main/kotlin/io/element/android/libraries/troubleshoot/impl/history/PushHistoryState.kt index 113f7d0f19..fda9c6e479 100644 --- a/libraries/troubleshoot/impl/src/main/kotlin/io/element/android/libraries/troubleshoot/impl/history/PushHistoryState.kt +++ b/libraries/troubleshoot/impl/src/main/kotlin/io/element/android/libraries/troubleshoot/impl/history/PushHistoryState.kt @@ -7,11 +7,14 @@ package io.element.android.libraries.troubleshoot.impl.history +import io.element.android.libraries.architecture.AsyncAction import io.element.android.libraries.push.api.history.PushHistoryItem import kotlinx.collections.immutable.ImmutableList data class PushHistoryState( val pushCounter: Int, val pushHistoryItems: ImmutableList, + val showOnlyErrors: Boolean, + val resetAction: AsyncAction, val eventSink: (PushHistoryEvents) -> Unit, ) diff --git a/libraries/troubleshoot/impl/src/main/kotlin/io/element/android/libraries/troubleshoot/impl/history/PushHistoryStateProvider.kt b/libraries/troubleshoot/impl/src/main/kotlin/io/element/android/libraries/troubleshoot/impl/history/PushHistoryStateProvider.kt index 7482e22ef7..da37700a93 100644 --- a/libraries/troubleshoot/impl/src/main/kotlin/io/element/android/libraries/troubleshoot/impl/history/PushHistoryStateProvider.kt +++ b/libraries/troubleshoot/impl/src/main/kotlin/io/element/android/libraries/troubleshoot/impl/history/PushHistoryStateProvider.kt @@ -8,6 +8,7 @@ package io.element.android.libraries.troubleshoot.impl.history import androidx.compose.ui.tooling.preview.PreviewParameterProvider +import io.element.android.libraries.architecture.AsyncAction import io.element.android.libraries.matrix.api.core.EventId import io.element.android.libraries.matrix.api.core.RoomId import io.element.android.libraries.matrix.api.core.SessionId @@ -36,16 +37,23 @@ open class PushHistoryStateProvider : PreviewParameterProvider ) ) ), + aPushHistoryState( + resetAction = AsyncAction.ConfirmingNoParams, + ), ) } fun aPushHistoryState( pushCounter: Int = 0, pushHistoryItems: List = emptyList(), + showOnlyErrors: Boolean = false, + resetAction: AsyncAction = AsyncAction.Uninitialized, eventSink: (PushHistoryEvents) -> Unit = {}, ) = PushHistoryState( pushCounter = pushCounter, pushHistoryItems = pushHistoryItems.toImmutableList(), + showOnlyErrors = showOnlyErrors, + resetAction = resetAction, eventSink = eventSink, ) diff --git a/libraries/troubleshoot/impl/src/main/kotlin/io/element/android/libraries/troubleshoot/impl/history/PushHistoryView.kt b/libraries/troubleshoot/impl/src/main/kotlin/io/element/android/libraries/troubleshoot/impl/history/PushHistoryView.kt index 76b5ff2bf0..36340518cb 100644 --- a/libraries/troubleshoot/impl/src/main/kotlin/io/element/android/libraries/troubleshoot/impl/history/PushHistoryView.kt +++ b/libraries/troubleshoot/impl/src/main/kotlin/io/element/android/libraries/troubleshoot/impl/history/PushHistoryView.kt @@ -24,6 +24,10 @@ import androidx.compose.foundation.lazy.items import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.HorizontalDivider import androidx.compose.runtime.Composable +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember +import androidx.compose.runtime.setValue import androidx.compose.ui.Modifier import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.style.TextOverflow @@ -31,16 +35,20 @@ import androidx.compose.ui.tooling.preview.PreviewParameter 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.components.async.AsyncActionView import io.element.android.libraries.designsystem.components.button.BackButton +import io.element.android.libraries.designsystem.components.dialogs.ConfirmationDialog import io.element.android.libraries.designsystem.components.list.ListItemContent import io.element.android.libraries.designsystem.preview.ElementPreview import io.element.android.libraries.designsystem.preview.PreviewsDayNight import io.element.android.libraries.designsystem.theme.aliasScreenTitle +import io.element.android.libraries.designsystem.theme.components.DropdownMenu +import io.element.android.libraries.designsystem.theme.components.DropdownMenuItem import io.element.android.libraries.designsystem.theme.components.Icon +import io.element.android.libraries.designsystem.theme.components.IconButton import io.element.android.libraries.designsystem.theme.components.ListItem import io.element.android.libraries.designsystem.theme.components.Scaffold import io.element.android.libraries.designsystem.theme.components.Text -import io.element.android.libraries.designsystem.theme.components.TextButton import io.element.android.libraries.designsystem.theme.components.TopAppBar import io.element.android.libraries.matrix.api.core.EventId import io.element.android.libraries.matrix.api.core.RoomId @@ -57,6 +65,8 @@ fun PushHistoryView( onItemClick: (SessionId, RoomId, EventId) -> Unit, modifier: Modifier = Modifier, ) { + var showMenu by remember { mutableStateOf(false) } + Scaffold( modifier = modifier .fillMaxSize() @@ -77,12 +87,42 @@ fun PushHistoryView( ) }, actions = { - TextButton( - text = stringResource(CommonStrings.action_reset), - onClick = { - state.eventSink(PushHistoryEvents.Reset) - }, - ) + IconButton(onClick = { showMenu = !showMenu }) { + Icon( + imageVector = CompoundIcons.OverflowVertical(), + contentDescription = stringResource(id = CommonStrings.a11y_user_menu), + ) + } + DropdownMenu( + expanded = showMenu, + onDismissRequest = { showMenu = false }, + ) { + DropdownMenuItem( + text = { Text("Show only errors") }, + trailingIcon = if (state.showOnlyErrors) { + { + Icon( + imageVector = CompoundIcons.CheckCircleSolid(), + contentDescription = null, + modifier = Modifier.size(16.dp), + ) + } + } else { + null + }, + onClick = { + showMenu = false + state.eventSink(PushHistoryEvents.SetShowOnlyErrors(state.showOnlyErrors.not())) + }, + ) + DropdownMenuItem( + text = { Text(stringResource(id = CommonStrings.action_reset)) }, + onClick = { + showMenu = false + state.eventSink(PushHistoryEvents.Reset(requiresConfirmation = true)) + }, + ) + } } ) }, @@ -95,6 +135,22 @@ fun PushHistoryView( onItemClick = onItemClick, ) } + + AsyncActionView( + async = state.resetAction, + onSuccess = {}, + confirmationDialog = { + ConfirmationDialog( + content = "", + title = stringResource(CommonStrings.dialog_title_confirmation), + submitText = stringResource(CommonStrings.action_reset), + cancelText = stringResource(CommonStrings.action_cancel), + onSubmitClick = { state.eventSink(PushHistoryEvents.Reset(requiresConfirmation = false)) }, + onDismiss = { state.eventSink(PushHistoryEvents.ClearDialog) }, + ) + }, + onErrorDismiss = {}, + ) } @Composable diff --git a/libraries/troubleshoot/impl/src/main/res/values-cs/translations.xml b/libraries/troubleshoot/impl/src/main/res/values-cs/translations.xml index 17e47cf56f..5e4a4f1757 100644 --- a/libraries/troubleshoot/impl/src/main/res/values-cs/translations.xml +++ b/libraries/troubleshoot/impl/src/main/res/values-cs/translations.xml @@ -1,5 +1,6 @@ + "Historie push oznámení" "Spustit testy" "Spustit testy znovu" "Některé testy selhaly. Zkontrolujte prosím podrobnosti." diff --git a/libraries/troubleshoot/impl/src/main/res/values-cy/translations.xml b/libraries/troubleshoot/impl/src/main/res/values-cy/translations.xml new file mode 100644 index 0000000000..e20f3ed39d --- /dev/null +++ b/libraries/troubleshoot/impl/src/main/res/values-cy/translations.xml @@ -0,0 +1,4 @@ + + + "Hanes gwthio" + diff --git a/libraries/troubleshoot/impl/src/main/res/values-de/translations.xml b/libraries/troubleshoot/impl/src/main/res/values-de/translations.xml index 98b8c579a9..15707886d2 100644 --- a/libraries/troubleshoot/impl/src/main/res/values-de/translations.xml +++ b/libraries/troubleshoot/impl/src/main/res/values-de/translations.xml @@ -1,5 +1,6 @@ + "Verlauf pushen" "Tests durchführen" "Tests erneut durchführen" "Einige Tests sind fehlgeschlagen. Bitte überprüfe die Details." diff --git a/libraries/troubleshoot/impl/src/main/res/values-et/translations.xml b/libraries/troubleshoot/impl/src/main/res/values-et/translations.xml index b5e3e8bff7..e2983c6d40 100644 --- a/libraries/troubleshoot/impl/src/main/res/values-et/translations.xml +++ b/libraries/troubleshoot/impl/src/main/res/values-et/translations.xml @@ -1,5 +1,6 @@ + "Tõuketeadete ajalugu" "Käivita testid" "Käivita testid uuesti" "Mõned testid tuvastasid vigu. Palun vaata üksikasjalikku teavet." diff --git a/libraries/troubleshoot/impl/src/main/res/values-fi/translations.xml b/libraries/troubleshoot/impl/src/main/res/values-fi/translations.xml index 527607dd4f..9241534da0 100644 --- a/libraries/troubleshoot/impl/src/main/res/values-fi/translations.xml +++ b/libraries/troubleshoot/impl/src/main/res/values-fi/translations.xml @@ -1,5 +1,6 @@ + "Push-historia" "Suorita testit" "Suorita testit uudelleen" "Osa testeistä epäonnistui. Tarkista tiedot." diff --git a/libraries/troubleshoot/impl/src/main/res/values-fr/translations.xml b/libraries/troubleshoot/impl/src/main/res/values-fr/translations.xml index 497b3e3b56..c920d3ff26 100644 --- a/libraries/troubleshoot/impl/src/main/res/values-fr/translations.xml +++ b/libraries/troubleshoot/impl/src/main/res/values-fr/translations.xml @@ -1,5 +1,6 @@ + "Historique des Push" "Exécuter les tests" "Relancer les tests" "Certains tests ont échoué. Veuillez vérifier les détails." diff --git a/libraries/troubleshoot/impl/src/main/res/values-hu/translations.xml b/libraries/troubleshoot/impl/src/main/res/values-hu/translations.xml index 211b1f4a1d..6f359ecb22 100644 --- a/libraries/troubleshoot/impl/src/main/res/values-hu/translations.xml +++ b/libraries/troubleshoot/impl/src/main/res/values-hu/translations.xml @@ -1,5 +1,6 @@ + "Leküldési értesítés előzmények" "Tesztek futtatása" "Tesztek újbóli futtatása" "Egyes tesztek sikertelenek voltak. Ellenőrizze a részleteket." diff --git a/libraries/troubleshoot/impl/src/main/res/values-nb/translations.xml b/libraries/troubleshoot/impl/src/main/res/values-nb/translations.xml index 7d69570f4c..92b31f7765 100644 --- a/libraries/troubleshoot/impl/src/main/res/values-nb/translations.xml +++ b/libraries/troubleshoot/impl/src/main/res/values-nb/translations.xml @@ -1,5 +1,6 @@ + "Push-historikk" "Kjør tester" "Kjør tester igjen" "Noen tester mislyktes. Vennligst sjekk detaljene." diff --git a/libraries/troubleshoot/impl/src/main/res/values-pl/translations.xml b/libraries/troubleshoot/impl/src/main/res/values-pl/translations.xml index 31d165d3d6..0a02363907 100644 --- a/libraries/troubleshoot/impl/src/main/res/values-pl/translations.xml +++ b/libraries/troubleshoot/impl/src/main/res/values-pl/translations.xml @@ -1,5 +1,6 @@ + "Historia powiadomień Push" "Uruchom testy" "Uruchom testy ponownie" "Niektóre testy się nie powiodły. Sprawdź szczegóły." diff --git a/libraries/troubleshoot/impl/src/main/res/values-ru/translations.xml b/libraries/troubleshoot/impl/src/main/res/values-ru/translations.xml index 943652fc86..a37b3c8e13 100644 --- a/libraries/troubleshoot/impl/src/main/res/values-ru/translations.xml +++ b/libraries/troubleshoot/impl/src/main/res/values-ru/translations.xml @@ -1,5 +1,6 @@ + "История уведомлений" "Выполнение тестов" "Повторное выполнение тестов" "Некоторые тесты провалились. Пожалуйста, проверьте детали." diff --git a/libraries/troubleshoot/impl/src/main/res/values-sk/translations.xml b/libraries/troubleshoot/impl/src/main/res/values-sk/translations.xml index 3b7a08c2f0..e661660998 100644 --- a/libraries/troubleshoot/impl/src/main/res/values-sk/translations.xml +++ b/libraries/troubleshoot/impl/src/main/res/values-sk/translations.xml @@ -1,5 +1,6 @@ + "História push oznámení" "Spustiť testy" "Spustiť testy znova" "Niektoré testy zlyhali. Skontrolujte prosím podrobnosti." diff --git a/libraries/troubleshoot/impl/src/main/res/values-sv/translations.xml b/libraries/troubleshoot/impl/src/main/res/values-sv/translations.xml index 77f07c48f4..28ff461bac 100644 --- a/libraries/troubleshoot/impl/src/main/res/values-sv/translations.xml +++ b/libraries/troubleshoot/impl/src/main/res/values-sv/translations.xml @@ -1,5 +1,6 @@ + "Push-historik" "Kör tester" "Kör tester igen" "Vissa tester misslyckades. Kontrollera detaljerna." diff --git a/libraries/troubleshoot/impl/src/main/res/values-uk/translations.xml b/libraries/troubleshoot/impl/src/main/res/values-uk/translations.xml index 63e887af01..879ce09607 100644 --- a/libraries/troubleshoot/impl/src/main/res/values-uk/translations.xml +++ b/libraries/troubleshoot/impl/src/main/res/values-uk/translations.xml @@ -1,5 +1,6 @@ + "Історія push-сповіщень" "Запустити тести" "Запустити тести знову" "Деякі тести не пройдено. Перегляньте подробиці." diff --git a/libraries/troubleshoot/impl/src/test/kotlin/io/element/android/libraries/troubleshoot/impl/history/PushHistoryPresenterTest.kt b/libraries/troubleshoot/impl/src/test/kotlin/io/element/android/libraries/troubleshoot/impl/history/PushHistoryPresenterTest.kt index ad1d9c512e..313735b6e6 100644 --- a/libraries/troubleshoot/impl/src/test/kotlin/io/element/android/libraries/troubleshoot/impl/history/PushHistoryPresenterTest.kt +++ b/libraries/troubleshoot/impl/src/test/kotlin/io/element/android/libraries/troubleshoot/impl/history/PushHistoryPresenterTest.kt @@ -10,12 +10,12 @@ package io.element.android.libraries.troubleshoot.impl.history import com.google.common.truth.Truth.assertThat +import io.element.android.libraries.architecture.AsyncAction import io.element.android.libraries.push.api.PushService import io.element.android.libraries.push.test.FakePushService import io.element.android.tests.testutils.lambda.lambdaRecorder import io.element.android.tests.testutils.test import kotlinx.coroutines.ExperimentalCoroutinesApi -import kotlinx.coroutines.test.runCurrent import kotlinx.coroutines.test.runTest import org.junit.Test @@ -27,6 +27,8 @@ class PushHistoryPresenterTest { val initialState = awaitItem() assertThat(initialState.pushCounter).isEqualTo(0) assertThat(initialState.pushHistoryItems).isEmpty() + assertThat(initialState.showOnlyErrors).isFalse() + assertThat(initialState.resetAction).isEqualTo(AsyncAction.Uninitialized) } } @@ -49,7 +51,7 @@ class PushHistoryPresenterTest { } @Test - fun `present - reset`() = runTest { + fun `present - reset and cancel`() = runTest { val resetPushHistoryResult = lambdaRecorder { } val pushService = FakePushService( resetPushHistoryResult = resetPushHistoryResult, @@ -59,12 +61,64 @@ class PushHistoryPresenterTest { ) presenter.test { val initialState = awaitItem() - initialState.eventSink(PushHistoryEvents.Reset) - runCurrent() + initialState.eventSink(PushHistoryEvents.Reset(requiresConfirmation = true)) + assertThat(awaitItem().resetAction).isEqualTo(AsyncAction.ConfirmingNoParams) + initialState.eventSink(PushHistoryEvents.ClearDialog) + assertThat(awaitItem().resetAction).isEqualTo(AsyncAction.Uninitialized) + resetPushHistoryResult.assertions().isNeverCalled() + } + } + + @Test + fun `present - reset and confirm`() = runTest { + val resetPushHistoryResult = lambdaRecorder { } + val pushService = FakePushService( + resetPushHistoryResult = resetPushHistoryResult, + ) + val presenter = createPushHistoryPresenter( + pushService = pushService, + ) + presenter.test { + val initialState = awaitItem() + initialState.eventSink(PushHistoryEvents.Reset(requiresConfirmation = true)) + assertThat(awaitItem().resetAction).isEqualTo(AsyncAction.ConfirmingNoParams) + initialState.eventSink(PushHistoryEvents.Reset(requiresConfirmation = false)) + assertThat(awaitItem().resetAction).isEqualTo(AsyncAction.Loading) + assertThat(awaitItem().resetAction).isEqualTo(AsyncAction.Uninitialized) resetPushHistoryResult.assertions().isCalledOnce() } } + @Test + fun `present - set show only errors`() = runTest { + val pushService = FakePushService() + val presenter = createPushHistoryPresenter( + pushService = pushService, + ) + presenter.test { + val initialState = awaitItem() + assertThat(initialState.showOnlyErrors).isFalse() + val item = aPushHistoryItem(hasBeenResolved = true) + val itemError = aPushHistoryItem(hasBeenResolved = false) + pushService.emitPushHistoryItems(listOf(item, itemError)) + awaitItem().let { state -> + assertThat(state.pushHistoryItems).containsExactly(item, itemError) + state.eventSink(PushHistoryEvents.SetShowOnlyErrors(showOnlyErrors = true)) + } + skipItems(1) + awaitItem().let { state -> + assertThat(state.showOnlyErrors).isTrue() + assertThat(state.pushHistoryItems).containsExactly(itemError) + state.eventSink(PushHistoryEvents.SetShowOnlyErrors(showOnlyErrors = false)) + } + skipItems(1) + awaitItem().let { state -> + assertThat(state.showOnlyErrors).isFalse() + assertThat(state.pushHistoryItems).containsExactly(item, itemError) + } + } + } + private fun createPushHistoryPresenter( pushService: PushService = FakePushService(), ): PushHistoryPresenter { diff --git a/libraries/troubleshoot/impl/src/test/kotlin/io/element/android/libraries/troubleshoot/impl/history/PushHistoryViewTest.kt b/libraries/troubleshoot/impl/src/test/kotlin/io/element/android/libraries/troubleshoot/impl/history/PushHistoryViewTest.kt index fdb10e318f..5c98b2c21a 100644 --- a/libraries/troubleshoot/impl/src/test/kotlin/io/element/android/libraries/troubleshoot/impl/history/PushHistoryViewTest.kt +++ b/libraries/troubleshoot/impl/src/test/kotlin/io/element/android/libraries/troubleshoot/impl/history/PushHistoryViewTest.kt @@ -10,6 +10,7 @@ package io.element.android.libraries.troubleshoot.impl.history import androidx.activity.ComponentActivity import androidx.compose.ui.test.junit4.AndroidComposeTestRule import androidx.compose.ui.test.junit4.createAndroidComposeRule +import androidx.compose.ui.test.onNodeWithContentDescription import androidx.compose.ui.test.onNodeWithText import androidx.compose.ui.test.performClick import androidx.test.ext.junit.runners.AndroidJUnit4 @@ -46,12 +47,44 @@ class PushHistoryViewTest { eventSink = eventsRecorder, ), ) + val menuContentDescription = rule.activity.getString(CommonStrings.a11y_user_menu) + rule.onNodeWithContentDescription(menuContentDescription).performClick() rule.clickOn(CommonStrings.action_reset) - eventsRecorder.assertSingle(PushHistoryEvents.Reset) + eventsRecorder.assertSingle(PushHistoryEvents.Reset(requiresConfirmation = true)) // Also check that the push counter is rendered rule.onNodeWithText("123").assertExists() } + @Test + fun `clicking on show only errors sends a PushHistoryEvents(true)`() { + val eventsRecorder = EventsRecorder() + rule.setPushHistoryView( + aPushHistoryState( + showOnlyErrors = false, + eventSink = eventsRecorder, + ), + ) + val menuContentDescription = rule.activity.getString(CommonStrings.a11y_user_menu) + rule.onNodeWithContentDescription(menuContentDescription).performClick() + rule.onNodeWithText("Show only errors").performClick() + eventsRecorder.assertSingle(PushHistoryEvents.SetShowOnlyErrors(showOnlyErrors = true)) + } + + @Test + fun `clicking on show only errors sends a PushHistoryEvents(false)`() { + val eventsRecorder = EventsRecorder() + rule.setPushHistoryView( + aPushHistoryState( + showOnlyErrors = true, + eventSink = eventsRecorder, + ), + ) + val menuContentDescription = rule.activity.getString(CommonStrings.a11y_user_menu) + rule.onNodeWithContentDescription(menuContentDescription).performClick() + rule.onNodeWithText("Show only errors").performClick() + eventsRecorder.assertSingle(PushHistoryEvents.SetShowOnlyErrors(showOnlyErrors = false)) + } + @Test fun `clicking on an invalid event has no effect`() { val eventsRecorder = EventsRecorder(expectEvents = false) 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 08b0fcf858..edc85b724e 100644 --- a/libraries/ui-strings/src/main/res/values-be/translations.xml +++ b/libraries/ui-strings/src/main/res/values-be/translations.xml @@ -285,6 +285,15 @@ "Гэй, пагавары са мной у %1$s: %2$s" "%1$s Android" "Паведаміць аб памылцы з дапамогай Rageshake" + "Выдаліць і заблакіраваць удзельніка" + "Заблакіраваць" + "Яны не змогуць зноў далучыцца да гэтага пакоя, калі іх запросяць." + "Вы ўпэўнены, што хочаце заблакіраваць гэтага карыстальніка?" + "Блакіроўка %1$s" + "Прагляд профілю" + "Выдаліць удзельніка з пакоя" + "Выдаліць удзельніка і забараніць далучацца ў будучыні?" + "Выдаленне %1$s …" "Не ўдалося выбраць носьбіт, паўтарыце спробу." "Не атрымалася апрацаваць медыяфайл для загрузкі, паспрабуйце яшчэ раз." "Не атрымалася загрузіць медыяфайлы, паспрабуйце яшчэ раз." 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 018921416f..b2df63d37c 100644 --- a/libraries/ui-strings/src/main/res/values-cs/translations.xml +++ b/libraries/ui-strings/src/main/res/values-cs/translations.xml @@ -62,6 +62,7 @@ "Deaktivovat" "Deaktivovat účet" "Odmítnout" + "Odmítnout a zablokovat" "Odstranit hlasování" "Zakázat" "Vyřadit" @@ -107,8 +108,10 @@ "Odstranit zprávu" "Odpovědět" "Odpovědět ve vlákně" + "Nahlásit" "Nahlásit chybu" "Nahlásit obsah" + "Nahlásit místnost" "Obnovit" "Obnovit identitu" "Zkusit znovu" @@ -219,6 +222,7 @@ Důvod: %1$s." "Trvalý odkaz" "Oprávnění" "Připnuto" + "Zkontrolujte prosím své připojení k internetu" "Počkejte prosím…" "Opravdu chcete ukončit toto hlasování?" "Hlasování: %1$s" @@ -232,6 +236,7 @@ Důvod: %1$s." "Zásady ochrany osobních údajů" "Reakce" "Reakce" + "Důvod" "Klíč pro obnovení" "Obnovování…" "Odpověď na %1$s" @@ -303,6 +308,8 @@ Důvod: %1$s." Opravdu chcete pokračovat?" "Zkontrolujte tento odkaz" + "Místnost nahlášena" + "Nahlášen a opustil místnost" "Potvrzení" "Chyba" "Úspěch" @@ -334,6 +341,23 @@ Opravdu chcete pokračovat?" "Ahoj, ozvi se mi na %1$s: %2$s" "%1$s Android" "Zatřeste zařízením pro nahlášení chyby" + "Odebrat a vykázat člena" + "Vykázat" + "Nebudou se moci znovu připojit k této místnosti, pokud budou pozváni." + "Jste si jisti, že chcete vykázat tohoto člena?" + "Vykazování %1$s" + "Odebrat" + "Budou moci znovu vstoupit do této místnosti, pokud budou pozváni." + "Opravdu chcete tohoto člena odebrat?" + "Zobrazit profil" + "Odebrat z místnosti" + "Odebrat člena a zakázat mu připojení v budoucnu?" + "Odstraňování %1$s…" + "Od tohoto uživatele neuvidíte žádné zprávy ani pozvánky do místnosti" + "Zablokovat uživatele" + "Nahlaste tuto místnost svému poskytovateli účtu." + "Popište důvod nahlášení…" + "Odmítnout a zablokovat" "Výběr média se nezdařil, zkuste to prosím znovu." "Titulky nemusí být viditelné pro lidi, kteří používají starší aplikace." "Nahrání média se nezdařilo, zkuste to prosím znovu." @@ -346,6 +370,11 @@ Opravdu chcete pokračovat?" "%1$d Připnutých zpráv" "Připnuté zprávy" + "Vaše hlášení bylo úspěšně odesláno, ale při pokusu o opuštění místnosti jsme narazili na problém. Zkuste to prosím znovu." + "Nelze opustit místnost" + "Nahlaste tuto místnost svému administrátorovi. Pokud jsou zprávy zašifrované, váš administrátor je nebude moci číst." + "Popište důvod…" + "Nahlásit místnost" "Chystáte se přejít na svůj %1$s účet a obnovit svou identitu. Poté budete přesměrováni zpět do aplikace." "Nemůžete to potvrdit? Přejděte na svůj účet a resetujte svou identitu." "Zrušit ověření a odeslat" diff --git a/libraries/ui-strings/src/main/res/values-cy/translations.xml b/libraries/ui-strings/src/main/res/values-cy/translations.xml new file mode 100644 index 0000000000..7c33bf85cb --- /dev/null +++ b/libraries/ui-strings/src/main/res/values-cy/translations.xml @@ -0,0 +1,370 @@ + + + "Afatar" + "Dileu" + "Cuddio cyfrinair" + "Ymuno â galwad" + "Symud i\'r gwaelod" + "Crybwylliadau\'n unig" + "Wedi\'i Dewi" + "Tudalen %1$d" + "Oedi" + "Neges llais, hyd: %1$s, safle presennol: %2$s" + "Maes PIN" + "Chwarae" + "Pôl" + "Mae\'r pôl wedi gorffen" + "Ymateb gyda %1$s" + "Ymateb gydag emojis eraill" + "Wedi\'i ddarllen gan %1$s a %2$s" + "Wedi\'i ddarllen gan %1$s" + "Tapio i ddangos y cyfan" + "Wedi dileu adwaith gyda %1$s" + "Anfon ffeiliau" + "Dangos y cyfrinair" + "Cychwyn galwad" + "Dewislen defnyddiwr" + "Manylion" + "Neges llais, hyd: %1$s" + "Recordio neges llais." + "Stopio recordio" + "Derbyn" + "Ychwanegu capsiwn" + "Ychwanegu at y llinell amser" + "Nôl" + "Galw" + "Nôl" + "Diddymu am y tro" + "Dewis llun" + "Clirio" + "Cau" + "Cwblhau\'r gwirio" + "Cadarnhau" + "Cadarnhau cyfrinair" + "Parhau" + "Copïo" + "Copïo capsiwn" + "Copïo dolen" + "Copïo dolen i\'r neges" + "Copïo testun" + "Creu" + "Creu ystafell" + "Dadweithredu" + "Cau cyfrif" + "Gwrthod" + "Gwrthod a rhwystro" + "Dileu Pôl" + "Analluogi" + "Dileu" + "Cau" + "Gorffen" + "Golygu" + "Golygu capsiwn" + "Golygu pôl" + "Galluogi" + "Gorffen pôl" + "Rhoi\'r PIN" + "Wedi anghofio\'ch cyfrinair?" + "Ymlaen" + "Mynd nôl" + "Anwybyddu" + "Gwahodd" + "Gwahodd pobl" + "Gwahodd pobl i %1$s" + "Gwahodd pobl i %1$s" + "Gwahoddiadau" + "Ymuno" + "Dysgu rhagor" + "Gadael" + "Gadael y sgwrs" + "Gadael yr ystafell" + "Llwytho rhagor" + "Rheoli cyfrif" + "Rheoli dyfeisiau" + "Neges" + "Nesaf" + "Na" + "Nid nawr" + "Iawn" + "Gosodiadau" + "Agor gyda" + "Pinio" + "Ateb cyflym" + "Dyfyniad" + "Ymateb" + "Gwrthod" + "Tynnu" + "Dileu capsiwn" + "Dileu neges" + "Ateb" + "Ateb mewn edefyn" + "Adroddiadau" + "Adrodd ar wall" + "Adrodd ar gynnwys" + "Adrodd ar sgwrs" + "Adrodd ar ystafell" + "Ailosod" + "Ailosod hunaniaeth" + "Ceisio eto" + "Cynnig arall ar ddadgryptio" + "Cadw" + "Chwilio" + "Anfon" + "Anfonwch neges" + "Rhannu" + "Rhannwch ddolen" + "Dangos" + "Mewngofnodi eto" + "Allgofnodi" + "Allgofnodi beth bynnag" + "Hepgor" + "Cychwyn" + "Dechrau sgwrs" + "Dechrau dilysu" + "Tapio i lwytho map" + "Cymryd llun" + "Tapio am ddewisiadau" + "Ceisiwch eto" + "Dad-binio" + "Gweld yn yr amserlen" + "Gweld ffynhonnell" + "Iawn" + "Iawn, ceisiwch eto" + "Mae eich gweinydd nawr yn cefnogi protocol newydd, cyflymach. Allgofnodwch a mewngofnodi\'n ôl i uwchraddio nawr. Bydd gwneud hyn nawr yn eich helpu i osgoi allgofnodi gorfodol pan fydd yr hen brotocol yn cael ei ddileu cyn hir." + "Uwchraddiad ar gael" + "Ynghylch" + "Polisi defnydd derbyniol" + "Ychwanegu capsiwn" + "Gosodiadau uwch" + "Dadansoddeg" + "Gwedd" + "Sain" + "Defnyddwyr wedi\'u rhwystro" + "Swigod" + "Galwad wedi dechrau" + "Sgwrs wrth gefn" + "Wedi\'i gopïo i\'r clipfwrdd" + "Hawlfraint" + "Wrthi\'n creu ystafell…" + "Cais wedi\'i ddiddymu" + "Wedi gadael yr ystafell" + "Wedi gwrthod y gwahoddiad" + "Tywyll" + "Gwall dadgryptio" + "Dewisiadau datblygwr" + "ID dyfais" + "Sgwrs uniongyrchol" + "Peidio â dangos hyn eto" + "Methodd y llwytho i lawr" + "Yn llwytho i lawr" + "(golygwyd)" + "Golygu" + "Wrthi\'n golygu capsiwn" + "* %1$s %2$s" + "Ffeil wag" + "Amgryptiad" + "Amgryptio wedi\'i alluogi" + "Rhowch eich PIN" + "Gwall" + "Digwyddodd gwall, efallai fyddwch chi ddim yn derbyn hysbysiadau ar gyfer negeseuon newydd. Ceisiwch ddatrys y problemau hysbysiadau o\'r gosodiadau. + +Rheswm: %1$s." + "Pawb" + "Wedi methu" + "Ffefryn" + "Ffafriwyd" + "Ffeil" + "Ffeil wedi\'i dileu" + "Ffeil wedi\'i chadw" + "Ffeil wedi\'i chadw i\'r Llwythi" + "Anfonwyd neges ymlaen" + "Defnydd cyffredin" + "GIF" + "Delwedd" + "Mewn ymateb i %1$s" + "Gosod APK" + "Nid oes modd dod o hyd i\'r ID Matrics hwn, felly mae\'n bosibl na fydd y gwahoddiad yn cael ei dderbyn." + "Gadael ystafell" + "Golau" + "Llinell wedi\'i chopïo i\'r clipfwrdd" + "Dolen wedi\'i chopïo i\'r clipfwrdd" + "Yn Llwytho…" + "Wrthi\'n llwytho mwy…" + "Neges" + "Gweithredoedd neges" + "Cynllun y neges" + "Neges wedi\'i thynnu" + "Cyfoes" + "Tewi" + "%1$s (%2$s)" + "Dim canlyniadau" + "Dim enw i\'r ystafell" + "Heb ei amgryptio" + "All-lein" + "Trwyddedau cod agored" + "neu" + "Cyfrinair" + "Pobl" + "Dolen Barhaol" + "Caniatâd" + "Piniwyd" + "Gwiriwch eich cysylltiad rhyngrwyd" + "Arhoswch…" + "Ydych chi\'n siŵr eich bod am ddod â\'r pôl hwn i ben?" + "Pôl: %1$s" + "Cyfanswm y pleidleisiau: %1$s" + "Bydd y canlyniadau\'n dangos ar ôl i\'r bleidlais ddod i ben" + "Polisi preifatrwydd" + "Adwaith" + "Adweithiau" + "Rheswm" + "Allwedd adfer" + "Wrthi\'n adnewyddu…" + "Yn ymateb i %1$s" + "Adrodd ar wall" + "Adrodd am broblem" + "Adroddiad wedi ei gyflwyno" + "Golygydd testun cyfoethog" + "Ystafell" + "Enw\'r ystafell" + "e.e. enw eich project" + "Newidiadau wedi\'u cadw" + "Cadw" + "Clo sgrin" + "Chwilio am rywun" + "Canlyniadau chwilio" + "Diogelwch" + "Wedi\'i weld gan" + "Anfon at" + "Yn anfon…" + "Methodd anfon" + "Anfonwyd" + "Nid yw\'r gweinydd yn cael ei gynnal" + "URL gweinydd" + "Gosodiadau" + "Lleoliad yn cael ei rannu" + "Allgofnodi" + "Aeth rhywbeth o\'i le" + "Dechrau sgwrs…" + "Sticer" + "Llwyddiant" + "Awgrymiadau" + "Cydweddu" + "System" + "Testun" + "Hysbysiadau trydydd parti" + "Edefyn" + "Pwnc" + "Am beth mae\'r ystafell hon?" + "Methu dadgryptio" + "Wedi\'i anfon o ddyfais anniogel" + "Does gennych chi ddim mynediad i\'r neges hon" + "Cafodd hunaniaeth yr anfonwr ei hailosod" + "Doedd dim modd anfon gwahoddiadau at un neu fwy o ddefnyddwyr." + "Methu anfon gwahoddiad(au)" + "Datgloi" + "Dad-dewi" + "Galwad heb ei chefnogi" + "Digwyddiad heb ei gefnogi" + "Enw defnyddiwr" + "Dilysiad wedi\'i ddiddymu" + "Gwiriad wedi\'i gwblhau" + "Methodd y gwirio" + "Wedi ei wirio" + "Gwirio dyfais" + "Gwirio hunaniaeth" + "Gwirio defnyddiwr" + "Fideo" + "Neges llais" + "Yn aros…" + "Yn aros am y neges hon" + "Chi" + "Cafodd hunaniaeth %1$s ei ailosod. %2$s" + "Cafodd hunaniaeth %2$s %1$s ei ailosod. %3$s" + "(%1$s)" + "Cafodd hunaniaeth %1$s ei ailosod." + "Cafodd hunaniaeth %2$s %1$s ei ailosod. %3$s" + "Tynnu\'r gwiriad yn ôl" + "Mae\'r ddolen %1$s yn mynd â chi i wefan arall %2$s + +Ydych chi\'n siŵr eich bod am barhau?" + "Gwnewch yn siŵr fod y ddolen hon yn iawn" + "Adroddwyd am yr ystafell" + "Adroddwyd a gadael yr ystafell" + "Cadarnhad" + "Gwall" + "Llwyddiant" + "Rhybudd" + "Dyw eich newidiadau heb gael eu cadw. Ydych chi\'n siŵr eich bod am fynd nôl?" + "Cadw\'r newidiadau?" + "Mae angen uwchraddio eich gweinydd cartref i gefnogi Gwasanaeth Dilysu Matrix a chreu cyfrif." + "Wedi methu creu\'r ddolen barhaol" + "Methodd %1$s â llwytho\'r map. Ceisiwch eto yn nes ymlaen." + "Wedi methu llwytho negeseuon" + "Doedd dim modd i %1$s gael mynediad i\'ch lleoliad. Ceisiwch eto yn nes ymlaen." + "Wedi methu llwytho eich neges llais." + "Neges heb ei chanfod" + "Does gan %1$s ddim caniatâd i gael mynediad i\'ch lleoliad. Gallwch alluogi mynediad yn y Gosodiadau." + "Does gan %1$s ddim caniatâd i gael mynediad i\'ch lleoliad. Galluogwch fynediad isod." + "Does gan %1$s ddim caniatâd i gael mynediad i\'ch meicroffon. Galluogwch fynediad i recordio neges llais." + "Gall hyn fod oherwydd problemau rhwydwaith neu weinydd." + "Mae\'r cyfeiriad ystafell hwn yn bodoli eisoes. Ceisiwch olygu\'r maes cyfeiriad ystafell neu newid enw\'r ystafell" + "Dyw rhai nodau ddim yn cael eu caniatáu. Dim ond llythrennau, digidau a\'r symbolau canlynol sy\'n cael eu cefnogi ! $ & ‘ ( ) * + / ; = ? @ [ ] - . _" + "Nid yw rhai negeseuon wedi\'u hanfon" + "Ymddiheuriadau, mae gwall wedi digwydd" + "Nid oes modd gwarantu dilysrwydd y neges hon sydd wedi\'i hamgryptio ar y ddyfais hon." + "Wedi\'i amgryptio gan ddefnyddiwr a wiriwyd gynt." + "Heb ei amgryptio." + "Wedi\'i amgryptio gan ddyfais anhysbys neu wedi\'i dileu." + "Wedi\'i amgryptio gan ddyfais nad yw wedi\'i wirio gan ei pherchennog." + "Wedi\'i amgryptio gan ddefnyddiwr heb ei wirio." + "🔐️ Ymunwch â mi ar %1$s" + "Hei, siaradwch â mi ar %1$s: %2$s" + "Android %1$s" + "Rageshake i adrodd gwall" + "Gwahardd o ystafell" + "Atal" + "Fyddan nhw ddim yn gallu ymuno â\'r ystafell hon eto os cân nhw wahoddiad." + "Ydych chi\'n siŵr eich bod am wahardd yr aelod hwn?" + "Yn gwahardd %1$s" + "Tynnu" + "Fyddan nhw yn gallu ymuno â\'r ystafell hon eto os cân nhw wahoddiad." + "Ydych chi\'n siŵr eich bod am ddileu\'r aelod hwn?" + "Gweld proffil" + "Tynnu o\'r ystafell" + "Dileu aelod a\'u gwahardd rhag ymuno yn y dyfodol?" + "Wrthi\'n dileu %1$s…" + "Fyddwch chi ddim yn gweld unrhyw negeseuon neu wahoddiadau ystafell gan y defnyddiwr hwn" + "Rhwystro defnyddiwr" + "Adrodd am yr ystafell hon i ddarparwr eich cyfrif." + "Disgrifiwch y rheswm dros adrodd…" + "Gwrthod a rhwystro" + "Efallai na fydd capsiynau yn weladwy i bobl sy\'n defnyddio apiau hŷn." + "Wedi methu â phrosesu cyfryngau i\'w llwytho, ceisiwch eto." + "Wedi methu llwytho cyfryngau, ceisiwch eto." + "Pwyswch ar neges a dewis “%1$s” i\'w cynnwys yma." + "Pinio negeseuon pwysig fel y mae modd eu darganfod yn hawdd" + "Negeseuon wedi\'u pinio" + "Cyflwynwyd eich adroddiad yn llwyddiannus, ond cododd problem wrth geisio gadael yr ystafell. Ceisiwch eto." + "Methu Gadael yr Ystafell" + "Adroddwch yr ystafell hon i\'ch gweinyddwr. Os yw\'r negeseuon wedi\'u hamgryptio, fydd eich gweinyddwr ddim yn gallu eu darllen." + "Disgrifiwch y rheswm…" + "Adrodd ar ystafell" + "Tynnu\'r dilysiad yn ôl a\'i anfon" + "Gallwch dynnu\'ch dilysiad yn ôl ac anfon y neges hon beth bynnag, neu gallwch ei diddymu am y tro a rhoi cynnig arall arni yn nes ymlaen ar ôl dilysu %1$s." + "Nid yw eich neges wedi\'i hanfon oherwydd ailosodwyd hunaniaeth ddilys %1$s" + "Anfonwch neges beth bynnag" + "Mae %1$s yn defnyddio un neu fwy o ddyfeisiau heb eu gwirio. Gallwch anfon y neges beth bynnag, neu gallwch ei diddymu am y tro a cheisio eto yn nes ymlaen ar ôl i %2$s ddilysu ei holl ddyfeisiau." + "Nid yw eich neges wedi\'i hanfon oherwydd nid yw %1$s wedi gwirio pob dyfais" + "Mae un neu fwy o\'ch dyfeisiau heb eu gwirio. Gallwch anfon y neges beth bynnag, neu gallwch ei diddymu am y tro a cheisio eto yn nes ymlaen ar ôl i chi ddilysu eich holl ddyfeisiau." + "Nid yw eich neges wedi\'i hanfon oherwydd nad ydych wedi gwirio un neu fwy o\'ch dyfeisiau" + "Wedi methu â phrosesu cyfryngau i\'w llwytho, ceisiwch eto." + "Neges yn %1$s" + "%1$s o %2$s" + "%1$s Neges wedi\'u pinio" + "Wrthi\'n llwytho neges…" + "Dangos y Cyfan" + "Sgwrs" + "Anfonwyd y cais i ymuno" + "Lleoliad" + 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 c60ed87896..5744d232b3 100644 --- a/libraries/ui-strings/src/main/res/values-de/translations.xml +++ b/libraries/ui-strings/src/main/res/values-de/translations.xml @@ -60,6 +60,7 @@ "Deaktivieren" "Benutzerkonto deaktivieren" "Ablehnen" + "Ablehnen und blockieren" "Umfrage löschen" "Deaktivieren" "Verwerfen" @@ -105,8 +106,10 @@ "Nachricht löschen" "Antworten" "Im Thread antworten" + "Bericht" "Fehler melden" "Inhalt melden" + "Chatroom melden" "Zurücksetzen" "Identität zurücksetzen" "Erneut versuchen" @@ -216,6 +219,7 @@ Grund: %1$s." "Permalink" "Erlaubnis" "Fixiert" + "Bitte überprüfen Sie Ihre Internetverbindung" "Bitte warten …" "Bist du sicher, dass du diese Umfrage beenden möchtest?" "Umfrage: %1$s" @@ -228,6 +232,7 @@ Grund: %1$s." "Datenschutz­erklärung" "Reaktion" "Reaktionen" + "Grund" "Wiederherstellungsschlüssel" "Wird erneuert…" "%1$s antworten" @@ -299,6 +304,8 @@ Grund: %1$s." Möchten Sie wirklich fortfahren?" "Überprüfen Sie diesen Link noch einmal" + "Chatroom gemeldet" + "Gemeldet und Zimmer verlassen" "Bestätigung" "Fehler" "Erfolg" @@ -330,6 +337,23 @@ Möchten Sie wirklich fortfahren?" "Hey, sprich mit mir auf %1$s: %2$s" "%1$s Android" "Schüttel heftig zum Melden von Fehlern" + "Mitglied entfernen und sperren" + "Sperren" + "Sie können dem Raum nicht mehr beitreten, selbst wenn sie eingeladen werden." + "Bist du sicher, dass du dieses Mitglied sperren möchtest?" + "%1$s wird gesperrt." + "Entfernen" + "Sie können diesen Raum wieder betreten, wenn sie eingeladen werden." + "Möchten Sie dieses Mitglied wirklich entfernen?" + "Benutzerinformationen anzeigen" + "Mitglied entfernen" + "Mitglied entfernen und den erneuten Beitritt sperren?" + "%1$s wird entfernt." + "Sie werden keine Nachrichten oder Chatroomeinladungen von diesem Benutzer sehen." + "Benutzer blockieren" + "Melden Sie diesen Raum Ihrem Kontoanbieter." + "Beschreiben Sie den Grund für die Meldung…" + "Ablehnen und blockieren" "Medienauswahl fehlgeschlagen, bitte versuche es erneut." "Bildunterschriften sind für Nutzer älterer Apps möglicherweise nicht sichtbar." "Fehler beim Verarbeiten des hochgeladenen Mediums. Bitte versuche es erneut." @@ -341,6 +365,11 @@ Möchten Sie wirklich fortfahren?" "%1$d fixierte Nachrichten" "Fixierte Nachrichten" + "Ihr Bericht wurde erfolgreich übermittelt, aber beim Versuch, den Raum zu verlassen, ist ein Problem aufgetreten. Bitte versuchen Sie es erneut." + "Der Chatroom kann nicht verlassen werden" + "Melden Sie diesen Chatroom Ihrem Administrator. Wenn die Nachrichten verschlüsselt sind, kann Ihr Administrator sie nicht lesen." + "Beschreiben Sie den Grund…" + "Chatroom melden" "Du wirst jetzt zu deinem %1$s Konto geleitet, um deine Identität zurückzusetzen. Danach wirst du zur App zurückgebracht." "Kannst du das nicht bestätigen? Gehe zu deinem Konto, um deine Identität zurückzusetzen." "Verifizierung zurückziehen und senden" 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 baff4d30c2..2e22e58fa6 100644 --- a/libraries/ui-strings/src/main/res/values-el/translations.xml +++ b/libraries/ui-strings/src/main/res/values-el/translations.xml @@ -305,6 +305,15 @@ "Γεια, μίλα μου στην εφαρμογή %1$s :%2$s" "%1$s Android" "Κούνησε δυνατά τη συσκευή σου για να αναφέρεις κάποιο σφάλμα" + "Αφαίρεση και αποκλεισμός μέλους" + "Αποκλεισμός" + "Δεν θα μπορεί να συμμετέχει ξανά σε αυτό το δωμάτιο εάν προσκληθεί." + "Θες σίγουρα να αποκλείσεις αυτό το μέλος;" + "Αποκλεισμός %1$s" + "Προβολή προφίλ" + "Αφαίρεση από το δωμάτιο" + "Αφαίρεση μέλους και απαγόρευση συμμετοχής στο μέλλον;" + "Αφαίρεση %1$s…" "Αποτυχία επιλογής πολυμέσου, δοκίμασε ξανά." "Οι λεζάντες ενδέχεται να μην είναι ορατές σε άτομα που χρησιμοποιούν παλαιότερες εφαρμογές." "Αποτυχία μεταφόρτωσης μέσου, δοκίμασε ξανά." diff --git a/libraries/ui-strings/src/main/res/values-es/translations.xml b/libraries/ui-strings/src/main/res/values-es/translations.xml index 66ffa2aee3..1cf59dacbf 100644 --- a/libraries/ui-strings/src/main/res/values-es/translations.xml +++ b/libraries/ui-strings/src/main/res/values-es/translations.xml @@ -316,6 +316,15 @@ Motivo: %1$s." "Hola, puedes hablar conmigo en %1$s: %2$s" "%1$s Android" "Agitar con fuerza para informar de un error" + "Sacar y vetar a un miembro" + "Vetar" + "No podrán volver a unirse a esta sala si son invitados." + "¿Estás seguro de que quieres vetar a este miembro?" + "Vetando a %1$s" + "Ver perfil" + "Sacar de la sala" + "¿Sacar al miembro y prohibirle unirse en el futuro?" + "Eliminando %1$s…" "Error al seleccionar archivos multimedia, por favor inténtalo de nuevo." "Es posible que las leyendas no sean visibles para las personas que usan aplicaciones más antiguas." "Error al procesar el contenido multimedia, por favor inténtalo de nuevo." 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 df27c2e79d..5caf236e22 100644 --- a/libraries/ui-strings/src/main/res/values-et/translations.xml +++ b/libraries/ui-strings/src/main/res/values-et/translations.xml @@ -109,6 +109,7 @@ "Teata" "Teata veast" "Teata sisust haldurile" + "Teata vestlusest" "Teata jututoast" "Lähtesta" "Lähtesta oma identiteet" @@ -260,6 +261,7 @@ Põhjus: %1$s." "Jagatud asukoht" "Logime välja" "Midagi läks valesti" + "Tekkis viga. Palun proovi uuesti." "Alustame vestlust…" "Kleeps" "Õnnestus" @@ -337,9 +339,22 @@ Kas sa oled kindel, et soovid jätkata?" "Hei, suhtle minuga %1$s võrgus: %2$s" "%1$s Android" "Veast teatamiseks raputa nutiseadet ägedalt" + "Eemalda ja sea suhtluskeeld" + "Sea suhtluskeeld" + "Ta ei saa selle jututoaga liituda isegi kutse olemasolul." + "Kas sa oled kindel, et soovid sellele kasutajale seada suhtluskeelu?" + "Seame kasutajale %1$s suhtluskeelu" + "Eemalda" + "Uue kutse saamisel on tal võimalik selle jututoaga uuesti liituda." + "Kas sa oled kindel, et soovid selle osaleja eemaldada?" + "Vaata profiili" + "Eemalda kasutaja jututoast" + "Kas eemaldama kasutaja ja seame talle tulevikuks suhtluskeelu?" + "Eemaldame kasutajat %1$s…" "Sa ei näe enam selle kasutaja saadetud sõnumeid ja jututubade kutseid" "Blokeeri kasutaja" "Teata sellest jututoast oma teenusepakkujale." + "Kirjelda teatamise põhjust…" "Keeldu ja blokeeri" "Meediafaili valimine ei õnnestunud. Palun proovi uuesti." "Selgitused ja alapealkirjad ei pruugi olla nähtavad vanemate rakenduste kasutajatele." diff --git a/libraries/ui-strings/src/main/res/values-eu/translations.xml b/libraries/ui-strings/src/main/res/values-eu/translations.xml index 5311d9bd59..e43f2d24f7 100644 --- a/libraries/ui-strings/src/main/res/values-eu/translations.xml +++ b/libraries/ui-strings/src/main/res/values-eu/translations.xml @@ -1,7 +1,9 @@ + "Abatarra" "Ezabatu" "Ezkutatu pasahitza" + "Batu deira" "Joan behera" "Aipamenak soilik" "Mutututa" @@ -52,9 +54,11 @@ "Desaktibatu" "Desaktibatu kontua" "Ukatu" + "Baztertu eta blokeatu" "Ezabatu inkesta" "Desgaitu" "Baztertu" + "Baztertu" "Eginda" "Editatu" "Editatu testua" @@ -96,8 +100,10 @@ "Kendu mezua" "Erantzun" "Erantzun harian" + "Salatu" "Eman errore baten berri" "Salatu edukia" + "Salatu gela" "Berrezarri" "Berrezarri identitatea" "Saiatu berriro" @@ -215,6 +221,7 @@ Arrazoia: %1$s." "Pribatutasun-politika" "Erreakzioa" "Erreakzioak" + "Arrazoia" "Berreskuratze-gakoa" "Freskatzen…" "%1$s(r)i erantzuten" @@ -234,6 +241,7 @@ Arrazoia: %1$s." "Ikusi du" "Bidali" "Bidaltzen…" + "Bidalketak huts egin du" "Bidalita" "Zerbitzaria ez da bateragarria" "Zerbitzariaren URLa" @@ -278,6 +286,8 @@ Arrazoia: %1$s." "%1$s(r)en %2$s identitatea berrezarri da. %3$s" "%1$s(r)en identitatea berrezarri da." "%1$s(r)en %2$s identitatea berrezarri da. %3$s" + "Gela salatu da" + "Gela salatu eta utzi da" "Baieztapena" "Errorea" "Arrakasta" @@ -288,10 +298,12 @@ Arrazoia: %1$s." "%1$s ezin izan da mapa kargatu. Saiatu berriro geroago." "Huts egin du mezuak kargatzeak" "%1$s ezin izan da zure kokapena atzitu. Saiatu berriro geroago." + "Ahots-mezua igotzeak huts egin du" "Ez da mezua aurkitu" "%1$sek ez du zure kokapena atzitzeko baimenik. Sarbidea Ezarpenetan gaitu dezakezu." "%1$sek ez du zure kokapena atzitzeko baimenik. Gaitu sarbidea behean." "%1$s(e)k ez du mikrofonoa atzitzeko baimenik. Gaitu sarbidea ahots-mezua grabatzeko." + "Sarearen edo zerbitzariaren arazoren bategatik izan daiteke." "Gela badago lehendik ere. Saiatu gelaren helbidearen eremua editatzen edo aldatu gelaren izena" "Karaktere batzuk ez daude baimenduta. Hizkiak, zifrak, eta ondorengo ikurrak onartzen dira bakarrik: ! $ & ‘ ( ) * + / ; = ? @ [ ] - . _" "Mezu batzuk ez dira bidali" @@ -300,6 +312,14 @@ Arrazoia: %1$s." "🔐️ Zatoz nirekin %1$s(e)ra" "%1$s Android" "Astindu erroreen berri emateko" + "Kendu kidea eta ezarri debekua" + "Ezarri debekua" + "Ziur kide honi debekua ezarri nahi diozula?" + "%1$s(r)i debekua ezartzen" + "Ikusi profila" + "Kendu gelatik" + "Kidea kendu eta etorkizunean sartzea debekatu?" + "%1$s kentzen…" "Huts egin du multimedia aukeratzeak, saiatu berriro." "Huts egin du multimedia igotzeak, saiatu berriro." "Finkatutako mezuak" 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 d165cc09a2..51b0ecdad1 100644 --- a/libraries/ui-strings/src/main/res/values-fa/translations.xml +++ b/libraries/ui-strings/src/main/res/values-fa/translations.xml @@ -1,7 +1,9 @@ + "چهرک" "حذف" "نهفتن گذرواژه" + "پیوستن به تماس" "به پایین بروید" "فقط اشاره‌ها" "خموش" @@ -258,6 +260,12 @@ "🔐️ پییوستن به من روی %1$s" "درود. با من روی %1$s صحبت کن: %2$s" "%1$s اندروید" + "برداشت و تحریم عضو" + "تحریم" + "تحریم کردن %1$s" + "دیدن نمایه" + "برداشتن از اتاق" + "برداشتن %1$s…" "گزینش رسانه شکست خورد. لطفاً دوباره تلاش کنید." "پردازش رسانه برای بارگذاری شکست خورد. لطفاً دوباره تلاش کنید." "بارگذاری رسانه شکست خورد. لطفاً دوباره تلاش کنید." 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 290d34fee8..737f4af98e 100644 --- a/libraries/ui-strings/src/main/res/values-fi/translations.xml +++ b/libraries/ui-strings/src/main/res/values-fi/translations.xml @@ -1,16 +1,19 @@ + "Avatar" "Poista" "%1$d numero syötetty" "%1$d numeroa syötetty" "Piilota salasana" + "Liity puheluun" "Siirry loppuun" "Vain maininnat" "Mykistetty" "Sivu %1$d" "Keskeytä" + "Ääniviesti, kesto: %1$s, nykyinen sijainti: %2$s" "PIN-kenttä" "Toista" "Kysely" @@ -30,6 +33,7 @@ "Aloita puhelu" "Käyttäjävalikko" "Näytä tiedot" + "Ääniviesti, kesto: %1$s" "Nauhoita ääniviesti." "Lopeta nauhoittaminen" "Hyväksy" @@ -56,9 +60,11 @@ "Deaktivoi" "Deaktivoi tili" "Hylkää" + "Hylkää ja estä" "Poista kysely" "Poista käytöstä" "Hylkää" + "Sulje" "Valmis" "Muokkaa" "Muokkaa kuvatekstiä" @@ -100,8 +106,11 @@ "Poista viesti" "Vastaa" "Vastaa ketjuun" + "Ilmoita" "Ilmoita virheestä" "Ilmoita sisällöstä" + "Ilmoita keskustelusta" + "Ilmoita huoneesta" "Nollaa" "Nollaa identiteetti" "Yritä uudelleen" @@ -160,6 +169,7 @@ "Muokataan viestiä" "Muokataan kuvatekstiä" "* %1$s %2$s" + "Tyhjä tiedosto" "Salaus" "Salaus käytössä" "Syötä PIN-koodisi" @@ -184,6 +194,7 @@ Syy: %1$s." "Tätä Matrix-tunnusta ei löytynyt, joten kutsu ei välttämättä mene perille." "Poistutaan huoneesta" "Vaalea" + "Rivi kopioitu leikepöydälle" "Linkki kopioitu leikepöydälle" "Ladataan…" "Ladataan lisää…" @@ -200,6 +211,7 @@ Syy: %1$s." "%1$s (%2$s)" "Ei tuloksia" "Nimetön huone" + "Ei salattu" "Ei yhteyttä" "Avoimen lähdekoodin lisenssit" "tai" @@ -208,6 +220,7 @@ Syy: %1$s." "Pysyvä linkki" "Lupa" "Kiinnitetty" + "Tarkista internet-yhteytesi" "Odota hetki…" "Haluatko varmasti lopettaa tämän kyselyn?" "Kysely: %1$s" @@ -220,6 +233,7 @@ Syy: %1$s." "Tietosuojakäytäntö" "Reaktio" "Reaktiot" + "Syy" "Palautusavain" "Päivitetään…" "Vastataan käyttäjälle %1$s" @@ -261,7 +275,7 @@ Syy: %1$s." "Salauksen purkaminen ei onnistunut" "Lähetetty suojaamattomasta laitteesta" "Sinulla ei ole oikeutta lukea tätä viestiä" - "Lähettäjän vahvistettu identiteetti on muuttunut" + "Lähettäjän vahvistettu identiteetti nollattiin" "Kutsujen ei voitu lähettää yhdelle tai useammalle käyttäjälle." "Kutsujen lähettäminen ei onnistunut" "Avaa" @@ -281,12 +295,18 @@ Syy: %1$s." "Odotetaan…" "Odotetaan viestiä" "Sinä" - "Käyttäjän %1$s identiteetti näyttää muuttuneen. %2$s" - "Käyttäjän %1$s %2$s identiteetti näyttää muuttuneen. %3$s" + "Käyttäjän %1$s identiteetti nollattiin. %2$s" + "Käyttäjän %1$s %2$s identiteetti nollattiin. %3$s" "(%1$s)" - "Käyttäjän %1$s vahvistettu identiteetti on muuttunut." - "Käyttäjän %1$s %2$s vahvistettu identiteetti on muuttunut. %3$s" + "Käyttäjän %1$s identiteetti nollattiin." + "Käyttäjän %1$s %2$s identiteetti nollattiin. %3$s" "Peruuta vahvistus" + "Linkki %1$s on viemässä sinua toiselle sivustolle %2$s + +Haluatko varmasti jatkaa?" + "Tarkista tämä linkki" + "Huone ilmoitettu" + "Ilmoitettu ja poistuttu huoneesta" "Vahvistus" "Virhe" "Onnistui" @@ -318,6 +338,23 @@ Syy: %1$s." "Hei, keskustele kanssani %1$s -sovelluksessa: %2$s" "%1$s Android" "Raivostunut ravistaminen ilmoittaa virheestä" + "Poista jäsen huoneesta ja anna porttikielto" + "Anna porttikielto" + "He eivät voi enää liittyä tähän huoneeseen, jos heidät kutsutaan." + "Haluatko varmasti antaa tälle jäsenelle porttikiellon?" + "Annetaan porttikieltoa käyttäjälle %1$s" + "Poista" + "He voivat liittyä tähän huoneeseen uudelleen, jos heidät kutsutaan." + "Haluatko varmasti poistaa tämän jäsenen?" + "Näytä profiili" + "Poista huoneesta" + "Poistetaanko jäsen huoneesta ja kielletäänkö heitä liittymästä tulevaisuudessa?" + "Poistetaan käyttäjää %1$s huoneesta…" + "Et tule näkemään viestejä tai kutsuja tältä käyttäjältä" + "Estä käyttäjä" + "Ilmoita tästä huoneesta palveluntarjoajallesi." + "Kerro syy ilmoittamiseen…" + "Hylkää ja estä" "Median valinta epäonnistui, yritä uudelleen." "Kuvatekstit eivät välttämättä näy ihmisille, jotka käyttävät vanhempia sovelluksia." "Median käsittely epäonnistui, yritä uudelleen." @@ -329,11 +366,16 @@ Syy: %1$s." "%1$d kiinnitettyä viestiä" "Kiinnitetyt viestit" + "Ilmoituksesi lähetettiin onnistuneesti, mutta kohtasimme ongelman yrittäessämme poistua huoneesta. Yritä uudelleen." + "Huoneesta poistuminen epäonnistui" + "Ilmoita tästä huoneesta palvelimesi ylläpitäjälle. Jos viestit on salattu, ylläpitäjäsi ei voi lukea niitä." + "Kuvaile syytä…" + "Ilmoita huoneesta" "Olet siirtymässä %1$s -tilillesi nollaamaan identiteettisi. Tämän jälkeen sinut ohjataan takaisin sovellukseen." "Etkö voi vahvistaa? Siirry tilillesi ja nollaa identiteettisi." "Peruuta vahvistus ja lähetä" "Voit peruuttaa vahvistuksen ja lähettää tämän viestin silti, tai voit peruuttaa viestin lähettämisen toistaiseksi ja yrittää uudelleen myöhemmin, kun olet vahvistanut käyttäjän %1$s uudelleen." - "Viestiäsi ei lähetetty, koska käyttäjän %1$s vahvistettu identiteetti on muuttunut" + "Viestiäsi ei lähetetty, koska käyttäjän %1$s vahvistettu identiteetti nollattiin" "Lähetä viesti silti" "%1$s käyttää yhtä tai useampaa vahvistamatonta laitetta. Voit lähettää viestin silti tai voit peruuttaa sen toistaiseksi ja yrittää myöhemmin uudelleen, kun %2$s on vahvistanut kaikki laitteensa." "Viestiäsi ei lähetetty, koska %1$s ei ole vahvistanut kaikkia laitteitaan." @@ -354,7 +396,7 @@ Syy: %1$s." "Avaa Google Mapsissa" "Avaa OpenStreetMapissa" "Jaa tämä sijainti" - "Viestiä ei lähetetty, koska käyttäjän %1$s vahvistettu identiteetti on muuttunut." + "Viestiä ei lähetetty, koska käyttäjän %1$s vahvistettu identiteetti nollattiin." "Viestiä ei lähetetty, koska %1$s ei ole vahvistanut kaikkia laitteitaan." "Viestiä ei lähetetty, koska et ole vahvistanut yhtä tai useampaa laitettasi." "Sijainti" 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 fe664422b3..90b74e3a62 100644 --- a/libraries/ui-strings/src/main/res/values-fr/translations.xml +++ b/libraries/ui-strings/src/main/res/values-fr/translations.xml @@ -60,6 +60,7 @@ "Désactiver" "Désactiver le compte" "Refuser" + "Refuser et bloquer" "Supprimer le sondage" "Désactiver" "Annuler" @@ -105,8 +106,11 @@ "Supprimer le message" "Répondre" "Répondre dans le fil de discussion" + "Signaler" "Signaler un problème" "Signaler le contenu" + "Signaler la discussion" + "Signaler le salon" "Réinitialiser" "Réinitialiser l’identité" "Réessayer" @@ -216,6 +220,7 @@ Raison : %1$s." "Permalien" "Autorisation" "Épinglé" + "Veuillez vérifier votre connexion internet" "Veuillez patienter…" "Êtes-vous sûr de vouloir mettre fin à ce sondage ?" "Sondage : %1$s" @@ -228,6 +233,7 @@ Raison : %1$s." "Politique de confidentialité" "Réaction" "Réactions" + "Raison" "Clé de récupération" "Actualisation…" "En réponse à %1$s" @@ -299,6 +305,8 @@ Raison : %1$s." Êtes-vous sûr de vouloir continuer ?" "Veuillez vérifier ce lien" + "Salon signalé" + "Salon quitté et signalé" "Confirmation" "Erreur" "Succès" @@ -330,6 +338,23 @@ Raison : %1$s." "Salut, parle-moi sur %1$s : %2$s" "%1$s Android" "Rageshake pour signaler un problème" + "Retirer et bannir ce membre" + "Bannir" + "Il ne pourra pas rejoindre le salon à nouveau, même si il est invité." + "Êtes-vous certain de vouloir bannir ce membre ?" + "Bannissement de %1$s" + "Retirer" + "Cet utilisateur pourra rejoindre le salon à nouveau si il est invité." + "Voulez-vous vraiment supprimer ce membre ?" + "Voir le profil" + "Retirer le membre du salon" + "Retirer le membre et interdire l’adhésion à l’avenir ?" + "Enlever %1$s…" + "Vous ne verrez aucun messages ou invitation à un salon de la part de cet utilisateur" + "Bloquer l’utilisateur" + "Signalez ce salon à votre fournisseur de compte." + "Décrivez la raison du signalement…" + "Refuser et bloquer" "Échec de la sélection du média, veuillez réessayer." "Les légendes peuvent ne pas être visibles pour les utilisateurs d’anciennes applications." "Échec du traitement des médias à télécharger, veuillez réessayer." @@ -341,6 +366,11 @@ Raison : %1$s." "%1$d messages épinglés" "Messages épinglés" + "Votre rapport a été envoyé avec succès, mais nous avons rencontré un problème en essayant de quitter le salon. Veuillez réessayer." + "Impossible de quitter le salon" + "Signaler ce salon à votre admin. Si les messages sont chiffrés, votre admin ne pourra pas les lire." + "Décrivez la raison…" + "Signaler le salon" "Vous êtes sur le point d’accéder à votre compte %1$s pour réinitialiser votre identité. Vous serez ensuite redirigé vers l’application." "Vous ne pouvez pas confirmer ? Accédez à votre compte pour réinitialiser votre identité." "Révoquer la verification et envoyer" 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 9ab1c58d37..82a008aee8 100644 --- a/libraries/ui-strings/src/main/res/values-hu/translations.xml +++ b/libraries/ui-strings/src/main/res/values-hu/translations.xml @@ -60,6 +60,7 @@ "Deaktiválás" "Fiók deaktiválása" "Elutasítás" + "Elutasítás és letiltás" "Szavazás törlése" "Letiltás" "Elvetés" @@ -105,8 +106,11 @@ "Üzenet eltávolítása" "Válasz" "Válasz az üzenetszálban" + "Jelentés" "Hiba jelentése" "Tartalom jelentése" + "Beszélgetés jelentése" + "Szoba jelentése" "Visszaállítás" "Személyazonosság visszaállítása" "Újra" @@ -216,6 +220,7 @@ Ok: %1$s." "Állandó hivatkozás" "Engedély" "Kitűzve" + "Ellenőrizze az internetkapcsolatát" "Kis türelmet…" "Biztos, hogy befejezi ezt a szavazást?" "Szavazás: %1$s" @@ -300,6 +305,8 @@ Ok: %1$s." Biztos, hogy folytatja?" "Ellenőrizze újra ezt a hivatkozást" + "Szoba jelentve" + "Jelentve, és a szoba elhagyva" "Megerősítés" "Hiba" "Sikeres" @@ -331,6 +338,23 @@ Biztos, hogy folytatja?" "Beszélgessünk itt: %1$s, %2$s" "%1$s Android" "Az eszköz rázása a hibajelentéshez" + "Eltávolítás és a tag kitiltása" + "Kitiltás" + "Többé nem csatlakozhat ehhez a szobához, akkor sem, ha meghívják." + "Biztos, hogy kitiltja ezt a tagot?" + "%1$s kitiltása" + "Eltávolítás" + "Ehhez a szobához is csatlakozhat, ha meghívják." + "Biztos, hogy eltávolítja ezt a tagot?" + "Profil megtekintése" + "Eltávolítás a szobából" + "Eltávolítja a tagot, és megtiltja a jövőbeni csatlakozást?" + "%1$s eltávolítása…" + "Ettől a felhasználótól nem fog többé üzeneteket vagy meghívásokat látni." + "Felhasználó letiltása" + "A szoba jelentése a fiókszolgáltatójának." + "Írja le a jelentés okát…" + "Elutasítás és blokkolás" "Nem sikerült kiválasztani a médiát, próbálja újra." "Előfordulhat, hogy a feliratok nem láthatók a régebbi alkalmazásokat használók számára." "Nem sikerült feldolgozni a feltöltendő médiát, próbálja újra." @@ -342,6 +366,11 @@ Biztos, hogy folytatja?" "%1$d kitűzött üzenet" "Kitűzött üzenetek" + "A jelentése sikeresen el lett küldve, de hibát találtunk a szoba elhagyása során. Próbálja újra." + "Nem tudja elhagyni a szobát" + "A szoba jelentése a rendszergazdának. Ha az üzenetek titkosítva vannak, akkor a rendszergazda nem fogja tudni elolvasni őket." + "Írja le az okot…" + "Szoba jelentése" "Arra készül, hogy belépjen a(z) %1$s fiókjába, hogy visszaállítsa a személyazonosságát. Ezután vissza fog térni az alkalmazásba." "Nem tudja megerősíteni? Ugorjon a fiókjához, és állítsa vissza a személyazonosságát." "Ellenőrzés visszavonása és elküldés" 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 d811f5499c..dfb80edea2 100644 --- a/libraries/ui-strings/src/main/res/values-in/translations.xml +++ b/libraries/ui-strings/src/main/res/values-in/translations.xml @@ -300,6 +300,15 @@ Alasan: %1$s." "Hai, bicaralah dengan saya di %1$s: %2$s" "%1$s Android" "Rageshake untuk melaporkan kutu" + "Keluarkan dan cekal anggota" + "Cekal" + "Mereka tidak akan dapat bergabung ke ruangan ini lagi jika diundang." + "Apakah Anda yakin ingin mencekal anggota ini?" + "Mencekal %1$s" + "Tampilkan profil" + "Keluarkan dari ruangan" + "Keluarkan pengguna dan cekal pengguna bergabung lagi di masa mendatang?" + "Mengeluarkan %1$s…" "Gagal memilih media, silakan coba lagi." "Keterangan mungkin tidak terlihat oleh orang yang menggunakan aplikasi lama." "Gagal memproses media untuk diunggah, silakan coba lagi." 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 bf11478b9e..e9864e090d 100644 --- a/libraries/ui-strings/src/main/res/values-it/translations.xml +++ b/libraries/ui-strings/src/main/res/values-it/translations.xml @@ -326,6 +326,15 @@ Sei sicuro di voler continuare?" "Ehi, parliamo su %1$s: %2$s" "%1$s Android" "Scuoti per segnalare un problema" + "Rimuovi ed escludi" + "Escludi" + "Non potrà entrare nuovamente in questa stanza se invitato." + "Vuoi davvero escludere questo membro?" + "Esclusione di %1$s" + "Visualizza profilo" + "Rimuovi dalla stanza" + "Rimuovere e vietare l\'accesso in futuro?" + "Rimozione di %1$s…" "Selezione del file multimediale fallita, riprova." "Le didascalie potrebbero non essere visibili agli utenti di app meno recenti." "Elaborazione del file multimediale da caricare fallita, riprova." diff --git a/libraries/ui-strings/src/main/res/values-ka/translations.xml b/libraries/ui-strings/src/main/res/values-ka/translations.xml index 88bd672c82..0405aa6235 100644 --- a/libraries/ui-strings/src/main/res/values-ka/translations.xml +++ b/libraries/ui-strings/src/main/res/values-ka/translations.xml @@ -247,6 +247,15 @@ "გაგიმარჯოს! მესაუბრე %1$s-ზე: %2$s" "%1$s Android" "შეცდომის შესატყობინებლად ტელეფონის შენჯღრევა" + "წევრის წაშლა და დაბლოკვა" + "დაბლოკვა" + "მოწვევის შემთხვევაში ამ ოთახში კვლავ გაწევრიანებას ვერ შეძლებენ." + "დარწმუნებული ხართ, რომ ამ წევრის დაბლოკვა გსურთ?" + "%1$s-ს დაბლოკვა" + "პროფილის ნახვა" + "ოთახიდან გაგდება" + "გსურთ წევრის გაგდება და მომავალში გაწევრიანების აკრძალვა?" + "%1$s-ს გაგდება…" "მედიის შერჩევა ვერ მოხერხდა, გთხოვთ, სცადოთ ხელახლა." "მედიის ატვირთვა ვერ მოხერხდა. გთხოვთ, სცადოთ ხელახლა." "მედიის ატვირთვა ვერ მოხერხდა, გთხოვთ, სცადოთ ხელახლა." diff --git a/libraries/ui-strings/src/main/res/values-lt/translations.xml b/libraries/ui-strings/src/main/res/values-lt/translations.xml new file mode 100644 index 0000000000..22714ae3f3 --- /dev/null +++ b/libraries/ui-strings/src/main/res/values-lt/translations.xml @@ -0,0 +1,139 @@ + + + "Slėpti slaptažodį" + "Siųsti failus" + "Rodyti slaptažodį" + "Vartotojo meniu" + "Priimti" + "Atgal" + "Atšaukti" + "Pasirinkti nuotrauką" + "Išvalyti" + "Uždaryti" + "Užbaigti patvirtinimą" + "Patvirtinti" + "Tęsti" + "Kopijuoti" + "Kopijuoti nuorodą" + "Sukurti" + "Kurti kambarį" + "Atmesti" + "Išjungti" + "Atlikta" + "Taisyti" + "Įjungti" + "Pamiršote slaptažodį?" + "Kviesti" + "Pakviesti žmonių" + "Kviesti žmones į %1$s" + "Kvietimai" + "Sužinoti daugiau" + "Palikti" + "Palikti kambarį" + "Toliau" + "Ne" + "Ne dabar" + "Gerai" + "Sparčiai atsakyti" + "Cituoti" + "Šalinti" + "Atsakyti" + "Pranešti apie riktą" + "Pranešti apie turinį" + "Bandyti dar kartą" + "Pakartoti iššifravimą" + "Išsaugoti" + "Ieškoti" + "Siųsti" + "Siųsti žinutę" + "Dalintis" + "Bendrinti nuorodą" + "Praleisti" + "Pradėti" + "Pradėti pokalbį" + "Pradėti patvirtinimą" + "Fotografuoti" + "Peržiūrėti šaltinį" + "Taip" + "Apie" + "Analitika" + "Garsas" + "Burbulai" + "Kuriamas kambarys…" + "Išėjo iš kambario" + "Iššifravimo klaida" + "Kūrėjo nustatymai" + "(taisyta)" + "Taisymas" + "* %1$s %2$s" + "Šifravimas įjungtas" + "Klaida" + "Failas" + "Failas išsaugotas aplanke Atsisiuntimai" + "GIF" + "Paveikslėlis" + "Šio Matrix ID nepavyksta rasti, todėl kvietimas gali būti negautas." + "Paliekamas kambarys" + "Nuoroda nukopijuota į iškarpinę" + "Įkeliama…" + + "%1$d narys" + "%1$d nariai" + "%1$d narių" + + "Žinutė" + "Žinutės išdėstymas" + "Žinutė pašalinta" + "Modernus" + "Nėra rezultatų" + "Neprisijungta" + "Slaptažodis" + "Žmonės" + "Nuolatinė nuoroda" + "Reakcijos" + "Atsakant %1$s" + "Pranešti apie klaidą" + "Skundas pateiktas" + "Kambario pavadinimas" + "pvz., Jūsų projekto pavadinimas" + "Ieškoti ko nors" + "Paieškos rezultatai" + "Saugumas" + "Siunčiama…" + "Serveris nepalaikomas" + "Serverio URL" + "Nustatymai" + "Pradedamas pokalbis…" + "Lipdukas" + "Pavyko" + "Pasiūlymai" + "Tema" + "Apie ką šis kambarys?" + "Nepavyko iššifruoti" + "Kvietimų nepavyko išsiųsti vienam ar keliems vartotojams." + "Nepavyko išsiųsti kvietimo (-ų)" + "Nepalaikomas įvykis" + "Vartotojo vardas" + "Patvirtinimas atšauktas" + "Patvirtinimas baigtas" + "Vaizdo įrašas" + "Laukiama…" + "Patvirtinimas" + "Klaida" + "Pavyko" + "Įspėjimas" + "Nepavyko sukurti nuolatinės nuorodos" + "Nepavyko įkelti žinučių" + "Kai kurios žinutės nebuvo išsiųstos" + "Atsiprašome, įvyko klaida" + "🔐️ Prisijunkite prie manęs %1$s" + "Ei, pasikalbėkime naudojant %1$s: %2$s" + "%1$s Android" + "Papurtykite, kad praneštumėte apie klaidą" + "Nepavyko pasirinkti laikmenos, pabandykite dar kartą." + "Nepavyko apdoroti įkeliamos laikmenos, bandykite dar kartą." + "Nepavyko įkelti laikmenos, pabandykite dar kartą." + "Nepavyko apdoroti įkeliamos laikmenos, bandykite dar kartą." + "Versija: %1$s (%2$s)" + "lt" + 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 a059b9fe51..4e15d0e5cd 100644 --- a/libraries/ui-strings/src/main/res/values-nb/translations.xml +++ b/libraries/ui-strings/src/main/res/values-nb/translations.xml @@ -1,16 +1,19 @@ + "Profilbilde" "Slett" "%1$d siffer angitt" "%1$d sifre angitt" "Skjul passord" + "Bli med i samtale" "Hopp til bunnen" "Bare omtaler" "Dempet" "Side %1$d" "Setter på pause" + "Talemelding, lengde: %1$s, nåværende posisjon: %2$s" "PIN-felt" "Spill av" "Avstemning" @@ -30,6 +33,7 @@ "Start en samtale" "Brukermeny" "Vis detaljer" + "Talemelding, lengde: %1$s" "Ta opp talemelding." "Stopp opptaket" "Godta" @@ -56,9 +60,11 @@ "Deaktiver" "Deaktiver kontoen" "Avslå" + "Avslå og blokker" "Slett avstemning" "Deaktiver" "Forkast" + "Avvis" "Ferdig" "Rediger" "Rediger bildetekst" @@ -97,10 +103,14 @@ "Avvis" "Fjern" "Fjern bildetekst" + "Fjern melding" "Svar" "Svar i tråden" + "Rapporter" "Rapporter feil" "Rapporter innhold" + "Rapporter samtale" + "Rapporter rommet" "Tilbakestill" "Tilbakestill identitet" "Prøv på nytt" @@ -127,6 +137,7 @@ "Vis i tidslinjen" "Vis kilde" "Ja" + "Ja, prøv igjen" "Serveren din støtter nå en ny, raskere protokoll. Logg ut og logg inn igjen for å oppgradere nå. Ved å gjøre dette nå, unngår du å bli tvunget til å logge ut når den gamle protokollen fjernes senere." "Oppgradering tilgjengelig" "Om" @@ -143,17 +154,22 @@ "Kopiert til utklippstavlen" "Opphavsrett" "Oppretter rom …" + "Forespørsel kansellert" "Forlot rommet" + "Invitasjon avslått" "Mørk" "Dekrypteringsfeil" "Alternativer for utviklere" "Enhets-ID" "Direkte chat" "Ikke vis dette igjen" + "Nedlastingen mislyktes" + "Laster ned" "(redigert)" "Redigering" "Redigerer bildetekst" "* %1$s %2$s" + "Tom fil" "Kryptering" "Kryptering aktivert" "Skriv inn PIN-koden din" @@ -166,8 +182,11 @@ "Favoritt" "Favoritt" "Fil" + "Fil slettet" + "Fil lagret" "Fil lagret i Nedlastinger" "Videresend melding" + "Ofte brukt" "GIF" "Bilde" "Som svar på %1$s" @@ -175,8 +194,10 @@ "Finner ikke denne Matrix-IDen, så invitasjonen blir kanskje ikke mottatt." "Forlater rommet" "Lys" + "Linje kopiert til utklippstavlen" "Lenke kopiert til utklippstavlen" "Laster inn…" + "Laster inn mer…" "%1$d medlem" "%1$d medlemmer" @@ -187,8 +208,10 @@ "Melding fjernet" "Moderne" "Demp" + "%1$s (%2$s)" "Ingen resultater" "Ingen romnavn" + "Ikke kryptert" "Frakoblet" "Åpen kildekode-lisenser" "eller" @@ -197,6 +220,7 @@ "Permalenke" "Tillatelse" "Festet" + "Vennligst sjekk internettforbindelsen din" "Vennligst vent…" "Er du sikker på at du vil avslutte denne avstemningen?" "Avstemning: %1$s" @@ -209,6 +233,7 @@ "Retningslinjer for personvern" "Reaksjon" "Reaksjoner" + "Årsak" "Gjenopprettingsnøkkel" "Oppdaterer…" "Svar til %1$s" @@ -250,11 +275,12 @@ "Kan ikke dekryptere" "Sendt fra en usikker enhet" "Du har ikke tilgang til denne meldingen" - "Avsenderens verifiserte identitet er endret" + "Avsenderens verifiserte identitet ble tilbakestilt" "Invitasjoner kunne ikke sendes til en eller flere brukere." "Kunne ikke sende invitasjon(er)" "Lås opp" "Slå på lyden" + "Ikke støttet anrop" "Hendelsen er ikke støttet" "Brukernavn" "Verifisering kansellert" @@ -263,13 +289,24 @@ "Verifisert" "Verifiser enhet" "Verifiser identiteten" + "Verifiser bruker" "Video" "Talemelding" "Venter…" "Venter på denne meldingen" "Du" - "%1$s identiteten ser ut til å ha endret seg. %2$s" + "%1$s\'s identitet ble tilbakestilt. %2$s" + "%1$ss %2$s-identitet ble tilbakestilt. %3$s" "(%1$s)" + "%1$ss identitet ble tilbakestilt." + "%1$ss %2$s identitet ble tilbakestilt. %3$s" + "Trekk tilbake verifisering" + "Lenken %1$s tar deg til et annet nettsted %2$s + +Er du sikker på at du vil fortsette?" + "Dobbeltsjekk denne lenken" + "Rommet er rapportert" + "Rapportert og forlatt rommet" "Bekreftelse" "Feil" "Suksess" @@ -301,22 +338,46 @@ "Hei, snakk med meg på %1$s: %2$s" "%1$s Android" "Rageshake for å rapportere feil" + "Fjern og utesteng medlem" + "Utesteng" + "De vil ikke kunne bli med i dette rommet igjen hvis de blir invitert." + "Er du sikker på at du vil utestenge dette medlemmet?" + "Utestenger %1$s" + "Fjern" + "De vil kunne bli med i dette rommet igjen hvis de blir invitert." + "Er du sikker på at du vil fjerne dette medlemmet?" + "Vis profil" + "Fjern fra rommet" + "Fjerne medlem og utestenge fra å bli med i fremtiden?" + "Fjerner %1$s…" + "Du vil ikke se noen meldinger eller rominvitasjoner fra denne brukeren" + "Blokker bruker" + "Rapporter dette rommet til din kontoleverandør." + "Beskriv årsaken for å rapportere…" + "Avslå og blokker" "Kunne ikke velge medium, prøv igjen." "Teksting er kanskje ikke synlig for personer som bruker eldre apper." "Kunne ikke behandle medier for opplasting, vennligst prøv igjen." "Opplasting av medier mislyktes, vennligst prøv igjen." + "Trykk på en melding og velg “%1$s” for å inkludere her." "Fest viktige meldinger slik at de lett kan ses" "%1$d Festet melding" "%1$d Festede meldinger" "Festede meldinger" + "Rapporten din ble sendt inn, men vi oppdaget et problem da vi prøvde å forlate rommet. Prøv igjen." + "Kan ikke forlate rommet" + "Rapporter dette rommet til administratoren din. Hvis meldingene er kryptert, vil administratoren ikke kunne lese dem." + "Beskriv årsaken…" + "Rapporter rom" "Du er i ferd med å gå til %1$s kontoen din for å tilbakestille identiteten din. Etterpå blir du tatt tilbake til appen." "Kan du ikke bekrefte? Gå til kontoen din for å tilbakestille identiteten din." "Trekk tilbake verifikasjon og send" "Du kan trekke tilbake verifiseringen og sende denne meldingen likevel, eller du kan avbryte for nå og prøve igjen senere etter at du har reverifisert %1$s." - "Meldingen din ble ikke sendt fordi %1$ss verifiserte identitet er endret" + "Meldingen din ble ikke sendt fordi %1$ss verifiserte identitet er tilbakestilt" "Send melding uansett" + "%1$s bruker én eller flere uverifiserte enheter. Du kan sende meldingen uansett, eller du kan avbryte foreløpig og prøve igjen senere etter at %2$s har verifisert alle enhetene sine." "Meldingen din ble ikke sendt fordi %1$s ikke har bekreftet alle enhetene" "En eller flere av enhetene dine er ikke verifisert. Du kan sende meldingen likevel, eller du kan avbryte og prøve igjen senere etter at du har verifisert alle enhetene dine." "Meldingen din ble ikke sendt fordi du ikke har verifisert en eller flere av enhetene dine" @@ -335,7 +396,7 @@ "Åpne i Google Maps" "Åpne i OpenStreetMap" "Del denne lokasjonen" - "Meldingen ble ikke sendt fordi %1$ss verifiserte identitet er endret." + "Meldingen ble ikke sendt fordi %1$ss verifiserte identitet er tilbakestilt." "Meldingen ble ikke sendt fordi %1$s ikke har verifisert alle enheter." "Meldingen ble ikke sendt fordi du ikke har verifisert en eller flere av enhetene dine." "Lokasjon" 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 c2f4cf223b..0ad734232f 100644 --- a/libraries/ui-strings/src/main/res/values-nl/translations.xml +++ b/libraries/ui-strings/src/main/res/values-nl/translations.xml @@ -1,16 +1,19 @@ + "Afbeelding" "Verwijderen" "%1$d cijfer ingevoerd" "%1$d cijfers ingevoerd" "Wachtwoord verbergen" + "Deelnemen aan gesprek" "Spring naar einde" "Alleen vermeldingen" "Gedempt" "Pagina %1$d" "Pauzeren" + "Spraakbericht, duur: %1$s, huidige positie: %2$s" "PIN-veld" "Afspelen" "Peiling" @@ -30,6 +33,7 @@ "Begin een oproep" "Gebruikersmenu" "Details bekijken" + "Spraakbericht, duur: %1$s" "Spraakbericht opnemen." "Opnemen stoppen" "Accepteren" @@ -66,6 +70,7 @@ "Wachtwoord vergeten?" "Doorsturen" "Terug" + "Negeren" "Uitnodigen" "Mensen uitnodigen" "Nodig mensen uit voor %1$s" @@ -141,6 +146,7 @@ "Donker" "Decryptie fout" "Ontwikkelaarsopties" + "Apparaat-ID" "Directe chat" "Dit niet meer weergeven" "(bewerkt)" @@ -255,8 +261,8 @@ Reden: %1$s." "Wachten…" "Wachten op dit bericht" "Jij" - "%1$s\'s identiteit lijkt te zijn veranderd. %2$s" - "%1$s\'s %2$s identiteit lijkt te zijn veranderd. %3$s" + "%1$s\'s identiteit lijkt te zijn gewijzigd. %2$s" + "%1$s\'s %2$s identiteit lijkt te zijn gewijzigd. %3$s" "(%1$s)" "Bevestiging" "Fout" @@ -286,6 +292,15 @@ Reden: %1$s." "Hé, praat met me op %1$s: %2$s" "%1$s Android" "Schudden om een bug te melden" + "Lid verwijderen en verbannen" + "Verbannen" + "Ze kunnen niet meer toetreden tot deze kamer als ze worden uitgenodigd." + "Weet je zeker dat je dit lid wilt verbannen?" + "%1$s verbannen" + "Profiel bekijken" + "Verwijderen uit kamer" + "Lid verwijderen en toekomstige deelname verbieden?" + "%1$s wordt verwijderd…" "Het selecteren van media is mislukt. Probeer het opnieuw." "Het verwerken van media voor uploaden is mislukt. Probeer het opnieuw." "Het uploaden van media is mislukt. Probeer het opnieuw." 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 eccfbbdb2f..8175c90302 100644 --- a/libraries/ui-strings/src/main/res/values-pl/translations.xml +++ b/libraries/ui-strings/src/main/res/values-pl/translations.xml @@ -328,6 +328,16 @@ Czy na pewno chcesz kontynuować?" "Hej, porozmawiajmy na %1$s: %2$s" "%1$s Android" "Wstrząśnij gniewnie, aby zgłosić błąd" + "Usuń i zbanuj członka" + "Zbanuj" + "Nie będą mogli ponownie dołączyć do tego pokoju, jeśli zostaną zaproszeni." + "Czy na pewno chcesz zbanować tego członka?" + "Banowanie %1$s" + "Wyświetl profil" + "Usuń z pokoju" + "Usunąć członka i zablokować możliwość dołączenia w przyszłości?" + "Usuwanie %1$s…" + "Opisz powód zgłoszenia…" "Nie udało się wybrać multimediów. Spróbuj ponownie." "Opis może być niedostępny dla osób korzystających ze starszej wersji aplikacji." "Przetwarzanie multimediów do przesłania nie powiodło się, spróbuj ponownie." diff --git a/libraries/ui-strings/src/main/res/values-pt-rBR/translations.xml b/libraries/ui-strings/src/main/res/values-pt-rBR/translations.xml index a45d7bd37b..741b6f1eff 100644 --- a/libraries/ui-strings/src/main/res/values-pt-rBR/translations.xml +++ b/libraries/ui-strings/src/main/res/values-pt-rBR/translations.xml @@ -261,6 +261,15 @@ "Ei, fale comigo em %1$s: %2$s" "%1$s Android" "Rageshake para relatar um bug" + "Remover e banir membro" + "Banir" + "Eles não poderão entrar nesta sala novamente se forem convidados." + "Tem certeza de que quer banir este membro?" + "Banindo %1$s" + "Ver perfil" + "Remover da sala" + "Remover membro e banir de entrar novamente no futuro?" + "Removendo %1$s…" "Falha ao selecionar a mídia, tente novamente." "Falha ao processar mídia para upload. Tente novamente." "Falha ao enviar mídia. Tente novamente." 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 696de1e319..f3866d99d4 100644 --- a/libraries/ui-strings/src/main/res/values-pt/translations.xml +++ b/libraries/ui-strings/src/main/res/values-pt/translations.xml @@ -324,6 +324,15 @@ Tens a certeza de que queres continuar?" "Alô! Fala comigo na %1$s: %2$s" "%1$s Android" "Agita o dispositivo em fúria para comunicar um problema" + "Remover e banir participante" + "Banir" + "Não poderão voltar a entrar nesta sala, mesmo se forem convidados." + "Tens a certeza que queres banir este participante?" + "A banir %1$s" + "Ver perfil" + "Remover da sala" + "Remover participante e proibir que entre no futuro?" + "A remover %1$s…" "Falha ao selecionar multimédia, por favor tente novamente." "As legendas poderão não ser visíveis em versões mais antigas da aplicação." "Falha ao processar multimédia para carregamento, por favor tente novamente." 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 98d849ce1b..13a63c3ba9 100644 --- a/libraries/ui-strings/src/main/res/values-ro/translations.xml +++ b/libraries/ui-strings/src/main/res/values-ro/translations.xml @@ -294,6 +294,15 @@ Motiv:%1$s." "Hei, vorbește cu mine pe %1$s: %2$s" "%1$s Android" "Rageshake pentru a raporta erori" + "Eliminați și interziceți membrul" + "Interzicere" + "Nu se vor putea alătura din nou acestei camere dacă sunt invitați." + "Sunteți sigur că doriți să interziceți acest membru?" + "Se interzice %1$s" + "Vizualizare profil" + "Înlăturați membrul" + "Înlăturați membrul și interziceți-i să se alăture în viitor?" + "Se elimină %1$s" "Selectarea fișierelor media a eșuat, încercați din nou." "Procesarea datelor media a eșuat, vă rugăm să încercați din nou." "Încărcarea fișierelor media a eșuat, încercați din nou." 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 ca520454b9..fac746f8b7 100644 --- a/libraries/ui-strings/src/main/res/values-ru/translations.xml +++ b/libraries/ui-strings/src/main/res/values-ru/translations.xml @@ -1,5 +1,6 @@ + "Аватар" "Удалить" "Введена %1$d цифра" @@ -7,11 +8,13 @@ "Введено много цифр" "Скрыть пароль" + "Присоединиться к звонку" "Перейти вниз" "Только упоминания" "Звук отключен" "Страница %1$d" "Приостановить" + "Голосовое сообщение, длительность: %1$s, текущая позиция: %2$s" "Поле PIN-кода" "Воспроизвести" "Опрос" @@ -32,6 +35,7 @@ "Начать звонок" "Меню пользователя" "Подробнее" + "Голосовое сообщение, продолжительность: %1$s" "Записать голосовое сообщение." "Остановить запись" "Разрешить" @@ -58,9 +62,11 @@ "Отключить" "Отключить учётную запись" "Отклонить" + "Отклонить и заблокировать" "Удалить опрос" "Отключить" "Отменить" + "Отклонить" "Готово" "Редактировать" "Изменить подпись" @@ -102,8 +108,10 @@ "Удалить сообщение" "Ответить" "Ответить в теме" + "Отчет" "Сообщить об ошибке" "Пожаловаться на содержание" + "Комната отчетов" "Сбросить" "Сбросить идентификацию" "Повторить" @@ -205,6 +213,7 @@ "%1$s (%2$s)" "Ничего не найдено" "Название комнаты отсутствует" + "Не зашифровано" "Не в сети" "Лицензии с открытым исходным кодом" "или" @@ -213,6 +222,7 @@ "Постоянная ссылка" "Разрешение" "Закрепленный" + "Пожалуйста, проверьте подключение к Интернету" "Подождите…" "Вы действительно хотите завершить данный опрос?" "Опрос: %1$s" @@ -226,6 +236,7 @@ "Политика конфиденциальности" "Реакция" "Реакции" + "Причина" "Ключ восстановления" "Обновление…" "Отвечает на %1$s" @@ -267,7 +278,7 @@ "Невозможно расшифровать" "Отправлено с незащищенного устройства" "Вы не имеете доступа к этому сообщению" - "Подтвержденная личность отправителя изменилась" + "Подтвержденная личность отправителя была сброшена" "Не удалось отправить приглашения одному или нескольким пользователям." "Не удалось отправить приглашение(я)" "Разблокировать" @@ -287,7 +298,7 @@ "Ожидание…" "Ожидание ключа расшифровки" "Вы" - "Судя по всему, идентификатор %1$s изменился. %2$s" + "Идентификатор %1$s изменился. %2$s" "Пользователь %1$s сменил имя пользователя на %2$s. %3$s" "(%1$s)" "Проверенная личность пользователя %1$s изменилась." @@ -297,6 +308,8 @@ Вы действительно хотите продолжить?" "Перепроверьте эту ссылку" + "Сообщение о комнате" + "Пожаловался и покинул комнату" "Подтверждение" "Ошибка" "Успешно" @@ -328,6 +341,20 @@ "Привет, поговори со мной по %1$s: %2$s" "%1$s Android" "Встряхните устройство, чтобы сообщить об ошибке" + "Удалить и заблокировать участника" + "Заблокировать" + "Они не смогут снова присоединиться к этой комнате, если их пригласят." + "Вы уверены, что хотите заблокировать этого участника?" + "Блокировка %1$s" + "Удалить" + "Вы действительно хотите удалить этого участника?" + "Посмотреть профиль" + "Удалить участника из комнаты" + "Удалить участника и запретить присоединяться в будущем?" + "Удаление %1$s…" + "Заблокировать пользователя" + "Опишите причину жалобы…" + "Отклонить и заблокировать" "Не удалось выбрать носитель, попробуйте еще раз." "Подпись может быть не видна пользователям старых приложений." "Не удалось обработать медиафайл для загрузки, попробуйте еще раз." @@ -340,6 +367,9 @@ "%1$d закреплённых сообщений" "Закрепленные сообщения" + "Невозможно покинуть комнату" + "Сообщите об этой комнате своему администратору. Если сообщения зашифрованы, ваш администратор не сможет их прочитать." + "Опишите причину…" "Вы собираетесь перейти в свою учетную запись %1$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 3a768dffc4..60459b456a 100644 --- a/libraries/ui-strings/src/main/res/values-sk/translations.xml +++ b/libraries/ui-strings/src/main/res/values-sk/translations.xml @@ -62,6 +62,7 @@ "Deaktivovať" "Deaktivovať účet" "Odmietnuť" + "Odmietnuť a zablokovať" "Odstrániť anketu" "Vypnúť" "Zahodiť" @@ -107,8 +108,11 @@ "Odstrániť správu" "Odpovedať" "Odpovedať vo vlákne" + "Nahlásiť" "Nahlásiť chybu" "Nahlásiť obsah" + "Nahlásiť konverzáciu" + "Nahlásiť miestnosť" "Obnoviť" "Obnoviť identitu" "Skúsiť znova" @@ -219,6 +223,7 @@ Dôvod: %1$s." "Trvalý odkaz" "Povolenie" "Pripnuté" + "Skontrolujte si prosím vaše pripojenie k internetu" "Prosím, počkajte…" "Ste si istí, že chcete ukončiť túto anketu?" "Anketa: %1$s" @@ -304,6 +309,8 @@ Dôvod: %1$s." Naozaj chcete pokračovať?" "Dôkladne skontrolujte tento odkaz" + "Miestnosť nahlásená" + "Nahlásili ste a opustili ste miestnosť" "Potvrdenie" "Chyba" "Úspech" @@ -335,6 +342,23 @@ Naozaj chcete pokračovať?" "Ahoj, porozprávajte sa so mnou na %1$s: %2$s" "%1$s Android" "Zúrivo potriasť pre nahlásenie chyby" + "Odstrániť a zakázať člena" + "Zakázať" + "Nebudú sa môcť pripojiť k tejto miestnosti znova ani ak budú pozvaní." + "Ste si istý, že chcete zakázať tohto člena?" + "Zakazuje sa %1$s" + "Odstrániť" + "V prípade pozvania sa budú môcť znova pripojiť k tejto miestnosti." + "Ste si istý, že chcete odstrániť tohto člena?" + "Zobraziť profil" + "Odstrániť z miestnosti" + "Odstrániť člena a zakázať vstup v budúcnosti?" + "Odstraňuje sa %1$s…" + "Od tohto používateľa sa vám nezobrazia žiadne správy ani pozvánky do miestnosti" + "Zablokovať používateľa" + "Nahlásiť túto miestnosť poskytovateľovi účtu." + "Opíšte dôvod nahlásenia…" + "Odmietnuť a zablokovať" "Nepodarilo sa vybrať médium, skúste to prosím znova." "Titulky nemusia byť viditeľné pre ľudí používajúcich staršie aplikácie." "Nepodarilo sa spracovať médiá na odoslanie, skúste to prosím znova." @@ -347,6 +371,11 @@ Naozaj chcete pokračovať?" "%1$d pripnutých správ" "Pripnuté správy" + "Vaša správa bola úspešne odoslaná, ale pri pokuse o opustenie miestnosti sme narazili na problém. Skúste to prosím znova." + "Nie je možné opustiť miestnosť" + "Nahláste túto miestnosť svojmu správcovi. Ak sú správy zašifrované, váš správca ich nebude môcť prečítať." + "Popíšte dôvod…" + "Nahlásiť miestnosť" "Chystáte sa prejsť na svoj %1$s účet, aby ste obnovili svoju identitu. Potom budete vrátení späť do aplikácie." "Neviete potvrdiť? Prejdite do svojho účtu a obnovte svoju identitu." "Odvolať overenie a odoslať" 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 abf33b622a..14566e6b0c 100644 --- a/libraries/ui-strings/src/main/res/values-sv/translations.xml +++ b/libraries/ui-strings/src/main/res/values-sv/translations.xml @@ -60,6 +60,7 @@ "Inaktivera" "Inaktivera konto" "Neka" + "Avvisa och blockera" "Radera omröstning" "Inaktivera" "Kassera" @@ -108,6 +109,7 @@ "Anmäl" "Rapportera bugg" "Rapportera innehåll" + "Anmäl konversation" "Anmäl rum" "Återställ" "Återställ identitet" @@ -218,6 +220,7 @@ Anledning:%1$s." "Permalänk" "Behörighet" "Fäst" + "Vänligen kontrollera din internetanslutning" "Vänligen vänta …" "Är du säker på att du vill avsluta den här omröstningen?" "Omröstning: %1$s" @@ -335,6 +338,23 @@ Anledning:%1$s." "Hallå, prata med mig på %1$s: %2$s" "%1$s Android" "Raseriskaka för att rapportera bugg" + "Ta bort och banna medlem" + "Banna" + "Denne kommer inte att kunna gå med i det här rummet igen om denne bjuds in." + "Är du säker på att du vill banna den här medlemmen?" + "Bannar %1$s" + "Ta bort" + "Denne kommer kunna gå med i rummet igen om denne bjuds in" + "Är du säker på att du vill ta bort den här medlemmen?" + "Visa profil" + "Ta bort från rummet" + "Ta bort medlem och banna från att gå med i framtiden?" + "Tar bort %1$s …" + "Du kommer inte att se några meddelanden eller rumsinbjudningar från den här användaren" + "Blockera användare" + "Rapportera det här rummet till din kontoleverantör." + "Beskriv skälet för anmälan …" + "Avvisa och blockera" "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." @@ -346,6 +366,7 @@ Anledning:%1$s." "%1$d Fästa meddelanden" "Fästa meddelanden" + "Din anmälan skickades in framgångsrikt, men vi stötte på ett problem när vi försökte lämna rummet. Vänligen försök igen." "Kunde inte lämna rummet" "Anmäl det här rummet till din administratör. Om meddelandena är krypterade kommer din administratör inte att kunna läsa dem." "Beskriv anledningen …" diff --git a/libraries/ui-strings/src/main/res/values-tr/translations.xml b/libraries/ui-strings/src/main/res/values-tr/translations.xml index 46f87e2019..16766f12af 100644 --- a/libraries/ui-strings/src/main/res/values-tr/translations.xml +++ b/libraries/ui-strings/src/main/res/values-tr/translations.xml @@ -316,6 +316,15 @@ Neden: %1$s." "Hey, benimle konuş %1$s: %2$s" "%1$s Android" "Hata bildirmek için Rageshake" + "Üyeyi çıkar ve yasakla" + "Yasakla" + "Davet edilseler bile bu odaya tekrar katılamazlar." + "Bu üyeyi yasaklamak istediğinize emin misiniz?" + "Yasaklanıyor %1$s" + "Profili görüntüle" + "Odadan çıkar" + "Üyeyi çıkarın ve gelecekte katılmasını yasaklayın?" + "Kaldırılıyor %1$s…" "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." 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 d909d993be..9f8f21b123 100644 --- a/libraries/ui-strings/src/main/res/values-uk/translations.xml +++ b/libraries/ui-strings/src/main/res/values-uk/translations.xml @@ -1,5 +1,6 @@ + "Аватар" "Видалити" "Введена %1$d цифра" @@ -7,11 +8,13 @@ "Введено %1$d цифр" "Cховати пароль" + "Приєднатися до виклику" "Перейти вниз" "Тільки згадки" "Звук вимкнено" "Сторінка %1$d" "Пауза" + "Голосове повідомлення, тривалість: %1$s, поточна позиція: %2$s" "Поле PIN-коду" "Відтворити" "Опитування" @@ -32,6 +35,7 @@ "Розпочати виклик" "Меню користувача" "Переглянути подробиці" + "Голосове повідомлення, тривалість: %1$s" "Записати голосове повідомлення." "Припинити запис" "Прийняти" @@ -58,6 +62,7 @@ "Деактивувати" "Деактивувати обліковий запис" "Відхилити" + "Відхилити та заблокувати" "Видалити опитування" "Вимкнути" "Відкинути" @@ -103,8 +108,11 @@ "Вилучити повідомлення" "Відповісти" "Відповісти в гілці" + "Поскаржитися" "Повідомити про помилку" "Повідомити про вміст" + "Поскаржитися на розмову" + "Поскаржитися на кімнату" "Скинути" "Скинути ідентичність" "Спробувати ще раз" @@ -215,6 +223,7 @@ "Постійне посилання" "Дозвіл" "Закріплено" + "Перевірте з\'єднання з інтернетом" "Будь ласка, зачекайте…" "Ви впевнені, що хочете закінчити це опитування?" "Опитування: %1$s" @@ -228,6 +237,7 @@ "Політика конфіденційності" "Реакція" "Реакції" + "Причина" "Ключ відновлення" "Оновлення…" "Відповідь %1$s" @@ -299,6 +309,8 @@ Ви впевнені, що хочете продовжити?" "Уважно перевірте це посилання" + "Скаргу на кімнату надіслано" + "Поскаржитися та вийти з кімнати" "Підтвердження" "Помилка" "Успіх" @@ -330,6 +342,23 @@ "Вітаю, поспілкуйтеся зі мною в %1$s: %2$s" "%1$s Android" "Повідомити про ваду за допомогою Rageshake" + "Вилучити й заблокувати учасника" + "Заблокувати" + "Він не зможе приєднатися до цієї кімнати знову, якщо його запросять." + "Ви точно хочете заблокувати цього користувача?" + "Блокування %1$s" + "Вилучити" + "Вони зможуть знову приєднатися до цієї кімнати, якщо їх запросять." + "Ви дійсно хочете вилучити цього учасника?" + "Переглянути профіль" + "Вилучити з кімнати" + "Вилучити учасника та заборонити приєднання в майбутньому?" + "Вилучення %1$s…" + "Ви не бачитимете повідомлень або запрошень у кімнату від цього користувача" + "Заблокувати користувача" + "Поскаржитися на цю кімнату постачальнику облікового запису." + "Опишіть причину скарги…" + "Відхилити та заблокувати" "Не вдалося вибрати медіафайл, спробуйте ще раз." "Користувачі старих застосунків можуть не бачити підписи." "Не вдалося обробити медіафайл для завантаження, спробуйте ще раз." @@ -342,6 +371,11 @@ "%1$d Закріплених повідомлення" "Закріплені повідомлення" + "Ваша скарга надіслана, але ми зіткнулися з проблемою під час спроби вийти з кімнати. Повторіть спробу." + "Не вдалося вийти з кімнати" + "Поскаржтеся на цю кімнату своєму адміністратору. Якщо повідомлення зашифровані, ваш адміністратор не зможе їх прочитати." + "Опишіть причину…" + "Поскаржитися на кімнату" "Ви збираєтеся перейти до свого облікового запису %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 940a285e91..2c9cafc8a4 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 @@ -312,6 +312,15 @@ "嘿,來 %1$s 和我聊天:%2$s" "%1$s Android" "憤怒搖晃以回報臭蟲" + "踢出並加入黑名單" + "加入黑名單" + "即使收到邀請,他們仍然無法加入聊天室。" + "您確定要將此成員加入黑名單?" + "正在將 %1$s 加入黑名單" + "查看個人檔案" + "踢出聊天室" + "移除成員並禁止未來再度加入?" + "正在踢出 %1$s…" "選取媒體失敗,請再試一次。" "使用舊應用程式的使用者可能看不到標題。" "無法處理要上傳的媒體,請再試一次。" 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 4f0c0fb06a..4732dc313c 100644 --- a/libraries/ui-strings/src/main/res/values-zh/translations.xml +++ b/libraries/ui-strings/src/main/res/values-zh/translations.xml @@ -309,6 +309,15 @@ "嗨!请通过 %1$s 与我联系:%2$s" "%1$s Android" "摇一摇以报错" + "移除并封禁成员" + "封禁" + "即使受到邀请,他们也无法再次加入聊天室。" + "您确定要封禁该成员吗?" + "封禁 %1$s" + "查看个人资料" + "从聊天室移除" + "删除成员并禁止重新加入?" + "正在移除 %1$s……" "选择媒体失败,请重试。" "使用旧版应用程序的用户可能无法看到字幕。" "处理要上传的媒体失败,请重试。" diff --git a/libraries/ui-strings/src/main/res/values/localazy.xml b/libraries/ui-strings/src/main/res/values/localazy.xml index a4121570f0..9fe4895181 100644 --- a/libraries/ui-strings/src/main/res/values/localazy.xml +++ b/libraries/ui-strings/src/main/res/values/localazy.xml @@ -109,6 +109,7 @@ "Report" "Report bug" "Report content" + "Report conversation" "Report room" "Reset" "Reset identity" @@ -260,6 +261,7 @@ Reason: %1$s." "Shared location" "Signing out" "Something went wrong" + "We encountered an issue. Please try again." "Starting chat…" "Sticker" "Success" @@ -298,7 +300,7 @@ Reason: %1$s." "%1$s’s %2$s identity was reset. %3$s" "(%1$s)" "%1$s’s identity was reset." - "%1$s’s %2$s identity was reset. %3$s" + "%1$s’s %2$s identity was reset. %3$s" "Withdraw verification" "The link %1$s is taking you to another site %2$s @@ -337,9 +339,22 @@ Are you sure you want to continue?" "Hey, talk to me on %1$s: %2$s" "%1$s Android" "Rageshake to report bug" + "Ban from room" + "Ban" + "They won’t be able to join this room again if invited." + "Are you sure you want to ban this member?" + "Banning %1$s" + "Remove" + "They will be able to join this room again if invited." + "Are you sure you want to remove this member?" + "View profile" + "Remove from room" + "Remove member and ban from joining in the future?" + "Removing %1$s…" "You will not see any messages or room invites from this user" "Block user" "Report this room to your account provider." + "Describe the reason to report…" "Decline and block" "Failed selecting media, please try again." "Captions might not be visible to people using older apps." @@ -355,7 +370,7 @@ Are you sure you want to continue?" "Your report was submitted successfully, but we encountered an issue while trying to leave the room. Please try again." "Unable to Leave Room" "Report this room to your admin. If the messages are encrypted, your admin will not be able to read them." - "Describe the reason…" + "Describe the reason to report…" "Report room" "You\'re about to go to your %1$s account to reset your identity. Afterwards you\'ll be taken back to the app." "Can\'t confirm? Go to your account to reset your identity." diff --git a/libraries/ui-utils/src/main/kotlin/io/element/android/libraries/ui/utils/time/IsTalkbackEnabled.kt b/libraries/ui-utils/src/main/kotlin/io/element/android/libraries/ui/utils/time/IsTalkbackEnabled.kt new file mode 100644 index 0000000000..d8be4cb54a --- /dev/null +++ b/libraries/ui-utils/src/main/kotlin/io/element/android/libraries/ui/utils/time/IsTalkbackEnabled.kt @@ -0,0 +1,20 @@ +/* + * 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.ui.utils.time + +import android.view.accessibility.AccessibilityManager +import androidx.compose.runtime.Composable +import androidx.compose.runtime.remember +import androidx.compose.ui.platform.LocalContext + +@Composable +fun isTalkbackActive(): Boolean { + val context = LocalContext.current + val accessibilityManager = remember { context.getSystemService(AccessibilityManager::class.java) } + return accessibilityManager.isTouchExplorationEnabled +} diff --git a/plugins/src/main/kotlin/ModulesConfig.kt b/plugins/src/main/kotlin/ModulesConfig.kt index 7575728c96..57379a7fd6 100644 --- a/plugins/src/main/kotlin/ModulesConfig.kt +++ b/plugins/src/main/kotlin/ModulesConfig.kt @@ -11,8 +11,8 @@ import config.PushProvidersConfig object ModulesConfig { val pushProvidersConfig = PushProvidersConfig( - includeFirebase = true, - includeUnifiedPush = true, + includeFirebase = BuildTimeConfig.PUSH_CONFIG_INCLUDE_FIREBASE, + includeUnifiedPush = BuildTimeConfig.PUSH_CONFIG_INCLUDE_UNIFIED_PUSH, ) val analyticsConfig: AnalyticsConfig = if (isEnterpriseBuild) { diff --git a/plugins/src/main/kotlin/Versions.kt b/plugins/src/main/kotlin/Versions.kt index 0902f84d53..8eae02888e 100644 --- a/plugins/src/main/kotlin/Versions.kt +++ b/plugins/src/main/kotlin/Versions.kt @@ -32,7 +32,7 @@ private const val versionYear = 25 private const val versionMonth = 4 // Note: must be in [0,99] -private const val versionReleaseNumber = 2 +private const val versionReleaseNumber = 3 object Versions { const val VERSION_CODE = (2000 + versionYear) * 10_000 + versionMonth * 100 + versionReleaseNumber diff --git a/plugins/src/main/kotlin/config/BuildTimeConfig.kt b/plugins/src/main/kotlin/config/BuildTimeConfig.kt index e1fd78c4bb..b687f44391 100644 --- a/plugins/src/main/kotlin/config/BuildTimeConfig.kt +++ b/plugins/src/main/kotlin/config/BuildTimeConfig.kt @@ -31,4 +31,7 @@ object BuildTimeConfig { val SERVICES_SENTRY_DSN: String? = null val BUG_REPORT_URL: String? = null val BUG_REPORT_APP_NAME: String? = null + + const val PUSH_CONFIG_INCLUDE_FIREBASE = true + const val PUSH_CONFIG_INCLUDE_UNIFIED_PUSH = true } diff --git a/plugins/src/main/kotlin/extension/locales.kt b/plugins/src/main/kotlin/extension/locales.kt index 0e7ec238b0..4af9c3e20b 100644 --- a/plugins/src/main/kotlin/extension/locales.kt +++ b/plugins/src/main/kotlin/extension/locales.kt @@ -6,6 +6,7 @@ val locales = setOf( "be", "bg", "cs", + "cy", "de", "el", "en", @@ -20,6 +21,7 @@ val locales = setOf( "in", "it", "ka", + "lt", "nb", "nl", "pl", diff --git a/screenshots/de/features.logout.impl_LogoutView_Day_10_de.png b/screenshots/de/features.logout.impl_LogoutView_Day_10_de.png new file mode 100644 index 0000000000..cbcb036ca2 --- /dev/null +++ b/screenshots/de/features.logout.impl_LogoutView_Day_10_de.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b983aa110832fa68fb926691ea5c93ba24f2b61172512fd57cef025f114dc62b +size 30890 diff --git a/screenshots/de/features.logout.impl_LogoutView_Day_11_de.png b/screenshots/de/features.logout.impl_LogoutView_Day_11_de.png new file mode 100644 index 0000000000..80f47848ad --- /dev/null +++ b/screenshots/de/features.logout.impl_LogoutView_Day_11_de.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:88aecea55e528ba3ce0caea86aa76aec136391498c81d4628a335f543cb47d74 +size 36489 diff --git a/screenshots/de/features.poll.impl.history_PollHistoryView_Day_0_de.png b/screenshots/de/features.poll.impl.history_PollHistoryView_Day_0_de.png index c215631c32..dd992779f3 100644 --- a/screenshots/de/features.poll.impl.history_PollHistoryView_Day_0_de.png +++ b/screenshots/de/features.poll.impl.history_PollHistoryView_Day_0_de.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:d9ac96c66f85b5ae5ed02da6d64f2d3467b5fe7299df660ca8f0778a7b4babd5 -size 60536 +oid sha256:1f7cd75461e1aa9716bd458b171c9cda3f8155b74af2a9b308b8a29a3d934f39 +size 60854 diff --git a/screenshots/de/features.poll.impl.history_PollHistoryView_Day_1_de.png b/screenshots/de/features.poll.impl.history_PollHistoryView_Day_1_de.png index cf420adb4b..1869423b34 100644 --- a/screenshots/de/features.poll.impl.history_PollHistoryView_Day_1_de.png +++ b/screenshots/de/features.poll.impl.history_PollHistoryView_Day_1_de.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:52cdd8970067b065a0b0c2ec35a5d17a043a746c24d1d6a005e629e2e4f26c22 -size 64762 +oid sha256:04bed63251f93251d0af8effc42fc5ce4c452b1dacde89d101f863976962e33a +size 65037 diff --git a/screenshots/de/features.poll.impl.history_PollHistoryView_Day_2_de.png b/screenshots/de/features.poll.impl.history_PollHistoryView_Day_2_de.png index 8d96d4c44c..b8c08d67c9 100644 --- a/screenshots/de/features.poll.impl.history_PollHistoryView_Day_2_de.png +++ b/screenshots/de/features.poll.impl.history_PollHistoryView_Day_2_de.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:3c261be0a1602178bbbfe2c480005aa4c0cd286171f09687cf7dcd6cdf3bfa65 -size 17848 +oid sha256:79bacc1b730cbcc9ebe3431a142d336018308cbcbd1857c79ee7152151d59523 +size 18209 diff --git a/screenshots/de/features.poll.impl.history_PollHistoryView_Day_3_de.png b/screenshots/de/features.poll.impl.history_PollHistoryView_Day_3_de.png index f05df52be3..38499891ee 100644 --- a/screenshots/de/features.poll.impl.history_PollHistoryView_Day_3_de.png +++ b/screenshots/de/features.poll.impl.history_PollHistoryView_Day_3_de.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:6a0c118fe9b1f48c061dd92d073ded45ffc6d54fc6d8d0b6dcd8666b1300402e -size 18657 +oid sha256:5c7f4d33b8b309e98a06c151ffb125dfd5983f51778a9a310023d312dc136b0e +size 18469 diff --git a/screenshots/de/features.poll.impl.history_PollHistoryView_Day_4_de.png b/screenshots/de/features.poll.impl.history_PollHistoryView_Day_4_de.png index 9eaf088ddf..955abeadc2 100644 --- a/screenshots/de/features.poll.impl.history_PollHistoryView_Day_4_de.png +++ b/screenshots/de/features.poll.impl.history_PollHistoryView_Day_4_de.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:d46460d4289863c1eb3982917832fe66e2fdaacce48d0c54984612900ed8b08a -size 22325 +oid sha256:77d65a2142cdb1d46c07de2a97a3f32219fee251dffcf5a4051a95b1f6fa7cfb +size 22132 diff --git a/screenshots/de/features.preferences.impl.advanced_AdvancedSettingsViewDark_0_de.png b/screenshots/de/features.preferences.impl.advanced_AdvancedSettingsViewDark_0_de.png new file mode 100644 index 0000000000..7bf5f75cff --- /dev/null +++ b/screenshots/de/features.preferences.impl.advanced_AdvancedSettingsViewDark_0_de.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7d8aad6c742cb38662158e5ab60e8d1a504145f6220e98930b0ea91c00e99f16 +size 52644 diff --git a/screenshots/de/features.preferences.impl.advanced_AdvancedSettingsViewDark_1_de.png b/screenshots/de/features.preferences.impl.advanced_AdvancedSettingsViewDark_1_de.png new file mode 100644 index 0000000000..4e1be17b0d --- /dev/null +++ b/screenshots/de/features.preferences.impl.advanced_AdvancedSettingsViewDark_1_de.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f0060d5e8d4474b3e9ce035d443770a71af89d0d007c49de11f45d6d4d74e4fa +size 52505 diff --git a/screenshots/de/features.preferences.impl.advanced_AdvancedSettingsViewDark_2_de.png b/screenshots/de/features.preferences.impl.advanced_AdvancedSettingsViewDark_2_de.png new file mode 100644 index 0000000000..8660414f93 --- /dev/null +++ b/screenshots/de/features.preferences.impl.advanced_AdvancedSettingsViewDark_2_de.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8a15bb87cf2eda3aa505795bf78cbec46e1851f932cedbda1e2092f8f692a24b +size 52492 diff --git a/screenshots/de/features.preferences.impl.advanced_AdvancedSettingsViewDark_3_de.png b/screenshots/de/features.preferences.impl.advanced_AdvancedSettingsViewDark_3_de.png new file mode 100644 index 0000000000..7a687666e7 --- /dev/null +++ b/screenshots/de/features.preferences.impl.advanced_AdvancedSettingsViewDark_3_de.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:558cd55d15952c0d0e095d80b61b95a08efc76f43ffa8adf69a9d668f3cb780b +size 52505 diff --git a/screenshots/de/features.preferences.impl.advanced_AdvancedSettingsViewDark_4_de.png b/screenshots/de/features.preferences.impl.advanced_AdvancedSettingsViewDark_4_de.png new file mode 100644 index 0000000000..f6de14342f --- /dev/null +++ b/screenshots/de/features.preferences.impl.advanced_AdvancedSettingsViewDark_4_de.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cfe40649010c60eb3f3fb04bbd2bae72152b8f70bde259f692e61801ebdd35c9 +size 52416 diff --git a/screenshots/de/features.preferences.impl.advanced_AdvancedSettingsViewDark_5_de.png b/screenshots/de/features.preferences.impl.advanced_AdvancedSettingsViewDark_5_de.png new file mode 100644 index 0000000000..24974923f4 --- /dev/null +++ b/screenshots/de/features.preferences.impl.advanced_AdvancedSettingsViewDark_5_de.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b0b1f94666a230180fe79687c760a7328a344a4f0213d171d0caf1b57e121399 +size 52622 diff --git a/screenshots/de/features.preferences.impl.advanced_AdvancedSettingsViewLight_0_de.png b/screenshots/de/features.preferences.impl.advanced_AdvancedSettingsViewLight_0_de.png new file mode 100644 index 0000000000..cbef37ef3a --- /dev/null +++ b/screenshots/de/features.preferences.impl.advanced_AdvancedSettingsViewLight_0_de.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6ae0b1eb33269dc606dfe33eb9d216b70f84e96d2b3563e4dd7f189821b11541 +size 54605 diff --git a/screenshots/de/features.preferences.impl.advanced_AdvancedSettingsViewLight_1_de.png b/screenshots/de/features.preferences.impl.advanced_AdvancedSettingsViewLight_1_de.png new file mode 100644 index 0000000000..2702603405 --- /dev/null +++ b/screenshots/de/features.preferences.impl.advanced_AdvancedSettingsViewLight_1_de.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1245b196a5c10b1344188f879b06cd571772b7e828df6de970ad2d44d22f6cf7 +size 54476 diff --git a/screenshots/de/features.preferences.impl.advanced_AdvancedSettingsViewLight_2_de.png b/screenshots/de/features.preferences.impl.advanced_AdvancedSettingsViewLight_2_de.png new file mode 100644 index 0000000000..cbc6d6655a --- /dev/null +++ b/screenshots/de/features.preferences.impl.advanced_AdvancedSettingsViewLight_2_de.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:79ba700bff2b2a33fd667a02b4dabd58096bbc372723134a8dbc3c56c1c13595 +size 54488 diff --git a/screenshots/de/features.preferences.impl.advanced_AdvancedSettingsViewLight_3_de.png b/screenshots/de/features.preferences.impl.advanced_AdvancedSettingsViewLight_3_de.png new file mode 100644 index 0000000000..5c174a44ee --- /dev/null +++ b/screenshots/de/features.preferences.impl.advanced_AdvancedSettingsViewLight_3_de.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3f9812db8105a346e9142d7a9f1d9b74b5bc16e955c56cb70681519a12bda8f9 +size 54493 diff --git a/screenshots/de/features.preferences.impl.advanced_AdvancedSettingsViewLight_4_de.png b/screenshots/de/features.preferences.impl.advanced_AdvancedSettingsViewLight_4_de.png new file mode 100644 index 0000000000..c8d6ae4c32 --- /dev/null +++ b/screenshots/de/features.preferences.impl.advanced_AdvancedSettingsViewLight_4_de.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:efe1db98c1538fbe97e9b1a0884383bcc20a47f74e68194af1f90de0dc1fffb2 +size 54356 diff --git a/screenshots/de/features.preferences.impl.advanced_AdvancedSettingsViewLight_5_de.png b/screenshots/de/features.preferences.impl.advanced_AdvancedSettingsViewLight_5_de.png new file mode 100644 index 0000000000..a85328e632 --- /dev/null +++ b/screenshots/de/features.preferences.impl.advanced_AdvancedSettingsViewLight_5_de.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a63356d9110c7c61ae2125a830711f22c4e3f2b346e085d16fb60222aaf83c8a +size 54621 diff --git a/screenshots/de/features.preferences.impl.advanced_AdvancedSettingsView_Day_0_de.png b/screenshots/de/features.preferences.impl.advanced_AdvancedSettingsView_Day_0_de.png deleted file mode 100644 index 68d2ad3eb4..0000000000 --- a/screenshots/de/features.preferences.impl.advanced_AdvancedSettingsView_Day_0_de.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:159485ee9a4665985a9426aef3378822f7c4b7e29256e4ee37859c09bafe4383 -size 68434 diff --git a/screenshots/de/features.preferences.impl.advanced_AdvancedSettingsView_Day_1_de.png b/screenshots/de/features.preferences.impl.advanced_AdvancedSettingsView_Day_1_de.png deleted file mode 100644 index 843819f7a6..0000000000 --- a/screenshots/de/features.preferences.impl.advanced_AdvancedSettingsView_Day_1_de.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:4cb88d8596ca78d44537aea79fdcfec1fab17a83943fb0a3799604920b3cfa52 -size 68199 diff --git a/screenshots/de/features.preferences.impl.advanced_AdvancedSettingsView_Day_2_de.png b/screenshots/de/features.preferences.impl.advanced_AdvancedSettingsView_Day_2_de.png deleted file mode 100644 index 1b289a88da..0000000000 --- a/screenshots/de/features.preferences.impl.advanced_AdvancedSettingsView_Day_2_de.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:5e04817fd6f0cc5ce732e90499ce7bdc603ebd8b2f91c11430abb006a173eaa7 -size 34348 diff --git a/screenshots/de/features.preferences.impl.advanced_AdvancedSettingsView_Day_3_de.png b/screenshots/de/features.preferences.impl.advanced_AdvancedSettingsView_Day_3_de.png deleted file mode 100644 index 1474735234..0000000000 --- a/screenshots/de/features.preferences.impl.advanced_AdvancedSettingsView_Day_3_de.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:f305eef0b9ad16f217851a1d45f829556e56c669c06a931b0d1f61a278759186 -size 68245 diff --git a/screenshots/de/features.preferences.impl.advanced_AdvancedSettingsView_Day_4_de.png b/screenshots/de/features.preferences.impl.advanced_AdvancedSettingsView_Day_4_de.png deleted file mode 100644 index 47e66d6c42..0000000000 --- a/screenshots/de/features.preferences.impl.advanced_AdvancedSettingsView_Day_4_de.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:5e2ef11551da2cc0581777ec5f89030c80745b5a36cea448e8033d3f256f4332 -size 68246 diff --git a/screenshots/de/features.preferences.impl.developer_DeveloperSettingsView_Day_0_de.png b/screenshots/de/features.preferences.impl.developer_DeveloperSettingsView_Day_0_de.png index d818b6ec2f..3da56a4789 100644 --- a/screenshots/de/features.preferences.impl.developer_DeveloperSettingsView_Day_0_de.png +++ b/screenshots/de/features.preferences.impl.developer_DeveloperSettingsView_Day_0_de.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:3f27a5e403b15f4c9583dab04ecc346ace073288aff2c8a230d23356869c752b -size 60388 +oid sha256:d1442ad322b2fa249d29cf68785c1642d5bd56128509655bc4a88b41c3b8cf90 +size 56628 diff --git a/screenshots/de/features.preferences.impl.developer_DeveloperSettingsView_Day_1_de.png b/screenshots/de/features.preferences.impl.developer_DeveloperSettingsView_Day_1_de.png index d818b6ec2f..3da56a4789 100644 --- a/screenshots/de/features.preferences.impl.developer_DeveloperSettingsView_Day_1_de.png +++ b/screenshots/de/features.preferences.impl.developer_DeveloperSettingsView_Day_1_de.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:3f27a5e403b15f4c9583dab04ecc346ace073288aff2c8a230d23356869c752b -size 60388 +oid sha256:d1442ad322b2fa249d29cf68785c1642d5bd56128509655bc4a88b41c3b8cf90 +size 56628 diff --git a/screenshots/de/features.preferences.impl.developer_DeveloperSettingsView_Day_2_de.png b/screenshots/de/features.preferences.impl.developer_DeveloperSettingsView_Day_2_de.png index 96d554d799..8f3a6eae88 100644 --- a/screenshots/de/features.preferences.impl.developer_DeveloperSettingsView_Day_2_de.png +++ b/screenshots/de/features.preferences.impl.developer_DeveloperSettingsView_Day_2_de.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:a74f58d01f0646913ae0f25a6fcc46c910226a2b1fcba8d318e8a90733564ed0 -size 58097 +oid sha256:bd3d0a7a7251410fc6ab44e83451fa08035093790891425568e9f2c29c744034 +size 54362 diff --git a/screenshots/de/features.rageshake.impl.bugreport_BugReportView_Day_0_de.png b/screenshots/de/features.rageshake.impl.bugreport_BugReportView_Day_0_de.png index 32700b0b7e..10311a7f16 100644 --- a/screenshots/de/features.rageshake.impl.bugreport_BugReportView_Day_0_de.png +++ b/screenshots/de/features.rageshake.impl.bugreport_BugReportView_Day_0_de.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:c9f41b578db2e8e8f2e3ba3f6f65e20d7e3225510bdcbf5d1ebe9e68bee8290a -size 79647 +oid sha256:70a1bfa574e92a44e6f79885060ec217d285e799ca438506d60cf54a40f093f0 +size 80089 diff --git a/screenshots/de/features.rageshake.impl.bugreport_BugReportView_Day_1_de.png b/screenshots/de/features.rageshake.impl.bugreport_BugReportView_Day_1_de.png index faa108a66b..ac898dcdd8 100644 --- a/screenshots/de/features.rageshake.impl.bugreport_BugReportView_Day_1_de.png +++ b/screenshots/de/features.rageshake.impl.bugreport_BugReportView_Day_1_de.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:e4e08e2cd8817acc2a6fe9dc65d39134f94a2f16962ac0ef7fcb3757d05c8f5f -size 98899 +oid sha256:a86fd89f01d65d05e3c98842ffc3b8e1bae2be8531b8b78f2ff5f6268a58c591 +size 99384 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 9bcdda534e..1233c6bf45 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:8667989a8e4791ec4949543251bf72c1de93628ea635ad543030d3b96b6c4dd9 -size 75335 +oid sha256:be82a20eb47859c6879524dd2c8341a2265d52859a28a4fe61245dc2bd6a2f63 +size 75654 diff --git a/screenshots/de/features.rageshake.impl.bugreport_BugReportView_Day_3_de.png b/screenshots/de/features.rageshake.impl.bugreport_BugReportView_Day_3_de.png index 32700b0b7e..10311a7f16 100644 --- a/screenshots/de/features.rageshake.impl.bugreport_BugReportView_Day_3_de.png +++ b/screenshots/de/features.rageshake.impl.bugreport_BugReportView_Day_3_de.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:c9f41b578db2e8e8f2e3ba3f6f65e20d7e3225510bdcbf5d1ebe9e68bee8290a -size 79647 +oid sha256:70a1bfa574e92a44e6f79885060ec217d285e799ca438506d60cf54a40f093f0 +size 80089 diff --git a/screenshots/de/features.rageshake.impl.bugreport_BugReportView_Day_4_de.png b/screenshots/de/features.rageshake.impl.bugreport_BugReportView_Day_4_de.png index 05724bac10..77b81eae8f 100644 --- a/screenshots/de/features.rageshake.impl.bugreport_BugReportView_Day_4_de.png +++ b/screenshots/de/features.rageshake.impl.bugreport_BugReportView_Day_4_de.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:d09c866fc6cddca6b24f4dce25a75b5dc635645ccb2e4184c68f4e5a046e7c1c -size 57079 +oid sha256:004173795f326a2766845370ae400b89bc662ec614b40041bc0a9a2129911691 +size 57069 diff --git a/screenshots/de/features.roomdetails.impl.members.moderation_RoomMembersModerationView_Day_3_de.png b/screenshots/de/features.roomdetails.impl.members.moderation_RoomMembersModerationView_Day_3_de.png index 6950ee7b49..b11c62696e 100644 --- a/screenshots/de/features.roomdetails.impl.members.moderation_RoomMembersModerationView_Day_3_de.png +++ b/screenshots/de/features.roomdetails.impl.members.moderation_RoomMembersModerationView_Day_3_de.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:607f0410ab4482574395083969389b4e7f02ed797a4ccfc182d1dcb1b3d346ae -size 31530 +oid sha256:c302540a09bcaa5db3296b3825f3086e593a61d5cd2b4c834f23fc6827b91325 +size 34422 diff --git a/screenshots/de/features.roomdetails.impl.members.moderation_RoomMembersModerationView_Day_5_de.png b/screenshots/de/features.roomdetails.impl.members.moderation_RoomMembersModerationView_Day_5_de.png index dd2ad2a206..176b428e12 100644 --- a/screenshots/de/features.roomdetails.impl.members.moderation_RoomMembersModerationView_Day_5_de.png +++ b/screenshots/de/features.roomdetails.impl.members.moderation_RoomMembersModerationView_Day_5_de.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:79d235afe2b0a6aab372e445f89c0b4c79f7be0980b460c08ee7fb25275c55b7 -size 38145 +oid sha256:5eb29f54495febfa05efb8f4e398386ccf0875fcb99270fa9a51ab026a324f7a +size 37099 diff --git a/screenshots/de/features.roomdetails.impl_RoomDetailsDark_0_de.png b/screenshots/de/features.roomdetails.impl_RoomDetailsDark_0_de.png index 5e205681ad..0d29f5f017 100644 --- a/screenshots/de/features.roomdetails.impl_RoomDetailsDark_0_de.png +++ b/screenshots/de/features.roomdetails.impl_RoomDetailsDark_0_de.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:064fc91cbf9c394ecc415a0c407b198266c18eeed58e2211e77a99b2566c6b4c -size 45992 +oid sha256:ca8ec24b1775b2e2d65e4bf31c9d832243cf450ab8bf0e275c958f55d891a3ae +size 45915 diff --git a/screenshots/de/features.roomdetails.impl_RoomDetailsDark_10_de.png b/screenshots/de/features.roomdetails.impl_RoomDetailsDark_10_de.png index b1b5c44bbe..ac8f3c8942 100644 --- a/screenshots/de/features.roomdetails.impl_RoomDetailsDark_10_de.png +++ b/screenshots/de/features.roomdetails.impl_RoomDetailsDark_10_de.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:1f287d2d55e3ed88bcfd7029e04850b9afb608bff4cdb307a2107ef3492263ea -size 44873 +oid sha256:7f4f16ee1872417ecde6933ed01db60513b02bd7b6126652633438d8d6ddab53 +size 44794 diff --git a/screenshots/de/features.roomdetails.impl_RoomDetailsDark_11_de.png b/screenshots/de/features.roomdetails.impl_RoomDetailsDark_11_de.png index d7fb40d3bc..2f1eab1256 100644 --- a/screenshots/de/features.roomdetails.impl_RoomDetailsDark_11_de.png +++ b/screenshots/de/features.roomdetails.impl_RoomDetailsDark_11_de.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:1d38a07867e68e0bc2297ec94deacf33701a057ec3ac4826c9315ba343a9cc55 -size 43233 +oid sha256:70b48f288a251760efc84dc0a9caf9315cc1ef65ec5d7fd22df04b81e4c7156a +size 43211 diff --git a/screenshots/de/features.roomdetails.impl_RoomDetailsDark_12_de.png b/screenshots/de/features.roomdetails.impl_RoomDetailsDark_12_de.png index b3f166f0f9..476f83cdfe 100644 --- a/screenshots/de/features.roomdetails.impl_RoomDetailsDark_12_de.png +++ b/screenshots/de/features.roomdetails.impl_RoomDetailsDark_12_de.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:f9095463651ea679d8bf78366da02023071a802d551874c56b333cdd9870eb1d -size 47131 +oid sha256:a8bf7a762a9c26e2e089e8bea43dca197ba2301534a110b73e9d848c350b17ca +size 47054 diff --git a/screenshots/de/features.roomdetails.impl_RoomDetailsDark_13_de.png b/screenshots/de/features.roomdetails.impl_RoomDetailsDark_13_de.png index 3ca9500e98..7eb6c50bdd 100644 --- a/screenshots/de/features.roomdetails.impl_RoomDetailsDark_13_de.png +++ b/screenshots/de/features.roomdetails.impl_RoomDetailsDark_13_de.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:e0a2bae68fcaea24090d504a42bae48d4b540e0e7d8cc41b184645c432ff7f77 -size 45223 +oid sha256:f629c7b6edec8f093f330b92eaa4738ee6917aed10b18a87741ae809e4770948 +size 45146 diff --git a/screenshots/de/features.roomdetails.impl_RoomDetailsDark_14_de.png b/screenshots/de/features.roomdetails.impl_RoomDetailsDark_14_de.png index e065b4bf53..2aebacfe9e 100644 --- a/screenshots/de/features.roomdetails.impl_RoomDetailsDark_14_de.png +++ b/screenshots/de/features.roomdetails.impl_RoomDetailsDark_14_de.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:791a579b913e406287a37962145cf54c02d68dfc14c8d4a7ae864017de3e5629 -size 45737 +oid sha256:be31534fa702a2894fd2216f28dc77b7ba5fb6a1564bda2c30eb6c6d3e904cf9 +size 45655 diff --git a/screenshots/de/features.roomdetails.impl_RoomDetailsDark_15_de.png b/screenshots/de/features.roomdetails.impl_RoomDetailsDark_15_de.png index fec0f1ac74..a97ff5b521 100644 --- a/screenshots/de/features.roomdetails.impl_RoomDetailsDark_15_de.png +++ b/screenshots/de/features.roomdetails.impl_RoomDetailsDark_15_de.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:c19498feaf3cf309a105b611531c13d596da8c0d33623c393b2a5dbf95c12c87 -size 46314 +oid sha256:429df957cda3d0601fe4c451f370241978402033edf6017302115c10aa59f3bc +size 46237 diff --git a/screenshots/de/features.roomdetails.impl_RoomDetailsDark_16_de.png b/screenshots/de/features.roomdetails.impl_RoomDetailsDark_16_de.png index 77e4be20af..2ece4cebd6 100644 --- a/screenshots/de/features.roomdetails.impl_RoomDetailsDark_16_de.png +++ b/screenshots/de/features.roomdetails.impl_RoomDetailsDark_16_de.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:157f747b71d355493b7255b22e88742be69df779b6d9a1df6acf01069adab820 -size 45553 +oid sha256:70b116284cf877004b78e26381e7dd9b581c87898d27a7dc8f5fa7f511e88964 +size 45475 diff --git a/screenshots/de/features.roomdetails.impl_RoomDetailsDark_17_de.png b/screenshots/de/features.roomdetails.impl_RoomDetailsDark_17_de.png index 4fbcecfb3c..a06d8b5f9f 100644 --- a/screenshots/de/features.roomdetails.impl_RoomDetailsDark_17_de.png +++ b/screenshots/de/features.roomdetails.impl_RoomDetailsDark_17_de.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:3182cd1fb86194493ef923e46f5ade74ffd48b6a28a5f42c88dfbaa022736682 -size 41859 +oid sha256:400de13e3e446bc18b1a5d7819fd4b874ffa4bcbc5b80684d84c203b7f5fb897 +size 41836 diff --git a/screenshots/de/features.roomdetails.impl_RoomDetailsDark_18_de.png b/screenshots/de/features.roomdetails.impl_RoomDetailsDark_18_de.png index 55772678a6..cce1b0aa7a 100644 --- a/screenshots/de/features.roomdetails.impl_RoomDetailsDark_18_de.png +++ b/screenshots/de/features.roomdetails.impl_RoomDetailsDark_18_de.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:487b634d922beecb2d235a73d325f052ea904b8c5a053c4856ad9158cd9b47aa -size 41814 +oid sha256:1de394c34446754f68f028a11fb4112aa56dbbbc69d8d4d5f8f5f48606bd011c +size 41792 diff --git a/screenshots/de/features.roomdetails.impl_RoomDetailsDark_1_de.png b/screenshots/de/features.roomdetails.impl_RoomDetailsDark_1_de.png index 9a88fe6e2a..9d20895b9b 100644 --- a/screenshots/de/features.roomdetails.impl_RoomDetailsDark_1_de.png +++ b/screenshots/de/features.roomdetails.impl_RoomDetailsDark_1_de.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:4f7f3f083b27f726c4ddf17a6ecffe21d8865c122d55e2879b8b1145438fe7b2 -size 36463 +oid sha256:69a78e5571dd691e55f2aaa3c8cb2a83d27403db4ba5fcbf7280767ba0ead6a8 +size 36393 diff --git a/screenshots/de/features.roomdetails.impl_RoomDetailsDark_2_de.png b/screenshots/de/features.roomdetails.impl_RoomDetailsDark_2_de.png index 1e903b4df9..23b09c45f3 100644 --- a/screenshots/de/features.roomdetails.impl_RoomDetailsDark_2_de.png +++ b/screenshots/de/features.roomdetails.impl_RoomDetailsDark_2_de.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:ea2473f89bca4a8e4909b2cd3ded7919a68bce80a3f85373bd40581b6b532464 -size 39067 +oid sha256:eb151d81fbe5ec5d3b191216470e27121784ef3ceb6a381865f0812f176f07cf +size 38988 diff --git a/screenshots/de/features.roomdetails.impl_RoomDetailsDark_3_de.png b/screenshots/de/features.roomdetails.impl_RoomDetailsDark_3_de.png index 55745b3f8d..876238748a 100644 --- a/screenshots/de/features.roomdetails.impl_RoomDetailsDark_3_de.png +++ b/screenshots/de/features.roomdetails.impl_RoomDetailsDark_3_de.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:1f1c37582bb9b3f680b302f9dea4f27213b562bdac7210d7d51247abe5b931ba -size 45558 +oid sha256:3706e4e1cee1bb0cc01aedbe28a24670acdbd2d9c9ed710eb28f4c7cf194cb3e +size 45410 diff --git a/screenshots/de/features.roomdetails.impl_RoomDetailsDark_4_de.png b/screenshots/de/features.roomdetails.impl_RoomDetailsDark_4_de.png index 3a762f83af..5491b85adf 100644 --- a/screenshots/de/features.roomdetails.impl_RoomDetailsDark_4_de.png +++ b/screenshots/de/features.roomdetails.impl_RoomDetailsDark_4_de.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:0eeddb05018851f7a7bc0b61bbf83edb11f53dfc16c45df5698cffbf02e4ee7d -size 44441 +oid sha256:7cfe2c4166bc3af22891ac44a9462909540e885c45dbb870828f7f8a35d2fab2 +size 44372 diff --git a/screenshots/de/features.roomdetails.impl_RoomDetailsDark_5_de.png b/screenshots/de/features.roomdetails.impl_RoomDetailsDark_5_de.png index 374d8eb94f..4284e4a80b 100644 --- a/screenshots/de/features.roomdetails.impl_RoomDetailsDark_5_de.png +++ b/screenshots/de/features.roomdetails.impl_RoomDetailsDark_5_de.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:31e3a894473f061f2ee8dec48e9730ca84a6debcb8023b54b6510e20d8f64058 -size 41499 +oid sha256:4282d57b82f7e5077580d1571bf3af69e24252a97b317cab88a01e780bab3fad +size 41477 diff --git a/screenshots/de/features.roomdetails.impl_RoomDetailsDark_6_de.png b/screenshots/de/features.roomdetails.impl_RoomDetailsDark_6_de.png index 6fa141d6c4..ee40a011ea 100644 --- a/screenshots/de/features.roomdetails.impl_RoomDetailsDark_6_de.png +++ b/screenshots/de/features.roomdetails.impl_RoomDetailsDark_6_de.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:56875192f27f48df3d694effa375e7f703cc5ad820f2dd52b4c0cedea16771d5 -size 45201 +oid sha256:1355053d6adeff0e3d14e32ffbaaea37dd7ec8f77d59aedbd6183230d175696c +size 45148 diff --git a/screenshots/de/features.roomdetails.impl_RoomDetailsDark_7_de.png b/screenshots/de/features.roomdetails.impl_RoomDetailsDark_7_de.png index d31c2858fb..e6eab41fe0 100644 --- a/screenshots/de/features.roomdetails.impl_RoomDetailsDark_7_de.png +++ b/screenshots/de/features.roomdetails.impl_RoomDetailsDark_7_de.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:088695f25c715eff4442f65b285471cbc6e6efbb051c47fad738135146a89e04 -size 46464 +oid sha256:2ab35dca344a870da451ae6c082095531dfa4eac753d22b7283f0e6a0c12a3e2 +size 46377 diff --git a/screenshots/de/features.roomdetails.impl_RoomDetailsDark_8_de.png b/screenshots/de/features.roomdetails.impl_RoomDetailsDark_8_de.png index fda497dde4..71d91f126e 100644 --- a/screenshots/de/features.roomdetails.impl_RoomDetailsDark_8_de.png +++ b/screenshots/de/features.roomdetails.impl_RoomDetailsDark_8_de.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:e5c948a7593cb3347fb43030a3456a6f1aef4fec0384eb9caacad8349d17626c -size 45248 +oid sha256:7d5017df108eb110757e3bc19175ee0cd04418ef9643cf363b9909e5eb7ac741 +size 45169 diff --git a/screenshots/de/features.roomdetails.impl_RoomDetailsDark_9_de.png b/screenshots/de/features.roomdetails.impl_RoomDetailsDark_9_de.png index fa72ce58af..fa3551995a 100644 --- a/screenshots/de/features.roomdetails.impl_RoomDetailsDark_9_de.png +++ b/screenshots/de/features.roomdetails.impl_RoomDetailsDark_9_de.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:f51413349aa28bc6619a55b0ea9cbf36ad8f0f3ec6e30ba80f8f752eb2107668 -size 44033 +oid sha256:5e908618187a14ea56e592fe82fabb4dd3e6fc75c7e67ac0fb3a9d638e05940f +size 43952 diff --git a/screenshots/de/features.roomdetails.impl_RoomDetails_0_de.png b/screenshots/de/features.roomdetails.impl_RoomDetails_0_de.png index d6af09b4c7..802111b30e 100644 --- a/screenshots/de/features.roomdetails.impl_RoomDetails_0_de.png +++ b/screenshots/de/features.roomdetails.impl_RoomDetails_0_de.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:692d00e0a8597682bf414f91342ae2b7c9b68dc38944e77f783ef5e5776c2240 -size 47041 +oid sha256:3cb3b25bd7ef8a02f0210d83d507014a692c53e8508599f848cebfbf5ed5a6a0 +size 46993 diff --git a/screenshots/de/features.roomdetails.impl_RoomDetails_10_de.png b/screenshots/de/features.roomdetails.impl_RoomDetails_10_de.png index bf9ed2a3cc..e113c64845 100644 --- a/screenshots/de/features.roomdetails.impl_RoomDetails_10_de.png +++ b/screenshots/de/features.roomdetails.impl_RoomDetails_10_de.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:c37ddb76e6d41c0b781569f482fad117ce48367847e0061972694030a9413085 -size 45882 +oid sha256:d09627b117addc28886870355099a343379877442d58a2a958aee0bfb83fbdf6 +size 45834 diff --git a/screenshots/de/features.roomdetails.impl_RoomDetails_11_de.png b/screenshots/de/features.roomdetails.impl_RoomDetails_11_de.png index 4be06edf5f..81dc586be1 100644 --- a/screenshots/de/features.roomdetails.impl_RoomDetails_11_de.png +++ b/screenshots/de/features.roomdetails.impl_RoomDetails_11_de.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:15dad2dfa5ad660d8aef625be453432450b013d4b7f76979b6bbb21a2d5862be -size 44323 +oid sha256:8d5a9bb03221a836e84604d9c0c59915a46f8bbcbe89e073998a31256bd6c0db +size 44299 diff --git a/screenshots/de/features.roomdetails.impl_RoomDetails_12_de.png b/screenshots/de/features.roomdetails.impl_RoomDetails_12_de.png index 52e4702c1b..8a2971802e 100644 --- a/screenshots/de/features.roomdetails.impl_RoomDetails_12_de.png +++ b/screenshots/de/features.roomdetails.impl_RoomDetails_12_de.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:292dcae768ff8534f82e6bbe075a8fb4b4b57718d10a0f93d4d45b84e72becfe -size 47714 +oid sha256:44f4df753891993e28e8292b060d03adc25f71d727a5c56a94ffe5fc41ae85a4 +size 47658 diff --git a/screenshots/de/features.roomdetails.impl_RoomDetails_13_de.png b/screenshots/de/features.roomdetails.impl_RoomDetails_13_de.png index 36499ecb66..e75133fa27 100644 --- a/screenshots/de/features.roomdetails.impl_RoomDetails_13_de.png +++ b/screenshots/de/features.roomdetails.impl_RoomDetails_13_de.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:b8f1513a55fa0d5b74657bcd224bac851151b2da10dd7f624cd92778e6ab0618 -size 46205 +oid sha256:b534a40e67c218e254d6677459a9b3ea1c6ae855c97e7b41aaf72da14b76e22b +size 46159 diff --git a/screenshots/de/features.roomdetails.impl_RoomDetails_14_de.png b/screenshots/de/features.roomdetails.impl_RoomDetails_14_de.png index b6fd155e9a..d6644f26ba 100644 --- a/screenshots/de/features.roomdetails.impl_RoomDetails_14_de.png +++ b/screenshots/de/features.roomdetails.impl_RoomDetails_14_de.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:9d97e781bf08ff3c519d693ccd2dca3269706667a45ee06c866903b7a95a07da -size 46711 +oid sha256:0f2dbc96fc7398f92ddabb0a316f1cfb7cca6941b891d669367311c682d67eae +size 46661 diff --git a/screenshots/de/features.roomdetails.impl_RoomDetails_15_de.png b/screenshots/de/features.roomdetails.impl_RoomDetails_15_de.png index 8987195d54..b1e316aa94 100644 --- a/screenshots/de/features.roomdetails.impl_RoomDetails_15_de.png +++ b/screenshots/de/features.roomdetails.impl_RoomDetails_15_de.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:5b7f88d28b9820258ebac7c375cdf4e64f9ad4a62c195ce4e7253722ced29d5e -size 47302 +oid sha256:6ed807652ec6311e514c37ca76d4ab496760396da45e9b165838470b899a6a19 +size 47255 diff --git a/screenshots/de/features.roomdetails.impl_RoomDetails_16_de.png b/screenshots/de/features.roomdetails.impl_RoomDetails_16_de.png index 0fe04d6d9c..dfc67208ec 100644 --- a/screenshots/de/features.roomdetails.impl_RoomDetails_16_de.png +++ b/screenshots/de/features.roomdetails.impl_RoomDetails_16_de.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:6126c10ff145a34ccedf9c7179c7786af1b6820a1dc2c3684aa649883e4833ba -size 46555 +oid sha256:0d18f053ea3ff393891f510bbd5ee3e4c9a181ba735c92f14ed8de9d39c5c0aa +size 46506 diff --git a/screenshots/de/features.roomdetails.impl_RoomDetails_17_de.png b/screenshots/de/features.roomdetails.impl_RoomDetails_17_de.png index 1908f0d697..9eb485f277 100644 --- a/screenshots/de/features.roomdetails.impl_RoomDetails_17_de.png +++ b/screenshots/de/features.roomdetails.impl_RoomDetails_17_de.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:82b74717000cf7d292a4fb9690e308e7f22db1a98e0231c6ef1cea8945e79418 -size 42883 +oid sha256:422f724e69ca057e5e3031f73bae86fad2fa533af748b930f836c430079c20b0 +size 42861 diff --git a/screenshots/de/features.roomdetails.impl_RoomDetails_18_de.png b/screenshots/de/features.roomdetails.impl_RoomDetails_18_de.png index 7615ea6f5e..dfc9a43500 100644 --- a/screenshots/de/features.roomdetails.impl_RoomDetails_18_de.png +++ b/screenshots/de/features.roomdetails.impl_RoomDetails_18_de.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:156cf5bf138965d37b3ec8ffc88facb206c77cd82461b642c747b217b6bb6b53 -size 42761 +oid sha256:f180e16ec70466bcd5b03bc067ce5a017ea2f345776aa38b8b2a54ed534f1cc5 +size 42739 diff --git a/screenshots/de/features.roomdetails.impl_RoomDetails_1_de.png b/screenshots/de/features.roomdetails.impl_RoomDetails_1_de.png index 91e9215b3d..dbc70be864 100644 --- a/screenshots/de/features.roomdetails.impl_RoomDetails_1_de.png +++ b/screenshots/de/features.roomdetails.impl_RoomDetails_1_de.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:66d469f100cb1dc04dad3859c0e8e3f9bb50a98b11947a328424f9c11b581b45 -size 37400 +oid sha256:68214599df536d1dfe2a0fd40e9a7fa709a48528ea8b61d03d604ec31219851f +size 37344 diff --git a/screenshots/de/features.roomdetails.impl_RoomDetails_2_de.png b/screenshots/de/features.roomdetails.impl_RoomDetails_2_de.png index 8a32c9c66c..68e52c8016 100644 --- a/screenshots/de/features.roomdetails.impl_RoomDetails_2_de.png +++ b/screenshots/de/features.roomdetails.impl_RoomDetails_2_de.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:9c38ede826c8a472d00d6132be5e80760434774603afca44b61d4d7afcd68877 -size 40131 +oid sha256:0fcef5de5c8304fcc9bc54391f33069ecbe91eec45413796ffe3a000ae6ac5d8 +size 40087 diff --git a/screenshots/de/features.roomdetails.impl_RoomDetails_3_de.png b/screenshots/de/features.roomdetails.impl_RoomDetails_3_de.png index 13dc66abec..b1fb65bd14 100644 --- a/screenshots/de/features.roomdetails.impl_RoomDetails_3_de.png +++ b/screenshots/de/features.roomdetails.impl_RoomDetails_3_de.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:86764932b950fb55ae017b870b79ab32e96cc3f88248c0fac5db8f618ca8b2b3 -size 46454 +oid sha256:77782c8df1325ffb6da59fa963a8d77345b4f88669aead0aa722028d39eade45 +size 46360 diff --git a/screenshots/de/features.roomdetails.impl_RoomDetails_4_de.png b/screenshots/de/features.roomdetails.impl_RoomDetails_4_de.png index bcf1141910..346abaf333 100644 --- a/screenshots/de/features.roomdetails.impl_RoomDetails_4_de.png +++ b/screenshots/de/features.roomdetails.impl_RoomDetails_4_de.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:c35256f5869fea4d42aa672f49f48dc073f179ead72004baa25e07b4420d5665 -size 45401 +oid sha256:1b63d6d13c966cccebc8609f6efe482e8b52fa9c828befc325b103bb9fe22967 +size 45355 diff --git a/screenshots/de/features.roomdetails.impl_RoomDetails_5_de.png b/screenshots/de/features.roomdetails.impl_RoomDetails_5_de.png index 01095a7bf7..b3d645e87d 100644 --- a/screenshots/de/features.roomdetails.impl_RoomDetails_5_de.png +++ b/screenshots/de/features.roomdetails.impl_RoomDetails_5_de.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:5cb95f7267a454057e5fe2020f55b3c066110c08ac2d509443aa449daf95b2fb -size 42459 +oid sha256:1dcda0c7c3b5cf60787034b2a4d77a466d49680863896a9a0b50e7714b8c9efd +size 42437 diff --git a/screenshots/de/features.roomdetails.impl_RoomDetails_6_de.png b/screenshots/de/features.roomdetails.impl_RoomDetails_6_de.png index f6e0a5a0ee..92e7a851fe 100644 --- a/screenshots/de/features.roomdetails.impl_RoomDetails_6_de.png +++ b/screenshots/de/features.roomdetails.impl_RoomDetails_6_de.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:d7b2e6e6461b04a9476e57ccebf35f79de29bf7c43c5936fc7bd497f8c238ac2 -size 46243 +oid sha256:b7d00bd3a98e05dd7e73d66bcff21e9da7179009fab1ccbb892a979acc608764 +size 46218 diff --git a/screenshots/de/features.roomdetails.impl_RoomDetails_7_de.png b/screenshots/de/features.roomdetails.impl_RoomDetails_7_de.png index e093b35424..cb093979cd 100644 --- a/screenshots/de/features.roomdetails.impl_RoomDetails_7_de.png +++ b/screenshots/de/features.roomdetails.impl_RoomDetails_7_de.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:9e8262293955839ab0827b0d9bb04f7528e51513354a45bdd3738c601f5fcba8 -size 47542 +oid sha256:fbf5bbd6b81babd0658dece6801f37440678a69bdaec9b227a37b12fe94c02d4 +size 47485 diff --git a/screenshots/de/features.roomdetails.impl_RoomDetails_8_de.png b/screenshots/de/features.roomdetails.impl_RoomDetails_8_de.png index 581cc59363..a910e248d8 100644 --- a/screenshots/de/features.roomdetails.impl_RoomDetails_8_de.png +++ b/screenshots/de/features.roomdetails.impl_RoomDetails_8_de.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:f3b57566b133fd7cd56b905470b744dc3d98e7a6112f3556b9490cb26c1c4092 -size 46305 +oid sha256:6a02074e2ba8d9fba8f89f5dca0a52bcfd8fcaca70b31038dcf7856135113416 +size 46256 diff --git a/screenshots/de/features.roomdetails.impl_RoomDetails_9_de.png b/screenshots/de/features.roomdetails.impl_RoomDetails_9_de.png index 608967f681..60a282897f 100644 --- a/screenshots/de/features.roomdetails.impl_RoomDetails_9_de.png +++ b/screenshots/de/features.roomdetails.impl_RoomDetails_9_de.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:a9df573a195b9e8475ac9f95e4aed49ff4946846683b3b7cf00a102b2f8311a9 -size 44951 +oid sha256:95b3bf26f26e4fd2487a11a19b12abfb76898c65e13ef54b1969e31712246599 +size 44899 diff --git a/screenshots/de/features.userprofile.shared_UserProfileHeaderSection_Day_0_de.png b/screenshots/de/features.userprofile.shared_UserProfileHeaderSection_Day_0_de.png index c80c1adae1..2fe608431b 100644 --- a/screenshots/de/features.userprofile.shared_UserProfileHeaderSection_Day_0_de.png +++ b/screenshots/de/features.userprofile.shared_UserProfileHeaderSection_Day_0_de.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:c317599d84833c06a9931e41c0f20eacae4ea86dd1aa47f44c365acf34842707 -size 15395 +oid sha256:d900e961850cc8dc3ceefc1f7d7a9296e6737a0e6b92ddc5e7223a42df7ddf41 +size 15312 diff --git a/screenshots/de/features.userprofile.shared_UserProfileView_Day_2_de.png b/screenshots/de/features.userprofile.shared_UserProfileView_Day_2_de.png index 23370ab623..6c14bfade1 100644 --- a/screenshots/de/features.userprofile.shared_UserProfileView_Day_2_de.png +++ b/screenshots/de/features.userprofile.shared_UserProfileView_Day_2_de.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:d2592e29284d3324b3fc3cfca87ac6722ee12cf0a88724ad85a47347f6485e03 -size 25174 +oid sha256:c6783cffd4de09a1c9f065240c56432971c8cc089770a04e5d8ca8c62b1dc1a1 +size 25090 diff --git a/screenshots/de/libraries.dateformatter.impl.previews_DateFormatterModeView_0_de.png b/screenshots/de/libraries.dateformatter.impl.previews_DateFormatterModeView_0_de.png index 077cef9b36..6bb6d7fe08 100644 --- a/screenshots/de/libraries.dateformatter.impl.previews_DateFormatterModeView_0_de.png +++ b/screenshots/de/libraries.dateformatter.impl.previews_DateFormatterModeView_0_de.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:8fd650a2d3ce6b86f46a064568cc69f36770f073c8e8d00f6ba8bf409abde7c0 -size 100417 +oid sha256:da9eddf528f2af6eb3ba35e9322c90abd468d6d6d7367d559c10b3ebf84d5c4e +size 98472 diff --git a/screenshots/de/libraries.dateformatter.impl.previews_DateFormatterModeView_1_de.png b/screenshots/de/libraries.dateformatter.impl.previews_DateFormatterModeView_1_de.png index 4bd7a28546..59bdd4f577 100644 --- a/screenshots/de/libraries.dateformatter.impl.previews_DateFormatterModeView_1_de.png +++ b/screenshots/de/libraries.dateformatter.impl.previews_DateFormatterModeView_1_de.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:aeb984d7df7478254a2e3b7845d2dc1927bab93a389b8a9d262d1056c7a077dd -size 88308 +oid sha256:324f72f4b302266562437511e956b726718dfa637ba6dff224e1b885949e0122 +size 88116 diff --git a/screenshots/de/libraries.dateformatter.impl.previews_DateFormatterModeView_2_de.png b/screenshots/de/libraries.dateformatter.impl.previews_DateFormatterModeView_2_de.png index 8f8a7a7491..7666ed50da 100644 --- a/screenshots/de/libraries.dateformatter.impl.previews_DateFormatterModeView_2_de.png +++ b/screenshots/de/libraries.dateformatter.impl.previews_DateFormatterModeView_2_de.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:2887716bc49f1d01054943c769f8f4677418b660ed1921b80d858b2fedaaf93a -size 88076 +oid sha256:a85899d835ae7fc78c9fa9bbb90de3bcdd0fbc92ef61c87178e850fdaf2e2857 +size 87898 diff --git a/screenshots/de/libraries.dateformatter.impl.previews_DateFormatterModeView_3_de.png b/screenshots/de/libraries.dateformatter.impl.previews_DateFormatterModeView_3_de.png index aabde63687..86b89bccb8 100644 --- a/screenshots/de/libraries.dateformatter.impl.previews_DateFormatterModeView_3_de.png +++ b/screenshots/de/libraries.dateformatter.impl.previews_DateFormatterModeView_3_de.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:fa7f1637bf0e53951f0d8494fbef3ad735d0eeefb519473d5e86b906b1b19ae4 -size 78277 +oid sha256:d5e6bb5f0c189d6e18efec5c620cfd50ef0810421212966c2dba5c42bf2950b0 +size 78098 diff --git a/screenshots/de/libraries.dateformatter.impl.previews_DateFormatterModeView_4_de.png b/screenshots/de/libraries.dateformatter.impl.previews_DateFormatterModeView_4_de.png index a54be7b245..e79505a6f2 100644 --- a/screenshots/de/libraries.dateformatter.impl.previews_DateFormatterModeView_4_de.png +++ b/screenshots/de/libraries.dateformatter.impl.previews_DateFormatterModeView_4_de.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:a322b5841301e5102ead45a9de8f18e56de6d5bc83bf6ef46ac373cc225b5667 -size 75896 +oid sha256:57fc4f25189522495e5e9d91b01104188e4e3c19a55219587d89887b3dc84aff +size 75700 diff --git a/screenshots/de/libraries.troubleshoot.impl.history_PushHistoryView_Day_0_de.png b/screenshots/de/libraries.troubleshoot.impl.history_PushHistoryView_Day_0_de.png new file mode 100644 index 0000000000..9abe947d27 --- /dev/null +++ b/screenshots/de/libraries.troubleshoot.impl.history_PushHistoryView_Day_0_de.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ae227ffb1062126d376bd128ce8ad8c5619fbdb95674c1c1e36065ca1dd98a44 +size 13159 diff --git a/screenshots/de/libraries.troubleshoot.impl.history_PushHistoryView_Day_1_de.png b/screenshots/de/libraries.troubleshoot.impl.history_PushHistoryView_Day_1_de.png new file mode 100644 index 0000000000..26ef5f7f82 --- /dev/null +++ b/screenshots/de/libraries.troubleshoot.impl.history_PushHistoryView_Day_1_de.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4be3d70c900c8e425267ab125e2391257468767c7eca5e5d4df9b4815524681a +size 45220 diff --git a/screenshots/de/libraries.troubleshoot.impl.history_PushHistoryView_Day_2_de.png b/screenshots/de/libraries.troubleshoot.impl.history_PushHistoryView_Day_2_de.png new file mode 100644 index 0000000000..d784900e3a --- /dev/null +++ b/screenshots/de/libraries.troubleshoot.impl.history_PushHistoryView_Day_2_de.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9a14221fec003c89240a14fb580878c8a826ff24deb1156d0342aceda91b78c0 +size 23391 diff --git a/screenshots/html/data.js b/screenshots/html/data.js index 8947f3de9f..fafea4237c 100644 --- a/screenshots/html/data.js +++ b/screenshots/html/data.js @@ -1,63 +1,70 @@ // 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",20182,], +["features.preferences.impl.about_AboutView_Day_0_en","features.preferences.impl.about_AboutView_Night_0_en",20196,], ["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",20182,], -["features.invite.impl.response_AcceptDeclineInviteView_Day_2_en","features.invite.impl.response_AcceptDeclineInviteView_Night_2_en",20182,], -["features.invite.impl.response_AcceptDeclineInviteView_Day_3_en","features.invite.impl.response_AcceptDeclineInviteView_Night_3_en",20182,], -["features.invite.impl.response_AcceptDeclineInviteView_Day_4_en","features.invite.impl.response_AcceptDeclineInviteView_Night_4_en",20182,], -["features.invite.impl.response_AcceptDeclineInviteView_Day_5_en","features.invite.impl.response_AcceptDeclineInviteView_Night_5_en",20182,], -["features.logout.impl_AccountDeactivationView_Day_0_en","features.logout.impl_AccountDeactivationView_Night_0_en",20182,], -["features.logout.impl_AccountDeactivationView_Day_1_en","features.logout.impl_AccountDeactivationView_Night_1_en",20182,], -["features.logout.impl_AccountDeactivationView_Day_2_en","features.logout.impl_AccountDeactivationView_Night_2_en",20182,], -["features.logout.impl_AccountDeactivationView_Day_3_en","features.logout.impl_AccountDeactivationView_Night_3_en",20182,], -["features.logout.impl_AccountDeactivationView_Day_4_en","features.logout.impl_AccountDeactivationView_Night_4_en",20182,], +["features.invite.impl.response_AcceptDeclineInviteView_Day_1_en","features.invite.impl.response_AcceptDeclineInviteView_Night_1_en",20196,], +["features.invite.impl.response_AcceptDeclineInviteView_Day_2_en","features.invite.impl.response_AcceptDeclineInviteView_Night_2_en",20196,], +["features.invite.impl.response_AcceptDeclineInviteView_Day_3_en","features.invite.impl.response_AcceptDeclineInviteView_Night_3_en",20196,], +["features.invite.impl.response_AcceptDeclineInviteView_Day_4_en","features.invite.impl.response_AcceptDeclineInviteView_Night_4_en",20196,], +["features.invite.impl.response_AcceptDeclineInviteView_Day_5_en","features.invite.impl.response_AcceptDeclineInviteView_Night_5_en",20196,], +["features.logout.impl_AccountDeactivationView_Day_0_en","features.logout.impl_AccountDeactivationView_Night_0_en",20196,], +["features.logout.impl_AccountDeactivationView_Day_1_en","features.logout.impl_AccountDeactivationView_Night_1_en",20196,], +["features.logout.impl_AccountDeactivationView_Day_2_en","features.logout.impl_AccountDeactivationView_Night_2_en",20196,], +["features.logout.impl_AccountDeactivationView_Day_3_en","features.logout.impl_AccountDeactivationView_Night_3_en",20196,], +["features.logout.impl_AccountDeactivationView_Day_4_en","features.logout.impl_AccountDeactivationView_Night_4_en",20196,], ["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",20182,], -["features.messages.impl.actionlist_ActionListViewContent_Day_11_en","features.messages.impl.actionlist_ActionListViewContent_Night_11_en",20182,], -["features.messages.impl.actionlist_ActionListViewContent_Day_12_en","features.messages.impl.actionlist_ActionListViewContent_Night_12_en",20182,], +["features.messages.impl.actionlist_ActionListViewContent_Day_10_en","features.messages.impl.actionlist_ActionListViewContent_Night_10_en",20196,], +["features.messages.impl.actionlist_ActionListViewContent_Day_11_en","features.messages.impl.actionlist_ActionListViewContent_Night_11_en",20196,], +["features.messages.impl.actionlist_ActionListViewContent_Day_12_en","features.messages.impl.actionlist_ActionListViewContent_Night_12_en",20196,], ["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",20182,], -["features.messages.impl.actionlist_ActionListViewContent_Day_3_en","features.messages.impl.actionlist_ActionListViewContent_Night_3_en",20182,], -["features.messages.impl.actionlist_ActionListViewContent_Day_4_en","features.messages.impl.actionlist_ActionListViewContent_Night_4_en",20182,], -["features.messages.impl.actionlist_ActionListViewContent_Day_5_en","features.messages.impl.actionlist_ActionListViewContent_Night_5_en",20182,], -["features.messages.impl.actionlist_ActionListViewContent_Day_6_en","features.messages.impl.actionlist_ActionListViewContent_Night_6_en",20182,], -["features.messages.impl.actionlist_ActionListViewContent_Day_7_en","features.messages.impl.actionlist_ActionListViewContent_Night_7_en",20182,], -["features.messages.impl.actionlist_ActionListViewContent_Day_8_en","features.messages.impl.actionlist_ActionListViewContent_Night_8_en",20182,], -["features.messages.impl.actionlist_ActionListViewContent_Day_9_en","features.messages.impl.actionlist_ActionListViewContent_Night_9_en",20182,], -["features.createroom.impl.addpeople_AddPeopleView_Day_0_en","features.createroom.impl.addpeople_AddPeopleView_Night_0_en",20182,], -["features.createroom.impl.addpeople_AddPeopleView_Day_1_en","features.createroom.impl.addpeople_AddPeopleView_Night_1_en",20182,], -["features.createroom.impl.addpeople_AddPeopleView_Day_2_en","features.createroom.impl.addpeople_AddPeopleView_Night_2_en",20182,], -["features.createroom.impl.addpeople_AddPeopleView_Day_3_en","features.createroom.impl.addpeople_AddPeopleView_Night_3_en",20182,], -["features.preferences.impl.advanced_AdvancedSettingsView_Day_0_en","features.preferences.impl.advanced_AdvancedSettingsView_Night_0_en",20182,], -["features.preferences.impl.advanced_AdvancedSettingsView_Day_1_en","features.preferences.impl.advanced_AdvancedSettingsView_Night_1_en",20182,], -["features.preferences.impl.advanced_AdvancedSettingsView_Day_2_en","features.preferences.impl.advanced_AdvancedSettingsView_Night_2_en",20182,], -["features.preferences.impl.advanced_AdvancedSettingsView_Day_3_en","features.preferences.impl.advanced_AdvancedSettingsView_Night_3_en",20182,], -["features.preferences.impl.advanced_AdvancedSettingsView_Day_4_en","features.preferences.impl.advanced_AdvancedSettingsView_Night_4_en",20182,], -["libraries.designsystem.components.dialogs_AlertDialogContent_Dialogs_en","",20182,], -["libraries.designsystem.components.dialogs_AlertDialog_Day_0_en","libraries.designsystem.components.dialogs_AlertDialog_Night_0_en",20182,], -["features.analytics.impl_AnalyticsOptInView_Day_0_en","features.analytics.impl_AnalyticsOptInView_Night_0_en",20182,], -["features.analytics.impl_AnalyticsOptInView_Day_1_en","features.analytics.impl_AnalyticsOptInView_Night_1_en",20182,], -["features.analytics.api.preferences_AnalyticsPreferencesView_Day_0_en","features.analytics.api.preferences_AnalyticsPreferencesView_Night_0_en",20182,], -["features.analytics.api.preferences_AnalyticsPreferencesView_Day_1_en","features.analytics.api.preferences_AnalyticsPreferencesView_Night_1_en",20182,], -["features.preferences.impl.analytics_AnalyticsSettingsView_Day_0_en","features.preferences.impl.analytics_AnalyticsSettingsView_Night_0_en",20182,], +["features.messages.impl.actionlist_ActionListViewContent_Day_2_en","features.messages.impl.actionlist_ActionListViewContent_Night_2_en",20196,], +["features.messages.impl.actionlist_ActionListViewContent_Day_3_en","features.messages.impl.actionlist_ActionListViewContent_Night_3_en",20196,], +["features.messages.impl.actionlist_ActionListViewContent_Day_4_en","features.messages.impl.actionlist_ActionListViewContent_Night_4_en",20196,], +["features.messages.impl.actionlist_ActionListViewContent_Day_5_en","features.messages.impl.actionlist_ActionListViewContent_Night_5_en",20196,], +["features.messages.impl.actionlist_ActionListViewContent_Day_6_en","features.messages.impl.actionlist_ActionListViewContent_Night_6_en",20196,], +["features.messages.impl.actionlist_ActionListViewContent_Day_7_en","features.messages.impl.actionlist_ActionListViewContent_Night_7_en",20196,], +["features.messages.impl.actionlist_ActionListViewContent_Day_8_en","features.messages.impl.actionlist_ActionListViewContent_Night_8_en",20196,], +["features.messages.impl.actionlist_ActionListViewContent_Day_9_en","features.messages.impl.actionlist_ActionListViewContent_Night_9_en",20196,], +["features.createroom.impl.addpeople_AddPeopleView_Day_0_en","features.createroom.impl.addpeople_AddPeopleView_Night_0_en",20196,], +["features.createroom.impl.addpeople_AddPeopleView_Day_1_en","features.createroom.impl.addpeople_AddPeopleView_Night_1_en",20196,], +["features.createroom.impl.addpeople_AddPeopleView_Day_2_en","features.createroom.impl.addpeople_AddPeopleView_Night_2_en",20196,], +["features.createroom.impl.addpeople_AddPeopleView_Day_3_en","features.createroom.impl.addpeople_AddPeopleView_Night_3_en",20196,], +["features.preferences.impl.advanced_AdvancedSettingsViewDark_0_en","",20199,], +["features.preferences.impl.advanced_AdvancedSettingsViewDark_1_en","",20199,], +["features.preferences.impl.advanced_AdvancedSettingsViewDark_2_en","",20199,], +["features.preferences.impl.advanced_AdvancedSettingsViewDark_3_en","",20199,], +["features.preferences.impl.advanced_AdvancedSettingsViewDark_4_en","",20199,], +["features.preferences.impl.advanced_AdvancedSettingsViewDark_5_en","",20199,], +["features.preferences.impl.advanced_AdvancedSettingsViewLight_0_en","",20199,], +["features.preferences.impl.advanced_AdvancedSettingsViewLight_1_en","",20199,], +["features.preferences.impl.advanced_AdvancedSettingsViewLight_2_en","",20199,], +["features.preferences.impl.advanced_AdvancedSettingsViewLight_3_en","",20199,], +["features.preferences.impl.advanced_AdvancedSettingsViewLight_4_en","",20199,], +["features.preferences.impl.advanced_AdvancedSettingsViewLight_5_en","",20199,], +["libraries.designsystem.components.dialogs_AlertDialogContent_Dialogs_en","",20196,], +["libraries.designsystem.components.dialogs_AlertDialog_Day_0_en","libraries.designsystem.components.dialogs_AlertDialog_Night_0_en",20196,], +["features.analytics.impl_AnalyticsOptInView_Day_0_en","features.analytics.impl_AnalyticsOptInView_Night_0_en",20196,], +["features.analytics.impl_AnalyticsOptInView_Day_1_en","features.analytics.impl_AnalyticsOptInView_Night_1_en",20196,], +["features.analytics.api.preferences_AnalyticsPreferencesView_Day_0_en","features.analytics.api.preferences_AnalyticsPreferencesView_Night_0_en",20196,], +["features.analytics.api.preferences_AnalyticsPreferencesView_Day_1_en","features.analytics.api.preferences_AnalyticsPreferencesView_Night_1_en",20196,], +["features.preferences.impl.analytics_AnalyticsSettingsView_Day_0_en","features.preferences.impl.analytics_AnalyticsSettingsView_Night_0_en",20196,], ["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",20182,], +["services.apperror.impl_AppErrorView_Day_0_en","services.apperror.impl_AppErrorView_Night_0_en",20196,], ["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",20182,], +["libraries.designsystem.components.async_AsyncActionView_Day_1_en","libraries.designsystem.components.async_AsyncActionView_Night_1_en",20196,], ["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",20182,], +["libraries.designsystem.components.async_AsyncActionView_Day_3_en","libraries.designsystem.components.async_AsyncActionView_Night_3_en",20196,], ["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",20182,], +["libraries.designsystem.components.async_AsyncFailure_Day_0_en","libraries.designsystem.components.async_AsyncFailure_Night_0_en",20196,], ["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",20182,], +["features.messages.impl.messagecomposer_AttachmentSourcePickerMenu_Day_0_en","features.messages.impl.messagecomposer_AttachmentSourcePickerMenu_Night_0_en",20196,], ["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,], @@ -67,18 +74,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","",20182,], -["features.messages.impl.attachments.preview_AttachmentsView_1_en","",20182,], -["features.messages.impl.attachments.preview_AttachmentsView_2_en","",20182,], -["features.messages.impl.attachments.preview_AttachmentsView_3_en","",20182,], -["features.messages.impl.attachments.preview_AttachmentsView_4_en","",20182,], -["features.messages.impl.attachments.preview_AttachmentsView_5_en","",20182,], +["features.messages.impl.attachments.preview_AttachmentsView_0_en","",20196,], +["features.messages.impl.attachments.preview_AttachmentsView_1_en","",20196,], +["features.messages.impl.attachments.preview_AttachmentsView_2_en","",20196,], +["features.messages.impl.attachments.preview_AttachmentsView_3_en","",20196,], +["features.messages.impl.attachments.preview_AttachmentsView_4_en","",20196,], +["features.messages.impl.attachments.preview_AttachmentsView_5_en","",20196,], ["features.messages.impl.attachments.preview_AttachmentsView_6_en","",0,], -["features.messages.impl.attachments.preview_AttachmentsView_7_en","",20182,], +["features.messages.impl.attachments.preview_AttachmentsView_7_en","",20196,], ["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",20182,], +["libraries.matrix.ui.components_AvatarActionBottomSheet_Day_0_en","libraries.matrix.ui.components_AvatarActionBottomSheet_Night_0_en",20196,], ["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,], @@ -186,13 +193,13 @@ export const screenshots = [ ["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",20182,], -["features.preferences.impl.blockedusers_BlockedUsersView_Day_1_en","features.preferences.impl.blockedusers_BlockedUsersView_Night_1_en",20182,], -["features.preferences.impl.blockedusers_BlockedUsersView_Day_2_en","features.preferences.impl.blockedusers_BlockedUsersView_Night_2_en",20182,], -["features.preferences.impl.blockedusers_BlockedUsersView_Day_3_en","features.preferences.impl.blockedusers_BlockedUsersView_Night_3_en",20182,], -["features.preferences.impl.blockedusers_BlockedUsersView_Day_4_en","features.preferences.impl.blockedusers_BlockedUsersView_Night_4_en",20182,], -["features.preferences.impl.blockedusers_BlockedUsersView_Day_5_en","features.preferences.impl.blockedusers_BlockedUsersView_Night_5_en",20182,], -["features.preferences.impl.blockedusers_BlockedUsersView_Day_6_en","features.preferences.impl.blockedusers_BlockedUsersView_Night_6_en",20182,], +["features.preferences.impl.blockedusers_BlockedUsersView_Day_0_en","features.preferences.impl.blockedusers_BlockedUsersView_Night_0_en",20196,], +["features.preferences.impl.blockedusers_BlockedUsersView_Day_1_en","features.preferences.impl.blockedusers_BlockedUsersView_Night_1_en",20196,], +["features.preferences.impl.blockedusers_BlockedUsersView_Day_2_en","features.preferences.impl.blockedusers_BlockedUsersView_Night_2_en",20196,], +["features.preferences.impl.blockedusers_BlockedUsersView_Day_3_en","features.preferences.impl.blockedusers_BlockedUsersView_Night_3_en",20196,], +["features.preferences.impl.blockedusers_BlockedUsersView_Day_4_en","features.preferences.impl.blockedusers_BlockedUsersView_Night_4_en",20196,], +["features.preferences.impl.blockedusers_BlockedUsersView_Day_5_en","features.preferences.impl.blockedusers_BlockedUsersView_Night_5_en",20196,], +["features.preferences.impl.blockedusers_BlockedUsersView_Day_6_en","features.preferences.impl.blockedusers_BlockedUsersView_Night_6_en",20196,], ["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,], @@ -203,130 +210,130 @@ 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",20182,], -["features.rageshake.impl.bugreport_BugReportView_Day_1_en","features.rageshake.impl.bugreport_BugReportView_Night_1_en",20182,], -["features.rageshake.impl.bugreport_BugReportView_Day_2_en","features.rageshake.impl.bugreport_BugReportView_Night_2_en",20182,], -["features.rageshake.impl.bugreport_BugReportView_Day_3_en","features.rageshake.impl.bugreport_BugReportView_Night_3_en",20182,], -["features.rageshake.impl.bugreport_BugReportView_Day_4_en","features.rageshake.impl.bugreport_BugReportView_Night_4_en",20182,], +["features.rageshake.impl.bugreport_BugReportView_Day_0_en","features.rageshake.impl.bugreport_BugReportView_Night_0_en",20196,], +["features.rageshake.impl.bugreport_BugReportView_Day_1_en","features.rageshake.impl.bugreport_BugReportView_Night_1_en",20196,], +["features.rageshake.impl.bugreport_BugReportView_Day_2_en","features.rageshake.impl.bugreport_BugReportView_Night_2_en",20196,], +["features.rageshake.impl.bugreport_BugReportView_Day_3_en","features.rageshake.impl.bugreport_BugReportView_Night_3_en",20196,], +["features.rageshake.impl.bugreport_BugReportView_Day_4_en","features.rageshake.impl.bugreport_BugReportView_Night_4_en",20196,], ["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",20182,], -["features.messages.impl.timeline.components_CallMenuItem_Day_3_en","features.messages.impl.timeline.components_CallMenuItem_Night_3_en",20182,], +["features.messages.impl.timeline.components_CallMenuItem_Day_2_en","features.messages.impl.timeline.components_CallMenuItem_Night_2_en",20196,], +["features.messages.impl.timeline.components_CallMenuItem_Day_3_en","features.messages.impl.timeline.components_CallMenuItem_Night_3_en",20196,], ["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",20182,], -["features.call.impl.ui_CallScreenView_Day_2_en","features.call.impl.ui_CallScreenView_Night_2_en",20182,], -["features.call.impl.ui_CallScreenView_Day_3_en","features.call.impl.ui_CallScreenView_Night_3_en",20182,], -["libraries.textcomposer_CaptionWarningBottomSheet_Day_0_en","libraries.textcomposer_CaptionWarningBottomSheet_Night_0_en",20182,], -["features.login.impl.screens.changeaccountprovider_ChangeAccountProviderView_Day_0_en","features.login.impl.screens.changeaccountprovider_ChangeAccountProviderView_Night_0_en",20182,], -["features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Day_0_en","features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Night_0_en",20182,], -["features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Day_10_en","features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Night_10_en",20182,], -["features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Day_1_en","features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Night_1_en",20182,], -["features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Day_2_en","features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Night_2_en",20182,], -["features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Day_3_en","features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Night_3_en",20182,], -["features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Day_4_en","features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Night_4_en",20182,], -["features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Day_5_en","features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Night_5_en",20182,], -["features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Day_6_en","features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Night_6_en",20182,], -["features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Day_7_en","features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Night_7_en",20182,], -["features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Day_8_en","features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Night_8_en",20182,], -["features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Day_9_en","features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Night_9_en",20182,], -["features.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_Day_0_en","features.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_Night_0_en",20182,], -["features.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_Day_1_en","features.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_Night_1_en",20182,], -["features.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_Day_2_en","features.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_Night_2_en",20182,], -["features.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_Day_3_en","features.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_Night_3_en",20182,], -["features.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_Day_4_en","features.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_Night_4_en",20182,], -["features.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_Day_5_en","features.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_Night_5_en",20182,], -["features.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_Day_6_en","features.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_Night_6_en",20182,], +["features.call.impl.ui_CallScreenView_Day_1_en","features.call.impl.ui_CallScreenView_Night_1_en",20196,], +["features.call.impl.ui_CallScreenView_Day_2_en","features.call.impl.ui_CallScreenView_Night_2_en",20196,], +["features.call.impl.ui_CallScreenView_Day_3_en","features.call.impl.ui_CallScreenView_Night_3_en",20196,], +["libraries.textcomposer_CaptionWarningBottomSheet_Day_0_en","libraries.textcomposer_CaptionWarningBottomSheet_Night_0_en",20196,], +["features.login.impl.screens.changeaccountprovider_ChangeAccountProviderView_Day_0_en","features.login.impl.screens.changeaccountprovider_ChangeAccountProviderView_Night_0_en",20196,], +["features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Day_0_en","features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Night_0_en",20196,], +["features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Day_10_en","features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Night_10_en",20196,], +["features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Day_1_en","features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Night_1_en",20196,], +["features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Day_2_en","features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Night_2_en",20196,], +["features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Day_3_en","features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Night_3_en",20196,], +["features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Day_4_en","features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Night_4_en",20196,], +["features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Day_5_en","features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Night_5_en",20196,], +["features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Day_6_en","features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Night_6_en",20196,], +["features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Day_7_en","features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Night_7_en",20196,], +["features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Day_8_en","features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Night_8_en",20196,], +["features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Day_9_en","features.roomdetails.impl.rolesandpermissions.changeroles_ChangeRolesView_Night_9_en",20196,], +["features.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_Day_0_en","features.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_Night_0_en",20196,], +["features.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_Day_1_en","features.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_Night_1_en",20196,], +["features.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_Day_2_en","features.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_Night_2_en",20196,], +["features.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_Day_3_en","features.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_Night_3_en",20196,], +["features.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_Day_4_en","features.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_Night_4_en",20196,], +["features.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_Day_5_en","features.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_Night_5_en",20196,], +["features.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_Day_6_en","features.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_Night_6_en",20196,], ["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",20182,], -["features.login.impl.changeserver_ChangeServerView_Day_2_en","features.login.impl.changeserver_ChangeServerView_Night_2_en",20182,], +["features.login.impl.changeserver_ChangeServerView_Day_1_en","features.login.impl.changeserver_ChangeServerView_Night_1_en",20196,], +["features.login.impl.changeserver_ChangeServerView_Day_2_en","features.login.impl.changeserver_ChangeServerView_Night_2_en",20196,], ["libraries.matrix.ui.components_CheckableResolvedUserRow_en","",0,], -["libraries.matrix.ui.components_CheckableUnresolvedUserRow_en","",20182,], +["libraries.matrix.ui.components_CheckableUnresolvedUserRow_en","",20196,], ["libraries.designsystem.theme.components_Checkboxes_Toggles_en","",0,], -["features.ftue.impl.sessionverification.choosemode_ChooseSelfVerificationModeView_Day_0_en","features.ftue.impl.sessionverification.choosemode_ChooseSelfVerificationModeView_Night_0_en",20182,], -["features.ftue.impl.sessionverification.choosemode_ChooseSelfVerificationModeView_Day_1_en","features.ftue.impl.sessionverification.choosemode_ChooseSelfVerificationModeView_Night_1_en",20182,], -["features.ftue.impl.sessionverification.choosemode_ChooseSelfVerificationModeView_Day_2_en","features.ftue.impl.sessionverification.choosemode_ChooseSelfVerificationModeView_Night_2_en",20182,], -["features.ftue.impl.sessionverification.choosemode_ChooseSelfVerificationModeView_Day_3_en","features.ftue.impl.sessionverification.choosemode_ChooseSelfVerificationModeView_Night_3_en",20182,], +["features.ftue.impl.sessionverification.choosemode_ChooseSelfVerificationModeView_Day_0_en","features.ftue.impl.sessionverification.choosemode_ChooseSelfVerificationModeView_Night_0_en",20196,], +["features.ftue.impl.sessionverification.choosemode_ChooseSelfVerificationModeView_Day_1_en","features.ftue.impl.sessionverification.choosemode_ChooseSelfVerificationModeView_Night_1_en",20196,], +["features.ftue.impl.sessionverification.choosemode_ChooseSelfVerificationModeView_Day_2_en","features.ftue.impl.sessionverification.choosemode_ChooseSelfVerificationModeView_Night_2_en",20196,], +["features.ftue.impl.sessionverification.choosemode_ChooseSelfVerificationModeView_Day_3_en","features.ftue.impl.sessionverification.choosemode_ChooseSelfVerificationModeView_Night_3_en",20196,], ["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",20182,], -["libraries.designsystem.atomic.molecules_ComposerAlertMolecule_Day_1_en","libraries.designsystem.atomic.molecules_ComposerAlertMolecule_Night_1_en",20182,], -["libraries.textcomposer_ComposerModeView_Day_0_en","libraries.textcomposer_ComposerModeView_Night_0_en",20182,], +["libraries.designsystem.atomic.molecules_ComposerAlertMolecule_Day_0_en","libraries.designsystem.atomic.molecules_ComposerAlertMolecule_Night_0_en",20196,], +["libraries.designsystem.atomic.molecules_ComposerAlertMolecule_Day_1_en","libraries.designsystem.atomic.molecules_ComposerAlertMolecule_Night_1_en",20196,], +["libraries.textcomposer_ComposerModeView_Day_0_en","libraries.textcomposer_ComposerModeView_Night_0_en",20196,], ["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.designsystem.components.avatar_CompositeAvatar_Avatars_en","",0,], -["features.createroom.impl.configureroom_ConfigureRoomViewDark_0_en","",20182,], -["features.createroom.impl.configureroom_ConfigureRoomViewDark_1_en","",20182,], -["features.createroom.impl.configureroom_ConfigureRoomViewDark_2_en","",20182,], -["features.createroom.impl.configureroom_ConfigureRoomViewDark_3_en","",20182,], -["features.createroom.impl.configureroom_ConfigureRoomViewDark_4_en","",20182,], -["features.createroom.impl.configureroom_ConfigureRoomViewDark_5_en","",20182,], -["features.createroom.impl.configureroom_ConfigureRoomViewLight_0_en","",20182,], -["features.createroom.impl.configureroom_ConfigureRoomViewLight_1_en","",20182,], -["features.createroom.impl.configureroom_ConfigureRoomViewLight_2_en","",20182,], -["features.createroom.impl.configureroom_ConfigureRoomViewLight_3_en","",20182,], -["features.createroom.impl.configureroom_ConfigureRoomViewLight_4_en","",20182,], -["features.createroom.impl.configureroom_ConfigureRoomViewLight_5_en","",20182,], -["features.login.impl.screens.confirmaccountprovider_ConfirmAccountProviderView_Day_0_en","features.login.impl.screens.confirmaccountprovider_ConfirmAccountProviderView_Night_0_en",20182,], -["features.login.impl.screens.confirmaccountprovider_ConfirmAccountProviderView_Day_1_en","features.login.impl.screens.confirmaccountprovider_ConfirmAccountProviderView_Night_1_en",20182,], -["features.login.impl.screens.confirmaccountprovider_ConfirmAccountProviderView_Day_2_en","features.login.impl.screens.confirmaccountprovider_ConfirmAccountProviderView_Night_2_en",20182,], -["features.roomlist.impl.components_ConfirmRecoveryKeyBanner_Day_0_en","features.roomlist.impl.components_ConfirmRecoveryKeyBanner_Night_0_en",20182,], +["features.createroom.impl.configureroom_ConfigureRoomViewDark_0_en","",20196,], +["features.createroom.impl.configureroom_ConfigureRoomViewDark_1_en","",20196,], +["features.createroom.impl.configureroom_ConfigureRoomViewDark_2_en","",20196,], +["features.createroom.impl.configureroom_ConfigureRoomViewDark_3_en","",20196,], +["features.createroom.impl.configureroom_ConfigureRoomViewDark_4_en","",20196,], +["features.createroom.impl.configureroom_ConfigureRoomViewDark_5_en","",20196,], +["features.createroom.impl.configureroom_ConfigureRoomViewLight_0_en","",20196,], +["features.createroom.impl.configureroom_ConfigureRoomViewLight_1_en","",20196,], +["features.createroom.impl.configureroom_ConfigureRoomViewLight_2_en","",20196,], +["features.createroom.impl.configureroom_ConfigureRoomViewLight_3_en","",20196,], +["features.createroom.impl.configureroom_ConfigureRoomViewLight_4_en","",20196,], +["features.createroom.impl.configureroom_ConfigureRoomViewLight_5_en","",20196,], +["features.login.impl.screens.confirmaccountprovider_ConfirmAccountProviderView_Day_0_en","features.login.impl.screens.confirmaccountprovider_ConfirmAccountProviderView_Night_0_en",20196,], +["features.login.impl.screens.confirmaccountprovider_ConfirmAccountProviderView_Day_1_en","features.login.impl.screens.confirmaccountprovider_ConfirmAccountProviderView_Night_1_en",20196,], +["features.login.impl.screens.confirmaccountprovider_ConfirmAccountProviderView_Day_2_en","features.login.impl.screens.confirmaccountprovider_ConfirmAccountProviderView_Night_2_en",20196,], +["features.roomlist.impl.components_ConfirmRecoveryKeyBanner_Day_0_en","features.roomlist.impl.components_ConfirmRecoveryKeyBanner_Night_0_en",20196,], ["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",20182,], -["features.login.impl.screens.createaccount_CreateAccountView_Day_0_en","features.login.impl.screens.createaccount_CreateAccountView_Night_0_en",20182,], -["features.login.impl.screens.createaccount_CreateAccountView_Day_1_en","features.login.impl.screens.createaccount_CreateAccountView_Night_1_en",20182,], -["features.login.impl.screens.createaccount_CreateAccountView_Day_2_en","features.login.impl.screens.createaccount_CreateAccountView_Night_2_en",20182,], -["features.login.impl.screens.createaccount_CreateAccountView_Day_3_en","features.login.impl.screens.createaccount_CreateAccountView_Night_3_en",20182,], -["libraries.matrix.ui.components_CreateDmConfirmationBottomSheet_Day_0_en","libraries.matrix.ui.components_CreateDmConfirmationBottomSheet_Night_0_en",20182,], -["libraries.matrix.ui.components_CreateDmConfirmationBottomSheet_Day_1_en","libraries.matrix.ui.components_CreateDmConfirmationBottomSheet_Night_1_en",20182,], -["features.poll.impl.create_CreatePollView_Day_0_en","features.poll.impl.create_CreatePollView_Night_0_en",20182,], -["features.poll.impl.create_CreatePollView_Day_1_en","features.poll.impl.create_CreatePollView_Night_1_en",20182,], -["features.poll.impl.create_CreatePollView_Day_2_en","features.poll.impl.create_CreatePollView_Night_2_en",20182,], -["features.poll.impl.create_CreatePollView_Day_3_en","features.poll.impl.create_CreatePollView_Night_3_en",20182,], -["features.poll.impl.create_CreatePollView_Day_4_en","features.poll.impl.create_CreatePollView_Night_4_en",20182,], -["features.poll.impl.create_CreatePollView_Day_5_en","features.poll.impl.create_CreatePollView_Night_5_en",20182,], -["features.poll.impl.create_CreatePollView_Day_6_en","features.poll.impl.create_CreatePollView_Night_6_en",20182,], -["features.poll.impl.create_CreatePollView_Day_7_en","features.poll.impl.create_CreatePollView_Night_7_en",20182,], -["features.createroom.impl.root_CreateRoomRootView_Day_0_en","features.createroom.impl.root_CreateRoomRootView_Night_0_en",20182,], -["features.createroom.impl.root_CreateRoomRootView_Day_1_en","features.createroom.impl.root_CreateRoomRootView_Night_1_en",20182,], -["features.createroom.impl.root_CreateRoomRootView_Day_2_en","features.createroom.impl.root_CreateRoomRootView_Night_2_en",20182,], -["features.createroom.impl.root_CreateRoomRootView_Day_3_en","features.createroom.impl.root_CreateRoomRootView_Night_3_en",20182,], -["features.createroom.impl.root_CreateRoomRootView_Day_4_en","features.createroom.impl.root_CreateRoomRootView_Night_4_en",20182,], -["features.createroom.impl.root_CreateRoomRootView_Day_5_en","features.createroom.impl.root_CreateRoomRootView_Night_5_en",20182,], -["libraries.dateformatter.impl.previews_DateFormatterModeView_0_en","",20182,], -["libraries.dateformatter.impl.previews_DateFormatterModeView_1_en","",20182,], -["libraries.dateformatter.impl.previews_DateFormatterModeView_2_en","",20182,], -["libraries.dateformatter.impl.previews_DateFormatterModeView_3_en","",20182,], -["libraries.dateformatter.impl.previews_DateFormatterModeView_4_en","",20182,], +["features.rageshake.api.crash_CrashDetectionView_Day_0_en","features.rageshake.api.crash_CrashDetectionView_Night_0_en",20196,], +["features.login.impl.screens.createaccount_CreateAccountView_Day_0_en","features.login.impl.screens.createaccount_CreateAccountView_Night_0_en",20196,], +["features.login.impl.screens.createaccount_CreateAccountView_Day_1_en","features.login.impl.screens.createaccount_CreateAccountView_Night_1_en",20196,], +["features.login.impl.screens.createaccount_CreateAccountView_Day_2_en","features.login.impl.screens.createaccount_CreateAccountView_Night_2_en",20196,], +["features.login.impl.screens.createaccount_CreateAccountView_Day_3_en","features.login.impl.screens.createaccount_CreateAccountView_Night_3_en",20196,], +["libraries.matrix.ui.components_CreateDmConfirmationBottomSheet_Day_0_en","libraries.matrix.ui.components_CreateDmConfirmationBottomSheet_Night_0_en",20196,], +["libraries.matrix.ui.components_CreateDmConfirmationBottomSheet_Day_1_en","libraries.matrix.ui.components_CreateDmConfirmationBottomSheet_Night_1_en",20196,], +["features.poll.impl.create_CreatePollView_Day_0_en","features.poll.impl.create_CreatePollView_Night_0_en",20196,], +["features.poll.impl.create_CreatePollView_Day_1_en","features.poll.impl.create_CreatePollView_Night_1_en",20196,], +["features.poll.impl.create_CreatePollView_Day_2_en","features.poll.impl.create_CreatePollView_Night_2_en",20196,], +["features.poll.impl.create_CreatePollView_Day_3_en","features.poll.impl.create_CreatePollView_Night_3_en",20196,], +["features.poll.impl.create_CreatePollView_Day_4_en","features.poll.impl.create_CreatePollView_Night_4_en",20196,], +["features.poll.impl.create_CreatePollView_Day_5_en","features.poll.impl.create_CreatePollView_Night_5_en",20196,], +["features.poll.impl.create_CreatePollView_Day_6_en","features.poll.impl.create_CreatePollView_Night_6_en",20196,], +["features.poll.impl.create_CreatePollView_Day_7_en","features.poll.impl.create_CreatePollView_Night_7_en",20196,], +["features.createroom.impl.root_CreateRoomRootView_Day_0_en","features.createroom.impl.root_CreateRoomRootView_Night_0_en",20196,], +["features.createroom.impl.root_CreateRoomRootView_Day_1_en","features.createroom.impl.root_CreateRoomRootView_Night_1_en",20196,], +["features.createroom.impl.root_CreateRoomRootView_Day_2_en","features.createroom.impl.root_CreateRoomRootView_Night_2_en",20196,], +["features.createroom.impl.root_CreateRoomRootView_Day_3_en","features.createroom.impl.root_CreateRoomRootView_Night_3_en",20196,], +["features.createroom.impl.root_CreateRoomRootView_Day_4_en","features.createroom.impl.root_CreateRoomRootView_Night_4_en",20196,], +["features.createroom.impl.root_CreateRoomRootView_Day_5_en","features.createroom.impl.root_CreateRoomRootView_Night_5_en",20196,], +["libraries.dateformatter.impl.previews_DateFormatterModeView_0_en","",20196,], +["libraries.dateformatter.impl.previews_DateFormatterModeView_1_en","",20196,], +["libraries.dateformatter.impl.previews_DateFormatterModeView_2_en","",20196,], +["libraries.dateformatter.impl.previews_DateFormatterModeView_3_en","",20196,], +["libraries.dateformatter.impl.previews_DateFormatterModeView_4_en","",20196,], ["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","",20182,], -["libraries.designsystem.theme.components.previews_DatePickerLight_DateTime_pickers_en","",20182,], +["libraries.designsystem.theme.components.previews_DatePickerDark_DateTime_pickers_en","",20196,], +["libraries.designsystem.theme.components.previews_DatePickerLight_DateTime_pickers_en","",20196,], ["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",20182,], -["features.logout.impl.direct_DefaultDirectLogoutView_Day_2_en","features.logout.impl.direct_DefaultDirectLogoutView_Night_2_en",20182,], -["features.logout.impl.direct_DefaultDirectLogoutView_Day_3_en","features.logout.impl.direct_DefaultDirectLogoutView_Night_3_en",20182,], +["features.logout.impl.direct_DefaultDirectLogoutView_Day_1_en","features.logout.impl.direct_DefaultDirectLogoutView_Night_1_en",20196,], +["features.logout.impl.direct_DefaultDirectLogoutView_Day_2_en","features.logout.impl.direct_DefaultDirectLogoutView_Night_2_en",20196,], +["features.logout.impl.direct_DefaultDirectLogoutView_Day_3_en","features.logout.impl.direct_DefaultDirectLogoutView_Night_3_en",20196,], ["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",20182,], -["features.roomlist.impl.components_DefaultRoomListTopBarWithIndicator_Day_0_en","features.roomlist.impl.components_DefaultRoomListTopBarWithIndicator_Night_0_en",20182,], -["features.roomlist.impl.components_DefaultRoomListTopBar_Day_0_en","features.roomlist.impl.components_DefaultRoomListTopBar_Night_0_en",20182,], +["features.preferences.impl.notifications.edit_DefaultNotificationSettingOption_Day_0_en","features.preferences.impl.notifications.edit_DefaultNotificationSettingOption_Night_0_en",20196,], +["features.roomlist.impl.components_DefaultRoomListTopBarWithIndicator_Day_0_en","features.roomlist.impl.components_DefaultRoomListTopBarWithIndicator_Night_0_en",20196,], +["features.roomlist.impl.components_DefaultRoomListTopBar_Day_0_en","features.roomlist.impl.components_DefaultRoomListTopBar_Night_0_en",20196,], ["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",20182,], -["features.licenses.impl.list_DependencyLicensesListView_Day_1_en","features.licenses.impl.list_DependencyLicensesListView_Night_1_en",20182,], -["features.licenses.impl.list_DependencyLicensesListView_Day_2_en","features.licenses.impl.list_DependencyLicensesListView_Night_2_en",20182,], -["features.licenses.impl.list_DependencyLicensesListView_Day_3_en","features.licenses.impl.list_DependencyLicensesListView_Night_3_en",20182,], -["features.preferences.impl.developer_DeveloperSettingsView_Day_0_en","features.preferences.impl.developer_DeveloperSettingsView_Night_0_en",20182,], -["features.preferences.impl.developer_DeveloperSettingsView_Day_1_en","features.preferences.impl.developer_DeveloperSettingsView_Night_1_en",20182,], -["features.preferences.impl.developer_DeveloperSettingsView_Day_2_en","features.preferences.impl.developer_DeveloperSettingsView_Night_2_en",20182,], +["features.licenses.impl.list_DependencyLicensesListView_Day_0_en","features.licenses.impl.list_DependencyLicensesListView_Night_0_en",20196,], +["features.licenses.impl.list_DependencyLicensesListView_Day_1_en","features.licenses.impl.list_DependencyLicensesListView_Night_1_en",20196,], +["features.licenses.impl.list_DependencyLicensesListView_Day_2_en","features.licenses.impl.list_DependencyLicensesListView_Night_2_en",20196,], +["features.licenses.impl.list_DependencyLicensesListView_Day_3_en","features.licenses.impl.list_DependencyLicensesListView_Night_3_en",20196,], +["features.preferences.impl.developer_DeveloperSettingsView_Day_0_en","features.preferences.impl.developer_DeveloperSettingsView_Night_0_en",20196,], +["features.preferences.impl.developer_DeveloperSettingsView_Day_1_en","features.preferences.impl.developer_DeveloperSettingsView_Night_1_en",20196,], +["features.preferences.impl.developer_DeveloperSettingsView_Day_2_en","features.preferences.impl.developer_DeveloperSettingsView_Night_2_en",20196,], ["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,], @@ -339,17 +346,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",20182,], -["features.preferences.impl.notifications.edit_EditDefaultNotificationSettingView_Day_1_en","features.preferences.impl.notifications.edit_EditDefaultNotificationSettingView_Night_1_en",20182,], -["features.preferences.impl.notifications.edit_EditDefaultNotificationSettingView_Day_2_en","features.preferences.impl.notifications.edit_EditDefaultNotificationSettingView_Night_2_en",20182,], -["features.preferences.impl.notifications.edit_EditDefaultNotificationSettingView_Day_3_en","features.preferences.impl.notifications.edit_EditDefaultNotificationSettingView_Night_3_en",20182,], -["features.preferences.impl.notifications.edit_EditDefaultNotificationSettingView_Day_4_en","features.preferences.impl.notifications.edit_EditDefaultNotificationSettingView_Night_4_en",20182,], -["features.roomdetails.impl.securityandprivacy.editroomaddress_EditRoomAddressView_Day_0_en","features.roomdetails.impl.securityandprivacy.editroomaddress_EditRoomAddressView_Night_0_en",20182,], -["features.roomdetails.impl.securityandprivacy.editroomaddress_EditRoomAddressView_Day_1_en","features.roomdetails.impl.securityandprivacy.editroomaddress_EditRoomAddressView_Night_1_en",20182,], -["features.roomdetails.impl.securityandprivacy.editroomaddress_EditRoomAddressView_Day_2_en","features.roomdetails.impl.securityandprivacy.editroomaddress_EditRoomAddressView_Night_2_en",20182,], -["features.roomdetails.impl.securityandprivacy.editroomaddress_EditRoomAddressView_Day_3_en","features.roomdetails.impl.securityandprivacy.editroomaddress_EditRoomAddressView_Night_3_en",20182,], -["features.roomdetails.impl.securityandprivacy.editroomaddress_EditRoomAddressView_Day_4_en","features.roomdetails.impl.securityandprivacy.editroomaddress_EditRoomAddressView_Night_4_en",20182,], -["features.preferences.impl.user.editprofile_EditUserProfileView_Day_0_en","features.preferences.impl.user.editprofile_EditUserProfileView_Night_0_en",20182,], +["features.preferences.impl.notifications.edit_EditDefaultNotificationSettingView_Day_0_en","features.preferences.impl.notifications.edit_EditDefaultNotificationSettingView_Night_0_en",20196,], +["features.preferences.impl.notifications.edit_EditDefaultNotificationSettingView_Day_1_en","features.preferences.impl.notifications.edit_EditDefaultNotificationSettingView_Night_1_en",20196,], +["features.preferences.impl.notifications.edit_EditDefaultNotificationSettingView_Day_2_en","features.preferences.impl.notifications.edit_EditDefaultNotificationSettingView_Night_2_en",20196,], +["features.preferences.impl.notifications.edit_EditDefaultNotificationSettingView_Day_3_en","features.preferences.impl.notifications.edit_EditDefaultNotificationSettingView_Night_3_en",20196,], +["features.preferences.impl.notifications.edit_EditDefaultNotificationSettingView_Day_4_en","features.preferences.impl.notifications.edit_EditDefaultNotificationSettingView_Night_4_en",20196,], +["features.roomdetails.impl.securityandprivacy.editroomaddress_EditRoomAddressView_Day_0_en","features.roomdetails.impl.securityandprivacy.editroomaddress_EditRoomAddressView_Night_0_en",20196,], +["features.roomdetails.impl.securityandprivacy.editroomaddress_EditRoomAddressView_Day_1_en","features.roomdetails.impl.securityandprivacy.editroomaddress_EditRoomAddressView_Night_1_en",20196,], +["features.roomdetails.impl.securityandprivacy.editroomaddress_EditRoomAddressView_Day_2_en","features.roomdetails.impl.securityandprivacy.editroomaddress_EditRoomAddressView_Night_2_en",20196,], +["features.roomdetails.impl.securityandprivacy.editroomaddress_EditRoomAddressView_Day_3_en","features.roomdetails.impl.securityandprivacy.editroomaddress_EditRoomAddressView_Night_3_en",20196,], +["features.roomdetails.impl.securityandprivacy.editroomaddress_EditRoomAddressView_Day_4_en","features.roomdetails.impl.securityandprivacy.editroomaddress_EditRoomAddressView_Night_4_en",20196,], +["features.preferences.impl.user.editprofile_EditUserProfileView_Day_0_en","features.preferences.impl.user.editprofile_EditUserProfileView_Night_0_en",20196,], ["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,], @@ -359,9 +366,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","",20182,], -["libraries.designsystem.components.dialogs_ErrorDialogWithDoNotShowAgain_Day_0_en","libraries.designsystem.components.dialogs_ErrorDialogWithDoNotShowAgain_Night_0_en",20182,], -["libraries.designsystem.components.dialogs_ErrorDialog_Day_0_en","libraries.designsystem.components.dialogs_ErrorDialog_Night_0_en",20182,], +["libraries.designsystem.components.dialogs_ErrorDialogContent_Dialogs_en","",20196,], +["libraries.designsystem.components.dialogs_ErrorDialogWithDoNotShowAgain_Day_0_en","libraries.designsystem.components.dialogs_ErrorDialogWithDoNotShowAgain_Night_0_en",20196,], +["libraries.designsystem.components.dialogs_ErrorDialog_Day_0_en","libraries.designsystem.components.dialogs_ErrorDialog_Night_0_en",20196,], ["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,], @@ -379,16 +386,16 @@ 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",20182,], -["features.messages.impl.timeline.focus_FocusRequestStateView_Day_2_en","features.messages.impl.timeline.focus_FocusRequestStateView_Night_2_en",20182,], -["features.messages.impl.timeline.focus_FocusRequestStateView_Day_3_en","features.messages.impl.timeline.focus_FocusRequestStateView_Night_3_en",20182,], +["features.messages.impl.timeline.focus_FocusRequestStateView_Day_1_en","features.messages.impl.timeline.focus_FocusRequestStateView_Night_1_en",20196,], +["features.messages.impl.timeline.focus_FocusRequestStateView_Day_2_en","features.messages.impl.timeline.focus_FocusRequestStateView_Night_2_en",20196,], +["features.messages.impl.timeline.focus_FocusRequestStateView_Day_3_en","features.messages.impl.timeline.focus_FocusRequestStateView_Night_3_en",20196,], ["features.messages.impl.timeline.components_FocusedEvent_Day_0_en","features.messages.impl.timeline.components_FocusedEvent_Night_0_en",0,], ["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",20182,], -["features.roomlist.impl.components_FullScreenIntentPermissionBanner_Day_0_en","features.roomlist.impl.components_FullScreenIntentPermissionBanner_Night_0_en",20182,], +["features.messages.impl.forward_ForwardMessagesView_Day_3_en","features.messages.impl.forward_ForwardMessagesView_Night_3_en",20196,], +["features.roomlist.impl.components_FullScreenIntentPermissionBanner_Day_0_en","features.roomlist.impl.components_FullScreenIntentPermissionBanner_Night_0_en",20196,], ["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,], @@ -412,8 +419,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",20182,], -["features.messages.impl.crypto.identity_IdentityChangeStateView_Day_2_en","features.messages.impl.crypto.identity_IdentityChangeStateView_Night_2_en",20182,], +["features.messages.impl.crypto.identity_IdentityChangeStateView_Day_1_en","features.messages.impl.crypto.identity_IdentityChangeStateView_Night_1_en",20196,], +["features.messages.impl.crypto.identity_IdentityChangeStateView_Day_2_en","features.messages.impl.crypto.identity_IdentityChangeStateView_Night_2_en",20196,], ["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,], @@ -421,84 +428,84 @@ 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",20182,], +["libraries.matrix.ui.messages.reply_InReplyToView_Day_4_en","libraries.matrix.ui.messages.reply_InReplyToView_Night_4_en",20196,], ["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",20182,], +["libraries.matrix.ui.messages.reply_InReplyToView_Day_8_en","libraries.matrix.ui.messages.reply_InReplyToView_Night_8_en",20196,], ["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",20182,], -["features.verifysession.impl.incoming_IncomingVerificationView_Day_0_en","features.verifysession.impl.incoming_IncomingVerificationView_Night_0_en",20182,], -["features.verifysession.impl.incoming_IncomingVerificationView_Day_10_en","features.verifysession.impl.incoming_IncomingVerificationView_Night_10_en",20182,], -["features.verifysession.impl.incoming_IncomingVerificationView_Day_11_en","features.verifysession.impl.incoming_IncomingVerificationView_Night_11_en",20182,], -["features.verifysession.impl.incoming_IncomingVerificationView_Day_12_en","features.verifysession.impl.incoming_IncomingVerificationView_Night_12_en",20182,], -["features.verifysession.impl.incoming_IncomingVerificationView_Day_13_en","features.verifysession.impl.incoming_IncomingVerificationView_Night_13_en",20182,], -["features.verifysession.impl.incoming_IncomingVerificationView_Day_1_en","features.verifysession.impl.incoming_IncomingVerificationView_Night_1_en",20182,], -["features.verifysession.impl.incoming_IncomingVerificationView_Day_2_en","features.verifysession.impl.incoming_IncomingVerificationView_Night_2_en",20182,], -["features.verifysession.impl.incoming_IncomingVerificationView_Day_3_en","features.verifysession.impl.incoming_IncomingVerificationView_Night_3_en",20182,], -["features.verifysession.impl.incoming_IncomingVerificationView_Day_4_en","features.verifysession.impl.incoming_IncomingVerificationView_Night_4_en",20182,], -["features.verifysession.impl.incoming_IncomingVerificationView_Day_5_en","features.verifysession.impl.incoming_IncomingVerificationView_Night_5_en",20182,], -["features.verifysession.impl.incoming_IncomingVerificationView_Day_6_en","features.verifysession.impl.incoming_IncomingVerificationView_Night_6_en",20182,], -["features.verifysession.impl.incoming_IncomingVerificationView_Day_7_en","features.verifysession.impl.incoming_IncomingVerificationView_Night_7_en",20182,], -["features.verifysession.impl.incoming_IncomingVerificationView_Day_8_en","features.verifysession.impl.incoming_IncomingVerificationView_Night_8_en",20182,], -["features.verifysession.impl.incoming_IncomingVerificationView_Day_9_en","features.verifysession.impl.incoming_IncomingVerificationView_Night_9_en",20182,], +["features.call.impl.ui_IncomingCallScreen_Day_0_en","features.call.impl.ui_IncomingCallScreen_Night_0_en",20196,], +["features.verifysession.impl.incoming_IncomingVerificationView_Day_0_en","features.verifysession.impl.incoming_IncomingVerificationView_Night_0_en",20196,], +["features.verifysession.impl.incoming_IncomingVerificationView_Day_10_en","features.verifysession.impl.incoming_IncomingVerificationView_Night_10_en",20196,], +["features.verifysession.impl.incoming_IncomingVerificationView_Day_11_en","features.verifysession.impl.incoming_IncomingVerificationView_Night_11_en",20196,], +["features.verifysession.impl.incoming_IncomingVerificationView_Day_12_en","features.verifysession.impl.incoming_IncomingVerificationView_Night_12_en",20196,], +["features.verifysession.impl.incoming_IncomingVerificationView_Day_13_en","features.verifysession.impl.incoming_IncomingVerificationView_Night_13_en",20196,], +["features.verifysession.impl.incoming_IncomingVerificationView_Day_1_en","features.verifysession.impl.incoming_IncomingVerificationView_Night_1_en",20196,], +["features.verifysession.impl.incoming_IncomingVerificationView_Day_2_en","features.verifysession.impl.incoming_IncomingVerificationView_Night_2_en",20196,], +["features.verifysession.impl.incoming_IncomingVerificationView_Day_3_en","features.verifysession.impl.incoming_IncomingVerificationView_Night_3_en",20196,], +["features.verifysession.impl.incoming_IncomingVerificationView_Day_4_en","features.verifysession.impl.incoming_IncomingVerificationView_Night_4_en",20196,], +["features.verifysession.impl.incoming_IncomingVerificationView_Day_5_en","features.verifysession.impl.incoming_IncomingVerificationView_Night_5_en",20196,], +["features.verifysession.impl.incoming_IncomingVerificationView_Day_6_en","features.verifysession.impl.incoming_IncomingVerificationView_Night_6_en",20196,], +["features.verifysession.impl.incoming_IncomingVerificationView_Day_7_en","features.verifysession.impl.incoming_IncomingVerificationView_Night_7_en",20196,], +["features.verifysession.impl.incoming_IncomingVerificationView_Day_8_en","features.verifysession.impl.incoming_IncomingVerificationView_Night_8_en",20196,], +["features.verifysession.impl.incoming_IncomingVerificationView_Day_9_en","features.verifysession.impl.incoming_IncomingVerificationView_Night_9_en",20196,], ["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",20182,], -["features.createroom.impl.joinbyaddress_JoinRoomByAddressView_Day_0_en","features.createroom.impl.joinbyaddress_JoinRoomByAddressView_Night_0_en",20182,], -["features.createroom.impl.joinbyaddress_JoinRoomByAddressView_Day_1_en","features.createroom.impl.joinbyaddress_JoinRoomByAddressView_Night_1_en",20182,], -["features.createroom.impl.joinbyaddress_JoinRoomByAddressView_Day_2_en","features.createroom.impl.joinbyaddress_JoinRoomByAddressView_Night_2_en",20182,], -["features.createroom.impl.joinbyaddress_JoinRoomByAddressView_Day_3_en","features.createroom.impl.joinbyaddress_JoinRoomByAddressView_Night_3_en",20182,], -["features.createroom.impl.joinbyaddress_JoinRoomByAddressView_Day_4_en","features.createroom.impl.joinbyaddress_JoinRoomByAddressView_Night_4_en",20182,], -["features.createroom.impl.joinbyaddress_JoinRoomByAddressView_Day_5_en","features.createroom.impl.joinbyaddress_JoinRoomByAddressView_Night_5_en",20182,], +["libraries.matrix.ui.components_InviteSenderView_Day_0_en","libraries.matrix.ui.components_InviteSenderView_Night_0_en",20196,], +["features.createroom.impl.joinbyaddress_JoinRoomByAddressView_Day_0_en","features.createroom.impl.joinbyaddress_JoinRoomByAddressView_Night_0_en",20196,], +["features.createroom.impl.joinbyaddress_JoinRoomByAddressView_Day_1_en","features.createroom.impl.joinbyaddress_JoinRoomByAddressView_Night_1_en",20196,], +["features.createroom.impl.joinbyaddress_JoinRoomByAddressView_Day_2_en","features.createroom.impl.joinbyaddress_JoinRoomByAddressView_Night_2_en",20196,], +["features.createroom.impl.joinbyaddress_JoinRoomByAddressView_Day_3_en","features.createroom.impl.joinbyaddress_JoinRoomByAddressView_Night_3_en",20196,], +["features.createroom.impl.joinbyaddress_JoinRoomByAddressView_Day_4_en","features.createroom.impl.joinbyaddress_JoinRoomByAddressView_Night_4_en",20196,], +["features.createroom.impl.joinbyaddress_JoinRoomByAddressView_Day_5_en","features.createroom.impl.joinbyaddress_JoinRoomByAddressView_Night_5_en",20196,], ["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",20182,], -["features.joinroom.impl_JoinRoomView_Day_11_en","features.joinroom.impl_JoinRoomView_Night_11_en",20182,], -["features.joinroom.impl_JoinRoomView_Day_12_en","features.joinroom.impl_JoinRoomView_Night_12_en",20182,], -["features.joinroom.impl_JoinRoomView_Day_13_en","features.joinroom.impl_JoinRoomView_Night_13_en",20182,], -["features.joinroom.impl_JoinRoomView_Day_14_en","features.joinroom.impl_JoinRoomView_Night_14_en",20182,], -["features.joinroom.impl_JoinRoomView_Day_15_en","features.joinroom.impl_JoinRoomView_Night_15_en",20182,], -["features.joinroom.impl_JoinRoomView_Day_16_en","features.joinroom.impl_JoinRoomView_Night_16_en",20182,], -["features.joinroom.impl_JoinRoomView_Day_1_en","features.joinroom.impl_JoinRoomView_Night_1_en",20182,], -["features.joinroom.impl_JoinRoomView_Day_2_en","features.joinroom.impl_JoinRoomView_Night_2_en",20182,], -["features.joinroom.impl_JoinRoomView_Day_3_en","features.joinroom.impl_JoinRoomView_Night_3_en",20182,], -["features.joinroom.impl_JoinRoomView_Day_4_en","features.joinroom.impl_JoinRoomView_Night_4_en",20182,], -["features.joinroom.impl_JoinRoomView_Day_5_en","features.joinroom.impl_JoinRoomView_Night_5_en",20182,], -["features.joinroom.impl_JoinRoomView_Day_6_en","features.joinroom.impl_JoinRoomView_Night_6_en",20182,], -["features.joinroom.impl_JoinRoomView_Day_7_en","features.joinroom.impl_JoinRoomView_Night_7_en",20182,], -["features.joinroom.impl_JoinRoomView_Day_8_en","features.joinroom.impl_JoinRoomView_Night_8_en",20182,], -["features.joinroom.impl_JoinRoomView_Day_9_en","features.joinroom.impl_JoinRoomView_Night_9_en",20182,], -["features.knockrequests.impl.banner_KnockRequestsBannerView_Day_0_en","features.knockrequests.impl.banner_KnockRequestsBannerView_Night_0_en",20182,], -["features.knockrequests.impl.banner_KnockRequestsBannerView_Day_1_en","features.knockrequests.impl.banner_KnockRequestsBannerView_Night_1_en",20182,], -["features.knockrequests.impl.banner_KnockRequestsBannerView_Day_2_en","features.knockrequests.impl.banner_KnockRequestsBannerView_Night_2_en",20182,], -["features.knockrequests.impl.banner_KnockRequestsBannerView_Day_3_en","features.knockrequests.impl.banner_KnockRequestsBannerView_Night_3_en",20182,], -["features.knockrequests.impl.banner_KnockRequestsBannerView_Day_4_en","features.knockrequests.impl.banner_KnockRequestsBannerView_Night_4_en",20182,], -["features.knockrequests.impl.banner_KnockRequestsBannerView_Day_5_en","features.knockrequests.impl.banner_KnockRequestsBannerView_Night_5_en",20182,], -["features.knockrequests.impl.banner_KnockRequestsBannerView_Day_6_en","features.knockrequests.impl.banner_KnockRequestsBannerView_Night_6_en",20182,], -["features.knockrequests.impl.list_KnockRequestsListView_Day_0_en","features.knockrequests.impl.list_KnockRequestsListView_Night_0_en",20182,], -["features.knockrequests.impl.list_KnockRequestsListView_Day_10_en","features.knockrequests.impl.list_KnockRequestsListView_Night_10_en",20182,], -["features.knockrequests.impl.list_KnockRequestsListView_Day_1_en","features.knockrequests.impl.list_KnockRequestsListView_Night_1_en",20182,], -["features.knockrequests.impl.list_KnockRequestsListView_Day_2_en","features.knockrequests.impl.list_KnockRequestsListView_Night_2_en",20182,], -["features.knockrequests.impl.list_KnockRequestsListView_Day_3_en","features.knockrequests.impl.list_KnockRequestsListView_Night_3_en",20182,], -["features.knockrequests.impl.list_KnockRequestsListView_Day_4_en","features.knockrequests.impl.list_KnockRequestsListView_Night_4_en",20182,], -["features.knockrequests.impl.list_KnockRequestsListView_Day_5_en","features.knockrequests.impl.list_KnockRequestsListView_Night_5_en",20182,], -["features.knockrequests.impl.list_KnockRequestsListView_Day_6_en","features.knockrequests.impl.list_KnockRequestsListView_Night_6_en",20182,], -["features.knockrequests.impl.list_KnockRequestsListView_Day_7_en","features.knockrequests.impl.list_KnockRequestsListView_Night_7_en",20182,], -["features.knockrequests.impl.list_KnockRequestsListView_Day_8_en","features.knockrequests.impl.list_KnockRequestsListView_Night_8_en",20182,], -["features.knockrequests.impl.list_KnockRequestsListView_Day_9_en","features.knockrequests.impl.list_KnockRequestsListView_Night_9_en",20182,], +["features.joinroom.impl_JoinRoomView_Day_10_en","features.joinroom.impl_JoinRoomView_Night_10_en",20196,], +["features.joinroom.impl_JoinRoomView_Day_11_en","features.joinroom.impl_JoinRoomView_Night_11_en",20196,], +["features.joinroom.impl_JoinRoomView_Day_12_en","features.joinroom.impl_JoinRoomView_Night_12_en",20196,], +["features.joinroom.impl_JoinRoomView_Day_13_en","features.joinroom.impl_JoinRoomView_Night_13_en",20196,], +["features.joinroom.impl_JoinRoomView_Day_14_en","features.joinroom.impl_JoinRoomView_Night_14_en",20196,], +["features.joinroom.impl_JoinRoomView_Day_15_en","features.joinroom.impl_JoinRoomView_Night_15_en",20196,], +["features.joinroom.impl_JoinRoomView_Day_16_en","features.joinroom.impl_JoinRoomView_Night_16_en",20196,], +["features.joinroom.impl_JoinRoomView_Day_1_en","features.joinroom.impl_JoinRoomView_Night_1_en",20196,], +["features.joinroom.impl_JoinRoomView_Day_2_en","features.joinroom.impl_JoinRoomView_Night_2_en",20196,], +["features.joinroom.impl_JoinRoomView_Day_3_en","features.joinroom.impl_JoinRoomView_Night_3_en",20196,], +["features.joinroom.impl_JoinRoomView_Day_4_en","features.joinroom.impl_JoinRoomView_Night_4_en",20196,], +["features.joinroom.impl_JoinRoomView_Day_5_en","features.joinroom.impl_JoinRoomView_Night_5_en",20196,], +["features.joinroom.impl_JoinRoomView_Day_6_en","features.joinroom.impl_JoinRoomView_Night_6_en",20196,], +["features.joinroom.impl_JoinRoomView_Day_7_en","features.joinroom.impl_JoinRoomView_Night_7_en",20196,], +["features.joinroom.impl_JoinRoomView_Day_8_en","features.joinroom.impl_JoinRoomView_Night_8_en",20196,], +["features.joinroom.impl_JoinRoomView_Day_9_en","features.joinroom.impl_JoinRoomView_Night_9_en",20196,], +["features.knockrequests.impl.banner_KnockRequestsBannerView_Day_0_en","features.knockrequests.impl.banner_KnockRequestsBannerView_Night_0_en",20196,], +["features.knockrequests.impl.banner_KnockRequestsBannerView_Day_1_en","features.knockrequests.impl.banner_KnockRequestsBannerView_Night_1_en",20196,], +["features.knockrequests.impl.banner_KnockRequestsBannerView_Day_2_en","features.knockrequests.impl.banner_KnockRequestsBannerView_Night_2_en",20196,], +["features.knockrequests.impl.banner_KnockRequestsBannerView_Day_3_en","features.knockrequests.impl.banner_KnockRequestsBannerView_Night_3_en",20196,], +["features.knockrequests.impl.banner_KnockRequestsBannerView_Day_4_en","features.knockrequests.impl.banner_KnockRequestsBannerView_Night_4_en",20196,], +["features.knockrequests.impl.banner_KnockRequestsBannerView_Day_5_en","features.knockrequests.impl.banner_KnockRequestsBannerView_Night_5_en",20196,], +["features.knockrequests.impl.banner_KnockRequestsBannerView_Day_6_en","features.knockrequests.impl.banner_KnockRequestsBannerView_Night_6_en",20196,], +["features.knockrequests.impl.list_KnockRequestsListView_Day_0_en","features.knockrequests.impl.list_KnockRequestsListView_Night_0_en",20196,], +["features.knockrequests.impl.list_KnockRequestsListView_Day_10_en","features.knockrequests.impl.list_KnockRequestsListView_Night_10_en",20196,], +["features.knockrequests.impl.list_KnockRequestsListView_Day_1_en","features.knockrequests.impl.list_KnockRequestsListView_Night_1_en",20196,], +["features.knockrequests.impl.list_KnockRequestsListView_Day_2_en","features.knockrequests.impl.list_KnockRequestsListView_Night_2_en",20196,], +["features.knockrequests.impl.list_KnockRequestsListView_Day_3_en","features.knockrequests.impl.list_KnockRequestsListView_Night_3_en",20196,], +["features.knockrequests.impl.list_KnockRequestsListView_Day_4_en","features.knockrequests.impl.list_KnockRequestsListView_Night_4_en",20196,], +["features.knockrequests.impl.list_KnockRequestsListView_Day_5_en","features.knockrequests.impl.list_KnockRequestsListView_Night_5_en",20196,], +["features.knockrequests.impl.list_KnockRequestsListView_Day_6_en","features.knockrequests.impl.list_KnockRequestsListView_Night_6_en",20196,], +["features.knockrequests.impl.list_KnockRequestsListView_Day_7_en","features.knockrequests.impl.list_KnockRequestsListView_Night_7_en",20196,], +["features.knockrequests.impl.list_KnockRequestsListView_Day_8_en","features.knockrequests.impl.list_KnockRequestsListView_Night_8_en",20196,], +["features.knockrequests.impl.list_KnockRequestsListView_Day_9_en","features.knockrequests.impl.list_KnockRequestsListView_Night_9_en",20196,], ["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",20182,], -["features.leaveroom.api_LeaveRoomView_Day_2_en","features.leaveroom.api_LeaveRoomView_Night_2_en",20182,], -["features.leaveroom.api_LeaveRoomView_Day_3_en","features.leaveroom.api_LeaveRoomView_Night_3_en",20182,], -["features.leaveroom.api_LeaveRoomView_Day_4_en","features.leaveroom.api_LeaveRoomView_Night_4_en",20182,], -["features.leaveroom.api_LeaveRoomView_Day_5_en","features.leaveroom.api_LeaveRoomView_Night_5_en",20182,], -["features.leaveroom.api_LeaveRoomView_Day_6_en","features.leaveroom.api_LeaveRoomView_Night_6_en",20182,], +["features.leaveroom.api_LeaveRoomView_Day_1_en","features.leaveroom.api_LeaveRoomView_Night_1_en",20196,], +["features.leaveroom.api_LeaveRoomView_Day_2_en","features.leaveroom.api_LeaveRoomView_Night_2_en",20196,], +["features.leaveroom.api_LeaveRoomView_Day_3_en","features.leaveroom.api_LeaveRoomView_Night_3_en",20196,], +["features.leaveroom.api_LeaveRoomView_Day_4_en","features.leaveroom.api_LeaveRoomView_Night_4_en",20196,], +["features.leaveroom.api_LeaveRoomView_Day_5_en","features.leaveroom.api_LeaveRoomView_Night_5_en",20196,], +["features.leaveroom.api_LeaveRoomView_Day_6_en","features.leaveroom.api_LeaveRoomView_Night_6_en",20196,], ["libraries.designsystem.background_LightGradientBackground_Day_0_en","libraries.designsystem.background_LightGradientBackground_Night_0_en",0,], ["libraries.designsystem.theme.components_LinearProgressIndicator_Progress_Indicators_en","",0,], ["features.messages.impl.link_LinkView_Day_0_en","features.messages.impl.link_LinkView_Night_0_en",0,], -["features.messages.impl.link_LinkView_Day_1_en","features.messages.impl.link_LinkView_Night_1_en",20182,], +["features.messages.impl.link_LinkView_Day_1_en","features.messages.impl.link_LinkView_Night_1_en",20196,], ["libraries.designsystem.components.dialogs_ListDialogContent_Dialogs_en","",0,], ["libraries.designsystem.components.dialogs_ListDialog_Day_0_en","libraries.designsystem.components.dialogs_ListDialog_Night_0_en",0,], ["libraries.designsystem.theme.components_ListItemPrimaryActionWithIcon_List_item_-_Primary_action_&_Icon_List_items_en","",0,], @@ -553,29 +560,31 @@ 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",20182,], -["features.lockscreen.impl.settings_LockScreenSettingsView_Day_0_en","features.lockscreen.impl.settings_LockScreenSettingsView_Night_0_en",20182,], -["features.lockscreen.impl.settings_LockScreenSettingsView_Day_1_en","features.lockscreen.impl.settings_LockScreenSettingsView_Night_1_en",20182,], -["features.lockscreen.impl.settings_LockScreenSettingsView_Day_2_en","features.lockscreen.impl.settings_LockScreenSettingsView_Night_2_en",20182,], +["appnav.room.joined_LoadingRoomNodeView_Day_1_en","appnav.room.joined_LoadingRoomNodeView_Night_1_en",20196,], +["features.lockscreen.impl.settings_LockScreenSettingsView_Day_0_en","features.lockscreen.impl.settings_LockScreenSettingsView_Night_0_en",20196,], +["features.lockscreen.impl.settings_LockScreenSettingsView_Day_1_en","features.lockscreen.impl.settings_LockScreenSettingsView_Night_1_en",20196,], +["features.lockscreen.impl.settings_LockScreenSettingsView_Day_2_en","features.lockscreen.impl.settings_LockScreenSettingsView_Night_2_en",20196,], ["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",20182,], -["appnav.loggedin_LoggedInView_Day_2_en","appnav.loggedin_LoggedInView_Night_2_en",20182,], -["appnav.loggedin_LoggedInView_Day_3_en","appnav.loggedin_LoggedInView_Night_3_en",20182,], -["features.login.impl.screens.loginpassword_LoginPasswordView_Day_0_en","features.login.impl.screens.loginpassword_LoginPasswordView_Night_0_en",20182,], -["features.login.impl.screens.loginpassword_LoginPasswordView_Day_1_en","features.login.impl.screens.loginpassword_LoginPasswordView_Night_1_en",20182,], -["features.login.impl.screens.loginpassword_LoginPasswordView_Day_2_en","features.login.impl.screens.loginpassword_LoginPasswordView_Night_2_en",20182,], -["features.logout.impl_LogoutView_Day_0_en","features.logout.impl_LogoutView_Night_0_en",20182,], -["features.logout.impl_LogoutView_Day_1_en","features.logout.impl_LogoutView_Night_1_en",20182,], -["features.logout.impl_LogoutView_Day_2_en","features.logout.impl_LogoutView_Night_2_en",20182,], -["features.logout.impl_LogoutView_Day_3_en","features.logout.impl_LogoutView_Night_3_en",20182,], -["features.logout.impl_LogoutView_Day_4_en","features.logout.impl_LogoutView_Night_4_en",20182,], -["features.logout.impl_LogoutView_Day_5_en","features.logout.impl_LogoutView_Night_5_en",20182,], -["features.logout.impl_LogoutView_Day_6_en","features.logout.impl_LogoutView_Night_6_en",20182,], -["features.logout.impl_LogoutView_Day_7_en","features.logout.impl_LogoutView_Night_7_en",20182,], -["features.logout.impl_LogoutView_Day_8_en","features.logout.impl_LogoutView_Night_8_en",20182,], -["features.logout.impl_LogoutView_Day_9_en","features.logout.impl_LogoutView_Night_9_en",20182,], +["appnav.loggedin_LoggedInView_Day_1_en","appnav.loggedin_LoggedInView_Night_1_en",20196,], +["appnav.loggedin_LoggedInView_Day_2_en","appnav.loggedin_LoggedInView_Night_2_en",20196,], +["appnav.loggedin_LoggedInView_Day_3_en","appnav.loggedin_LoggedInView_Night_3_en",20196,], +["features.login.impl.screens.loginpassword_LoginPasswordView_Day_0_en","features.login.impl.screens.loginpassword_LoginPasswordView_Night_0_en",20196,], +["features.login.impl.screens.loginpassword_LoginPasswordView_Day_1_en","features.login.impl.screens.loginpassword_LoginPasswordView_Night_1_en",20196,], +["features.login.impl.screens.loginpassword_LoginPasswordView_Day_2_en","features.login.impl.screens.loginpassword_LoginPasswordView_Night_2_en",20196,], +["features.logout.impl_LogoutView_Day_0_en","features.logout.impl_LogoutView_Night_0_en",20196,], +["features.logout.impl_LogoutView_Day_10_en","features.logout.impl_LogoutView_Night_10_en",20199,], +["features.logout.impl_LogoutView_Day_11_en","features.logout.impl_LogoutView_Night_11_en",20199,], +["features.logout.impl_LogoutView_Day_1_en","features.logout.impl_LogoutView_Night_1_en",20196,], +["features.logout.impl_LogoutView_Day_2_en","features.logout.impl_LogoutView_Night_2_en",20196,], +["features.logout.impl_LogoutView_Day_3_en","features.logout.impl_LogoutView_Night_3_en",20196,], +["features.logout.impl_LogoutView_Day_4_en","features.logout.impl_LogoutView_Night_4_en",20196,], +["features.logout.impl_LogoutView_Day_5_en","features.logout.impl_LogoutView_Night_5_en",20196,], +["features.logout.impl_LogoutView_Day_6_en","features.logout.impl_LogoutView_Night_6_en",20196,], +["features.logout.impl_LogoutView_Day_7_en","features.logout.impl_LogoutView_Night_7_en",20196,], +["features.logout.impl_LogoutView_Day_8_en","features.logout.impl_LogoutView_Night_8_en",20196,], +["features.logout.impl_LogoutView_Day_9_en","features.logout.impl_LogoutView_Night_9_en",20196,], ["libraries.designsystem.components.button_MainActionButton_Buttons_en","",0,], -["libraries.textcomposer_MarkdownTextComposerEdit_Day_0_en","libraries.textcomposer_MarkdownTextComposerEdit_Night_0_en",20182,], +["libraries.textcomposer_MarkdownTextComposerEdit_Day_0_en","libraries.textcomposer_MarkdownTextComposerEdit_Night_0_en",20196,], ["libraries.textcomposer.components.markdown_MarkdownTextInput_Day_0_en","libraries.textcomposer.components.markdown_MarkdownTextInput_Night_0_en",0,], ["libraries.designsystem.atomic.atoms_MatrixBadgeAtomInfo_Day_0_en","libraries.designsystem.atomic.atoms_MatrixBadgeAtomInfo_Night_0_en",0,], ["libraries.designsystem.atomic.atoms_MatrixBadgeAtomNegative_Day_0_en","libraries.designsystem.atomic.atoms_MatrixBadgeAtomNegative_Night_0_en",0,], @@ -588,22 +597,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",20182,], -["libraries.mediaviewer.impl.details_MediaDetailsBottomSheet_Day_0_en","libraries.mediaviewer.impl.details_MediaDetailsBottomSheet_Night_0_en",20182,], +["libraries.mediaviewer.impl.details_MediaDeleteConfirmationBottomSheet_Day_0_en","libraries.mediaviewer.impl.details_MediaDeleteConfirmationBottomSheet_Night_0_en",20196,], +["libraries.mediaviewer.impl.details_MediaDetailsBottomSheet_Day_0_en","libraries.mediaviewer.impl.details_MediaDetailsBottomSheet_Night_0_en",20196,], ["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",20182,], -["libraries.mediaviewer.impl.gallery_MediaGalleryView_Day_10_en","libraries.mediaviewer.impl.gallery_MediaGalleryView_Night_10_en",20182,], -["libraries.mediaviewer.impl.gallery_MediaGalleryView_Day_11_en","libraries.mediaviewer.impl.gallery_MediaGalleryView_Night_11_en",20182,], -["libraries.mediaviewer.impl.gallery_MediaGalleryView_Day_12_en","libraries.mediaviewer.impl.gallery_MediaGalleryView_Night_12_en",20182,], -["libraries.mediaviewer.impl.gallery_MediaGalleryView_Day_1_en","libraries.mediaviewer.impl.gallery_MediaGalleryView_Night_1_en",20182,], -["libraries.mediaviewer.impl.gallery_MediaGalleryView_Day_2_en","libraries.mediaviewer.impl.gallery_MediaGalleryView_Night_2_en",20182,], -["libraries.mediaviewer.impl.gallery_MediaGalleryView_Day_3_en","libraries.mediaviewer.impl.gallery_MediaGalleryView_Night_3_en",20182,], -["libraries.mediaviewer.impl.gallery_MediaGalleryView_Day_4_en","libraries.mediaviewer.impl.gallery_MediaGalleryView_Night_4_en",20182,], -["libraries.mediaviewer.impl.gallery_MediaGalleryView_Day_5_en","libraries.mediaviewer.impl.gallery_MediaGalleryView_Night_5_en",20182,], -["libraries.mediaviewer.impl.gallery_MediaGalleryView_Day_6_en","libraries.mediaviewer.impl.gallery_MediaGalleryView_Night_6_en",20182,], -["libraries.mediaviewer.impl.gallery_MediaGalleryView_Day_7_en","libraries.mediaviewer.impl.gallery_MediaGalleryView_Night_7_en",20182,], -["libraries.mediaviewer.impl.gallery_MediaGalleryView_Day_8_en","libraries.mediaviewer.impl.gallery_MediaGalleryView_Night_8_en",20182,], -["libraries.mediaviewer.impl.gallery_MediaGalleryView_Day_9_en","libraries.mediaviewer.impl.gallery_MediaGalleryView_Night_9_en",20182,], +["libraries.mediaviewer.impl.gallery_MediaGalleryView_Day_0_en","libraries.mediaviewer.impl.gallery_MediaGalleryView_Night_0_en",20196,], +["libraries.mediaviewer.impl.gallery_MediaGalleryView_Day_10_en","libraries.mediaviewer.impl.gallery_MediaGalleryView_Night_10_en",20196,], +["libraries.mediaviewer.impl.gallery_MediaGalleryView_Day_11_en","libraries.mediaviewer.impl.gallery_MediaGalleryView_Night_11_en",20196,], +["libraries.mediaviewer.impl.gallery_MediaGalleryView_Day_12_en","libraries.mediaviewer.impl.gallery_MediaGalleryView_Night_12_en",20196,], +["libraries.mediaviewer.impl.gallery_MediaGalleryView_Day_1_en","libraries.mediaviewer.impl.gallery_MediaGalleryView_Night_1_en",20196,], +["libraries.mediaviewer.impl.gallery_MediaGalleryView_Day_2_en","libraries.mediaviewer.impl.gallery_MediaGalleryView_Night_2_en",20196,], +["libraries.mediaviewer.impl.gallery_MediaGalleryView_Day_3_en","libraries.mediaviewer.impl.gallery_MediaGalleryView_Night_3_en",20196,], +["libraries.mediaviewer.impl.gallery_MediaGalleryView_Day_4_en","libraries.mediaviewer.impl.gallery_MediaGalleryView_Night_4_en",20196,], +["libraries.mediaviewer.impl.gallery_MediaGalleryView_Day_5_en","libraries.mediaviewer.impl.gallery_MediaGalleryView_Night_5_en",20196,], +["libraries.mediaviewer.impl.gallery_MediaGalleryView_Day_6_en","libraries.mediaviewer.impl.gallery_MediaGalleryView_Night_6_en",20196,], +["libraries.mediaviewer.impl.gallery_MediaGalleryView_Day_7_en","libraries.mediaviewer.impl.gallery_MediaGalleryView_Night_7_en",20196,], +["libraries.mediaviewer.impl.gallery_MediaGalleryView_Day_8_en","libraries.mediaviewer.impl.gallery_MediaGalleryView_Night_8_en",20196,], +["libraries.mediaviewer.impl.gallery_MediaGalleryView_Day_9_en","libraries.mediaviewer.impl.gallery_MediaGalleryView_Night_9_en",20196,], ["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,], @@ -611,14 +620,14 @@ 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","",20182,], -["libraries.mediaviewer.impl.viewer_MediaViewerView_12_en","",20182,], +["libraries.mediaviewer.impl.viewer_MediaViewerView_11_en","",20196,], +["libraries.mediaviewer.impl.viewer_MediaViewerView_12_en","",20196,], ["libraries.mediaviewer.impl.viewer_MediaViewerView_13_en","",0,], -["libraries.mediaviewer.impl.viewer_MediaViewerView_14_en","",20182,], +["libraries.mediaviewer.impl.viewer_MediaViewerView_14_en","",20196,], ["libraries.mediaviewer.impl.viewer_MediaViewerView_15_en","",0,], ["libraries.mediaviewer.impl.viewer_MediaViewerView_16_en","",0,], ["libraries.mediaviewer.impl.viewer_MediaViewerView_1_en","",0,], -["libraries.mediaviewer.impl.viewer_MediaViewerView_2_en","",20182,], +["libraries.mediaviewer.impl.viewer_MediaViewerView_2_en","",20196,], ["libraries.mediaviewer.impl.viewer_MediaViewerView_3_en","",0,], ["libraries.mediaviewer.impl.viewer_MediaViewerView_4_en","",0,], ["libraries.mediaviewer.impl.viewer_MediaViewerView_5_en","",0,], @@ -630,7 +639,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",20182,], +["features.messages.impl.messagecomposer_MessageComposerView_Day_0_en","features.messages.impl.messagecomposer_MessageComposerView_Night_0_en",20196,], ["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,], @@ -647,7 +656,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",20182,], +["features.messages.impl.timeline.components_MessageShieldView_Day_0_en","features.messages.impl.timeline.components_MessageShieldView_Night_0_en",20196,], ["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,], @@ -655,25 +664,25 @@ 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",20182,], -["features.messages.impl.crypto.identity_MessagesViewWithIdentityChange_Day_1_en","features.messages.impl.crypto.identity_MessagesViewWithIdentityChange_Night_1_en",20182,], -["features.messages.impl.crypto.identity_MessagesViewWithIdentityChange_Day_2_en","features.messages.impl.crypto.identity_MessagesViewWithIdentityChange_Night_2_en",20182,], -["features.messages.impl_MessagesView_Day_0_en","features.messages.impl_MessagesView_Night_0_en",20182,], -["features.messages.impl_MessagesView_Day_10_en","features.messages.impl_MessagesView_Night_10_en",20182,], -["features.messages.impl_MessagesView_Day_11_en","features.messages.impl_MessagesView_Night_11_en",20182,], -["features.messages.impl_MessagesView_Day_12_en","features.messages.impl_MessagesView_Night_12_en",20182,], -["features.messages.impl_MessagesView_Day_13_en","features.messages.impl_MessagesView_Night_13_en",20182,], -["features.messages.impl_MessagesView_Day_1_en","features.messages.impl_MessagesView_Night_1_en",20182,], -["features.messages.impl_MessagesView_Day_2_en","features.messages.impl_MessagesView_Night_2_en",20182,], -["features.messages.impl_MessagesView_Day_3_en","features.messages.impl_MessagesView_Night_3_en",20182,], -["features.messages.impl_MessagesView_Day_4_en","features.messages.impl_MessagesView_Night_4_en",20182,], -["features.messages.impl_MessagesView_Day_5_en","features.messages.impl_MessagesView_Night_5_en",20182,], -["features.messages.impl_MessagesView_Day_6_en","features.messages.impl_MessagesView_Night_6_en",20182,], -["features.messages.impl_MessagesView_Day_7_en","features.messages.impl_MessagesView_Night_7_en",20182,], -["features.messages.impl_MessagesView_Day_8_en","features.messages.impl_MessagesView_Night_8_en",20182,], -["features.messages.impl_MessagesView_Day_9_en","features.messages.impl_MessagesView_Night_9_en",20182,], +["features.messages.impl.crypto.identity_MessagesViewWithIdentityChange_Day_0_en","features.messages.impl.crypto.identity_MessagesViewWithIdentityChange_Night_0_en",20196,], +["features.messages.impl.crypto.identity_MessagesViewWithIdentityChange_Day_1_en","features.messages.impl.crypto.identity_MessagesViewWithIdentityChange_Night_1_en",20196,], +["features.messages.impl.crypto.identity_MessagesViewWithIdentityChange_Day_2_en","features.messages.impl.crypto.identity_MessagesViewWithIdentityChange_Night_2_en",20196,], +["features.messages.impl_MessagesView_Day_0_en","features.messages.impl_MessagesView_Night_0_en",20196,], +["features.messages.impl_MessagesView_Day_10_en","features.messages.impl_MessagesView_Night_10_en",20196,], +["features.messages.impl_MessagesView_Day_11_en","features.messages.impl_MessagesView_Night_11_en",20196,], +["features.messages.impl_MessagesView_Day_12_en","features.messages.impl_MessagesView_Night_12_en",20196,], +["features.messages.impl_MessagesView_Day_13_en","features.messages.impl_MessagesView_Night_13_en",20196,], +["features.messages.impl_MessagesView_Day_1_en","features.messages.impl_MessagesView_Night_1_en",20196,], +["features.messages.impl_MessagesView_Day_2_en","features.messages.impl_MessagesView_Night_2_en",20196,], +["features.messages.impl_MessagesView_Day_3_en","features.messages.impl_MessagesView_Night_3_en",20196,], +["features.messages.impl_MessagesView_Day_4_en","features.messages.impl_MessagesView_Night_4_en",20196,], +["features.messages.impl_MessagesView_Day_5_en","features.messages.impl_MessagesView_Night_5_en",20196,], +["features.messages.impl_MessagesView_Day_6_en","features.messages.impl_MessagesView_Night_6_en",20196,], +["features.messages.impl_MessagesView_Day_7_en","features.messages.impl_MessagesView_Night_7_en",20196,], +["features.messages.impl_MessagesView_Day_8_en","features.messages.impl_MessagesView_Night_8_en",20196,], +["features.messages.impl_MessagesView_Day_9_en","features.messages.impl_MessagesView_Night_9_en",20196,], ["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",20182,], +["features.migration.impl_MigrationView_Day_1_en","features.migration.impl_MigrationView_Night_1_en",20196,], ["libraries.designsystem.theme.components_ModalBottomSheetDark_Bottom_Sheets_en","",0,], ["libraries.designsystem.theme.components_ModalBottomSheetLight_Bottom_Sheets_en","",0,], ["appicon.element_MonochromeIcon_en","",0,], @@ -682,29 +691,29 @@ 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.preferences.impl.notifications_NotificationSettingsView_Day_0_en","features.preferences.impl.notifications_NotificationSettingsView_Night_0_en",20182,], -["features.preferences.impl.notifications_NotificationSettingsView_Day_10_en","features.preferences.impl.notifications_NotificationSettingsView_Night_10_en",20182,], -["features.preferences.impl.notifications_NotificationSettingsView_Day_11_en","features.preferences.impl.notifications_NotificationSettingsView_Night_11_en",20182,], -["features.preferences.impl.notifications_NotificationSettingsView_Day_12_en","features.preferences.impl.notifications_NotificationSettingsView_Night_12_en",20182,], -["features.preferences.impl.notifications_NotificationSettingsView_Day_13_en","features.preferences.impl.notifications_NotificationSettingsView_Night_13_en",20182,], -["features.preferences.impl.notifications_NotificationSettingsView_Day_1_en","features.preferences.impl.notifications_NotificationSettingsView_Night_1_en",20182,], -["features.preferences.impl.notifications_NotificationSettingsView_Day_2_en","features.preferences.impl.notifications_NotificationSettingsView_Night_2_en",20182,], -["features.preferences.impl.notifications_NotificationSettingsView_Day_3_en","features.preferences.impl.notifications_NotificationSettingsView_Night_3_en",20182,], -["features.preferences.impl.notifications_NotificationSettingsView_Day_4_en","features.preferences.impl.notifications_NotificationSettingsView_Night_4_en",20182,], -["features.preferences.impl.notifications_NotificationSettingsView_Day_5_en","features.preferences.impl.notifications_NotificationSettingsView_Night_5_en",20182,], -["features.preferences.impl.notifications_NotificationSettingsView_Day_6_en","features.preferences.impl.notifications_NotificationSettingsView_Night_6_en",20182,], -["features.preferences.impl.notifications_NotificationSettingsView_Day_7_en","features.preferences.impl.notifications_NotificationSettingsView_Night_7_en",20182,], -["features.preferences.impl.notifications_NotificationSettingsView_Day_8_en","features.preferences.impl.notifications_NotificationSettingsView_Night_8_en",20182,], -["features.preferences.impl.notifications_NotificationSettingsView_Day_9_en","features.preferences.impl.notifications_NotificationSettingsView_Night_9_en",20182,], -["features.ftue.impl.notifications_NotificationsOptInView_Day_0_en","features.ftue.impl.notifications_NotificationsOptInView_Night_0_en",20182,], +["features.preferences.impl.notifications_NotificationSettingsView_Day_0_en","features.preferences.impl.notifications_NotificationSettingsView_Night_0_en",20196,], +["features.preferences.impl.notifications_NotificationSettingsView_Day_10_en","features.preferences.impl.notifications_NotificationSettingsView_Night_10_en",20196,], +["features.preferences.impl.notifications_NotificationSettingsView_Day_11_en","features.preferences.impl.notifications_NotificationSettingsView_Night_11_en",20196,], +["features.preferences.impl.notifications_NotificationSettingsView_Day_12_en","features.preferences.impl.notifications_NotificationSettingsView_Night_12_en",20196,], +["features.preferences.impl.notifications_NotificationSettingsView_Day_13_en","features.preferences.impl.notifications_NotificationSettingsView_Night_13_en",20196,], +["features.preferences.impl.notifications_NotificationSettingsView_Day_1_en","features.preferences.impl.notifications_NotificationSettingsView_Night_1_en",20196,], +["features.preferences.impl.notifications_NotificationSettingsView_Day_2_en","features.preferences.impl.notifications_NotificationSettingsView_Night_2_en",20196,], +["features.preferences.impl.notifications_NotificationSettingsView_Day_3_en","features.preferences.impl.notifications_NotificationSettingsView_Night_3_en",20196,], +["features.preferences.impl.notifications_NotificationSettingsView_Day_4_en","features.preferences.impl.notifications_NotificationSettingsView_Night_4_en",20196,], +["features.preferences.impl.notifications_NotificationSettingsView_Day_5_en","features.preferences.impl.notifications_NotificationSettingsView_Night_5_en",20196,], +["features.preferences.impl.notifications_NotificationSettingsView_Day_6_en","features.preferences.impl.notifications_NotificationSettingsView_Night_6_en",20196,], +["features.preferences.impl.notifications_NotificationSettingsView_Day_7_en","features.preferences.impl.notifications_NotificationSettingsView_Night_7_en",20196,], +["features.preferences.impl.notifications_NotificationSettingsView_Day_8_en","features.preferences.impl.notifications_NotificationSettingsView_Night_8_en",20196,], +["features.preferences.impl.notifications_NotificationSettingsView_Day_9_en","features.preferences.impl.notifications_NotificationSettingsView_Night_9_en",20196,], +["features.ftue.impl.notifications_NotificationsOptInView_Day_0_en","features.ftue.impl.notifications_NotificationsOptInView_Night_0_en",20196,], ["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",20182,], -["features.onboarding.impl_OnBoardingView_Day_1_en","features.onboarding.impl_OnBoardingView_Night_1_en",20182,], -["features.onboarding.impl_OnBoardingView_Day_2_en","features.onboarding.impl_OnBoardingView_Night_2_en",20182,], -["features.onboarding.impl_OnBoardingView_Day_3_en","features.onboarding.impl_OnBoardingView_Night_3_en",20182,], -["features.onboarding.impl_OnBoardingView_Day_4_en","features.onboarding.impl_OnBoardingView_Night_4_en",20182,], +["features.onboarding.impl_OnBoardingView_Day_0_en","features.onboarding.impl_OnBoardingView_Night_0_en",20196,], +["features.onboarding.impl_OnBoardingView_Day_1_en","features.onboarding.impl_OnBoardingView_Night_1_en",20196,], +["features.onboarding.impl_OnBoardingView_Day_2_en","features.onboarding.impl_OnBoardingView_Night_2_en",20196,], +["features.onboarding.impl_OnBoardingView_Day_3_en","features.onboarding.impl_OnBoardingView_Night_3_en",20196,], +["features.onboarding.impl_OnBoardingView_Day_4_en","features.onboarding.impl_OnBoardingView_Night_4_en",20196,], ["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,], @@ -719,65 +728,65 @@ export const screenshots = [ ["libraries.designsystem.components_PageTitleWithIconFull_Day_5_en","libraries.designsystem.components_PageTitleWithIconFull_Night_5_en",0,], ["libraries.designsystem.components_PageTitleWithIconFull_Day_6_en","libraries.designsystem.components_PageTitleWithIconFull_Night_6_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",20182,], -["features.roomdetails.impl.rolesandpermissions.changeroles_PendingMemberRowWithLongName_Day_0_en","features.roomdetails.impl.rolesandpermissions.changeroles_PendingMemberRowWithLongName_Night_0_en",20182,], -["libraries.permissions.api_PermissionsView_Day_0_en","libraries.permissions.api_PermissionsView_Night_0_en",20182,], -["libraries.permissions.api_PermissionsView_Day_1_en","libraries.permissions.api_PermissionsView_Night_1_en",20182,], -["libraries.permissions.api_PermissionsView_Day_2_en","libraries.permissions.api_PermissionsView_Night_2_en",20182,], -["libraries.permissions.api_PermissionsView_Day_3_en","libraries.permissions.api_PermissionsView_Night_3_en",20182,], +["libraries.mediaviewer.impl.local.pdf_PdfPagesErrorView_Day_0_en","libraries.mediaviewer.impl.local.pdf_PdfPagesErrorView_Night_0_en",20196,], +["features.roomdetails.impl.rolesandpermissions.changeroles_PendingMemberRowWithLongName_Day_0_en","features.roomdetails.impl.rolesandpermissions.changeroles_PendingMemberRowWithLongName_Night_0_en",20196,], +["libraries.permissions.api_PermissionsView_Day_0_en","libraries.permissions.api_PermissionsView_Night_0_en",20196,], +["libraries.permissions.api_PermissionsView_Day_1_en","libraries.permissions.api_PermissionsView_Night_1_en",20196,], +["libraries.permissions.api_PermissionsView_Day_2_en","libraries.permissions.api_PermissionsView_Night_2_en",20196,], +["libraries.permissions.api_PermissionsView_Day_3_en","libraries.permissions.api_PermissionsView_Night_3_en",20196,], ["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",20182,], -["features.lockscreen.impl.unlock_PinUnlockViewInApp_Day_1_en","features.lockscreen.impl.unlock_PinUnlockViewInApp_Night_1_en",20182,], -["features.lockscreen.impl.unlock_PinUnlockViewInApp_Day_2_en","features.lockscreen.impl.unlock_PinUnlockViewInApp_Night_2_en",20182,], -["features.lockscreen.impl.unlock_PinUnlockViewInApp_Day_3_en","features.lockscreen.impl.unlock_PinUnlockViewInApp_Night_3_en",20182,], -["features.lockscreen.impl.unlock_PinUnlockViewInApp_Day_4_en","features.lockscreen.impl.unlock_PinUnlockViewInApp_Night_4_en",20182,], -["features.lockscreen.impl.unlock_PinUnlockViewInApp_Day_5_en","features.lockscreen.impl.unlock_PinUnlockViewInApp_Night_5_en",20182,], -["features.lockscreen.impl.unlock_PinUnlockViewInApp_Day_6_en","features.lockscreen.impl.unlock_PinUnlockViewInApp_Night_6_en",20182,], -["features.lockscreen.impl.unlock_PinUnlockViewInApp_Day_7_en","features.lockscreen.impl.unlock_PinUnlockViewInApp_Night_7_en",20182,], -["features.lockscreen.impl.unlock_PinUnlockView_Day_0_en","features.lockscreen.impl.unlock_PinUnlockView_Night_0_en",20182,], -["features.lockscreen.impl.unlock_PinUnlockView_Day_1_en","features.lockscreen.impl.unlock_PinUnlockView_Night_1_en",20182,], -["features.lockscreen.impl.unlock_PinUnlockView_Day_2_en","features.lockscreen.impl.unlock_PinUnlockView_Night_2_en",20182,], -["features.lockscreen.impl.unlock_PinUnlockView_Day_3_en","features.lockscreen.impl.unlock_PinUnlockView_Night_3_en",20182,], -["features.lockscreen.impl.unlock_PinUnlockView_Day_4_en","features.lockscreen.impl.unlock_PinUnlockView_Night_4_en",20182,], -["features.lockscreen.impl.unlock_PinUnlockView_Day_5_en","features.lockscreen.impl.unlock_PinUnlockView_Night_5_en",20182,], -["features.lockscreen.impl.unlock_PinUnlockView_Day_6_en","features.lockscreen.impl.unlock_PinUnlockView_Night_6_en",20182,], -["features.lockscreen.impl.unlock_PinUnlockView_Day_7_en","features.lockscreen.impl.unlock_PinUnlockView_Night_7_en",20182,], +["features.lockscreen.impl.unlock_PinUnlockViewInApp_Day_0_en","features.lockscreen.impl.unlock_PinUnlockViewInApp_Night_0_en",20196,], +["features.lockscreen.impl.unlock_PinUnlockViewInApp_Day_1_en","features.lockscreen.impl.unlock_PinUnlockViewInApp_Night_1_en",20196,], +["features.lockscreen.impl.unlock_PinUnlockViewInApp_Day_2_en","features.lockscreen.impl.unlock_PinUnlockViewInApp_Night_2_en",20196,], +["features.lockscreen.impl.unlock_PinUnlockViewInApp_Day_3_en","features.lockscreen.impl.unlock_PinUnlockViewInApp_Night_3_en",20196,], +["features.lockscreen.impl.unlock_PinUnlockViewInApp_Day_4_en","features.lockscreen.impl.unlock_PinUnlockViewInApp_Night_4_en",20196,], +["features.lockscreen.impl.unlock_PinUnlockViewInApp_Day_5_en","features.lockscreen.impl.unlock_PinUnlockViewInApp_Night_5_en",20196,], +["features.lockscreen.impl.unlock_PinUnlockViewInApp_Day_6_en","features.lockscreen.impl.unlock_PinUnlockViewInApp_Night_6_en",20196,], +["features.lockscreen.impl.unlock_PinUnlockViewInApp_Day_7_en","features.lockscreen.impl.unlock_PinUnlockViewInApp_Night_7_en",20196,], +["features.lockscreen.impl.unlock_PinUnlockView_Day_0_en","features.lockscreen.impl.unlock_PinUnlockView_Night_0_en",20196,], +["features.lockscreen.impl.unlock_PinUnlockView_Day_1_en","features.lockscreen.impl.unlock_PinUnlockView_Night_1_en",20196,], +["features.lockscreen.impl.unlock_PinUnlockView_Day_2_en","features.lockscreen.impl.unlock_PinUnlockView_Night_2_en",20196,], +["features.lockscreen.impl.unlock_PinUnlockView_Day_3_en","features.lockscreen.impl.unlock_PinUnlockView_Night_3_en",20196,], +["features.lockscreen.impl.unlock_PinUnlockView_Day_4_en","features.lockscreen.impl.unlock_PinUnlockView_Night_4_en",20196,], +["features.lockscreen.impl.unlock_PinUnlockView_Day_5_en","features.lockscreen.impl.unlock_PinUnlockView_Night_5_en",20196,], +["features.lockscreen.impl.unlock_PinUnlockView_Day_6_en","features.lockscreen.impl.unlock_PinUnlockView_Night_6_en",20196,], +["features.lockscreen.impl.unlock_PinUnlockView_Day_7_en","features.lockscreen.impl.unlock_PinUnlockView_Night_7_en",20196,], ["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",20182,], -["features.messages.impl.pinned.banner_PinnedMessagesBannerView_Day_1_en","features.messages.impl.pinned.banner_PinnedMessagesBannerView_Night_1_en",20182,], -["features.messages.impl.pinned.banner_PinnedMessagesBannerView_Day_2_en","features.messages.impl.pinned.banner_PinnedMessagesBannerView_Night_2_en",20182,], -["features.messages.impl.pinned.banner_PinnedMessagesBannerView_Day_3_en","features.messages.impl.pinned.banner_PinnedMessagesBannerView_Night_3_en",20182,], -["features.messages.impl.pinned.banner_PinnedMessagesBannerView_Day_4_en","features.messages.impl.pinned.banner_PinnedMessagesBannerView_Night_4_en",20182,], -["features.messages.impl.pinned.banner_PinnedMessagesBannerView_Day_5_en","features.messages.impl.pinned.banner_PinnedMessagesBannerView_Night_5_en",20182,], -["features.messages.impl.pinned.banner_PinnedMessagesBannerView_Day_6_en","features.messages.impl.pinned.banner_PinnedMessagesBannerView_Night_6_en",20182,], -["features.messages.impl.pinned.banner_PinnedMessagesBannerView_Day_7_en","features.messages.impl.pinned.banner_PinnedMessagesBannerView_Night_7_en",20182,], -["features.messages.impl.pinned.banner_PinnedMessagesBannerView_Day_8_en","features.messages.impl.pinned.banner_PinnedMessagesBannerView_Night_8_en",20182,], -["features.messages.impl.pinned.banner_PinnedMessagesBannerView_Day_9_en","features.messages.impl.pinned.banner_PinnedMessagesBannerView_Night_9_en",20182,], -["features.messages.impl.pinned.list_PinnedMessagesListView_Day_0_en","features.messages.impl.pinned.list_PinnedMessagesListView_Night_0_en",20182,], -["features.messages.impl.pinned.list_PinnedMessagesListView_Day_1_en","features.messages.impl.pinned.list_PinnedMessagesListView_Night_1_en",20182,], -["features.messages.impl.pinned.list_PinnedMessagesListView_Day_2_en","features.messages.impl.pinned.list_PinnedMessagesListView_Night_2_en",20182,], -["features.messages.impl.pinned.list_PinnedMessagesListView_Day_3_en","features.messages.impl.pinned.list_PinnedMessagesListView_Night_3_en",20182,], +["features.messages.impl.pinned.banner_PinnedMessagesBannerView_Day_10_en","features.messages.impl.pinned.banner_PinnedMessagesBannerView_Night_10_en",20196,], +["features.messages.impl.pinned.banner_PinnedMessagesBannerView_Day_1_en","features.messages.impl.pinned.banner_PinnedMessagesBannerView_Night_1_en",20196,], +["features.messages.impl.pinned.banner_PinnedMessagesBannerView_Day_2_en","features.messages.impl.pinned.banner_PinnedMessagesBannerView_Night_2_en",20196,], +["features.messages.impl.pinned.banner_PinnedMessagesBannerView_Day_3_en","features.messages.impl.pinned.banner_PinnedMessagesBannerView_Night_3_en",20196,], +["features.messages.impl.pinned.banner_PinnedMessagesBannerView_Day_4_en","features.messages.impl.pinned.banner_PinnedMessagesBannerView_Night_4_en",20196,], +["features.messages.impl.pinned.banner_PinnedMessagesBannerView_Day_5_en","features.messages.impl.pinned.banner_PinnedMessagesBannerView_Night_5_en",20196,], +["features.messages.impl.pinned.banner_PinnedMessagesBannerView_Day_6_en","features.messages.impl.pinned.banner_PinnedMessagesBannerView_Night_6_en",20196,], +["features.messages.impl.pinned.banner_PinnedMessagesBannerView_Day_7_en","features.messages.impl.pinned.banner_PinnedMessagesBannerView_Night_7_en",20196,], +["features.messages.impl.pinned.banner_PinnedMessagesBannerView_Day_8_en","features.messages.impl.pinned.banner_PinnedMessagesBannerView_Night_8_en",20196,], +["features.messages.impl.pinned.banner_PinnedMessagesBannerView_Day_9_en","features.messages.impl.pinned.banner_PinnedMessagesBannerView_Night_9_en",20196,], +["features.messages.impl.pinned.list_PinnedMessagesListView_Day_0_en","features.messages.impl.pinned.list_PinnedMessagesListView_Night_0_en",20196,], +["features.messages.impl.pinned.list_PinnedMessagesListView_Day_1_en","features.messages.impl.pinned.list_PinnedMessagesListView_Night_1_en",20196,], +["features.messages.impl.pinned.list_PinnedMessagesListView_Day_2_en","features.messages.impl.pinned.list_PinnedMessagesListView_Night_2_en",20196,], +["features.messages.impl.pinned.list_PinnedMessagesListView_Day_3_en","features.messages.impl.pinned.list_PinnedMessagesListView_Night_3_en",20196,], ["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",20182,], -["features.poll.api.pollcontent_PollAnswerViewDisclosedSelected_Day_0_en","features.poll.api.pollcontent_PollAnswerViewDisclosedSelected_Night_0_en",20182,], -["features.poll.api.pollcontent_PollAnswerViewEndedSelected_Day_0_en","features.poll.api.pollcontent_PollAnswerViewEndedSelected_Night_0_en",20182,], -["features.poll.api.pollcontent_PollAnswerViewEndedWinnerNotSelected_Day_0_en","features.poll.api.pollcontent_PollAnswerViewEndedWinnerNotSelected_Night_0_en",20182,], -["features.poll.api.pollcontent_PollAnswerViewEndedWinnerSelected_Day_0_en","features.poll.api.pollcontent_PollAnswerViewEndedWinnerSelected_Night_0_en",20182,], +["features.poll.api.pollcontent_PollAnswerViewDisclosedNotSelected_Day_0_en","features.poll.api.pollcontent_PollAnswerViewDisclosedNotSelected_Night_0_en",20196,], +["features.poll.api.pollcontent_PollAnswerViewDisclosedSelected_Day_0_en","features.poll.api.pollcontent_PollAnswerViewDisclosedSelected_Night_0_en",20196,], +["features.poll.api.pollcontent_PollAnswerViewEndedSelected_Day_0_en","features.poll.api.pollcontent_PollAnswerViewEndedSelected_Night_0_en",20196,], +["features.poll.api.pollcontent_PollAnswerViewEndedWinnerNotSelected_Day_0_en","features.poll.api.pollcontent_PollAnswerViewEndedWinnerNotSelected_Night_0_en",20196,], +["features.poll.api.pollcontent_PollAnswerViewEndedWinnerSelected_Day_0_en","features.poll.api.pollcontent_PollAnswerViewEndedWinnerSelected_Night_0_en",20196,], ["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",20182,], -["features.poll.api.pollcontent_PollContentViewCreatorEnded_Day_0_en","features.poll.api.pollcontent_PollContentViewCreatorEnded_Night_0_en",20182,], -["features.poll.api.pollcontent_PollContentViewCreator_Day_0_en","features.poll.api.pollcontent_PollContentViewCreator_Night_0_en",20182,], -["features.poll.api.pollcontent_PollContentViewDisclosed_Day_0_en","features.poll.api.pollcontent_PollContentViewDisclosed_Night_0_en",20182,], -["features.poll.api.pollcontent_PollContentViewEnded_Day_0_en","features.poll.api.pollcontent_PollContentViewEnded_Night_0_en",20182,], -["features.poll.api.pollcontent_PollContentViewUndisclosed_Day_0_en","features.poll.api.pollcontent_PollContentViewUndisclosed_Night_0_en",20182,], -["features.poll.impl.history_PollHistoryView_Day_0_en","features.poll.impl.history_PollHistoryView_Night_0_en",20182,], -["features.poll.impl.history_PollHistoryView_Day_1_en","features.poll.impl.history_PollHistoryView_Night_1_en",20182,], -["features.poll.impl.history_PollHistoryView_Day_2_en","features.poll.impl.history_PollHistoryView_Night_2_en",20182,], -["features.poll.impl.history_PollHistoryView_Day_3_en","features.poll.impl.history_PollHistoryView_Night_3_en",20182,], -["features.poll.impl.history_PollHistoryView_Day_4_en","features.poll.impl.history_PollHistoryView_Night_4_en",20182,], +["features.poll.api.pollcontent_PollContentViewCreatorEditable_Day_0_en","features.poll.api.pollcontent_PollContentViewCreatorEditable_Night_0_en",20196,], +["features.poll.api.pollcontent_PollContentViewCreatorEnded_Day_0_en","features.poll.api.pollcontent_PollContentViewCreatorEnded_Night_0_en",20196,], +["features.poll.api.pollcontent_PollContentViewCreator_Day_0_en","features.poll.api.pollcontent_PollContentViewCreator_Night_0_en",20196,], +["features.poll.api.pollcontent_PollContentViewDisclosed_Day_0_en","features.poll.api.pollcontent_PollContentViewDisclosed_Night_0_en",20196,], +["features.poll.api.pollcontent_PollContentViewEnded_Day_0_en","features.poll.api.pollcontent_PollContentViewEnded_Night_0_en",20196,], +["features.poll.api.pollcontent_PollContentViewUndisclosed_Day_0_en","features.poll.api.pollcontent_PollContentViewUndisclosed_Night_0_en",20196,], +["features.poll.impl.history_PollHistoryView_Day_0_en","features.poll.impl.history_PollHistoryView_Night_0_en",20196,], +["features.poll.impl.history_PollHistoryView_Day_1_en","features.poll.impl.history_PollHistoryView_Night_1_en",20196,], +["features.poll.impl.history_PollHistoryView_Day_2_en","features.poll.impl.history_PollHistoryView_Night_2_en",20196,], +["features.poll.impl.history_PollHistoryView_Day_3_en","features.poll.impl.history_PollHistoryView_Night_3_en",20196,], +["features.poll.impl.history_PollHistoryView_Day_4_en","features.poll.impl.history_PollHistoryView_Night_4_en",20196,], ["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,], @@ -791,208 +800,211 @@ export const screenshots = [ ["libraries.designsystem.components.preferences_PreferenceRow_Preferences_en","",0,], ["libraries.designsystem.components.preferences_PreferenceSlide_Preferences_en","",0,], ["libraries.designsystem.components.preferences_PreferenceSwitch_Preferences_en","",0,], -["features.preferences.impl.root_PreferencesRootViewDark_0_en","",20182,], -["features.preferences.impl.root_PreferencesRootViewDark_1_en","",20182,], -["features.preferences.impl.root_PreferencesRootViewLight_0_en","",20182,], -["features.preferences.impl.root_PreferencesRootViewLight_1_en","",20182,], +["features.preferences.impl.root_PreferencesRootViewDark_0_en","",20196,], +["features.preferences.impl.root_PreferencesRootViewDark_1_en","",20196,], +["features.preferences.impl.root_PreferencesRootViewLight_0_en","",20196,], +["features.preferences.impl.root_PreferencesRootViewLight_1_en","",20196,], ["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","",20182,], -["libraries.designsystem.components_ProgressDialog_Day_0_en","libraries.designsystem.components_ProgressDialog_Night_0_en",20182,], -["features.messages.impl.timeline.protection_ProtectedView_Day_0_en","features.messages.impl.timeline.protection_ProtectedView_Night_0_en",20182,], -["features.messages.impl.timeline.protection_ProtectedView_Day_1_en","features.messages.impl.timeline.protection_ProtectedView_Night_1_en",20182,], -["features.messages.impl.timeline.protection_ProtectedView_Day_2_en","features.messages.impl.timeline.protection_ProtectedView_Night_2_en",20182,], -["features.messages.impl.timeline.protection_ProtectedView_Day_3_en","features.messages.impl.timeline.protection_ProtectedView_Night_3_en",20182,], -["features.login.impl.screens.qrcode.confirmation_QrCodeConfirmationView_Day_0_en","features.login.impl.screens.qrcode.confirmation_QrCodeConfirmationView_Night_0_en",20182,], -["features.login.impl.screens.qrcode.confirmation_QrCodeConfirmationView_Day_1_en","features.login.impl.screens.qrcode.confirmation_QrCodeConfirmationView_Night_1_en",20182,], -["features.login.impl.screens.qrcode.confirmation_QrCodeConfirmationView_Day_2_en","features.login.impl.screens.qrcode.confirmation_QrCodeConfirmationView_Night_2_en",20182,], -["features.login.impl.screens.qrcode.error_QrCodeErrorView_Day_0_en","features.login.impl.screens.qrcode.error_QrCodeErrorView_Night_0_en",20182,], -["features.login.impl.screens.qrcode.error_QrCodeErrorView_Day_1_en","features.login.impl.screens.qrcode.error_QrCodeErrorView_Night_1_en",20182,], -["features.login.impl.screens.qrcode.error_QrCodeErrorView_Day_2_en","features.login.impl.screens.qrcode.error_QrCodeErrorView_Night_2_en",20182,], -["features.login.impl.screens.qrcode.error_QrCodeErrorView_Day_3_en","features.login.impl.screens.qrcode.error_QrCodeErrorView_Night_3_en",20182,], -["features.login.impl.screens.qrcode.error_QrCodeErrorView_Day_4_en","features.login.impl.screens.qrcode.error_QrCodeErrorView_Night_4_en",20182,], -["features.login.impl.screens.qrcode.error_QrCodeErrorView_Day_5_en","features.login.impl.screens.qrcode.error_QrCodeErrorView_Night_5_en",20182,], -["features.login.impl.screens.qrcode.error_QrCodeErrorView_Day_6_en","features.login.impl.screens.qrcode.error_QrCodeErrorView_Night_6_en",20182,], -["features.login.impl.screens.qrcode.intro_QrCodeIntroView_Day_0_en","features.login.impl.screens.qrcode.intro_QrCodeIntroView_Night_0_en",20182,], -["features.login.impl.screens.qrcode.intro_QrCodeIntroView_Day_1_en","features.login.impl.screens.qrcode.intro_QrCodeIntroView_Night_1_en",20182,], -["features.login.impl.screens.qrcode.scan_QrCodeScanView_Day_0_en","features.login.impl.screens.qrcode.scan_QrCodeScanView_Night_0_en",20182,], -["features.login.impl.screens.qrcode.scan_QrCodeScanView_Day_1_en","features.login.impl.screens.qrcode.scan_QrCodeScanView_Night_1_en",20182,], -["features.login.impl.screens.qrcode.scan_QrCodeScanView_Day_2_en","features.login.impl.screens.qrcode.scan_QrCodeScanView_Night_2_en",20182,], -["features.login.impl.screens.qrcode.scan_QrCodeScanView_Day_3_en","features.login.impl.screens.qrcode.scan_QrCodeScanView_Night_3_en",20182,], +["libraries.designsystem.components_ProgressDialogContent_Dialogs_en","",20196,], +["libraries.designsystem.components_ProgressDialog_Day_0_en","libraries.designsystem.components_ProgressDialog_Night_0_en",20196,], +["features.messages.impl.timeline.protection_ProtectedView_Day_0_en","features.messages.impl.timeline.protection_ProtectedView_Night_0_en",20196,], +["features.messages.impl.timeline.protection_ProtectedView_Day_1_en","features.messages.impl.timeline.protection_ProtectedView_Night_1_en",20196,], +["features.messages.impl.timeline.protection_ProtectedView_Day_2_en","features.messages.impl.timeline.protection_ProtectedView_Night_2_en",20196,], +["features.messages.impl.timeline.protection_ProtectedView_Day_3_en","features.messages.impl.timeline.protection_ProtectedView_Night_3_en",20196,], +["libraries.troubleshoot.impl.history_PushHistoryView_Day_0_en","libraries.troubleshoot.impl.history_PushHistoryView_Night_0_en",20199,], +["libraries.troubleshoot.impl.history_PushHistoryView_Day_1_en","libraries.troubleshoot.impl.history_PushHistoryView_Night_1_en",20199,], +["libraries.troubleshoot.impl.history_PushHistoryView_Day_2_en","libraries.troubleshoot.impl.history_PushHistoryView_Night_2_en",20199,], +["features.login.impl.screens.qrcode.confirmation_QrCodeConfirmationView_Day_0_en","features.login.impl.screens.qrcode.confirmation_QrCodeConfirmationView_Night_0_en",20196,], +["features.login.impl.screens.qrcode.confirmation_QrCodeConfirmationView_Day_1_en","features.login.impl.screens.qrcode.confirmation_QrCodeConfirmationView_Night_1_en",20196,], +["features.login.impl.screens.qrcode.confirmation_QrCodeConfirmationView_Day_2_en","features.login.impl.screens.qrcode.confirmation_QrCodeConfirmationView_Night_2_en",20196,], +["features.login.impl.screens.qrcode.error_QrCodeErrorView_Day_0_en","features.login.impl.screens.qrcode.error_QrCodeErrorView_Night_0_en",20196,], +["features.login.impl.screens.qrcode.error_QrCodeErrorView_Day_1_en","features.login.impl.screens.qrcode.error_QrCodeErrorView_Night_1_en",20196,], +["features.login.impl.screens.qrcode.error_QrCodeErrorView_Day_2_en","features.login.impl.screens.qrcode.error_QrCodeErrorView_Night_2_en",20196,], +["features.login.impl.screens.qrcode.error_QrCodeErrorView_Day_3_en","features.login.impl.screens.qrcode.error_QrCodeErrorView_Night_3_en",20196,], +["features.login.impl.screens.qrcode.error_QrCodeErrorView_Day_4_en","features.login.impl.screens.qrcode.error_QrCodeErrorView_Night_4_en",20196,], +["features.login.impl.screens.qrcode.error_QrCodeErrorView_Day_5_en","features.login.impl.screens.qrcode.error_QrCodeErrorView_Night_5_en",20196,], +["features.login.impl.screens.qrcode.error_QrCodeErrorView_Day_6_en","features.login.impl.screens.qrcode.error_QrCodeErrorView_Night_6_en",20196,], +["features.login.impl.screens.qrcode.intro_QrCodeIntroView_Day_0_en","features.login.impl.screens.qrcode.intro_QrCodeIntroView_Night_0_en",20196,], +["features.login.impl.screens.qrcode.intro_QrCodeIntroView_Day_1_en","features.login.impl.screens.qrcode.intro_QrCodeIntroView_Night_1_en",20196,], +["features.login.impl.screens.qrcode.scan_QrCodeScanView_Day_0_en","features.login.impl.screens.qrcode.scan_QrCodeScanView_Night_0_en",20196,], +["features.login.impl.screens.qrcode.scan_QrCodeScanView_Day_1_en","features.login.impl.screens.qrcode.scan_QrCodeScanView_Night_1_en",20196,], +["features.login.impl.screens.qrcode.scan_QrCodeScanView_Day_2_en","features.login.impl.screens.qrcode.scan_QrCodeScanView_Night_2_en",20196,], +["features.login.impl.screens.qrcode.scan_QrCodeScanView_Day_3_en","features.login.impl.screens.qrcode.scan_QrCodeScanView_Night_3_en",20196,], ["libraries.designsystem.theme.components_RadioButton_Toggles_en","",0,], -["features.rageshake.api.detection_RageshakeDialogContent_Day_0_en","features.rageshake.api.detection_RageshakeDialogContent_Night_0_en",20182,], -["features.rageshake.api.preferences_RageshakePreferencesView_Day_0_en","features.rageshake.api.preferences_RageshakePreferencesView_Night_0_en",20182,], +["features.rageshake.api.detection_RageshakeDialogContent_Day_0_en","features.rageshake.api.detection_RageshakeDialogContent_Night_0_en",20196,], +["features.rageshake.api.preferences_RageshakePreferencesView_Day_0_en","features.rageshake.api.preferences_RageshakePreferencesView_Night_0_en",20196,], ["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",20182,], -["features.messages.impl.timeline.components.receipt.bottomsheet_ReadReceiptBottomSheet_Day_1_en","features.messages.impl.timeline.components.receipt.bottomsheet_ReadReceiptBottomSheet_Night_1_en",20182,], -["features.messages.impl.timeline.components.receipt.bottomsheet_ReadReceiptBottomSheet_Day_2_en","features.messages.impl.timeline.components.receipt.bottomsheet_ReadReceiptBottomSheet_Night_2_en",20182,], -["features.messages.impl.timeline.components.receipt.bottomsheet_ReadReceiptBottomSheet_Day_3_en","features.messages.impl.timeline.components.receipt.bottomsheet_ReadReceiptBottomSheet_Night_3_en",20182,], -["features.messages.impl.timeline.components.receipt.bottomsheet_ReadReceiptBottomSheet_Day_4_en","features.messages.impl.timeline.components.receipt.bottomsheet_ReadReceiptBottomSheet_Night_4_en",20182,], -["features.messages.impl.timeline.components.receipt.bottomsheet_ReadReceiptBottomSheet_Day_5_en","features.messages.impl.timeline.components.receipt.bottomsheet_ReadReceiptBottomSheet_Night_5_en",20182,], -["features.securebackup.impl.setup.views_RecoveryKeyView_Day_0_en","features.securebackup.impl.setup.views_RecoveryKeyView_Night_0_en",20182,], -["features.securebackup.impl.setup.views_RecoveryKeyView_Day_10_en","features.securebackup.impl.setup.views_RecoveryKeyView_Night_10_en",20182,], -["features.securebackup.impl.setup.views_RecoveryKeyView_Day_11_en","features.securebackup.impl.setup.views_RecoveryKeyView_Night_11_en",20182,], -["features.securebackup.impl.setup.views_RecoveryKeyView_Day_12_en","features.securebackup.impl.setup.views_RecoveryKeyView_Night_12_en",20182,], -["features.securebackup.impl.setup.views_RecoveryKeyView_Day_13_en","features.securebackup.impl.setup.views_RecoveryKeyView_Night_13_en",20182,], -["features.securebackup.impl.setup.views_RecoveryKeyView_Day_1_en","features.securebackup.impl.setup.views_RecoveryKeyView_Night_1_en",20182,], -["features.securebackup.impl.setup.views_RecoveryKeyView_Day_2_en","features.securebackup.impl.setup.views_RecoveryKeyView_Night_2_en",20182,], -["features.securebackup.impl.setup.views_RecoveryKeyView_Day_3_en","features.securebackup.impl.setup.views_RecoveryKeyView_Night_3_en",20182,], -["features.securebackup.impl.setup.views_RecoveryKeyView_Day_4_en","features.securebackup.impl.setup.views_RecoveryKeyView_Night_4_en",20182,], -["features.securebackup.impl.setup.views_RecoveryKeyView_Day_5_en","features.securebackup.impl.setup.views_RecoveryKeyView_Night_5_en",20182,], -["features.securebackup.impl.setup.views_RecoveryKeyView_Day_6_en","features.securebackup.impl.setup.views_RecoveryKeyView_Night_6_en",20182,], -["features.securebackup.impl.setup.views_RecoveryKeyView_Day_7_en","features.securebackup.impl.setup.views_RecoveryKeyView_Night_7_en",20182,], -["features.securebackup.impl.setup.views_RecoveryKeyView_Day_8_en","features.securebackup.impl.setup.views_RecoveryKeyView_Night_8_en",20182,], -["features.securebackup.impl.setup.views_RecoveryKeyView_Day_9_en","features.securebackup.impl.setup.views_RecoveryKeyView_Night_9_en",20182,], +["features.messages.impl.timeline.components.receipt.bottomsheet_ReadReceiptBottomSheet_Day_0_en","features.messages.impl.timeline.components.receipt.bottomsheet_ReadReceiptBottomSheet_Night_0_en",20196,], +["features.messages.impl.timeline.components.receipt.bottomsheet_ReadReceiptBottomSheet_Day_1_en","features.messages.impl.timeline.components.receipt.bottomsheet_ReadReceiptBottomSheet_Night_1_en",20196,], +["features.messages.impl.timeline.components.receipt.bottomsheet_ReadReceiptBottomSheet_Day_2_en","features.messages.impl.timeline.components.receipt.bottomsheet_ReadReceiptBottomSheet_Night_2_en",20196,], +["features.messages.impl.timeline.components.receipt.bottomsheet_ReadReceiptBottomSheet_Day_3_en","features.messages.impl.timeline.components.receipt.bottomsheet_ReadReceiptBottomSheet_Night_3_en",20196,], +["features.messages.impl.timeline.components.receipt.bottomsheet_ReadReceiptBottomSheet_Day_4_en","features.messages.impl.timeline.components.receipt.bottomsheet_ReadReceiptBottomSheet_Night_4_en",20196,], +["features.messages.impl.timeline.components.receipt.bottomsheet_ReadReceiptBottomSheet_Day_5_en","features.messages.impl.timeline.components.receipt.bottomsheet_ReadReceiptBottomSheet_Night_5_en",20196,], +["features.securebackup.impl.setup.views_RecoveryKeyView_Day_0_en","features.securebackup.impl.setup.views_RecoveryKeyView_Night_0_en",20196,], +["features.securebackup.impl.setup.views_RecoveryKeyView_Day_10_en","features.securebackup.impl.setup.views_RecoveryKeyView_Night_10_en",20196,], +["features.securebackup.impl.setup.views_RecoveryKeyView_Day_11_en","features.securebackup.impl.setup.views_RecoveryKeyView_Night_11_en",20196,], +["features.securebackup.impl.setup.views_RecoveryKeyView_Day_12_en","features.securebackup.impl.setup.views_RecoveryKeyView_Night_12_en",20196,], +["features.securebackup.impl.setup.views_RecoveryKeyView_Day_13_en","features.securebackup.impl.setup.views_RecoveryKeyView_Night_13_en",20196,], +["features.securebackup.impl.setup.views_RecoveryKeyView_Day_1_en","features.securebackup.impl.setup.views_RecoveryKeyView_Night_1_en",20196,], +["features.securebackup.impl.setup.views_RecoveryKeyView_Day_2_en","features.securebackup.impl.setup.views_RecoveryKeyView_Night_2_en",20196,], +["features.securebackup.impl.setup.views_RecoveryKeyView_Day_3_en","features.securebackup.impl.setup.views_RecoveryKeyView_Night_3_en",20196,], +["features.securebackup.impl.setup.views_RecoveryKeyView_Day_4_en","features.securebackup.impl.setup.views_RecoveryKeyView_Night_4_en",20196,], +["features.securebackup.impl.setup.views_RecoveryKeyView_Day_5_en","features.securebackup.impl.setup.views_RecoveryKeyView_Night_5_en",20196,], +["features.securebackup.impl.setup.views_RecoveryKeyView_Day_6_en","features.securebackup.impl.setup.views_RecoveryKeyView_Night_6_en",20196,], +["features.securebackup.impl.setup.views_RecoveryKeyView_Day_7_en","features.securebackup.impl.setup.views_RecoveryKeyView_Night_7_en",20196,], +["features.securebackup.impl.setup.views_RecoveryKeyView_Day_8_en","features.securebackup.impl.setup.views_RecoveryKeyView_Night_8_en",20196,], +["features.securebackup.impl.setup.views_RecoveryKeyView_Day_9_en","features.securebackup.impl.setup.views_RecoveryKeyView_Night_9_en",20196,], ["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",20182,], -["features.messages.impl.report_ReportMessageView_Day_1_en","features.messages.impl.report_ReportMessageView_Night_1_en",20182,], -["features.messages.impl.report_ReportMessageView_Day_2_en","features.messages.impl.report_ReportMessageView_Night_2_en",20182,], -["features.messages.impl.report_ReportMessageView_Day_3_en","features.messages.impl.report_ReportMessageView_Night_3_en",20182,], -["features.messages.impl.report_ReportMessageView_Day_4_en","features.messages.impl.report_ReportMessageView_Night_4_en",20182,], -["features.messages.impl.report_ReportMessageView_Day_5_en","features.messages.impl.report_ReportMessageView_Night_5_en",20182,], -["features.securebackup.impl.reset.password_ResetIdentityPasswordView_Day_0_en","features.securebackup.impl.reset.password_ResetIdentityPasswordView_Night_0_en",20182,], -["features.securebackup.impl.reset.password_ResetIdentityPasswordView_Day_1_en","features.securebackup.impl.reset.password_ResetIdentityPasswordView_Night_1_en",20182,], -["features.securebackup.impl.reset.password_ResetIdentityPasswordView_Day_2_en","features.securebackup.impl.reset.password_ResetIdentityPasswordView_Night_2_en",20182,], -["features.securebackup.impl.reset.password_ResetIdentityPasswordView_Day_3_en","features.securebackup.impl.reset.password_ResetIdentityPasswordView_Night_3_en",20182,], -["features.securebackup.impl.reset.root_ResetIdentityRootView_Day_0_en","features.securebackup.impl.reset.root_ResetIdentityRootView_Night_0_en",20182,], -["features.securebackup.impl.reset.root_ResetIdentityRootView_Day_1_en","features.securebackup.impl.reset.root_ResetIdentityRootView_Night_1_en",20182,], +["features.messages.impl.report_ReportMessageView_Day_0_en","features.messages.impl.report_ReportMessageView_Night_0_en",20196,], +["features.messages.impl.report_ReportMessageView_Day_1_en","features.messages.impl.report_ReportMessageView_Night_1_en",20196,], +["features.messages.impl.report_ReportMessageView_Day_2_en","features.messages.impl.report_ReportMessageView_Night_2_en",20196,], +["features.messages.impl.report_ReportMessageView_Day_3_en","features.messages.impl.report_ReportMessageView_Night_3_en",20196,], +["features.messages.impl.report_ReportMessageView_Day_4_en","features.messages.impl.report_ReportMessageView_Night_4_en",20196,], +["features.messages.impl.report_ReportMessageView_Day_5_en","features.messages.impl.report_ReportMessageView_Night_5_en",20196,], +["features.securebackup.impl.reset.password_ResetIdentityPasswordView_Day_0_en","features.securebackup.impl.reset.password_ResetIdentityPasswordView_Night_0_en",20196,], +["features.securebackup.impl.reset.password_ResetIdentityPasswordView_Day_1_en","features.securebackup.impl.reset.password_ResetIdentityPasswordView_Night_1_en",20196,], +["features.securebackup.impl.reset.password_ResetIdentityPasswordView_Day_2_en","features.securebackup.impl.reset.password_ResetIdentityPasswordView_Night_2_en",20196,], +["features.securebackup.impl.reset.password_ResetIdentityPasswordView_Day_3_en","features.securebackup.impl.reset.password_ResetIdentityPasswordView_Night_3_en",20196,], +["features.securebackup.impl.reset.root_ResetIdentityRootView_Day_0_en","features.securebackup.impl.reset.root_ResetIdentityRootView_Night_0_en",20196,], +["features.securebackup.impl.reset.root_ResetIdentityRootView_Day_1_en","features.securebackup.impl.reset.root_ResetIdentityRootView_Night_1_en",20196,], ["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",20182,], -["features.messages.impl.crypto.sendfailure.resolve_ResolveVerifiedUserSendFailureView_Day_2_en","features.messages.impl.crypto.sendfailure.resolve_ResolveVerifiedUserSendFailureView_Night_2_en",20182,], -["libraries.designsystem.components.dialogs_RetryDialogContent_Dialogs_en","",20182,], -["libraries.designsystem.components.dialogs_RetryDialog_Day_0_en","libraries.designsystem.components.dialogs_RetryDialog_Night_0_en",20182,], -["features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Day_0_en","features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Night_0_en",20182,], -["features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Day_1_en","features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Night_1_en",20182,], -["features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Day_2_en","features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Night_2_en",20182,], -["features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Day_3_en","features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Night_3_en",20182,], -["features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Day_4_en","features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Night_4_en",20182,], -["features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Day_5_en","features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Night_5_en",20182,], -["features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Day_6_en","features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Night_6_en",20182,], -["features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Day_7_en","features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Night_7_en",20182,], +["features.messages.impl.crypto.sendfailure.resolve_ResolveVerifiedUserSendFailureView_Day_1_en","features.messages.impl.crypto.sendfailure.resolve_ResolveVerifiedUserSendFailureView_Night_1_en",20196,], +["features.messages.impl.crypto.sendfailure.resolve_ResolveVerifiedUserSendFailureView_Day_2_en","features.messages.impl.crypto.sendfailure.resolve_ResolveVerifiedUserSendFailureView_Night_2_en",20196,], +["libraries.designsystem.components.dialogs_RetryDialogContent_Dialogs_en","",20196,], +["libraries.designsystem.components.dialogs_RetryDialog_Day_0_en","libraries.designsystem.components.dialogs_RetryDialog_Night_0_en",20196,], +["features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Day_0_en","features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Night_0_en",20196,], +["features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Day_1_en","features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Night_1_en",20196,], +["features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Day_2_en","features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Night_2_en",20196,], +["features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Day_3_en","features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Night_3_en",20196,], +["features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Day_4_en","features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Night_4_en",20196,], +["features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Day_5_en","features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Night_5_en",20196,], +["features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Day_6_en","features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Night_6_en",20196,], +["features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Day_7_en","features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Night_7_en",20196,], ["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",20182,], -["features.roomaliasresolver.impl_RoomAliasResolverView_Day_2_en","features.roomaliasresolver.impl_RoomAliasResolverView_Night_2_en",20182,], -["features.roomdetails.impl_RoomDetailsDark_0_en","",20182,], -["features.roomdetails.impl_RoomDetailsDark_10_en","",20182,], -["features.roomdetails.impl_RoomDetailsDark_11_en","",20182,], -["features.roomdetails.impl_RoomDetailsDark_12_en","",20182,], -["features.roomdetails.impl_RoomDetailsDark_13_en","",20182,], -["features.roomdetails.impl_RoomDetailsDark_14_en","",20182,], -["features.roomdetails.impl_RoomDetailsDark_15_en","",20182,], -["features.roomdetails.impl_RoomDetailsDark_16_en","",20182,], -["features.roomdetails.impl_RoomDetailsDark_17_en","",20182,], -["features.roomdetails.impl_RoomDetailsDark_18_en","",20182,], -["features.roomdetails.impl_RoomDetailsDark_1_en","",20182,], -["features.roomdetails.impl_RoomDetailsDark_2_en","",20182,], -["features.roomdetails.impl_RoomDetailsDark_3_en","",20182,], -["features.roomdetails.impl_RoomDetailsDark_4_en","",20182,], -["features.roomdetails.impl_RoomDetailsDark_5_en","",20182,], -["features.roomdetails.impl_RoomDetailsDark_6_en","",20182,], -["features.roomdetails.impl_RoomDetailsDark_7_en","",20182,], -["features.roomdetails.impl_RoomDetailsDark_8_en","",20182,], -["features.roomdetails.impl_RoomDetailsDark_9_en","",20182,], -["features.roomdetails.impl.edit_RoomDetailsEditView_Day_0_en","features.roomdetails.impl.edit_RoomDetailsEditView_Night_0_en",20182,], -["features.roomdetails.impl.edit_RoomDetailsEditView_Day_1_en","features.roomdetails.impl.edit_RoomDetailsEditView_Night_1_en",20182,], -["features.roomdetails.impl.edit_RoomDetailsEditView_Day_2_en","features.roomdetails.impl.edit_RoomDetailsEditView_Night_2_en",20182,], -["features.roomdetails.impl.edit_RoomDetailsEditView_Day_3_en","features.roomdetails.impl.edit_RoomDetailsEditView_Night_3_en",20182,], -["features.roomdetails.impl.edit_RoomDetailsEditView_Day_4_en","features.roomdetails.impl.edit_RoomDetailsEditView_Night_4_en",20182,], -["features.roomdetails.impl.edit_RoomDetailsEditView_Day_5_en","features.roomdetails.impl.edit_RoomDetailsEditView_Night_5_en",20182,], -["features.roomdetails.impl.edit_RoomDetailsEditView_Day_6_en","features.roomdetails.impl.edit_RoomDetailsEditView_Night_6_en",20182,], -["features.roomdetails.impl.edit_RoomDetailsEditView_Day_7_en","features.roomdetails.impl.edit_RoomDetailsEditView_Night_7_en",20182,], -["features.roomdetails.impl_RoomDetails_0_en","",20182,], -["features.roomdetails.impl_RoomDetails_10_en","",20182,], -["features.roomdetails.impl_RoomDetails_11_en","",20182,], -["features.roomdetails.impl_RoomDetails_12_en","",20182,], -["features.roomdetails.impl_RoomDetails_13_en","",20182,], -["features.roomdetails.impl_RoomDetails_14_en","",20182,], -["features.roomdetails.impl_RoomDetails_15_en","",20182,], -["features.roomdetails.impl_RoomDetails_16_en","",20182,], -["features.roomdetails.impl_RoomDetails_17_en","",20182,], -["features.roomdetails.impl_RoomDetails_18_en","",20182,], -["features.roomdetails.impl_RoomDetails_1_en","",20182,], -["features.roomdetails.impl_RoomDetails_2_en","",20182,], -["features.roomdetails.impl_RoomDetails_3_en","",20182,], -["features.roomdetails.impl_RoomDetails_4_en","",20182,], -["features.roomdetails.impl_RoomDetails_5_en","",20182,], -["features.roomdetails.impl_RoomDetails_6_en","",20182,], -["features.roomdetails.impl_RoomDetails_7_en","",20182,], -["features.roomdetails.impl_RoomDetails_8_en","",20182,], -["features.roomdetails.impl_RoomDetails_9_en","",20182,], -["features.roomdirectory.impl.root_RoomDirectoryView_Day_0_en","features.roomdirectory.impl.root_RoomDirectoryView_Night_0_en",20182,], -["features.roomdirectory.impl.root_RoomDirectoryView_Day_1_en","features.roomdirectory.impl.root_RoomDirectoryView_Night_1_en",20182,], -["features.roomdirectory.impl.root_RoomDirectoryView_Day_2_en","features.roomdirectory.impl.root_RoomDirectoryView_Night_2_en",20182,], -["features.roomdetails.impl.invite_RoomInviteMembersView_Day_0_en","features.roomdetails.impl.invite_RoomInviteMembersView_Night_0_en",20182,], -["features.roomdetails.impl.invite_RoomInviteMembersView_Day_1_en","features.roomdetails.impl.invite_RoomInviteMembersView_Night_1_en",20182,], -["features.roomdetails.impl.invite_RoomInviteMembersView_Day_2_en","features.roomdetails.impl.invite_RoomInviteMembersView_Night_2_en",20182,], -["features.roomdetails.impl.invite_RoomInviteMembersView_Day_3_en","features.roomdetails.impl.invite_RoomInviteMembersView_Night_3_en",20182,], -["features.roomdetails.impl.invite_RoomInviteMembersView_Day_4_en","features.roomdetails.impl.invite_RoomInviteMembersView_Night_4_en",20182,], -["features.roomdetails.impl.invite_RoomInviteMembersView_Day_5_en","features.roomdetails.impl.invite_RoomInviteMembersView_Night_5_en",20182,], -["features.roomdetails.impl.invite_RoomInviteMembersView_Day_6_en","features.roomdetails.impl.invite_RoomInviteMembersView_Night_6_en",20182,], -["features.roomdetails.impl.invite_RoomInviteMembersView_Day_7_en","features.roomdetails.impl.invite_RoomInviteMembersView_Night_7_en",20182,], -["features.roomlist.impl.components_RoomListContentView_Day_0_en","features.roomlist.impl.components_RoomListContentView_Night_0_en",20182,], -["features.roomlist.impl.components_RoomListContentView_Day_1_en","features.roomlist.impl.components_RoomListContentView_Night_1_en",20182,], +["features.roomaliasresolver.impl_RoomAliasResolverView_Day_1_en","features.roomaliasresolver.impl_RoomAliasResolverView_Night_1_en",20196,], +["features.roomaliasresolver.impl_RoomAliasResolverView_Day_2_en","features.roomaliasresolver.impl_RoomAliasResolverView_Night_2_en",20196,], +["features.roomdetails.impl_RoomDetailsDark_0_en","",20196,], +["features.roomdetails.impl_RoomDetailsDark_10_en","",20196,], +["features.roomdetails.impl_RoomDetailsDark_11_en","",20196,], +["features.roomdetails.impl_RoomDetailsDark_12_en","",20196,], +["features.roomdetails.impl_RoomDetailsDark_13_en","",20196,], +["features.roomdetails.impl_RoomDetailsDark_14_en","",20196,], +["features.roomdetails.impl_RoomDetailsDark_15_en","",20196,], +["features.roomdetails.impl_RoomDetailsDark_16_en","",20196,], +["features.roomdetails.impl_RoomDetailsDark_17_en","",20196,], +["features.roomdetails.impl_RoomDetailsDark_18_en","",20196,], +["features.roomdetails.impl_RoomDetailsDark_1_en","",20196,], +["features.roomdetails.impl_RoomDetailsDark_2_en","",20196,], +["features.roomdetails.impl_RoomDetailsDark_3_en","",20196,], +["features.roomdetails.impl_RoomDetailsDark_4_en","",20196,], +["features.roomdetails.impl_RoomDetailsDark_5_en","",20196,], +["features.roomdetails.impl_RoomDetailsDark_6_en","",20196,], +["features.roomdetails.impl_RoomDetailsDark_7_en","",20196,], +["features.roomdetails.impl_RoomDetailsDark_8_en","",20196,], +["features.roomdetails.impl_RoomDetailsDark_9_en","",20196,], +["features.roomdetails.impl.edit_RoomDetailsEditView_Day_0_en","features.roomdetails.impl.edit_RoomDetailsEditView_Night_0_en",20196,], +["features.roomdetails.impl.edit_RoomDetailsEditView_Day_1_en","features.roomdetails.impl.edit_RoomDetailsEditView_Night_1_en",20196,], +["features.roomdetails.impl.edit_RoomDetailsEditView_Day_2_en","features.roomdetails.impl.edit_RoomDetailsEditView_Night_2_en",20196,], +["features.roomdetails.impl.edit_RoomDetailsEditView_Day_3_en","features.roomdetails.impl.edit_RoomDetailsEditView_Night_3_en",20196,], +["features.roomdetails.impl.edit_RoomDetailsEditView_Day_4_en","features.roomdetails.impl.edit_RoomDetailsEditView_Night_4_en",20196,], +["features.roomdetails.impl.edit_RoomDetailsEditView_Day_5_en","features.roomdetails.impl.edit_RoomDetailsEditView_Night_5_en",20196,], +["features.roomdetails.impl.edit_RoomDetailsEditView_Day_6_en","features.roomdetails.impl.edit_RoomDetailsEditView_Night_6_en",20196,], +["features.roomdetails.impl.edit_RoomDetailsEditView_Day_7_en","features.roomdetails.impl.edit_RoomDetailsEditView_Night_7_en",20196,], +["features.roomdetails.impl_RoomDetails_0_en","",20196,], +["features.roomdetails.impl_RoomDetails_10_en","",20196,], +["features.roomdetails.impl_RoomDetails_11_en","",20196,], +["features.roomdetails.impl_RoomDetails_12_en","",20196,], +["features.roomdetails.impl_RoomDetails_13_en","",20196,], +["features.roomdetails.impl_RoomDetails_14_en","",20196,], +["features.roomdetails.impl_RoomDetails_15_en","",20196,], +["features.roomdetails.impl_RoomDetails_16_en","",20196,], +["features.roomdetails.impl_RoomDetails_17_en","",20196,], +["features.roomdetails.impl_RoomDetails_18_en","",20196,], +["features.roomdetails.impl_RoomDetails_1_en","",20196,], +["features.roomdetails.impl_RoomDetails_2_en","",20196,], +["features.roomdetails.impl_RoomDetails_3_en","",20196,], +["features.roomdetails.impl_RoomDetails_4_en","",20196,], +["features.roomdetails.impl_RoomDetails_5_en","",20196,], +["features.roomdetails.impl_RoomDetails_6_en","",20196,], +["features.roomdetails.impl_RoomDetails_7_en","",20196,], +["features.roomdetails.impl_RoomDetails_8_en","",20196,], +["features.roomdetails.impl_RoomDetails_9_en","",20196,], +["features.roomdirectory.impl.root_RoomDirectoryView_Day_0_en","features.roomdirectory.impl.root_RoomDirectoryView_Night_0_en",20196,], +["features.roomdirectory.impl.root_RoomDirectoryView_Day_1_en","features.roomdirectory.impl.root_RoomDirectoryView_Night_1_en",20196,], +["features.roomdirectory.impl.root_RoomDirectoryView_Day_2_en","features.roomdirectory.impl.root_RoomDirectoryView_Night_2_en",20196,], +["features.roomdetails.impl.invite_RoomInviteMembersView_Day_0_en","features.roomdetails.impl.invite_RoomInviteMembersView_Night_0_en",20196,], +["features.roomdetails.impl.invite_RoomInviteMembersView_Day_1_en","features.roomdetails.impl.invite_RoomInviteMembersView_Night_1_en",20196,], +["features.roomdetails.impl.invite_RoomInviteMembersView_Day_2_en","features.roomdetails.impl.invite_RoomInviteMembersView_Night_2_en",20196,], +["features.roomdetails.impl.invite_RoomInviteMembersView_Day_3_en","features.roomdetails.impl.invite_RoomInviteMembersView_Night_3_en",20196,], +["features.roomdetails.impl.invite_RoomInviteMembersView_Day_4_en","features.roomdetails.impl.invite_RoomInviteMembersView_Night_4_en",20196,], +["features.roomdetails.impl.invite_RoomInviteMembersView_Day_5_en","features.roomdetails.impl.invite_RoomInviteMembersView_Night_5_en",20196,], +["features.roomdetails.impl.invite_RoomInviteMembersView_Day_6_en","features.roomdetails.impl.invite_RoomInviteMembersView_Night_6_en",20196,], +["features.roomdetails.impl.invite_RoomInviteMembersView_Day_7_en","features.roomdetails.impl.invite_RoomInviteMembersView_Night_7_en",20196,], +["features.roomlist.impl.components_RoomListContentView_Day_0_en","features.roomlist.impl.components_RoomListContentView_Night_0_en",20196,], +["features.roomlist.impl.components_RoomListContentView_Day_1_en","features.roomlist.impl.components_RoomListContentView_Night_1_en",20196,], ["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",20182,], -["features.roomlist.impl.components_RoomListContentView_Day_4_en","features.roomlist.impl.components_RoomListContentView_Night_4_en",20182,], -["features.roomlist.impl.filters_RoomListFiltersView_Day_0_en","features.roomlist.impl.filters_RoomListFiltersView_Night_0_en",20182,], -["features.roomlist.impl.filters_RoomListFiltersView_Day_1_en","features.roomlist.impl.filters_RoomListFiltersView_Night_1_en",20182,], -["features.roomlist.impl_RoomListModalBottomSheetContent_Day_0_en","features.roomlist.impl_RoomListModalBottomSheetContent_Night_0_en",20182,], -["features.roomlist.impl_RoomListModalBottomSheetContent_Day_1_en","features.roomlist.impl_RoomListModalBottomSheetContent_Night_1_en",20182,], -["features.roomlist.impl_RoomListModalBottomSheetContent_Day_2_en","features.roomlist.impl_RoomListModalBottomSheetContent_Night_2_en",20182,], +["features.roomlist.impl.components_RoomListContentView_Day_3_en","features.roomlist.impl.components_RoomListContentView_Night_3_en",20196,], +["features.roomlist.impl.components_RoomListContentView_Day_4_en","features.roomlist.impl.components_RoomListContentView_Night_4_en",20196,], +["features.roomlist.impl.filters_RoomListFiltersView_Day_0_en","features.roomlist.impl.filters_RoomListFiltersView_Night_0_en",20196,], +["features.roomlist.impl.filters_RoomListFiltersView_Day_1_en","features.roomlist.impl.filters_RoomListFiltersView_Night_1_en",20196,], +["features.roomlist.impl_RoomListModalBottomSheetContent_Day_0_en","features.roomlist.impl_RoomListModalBottomSheetContent_Night_0_en",20196,], +["features.roomlist.impl_RoomListModalBottomSheetContent_Day_1_en","features.roomlist.impl_RoomListModalBottomSheetContent_Night_1_en",20196,], +["features.roomlist.impl_RoomListModalBottomSheetContent_Day_2_en","features.roomlist.impl_RoomListModalBottomSheetContent_Night_2_en",20196,], ["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",20182,], -["features.roomlist.impl_RoomListView_Day_0_en","features.roomlist.impl_RoomListView_Night_0_en",20182,], -["features.roomlist.impl_RoomListView_Day_10_en","features.roomlist.impl_RoomListView_Night_10_en",20182,], -["features.roomlist.impl_RoomListView_Day_1_en","features.roomlist.impl_RoomListView_Night_1_en",20182,], -["features.roomlist.impl_RoomListView_Day_2_en","features.roomlist.impl_RoomListView_Night_2_en",20182,], -["features.roomlist.impl_RoomListView_Day_3_en","features.roomlist.impl_RoomListView_Night_3_en",20182,], -["features.roomlist.impl_RoomListView_Day_4_en","features.roomlist.impl_RoomListView_Night_4_en",20182,], -["features.roomlist.impl_RoomListView_Day_5_en","features.roomlist.impl_RoomListView_Night_5_en",20182,], -["features.roomlist.impl_RoomListView_Day_6_en","features.roomlist.impl_RoomListView_Night_6_en",20182,], -["features.roomlist.impl_RoomListView_Day_7_en","features.roomlist.impl_RoomListView_Night_7_en",20182,], +["features.roomlist.impl.search_RoomListSearchContent_Day_1_en","features.roomlist.impl.search_RoomListSearchContent_Night_1_en",20196,], +["features.roomlist.impl_RoomListView_Day_0_en","features.roomlist.impl_RoomListView_Night_0_en",20196,], +["features.roomlist.impl_RoomListView_Day_10_en","features.roomlist.impl_RoomListView_Night_10_en",20196,], +["features.roomlist.impl_RoomListView_Day_1_en","features.roomlist.impl_RoomListView_Night_1_en",20196,], +["features.roomlist.impl_RoomListView_Day_2_en","features.roomlist.impl_RoomListView_Night_2_en",20196,], +["features.roomlist.impl_RoomListView_Day_3_en","features.roomlist.impl_RoomListView_Night_3_en",20196,], +["features.roomlist.impl_RoomListView_Day_4_en","features.roomlist.impl_RoomListView_Night_4_en",20196,], +["features.roomlist.impl_RoomListView_Day_5_en","features.roomlist.impl_RoomListView_Night_5_en",20196,], +["features.roomlist.impl_RoomListView_Day_6_en","features.roomlist.impl_RoomListView_Night_6_en",20196,], +["features.roomlist.impl_RoomListView_Day_7_en","features.roomlist.impl_RoomListView_Night_7_en",20196,], ["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",20182,], -["features.roomdetails.impl.members_RoomMemberListViewBanned_Day_1_en","features.roomdetails.impl.members_RoomMemberListViewBanned_Night_1_en",20182,], -["features.roomdetails.impl.members_RoomMemberListViewBanned_Day_2_en","features.roomdetails.impl.members_RoomMemberListViewBanned_Night_2_en",20182,], -["features.roomdetails.impl.members_RoomMemberListView_Day_0_en","features.roomdetails.impl.members_RoomMemberListView_Night_0_en",20182,], -["features.roomdetails.impl.members_RoomMemberListView_Day_1_en","features.roomdetails.impl.members_RoomMemberListView_Night_1_en",20182,], -["features.roomdetails.impl.members_RoomMemberListView_Day_2_en","features.roomdetails.impl.members_RoomMemberListView_Night_2_en",20182,], -["features.roomdetails.impl.members_RoomMemberListView_Day_3_en","features.roomdetails.impl.members_RoomMemberListView_Night_3_en",20182,], -["features.roomdetails.impl.members_RoomMemberListView_Day_4_en","features.roomdetails.impl.members_RoomMemberListView_Night_4_en",20182,], -["features.roomdetails.impl.members_RoomMemberListView_Day_5_en","features.roomdetails.impl.members_RoomMemberListView_Night_5_en",20182,], +["features.roomdetails.impl.members_RoomMemberListViewBanned_Day_0_en","features.roomdetails.impl.members_RoomMemberListViewBanned_Night_0_en",20196,], +["features.roomdetails.impl.members_RoomMemberListViewBanned_Day_1_en","features.roomdetails.impl.members_RoomMemberListViewBanned_Night_1_en",20196,], +["features.roomdetails.impl.members_RoomMemberListViewBanned_Day_2_en","features.roomdetails.impl.members_RoomMemberListViewBanned_Night_2_en",20196,], +["features.roomdetails.impl.members_RoomMemberListView_Day_0_en","features.roomdetails.impl.members_RoomMemberListView_Night_0_en",20196,], +["features.roomdetails.impl.members_RoomMemberListView_Day_1_en","features.roomdetails.impl.members_RoomMemberListView_Night_1_en",20196,], +["features.roomdetails.impl.members_RoomMemberListView_Day_2_en","features.roomdetails.impl.members_RoomMemberListView_Night_2_en",20196,], +["features.roomdetails.impl.members_RoomMemberListView_Day_3_en","features.roomdetails.impl.members_RoomMemberListView_Night_3_en",20196,], +["features.roomdetails.impl.members_RoomMemberListView_Day_4_en","features.roomdetails.impl.members_RoomMemberListView_Night_4_en",20196,], +["features.roomdetails.impl.members_RoomMemberListView_Day_5_en","features.roomdetails.impl.members_RoomMemberListView_Night_5_en",20196,], ["features.roomdetails.impl.members_RoomMemberListView_Day_6_en","features.roomdetails.impl.members_RoomMemberListView_Night_6_en",0,], -["features.roomdetails.impl.members_RoomMemberListView_Day_7_en","features.roomdetails.impl.members_RoomMemberListView_Night_7_en",20182,], -["features.roomdetails.impl.members_RoomMemberListView_Day_8_en","features.roomdetails.impl.members_RoomMemberListView_Night_8_en",20182,], -["features.roomdetails.impl.members_RoomMemberListView_Day_9_en","features.roomdetails.impl.members_RoomMemberListView_Night_9_en",20182,], +["features.roomdetails.impl.members_RoomMemberListView_Day_7_en","features.roomdetails.impl.members_RoomMemberListView_Night_7_en",20196,], +["features.roomdetails.impl.members_RoomMemberListView_Day_8_en","features.roomdetails.impl.members_RoomMemberListView_Night_8_en",20196,], +["features.roomdetails.impl.members_RoomMemberListView_Day_9_en","features.roomdetails.impl.members_RoomMemberListView_Night_9_en",20196,], ["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",20182,], +["features.roomdetails.impl.members.moderation_RoomMembersModerationView_Day_0_en","features.roomdetails.impl.members.moderation_RoomMembersModerationView_Night_0_en",20196,], ["features.roomdetails.impl.members.moderation_RoomMembersModerationView_Day_10_en","features.roomdetails.impl.members.moderation_RoomMembersModerationView_Night_10_en",0,], -["features.roomdetails.impl.members.moderation_RoomMembersModerationView_Day_1_en","features.roomdetails.impl.members.moderation_RoomMembersModerationView_Night_1_en",20182,], -["features.roomdetails.impl.members.moderation_RoomMembersModerationView_Day_2_en","features.roomdetails.impl.members.moderation_RoomMembersModerationView_Night_2_en",20182,], -["features.roomdetails.impl.members.moderation_RoomMembersModerationView_Day_3_en","features.roomdetails.impl.members.moderation_RoomMembersModerationView_Night_3_en",20182,], -["features.roomdetails.impl.members.moderation_RoomMembersModerationView_Day_4_en","features.roomdetails.impl.members.moderation_RoomMembersModerationView_Night_4_en",20182,], -["features.roomdetails.impl.members.moderation_RoomMembersModerationView_Day_5_en","features.roomdetails.impl.members.moderation_RoomMembersModerationView_Night_5_en",20185,], -["features.roomdetails.impl.members.moderation_RoomMembersModerationView_Day_6_en","features.roomdetails.impl.members.moderation_RoomMembersModerationView_Night_6_en",20182,], +["features.roomdetails.impl.members.moderation_RoomMembersModerationView_Day_1_en","features.roomdetails.impl.members.moderation_RoomMembersModerationView_Night_1_en",20196,], +["features.roomdetails.impl.members.moderation_RoomMembersModerationView_Day_2_en","features.roomdetails.impl.members.moderation_RoomMembersModerationView_Night_2_en",20196,], +["features.roomdetails.impl.members.moderation_RoomMembersModerationView_Day_3_en","features.roomdetails.impl.members.moderation_RoomMembersModerationView_Night_3_en",20196,], +["features.roomdetails.impl.members.moderation_RoomMembersModerationView_Day_4_en","features.roomdetails.impl.members.moderation_RoomMembersModerationView_Night_4_en",20196,], +["features.roomdetails.impl.members.moderation_RoomMembersModerationView_Day_5_en","features.roomdetails.impl.members.moderation_RoomMembersModerationView_Night_5_en",20196,], +["features.roomdetails.impl.members.moderation_RoomMembersModerationView_Day_6_en","features.roomdetails.impl.members.moderation_RoomMembersModerationView_Night_6_en",20196,], ["features.roomdetails.impl.members.moderation_RoomMembersModerationView_Day_7_en","features.roomdetails.impl.members.moderation_RoomMembersModerationView_Night_7_en",0,], -["features.roomdetails.impl.members.moderation_RoomMembersModerationView_Day_8_en","features.roomdetails.impl.members.moderation_RoomMembersModerationView_Night_8_en",20182,], -["features.roomdetails.impl.members.moderation_RoomMembersModerationView_Day_9_en","features.roomdetails.impl.members.moderation_RoomMembersModerationView_Night_9_en",20185,], -["features.roomdetails.impl.notificationsettings_RoomNotificationSettingsOption_Day_0_en","features.roomdetails.impl.notificationsettings_RoomNotificationSettingsOption_Night_0_en",20182,], -["features.roomdetails.impl.notificationsettings_RoomNotificationSettingsView_Day_0_en","features.roomdetails.impl.notificationsettings_RoomNotificationSettingsView_Night_0_en",20182,], -["features.roomdetails.impl.notificationsettings_RoomNotificationSettingsView_Day_1_en","features.roomdetails.impl.notificationsettings_RoomNotificationSettingsView_Night_1_en",20182,], -["features.roomdetails.impl.notificationsettings_RoomNotificationSettingsView_Day_2_en","features.roomdetails.impl.notificationsettings_RoomNotificationSettingsView_Night_2_en",20182,], -["features.roomdetails.impl.notificationsettings_RoomNotificationSettingsView_Day_3_en","features.roomdetails.impl.notificationsettings_RoomNotificationSettingsView_Night_3_en",20182,], -["features.roomdetails.impl.notificationsettings_RoomNotificationSettingsView_Day_4_en","features.roomdetails.impl.notificationsettings_RoomNotificationSettingsView_Night_4_en",20182,], -["features.roomdetails.impl.notificationsettings_RoomNotificationSettingsView_Day_5_en","features.roomdetails.impl.notificationsettings_RoomNotificationSettingsView_Night_5_en",20182,], -["features.roomdetails.impl.notificationsettings_RoomNotificationSettingsView_Day_6_en","features.roomdetails.impl.notificationsettings_RoomNotificationSettingsView_Night_6_en",20182,], -["libraries.roomselect.impl_RoomSelectView_Day_0_en","libraries.roomselect.impl_RoomSelectView_Night_0_en",20182,], -["libraries.roomselect.impl_RoomSelectView_Day_1_en","libraries.roomselect.impl_RoomSelectView_Night_1_en",20182,], -["libraries.roomselect.impl_RoomSelectView_Day_2_en","libraries.roomselect.impl_RoomSelectView_Night_2_en",20182,], -["libraries.roomselect.impl_RoomSelectView_Day_3_en","libraries.roomselect.impl_RoomSelectView_Night_3_en",20182,], -["libraries.roomselect.impl_RoomSelectView_Day_4_en","libraries.roomselect.impl_RoomSelectView_Night_4_en",20182,], -["libraries.roomselect.impl_RoomSelectView_Day_5_en","libraries.roomselect.impl_RoomSelectView_Night_5_en",20182,], +["features.roomdetails.impl.members.moderation_RoomMembersModerationView_Day_8_en","features.roomdetails.impl.members.moderation_RoomMembersModerationView_Night_8_en",20196,], +["features.roomdetails.impl.members.moderation_RoomMembersModerationView_Day_9_en","features.roomdetails.impl.members.moderation_RoomMembersModerationView_Night_9_en",20196,], +["features.roomdetails.impl.notificationsettings_RoomNotificationSettingsOption_Day_0_en","features.roomdetails.impl.notificationsettings_RoomNotificationSettingsOption_Night_0_en",20196,], +["features.roomdetails.impl.notificationsettings_RoomNotificationSettingsView_Day_0_en","features.roomdetails.impl.notificationsettings_RoomNotificationSettingsView_Night_0_en",20196,], +["features.roomdetails.impl.notificationsettings_RoomNotificationSettingsView_Day_1_en","features.roomdetails.impl.notificationsettings_RoomNotificationSettingsView_Night_1_en",20196,], +["features.roomdetails.impl.notificationsettings_RoomNotificationSettingsView_Day_2_en","features.roomdetails.impl.notificationsettings_RoomNotificationSettingsView_Night_2_en",20196,], +["features.roomdetails.impl.notificationsettings_RoomNotificationSettingsView_Day_3_en","features.roomdetails.impl.notificationsettings_RoomNotificationSettingsView_Night_3_en",20196,], +["features.roomdetails.impl.notificationsettings_RoomNotificationSettingsView_Day_4_en","features.roomdetails.impl.notificationsettings_RoomNotificationSettingsView_Night_4_en",20196,], +["features.roomdetails.impl.notificationsettings_RoomNotificationSettingsView_Day_5_en","features.roomdetails.impl.notificationsettings_RoomNotificationSettingsView_Night_5_en",20196,], +["features.roomdetails.impl.notificationsettings_RoomNotificationSettingsView_Day_6_en","features.roomdetails.impl.notificationsettings_RoomNotificationSettingsView_Night_6_en",20196,], +["libraries.roomselect.impl_RoomSelectView_Day_0_en","libraries.roomselect.impl_RoomSelectView_Night_0_en",20196,], +["libraries.roomselect.impl_RoomSelectView_Day_1_en","libraries.roomselect.impl_RoomSelectView_Night_1_en",20196,], +["libraries.roomselect.impl_RoomSelectView_Day_2_en","libraries.roomselect.impl_RoomSelectView_Night_2_en",20196,], +["libraries.roomselect.impl_RoomSelectView_Day_3_en","libraries.roomselect.impl_RoomSelectView_Night_3_en",20196,], +["libraries.roomselect.impl_RoomSelectView_Day_4_en","libraries.roomselect.impl_RoomSelectView_Night_4_en",20196,], +["libraries.roomselect.impl_RoomSelectView_Day_5_en","libraries.roomselect.impl_RoomSelectView_Night_5_en",20196,], ["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,], @@ -1015,12 +1027,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",20182,], -["features.roomlist.impl.components_RoomSummaryRow_Day_2_en","features.roomlist.impl.components_RoomSummaryRow_Night_2_en",20182,], -["features.roomlist.impl.components_RoomSummaryRow_Day_30_en","features.roomlist.impl.components_RoomSummaryRow_Night_30_en",20182,], -["features.roomlist.impl.components_RoomSummaryRow_Day_31_en","features.roomlist.impl.components_RoomSummaryRow_Night_31_en",20182,], -["features.roomlist.impl.components_RoomSummaryRow_Day_32_en","features.roomlist.impl.components_RoomSummaryRow_Night_32_en",20182,], -["features.roomlist.impl.components_RoomSummaryRow_Day_33_en","features.roomlist.impl.components_RoomSummaryRow_Night_33_en",20182,], +["features.roomlist.impl.components_RoomSummaryRow_Day_29_en","features.roomlist.impl.components_RoomSummaryRow_Night_29_en",20196,], +["features.roomlist.impl.components_RoomSummaryRow_Day_2_en","features.roomlist.impl.components_RoomSummaryRow_Night_2_en",20196,], +["features.roomlist.impl.components_RoomSummaryRow_Day_30_en","features.roomlist.impl.components_RoomSummaryRow_Night_30_en",20196,], +["features.roomlist.impl.components_RoomSummaryRow_Day_31_en","features.roomlist.impl.components_RoomSummaryRow_Night_31_en",20196,], +["features.roomlist.impl.components_RoomSummaryRow_Day_32_en","features.roomlist.impl.components_RoomSummaryRow_Night_32_en",20196,], +["features.roomlist.impl.components_RoomSummaryRow_Day_33_en","features.roomlist.impl.components_RoomSummaryRow_Night_33_en",20196,], ["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,], @@ -1028,77 +1040,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",20182,], -["appnav.root_RootView_Day_1_en","appnav.root_RootView_Night_1_en",20182,], -["appnav.root_RootView_Day_2_en","appnav.root_RootView_Night_2_en",20182,], +["appnav.root_RootView_Day_0_en","appnav.root_RootView_Night_0_en",20196,], +["appnav.root_RootView_Day_1_en","appnav.root_RootView_Night_1_en",20196,], +["appnav.root_RootView_Day_2_en","appnav.root_RootView_Night_2_en",20196,], ["appicon.enterprise_RoundIcon_en","",0,], ["appicon.element_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",20182,], -["features.login.impl.screens.searchaccountprovider_SearchAccountProviderView_Day_0_en","features.login.impl.screens.searchaccountprovider_SearchAccountProviderView_Night_0_en",20182,], -["features.login.impl.screens.searchaccountprovider_SearchAccountProviderView_Day_1_en","features.login.impl.screens.searchaccountprovider_SearchAccountProviderView_Night_1_en",20182,], +["features.verifysession.impl.emoji_SasEmojis_Day_0_en","features.verifysession.impl.emoji_SasEmojis_Night_0_en",20196,], +["features.login.impl.screens.searchaccountprovider_SearchAccountProviderView_Day_0_en","features.login.impl.screens.searchaccountprovider_SearchAccountProviderView_Night_0_en",20196,], +["features.login.impl.screens.searchaccountprovider_SearchAccountProviderView_Day_1_en","features.login.impl.screens.searchaccountprovider_SearchAccountProviderView_Night_1_en",20196,], ["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","",20182,], +["libraries.designsystem.theme.components_SearchBarActiveWithNoResults_Search_views_en","",20196,], ["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","",20182,], -["features.createroom.impl.components_SearchSingleUserResultItem_en","",20182,], -["features.securebackup.impl.disable_SecureBackupDisableView_Day_0_en","features.securebackup.impl.disable_SecureBackupDisableView_Night_0_en",20182,], -["features.securebackup.impl.disable_SecureBackupDisableView_Day_1_en","features.securebackup.impl.disable_SecureBackupDisableView_Night_1_en",20182,], -["features.securebackup.impl.disable_SecureBackupDisableView_Day_2_en","features.securebackup.impl.disable_SecureBackupDisableView_Night_2_en",20182,], -["features.securebackup.impl.disable_SecureBackupDisableView_Day_3_en","features.securebackup.impl.disable_SecureBackupDisableView_Night_3_en",20182,], -["features.securebackup.impl.enter_SecureBackupEnterRecoveryKeyView_Day_0_en","features.securebackup.impl.enter_SecureBackupEnterRecoveryKeyView_Night_0_en",20182,], -["features.securebackup.impl.enter_SecureBackupEnterRecoveryKeyView_Day_1_en","features.securebackup.impl.enter_SecureBackupEnterRecoveryKeyView_Night_1_en",20182,], -["features.securebackup.impl.enter_SecureBackupEnterRecoveryKeyView_Day_2_en","features.securebackup.impl.enter_SecureBackupEnterRecoveryKeyView_Night_2_en",20182,], -["features.securebackup.impl.enter_SecureBackupEnterRecoveryKeyView_Day_3_en","features.securebackup.impl.enter_SecureBackupEnterRecoveryKeyView_Night_3_en",20182,], -["features.securebackup.impl.root_SecureBackupRootView_Day_0_en","features.securebackup.impl.root_SecureBackupRootView_Night_0_en",20182,], -["features.securebackup.impl.root_SecureBackupRootView_Day_10_en","features.securebackup.impl.root_SecureBackupRootView_Night_10_en",20182,], -["features.securebackup.impl.root_SecureBackupRootView_Day_11_en","features.securebackup.impl.root_SecureBackupRootView_Night_11_en",20182,], -["features.securebackup.impl.root_SecureBackupRootView_Day_12_en","features.securebackup.impl.root_SecureBackupRootView_Night_12_en",20182,], -["features.securebackup.impl.root_SecureBackupRootView_Day_13_en","features.securebackup.impl.root_SecureBackupRootView_Night_13_en",20182,], -["features.securebackup.impl.root_SecureBackupRootView_Day_14_en","features.securebackup.impl.root_SecureBackupRootView_Night_14_en",20182,], -["features.securebackup.impl.root_SecureBackupRootView_Day_15_en","features.securebackup.impl.root_SecureBackupRootView_Night_15_en",20182,], -["features.securebackup.impl.root_SecureBackupRootView_Day_16_en","features.securebackup.impl.root_SecureBackupRootView_Night_16_en",20182,], -["features.securebackup.impl.root_SecureBackupRootView_Day_17_en","features.securebackup.impl.root_SecureBackupRootView_Night_17_en",20182,], -["features.securebackup.impl.root_SecureBackupRootView_Day_1_en","features.securebackup.impl.root_SecureBackupRootView_Night_1_en",20182,], -["features.securebackup.impl.root_SecureBackupRootView_Day_2_en","features.securebackup.impl.root_SecureBackupRootView_Night_2_en",20182,], -["features.securebackup.impl.root_SecureBackupRootView_Day_3_en","features.securebackup.impl.root_SecureBackupRootView_Night_3_en",20182,], -["features.securebackup.impl.root_SecureBackupRootView_Day_4_en","features.securebackup.impl.root_SecureBackupRootView_Night_4_en",20182,], -["features.securebackup.impl.root_SecureBackupRootView_Day_5_en","features.securebackup.impl.root_SecureBackupRootView_Night_5_en",20182,], -["features.securebackup.impl.root_SecureBackupRootView_Day_6_en","features.securebackup.impl.root_SecureBackupRootView_Night_6_en",20182,], -["features.securebackup.impl.root_SecureBackupRootView_Day_7_en","features.securebackup.impl.root_SecureBackupRootView_Night_7_en",20182,], -["features.securebackup.impl.root_SecureBackupRootView_Day_8_en","features.securebackup.impl.root_SecureBackupRootView_Night_8_en",20182,], -["features.securebackup.impl.root_SecureBackupRootView_Day_9_en","features.securebackup.impl.root_SecureBackupRootView_Night_9_en",20182,], -["features.securebackup.impl.setup_SecureBackupSetupViewChange_Day_0_en","features.securebackup.impl.setup_SecureBackupSetupViewChange_Night_0_en",20182,], -["features.securebackup.impl.setup_SecureBackupSetupViewChange_Day_1_en","features.securebackup.impl.setup_SecureBackupSetupViewChange_Night_1_en",20182,], -["features.securebackup.impl.setup_SecureBackupSetupViewChange_Day_2_en","features.securebackup.impl.setup_SecureBackupSetupViewChange_Night_2_en",20182,], -["features.securebackup.impl.setup_SecureBackupSetupViewChange_Day_3_en","features.securebackup.impl.setup_SecureBackupSetupViewChange_Night_3_en",20182,], -["features.securebackup.impl.setup_SecureBackupSetupViewChange_Day_4_en","features.securebackup.impl.setup_SecureBackupSetupViewChange_Night_4_en",20182,], -["features.securebackup.impl.setup_SecureBackupSetupView_Day_0_en","features.securebackup.impl.setup_SecureBackupSetupView_Night_0_en",20182,], -["features.securebackup.impl.setup_SecureBackupSetupView_Day_1_en","features.securebackup.impl.setup_SecureBackupSetupView_Night_1_en",20182,], -["features.securebackup.impl.setup_SecureBackupSetupView_Day_2_en","features.securebackup.impl.setup_SecureBackupSetupView_Night_2_en",20182,], -["features.securebackup.impl.setup_SecureBackupSetupView_Day_3_en","features.securebackup.impl.setup_SecureBackupSetupView_Night_3_en",20182,], -["features.securebackup.impl.setup_SecureBackupSetupView_Day_4_en","features.securebackup.impl.setup_SecureBackupSetupView_Night_4_en",20182,], -["features.roomdetails.impl.securityandprivacy_SecurityAndPrivacyViewDark_0_en","",20182,], -["features.roomdetails.impl.securityandprivacy_SecurityAndPrivacyViewDark_1_en","",20182,], -["features.roomdetails.impl.securityandprivacy_SecurityAndPrivacyViewDark_2_en","",20182,], -["features.roomdetails.impl.securityandprivacy_SecurityAndPrivacyViewDark_3_en","",20182,], -["features.roomdetails.impl.securityandprivacy_SecurityAndPrivacyViewDark_4_en","",20182,], -["features.roomdetails.impl.securityandprivacy_SecurityAndPrivacyViewDark_5_en","",20182,], -["features.roomdetails.impl.securityandprivacy_SecurityAndPrivacyViewDark_6_en","",20182,], -["features.roomdetails.impl.securityandprivacy_SecurityAndPrivacyViewDark_7_en","",20182,], -["features.roomdetails.impl.securityandprivacy_SecurityAndPrivacyViewDark_8_en","",20182,], -["features.roomdetails.impl.securityandprivacy_SecurityAndPrivacyViewLight_0_en","",20182,], -["features.roomdetails.impl.securityandprivacy_SecurityAndPrivacyViewLight_1_en","",20182,], -["features.roomdetails.impl.securityandprivacy_SecurityAndPrivacyViewLight_2_en","",20182,], -["features.roomdetails.impl.securityandprivacy_SecurityAndPrivacyViewLight_3_en","",20182,], -["features.roomdetails.impl.securityandprivacy_SecurityAndPrivacyViewLight_4_en","",20182,], -["features.roomdetails.impl.securityandprivacy_SecurityAndPrivacyViewLight_5_en","",20182,], -["features.roomdetails.impl.securityandprivacy_SecurityAndPrivacyViewLight_6_en","",20182,], -["features.roomdetails.impl.securityandprivacy_SecurityAndPrivacyViewLight_7_en","",20182,], -["features.roomdetails.impl.securityandprivacy_SecurityAndPrivacyViewLight_8_en","",20182,], +["features.createroom.impl.components_SearchMultipleUsersResultItem_en","",20196,], +["features.createroom.impl.components_SearchSingleUserResultItem_en","",20196,], +["features.securebackup.impl.disable_SecureBackupDisableView_Day_0_en","features.securebackup.impl.disable_SecureBackupDisableView_Night_0_en",20196,], +["features.securebackup.impl.disable_SecureBackupDisableView_Day_1_en","features.securebackup.impl.disable_SecureBackupDisableView_Night_1_en",20196,], +["features.securebackup.impl.disable_SecureBackupDisableView_Day_2_en","features.securebackup.impl.disable_SecureBackupDisableView_Night_2_en",20196,], +["features.securebackup.impl.disable_SecureBackupDisableView_Day_3_en","features.securebackup.impl.disable_SecureBackupDisableView_Night_3_en",20196,], +["features.securebackup.impl.enter_SecureBackupEnterRecoveryKeyView_Day_0_en","features.securebackup.impl.enter_SecureBackupEnterRecoveryKeyView_Night_0_en",20196,], +["features.securebackup.impl.enter_SecureBackupEnterRecoveryKeyView_Day_1_en","features.securebackup.impl.enter_SecureBackupEnterRecoveryKeyView_Night_1_en",20196,], +["features.securebackup.impl.enter_SecureBackupEnterRecoveryKeyView_Day_2_en","features.securebackup.impl.enter_SecureBackupEnterRecoveryKeyView_Night_2_en",20196,], +["features.securebackup.impl.enter_SecureBackupEnterRecoveryKeyView_Day_3_en","features.securebackup.impl.enter_SecureBackupEnterRecoveryKeyView_Night_3_en",20196,], +["features.securebackup.impl.root_SecureBackupRootView_Day_0_en","features.securebackup.impl.root_SecureBackupRootView_Night_0_en",20196,], +["features.securebackup.impl.root_SecureBackupRootView_Day_10_en","features.securebackup.impl.root_SecureBackupRootView_Night_10_en",20196,], +["features.securebackup.impl.root_SecureBackupRootView_Day_11_en","features.securebackup.impl.root_SecureBackupRootView_Night_11_en",20196,], +["features.securebackup.impl.root_SecureBackupRootView_Day_12_en","features.securebackup.impl.root_SecureBackupRootView_Night_12_en",20196,], +["features.securebackup.impl.root_SecureBackupRootView_Day_13_en","features.securebackup.impl.root_SecureBackupRootView_Night_13_en",20196,], +["features.securebackup.impl.root_SecureBackupRootView_Day_14_en","features.securebackup.impl.root_SecureBackupRootView_Night_14_en",20196,], +["features.securebackup.impl.root_SecureBackupRootView_Day_15_en","features.securebackup.impl.root_SecureBackupRootView_Night_15_en",20196,], +["features.securebackup.impl.root_SecureBackupRootView_Day_16_en","features.securebackup.impl.root_SecureBackupRootView_Night_16_en",20196,], +["features.securebackup.impl.root_SecureBackupRootView_Day_17_en","features.securebackup.impl.root_SecureBackupRootView_Night_17_en",20196,], +["features.securebackup.impl.root_SecureBackupRootView_Day_1_en","features.securebackup.impl.root_SecureBackupRootView_Night_1_en",20196,], +["features.securebackup.impl.root_SecureBackupRootView_Day_2_en","features.securebackup.impl.root_SecureBackupRootView_Night_2_en",20196,], +["features.securebackup.impl.root_SecureBackupRootView_Day_3_en","features.securebackup.impl.root_SecureBackupRootView_Night_3_en",20196,], +["features.securebackup.impl.root_SecureBackupRootView_Day_4_en","features.securebackup.impl.root_SecureBackupRootView_Night_4_en",20196,], +["features.securebackup.impl.root_SecureBackupRootView_Day_5_en","features.securebackup.impl.root_SecureBackupRootView_Night_5_en",20196,], +["features.securebackup.impl.root_SecureBackupRootView_Day_6_en","features.securebackup.impl.root_SecureBackupRootView_Night_6_en",20196,], +["features.securebackup.impl.root_SecureBackupRootView_Day_7_en","features.securebackup.impl.root_SecureBackupRootView_Night_7_en",20196,], +["features.securebackup.impl.root_SecureBackupRootView_Day_8_en","features.securebackup.impl.root_SecureBackupRootView_Night_8_en",20196,], +["features.securebackup.impl.root_SecureBackupRootView_Day_9_en","features.securebackup.impl.root_SecureBackupRootView_Night_9_en",20196,], +["features.securebackup.impl.setup_SecureBackupSetupViewChange_Day_0_en","features.securebackup.impl.setup_SecureBackupSetupViewChange_Night_0_en",20196,], +["features.securebackup.impl.setup_SecureBackupSetupViewChange_Day_1_en","features.securebackup.impl.setup_SecureBackupSetupViewChange_Night_1_en",20196,], +["features.securebackup.impl.setup_SecureBackupSetupViewChange_Day_2_en","features.securebackup.impl.setup_SecureBackupSetupViewChange_Night_2_en",20196,], +["features.securebackup.impl.setup_SecureBackupSetupViewChange_Day_3_en","features.securebackup.impl.setup_SecureBackupSetupViewChange_Night_3_en",20196,], +["features.securebackup.impl.setup_SecureBackupSetupViewChange_Day_4_en","features.securebackup.impl.setup_SecureBackupSetupViewChange_Night_4_en",20196,], +["features.securebackup.impl.setup_SecureBackupSetupView_Day_0_en","features.securebackup.impl.setup_SecureBackupSetupView_Night_0_en",20196,], +["features.securebackup.impl.setup_SecureBackupSetupView_Day_1_en","features.securebackup.impl.setup_SecureBackupSetupView_Night_1_en",20196,], +["features.securebackup.impl.setup_SecureBackupSetupView_Day_2_en","features.securebackup.impl.setup_SecureBackupSetupView_Night_2_en",20196,], +["features.securebackup.impl.setup_SecureBackupSetupView_Day_3_en","features.securebackup.impl.setup_SecureBackupSetupView_Night_3_en",20196,], +["features.securebackup.impl.setup_SecureBackupSetupView_Day_4_en","features.securebackup.impl.setup_SecureBackupSetupView_Night_4_en",20196,], +["features.roomdetails.impl.securityandprivacy_SecurityAndPrivacyViewDark_0_en","",20196,], +["features.roomdetails.impl.securityandprivacy_SecurityAndPrivacyViewDark_1_en","",20196,], +["features.roomdetails.impl.securityandprivacy_SecurityAndPrivacyViewDark_2_en","",20196,], +["features.roomdetails.impl.securityandprivacy_SecurityAndPrivacyViewDark_3_en","",20196,], +["features.roomdetails.impl.securityandprivacy_SecurityAndPrivacyViewDark_4_en","",20196,], +["features.roomdetails.impl.securityandprivacy_SecurityAndPrivacyViewDark_5_en","",20196,], +["features.roomdetails.impl.securityandprivacy_SecurityAndPrivacyViewDark_6_en","",20196,], +["features.roomdetails.impl.securityandprivacy_SecurityAndPrivacyViewDark_7_en","",20196,], +["features.roomdetails.impl.securityandprivacy_SecurityAndPrivacyViewDark_8_en","",20196,], +["features.roomdetails.impl.securityandprivacy_SecurityAndPrivacyViewLight_0_en","",20196,], +["features.roomdetails.impl.securityandprivacy_SecurityAndPrivacyViewLight_1_en","",20196,], +["features.roomdetails.impl.securityandprivacy_SecurityAndPrivacyViewLight_2_en","",20196,], +["features.roomdetails.impl.securityandprivacy_SecurityAndPrivacyViewLight_3_en","",20196,], +["features.roomdetails.impl.securityandprivacy_SecurityAndPrivacyViewLight_4_en","",20196,], +["features.roomdetails.impl.securityandprivacy_SecurityAndPrivacyViewLight_5_en","",20196,], +["features.roomdetails.impl.securityandprivacy_SecurityAndPrivacyViewLight_6_en","",20196,], +["features.roomdetails.impl.securityandprivacy_SecurityAndPrivacyViewLight_7_en","",20196,], +["features.roomdetails.impl.securityandprivacy_SecurityAndPrivacyViewLight_8_en","",20196,], ["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,], @@ -1106,11 +1118,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",20182,], -["features.location.impl.send_SendLocationView_Day_1_en","features.location.impl.send_SendLocationView_Night_1_en",20182,], -["features.location.impl.send_SendLocationView_Day_2_en","features.location.impl.send_SendLocationView_Night_2_en",20182,], -["features.location.impl.send_SendLocationView_Day_3_en","features.location.impl.send_SendLocationView_Night_3_en",20182,], -["features.location.impl.send_SendLocationView_Day_4_en","features.location.impl.send_SendLocationView_Night_4_en",20182,], +["features.location.impl.send_SendLocationView_Day_0_en","features.location.impl.send_SendLocationView_Night_0_en",20196,], +["features.location.impl.send_SendLocationView_Day_1_en","features.location.impl.send_SendLocationView_Night_1_en",20196,], +["features.location.impl.send_SendLocationView_Day_2_en","features.location.impl.send_SendLocationView_Night_2_en",20196,], +["features.location.impl.send_SendLocationView_Day_3_en","features.location.impl.send_SendLocationView_Night_3_en",20196,], +["features.location.impl.send_SendLocationView_Day_4_en","features.location.impl.send_SendLocationView_Night_4_en",20196,], ["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,], @@ -1120,27 +1132,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",20182,], -["features.roomlist.impl.components_SetUpRecoveryKeyBanner_Day_0_en","features.roomlist.impl.components_SetUpRecoveryKeyBanner_Night_0_en",20182,], -["features.lockscreen.impl.setup.biometric_SetupBiometricView_Day_0_en","features.lockscreen.impl.setup.biometric_SetupBiometricView_Night_0_en",20182,], -["features.lockscreen.impl.setup.pin_SetupPinView_Day_0_en","features.lockscreen.impl.setup.pin_SetupPinView_Night_0_en",20182,], -["features.lockscreen.impl.setup.pin_SetupPinView_Day_1_en","features.lockscreen.impl.setup.pin_SetupPinView_Night_1_en",20182,], -["features.lockscreen.impl.setup.pin_SetupPinView_Day_2_en","features.lockscreen.impl.setup.pin_SetupPinView_Night_2_en",20182,], -["features.lockscreen.impl.setup.pin_SetupPinView_Day_3_en","features.lockscreen.impl.setup.pin_SetupPinView_Night_3_en",20182,], -["features.lockscreen.impl.setup.pin_SetupPinView_Day_4_en","features.lockscreen.impl.setup.pin_SetupPinView_Night_4_en",20182,], +["features.verifysession.impl.incoming.ui_SessionDetailsView_Day_0_en","features.verifysession.impl.incoming.ui_SessionDetailsView_Night_0_en",20196,], +["features.roomlist.impl.components_SetUpRecoveryKeyBanner_Day_0_en","features.roomlist.impl.components_SetUpRecoveryKeyBanner_Night_0_en",20196,], +["features.lockscreen.impl.setup.biometric_SetupBiometricView_Day_0_en","features.lockscreen.impl.setup.biometric_SetupBiometricView_Night_0_en",20196,], +["features.lockscreen.impl.setup.pin_SetupPinView_Day_0_en","features.lockscreen.impl.setup.pin_SetupPinView_Night_0_en",20196,], +["features.lockscreen.impl.setup.pin_SetupPinView_Day_1_en","features.lockscreen.impl.setup.pin_SetupPinView_Night_1_en",20196,], +["features.lockscreen.impl.setup.pin_SetupPinView_Day_2_en","features.lockscreen.impl.setup.pin_SetupPinView_Night_2_en",20196,], +["features.lockscreen.impl.setup.pin_SetupPinView_Day_3_en","features.lockscreen.impl.setup.pin_SetupPinView_Night_3_en",20196,], +["features.lockscreen.impl.setup.pin_SetupPinView_Day_4_en","features.lockscreen.impl.setup.pin_SetupPinView_Night_4_en",20196,], ["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",20182,], -["features.location.impl.show_ShowLocationView_Day_0_en","features.location.impl.show_ShowLocationView_Night_0_en",20182,], -["features.location.impl.show_ShowLocationView_Day_1_en","features.location.impl.show_ShowLocationView_Night_1_en",20182,], -["features.location.impl.show_ShowLocationView_Day_2_en","features.location.impl.show_ShowLocationView_Night_2_en",20182,], -["features.location.impl.show_ShowLocationView_Day_3_en","features.location.impl.show_ShowLocationView_Night_3_en",20182,], -["features.location.impl.show_ShowLocationView_Day_4_en","features.location.impl.show_ShowLocationView_Night_4_en",20182,], -["features.location.impl.show_ShowLocationView_Day_5_en","features.location.impl.show_ShowLocationView_Night_5_en",20182,], -["features.location.impl.show_ShowLocationView_Day_6_en","features.location.impl.show_ShowLocationView_Night_6_en",20182,], -["features.location.impl.show_ShowLocationView_Day_7_en","features.location.impl.show_ShowLocationView_Night_7_en",20182,], -["features.signedout.impl_SignedOutView_Day_0_en","features.signedout.impl_SignedOutView_Night_0_en",20182,], +["features.share.impl_ShareView_Day_3_en","features.share.impl_ShareView_Night_3_en",20196,], +["features.location.impl.show_ShowLocationView_Day_0_en","features.location.impl.show_ShowLocationView_Night_0_en",20196,], +["features.location.impl.show_ShowLocationView_Day_1_en","features.location.impl.show_ShowLocationView_Night_1_en",20196,], +["features.location.impl.show_ShowLocationView_Day_2_en","features.location.impl.show_ShowLocationView_Night_2_en",20196,], +["features.location.impl.show_ShowLocationView_Day_3_en","features.location.impl.show_ShowLocationView_Night_3_en",20196,], +["features.location.impl.show_ShowLocationView_Day_4_en","features.location.impl.show_ShowLocationView_Night_4_en",20196,], +["features.location.impl.show_ShowLocationView_Day_5_en","features.location.impl.show_ShowLocationView_Night_5_en",20196,], +["features.location.impl.show_ShowLocationView_Day_6_en","features.location.impl.show_ShowLocationView_Night_6_en",20196,], +["features.location.impl.show_ShowLocationView_Day_7_en","features.location.impl.show_ShowLocationView_Night_7_en",20196,], +["features.signedout.impl_SignedOutView_Day_0_en","features.signedout.impl_SignedOutView_Night_0_en",20196,], ["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,], @@ -1149,7 +1161,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",20182,], +["features.login.impl.dialogs_SlidingSyncNotSupportedDialog_Day_0_en","features.login.impl.dialogs_SlidingSyncNotSupportedDialog_Night_0_en",20196,], ["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,], @@ -1158,60 +1170,60 @@ export const screenshots = [ ["libraries.designsystem.modifiers_SquareSizeModifierInsideSquare_en","",0,], ["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",20182,], +["features.location.api.internal_StaticMapPlaceholder_Day_0_en","features.location.api.internal_StaticMapPlaceholder_Night_0_en",20196,], ["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",20182,], +["features.messages.impl.messagecomposer.suggestions_SuggestionsPickerView_Day_0_en","features.messages.impl.messagecomposer.suggestions_SuggestionsPickerView_Night_0_en",20196,], ["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",20182,], +["appnav.loggedin_SyncStateView_Day_0_en","appnav.loggedin_SyncStateView_Night_0_en",20196,], ["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",20182,], -["libraries.textcomposer_TextComposerCaption_Day_0_en","libraries.textcomposer_TextComposerCaption_Night_0_en",20182,], -["libraries.textcomposer_TextComposerEditCaption_Day_0_en","libraries.textcomposer_TextComposerEditCaption_Night_0_en",20182,], -["libraries.textcomposer_TextComposerEditNotEncrypted_Day_0_en","libraries.textcomposer_TextComposerEditNotEncrypted_Night_0_en",20182,], -["libraries.textcomposer_TextComposerEdit_Day_0_en","libraries.textcomposer_TextComposerEdit_Night_0_en",20182,], -["libraries.textcomposer_TextComposerFormattingNotEncrypted_Day_0_en","libraries.textcomposer_TextComposerFormattingNotEncrypted_Night_0_en",20182,], -["libraries.textcomposer_TextComposerFormatting_Day_0_en","libraries.textcomposer_TextComposerFormatting_Night_0_en",20182,], -["libraries.textcomposer_TextComposerLinkDialogCreateLinkWithoutText_Day_0_en","libraries.textcomposer_TextComposerLinkDialogCreateLinkWithoutText_Night_0_en",20182,], -["libraries.textcomposer_TextComposerLinkDialogCreateLink_Day_0_en","libraries.textcomposer_TextComposerLinkDialogCreateLink_Night_0_en",20182,], -["libraries.textcomposer_TextComposerLinkDialogEditLink_Day_0_en","libraries.textcomposer_TextComposerLinkDialogEditLink_Night_0_en",20182,], -["libraries.textcomposer_TextComposerReplyNotEncrypted_Day_0_en","libraries.textcomposer_TextComposerReplyNotEncrypted_Night_0_en",20182,], -["libraries.textcomposer_TextComposerReplyNotEncrypted_Day_10_en","libraries.textcomposer_TextComposerReplyNotEncrypted_Night_10_en",20182,], -["libraries.textcomposer_TextComposerReplyNotEncrypted_Day_11_en","libraries.textcomposer_TextComposerReplyNotEncrypted_Night_11_en",20182,], -["libraries.textcomposer_TextComposerReplyNotEncrypted_Day_1_en","libraries.textcomposer_TextComposerReplyNotEncrypted_Night_1_en",20182,], -["libraries.textcomposer_TextComposerReplyNotEncrypted_Day_2_en","libraries.textcomposer_TextComposerReplyNotEncrypted_Night_2_en",20182,], -["libraries.textcomposer_TextComposerReplyNotEncrypted_Day_3_en","libraries.textcomposer_TextComposerReplyNotEncrypted_Night_3_en",20182,], -["libraries.textcomposer_TextComposerReplyNotEncrypted_Day_4_en","libraries.textcomposer_TextComposerReplyNotEncrypted_Night_4_en",20182,], -["libraries.textcomposer_TextComposerReplyNotEncrypted_Day_5_en","libraries.textcomposer_TextComposerReplyNotEncrypted_Night_5_en",20182,], -["libraries.textcomposer_TextComposerReplyNotEncrypted_Day_6_en","libraries.textcomposer_TextComposerReplyNotEncrypted_Night_6_en",20182,], -["libraries.textcomposer_TextComposerReplyNotEncrypted_Day_7_en","libraries.textcomposer_TextComposerReplyNotEncrypted_Night_7_en",20182,], -["libraries.textcomposer_TextComposerReplyNotEncrypted_Day_8_en","libraries.textcomposer_TextComposerReplyNotEncrypted_Night_8_en",20182,], -["libraries.textcomposer_TextComposerReplyNotEncrypted_Day_9_en","libraries.textcomposer_TextComposerReplyNotEncrypted_Night_9_en",20182,], -["libraries.textcomposer_TextComposerReply_Day_0_en","libraries.textcomposer_TextComposerReply_Night_0_en",20182,], -["libraries.textcomposer_TextComposerReply_Day_10_en","libraries.textcomposer_TextComposerReply_Night_10_en",20182,], -["libraries.textcomposer_TextComposerReply_Day_11_en","libraries.textcomposer_TextComposerReply_Night_11_en",20182,], -["libraries.textcomposer_TextComposerReply_Day_1_en","libraries.textcomposer_TextComposerReply_Night_1_en",20182,], -["libraries.textcomposer_TextComposerReply_Day_2_en","libraries.textcomposer_TextComposerReply_Night_2_en",20182,], -["libraries.textcomposer_TextComposerReply_Day_3_en","libraries.textcomposer_TextComposerReply_Night_3_en",20182,], -["libraries.textcomposer_TextComposerReply_Day_4_en","libraries.textcomposer_TextComposerReply_Night_4_en",20182,], -["libraries.textcomposer_TextComposerReply_Day_5_en","libraries.textcomposer_TextComposerReply_Night_5_en",20182,], -["libraries.textcomposer_TextComposerReply_Day_6_en","libraries.textcomposer_TextComposerReply_Night_6_en",20182,], -["libraries.textcomposer_TextComposerReply_Day_7_en","libraries.textcomposer_TextComposerReply_Night_7_en",20182,], -["libraries.textcomposer_TextComposerReply_Day_8_en","libraries.textcomposer_TextComposerReply_Night_8_en",20182,], -["libraries.textcomposer_TextComposerReply_Day_9_en","libraries.textcomposer_TextComposerReply_Night_9_en",20182,], -["libraries.textcomposer_TextComposerSimpleNotEncrypted_Day_0_en","libraries.textcomposer_TextComposerSimpleNotEncrypted_Night_0_en",20182,], -["libraries.textcomposer_TextComposerSimple_Day_0_en","libraries.textcomposer_TextComposerSimple_Night_0_en",20182,], -["libraries.textcomposer_TextComposerVoiceNotEncrypted_Day_0_en","libraries.textcomposer_TextComposerVoiceNotEncrypted_Night_0_en",20182,], +["libraries.textcomposer_TextComposerAddCaption_Day_0_en","libraries.textcomposer_TextComposerAddCaption_Night_0_en",20196,], +["libraries.textcomposer_TextComposerCaption_Day_0_en","libraries.textcomposer_TextComposerCaption_Night_0_en",20196,], +["libraries.textcomposer_TextComposerEditCaption_Day_0_en","libraries.textcomposer_TextComposerEditCaption_Night_0_en",20196,], +["libraries.textcomposer_TextComposerEditNotEncrypted_Day_0_en","libraries.textcomposer_TextComposerEditNotEncrypted_Night_0_en",20196,], +["libraries.textcomposer_TextComposerEdit_Day_0_en","libraries.textcomposer_TextComposerEdit_Night_0_en",20196,], +["libraries.textcomposer_TextComposerFormattingNotEncrypted_Day_0_en","libraries.textcomposer_TextComposerFormattingNotEncrypted_Night_0_en",20196,], +["libraries.textcomposer_TextComposerFormatting_Day_0_en","libraries.textcomposer_TextComposerFormatting_Night_0_en",20196,], +["libraries.textcomposer_TextComposerLinkDialogCreateLinkWithoutText_Day_0_en","libraries.textcomposer_TextComposerLinkDialogCreateLinkWithoutText_Night_0_en",20196,], +["libraries.textcomposer_TextComposerLinkDialogCreateLink_Day_0_en","libraries.textcomposer_TextComposerLinkDialogCreateLink_Night_0_en",20196,], +["libraries.textcomposer_TextComposerLinkDialogEditLink_Day_0_en","libraries.textcomposer_TextComposerLinkDialogEditLink_Night_0_en",20196,], +["libraries.textcomposer_TextComposerReplyNotEncrypted_Day_0_en","libraries.textcomposer_TextComposerReplyNotEncrypted_Night_0_en",20196,], +["libraries.textcomposer_TextComposerReplyNotEncrypted_Day_10_en","libraries.textcomposer_TextComposerReplyNotEncrypted_Night_10_en",20196,], +["libraries.textcomposer_TextComposerReplyNotEncrypted_Day_11_en","libraries.textcomposer_TextComposerReplyNotEncrypted_Night_11_en",20196,], +["libraries.textcomposer_TextComposerReplyNotEncrypted_Day_1_en","libraries.textcomposer_TextComposerReplyNotEncrypted_Night_1_en",20196,], +["libraries.textcomposer_TextComposerReplyNotEncrypted_Day_2_en","libraries.textcomposer_TextComposerReplyNotEncrypted_Night_2_en",20196,], +["libraries.textcomposer_TextComposerReplyNotEncrypted_Day_3_en","libraries.textcomposer_TextComposerReplyNotEncrypted_Night_3_en",20196,], +["libraries.textcomposer_TextComposerReplyNotEncrypted_Day_4_en","libraries.textcomposer_TextComposerReplyNotEncrypted_Night_4_en",20196,], +["libraries.textcomposer_TextComposerReplyNotEncrypted_Day_5_en","libraries.textcomposer_TextComposerReplyNotEncrypted_Night_5_en",20196,], +["libraries.textcomposer_TextComposerReplyNotEncrypted_Day_6_en","libraries.textcomposer_TextComposerReplyNotEncrypted_Night_6_en",20196,], +["libraries.textcomposer_TextComposerReplyNotEncrypted_Day_7_en","libraries.textcomposer_TextComposerReplyNotEncrypted_Night_7_en",20196,], +["libraries.textcomposer_TextComposerReplyNotEncrypted_Day_8_en","libraries.textcomposer_TextComposerReplyNotEncrypted_Night_8_en",20196,], +["libraries.textcomposer_TextComposerReplyNotEncrypted_Day_9_en","libraries.textcomposer_TextComposerReplyNotEncrypted_Night_9_en",20196,], +["libraries.textcomposer_TextComposerReply_Day_0_en","libraries.textcomposer_TextComposerReply_Night_0_en",20196,], +["libraries.textcomposer_TextComposerReply_Day_10_en","libraries.textcomposer_TextComposerReply_Night_10_en",20196,], +["libraries.textcomposer_TextComposerReply_Day_11_en","libraries.textcomposer_TextComposerReply_Night_11_en",20196,], +["libraries.textcomposer_TextComposerReply_Day_1_en","libraries.textcomposer_TextComposerReply_Night_1_en",20196,], +["libraries.textcomposer_TextComposerReply_Day_2_en","libraries.textcomposer_TextComposerReply_Night_2_en",20196,], +["libraries.textcomposer_TextComposerReply_Day_3_en","libraries.textcomposer_TextComposerReply_Night_3_en",20196,], +["libraries.textcomposer_TextComposerReply_Day_4_en","libraries.textcomposer_TextComposerReply_Night_4_en",20196,], +["libraries.textcomposer_TextComposerReply_Day_5_en","libraries.textcomposer_TextComposerReply_Night_5_en",20196,], +["libraries.textcomposer_TextComposerReply_Day_6_en","libraries.textcomposer_TextComposerReply_Night_6_en",20196,], +["libraries.textcomposer_TextComposerReply_Day_7_en","libraries.textcomposer_TextComposerReply_Night_7_en",20196,], +["libraries.textcomposer_TextComposerReply_Day_8_en","libraries.textcomposer_TextComposerReply_Night_8_en",20196,], +["libraries.textcomposer_TextComposerReply_Day_9_en","libraries.textcomposer_TextComposerReply_Night_9_en",20196,], +["libraries.textcomposer_TextComposerSimpleNotEncrypted_Day_0_en","libraries.textcomposer_TextComposerSimpleNotEncrypted_Night_0_en",20196,], +["libraries.textcomposer_TextComposerSimple_Day_0_en","libraries.textcomposer_TextComposerSimple_Night_0_en",20196,], +["libraries.textcomposer_TextComposerVoiceNotEncrypted_Day_0_en","libraries.textcomposer_TextComposerVoiceNotEncrypted_Night_0_en",20196,], ["libraries.textcomposer_TextComposerVoice_Day_0_en","libraries.textcomposer_TextComposerVoice_Night_0_en",0,], ["libraries.designsystem.theme.components_TextDark_Text_en","",0,], -["libraries.designsystem.components.dialogs_TextFieldDialogWithError_Day_0_en","libraries.designsystem.components.dialogs_TextFieldDialogWithError_Night_0_en",20185,], -["libraries.designsystem.components.dialogs_TextFieldDialog_Day_0_en","libraries.designsystem.components.dialogs_TextFieldDialog_Night_0_en",20185,], +["libraries.designsystem.components.dialogs_TextFieldDialogWithError_Day_0_en","libraries.designsystem.components.dialogs_TextFieldDialogWithError_Night_0_en",20196,], +["libraries.designsystem.components.dialogs_TextFieldDialog_Day_0_en","libraries.designsystem.components.dialogs_TextFieldDialog_Night_0_en",20196,], ["libraries.designsystem.components.list_TextFieldListItemEmpty_Text_field_List_item_-_empty_List_items_en","",0,], ["libraries.designsystem.components.list_TextFieldListItemTextFieldValue_Text_field_List_item_-_textfieldvalue_List_items_en","",0,], ["libraries.designsystem.components.list_TextFieldListItem_Text_field_List_item_-_text_List_items_en","",0,], @@ -1223,14 +1235,14 @@ export const screenshots = [ ["libraries.mediaviewer.impl.local.txt_TextFileContentView_Day_3_en","libraries.mediaviewer.impl.local.txt_TextFileContentView_Night_3_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","",20182,], -["libraries.designsystem.theme.components.previews_TimePickerVerticalDark_DateTime_pickers_en","",20182,], -["libraries.designsystem.theme.components.previews_TimePickerVerticalLight_DateTime_pickers_en","",20182,], +["libraries.designsystem.theme.components.previews_TimePickerHorizontal_DateTime_pickers_en","",20196,], +["libraries.designsystem.theme.components.previews_TimePickerVerticalDark_DateTime_pickers_en","",20196,], +["libraries.designsystem.theme.components.previews_TimePickerVerticalLight_DateTime_pickers_en","",20196,], ["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",20182,], -["features.messages.impl.timeline.components_TimelineEventTimestampView_Day_4_en","features.messages.impl.timeline.components_TimelineEventTimestampView_Night_4_en",20182,], +["features.messages.impl.timeline.components_TimelineEventTimestampView_Day_3_en","features.messages.impl.timeline.components_TimelineEventTimestampView_Night_3_en",20196,], +["features.messages.impl.timeline.components_TimelineEventTimestampView_Day_4_en","features.messages.impl.timeline.components_TimelineEventTimestampView_Night_4_en",20196,], ["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_TimelineEventTimestampView_Day_7_en","features.messages.impl.timeline.components_TimelineEventTimestampView_Night_7_en",0,], @@ -1240,18 +1252,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",20182,], +["features.messages.impl.timeline.components_TimelineItemCallNotifyView_Day_0_en","features.messages.impl.timeline.components_TimelineItemCallNotifyView_Night_0_en",20196,], ["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",20182,], -["features.messages.impl.timeline.components.event_TimelineItemEncryptedView_Day_1_en","features.messages.impl.timeline.components.event_TimelineItemEncryptedView_Night_1_en",20182,], -["features.messages.impl.timeline.components.event_TimelineItemEncryptedView_Day_2_en","features.messages.impl.timeline.components.event_TimelineItemEncryptedView_Night_2_en",20182,], -["features.messages.impl.timeline.components.event_TimelineItemEncryptedView_Day_3_en","features.messages.impl.timeline.components.event_TimelineItemEncryptedView_Night_3_en",20182,], -["features.messages.impl.timeline.components.event_TimelineItemEncryptedView_Day_4_en","features.messages.impl.timeline.components.event_TimelineItemEncryptedView_Night_4_en",20182,], -["features.messages.impl.timeline.components.event_TimelineItemEncryptedView_Day_5_en","features.messages.impl.timeline.components.event_TimelineItemEncryptedView_Night_5_en",20182,], -["features.messages.impl.timeline.components.event_TimelineItemEncryptedView_Day_6_en","features.messages.impl.timeline.components.event_TimelineItemEncryptedView_Night_6_en",20182,], -["features.messages.impl.timeline.components.event_TimelineItemEncryptedView_Day_7_en","features.messages.impl.timeline.components.event_TimelineItemEncryptedView_Night_7_en",20182,], -["features.messages.impl.timeline.components.event_TimelineItemEncryptedView_Day_8_en","features.messages.impl.timeline.components.event_TimelineItemEncryptedView_Night_8_en",20182,], +["features.messages.impl.timeline.components.event_TimelineItemEncryptedView_Day_0_en","features.messages.impl.timeline.components.event_TimelineItemEncryptedView_Night_0_en",20196,], +["features.messages.impl.timeline.components.event_TimelineItemEncryptedView_Day_1_en","features.messages.impl.timeline.components.event_TimelineItemEncryptedView_Night_1_en",20196,], +["features.messages.impl.timeline.components.event_TimelineItemEncryptedView_Day_2_en","features.messages.impl.timeline.components.event_TimelineItemEncryptedView_Night_2_en",20196,], +["features.messages.impl.timeline.components.event_TimelineItemEncryptedView_Day_3_en","features.messages.impl.timeline.components.event_TimelineItemEncryptedView_Night_3_en",20196,], +["features.messages.impl.timeline.components.event_TimelineItemEncryptedView_Day_4_en","features.messages.impl.timeline.components.event_TimelineItemEncryptedView_Night_4_en",20196,], +["features.messages.impl.timeline.components.event_TimelineItemEncryptedView_Day_5_en","features.messages.impl.timeline.components.event_TimelineItemEncryptedView_Night_5_en",20196,], +["features.messages.impl.timeline.components.event_TimelineItemEncryptedView_Day_6_en","features.messages.impl.timeline.components.event_TimelineItemEncryptedView_Night_6_en",20196,], +["features.messages.impl.timeline.components.event_TimelineItemEncryptedView_Day_7_en","features.messages.impl.timeline.components.event_TimelineItemEncryptedView_Night_7_en",20196,], +["features.messages.impl.timeline.components.event_TimelineItemEncryptedView_Day_8_en","features.messages.impl.timeline.components.event_TimelineItemEncryptedView_Night_8_en",20196,], ["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,], @@ -1259,18 +1271,18 @@ 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",20182,], -["features.messages.impl.timeline.components_TimelineItemEventRowTimestamp_Day_4_en","features.messages.impl.timeline.components_TimelineItemEventRowTimestamp_Night_4_en",20182,], +["features.messages.impl.timeline.components_TimelineItemEventRowTimestamp_Day_3_en","features.messages.impl.timeline.components_TimelineItemEventRowTimestamp_Night_3_en",20196,], +["features.messages.impl.timeline.components_TimelineItemEventRowTimestamp_Day_4_en","features.messages.impl.timeline.components_TimelineItemEventRowTimestamp_Night_4_en",20196,], ["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_TimelineItemEventRowTimestamp_Day_7_en","features.messages.impl.timeline.components_TimelineItemEventRowTimestamp_Night_7_en",20182,], -["features.messages.impl.timeline.components_TimelineItemEventRowUtd_Day_0_en","features.messages.impl.timeline.components_TimelineItemEventRowUtd_Night_0_en",20182,], -["features.messages.impl.timeline.components_TimelineItemEventRowWithManyReactions_Day_0_en","features.messages.impl.timeline.components_TimelineItemEventRowWithManyReactions_Night_0_en",20182,], +["features.messages.impl.timeline.components_TimelineItemEventRowTimestamp_Day_7_en","features.messages.impl.timeline.components_TimelineItemEventRowTimestamp_Night_7_en",20196,], +["features.messages.impl.timeline.components_TimelineItemEventRowUtd_Day_0_en","features.messages.impl.timeline.components_TimelineItemEventRowUtd_Night_0_en",20196,], +["features.messages.impl.timeline.components_TimelineItemEventRowWithManyReactions_Day_0_en","features.messages.impl.timeline.components_TimelineItemEventRowWithManyReactions_Night_0_en",20196,], ["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",20182,], -["features.messages.impl.timeline.components_TimelineItemEventRowWithReplyInformative_Day_1_en","features.messages.impl.timeline.components_TimelineItemEventRowWithReplyInformative_Night_1_en",20182,], +["features.messages.impl.timeline.components_TimelineItemEventRowWithReplyInformative_Day_0_en","features.messages.impl.timeline.components_TimelineItemEventRowWithReplyInformative_Night_0_en",20196,], +["features.messages.impl.timeline.components_TimelineItemEventRowWithReplyInformative_Day_1_en","features.messages.impl.timeline.components_TimelineItemEventRowWithReplyInformative_Night_1_en",20196,], ["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,], @@ -1279,40 +1291,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",20182,], +["features.messages.impl.timeline.components_TimelineItemEventRowWithReply_Day_4_en","features.messages.impl.timeline.components_TimelineItemEventRowWithReply_Night_4_en",20196,], ["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",20182,], +["features.messages.impl.timeline.components_TimelineItemEventRowWithReply_Day_8_en","features.messages.impl.timeline.components_TimelineItemEventRowWithReply_Night_8_en",20196,], ["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","",20182,], +["features.messages.impl.timeline.components_TimelineItemEventTimestampBelow_en","",20196,], ["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",20182,], -["features.messages.impl.timeline.components_TimelineItemGroupedEventsRowContentExpanded_Day_0_en","features.messages.impl.timeline.components_TimelineItemGroupedEventsRowContentExpanded_Night_0_en",20182,], -["features.messages.impl.timeline.components.event_TimelineItemImageViewHideMediaContent_Day_0_en","features.messages.impl.timeline.components.event_TimelineItemImageViewHideMediaContent_Night_0_en",20182,], +["features.messages.impl.timeline.components_TimelineItemGroupedEventsRowContentCollapse_Day_0_en","features.messages.impl.timeline.components_TimelineItemGroupedEventsRowContentCollapse_Night_0_en",20196,], +["features.messages.impl.timeline.components_TimelineItemGroupedEventsRowContentExpanded_Day_0_en","features.messages.impl.timeline.components_TimelineItemGroupedEventsRowContentExpanded_Night_0_en",20196,], +["features.messages.impl.timeline.components.event_TimelineItemImageViewHideMediaContent_Day_0_en","features.messages.impl.timeline.components.event_TimelineItemImageViewHideMediaContent_Night_0_en",20196,], ["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",20182,], +["features.messages.impl.timeline.components.event_TimelineItemLegacyCallInviteView_Day_0_en","features.messages.impl.timeline.components.event_TimelineItemLegacyCallInviteView_Night_0_en",20196,], ["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",20182,], -["features.messages.impl.timeline.components.event_TimelineItemPollView_Day_1_en","features.messages.impl.timeline.components.event_TimelineItemPollView_Night_1_en",20182,], -["features.messages.impl.timeline.components.event_TimelineItemPollView_Day_2_en","features.messages.impl.timeline.components.event_TimelineItemPollView_Night_2_en",20182,], -["features.messages.impl.timeline.components.event_TimelineItemPollView_Day_3_en","features.messages.impl.timeline.components.event_TimelineItemPollView_Night_3_en",20182,], -["features.messages.impl.timeline.components_TimelineItemReactionsLayout_Day_0_en","features.messages.impl.timeline.components_TimelineItemReactionsLayout_Night_0_en",20182,], +["features.messages.impl.timeline.components.event_TimelineItemPollView_Day_0_en","features.messages.impl.timeline.components.event_TimelineItemPollView_Night_0_en",20196,], +["features.messages.impl.timeline.components.event_TimelineItemPollView_Day_1_en","features.messages.impl.timeline.components.event_TimelineItemPollView_Night_1_en",20196,], +["features.messages.impl.timeline.components.event_TimelineItemPollView_Day_2_en","features.messages.impl.timeline.components.event_TimelineItemPollView_Night_2_en",20196,], +["features.messages.impl.timeline.components.event_TimelineItemPollView_Day_3_en","features.messages.impl.timeline.components.event_TimelineItemPollView_Night_3_en",20196,], +["features.messages.impl.timeline.components_TimelineItemReactionsLayout_Day_0_en","features.messages.impl.timeline.components_TimelineItemReactionsLayout_Night_0_en",20196,], ["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",20182,], -["features.messages.impl.timeline.components_TimelineItemReactionsViewOutgoing_Day_0_en","features.messages.impl.timeline.components_TimelineItemReactionsViewOutgoing_Night_0_en",20182,], +["features.messages.impl.timeline.components_TimelineItemReactionsViewIncoming_Day_0_en","features.messages.impl.timeline.components_TimelineItemReactionsViewIncoming_Night_0_en",20196,], +["features.messages.impl.timeline.components_TimelineItemReactionsViewOutgoing_Day_0_en","features.messages.impl.timeline.components_TimelineItemReactionsViewOutgoing_Night_0_en",20196,], ["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",20182,], +["features.messages.impl.timeline.components.virtual_TimelineItemReadMarkerView_Day_0_en","features.messages.impl.timeline.components.virtual_TimelineItemReadMarkerView_Night_0_en",20196,], ["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,], @@ -1321,8 +1333,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",20182,], -["features.messages.impl.timeline.components.virtual_TimelineItemRoomBeginningView_Day_0_en","features.messages.impl.timeline.components.virtual_TimelineItemRoomBeginningView_Night_0_en",20182,], +["features.messages.impl.timeline.components.event_TimelineItemRedactedView_Day_0_en","features.messages.impl.timeline.components.event_TimelineItemRedactedView_Night_0_en",20196,], +["features.messages.impl.timeline.components.virtual_TimelineItemRoomBeginningView_Day_0_en","features.messages.impl.timeline.components.virtual_TimelineItemRoomBeginningView_Night_0_en",20196,], ["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,], @@ -1337,8 +1349,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",20182,], -["features.messages.impl.timeline.components.event_TimelineItemVideoViewHideMediaContent_Day_0_en","features.messages.impl.timeline.components.event_TimelineItemVideoViewHideMediaContent_Night_0_en",20182,], +["features.messages.impl.timeline.components.event_TimelineItemUnknownView_Day_0_en","features.messages.impl.timeline.components.event_TimelineItemUnknownView_Night_0_en",20196,], +["features.messages.impl.timeline.components.event_TimelineItemVideoViewHideMediaContent_Day_0_en","features.messages.impl.timeline.components.event_TimelineItemVideoViewHideMediaContent_Night_0_en",20196,], ["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,], @@ -1361,95 +1373,95 @@ 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",20182,], -["features.messages.impl.timeline_TimelineView_Day_0_en","features.messages.impl.timeline_TimelineView_Night_0_en",20182,], +["features.messages.impl.timeline_TimelineViewMessageShield_Day_0_en","features.messages.impl.timeline_TimelineViewMessageShield_Night_0_en",20196,], +["features.messages.impl.timeline_TimelineView_Day_0_en","features.messages.impl.timeline_TimelineView_Night_0_en",20196,], ["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",20182,], -["features.messages.impl.timeline_TimelineView_Day_12_en","features.messages.impl.timeline_TimelineView_Night_12_en",20182,], -["features.messages.impl.timeline_TimelineView_Day_13_en","features.messages.impl.timeline_TimelineView_Night_13_en",20182,], -["features.messages.impl.timeline_TimelineView_Day_14_en","features.messages.impl.timeline_TimelineView_Night_14_en",20182,], -["features.messages.impl.timeline_TimelineView_Day_15_en","features.messages.impl.timeline_TimelineView_Night_15_en",20182,], -["features.messages.impl.timeline_TimelineView_Day_16_en","features.messages.impl.timeline_TimelineView_Night_16_en",20182,], -["features.messages.impl.timeline_TimelineView_Day_17_en","features.messages.impl.timeline_TimelineView_Night_17_en",20182,], -["features.messages.impl.timeline_TimelineView_Day_1_en","features.messages.impl.timeline_TimelineView_Night_1_en",20182,], +["features.messages.impl.timeline_TimelineView_Day_11_en","features.messages.impl.timeline_TimelineView_Night_11_en",20196,], +["features.messages.impl.timeline_TimelineView_Day_12_en","features.messages.impl.timeline_TimelineView_Night_12_en",20196,], +["features.messages.impl.timeline_TimelineView_Day_13_en","features.messages.impl.timeline_TimelineView_Night_13_en",20196,], +["features.messages.impl.timeline_TimelineView_Day_14_en","features.messages.impl.timeline_TimelineView_Night_14_en",20196,], +["features.messages.impl.timeline_TimelineView_Day_15_en","features.messages.impl.timeline_TimelineView_Night_15_en",20196,], +["features.messages.impl.timeline_TimelineView_Day_16_en","features.messages.impl.timeline_TimelineView_Night_16_en",20196,], +["features.messages.impl.timeline_TimelineView_Day_17_en","features.messages.impl.timeline_TimelineView_Night_17_en",20196,], +["features.messages.impl.timeline_TimelineView_Day_1_en","features.messages.impl.timeline_TimelineView_Night_1_en",20196,], ["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",20182,], +["features.messages.impl.timeline_TimelineView_Day_4_en","features.messages.impl.timeline_TimelineView_Night_4_en",20196,], ["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",20182,], +["features.messages.impl.timeline_TimelineView_Day_6_en","features.messages.impl.timeline_TimelineView_Night_6_en",20196,], ["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",20182,], +["features.messages.impl.timeline_TimelineView_Day_8_en","features.messages.impl.timeline_TimelineView_Night_8_en",20196,], ["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",20182,], -["libraries.troubleshoot.impl_TroubleshootNotificationsView_Day_1_en","libraries.troubleshoot.impl_TroubleshootNotificationsView_Night_1_en",20182,], -["libraries.troubleshoot.impl_TroubleshootNotificationsView_Day_2_en","libraries.troubleshoot.impl_TroubleshootNotificationsView_Night_2_en",20182,], -["libraries.troubleshoot.impl_TroubleshootNotificationsView_Day_3_en","libraries.troubleshoot.impl_TroubleshootNotificationsView_Night_3_en",20182,], -["libraries.troubleshoot.impl_TroubleshootNotificationsView_Day_4_en","libraries.troubleshoot.impl_TroubleshootNotificationsView_Night_4_en",20182,], -["libraries.troubleshoot.impl_TroubleshootNotificationsView_Day_5_en","libraries.troubleshoot.impl_TroubleshootNotificationsView_Night_5_en",20182,], -["libraries.troubleshoot.impl_TroubleshootNotificationsView_Day_6_en","libraries.troubleshoot.impl_TroubleshootNotificationsView_Night_6_en",20182,], -["libraries.troubleshoot.impl_TroubleshootNotificationsView_Day_7_en","libraries.troubleshoot.impl_TroubleshootNotificationsView_Night_7_en",20182,], +["libraries.troubleshoot.impl_TroubleshootNotificationsView_Day_0_en","libraries.troubleshoot.impl_TroubleshootNotificationsView_Night_0_en",20196,], +["libraries.troubleshoot.impl_TroubleshootNotificationsView_Day_1_en","libraries.troubleshoot.impl_TroubleshootNotificationsView_Night_1_en",20196,], +["libraries.troubleshoot.impl_TroubleshootNotificationsView_Day_2_en","libraries.troubleshoot.impl_TroubleshootNotificationsView_Night_2_en",20196,], +["libraries.troubleshoot.impl_TroubleshootNotificationsView_Day_3_en","libraries.troubleshoot.impl_TroubleshootNotificationsView_Night_3_en",20196,], +["libraries.troubleshoot.impl_TroubleshootNotificationsView_Day_4_en","libraries.troubleshoot.impl_TroubleshootNotificationsView_Night_4_en",20196,], +["libraries.troubleshoot.impl_TroubleshootNotificationsView_Day_5_en","libraries.troubleshoot.impl_TroubleshootNotificationsView_Night_5_en",20196,], +["libraries.troubleshoot.impl_TroubleshootNotificationsView_Day_6_en","libraries.troubleshoot.impl_TroubleshootNotificationsView_Night_6_en",20196,], +["libraries.troubleshoot.impl_TroubleshootNotificationsView_Day_7_en","libraries.troubleshoot.impl_TroubleshootNotificationsView_Night_7_en",20196,], ["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",20182,], -["features.messages.impl.typing_TypingNotificationView_Day_2_en","features.messages.impl.typing_TypingNotificationView_Night_2_en",20182,], -["features.messages.impl.typing_TypingNotificationView_Day_3_en","features.messages.impl.typing_TypingNotificationView_Night_3_en",20182,], -["features.messages.impl.typing_TypingNotificationView_Day_4_en","features.messages.impl.typing_TypingNotificationView_Night_4_en",20182,], -["features.messages.impl.typing_TypingNotificationView_Day_5_en","features.messages.impl.typing_TypingNotificationView_Night_5_en",20182,], -["features.messages.impl.typing_TypingNotificationView_Day_6_en","features.messages.impl.typing_TypingNotificationView_Night_6_en",20182,], +["features.messages.impl.typing_TypingNotificationView_Day_1_en","features.messages.impl.typing_TypingNotificationView_Night_1_en",20196,], +["features.messages.impl.typing_TypingNotificationView_Day_2_en","features.messages.impl.typing_TypingNotificationView_Night_2_en",20196,], +["features.messages.impl.typing_TypingNotificationView_Day_3_en","features.messages.impl.typing_TypingNotificationView_Night_3_en",20196,], +["features.messages.impl.typing_TypingNotificationView_Day_4_en","features.messages.impl.typing_TypingNotificationView_Night_4_en",20196,], +["features.messages.impl.typing_TypingNotificationView_Day_5_en","features.messages.impl.typing_TypingNotificationView_Night_5_en",20196,], +["features.messages.impl.typing_TypingNotificationView_Day_6_en","features.messages.impl.typing_TypingNotificationView_Night_6_en",20196,], ["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","",20182,], +["libraries.matrix.ui.components_UnresolvedUserRow_en","",20196,], ["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",20182,], -["features.createroom.impl.components_UserListView_Day_0_en","features.createroom.impl.components_UserListView_Night_0_en",20182,], -["features.createroom.impl.components_UserListView_Day_1_en","features.createroom.impl.components_UserListView_Night_1_en",20182,], -["features.createroom.impl.components_UserListView_Day_2_en","features.createroom.impl.components_UserListView_Night_2_en",20182,], +["features.roomdetails.impl.notificationsettings_UserDefinedRoomNotificationSettingsView_Day_0_en","features.roomdetails.impl.notificationsettings_UserDefinedRoomNotificationSettingsView_Night_0_en",20196,], +["features.createroom.impl.components_UserListView_Day_0_en","features.createroom.impl.components_UserListView_Night_0_en",20196,], +["features.createroom.impl.components_UserListView_Day_1_en","features.createroom.impl.components_UserListView_Night_1_en",20196,], +["features.createroom.impl.components_UserListView_Day_2_en","features.createroom.impl.components_UserListView_Night_2_en",20196,], ["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",20182,], +["features.createroom.impl.components_UserListView_Day_7_en","features.createroom.impl.components_UserListView_Night_7_en",20196,], ["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",20182,], +["features.createroom.impl.components_UserListView_Day_9_en","features.createroom.impl.components_UserListView_Night_9_en",20196,], ["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_UserProfileHeaderSectionWithVerificationViolation_Day_0_en","features.userprofile.shared_UserProfileHeaderSectionWithVerificationViolation_Night_0_en",20182,], -["features.userprofile.shared_UserProfileHeaderSection_Day_0_en","features.userprofile.shared_UserProfileHeaderSection_Night_0_en",20182,], -["features.userprofile.shared_UserProfileView_Day_0_en","features.userprofile.shared_UserProfileView_Night_0_en",20182,], -["features.userprofile.shared_UserProfileView_Day_1_en","features.userprofile.shared_UserProfileView_Night_1_en",20182,], -["features.userprofile.shared_UserProfileView_Day_2_en","features.userprofile.shared_UserProfileView_Night_2_en",20182,], -["features.userprofile.shared_UserProfileView_Day_3_en","features.userprofile.shared_UserProfileView_Night_3_en",20182,], -["features.userprofile.shared_UserProfileView_Day_4_en","features.userprofile.shared_UserProfileView_Night_4_en",20182,], -["features.userprofile.shared_UserProfileView_Day_5_en","features.userprofile.shared_UserProfileView_Night_5_en",20182,], -["features.userprofile.shared_UserProfileView_Day_6_en","features.userprofile.shared_UserProfileView_Night_6_en",20182,], -["features.userprofile.shared_UserProfileView_Day_7_en","features.userprofile.shared_UserProfileView_Night_7_en",20182,], -["features.userprofile.shared_UserProfileView_Day_8_en","features.userprofile.shared_UserProfileView_Night_8_en",20182,], -["features.userprofile.shared_UserProfileView_Day_9_en","features.userprofile.shared_UserProfileView_Night_9_en",20182,], +["features.userprofile.shared_UserProfileHeaderSectionWithVerificationViolation_Day_0_en","features.userprofile.shared_UserProfileHeaderSectionWithVerificationViolation_Night_0_en",20196,], +["features.userprofile.shared_UserProfileHeaderSection_Day_0_en","features.userprofile.shared_UserProfileHeaderSection_Night_0_en",20196,], +["features.userprofile.shared_UserProfileView_Day_0_en","features.userprofile.shared_UserProfileView_Night_0_en",20196,], +["features.userprofile.shared_UserProfileView_Day_1_en","features.userprofile.shared_UserProfileView_Night_1_en",20196,], +["features.userprofile.shared_UserProfileView_Day_2_en","features.userprofile.shared_UserProfileView_Night_2_en",20196,], +["features.userprofile.shared_UserProfileView_Day_3_en","features.userprofile.shared_UserProfileView_Night_3_en",20196,], +["features.userprofile.shared_UserProfileView_Day_4_en","features.userprofile.shared_UserProfileView_Night_4_en",20196,], +["features.userprofile.shared_UserProfileView_Day_5_en","features.userprofile.shared_UserProfileView_Night_5_en",20196,], +["features.userprofile.shared_UserProfileView_Day_6_en","features.userprofile.shared_UserProfileView_Night_6_en",20196,], +["features.userprofile.shared_UserProfileView_Day_7_en","features.userprofile.shared_UserProfileView_Night_7_en",20196,], +["features.userprofile.shared_UserProfileView_Day_8_en","features.userprofile.shared_UserProfileView_Night_8_en",20196,], +["features.userprofile.shared_UserProfileView_Day_9_en","features.userprofile.shared_UserProfileView_Night_9_en",20196,], ["features.verifysession.impl.ui_VerificationUserProfileContent_Day_0_en","features.verifysession.impl.ui_VerificationUserProfileContent_Night_0_en",0,], -["features.verifysession.impl.outgoing_VerifySelfSessionView_Day_0_en","features.verifysession.impl.outgoing_VerifySelfSessionView_Night_0_en",20182,], -["features.verifysession.impl.outgoing_VerifySelfSessionView_Day_10_en","features.verifysession.impl.outgoing_VerifySelfSessionView_Night_10_en",20182,], -["features.verifysession.impl.outgoing_VerifySelfSessionView_Day_11_en","features.verifysession.impl.outgoing_VerifySelfSessionView_Night_11_en",20182,], +["features.verifysession.impl.outgoing_VerifySelfSessionView_Day_0_en","features.verifysession.impl.outgoing_VerifySelfSessionView_Night_0_en",20196,], +["features.verifysession.impl.outgoing_VerifySelfSessionView_Day_10_en","features.verifysession.impl.outgoing_VerifySelfSessionView_Night_10_en",20196,], +["features.verifysession.impl.outgoing_VerifySelfSessionView_Day_11_en","features.verifysession.impl.outgoing_VerifySelfSessionView_Night_11_en",20196,], ["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",0,], -["features.verifysession.impl.outgoing_VerifySelfSessionView_Day_1_en","features.verifysession.impl.outgoing_VerifySelfSessionView_Night_1_en",20182,], -["features.verifysession.impl.outgoing_VerifySelfSessionView_Day_2_en","features.verifysession.impl.outgoing_VerifySelfSessionView_Night_2_en",20182,], -["features.verifysession.impl.outgoing_VerifySelfSessionView_Day_3_en","features.verifysession.impl.outgoing_VerifySelfSessionView_Night_3_en",20182,], -["features.verifysession.impl.outgoing_VerifySelfSessionView_Day_4_en","features.verifysession.impl.outgoing_VerifySelfSessionView_Night_4_en",20182,], -["features.verifysession.impl.outgoing_VerifySelfSessionView_Day_5_en","features.verifysession.impl.outgoing_VerifySelfSessionView_Night_5_en",20182,], -["features.verifysession.impl.outgoing_VerifySelfSessionView_Day_6_en","features.verifysession.impl.outgoing_VerifySelfSessionView_Night_6_en",20182,], -["features.verifysession.impl.outgoing_VerifySelfSessionView_Day_7_en","features.verifysession.impl.outgoing_VerifySelfSessionView_Night_7_en",20182,], -["features.verifysession.impl.outgoing_VerifySelfSessionView_Day_8_en","features.verifysession.impl.outgoing_VerifySelfSessionView_Night_8_en",20182,], -["features.verifysession.impl.outgoing_VerifySelfSessionView_Day_9_en","features.verifysession.impl.outgoing_VerifySelfSessionView_Night_9_en",20182,], +["features.verifysession.impl.outgoing_VerifySelfSessionView_Day_1_en","features.verifysession.impl.outgoing_VerifySelfSessionView_Night_1_en",20196,], +["features.verifysession.impl.outgoing_VerifySelfSessionView_Day_2_en","features.verifysession.impl.outgoing_VerifySelfSessionView_Night_2_en",20196,], +["features.verifysession.impl.outgoing_VerifySelfSessionView_Day_3_en","features.verifysession.impl.outgoing_VerifySelfSessionView_Night_3_en",20196,], +["features.verifysession.impl.outgoing_VerifySelfSessionView_Day_4_en","features.verifysession.impl.outgoing_VerifySelfSessionView_Night_4_en",20196,], +["features.verifysession.impl.outgoing_VerifySelfSessionView_Day_5_en","features.verifysession.impl.outgoing_VerifySelfSessionView_Night_5_en",20196,], +["features.verifysession.impl.outgoing_VerifySelfSessionView_Day_6_en","features.verifysession.impl.outgoing_VerifySelfSessionView_Night_6_en",20196,], +["features.verifysession.impl.outgoing_VerifySelfSessionView_Day_7_en","features.verifysession.impl.outgoing_VerifySelfSessionView_Night_7_en",20196,], +["features.verifysession.impl.outgoing_VerifySelfSessionView_Day_8_en","features.verifysession.impl.outgoing_VerifySelfSessionView_Night_8_en",20196,], +["features.verifysession.impl.outgoing_VerifySelfSessionView_Day_9_en","features.verifysession.impl.outgoing_VerifySelfSessionView_Night_9_en",20196,], ["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,], ["features.viewfolder.impl.file_ViewFileView_Day_0_en","features.viewfolder.impl.file_ViewFileView_Night_0_en",0,], ["features.viewfolder.impl.file_ViewFileView_Day_1_en","features.viewfolder.impl.file_ViewFileView_Night_1_en",0,], ["features.viewfolder.impl.file_ViewFileView_Day_2_en","features.viewfolder.impl.file_ViewFileView_Night_2_en",0,], -["features.viewfolder.impl.file_ViewFileView_Day_3_en","features.viewfolder.impl.file_ViewFileView_Night_3_en",20182,], +["features.viewfolder.impl.file_ViewFileView_Day_3_en","features.viewfolder.impl.file_ViewFileView_Night_3_en",20196,], ["features.viewfolder.impl.file_ViewFileView_Day_4_en","features.viewfolder.impl.file_ViewFileView_Night_4_en",0,], ["features.viewfolder.impl.file_ViewFileView_Day_5_en","features.viewfolder.impl.file_ViewFileView_Night_5_en",0,], ["features.viewfolder.impl.folder_ViewFolderView_Day_0_en","features.viewfolder.impl.folder_ViewFolderView_Night_0_en",0,], @@ -1468,6 +1480,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",20182,], +["features.ftue.impl.welcome_WelcomeView_Day_0_en","features.ftue.impl.welcome_WelcomeView_Night_0_en",20196,], ["libraries.designsystem.ruler_WithRulers_Day_0_en","libraries.designsystem.ruler_WithRulers_Night_0_en",0,], ]; diff --git a/services/appnavstate/api/src/main/kotlin/io/element/android/services/appnavstate/api/AppForegroundStateService.kt b/services/appnavstate/api/src/main/kotlin/io/element/android/services/appnavstate/api/AppForegroundStateService.kt index 0455d01a13..6b96476376 100644 --- a/services/appnavstate/api/src/main/kotlin/io/element/android/services/appnavstate/api/AppForegroundStateService.kt +++ b/services/appnavstate/api/src/main/kotlin/io/element/android/services/appnavstate/api/AppForegroundStateService.kt @@ -18,6 +18,11 @@ interface AppForegroundStateService { */ val isInForeground: StateFlow + /** + * Updates to whether the app is active because an incoming ringing call is happening will be emitted here. + */ + val hasRingingCall: StateFlow + /** * Updates to whether the app is in an active call or not will be emitted here. */ @@ -38,6 +43,11 @@ interface AppForegroundStateService { */ fun updateIsInCallState(isInCall: Boolean) + /** + * Update the 'has ringing call' state. + */ + fun updateHasRingingCall(hasRingingCall: Boolean) + /** * Update the active state for the syncing notification event flow. */ diff --git a/services/appnavstate/impl/src/main/kotlin/io/element/android/services/appnavstate/impl/DefaultAppForegroundStateService.kt b/services/appnavstate/impl/src/main/kotlin/io/element/android/services/appnavstate/impl/DefaultAppForegroundStateService.kt index dcafcc50fb..9bd5004f13 100644 --- a/services/appnavstate/impl/src/main/kotlin/io/element/android/services/appnavstate/impl/DefaultAppForegroundStateService.kt +++ b/services/appnavstate/impl/src/main/kotlin/io/element/android/services/appnavstate/impl/DefaultAppForegroundStateService.kt @@ -17,6 +17,7 @@ class DefaultAppForegroundStateService : AppForegroundStateService { override val isInForeground = MutableStateFlow(false) override val isInCall = MutableStateFlow(false) override val isSyncingNotificationEvent = MutableStateFlow(false) + override val hasRingingCall = MutableStateFlow(false) private val appLifecycle: Lifecycle by lazy { ProcessLifecycleOwner.get().lifecycle } @@ -28,6 +29,10 @@ class DefaultAppForegroundStateService : AppForegroundStateService { this.isInCall.value = isInCall } + override fun updateHasRingingCall(hasRingingCall: Boolean) { + this.hasRingingCall.value = hasRingingCall + } + override fun updateIsSyncingNotificationEvent(isSyncingNotificationEvent: Boolean) { this.isSyncingNotificationEvent.value = isSyncingNotificationEvent } diff --git a/services/appnavstate/test/src/main/kotlin/io/element/android/services/appnavstate/test/FakeAppForegroundStateService.kt b/services/appnavstate/test/src/main/kotlin/io/element/android/services/appnavstate/test/FakeAppForegroundStateService.kt index ad39e4b6de..b8bb7b8a20 100644 --- a/services/appnavstate/test/src/main/kotlin/io/element/android/services/appnavstate/test/FakeAppForegroundStateService.kt +++ b/services/appnavstate/test/src/main/kotlin/io/element/android/services/appnavstate/test/FakeAppForegroundStateService.kt @@ -13,11 +13,13 @@ import kotlinx.coroutines.flow.MutableStateFlow class FakeAppForegroundStateService( initialForegroundValue: Boolean = true, initialIsInCallValue: Boolean = false, - initialIsSyncingNotificationEventValue: Boolean = false + initialIsSyncingNotificationEventValue: Boolean = false, + initialHasRingingCall: Boolean = false, ) : AppForegroundStateService { override val isInForeground = MutableStateFlow(initialForegroundValue) override val isInCall = MutableStateFlow(initialIsInCallValue) override val isSyncingNotificationEvent = MutableStateFlow(initialIsSyncingNotificationEventValue) + override val hasRingingCall = MutableStateFlow(initialHasRingingCall) override fun startObservingForeground() { // No-op @@ -34,4 +36,8 @@ class FakeAppForegroundStateService( override fun updateIsSyncingNotificationEvent(isSyncingNotificationEvent: Boolean) { this.isSyncingNotificationEvent.value = isSyncingNotificationEvent } + + override fun updateHasRingingCall(hasRingingCall: Boolean) { + this.hasRingingCall.value = hasRingingCall + } } 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 0a55481c18..c5f034e599 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:4363da491dffbd115684de4585a3ee80baa768e17bc2dc08c2fa4fcff7cf15a4 -size 26155 +oid sha256:44617db3cb0a2f51f50e983ee6594285e58fb37a363176e6407b8cd31bf31557 +size 26106 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 6c0f9925ef..9aab98f331 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:82e51524207124c47295760b455a917b84a5070c3b1ed30634ad9dd08306fe8a -size 27724 +oid sha256:f58b3497ac1f04114e9c3d0707581bf4f2b1ede0224e5a7cea1b4d48e0197a77 +size 27713 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 c85914d89f..00f6ddbf2c 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:47a2a121c571b1b33f24f1e60d00937bdd2f327726487b4a63b269ce3cdec73f -size 63891 +oid sha256:ed176e71df15c6da072badc6db227580ab5b4a4ef41932754fd21c9816c6b16b +size 63857 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 4f4c950f62..51acf2f8d0 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:5e09247630bfb3b01f581b347bf9a42e8bafa96de707187c5422bb19e8844d82 -size 66887 +oid sha256:f61cc2b5b7f836d898ef9fa850230ada79303d4caa0f56005a0cb78bc526c184 +size 66888 diff --git a/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.customreaction_EmojiPicker_Day_0_en.png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.customreaction_EmojiPicker_Day_0_en.png index 29b1a5cb41..241ad3330b 100644 --- a/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.customreaction_EmojiPicker_Day_0_en.png +++ b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.customreaction_EmojiPicker_Day_0_en.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:ddbe76235df4343660750e42512a431d10911442db54a2441fcb204ee4a6eb38 -size 230808 +oid sha256:03afa6a6d6c2b3ce7fd8b665e3bdf2b1cfdfe8414449817ec5d8c8f4ec5c6d7e +size 227835 diff --git a/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.customreaction_EmojiPicker_Night_0_en.png b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.customreaction_EmojiPicker_Night_0_en.png index 6aa56907d4..f6c22c0964 100644 --- a/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.customreaction_EmojiPicker_Night_0_en.png +++ b/tests/uitests/src/test/snapshots/images/features.messages.impl.timeline.components.customreaction_EmojiPicker_Night_0_en.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:bcc7cc69fdcae48da59f2bec88950aad996b869813d7f569bb205235efbd2731 -size 233656 +oid sha256:d6ac3b50611b79a15d5d80fdbc3790fda66f7877d58e65c64362577e377bd4db +size 230660 diff --git a/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewDark_0_en.png b/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewDark_0_en.png index c6ea7ea86b..6dcb4a0233 100644 --- a/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewDark_0_en.png +++ b/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewDark_0_en.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:926ce46cacac7beaac403e1c4e8034398d91dc48ab5f651bc7f0639ac65fe33a -size 46759 +oid sha256:733b71c4199d1a5908b5e76d8e44f5781cee39e97d57a049be99f9e66c3d30e1 +size 46936 diff --git a/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewDark_1_en.png b/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewDark_1_en.png index edccccc989..a7fb1c20db 100644 --- a/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewDark_1_en.png +++ b/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewDark_1_en.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:84c2474bc4d10e1aa3184c41b12b1bcf51d7e2b7ec801944608613aa46f50eba -size 46636 +oid sha256:ef41e0df758991e44e9abcf3d7d511c7cc932711db58e94ad1b4617fe45c60c3 +size 46826 diff --git a/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewDark_2_en.png b/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewDark_2_en.png index 01cf719299..45ab8e1004 100644 --- a/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewDark_2_en.png +++ b/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewDark_2_en.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:611d435a2b3e6e0f8c7721905f635c1c93aa217df3fe4f4b6bb38bf5700e3629 -size 34586 +oid sha256:de45164ae8112206c1cf1a67c284cdea1509f4fa070f963fddf6a87eb9183ee1 +size 46813 diff --git a/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewDark_3_en.png b/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewDark_3_en.png index f844203887..29477d75f1 100644 --- a/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewDark_3_en.png +++ b/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewDark_3_en.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:4d9b0a865db8f87d6c1c95b8fb6d916f261d44cecec52fdebd56288f2df35f0f -size 46627 +oid sha256:7c3c1d2b2fc9e5a16a1bc57551238c5190f25a873575eaf3731c36aaf19d7f00 +size 46802 diff --git a/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewDark_4_en.png b/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewDark_4_en.png index 69f5a502d5..a8639cc5a5 100644 --- a/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewDark_4_en.png +++ b/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewDark_4_en.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:0505bdd3cfccf156249ab27ed0f087bd4d01d11121cb1f5e0c8450c6b7b58059 -size 46615 +oid sha256:1759e7063862ec1de7ce2b894067478599afb7c87b183e904c8d0199c93ed546 +size 46646 diff --git a/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewDark_5_en.png b/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewDark_5_en.png index ef2041611a..9d24cf3869 100644 --- a/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewDark_5_en.png +++ b/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewDark_5_en.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:a004afcec0cb40f82172c7abdc4404d1a0d879d0e23c63d0dcd1d7325cddff43 -size 46471 +oid sha256:420e10e0eb2c90d38e28262152dd2dee54cfb73f7b031b7a34acea17a8f784fa +size 46943 diff --git a/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewDark_6_en.png b/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewDark_6_en.png deleted file mode 100644 index a3a7ee69cf..0000000000 --- a/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewDark_6_en.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:cb09af4f9c96afb60b917d9484e28bacb73c494f9dfc2f42abb482896027b7b7 -size 46767 diff --git a/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewLight_0_en.png b/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewLight_0_en.png index a61c1185f1..d526c73fb5 100644 --- a/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewLight_0_en.png +++ b/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewLight_0_en.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:4dfb5f83a129332a84f0184ba6a37ba9a95ded6fd9692a6e5710aaeb6b424c7c -size 48610 +oid sha256:7faf10e196f9275fdafabb53cb354532b2c5aa73869d1fe48ac67b53bbb34531 +size 48681 diff --git a/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewLight_1_en.png b/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewLight_1_en.png index 6c498e613b..b5d33d0961 100644 --- a/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewLight_1_en.png +++ b/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewLight_1_en.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:903d0aa3faa5b4feae990139c467a5a6662808ffb768c7a2a5cd314f9ea09ba2 -size 48482 +oid sha256:15b0cf42d99a96ef4b52349301e4e90a5478150396a6890a66df1d33c3b6b89d +size 48558 diff --git a/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewLight_2_en.png b/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewLight_2_en.png index 992a95c8f1..a5808a088f 100644 --- a/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewLight_2_en.png +++ b/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewLight_2_en.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:4a2538700b5dc993568575e7017fc26c3cba7af7b7567fac069af5aa0c6f6b5f -size 36484 +oid sha256:f7debb36ffa6a60d7d30f9d59e247e6091c455860bdaae67502a52a5cec5e9c9 +size 48572 diff --git a/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewLight_3_en.png b/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewLight_3_en.png index babb6a6546..522326aa21 100644 --- a/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewLight_3_en.png +++ b/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewLight_3_en.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:9177ba1065f5cfe3137a16c024445332b2fe326969f5f6d65ccf6b1707deabe9 -size 48502 +oid sha256:106251ed2fb0a330fa98d4dabd8aebcb946fdbd098b18372c8a9c3b8df39086f +size 48554 diff --git a/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewLight_4_en.png b/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewLight_4_en.png index 909a027708..85e9963735 100644 --- a/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewLight_4_en.png +++ b/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewLight_4_en.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:1f07064f41aafea6a91e3314d7d3bb099918e348ef9f9154a057d90758b9fb71 -size 48480 +oid sha256:a9b8cb284cc78c03f4bd4f4364d898e656a07ebe228243fdded35c283a1205e0 +size 48492 diff --git a/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewLight_5_en.png b/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewLight_5_en.png index e2d2f592e0..8e06f2bcad 100644 --- a/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewLight_5_en.png +++ b/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewLight_5_en.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:92c1c93890214c88ed0e4d1d9faee27cc671db94fe928633ccc82471c137b64a -size 48422 +oid sha256:ddb21e08e8047aada11330634ad9c137cdb8a3a349f457c066243394fcc23924 +size 48682 diff --git a/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewLight_6_en.png b/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewLight_6_en.png deleted file mode 100644 index feba53f652..0000000000 --- a/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewLight_6_en.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:7f21d860514e97b48c3fab7fef4fbf6d710854d21ea2eecc3b44a5ba340c92eb -size 48608 diff --git a/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.members.moderation_RoomMembersModerationView_Day_2_en.png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.members.moderation_RoomMembersModerationView_Day_2_en.png index 3b37e117c7..9b35d63d7f 100644 --- a/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.members.moderation_RoomMembersModerationView_Day_2_en.png +++ b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.members.moderation_RoomMembersModerationView_Day_2_en.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:9a673902196c21fd868bc710c29492488476f2d5691c0d2968fc9fa0b0f05b7e -size 26366 +oid sha256:d913c6d23a74ba9a117ccc55922f556b0a51deabcc030a7942bdede9297ae624 +size 24805 diff --git a/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.members.moderation_RoomMembersModerationView_Night_2_en.png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.members.moderation_RoomMembersModerationView_Night_2_en.png index 16d7b070fc..cca7dcc511 100644 --- a/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.members.moderation_RoomMembersModerationView_Night_2_en.png +++ b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.members.moderation_RoomMembersModerationView_Night_2_en.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:5636d4778b2c6ab05db6f5cb15e86c58eb0a7d138ead3ae6a2ac217b29d123ba -size 24937 +oid sha256:4da58fd502c79c18ddd82dc3be4f7c4c26fb1191d9ed499e447af061bd5a6fc5 +size 23445 diff --git a/tests/uitests/src/test/snapshots/images/libraries.troubleshoot.impl.history_PushHistoryView_Day_0_en.png b/tests/uitests/src/test/snapshots/images/libraries.troubleshoot.impl.history_PushHistoryView_Day_0_en.png index fe1f4cb059..f8ec437752 100644 --- a/tests/uitests/src/test/snapshots/images/libraries.troubleshoot.impl.history_PushHistoryView_Day_0_en.png +++ b/tests/uitests/src/test/snapshots/images/libraries.troubleshoot.impl.history_PushHistoryView_Day_0_en.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:04cc3a21bceeee5727df5728d34eb7618a5a90949352cd02f4eaa2be77c47492 -size 13565 +oid sha256:673fc1787251cbd1f0d6ea6971c1c7a35b4a990e47adbf5b3e2ac442cf74f809 +size 12656 diff --git a/tests/uitests/src/test/snapshots/images/libraries.troubleshoot.impl.history_PushHistoryView_Day_1_en.png b/tests/uitests/src/test/snapshots/images/libraries.troubleshoot.impl.history_PushHistoryView_Day_1_en.png index a1e58baca5..9afa0c1a04 100644 --- a/tests/uitests/src/test/snapshots/images/libraries.troubleshoot.impl.history_PushHistoryView_Day_1_en.png +++ b/tests/uitests/src/test/snapshots/images/libraries.troubleshoot.impl.history_PushHistoryView_Day_1_en.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:7a8c0a12277b4335b1d01d3f5f206704b37c4cfb3693ec7d9a26ce15215ba800 -size 45566 +oid sha256:5a778dc2f98f1ad4ee901e4ca0d9b593cb78f44ab67337350349869f4b211a51 +size 44773 diff --git a/tests/uitests/src/test/snapshots/images/libraries.troubleshoot.impl.history_PushHistoryView_Day_2_en.png b/tests/uitests/src/test/snapshots/images/libraries.troubleshoot.impl.history_PushHistoryView_Day_2_en.png new file mode 100644 index 0000000000..3f76ccdc77 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/libraries.troubleshoot.impl.history_PushHistoryView_Day_2_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b32c39383aef9ed41ba65109d4ee5e97f057221474aeeb90522c161d3b0c2409 +size 21014 diff --git a/tests/uitests/src/test/snapshots/images/libraries.troubleshoot.impl.history_PushHistoryView_Night_0_en.png b/tests/uitests/src/test/snapshots/images/libraries.troubleshoot.impl.history_PushHistoryView_Night_0_en.png index aa1f275616..8bd1f33ecb 100644 --- a/tests/uitests/src/test/snapshots/images/libraries.troubleshoot.impl.history_PushHistoryView_Night_0_en.png +++ b/tests/uitests/src/test/snapshots/images/libraries.troubleshoot.impl.history_PushHistoryView_Night_0_en.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:9d877e4d537fa0990dd0f2a5e14f2d00cf8dcd45a4c27fac6c0188ef2b441756 -size 13163 +oid sha256:97c2af47763d65926e407c94901e1b0a691218b1cf152203fc4fd2f396c17e43 +size 12270 diff --git a/tests/uitests/src/test/snapshots/images/libraries.troubleshoot.impl.history_PushHistoryView_Night_1_en.png b/tests/uitests/src/test/snapshots/images/libraries.troubleshoot.impl.history_PushHistoryView_Night_1_en.png index d61baf4fc4..b103e9e094 100644 --- a/tests/uitests/src/test/snapshots/images/libraries.troubleshoot.impl.history_PushHistoryView_Night_1_en.png +++ b/tests/uitests/src/test/snapshots/images/libraries.troubleshoot.impl.history_PushHistoryView_Night_1_en.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:1f110d1684003cdd1d6e47f765bbf4f55e2b0f3ba732926df08d06297b36bb7b -size 44157 +oid sha256:bfb8a1f9bd060141b0f20490d4066724f34d1560296235f5e45f98de9d3d7aad +size 43310 diff --git a/tests/uitests/src/test/snapshots/images/libraries.troubleshoot.impl.history_PushHistoryView_Night_2_en.png b/tests/uitests/src/test/snapshots/images/libraries.troubleshoot.impl.history_PushHistoryView_Night_2_en.png new file mode 100644 index 0000000000..909315d240 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/libraries.troubleshoot.impl.history_PushHistoryView_Night_2_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:af4e8fb83c87caccd084c0321a5e47451c1a8bba3eed1e948e95d6184667f710 +size 19339 diff --git a/tools/adb/disable_app_standby.sh b/tools/adb/disable_app_standby.sh new file mode 100755 index 0000000000..311921aa33 --- /dev/null +++ b/tools/adb/disable_app_standby.sh @@ -0,0 +1,18 @@ +#!/usr/bin/env bash + +# 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. + +# Ref: https://developer.android.com/training/monitoring-device-state/doze-standby#testing_your_app_with_app_standby + +echo " => Standby OFF" + +set -x +package_name="io.element.android.x.debug" +adb shell dumpsys battery reset +adb shell am set-inactive "${package_name}" false +adb shell am get-inactive "${package_name}" + +tools/adb/print_device_state.sh diff --git a/tools/adb/disable_doze_mode.sh b/tools/adb/disable_doze_mode.sh new file mode 100755 index 0000000000..b0f00a76eb --- /dev/null +++ b/tools/adb/disable_doze_mode.sh @@ -0,0 +1,16 @@ +#!/usr/bin/env bash + +# 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. + +# Ref: https://developer.android.com/training/monitoring-device-state/doze-standby#testing_doze + +echo " => Disable doze mode" + +set -x +adb shell dumpsys deviceidle unforce +adb shell dumpsys battery reset + +tools/adb/print_device_state.sh diff --git a/tools/adb/enable_app_standby.sh b/tools/adb/enable_app_standby.sh new file mode 100755 index 0000000000..393bfa14b9 --- /dev/null +++ b/tools/adb/enable_app_standby.sh @@ -0,0 +1,18 @@ +#!/usr/bin/env bash + +# 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. + +# Ref: https://developer.android.com/training/monitoring-device-state/doze-standby#testing_your_app_with_app_standby + +echo " => Standby ON" + +set -x +package_name="io.element.android.x.debug" +adb shell dumpsys battery unplug +adb shell am set-inactive "${package_name}" true +adb shell am get-inactive "${package_name}" + +tools/adb/print_device_state.sh diff --git a/tools/adb/enable_doze_mode.sh b/tools/adb/enable_doze_mode.sh new file mode 100755 index 0000000000..5eb9d23c92 --- /dev/null +++ b/tools/adb/enable_doze_mode.sh @@ -0,0 +1,16 @@ +#!/usr/bin/env bash + +# 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. + +# Ref: https://developer.android.com/training/monitoring-device-state/doze-standby#testing_doze + +echo " => Enable doze mode" + +set -x +adb shell dumpsys battery unplug +adb shell dumpsys deviceidle force-idle + +tools/adb/print_device_state.sh diff --git a/tools/adb/print_device_state.sh b/tools/adb/print_device_state.sh new file mode 100755 index 0000000000..4d0061fe75 --- /dev/null +++ b/tools/adb/print_device_state.sh @@ -0,0 +1,18 @@ +#!/usr/bin/env bash + +# 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. + +# Ref: https://developer.android.com/training/monitoring-device-state/doze-standby#testing_doze + +echo " => Device state" + +set -x +adb shell dumpsys deviceidle get light +adb shell dumpsys deviceidle get deep +adb shell dumpsys deviceidle get force +adb shell dumpsys deviceidle get screen +adb shell dumpsys deviceidle get charging +adb shell dumpsys deviceidle get network