diff --git a/app/src/main/java/com/trianguloy/urlchecker/modules/companions/Size.java b/app/src/main/java/com/trianguloy/urlchecker/modules/companions/Size.java new file mode 100644 index 0000000..02c099c --- /dev/null +++ b/app/src/main/java/com/trianguloy/urlchecker/modules/companions/Size.java @@ -0,0 +1,31 @@ +package com.trianguloy.urlchecker.modules.companions; + +import com.trianguloy.urlchecker.R; +import com.trianguloy.urlchecker.utilities.Enums; + +/** A generic size enum */ +public enum Size implements Enums.IdEnum, Enums.StringEnum { + NONE(0, R.string.none), + SMALL(1, R.string.small), + NORMAL(2, R.string.normal), + BIG(3, R.string.big), + ; + + private final int id; + private final int string; + + Size(int id, int string) { + this.id = id; + this.string = string; + } + + @Override + public int getId() { + return id; + } + + @Override + public int getStringResource() { + return string; + } +} diff --git a/app/src/main/java/com/trianguloy/urlchecker/modules/list/OpenModule.java b/app/src/main/java/com/trianguloy/urlchecker/modules/list/OpenModule.java index 228d01e..a8aac5f 100644 --- a/app/src/main/java/com/trianguloy/urlchecker/modules/list/OpenModule.java +++ b/app/src/main/java/com/trianguloy/urlchecker/modules/list/OpenModule.java @@ -19,6 +19,7 @@ import com.trianguloy.urlchecker.modules.companions.CTabs; import com.trianguloy.urlchecker.modules.companions.Flags; import com.trianguloy.urlchecker.modules.companions.Incognito; import com.trianguloy.urlchecker.modules.companions.LastOpened; +import com.trianguloy.urlchecker.modules.companions.Size; import com.trianguloy.urlchecker.url.UrlData; import com.trianguloy.urlchecker.utilities.generics.GenericPref; import com.trianguloy.urlchecker.utilities.methods.AndroidUtils; @@ -60,6 +61,10 @@ public class OpenModule extends AModuleData { return new GenericPref.Bool("open_mergeCopy", false, cntx); } + public static GenericPref.Enumeration ICONSIZE_PREF(Context cntx) { + return new GenericPref.Enumeration<>("open_iconsize", Size.NORMAL, Size.class, cntx); + } + @Override public String getId() { return "open"; @@ -89,6 +94,7 @@ class OpenDialog extends AModuleDialog { private final GenericPref.Bool noReferrerPref; private final GenericPref.Bool rejectedPref; private final GenericPref.Bool mergeCopyPref; + private final GenericPref.Enumeration iconSizePref; private final LastOpened lastOpened; private final CTabs cTabs; @@ -114,6 +120,7 @@ class OpenDialog extends AModuleDialog { noReferrerPref = OpenModule.NOREFERRER_PREF(dialog); rejectedPref = OpenModule.REJECTED_PREF(dialog); mergeCopyPref = OpenModule.MERGECOPY_PREF(dialog); + iconSizePref = OpenModule.ICONSIZE_PREF(dialog); } @Override @@ -208,7 +215,7 @@ class OpenDialog extends AModuleDialog { var label = intentApps.get(0).getLabel(getActivity()); // label = getActivity().getString(R.string.mOpen_with, label); btn_open.setText(label); - btn_open.setCompoundDrawables(intentApps.get(0).getIcon(getActivity()), null, null, null); + btn_open.setCompoundDrawables(intentApps.get(0).getIcon(getActivity(), iconSizePref.get()), null, null, null); AndroidUtils.setEnabled(openParent, true); btn_open.setEnabled(true); menu.clear(); @@ -335,6 +342,7 @@ class OpenConfig extends AModuleConfig { OpenModule.REJECTED_PREF(getActivity()).attachToSwitch(views.findViewById(R.id.rejected)); LastOpened.PERDOMAIN_PREF(getActivity()).attachToSwitch(views.findViewById(R.id.perDomain)); OpenModule.MERGECOPY_PREF(getActivity()).attachToSwitch(views.findViewById(R.id.mergeCopy_pref)); + OpenModule.ICONSIZE_PREF(getActivity()).attachToSpinner(views.findViewById(R.id.iconsize_pref), null); } } diff --git a/app/src/main/java/com/trianguloy/urlchecker/utilities/wrappers/IntentApp.java b/app/src/main/java/com/trianguloy/urlchecker/utilities/wrappers/IntentApp.java index 5fa5558..36035b0 100644 --- a/app/src/main/java/com/trianguloy/urlchecker/utilities/wrappers/IntentApp.java +++ b/app/src/main/java/com/trianguloy/urlchecker/utilities/wrappers/IntentApp.java @@ -8,6 +8,8 @@ import android.content.pm.ResolveInfo; import android.graphics.drawable.Drawable; import android.os.Build; +import com.trianguloy.urlchecker.modules.companions.Size; + import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -67,11 +69,19 @@ public class IntentApp { } /** Returns the drawable, cached */ - public Drawable getIcon(Context activity) { + public Drawable getIcon(Context activity, Size size) { + var dim = switch (size) { + case NONE -> 0; + case SMALL -> 25; + case NORMAL -> 50; + case BIG -> 75; + }; + if (dim == 0) return null; + var component = getComponent(); if (!iconsCache.containsKey(component)) { var icon = resolveInfo.loadIcon(activity.getPackageManager()); - icon.setBounds(0, 0, 50, 50); + icon.setBounds(0, 0, dim, dim); iconsCache.put(component, icon); } return iconsCache.get(component); diff --git a/app/src/main/res/layout/config_open.xml b/app/src/main/res/layout/config_open.xml index 539cb21..b5b421b 100644 --- a/app/src/main/res/layout/config_open.xml +++ b/app/src/main/res/layout/config_open.xml @@ -99,4 +99,24 @@ android:layout_marginTop="@dimen/smallPadding" android:text="@string/mOpen_rejected" /> + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index f0442b1..ea0932f 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -139,6 +139,9 @@ Hope you find the app useful! And don't hesitate to suggest features, report bug Back Dismiss No links detected + Small + Normal + Big @@ -194,6 +197,7 @@ Note: if you edit the patterns, new built-in patterns from app updates will not Hide the source app (referrer) Hide app if URL was rejected (an app immediately requests to open the same URL it was opened with). Doesn\'t affect sharing. Merge Copy and Share buttons (long press to copy) + Icon size Open with %s Open Share