diff --git a/app/src/main/java/eu/konggdev/strikemaps/ui/element/item/GenericItem.java b/app/src/main/java/eu/konggdev/strikemaps/ui/element/item/GenericItem.java index a90d3a3..60b8bbf 100644 --- a/app/src/main/java/eu/konggdev/strikemaps/ui/element/item/GenericItem.java +++ b/app/src/main/java/eu/konggdev/strikemaps/ui/element/item/GenericItem.java @@ -5,13 +5,11 @@ import android.view.View; import android.widget.ImageButton; import android.widget.TextView; -import androidx.annotation.NonNull; import androidx.appcompat.app.AppCompatActivity; import eu.konggdev.strikemaps.R; -import eu.konggdev.strikemaps.app.ComponentHolderActivity; -import eu.konggdev.strikemaps.util.file.FileTools; import eu.konggdev.strikemaps.map.style.document.StyleDocument; import eu.konggdev.strikemaps.ui.UIComponent; +import eu.konggdev.strikemaps.util.icon.IconResolver; public class GenericItem implements UIItem { public String name; @@ -63,14 +61,14 @@ public class GenericItem implements UIItem { public GenericItem(StyleDocument style, Runnable onClick, AppCompatActivity activity) { if (style == null) return; this.name = style.name; - this.image = style.icon != null ? FileTools.getIcon(style.icon, activity) : null; + this.image = style.icon != null ? IconResolver.getIcon(style.icon, activity) : null; this.onClick = onClick; } public GenericItem(StyleDocument style, Runnable onClick, Runnable onLongClick, AppCompatActivity activity) { if (style == null) return; this.name = style.name; - this.image = style.icon != null ? FileTools.getIcon(style.icon, activity) : null; + this.image = style.icon != null ? IconResolver.getIcon(style.icon, activity) : null; this.onClick = onClick; this.onLongClick = onLongClick; } diff --git a/app/src/main/java/eu/konggdev/strikemaps/util/file/FileTools.java b/app/src/main/java/eu/konggdev/strikemaps/util/file/FileTools.java index 53519ab..0b01809 100644 --- a/app/src/main/java/eu/konggdev/strikemaps/util/file/FileTools.java +++ b/app/src/main/java/eu/konggdev/strikemaps/util/file/FileTools.java @@ -7,26 +7,11 @@ import java.nio.charset.StandardCharsets; import java.util.ArrayList; import java.util.List; -import android.util.Log; - -import android.graphics.Bitmap; -import android.graphics.BitmapFactory; import androidx.appcompat.app.AppCompatActivity; //FIXME: Ugly public final class FileTools { - private static final String TAG = "FileUtils"; - - public static Bitmap getIcon(String iconLocator, AppCompatActivity activity) { - switch (iconLocator.split("//")[0]) { - //TODO: https - case "assets:": - return BitmapFactory.decodeStream(FileTools.openAssetStream("bundled/icon/" + iconLocator.split("//")[1], activity)); - default: - Log.e(TAG, "Unimplemented icon locator space: " + iconLocator); - return null; - } - } + private static final String TAG = "FileTools"; public static String loadStringFromAssetFile(String filePath, AppCompatActivity activity) { try (InputStream is = activity.getAssets().open(filePath)) { diff --git a/app/src/main/java/eu/konggdev/strikemaps/util/icon/IconResolver.java b/app/src/main/java/eu/konggdev/strikemaps/util/icon/IconResolver.java new file mode 100644 index 0000000..5da4c9e --- /dev/null +++ b/app/src/main/java/eu/konggdev/strikemaps/util/icon/IconResolver.java @@ -0,0 +1,22 @@ +package eu.konggdev.strikemaps.util.icon; + +import android.graphics.Bitmap; +import android.graphics.BitmapFactory; +import android.util.Log; +import androidx.appcompat.app.AppCompatActivity; +import eu.konggdev.strikemaps.util.file.FileTools; + +public final class IconResolver { + private static final String TAG = "IconResolver"; + + public static Bitmap getIcon(String iconLocator, AppCompatActivity activity) { + switch (iconLocator.split("//")[0]) { + //TODO: https + case "assets:": + return BitmapFactory.decodeStream(FileTools.openAssetStream("bundled/icon/" + iconLocator.split("//")[1], activity)); + default: + Log.e(TAG, "Unimplemented icon locator space: " + iconLocator); + return null; + } + } +}