mirror of
https://github.com/simplex-chat/simplex-chat.git
synced 2026-04-28 06:17:05 +00:00
Merge branch 'master' into chat-relays
This commit is contained in:
+14
@@ -9,6 +9,7 @@ import androidx.compose.foundation.text.KeyboardActions
|
||||
import androidx.compose.material.*
|
||||
import androidx.compose.runtime.*
|
||||
import androidx.compose.ui.Alignment
|
||||
import androidx.compose.ui.graphics.Color
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.focus.FocusRequester
|
||||
import androidx.compose.ui.focus.focusRequester
|
||||
@@ -117,12 +118,25 @@ fun DatabaseErrorView(
|
||||
OpenDatabaseDirectoryButton()
|
||||
}
|
||||
is MigrationError.Downgrade -> {
|
||||
val warnings = downMigrationWarnings(err.downMigrations).reversed()
|
||||
DatabaseErrorDetails(MR.strings.database_downgrade) {
|
||||
TextButton({ callRunChat(confirmMigrations = MigrationConfirmation.YesUpDown) }, Modifier.align(Alignment.CenterHorizontally), enabled = !progressIndicator.value) {
|
||||
Text(generalGetString(MR.strings.downgrade_and_open_chat))
|
||||
}
|
||||
Spacer(Modifier.height(20.dp))
|
||||
Icon(
|
||||
painterResource(MR.images.ic_warning_filled),
|
||||
contentDescription = null,
|
||||
Modifier.size(40.dp).align(Alignment.CenterHorizontally),
|
||||
tint = Color.Red
|
||||
)
|
||||
Spacer(Modifier.height(12.dp))
|
||||
Text(generalGetString(MR.strings.database_downgrade_warning), fontWeight = FontWeight.Bold)
|
||||
if (warnings.isNotEmpty()) {
|
||||
warnings.forEach { warning ->
|
||||
Text(warning, fontWeight = FontWeight.Bold)
|
||||
}
|
||||
}
|
||||
FileNameText(status.dbFile)
|
||||
MigrationsText(err.downMigrations)
|
||||
AppVersionText()
|
||||
|
||||
+10
@@ -2,6 +2,7 @@ package chat.simplex.common.views.helpers
|
||||
|
||||
import chat.simplex.common.model.*
|
||||
import chat.simplex.common.platform.*
|
||||
import chat.simplex.res.MR
|
||||
import kotlinx.serialization.*
|
||||
import java.io.File
|
||||
import java.security.SecureRandom
|
||||
@@ -108,6 +109,15 @@ data class UpMigration(
|
||||
// val withDown: Boolean
|
||||
)
|
||||
|
||||
fun downMigrationWarnings(downMigrations: List<String>): List<String> {
|
||||
val warnings = listOf(
|
||||
"20260222_chat_relays" to MR.strings.down_migration_warning_chat_relays
|
||||
)
|
||||
return warnings.mapNotNull { (key, res) ->
|
||||
if (downMigrations.contains(key)) generalGetString(res) else null
|
||||
}
|
||||
}
|
||||
|
||||
@Serializable
|
||||
sealed class MTRError {
|
||||
@Serializable @SerialName("noDown") class NoDown(val dbMigrations: List<String>): MTRError()
|
||||
|
||||
+3
-1
@@ -474,7 +474,9 @@ private fun MutableState<MigrationToState?>.MigrationConfirmationView(status: DB
|
||||
Tuple4(
|
||||
generalGetString(MR.strings.database_downgrade),
|
||||
generalGetString(MR.strings.downgrade_and_open_chat),
|
||||
generalGetString(MR.strings.database_downgrade_warning),
|
||||
(listOf(generalGetString(MR.strings.database_downgrade_warning))
|
||||
+ downMigrationWarnings(err.downMigrations).reversed())
|
||||
.joinToString("\n"),
|
||||
MigrationConfirmation.YesUpDown
|
||||
)
|
||||
is MigrationError.Error ->
|
||||
|
||||
@@ -1647,6 +1647,7 @@
|
||||
<string name="mtr_error_different">different migration in the app/database: %s / %s</string>
|
||||
<string name="database_migrations">Migrations: %s</string>
|
||||
<string name="database_downgrade_warning">Warning: you may lose some data!</string>
|
||||
<string name="down_migration_warning_chat_relays">If you joined or created channels, they will stop working permanently.</string>
|
||||
|
||||
<!-- ChatModel.chatRunning interactions -->
|
||||
<string name="chat_is_stopped_indication">Chat is stopped</string>
|
||||
|
||||
Reference in New Issue
Block a user