update colors on every resume to avoid some weird color issues

This commit is contained in:
tibbi
2021-02-12 18:04:51 +01:00
parent 8d97c3d0c3
commit 9765e557d7
7 changed files with 41 additions and 73 deletions

View File

@ -83,7 +83,8 @@ class DialpadActivity : SimpleActivity() {
letter_fastscroller.textColor = config.textColor.getColorStateList() letter_fastscroller.textColor = config.textColor.getColorStateList()
letter_fastscroller_thumb.setupWithFastScroller(letter_fastscroller) letter_fastscroller_thumb.setupWithFastScroller(letter_fastscroller)
letter_fastscroller_thumb.textColor = config.primaryColor.getContrastColor() letter_fastscroller_thumb.textColor = getAdjustedPrimaryColor().getContrastColor()
letter_fastscroller_thumb.thumbColor = getAdjustedPrimaryColor().getColorStateList()
} }
override fun onResume() { override fun onResume() {

View File

@ -35,8 +35,6 @@ import kotlinx.android.synthetic.main.fragment_recents.*
import java.util.* import java.util.*
class MainActivity : SimpleActivity() { class MainActivity : SimpleActivity() {
private var storedTextColor = 0
private var storedPrimaryColor = 0
private var isSearchOpen = false private var isSearchOpen = false
private var searchMenuItem: MenuItem? = null private var searchMenuItem: MenuItem? = null
@ -45,7 +43,6 @@ class MainActivity : SimpleActivity() {
setContentView(R.layout.activity_main) setContentView(R.layout.activity_main)
appLaunched(BuildConfig.APPLICATION_ID) appLaunched(BuildConfig.APPLICATION_ID)
setupTabColors() setupTabColors()
storeStateVariables()
if (isDefaultDialer()) { if (isDefaultDialer()) {
checkContactPermissions() checkContactPermissions()
@ -65,24 +62,14 @@ class MainActivity : SimpleActivity() {
main_tabs_holder.setBackgroundColor(config.backgroundColor) main_tabs_holder.setBackgroundColor(config.backgroundColor)
val configTextColor = config.textColor
if (storedTextColor != configTextColor) {
getInactiveTabIndexes(viewpager.currentItem).forEach { getInactiveTabIndexes(viewpager.currentItem).forEach {
main_tabs_holder.getTabAt(it)?.icon?.applyColorFilter(configTextColor) main_tabs_holder.getTabAt(it)?.icon?.applyColorFilter(config.textColor)
} }
getAllFragments().forEach {
it?.textColorChanged(configTextColor)
}
}
val configPrimaryColor = config.primaryColor
if (storedPrimaryColor != configPrimaryColor) {
main_tabs_holder.setSelectedTabIndicatorColor(adjustedPrimaryColor) main_tabs_holder.setSelectedTabIndicatorColor(adjustedPrimaryColor)
main_tabs_holder.getTabAt(viewpager.currentItem)?.icon?.applyColorFilter(adjustedPrimaryColor) main_tabs_holder.getTabAt(viewpager.currentItem)?.icon?.applyColorFilter(adjustedPrimaryColor)
getAllFragments().forEach { getAllFragments().forEach {
it?.primaryColorChanged(configPrimaryColor) it?.setupColors(config.textColor, config.primaryColor, getAdjustedPrimaryColor())
}
} }
if (!isSearchOpen) { if (!isSearchOpen) {
@ -95,11 +82,6 @@ class MainActivity : SimpleActivity() {
}, 2000) }, 2000)
} }
override fun onPause() {
super.onPause()
storeStateVariables()
}
override fun onDestroy() { override fun onDestroy() {
super.onDestroy() super.onDestroy()
config.lastUsedViewPagerPage = viewpager.currentItem config.lastUsedViewPagerPage = viewpager.currentItem
@ -139,13 +121,6 @@ class MainActivity : SimpleActivity() {
refreshItems() refreshItems()
} }
private fun storeStateVariables() {
config.apply {
storedTextColor = textColor
storedPrimaryColor = primaryColor
}
}
private fun checkContactPermissions() { private fun checkContactPermissions() {
handlePermission(PERMISSION_READ_CONTACTS) { handlePermission(PERMISSION_READ_CONTACTS) {
initFragments() initFragments()

View File

@ -2,6 +2,7 @@ package com.simplemobiletools.dialer.dialogs
import androidx.appcompat.app.AlertDialog import androidx.appcompat.app.AlertDialog
import com.reddit.indicatorfastscroll.FastScrollItemIndicator import com.reddit.indicatorfastscroll.FastScrollItemIndicator
import com.simplemobiletools.commons.extensions.getAdjustedPrimaryColor
import com.simplemobiletools.commons.extensions.getColorStateList import com.simplemobiletools.commons.extensions.getColorStateList
import com.simplemobiletools.commons.extensions.getContrastColor import com.simplemobiletools.commons.extensions.getContrastColor
import com.simplemobiletools.commons.extensions.setupDialogStuff import com.simplemobiletools.commons.extensions.setupDialogStuff
@ -21,7 +22,8 @@ class SelectContactDialog(val activity: SimpleActivity, contacts: ArrayList<Simp
view.apply { view.apply {
letter_fastscroller.textColor = context.config.textColor.getColorStateList() letter_fastscroller.textColor = context.config.textColor.getColorStateList()
letter_fastscroller_thumb.setupWithFastScroller(letter_fastscroller) letter_fastscroller_thumb.setupWithFastScroller(letter_fastscroller)
letter_fastscroller_thumb.textColor = context.config.primaryColor.getContrastColor() letter_fastscroller_thumb.textColor = context.getAdjustedPrimaryColor().getContrastColor()
letter_fastscroller_thumb.thumbColor = context.getAdjustedPrimaryColor().getColorStateList()
letter_fastscroller.setupWithRecyclerView(select_contact_list, { position -> letter_fastscroller.setupWithRecyclerView(select_contact_list, { position ->
try { try {

View File

@ -7,12 +7,13 @@ import android.util.AttributeSet
import com.reddit.indicatorfastscroll.FastScrollItemIndicator import com.reddit.indicatorfastscroll.FastScrollItemIndicator
import com.simplemobiletools.commons.adapters.MyRecyclerViewAdapter import com.simplemobiletools.commons.adapters.MyRecyclerViewAdapter
import com.simplemobiletools.commons.extensions.* import com.simplemobiletools.commons.extensions.*
import com.simplemobiletools.commons.helpers.* import com.simplemobiletools.commons.helpers.MyContactsContentProvider
import com.simplemobiletools.commons.helpers.PERMISSION_READ_CONTACTS
import com.simplemobiletools.commons.helpers.SimpleContactsHelper
import com.simplemobiletools.commons.models.SimpleContact import com.simplemobiletools.commons.models.SimpleContact
import com.simplemobiletools.dialer.R import com.simplemobiletools.dialer.R
import com.simplemobiletools.dialer.activities.SimpleActivity import com.simplemobiletools.dialer.activities.SimpleActivity
import com.simplemobiletools.dialer.adapters.ContactsAdapter import com.simplemobiletools.dialer.adapters.ContactsAdapter
import com.simplemobiletools.dialer.extensions.config
import com.simplemobiletools.dialer.extensions.startContactDetailsIntent import com.simplemobiletools.dialer.extensions.startContactDetailsIntent
import com.simplemobiletools.dialer.interfaces.RefreshItemsListener import com.simplemobiletools.dialer.interfaces.RefreshItemsListener
import kotlinx.android.synthetic.main.fragment_letters_layout.view.* import kotlinx.android.synthetic.main.fragment_letters_layout.view.*
@ -22,7 +23,6 @@ class ContactsFragment(context: Context, attributeSet: AttributeSet) : MyViewPag
private var allContacts = ArrayList<SimpleContact>() private var allContacts = ArrayList<SimpleContact>()
override fun setupFragment() { override fun setupFragment() {
val config = context.config
val placeholderResId = if (context.hasPermission(PERMISSION_READ_CONTACTS)) { val placeholderResId = if (context.hasPermission(PERMISSION_READ_CONTACTS)) {
R.string.no_contacts_found R.string.no_contacts_found
} else { } else {
@ -39,7 +39,6 @@ class ContactsFragment(context: Context, attributeSet: AttributeSet) : MyViewPag
fragment_placeholder_2.apply { fragment_placeholder_2.apply {
text = context.getString(placeholderActionResId) text = context.getString(placeholderActionResId)
setTextColor(config.primaryColor)
underlineText() underlineText()
setOnClickListener { setOnClickListener {
if (context.hasPermission(PERMISSION_READ_CONTACTS)) { if (context.hasPermission(PERMISSION_READ_CONTACTS)) {
@ -50,26 +49,25 @@ class ContactsFragment(context: Context, attributeSet: AttributeSet) : MyViewPag
} }
} }
letter_fastscroller.textColor = config.textColor.getColorStateList()
letter_fastscroller_thumb.setupWithFastScroller(letter_fastscroller)
letter_fastscroller_thumb.textColor = config.primaryColor.getContrastColor()
val adjustedPrimaryColor = context.getAdjustedPrimaryColor()
fragment_fab.setColors(config.textColor, adjustedPrimaryColor, adjustedPrimaryColor.getContrastColor())
fragment_fab.setOnClickListener { fragment_fab.setOnClickListener {
launchCreateNewIntent() launchCreateNewIntent()
} }
} }
override fun textColorChanged(color: Int) { override fun setupColors(textColor: Int, primaryColor: Int, adjustedPrimaryColor: Int) {
(fragment_list?.adapter as? MyRecyclerViewAdapter)?.updateTextColor(color) (fragment_list?.adapter as? MyRecyclerViewAdapter)?.updateTextColor(textColor)
letter_fastscroller?.textColor = color.getColorStateList() fragment_placeholder_2.setTextColor(primaryColor)
}
override fun primaryColorChanged(color: Int) { letter_fastscroller.textColor = textColor.getColorStateList()
letter_fastscroller_thumb?.thumbColor = color.getColorStateList() letter_fastscroller_thumb.setupWithFastScroller(letter_fastscroller)
letter_fastscroller_thumb?.textColor = color.getContrastColor() letter_fastscroller_thumb.textColor = adjustedPrimaryColor.getContrastColor()
fragment_fab.background.applyColorFilter(context.getAdjustedPrimaryColor()) letter_fastscroller_thumb.thumbColor = adjustedPrimaryColor.getColorStateList()
fragment_fab.setColors(
textColor,
adjustedPrimaryColor,
adjustedPrimaryColor.getContrastColor()
)
} }
override fun refreshItems() { override fun refreshItems() {

View File

@ -14,7 +14,6 @@ import com.simplemobiletools.commons.models.SimpleContact
import com.simplemobiletools.dialer.R import com.simplemobiletools.dialer.R
import com.simplemobiletools.dialer.activities.SimpleActivity import com.simplemobiletools.dialer.activities.SimpleActivity
import com.simplemobiletools.dialer.adapters.ContactsAdapter import com.simplemobiletools.dialer.adapters.ContactsAdapter
import com.simplemobiletools.dialer.extensions.config
import com.simplemobiletools.dialer.interfaces.RefreshItemsListener import com.simplemobiletools.dialer.interfaces.RefreshItemsListener
import kotlinx.android.synthetic.main.fragment_letters_layout.view.* import kotlinx.android.synthetic.main.fragment_letters_layout.view.*
import java.util.* import java.util.*
@ -30,23 +29,17 @@ class FavoritesFragment(context: Context, attributeSet: AttributeSet) : MyViewPa
} }
fragment_placeholder.text = context.getString(placeholderResId) fragment_placeholder.text = context.getString(placeholderResId)
letter_fastscroller.textColor = context.config.textColor.getColorStateList()
letter_fastscroller_thumb.setupWithFastScroller(letter_fastscroller)
letter_fastscroller_thumb.textColor = context.config.primaryColor.getContrastColor()
fragment_fab.beGone() fragment_fab.beGone()
fragment_placeholder_2.beGone() fragment_placeholder_2.beGone()
} }
override fun textColorChanged(color: Int) { override fun setupColors(textColor: Int, primaryColor: Int, adjustedPrimaryColor: Int) {
(fragment_list?.adapter as? MyRecyclerViewAdapter)?.updateTextColor(color) (fragment_list?.adapter as? MyRecyclerViewAdapter)?.updateTextColor(textColor)
letter_fastscroller?.textColor = color.getColorStateList()
}
override fun primaryColorChanged(color: Int) { letter_fastscroller.textColor = textColor.getColorStateList()
letter_fastscroller_thumb?.thumbColor = color.getColorStateList() letter_fastscroller_thumb.setupWithFastScroller(letter_fastscroller)
letter_fastscroller_thumb?.textColor = color.getContrastColor() letter_fastscroller_thumb.textColor = adjustedPrimaryColor.getContrastColor()
letter_fastscroller_thumb.thumbColor = adjustedPrimaryColor.getColorStateList()
} }
override fun refreshItems() { override fun refreshItems() {

View File

@ -4,6 +4,7 @@ import android.content.Context
import android.util.AttributeSet import android.util.AttributeSet
import android.widget.RelativeLayout import android.widget.RelativeLayout
import com.simplemobiletools.commons.adapters.MyRecyclerViewAdapter import com.simplemobiletools.commons.adapters.MyRecyclerViewAdapter
import com.simplemobiletools.commons.extensions.getAdjustedPrimaryColor
import com.simplemobiletools.dialer.activities.SimpleActivity import com.simplemobiletools.dialer.activities.SimpleActivity
import com.simplemobiletools.dialer.extensions.config import com.simplemobiletools.dialer.extensions.config
import com.simplemobiletools.dialer.helpers.Config import com.simplemobiletools.dialer.helpers.Config
@ -21,6 +22,7 @@ abstract class MyViewPagerFragment(context: Context, attributeSet: AttributeSet)
this.activity = activity this.activity = activity
setupFragment() setupFragment()
setupColors(config.textColor, config.primaryColor, activity.getAdjustedPrimaryColor())
} }
} }
@ -31,9 +33,7 @@ abstract class MyViewPagerFragment(context: Context, attributeSet: AttributeSet)
abstract fun setupFragment() abstract fun setupFragment()
abstract fun textColorChanged(color: Int) abstract fun setupColors(textColor: Int, primaryColor: Int, adjustedPrimaryColor: Int)
abstract fun primaryColorChanged(color: Int)
abstract fun onSearchClosed() abstract fun onSearchClosed()

View File

@ -26,9 +26,7 @@ class RecentsFragment(context: Context, attributeSet: AttributeSet) : MyViewPage
} }
recents_placeholder.text = context.getString(placeholderResId) recents_placeholder.text = context.getString(placeholderResId)
recents_placeholder.setTextColor(context.config.textColor)
recents_placeholder_2.apply { recents_placeholder_2.apply {
setTextColor(context.getAdjustedPrimaryColor())
underlineText() underlineText()
setOnClickListener { setOnClickListener {
requestCallLogPermission() requestCallLogPermission()
@ -36,15 +34,16 @@ class RecentsFragment(context: Context, attributeSet: AttributeSet) : MyViewPage
} }
} }
override fun textColorChanged(color: Int) { override fun setupColors(textColor: Int, primaryColor: Int, adjustedPrimaryColor: Int) {
recents_placeholder.setTextColor(textColor)
recents_placeholder_2.setTextColor(adjustedPrimaryColor)
(recents_list?.adapter as? RecentCallsAdapter)?.apply { (recents_list?.adapter as? RecentCallsAdapter)?.apply {
initDrawables() initDrawables()
updateTextColor(color) updateTextColor(textColor)
} }
} }
override fun primaryColorChanged(color: Int) {}
override fun refreshItems() { override fun refreshItems() {
val privateCursor = context?.getMyContactsCursor()?.loadInBackground() val privateCursor = context?.getMyContactsCursor()?.loadInBackground()
val groupSubsequentCalls = context?.config?.groupSubsequentCalls ?: false val groupSubsequentCalls = context?.config?.groupSubsequentCalls ?: false