diff --git a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/activities/SettingsActivity.kt b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/activities/SettingsActivity.kt
index 96f7f99e..ab012e2f 100644
--- a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/activities/SettingsActivity.kt
+++ b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/activities/SettingsActivity.kt
@@ -14,12 +14,10 @@ import com.simplemobiletools.commons.models.RadioItem
import com.simplemobiletools.smsmessenger.R
import com.simplemobiletools.smsmessenger.extensions.config
import com.simplemobiletools.smsmessenger.extensions.getLockScreenVisibilityText
-import com.simplemobiletools.smsmessenger.helpers.LOCK_SCREEN_NOTHING
-import com.simplemobiletools.smsmessenger.helpers.LOCK_SCREEN_SENDER
-import com.simplemobiletools.smsmessenger.helpers.LOCK_SCREEN_SENDER_MESSAGE
-import com.simplemobiletools.smsmessenger.helpers.refreshMessages
-import kotlinx.android.synthetic.main.activity_settings.*
+import com.simplemobiletools.smsmessenger.extensions.getMMSFileLimitText
+import com.simplemobiletools.smsmessenger.helpers.*
import java.util.*
+import kotlinx.android.synthetic.main.activity_settings.*
class SettingsActivity : SimpleActivity() {
private var blockedNumbersAtPause = -1
@@ -42,6 +40,7 @@ class SettingsActivity : SimpleActivity() {
setupShowCharacterCounter()
setupEnableDeliveryReports()
setupLockScreenVisibility()
+ setupMMSFileSizeLimit()
updateTextColors(settings_scrollview)
if (blockedNumbersAtPause != -1 && blockedNumbersAtPause != getBlockedNumbers().hashCode()) {
@@ -155,4 +154,25 @@ class SettingsActivity : SimpleActivity() {
}
}
}
+
+ private fun setupMMSFileSizeLimit() {
+ settings_mms_file_size_limit.text = getMMSFileLimitText(config.mmsFileSizeLimit)
+ settings_mms_file_size_limit_holder.setOnClickListener {
+ val items = arrayListOf(
+ RadioItem(1, getString(R.string.mms_file_size_limit_100kb), FILE_SIZE_100_KB),
+ RadioItem(2, getString(R.string.mms_file_size_limit_200kb), FILE_SIZE_200_KB),
+ RadioItem(3, getString(R.string.mms_file_size_limit_300kb), FILE_SIZE_300_KB),
+ RadioItem(4, getString(R.string.mms_file_size_limit_600kb), FILE_SIZE_600_KB),
+ RadioItem(5, getString(R.string.mms_file_size_limit_1000kb), FILE_SIZE_1000_KB),
+ RadioItem(6, getString(R.string.mms_file_size_limit_2000kb), FILE_SIZE_2000_KB),
+ RadioItem(7, getString(R.string.mms_file_size_limit_none), FILE_SIZE_NONE),
+ )
+
+ val checkedItemId = items.find { it.value == config.mmsFileSizeLimit }?.id ?: 7
+ RadioGroupDialog(this@SettingsActivity, items, checkedItemId) {
+ config.mmsFileSizeLimit = it as Long
+ settings_mms_file_size_limit.text = getMMSFileLimitText(config.mmsFileSizeLimit)
+ }
+ }
+ }
}
diff --git a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/activities/ThreadActivity.kt b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/activities/ThreadActivity.kt
index 702a3f15..23a6ea9b 100644
--- a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/activities/ThreadActivity.kt
+++ b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/activities/ThreadActivity.kt
@@ -602,12 +602,12 @@ class ThreadActivity : SimpleActivity() {
val attachmentView = addAttachmentView(originalUriString, uri)
val mimeType = contentResolver.getType(uri) ?: return
- if (mimeType.isImageMimeType()) {
+ if (mimeType.isImageMimeType() && config.mmsFileSizeLimit != FILE_SIZE_NONE) {
val selection = attachmentSelections[originalUriString]
attachmentSelections[originalUriString] = selection!!.copy(isPending = true)
checkSendMessageAvailability()
attachmentView.thread_attachment_progress.beVisible()
- imageCompressor.compressImage(uri, IMAGE_COMPRESS_SIZE) { compressedUri ->
+ imageCompressor.compressImage(uri, config.mmsFileSizeLimit) { compressedUri ->
runOnUiThread {
if (compressedUri != null) {
attachmentSelections[originalUriString] = AttachmentSelection(compressedUri, false)
diff --git a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/extensions/Context.kt b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/extensions/Context.kt
index cb55e7c8..f9e1fa1e 100644
--- a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/extensions/Context.kt
+++ b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/extensions/Context.kt
@@ -764,3 +764,15 @@ fun Context.getLockScreenVisibilityText(type: Int) = getString(
else -> R.string.nothing
}
)
+
+fun Context.getMMSFileLimitText(size: Long) = getString(
+ when (size) {
+ FILE_SIZE_100_KB -> R.string.mms_file_size_limit_100kb
+ FILE_SIZE_200_KB -> R.string.mms_file_size_limit_200kb
+ FILE_SIZE_300_KB -> R.string.mms_file_size_limit_300kb
+ FILE_SIZE_600_KB -> R.string.mms_file_size_limit_600kb
+ FILE_SIZE_1000_KB -> R.string.mms_file_size_limit_1000kb
+ FILE_SIZE_2000_KB -> R.string.mms_file_size_limit_2000kb
+ else -> R.string.mms_file_size_limit_none
+ }
+)
diff --git a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/helpers/Config.kt b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/helpers/Config.kt
index e284b832..c829383a 100644
--- a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/helpers/Config.kt
+++ b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/helpers/Config.kt
@@ -25,4 +25,8 @@ class Config(context: Context) : BaseConfig(context) {
var lockScreenVisibilitySetting: Int
get() = prefs.getInt(LOCK_SCREEN_VISIBILITY, LOCK_SCREEN_SENDER_MESSAGE)
set(lockScreenVisibilitySetting) = prefs.edit().putInt(LOCK_SCREEN_VISIBILITY, lockScreenVisibilitySetting).apply()
+
+ var mmsFileSizeLimit: Long
+ get() = prefs.getLong(MMS_FILE_SIZE_LIMIT, FILE_SIZE_NONE)
+ set(mmsFileSizeLimit) = prefs.edit().putLong(MMS_FILE_SIZE_LIMIT, mmsFileSizeLimit).apply()
}
diff --git a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/helpers/Constants.kt b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/helpers/Constants.kt
index 820f8452..355eac22 100644
--- a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/helpers/Constants.kt
+++ b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/helpers/Constants.kt
@@ -15,6 +15,7 @@ const val NOTIFICATION_CHANNEL = "simple_sms_messenger"
const val SHOW_CHARACTER_COUNTER = "show_character_counter"
const val LOCK_SCREEN_VISIBILITY = "lock_screen_visibility"
const val ENABLE_DELIVERY_REPORTS = "enable_delivery_reports"
+const val MMS_FILE_SIZE_LIMIT = "mms_file_size_limit"
private const val PATH = "com.simplemobiletools.smsmessenger.action."
const val MARK_AS_READ = PATH + "mark_as_read"
@@ -33,7 +34,13 @@ const val LOCK_SCREEN_SENDER_MESSAGE = 1
const val LOCK_SCREEN_SENDER = 2
const val LOCK_SCREEN_NOTHING = 3
-const val IMAGE_COMPRESS_SIZE = 1_048_576L
+const val FILE_SIZE_NONE = -1L
+const val FILE_SIZE_100_KB = 102_400L
+const val FILE_SIZE_200_KB = 204_800L
+const val FILE_SIZE_300_KB = 307_200L
+const val FILE_SIZE_600_KB = 614_400L
+const val FILE_SIZE_1000_KB = 1_048_576L
+const val FILE_SIZE_2000_KB = 2_097_152L
fun refreshMessages() {
EventBus.getDefault().post(Events.RefreshMessages())
diff --git a/app/src/main/res/layout/activity_settings.xml b/app/src/main/res/layout/activity_settings.xml
index 859fdf00..7e41cc22 100644
--- a/app/src/main/res/layout/activity_settings.xml
+++ b/app/src/main/res/layout/activity_settings.xml
@@ -250,5 +250,38 @@
tools:text="@string/sender_and_message" />
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/values-cs/strings.xml b/app/src/main/res/values-cs/strings.xml
index 37651ec0..9da1f106 100644
--- a/app/src/main/res/values-cs/strings.xml
+++ b/app/src/main/res/values-cs/strings.xml
@@ -49,6 +49,14 @@
Sender and message
Sender only
Enable delivery reports
+ MMS image size limit
+ 100KB
+ 200KB
+ 300KB
+ 600KB
+ 1000KB
+ 2000KB
+ No limit
Proč aplikace vyžaduje přístup k internetu?
diff --git a/app/src/main/res/values-da/strings.xml b/app/src/main/res/values-da/strings.xml
index d9067fb0..f8dd2ace 100644
--- a/app/src/main/res/values-da/strings.xml
+++ b/app/src/main/res/values-da/strings.xml
@@ -49,6 +49,14 @@
Sender and message
Sender only
Enable delivery reports
+ MMS image size limit
+ 100KB
+ 200KB
+ 300KB
+ 600KB
+ 1000KB
+ 2000KB
+ No limit
Hvorfor kræver appen adgang til internettet?
diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml
index d7e5e614..3151dca1 100644
--- a/app/src/main/res/values-de/strings.xml
+++ b/app/src/main/res/values-de/strings.xml
@@ -50,6 +50,7 @@
Sender only
Enable delivery reports
+
Warum benötigt diese App Internetzugriff?
Leider ist dies nötig, um MMS-Anhänge zu versenden. Es wäre ein großer Nachteil gegenüber anderen Apps, wenn keine MMS versendet werden könnten, also haben wir uns für diesen Weg entschieden.
diff --git a/app/src/main/res/values-el/strings.xml b/app/src/main/res/values-el/strings.xml
index 73901649..003bee2d 100644
--- a/app/src/main/res/values-el/strings.xml
+++ b/app/src/main/res/values-el/strings.xml
@@ -49,6 +49,14 @@
Αποστολέας και μήνυμα
Αποστολέας μόνο
Ενεργοποίηση αναφορών παράδοσης
+ MMS image size limit
+ 100KB
+ 200KB
+ 300KB
+ 600KB
+ 1000KB
+ 2000KB
+ No limit
Γιατί η εφαρμογή απαιτεί πρόσβαση στο Internet;
diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml
index 0f2ec0f6..eb36c284 100644
--- a/app/src/main/res/values-es/strings.xml
+++ b/app/src/main/res/values-es/strings.xml
@@ -49,6 +49,14 @@
Sender and message
Sender only
Enable delivery reports
+ MMS image size limit
+ 100KB
+ 200KB
+ 300KB
+ 600KB
+ 1000KB
+ 2000KB
+ No limit
¿Por qué la aplicación requiere acceso a internet?
diff --git a/app/src/main/res/values-fi/strings.xml b/app/src/main/res/values-fi/strings.xml
index 3f6b221f..97c8e7be 100644
--- a/app/src/main/res/values-fi/strings.xml
+++ b/app/src/main/res/values-fi/strings.xml
@@ -49,6 +49,14 @@
Sender and message
Sender only
Enable delivery reports
+ MMS image size limit
+ 100KB
+ 200KB
+ 300KB
+ 600KB
+ 1000KB
+ 2000KB
+ No limit
Miksi sovellus vaatii Internet-yhteyden?
diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml
index acf8de23..1dbba893 100644
--- a/app/src/main/res/values-fr/strings.xml
+++ b/app/src/main/res/values-fr/strings.xml
@@ -49,6 +49,14 @@
Sender and message
Sender only
Enable delivery reports
+ MMS image size limit
+ 100KB
+ 200KB
+ 300KB
+ 600KB
+ 1000KB
+ 2000KB
+ No limit
Pourquoi cette application a besoin d\'un accès à internet ?
diff --git a/app/src/main/res/values-id/strings.xml b/app/src/main/res/values-id/strings.xml
index 0db16d26..bb6352fc 100644
--- a/app/src/main/res/values-id/strings.xml
+++ b/app/src/main/res/values-id/strings.xml
@@ -49,6 +49,15 @@
Sender and message
Sender only
Enable delivery reports
+ MMS image size limit
+ 100KB
+ 200KB
+ 300KB
+ 600KB
+ 1000KB
+ 2000KB
+ No limit
+
Mengapa aplikasi membutuhkan akses ke internet?
diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml
index b6201852..6b927871 100644
--- a/app/src/main/res/values-it/strings.xml
+++ b/app/src/main/res/values-it/strings.xml
@@ -49,6 +49,14 @@
Mittente e messaggio
Solo mittente
Abilita conferma di consegna
+ MMS image size limit
+ 100KB
+ 200KB
+ 300KB
+ 600KB
+ 1000KB
+ 2000KB
+ No limit
Perché l\'applicazione richiede l\'accesso ad internet?
diff --git a/app/src/main/res/values-ja/strings.xml b/app/src/main/res/values-ja/strings.xml
index 8c5071ec..8f7600d4 100644
--- a/app/src/main/res/values-ja/strings.xml
+++ b/app/src/main/res/values-ja/strings.xml
@@ -49,6 +49,14 @@
Sender and message
Sender only
Enable delivery reports
+ MMS image size limit
+ 100KB
+ 200KB
+ 300KB
+ 600KB
+ 1000KB
+ 2000KB
+ No limit
なぜアプリ使用にインターネットへのアクセスが必要なのですか?
diff --git a/app/src/main/res/values-lt/strings.xml b/app/src/main/res/values-lt/strings.xml
index ea039ad8..8c6fbb3a 100644
--- a/app/src/main/res/values-lt/strings.xml
+++ b/app/src/main/res/values-lt/strings.xml
@@ -49,6 +49,14 @@
Sender and message
Sender only
Enable delivery reports
+ MMS image size limit
+ 100KB
+ 200KB
+ 300KB
+ 600KB
+ 1000KB
+ 2000KB
+ No limit
Why does the app require access to the internet?
diff --git a/app/src/main/res/values-ml/strings.xml b/app/src/main/res/values-ml/strings.xml
index 366149ef..7b60f354 100644
--- a/app/src/main/res/values-ml/strings.xml
+++ b/app/src/main/res/values-ml/strings.xml
@@ -49,6 +49,14 @@
Sender and message
Sender only
Enable delivery reports
+ MMS image size limit
+ 100KB
+ 200KB
+ 300KB
+ 600KB
+ 1000KB
+ 2000KB
+ No limit
അപ്ലിക്കേഷന് ഇന്റർനെറ്റിലേക്ക് ആവശ്യമായി വരുന്നത് എന്തുകൊണ്ട്?
diff --git a/app/src/main/res/values-nl/strings.xml b/app/src/main/res/values-nl/strings.xml
index 0f9e313a..854fd90e 100644
--- a/app/src/main/res/values-nl/strings.xml
+++ b/app/src/main/res/values-nl/strings.xml
@@ -49,6 +49,14 @@
Afzender en bericht
Alleen afzender
Bezorgingsrapporten inschakelen
+ MMS image size limit
+ 100KB
+ 200KB
+ 300KB
+ 600KB
+ 1000KB
+ 2000KB
+ No limit
Waarom heeft deze app toegang nodig tot het internet?
diff --git a/app/src/main/res/values-pl/strings.xml b/app/src/main/res/values-pl/strings.xml
index 7bc60f8a..8ecee655 100644
--- a/app/src/main/res/values-pl/strings.xml
+++ b/app/src/main/res/values-pl/strings.xml
@@ -51,6 +51,14 @@
Nadawca i treść
Tylko nadawca
Włącz raporty doręczeń
+ MMS image size limit
+ 100KB
+ 200KB
+ 300KB
+ 600KB
+ 1000KB
+ 2000KB
+ No limit
Dlaczego aplikacja wymaga dostępu do Internetu?
diff --git a/app/src/main/res/values-pt/strings.xml b/app/src/main/res/values-pt/strings.xml
index f6cf255b..3df4f1cf 100644
--- a/app/src/main/res/values-pt/strings.xml
+++ b/app/src/main/res/values-pt/strings.xml
@@ -49,6 +49,14 @@
Sender and message
Sender only
Enable delivery reports
+ MMS image size limit
+ 100KB
+ 200KB
+ 300KB
+ 600KB
+ 1000KB
+ 2000KB
+ No limit
Porque é que a aplicação necessita de aceder à Internet?
diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml
index f6944577..94533e34 100644
--- a/app/src/main/res/values-ru/strings.xml
+++ b/app/src/main/res/values-ru/strings.xml
@@ -51,6 +51,14 @@
Отправитель и сообщение
Только отправитель
Использовать отчёты о доставке
+ MMS image size limit
+ 100KB
+ 200KB
+ 300KB
+ 600KB
+ 1000KB
+ 2000KB
+ No limit
Почему приложение требует доступ к интернету?
diff --git a/app/src/main/res/values-sk/strings.xml b/app/src/main/res/values-sk/strings.xml
index f1092bb8..fc755023 100644
--- a/app/src/main/res/values-sk/strings.xml
+++ b/app/src/main/res/values-sk/strings.xml
@@ -51,6 +51,14 @@
Odosielateľ a správa
Iba odosielateľ
Povoliť správy o doručení
+ MMS image size limit
+ 100KB
+ 200KB
+ 300KB
+ 600KB
+ 1000KB
+ 2000KB
+ No limit
Prečo vyžaduje apka prístup na internet?
diff --git a/app/src/main/res/values-tr/strings.xml b/app/src/main/res/values-tr/strings.xml
index f7a3224e..96b87af9 100644
--- a/app/src/main/res/values-tr/strings.xml
+++ b/app/src/main/res/values-tr/strings.xml
@@ -49,6 +49,14 @@
Sender and message
Sender only
Enable delivery reports
+ MMS image size limit
+ 100KB
+ 200KB
+ 300KB
+ 600KB
+ 1000KB
+ 2000KB
+ No limit
Uygulama neden internete erişim gerektiriyor?
diff --git a/app/src/main/res/values-uk/strings.xml b/app/src/main/res/values-uk/strings.xml
index b0a239d0..d092defa 100644
--- a/app/src/main/res/values-uk/strings.xml
+++ b/app/src/main/res/values-uk/strings.xml
@@ -49,6 +49,14 @@
Sender and message
Sender only
Enable delivery reports
+ MMS image size limit
+ 100KB
+ 200KB
+ 300KB
+ 600KB
+ 1000KB
+ 2000KB
+ No limit
Чому додаток потрубує доступу до інтернету?
diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml
index b6542e07..43bfb5af 100644
--- a/app/src/main/res/values-zh-rCN/strings.xml
+++ b/app/src/main/res/values-zh-rCN/strings.xml
@@ -49,6 +49,14 @@
Sender and message
Sender only
Enable delivery reports
+ MMS image size limit
+ 100KB
+ 200KB
+ 300KB
+ 600KB
+ 1000KB
+ 2000KB
+ No limit
为什么该应用需要访问互联网?
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index a85b6837..4508764b 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -49,6 +49,14 @@
Sender and message
Sender only
Enable delivery reports
+ MMS image size limit
+ 100KB
+ 200KB
+ 300KB
+ 600KB
+ 1000KB
+ 2000KB
+ No limit
Why does the app require access to the internet?