From ce46912f9dbdfc077368ae1ed68c1195a88bf484 Mon Sep 17 00:00:00 2001 From: Phoenix1747 Date: Mon, 29 Jan 2018 08:34:11 +0100 Subject: [PATCH 01/24] Update strings.xml --- app/src/main/res/values-de/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index 2869c5d4..ad711268 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -23,7 +23,7 @@ Kontakt bei Klick anrufen Namen mit Nachnamen beginnen Zeige Telefonnummern im Hauptmenü - Show contact thumbnails + Zeige Vorschaubilder für Kontakte Email From fac521babd88d5ccc09eb1eeba512a1f04c3d7a3 Mon Sep 17 00:00:00 2001 From: tibbi Date: Mon, 29 Jan 2018 16:30:51 +0100 Subject: [PATCH 02/24] update commons to 3.9.4 --- app/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/build.gradle b/app/build.gradle index 9caf6647..39c3247a 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -42,7 +42,7 @@ ext { } dependencies { - implementation 'com.simplemobiletools:commons:3.8.2' + implementation 'com.simplemobiletools:commons:3.9.4' implementation 'joda-time:joda-time:2.9.9' debugImplementation "com.squareup.leakcanary:leakcanary-android:$leakCanaryVersion" From 7bf74e9e70730ccbe910e8c9fa671c3c5e039540 Mon Sep 17 00:00:00 2001 From: tibbi Date: Mon, 29 Jan 2018 16:44:36 +0100 Subject: [PATCH 03/24] properly refresh contacts when thumbnail visibility changes --- .../contacts/activities/MainActivity.kt | 9 +++++---- .../contacts/fragments/MyViewPagerFragment.kt | 10 +++++++++- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/app/src/main/kotlin/com/simplemobiletools/contacts/activities/MainActivity.kt b/app/src/main/kotlin/com/simplemobiletools/contacts/activities/MainActivity.kt index 1ee745cb..ad7bb649 100644 --- a/app/src/main/kotlin/com/simplemobiletools/contacts/activities/MainActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/contacts/activities/MainActivity.kt @@ -77,14 +77,15 @@ class MainActivity : SimpleActivity(), RefreshContactsListener { return } - if (storedShowContactThumbnails != config.showContactThumbnails) { + if (storedShowPhoneNumbers != config.showPhoneNumbers) { restartActivity() return } - if (storedShowPhoneNumbers != config.showPhoneNumbers) { - restartActivity() - return + val configShowContactThumbnails = config.showContactThumbnails + if (storedShowContactThumbnails != configShowContactThumbnails) { + contacts_fragment.showContactThumbnailsChanged(configShowContactThumbnails) + favorites_fragment.showContactThumbnailsChanged(configShowContactThumbnails) } val configTextColor = config.textColor diff --git a/app/src/main/kotlin/com/simplemobiletools/contacts/fragments/MyViewPagerFragment.kt b/app/src/main/kotlin/com/simplemobiletools/contacts/fragments/MyViewPagerFragment.kt index 150cfd3e..1feb7b88 100644 --- a/app/src/main/kotlin/com/simplemobiletools/contacts/fragments/MyViewPagerFragment.kt +++ b/app/src/main/kotlin/com/simplemobiletools/contacts/fragments/MyViewPagerFragment.kt @@ -24,7 +24,7 @@ abstract class MyViewPagerFragment(context: Context, attributeSet: AttributeSet) protected var activity: MainActivity? = null private var lastHashCode = 0 private var contactsIgnoringSearch = ArrayList() - lateinit private var config: Config + private lateinit var config: Config var forceListRedraw = false @@ -144,11 +144,19 @@ abstract class MyViewPagerFragment(context: Context, attributeSet: AttributeSet) (currAdapter as ContactsAdapter).apply { startNameWithSurname = config.startNameWithSurname showPhoneNumbers = config.showPhoneNumbers + showContactThumbnails = config.showContactThumbnails updateItems(contacts) } } } + fun showContactThumbnailsChanged(showThumbnails: Boolean) { + (fragment_list.adapter as? ContactsAdapter)?.apply { + showContactThumbnails = showThumbnails + notifyDataSetChanged() + } + } + fun onActivityResume() { updateViewStuff() } From c72a3cd604942431718233c2e84d6d43649b9236 Mon Sep 17 00:00:00 2001 From: tibbi Date: Mon, 29 Jan 2018 17:42:24 +0100 Subject: [PATCH 04/24] make sure the contact list items have proper height even without thumbnail --- .../simplemobiletools/contacts/adapters/ContactsAdapter.kt | 4 ++++ app/src/main/res/layout/item_contact_with_number.xml | 3 ++- app/src/main/res/layout/item_contact_without_number.xml | 4 +--- app/src/main/res/values/dimens.xml | 1 + 4 files changed, 8 insertions(+), 4 deletions(-) diff --git a/app/src/main/kotlin/com/simplemobiletools/contacts/adapters/ContactsAdapter.kt b/app/src/main/kotlin/com/simplemobiletools/contacts/adapters/ContactsAdapter.kt index 2d4d265c..178ace72 100644 --- a/app/src/main/kotlin/com/simplemobiletools/contacts/adapters/ContactsAdapter.kt +++ b/app/src/main/kotlin/com/simplemobiletools/contacts/adapters/ContactsAdapter.kt @@ -36,6 +36,8 @@ class ContactsAdapter(activity: SimpleActivity, var contactItems: MutableList 80dp 45dp 40dp + 48dp From 8317a267b49b6a04346ce70c497e6bd6d7034eb1 Mon Sep 17 00:00:00 2001 From: tibbi Date: Mon, 29 Jan 2018 18:34:48 +0100 Subject: [PATCH 05/24] return empty contact source type for empty account names --- .../com/simplemobiletools/contacts/helpers/ContactsHelper.kt | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/app/src/main/kotlin/com/simplemobiletools/contacts/helpers/ContactsHelper.kt b/app/src/main/kotlin/com/simplemobiletools/contacts/helpers/ContactsHelper.kt index 6827551e..be32e742 100644 --- a/app/src/main/kotlin/com/simplemobiletools/contacts/helpers/ContactsHelper.kt +++ b/app/src/main/kotlin/com/simplemobiletools/contacts/helpers/ContactsHelper.kt @@ -253,6 +253,10 @@ class ContactsHelper(val activity: BaseSimpleActivity) { } private fun getContactSourceType(accountName: String): String { + if (accountName.isEmpty()) { + return "" + } + val uri = ContactsContract.RawContacts.CONTENT_URI val projection = arrayOf(ContactsContract.RawContacts.ACCOUNT_TYPE) val selection = "${ContactsContract.RawContacts.ACCOUNT_NAME} = ?" From b617676c341df701c163a8396dcf26ea72a179c5 Mon Sep 17 00:00:00 2001 From: tibbi Date: Mon, 29 Jan 2018 18:41:03 +0100 Subject: [PATCH 06/24] update kotlin to 1.2.21 --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index 97726280..a3b736f3 100644 --- a/build.gradle +++ b/build.gradle @@ -1,7 +1,7 @@ // Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { - ext.kotlin_version = '1.2.20' + ext.kotlin_version = '1.2.21' repositories { google() From 197eb7b60c07599402ad54b4ff0394c5ca70567a Mon Sep 17 00:00:00 2001 From: tibbi Date: Mon, 29 Jan 2018 18:52:05 +0100 Subject: [PATCH 07/24] report all exceptions thrown during exporting contacts --- .../contacts/extensions/Context.kt | 1 + .../contacts/helpers/VcfExporter.kt | 99 ++++++++++--------- 2 files changed, 53 insertions(+), 47 deletions(-) diff --git a/app/src/main/kotlin/com/simplemobiletools/contacts/extensions/Context.kt b/app/src/main/kotlin/com/simplemobiletools/contacts/extensions/Context.kt index c8e5c5bd..9ebb5677 100644 --- a/app/src/main/kotlin/com/simplemobiletools/contacts/extensions/Context.kt +++ b/app/src/main/kotlin/com/simplemobiletools/contacts/extensions/Context.kt @@ -69,6 +69,7 @@ fun Context.getContactUriRawId(uri: Uri): Int { if (cursor.moveToFirst()) { return cursor.getIntValue(ContactsContract.Contacts.NAME_RAW_CONTACT_ID) } + } catch (ignored: Exception) { } finally { cursor?.close() } diff --git a/app/src/main/kotlin/com/simplemobiletools/contacts/helpers/VcfExporter.kt b/app/src/main/kotlin/com/simplemobiletools/contacts/helpers/VcfExporter.kt index b45bd0af..6bf5d141 100644 --- a/app/src/main/kotlin/com/simplemobiletools/contacts/helpers/VcfExporter.kt +++ b/app/src/main/kotlin/com/simplemobiletools/contacts/helpers/VcfExporter.kt @@ -7,6 +7,7 @@ import android.provider.MediaStore import android.util.Base64 import com.simplemobiletools.commons.activities.BaseSimpleActivity import com.simplemobiletools.commons.extensions.getFileOutputStream +import com.simplemobiletools.commons.extensions.showErrorToast import com.simplemobiletools.commons.extensions.writeLn import com.simplemobiletools.contacts.helpers.VcfExporter.ExportResult.* import com.simplemobiletools.contacts.models.Contact @@ -24,59 +25,63 @@ class VcfExporter { private var contactsFailed = 0 fun exportContacts(activity: BaseSimpleActivity, file: File, contacts: ArrayList, callback: (result: ExportResult) -> Unit) { - activity.getFileOutputStream(file) { - if (it == null) { - callback(EXPORT_FAIL) - return@getFileOutputStream - } + try { + activity.getFileOutputStream(file) { + if (it == null) { + callback(EXPORT_FAIL) + return@getFileOutputStream + } - it.bufferedWriter().use { out -> - for (contact in contacts) { - out.writeLn(BEGIN_VCARD) - out.writeLn(VERSION_2_1) - out.writeLn("$N${contact.surname};${contact.firstName};${contact.middleName};;") + it.bufferedWriter().use { out -> + for (contact in contacts) { + out.writeLn(BEGIN_VCARD) + out.writeLn(VERSION_2_1) + out.writeLn("$N${contact.surname};${contact.firstName};${contact.middleName};;") - contact.phoneNumbers.forEach { - out.writeLn("$TEL;${getPhoneNumberLabel(it.type)}:${it.value}") - } - - contact.emails.forEach { - val type = getEmailTypeLabel(it.type) - val delimiterType = if (type.isEmpty()) "" else ";$type" - out.writeLn("$EMAIL$delimiterType:${it.value}") - } - - contact.events.forEach { - if (it.type == CommonDataKinds.Event.TYPE_BIRTHDAY) { - out.writeLn("$BDAY${it.value}") + contact.phoneNumbers.forEach { + out.writeLn("$TEL;${getPhoneNumberLabel(it.type)}:${it.value}") } + + contact.emails.forEach { + val type = getEmailTypeLabel(it.type) + val delimiterType = if (type.isEmpty()) "" else ";$type" + out.writeLn("$EMAIL$delimiterType:${it.value}") + } + + contact.events.forEach { + if (it.type == CommonDataKinds.Event.TYPE_BIRTHDAY) { + out.writeLn("$BDAY${it.value}") + } + } + + if (contact.thumbnailUri.isNotEmpty()) { + val firstLine = "$PHOTO;$ENCODING=$BASE64;$JPEG:" + val bitmap = MediaStore.Images.Media.getBitmap(activity.contentResolver, Uri.parse(contact.thumbnailUri)) + val byteArrayOutputStream = ByteArrayOutputStream() + bitmap.compress(Bitmap.CompressFormat.JPEG, 85, byteArrayOutputStream) + bitmap.recycle() + val byteArray = byteArrayOutputStream.toByteArray() + val encoded = Base64.encodeToString(byteArray, Base64.NO_WRAP) + + val encodedFirstLineSection = encoded.substring(0, ENCODED_PHOTO_LINE_LENGTH - firstLine.length) + out.writeLn(firstLine + encodedFirstLineSection) + var curStartIndex = encodedFirstLineSection.length + do { + val part = encoded.substring(curStartIndex, Math.min(curStartIndex + ENCODED_PHOTO_LINE_LENGTH - 1, encoded.length)) + out.writeLn(" $part") + curStartIndex += ENCODED_PHOTO_LINE_LENGTH - 1 + } while (curStartIndex < encoded.length) + + out.writeLn("") + } + + out.writeLn(END_VCARD) + contactsExported++ } - - if (contact.thumbnailUri.isNotEmpty()) { - val firstLine = "$PHOTO;$ENCODING=$BASE64;$JPEG:" - val bitmap = MediaStore.Images.Media.getBitmap(activity.contentResolver, Uri.parse(contact.thumbnailUri)) - val byteArrayOutputStream = ByteArrayOutputStream() - bitmap.compress(Bitmap.CompressFormat.JPEG, 85, byteArrayOutputStream) - bitmap.recycle() - val byteArray = byteArrayOutputStream.toByteArray() - val encoded = Base64.encodeToString(byteArray, Base64.NO_WRAP) - - val encodedFirstLineSection = encoded.substring(0, ENCODED_PHOTO_LINE_LENGTH - firstLine.length) - out.writeLn(firstLine + encodedFirstLineSection) - var curStartIndex = encodedFirstLineSection.length - do { - val part = encoded.substring(curStartIndex, Math.min(curStartIndex + ENCODED_PHOTO_LINE_LENGTH - 1, encoded.length)) - out.writeLn(" $part") - curStartIndex += ENCODED_PHOTO_LINE_LENGTH - 1 - } while (curStartIndex < encoded.length) - - out.writeLn("") - } - - out.writeLn(END_VCARD) - contactsExported++ } } + } catch (e: Exception) { + activity.showErrorToast(e) } callback(when { From 7063b9ffd23a4d306908f52a75b5042b4aaac3b1 Mon Sep 17 00:00:00 2001 From: tibbi Date: Mon, 29 Jan 2018 18:53:35 +0100 Subject: [PATCH 08/24] avoid recycling contact images if the activity is destroyed --- .../contacts/adapters/SelectContactsAdapter.kt | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/app/src/main/kotlin/com/simplemobiletools/contacts/adapters/SelectContactsAdapter.kt b/app/src/main/kotlin/com/simplemobiletools/contacts/adapters/SelectContactsAdapter.kt index f3ec600a..0441f3ae 100644 --- a/app/src/main/kotlin/com/simplemobiletools/contacts/adapters/SelectContactsAdapter.kt +++ b/app/src/main/kotlin/com/simplemobiletools/contacts/adapters/SelectContactsAdapter.kt @@ -13,6 +13,7 @@ import com.bumptech.glide.signature.ObjectKey import com.simplemobiletools.commons.extensions.beVisibleIf import com.simplemobiletools.commons.extensions.getAdjustedPrimaryColor import com.simplemobiletools.commons.extensions.getColoredDrawableWithColor +import com.simplemobiletools.commons.extensions.isActivityDestroyed import com.simplemobiletools.commons.interfaces.MyAdapterListener import com.simplemobiletools.contacts.R import com.simplemobiletools.contacts.activities.SimpleActivity @@ -124,6 +125,8 @@ class SelectContactsAdapter(val activity: SimpleActivity, val contacts: List Date: Mon, 29 Jan 2018 19:14:54 +0100 Subject: [PATCH 09/24] hide the thumbnail at Favorite selector when appropriate --- .../contacts/adapters/ContactsAdapter.kt | 13 ++++--- .../adapters/SelectContactsAdapter.kt | 34 +++++++++++++------ .../layout/item_add_favorite_with_number.xml | 9 ++--- .../item_add_favorite_without_number.xml | 11 ++---- .../res/layout/item_contact_with_number.xml | 3 -- .../layout/item_contact_without_number.xml | 2 -- 6 files changed, 36 insertions(+), 36 deletions(-) diff --git a/app/src/main/kotlin/com/simplemobiletools/contacts/adapters/ContactsAdapter.kt b/app/src/main/kotlin/com/simplemobiletools/contacts/adapters/ContactsAdapter.kt index 178ace72..e2514ef6 100644 --- a/app/src/main/kotlin/com/simplemobiletools/contacts/adapters/ContactsAdapter.kt +++ b/app/src/main/kotlin/com/simplemobiletools/contacts/adapters/ContactsAdapter.kt @@ -31,13 +31,14 @@ class ContactsAdapter(activity: SimpleActivity, var contactItems: MutableList Unit) : MyRecyclerViewAdapter(activity, recyclerView, fastScroller, itemClick) { - lateinit private var contactDrawable: Drawable + private lateinit var contactDrawable: Drawable var config = activity.config var startNameWithSurname: Boolean var showContactThumbnails: Boolean var showPhoneNumbers: Boolean - var smallPadding = activity.resources.getDimension(R.dimen.small_margin).toInt() - var bigPadding = activity.resources.getDimension(R.dimen.normal_margin).toInt() + + private var smallPadding = activity.resources.getDimension(R.dimen.small_margin).toInt() + private var bigPadding = activity.resources.getDimension(R.dimen.normal_margin).toInt() init { initDrawables() @@ -192,10 +193,12 @@ class ContactsAdapter(activity: SimpleActivity, var contactItems: MutableList if (selectedContacts.contains(contact.id.toString())) { @@ -76,7 +80,7 @@ class SelectContactsAdapter(val activity: SimpleActivity, val contacts: List Unit)?) : RecyclerView.ViewHolder(view) { - fun bindView(contact: Contact, startNameWithSurname: Boolean, contactDrawable: Drawable, config: Config): View { + fun bindView(contact: Contact, startNameWithSurname: Boolean, contactDrawable: Drawable, config: Config, showContactThumbnails: Boolean, + smallPadding: Int, bigPadding: Int): View { itemView.apply { contact_checkbox.beVisibleIf(showCheckbox) contact_checkbox.setColors(config.textColor, context.getAdjustedPrimaryColor(), config.backgroundColor) @@ -92,8 +97,12 @@ class SelectContactsAdapter(val activity: SimpleActivity, val contacts: List diff --git a/app/src/main/res/layout/item_add_favorite_without_number.xml b/app/src/main/res/layout/item_add_favorite_without_number.xml index cc142472..ef21a1f7 100644 --- a/app/src/main/res/layout/item_add_favorite_without_number.xml +++ b/app/src/main/res/layout/item_add_favorite_without_number.xml @@ -25,27 +25,20 @@ diff --git a/app/src/main/res/layout/item_contact_with_number.xml b/app/src/main/res/layout/item_contact_with_number.xml index bce7b037..7f29b5ca 100644 --- a/app/src/main/res/layout/item_contact_with_number.xml +++ b/app/src/main/res/layout/item_contact_with_number.xml @@ -31,8 +31,6 @@ android:layout_toRightOf="@+id/contact_tmb" android:ellipsize="end" android:maxLines="1" - android:paddingLeft="@dimen/small_margin" - android:paddingTop="@dimen/small_margin" android:textSize="@dimen/normal_text_size" tools:text="John Doe"/> @@ -44,7 +42,6 @@ android:layout_below="@+id/contact_name" android:layout_toRightOf="@+id/contact_tmb" android:maxLines="1" - android:paddingLeft="@dimen/small_margin" android:textSize="@dimen/normal_text_size" tools:text="0123 456 789"/> diff --git a/app/src/main/res/layout/item_contact_without_number.xml b/app/src/main/res/layout/item_contact_without_number.xml index b87ca0a2..fc5eee9e 100644 --- a/app/src/main/res/layout/item_contact_without_number.xml +++ b/app/src/main/res/layout/item_contact_without_number.xml @@ -31,8 +31,6 @@ android:ellipsize="end" android:gravity="center_vertical" android:maxLines="1" - android:paddingLeft="@dimen/small_margin" - android:paddingTop="@dimen/small_margin" android:textSize="@dimen/bigger_text_size" tools:text="John Doe"/> From db019572a4433de78d7a83419c63be21a423ed21 Mon Sep 17 00:00:00 2001 From: tibbi Date: Mon, 29 Jan 2018 19:16:58 +0100 Subject: [PATCH 10/24] rename ContactActivity to EditContactActivity --- app/src/main/AndroidManifest.xml | 2 +- .../{ContactActivity.kt => EditContactActivity.kt} | 10 +++++----- .../simplemobiletools/contacts/extensions/Context.kt | 4 ++-- .../contacts/fragments/ContactsFragment.kt | 4 ++-- ...{activity_contact.xml => activity_edit_contact.xml} | 0 5 files changed, 10 insertions(+), 10 deletions(-) rename app/src/main/kotlin/com/simplemobiletools/contacts/activities/{ContactActivity.kt => EditContactActivity.kt} (98%) rename app/src/main/res/layout/{activity_contact.xml => activity_edit_contact.xml} (100%) diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 6175cbd1..eb13cd3a 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -75,7 +75,7 @@ android:parentActivityName=".activities.MainActivity"/> diff --git a/app/src/main/kotlin/com/simplemobiletools/contacts/activities/ContactActivity.kt b/app/src/main/kotlin/com/simplemobiletools/contacts/activities/EditContactActivity.kt similarity index 98% rename from app/src/main/kotlin/com/simplemobiletools/contacts/activities/ContactActivity.kt rename to app/src/main/kotlin/com/simplemobiletools/contacts/activities/EditContactActivity.kt index 29173d97..27e74a1d 100644 --- a/app/src/main/kotlin/com/simplemobiletools/contacts/activities/ContactActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/contacts/activities/EditContactActivity.kt @@ -38,7 +38,7 @@ import com.simplemobiletools.contacts.models.Contact 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_edit_contact.* 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.* @@ -48,7 +48,7 @@ import java.text.DateFormat import java.text.SimpleDateFormat import java.util.* -class ContactActivity : SimpleActivity() { +class EditContactActivity : SimpleActivity() { private val INTENT_TAKE_PHOTO = 1 private val INTENT_CHOOSE_PHOTO = 2 private val INTENT_CROP_PHOTO = 3 @@ -67,7 +67,7 @@ class ContactActivity : SimpleActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - setContentView(R.layout.activity_contact) + setContentView(R.layout.activity_edit_contact) supportActionBar?.setHomeAsUpIndicator(R.drawable.ic_cross) handlePermission(PERMISSION_READ_CONTACTS) { @@ -584,7 +584,7 @@ class ContactActivity : SimpleActivity() { private fun insertNewContact() { isSaving = true toast(R.string.inserting) - if (ContactsHelper(this@ContactActivity).insertContact(contact!!)) { + if (ContactsHelper(this@EditContactActivity).insertContact(contact!!)) { finish() } else { toast(R.string.unknown_error_occurred) @@ -593,7 +593,7 @@ class ContactActivity : SimpleActivity() { private fun updateContact(photoUpdateStatus: Int) { isSaving = true - if (ContactsHelper(this@ContactActivity).updateContact(contact!!, photoUpdateStatus)) { + if (ContactsHelper(this@EditContactActivity).updateContact(contact!!, photoUpdateStatus)) { finish() } else { toast(R.string.unknown_error_occurred) diff --git a/app/src/main/kotlin/com/simplemobiletools/contacts/extensions/Context.kt b/app/src/main/kotlin/com/simplemobiletools/contacts/extensions/Context.kt index 9ebb5677..86d978a5 100644 --- a/app/src/main/kotlin/com/simplemobiletools/contacts/extensions/Context.kt +++ b/app/src/main/kotlin/com/simplemobiletools/contacts/extensions/Context.kt @@ -13,7 +13,7 @@ import com.simplemobiletools.commons.extensions.getIntValue import com.simplemobiletools.commons.extensions.isLollipopPlus import com.simplemobiletools.commons.extensions.toast import com.simplemobiletools.contacts.BuildConfig -import com.simplemobiletools.contacts.activities.ContactActivity +import com.simplemobiletools.contacts.activities.EditContactActivity import com.simplemobiletools.contacts.helpers.CONTACT_ID import com.simplemobiletools.contacts.helpers.Config import com.simplemobiletools.contacts.models.Contact @@ -22,7 +22,7 @@ import java.io.File val Context.config: Config get() = Config.newInstance(applicationContext) fun Context.openContact(contact: Contact) { - Intent(applicationContext, ContactActivity::class.java).apply { + Intent(applicationContext, EditContactActivity::class.java).apply { putExtra(CONTACT_ID, contact.id) startActivity(this) } diff --git a/app/src/main/kotlin/com/simplemobiletools/contacts/fragments/ContactsFragment.kt b/app/src/main/kotlin/com/simplemobiletools/contacts/fragments/ContactsFragment.kt index 18df3607..b6afeed0 100644 --- a/app/src/main/kotlin/com/simplemobiletools/contacts/fragments/ContactsFragment.kt +++ b/app/src/main/kotlin/com/simplemobiletools/contacts/fragments/ContactsFragment.kt @@ -3,11 +3,11 @@ package com.simplemobiletools.contacts.fragments import android.content.Context import android.content.Intent import android.util.AttributeSet -import com.simplemobiletools.contacts.activities.ContactActivity +import com.simplemobiletools.contacts.activities.EditContactActivity class ContactsFragment(context: Context, attributeSet: AttributeSet) : MyViewPagerFragment(context, attributeSet) { override fun fabClicked() { - Intent(context, ContactActivity::class.java).apply { + Intent(context, EditContactActivity::class.java).apply { context.startActivity(this) } } diff --git a/app/src/main/res/layout/activity_contact.xml b/app/src/main/res/layout/activity_edit_contact.xml similarity index 100% rename from app/src/main/res/layout/activity_contact.xml rename to app/src/main/res/layout/activity_edit_contact.xml From 63e49032cc3f2336aa75fde99d94b7965bedf904 Mon Sep 17 00:00:00 2001 From: tibbi Date: Mon, 29 Jan 2018 20:06:46 +0100 Subject: [PATCH 11/24] add some new strings related to contact clicking --- app/src/main/res/values-de/strings.xml | 4 ++++ app/src/main/res/values-ko-rKR/strings.xml | 4 ++++ app/src/main/res/values-pt/strings.xml | 4 ++++ app/src/main/res/values-ru/strings.xml | 4 ++++ app/src/main/res/values-sk/strings.xml | 4 ++++ app/src/main/res/values-sv/strings.xml | 4 ++++ app/src/main/res/values/strings.xml | 4 ++++ 7 files changed, 28 insertions(+) diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index ad711268..11fc9225 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -24,6 +24,10 @@ Namen mit Nachnamen beginnen Zeige Telefonnummern im Hauptmenü Zeige Vorschaubilder für Kontakte + On contact click + Call contact + Open contact editor + View contact details Email diff --git a/app/src/main/res/values-ko-rKR/strings.xml b/app/src/main/res/values-ko-rKR/strings.xml index c59531a6..2a55c2b5 100644 --- a/app/src/main/res/values-ko-rKR/strings.xml +++ b/app/src/main/res/values-ko-rKR/strings.xml @@ -24,6 +24,10 @@ 성을 먼저 표시 메인 스크린에 전화번호 표시 Show contact thumbnails + On contact click + Call contact + Open contact editor + View contact details 이메일 diff --git a/app/src/main/res/values-pt/strings.xml b/app/src/main/res/values-pt/strings.xml index a79e127a..4ed8beca 100644 --- a/app/src/main/res/values-pt/strings.xml +++ b/app/src/main/res/values-pt/strings.xml @@ -24,6 +24,10 @@ Start name with surname Show phone numbers on the main screen Show contact thumbnails + On contact click + Call contact + Open contact editor + View contact details E-mail diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index 78dab7be..7943ebc5 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -24,6 +24,10 @@ Показывать сначала фамилию Показывать номера телефонов на главном экране Показывать фото контакта + On contact click + Call contact + Open contact editor + View contact details Эл. почта diff --git a/app/src/main/res/values-sk/strings.xml b/app/src/main/res/values-sk/strings.xml index aa9203c8..493d4904 100644 --- a/app/src/main/res/values-sk/strings.xml +++ b/app/src/main/res/values-sk/strings.xml @@ -24,6 +24,10 @@ Začať meno priezviskom Zobraziť telefónne čísla na hlavnej obrazovke Zobraziť obrázky kontaktov + Po kliknutí na kontakt + Zavolať kontakt + Otvoriť editor kontaktov + Zobraziť údaje kontaktu Email diff --git a/app/src/main/res/values-sv/strings.xml b/app/src/main/res/values-sv/strings.xml index 3a2dff9e..57644238 100644 --- a/app/src/main/res/values-sv/strings.xml +++ b/app/src/main/res/values-sv/strings.xml @@ -24,6 +24,10 @@ Visa efternamn först Visa telefonnummer i huvudvyn Show contact thumbnails + On contact click + Call contact + Open contact editor + View contact details E-post diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 975e9b84..ed5d8942 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -24,6 +24,10 @@ Start name with surname Show phone numbers on the main screen Show contact thumbnails + On contact click + Call contact + Open contact editor + View contact details Email From e5565583c10c3a7d54ba8a61b38264fa0461a4d8 Mon Sep 17 00:00:00 2001 From: Nikola Trubitsyn Date: Mon, 29 Jan 2018 22:17:37 +0300 Subject: [PATCH 12/24] Update strings.xml --- app/src/main/res/values-ru/strings.xml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index 7943ebc5..5820b6ba 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -24,10 +24,10 @@ Показывать сначала фамилию Показывать номера телефонов на главном экране Показывать фото контакта - On contact click - Call contact - Open contact editor - View contact details + При нажатии на контакт + Позвонить контакту + Открыть редактор контактов + Просмотреть подробности о контакте Эл. почта From 7664a0969721815101a81e24bea26c6313b322fb Mon Sep 17 00:00:00 2001 From: tibbi Date: Mon, 29 Jan 2018 23:39:41 +0100 Subject: [PATCH 13/24] allow saving contacts with empty account name --- app/build.gradle | 2 +- .../contacts/activities/EditContactActivity.kt | 9 ++------- app/src/main/res/values-de/strings.xml | 1 - app/src/main/res/values-ko-rKR/strings.xml | 1 - app/src/main/res/values-pt/strings.xml | 1 - app/src/main/res/values-ru/strings.xml | 1 - app/src/main/res/values-sk/strings.xml | 1 - app/src/main/res/values-sv/strings.xml | 1 - app/src/main/res/values/strings.xml | 1 - 9 files changed, 3 insertions(+), 15 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 39c3247a..1dfc53c3 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -42,7 +42,7 @@ ext { } dependencies { - implementation 'com.simplemobiletools:commons:3.9.4' + implementation 'com.simplemobiletools:commons:3.9.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/EditContactActivity.kt b/app/src/main/kotlin/com/simplemobiletools/contacts/activities/EditContactActivity.kt index 27e74a1d..86be6271 100644 --- a/app/src/main/kotlin/com/simplemobiletools/contacts/activities/EditContactActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/contacts/activities/EditContactActivity.kt @@ -120,8 +120,8 @@ class EditContactActivity : SimpleActivity() { var contactId = intent.getIntExtra(CONTACT_ID, 0) val action = intent.action if (contactId == 0 && (action == ContactsContract.QuickContact.ACTION_QUICK_CONTACT || - action == Intent.ACTION_VIEW || - action == Intent.ACTION_EDIT)) { + action == Intent.ACTION_VIEW || + action == Intent.ACTION_EDIT)) { val data = intent.data if (data != null) { val rawId = if (data.path.contains("lookup")) { @@ -505,11 +505,6 @@ class EditContactActivity : SimpleActivity() { return } - if (contact_source.value.isEmpty()) { - toast(R.string.missing_contact_account) - return - } - contact!!.apply { val oldPhotoUri = photoUri diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index 11fc9225..10c08bbf 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -4,7 +4,6 @@ Adresse Einfügen… Aktualisiere… - Bitte wähle einen Account aus, zu dem der Kontakt gehört Neuer Kontakt Kontakt bearbeiten diff --git a/app/src/main/res/values-ko-rKR/strings.xml b/app/src/main/res/values-ko-rKR/strings.xml index 2a55c2b5..35dcd715 100644 --- a/app/src/main/res/values-ko-rKR/strings.xml +++ b/app/src/main/res/values-ko-rKR/strings.xml @@ -4,7 +4,6 @@ 주소 등록중… 수정중… - 연락처가 포함된 계정을 선택하세요. 새로운 연락처 연락처 수정 diff --git a/app/src/main/res/values-pt/strings.xml b/app/src/main/res/values-pt/strings.xml index 4ed8beca..da865d0d 100644 --- a/app/src/main/res/values-pt/strings.xml +++ b/app/src/main/res/values-pt/strings.xml @@ -4,7 +4,6 @@ Address Inserting… Updating… - Please select an account to which the contact belongs Novo contacto Editar contacto diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index 5820b6ba..591f4ed1 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -4,7 +4,6 @@ Адрес Добавление… Обновление… - Пожалуйста, выберите учётную запись, к которой относится контакт Новый контакт Редактировать контакт diff --git a/app/src/main/res/values-sk/strings.xml b/app/src/main/res/values-sk/strings.xml index 493d4904..1a21a830 100644 --- a/app/src/main/res/values-sk/strings.xml +++ b/app/src/main/res/values-sk/strings.xml @@ -4,7 +4,6 @@ Adresa Vytvára sa… Upravuje sa… - Prosím zvoľte účet, ktorému patrí daný kontakt Nový kontakt Upraviť kontakt diff --git a/app/src/main/res/values-sv/strings.xml b/app/src/main/res/values-sv/strings.xml index 57644238..af86db6d 100644 --- a/app/src/main/res/values-sv/strings.xml +++ b/app/src/main/res/values-sv/strings.xml @@ -4,7 +4,6 @@ Adress Lägger till… Uppdaterar… - Du måste välja vilket konto kontakten ska tillhöra Ny kontakt Redigera kontakt diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index ed5d8942..604a3d2b 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -4,7 +4,6 @@ Address Inserting… Updating… - Please select an account to which the contact belongs New contact Edit contact From 70691c56c76e4a5e9610436e7109f3ffcfae86a3 Mon Sep 17 00:00:00 2001 From: tibbi Date: Tue, 30 Jan 2018 00:03:46 +0100 Subject: [PATCH 14/24] update version to 3.1.3 --- app/build.gradle | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 1dfc53c3..0b3e3353 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -10,8 +10,8 @@ android { applicationId "com.simplemobiletools.contacts" minSdkVersion 16 targetSdkVersion 27 - versionCode 7 - versionName "3.1.2" + versionCode 8 + versionName "3.1.3" setProperty("archivesBaseName", "contacts") } From 2fefebf062e20eee3d813de0840937642d2a8608 Mon Sep 17 00:00:00 2001 From: tibbi Date: Tue, 30 Jan 2018 00:03:53 +0100 Subject: [PATCH 15/24] updating changelog --- CHANGELOG.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 857219bd..67ec3478 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,12 @@ Changelog ========== +Version 3.1.3 *(2018-01-29)* +---------------------------- + + * Allow hiding contact thumbnails + * Fix displaying and adding contacts on some devices + Version 3.1.2 *(2018-01-23)* ---------------------------- From 42a5f4d103651a850329e4ca2d1dc522e241c7f0 Mon Sep 17 00:00:00 2001 From: Phoenix1747 Date: Tue, 30 Jan 2018 08:38:54 +0100 Subject: [PATCH 16/24] Update DE --- app/src/main/res/values-de/strings.xml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index 10c08bbf..32f41796 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -23,10 +23,10 @@ Namen mit Nachnamen beginnen Zeige Telefonnummern im Hauptmenü Zeige Vorschaubilder für Kontakte - On contact click - Call contact - Open contact editor - View contact details + Beim Klicken auf den Kontakt + Kontakt anrufen + Kontakt bearbeiten + Kontaktdetails ansehen Email From 04823c8fa46662bc9b926224eb9a736e3e5f0754 Mon Sep 17 00:00:00 2001 From: Nikola Trubitsyn Date: Tue, 30 Jan 2018 14:11:51 +0300 Subject: [PATCH 17/24] Replace deprecated setOnPageChangeListener --- .../com/simplemobiletools/contacts/activities/MainActivity.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/kotlin/com/simplemobiletools/contacts/activities/MainActivity.kt b/app/src/main/kotlin/com/simplemobiletools/contacts/activities/MainActivity.kt index ad7bb649..76294336 100644 --- a/app/src/main/kotlin/com/simplemobiletools/contacts/activities/MainActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/contacts/activities/MainActivity.kt @@ -218,7 +218,7 @@ class MainActivity : SimpleActivity(), RefreshContactsListener { private fun initFragments() { viewpager.adapter = ViewPagerAdapter(this) - viewpager.setOnPageChangeListener(object : ViewPager.OnPageChangeListener { + viewpager.addOnPageChangeListener(object : ViewPager.OnPageChangeListener { override fun onPageScrollStateChanged(state: Int) { if (isSearchOpen) { getCurrentFragment().onSearchQueryChanged("") From e57bb9531b914287e7effaa60b48c21f20bfd09b Mon Sep 17 00:00:00 2001 From: Nikola Trubitsyn Date: Tue, 30 Jan 2018 14:13:12 +0300 Subject: [PATCH 18/24] Replace deprecated MenuItemCompat.collapseActionView --- .../com/simplemobiletools/contacts/activities/MainActivity.kt | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/app/src/main/kotlin/com/simplemobiletools/contacts/activities/MainActivity.kt b/app/src/main/kotlin/com/simplemobiletools/contacts/activities/MainActivity.kt index 76294336..8bbd46cd 100644 --- a/app/src/main/kotlin/com/simplemobiletools/contacts/activities/MainActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/contacts/activities/MainActivity.kt @@ -222,9 +222,7 @@ class MainActivity : SimpleActivity(), RefreshContactsListener { override fun onPageScrollStateChanged(state: Int) { if (isSearchOpen) { getCurrentFragment().onSearchQueryChanged("") - if (searchMenuItem != null) { - MenuItemCompat.collapseActionView(searchMenuItem) - } + searchMenuItem?.collapseActionView() } } From 526b0eaff5df956fe1a42e57a5e2270541661c22 Mon Sep 17 00:00:00 2001 From: Nikola Trubitsyn Date: Tue, 30 Jan 2018 14:16:45 +0300 Subject: [PATCH 19/24] Add const modifiers in Constants --- .../contacts/helpers/Constants.kt | 76 +++++++++---------- 1 file changed, 38 insertions(+), 38 deletions(-) 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 755bfa8e..9bbcb459 100644 --- a/app/src/main/kotlin/com/simplemobiletools/contacts/helpers/Constants.kt +++ b/app/src/main/kotlin/com/simplemobiletools/contacts/helpers/Constants.kt @@ -3,50 +3,50 @@ package com.simplemobiletools.contacts.helpers import android.provider.ContactsContract.CommonDataKinds // shared prefs -val CALL_CONTACT_ON_CLICK = "call_contact_on_click" -val SHOW_CONTACT_THUMBNAILS = "show_contact_thumbnails" -val SHOW_PHONE_NUMBERS = "show_phone_numbers" -val DISPLAY_CONTACT_SOURCES = "display_contact_sources" -val START_NAME_WITH_SURNAME = "start_name_with_surname" -val LAST_USED_CONTACT_SOURCE = "last_used_contact_source" -val LAST_USED_VIEW_PAGER_PAGE = "last_used_view_pager_page" +const val CALL_CONTACT_ON_CLICK = "call_contact_on_click" +const val SHOW_CONTACT_THUMBNAILS = "show_contact_thumbnails" +const val SHOW_PHONE_NUMBERS = "show_phone_numbers" +const val DISPLAY_CONTACT_SOURCES = "display_contact_sources" +const val START_NAME_WITH_SURNAME = "start_name_with_surname" +const val LAST_USED_CONTACT_SOURCE = "last_used_contact_source" +const val LAST_USED_VIEW_PAGER_PAGE = "last_used_view_pager_page" -val CONTACT_ID = "contact_id" +const val CONTACT_ID = "contact_id" // contact photo changes -val PHOTO_ADDED = 1 -val PHOTO_REMOVED = 2 -val PHOTO_CHANGED = 3 -val PHOTO_UNCHANGED = 4 +const val PHOTO_ADDED = 1 +const val PHOTO_REMOVED = 2 +const val PHOTO_CHANGED = 3 +const val PHOTO_UNCHANGED = 4 // default contact values -val DEFAULT_EMAIL_TYPE = CommonDataKinds.Email.TYPE_HOME -val DEFAULT_PHONE_NUMBER_TYPE = CommonDataKinds.Phone.TYPE_MOBILE -val DEFAULT_EVENT_TYPE = CommonDataKinds.Event.TYPE_BIRTHDAY +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 -val BEGIN_VCARD = "BEGIN:VCARD" -val END_VCARD = "END:VCARD" -val N = "N:" -val TEL = "TEL" -val BDAY = "BDAY:" -val ANNIVERSARY = "ANNIVERSARY:" -val PHOTO = "PHOTO" -val EMAIL = "EMAIL" -val ENCODING = "ENCODING" -val BASE64 = "BASE64" -val JPEG = "JPEG" -val VERSION_2_1 = "VERSION:2.1" +const val BEGIN_VCARD = "BEGIN:VCARD" +const val END_VCARD = "END:VCARD" +const val N = "N:" +const val TEL = "TEL" +const val BDAY = "BDAY:" +const val ANNIVERSARY = "ANNIVERSARY:" +const val PHOTO = "PHOTO" +const val EMAIL = "EMAIL" +const val ENCODING = "ENCODING" +const val BASE64 = "BASE64" +const val JPEG = "JPEG" +const val VERSION_2_1 = "VERSION:2.1" // phone number/email types -val CELL = "CELL" -val WORK = "WORK" -val HOME = "HOME" -val PREF = "PREF" -val MAIN = "MAIN" -val FAX = "FAX" -val WORK_FAX = "WORK;FAX" -val HOME_FAX = "HOME;FAX" -val PAGER = "PAGER" -val MOBILE = "MOBILE" -val VOICE = "VOICE" +const val CELL = "CELL" +const val WORK = "WORK" +const val HOME = "HOME" +const val PREF = "PREF" +const val MAIN = "MAIN" +const val FAX = "FAX" +const val WORK_FAX = "WORK;FAX" +const val HOME_FAX = "HOME;FAX" +const val PAGER = "PAGER" +const val MOBILE = "MOBILE" +const val VOICE = "VOICE" From 6db0091d1d7c5d681bc58b737530d0dbace62e4e Mon Sep 17 00:00:00 2001 From: Nikola Trubitsyn Date: Tue, 30 Jan 2018 14:17:43 +0300 Subject: [PATCH 20/24] Add private modifiers where applicable --- .../contacts/adapters/ContactsAdapter.kt | 4 ++-- .../contacts/adapters/FilterContactSourcesAdapter.kt | 4 ++-- .../contacts/adapters/SelectContactsAdapter.kt | 8 ++++---- .../contacts/dialogs/AddFavoritesDialog.kt | 2 +- .../contacts/dialogs/ChangeSortingDialog.kt | 2 +- .../contacts/dialogs/ExportContactsDialog.kt | 2 +- .../contacts/dialogs/FilterContactSourcesDialog.kt | 2 +- .../contacts/dialogs/ImportContactsDialog.kt | 2 +- 8 files changed, 13 insertions(+), 13 deletions(-) diff --git a/app/src/main/kotlin/com/simplemobiletools/contacts/adapters/ContactsAdapter.kt b/app/src/main/kotlin/com/simplemobiletools/contacts/adapters/ContactsAdapter.kt index e2514ef6..fc72ab44 100644 --- a/app/src/main/kotlin/com/simplemobiletools/contacts/adapters/ContactsAdapter.kt +++ b/app/src/main/kotlin/com/simplemobiletools/contacts/adapters/ContactsAdapter.kt @@ -27,8 +27,8 @@ import com.simplemobiletools.contacts.models.Contact import kotlinx.android.synthetic.main.item_contact_with_number.view.* import java.util.* -class ContactsAdapter(activity: SimpleActivity, var contactItems: MutableList, val listener: RefreshContactsListener?, - val isFavoritesFragment: Boolean, recyclerView: MyRecyclerView, fastScroller: FastScroller, itemClick: (Any) -> Unit) : +class ContactsAdapter(activity: SimpleActivity, var contactItems: MutableList, private val listener: RefreshContactsListener?, + private val isFavoritesFragment: Boolean, recyclerView: MyRecyclerView, fastScroller: FastScroller, itemClick: (Any) -> Unit) : MyRecyclerViewAdapter(activity, recyclerView, fastScroller, itemClick) { private lateinit var contactDrawable: Drawable diff --git a/app/src/main/kotlin/com/simplemobiletools/contacts/adapters/FilterContactSourcesAdapter.kt b/app/src/main/kotlin/com/simplemobiletools/contacts/adapters/FilterContactSourcesAdapter.kt index 115eee3e..05bb831a 100644 --- a/app/src/main/kotlin/com/simplemobiletools/contacts/adapters/FilterContactSourcesAdapter.kt +++ b/app/src/main/kotlin/com/simplemobiletools/contacts/adapters/FilterContactSourcesAdapter.kt @@ -12,7 +12,7 @@ import com.simplemobiletools.contacts.extensions.config import kotlinx.android.synthetic.main.item_filter_contact_source.view.* import java.util.* -class FilterContactSourcesAdapter(val activity: SimpleActivity, val contactSources: List, val displayContactSources: Set) : +class FilterContactSourcesAdapter(val activity: SimpleActivity, private val contactSources: List, private val displayContactSources: Set) : RecyclerView.Adapter() { private val itemViews = SparseArray() private val selectedPositions = HashSet() @@ -66,7 +66,7 @@ class FilterContactSourcesAdapter(val activity: SimpleActivity, val contactSourc override fun getItemCount() = contactSources.size - class ViewHolder(view: View, val adapterListener: MyAdapterListener, val activity: SimpleActivity) : RecyclerView.ViewHolder(view) { + class ViewHolder(view: View, private val adapterListener: MyAdapterListener, val activity: SimpleActivity) : RecyclerView.ViewHolder(view) { fun bindView(contactSource: String): View { itemView.apply { filter_contact_source_checkbox.setColors(activity.config.textColor, activity.getAdjustedPrimaryColor(), activity.config.backgroundColor) diff --git a/app/src/main/kotlin/com/simplemobiletools/contacts/adapters/SelectContactsAdapter.kt b/app/src/main/kotlin/com/simplemobiletools/contacts/adapters/SelectContactsAdapter.kt index 68145cca..cc2d5058 100644 --- a/app/src/main/kotlin/com/simplemobiletools/contacts/adapters/SelectContactsAdapter.kt +++ b/app/src/main/kotlin/com/simplemobiletools/contacts/adapters/SelectContactsAdapter.kt @@ -23,8 +23,8 @@ import com.simplemobiletools.contacts.models.Contact import kotlinx.android.synthetic.main.item_add_favorite_with_number.view.* import java.util.* -class SelectContactsAdapter(val activity: SimpleActivity, val contacts: List, val selectedContacts: ArrayList, val allowPickMultiple: Boolean, - val itemClick: ((Contact) -> Unit)? = null) : RecyclerView.Adapter() { +class SelectContactsAdapter(val activity: SimpleActivity, val contacts: List, private val selectedContacts: ArrayList, private val allowPickMultiple: Boolean, + private val itemClick: ((Contact) -> Unit)? = null) : RecyclerView.Adapter() { private val itemViews = SparseArray() private val selectedPositions = HashSet() private val config = activity.config @@ -86,8 +86,8 @@ class SelectContactsAdapter(val activity: SimpleActivity, val contacts: List Unit)?) : RecyclerView.ViewHolder(view) { + class ViewHolder(view: View, private val adapterListener: MyAdapterListener, val activity: SimpleActivity, private val showCheckbox: Boolean, + private val itemClick: ((Contact) -> Unit)?) : RecyclerView.ViewHolder(view) { fun bindView(contact: Contact, startNameWithSurname: Boolean, contactDrawable: Drawable, config: Config, showContactThumbnails: Boolean, smallPadding: Int, bigPadding: Int): View { itemView.apply { diff --git a/app/src/main/kotlin/com/simplemobiletools/contacts/dialogs/AddFavoritesDialog.kt b/app/src/main/kotlin/com/simplemobiletools/contacts/dialogs/AddFavoritesDialog.kt index 884c8be9..c846d0fc 100644 --- a/app/src/main/kotlin/com/simplemobiletools/contacts/dialogs/AddFavoritesDialog.kt +++ b/app/src/main/kotlin/com/simplemobiletools/contacts/dialogs/AddFavoritesDialog.kt @@ -11,7 +11,7 @@ import com.simplemobiletools.contacts.helpers.ContactsHelper import com.simplemobiletools.contacts.models.Contact import kotlinx.android.synthetic.main.layout_select_contact.view.* -class AddFavoritesDialog(val activity: SimpleActivity, val callback: () -> Unit) { +class AddFavoritesDialog(val activity: SimpleActivity, private val callback: () -> Unit) { private var dialog: AlertDialog? = null private var view = activity.layoutInflater.inflate(R.layout.layout_select_contact, null) private val config = activity.config diff --git a/app/src/main/kotlin/com/simplemobiletools/contacts/dialogs/ChangeSortingDialog.kt b/app/src/main/kotlin/com/simplemobiletools/contacts/dialogs/ChangeSortingDialog.kt index c791ca61..22a63539 100644 --- a/app/src/main/kotlin/com/simplemobiletools/contacts/dialogs/ChangeSortingDialog.kt +++ b/app/src/main/kotlin/com/simplemobiletools/contacts/dialogs/ChangeSortingDialog.kt @@ -11,7 +11,7 @@ import com.simplemobiletools.contacts.R import com.simplemobiletools.contacts.extensions.config import kotlinx.android.synthetic.main.dialog_change_sorting.view.* -class ChangeSortingDialog(val activity: BaseSimpleActivity, val callback: () -> Unit) { +class ChangeSortingDialog(val activity: BaseSimpleActivity, private val callback: () -> Unit) { private var currSorting = 0 private var config = activity.config private var view = activity.layoutInflater.inflate(R.layout.dialog_change_sorting, null) diff --git a/app/src/main/kotlin/com/simplemobiletools/contacts/dialogs/ExportContactsDialog.kt b/app/src/main/kotlin/com/simplemobiletools/contacts/dialogs/ExportContactsDialog.kt index 1df75ded..494ddf1a 100644 --- a/app/src/main/kotlin/com/simplemobiletools/contacts/dialogs/ExportContactsDialog.kt +++ b/app/src/main/kotlin/com/simplemobiletools/contacts/dialogs/ExportContactsDialog.kt @@ -11,7 +11,7 @@ import com.simplemobiletools.contacts.helpers.ContactsHelper import kotlinx.android.synthetic.main.dialog_export_contacts.view.* import java.io.File -class ExportContactsDialog(val activity: SimpleActivity, val path: String, val callback: (file: File, contactSources: HashSet) -> Unit) { +class ExportContactsDialog(val activity: SimpleActivity, val path: String, private val callback: (file: File, contactSources: HashSet) -> Unit) { init { val view = (activity.layoutInflater.inflate(R.layout.dialog_export_contacts, null) as ViewGroup).apply { diff --git a/app/src/main/kotlin/com/simplemobiletools/contacts/dialogs/FilterContactSourcesDialog.kt b/app/src/main/kotlin/com/simplemobiletools/contacts/dialogs/FilterContactSourcesDialog.kt index c3f2d5c5..6a516e01 100644 --- a/app/src/main/kotlin/com/simplemobiletools/contacts/dialogs/FilterContactSourcesDialog.kt +++ b/app/src/main/kotlin/com/simplemobiletools/contacts/dialogs/FilterContactSourcesDialog.kt @@ -9,7 +9,7 @@ import com.simplemobiletools.contacts.extensions.config import com.simplemobiletools.contacts.helpers.ContactsHelper import kotlinx.android.synthetic.main.dialog_filter_contact_sources.view.* -class FilterContactSourcesDialog(val activity: SimpleActivity, val callback: () -> Unit) { +class FilterContactSourcesDialog(val activity: SimpleActivity, private val callback: () -> Unit) { private var dialog: AlertDialog? = null private val view = activity.layoutInflater.inflate(R.layout.dialog_filter_contact_sources, null) 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 fde2a6fa..a83c9f87 100644 --- a/app/src/main/kotlin/com/simplemobiletools/contacts/dialogs/ImportContactsDialog.kt +++ b/app/src/main/kotlin/com/simplemobiletools/contacts/dialogs/ImportContactsDialog.kt @@ -13,7 +13,7 @@ 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, val callback: (refreshView: Boolean) -> Unit) { +class ImportContactsDialog(val activity: SimpleActivity, val path: String, private val callback: (refreshView: Boolean) -> Unit) { init { val view = (activity.layoutInflater.inflate(R.layout.dialog_import_contacts, null) as ViewGroup).apply { import_contacts_title.text = activity.config.lastUsedContactSource From 2c5daff95c4defe266164238a570764c67f67eb3 Mon Sep 17 00:00:00 2001 From: tibbi Date: Wed, 31 Jan 2018 18:04:26 +0100 Subject: [PATCH 21/24] add some null checks to filtering contacts adapter entries at search --- .../simplemobiletools/contacts/fragments/MyViewPagerFragment.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/kotlin/com/simplemobiletools/contacts/fragments/MyViewPagerFragment.kt b/app/src/main/kotlin/com/simplemobiletools/contacts/fragments/MyViewPagerFragment.kt index 1feb7b88..5b66c30f 100644 --- a/app/src/main/kotlin/com/simplemobiletools/contacts/fragments/MyViewPagerFragment.kt +++ b/app/src/main/kotlin/com/simplemobiletools/contacts/fragments/MyViewPagerFragment.kt @@ -187,7 +187,7 @@ abstract class MyViewPagerFragment(context: Context, attributeSet: AttributeSet) } fun onSearchOpened() { - contactsIgnoringSearch = (fragment_list.adapter as? ContactsAdapter)?.contactItems as ArrayList + contactsIgnoringSearch = (fragment_list?.adapter as? ContactsAdapter)?.contactItems as? ArrayList ?: ArrayList() } fun onSearchClosed() { From da2219f1607ac65be5b094403af630ddd6bef020 Mon Sep 17 00:00:00 2001 From: tibbi Date: Wed, 31 Jan 2018 18:18:35 +0100 Subject: [PATCH 22/24] shorten the search close code --- .../com/simplemobiletools/contacts/activities/MainActivity.kt | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/app/src/main/kotlin/com/simplemobiletools/contacts/activities/MainActivity.kt b/app/src/main/kotlin/com/simplemobiletools/contacts/activities/MainActivity.kt index ad7bb649..a5b52ce0 100644 --- a/app/src/main/kotlin/com/simplemobiletools/contacts/activities/MainActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/contacts/activities/MainActivity.kt @@ -222,9 +222,7 @@ class MainActivity : SimpleActivity(), RefreshContactsListener { override fun onPageScrollStateChanged(state: Int) { if (isSearchOpen) { getCurrentFragment().onSearchQueryChanged("") - if (searchMenuItem != null) { - MenuItemCompat.collapseActionView(searchMenuItem) - } + searchMenuItem?.collapseActionView() } } From 0077d04906c37800b16e62488f734b696863eb39 Mon Sep 17 00:00:00 2001 From: tibbi Date: Thu, 1 Feb 2018 11:59:32 +0100 Subject: [PATCH 23/24] add a new string for storing contacts locally in the phone --- app/src/main/res/values-de/strings.xml | 1 + app/src/main/res/values-ko-rKR/strings.xml | 1 + app/src/main/res/values-pt/strings.xml | 1 + app/src/main/res/values-ru/strings.xml | 1 + app/src/main/res/values-sk/strings.xml | 1 + app/src/main/res/values-sv/strings.xml | 1 + app/src/main/res/values/strings.xml | 1 + 7 files changed, 7 insertions(+) diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index 32f41796..c353a97a 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -4,6 +4,7 @@ Adresse Einfügen… Aktualisiere… + Phone storage Neuer Kontakt Kontakt bearbeiten diff --git a/app/src/main/res/values-ko-rKR/strings.xml b/app/src/main/res/values-ko-rKR/strings.xml index 35dcd715..08c93d35 100644 --- a/app/src/main/res/values-ko-rKR/strings.xml +++ b/app/src/main/res/values-ko-rKR/strings.xml @@ -4,6 +4,7 @@ 주소 등록중… 수정중… + Phone storage 새로운 연락처 연락처 수정 diff --git a/app/src/main/res/values-pt/strings.xml b/app/src/main/res/values-pt/strings.xml index da865d0d..4831a362 100644 --- a/app/src/main/res/values-pt/strings.xml +++ b/app/src/main/res/values-pt/strings.xml @@ -4,6 +4,7 @@ Address Inserting… Updating… + Phone storage Novo contacto Editar contacto diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index 591f4ed1..02f1e14b 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -4,6 +4,7 @@ Адрес Добавление… Обновление… + Phone storage Новый контакт Редактировать контакт diff --git a/app/src/main/res/values-sk/strings.xml b/app/src/main/res/values-sk/strings.xml index 1a21a830..a9fd79d1 100644 --- a/app/src/main/res/values-sk/strings.xml +++ b/app/src/main/res/values-sk/strings.xml @@ -4,6 +4,7 @@ Adresa Vytvára sa… Upravuje sa… + Úložisko mobilu Nový kontakt Upraviť kontakt diff --git a/app/src/main/res/values-sv/strings.xml b/app/src/main/res/values-sv/strings.xml index af86db6d..aadd2363 100644 --- a/app/src/main/res/values-sv/strings.xml +++ b/app/src/main/res/values-sv/strings.xml @@ -4,6 +4,7 @@ Adress Lägger till… Uppdaterar… + Phone storage Ny kontakt Redigera kontakt diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 604a3d2b..0a735653 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -4,6 +4,7 @@ Address Inserting… Updating… + Phone storage New contact Edit contact From 93dcca0f96419af1dd97f2a4f0f3233d4e192108 Mon Sep 17 00:00:00 2001 From: Phoenix1747 Date: Thu, 1 Feb 2018 14:13:24 +0100 Subject: [PATCH 24/24] Update strings.xml --- app/src/main/res/values-de/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index c353a97a..db5df3c6 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -4,7 +4,7 @@ Adresse Einfügen… Aktualisiere… - Phone storage + Gerätespeicher Neuer Kontakt Kontakt bearbeiten