From 54df14442d51299f17b4b86faa44d39eb9ee78b3 Mon Sep 17 00:00:00 2001 From: tibbi Date: Fri, 13 Apr 2018 12:14:26 +0200 Subject: [PATCH] add website to the View screen --- .../activities/ViewContactActivity.kt | 26 +++++++++++++++++++ .../contacts/extensions/Context.kt | 22 ++++++++++++---- .../contacts/helpers/Constants.kt | 1 + .../main/res/layout/activity_view_contact.xml | 21 ++++++++++++++- app/src/main/res/layout/item_website.xml | 14 ++++++++++ 5 files changed, 78 insertions(+), 6 deletions(-) create mode 100644 app/src/main/res/layout/item_website.xml diff --git a/app/src/main/kotlin/com/simplemobiletools/contacts/activities/ViewContactActivity.kt b/app/src/main/kotlin/com/simplemobiletools/contacts/activities/ViewContactActivity.kt index c337c600..d47c2073 100644 --- a/app/src/main/kotlin/com/simplemobiletools/contacts/activities/ViewContactActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/contacts/activities/ViewContactActivity.kt @@ -19,6 +19,7 @@ import kotlinx.android.synthetic.main.item_view_address.view.* import kotlinx.android.synthetic.main.item_view_email.view.* import kotlinx.android.synthetic.main.item_view_group.view.* import kotlinx.android.synthetic.main.item_view_phone_number.view.* +import kotlinx.android.synthetic.main.item_website.view.* class ViewContactActivity : ContactActivity() { private var isViewIntent = false @@ -124,6 +125,7 @@ class ViewContactActivity : ContactActivity() { contact_source_image.applyColorFilter(textColor) contact_notes_image.applyColorFilter(textColor) contact_organization_image.applyColorFilter(textColor) + contact_websites_image.applyColorFilter(textColor) contact_groups_image.applyColorFilter(textColor) contact_send_sms.setOnClickListener { trySendSMS() } @@ -180,6 +182,7 @@ class ViewContactActivity : ContactActivity() { setupEvents() setupNotes() setupOrganization() + setupWebsites() setupGroups() } @@ -303,6 +306,29 @@ class ViewContactActivity : ContactActivity() { } } + private fun setupWebsites() { + contact_websites_holder.removeAllViews() + val websites = contact!!.websites + if (websites.isNotEmpty() && showFields and SHOW_WEBSITES_FIELD != 0) { + websites.forEach { + val url = it + layoutInflater.inflate(R.layout.item_website, contact_websites_holder, false).apply { + contact_websites_holder.addView(this) + contact_website.text = url + + setOnClickListener { + openWebsiteIntent(url) + } + } + } + contact_websites_image.beVisible() + contact_websites_holder.beVisible() + } else { + contact_websites_image.beGone() + contact_websites_holder.beGone() + } + } + private fun setupGroups() { contact_groups_holder.removeAllViews() val groups = contact!!.groups diff --git a/app/src/main/kotlin/com/simplemobiletools/contacts/extensions/Context.kt b/app/src/main/kotlin/com/simplemobiletools/contacts/extensions/Context.kt index 2507d169..dfcafded 100644 --- a/app/src/main/kotlin/com/simplemobiletools/contacts/extensions/Context.kt +++ b/app/src/main/kotlin/com/simplemobiletools/contacts/extensions/Context.kt @@ -68,11 +68,23 @@ fun Context.sendAddressIntent(address: String) { val location = Uri.encode(address) val uri = Uri.parse("geo:0,0?q=$location") - val intent = Intent(Intent.ACTION_VIEW, uri) - if (intent.resolveActivity(packageManager) != null) { - startActivity(intent) - } else { - toast(R.string.no_app_found) + Intent(Intent.ACTION_VIEW, uri).apply { + if (resolveActivity(packageManager) != null) { + startActivity(this) + } else { + toast(R.string.no_app_found) + } + } +} + +fun Context.openWebsiteIntent(url: String) { + Intent(Intent.ACTION_VIEW).apply { + data = Uri.parse(url) + if (resolveActivity(packageManager) != null) { + startActivity(this) + } else { + toast(R.string.no_app_found) + } } } diff --git a/app/src/main/kotlin/com/simplemobiletools/contacts/helpers/Constants.kt b/app/src/main/kotlin/com/simplemobiletools/contacts/helpers/Constants.kt index 11084ef4..03e65cbe 100644 --- a/app/src/main/kotlin/com/simplemobiletools/contacts/helpers/Constants.kt +++ b/app/src/main/kotlin/com/simplemobiletools/contacts/helpers/Constants.kt @@ -82,3 +82,4 @@ const val SHOW_NOTES_FIELD = 512 const val SHOW_ORGANIZATION_FIELD = 1024 const val SHOW_GROUPS_FIELD = 2048 const val SHOW_CONTACT_SOURCE_FIELD = 4096 +const val SHOW_WEBSITES_FIELD = 8192 diff --git a/app/src/main/res/layout/activity_view_contact.xml b/app/src/main/res/layout/activity_view_contact.xml index 523627b0..d72416a6 100644 --- a/app/src/main/res/layout/activity_view_contact.xml +++ b/app/src/main/res/layout/activity_view_contact.xml @@ -306,6 +306,25 @@ android:paddingTop="@dimen/normal_margin" android:textSize="@dimen/bigger_text_size"/> + + + + diff --git a/app/src/main/res/layout/item_website.xml b/app/src/main/res/layout/item_website.xml new file mode 100644 index 00000000..39d029bc --- /dev/null +++ b/app/src/main/res/layout/item_website.xml @@ -0,0 +1,14 @@ + +