From e5184a156848fd35539d01f6e4e52922fbdac58a Mon Sep 17 00:00:00 2001 From: J-Jamet Date: Sun, 7 Mar 2021 17:15:48 +0100 Subject: [PATCH] Fix icon selection and icon removed no longer accessible --- .../fragments/IconStandardFragment.kt | 4 ++-- .../keepass/icons/IconDrawableFactory.kt | 23 +++++++++++-------- 2 files changed, 15 insertions(+), 12 deletions(-) diff --git a/app/src/main/java/com/kunzisoft/keepass/activities/fragments/IconStandardFragment.kt b/app/src/main/java/com/kunzisoft/keepass/activities/fragments/IconStandardFragment.kt index d51bec5f5..8331b4f89 100644 --- a/app/src/main/java/com/kunzisoft/keepass/activities/fragments/IconStandardFragment.kt +++ b/app/src/main/java/com/kunzisoft/keepass/activities/fragments/IconStandardFragment.kt @@ -34,9 +34,9 @@ class IconStandardFragment : IconFragment() { return database.getStandardIconList() } - override fun onIconLongClickListener(icon: IconImageStandard) { + override fun onIconClickListener(icon: IconImageStandard) { iconPickerViewModel.pickStandardIcon(icon) } - override fun onIconClickListener(icon: IconImageStandard) {} + override fun onIconLongClickListener(icon: IconImageStandard) {} } \ No newline at end of file diff --git a/app/src/main/java/com/kunzisoft/keepass/icons/IconDrawableFactory.kt b/app/src/main/java/com/kunzisoft/keepass/icons/IconDrawableFactory.kt index eceb20cb8..c6e21293e 100644 --- a/app/src/main/java/com/kunzisoft/keepass/icons/IconDrawableFactory.kt +++ b/app/src/main/java/com/kunzisoft/keepass/icons/IconDrawableFactory.kt @@ -66,22 +66,23 @@ class IconDrawableFactory(private val retrieveCipherKey : () -> Database.LoadedK */ private fun getIconSuperDrawable(context: Context, iconDraw: IconImageDraw, width: Int, tintColor: Int = Color.WHITE): SuperDrawable { val icon = iconDraw.getIconImageToDraw() - return if (!icon.custom.isUnknown) { - SuperDrawable(getIconDrawable(context.resources, icon.custom)) - } else { - val iconPack = IconPackChooser.getSelectedIconPack(context) - iconPack?.iconToResId(icon.standard.id)?.let { iconId -> - SuperDrawable(getIconDrawable(context.resources, iconId, width, tintColor), iconPack.tintable()) - } ?: run { - SuperDrawable(PatternIcon(context.resources).blankDrawable) + if (!icon.custom.isUnknown) { + getIconDrawable(context.resources, icon.custom)?.let { + return SuperDrawable(it) } } + val iconPack = IconPackChooser.getSelectedIconPack(context) + iconPack?.iconToResId(icon.standard.id)?.let { iconId -> + return SuperDrawable(getIconDrawable(context.resources, iconId, width, tintColor), iconPack.tintable()) + } ?: run { + return SuperDrawable(PatternIcon(context.resources).blankDrawable) + } } /** * Build a custom [Drawable] from custom [icon] */ - private fun getIconDrawable(resources: Resources, icon: IconImageCustom): Drawable { + private fun getIconDrawable(resources: Resources, icon: IconImageCustom): Drawable? { val patternIcon = PatternIcon(resources) val cipherKey = retrieveCipherKey.invoke() if (cipherKey != null) { @@ -93,12 +94,14 @@ class IconDrawableFactory(private val retrieveCipherKey : () -> Database.LoadedK val createdDraw = BitmapDrawable(resources, bitmap) customIconMap[icon.uuid] = WeakReference(createdDraw) return createdDraw + } ?: run { + } } else { return draw } } - return patternIcon.blankDrawable + return null } /**