Skip to content

Commit

Permalink
set preferred browsers over possible providers
Browse files Browse the repository at this point in the history
  • Loading branch information
maiconcarraro committed Jan 13, 2024
1 parent 7a2953b commit 4dc656f
Showing 1 changed file with 47 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,26 @@
public class TwaProviderPicker {
private static final String TAG = "TWAProviderPicker";
private static String sPackageNameForTesting;
private static String[] preferredProviders = {
"com.android.chrome", // CHROME
"com.chrome.beta", // CHROME_BETA
"com.chrome.dev", // CHROME_DEV
"com.chrome.canary", // CHROME_CANARY
"com.google.android.apps.chrome", // CHROME_LOCAL_BUILD
"org.chromium.chrome", // CHROMIUM_LOCAL_BUILD
"com.microsoft.emmx", // MICROSOFT_EDGE
"org.mozilla.firefox", // FIREFOX
"org.mozilla.firefox_beta", // FIREFOX_BETA
"org.mozilla.fennec_aurora", // FIREFOX_AURORA
"org.mozilla.fennec", // FIREFOX_FENNEC_NIGHTLY
"org.mozilla.fennec_fdroid", // FIREFOX_FDROID
"org.mozilla.rocket", // FIREFOX_LITE
"org.mozilla.fenix", // FIREFOX_NIGHTLY
"com.opera.browser", // OPERA
"com.opera.browser.beta", // OPERA_BETA
"com.opera.mini.native", // OPERA_MINI
"com.opera.mini.native.beta" // OPERA_MINI_BETA
};

@IntDef({LaunchMode.TRUSTED_WEB_ACTIVITY, LaunchMode.CUSTOM_TAB, LaunchMode.BROWSER})
@Retention(RetentionPolicy.SOURCE)
Expand Down Expand Up @@ -139,10 +159,37 @@ public static Action pickProvider(PackageManager pm) {
}

Map<String, Integer> customTabsServices = getLaunchModesForCustomTabsServices(pm);
String preferredProviderName = "";

// Loop preferred providers to use as preference order
for (String preferredProvider : preferredProviders) {
for (ResolveInfo possibleProvider : possibleProviders) {
String providerName = possibleProvider.activityInfo.packageName;

if (providerName.equals(preferredProvider)) {
Log.d(TAG, "Found provider from preferred providers list: " + providerName);
preferredProviderName = preferredProvider;
break;
}
}

if (!preferredProviderName.equals("")) {
break;
}
}


if (preferredProviderName.equals("")) {
Log.d(TAG, "Provider not in preferred providers list");
}

for (ResolveInfo possibleProvider : possibleProviders) {
String providerName = possibleProvider.activityInfo.packageName;

if (!preferredProviderName.equals("") && !providerName.equals(preferredProviderName)) {
continue;
}

@LaunchMode int launchMode = customTabsServices.containsKey(providerName)
? customTabsServices.get(providerName) : LaunchMode.BROWSER;

Expand Down

0 comments on commit 4dc656f

Please sign in to comment.