diff --git a/app/src/androidTest/java/org/mozilla/fenix/ui/robots/SyncedTabsRobot.kt b/app/src/androidTest/java/org/mozilla/fenix/ui/robots/SyncedTabsRobot.kt index 9add0cd59..43aad7ccf 100644 --- a/app/src/androidTest/java/org/mozilla/fenix/ui/robots/SyncedTabsRobot.kt +++ b/app/src/androidTest/java/org/mozilla/fenix/ui/robots/SyncedTabsRobot.kt @@ -39,6 +39,8 @@ private fun goBackButton() = onView(allOf(withContentDescription("Navigate up"))) private fun assertSyncedTabsMenuHeader() { - onView(withText(R.string.synced_tabs)) + // Replaced with the new string here, the test is assuming we are NOT signed in + // Sync tests in SettingsSyncTest are still TO-DO, so I'm not sure that we have a test for signing into Sync + onView(withText(R.string.sync_menu_sign_in)) .check((matches(withEffectiveVisibility(Visibility.VISIBLE)))) } diff --git a/app/src/main/java/org/mozilla/fenix/components/toolbar/DefaultToolbarMenu.kt b/app/src/main/java/org/mozilla/fenix/components/toolbar/DefaultToolbarMenu.kt index b8397e209..ca3c39ba5 100644 --- a/app/src/main/java/org/mozilla/fenix/components/toolbar/DefaultToolbarMenu.kt +++ b/app/src/main/java/org/mozilla/fenix/components/toolbar/DefaultToolbarMenu.kt @@ -402,13 +402,21 @@ open class DefaultToolbarMenu( id = WebExtensionPlaceholderMenuItem.MAIN_EXTENSIONS_MENU_ID ) - val syncedTabs = BrowserMenuImageText( - label = context.getString(R.string.synced_tabs), - imageResource = R.drawable.ic_synced_tabs, - iconTintColorResource = primaryTextColor() - ) { - onItemTapped.invoke(ToolbarMenu.Item.SyncedTabs) - } + val accountManager = context.components.backgroundServices.accountManager + val account = accountManager.authenticatedAccount() + val syncItemTitle = if (account != null && accountManager.accountProfile()?.email != null) { + context.getString(R.string.sync_signed_as, accountManager.accountProfile()?.email) + } else { + context.getString(R.string.sync_menu_sign_in) + } + + val syncedTabs = BrowserMenuImageText( + syncItemTitle, + R.drawable.ic_synced_tabs, + primaryTextColor() + ) { + onItemTapped.invoke(ToolbarMenu.Item.SyncedTabs) + } val findInPageItem = BrowserMenuImageText( label = context.getString(R.string.browser_menu_find_in_page), diff --git a/app/src/main/java/org/mozilla/fenix/home/HomeMenu.kt b/app/src/main/java/org/mozilla/fenix/home/HomeMenu.kt index 7d95afed2..87002ce56 100644 --- a/app/src/main/java/org/mozilla/fenix/home/HomeMenu.kt +++ b/app/src/main/java/org/mozilla/fenix/home/HomeMenu.kt @@ -189,8 +189,16 @@ class HomeMenu( onItemTapped.invoke(Item.Settings) } + val accountManager = context.components.backgroundServices.accountManager + val account = accountManager.authenticatedAccount() + val syncItemTitle = if (account != null && accountManager.accountProfile()?.email != null) { + context.getString(R.string.sync_signed_as, accountManager.accountProfile()?.email) + } else { + context.getString(R.string.sync_menu_sign_in) + } + val syncedTabsItem = BrowserMenuImageText( - context.getString(R.string.library_synced_tabs), + syncItemTitle, R.drawable.ic_synced_tabs, primaryTextColor ) { @@ -215,13 +223,11 @@ class HomeMenu( // Only query account manager if it has been initialized. // We don't want to cause its initialization just for this check. - val accountAuthItem = - if (context.components.backgroundServices.accountManagerAvailableQueue.isReady() && - context.components.backgroundServices.accountManager.accountNeedsReauth()) { - reconnectToSyncItem - } else { - null - } + val accountAuthItem = if (context.components.backgroundServices.accountManagerAvailableQueue.isReady()) { + if (context.components.backgroundServices.accountManager.accountNeedsReauth()) reconnectToSyncItem else null + } else { + null + } val settings = context.components.settings diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 217fc9d8a..58f6ff7d3 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -954,6 +954,10 @@ All actions Recently used + + Signed in as %1$s + + Sign in to sync Sign in to Sync