diff --git a/app/build.gradle b/app/build.gradle index d80ce8a1..d2163fc4 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -41,7 +41,7 @@ ext { } dependencies { - implementation 'com.simplemobiletools:commons:3.5.4' + implementation 'com.simplemobiletools:commons:3.5.5' 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 0cec7881..53f3e488 100644 --- a/app/src/main/kotlin/com/simplemobiletools/contacts/activities/ContactActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/contacts/activities/ContactActivity.kt @@ -40,6 +40,7 @@ import com.simplemobiletools.contacts.models.Email import com.simplemobiletools.contacts.models.Event import com.simplemobiletools.contacts.models.PhoneNumber import kotlinx.android.synthetic.main.activity_contact.* +import kotlinx.android.synthetic.main.activity_contact.view.* import kotlinx.android.synthetic.main.item_email.view.* import kotlinx.android.synthetic.main.item_event.view.* import kotlinx.android.synthetic.main.item_phone_number.view.* @@ -165,6 +166,7 @@ class ContactActivity : SimpleActivity() { contact_event_add_new.applyColorFilter(adjustedPrimaryColor) contact_event_add_new.background.applyColorFilter(textColor) + contact_toggle_favorite.setOnClickListener { toggleFavorite() } contact_photo.setOnClickListener { trySetPhoto() } contact_send_sms.setOnClickListener { trySendSMS() } contact_start_call.setOnClickListener { tryStartCall(contact!!) } @@ -231,6 +233,12 @@ class ContactActivity : SimpleActivity() { contact_surname.setText(contact!!.surname) contact_source.text = contact!!.source + contact_toggle_favorite.apply { + setImageDrawable(getStarDrawable(contact!!.starred == 1)) + tag = contact!!.starred + applyColorFilter(config.textColor) + } + setupPhoneNumbers() setupEmails() setupEvents() @@ -301,6 +309,11 @@ class ContactActivity : SimpleActivity() { contact = Contact(0, "", "", "", "", ArrayList(), ArrayList(), ArrayList(), "", 0) contact_source.text = config.lastUsedContactSource contact_source.setOnClickListener { showAccountSourcePicker() } + + contact_toggle_favorite.apply { + tag = 0 + applyColorFilter(config.textColor) + } } private fun showPhotoPlaceholder() { @@ -504,6 +517,7 @@ class ContactActivity : SimpleActivity() { emails = getFilledEmails() events = getFilledEvents() source = contact_source.value + starred = if (isContactStarred()) 1 else 0 Thread { config.lastUsedContactSource = source @@ -653,6 +667,22 @@ class ContactActivity : SimpleActivity() { } } + private fun toggleFavorite() { + val isStarred = isContactStarred() + contact_toggle_favorite.apply { + setImageDrawable(getStarDrawable(!isStarred)) + tag = if (isStarred) 0 else 1 + applyColorFilter(config.textColor) + } + } + + private fun isContactStarred() = contact_toggle_favorite.tag == 1 + + private fun getStarDrawable(on: Boolean): Drawable { + val newDrawable = resources.getDrawable(if (on) R.drawable.ic_star_on else R.drawable.ic_star_off) + return newDrawable + } + private fun trySetPhoto() { val items = arrayListOf( RadioItem(TAKE_PHOTO, getString(R.string.take_photo)), diff --git a/app/src/main/res/layout/activity_contact.xml b/app/src/main/res/layout/activity_contact.xml index 764cbaec..00b4d0c4 100644 --- a/app/src/main/res/layout/activity_contact.xml +++ b/app/src/main/res/layout/activity_contact.xml @@ -17,6 +17,19 @@ android:layout_width="@dimen/contact_photo_size" android:layout_height="@dimen/contact_photo_size"/> + + 80dp - 50dp + 45dp 40dp