Skip to content

Commit 8746293

Browse files
committed
[Finder] Add eq_any and eq_none keys for package_name filter
`eq_any` filters all the given packages while `eq_none` filters them out. Signed-off-by: Muntashir Al-Islam <muntashirakon@riseup.net>
1 parent a3e5c4f commit 8746293

1 file changed

Lines changed: 20 additions & 0 deletions

File tree

app/src/main/java/io/github/muntashirakon/AppManager/filters/options/PackageNameOption.java

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@ public class PackageNameOption extends FilterOption {
1818
private final Map<String, Integer> mKeysWithType = new LinkedHashMap<String, Integer>() {{
1919
put(KEY_ALL, TYPE_NONE);
2020
put("eq", TYPE_STR_SINGLE);
21+
put("eq_any", TYPE_STR_MULTIPLE);
22+
put("eq_none", TYPE_STR_MULTIPLE);
2123
put("contains", TYPE_STR_SINGLE);
2224
put("starts_with", TYPE_STR_SINGLE);
2325
put("ends_with", TYPE_STR_SINGLE);
@@ -42,6 +44,20 @@ public TestResult test(@NonNull IFilterableAppInfo info, @NonNull TestResult res
4244
return result.setMatched(true);
4345
case "eq":
4446
return result.setMatched(info.getPackageName().equals(Objects.requireNonNull(value)));
47+
case "eq_any":
48+
for (String packageName: stringValues) {
49+
if (info.getPackageName().equals(packageName)) {
50+
return result.setMatched(true);
51+
}
52+
}
53+
return result.setMatched(false);
54+
case "eq_none":
55+
for (String packageName: stringValues) {
56+
if (info.getPackageName().equals(packageName)) {
57+
return result.setMatched(false);
58+
}
59+
}
60+
return result.setMatched(true);
4561
case "contains":
4662
return result.setMatched(info.getPackageName().contains(Objects.requireNonNull(value)));
4763
case "starts_with":
@@ -64,6 +80,10 @@ public CharSequence toLocalizedString(@NonNull Context context) {
6480
return sb.append(LangUtils.getSeparatorString()).append("any");
6581
case "eq":
6682
return sb.append(" = '").append(value).append("'");
83+
case "eq_any":
84+
return sb.append(" matching any of ").append(String.join(", ", stringValues));
85+
case "eq_none":
86+
return sb.append(" matching none of ").append(String.join(", ", stringValues));
6787
case "contains":
6888
return sb.append(" contains '").append(value).append("'");
6989
case "starts_with":

0 commit comments

Comments
 (0)