From 8fa8e05a7c6caf60f7a76735af7dd8c443f0e295 Mon Sep 17 00:00:00 2001 From: tibbi Date: Fri, 30 Nov 2018 17:08:08 +0100 Subject: [PATCH] properly handle not being the default dialer app at the Manage blocked calls screen --- .../ManageBlockedNumbersActivity.kt | 55 +++++++++++++------ 1 file changed, 38 insertions(+), 17 deletions(-) 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 947a179b..ae1ed642 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 @@ -1,5 +1,6 @@ package com.simplemobiletools.contacts.pro.activities +import android.content.Intent import android.os.Bundle import android.view.Menu import android.view.MenuItem @@ -12,6 +13,8 @@ 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 com.simplemobiletools.contacts.pro.extensions.isDefaultDialer +import com.simplemobiletools.contacts.pro.helpers.REQUEST_CODE_SET_DEFAULT_DIALER import com.simplemobiletools.contacts.pro.models.BlockedNumber import kotlinx.android.synthetic.main.activity_manage_blocked_numbers.* @@ -21,32 +24,21 @@ class ManageBlockedNumbersActivity : SimpleActivity(), RefreshRecyclerViewListen setContentView(R.layout.activity_manage_blocked_numbers) updateBlockedNumbers() updateTextColors(manage_blocked_numbers_wrapper) + updatePlaceholderTexts() manage_blocked_numbers_placeholder_2.apply { underlineText() setTextColor(getAdjustedPrimaryColor()) setOnClickListener { - addOrEditBlockedNumber() + if (isDefaultDialer()) { + addOrEditBlockedNumber() + } else { + launchSetDefaultDialerIntent() + } } } } - private fun updateBlockedNumbers() { - Thread { - val blockedNumbers = getBlockedNumbers() - runOnUiThread { - ManageBlockedNumbersAdapter(this, blockedNumbers, this, manage_blocked_numbers_list) { - addOrEditBlockedNumber(it as BlockedNumber) - }.apply { - manage_blocked_numbers_list.adapter = this - } - - manage_blocked_numbers_placeholder.beVisibleIf(blockedNumbers.isEmpty()) - manage_blocked_numbers_placeholder_2.beVisibleIf(blockedNumbers.isEmpty()) - } - }.start() - } - override fun onCreateOptionsMenu(menu: Menu?): Boolean { menuInflater.inflate(R.menu.menu_add_blocked_number, menu) return true @@ -64,9 +56,38 @@ class ManageBlockedNumbersActivity : SimpleActivity(), RefreshRecyclerViewListen updateBlockedNumbers() } + private fun updatePlaceholderTexts() { + manage_blocked_numbers_placeholder.text = getString(if (isDefaultDialer()) R.string.not_blocking_anyone else R.string.must_make_default_dialer) + manage_blocked_numbers_placeholder_2.text = getString(if (isDefaultDialer()) R.string.add_a_blocked_number else R.string.set_to_default) + } + + private fun updateBlockedNumbers() { + Thread { + val blockedNumbers = getBlockedNumbers() + runOnUiThread { + ManageBlockedNumbersAdapter(this, blockedNumbers, this, manage_blocked_numbers_list) { + addOrEditBlockedNumber(it as BlockedNumber) + }.apply { + manage_blocked_numbers_list.adapter = this + } + + manage_blocked_numbers_placeholder.beVisibleIf(blockedNumbers.isEmpty()) + manage_blocked_numbers_placeholder_2.beVisibleIf(blockedNumbers.isEmpty()) + } + }.start() + } + private fun addOrEditBlockedNumber(currentNumber: BlockedNumber? = null) { AddBlockedNumberDialog(this, currentNumber) { updateBlockedNumbers() } } + + override fun onActivityResult(requestCode: Int, resultCode: Int, resultData: Intent?) { + super.onActivityResult(requestCode, resultCode, resultData) + if (requestCode == REQUEST_CODE_SET_DEFAULT_DIALER && isDefaultDialer()) { + updatePlaceholderTexts() + updateBlockedNumbers() + } + } }