| OLD | NEW |
| 1 // Copyright 2015 Google Inc. All Rights Reserved. | 1 // Copyright 2015 Google Inc. All Rights Reserved. |
| 2 // | 2 // |
| 3 // Licensed under the Apache License, Version 2.0 (the "License"); | 3 // Licensed under the Apache License, Version 2.0 (the "License"); |
| 4 // you may not use this file except in compliance with the License. | 4 // you may not use this file except in compliance with the License. |
| 5 // You may obtain a copy of the License at | 5 // You may obtain a copy of the License at |
| 6 // | 6 // |
| 7 // http://www.apache.org/licenses/LICENSE-2.0 | 7 // http://www.apache.org/licenses/LICENSE-2.0 |
| 8 // | 8 // |
| 9 // Unless required by applicable law or agreed to in writing, software | 9 // Unless required by applicable law or agreed to in writing, software |
| 10 // distributed under the License is distributed on an "AS IS" BASIS, | 10 // distributed under the License is distributed on an "AS IS" BASIS, |
| 11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | 11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| 12 // See the License for the specific language governing permissions and | 12 // See the License for the specific language governing permissions and |
| 13 // limitations under the License. | 13 // limitations under the License. |
| 14 | 14 |
| 15 package org.chromium.customtabsclient.shared; | 15 package org.chromium.customtabsclient.shared; |
| 16 | 16 |
| 17 import android.content.Context; | 17 import android.content.Context; |
| 18 import android.content.Intent; | 18 import android.content.Intent; |
| 19 import android.content.IntentFilter; | 19 import android.content.IntentFilter; |
| 20 import android.content.pm.PackageManager; | 20 import android.content.pm.PackageManager; |
| 21 import android.content.pm.ResolveInfo; | 21 import android.content.pm.ResolveInfo; |
| 22 import android.net.Uri; | 22 import android.net.Uri; |
| 23 import android.support.customtabs.CustomTabsClient; |
| 23 import android.text.TextUtils; | 24 import android.text.TextUtils; |
| 24 import android.util.Log; | 25 import android.util.Log; |
| 25 | 26 |
| 26 import java.util.ArrayList; | 27 import java.util.ArrayList; |
| 27 import java.util.List; | 28 import java.util.List; |
| 28 | 29 |
| 29 /** | 30 /** |
| 30 * Helper class for Custom Tabs. | 31 * Helper class for Custom Tabs. |
| 31 */ | 32 */ |
| 32 public class CustomTabsHelper { | 33 public class CustomTabsHelper { |
| (...skipping 26 matching lines...) Expand all Loading... |
| 59 * | 60 * |
| 60 * @param context {@link Context} to use for accessing {@link PackageManager
}. | 61 * @param context {@link Context} to use for accessing {@link PackageManager
}. |
| 61 * @return The package name recommended to use for connecting to custom tabs
related components. | 62 * @return The package name recommended to use for connecting to custom tabs
related components. |
| 62 */ | 63 */ |
| 63 public static String getPackageNameToUse(Context context) { | 64 public static String getPackageNameToUse(Context context) { |
| 64 if (sPackageNameToUse != null) return sPackageNameToUse; | 65 if (sPackageNameToUse != null) return sPackageNameToUse; |
| 65 | 66 |
| 66 PackageManager pm = context.getPackageManager(); | 67 PackageManager pm = context.getPackageManager(); |
| 67 // Get default VIEW intent handler. | 68 // Get default VIEW intent handler. |
| 68 Intent activityIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("http:/
/www.example.com")); | 69 Intent activityIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("http:/
/www.example.com")); |
| 69 ResolveInfo defaultViewHandlerInfo = pm.resolveActivity(activityIntent,
0); | 70 ResolveInfo defaultViewHandlerInfo = CustomTabsClient.getDefaultHandlerF
orIntent(pm, activityIntent); |
| 70 String defaultViewHandlerPackageName = null; | 71 String defaultViewHandlerPackageName = null; |
| 71 if (defaultViewHandlerInfo != null) { | 72 if (defaultViewHandlerInfo != null) { |
| 72 defaultViewHandlerPackageName = defaultViewHandlerInfo.activityInfo.
packageName; | 73 defaultViewHandlerPackageName = defaultViewHandlerInfo.activityInfo.
packageName; |
| 73 } | 74 } |
| 74 | 75 |
| 75 // Get all apps that can handle VIEW intents. | 76 // Get all apps that can handle VIEW intents. |
| 76 List<ResolveInfo> resolvedActivityList = pm.queryIntentActivities(activi
tyIntent, 0); | 77 List<ResolveInfo> resolvedActivityList = pm.queryIntentActivities(activi
tyIntent, 0); |
| 77 List<String> packagesSupportingCustomTabs = new ArrayList<>(); | 78 List<String> packagesSupportingCustomTabs = new ArrayList<>(); |
| 78 for (ResolveInfo info : resolvedActivityList) { | 79 for (ResolveInfo info : resolvedActivityList) { |
| 79 Intent serviceIntent = new Intent(); | 80 Intent serviceIntent = new Intent(); |
| (...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 133 return false; | 134 return false; |
| 134 } | 135 } |
| 135 | 136 |
| 136 /** | 137 /** |
| 137 * @return All possible chrome package names that provide custom tabs featur
e. | 138 * @return All possible chrome package names that provide custom tabs featur
e. |
| 138 */ | 139 */ |
| 139 public static String[] getPackages() { | 140 public static String[] getPackages() { |
| 140 return new String[]{"", STABLE_PACKAGE, BETA_PACKAGE, DEV_PACKAGE, LOCAL
_PACKAGE}; | 141 return new String[]{"", STABLE_PACKAGE, BETA_PACKAGE, DEV_PACKAGE, LOCAL
_PACKAGE}; |
| 141 } | 142 } |
| 142 } | 143 } |
| OLD | NEW |