Commit c47acdf3 authored by MozLando's avatar MozLando
Browse files

Merge #4510



4510: Improve PWA recent entries r=pocmo a=NotWoods

FLAG_ACTIVITY_NEW_DOCUMENT ties tasks to the intent and data URI. This seems to work pretty well with the task switcher.



Co-authored-by: default avatarTiger Oakes <toakes@mozilla.com>
parents 96579f93 859a312b
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -6,6 +6,7 @@ package mozilla.components.feature.pwa

import android.content.Context
import android.content.Intent
import android.content.Intent.FLAG_ACTIVITY_NEW_DOCUMENT
import android.content.pm.ShortcutManager
import android.os.Build.VERSION.SDK_INT
import android.os.Build.VERSION_CODES
@@ -130,7 +131,7 @@ class WebAppShortcutManager(
        val shortcutIntent = Intent(context, WebAppLauncherActivity::class.java).apply {
            action = ACTION_PWA_LAUNCHER
            data = manifest.startUrl.toUri()
            flags = Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_MULTIPLE_TASK
            flags = FLAG_ACTIVITY_NEW_DOCUMENT
            `package` = context.packageName
        }

+2 −0
Original line number Diff line number Diff line
@@ -5,6 +5,7 @@
package mozilla.components.feature.pwa.intent

import android.content.Intent
import android.content.Intent.FLAG_ACTIVITY_NEW_DOCUMENT
import mozilla.components.browser.session.Session
import mozilla.components.browser.session.Session.Source
import mozilla.components.browser.session.SessionManager
@@ -50,6 +51,7 @@ class WebAppIntentProcessor(

            sessionManager.add(session)
            loadUrlUseCase(url, session, EngineSession.LoadUrlFlags.external())
            intent.flags = FLAG_ACTIVITY_NEW_DOCUMENT
            intent.putSessionId(session.id)
            intent.putWebAppManifest(webAppManifest)

+2 −1
Original line number Diff line number Diff line
@@ -15,6 +15,7 @@ class IntentReceiverActivity : Activity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)

        MainScope().launch {
            val intent = intent?.let { Intent(it) } ?: Intent()
            val intentProcessors = components.externalAppIntentProcessors + components.tabIntentProcessor
@@ -23,8 +24,8 @@ class IntentReceiverActivity : Activity() {

            setBrowserActivity(intent)

            startActivity(intent)
            finish()
            startActivity(intent)
        }
    }