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