Browse Source

Merge branch 'develop' into feature/fga/fix_restoration

feature/jme/update_rust_sdk
ganfra 2 years ago
parent
commit
9cf88fff5f
  1. 3
      app/src/main/kotlin/io/element/android/x/info/Logs.kt
  2. 2
      app/src/main/kotlin/io/element/android/x/initializer/MatrixInitializer.kt
  3. 2
      app/src/main/kotlin/io/element/android/x/initializer/TimberInitializer.kt
  4. 2
      app/src/main/kotlin/io/element/android/x/root/RootPresenter.kt
  5. 2
      app/src/main/kotlin/io/element/android/x/root/RootView.kt
  6. 6
      features/login/src/main/kotlin/io/element/android/features/login/changeserver/ChangeServerView.kt
  7. 2
      features/login/src/main/kotlin/io/element/android/features/login/error/ErrorFormatter.kt
  8. 4
      features/login/src/main/kotlin/io/element/android/features/login/root/LoginRootScreen.kt
  9. 2
      features/messages/src/main/kotlin/io/element/android/features/messages/MessagesState.kt
  10. 6
      features/messages/src/main/kotlin/io/element/android/features/messages/MessagesView.kt
  11. 2
      features/messages/src/main/kotlin/io/element/android/features/messages/actionlist/ActionListPresenter.kt
  12. 2
      features/messages/src/main/kotlin/io/element/android/features/messages/actionlist/ActionListView.kt
  13. 1
      features/messages/src/main/kotlin/io/element/android/features/messages/actionlist/model/TimelineItemAction.kt
  14. 24
      features/messages/src/main/kotlin/io/element/android/features/messages/timeline/TimelineView.kt
  15. 2
      features/messages/src/main/kotlin/io/element/android/features/messages/timeline/components/MessageEventBubble.kt
  16. 4
      features/messages/src/main/kotlin/io/element/android/features/messages/timeline/components/TimelineItemTextView.kt
  17. 2
      features/messages/src/main/kotlin/io/element/android/features/messages/timeline/model/TimelineItem.kt
  18. 4
      features/preferences/src/main/kotlin/io/element/android/features/preferences/root/PreferencesRootPresenter.kt
  19. 2
      features/preferences/src/main/kotlin/io/element/android/features/preferences/root/PreferencesRootState.kt
  20. 4
      features/preferences/src/main/kotlin/io/element/android/features/preferences/root/PreferencesRootView.kt
  21. 4
      features/rageshake/src/main/kotlin/io/element/android/features/rageshake/bugreport/BugReportPresenter.kt
  22. 2
      features/rageshake/src/main/kotlin/io/element/android/features/rageshake/bugreport/BugReportView.kt
  23. 2
      features/rageshake/src/main/kotlin/io/element/android/features/rageshake/crash/CrashDataStore.kt
  24. 2
      features/rageshake/src/main/kotlin/io/element/android/features/rageshake/crash/VectorUncaughtExceptionHandler.kt
  25. 2
      features/rageshake/src/main/kotlin/io/element/android/features/rageshake/crash/ui/CrashDetectionPresenter.kt
  26. 2
      features/rageshake/src/main/kotlin/io/element/android/features/rageshake/detection/RageshakeDetectionView.kt
  27. 2
      features/rageshake/src/main/kotlin/io/element/android/features/rageshake/preferences/RageshakePreferencesPresenter.kt
  28. 2
      features/rageshake/src/main/kotlin/io/element/android/features/rageshake/rageshake/RageshakeDataStore.kt
  29. 20
      features/rageshake/src/main/kotlin/io/element/android/features/rageshake/reporter/BugReporter.kt
  30. 2
      features/roomlist/src/main/kotlin/io/element/android/features/roomlist/RoomListView.kt
  31. 2
      features/roomlist/src/main/kotlin/io/element/android/features/roomlist/components/RoomSummaryRow.kt
  32. 4
      features/roomlist/src/test/kotlin/io/element/android/features/roomlist/RoomListPresenterTests.kt
  33. 2
      features/template/src/main/AndroidManifest.xml
  34. 1
      features/template/src/main/kotlin/io/element/android/features/template/TemplateNode.kt
  35. 2
      libraries/matrix/src/main/kotlin/io/element/android/libraries/matrix/permalink/PermalinkParser.kt
  36. 6
      libraries/matrix/src/main/kotlin/io/element/android/libraries/matrix/room/RoomSummaryDataSource.kt
  37. 6
      libraries/matrixtest/src/main/kotlin/io/element/android/libraries/matrixtest/FakeMatrixClient.kt
  38. 2
      libraries/matrixtest/src/main/kotlin/io/element/android/libraries/matrixtest/room/FakeMatrixRoom.kt
  39. 1
      libraries/testtags/src/main/kotlin/io/element/android/libraries/testtags/Compose.kt
  40. 3
      libraries/ui-strings/src/main/res/values-cs/strings.xml
  41. 3
      libraries/ui-strings/src/main/res/values-de/strings.xml
  42. 3
      libraries/ui-strings/src/main/res/values-et/strings.xml
  43. 3
      libraries/ui-strings/src/main/res/values-fa/strings.xml
  44. 3
      libraries/ui-strings/src/main/res/values-fr/strings.xml
  45. 3
      libraries/ui-strings/src/main/res/values-hu/strings.xml
  46. 5
      libraries/ui-strings/src/main/res/values-in/strings.xml
  47. 19
      libraries/ui-strings/src/main/res/values-ja/strings.xml
  48. 42
      libraries/ui-strings/src/main/res/values-pl/strings.xml
  49. 74
      libraries/ui-strings/src/main/res/values-ru/strings.xml
  50. 3
      libraries/ui-strings/src/main/res/values-sk/strings.xml
  51. 3
      libraries/ui-strings/src/main/res/values-uk/strings.xml
  52. 2
      libraries/ui-strings/src/main/res/values/donottranslate.xml
  53. 1
      libraries/ui-strings/src/main/res/values/strings.xml

3
app/src/main/kotlin/io/element/android/x/info/Logs.kt

