From 3b3908dd7c7034ed9f925e7db1dfc4f19fe4c697 Mon Sep 17 00:00:00 2001 From: J-Jamet Date: Sun, 14 May 2023 21:25:24 +0200 Subject: [PATCH] fix: Better icon pack implementation --- .../keepass/icons/IconDrawableFactory.kt | 1 + .../keepass/icons/IconPackChooser.kt | 4 ++-- .../preference/IconPackListPreference.kt | 4 ++-- app/src/main/res/values/dimens.xml | 1 - icon-pack/build.gradle | 1 + .../com/kunzisoft/keepass/icon}/IconPack.kt | 12 ++++++---- .../src/main/res/drawable/ic_blank_32dp.png | Bin icon-pack/src/main/res/values/dimens.xml | 22 ++++++++++++++++++ 8 files changed, 36 insertions(+), 9 deletions(-) rename {app/src/main/java/com/kunzisoft/keepass/icons => icon-pack/src/main/java/com/kunzisoft/keepass/icon}/IconPack.kt (92%) rename {database => icon-pack}/src/main/res/drawable/ic_blank_32dp.png (100%) create mode 100644 icon-pack/src/main/res/values/dimens.xml 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 f15b89110..171182be3 100644 --- a/app/src/main/java/com/kunzisoft/keepass/icons/IconDrawableFactory.kt +++ b/app/src/main/java/com/kunzisoft/keepass/icons/IconDrawableFactory.kt @@ -36,6 +36,7 @@ import com.kunzisoft.keepass.database.element.binary.BinaryCache import com.kunzisoft.keepass.database.element.binary.BinaryData import com.kunzisoft.keepass.database.element.icon.IconImageCustom import com.kunzisoft.keepass.database.element.icon.IconImageDraw +import com.kunzisoft.keepass.icon.IconPack import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch diff --git a/app/src/main/java/com/kunzisoft/keepass/icons/IconPackChooser.kt b/app/src/main/java/com/kunzisoft/keepass/icons/IconPackChooser.kt index 0e2765e4d..9945e0187 100644 --- a/app/src/main/java/com/kunzisoft/keepass/icons/IconPackChooser.kt +++ b/app/src/main/java/com/kunzisoft/keepass/icons/IconPackChooser.kt @@ -22,7 +22,7 @@ package com.kunzisoft.keepass.icons import android.content.Context import android.util.Log import com.kunzisoft.keepass.BuildConfig -import com.kunzisoft.keepass.R +import com.kunzisoft.keepass.icon.IconPack import com.kunzisoft.keepass.settings.PreferencesUtil /** @@ -65,7 +65,7 @@ object IconPackChooser { addDefaultIconPack(context) } if(defaultIconSize == 0) { - defaultIconSize = context.resources.getDimension(R.dimen.icon_size).toInt() + defaultIconSize = IconPack.defaultIconSize(context) } } } diff --git a/app/src/main/java/com/kunzisoft/keepass/settings/preference/IconPackListPreference.kt b/app/src/main/java/com/kunzisoft/keepass/settings/preference/IconPackListPreference.kt index 067164f00..3ed4a43ec 100644 --- a/app/src/main/java/com/kunzisoft/keepass/settings/preference/IconPackListPreference.kt +++ b/app/src/main/java/com/kunzisoft/keepass/settings/preference/IconPackListPreference.kt @@ -36,9 +36,9 @@ class IconPackListPreference @JvmOverloads constructor(context: Context, val entries = ArrayList() val values = ArrayList() for (iconPack in IconPackChooser.getIconPackList(context)) { - if (iconPack.id != null) { + iconPack.id?.let { iconPackId -> entries.add(iconPack.name) - values.add(iconPack.id) + values.add(iconPackId) } } diff --git a/app/src/main/res/values/dimens.xml b/app/src/main/res/values/dimens.xml index 6e50fcb2f..e87cea9f7 100644 --- a/app/src/main/res/values/dimens.xml +++ b/app/src/main/res/values/dimens.xml @@ -29,7 +29,6 @@ 5dp 14dp 148dp - 32dp 48dp 0dp 1 diff --git a/icon-pack/build.gradle b/icon-pack/build.gradle index 66c91519a..46eeec067 100644 --- a/icon-pack/build.gradle +++ b/icon-pack/build.gradle @@ -1,4 +1,5 @@ apply plugin: 'com.android.library' +apply plugin: 'kotlin-android' android { compileSdkVersion 32 diff --git a/app/src/main/java/com/kunzisoft/keepass/icons/IconPack.kt b/icon-pack/src/main/java/com/kunzisoft/keepass/icon/IconPack.kt similarity index 92% rename from app/src/main/java/com/kunzisoft/keepass/icons/IconPack.kt rename to icon-pack/src/main/java/com/kunzisoft/keepass/icon/IconPack.kt index a4f9db318..3996e336a 100644 --- a/app/src/main/java/com/kunzisoft/keepass/icons/IconPack.kt +++ b/icon-pack/src/main/java/com/kunzisoft/keepass/icon/IconPack.kt @@ -17,11 +17,11 @@ * along with KeePassDX. If not, see . * */ -package com.kunzisoft.keepass.icons +package com.kunzisoft.keepass.icon +import android.content.Context import android.content.res.Resources import android.util.SparseIntArray -import com.kunzisoft.keepass.database.R import java.util.* /** @@ -73,7 +73,7 @@ class IconPack(packageName: String, resources: Resources, resourceId: Int) { // Build the list of icons var num = 0 - while (num < NB_ICONS) { + while (num < NB_DEFAULT_ICONS) { // To construct the id with name_ic_XX_32dp (ex : classic_ic_08_32dp ) val resId = resources.getIdentifier( id + "_" + String.format(Locale.ENGLISH, "%02d", num) + "_32dp", @@ -129,6 +129,10 @@ class IconPack(packageName: String, resources: Resources, resourceId: Int) { } companion object { - const val NB_ICONS = 69 + private const val NB_DEFAULT_ICONS = 69 + + fun defaultIconSize(context: Context): Int { + return context.resources.getDimension(R.dimen.icon_size).toInt() + } } } diff --git a/database/src/main/res/drawable/ic_blank_32dp.png b/icon-pack/src/main/res/drawable/ic_blank_32dp.png similarity index 100% rename from database/src/main/res/drawable/ic_blank_32dp.png rename to icon-pack/src/main/res/drawable/ic_blank_32dp.png diff --git a/icon-pack/src/main/res/values/dimens.xml b/icon-pack/src/main/res/values/dimens.xml new file mode 100644 index 000000000..ec2a696ff --- /dev/null +++ b/icon-pack/src/main/res/values/dimens.xml @@ -0,0 +1,22 @@ + + + + 32dp +