Added removing diacritics (#29)

This commit is contained in:
Agnieszka C
2021-09-06 10:12:51 +02:00
parent 72833f6f16
commit b212aa49b3
28 changed files with 75 additions and 2 deletions

View File

@ -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

View File

@ -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<String>()
participants.forEach {
it.phoneNumbers.forEach {

View File

@ -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
}

View File

@ -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()

View File

@ -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"

View File

@ -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

View File

@ -195,6 +195,29 @@
</RelativeLayout>
<RelativeLayout
android:id="@+id/settings_use_simple_characters_holder"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/medium_margin"
android:background="?attr/selectableItemBackground"
android:paddingStart="@dimen/normal_margin"
android:paddingTop="@dimen/activity_margin"
android:paddingEnd="@dimen/normal_margin"
android:paddingBottom="@dimen/activity_margin">
<com.simplemobiletools.commons.views.MySwitchCompat
android:id="@+id/settings_use_simple_characters"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@null"
android:clickable="false"
android:paddingStart="@dimen/medium_margin"
android:text="@string/use_simple_characters"
app:switchPadding="@dimen/medium_margin" />
</RelativeLayout>
<RelativeLayout
android:id="@+id/settings_enable_delivery_reports_holder"
android:layout_width="match_parent"

View File

@ -49,6 +49,7 @@
<string name="sender_and_message">Sender and message</string>
<string name="sender_only">Sender only</string>
<string name="enable_delivery_reports">Enable delivery reports</string>
<string name="use_simple_characters">Use simple characters</string>
<!-- FAQ -->
<string name="faq_1_title">Proč aplikace vyžaduje přístup k internetu?</string>

View File

@ -49,6 +49,7 @@
<string name="sender_and_message">Sender and message</string>
<string name="sender_only">Sender only</string>
<string name="enable_delivery_reports">Enable delivery reports</string>
<string name="use_simple_characters">Use simple characters</string>
<!-- FAQ -->
<string name="faq_1_title">Hvorfor kræver appen adgang til internettet?</string>

View File

@ -49,6 +49,7 @@
<string name="sender_and_message">Sender and message</string>
<string name="sender_only">Sender only</string>
<string name="enable_delivery_reports">Enable delivery reports</string>
<string name="use_simple_characters">Use simple characters</string>
<!-- FAQ -->
<string name="faq_1_title">Warum benötigt diese App Internetzugriff?</string>

View File

@ -49,6 +49,7 @@
<string name="sender_and_message">Αποστολέας και μήνυμα</string>
<string name="sender_only">Αποστολέας μόνο</string>
<string name="enable_delivery_reports">Ενεργοποίηση αναφορών παράδοσης</string>
<string name="use_simple_characters">Use simple characters</string>
<!-- FAQ -->
<string name="faq_1_title">Γιατί η εφαρμογή απαιτεί πρόσβαση στο Internet;</string>

View File

@ -49,6 +49,7 @@
<string name="sender_and_message">Sender and message</string>
<string name="sender_only">Sender only</string>
<string name="enable_delivery_reports">Enable delivery reports</string>
<string name="use_simple_characters">Use simple characters</string>
<!-- FAQ -->
<string name="faq_1_title">¿Por qué la aplicación requiere acceso a internet?</string>

View File

@ -49,6 +49,7 @@
<string name="sender_and_message">Sender and message</string>
<string name="sender_only">Sender only</string>
<string name="enable_delivery_reports">Enable delivery reports</string>
<string name="use_simple_characters">Use simple characters</string>
<!-- FAQ -->
<string name="faq_1_title">Miksi sovellus vaatii Internet-yhteyden?</string>

View File

@ -49,6 +49,7 @@
<string name="sender_and_message">Sender and message</string>
<string name="sender_only">Sender only</string>
<string name="enable_delivery_reports">Enable delivery reports</string>
<string name="use_simple_characters">Use simple characters</string>
<!-- FAQ -->
<string name="faq_1_title">Pourquoi cette application a besoin d\'un accès à internet ?</string>

View File

@ -49,6 +49,7 @@
<string name="sender_and_message">Sender and message</string>
<string name="sender_only">Sender only</string>
<string name="enable_delivery_reports">Enable delivery reports</string>
<string name="use_simple_characters">Use simple characters</string>
<!-- FAQ -->
<string name="faq_1_title">Mengapa aplikasi membutuhkan akses ke internet?</string>

View File

@ -49,6 +49,7 @@
<string name="sender_and_message">Mittente e messaggio</string>
<string name="sender_only">Solo mittente</string>
<string name="enable_delivery_reports">Abilita conferma di consegna</string>
<string name="use_simple_characters">Use simple characters</string>
<!-- FAQ -->
<string name="faq_1_title">Perché l\'applicazione richiede l\'accesso ad internet?</string>

View File

@ -49,6 +49,7 @@
<string name="sender_and_message">Sender and message</string>
<string name="sender_only">Sender only</string>
<string name="enable_delivery_reports">Enable delivery reports</string>
<string name="use_simple_characters">Use simple characters</string>
<!-- FAQ -->
<string name="faq_1_title">なぜアプリ使用にインターネットへのアクセスが必要なのですか?</string>

View File

@ -49,6 +49,7 @@
<string name="sender_and_message">Sender and message</string>
<string name="sender_only">Sender only</string>
<string name="enable_delivery_reports">Enable delivery reports</string>
<string name="use_simple_characters">Use simple characters</string>
<!-- FAQ -->
<string name="faq_1_title">Why does the app require access to the internet?</string>

View File

@ -49,6 +49,7 @@
<string name="sender_and_message">Sender and message</string>
<string name="sender_only">Sender only</string>
<string name="enable_delivery_reports">Enable delivery reports</string>
<string name="use_simple_characters">Use simple characters</string>
<!-- FAQ -->
<string name="faq_1_title">അപ്ലിക്കേഷന് ഇന്റർനെറ്റിലേക്ക് ആവശ്യമായി വരുന്നത് എന്തുകൊണ്ട്?</string>

View File

@ -49,6 +49,7 @@
<string name="sender_and_message">Afzender en bericht</string>
<string name="sender_only">Alleen afzender</string>
<string name="enable_delivery_reports">Bezorgingsrapporten inschakelen</string>
<string name="use_simple_characters">Use simple characters</string>
<!-- FAQ -->
<string name="faq_1_title">Waarom heeft deze app toegang nodig tot het internet?</string>

View File

@ -51,6 +51,7 @@
<string name="sender_and_message">Nadawca i treść</string>
<string name="sender_only">Tylko nadawca</string>
<string name="enable_delivery_reports">Włącz raporty doręczeń</string>
<string name="use_simple_characters">Używaj prostych znaków</string>
<!-- FAQ -->
<string name="faq_1_title">Dlaczego aplikacja wymaga dostępu do Internetu?</string>

View File

@ -49,6 +49,7 @@
<string name="sender_and_message">Sender and message</string>
<string name="sender_only">Sender only</string>
<string name="enable_delivery_reports">Enable delivery reports</string>
<string name="use_simple_characters">Use simple characters</string>
<!-- FAQ -->
<string name="faq_1_title">Porque é que a aplicação necessita de aceder à Internet?</string>

View File

@ -51,6 +51,7 @@
<string name="sender_and_message">Отправитель и сообщение</string>
<string name="sender_only">Только отправитель</string>
<string name="enable_delivery_reports">Использовать отчёты о доставке</string>
<string name="use_simple_characters">Use simple characters</string>
<!-- FAQ -->
<string name="faq_1_title">Почему приложение требует доступ к интернету?</string>

View File

@ -51,6 +51,7 @@
<string name="sender_and_message">Odosielateľ a správa</string>
<string name="sender_only">Iba odosielateľ</string>
<string name="enable_delivery_reports">Povoliť správy o doručení</string>
<string name="use_simple_characters">Use simple characters</string>
<!-- FAQ -->
<string name="faq_1_title">Prečo vyžaduje apka prístup na internet?</string>

View File

@ -49,6 +49,7 @@
<string name="sender_and_message">Sender and message</string>
<string name="sender_only">Sender only</string>
<string name="enable_delivery_reports">Enable delivery reports</string>
<string name="use_simple_characters">Use simple characters</string>
<!-- FAQ -->
<string name="faq_1_title">Uygulama neden internete erişim gerektiriyor?</string>

View File

@ -49,6 +49,7 @@
<string name="sender_and_message">Sender and message</string>
<string name="sender_only">Sender only</string>
<string name="enable_delivery_reports">Enable delivery reports</string>
<string name="use_simple_characters">Use simple characters</string>
<!-- FAQ -->
<string name="faq_1_title">Чому додаток потрубує доступу до інтернету?</string>

View File

@ -49,6 +49,7 @@
<string name="sender_and_message">Sender and message</string>
<string name="sender_only">Sender only</string>
<string name="enable_delivery_reports">Enable delivery reports</string>
<string name="use_simple_characters">Use simple characters</string>
<!-- FAQ -->
<string name="faq_1_title">为什么该应用需要访问互联网?</string>

View File

@ -49,6 +49,7 @@
<string name="sender_and_message">Sender and message</string>
<string name="sender_only">Sender only</string>
<string name="enable_delivery_reports">Enable delivery reports</string>
<string name="use_simple_characters">Use simple characters</string>
<!-- FAQ -->
<string name="faq_1_title">Why does the app require access to the internet?</string>