summaryrefslogtreecommitdiffstats
path: root/src/com/android/settings/Utils.java
diff options
context:
space:
mode:
authorChristopher Tate <ctate@google.com>2015-07-07 23:35:52 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2015-07-07 23:36:15 +0000
commit8023385e56e472a55e9c6f5034e04a10f1088f57 (patch)
tree53c49290e688db46148795f4a527ffcbebbedd6c /src/com/android/settings/Utils.java
parent7ac21204e16c797cc4f818ccc51509d425ffaf80 (diff)
parenta08a225d184fa75bb066fcb2d151d589106986de (diff)
downloadpackages_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.java25
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;