diff --git a/data/src/main/java/util/Preferences.kt b/data/src/main/java/util/Preferences.kt index e6eabe85..4027c0f6 100644 --- a/data/src/main/java/util/Preferences.kt +++ b/data/src/main/java/util/Preferences.kt @@ -50,8 +50,8 @@ class Preferences @Inject constructor(private val rxPrefs: RxSharedPreferences) val delivery = rxPrefs.getBoolean("delivery", false) val textSize = rxPrefs.getInteger("textSize", TEXT_SIZE_NORMAL) val qkreply = rxPrefs.getBoolean("qkreply", Build.VERSION.SDK_INT < Build.VERSION_CODES.N) + val qkreplyTapDismiss = rxPrefs.getBoolean("qkreplyTapDismiss", true) val unicode = rxPrefs.getBoolean("unicode", false) - val mms = rxPrefs.getBoolean("mms", true) val mmsSize = rxPrefs.getInteger("mmsSize", 100) fun theme(threadId: Long = 0): Preference { diff --git a/presentation/src/main/java/feature/qkreply/QkReplyActivity.kt b/presentation/src/main/java/feature/qkreply/QkReplyActivity.kt index 2f659e6c..4d1681c1 100644 --- a/presentation/src/main/java/feature/qkreply/QkReplyActivity.kt +++ b/presentation/src/main/java/feature/qkreply/QkReplyActivity.kt @@ -41,6 +41,7 @@ import io.reactivex.rxkotlin.Observables import io.reactivex.subjects.PublishSubject import io.reactivex.subjects.Subject import kotlinx.android.synthetic.main.qkreply_activity.* +import util.Preferences import javax.inject.Inject class QkReplyActivity : QkThemedActivity(), QkReplyView { @@ -51,6 +52,7 @@ class QkReplyActivity : QkThemedActivity(), QkReplyView { override val sendIntent by lazy { send.clicks() } @Inject lateinit var adapter: MessagesAdapter + @Inject lateinit var prefs: Preferences init { appComponent.inject(this) @@ -60,7 +62,7 @@ class QkReplyActivity : QkThemedActivity(), QkReplyView { supportRequestWindowFeature(Window.FEATURE_NO_TITLE) super.onCreate(savedInstanceState) - setFinishOnTouchOutside(true) + setFinishOnTouchOutside(prefs.qkreplyTapDismiss.get()) setContentView(R.layout.qkreply_activity) window.clearFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND) window.setLayout(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT) diff --git a/presentation/src/main/java/feature/settings/SettingsActivity.kt b/presentation/src/main/java/feature/settings/SettingsActivity.kt index 739ed26c..33245f4c 100644 --- a/presentation/src/main/java/feature/settings/SettingsActivity.kt +++ b/presentation/src/main/java/feature/settings/SettingsActivity.kt @@ -118,11 +118,12 @@ class SettingsActivity : QkThemedActivity(), SettingsView { autoEmoji.checkbox.isChecked = state.autoEmojiEnabled delivery.checkbox.isChecked = state.deliveryEnabled qkreply.checkbox.isChecked = state.qkReplyEnabled + qkreplyTapDismiss.setVisible(state.qkReplyEnabled) + qkreplyTapDismiss.checkbox.isChecked = state.qkReplyTapDismiss textSize.summary = state.textSizeSummary unicode.checkbox.isChecked = state.stripUnicodeEnabled - mms.checkbox.isChecked = state.mmsEnabled mmsSize.summary = state.maxMmsSizeSummary mmsSizeAdapter.selectedItem = state.maxMmsSizeId diff --git a/presentation/src/main/java/feature/settings/SettingsState.kt b/presentation/src/main/java/feature/settings/SettingsState.kt index dcb0be82..3fb7970d 100644 --- a/presentation/src/main/java/feature/settings/SettingsState.kt +++ b/presentation/src/main/java/feature/settings/SettingsState.kt @@ -34,10 +34,10 @@ data class SettingsState( val notificationsEnabled: Boolean = true, val deliveryEnabled: Boolean = false, val qkReplyEnabled: Boolean = Build.VERSION.SDK_INT < Build.VERSION_CODES.N, + val qkReplyTapDismiss: Boolean = true, val textSizeSummary: String = "", val splitSmsEnabled: Boolean = false, val stripUnicodeEnabled: Boolean = false, - val mmsEnabled: Boolean = true, val maxMmsSizeSummary: String = "100KB", val maxMmsSizeId: Int = 100 ) \ No newline at end of file diff --git a/presentation/src/main/java/feature/settings/SettingsViewModel.kt b/presentation/src/main/java/feature/settings/SettingsViewModel.kt index c1758a18..712c0b01 100644 --- a/presentation/src/main/java/feature/settings/SettingsViewModel.kt +++ b/presentation/src/main/java/feature/settings/SettingsViewModel.kt @@ -82,6 +82,9 @@ class SettingsViewModel : QkViewModel(SettingsState disposables += prefs.qkreply.asObservable() .subscribe { enabled -> newState { it.copy(qkReplyEnabled = enabled) } } + disposables += prefs.qkreplyTapDismiss.asObservable() + .subscribe { enabled -> newState { it.copy(qkReplyTapDismiss = enabled) } } + val textSizeLabels = context.resources.getStringArray(R.array.text_sizes) disposables += prefs.textSize.asObservable() .subscribe { textSize -> newState { it.copy(textSizeSummary = textSizeLabels[textSize]) } } @@ -89,9 +92,6 @@ class SettingsViewModel : QkViewModel(SettingsState disposables += prefs.unicode.asObservable() .subscribe { enabled -> newState { it.copy(stripUnicodeEnabled = enabled) } } - disposables += prefs.mms.asObservable() - .subscribe { enabled -> newState { it.copy(mmsEnabled = enabled) } } - val mmsSizeLabels = context.resources.getStringArray(R.array.mms_sizes) val mmsSizeIds = context.resources.getIntArray(R.array.mms_sizes_ids) disposables += prefs.mmsSize.asObservable() @@ -140,12 +140,12 @@ class SettingsViewModel : QkViewModel(SettingsState R.id.qkreply -> prefs.qkreply.set(!prefs.qkreply.get()) + R.id.qkreplyTapDismiss -> prefs.qkreplyTapDismiss.set(!prefs.qkreplyTapDismiss.get()) + R.id.textSize -> view.showTextSizePicker() R.id.unicode -> prefs.unicode.set(!prefs.unicode.get()) - R.id.mms -> prefs.mms.set(!prefs.mms.get()) - R.id.mmsSize -> view.showMmsSizePicker() R.id.sync -> { diff --git a/presentation/src/main/java/interactor/MigratePreferences.kt b/presentation/src/main/java/interactor/MigratePreferences.kt index c9ab5e28..701e4ee2 100644 --- a/presentation/src/main/java/interactor/MigratePreferences.kt +++ b/presentation/src/main/java/interactor/MigratePreferences.kt @@ -62,6 +62,7 @@ class MigratePreferences @Inject constructor( // Quickreply prefs.qkreply.set(rxPrefs.getBoolean("pref_key_quickreply_enabled", prefs.qkreply.get()).get()) + prefs.qkreplyTapDismiss.set(rxPrefs.getBoolean("pref_key_quickreply_dismiss", prefs.qkreplyTapDismiss.get()).get()) // Font size prefs.textSize.set(rxPrefs.getString("pref_key_font_size", "${prefs.textSize.get()}").get().toInt()) diff --git a/presentation/src/main/res/layout/settings_activity.xml b/presentation/src/main/res/layout/settings_activity.xml index c3ebf678..84130fe2 100644 --- a/presentation/src/main/res/layout/settings_activity.xml +++ b/presentation/src/main/res/layout/settings_activity.xml @@ -162,6 +162,14 @@ app:title="@string/settings_qkreply_title" app:widget="@layout/settings_switch_widget" /> + + - - Confirm that messages were sent successfully QK Reply Popup for new messages + Tap to dismiss + Tap outside of the popup to close it Font size Strip accents Remove accents from characters in outgoing SMS messages - MMS enabled Max MMS attachment size Sync messages Re-sync your messages with the native Android SMS database