Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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
Expand Down Expand Up @@ -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)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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(
Expand Down Expand Up @@ -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 ->
Expand Down
Loading