refactor: move getIcon away from FileTools
fix: use IconResolver in GenericItem
This commit is contained in:
@@ -5,13 +5,11 @@ import android.view.View;
|
|||||||
import android.widget.ImageButton;
|
import android.widget.ImageButton;
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
|
|
||||||
import androidx.annotation.NonNull;
|
|
||||||
import androidx.appcompat.app.AppCompatActivity;
|
import androidx.appcompat.app.AppCompatActivity;
|
||||||
import eu.konggdev.strikemaps.R;
|
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.map.style.document.StyleDocument;
|
||||||
import eu.konggdev.strikemaps.ui.UIComponent;
|
import eu.konggdev.strikemaps.ui.UIComponent;
|
||||||
|
import eu.konggdev.strikemaps.util.icon.IconResolver;
|
||||||
|
|
||||||
public class GenericItem implements UIItem {
|
public class GenericItem implements UIItem {
|
||||||
public String name;
|
public String name;
|
||||||
@@ -63,14 +61,14 @@ public class GenericItem implements UIItem {
|
|||||||
public GenericItem(StyleDocument style, Runnable onClick, AppCompatActivity activity) {
|
public GenericItem(StyleDocument style, Runnable onClick, AppCompatActivity activity) {
|
||||||
if (style == null) return;
|
if (style == null) return;
|
||||||
this.name = style.name;
|
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.onClick = onClick;
|
||||||
}
|
}
|
||||||
|
|
||||||
public GenericItem(StyleDocument style, Runnable onClick, Runnable onLongClick, AppCompatActivity activity) {
|
public GenericItem(StyleDocument style, Runnable onClick, Runnable onLongClick, AppCompatActivity activity) {
|
||||||
if (style == null) return;
|
if (style == null) return;
|
||||||
this.name = style.name;
|
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.onClick = onClick;
|
||||||
this.onLongClick = onLongClick;
|
this.onLongClick = onLongClick;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,26 +7,11 @@ import java.nio.charset.StandardCharsets;
|
|||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import android.util.Log;
|
|
||||||
|
|
||||||
import android.graphics.Bitmap;
|
|
||||||
import android.graphics.BitmapFactory;
|
|
||||||
import androidx.appcompat.app.AppCompatActivity;
|
import androidx.appcompat.app.AppCompatActivity;
|
||||||
|
|
||||||
//FIXME: Ugly
|
//FIXME: Ugly
|
||||||
public final class FileTools {
|
public final class FileTools {
|
||||||
private static final String TAG = "FileUtils";
|
private static final String TAG = "FileTools";
|
||||||
|
|
||||||
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;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public static String loadStringFromAssetFile(String filePath, AppCompatActivity activity) {
|
public static String loadStringFromAssetFile(String filePath, AppCompatActivity activity) {
|
||||||
try (InputStream is = activity.getAssets().open(filePath)) {
|
try (InputStream is = activity.getAssets().open(filePath)) {
|
||||||
|
|||||||
@@ -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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user