diff --git a/apps/android/app/src/main/java/chat/simplex/app/views/chat/ComposeView.kt b/apps/android/app/src/main/java/chat/simplex/app/views/chat/ComposeView.kt index 6e0045fed..2735c7ae8 100644 --- a/apps/android/app/src/main/java/chat/simplex/app/views/chat/ComposeView.kt +++ b/apps/android/app/src/main/java/chat/simplex/app/views/chat/ComposeView.kt @@ -7,6 +7,7 @@ import android.content.* import android.content.pm.PackageManager import android.graphics.Bitmap import android.graphics.ImageDecoder +import android.graphics.ImageDecoder.DecodeException import android.graphics.drawable.AnimatedImageDrawable import android.net.Uri import android.provider.MediaStore @@ -199,8 +200,17 @@ fun ComposeView( val imagesPreview = ArrayList() uris.forEach { uri -> val source = ImageDecoder.createSource(context.contentResolver, uri) - val drawable = ImageDecoder.decodeDrawable(source) - var bitmap: Bitmap? = ImageDecoder.decodeBitmap(source) + val drawable = try { + ImageDecoder.decodeDrawable(source) + } catch (e: DecodeException) { + AlertManager.shared.showAlertMsg( + title = generalGetString(R.string.image_decoding_exception_title), + text = generalGetString(R.string.image_decoding_exception_desc) + ) + Log.e(TAG, "Error while decoding drawable: ${e.stackTraceToString()}") + null + } + var bitmap: Bitmap? = if (drawable != null) ImageDecoder.decodeBitmap(source) else null if (drawable is AnimatedImageDrawable) { // It's a gif or webp val fileSize = getFileSize(context, uri) diff --git a/apps/android/app/src/main/java/chat/simplex/app/views/usersettings/Cryptor.kt b/apps/android/app/src/main/java/chat/simplex/app/views/usersettings/Cryptor.kt index 34f11f828..49770b972 100644 --- a/apps/android/app/src/main/java/chat/simplex/app/views/usersettings/Cryptor.kt +++ b/apps/android/app/src/main/java/chat/simplex/app/views/usersettings/Cryptor.kt @@ -23,7 +23,7 @@ internal class Cryptor { warningIsShown = true AlertManager.shared.showAlertMsg( title = generalGetString(R.string.wrong_passphrase), - text = generalGetString(R.string.restored_from_backup_broken_text) + text = generalGetString(R.string.restored_from_backup_broken_desc) ) } return null diff --git a/apps/android/app/src/main/res/values-de/strings.xml b/apps/android/app/src/main/res/values-de/strings.xml index c055ce4f6..edb17065b 100644 --- a/apps/android/app/src/main/res/values-de/strings.xml +++ b/apps/android/app/src/main/res/values-de/strings.xml @@ -183,6 +183,8 @@ Dateivorschau abbrechen Zu viele Bilder! Es können nur 10 Bilder auf einmal gesendet werden + ***Decoding error + ***The image cannot be decoded. Please, try with different image or contact devs Bild @@ -674,7 +676,7 @@ Bitte geben Sie das vorherige Passwort ein, nachdem Sie die Datenbanksicherung wiederhergestellt haben. Diese Aktion kann nicht rückgängig gemacht werden. Wiederherstellen Fehler bei der Wiederherstellung der Datenbank - ***Looks like you restored the app\'s data from a backup (using TitaniumBackup or similar tool). Encryption passphrase should be entered manually. \n\nIf it\'s not the case, please, contact devs + ***Looks like you restored the app\'s data from a backup (using TitaniumBackup or similar tool). Encryption passphrase should be entered manually. \n\nIf it\'s not the case, please, contact devs Chat wurde beendet diff --git a/apps/android/app/src/main/res/values-ru/strings.xml b/apps/android/app/src/main/res/values-ru/strings.xml index 6bcde09e0..81b09ac77 100644 --- a/apps/android/app/src/main/res/values-ru/strings.xml +++ b/apps/android/app/src/main/res/values-ru/strings.xml @@ -183,6 +183,8 @@ Удалить превью файла Слишком много изображений! Только 10 изображений могут быть отправлены одномоментно + Ошибка декодирования + Не получается декодировать изображение. Пожалуйста, попробуйте другое или свяжитесь с разработчиками Изображение @@ -674,7 +676,7 @@ Введите предыдущий пароль после восстановления резервной копии. Это действие нельзя отменить. Восстановить Ошибка при восстановлении базы данных - Похоже, вы восстановили данные программы из бэкапа (используя TitaniumBackup или похожий инструмент). Нужно ввести пароль от базы данных вручную. \n\nЕсли причина не в этом, пожалуйста, свяжитесь с разработчиками + Похоже, вы восстановили данные программы из бэкапа (используя TitaniumBackup или похожий инструмент). Нужно ввести пароль от базы данных вручную. \n\nЕсли причина не в этом, пожалуйста, свяжитесь с разработчиками Чат остановлен diff --git a/apps/android/app/src/main/res/values/strings.xml b/apps/android/app/src/main/res/values/strings.xml index b81e6c3c0..c5c076fc8 100644 --- a/apps/android/app/src/main/res/values/strings.xml +++ b/apps/android/app/src/main/res/values/strings.xml @@ -183,6 +183,8 @@ Cancel file preview Too many images! Only 10 images can be sent at the same time + Decoding error + The image cannot be decoded. Please, try with different image or contact devs Image @@ -674,7 +676,7 @@ Please enter the previous password after restoring database backup. This action can not be undone. Restore Restore database error - Looks like you restored the app\'s data from a backup (using TitaniumBackup or similar tool). Encryption passphrase should be entered manually. \n\nIf it\'s not the case, please, contact devs + Looks like you restored the app\'s data from a backup (using TitaniumBackup or similar tool). Encryption passphrase should be entered manually. \n\nIf it\'s not the case, please, contact devs Chat is stopped