allow blocking numbers directly from the main screen
This commit is contained in:
parent
d8e2a774e3
commit
3ac08e2b21
|
@ -2,6 +2,7 @@ package com.simplemobiletools.smsmessenger.adapters
|
|||
|
||||
import android.content.Intent
|
||||
import android.graphics.Typeface
|
||||
import android.text.TextUtils
|
||||
import android.view.Menu
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
|
@ -9,6 +10,7 @@ import android.widget.TextView
|
|||
import com.bumptech.glide.Glide
|
||||
import com.simplemobiletools.commons.adapters.MyRecyclerViewAdapter
|
||||
import com.simplemobiletools.commons.dialogs.ConfirmationDialog
|
||||
import com.simplemobiletools.commons.extensions.addBlockedNumber
|
||||
import com.simplemobiletools.commons.extensions.formatDateOrTime
|
||||
import com.simplemobiletools.commons.extensions.toast
|
||||
import com.simplemobiletools.commons.helpers.KEY_PHONE
|
||||
|
@ -45,6 +47,7 @@ class ConversationsAdapter(activity: SimpleActivity, var conversations: ArrayLis
|
|||
|
||||
when (id) {
|
||||
R.id.cab_add_number_to_contact -> addNumberToContact()
|
||||
R.id.cab_block_number -> askConfirmBlock()
|
||||
R.id.cab_select_all -> selectAll()
|
||||
R.id.cab_delete -> askConfirmDelete()
|
||||
}
|
||||
|
@ -74,6 +77,37 @@ class ConversationsAdapter(activity: SimpleActivity, var conversations: ArrayLis
|
|||
|
||||
override fun getItemCount() = conversations.size
|
||||
|
||||
private fun askConfirmBlock() {
|
||||
val numbers = TextUtils.join(", ", getSelectedItems().distinctBy { it.phoneNumber }.map { it.phoneNumber })
|
||||
val baseString = R.string.block_confirmation
|
||||
val question = String.format(resources.getString(baseString), numbers)
|
||||
|
||||
ConfirmationDialog(activity, question) {
|
||||
blockNumbers()
|
||||
}
|
||||
}
|
||||
|
||||
private fun blockNumbers() {
|
||||
if (selectedKeys.isEmpty()) {
|
||||
return
|
||||
}
|
||||
|
||||
val numbersToBlock = getSelectedItems()
|
||||
val positions = getSelectedItemPositions()
|
||||
conversations.removeAll(numbersToBlock)
|
||||
|
||||
ensureBackgroundThread {
|
||||
numbersToBlock.map { it.phoneNumber }.forEach { number ->
|
||||
activity.addBlockedNumber(number)
|
||||
}
|
||||
|
||||
activity.runOnUiThread {
|
||||
removeSelectedItems(positions)
|
||||
finishActMode()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private fun askConfirmDelete() {
|
||||
val itemsCnt = selectedKeys.size
|
||||
val items = resources.getQuantityString(R.plurals.delete_conversations, itemsCnt, itemsCnt)
|
||||
|
|
|
@ -6,6 +6,11 @@
|
|||
android:icon="@drawable/ic_add_person_vector"
|
||||
android:title="@string/add_number_to_contact"
|
||||
app:showAsAction="ifRoom" />
|
||||
<item
|
||||
android:id="@+id/cab_block_number"
|
||||
android:icon="@drawable/ic_minus_circle_vector"
|
||||
android:title="@string/block_number"
|
||||
app:showAsAction="ifRoom" />
|
||||
<item
|
||||
android:id="@+id/cab_select_all"
|
||||
android:icon="@drawable/ic_select_all_vector"
|
||||
|
|
Loading…
Reference in New Issue