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_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() {

View File

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

View File

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

View File

@ -7,12 +7,13 @@ import android.util.AttributeSet
import com.reddit.indicatorfastscroll.FastScrollItemIndicator
import com.simplemobiletools.commons.adapters.MyRecyclerViewAdapter
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.dialer.R
import com.simplemobiletools.dialer.activities.SimpleActivity
import com.simplemobiletools.dialer.adapters.ContactsAdapter
import com.simplemobiletools.dialer.extensions.config
import com.simplemobiletools.dialer.extensions.startContactDetailsIntent
import com.simplemobiletools.dialer.interfaces.RefreshItemsListener
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>()
override fun setupFragment() {
val config = context.config
val placeholderResId = if (context.hasPermission(PERMISSION_READ_CONTACTS)) {
R.string.no_contacts_found
} else {
@ -39,7 +39,6 @@ class ContactsFragment(context: Context, attributeSet: AttributeSet) : MyViewPag
fragment_placeholder_2.apply {
text = context.getString(placeholderActionResId)
setTextColor(config.primaryColor)
underlineText()
setOnClickListener {
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 {
launchCreateNewIntent()
}
}
override fun textColorChanged(color: Int) {
(fragment_list?.adapter as? MyRecyclerViewAdapter)?.updateTextColor(color)
letter_fastscroller?.textColor = color.getColorStateList()
}
override fun setupColors(textColor: Int, primaryColor: Int, adjustedPrimaryColor: Int) {
(fragment_list?.adapter as? MyRecyclerViewAdapter)?.updateTextColor(textColor)
fragment_placeholder_2.setTextColor(primaryColor)
override fun primaryColorChanged(color: Int) {
letter_fastscroller_thumb?.thumbColor = color.getColorStateList()
letter_fastscroller_thumb?.textColor = color.getContrastColor()
fragment_fab.background.applyColorFilter(context.getAdjustedPrimaryColor())
letter_fastscroller.textColor = textColor.getColorStateList()
letter_fastscroller_thumb.setupWithFastScroller(letter_fastscroller)
letter_fastscroller_thumb.textColor = adjustedPrimaryColor.getContrastColor()
letter_fastscroller_thumb.thumbColor = adjustedPrimaryColor.getColorStateList()
fragment_fab.setColors(
textColor,
adjustedPrimaryColor,
adjustedPrimaryColor.getContrastColor()
)
}
override fun refreshItems() {

View File

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

View File

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

View File

@ -26,9 +26,7 @@ class RecentsFragment(context: Context, attributeSet: AttributeSet) : MyViewPage
}
recents_placeholder.text = context.getString(placeholderResId)
recents_placeholder.setTextColor(context.config.textColor)
recents_placeholder_2.apply {
setTextColor(context.getAdjustedPrimaryColor())
underlineText()
setOnClickListener {
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 {
initDrawables()
updateTextColor(color)
updateTextColor(textColor)
}
}
override fun primaryColorChanged(color: Int) {}
override fun refreshItems() {
val privateCursor = context?.getMyContactsCursor()?.loadInBackground()
val groupSubsequentCalls = context?.config?.groupSubsequentCalls ?: false