0
0
mirror of https://github.com/TrianguloY/UrlChecker.git synced 2024-09-19 20:02:16 +02:00

configurable icon size

This commit is contained in:
TrianguloY 2024-06-05 23:00:32 +02:00
parent 8d7e3cdaf4
commit fee2edd49e
5 changed files with 76 additions and 3 deletions

View File

@ -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;
}
}

View File

@ -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<Size> 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<Size> 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);
}
}

View File

@ -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);

View File

@ -99,4 +99,24 @@
android:layout_marginTop="@dimen/smallPadding"
android:text="@string/mOpen_rejected" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginTop="@dimen/smallPadding"
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:text="@string/mOpen_iconSize" />
<Spinner
android:id="@+id/iconsize_pref"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1" />
</LinearLayout>
</LinearLayout>

View File

@ -139,6 +139,9 @@ Hope you find the app useful! And don't hesitate to suggest features, report bug
<string name="back">Back</string>
<string name="dismiss">Dismiss</string>
<string name="noLinks">No links detected</string>
<string name="small">Small</string>
<string name="normal">Normal</string>
<string name="big">Big</string>
<!--
json
-->
@ -194,6 +197,7 @@ Note: if you edit the patterns, new built-in patterns from app updates will not
<string name="mOpen_noReferrer">Hide the source app (referrer)</string>
<string name="mOpen_rejected">Hide app if URL was rejected (an app immediately requests to open the same URL it was opened with). Doesn\'t affect sharing.</string>
<string name="mOpen_mergeCopy">Merge Copy and Share buttons (long press to copy)</string>
<string name="mOpen_iconSize">Icon size</string>
<string name="mOpen_with">Open with %s</string>
<string name="mOpen_open">Open</string>
<string name="mOpen_share">Share</string>