Add InstantAppDomainsPreference for Spa

To try:
1. adb shell am start -n com.android.settings/.spa.SpaActivity
2. Go to Apps -> All apps -> [One Instant App] -> Supported links

Bug: 236346018
Test: Unit test
Test: Manually with Settings App
Change-Id: I344ddb9c2f3dbc47d38554bf45f04ca7c26c0e5f
This commit is contained in:
Chaohui Wang
2022-11-03 16:26:37 +08:00
parent dba9928a7e
commit 33033fe755
5 changed files with 293 additions and 7 deletions

View File

@@ -117,6 +117,7 @@ import com.android.settingslib.widget.AdaptiveIcon;
import java.util.Iterator;
import java.util.List;
import java.util.Locale;
import java.util.Set;
public final class Utils extends com.android.settingslib.Utils {
@@ -589,7 +590,9 @@ public final class Utils extends com.android.settingslib.Utils {
return inflater.inflate(resId, parent, false);
}
public static ArraySet<String> getHandledDomains(PackageManager pm, String packageName) {
/** Gets all the domains that the given package could handled. */
@NonNull
public static Set<String> getHandledDomains(PackageManager pm, String packageName) {
final List<IntentFilterVerificationInfo> iviList =
pm.getIntentFilterVerifications(packageName);
final List<IntentFilter> filters = pm.getAllIntentFilters(packageName);
@@ -597,9 +600,7 @@ public final class Utils extends com.android.settingslib.Utils {
final ArraySet<String> result = new ArraySet<>();
if (iviList != null && iviList.size() > 0) {
for (IntentFilterVerificationInfo ivi : iviList) {
for (String host : ivi.getDomains()) {
result.add(host);
}
result.addAll(ivi.getDomains());
}
}
if (filters != null && filters.size() > 0) {