diff --git a/app/src/main/java/org/mozilla/fenix/customtabs/ExternalAppBrowserFragment.kt b/app/src/main/java/org/mozilla/fenix/customtabs/ExternalAppBrowserFragment.kt
index b577285f9..7bf4f51a5 100644
--- a/app/src/main/java/org/mozilla/fenix/customtabs/ExternalAppBrowserFragment.kt
+++ b/app/src/main/java/org/mozilla/fenix/customtabs/ExternalAppBrowserFragment.kt
@@ -73,7 +73,7 @@ class ExternalAppBrowserFragment : BaseBrowserFragment(), UserInteractionHandler
activity = activity,
engineLayout = view.swipeRefresh,
onItemTapped = { browserInteractor.onBrowserToolbarMenuItemTapped(it) },
- isPrivate = (activity as HomeActivity).browsingModeManager.mode.isPrivate,
+ isPrivate = it.private,
shouldReverseItems = !activity.settings().shouldUseBottomToolbar
),
owner = this,
@@ -135,7 +135,13 @@ class ExternalAppBrowserFragment : BaseBrowserFragment(), UserInteractionHandler
requireComponents.core.sessionManager,
requireComponents.useCases.sessionUseCases.reload,
customTabSessionId,
- manifest
+ manifest,
+ WebAppSiteControlsBuilder(
+ requireComponents.core.sessionManager,
+ requireComponents.useCases.sessionUseCases.reload,
+ customTabSessionId,
+ manifest
+ )
)
)
} else {
diff --git a/app/src/main/java/org/mozilla/fenix/customtabs/WebAppSiteControlsBuilder.kt b/app/src/main/java/org/mozilla/fenix/customtabs/WebAppSiteControlsBuilder.kt
new file mode 100644
index 000000000..c6fc94591
--- /dev/null
+++ b/app/src/main/java/org/mozilla/fenix/customtabs/WebAppSiteControlsBuilder.kt
@@ -0,0 +1,45 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.fenix.customtabs
+
+import android.content.Context
+import android.content.Intent
+import android.content.IntentFilter
+import androidx.core.app.NotificationCompat
+import mozilla.components.browser.session.Session
+import mozilla.components.browser.session.SessionManager
+import mozilla.components.concept.engine.manifest.WebAppManifest
+import mozilla.components.feature.pwa.feature.SiteControlsBuilder
+import mozilla.components.feature.session.SessionUseCases
+import org.mozilla.fenix.R
+
+class WebAppSiteControlsBuilder(
+ private val sessionManager: SessionManager,
+ reloadUrlUseCase: SessionUseCases.ReloadUrlUseCase,
+ private val sessionId: String,
+ private val manifest: WebAppManifest
+) : SiteControlsBuilder {
+
+ private val inner = SiteControlsBuilder.CopyAndRefresh(reloadUrlUseCase)
+
+ override fun buildNotification(
+ context: Context,
+ builder: NotificationCompat.Builder,
+ channelId: String
+ ) {
+ inner.buildNotification(context, builder, channelId)
+
+ val isPrivateSession = sessionManager.findSessionById(sessionId)?.private ?: false
+
+ if (!isPrivateSession) { return }
+
+ builder.setSmallIcon(R.drawable.ic_pbm_notification)
+ builder.setContentTitle(context.getString(R.string.pwa_site_controls_title_private, manifest.name))
+ }
+
+ override fun getFilter() = inner.getFilter()
+
+ override fun onReceiveBroadcast(context: Context, session: Session, intent: Intent) = inner.onReceiveBroadcast(context, session, intent)
+}
\ No newline at end of file
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index dac0197d2..d0ab524a0 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -460,6 +460,8 @@
Open tabs
Remove
+
+ %1$s (Private Mode)