forked from upstream-mirrors/quik
@@ -302,13 +302,20 @@ class MessageRepositoryImpl @Inject constructor(
|
||||
else -> prefs.signature.get()
|
||||
}
|
||||
|
||||
val smsManager = subId.takeIf { it != -1 }
|
||||
?.let(SmsManagerFactory::createSmsManager)
|
||||
?: SmsManager.getDefault()
|
||||
|
||||
// We only care about stripping SMS
|
||||
val strippedBody = when (prefs.unicode.get()) {
|
||||
true -> StripAccents.stripAccents(signedBody)
|
||||
false -> signedBody
|
||||
}
|
||||
|
||||
if (addresses.size == 1 && attachments.isEmpty()) { // SMS
|
||||
val parts = smsManager.divideMessage(strippedBody).orEmpty()
|
||||
val forceMms = prefs.longAsMms.get() && parts.size > 1
|
||||
|
||||
if (addresses.size == 1 && attachments.isEmpty() && !forceMms) { // SMS
|
||||
if (delay > 0) { // With delay
|
||||
val sendTime = System.currentTimeMillis() + delay
|
||||
val message = insertSentSms(subId, threadId, addresses.first(), strippedBody, sendTime)
|
||||
|
||||
@@ -109,6 +109,7 @@ class Preferences @Inject constructor(
|
||||
val signature = rxPrefs.getString("signature", "")
|
||||
val unicode = rxPrefs.getBoolean("unicode", false)
|
||||
val mobileOnly = rxPrefs.getBoolean("mobileOnly", false)
|
||||
val longAsMms = rxPrefs.getBoolean("longAsMms", false)
|
||||
val mmsSize = rxPrefs.getInteger("mmsSize", 300)
|
||||
val logging = rxPrefs.getBoolean("logging", false)
|
||||
|
||||
|
||||
@@ -168,6 +168,7 @@ class SettingsController : QkController<SettingsView, SettingsState, SettingsPre
|
||||
|
||||
unicode.checkbox.isChecked = state.stripUnicodeEnabled
|
||||
mobileOnly.checkbox.isChecked = state.mobileOnly
|
||||
longAsMms.checkbox.isChecked = state.longAsMms
|
||||
|
||||
mmsSize.summary = state.maxMmsSizeSummary
|
||||
mmsSizeDialog.adapter.selectedItem = state.maxMmsSizeId
|
||||
|
||||
@@ -112,6 +112,9 @@ class SettingsPresenter @Inject constructor(
|
||||
disposables += prefs.mobileOnly.asObservable()
|
||||
.subscribe { enabled -> newState { copy(mobileOnly = enabled) } }
|
||||
|
||||
disposables += prefs.longAsMms.asObservable()
|
||||
.subscribe { enabled -> newState { copy(longAsMms = enabled) } }
|
||||
|
||||
val mmsSizeLabels = context.resources.getStringArray(R.array.mms_sizes)
|
||||
val mmsSizeIds = context.resources.getIntArray(R.array.mms_sizes_ids)
|
||||
disposables += prefs.mmsSize.asObservable()
|
||||
@@ -175,6 +178,8 @@ class SettingsPresenter @Inject constructor(
|
||||
|
||||
R.id.mobileOnly -> prefs.mobileOnly.set(!prefs.mobileOnly.get())
|
||||
|
||||
R.id.longAsMms -> prefs.longAsMms.set(!prefs.longAsMms.get())
|
||||
|
||||
R.id.mmsSize -> view.showMmsSizePicker()
|
||||
|
||||
R.id.sync -> syncMessages.execute(Unit)
|
||||
|
||||
@@ -41,6 +41,7 @@ data class SettingsState(
|
||||
val splitSmsEnabled: Boolean = false,
|
||||
val stripUnicodeEnabled: Boolean = false,
|
||||
val mobileOnly: Boolean = false,
|
||||
val longAsMms: Boolean = false,
|
||||
val maxMmsSizeSummary: String = "100KB",
|
||||
val maxMmsSizeId: Int = 100,
|
||||
val syncProgress: SyncRepository.SyncProgress = SyncRepository.SyncProgress.Idle
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="24.0"
|
||||
android:viewportHeight="24.0">
|
||||
<path
|
||||
android:fillColor="#FF000000"
|
||||
android:pathData="M20,2L4,2c-1.1,0 -1.99,0.9 -1.99,2L2,22l4,-4h14c1.1,0 2,-0.9 2,-2L22,4c0,-1.1 -0.9,-2 -2,-2zM18,14L6,14v-2h12v2zM18,11L6,11L6,9h12v2zM18,8L6,8L6,6h12v2z"/>
|
||||
</vector>
|
||||
@@ -177,6 +177,15 @@
|
||||
app:title="@string/settings_mobile_title"
|
||||
app:widget="@layout/settings_switch_widget" />
|
||||
|
||||
<com.moez.QKSMS.common.widget.PreferenceView
|
||||
android:id="@+id/longAsMms"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
app:icon="@drawable/ic_message_black_24dp"
|
||||
app:summary="@string/settings_long_as_mms_summary"
|
||||
app:title="@string/settings_long_as_mms_title"
|
||||
app:widget="@layout/settings_switch_widget" />
|
||||
|
||||
<com.moez.QKSMS.common.widget.PreferenceView
|
||||
android:id="@+id/mmsSize"
|
||||
android:layout_width="match_parent"
|
||||
|
||||
@@ -255,6 +255,8 @@
|
||||
<string name="settings_unicode_summary">Remove accents from characters in outgoing SMS messages</string>
|
||||
<string name="settings_mobile_title">Mobile numbers only</string>
|
||||
<string name="settings_mobile_summary">When composing a message, only show mobile numbers</string>
|
||||
<string name="settings_long_as_mms_title">Send long messages as MMS</string>
|
||||
<string name="settings_long_as_mms_summary">If your longer text messages are failing to send, or sending in the wrong order, you can send them as MMS messages instead. Additional charges may apply</string>
|
||||
<string name="settings_mms_size_title">Auto-compress MMS attachments</string>
|
||||
<string name="settings_sync_title">Sync messages</string>
|
||||
<string name="settings_sync_summary">Re-sync your messages with the native Android SMS database</string>
|
||||
|
||||
Reference in New Issue
Block a user