diff --git a/WordPress/src/main/java/org/wordpress/android/ui/ActivityNavigator.kt b/WordPress/src/main/java/org/wordpress/android/ui/ActivityNavigator.kt index 5aa90f063d78..05b015c932c6 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/ActivityNavigator.kt +++ b/WordPress/src/main/java/org/wordpress/android/ui/ActivityNavigator.kt @@ -4,6 +4,7 @@ import android.app.Activity import android.content.ActivityNotFoundException import android.content.Context import android.content.Intent +import androidx.browser.customtabs.CustomTabsClient import androidx.browser.customtabs.CustomTabsIntent import androidx.core.app.TaskStackBuilder import androidx.core.net.toUri @@ -276,6 +277,8 @@ class ActivityNavigator @Inject constructor( @Suppress("TooGenericExceptionCaught") fun openInCustomTab(activity: Activity, url: String) { val intent = getCustomTabsIntent(activity) + // Target the browser directly, otherwise our own deep-link aliases can claim WP.com post URLs + CustomTabsClient.getPackageName(activity, null)?.let { intent.intent.setPackage(it) } try { intent.launchUrl(activity, url.toUri()) } catch (e: RuntimeException) { diff --git a/WordPress/src/main/java/org/wordpress/android/ui/pagesrs/PagesRsListActivity.kt b/WordPress/src/main/java/org/wordpress/android/ui/pagesrs/PagesRsListActivity.kt index 73c0f8e8b5ed..a15c77d940f0 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/pagesrs/PagesRsListActivity.kt +++ b/WordPress/src/main/java/org/wordpress/android/ui/pagesrs/PagesRsListActivity.kt @@ -17,6 +17,7 @@ import kotlinx.coroutines.launch import org.wordpress.android.R import org.wordpress.android.fluxc.model.SiteModel import org.wordpress.android.ui.ActivityLauncher +import org.wordpress.android.ui.ActivityNavigator import org.wordpress.android.ui.stats.StatsConstants import org.wordpress.android.ui.stats.refresh.lists.detail.StatsDetailActivity import org.wordpress.android.ui.PagePostCreationSourcesDetail.PAGE_FROM_PAGES_LIST @@ -43,6 +44,7 @@ class PagesRsListActivity : BaseAppCompatActivity() { @Inject lateinit var viewModelFactory: ViewModelProvider.Factory @Inject lateinit var buildConfigWrapper: BuildConfigWrapper @Inject lateinit var experimentalFeatures: ExperimentalFeatures + @Inject lateinit var activityNavigator: ActivityNavigator private val viewModel: PagesRsListViewModel by viewModels() private lateinit var mlpViewModel: ModalLayoutPickerViewModel @@ -132,7 +134,7 @@ class PagesRsListActivity : BaseAppCompatActivity() { is PageRsListEvent.EditPage -> ActivityLauncher.editPostOrPageForResult(this, event.site, event.page) is PageRsListEvent.CreateNewPage -> startCreatePageFlow() - is PageRsListEvent.ViewPage -> ActivityLauncher.openUrlExternal(this, event.url) + is PageRsListEvent.ViewPage -> activityNavigator.openInCustomTab(this, event.url) is PageRsListEvent.SharePage -> ActivityLauncher.openShareIntent(this, event.url, event.title) is PageRsListEvent.CopyPageUrl -> copyUrlToClipboard(event.url) diff --git a/WordPress/src/main/java/org/wordpress/android/ui/postsrs/PostRsListActivity.kt b/WordPress/src/main/java/org/wordpress/android/ui/postsrs/PostRsListActivity.kt index cc3ca4ff5e2b..4bfb40ea1f73 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/postsrs/PostRsListActivity.kt +++ b/WordPress/src/main/java/org/wordpress/android/ui/postsrs/PostRsListActivity.kt @@ -13,6 +13,7 @@ import androidx.lifecycle.repeatOnLifecycle import dagger.hilt.android.AndroidEntryPoint import kotlinx.coroutines.launch import org.wordpress.android.ui.ActivityLauncher +import org.wordpress.android.ui.ActivityNavigator import org.wordpress.android.ui.PagePostCreationSourcesDetail import org.wordpress.android.ui.blaze.BlazeFlowSource import org.wordpress.android.ui.compose.theme.AppThemeM3 @@ -33,6 +34,9 @@ class PostRsListActivity : BaseAppCompatActivity() { @Inject lateinit var experimentalFeatures: ExperimentalFeatures + @Inject + lateinit var activityNavigator: ActivityNavigator + private val viewModel: PostRsListViewModel by viewModels() private val settingsLauncher = registerForActivityResult( @@ -126,7 +130,7 @@ class PostRsListActivity : BaseAppCompatActivity() { this, event.site, false, PagePostCreationSourcesDetail.POST_FROM_POSTS_LIST, -1, null ) - is PostRsListEvent.ViewPost -> ActivityLauncher.openUrlExternal(this, event.url) + is PostRsListEvent.ViewPost -> activityNavigator.openInCustomTab(this, event.url) is PostRsListEvent.ReadPost -> ReaderActivityLauncher.showReaderPostDetail(this, event.blogId, event.postId) is PostRsListEvent.SharePost ->