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 998a7f80..1a63a6bf 100644
--- a/app/src/main/kotlin/com/simplemobiletools/contacts/activities/ContactActivity.kt
+++ b/app/src/main/kotlin/com/simplemobiletools/contacts/activities/ContactActivity.kt
@@ -154,15 +154,15 @@ abstract class ContactActivity : SimpleActivity() {
else -> R.string.other
}
- fun getEventTextId(type: Int) = when (type) {
- ContactsContract.CommonDataKinds.Event.TYPE_BIRTHDAY -> R.string.birthday
- ContactsContract.CommonDataKinds.Event.TYPE_ANNIVERSARY -> R.string.anniversary
- else -> R.string.other
- }
-
fun getAddressTextId(type: Int) = when (type) {
ContactsContract.CommonDataKinds.StructuredPostal.TYPE_HOME -> R.string.home
ContactsContract.CommonDataKinds.StructuredPostal.TYPE_WORK -> R.string.work
else -> R.string.other
}
+
+ fun getEventTextId(type: Int) = when (type) {
+ ContactsContract.CommonDataKinds.Event.TYPE_BIRTHDAY -> R.string.birthday
+ ContactsContract.CommonDataKinds.Event.TYPE_ANNIVERSARY -> R.string.anniversary
+ else -> R.string.other
+ }
}
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 06d90f0e..8b109b16 100644
--- a/app/src/main/kotlin/com/simplemobiletools/contacts/activities/EditContactActivity.kt
+++ b/app/src/main/kotlin/com/simplemobiletools/contacts/activities/EditContactActivity.kt
@@ -35,6 +35,11 @@ import org.joda.time.format.DateTimeFormat
import java.util.*
class EditContactActivity : ContactActivity() {
+ val DEFAULT_EMAIL_TYPE = CommonDataKinds.Email.TYPE_HOME
+ val DEFAULT_PHONE_NUMBER_TYPE = CommonDataKinds.Phone.TYPE_MOBILE
+ val DEFAULT_ADDRESS_TYPE = CommonDataKinds.StructuredPostal.TYPE_HOME
+ val DEFAULT_EVENT_TYPE = CommonDataKinds.Event.TYPE_BIRTHDAY
+
private val INTENT_TAKE_PHOTO = 1
private val INTENT_CHOOSE_PHOTO = 2
private val INTENT_CROP_PHOTO = 3
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 61530bbc..87d712d2 100644
--- a/app/src/main/kotlin/com/simplemobiletools/contacts/activities/ViewContactActivity.kt
+++ b/app/src/main/kotlin/com/simplemobiletools/contacts/activities/ViewContactActivity.kt
@@ -6,17 +6,18 @@ import android.os.Bundle
import android.provider.ContactsContract
import android.view.Menu
import android.view.MenuItem
-import android.view.ViewGroup
import android.view.WindowManager
import android.widget.RelativeLayout
-import android.widget.TextView
import com.simplemobiletools.commons.extensions.*
import com.simplemobiletools.commons.helpers.PERMISSION_READ_CONTACTS
import com.simplemobiletools.contacts.R
import com.simplemobiletools.contacts.extensions.*
-import com.simplemobiletools.contacts.helpers.*
+import com.simplemobiletools.contacts.helpers.CONTACT_ID
+import com.simplemobiletools.contacts.helpers.ContactsHelper
+import com.simplemobiletools.contacts.helpers.IS_PRIVATE
import kotlinx.android.synthetic.main.activity_view_contact.*
import kotlinx.android.synthetic.main.item_event.view.*
+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_phone_number.view.*
@@ -89,9 +90,8 @@ class ViewContactActivity : ContactActivity() {
return
}
- setupEditContact()
+ setupViewContact()
- setupTypePickers()
contact_send_sms.beVisibleIf(contact!!.phoneNumbers.isNotEmpty())
contact_start_call.beVisibleIf(contact!!.phoneNumbers.isNotEmpty())
contact_send_email.beVisibleIf(contact!!.emails.isNotEmpty())
@@ -122,7 +122,7 @@ class ViewContactActivity : ContactActivity() {
invalidateOptionsMenu()
}
- private fun setupEditContact() {
+ private fun setupViewContact() {
window.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN)
contact!!.apply {
contact_first_name.text = firstName
@@ -150,6 +150,7 @@ class ViewContactActivity : ContactActivity() {
setupPhoneNumbers()
setupEmails()
+ setupAddresses()
setupEvents()
}
@@ -160,7 +161,7 @@ class ViewContactActivity : ContactActivity() {
layoutInflater.inflate(R.layout.item_view_phone_number, contact_numbers_holder, false).apply {
contact_numbers_holder.addView(this)
contact_number.text = it.value
- setupPhoneNumberTypePicker(contact_number_type, it.type)
+ contact_number_type.setText(getPhoneNumberTextId(it.type))
}
}
@@ -175,7 +176,7 @@ class ViewContactActivity : ContactActivity() {
layoutInflater.inflate(R.layout.item_view_email, contact_emails_holder, false).apply {
contact_emails_holder.addView(this)
contact_email.text = it.value
- setupEmailTypePicker(contact_email_type, it.type)
+ contact_email_type.setText(getEmailTextId(it.type))
}
}
@@ -183,6 +184,21 @@ class ViewContactActivity : ContactActivity() {
contact_emails_holder.beVisibleIf(emails.isNotEmpty())
}
+ private fun setupAddresses() {
+ contact_addresses_holder.removeAllViews()
+ val addresses = contact!!.addresses
+ addresses.forEach {
+ layoutInflater.inflate(R.layout.item_view_address, contact_addresses_holder, false).apply {
+ contact_addresses_holder.addView(this)
+ contact_address.text = it.value
+ contact_address_type.setText(getAddressTextId(it.type))
+ }
+ }
+
+ contact_address_image.beVisibleIf(addresses.isNotEmpty())
+ contact_addresses_holder.beVisibleIf(addresses.isNotEmpty())
+ }
+
private fun setupEvents() {
contact_events_holder.removeAllViews()
val events = contact!!.events
@@ -191,7 +207,7 @@ class ViewContactActivity : ContactActivity() {
contact_events_holder.addView(this)
contact_event.alpha = 1f
getDateTime(it.value, contact_event)
- setupEventTypePicker(this as ViewGroup, it.type)
+ contact_event_type.setText(getEventTextId(it.type))
contact_event_remove.beGone()
}
}
@@ -200,40 +216,5 @@ class ViewContactActivity : ContactActivity() {
contact_events_holder.beVisibleIf(events.isNotEmpty())
}
- private fun setupTypePickers() {
- if (contact!!.phoneNumbers.isEmpty()) {
- val numberHolder = contact_numbers_holder.getChildAt(0)
- (numberHolder as? ViewGroup)?.contact_number_type?.apply {
- setupPhoneNumberTypePicker(this)
- }
- }
-
- if (contact!!.emails.isEmpty()) {
- val emailHolder = contact_emails_holder.getChildAt(0)
- (emailHolder as? ViewGroup)?.contact_email_type?.apply {
- setupEmailTypePicker(this)
- }
- }
-
- if (contact!!.events.isEmpty()) {
- val eventHolder = contact_events_holder.getChildAt(0)
- (eventHolder as? ViewGroup)?.apply {
- setupEventTypePicker(this)
- }
- }
- }
-
- private fun setupPhoneNumberTypePicker(numberTypeField: TextView, type: Int = DEFAULT_PHONE_NUMBER_TYPE) {
- numberTypeField.setText(getPhoneNumberTextId(type))
- }
-
- private fun setupEmailTypePicker(emailTypeField: TextView, type: Int = DEFAULT_EMAIL_TYPE) {
- emailTypeField.setText(getEmailTextId(type))
- }
-
- private fun setupEventTypePicker(eventHolder: ViewGroup, type: Int = DEFAULT_EVENT_TYPE) {
- eventHolder.contact_event_type.setText(getEventTextId(type))
- }
-
private fun getStarDrawable(on: Boolean) = resources.getDrawable(if (on) R.drawable.ic_star_on_big else R.drawable.ic_star_off_big)
}
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 be179078..324d9156 100644
--- a/app/src/main/kotlin/com/simplemobiletools/contacts/helpers/Constants.kt
+++ b/app/src/main/kotlin/com/simplemobiletools/contacts/helpers/Constants.kt
@@ -1,7 +1,5 @@
package com.simplemobiletools.contacts.helpers
-import android.provider.ContactsContract.CommonDataKinds
-
// shared prefs
const val SHOW_CONTACT_THUMBNAILS = "show_contact_thumbnails"
const val SHOW_PHONE_NUMBERS = "show_phone_numbers"
@@ -23,11 +21,6 @@ const val PHOTO_REMOVED = 2
const val PHOTO_CHANGED = 3
const val PHOTO_UNCHANGED = 4
-// default contact values
-const val DEFAULT_EMAIL_TYPE = CommonDataKinds.Email.TYPE_HOME
-const val DEFAULT_PHONE_NUMBER_TYPE = CommonDataKinds.Phone.TYPE_MOBILE
-const val DEFAULT_EVENT_TYPE = CommonDataKinds.Event.TYPE_BIRTHDAY
-
// export/import
const val BEGIN_VCARD = "BEGIN:VCARD"
const val END_VCARD = "END:VCARD"
diff --git a/app/src/main/res/layout/activity_view_contact.xml b/app/src/main/res/layout/activity_view_contact.xml
index 457aea55..6877f11a 100644
--- a/app/src/main/res/layout/activity_view_contact.xml
+++ b/app/src/main/res/layout/activity_view_contact.xml
@@ -176,6 +176,26 @@
android:orientation="vertical"
android:paddingLeft="@dimen/small_margin"/>
+
+
+
+
diff --git a/app/src/main/res/layout/item_view_address.xml b/app/src/main/res/layout/item_view_address.xml
new file mode 100644
index 00000000..fce8cbf1
--- /dev/null
+++ b/app/src/main/res/layout/item_view_address.xml
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/layout/item_view_email.xml b/app/src/main/res/layout/item_view_email.xml
index 8c4a2401..9de6e320 100644
--- a/app/src/main/res/layout/item_view_email.xml
+++ b/app/src/main/res/layout/item_view_email.xml
@@ -28,7 +28,6 @@
android:layout_alignParentRight="true"
android:layout_alignTop="@+id/contact_email"
android:layout_centerVertical="true"
- android:background="?attr/selectableItemBackground"
android:gravity="center"
android:paddingLeft="@dimen/medium_margin"
android:paddingRight="@dimen/medium_margin"
diff --git a/app/src/main/res/layout/item_view_phone_number.xml b/app/src/main/res/layout/item_view_phone_number.xml
index 8fca1a77..d37bf04e 100644
--- a/app/src/main/res/layout/item_view_phone_number.xml
+++ b/app/src/main/res/layout/item_view_phone_number.xml
@@ -28,7 +28,6 @@
android:layout_alignParentRight="true"
android:layout_alignTop="@+id/contact_number"
android:layout_centerVertical="true"
- android:background="?attr/selectableItemBackground"
android:gravity="center"
android:paddingLeft="@dimen/medium_margin"
android:paddingRight="@dimen/medium_margin"