mirror of
https://github.com/SimpleMobileTools/Simple-Contacts.git
synced 2025-06-05 21:59:27 +02:00
add a couple more functions in FragmentInterface
This commit is contained in:
@ -26,9 +26,9 @@ import com.simplemobiletools.contacts.dialogs.ImportContactsDialog
|
|||||||
import com.simplemobiletools.contacts.extensions.config
|
import com.simplemobiletools.contacts.extensions.config
|
||||||
import com.simplemobiletools.contacts.extensions.dbHelper
|
import com.simplemobiletools.contacts.extensions.dbHelper
|
||||||
import com.simplemobiletools.contacts.extensions.getTempFile
|
import com.simplemobiletools.contacts.extensions.getTempFile
|
||||||
import com.simplemobiletools.contacts.fragments.MyViewPagerFragment
|
|
||||||
import com.simplemobiletools.contacts.helpers.ContactsHelper
|
import com.simplemobiletools.contacts.helpers.ContactsHelper
|
||||||
import com.simplemobiletools.contacts.helpers.VcfExporter
|
import com.simplemobiletools.contacts.helpers.VcfExporter
|
||||||
|
import com.simplemobiletools.contacts.interfaces.FragmentInterface
|
||||||
import com.simplemobiletools.contacts.interfaces.RefreshContactsListener
|
import com.simplemobiletools.contacts.interfaces.RefreshContactsListener
|
||||||
import com.simplemobiletools.contacts.models.Contact
|
import com.simplemobiletools.contacts.models.Contact
|
||||||
import kotlinx.android.synthetic.main.activity_main.*
|
import kotlinx.android.synthetic.main.activity_main.*
|
||||||
@ -93,9 +93,9 @@ class MainActivity : SimpleActivity(), RefreshContactsListener {
|
|||||||
|
|
||||||
val configShowContactThumbnails = config.showContactThumbnails
|
val configShowContactThumbnails = config.showContactThumbnails
|
||||||
if (storedShowContactThumbnails != configShowContactThumbnails) {
|
if (storedShowContactThumbnails != configShowContactThumbnails) {
|
||||||
contacts_fragment?.showContactThumbnailsChanged(configShowContactThumbnails)
|
getAllFragments().forEach {
|
||||||
favorites_fragment?.showContactThumbnailsChanged(configShowContactThumbnails)
|
(it as? FragmentInterface)?.showContactThumbnailsChanged(configShowContactThumbnails)
|
||||||
groups_fragment?.showContactThumbnailsChanged(configShowContactThumbnails)
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
val configTextColor = config.textColor
|
val configTextColor = config.textColor
|
||||||
@ -103,9 +103,9 @@ class MainActivity : SimpleActivity(), RefreshContactsListener {
|
|||||||
getInactiveTabIndexes(viewpager.currentItem).forEach {
|
getInactiveTabIndexes(viewpager.currentItem).forEach {
|
||||||
main_tabs_holder.getTabAt(it)?.icon?.applyColorFilter(configTextColor)
|
main_tabs_holder.getTabAt(it)?.icon?.applyColorFilter(configTextColor)
|
||||||
}
|
}
|
||||||
contacts_fragment?.textColorChanged(configTextColor)
|
getAllFragments().forEach {
|
||||||
favorites_fragment?.textColorChanged(configTextColor)
|
(it as? FragmentInterface)?.textColorChanged(configTextColor)
|
||||||
groups_fragment?.textColorChanged(configTextColor)
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
val configBackgroundColor = config.backgroundColor
|
val configBackgroundColor = config.backgroundColor
|
||||||
@ -117,9 +117,9 @@ class MainActivity : SimpleActivity(), RefreshContactsListener {
|
|||||||
if (storedPrimaryColor != configPrimaryColor) {
|
if (storedPrimaryColor != configPrimaryColor) {
|
||||||
main_tabs_holder.setSelectedTabIndicatorColor(getAdjustedPrimaryColor())
|
main_tabs_holder.setSelectedTabIndicatorColor(getAdjustedPrimaryColor())
|
||||||
main_tabs_holder.getTabAt(viewpager.currentItem)?.icon?.applyColorFilter(getAdjustedPrimaryColor())
|
main_tabs_holder.getTabAt(viewpager.currentItem)?.icon?.applyColorFilter(getAdjustedPrimaryColor())
|
||||||
contacts_fragment?.primaryColorChanged(configPrimaryColor)
|
getAllFragments().forEach {
|
||||||
favorites_fragment?.primaryColorChanged(configPrimaryColor)
|
(it as? FragmentInterface)?.primaryColorChanged(configPrimaryColor)
|
||||||
groups_fragment?.primaryColorChanged(configPrimaryColor)
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
val configStartNameWithSurname = config.startNameWithSurname
|
val configStartNameWithSurname = config.startNameWithSurname
|
||||||
@ -133,9 +133,9 @@ class MainActivity : SimpleActivity(), RefreshContactsListener {
|
|||||||
initFragments()
|
initFragments()
|
||||||
}
|
}
|
||||||
|
|
||||||
contacts_fragment?.onActivityResume()
|
getAllFragments().forEach {
|
||||||
favorites_fragment?.onActivityResume()
|
(it as? FragmentInterface)?.onActivityResume()
|
||||||
groups_fragment?.onActivityResume()
|
}
|
||||||
refreshContacts(true, true)
|
refreshContacts(true, true)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -197,7 +197,7 @@ class MainActivity : SimpleActivity(), RefreshContactsListener {
|
|||||||
|
|
||||||
override fun onQueryTextChange(newText: String): Boolean {
|
override fun onQueryTextChange(newText: String): Boolean {
|
||||||
if (isSearchOpen) {
|
if (isSearchOpen) {
|
||||||
(getCurrentFragment() as? MyViewPagerFragment)?.onSearchQueryChanged(newText)
|
getCurrentFragment()?.onSearchQueryChanged(newText)
|
||||||
}
|
}
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
@ -206,20 +206,20 @@ class MainActivity : SimpleActivity(), RefreshContactsListener {
|
|||||||
|
|
||||||
MenuItemCompat.setOnActionExpandListener(searchMenuItem, object : MenuItemCompat.OnActionExpandListener {
|
MenuItemCompat.setOnActionExpandListener(searchMenuItem, object : MenuItemCompat.OnActionExpandListener {
|
||||||
override fun onMenuItemActionExpand(item: MenuItem?): Boolean {
|
override fun onMenuItemActionExpand(item: MenuItem?): Boolean {
|
||||||
(getCurrentFragment() as? MyViewPagerFragment)?.onSearchOpened()
|
getCurrentFragment()?.onSearchOpened()
|
||||||
isSearchOpen = true
|
isSearchOpen = true
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onMenuItemActionCollapse(item: MenuItem?): Boolean {
|
override fun onMenuItemActionCollapse(item: MenuItem?): Boolean {
|
||||||
(getCurrentFragment() as? MyViewPagerFragment)?.onSearchClosed()
|
getCurrentFragment()?.onSearchClosed()
|
||||||
isSearchOpen = false
|
isSearchOpen = false
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun getCurrentFragment() = when (viewpager.currentItem) {
|
private fun getCurrentFragment(): FragmentInterface? = when (viewpager.currentItem) {
|
||||||
0 -> contacts_fragment
|
0 -> contacts_fragment
|
||||||
1 -> favorites_fragment
|
1 -> favorites_fragment
|
||||||
else -> groups_fragment
|
else -> groups_fragment
|
||||||
@ -275,7 +275,7 @@ class MainActivity : SimpleActivity(), RefreshContactsListener {
|
|||||||
viewpager.addOnPageChangeListener(object : ViewPager.OnPageChangeListener {
|
viewpager.addOnPageChangeListener(object : ViewPager.OnPageChangeListener {
|
||||||
override fun onPageScrollStateChanged(state: Int) {
|
override fun onPageScrollStateChanged(state: Int) {
|
||||||
if (isSearchOpen) {
|
if (isSearchOpen) {
|
||||||
(getCurrentFragment() as? MyViewPagerFragment)?.onSearchQueryChanged("")
|
getCurrentFragment()?.onSearchQueryChanged("")
|
||||||
searchMenuItem?.collapseActionView()
|
searchMenuItem?.collapseActionView()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -285,8 +285,9 @@ class MainActivity : SimpleActivity(), RefreshContactsListener {
|
|||||||
|
|
||||||
override fun onPageSelected(position: Int) {
|
override fun onPageSelected(position: Int) {
|
||||||
main_tabs_holder.getTabAt(position)?.select()
|
main_tabs_holder.getTabAt(position)?.select()
|
||||||
contacts_fragment?.finishActMode()
|
getAllFragments().forEach {
|
||||||
favorites_fragment?.finishActMode()
|
(it as? FragmentInterface)?.finishActMode()
|
||||||
|
}
|
||||||
invalidateOptionsMenu()
|
invalidateOptionsMenu()
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
@ -425,6 +426,8 @@ class MainActivity : SimpleActivity(), RefreshContactsListener {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private fun getAllFragments() = arrayListOf(contacts_fragment, favorites_fragment, groups_fragment)
|
||||||
|
|
||||||
override fun refreshFavorites() {
|
override fun refreshFavorites() {
|
||||||
refreshContacts(false, true)
|
refreshContacts(false, true)
|
||||||
}
|
}
|
||||||
|
@ -88,10 +88,23 @@ class GroupsFragment(context: Context, attributeSet: AttributeSet) : Coordinator
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fun onActivityResume() {
|
override fun onActivityResume() {
|
||||||
updateViewStuff()
|
updateViewStuff()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun finishActMode() {
|
||||||
|
(groups_list.adapter as? GroupsAdapter)?.finishActMode()
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onSearchQueryChanged(text: String) {
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onSearchOpened() {
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onSearchClosed() {
|
||||||
|
}
|
||||||
|
|
||||||
private fun updateViewStuff() {
|
private fun updateViewStuff() {
|
||||||
context.updateTextColors(groups_wrapper.parent as ViewGroup)
|
context.updateTextColors(groups_wrapper.parent as ViewGroup)
|
||||||
groups_fastscroller.updateBubbleColors()
|
groups_fastscroller.updateBubbleColors()
|
||||||
|
@ -149,15 +149,15 @@ abstract class MyViewPagerFragment(context: Context, attributeSet: AttributeSet)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fun onActivityResume() {
|
override fun onActivityResume() {
|
||||||
updateViewStuff()
|
updateViewStuff()
|
||||||
}
|
}
|
||||||
|
|
||||||
fun finishActMode() {
|
override fun finishActMode() {
|
||||||
(fragment_list.adapter as? ContactsAdapter)?.finishActMode()
|
(fragment_list.adapter as? ContactsAdapter)?.finishActMode()
|
||||||
}
|
}
|
||||||
|
|
||||||
fun onSearchQueryChanged(text: String) {
|
override fun onSearchQueryChanged(text: String) {
|
||||||
(fragment_list.adapter as? ContactsAdapter)?.apply {
|
(fragment_list.adapter as? ContactsAdapter)?.apply {
|
||||||
val filtered = contactsIgnoringSearch.filter {
|
val filtered = contactsIgnoringSearch.filter {
|
||||||
it.getFullName(startNameWithSurname).contains(text, true) ||
|
it.getFullName(startNameWithSurname).contains(text, true) ||
|
||||||
@ -180,11 +180,11 @@ abstract class MyViewPagerFragment(context: Context, attributeSet: AttributeSet)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fun onSearchOpened() {
|
override fun onSearchOpened() {
|
||||||
contactsIgnoringSearch = (fragment_list?.adapter as? ContactsAdapter)?.contactItems ?: ArrayList()
|
contactsIgnoringSearch = (fragment_list?.adapter as? ContactsAdapter)?.contactItems ?: ArrayList()
|
||||||
}
|
}
|
||||||
|
|
||||||
fun onSearchClosed() {
|
override fun onSearchClosed() {
|
||||||
(fragment_list.adapter as? ContactsAdapter)?.updateItems(contactsIgnoringSearch)
|
(fragment_list.adapter as? ContactsAdapter)?.updateItems(contactsIgnoringSearch)
|
||||||
if (this is FavoritesFragment) {
|
if (this is FavoritesFragment) {
|
||||||
fragment_placeholder.text = activity?.getString(R.string.no_favorites)
|
fragment_placeholder.text = activity?.getString(R.string.no_favorites)
|
||||||
|
@ -6,6 +6,8 @@ import com.simplemobiletools.contacts.models.Contact
|
|||||||
interface FragmentInterface {
|
interface FragmentInterface {
|
||||||
fun setupFragment(activity: MainActivity)
|
fun setupFragment(activity: MainActivity)
|
||||||
|
|
||||||
|
fun onActivityResume()
|
||||||
|
|
||||||
fun textColorChanged(color: Int)
|
fun textColorChanged(color: Int)
|
||||||
|
|
||||||
fun primaryColorChanged(color: Int)
|
fun primaryColorChanged(color: Int)
|
||||||
@ -13,4 +15,12 @@ interface FragmentInterface {
|
|||||||
fun refreshContacts(contacts: ArrayList<Contact>)
|
fun refreshContacts(contacts: ArrayList<Contact>)
|
||||||
|
|
||||||
fun showContactThumbnailsChanged(showThumbnails: Boolean)
|
fun showContactThumbnailsChanged(showThumbnails: Boolean)
|
||||||
|
|
||||||
|
fun finishActMode()
|
||||||
|
|
||||||
|
fun onSearchQueryChanged(text: String)
|
||||||
|
|
||||||
|
fun onSearchOpened()
|
||||||
|
|
||||||
|
fun onSearchClosed()
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user