From 0836bdb9af91db9483d0b53ca1b044b27e35ec98 Mon Sep 17 00:00:00 2001 From: tibbi Date: Mon, 13 Apr 2020 18:46:18 +0200 Subject: [PATCH] show a placeholder at contact suggestions, if none are found --- .../activities/NewConversationActivity.kt | 38 ++++++++++++++----- 1 file changed, 28 insertions(+), 10 deletions(-) diff --git a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/activities/NewConversationActivity.kt b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/activities/NewConversationActivity.kt index 69992a2d..4553c184 100644 --- a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/activities/NewConversationActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/activities/NewConversationActivity.kt @@ -45,15 +45,7 @@ class NewConversationActivity : SimpleActivity() { return } - fillSuggestedContacts { - getAvailableContacts { - allContacts = it - runOnUiThread { - setupAdapter(allContacts) - } - } - } - + fetchContacts() new_conversation_address.onTextChangeListener { val searchString = it val filteredContacts = ArrayList() @@ -74,6 +66,14 @@ class NewConversationActivity : SimpleActivity() { val number = new_conversation_address.value launchThreadActivity(number, number) } + + no_contacts_placeholder_2.setOnClickListener { + handlePermission(PERMISSION_READ_CONTACTS) { + if (it) { + fetchContacts() + } + } + } } private fun isThirdPartyIntent(): Boolean { @@ -85,11 +85,27 @@ class NewConversationActivity : SimpleActivity() { return false } + private fun fetchContacts() { + fillSuggestedContacts { + getAvailableContacts { + allContacts = it + runOnUiThread { + setupAdapter(allContacts) + } + } + } + } + private fun setupAdapter(contacts: ArrayList) { val hasContacts = contacts.isNotEmpty() contacts_list.beVisibleIf(hasContacts) no_contacts_placeholder.beVisibleIf(!hasContacts) - no_contacts_placeholder_2.beVisibleIf(!hasContacts) + no_contacts_placeholder_2.beVisibleIf(!hasContacts && !hasPermission(PERMISSION_READ_CONTACTS)) + + if (!hasContacts) { + val placeholderText = if (hasPermission(PERMISSION_READ_CONTACTS)) R.string.no_contacts_found else R.string.no_access_to_contacts + no_contacts_placeholder.text = getString(placeholderText) + } ContactsAdapter(this, contacts, contacts_list, null) { hideKeyboard() @@ -108,6 +124,8 @@ class NewConversationActivity : SimpleActivity() { suggestions_label.beGone() suggestions_scrollview.beGone() } else { + suggestions_label.beVisible() + suggestions_scrollview.beVisible() suggestions.forEach { val contact = it layoutInflater.inflate(R.layout.item_suggested_contact, null).apply {