For #19797 - Home menu: go to problems page if account exists but not signed in

upstream-sync
Mugurell 3 years ago
parent 3d071dd049
commit 1fc3bb84ca

@ -96,6 +96,7 @@ import org.mozilla.fenix.components.FenixSnackbar
import org.mozilla.fenix.components.PrivateShortcutCreateManager
import org.mozilla.fenix.components.StoreProvider
import org.mozilla.fenix.components.TabCollectionStorage
import org.mozilla.fenix.components.accounts.AccountState
import org.mozilla.fenix.components.metrics.Event
import org.mozilla.fenix.components.tips.FenixTipManager
import org.mozilla.fenix.components.tips.Tip
@ -810,10 +811,13 @@ class HomeFragment : Fragment() {
}
is HomeMenu.Item.SyncAccount -> {
hideOnboardingIfNeeded()
val directions = if (it.signedIn) {
BrowserFragmentDirections.actionGlobalAccountSettingsFragment()
} else {
BrowserFragmentDirections.actionGlobalTurnOnSync()
val directions = when (it.accountState) {
AccountState.AUTHENTICATED ->
BrowserFragmentDirections.actionGlobalAccountSettingsFragment()
AccountState.NEEDS_REAUTHENTICATION ->
BrowserFragmentDirections.actionGlobalAccountProblemFragment()
AccountState.NO_ACCOUNT ->
BrowserFragmentDirections.actionGlobalTurnOnSync()
}
nav(
R.id.homeFragment,

@ -24,6 +24,7 @@ import mozilla.components.concept.sync.AuthType
import mozilla.components.concept.sync.OAuthAccount
import mozilla.components.support.ktx.android.content.getColorFromAttr
import org.mozilla.fenix.R
import org.mozilla.fenix.components.accounts.AccountState
import org.mozilla.fenix.components.accounts.FenixAccountManager
import org.mozilla.fenix.experiments.FeatureId
import org.mozilla.fenix.ext.components
@ -45,7 +46,7 @@ class HomeMenu(
object History : Item()
object Downloads : Item()
object Extensions : Item()
data class SyncAccount(val signedIn: Boolean) : Item()
data class SyncAccount(val accountState: AccountState) : Item()
object WhatsNew : Item()
object Help : Item()
object Settings : Item()
@ -106,7 +107,7 @@ class HomeMenu(
R.drawable.ic_synced_tabs,
primaryTextColor
) {
onItemTapped.invoke(Item.SyncAccount(accountManager.signedInToFxa()))
onItemTapped.invoke(Item.SyncAccount(accountManager.accountState))
}
val desktopItem = BrowserMenuImageSwitch(

Loading…
Cancel
Save