@ -19,7 +19,8 @@ package io.element.android.x.info @@ -19,7 +19,8 @@ package io.element.android.x.info
import io.element.android.x.BuildConfig
import timber.log.Timber
import java.text.SimpleDateFormat
import java.util.*
import java.util.Date
import java.util.Locale
fun logApplicationInfo() {
val appVersion = buildString {

2
app/src/main/kotlin/io/element/android/x/initializer/MatrixInitializer.kt

@ -18,9 +18,9 @@ package io.element.android.x.initializer @@ -18,9 +18,9 @@ package io.element.android.x.initializer
import android.content.Context
import androidx.startup.Initializer
import io.element.android.x.BuildConfig
import io.element.android.libraries.matrix.tracing.TracingConfigurations
import io.element.android.libraries.matrix.tracing.setupTracing
import io.element.android.x.BuildConfig
class MatrixInitializer : Initializer<Unit> {

2
app/src/main/kotlin/io/element/android/x/initializer/TimberInitializer.kt

@ -18,8 +18,8 @@ package io.element.android.x.initializer @@ -18,8 +18,8 @@ package io.element.android.x.initializer
import android.content.Context
import androidx.startup.Initializer
import io.element.android.x.BuildConfig
import io.element.android.features.rageshake.logs.VectorFileLogger
import io.element.android.x.BuildConfig
import timber.log.Timber
class TimberInitializer : Initializer<Unit> {

2
app/src/main/kotlin/io/element/android/x/root/RootPresenter.kt

@ -19,10 +19,10 @@ package io.element.android.x.root @@ -19,10 +19,10 @@ package io.element.android.x.root
import androidx.compose.runtime.Composable
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.saveable.rememberSaveable
import io.element.android.libraries.architecture.Presenter
import io.element.android.features.rageshake.bugreport.BugReportPresenter
import io.element.android.features.rageshake.crash.ui.CrashDetectionPresenter
import io.element.android.features.rageshake.detection.RageshakeDetectionPresenter
import io.element.android.libraries.architecture.Presenter
import javax.inject.Inject
class RootPresenter @Inject constructor(

2
app/src/main/kotlin/io/element/android/x/root/RootView.kt

@ -24,12 +24,12 @@ import androidx.compose.runtime.Composable @@ -24,12 +24,12 @@ import androidx.compose.runtime.Composable
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.platform.LocalContext
import io.element.android.x.component.ShowkaseButton
import io.element.android.features.rageshake.crash.ui.CrashDetectionEvents
import io.element.android.features.rageshake.crash.ui.CrashDetectionView
import io.element.android.features.rageshake.detection.RageshakeDetectionEvents
import io.element.android.features.rageshake.detection.RageshakeDetectionView
import io.element.android.tests.uitests.openShowkase
import io.element.android.x.component.ShowkaseButton
@Composable
fun RootView(

6
features/login/src/main/kotlin/io/element/android/features/login/changeserver/ChangeServerView.kt

@ -52,11 +52,11 @@ import androidx.compose.ui.text.style.TextAlign @@ -52,11 +52,11 @@ import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp
import io.element.android.libraries.architecture.Async
import io.element.android.libraries.designsystem.components.form.textFieldState
import io.element.android.libraries.designsystem.components.VectorIcon
import io.element.android.features.login.R
import io.element.android.features.login.error.changeServerError
import io.element.android.libraries.architecture.Async
import io.element.android.libraries.designsystem.components.VectorIcon
import io.element.android.libraries.designsystem.components.form.textFieldState
import io.element.android.libraries.testtags.TestTags
import io.element.android.libraries.testtags.testTag

2
features/login/src/main/kotlin/io/element/android/features/login/error/ErrorFormatter.kt

@ -18,8 +18,8 @@ package io.element.android.features.login.error @@ -18,8 +18,8 @@ package io.element.android.features.login.error
import androidx.compose.runtime.Composable
import androidx.compose.ui.res.stringResource
import io.element.android.libraries.core.uri.isValidUrl
import io.element.android.features.login.root.LoginFormState
import io.element.android.libraries.core.uri.isValidUrl
import io.element.android.libraries.ui.strings.R as StringR
@Composable

4
features/login/src/main/kotlin/io/element/android/features/login/root/LoginRootScreen.kt

@ -58,11 +58,11 @@ import androidx.compose.ui.text.style.TextAlign @@ -58,11 +58,11 @@ import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp
import io.element.android.libraries.designsystem.components.form.textFieldState
import io.element.android.features.login.error.loginError
import io.element.android.libraries.designsystem.components.form.textFieldState
import io.element.android.libraries.matrix.core.SessionId
import io.element.android.libraries.testtags.TestTags
import io.element.android.libraries.testtags.testTag
import io.element.android.libraries.matrix.core.SessionId
import io.element.android.libraries.ui.strings.R as StringR
@OptIn(ExperimentalMaterial3Api::class)

2
features/messages/src/main/kotlin/io/element/android/features/messages/MessagesState.kt

@ -17,10 +17,10 @@ @@ -17,10 +17,10 @@
package io.element.android.features.messages
import androidx.compose.runtime.Immutable
import io.element.android.libraries.designsystem.components.avatar.AvatarData
import io.element.android.features.messages.actionlist.ActionListState
import io.element.android.features.messages.textcomposer.MessageComposerState
import io.element.android.features.messages.timeline.TimelineState
import io.element.android.libraries.designsystem.components.avatar.AvatarData
import io.element.android.libraries.matrix.core.RoomId
@Immutable

6
features/messages/src/main/kotlin/io/element/android/features/messages/MessagesView.kt

@ -56,14 +56,14 @@ import androidx.compose.ui.text.font.FontWeight @@ -56,14 +56,14 @@ import androidx.compose.ui.text.font.FontWeight
import androidx.compose.ui.text.style.TextOverflow
import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp
import io.element.android.libraries.designsystem.components.avatar.Avatar
import io.element.android.libraries.designsystem.components.avatar.AvatarData
import io.element.android.features.messages.actionlist.ActionListEvents
import io.element.android.features.messages.actionlist.ActionListView
import io.element.android.features.messages.actionlist.model.TimelineItemAction
import io.element.android.features.messages.timeline.model.TimelineItem
import io.element.android.features.messages.textcomposer.MessageComposerView
import io.element.android.features.messages.timeline.TimelineView
import io.element.android.features.messages.timeline.model.TimelineItem
import io.element.android.libraries.designsystem.components.avatar.Avatar
import io.element.android.libraries.designsystem.components.avatar.AvatarData
import io.element.android.libraries.designsystem.utils.LogCompositions
import kotlinx.coroutines.launch
import timber.log.Timber

2
features/messages/src/main/kotlin/io/element/android/features/messages/actionlist/ActionListPresenter.kt

@ -21,10 +21,10 @@ import androidx.compose.runtime.MutableState @@ -21,10 +21,10 @@ import androidx.compose.runtime.MutableState
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import androidx.compose.runtime.rememberCoroutineScope
import io.element.android.libraries.architecture.Presenter
import io.element.android.features.messages.actionlist.model.TimelineItemAction
import io.element.android.features.messages.timeline.model.TimelineItem
import io.element.android.features.messages.timeline.model.content.TimelineItemRedactedContent
import io.element.android.libraries.architecture.Presenter
import kotlinx.collections.immutable.toImmutableList
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.launch

2
features/messages/src/main/kotlin/io/element/android/features/messages/actionlist/ActionListView.kt

@ -41,9 +41,9 @@ import androidx.compose.runtime.snapshotFlow @@ -41,9 +41,9 @@ import androidx.compose.runtime.snapshotFlow
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.unit.dp
import io.element.android.libraries.designsystem.components.VectorIcon
import io.element.android.features.messages.actionlist.model.TimelineItemAction
import io.element.android.features.messages.timeline.model.TimelineItem
import io.element.android.libraries.designsystem.components.VectorIcon
import kotlinx.coroutines.flow.filter
import kotlinx.coroutines.launch

1
features/messages/src/main/kotlin/io/element/android/features/messages/actionlist/model/TimelineItemAction.kt

@ -18,7 +18,6 @@ package io.element.android.features.messages.actionlist.model @@ -18,7 +18,6 @@ package io.element.android.features.messages.actionlist.model
import androidx.annotation.DrawableRes
import androidx.compose.runtime.Immutable
import io.element.android.libraries.designsystem.VectorIcons
@Immutable
sealed class TimelineItemAction(

24
features/messages/src/main/kotlin/io/element/android/features/messages/timeline/TimelineView.kt

@ -58,28 +58,28 @@ import androidx.compose.ui.tooling.preview.Preview @@ -58,28 +58,28 @@ import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.tooling.preview.PreviewParameter
import androidx.compose.ui.unit.dp
import androidx.compose.ui.zIndex
import io.element.android.libraries.designsystem.utils.PairCombinedPreviewParameter
import io.element.android.libraries.designsystem.components.avatar.Avatar
import io.element.android.libraries.designsystem.components.avatar.AvatarData
import io.element.android.features.messages.timeline.components.MessageEventBubble
import io.element.android.features.messages.timeline.components.TimelineItemEncryptedView
import io.element.android.features.messages.timeline.components.TimelineItemImageView
import io.element.android.features.messages.timeline.components.TimelineItemReactionsView
import io.element.android.features.messages.timeline.components.TimelineItemRedactedView
import io.element.android.features.messages.timeline.components.TimelineItemTextView
import io.element.android.features.messages.timeline.components.TimelineItemUnknownView
import io.element.android.features.messages.timeline.model.AggregatedReaction
import io.element.android.features.messages.timeline.model.MessagesItemGroupPosition
import io.element.android.features.messages.timeline.model.TimelineItem
import io.element.android.features.messages.timeline.model.TimelineItemGroupPositionProvider
import io.element.android.features.messages.timeline.model.TimelineItemReactions
import io.element.android.features.messages.timeline.model.TimelineItem
import io.element.android.features.messages.timeline.model.content.TimelineItemContent
import io.element.android.features.messages.timeline.model.content.MessagesTimelineItemContentProvider
import io.element.android.features.messages.timeline.model.content.TimelineItemContent
import io.element.android.features.messages.timeline.model.content.TimelineItemEncryptedContent
import io.element.android.features.messages.timeline.model.content.TimelineItemImageContent
import io.element.android.features.messages.timeline.model.content.TimelineItemRedactedContent
import io.element.android.features.messages.timeline.model.content.TimelineItemTextBasedContent
import io.element.android.features.messages.timeline.model.content.TimelineItemUnknownContent
import io.element.android.features.messages.timeline.components.MessageEventBubble
import io.element.android.features.messages.timeline.components.TimelineItemReactionsView
import io.element.android.features.messages.timeline.components.TimelineItemEncryptedView
import io.element.android.features.messages.timeline.components.TimelineItemImageView
import io.element.android.features.messages.timeline.components.TimelineItemRedactedView
import io.element.android.features.messages.timeline.components.TimelineItemTextView
import io.element.android.features.messages.timeline.components.TimelineItemUnknownView
import io.element.android.libraries.designsystem.components.avatar.Avatar
import io.element.android.libraries.designsystem.components.avatar.AvatarData
import io.element.android.libraries.designsystem.utils.PairCombinedPreviewParameter
import io.element.android.libraries.matrix.core.EventId
import kotlinx.collections.immutable.ImmutableList
import kotlinx.collections.immutable.persistentListOf

2
features/messages/src/main/kotlin/io/element/android/features/messages/timeline/components/MessageEventBubble.kt

@ -29,6 +29,7 @@ import androidx.compose.ui.Modifier @@ -29,6 +29,7 @@ import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.clip
import androidx.compose.ui.graphics.Shape
import androidx.compose.ui.unit.dp
import io.element.android.features.messages.timeline.model.MessagesItemGroupPosition
import io.element.android.libraries.designsystem.LocalIsDarkTheme
import io.element.android.libraries.designsystem.MessageHighlightDark
import io.element.android.libraries.designsystem.MessageHighlightLight
@ -36,7 +37,6 @@ import io.element.android.libraries.designsystem.SystemGrey5Dark @@ -36,7 +37,6 @@ import io.element.android.libraries.designsystem.SystemGrey5Dark
import io.element.android.libraries.designsystem.SystemGrey5Light
import io.element.android.libraries.designsystem.SystemGrey6Dark
import io.element.android.libraries.designsystem.SystemGrey6Light
import io.element.android.features.messages.timeline.model.MessagesItemGroupPosition
private val BUBBLE_RADIUS = 16.dp

4
features/messages/src/main/kotlin/io/element/android/features/messages/timeline/components/TimelineItemTextView.kt

@ -28,10 +28,10 @@ import androidx.compose.ui.Modifier @@ -28,10 +28,10 @@ import androidx.compose.ui.Modifier
import androidx.compose.ui.text.SpanStyle
import androidx.compose.ui.text.buildAnnotatedString
import androidx.core.text.util.LinkifyCompat
import io.element.android.libraries.designsystem.LinkColor
import io.element.android.libraries.designsystem.components.ClickableLinkText
import io.element.android.features.messages.timeline.components.html.HtmlDocument
import io.element.android.features.messages.timeline.model.content.TimelineItemTextBasedContent
import io.element.android.libraries.designsystem.LinkColor
import io.element.android.libraries.designsystem.components.ClickableLinkText
@Composable
fun TimelineItemTextView(

2
features/messages/src/main/kotlin/io/element/android/features/messages/timeline/model/TimelineItem.kt

@ -17,8 +17,8 @@ @@ -17,8 +17,8 @@
package io.element.android.features.messages.timeline.model
import androidx.compose.runtime.Immutable
import io.element.android.libraries.designsystem.components.avatar.AvatarData
import io.element.android.features.messages.timeline.model.content.TimelineItemContent
import io.element.android.libraries.designsystem.components.avatar.AvatarData
import io.element.android.libraries.matrix.core.EventId
@Immutable

4
features/preferences/src/main/kotlin/io/element/android/features/preferences/root/PreferencesRootPresenter.kt

@ -17,10 +17,10 @@ @@ -17,10 +17,10 @@
package io.element.android.features.preferences.root
import androidx.compose.runtime.Composable
import io.element.android.libraries.architecture.Async
import io.element.android.libraries.architecture.Presenter
import io.element.android.features.logout.LogoutPreferencePresenter
import io.element.android.features.rageshake.preferences.RageshakePreferencesPresenter
import io.element.android.libraries.architecture.Async
import io.element.android.libraries.architecture.Presenter
import javax.inject.Inject
class PreferencesRootPresenter @Inject constructor(

2
features/preferences/src/main/kotlin/io/element/android/features/preferences/root/PreferencesRootState.kt

@ -16,9 +16,9 @@ @@ -16,9 +16,9 @@
package io.element.android.features.preferences.root
import io.element.android.libraries.architecture.Async
import io.element.android.features.logout.LogoutPreferenceState
import io.element.android.features.rageshake.preferences.RageshakePreferencesState
import io.element.android.libraries.architecture.Async
import io.element.android.libraries.matrix.ui.model.MatrixUser
data class PreferencesRootState(

4
features/preferences/src/main/kotlin/io/element/android/features/preferences/root/PreferencesRootView.kt

@ -20,13 +20,13 @@ import androidx.compose.runtime.Composable @@ -20,13 +20,13 @@ import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.tooling.preview.Preview
import io.element.android.libraries.architecture.Async
import io.element.android.libraries.designsystem.components.preferences.PreferenceView
import io.element.android.features.logout.LogoutPreferenceState
import io.element.android.features.logout.LogoutPreferenceView
import io.element.android.features.preferences.user.UserPreferences
import io.element.android.features.rageshake.preferences.RageshakePreferencesState
import io.element.android.features.rageshake.preferences.RageshakePreferencesView
import io.element.android.libraries.architecture.Async
import io.element.android.libraries.designsystem.components.preferences.PreferenceView
import io.element.android.libraries.ui.strings.R as StringR
@Composable

4
features/rageshake/src/main/kotlin/io/element/android/features/rageshake/bugreport/BugReportPresenter.kt

@ -24,13 +24,13 @@ import androidx.compose.runtime.mutableStateOf @@ -24,13 +24,13 @@ import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import androidx.compose.runtime.saveable.rememberSaveable
import androidx.core.net.toUri
import io.element.android.libraries.architecture.Async
import io.element.android.libraries.architecture.Presenter
import io.element.android.features.rageshake.crash.CrashDataStore
import io.element.android.features.rageshake.logs.VectorFileLogger
import io.element.android.features.rageshake.reporter.BugReporter
import io.element.android.features.rageshake.reporter.ReportType
import io.element.android.features.rageshake.screenshot.ScreenshotHolder
import io.element.android.libraries.architecture.Async
import io.element.android.libraries.architecture.Presenter
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.launch
import javax.inject.Inject

2
features/rageshake/src/main/kotlin/io/element/android/features/rageshake/bugreport/BugReportView.kt

@ -51,9 +51,9 @@ import androidx.compose.ui.unit.sp @@ -51,9 +51,9 @@ import androidx.compose.ui.unit.sp
import coil.compose.AsyncImage
import coil.request.ImageRequest
import io.element.android.libraries.architecture.Async
import io.element.android.libraries.designsystem.components.form.textFieldState
import io.element.android.libraries.designsystem.components.LabelledCheckbox
import io.element.android.libraries.designsystem.components.dialogs.ErrorDialog
import io.element.android.libraries.designsystem.components.form.textFieldState
import io.element.android.libraries.designsystem.utils.LogCompositions
import io.element.android.libraries.ui.strings.R as StringR

2
features/rageshake/src/main/kotlin/io/element/android/features/rageshake/crash/CrashDataStore.kt

@ -25,10 +25,10 @@ import androidx.datastore.preferences.core.stringPreferencesKey @@ -25,10 +25,10 @@ import androidx.datastore.preferences.core.stringPreferencesKey
import androidx.datastore.preferences.preferencesDataStore
import io.element.android.libraries.core.bool.orFalse
import io.element.android.libraries.di.ApplicationContext
import javax.inject.Inject
import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.map
import kotlinx.coroutines.runBlocking
import javax.inject.Inject
private val Context.dataStore: DataStore<Preferences> by preferencesDataStore(name = "elementx_crash")

2
features/rageshake/src/main/kotlin/io/element/android/features/rageshake/crash/VectorUncaughtExceptionHandler.kt

@ -19,9 +19,9 @@ package io.element.android.features.rageshake.crash @@ -19,9 +19,9 @@ package io.element.android.features.rageshake.crash
import android.content.Context
import android.os.Build
import io.element.android.libraries.core.data.tryOrNull
import timber.log.Timber
import java.io.PrintWriter
import java.io.StringWriter
import timber.log.Timber
class VectorUncaughtExceptionHandler(
context: Context

2
features/rageshake/src/main/kotlin/io/element/android/features/rageshake/crash/ui/CrashDetectionPresenter.kt

@ -19,8 +19,8 @@ package io.element.android.features.rageshake.crash.ui @@ -19,8 +19,8 @@ package io.element.android.features.rageshake.crash.ui
import androidx.compose.runtime.Composable
import androidx.compose.runtime.collectAsState
import androidx.compose.runtime.rememberCoroutineScope
import io.element.android.libraries.architecture.Presenter
import io.element.android.features.rageshake.crash.CrashDataStore
import io.element.android.libraries.architecture.Presenter
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.launch
import javax.inject.Inject

2
features/rageshake/src/main/kotlin/io/element/android/features/rageshake/detection/RageshakeDetectionView.kt

@ -26,9 +26,9 @@ import androidx.lifecycle.Lifecycle @@ -26,9 +26,9 @@ import androidx.lifecycle.Lifecycle
import io.element.android.features.rageshake.screenshot.ImageResult
import io.element.android.features.rageshake.screenshot.screenshot
import io.element.android.libraries.androidutils.hardware.vibrate
import io.element.android.libraries.designsystem.utils.OnLifecycleEvent
import io.element.android.libraries.designsystem.components.dialogs.ConfirmationDialog
import io.element.android.libraries.designsystem.utils.LogCompositions
import io.element.android.libraries.designsystem.utils.OnLifecycleEvent
import io.element.android.libraries.ui.strings.R as StringR
@Composable

2
features/rageshake/src/main/kotlin/io/element/android/features/rageshake/preferences/RageshakePreferencesPresenter.kt

@ -22,9 +22,9 @@ import androidx.compose.runtime.collectAsState @@ -22,9 +22,9 @@ import androidx.compose.runtime.collectAsState
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.rememberCoroutineScope
import androidx.compose.runtime.saveable.rememberSaveable
import io.element.android.libraries.architecture.Presenter
import io.element.android.features.rageshake.rageshake.RageShake
import io.element.android.features.rageshake.rageshake.RageshakeDataStore
import io.element.android.libraries.architecture.Presenter
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.launch
import javax.inject.Inject

2
features/rageshake/src/main/kotlin/io/element/android/features/rageshake/rageshake/RageshakeDataStore.kt

@ -25,9 +25,9 @@ import androidx.datastore.preferences.core.floatPreferencesKey @@ -25,9 +25,9 @@ import androidx.datastore.preferences.core.floatPreferencesKey
import androidx.datastore.preferences.preferencesDataStore
import io.element.android.libraries.core.bool.orTrue
import io.element.android.libraries.di.ApplicationContext
import javax.inject.Inject
import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.map
import javax.inject.Inject
private val Context.dataStore: DataStore<Preferences> by preferencesDataStore(name = "elementx_rageshake")

20
features/rageshake/src/main/kotlin/io/element/android/features/rageshake/reporter/BugReporter.kt

@ -18,20 +18,14 @@ package io.element.android.features.rageshake.reporter @@ -18,20 +18,14 @@ package io.element.android.features.rageshake.reporter
import android.content.Context
import android.os.Build
import io.element.android.libraries.core.extensions.toOnOff
import io.element.android.libraries.androidutils.file.compressFile
import io.element.android.libraries.core.mimetype.MimeTypes
import io.element.android.libraries.di.ApplicationContext
import io.element.android.features.rageshake.R
import io.element.android.features.rageshake.crash.CrashDataStore
import io.element.android.features.rageshake.logs.VectorFileLogger
import io.element.android.features.rageshake.screenshot.ScreenshotHolder
import java.io.File
import java.io.IOException
import java.io.OutputStreamWriter
import java.net.HttpURLConnection
import java.util.Locale
import javax.inject.Inject
import io.element.android.libraries.androidutils.file.compressFile
import io.element.android.libraries.core.extensions.toOnOff
import io.element.android.libraries.core.mimetype.MimeTypes
import io.element.android.libraries.di.ApplicationContext
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.flow.first
@ -46,6 +40,12 @@ import okhttp3.Response @@ -46,6 +40,12 @@ import okhttp3.Response
import org.json.JSONException
import org.json.JSONObject
import timber.log.Timber
import java.io.File
import java.io.IOException
import java.io.OutputStreamWriter
import java.net.HttpURLConnection
import java.util.Locale
import javax.inject.Inject
/**
* BugReporter creates and sends the bug reports.

2
features/roomlist/src/main/kotlin/io/element/android/features/roomlist/RoomListView.kt

@ -36,13 +36,13 @@ import androidx.compose.ui.input.nestedscroll.NestedScrollConnection @@ -36,13 +36,13 @@ import androidx.compose.ui.input.nestedscroll.NestedScrollConnection
import androidx.compose.ui.input.nestedscroll.nestedScroll
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.Velocity
import io.element.android.libraries.designsystem.components.avatar.AvatarData
import io.element.android.features.roomlist.components.RoomListTopBar
import io.element.android.features.roomlist.components.RoomSummaryRow
import io.element.android.features.roomlist.model.RoomListEvents
import io.element.android.features.roomlist.model.RoomListRoomSummary
import io.element.android.features.roomlist.model.RoomListState
import io.element.android.features.roomlist.model.stubbedRoomSummaries
import io.element.android.libraries.designsystem.components.avatar.AvatarData
import io.element.android.libraries.designsystem.utils.LogCompositions
import io.element.android.libraries.matrix.core.RoomId
import io.element.android.libraries.matrix.core.UserId

2
features/roomlist/src/main/kotlin/io/element/android/features/roomlist/components/RoomSummaryRow.kt

@ -52,8 +52,8 @@ import androidx.compose.ui.unit.LayoutDirection @@ -52,8 +52,8 @@ import androidx.compose.ui.unit.LayoutDirection
import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp
import com.google.accompanist.placeholder.material.placeholder
import io.element.android.libraries.designsystem.components.avatar.Avatar
import io.element.android.features.roomlist.model.RoomListRoomSummary
import io.element.android.libraries.designsystem.components.avatar.Avatar
private val minHeight = 72.dp

4
features/roomlist/src/test/kotlin/io/element/android/features/roomlist/RoomListPresenterTests.kt

@ -20,10 +20,8 @@ import app.cash.molecule.RecompositionClock @@ -20,10 +20,8 @@ import app.cash.molecule.RecompositionClock
import app.cash.molecule.moleculeFlow
import app.cash.turbine.test
import com.google.common.truth.Truth.assertThat
import io.element.android.libraries.matrixtest.FakeMatrixClient
import io.element.android.libraries.matrix.core.SessionId
import io.element.android.features.roomlist.LastMessageFormatter
import io.element.android.features.roomlist.RoomListPresenter
import io.element.android.libraries.matrixtest.FakeMatrixClient
import kotlinx.coroutines.test.runTest
import org.junit.Test

2
features/template/src/main/AndroidManifest.xml

@ -15,6 +15,6 @@ @@ -15,6 +15,6 @@
~ limitations under the License.
-->
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
<manifest>
</manifest>

1
features/template/src/main/kotlin/io/element/android/features/template/TemplateNode.kt

@ -24,6 +24,7 @@ import com.bumble.appyx.core.plugin.Plugin @@ -24,6 +24,7 @@ import com.bumble.appyx.core.plugin.Plugin
import dagger.assisted.Assisted
import dagger.assisted.AssistedInject
import io.element.android.anvilannotations.ContributesNode
import io.element.android.libraries.architecture.presenterConnector
import io.element.android.libraries.di.AppScope
// TODO Change to use the right Scope for your feature. For now it can be AppScope, SessionScope or RoomScope

2
libraries/matrix/src/main/kotlin/io/element/android/libraries/matrix/permalink/PermalinkParser.kt

@ -19,8 +19,8 @@ package io.element.android.libraries.matrix.permalink @@ -19,8 +19,8 @@ package io.element.android.libraries.matrix.permalink
import android.net.Uri
import android.net.UrlQuerySanitizer
import io.element.android.libraries.matrix.core.MatrixPatterns
import java.net.URLDecoder
import timber.log.Timber
import java.net.URLDecoder
/**
* This class turns a uri to a [PermalinkData].

6
libraries/matrix/src/main/kotlin/io/element/android/libraries/matrix/room/RoomSummaryDataSource.kt

@ -19,9 +19,6 @@ package io.element.android.libraries.matrix.room @@ -19,9 +19,6 @@ package io.element.android.libraries.matrix.room
import io.element.android.libraries.core.coroutine.CoroutineDispatchers
import io.element.android.libraries.matrix.sync.roomListDiff
import io.element.android.libraries.matrix.sync.state
import java.io.Closeable
import java.util.Collections
import java.util.UUID
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.FlowPreview
import kotlinx.coroutines.SupervisorJob
@ -42,6 +39,9 @@ import org.matrix.rustcomponents.sdk.SlidingSyncView @@ -42,6 +39,9 @@ import org.matrix.rustcomponents.sdk.SlidingSyncView
import org.matrix.rustcomponents.sdk.SlidingSyncViewRoomsListDiff
import org.matrix.rustcomponents.sdk.UpdateSummary
import timber.log.Timber
import java.io.Closeable
import java.util.Collections
import java.util.UUID
interface RoomSummaryDataSource {
fun roomSummaries(): StateFlow<List<RoomSummary>>

6
libraries/matrixtest/src/main/kotlin/io/element/android/libraries/matrixtest/FakeMatrixClient.kt

@ -20,12 +20,12 @@ import io.element.android.libraries.matrix.MatrixClient @@ -20,12 +20,12 @@ import io.element.android.libraries.matrix.MatrixClient
import io.element.android.libraries.matrix.core.RoomId
import io.element.android.libraries.matrix.core.SessionId
import io.element.android.libraries.matrix.core.UserId
import io.element.android.libraries.matrixtest.media.FakeMediaResolver
import io.element.android.libraries.matrix.media.MediaResolver
import io.element.android.libraries.matrixtest.room.FakeMatrixRoom
import io.element.android.libraries.matrixtest.room.InMemoryRoomSummaryDataSource
import io.element.android.libraries.matrix.room.MatrixRoom
import io.element.android.libraries.matrix.room.RoomSummaryDataSource
import io.element.android.libraries.matrixtest.media.FakeMediaResolver
import io.element.android.libraries.matrixtest.room.FakeMatrixRoom
import io.element.android.libraries.matrixtest.room.InMemoryRoomSummaryDataSource
import org.matrix.rustcomponents.sdk.MediaSource
class FakeMatrixClient(override val sessionId: SessionId) : MatrixClient {

2
libraries/matrixtest/src/main/kotlin/io/element/android/libraries/matrixtest/room/FakeMatrixRoom.kt

@ -19,8 +19,8 @@ package io.element.android.libraries.matrixtest.room @@ -19,8 +19,8 @@ package io.element.android.libraries.matrixtest.room
import io.element.android.libraries.matrix.core.EventId
import io.element.android.libraries.matrix.core.RoomId
import io.element.android.libraries.matrix.room.MatrixRoom
import io.element.android.libraries.matrixtest.timeline.FakeMatrixTimeline
import io.element.android.libraries.matrix.timeline.MatrixTimeline
import io.element.android.libraries.matrixtest.timeline.FakeMatrixTimeline
import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.emptyFlow

1
libraries/testtags/src/main/kotlin/io/element/android/libraries/testtags/Compose.kt

@ -21,7 +21,6 @@ import androidx.compose.ui.Modifier @@ -21,7 +21,6 @@ import androidx.compose.ui.Modifier
import androidx.compose.ui.semantics.semantics
import androidx.compose.ui.semantics.testTag
import androidx.compose.ui.semantics.testTagsAsResourceId
import io.element.android.libraries.testtags.TestTag
/**
* Add a testTag to a Modifier, to be used by external tool, like TrafficLight for instance.

3
libraries/ui-strings/src/main/res/values-cs/strings.xml

@ -2978,4 +2978,5 @@ @@ -2978,4 +2978,5 @@
</plurals>
<string name="error_voice_message_broadcast_in_progress_message">Hlasovou zprávu nelze spustit, protože právě nahráváte živé vysílání. Ukončete prosím živé vysílání, abyste mohli začít nahrávat hlasovou zprávu</string>
<string name="error_voice_message_broadcast_in_progress">Nelze spustit hlasovou zprávu</string>
</resources>
<string name="error_voice_broadcast_no_connection_recording">Chyba připojení - nahrávání pozastaveno</string>
</resources>

3
libraries/ui-strings/src/main/res/values-de/strings.xml

@ -2917,4 +2917,5 @@ @@ -2917,4 +2917,5 @@
</plurals>
<string name="error_voice_message_broadcast_in_progress_message">Du kannst keine Sprachnachricht beginnen, da du im Moment eine Echtzeitübertragung aufzeichnest. Bitte beende deine Sprachübertragung, um ein Gespräch zu beginnen</string>
<string name="error_voice_message_broadcast_in_progress">Kann Sprachnachricht nicht beginnen</string>
</resources>
<string name="error_voice_broadcast_no_connection_recording">Verbindungsfehler − Aufnahme pausiert</string>
</resources>

3
libraries/ui-strings/src/main/res/values-et/strings.xml

@ -2909,4 +2909,5 @@ @@ -2909,4 +2909,5 @@
<string name="room_polls_loading_error">Viga küsitluste laadimisel.</string>
<string name="error_voice_message_broadcast_in_progress">Häälsõnumi esitamine ei õnnestu</string>
<string name="error_voice_message_broadcast_in_progress_message">Kuna sa hetkel salvestad ringhäälingukõnet, siis häälsõnumi salvestamine või esitamine ei õnnestu. Selleks palun lõpeta ringhäälingukõne</string>
</resources>
<string name="error_voice_broadcast_no_connection_recording">Viga võrguühenduses - salvestamine on peatatud</string>
</resources>

3
libraries/ui-strings/src/main/res/values-fa/strings.xml

@ -2918,4 +2918,5 @@ @@ -2918,4 +2918,5 @@
</plurals>
<string name="error_voice_message_broadcast_in_progress_message">از آنجا که در حال ضبط پخشی زندهاید، نمیتوانید پیامی صوتی را آغاز کنید. لطفاً برای آغاز ضبط یک پیام صوتی، پخش زندهتان را پایان دهید</string>
<string name="error_voice_message_broadcast_in_progress">نمیتوان پخش صوتی را آغاز کرد</string>
</resources>
<string name="error_voice_broadcast_no_connection_recording">خطای اتّصال - ضبط مکث شد</string>
</resources>

3
libraries/ui-strings/src/main/res/values-fr/strings.xml

@ -2918,4 +2918,5 @@ @@ -2918,4 +2918,5 @@
</plurals>
<string name="error_voice_message_broadcast_in_progress_message">Vous ne pouvez pas commencer un message vocal car vous êtes en train d’enregistrer une diffusion en direct. Veuillez terminer cette diffusion pour commencer un message vocal</string>
<string name="error_voice_message_broadcast_in_progress">Impossible de démarrer un message vocal</string>
</resources>
<string name="error_voice_broadcast_no_connection_recording">Erreur de connexion – Enregistrement en pause</string>
</resources>

3
libraries/ui-strings/src/main/res/values-hu/strings.xml

@ -2918,4 +2918,5 @@ A Visszaállítási Kulcsot tartsd biztonságos helyen, mint pl. egy jelszókeze @@ -2918,4 +2918,5 @@ A Visszaállítási Kulcsot tartsd biztonságos helyen, mint pl. egy jelszókeze
</plurals>
<string name="error_voice_message_broadcast_in_progress_message">Nem lehet hang üzenetet indítani élő közvetítés felvétele közben. Az élő közvetítés bejezése szükséges a hang üzenet indításához</string>
<string name="error_voice_message_broadcast_in_progress">Hang üzenetet nem lehet elindítani</string>
</resources>
<string name="error_voice_broadcast_no_connection_recording">Kapcsolódási hiba – Felvétel szüneteltetve</string>
</resources>

5
libraries/ui-strings/src/main/res/values-in/strings.xml

@ -2858,4 +2858,7 @@ Di masa mendatang proses verifikasi ini akan dimutakhirkan.</string> @@ -2858,4 +2858,7 @@ Di masa mendatang proses verifikasi ini akan dimutakhirkan.</string>
<item quantity="other">Tidak ada pemungutan suara aktif %1$d hari terakhir.
\nMuat lebih banyak pemungutan suara untuk melihat pemungutan suara untuk hari sebelumnya.</item>
</plurals>
</resources>
<string name="error_voice_broadcast_no_connection_recording">Kesalahan koneksi - Perekaman dijeda</string>
<string name="error_voice_message_broadcast_in_progress_message">Anda tidak dapat memulai sebuah pesan suara karena Anda saat ini merekam sebuah siaran langsung. Silakan mengakhiri siaran langsung Anda untuk memulai merekam sebuah pesan suara</string>
<string name="error_voice_message_broadcast_in_progress">Tidak dapat memulai pesan suara</string>
</resources>

19
libraries/ui-strings/src/main/res/values-ja/strings.xml

@ -198,7 +198,7 @@ @@ -198,7 +198,7 @@
<string name="room_settings_set_main_address">メインアドレスとして設定</string>
<string name="room_settings_unset_main_address">メインアドレスとしての設定を解除</string>
<string name="device_manager_session_details_session_id">セッションID</string>
<string name="font_size">文字の大きさ</string>
<string name="font_size">フォントの大きさ</string>
<string name="tiny">とても小さい</string>
<string name="small">小さい</string>
<string name="normal">標準</string>
@ -2391,7 +2391,7 @@ @@ -2391,7 +2391,7 @@
<string name="invites_title">招待</string>
<string name="device_manager_push_notifications_title">プッシュ通知</string>
<string name="device_manager_session_rename_edit_hint">セッション名</string>
<string name="device_manager_session_rename">セッションを改名</string>
<string name="device_manager_session_rename">セッション名を変更</string>
<string name="device_manager_session_details_device_ip_address">IPアドレス</string>
<string name="device_manager_session_details_device_operating_system">オペレーティングシステム</string>
<string name="device_manager_session_details_device_model">形式</string>
@ -2487,4 +2487,17 @@ @@ -2487,4 +2487,17 @@
<plurals name="x_selected">
<item quantity="other">%1$dを選択しました</item>
</plurals>
</resources>
<string name="settings_presence_user_always_appears_offline_summary">有効にすると、このアプリケーションを使用している際にも、他のユーザーにオフラインとして表示されます。</string>
<string name="settings_enable_direct_share_summary">最近のチャットをシステムの共有メニューに表示</string>
<string name="font_size_use_system">システムの既定値を使用</string>
<string name="font_size_section_manually">手動で設定</string>
<string name="font_size_section_auto">自動的に設定</string>
<string name="font_size_title">フォントの大きさを選択</string>
<string name="some_devices_will_not_be_able_to_decrypt">⚠ 未認証の端末がこのルームにあります。あなたが送信するメッセージを復号化することはできません。</string>
<string name="encryption_never_send_to_unverified_devices_in_room">このルームの未認証のセッションに暗号化されたメッセージを送信しない。</string>
<string name="thread_list_not_available">あなたのホームサーバーはスレッドの一覧表示をまだサポートしていません。</string>
<string name="invites_empty_message">ここに新しいリクエストと招待が表示されます。</string>
<string name="labs_enable_rich_text_editor_summary">リッチテキストエディターを試してみる(プレーンテキストモードは近日公開)</string>
<string name="labs_enable_new_app_layout_summary">タブを使用してElementの表示をシンプルにする</string>
<string name="device_manager_session_details_title">セッションの詳細</string>
</resources>

42
libraries/ui-strings/src/main/res/values-pl/strings.xml

@ -345,7 +345,7 @@ @@ -345,7 +345,7 @@
<string name="encryption_import_room_keys_summary">Importuj klucze z lokalnego pliku</string>
<string name="encryption_import_import">Importuj</string>
<string name="encryption_never_send_to_unverified_devices_title">Szyfruj wiadomości tylko do zaufanych sesji</string>
<string name="encryption_never_send_to_unverified_devices_summary">Nigdy nie wysyłaj szyfrowanych wiadomości do sesji (np urządzeń innych użytkowników) które nie zostały zweryfikowane.</string>
<string name="encryption_never_send_to_unverified_devices_summary">Nigdy nie wysyłaj szyfrowanych wiadomości do niezweryfikowanych sesji (bez zielonej tarczy) z tego urządzenia.</string>
<string name="encryption_information_verify_device_warning">Aby sprawdzić czy ta sesja jest zaufana, skontaktuj się z jej właścicielem używając innych form (np. osobiście lub telefonicznie) i zapytaj czy klucz, który widzą w ustawieniach użytkownika dla tego urządzenia pasuje do klucza poniżej:</string>
<string name="encryption_information_verify_device_warning2">Jeśli klucz pasuje, potwierdź to przyciskiem poniżej. Jeśli nie, to ktoś inny najprawdopodobniej przejmuje lub podszywa się pod tą sesję i powinieneś dodać tę sesję do czarnej listy. W przyszłości proces weryfikacji będzie bardziej skomplikowany.</string>
<string name="title_activity_choose_sticker">Wyślij naklejkę</string>
@ -1115,7 +1115,7 @@ @@ -1115,7 +1115,7 @@
\nKlucze nie są zaufane</string>
<string name="encryption_information_dg_xsigning_disabled">Podpis krzyżowy nie jest aktywowany</string>
<string name="settings_active_sessions_list">Aktywne Sesje</string>
<string name="settings_active_sessions_show_all">Pokaż wszystkie Sesje</string>
<string name="settings_active_sessions_show_all">Pokaż wszystkie sesje</string>
<string name="settings_active_sessions_manage">Zarządzaj Sesjami</string>
<string name="settings_active_sessions_signout_device">Wyloguj z tej sesji</string>
<string name="settings_failed_to_get_crypto_device_info">Brak dostępnej informacji o kryptografii</string>
@ -1242,7 +1242,7 @@ @@ -1242,7 +1242,7 @@
<string name="bottom_sheet_save_your_recovery_key_title">Zapisz Klucz Bezpieczeństwa</string>
<string name="bottom_sheet_setup_secure_backup_security_phrase_title">Użyj Frazy Bezpieczeństwa</string>
<string name="bottom_sheet_setup_secure_backup_security_key_title">Użyj klucza bezpieczeństwa</string>
<string name="bottom_sheet_setup_secure_backup_subtitle">Zabezpiecza przeciwko utracie dostępu do zaszyfrowanych wiadomości oraz danych poprzez zapisanie zaszyfrowanych kluczy na Twoim serwerze.</string>
<string name="bottom_sheet_setup_secure_backup_subtitle">Zabezpiecza przed utratą dostępu do zaszyfrowanych wiadomości poprzez zapisanie kluczy szyfrujących na twoim serwerze.</string>
<string name="a11y_start_camera">Włącz aparat</string>
<string name="a11y_stop_camera">Wyłącz aparat</string>
<string name="a11y_unmute_microphone">Wyłącz wyciszenie mikrofonu</string>
@ -1493,7 +1493,7 @@ @@ -1493,7 +1493,7 @@
<string name="disabled_integration_dialog_title">Integracje są zablokowane</string>
<string name="reset_secure_backup_warning">To zastąpi obecny Klucz bądź Hasło.</string>
<string name="reset_secure_backup_title">Wygeneruj nowy klucz bezpieczeństwa albo hasło dla istniejącej kopii zapasowej.</string>
<string name="settings_secure_backup_section_info">Zabezpiecza przeciwko utracie dostępu do zaszyfrowanych wiadomości oraz danych poprzez zapisanie zaszyfrowanych kluczy na Twoim serwerze.</string>
<string name="settings_secure_backup_section_info">Zabezpiecza przed utratą dostępu do zaszyfrowanych wiadomości poprzez zapisanie kluczy szyfrujących na twoim serwerze.</string>
<string name="settings_troubleshoot_test_notification_notification_clicked">Powiadomienie zostało kliknięte!</string>
<string name="settings_troubleshoot_test_notification_notice">Proszę kliknąć na powiadomieniu, Jeżeli nie widzisz powiadomienia, sprawdź ustawienia systemowe.</string>
<string name="settings_troubleshoot_test_push_notification_content">Widzisz powiadomienia! Kliknij na mnie!</string>
@ -2795,4 +2795,36 @@ @@ -2795,4 +2795,36 @@
<string name="action_got_it">Rozumiem</string>
<string name="a11y_collapse_space_children">Zwiń %s pokojów</string>
<string name="a11y_expand_space_children">Rozwiń %s pokojów</string>
</resources>
<string name="device_manager_inactive_sessions_title">Nieaktywne sesje</string>
<string name="device_manager_verification_status_detail_other_session_verified">Ta sesja jest gotowa do bezpiecznego przesyłania wiadomości.</string>
<string name="device_manager_verification_status_detail_current_session_verified">Twoja bieżąca sesja jest gotowa do bezpiecznego przesyłania wiadomości.</string>
<string name="attachment_type_selector_contact">Kontakt</string>
<string name="attachment_type_selector_location">Lokalizacja</string>
<string name="attachment_type_selector_camera">Aparat</string>
<string name="attachment_type_selector_voice_broadcast">Transmisja głosowa</string>
<string name="tooltip_attachment_voice_broadcast">Rozpocznij transmisję głosową</string>
<string name="room_polls_ended">Ostatnie ankiety</string>
<string name="room_polls_active_no_item">W tym pokoju nie ma aktywnych ankiet</string>
<string name="room_polls_active">Aktywne ankiety</string>
<string name="unable_to_decrypt_some_events_in_poll">Niektóre głosy mogą nie zostać policzone z powodu błędów w odszyfrowaniu</string>
<string name="ended_poll_indicator">Zakończono ankietę.</string>
<string name="error_voice_broadcast_no_connection_recording">Błąd połączenia - Nagrywanie wstrzymane</string>
<string name="error_voice_broadcast_unable_to_play">Nie można odtworzyć tej transmisji głosowej.</string>
<string name="error_voice_broadcast_already_in_progress_message">Jesteś już w trakcie nagrywania transmisji głosowej. Proszę zakończyć bieżącą transmisję, aby rozpocząć nową.</string>
<string name="error_voice_broadcast_blocked_by_someone_else_message">Ktoś inny nagrywa już transmisję głosową. Aby rozpocząć nową transmisję, należy poczekać na jej zakończenie.</string>
<string name="error_voice_broadcast_permission_denied_message">Nie masz wymaganych uprawnień do rozpoczęcia transmisji głosowej w tym pokoju. Skontaktuj się z administratorem pokoju, aby przyznał ci uprawnienia.</string>
<string name="error_voice_broadcast_unauthorized_title">Nie można rozpocząć nowej transmisji głosowej</string>
<string name="voice_broadcast_buffering">Buforowanie…</string>
<string name="error_voice_message_broadcast_in_progress">Nie można rozpocząć wiadomości głosowej</string>
<string name="review_unverified_sessions_title">Masz niezweryfikowane sesje</string>
<string name="key_authenticity_not_guaranteed">Autentyczność tej zaszyfrowanej wiadomości nie może być zagwarantowana na tym urządzeniu.</string>
<string name="room_profile_section_more_polls">Historia ankiet</string>
<string name="command_description_table_flip">Dodaje (╯°□°)╯︵ ┻━┻ do wiadomości tekstowej</string>
<string name="login_scan_qr_code">Skanuj kod QR</string>
<string name="notice_voice_broadcast_ended">%1$s zakończył(a) transmisję głosową.</string>
<string name="settings_security_incognito_keyboard_summary">Zarządaj od systemu Android aby klawiatura nie zapisywała żadnych danych takich jak historia pisania lub słownik. Pamiętaj, nie niektóre klawiatury mogą nie zastosować się do tego ustawienia.</string>
<string name="settings_security_incognito_keyboard_title">Klawiatura incognito</string>
<string name="home_empty_no_rooms_title">Witaj w ${app_name},
\n%s.</string>
<string name="home_empty_no_rooms_message">Wszechstronna, bezpieczna aplikacja do czatowania dla zespołów, przyjaciół i organizacji. Utwórz czat lub dołącz do istniejącego pokoju, aby rozpocząć.</string>
</resources>

74
libraries/ui-strings/src/main/res/values-ru/strings.xml

@ -6,7 +6,7 @@ @@ -6,7 +6,7 @@
<string name="notice_room_join">%1$s вошёл(шла) в комнату</string>
<string name="notice_room_leave">%1$s покинул(а) комнату</string>
<string name="notice_room_reject">%1$s отклонил(а) приглашение</string>
<string name="notice_room_remove">%1$s выгнан %2$s</string>
<string name="notice_room_remove">%1$s выгнал %2$s</string>
<string name="notice_room_unban">%1$s разблокировал(а) %2$s</string>
<string name="notice_room_ban">%1$s заблокировал(а) %2$s</string>
<string name="notice_room_withdraw">%1$s отозвал(а) приглашение %2$s</string>
@ -65,7 +65,7 @@ @@ -65,7 +65,7 @@
<string name="notice_room_reject_with_reason">%1$s отклонил приглашение. Причина: %2$s</string>
<string name="notice_room_remove_with_reason">%1$s выгнали %2$s. Причина: %3$s</string>
<string name="notice_room_unban_with_reason">%1$s разблокировано %2$s. Причина: %3$s</string>
<string name="notice_room_ban_with_reason">%1$s забанен %2$s. Причина: %3$s</string>
<string name="notice_room_ban_with_reason">%1$s забанил %2$s. Причина: %3$s</string>
<string name="notice_room_third_party_registered_invite_with_reason">%1$s принял приглашение для %2$s. Причина: %3$s</string>
<string name="notice_room_withdraw_with_reason">%1$s отозвал приглашение %2$s. Причина: %3$s</string>
<string name="notice_room_created">%1$s создал(а) комнату</string>
@ -1420,7 +1420,7 @@ @@ -1420,7 +1420,7 @@
<string name="command_description_rainbow">Посылает сообщение, окрашенное в цвет радуги</string>
<string name="command_description_rainbow_emote">Посылает данную эмоцию, окрашенную в цвет радуги</string>
<string name="settings_category_composer">Редактор сообщений</string>
<string name="room_settings_enable_encryption">Включаем сквозное шифрование…</string>
<string name="room_settings_enable_encryption">Включить сквозное шифрование…</string>
<string name="room_settings_enable_encryption_dialog_title">Включить шифрование\?</string>
<string name="room_settings_enable_encryption_dialog_content">После включения шифрование для комнаты нельзя отключить. Сообщения отправленные в зашифрованной комнате не будут видны серверу, только участникам комнаты. Включение шифрования может помешать правильной работе многих ботов и мостов.</string>
<string name="room_settings_enable_encryption_dialog_submit">Включить шифрование</string>
@ -2433,7 +2433,7 @@ @@ -2433,7 +2433,7 @@
<string name="location_timeline_failed_to_load_map">Не удалось загрузить карту</string>
<string name="a11y_static_map_image">Карта</string>
<string name="labs_enable_thread_messages_desc">Примечание: приложение будет перезапущено</string>
<string name="labs_enable_thread_messages">Обсуждения сообщений</string>
<string name="labs_enable_thread_messages">Включить обсуждения сообщений</string>
<string name="ftue_auth_use_case_connect_to_server">Подключиться к серверу</string>
<string name="ftue_auth_use_case_join_existing_server">Хотите присоединиться к существующему серверу\?</string>
<string name="ftue_auth_use_case_skip_partial">Пропустить вопрос</string>
@ -2540,7 +2540,7 @@ @@ -2540,7 +2540,7 @@
<string name="error_forbidden_digits_only_username">Домашний сервер не принимает имя пользователя, состоящее только из цифр.</string>
<string name="ftue_personalize_skip_this_step">Пропустить этот шаг</string>
<string name="ftue_personalize_submit">Сохранить и продолжить</string>
<string name="ftue_personalize_complete_subtitle">Ваши предпочтения были сохранены.</string>
<string name="ftue_personalize_complete_subtitle">Зайдите в настройки чтобы изменить Ваш профиль</string>
<string name="ftue_personalize_complete_title">Выглядит хорошо!</string>
<string name="ftue_auth_carousel_workplace_body">${app_name} также отлично подходит для работы. Ему доверяют самые надёжные организации в мире.</string>
<string name="keys_backup_settings_signature_from_this_user">Резервная копия имеет действительную подпись для данного пользователя.</string>
@ -2791,7 +2791,7 @@ @@ -2791,7 +2791,7 @@
<item quantity="other">Рассмотрите возможность выхода из старых сеансов (%1$d дней или дольше), которые вы более не используете.</item>
</plurals>
<string name="attachment_type_voice_broadcast">Голосовая трансляция</string>
<string name="labs_enable_voice_broadcast_title">Голосовые трансляции</string>
<string name="labs_enable_voice_broadcast_title">Включить голосовые трансляции</string>
<string name="labs_enable_client_info_recording_summary">Записывает название клиента, версию и URL-адрес для более лёгкого распознавания сеансов в менеджере сеансов.</string>
<string name="labs_enable_client_info_recording_title">Записывать информацию о клиенте</string>
<string name="attachment_type_selector_gallery">Галерея</string>
@ -2824,9 +2824,9 @@ @@ -2824,9 +2824,9 @@
<string name="a11y_expand_space_children">Развернуть дочерние элементы %s</string>
<plurals name="x_selected">
<item quantity="one">Выбрано %1$d</item>
<item quantity="few">Выбрано %1$d</item>
<item quantity="many">Выбрано %1$d</item>
<item quantity="other">Выбрано %1$d</item>
<item quantity="few">Выбраны %1$d</item>
<item quantity="many">Выбраны %1$d</item>
<item quantity="other">Выбраны %1$d</item>
</plurals>
<string name="rich_text_editor_full_screen_toggle">Войти в полноэкранный режим</string>
<string name="rich_text_editor_format_underline">Применить форматирование подчёркиванием</string>
@ -2970,4 +2970,58 @@ @@ -2970,4 +2970,58 @@
<string name="device_manager_verification_status_detail_session_encryption_not_supported">Этот сеанс не поддерживает шифрование и поэтому не может быть заверен.</string>
<string name="notice_voice_broadcast_ended">%1$s завершил(а) голосовую трансляцию.</string>
<string name="notice_voice_broadcast_ended_by_you">Вы завершили голосовую трансляцию.</string>
</resources>
<plurals name="room_polls_active_no_item_for_loaded_period">
<item quantity="one">Нет активных опросов за %1$d день.
\nЗагрузите больше чтобы показать опросы за прошедшие дни.</item>
<item quantity="few">Нет активных опросов за %1$d дней.
\nЗагрузите больше чтобы показать опросы за прошедшие дни.</item>
<item quantity="many">Нет активных опросов за %1$d дней.
\nЗагрузите больше чтобы показать опросы за прошедшие дни.</item>
<item quantity="other">Нет активных опросов за %1$d дней.
\nЗагрузите больше чтобы показать опросы за прошедшие дни.</item>
</plurals>
<plurals name="room_polls_ended_no_item_for_loaded_period">
<item quantity="one">Нет завершённых опросов за день %1$d.
\nЗагрузите больше чтобы показать опросы за предыдущие дни.</item>
<item quantity="few">Нет завершённых опросов за %1$d дней
\nЗагрузите больше чтобы показать опросы за предыдущие дни.</item>
<item quantity="many">Нет завершённых опросов за %1$d дней
\nЗагрузите больше чтобы показать опросы за предыдущие дни.</item>
<item quantity="other">Нет завершённых опросов за %1$d дней
\nЗагрузите больше чтобы показать опросы за предыдущие дни.</item>
</plurals>
<string name="settings_access_token_summary">Токен доступа даёт полный доступ к аккаунту. Не делитесь им ни с кем.</string>
<string name="settings_access_token">Токен доступа</string>
<string name="message_reply_to_ended_poll_preview">Завершённый опрос</string>
<string name="message_reply_to_poll_preview">Опрос</string>
<string name="message_reply_to_sender_ended_poll">завершённый опрос.</string>
<string name="set_link_edit">Изменить ссылку</string>
<string name="set_link_create">Создать ссылку</string>
<string name="set_link_link">Ссылка</string>
<string name="set_link_text">Текст</string>
<string name="rich_text_editor_bullet_list">Список</string>
<string name="rich_text_editor_numbered_list">Пронумерованный список</string>
<string name="rich_text_editor_link">Ссылка</string>
<string name="room_polls_loading_error">Ошибка считывания опросов.</string>
<string name="room_polls_load_more">Загрузить больше опросов</string>
<string name="room_polls_wait_for_display">Показываем опросы</string>
<string name="room_polls_ended_no_item">Нет завершённых опросов</string>
<string name="room_polls_ended">Завершённые опросы</string>
<string name="room_polls_active_no_item">Нет активных опросов</string>
<string name="room_polls_active">Активные опросы</string>
<string name="unable_to_decrypt_some_events_in_poll">Из-за ошибок расшифровки, некоторые голоса могут быть не засчитаны</string>
<string name="ended_poll_indicator">Опрос завершён.</string>
<string name="stop_voice_broadcast_content">Вы уверены что хотите завершить голосовую трансляцию\? Это завершит трансляцию и полная запись будет доступна в чате.</string>
<string name="stop_voice_broadcast_dialog_title">Завершить голосовую трансляцию\?</string>
<string name="error_voice_broadcast_no_connection_recording">Ошибка подключения - Запись приостановлена</string>
<string name="error_voice_broadcast_unable_to_play">Невозможно прослушать голосовую трансляцию.</string>
<string name="voice_broadcast_live_broadcast">Голосовая трансляция</string>
<string name="error_voice_message_broadcast_in_progress_message">Вы не можете записать голосовое сообщение, потому-что Вы записываете голосовую трансляцию. Завершите голосовую трансляцию, чтобы записать голосовое сообщение</string>
<string name="error_voice_message_broadcast_in_progress">Не удалось записать голосовое сообщение</string>
<string name="review_unverified_sessions_description">Убедиться что Ваш аккаунт в безопасности</string>
<string name="settings_nightly_build_update">Получить последнюю сборку (у вас могут быть проблемы со входом)</string>
<string name="room_profile_section_more_polls">История опроса</string>
<string name="started_a_voice_broadcast">Голосовая трансляция начата</string>
<string name="thread_list_not_available">Ваш домашний сервер не поддерживает список обсуждений.</string>
<string name="action_stop">Остановить</string>
</resources>

3
libraries/ui-strings/src/main/res/values-sk/strings.xml

@ -2978,4 +2978,5 @@ @@ -2978,4 +2978,5 @@
</plurals>
<string name="error_voice_message_broadcast_in_progress_message">Nemôžete spustiť hlasovú správu, pretože práve nahrávate živé vysielanie. Ukončite prosím živé vysielanie, aby ste mohli začať nahrávať hlasovú správu</string>
<string name="error_voice_message_broadcast_in_progress">Nemožno spustiť hlasovú správu</string>
</resources>
<string name="error_voice_broadcast_no_connection_recording">Chyba pripojenia - nahrávanie pozastavené</string>
</resources>

3
libraries/ui-strings/src/main/res/values-uk/strings.xml

@ -3038,4 +3038,5 @@ @@ -3038,4 +3038,5 @@
<string name="room_polls_wait_for_display">Показ опитувань</string>
<string name="error_voice_message_broadcast_in_progress_message">Ви не можете розпочати запис голосового повідомлення, оскільки ви записуєте трансляцію наживо. Будь ласка, заверште її, щоб розпочати запис голосового повідомлення</string>
<string name="error_voice_message_broadcast_in_progress">Не вдалося розпочати запис голосового повідомлення</string>
</resources>
<string name="error_voice_broadcast_no_connection_recording">Помилка з\'єднання - Запис призупинено</string>
</resources>

2
libraries/ui-strings/src/main/res/values/donottranslate.xml

@ -10,6 +10,8 @@ @@ -10,6 +10,8 @@
<!-- onboarding english only word play -->
<string name="cut_the_slack_from_teams" translatable="false">Cut the slack from teams.</string>
<string name="command_description_crash_application" translatable="false">Crash the application.</string>
<!-- WIP -->
<string name="location_map_view_copyright" translatable="false">© MapTiler © OpenStreetMap contributors</string>
</resources>

1
libraries/ui-strings/src/main/res/values/strings.xml

@ -3502,6 +3502,7 @@ @@ -3502,6 +3502,7 @@
<string name="rich_text_editor_link">Set link</string>
<string name="rich_text_editor_numbered_list">Toggle numbered list</string>
<string name="rich_text_editor_bullet_list">Toggle bullet list</string>
<string name="rich_text_editor_inline_code">Apply inline code format</string>
<string name="rich_text_editor_full_screen_toggle">Toggle full screen mode</string>
<string name="set_link_text">Text</string>

Loading…
Cancel
Save