From 74064e57d5f01ca02f28ef679ab67728ca801335 Mon Sep 17 00:00:00 2001 From: tibbi Date: Thu, 28 Dec 2017 12:49:49 +0100 Subject: [PATCH] add a button for removing contact events --- app/build.gradle | 2 +- .../contacts/activities/ContactActivity.kt | 64 +++++++++++++++---- app/src/main/res/layout/item_event.xml | 21 +++++- 3 files changed, 70 insertions(+), 17 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 4c5b368b..44f2954f 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -36,7 +36,7 @@ ext { } dependencies { - implementation 'com.simplemobiletools:commons:3.4.13' + implementation 'com.simplemobiletools:commons:3.4.14' implementation 'joda-time:joda-time:2.9.9' debugImplementation "com.squareup.leakcanary:leakcanary-android:$leakCanaryVersion" diff --git a/app/src/main/kotlin/com/simplemobiletools/contacts/activities/ContactActivity.kt b/app/src/main/kotlin/com/simplemobiletools/contacts/activities/ContactActivity.kt index 901dfef5..a156e90b 100644 --- a/app/src/main/kotlin/com/simplemobiletools/contacts/activities/ContactActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/contacts/activities/ContactActivity.kt @@ -14,6 +14,7 @@ import android.view.Menu import android.view.MenuItem import android.view.ViewGroup import android.view.WindowManager +import android.widget.ImageView import android.widget.TextView import com.bumptech.glide.Glide import com.bumptech.glide.load.DataSource @@ -132,11 +133,13 @@ class ContactActivity : SimpleActivity() { contact_email_image.applyColorFilter(textColor) contact_event_image.applyColorFilter(textColor) contact_source_image.applyColorFilter(textColor) - contact_number_add_new.applyColorFilter(getAdjustedPrimaryColor()) + + val adjustedPrimaryColor = getAdjustedPrimaryColor() + contact_number_add_new.applyColorFilter(adjustedPrimaryColor) contact_number_add_new.background.applyColorFilter(textColor) - contact_email_add_new.applyColorFilter(getAdjustedPrimaryColor()) + contact_email_add_new.applyColorFilter(adjustedPrimaryColor) contact_email_add_new.background.applyColorFilter(textColor) - contact_event_add_new.applyColorFilter(getAdjustedPrimaryColor()) + contact_event_add_new.applyColorFilter(adjustedPrimaryColor) contact_event_add_new.background.applyColorFilter(textColor) contact_photo.setOnClickListener { trySetPhoto() } @@ -239,10 +242,22 @@ class ContactActivity : SimpleActivity() { } (eventHolder as? ViewGroup)?.apply { - getDateTime(event.value, contact_event) - contact_event.tag = event.value - contact_event.alpha = 1f - setupEventTypePicker(contact_event_type, contact_event, event.type) + val contactEvent = contact_event.apply { + getDateTime(event.value, this) + tag = event.value + alpha = 1f + } + + setupEventTypePicker(this, event.type) + + contact_event_remove.apply { + beVisible() + applyColorFilter(getAdjustedPrimaryColor()) + background.applyColorFilter(config.textColor) + setOnClickListener { + resetContactEvent(contactEvent, this) + } + } } } } @@ -304,7 +319,7 @@ class ContactActivity : SimpleActivity() { if (contact!!.events.isEmpty()) { val eventHolder = contact_events_holder.getChildAt(0) (eventHolder as? ViewGroup)?.apply { - setupEventTypePicker(contact_event_type, contact_event) + setupEventTypePicker(this) } } } @@ -327,26 +342,47 @@ class ContactActivity : SimpleActivity() { } } - private fun setupEventTypePicker(eventTypeField: TextView, eventField: TextView, type: Int = DEFAULT_EVENT_TYPE) { - eventTypeField.apply { + private fun setupEventTypePicker(eventHolder: ViewGroup, type: Int = DEFAULT_EVENT_TYPE) { + eventHolder.contact_event_type.apply { setText(getEventTextId(type)) setOnClickListener { showEventTypePicker(it as TextView) } } + val eventField = eventHolder.contact_event eventField.setOnClickListener { val setDateListener = DatePickerDialog.OnDateSetListener { view, year, monthOfYear, dayOfMonth -> + eventHolder.contact_event_remove.beVisible() val date = DateTime().withDate(year, monthOfYear + 1, dayOfMonth).withTimeAtStartOfDay() val formatted = date.toString(DateTimeFormat.mediumDate()) - eventField.text = formatted - eventField.tag = date.toString("yyyy-MM-dd") - eventField.alpha = 1f + eventField.apply { + text = formatted + tag = date.toString("yyyy-MM-dd") + alpha = 1f + } } val date = getDateTime(eventField.tag?.toString() ?: "") DatePickerDialog(this, getDialogTheme(), setDateListener, date.year, date.monthOfYear - 1, date.dayOfMonth).show() } + + eventHolder.contact_event_remove.apply { + applyColorFilter(getAdjustedPrimaryColor()) + background.applyColorFilter(config.textColor) + setOnClickListener { + resetContactEvent(eventField, this@apply) + } + } + } + + private fun resetContactEvent(contactEvent: TextView, removeContactEventButton: ImageView) { + contactEvent.apply { + text = getString(R.string.unknown) + tag = "" + alpha = 0.5f + } + removeContactEventButton.beGone() } private fun getDateTime(dateString: String, viewToUpdate: TextView? = null): DateTime { @@ -551,7 +587,7 @@ class ContactActivity : SimpleActivity() { private fun addNewEventField() { layoutInflater.inflate(R.layout.item_event, contact_events_holder, false).apply { updateTextColors(this as ViewGroup) - setupEventTypePicker(contact_event_type, contact_event) + setupEventTypePicker(this) contact_events_holder.addView(this) } } diff --git a/app/src/main/res/layout/item_event.xml b/app/src/main/res/layout/item_event.xml index c8e1d628..542ff42d 100644 --- a/app/src/main/res/layout/item_event.xml +++ b/app/src/main/res/layout/item_event.xml @@ -10,8 +10,8 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_centerVertical="true" - android:layout_toLeftOf="@+id/contact_event_type" - android:layout_toStartOf="@+id/contact_event_type" + android:layout_toLeftOf="@+id/contact_event_remove" + android:layout_toStartOf="@+id/contact_event_remove" android:alpha="0.5" android:background="?attr/selectableItemBackground" android:paddingBottom="@dimen/normal_margin" @@ -21,6 +21,23 @@ android:text="@string/unknown" android:textSize="@dimen/bigger_text_size"/> + +