From 1b871331a262461c358b857503635c6b7ccf7221 Mon Sep 17 00:00:00 2001 From: tibbi Date: Tue, 2 Mar 2021 19:52:56 +0100 Subject: [PATCH] adding animations to recyclerviews --- app/build.gradle | 2 +- .../pro/activities/GroupContactsActivity.kt | 1 + .../activities/InsertOrEditContactActivity.kt | 2 +- .../pro/activities/SelectContactActivity.kt | 19 ++++++++++--------- .../contacts/pro/adapters/ContactsAdapter.kt | 2 +- .../pro/dialogs/SelectContactsDialog.kt | 1 + .../pro/fragments/MyViewPagerFragment.kt | 2 ++ .../res/layout/activity_group_contacts.xml | 2 +- .../res/layout/activity_select_contact.xml | 1 + app/src/main/res/layout/fragment_layout.xml | 1 + .../res/layout/fragment_letters_layout.xml | 1 + .../main/res/layout/layout_select_contact.xml | 4 ++-- 12 files changed, 23 insertions(+), 15 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 2f8f7fc0..fb0b4065 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -57,7 +57,7 @@ android { } dependencies { - implementation 'com.simplemobiletools:commons:5.34.2' + implementation 'com.simplemobiletools:commons:5.34.3' implementation 'joda-time:joda-time:2.10.3' implementation 'com.googlecode.ez-vcard:ez-vcard:0.10.5' implementation 'com.github.tibbi:IndicatorFastScroll:c3de1d040a' diff --git a/app/src/main/kotlin/com/simplemobiletools/contacts/pro/activities/GroupContactsActivity.kt b/app/src/main/kotlin/com/simplemobiletools/contacts/pro/activities/GroupContactsActivity.kt index 356cb380..010ded64 100644 --- a/app/src/main/kotlin/com/simplemobiletools/contacts/pro/activities/GroupContactsActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/contacts/pro/activities/GroupContactsActivity.kt @@ -109,6 +109,7 @@ class GroupContactsActivity : SimpleActivity(), RemoveFromGroupListener, Refresh group_contacts_list.adapter = this } + group_contacts_list.scheduleLayoutAnimation() group_contacts_fastscroller.setScrollToY(0) group_contacts_fastscroller.setViews(group_contacts_list) { val item = (group_contacts_list.adapter as ContactsAdapter).contactItems.getOrNull(it) diff --git a/app/src/main/kotlin/com/simplemobiletools/contacts/pro/activities/InsertOrEditContactActivity.kt b/app/src/main/kotlin/com/simplemobiletools/contacts/pro/activities/InsertOrEditContactActivity.kt index 4787df2b..b462074e 100644 --- a/app/src/main/kotlin/com/simplemobiletools/contacts/pro/activities/InsertOrEditContactActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/contacts/pro/activities/InsertOrEditContactActivity.kt @@ -294,7 +294,7 @@ class InsertOrEditContactActivity : SimpleActivity(), RefreshContactsListener { } } - fun getTabsMask(): Int { + private fun getTabsMask(): Int { var mask = TAB_CONTACTS if (config.showTabs and TAB_FAVORITES != 0) { mask += TAB_FAVORITES diff --git a/app/src/main/kotlin/com/simplemobiletools/contacts/pro/activities/SelectContactActivity.kt b/app/src/main/kotlin/com/simplemobiletools/contacts/pro/activities/SelectContactActivity.kt index 34338104..bd877bc8 100644 --- a/app/src/main/kotlin/com/simplemobiletools/contacts/pro/activities/SelectContactActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/contacts/pro/activities/SelectContactActivity.kt @@ -126,15 +126,15 @@ class SelectContactActivity : SimpleActivity() { val shouldNormalize = text.normalizeString() == text val filtered = contactsIgnoringSearch.filter { getProperText(it.getNameToDisplay(), shouldNormalize).contains(text, true) || - getProperText(it.nickname, shouldNormalize).contains(text, true) || - it.doesContainPhoneNumber(text, false) || - it.emails.any { it.value.contains(text, true) } || - it.addresses.any { getProperText(it.value, shouldNormalize).contains(text, true) } || - it.IMs.any { it.value.contains(text, true) } || - getProperText(it.notes, shouldNormalize).contains(text, true) || - getProperText(it.organization.company, shouldNormalize).contains(text, true) || - getProperText(it.organization.jobPosition, shouldNormalize).contains(text, true) || - it.websites.any { it.contains(text, true) } + getProperText(it.nickname, shouldNormalize).contains(text, true) || + it.doesContainPhoneNumber(text, false) || + it.emails.any { it.value.contains(text, true) } || + it.addresses.any { getProperText(it.value, shouldNormalize).contains(text, true) } || + it.IMs.any { it.value.contains(text, true) } || + getProperText(it.notes, shouldNormalize).contains(text, true) || + getProperText(it.organization.company, shouldNormalize).contains(text, true) || + getProperText(it.organization.jobPosition, shouldNormalize).contains(text, true) || + it.websites.any { it.contains(text, true) } } as ArrayList filtered.sortBy { @@ -201,6 +201,7 @@ class SelectContactActivity : SimpleActivity() { select_contact_list.adapter = this } + select_contact_list.scheduleLayoutAnimation() select_contact_fastscroller.setViews(select_contact_list) { select_contact_fastscroller.updateBubbleText(contacts[it].getBubbleText()) } diff --git a/app/src/main/kotlin/com/simplemobiletools/contacts/pro/adapters/ContactsAdapter.kt b/app/src/main/kotlin/com/simplemobiletools/contacts/pro/adapters/ContactsAdapter.kt index fd01c50d..1ef11729 100644 --- a/app/src/main/kotlin/com/simplemobiletools/contacts/pro/adapters/ContactsAdapter.kt +++ b/app/src/main/kotlin/com/simplemobiletools/contacts/pro/adapters/ContactsAdapter.kt @@ -36,7 +36,7 @@ import java.util.* class ContactsAdapter(activity: SimpleActivity, var contactItems: ArrayList, private val refreshListener: RefreshContactsListener?, private val location: Int, private val removeListener: RemoveFromGroupListener?, recyclerView: MyRecyclerView, fastScroller: FastScroller?, highlightText: String = "", itemClick: (Any) -> Unit) : - MyRecyclerViewAdapter(activity, recyclerView, fastScroller, itemClick) { + MyRecyclerViewAdapter(activity, recyclerView, fastScroller, itemClick) { private val NEW_GROUP_ID = -1 private var config = activity.config diff --git a/app/src/main/kotlin/com/simplemobiletools/contacts/pro/dialogs/SelectContactsDialog.kt b/app/src/main/kotlin/com/simplemobiletools/contacts/pro/dialogs/SelectContactsDialog.kt index e355c2d6..0a014cb7 100644 --- a/app/src/main/kotlin/com/simplemobiletools/contacts/pro/dialogs/SelectContactsDialog.kt +++ b/app/src/main/kotlin/com/simplemobiletools/contacts/pro/dialogs/SelectContactsDialog.kt @@ -42,6 +42,7 @@ class SelectContactsDialog(val activity: SimpleActivity, initialContacts: ArrayL select_contact_list.adapter = SelectContactsAdapter(activity, allContacts, initiallySelectedContacts, allowSelectMultiple, select_contact_list, select_contact_fastscroller, contactClickCallback) + select_contact_list.scheduleLayoutAnimation() select_contact_fastscroller.setViews(select_contact_list) { select_contact_fastscroller.updateBubbleText(allContacts[it].getBubbleText()) } diff --git a/app/src/main/kotlin/com/simplemobiletools/contacts/pro/fragments/MyViewPagerFragment.kt b/app/src/main/kotlin/com/simplemobiletools/contacts/pro/fragments/MyViewPagerFragment.kt index ea1eb5a7..4f714d35 100644 --- a/app/src/main/kotlin/com/simplemobiletools/contacts/pro/fragments/MyViewPagerFragment.kt +++ b/app/src/main/kotlin/com/simplemobiletools/contacts/pro/fragments/MyViewPagerFragment.kt @@ -177,6 +177,7 @@ abstract class MyViewPagerFragment(context: Context, attributeSet: AttributeSet) fragment_list.adapter = this } + fragment_list.scheduleLayoutAnimation() fragment_fastscroller.setScrollToY(0) fragment_fastscroller.setViews(fragment_list) { val item = (fragment_list.adapter as GroupsAdapter).groups.getOrNull(it) @@ -209,6 +210,7 @@ abstract class MyViewPagerFragment(context: Context, attributeSet: AttributeSet) }.apply { fragment_list.adapter = this } + fragment_list.scheduleLayoutAnimation() } else { (currAdapter as ContactsAdapter).apply { startNameWithSurname = config.startNameWithSurname diff --git a/app/src/main/res/layout/activity_group_contacts.xml b/app/src/main/res/layout/activity_group_contacts.xml index 01b03d0f..ebccff66 100644 --- a/app/src/main/res/layout/activity_group_contacts.xml +++ b/app/src/main/res/layout/activity_group_contacts.xml @@ -43,6 +43,7 @@ android:layout_width="match_parent" android:layout_height="match_parent" android:clipToPadding="false" + android:layoutAnimation="@anim/layout_animation" android:scrollbars="none" app:layoutManager="com.simplemobiletools.commons.views.MyLinearLayoutManager" /> @@ -51,7 +52,6 @@ android:layout_width="wrap_content" android:layout_height="match_parent" android:layout_alignParentEnd="true" - android:layout_alignParentRight="true" android:paddingStart="@dimen/normal_margin"> diff --git a/app/src/main/res/layout/activity_select_contact.xml b/app/src/main/res/layout/activity_select_contact.xml index 11d31e36..a0cad591 100644 --- a/app/src/main/res/layout/activity_select_contact.xml +++ b/app/src/main/res/layout/activity_select_contact.xml @@ -38,6 +38,7 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:clipToPadding="false" + android:layoutAnimation="@anim/layout_animation" android:scrollbars="none" app:layoutManager="com.simplemobiletools.commons.views.MyLinearLayoutManager" /> diff --git a/app/src/main/res/layout/fragment_layout.xml b/app/src/main/res/layout/fragment_layout.xml index 0cd8f381..787fe9fb 100644 --- a/app/src/main/res/layout/fragment_layout.xml +++ b/app/src/main/res/layout/fragment_layout.xml @@ -40,6 +40,7 @@ android:layout_width="match_parent" android:layout_height="match_parent" android:clipToPadding="false" + android:layoutAnimation="@anim/layout_animation" android:scrollbars="none" app:layoutManager="com.simplemobiletools.commons.views.MyLinearLayoutManager" /> diff --git a/app/src/main/res/layout/fragment_letters_layout.xml b/app/src/main/res/layout/fragment_letters_layout.xml index bea2b84c..cb9c2f07 100644 --- a/app/src/main/res/layout/fragment_letters_layout.xml +++ b/app/src/main/res/layout/fragment_letters_layout.xml @@ -40,6 +40,7 @@ android:layout_width="match_parent" android:layout_height="match_parent" android:clipToPadding="false" + android:layoutAnimation="@anim/layout_animation" android:scrollbars="none" app:layoutManager="com.simplemobiletools.commons.views.MyLinearLayoutManager" /> diff --git a/app/src/main/res/layout/layout_select_contact.xml b/app/src/main/res/layout/layout_select_contact.xml index f6efaa90..c0b20909 100644 --- a/app/src/main/res/layout/layout_select_contact.xml +++ b/app/src/main/res/layout/layout_select_contact.xml @@ -1,6 +1,5 @@ -