From 841a13b0689a659ff6ce2aa27bf88a729387d26b Mon Sep 17 00:00:00 2001 From: tibbi Date: Fri, 30 Nov 2018 15:52:46 +0100 Subject: [PATCH] create a dialog for adding new blocked numbers --- .../ManageBlockedNumbersActivity.kt | 17 +++++---- .../adapters/ManageBlockedNumbersAdapter.kt | 4 +-- .../pro/dialogs/AddBlockedNumberDialog.kt | 35 +++++++++++++++++++ .../res/layout/dialog_add_blocked_number.xml | 20 +++++++++++ 4 files changed, 66 insertions(+), 10 deletions(-) create mode 100644 app/src/main/kotlin/com/simplemobiletools/contacts/pro/dialogs/AddBlockedNumberDialog.kt create mode 100644 app/src/main/res/layout/dialog_add_blocked_number.xml diff --git a/app/src/main/kotlin/com/simplemobiletools/contacts/pro/activities/ManageBlockedNumbersActivity.kt b/app/src/main/kotlin/com/simplemobiletools/contacts/pro/activities/ManageBlockedNumbersActivity.kt index 062964a4..a189df05 100644 --- a/app/src/main/kotlin/com/simplemobiletools/contacts/pro/activities/ManageBlockedNumbersActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/contacts/pro/activities/ManageBlockedNumbersActivity.kt @@ -10,6 +10,7 @@ import com.simplemobiletools.commons.extensions.updateTextColors import com.simplemobiletools.commons.interfaces.RefreshRecyclerViewListener import com.simplemobiletools.contacts.pro.R import com.simplemobiletools.contacts.pro.adapters.ManageBlockedNumbersAdapter +import com.simplemobiletools.contacts.pro.dialogs.AddBlockedNumberDialog import com.simplemobiletools.contacts.pro.extensions.getBlockedNumbers import kotlinx.android.synthetic.main.activity_manage_blocked_numbers.* @@ -32,13 +33,13 @@ class ManageBlockedNumbersActivity : SimpleActivity(), RefreshRecyclerViewListen private fun updateBlockedNumbers() { Thread { val blockedNumbers = getBlockedNumbers() - ManageBlockedNumbersAdapter(this, blockedNumbers, this, manage_blocked_numbers_list) { - - }.apply { - manage_blocked_numbers_list.adapter = this - } - runOnUiThread { + ManageBlockedNumbersAdapter(this, blockedNumbers, this, manage_blocked_numbers_list) { + + }.apply { + manage_blocked_numbers_list.adapter = this + } + manage_blocked_numbers_placeholder.beVisibleIf(blockedNumbers.isEmpty()) manage_blocked_numbers_placeholder_2.beVisibleIf(blockedNumbers.isEmpty()) } @@ -63,6 +64,8 @@ class ManageBlockedNumbersActivity : SimpleActivity(), RefreshRecyclerViewListen } private fun addBlockedNumber() { - + AddBlockedNumberDialog(this) { + updateBlockedNumbers() + } } } diff --git a/app/src/main/kotlin/com/simplemobiletools/contacts/pro/adapters/ManageBlockedNumbersAdapter.kt b/app/src/main/kotlin/com/simplemobiletools/contacts/pro/adapters/ManageBlockedNumbersAdapter.kt index 6f248a31..5dee5305 100644 --- a/app/src/main/kotlin/com/simplemobiletools/contacts/pro/adapters/ManageBlockedNumbersAdapter.kt +++ b/app/src/main/kotlin/com/simplemobiletools/contacts/pro/adapters/ManageBlockedNumbersAdapter.kt @@ -71,9 +71,7 @@ class ManageBlockedNumbersAdapter(activity: BaseSimpleActivity, var blockedNumbe getSelectedItems().forEach { removeBlockedNumbers.add(it) - Thread { - activity.deleteBlockedNumber(it.number) - }.start() + activity.deleteBlockedNumber(it.number) } blockedNumbers.removeAll(removeBlockedNumbers) diff --git a/app/src/main/kotlin/com/simplemobiletools/contacts/pro/dialogs/AddBlockedNumberDialog.kt b/app/src/main/kotlin/com/simplemobiletools/contacts/pro/dialogs/AddBlockedNumberDialog.kt new file mode 100644 index 00000000..cfc35f89 --- /dev/null +++ b/app/src/main/kotlin/com/simplemobiletools/contacts/pro/dialogs/AddBlockedNumberDialog.kt @@ -0,0 +1,35 @@ +package com.simplemobiletools.contacts.pro.dialogs + +import androidx.appcompat.app.AlertDialog +import com.simplemobiletools.commons.activities.BaseSimpleActivity +import com.simplemobiletools.commons.extensions.setupDialogStuff +import com.simplemobiletools.commons.extensions.showKeyboard +import com.simplemobiletools.commons.extensions.value +import com.simplemobiletools.contacts.pro.R +import com.simplemobiletools.contacts.pro.extensions.addBlockedNumber +import kotlinx.android.synthetic.main.dialog_add_blocked_number.view.* + +class AddBlockedNumberDialog(val activity: BaseSimpleActivity, val callback: () -> Unit) { + init { + + val view = activity.layoutInflater.inflate(R.layout.dialog_add_blocked_number, null) + + AlertDialog.Builder(activity) + .setPositiveButton(R.string.ok, null) + .setNegativeButton(R.string.cancel, null) + .create().apply { + activity.setupDialogStuff(view, this) { + showKeyboard(view.add_blocked_number_edittext) + getButton(AlertDialog.BUTTON_POSITIVE).setOnClickListener { + val phoneNumber = view.add_blocked_number_edittext.value + if (phoneNumber.isNotEmpty()) { + activity.addBlockedNumber(phoneNumber) + } + + callback() + dismiss() + } + } + } + } +} diff --git a/app/src/main/res/layout/dialog_add_blocked_number.xml b/app/src/main/res/layout/dialog_add_blocked_number.xml new file mode 100644 index 00000000..1e0024d5 --- /dev/null +++ b/app/src/main/res/layout/dialog_add_blocked_number.xml @@ -0,0 +1,20 @@ + + + + + +