mirror of
https://github.com/TrianguloY/UrlChecker.git
synced 2024-09-19 11:52:14 +02:00
configurable icon size
This commit is contained in:
parent
8d7e3cdaf4
commit
fee2edd49e
@ -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;
|
||||
}
|
||||
}
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -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);
|
||||
|
@ -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>
|
@ -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>
|
||||
|
Loading…
Reference in New Issue
Block a user