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..e4758a47 100644
--- a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/activities/SettingsActivity.kt
+++ b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/activities/SettingsActivity.kt
@@ -40,6 +40,7 @@ class SettingsActivity : SimpleActivity() {
setupChangeDateTimeFormat()
setupFontSize()
setupShowCharacterCounter()
+ setupUseSimpleCharacters()
setupEnableDeliveryReports()
setupLockScreenVisibility()
updateTextColors(settings_scrollview)
@@ -131,6 +132,13 @@ class SettingsActivity : SimpleActivity() {
config.showCharacterCounter = settings_show_character_counter.isChecked
}
}
+ private fun setupUseSimpleCharacters() {
+ settings_use_simple_characters.isChecked = config.useSimpleCharacters
+ settings_use_simple_characters_holder.setOnClickListener {
+ settings_use_simple_characters.toggle()
+ config.useSimpleCharacters = settings_use_simple_characters.isChecked
+ }
+ }
private fun setupEnableDeliveryReports() {
settings_enable_delivery_reports.isChecked = config.enableDeliveryReports
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 f235f327..d50548d9 100644
--- a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/activities/ThreadActivity.kt
+++ b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/activities/ThreadActivity.kt
@@ -646,11 +646,13 @@ class ThreadActivity : SimpleActivity() {
}
private fun sendMessage() {
- val msg = thread_type_message.value
+ var msg = thread_type_message.value
if (msg.isEmpty() && attachmentUris.isEmpty()) {
return
}
+ msg = removeDiacriticsIfNeeded(msg)
+
val numbers = ArrayList()
participants.forEach {
it.phoneNumbers.forEach {
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..dc51d437 100644
--- a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/extensions/Context.kt
+++ b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/extensions/Context.kt
@@ -38,6 +38,7 @@ import com.simplemobiletools.smsmessenger.receivers.MarkAsReadReceiver
import java.util.*
import kotlin.collections.ArrayList
import me.leolin.shortcutbadger.ShortcutBadger
+import java.text.Normalizer
val Context.config: Config get() = Config.newInstance(applicationContext)
@@ -764,3 +765,13 @@ fun Context.getLockScreenVisibilityText(type: Int) = getString(
else -> R.string.nothing
}
)
+
+fun Context.removeDiacriticsIfNeeded(text: String): String {
+ var msg = text
+ if (config.useSimpleCharacters) {
+ msg = Normalizer.normalize(msg, Normalizer.Form.NFD)
+ msg = msg.replace("\\p{InCombiningDiacriticalMarks}+".toRegex(), "")
+ }
+
+ return msg
+}
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..c6b6576d 100644
--- a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/helpers/Config.kt
+++ b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/helpers/Config.kt
@@ -18,6 +18,10 @@ class Config(context: Context) : BaseConfig(context) {
get() = prefs.getBoolean(SHOW_CHARACTER_COUNTER, false)
set(showCharacterCounter) = prefs.edit().putBoolean(SHOW_CHARACTER_COUNTER, showCharacterCounter).apply()
+ var useSimpleCharacters: Boolean
+ get() = prefs.getBoolean(USE_SIMPLE_CHARACTERS, false)
+ set(useSimpleCharacters) = prefs.edit().putBoolean(USE_SIMPLE_CHARACTERS, useSimpleCharacters).apply()
+
var enableDeliveryReports: Boolean
get() = prefs.getBoolean(ENABLE_DELIVERY_REPORTS, true)
set(enableDeliveryReports) = prefs.edit().putBoolean(ENABLE_DELIVERY_REPORTS, enableDeliveryReports).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 36025476..6fbb310e 100644
--- a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/helpers/Constants.kt
+++ b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/helpers/Constants.kt
@@ -13,6 +13,7 @@ const val SEARCHED_MESSAGE_ID = "searched_message_id"
const val USE_SIM_ID_PREFIX = "use_sim_id_"
const val NOTIFICATION_CHANNEL = "simple_sms_messenger"
const val SHOW_CHARACTER_COUNTER = "show_character_counter"
+const val USE_SIMPLE_CHARACTERS = "use_simple_characters"
const val LOCK_SCREEN_VISIBILITY = "lock_screen_visibility"
const val ENABLE_DELIVERY_REPORTS = "enable_delivery_reports"
diff --git a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/receivers/DirectReplyReceiver.kt b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/receivers/DirectReplyReceiver.kt
index 8a4ee30c..79e333b8 100644
--- a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/receivers/DirectReplyReceiver.kt
+++ b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/receivers/DirectReplyReceiver.kt
@@ -11,6 +11,7 @@ import com.simplemobiletools.commons.extensions.showErrorToast
import com.simplemobiletools.commons.helpers.ensureBackgroundThread
import com.simplemobiletools.smsmessenger.extensions.conversationsDB
import com.simplemobiletools.smsmessenger.extensions.markThreadMessagesRead
+import com.simplemobiletools.smsmessenger.extensions.removeDiacriticsIfNeeded
import com.simplemobiletools.smsmessenger.helpers.REPLY
import com.simplemobiletools.smsmessenger.helpers.THREAD_ID
import com.simplemobiletools.smsmessenger.helpers.THREAD_NUMBER
@@ -19,7 +20,9 @@ class DirectReplyReceiver : BroadcastReceiver() {
override fun onReceive(context: Context, intent: Intent) {
val address = intent.getStringExtra(THREAD_NUMBER)
val threadId = intent.getLongExtra(THREAD_ID, 0L)
- val msg = RemoteInput.getResultsFromIntent(intent).getCharSequence(REPLY)?.toString() ?: return
+ var msg = RemoteInput.getResultsFromIntent(intent).getCharSequence(REPLY)?.toString() ?: return
+
+ msg = context.removeDiacriticsIfNeeded(msg)
val settings = Settings()
settings.useSystemSending = true
diff --git a/app/src/main/res/layout/activity_settings.xml b/app/src/main/res/layout/activity_settings.xml
index 859fdf00..0d4ff987 100644
--- a/app/src/main/res/layout/activity_settings.xml
+++ b/app/src/main/res/layout/activity_settings.xml
@@ -195,6 +195,29 @@
+
+
+
+
+
+
Sender and message
Sender only
Enable delivery reports
+ Use simple characters
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..dba3e2b1 100644
--- a/app/src/main/res/values-da/strings.xml
+++ b/app/src/main/res/values-da/strings.xml
@@ -49,6 +49,7 @@
Sender and message
Sender only
Enable delivery reports
+ Use simple characters
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..f8a464c5 100644
--- a/app/src/main/res/values-de/strings.xml
+++ b/app/src/main/res/values-de/strings.xml
@@ -49,6 +49,7 @@
Sender and message
Sender only
Enable delivery reports
+ Use simple characters
Warum benötigt diese App Internetzugriff?
diff --git a/app/src/main/res/values-el/strings.xml b/app/src/main/res/values-el/strings.xml
index 73901649..63d34b27 100644
--- a/app/src/main/res/values-el/strings.xml
+++ b/app/src/main/res/values-el/strings.xml
@@ -49,6 +49,7 @@
Αποστολέας και μήνυμα
Αποστολέας μόνο
Ενεργοποίηση αναφορών παράδοσης
+ Use simple characters
Γιατί η εφαρμογή απαιτεί πρόσβαση στο Internet;
diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml
index 0f2ec0f6..1f87d8d5 100644
--- a/app/src/main/res/values-es/strings.xml
+++ b/app/src/main/res/values-es/strings.xml
@@ -49,6 +49,7 @@
Sender and message
Sender only
Enable delivery reports
+ Use simple characters
¿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..16ff75bf 100644
--- a/app/src/main/res/values-fi/strings.xml
+++ b/app/src/main/res/values-fi/strings.xml
@@ -49,6 +49,7 @@
Sender and message
Sender only
Enable delivery reports
+ Use simple characters
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..c8c84a92 100644
--- a/app/src/main/res/values-fr/strings.xml
+++ b/app/src/main/res/values-fr/strings.xml
@@ -49,6 +49,7 @@
Sender and message
Sender only
Enable delivery reports
+ Use simple characters
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..0d67e3bc 100644
--- a/app/src/main/res/values-id/strings.xml
+++ b/app/src/main/res/values-id/strings.xml
@@ -49,6 +49,7 @@
Sender and message
Sender only
Enable delivery reports
+ Use simple characters
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..e415666f 100644
--- a/app/src/main/res/values-it/strings.xml
+++ b/app/src/main/res/values-it/strings.xml
@@ -49,6 +49,7 @@
Mittente e messaggio
Solo mittente
Abilita conferma di consegna
+ Use simple characters
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..fa321c9e 100644
--- a/app/src/main/res/values-ja/strings.xml
+++ b/app/src/main/res/values-ja/strings.xml
@@ -49,6 +49,7 @@
Sender and message
Sender only
Enable delivery reports
+ Use simple characters
なぜアプリ使用にインターネットへのアクセスが必要なのですか?
diff --git a/app/src/main/res/values-lt/strings.xml b/app/src/main/res/values-lt/strings.xml
index ea039ad8..542561ea 100644
--- a/app/src/main/res/values-lt/strings.xml
+++ b/app/src/main/res/values-lt/strings.xml
@@ -49,6 +49,7 @@
Sender and message
Sender only
Enable delivery reports
+ Use simple characters
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..f6d9e372 100644
--- a/app/src/main/res/values-ml/strings.xml
+++ b/app/src/main/res/values-ml/strings.xml
@@ -49,6 +49,7 @@
Sender and message
Sender only
Enable delivery reports
+ Use simple characters
അപ്ലിക്കേഷന് ഇന്റർനെറ്റിലേക്ക് ആവശ്യമായി വരുന്നത് എന്തുകൊണ്ട്?
diff --git a/app/src/main/res/values-nl/strings.xml b/app/src/main/res/values-nl/strings.xml
index 0f9e313a..eebdf894 100644
--- a/app/src/main/res/values-nl/strings.xml
+++ b/app/src/main/res/values-nl/strings.xml
@@ -49,6 +49,7 @@
Afzender en bericht
Alleen afzender
Bezorgingsrapporten inschakelen
+ Use simple characters
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..b4705dc0 100644
--- a/app/src/main/res/values-pl/strings.xml
+++ b/app/src/main/res/values-pl/strings.xml
@@ -51,6 +51,7 @@
Nadawca i treść
Tylko nadawca
Włącz raporty doręczeń
+ Używaj prostych znaków
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..c4d133b0 100644
--- a/app/src/main/res/values-pt/strings.xml
+++ b/app/src/main/res/values-pt/strings.xml
@@ -49,6 +49,7 @@
Sender and message
Sender only
Enable delivery reports
+ Use simple characters
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..2ac76d52 100644
--- a/app/src/main/res/values-ru/strings.xml
+++ b/app/src/main/res/values-ru/strings.xml
@@ -51,6 +51,7 @@
Отправитель и сообщение
Только отправитель
Использовать отчёты о доставке
+ Use simple characters
Почему приложение требует доступ к интернету?
diff --git a/app/src/main/res/values-sk/strings.xml b/app/src/main/res/values-sk/strings.xml
index f1092bb8..b3c06f1e 100644
--- a/app/src/main/res/values-sk/strings.xml
+++ b/app/src/main/res/values-sk/strings.xml
@@ -51,6 +51,7 @@
Odosielateľ a správa
Iba odosielateľ
Povoliť správy o doručení
+ Use simple characters
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..5785eeda 100644
--- a/app/src/main/res/values-tr/strings.xml
+++ b/app/src/main/res/values-tr/strings.xml
@@ -49,6 +49,7 @@
Sender and message
Sender only
Enable delivery reports
+ Use simple characters
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..a2156150 100644
--- a/app/src/main/res/values-uk/strings.xml
+++ b/app/src/main/res/values-uk/strings.xml
@@ -49,6 +49,7 @@
Sender and message
Sender only
Enable delivery reports
+ Use simple characters
Чому додаток потрубує доступу до інтернету?
diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml
index b6542e07..9a49e535 100644
--- a/app/src/main/res/values-zh-rCN/strings.xml
+++ b/app/src/main/res/values-zh-rCN/strings.xml
@@ -49,6 +49,7 @@
Sender and message
Sender only
Enable delivery reports
+ Use simple characters
为什么该应用需要访问互联网?
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index a85b6837..68b1c3d0 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -49,6 +49,7 @@
Sender and message
Sender only
Enable delivery reports
+ Use simple characters
Why does the app require access to the internet?