Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 /* | 1 /* |
| 2 * Copyright (C) 2015 The Android Open Source Project | 2 * Copyright (C) 2015 The Android Open Source Project |
| 3 * | 3 * |
| 4 * Licensed under the Apache License, Version 2.0 (the "License"); | 4 * Licensed under the Apache License, Version 2.0 (the "License"); |
| 5 * you may not use this file except in compliance with the License. | 5 * you may not use this file except in compliance with the License. |
| 6 * You may obtain a copy of the License at | 6 * You may obtain a copy of the License at |
| 7 * | 7 * |
| 8 * http://www.apache.org/licenses/LICENSE-2.0 | 8 * http://www.apache.org/licenses/LICENSE-2.0 |
| 9 * | 9 * |
| 10 * Unless required by applicable law or agreed to in writing, software | 10 * Unless required by applicable law or agreed to in writing, software |
| (...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 91 * @return The preferred package name for handling Custom Tabs, or <code>nul l</code>. | 91 * @return The preferred package name for handling Custom Tabs, or <code>nul l</code>. |
| 92 */ | 92 */ |
| 93 public static String getPackageName( | 93 public static String getPackageName( |
| 94 Context context, @Nullable List<String> packages, boolean ignoreDefault) { | 94 Context context, @Nullable List<String> packages, boolean ignoreDefault) { |
| 95 PackageManager pm = context.getPackageManager(); | 95 PackageManager pm = context.getPackageManager(); |
| 96 | 96 |
| 97 List<String> packageNames = packages == null ? new ArrayList<String>() : packages; | 97 List<String> packageNames = packages == null ? new ArrayList<String>() : packages; |
| 98 Intent activityIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("http:/ /")); | 98 Intent activityIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("http:/ /")); |
| 99 | 99 |
| 100 if (!ignoreDefault) { | 100 if (!ignoreDefault) { |
| 101 ResolveInfo defaultViewHandlerInfo = pm.resolveActivity(activityInte nt, 0); | 101 ResolveInfo defaultViewHandlerInfo = getDefaultHandlerForIntent(pm, activityIntent); |
| 102 if (defaultViewHandlerInfo != null) { | 102 if (defaultViewHandlerInfo != null) { |
| 103 String packageName = defaultViewHandlerInfo.activityInfo.package Name; | 103 String packageName = defaultViewHandlerInfo.activityInfo.package Name; |
| 104 packageNames = new ArrayList<String>(packageNames.size() + 1); | 104 packageNames = new ArrayList<String>(packageNames.size() + 1); |
| 105 packageNames.add(packageName); | 105 packageNames.add(packageName); |
| 106 if (packages != null) packageNames.addAll(packages); | 106 if (packages != null) packageNames.addAll(packages); |
| 107 } | 107 } |
| 108 } | 108 } |
| 109 | 109 |
| 110 Intent serviceIntent = new Intent(CustomTabsService.ACTION_CUSTOM_TABS_C ONNECTION); | 110 Intent serviceIntent = new Intent(CustomTabsService.ACTION_CUSTOM_TABS_C ONNECTION); |
| 111 for (String packageName : packageNames) { | 111 for (String packageName : packageNames) { |
| (...skipping 129 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 241 return new CustomTabsSession(mService, wrapper, mServiceComponentName); | 241 return new CustomTabsSession(mService, wrapper, mServiceComponentName); |
| 242 } | 242 } |
| 243 | 243 |
| 244 public Bundle extraCommand(String commandName, Bundle args) { | 244 public Bundle extraCommand(String commandName, Bundle args) { |
| 245 try { | 245 try { |
| 246 return mService.extraCommand(commandName, args); | 246 return mService.extraCommand(commandName, args); |
| 247 } catch (RemoteException e) { | 247 } catch (RemoteException e) { |
| 248 return null; | 248 return null; |
| 249 } | 249 } |
| 250 } | 250 } |
| 251 | |
| 252 /** | |
| 253 * Returns the default handler for given intent. | |
| 254 * @param pm {@link PackageManager} to use for retriving the handlers. | |
| 255 * @param intent {@link Intent} to be handled. | |
| 256 */ | |
| 257 public static ResolveInfo getDefaultHandlerForIntent(PackageManager pm, Inte nt intent) { | |
|
Yusuf
2017/07/14 05:35:34
I know I said to do this, but now that we have it
ltian
2017/07/14 22:15:02
Done.
| |
| 258 return pm.resolveActivity(intent, PackageManager.MATCH_DEFAULT_ONLY); | |
| 259 } | |
| 251 } | 260 } |
| OLD | NEW |