diff --git a/app/src/main/kotlin/com/simplemobiletools/dialer/activities/DialpadActivity.kt b/app/src/main/kotlin/com/simplemobiletools/dialer/activities/DialpadActivity.kt index 2400cdd2..85efcc8c 100644 --- a/app/src/main/kotlin/com/simplemobiletools/dialer/activities/DialpadActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/dialer/activities/DialpadActivity.kt @@ -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() { diff --git a/app/src/main/kotlin/com/simplemobiletools/dialer/activities/MainActivity.kt b/app/src/main/kotlin/com/simplemobiletools/dialer/activities/MainActivity.kt index 04f30bc2..18dbe665 100644 --- a/app/src/main/kotlin/com/simplemobiletools/dialer/activities/MainActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/dialer/activities/MainActivity.kt @@ -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() diff --git a/app/src/main/kotlin/com/simplemobiletools/dialer/dialogs/SelectContactDialog.kt b/app/src/main/kotlin/com/simplemobiletools/dialer/dialogs/SelectContactDialog.kt index dff28686..e1d5c36f 100644 --- a/app/src/main/kotlin/com/simplemobiletools/dialer/dialogs/SelectContactDialog.kt +++ b/app/src/main/kotlin/com/simplemobiletools/dialer/dialogs/SelectContactDialog.kt @@ -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 try { diff --git a/app/src/main/kotlin/com/simplemobiletools/dialer/fragments/ContactsFragment.kt b/app/src/main/kotlin/com/simplemobiletools/dialer/fragments/ContactsFragment.kt index 5347cf4b..c65f8ee2 100644 --- a/app/src/main/kotlin/com/simplemobiletools/dialer/fragments/ContactsFragment.kt +++ b/app/src/main/kotlin/com/simplemobiletools/dialer/fragments/ContactsFragment.kt @@ -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() 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() { diff --git a/app/src/main/kotlin/com/simplemobiletools/dialer/fragments/FavoritesFragment.kt b/app/src/main/kotlin/com/simplemobiletools/dialer/fragments/FavoritesFragment.kt index 8e70b74d..151f6061 100644 --- a/app/src/main/kotlin/com/simplemobiletools/dialer/fragments/FavoritesFragment.kt +++ b/app/src/main/kotlin/com/simplemobiletools/dialer/fragments/FavoritesFragment.kt @@ -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() { diff --git a/app/src/main/kotlin/com/simplemobiletools/dialer/fragments/MyViewPagerFragment.kt b/app/src/main/kotlin/com/simplemobiletools/dialer/fragments/MyViewPagerFragment.kt index 4b4f8db8..1e4e597b 100644 --- a/app/src/main/kotlin/com/simplemobiletools/dialer/fragments/MyViewPagerFragment.kt +++ b/app/src/main/kotlin/com/simplemobiletools/dialer/fragments/MyViewPagerFragment.kt @@ -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() diff --git a/app/src/main/kotlin/com/simplemobiletools/dialer/fragments/RecentsFragment.kt b/app/src/main/kotlin/com/simplemobiletools/dialer/fragments/RecentsFragment.kt index cf9fb723..d99ea005 100644 --- a/app/src/main/kotlin/com/simplemobiletools/dialer/fragments/RecentsFragment.kt +++ b/app/src/main/kotlin/com/simplemobiletools/dialer/fragments/RecentsFragment.kt @@ -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