diff options
author | Christopher Tate <ctate@google.com> | 2015-07-07 23:35:52 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2015-07-07 23:36:15 +0000 |
commit | 8023385e56e472a55e9c6f5034e04a10f1088f57 (patch) | |
tree | 53c49290e688db46148795f4a527ffcbebbedd6c /src/com/android/settings/Utils.java | |
parent | 7ac21204e16c797cc4f818ccc51509d425ffaf80 (diff) | |
parent | a08a225d184fa75bb066fcb2d151d589106986de (diff) | |
download | packages_apps_Settings-8023385e56e472a55e9c6f5034e04a10f1088f57.zip packages_apps_Settings-8023385e56e472a55e9c6f5034e04a10f1088f57.tar.gz packages_apps_Settings-8023385e56e472a55e9c6f5034e04a10f1088f57.tar.bz2 |
Merge "App link handling is not just for "official" verified handlers" into mnc-dev
Diffstat (limited to 'src/com/android/settings/Utils.java')
-rw-r--r-- | src/com/android/settings/Utils.java | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/src/com/android/settings/Utils.java b/src/com/android/settings/Utils.java index 14b5576..0a5853f 100644 --- a/src/com/android/settings/Utils.java +++ b/src/com/android/settings/Utils.java @@ -33,6 +33,7 @@ import android.content.Intent; import android.content.IntentFilter; import android.content.pm.ApplicationInfo; import android.content.pm.IPackageManager; +import android.content.pm.IntentFilterVerificationInfo; import android.content.pm.PackageInfo; import android.content.pm.PackageManager; import android.content.pm.PackageManager.NameNotFoundException; @@ -70,6 +71,7 @@ import android.provider.ContactsContract.RawContacts; import android.service.persistentdata.PersistentDataBlockManager; import android.telephony.TelephonyManager; import android.text.TextUtils; +import android.util.ArraySet; import android.util.Log; import android.util.SparseArray; import android.view.LayoutInflater; @@ -1111,6 +1113,29 @@ public final class Utils { return prefActList.size() > 0; } + public static ArraySet<String> getHandledDomains(PackageManager pm, String packageName) { + List<IntentFilterVerificationInfo> iviList = pm.getIntentFilterVerifications(packageName); + List<IntentFilter> filters = pm.getAllIntentFilters(packageName); + + ArraySet<String> result = new ArraySet<>(); + if (iviList.size() > 0) { + for (IntentFilterVerificationInfo ivi : iviList) { + for (String host : ivi.getDomains()) { + result.add(host); + } + } + } + if (filters != null && filters.size() > 0) { + for (IntentFilter filter : filters) { + if (filter.hasDataScheme(IntentFilter.SCHEME_HTTP) || + filter.hasDataScheme(IntentFilter.SCHEME_HTTPS)) { + result.addAll(filter.getHostsList()); + } + } + } + return result; + } + public static CharSequence getLaunchByDeafaultSummary(ApplicationsState.AppEntry appEntry, IUsbManager usbManager, PackageManager pm, Context context) { String packageName = appEntry.info.packageName; |