geekdroid: BrowserLauncher now ignore default browser to work on android11+
authorDa Risk <da_risk@geekorum.com>
Wed, 06 Oct 2021 13:31:48 -0400
changeset 16 bdb9bdb8d30c
parent 15 fc8b8638d5e3
child 17 e395df7aa39f
geekdroid: BrowserLauncher now ignore default browser to work on android11+
geekdroid/src/main/java/com/geekorum/geekdroid/network/BrowserLauncher.kt
--- a/geekdroid/src/main/java/com/geekorum/geekdroid/network/BrowserLauncher.kt	Thu Jul 23 19:14:38 2020 -0400
+++ b/geekdroid/src/main/java/com/geekorum/geekdroid/network/BrowserLauncher.kt	Wed Oct 06 13:31:48 2021 -0400
@@ -64,10 +64,11 @@
 
     private val browserPackageNames: List<String>
         get() {
-            val activityIntent = Intent(Intent.ACTION_VIEW, "http://".toUri())
-            val resolveInfoList =
-                packageManager.queryIntentActivities(activityIntent, PackageManager.MATCH_DEFAULT_ONLY)
-            return resolveInfoList.map { it.activityInfo.packageName }
+            val activityIntent = Intent(Intent.ACTION_VIEW, "http://".toUri()).apply {
+                addCategory(Intent.CATEGORY_BROWSABLE)
+            }
+            return packageManager.queryIntentActivities(activityIntent, PackageManager.MATCH_ALL)
+                .map { it.activityInfo.packageName }
         }
 
     /**
@@ -77,7 +78,7 @@
      * preferredPackageSelector: allows to select preferred service to use.
      */
     fun warmUp(preferredPackageSelector: (List<String>) -> List<String> = { it }) {
-        val packageName = CustomTabsClient.getPackageName(application, preferredPackageSelector(browserPackageNames))
+        val packageName = CustomTabsClient.getPackageName(application, preferredPackageSelector(browserPackageNames), true)
         if (packageName.isNullOrEmpty()) {
             return
         }