From 70d03f35b9b9449b60e1e525671d545815c69f86 Mon Sep 17 00:00:00 2001 From: tibbi Date: Sun, 15 Sep 2019 20:50:55 +0200 Subject: [PATCH] gather events from all contacts at displaying --- .../pro/activities/ContactActivity.kt | 2 +- .../pro/activities/EditContactActivity.kt | 4 +-- .../pro/activities/ViewContactActivity.kt | 36 +++++++++++-------- .../contacts/pro/helpers/VcfExporter.kt | 2 +- .../contacts/pro/helpers/VcfImporter.kt | 8 ++--- app/src/main/res/layout/item_view_event.xml | 35 ++++++++++++++++++ 6 files changed, 65 insertions(+), 22 deletions(-) create mode 100644 app/src/main/res/layout/item_view_event.xml diff --git a/app/src/main/kotlin/com/simplemobiletools/contacts/pro/activities/ContactActivity.kt b/app/src/main/kotlin/com/simplemobiletools/contacts/pro/activities/ContactActivity.kt index 47a00896..9fc228cd 100644 --- a/app/src/main/kotlin/com/simplemobiletools/contacts/pro/activities/ContactActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/contacts/pro/activities/ContactActivity.kt @@ -180,8 +180,8 @@ abstract class ContactActivity : SimpleActivity() { } fun getEventTextId(type: Int) = when (type) { - ContactsContract.CommonDataKinds.Event.TYPE_BIRTHDAY -> R.string.birthday ContactsContract.CommonDataKinds.Event.TYPE_ANNIVERSARY -> R.string.anniversary + ContactsContract.CommonDataKinds.Event.TYPE_BIRTHDAY -> R.string.birthday else -> R.string.other } } diff --git a/app/src/main/kotlin/com/simplemobiletools/contacts/pro/activities/EditContactActivity.kt b/app/src/main/kotlin/com/simplemobiletools/contacts/pro/activities/EditContactActivity.kt index 06a6d7f5..4abc748c 100644 --- a/app/src/main/kotlin/com/simplemobiletools/contacts/pro/activities/EditContactActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/contacts/pro/activities/EditContactActivity.kt @@ -821,8 +821,8 @@ class EditContactActivity : ContactActivity() { private fun showEventTypePicker(eventTypeField: TextView) { val items = arrayListOf( - RadioItem(CommonDataKinds.Event.TYPE_BIRTHDAY, getString(R.string.birthday)), RadioItem(CommonDataKinds.Event.TYPE_ANNIVERSARY, getString(R.string.anniversary)), + RadioItem(CommonDataKinds.Event.TYPE_BIRTHDAY, getString(R.string.birthday)), RadioItem(CommonDataKinds.Event.TYPE_OTHER, getString(R.string.other)) ) @@ -1221,8 +1221,8 @@ class EditContactActivity : ContactActivity() { } private fun getEventTypeId(value: String) = when (value) { - getString(R.string.birthday) -> CommonDataKinds.Event.TYPE_BIRTHDAY getString(R.string.anniversary) -> CommonDataKinds.Event.TYPE_ANNIVERSARY + getString(R.string.birthday) -> CommonDataKinds.Event.TYPE_BIRTHDAY else -> CommonDataKinds.Event.TYPE_OTHER } diff --git a/app/src/main/kotlin/com/simplemobiletools/contacts/pro/activities/ViewContactActivity.kt b/app/src/main/kotlin/com/simplemobiletools/contacts/pro/activities/ViewContactActivity.kt index cb198248..d8ee9295 100644 --- a/app/src/main/kotlin/com/simplemobiletools/contacts/pro/activities/ViewContactActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/contacts/pro/activities/ViewContactActivity.kt @@ -207,11 +207,11 @@ class ViewContactActivity : ContactActivity() { setupEmails() setupAddresses() setupIMs() + setupEvents() setupContactSources() } } - setupEvents() setupNotes() setupOrganization() setupWebsites() @@ -423,20 +423,28 @@ class ViewContactActivity : ContactActivity() { private fun setupEvents() { contact_events_holder.removeAllViews() - val events = contact!!.events - if (events.isNotEmpty() && showFields and SHOW_EVENTS_FIELD != 0) { - events.forEach { - layoutInflater.inflate(R.layout.item_event, contact_events_holder, false).apply { - contact_events_holder.addView(this) - contact_event.alpha = 1f - it.value.getDateTimeFromDateString(contact_event) - contact_event_type.setText(getEventTextId(it.type)) - contact_event_remove.beGone() - copyOnLongClick(it.value) - } + if (showFields and SHOW_EVENTS_FIELD != 0) { + var events = contact!!.events.toMutableSet() as LinkedHashSet + duplicateContacts.forEach { + events.addAll(it.events) + } + + events = events.sortedBy { it.type }.toMutableSet() as LinkedHashSet + if (events.isNotEmpty()) { + events.forEach { + layoutInflater.inflate(R.layout.item_view_event, contact_events_holder, false).apply { + contact_events_holder.addView(this) + it.value.getDateTimeFromDateString(contact_event) + contact_event_type.setText(getEventTextId(it.type)) + copyOnLongClick(it.value) + } + } + contact_events_image.beVisible() + contact_events_holder.beVisible() + } else { + contact_events_image.beGone() + contact_events_holder.beGone() } - contact_events_image.beVisible() - contact_events_holder.beVisible() } else { contact_events_image.beGone() contact_events_holder.beGone() diff --git a/app/src/main/kotlin/com/simplemobiletools/contacts/pro/helpers/VcfExporter.kt b/app/src/main/kotlin/com/simplemobiletools/contacts/pro/helpers/VcfExporter.kt index eb36d4dd..d973db4e 100644 --- a/app/src/main/kotlin/com/simplemobiletools/contacts/pro/helpers/VcfExporter.kt +++ b/app/src/main/kotlin/com/simplemobiletools/contacts/pro/helpers/VcfExporter.kt @@ -70,7 +70,7 @@ class VcfExporter { } contact.events.forEach { - if (it.type == CommonDataKinds.Event.TYPE_BIRTHDAY || it.type == CommonDataKinds.Event.TYPE_ANNIVERSARY) { + if (it.type == CommonDataKinds.Event.TYPE_ANNIVERSARY || it.type == CommonDataKinds.Event.TYPE_BIRTHDAY) { val dateTime = it.value.getDateTimeFromDateString() if (it.value.startsWith("--")) { val partialDate = PartialDate.builder().year(null).month(dateTime.monthOfYear).date(dateTime.dayOfMonth).build() diff --git a/app/src/main/kotlin/com/simplemobiletools/contacts/pro/helpers/VcfImporter.kt b/app/src/main/kotlin/com/simplemobiletools/contacts/pro/helpers/VcfImporter.kt index 9a959764..a9030e19 100644 --- a/app/src/main/kotlin/com/simplemobiletools/contacts/pro/helpers/VcfImporter.kt +++ b/app/src/main/kotlin/com/simplemobiletools/contacts/pro/helpers/VcfImporter.kt @@ -88,13 +88,13 @@ class VcfImporter(val activity: SimpleActivity) { } val events = ArrayList() - ezContact.birthdays.forEach { - val event = Event(formatDateToDayCode(it.date), CommonDataKinds.Event.TYPE_BIRTHDAY) + ezContact.anniversaries.forEach { + val event = Event(formatDateToDayCode(it.date), CommonDataKinds.Event.TYPE_ANNIVERSARY) events.add(event) } - ezContact.anniversaries.forEach { - val event = Event(formatDateToDayCode(it.date), CommonDataKinds.Event.TYPE_ANNIVERSARY) + ezContact.birthdays.forEach { + val event = Event(formatDateToDayCode(it.date), CommonDataKinds.Event.TYPE_BIRTHDAY) events.add(event) } diff --git a/app/src/main/res/layout/item_view_event.xml b/app/src/main/res/layout/item_view_event.xml new file mode 100644 index 00000000..002f5cf4 --- /dev/null +++ b/app/src/main/res/layout/item_view_event.xml @@ -0,0 +1,35 @@ + + + + + + + +