diff --git a/app/src/main/java/org/mozilla/fenix/components/NotificationManager.kt b/app/src/main/java/org/mozilla/fenix/components/NotificationManager.kt
index a99ff90b5..39e7b8295 100644
--- a/app/src/main/java/org/mozilla/fenix/components/NotificationManager.kt
+++ b/app/src/main/java/org/mozilla/fenix/components/NotificationManager.kt
@@ -15,6 +15,7 @@ import android.os.Build
import androidx.core.app.NotificationCompat
import androidx.core.app.NotificationManagerCompat
import mozilla.components.concept.sync.DeviceEvent
+import mozilla.components.concept.sync.TabData
import org.mozilla.fenix.R
/**
@@ -51,7 +52,7 @@ class NotificationManager(private val context: Context) {
val builder = NotificationCompat.Builder(context, RECEIVE_TABS_CHANNEL_ID)
.setSmallIcon(R.drawable.ic_status_logo)
- .setContentTitle(tab.title)
+ .setTitle(event, tab)
.setContentText(tab.url)
.setContentIntent(pendingIntent)
.setAutoCancel(true)
@@ -85,4 +86,21 @@ class NotificationManager(private val context: Context) {
context.getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager
notificationManager.createNotificationChannel(channel)
}
+
+ private fun NotificationCompat.Builder.setTitle(
+ event: DeviceEvent.TabReceived,
+ tab: TabData
+ ): NotificationCompat.Builder {
+ event.from?.let { device ->
+ setContentTitle(context.getString(R.string.fxa_tab_received_from_notification_name, device.displayName))
+ return this
+ }
+
+ if (tab.title.isEmpty()) {
+ setContentTitle(context.getString(R.string.fxa_tab_received_notification_name))
+ } else {
+ setContentTitle(tab.title)
+ }
+ return this
+ }
}
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index c2ff5bc6a..45a041a42 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -171,6 +171,12 @@
Received tabs
Notifications for tabs received from other Firefox devices.
+
+ Tab Received
+
+ Tabs Received
+
+ Tab from %s