From 3c413347d6c7c17b93e4f548ce62f5e00a18b824 Mon Sep 17 00:00:00 2001 From: tibbi Date: Mon, 19 Mar 2018 23:40:33 +0100 Subject: [PATCH] make ContactsAdapter more dynamic, use it at Group Contacts --- .../activities/GroupContactsActivity.kt | 5 ++- .../contacts/adapters/ContactsAdapter.kt | 42 ++++++++++++------- .../contacts/fragments/MyViewPagerFragment.kt | 8 ++-- .../contacts/helpers/Constants.kt | 4 ++ app/src/main/res/values-de/strings.xml | 7 +++- app/src/main/res/values-fr/strings.xml | 7 +++- app/src/main/res/values-ko-rKR/strings.xml | 7 +++- app/src/main/res/values-lt/strings.xml | 7 +++- app/src/main/res/values-pt/strings.xml | 7 +++- app/src/main/res/values-ru/strings.xml | 7 +++- app/src/main/res/values-sk/strings.xml | 7 +++- app/src/main/res/values-sv/strings.xml | 7 +++- app/src/main/res/values-zh-rTW/strings.xml | 7 +++- app/src/main/res/values/strings.xml | 7 +++- 14 files changed, 87 insertions(+), 42 deletions(-) diff --git a/app/src/main/kotlin/com/simplemobiletools/contacts/activities/GroupContactsActivity.kt b/app/src/main/kotlin/com/simplemobiletools/contacts/activities/GroupContactsActivity.kt index f277f98f..c3e0d09d 100644 --- a/app/src/main/kotlin/com/simplemobiletools/contacts/activities/GroupContactsActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/contacts/activities/GroupContactsActivity.kt @@ -30,7 +30,10 @@ class GroupContactsActivity : SimpleActivity() { } private fun updateContacts(contacts: ArrayList) { - ContactsAdapter(this, contacts, null, false, group_contacts_list, group_contacts_fastscroller) { + Contact.sorting = config.sorting + contacts.sort() + + ContactsAdapter(this, contacts, null, LOCATION_GROUP_CONTACTS, group_contacts_list, group_contacts_fastscroller) { when (config.onContactClick) { ON_CLICK_CALL_CONTACT -> { val contact = it as Contact 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 a58898c6..e6df0637 100644 --- a/app/src/main/kotlin/com/simplemobiletools/contacts/adapters/ContactsAdapter.kt +++ b/app/src/main/kotlin/com/simplemobiletools/contacts/adapters/ContactsAdapter.kt @@ -22,13 +22,16 @@ import com.simplemobiletools.contacts.extensions.config import com.simplemobiletools.contacts.extensions.editContact import com.simplemobiletools.contacts.extensions.shareContacts import com.simplemobiletools.contacts.helpers.ContactsHelper +import com.simplemobiletools.contacts.helpers.LOCATION_CONTACTS_TAB +import com.simplemobiletools.contacts.helpers.LOCATION_FAVORITES_TAB +import com.simplemobiletools.contacts.helpers.LOCATION_GROUP_CONTACTS import com.simplemobiletools.contacts.interfaces.RefreshContactsListener 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: ArrayList, private val listener: RefreshContactsListener?, - private val isFavoritesFragment: Boolean, recyclerView: MyRecyclerView, fastScroller: FastScroller, itemClick: (Any) -> Unit) : + private val location: Int, recyclerView: MyRecyclerView, fastScroller: FastScroller, itemClick: (Any) -> Unit) : MyRecyclerViewAdapter(activity, recyclerView, fastScroller, itemClick) { private lateinit var contactDrawable: Drawable @@ -52,10 +55,13 @@ class ContactsAdapter(activity: SimpleActivity, var contactItems: ArrayList selectAll() R.id.cab_add_to_favorites -> addToFavorites() R.id.cab_share -> shareContacts() - R.id.cab_remove -> removeFavorites() + R.id.cab_remove -> removeContacts() R.id.cab_delete -> askConfirmDelete() } } @@ -138,19 +144,23 @@ class ContactsAdapter(activity: SimpleActivity, var contactItems: ArrayList() + private fun removeContacts() { + val contactsToRemove = ArrayList() selectedPositions.sortedDescending().forEach { - favoritesToRemove.add(contactItems[it]) + contactsToRemove.add(contactItems[it]) } - contactItems.removeAll(favoritesToRemove) + contactItems.removeAll(contactsToRemove) + + if (location == LOCATION_FAVORITES_TAB) { + ContactsHelper(activity).removeFavorites(contactsToRemove) + if (contactItems.isEmpty()) { + listener?.refreshFavorites() + finishActMode() + } else { + removeSelectedItems() + } + } else if (location == LOCATION_GROUP_CONTACTS) { - ContactsHelper(activity).removeFavorites(favoritesToRemove) - if (contactItems.isEmpty()) { - listener?.refreshFavorites() - finishActMode() - } else { - removeSelectedItems() } } 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 a5aeeed9..d4f12cd3 100644 --- a/app/src/main/kotlin/com/simplemobiletools/contacts/fragments/MyViewPagerFragment.kt +++ b/app/src/main/kotlin/com/simplemobiletools/contacts/fragments/MyViewPagerFragment.kt @@ -15,10 +15,7 @@ import com.simplemobiletools.contacts.extensions.config import com.simplemobiletools.contacts.extensions.editContact import com.simplemobiletools.contacts.extensions.tryStartCall import com.simplemobiletools.contacts.extensions.viewContact -import com.simplemobiletools.contacts.helpers.Config -import com.simplemobiletools.contacts.helpers.ON_CLICK_CALL_CONTACT -import com.simplemobiletools.contacts.helpers.ON_CLICK_EDIT_CONTACT -import com.simplemobiletools.contacts.helpers.ON_CLICK_VIEW_CONTACT +import com.simplemobiletools.contacts.helpers.* import com.simplemobiletools.contacts.interfaces.FragmentInterface import com.simplemobiletools.contacts.models.Contact import kotlinx.android.synthetic.main.fragment_layout.view.* @@ -108,7 +105,8 @@ abstract class MyViewPagerFragment(context: Context, attributeSet: AttributeSet) val currAdapter = fragment_list.adapter if (currAdapter == null || forceListRedraw) { forceListRedraw = false - ContactsAdapter(activity as SimpleActivity, contacts, activity, this is FavoritesFragment, fragment_list, fragment_fastscroller) { + val location = if (this is FavoritesFragment) LOCATION_FAVORITES_TAB else LOCATION_CONTACTS_TAB + ContactsAdapter(activity as SimpleActivity, contacts, activity, location, fragment_list, fragment_fastscroller) { when (config.onContactClick) { ON_CLICK_CALL_CONTACT -> { val contact = it as Contact 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 aa6133ab..08dfbc4f 100644 --- a/app/src/main/kotlin/com/simplemobiletools/contacts/helpers/Constants.kt +++ b/app/src/main/kotlin/com/simplemobiletools/contacts/helpers/Constants.kt @@ -15,6 +15,10 @@ const val SMT_PRIVATE = "smt_private" // used at the contact source of local c const val IS_PRIVATE = "is_private" const val GROUP = "group" +const val LOCATION_CONTACTS_TAB = 1 +const val LOCATION_FAVORITES_TAB = 2 +const val LOCATION_GROUP_CONTACTS = 3 + // contact photo changes const val PHOTO_ADDED = 1 const val PHOTO_REMOVED = 2 diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index bda8c04a..08cd4952 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -6,8 +6,6 @@ Aktualisiere… Gerätespeicher Gerätespeicher (nicht sichtbar für andere Apps) - No groups - Create a new group Neuer Kontakt Kontakt bearbeiten @@ -17,6 +15,11 @@ Zweiter Vorname Familienname + + No groups + Create a new group + Remove from group + Foto machen Foto auswählen diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index b6e38037..635f9997 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -6,8 +6,6 @@ Mise à jour… Stockage du téléphone Stockage du téléphone (non visible par d\'autres applis) - No groups - Create a new group Nouveau contact Modifier contact @@ -17,6 +15,11 @@ Nom Surnom + + No groups + Create a new group + Remove from group + Prendre une photo Choisir une photo diff --git a/app/src/main/res/values-ko-rKR/strings.xml b/app/src/main/res/values-ko-rKR/strings.xml index 612be50b..3ea4c0a0 100644 --- a/app/src/main/res/values-ko-rKR/strings.xml +++ b/app/src/main/res/values-ko-rKR/strings.xml @@ -6,8 +6,6 @@ 수정중… Phone storage Phone storage (not visible by other apps) - No groups - Create a new group 새로운 연락처 연락처 수정 @@ -17,6 +15,11 @@ 중간 이름 + + No groups + Create a new group + Remove from group + 사진 촬영 사진 선택 diff --git a/app/src/main/res/values-lt/strings.xml b/app/src/main/res/values-lt/strings.xml index 19c04488..13117b75 100644 --- a/app/src/main/res/values-lt/strings.xml +++ b/app/src/main/res/values-lt/strings.xml @@ -6,8 +6,6 @@ Atnaujinama… Telefono atmintis Telefono atmintis (nematoma kitų programėlių) - Nėra grupių - Sukurti naują grupę Naujas kontaktas Redaguoti kontaktą @@ -17,6 +15,11 @@ Antras vardas Pavardė + + Nėra grupių + Sukurti naują grupę + Remove from group + Nufotografuoti Pasirinkti nuotrauką diff --git a/app/src/main/res/values-pt/strings.xml b/app/src/main/res/values-pt/strings.xml index 2d19395b..d8a5081c 100644 --- a/app/src/main/res/values-pt/strings.xml +++ b/app/src/main/res/values-pt/strings.xml @@ -6,8 +6,6 @@ A atualizar… Armazenamento do telefone Armazenamento do telefone (não visível por outras alicações) - No groups - Create a new group Novo contacto Editar contacto @@ -17,6 +15,11 @@ Segundo nome Apelido + + No groups + Create a new group + Remove from group + Tirar foto Escolher foto diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index eb32ad3d..7bba539b 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -6,8 +6,6 @@ Обновление… Память устройства Память устройства (не видна другим приложениям) - Нет групп - Создать новую группу Новый контакт Редактировать контакт @@ -17,6 +15,11 @@ Отчество Фамилия + + Нет групп + Создать новую группу + Remove from group + Снять фото Выбрать фото diff --git a/app/src/main/res/values-sk/strings.xml b/app/src/main/res/values-sk/strings.xml index 648c6524..3132bc11 100644 --- a/app/src/main/res/values-sk/strings.xml +++ b/app/src/main/res/values-sk/strings.xml @@ -6,8 +6,6 @@ Upravuje sa… Úložisko mobilu Úložisko mobilu (neviditeľné pre ostatné apky) - Žiadne skupiny - Vytvoriť novú skupinu Nový kontakt Upraviť kontakt @@ -17,6 +15,11 @@ Stredné meno Priezvisko + + Žiadne skupiny + Vytvoriť novú skupinu + Odstrániť zo skupiny + Vytvoriť foto Zvoliť foto diff --git a/app/src/main/res/values-sv/strings.xml b/app/src/main/res/values-sv/strings.xml index 3fddf676..f63ad6a9 100644 --- a/app/src/main/res/values-sv/strings.xml +++ b/app/src/main/res/values-sv/strings.xml @@ -6,8 +6,6 @@ Uppdaterar… Telefonens lagringsutrymme Telefonens lagringsutrymme (inte synligt för andra appar) - No groups - Create a new group Ny kontakt Redigera kontakt @@ -17,6 +15,11 @@ Mellannamn Efternamn + + No groups + Create a new group + Remove from group + Ta foto Välj foto diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml index 5d0c8b3c..ae382cac 100644 --- a/app/src/main/res/values-zh-rTW/strings.xml +++ b/app/src/main/res/values-zh-rTW/strings.xml @@ -6,8 +6,6 @@ 更新中… 手機空間 手機空間 (其他程式不可見) - 沒有群組 - Create a new group 新聯絡人 編輯聯絡人 @@ -17,6 +15,11 @@ 中間名 姓氏 + + 沒有群組 + Create a new group + Remove from group + 拍照 選擇相片 diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index a941a193..ad65b889 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -6,8 +6,6 @@ Updating… Phone storage Phone storage (not visible by other apps) - No groups - Create a new group New contact Edit contact @@ -17,6 +15,11 @@ Middle name Surname + + No groups + Create a new group + Remove from group + Take photo Choose photo