Controls - Custom icon/color issues

1. Icon tint colors were not being reset, and improperly reused
2. Routines were using the default icon and not the app icon

Fixes: 168012518
Test: Use controls with custom icons, plus enough controls to scroll
the recyclerview in editing/favoriting activities

Change-Id: I5501139f895739bb414fb4cfa471597254ddaa03
This commit is contained in:
Matt Pietal
2020-09-08 10:46:55 -04:00
parent 2c313a31d2
commit 2fedcb61ea
2 changed files with 6 additions and 1 deletions

View File

@@ -263,6 +263,7 @@ internal class ControlHolder(
val context = itemView.context
val fg = context.getResources().getColorStateList(ri.foreground, context.getTheme())
icon.imageTintList = null
ci.customIcon?.let {
icon.setImageIcon(it)
} ?: run {

View File

@@ -104,6 +104,7 @@ class ControlsUiControllerImpl @Inject constructor (
private var hidden = true
private lateinit var dismissGlobalActions: Runnable
private val popupThemedContext = ContextThemeWrapper(context, R.style.Control_ListPopupWindow)
private var retainCache = false
private val collator = Collator.getInstance(context.resources.configuration.locales[0])
private val localeComparator = compareBy<SelectionItem, CharSequence>(collator) {
@@ -149,6 +150,7 @@ class ControlsUiControllerImpl @Inject constructor (
this.parent = parent
this.dismissGlobalActions = dismissGlobalActions
hidden = false
retainCache = false
allStructures = controlsController.get().getFavorites()
selectedStructure = loadPreference(allStructures)
@@ -235,6 +237,8 @@ class ControlsUiControllerImpl @Inject constructor (
}
putIntentExtras(i, si)
startActivity(context, i)
retainCache = true
}
private fun putIntentExtras(intent: Intent, si: StructureInfo) {
@@ -497,7 +501,7 @@ class ControlsUiControllerImpl @Inject constructor (
controlsListingController.get().removeCallback(listingCallback)
RenderInfo.clearCache()
if (!retainCache) RenderInfo.clearCache()
}
override fun onRefreshState(componentName: ComponentName, controls: List<Control>) {