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 9213635e90..1778be13a0 100644
--- a/app/src/main/java/org/mozilla/fenix/home/HomeMenu.kt
+++ b/app/src/main/java/org/mozilla/fenix/home/HomeMenu.kt
@@ -19,10 +19,12 @@ import mozilla.components.browser.menu.item.BrowserMenuDivider
import mozilla.components.browser.menu.item.BrowserMenuHighlightableItem
import mozilla.components.browser.menu.item.BrowserMenuImageSwitch
import mozilla.components.browser.menu.item.BrowserMenuImageText
+import mozilla.components.browser.menu.item.SimpleBrowserMenuItem
import mozilla.components.concept.sync.AccountObserver
import mozilla.components.concept.sync.AuthType
import mozilla.components.concept.sync.OAuthAccount
import mozilla.components.support.ktx.android.content.getColorFromAttr
+import org.mozilla.fenix.Config
import org.mozilla.fenix.R
import org.mozilla.fenix.components.accounts.AccountState
import org.mozilla.fenix.components.accounts.FenixAccountManager
@@ -46,6 +48,10 @@ class HomeMenu(
object Downloads : Item()
object Extensions : Item()
data class SyncAccount(val accountState: AccountState) : Item()
+ /**
+ * A button item to open up the settings page of FxA, shown up in mozilla online builds.
+ */
+ object ManageAccountAndDevices : Item()
object WhatsNew : Item()
object Help : Item()
object CustomizeHome : Item()
@@ -145,6 +151,13 @@ class HomeMenu(
onItemTapped.invoke(Item.Extensions)
}
+ val manageAccountAndDevicesItem = SimpleBrowserMenuItem(
+ context.getString(R.string.browser_menu_manage_account_and_devices),
+ textColorResource = primaryTextColor
+ ) {
+ onItemTapped.invoke(Item.ManageAccountAndDevices)
+ }
+
val whatsNewItem = BrowserMenuHighlightableItem(
context.getString(R.string.browser_menu_whats_new),
R.drawable.ic_whats_new,
@@ -201,6 +214,7 @@ class HomeMenu(
extensionsItem,
syncSignInMenuItem,
accountAuthItem,
+ if (Config.channel.isMozillaOnline) manageAccountAndDevicesItem else null,
BrowserMenuDivider(),
desktopItem,
BrowserMenuDivider(),
diff --git a/app/src/main/java/org/mozilla/fenix/home/HomeMenuBuilder.kt b/app/src/main/java/org/mozilla/fenix/home/HomeMenuBuilder.kt
index ae059b9be9..ce6fe5f116 100644
--- a/app/src/main/java/org/mozilla/fenix/home/HomeMenuBuilder.kt
+++ b/app/src/main/java/org/mozilla/fenix/home/HomeMenuBuilder.kt
@@ -16,6 +16,7 @@ import mozilla.appservices.places.BookmarkRoot
import mozilla.components.browser.menu.view.MenuButton
import mozilla.components.service.glean.private.NoExtras
import org.mozilla.fenix.BrowserDirection
+import org.mozilla.fenix.Config
import org.mozilla.fenix.GleanMetrics.Events
import org.mozilla.fenix.GleanMetrics.HomeScreen
import org.mozilla.fenix.HomeActivity
@@ -77,7 +78,7 @@ class HomeMenuBuilder(
/**
* Callback invoked when a menu item is tapped on.
*/
- @Suppress("LongMethod")
+ @Suppress("LongMethod", "ComplexMethod")
@VisibleForTesting(otherwise = PRIVATE)
internal fun onItemTapped(item: HomeMenu.Item) {
if (item !is HomeMenu.Item.DesktopMode) {
@@ -114,6 +115,18 @@ class HomeMenuBuilder(
}
)
}
+ HomeMenu.Item.ManageAccountAndDevices -> {
+ homeActivity.openToBrowserAndLoad(
+ searchTermOrURL =
+ if (context.settings().allowDomesticChinaFxaServer) {
+ mozilla.appservices.fxaclient.Config.Server.CHINA.contentUrl + "/settings"
+ } else {
+ mozilla.appservices.fxaclient.Config.Server.RELEASE.contentUrl + "/settings"
+ },
+ newTab = true,
+ from = BrowserDirection.FromHome
+ )
+ }
HomeMenu.Item.Bookmarks -> {
navController.nav(
R.id.homeFragment,
diff --git a/app/src/main/res/values-zh-rCN/mozonline_strings.xml b/app/src/main/res/values-zh-rCN/mozonline_strings.xml
index 327141a311..89cea478ad 100644
--- a/app/src/main/res/values-zh-rCN/mozonline_strings.xml
+++ b/app/src/main/res/values-zh-rCN/mozonline_strings.xml
@@ -40,5 +40,9 @@
firefox.com.cn/pair 并扫描网站上的二维码]]>
https://firefox.com.cn/pair]]>
+
+
+
+ 管理账户和设备
diff --git a/app/src/main/res/values/mozonline_strings.xml b/app/src/main/res/values/mozonline_strings.xml
index f6ad5b979d..fe3bfb1700 100644
--- a/app/src/main/res/values/mozonline_strings.xml
+++ b/app/src/main/res/values/mozonline_strings.xml
@@ -39,4 +39,8 @@
firefox.com.cn/pair]]>
https://firefox.com.cn/pair]]>
+
+
+
+ Manage Account and Devices