Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(4162)

Unified Diff: shared/src/main/java/org/chromium/customtabsclient/shared/CustomTabsHelper.java

Issue 1603383003: color, package and action bar configuration. (Closed) Base URL: https://github.com/GoogleChrome/custom-tabs-client.git@master
Patch Set: fixes Created 4 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: shared/src/main/java/org/chromium/customtabsclient/shared/CustomTabsHelper.java
diff --git a/shared/src/main/java/org/chromium/customtabsclient/shared/CustomTabsHelper.java b/shared/src/main/java/org/chromium/customtabsclient/shared/CustomTabsHelper.java
index 00af1e2189019aeabbcfcc4d498e22d09a2a073c..30cb119e3cf5d90445c07ed863c9316bdea00aa8 100644
--- a/shared/src/main/java/org/chromium/customtabsclient/shared/CustomTabsHelper.java
+++ b/shared/src/main/java/org/chromium/customtabsclient/shared/CustomTabsHelper.java
@@ -19,6 +19,7 @@ import android.content.Intent;
import android.content.IntentFilter;
import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo;
+import android.graphics.Color;
import android.net.Uri;
import android.text.TextUtils;
import android.util.Log;
@@ -60,9 +61,14 @@ public class CustomTabsHelper {
* @param context {@link Context} to use for accessing {@link PackageManager}.
Ian Wen 2016/03/16 01:35:31 Where is the javadoc for the second parameter?
BigBossZhiling 2016/03/18 00:59:08 Done.
* @return The package name recommended to use for connecting to custom tabs related components.
*/
- public static String getPackageNameToUse(Context context) {
+ public static String getPackageNameToUse(Context context,
+ List<String> packagesSupportingCustomTabs) {
if (sPackageNameToUse != null) return sPackageNameToUse;
+ if (packagesSupportingCustomTabs == null) {
+ packagesSupportingCustomTabs = getAllPackagesSupportingCustomTabs(context);
+ }
+
PackageManager pm = context.getPackageManager();
// Get default VIEW intent handler.
Intent activityIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.example.com"));
@@ -72,18 +78,6 @@ public class CustomTabsHelper {
defaultViewHandlerPackageName = defaultViewHandlerInfo.activityInfo.packageName;
}
- // Get all apps that can handle VIEW intents.
- List<ResolveInfo> resolvedActivityList = pm.queryIntentActivities(activityIntent, 0);
- List<String> packagesSupportingCustomTabs = new ArrayList<>();
- for (ResolveInfo info : resolvedActivityList) {
- Intent serviceIntent = new Intent();
- serviceIntent.setAction(ACTION_CUSTOM_TABS_CONNECTION);
- serviceIntent.setPackage(info.activityInfo.packageName);
- if (pm.resolveService(serviceIntent, 0) != null) {
- packagesSupportingCustomTabs.add(info.activityInfo.packageName);
- }
- }
-
// Now packagesSupportingCustomTabs contains all apps that can handle both VIEW intents
// and service calls.
if (packagesSupportingCustomTabs.isEmpty()) {
@@ -107,6 +101,13 @@ public class CustomTabsHelper {
}
/**
+ * See getPackageNameToUse(Context, List<String).
Ian Wen 2016/03/16 01:35:31 use @see, which is standard way in javadoc.
BigBossZhiling 2016/03/18 00:59:08 Done.
+ */
+ public static String getPackageNameToUse(Context context) {
+ return getPackageNameToUse(context, null);
Ian Wen 2016/03/16 01:35:31 Why can't you directly call getAllPackages......()
BigBossZhiling 2016/03/18 00:59:07 Done.
+ }
+
+ /**
* Used to check whether there is a specialized handler for a given intent.
* @param intent The intent to check with.
* @return Whether there is a specialized handler for the given intent.
@@ -139,4 +140,27 @@ public class CustomTabsHelper {
public static String[] getPackages() {
return new String[]{"", STABLE_PACKAGE, BETA_PACKAGE, DEV_PACKAGE, LOCAL_PACKAGE};
}
+
+ /**
+ * Get all apps that support custom tabs.
Ian Wen 2016/03/16 01:35:31 If it is a public method, javadocs should be writt
BigBossZhiling 2016/03/18 00:59:08 Done.
+ * @param context
+ * @return
+ */
+ public static ArrayList<String> getAllPackagesSupportingCustomTabs(Context context) {
Ian Wen 2016/03/16 01:35:31 1. I would make it a private method. 2. I would re
BigBossZhiling 2016/03/18 00:59:08 I think probably it can't be a private method beca
Ian Wen 2016/03/21 18:46:28 Why not use the function in #140? I would put the
+ PackageManager pm = context.getPackageManager();
+ // Get default VIEW intent handler.
+ Intent activityIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.example.com"));
+ // Get all apps that can handle VIEW intents.
+ List<ResolveInfo> resolvedActivityList = pm.queryIntentActivities(activityIntent, 0);
+ ArrayList<String> packagesSupportingCustomTabs = new ArrayList<>();
+ for (ResolveInfo info : resolvedActivityList) {
+ Intent serviceIntent = new Intent();
+ serviceIntent.setAction(ACTION_CUSTOM_TABS_CONNECTION);
+ serviceIntent.setPackage(info.activityInfo.packageName);
+ if (pm.resolveService(serviceIntent, 0) != null) {
+ packagesSupportingCustomTabs.add(info.activityInfo.packageName);
+ }
+ }
+ return packagesSupportingCustomTabs;
+ }
}
« demos/src/main/res/values/styles.xml ('K') | « demos/src/main/res/values/styles.xml ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698