From b72c6cb7879046a05f2baa098be5a13dceb63000 Mon Sep 17 00:00:00 2001 From: tibbi Date: Fri, 2 Feb 2018 13:57:24 +0100 Subject: [PATCH] properly show the public contact source on all visible places --- .../contacts/activities/EditContactActivity.kt | 13 +++++++------ .../contacts/dialogs/ImportContactsDialog.kt | 14 +++++++++----- .../contacts/extensions/Activity.kt | 9 ++++++++- 3 files changed, 24 insertions(+), 12 deletions(-) diff --git a/app/src/main/kotlin/com/simplemobiletools/contacts/activities/EditContactActivity.kt b/app/src/main/kotlin/com/simplemobiletools/contacts/activities/EditContactActivity.kt index 86be6271..1f7d4758 100644 --- a/app/src/main/kotlin/com/simplemobiletools/contacts/activities/EditContactActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/contacts/activities/EditContactActivity.kt @@ -226,7 +226,7 @@ class EditContactActivity : SimpleActivity() { contact_first_name.setText(contact!!.firstName) contact_middle_name.setText(contact!!.middleName) contact_surname.setText(contact!!.surname) - contact_source.text = contact!!.source + contact_source.text = getPublicContactSource(contact!!.source) contact_toggle_favorite.apply { beVisible() @@ -302,11 +302,12 @@ class EditContactActivity : SimpleActivity() { private fun setupNewContact() { window.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE) supportActionBar?.title = resources.getString(R.string.new_contact) - contact = Contact(0, "", "", "", "", ArrayList(), ArrayList(), ArrayList(), "", 0, 0, "") - contact_source.text = config.lastUsedContactSource + contact = Contact(0, "", "", "", "", ArrayList(), ArrayList(), ArrayList(), config.lastUsedContactSource, 0, 0, "") + contact_source.text = getPublicContactSource(contact!!.source) contact_source.setOnClickListener { - showContactSourcePicker(contact_source.value) { - contact_source.text = it + showContactSourcePicker(contact!!.source) { + contact!!.source = it + contact_source.text = getPublicContactSource(it) } } } @@ -515,7 +516,7 @@ class EditContactActivity : SimpleActivity() { phoneNumbers = getFilledPhoneNumbers() emails = getFilledEmails() events = getFilledEvents() - source = contact_source.value + source = contact!!.source starred = if (isContactStarred()) 1 else 0 Thread { diff --git a/app/src/main/kotlin/com/simplemobiletools/contacts/dialogs/ImportContactsDialog.kt b/app/src/main/kotlin/com/simplemobiletools/contacts/dialogs/ImportContactsDialog.kt index a83c9f87..5c872afe 100644 --- a/app/src/main/kotlin/com/simplemobiletools/contacts/dialogs/ImportContactsDialog.kt +++ b/app/src/main/kotlin/com/simplemobiletools/contacts/dialogs/ImportContactsDialog.kt @@ -4,22 +4,26 @@ import android.support.v7.app.AlertDialog import android.view.ViewGroup import com.simplemobiletools.commons.extensions.setupDialogStuff import com.simplemobiletools.commons.extensions.toast -import com.simplemobiletools.commons.extensions.value import com.simplemobiletools.contacts.R import com.simplemobiletools.contacts.activities.SimpleActivity import com.simplemobiletools.contacts.extensions.config +import com.simplemobiletools.contacts.extensions.getPublicContactSource import com.simplemobiletools.contacts.extensions.showContactSourcePicker import com.simplemobiletools.contacts.helpers.VcfImporter import com.simplemobiletools.contacts.helpers.VcfImporter.ImportResult.IMPORT_FAIL import kotlinx.android.synthetic.main.dialog_import_contacts.view.* class ImportContactsDialog(val activity: SimpleActivity, val path: String, private val callback: (refreshView: Boolean) -> Unit) { + private var targetContactSource = "" + init { val view = (activity.layoutInflater.inflate(R.layout.dialog_import_contacts, null) as ViewGroup).apply { - import_contacts_title.text = activity.config.lastUsedContactSource + targetContactSource = activity.config.lastUsedContactSource + import_contacts_title.text = activity.getPublicContactSource(targetContactSource) import_contacts_title.setOnClickListener { - activity.showContactSourcePicker(import_contacts_title.value) { - import_contacts_title.text = it + activity.showContactSourcePicker(targetContactSource) { + targetContactSource = it + import_contacts_title.text = activity.getPublicContactSource(it) } } } @@ -32,7 +36,7 @@ class ImportContactsDialog(val activity: SimpleActivity, val path: String, priva getButton(AlertDialog.BUTTON_POSITIVE).setOnClickListener { activity.toast(R.string.importing) Thread { - val result = VcfImporter(activity).importContacts(path, view.import_contacts_title.value) + val result = VcfImporter(activity).importContacts(path, targetContactSource) handleParseResult(result) dismiss() }.start() diff --git a/app/src/main/kotlin/com/simplemobiletools/contacts/extensions/Activity.kt b/app/src/main/kotlin/com/simplemobiletools/contacts/extensions/Activity.kt index fafb689c..a7e390a9 100644 --- a/app/src/main/kotlin/com/simplemobiletools/contacts/extensions/Activity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/contacts/extensions/Activity.kt @@ -54,7 +54,12 @@ fun SimpleActivity.showContactSourcePicker(currentSource: String, callback: (new val sources = it.map { it.name } var currentSourceIndex = -1 sources.forEachIndexed { index, account -> - items.add(RadioItem(index, account)) + var publicAccount = account + if (account == config.localAccountName) { + publicAccount = getString(com.simplemobiletools.contacts.R.string.phone_storage) + } + + items.add(RadioItem(index, publicAccount)) if (account == currentSource) { currentSourceIndex = index } @@ -68,6 +73,8 @@ fun SimpleActivity.showContactSourcePicker(currentSource: String, callback: (new } } +fun SimpleActivity.getPublicContactSource(source: String) = if (source == config.localAccountName) getString(com.simplemobiletools.contacts.R.string.phone_storage) else source + fun BaseSimpleActivity.shareContacts(contacts: ArrayList) { val file = getTempFile() if (file == null) {