No issue: Fix breaking AccountObserver API
parent
29f089c414
commit
ec96d134ff
|
@ -25,7 +25,6 @@ import mozilla.components.service.fxa.DeviceConfig
|
||||||
import mozilla.components.service.fxa.ServerConfig
|
import mozilla.components.service.fxa.ServerConfig
|
||||||
import mozilla.components.service.fxa.SyncConfig
|
import mozilla.components.service.fxa.SyncConfig
|
||||||
import mozilla.components.concept.sync.OAuthAccount
|
import mozilla.components.concept.sync.OAuthAccount
|
||||||
import mozilla.components.concept.sync.Profile
|
|
||||||
import mozilla.components.feature.push.AutoPushFeature
|
import mozilla.components.feature.push.AutoPushFeature
|
||||||
import mozilla.components.feature.push.AutoPushSubscription
|
import mozilla.components.feature.push.AutoPushSubscription
|
||||||
import mozilla.components.feature.push.PushConfig
|
import mozilla.components.feature.push.PushConfig
|
||||||
|
@ -134,26 +133,16 @@ class BackgroundServices(
|
||||||
* of the send-tab/push feature: https://github.com/mozilla-mobile/fenix/issues/4063
|
* of the send-tab/push feature: https://github.com/mozilla-mobile/fenix/issues/4063
|
||||||
*/
|
*/
|
||||||
private val accountObserver = object : AccountObserver {
|
private val accountObserver = object : AccountObserver {
|
||||||
// We want to update our subscriptions only on a fresh sign in.
|
|
||||||
// See https://github.com/mozilla-mobile/android-components/issues/3964
|
|
||||||
@Suppress("MayBeConst") // linter is wrong
|
|
||||||
val prefFreshSignInKey = "fresh_sign_in"
|
|
||||||
|
|
||||||
override fun onAuthenticationProblems() {}
|
|
||||||
override fun onProfileUpdated(profile: Profile) {}
|
|
||||||
|
|
||||||
override fun onLoggedOut() {
|
override fun onLoggedOut() {
|
||||||
pushService.stop()
|
pushService.stop()
|
||||||
|
|
||||||
preferences.edit().putBoolean(prefFreshSignInKey, true).apply()
|
|
||||||
push.unsubscribeForType(PushType.Services)
|
push.unsubscribeForType(PushType.Services)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onAuthenticated(account: OAuthAccount) {
|
override fun onAuthenticated(account: OAuthAccount, newAccount: Boolean) {
|
||||||
pushService.start(context)
|
pushService.start(context)
|
||||||
|
|
||||||
if (preferences.getBoolean(prefFreshSignInKey, true)) {
|
if (newAccount) {
|
||||||
preferences.edit().putBoolean(prefFreshSignInKey, false).apply()
|
|
||||||
push.subscribeForType(PushType.Services)
|
push.subscribeForType(PushType.Services)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,7 +6,6 @@ package org.mozilla.fenix.customtabs
|
||||||
|
|
||||||
import mozilla.components.concept.sync.AccountObserver
|
import mozilla.components.concept.sync.AccountObserver
|
||||||
import mozilla.components.concept.sync.OAuthAccount
|
import mozilla.components.concept.sync.OAuthAccount
|
||||||
import mozilla.components.concept.sync.Profile
|
|
||||||
import mozilla.components.service.fxa.manager.FxaAccountManager
|
import mozilla.components.service.fxa.manager.FxaAccountManager
|
||||||
import org.mozilla.fenix.ext.components
|
import org.mozilla.fenix.ext.components
|
||||||
|
|
||||||
|
@ -15,15 +14,9 @@ class AuthCustomTabActivity : CustomTabActivity() {
|
||||||
|
|
||||||
// Navigate away from this activity when we have successful authentication
|
// Navigate away from this activity when we have successful authentication
|
||||||
private val accountStateObserver = object : AccountObserver {
|
private val accountStateObserver = object : AccountObserver {
|
||||||
override fun onAuthenticated(account: OAuthAccount) {
|
override fun onAuthenticated(account: OAuthAccount, newAccount: Boolean) {
|
||||||
this@AuthCustomTabActivity.finish()
|
this@AuthCustomTabActivity.finish()
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onAuthenticationProblems() {}
|
|
||||||
|
|
||||||
override fun onLoggedOut() {}
|
|
||||||
|
|
||||||
override fun onProfileUpdated(profile: Profile) {}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onResume() {
|
override fun onResume() {
|
||||||
|
|
|
@ -732,7 +732,7 @@ class HomeFragment : Fragment(), AccountObserver {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onAuthenticated(account: OAuthAccount) {
|
override fun onAuthenticated(account: OAuthAccount, newAccount: Boolean) {
|
||||||
view?.let {
|
view?.let {
|
||||||
FenixSnackbar.make(it, Snackbar.LENGTH_SHORT).setText(
|
FenixSnackbar.make(it, Snackbar.LENGTH_SHORT).setText(
|
||||||
it.context.getString(R.string.onboarding_firefox_account_sync_is_on)
|
it.context.getString(R.string.onboarding_firefox_account_sync_is_on)
|
||||||
|
|
|
@ -31,7 +31,6 @@ import mozilla.components.concept.storage.BookmarkNode
|
||||||
import mozilla.components.concept.storage.BookmarkNodeType
|
import mozilla.components.concept.storage.BookmarkNodeType
|
||||||
import mozilla.components.concept.sync.AccountObserver
|
import mozilla.components.concept.sync.AccountObserver
|
||||||
import mozilla.components.concept.sync.OAuthAccount
|
import mozilla.components.concept.sync.OAuthAccount
|
||||||
import mozilla.components.concept.sync.Profile
|
|
||||||
import mozilla.components.lib.state.ext.consumeFrom
|
import mozilla.components.lib.state.ext.consumeFrom
|
||||||
import mozilla.components.support.base.feature.BackHandler
|
import mozilla.components.support.base.feature.BackHandler
|
||||||
import org.mozilla.fenix.R
|
import org.mozilla.fenix.R
|
||||||
|
@ -222,7 +221,7 @@ class BookmarkFragment : LibraryPageFragment<BookmarkNode>(), BackHandler, Accou
|
||||||
|
|
||||||
override fun onBackPressed(): Boolean = bookmarkView.onBackPressed()
|
override fun onBackPressed(): Boolean = bookmarkView.onBackPressed()
|
||||||
|
|
||||||
override fun onAuthenticated(account: OAuthAccount) {
|
override fun onAuthenticated(account: OAuthAccount, newAccount: Boolean) {
|
||||||
bookmarkInteractor.signedIn()
|
bookmarkInteractor.signedIn()
|
||||||
lifecycleScope.launch {
|
lifecycleScope.launch {
|
||||||
refreshBookmarks()
|
refreshBookmarks()
|
||||||
|
@ -233,12 +232,6 @@ class BookmarkFragment : LibraryPageFragment<BookmarkNode>(), BackHandler, Accou
|
||||||
bookmarkInteractor.signedOut()
|
bookmarkInteractor.signedOut()
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onAuthenticationProblems() {
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun onProfileUpdated(profile: Profile) {
|
|
||||||
}
|
|
||||||
|
|
||||||
private suspend fun refreshBookmarks() {
|
private suspend fun refreshBookmarks() {
|
||||||
context?.bookmarkStorage()?.getTree(bookmarkStore.state.tree!!.guid, false).withOptionalDesktopFolders(context)
|
context?.bookmarkStorage()?.getTree(bookmarkStore.state.tree!!.guid, false).withOptionalDesktopFolders(context)
|
||||||
?.let { node ->
|
?.let { node ->
|
||||||
|
|
|
@ -29,7 +29,6 @@ import mozilla.appservices.places.BookmarkRoot
|
||||||
import mozilla.components.concept.storage.BookmarkNode
|
import mozilla.components.concept.storage.BookmarkNode
|
||||||
import mozilla.components.concept.sync.AccountObserver
|
import mozilla.components.concept.sync.AccountObserver
|
||||||
import mozilla.components.concept.sync.OAuthAccount
|
import mozilla.components.concept.sync.OAuthAccount
|
||||||
import mozilla.components.concept.sync.Profile
|
|
||||||
import org.mozilla.fenix.R
|
import org.mozilla.fenix.R
|
||||||
import org.mozilla.fenix.ext.getColorFromAttr
|
import org.mozilla.fenix.ext.getColorFromAttr
|
||||||
import org.mozilla.fenix.ext.nav
|
import org.mozilla.fenix.ext.nav
|
||||||
|
@ -125,18 +124,11 @@ class SelectBookmarkFolderFragment : Fragment(), AccountObserver {
|
||||||
else -> super.onOptionsItemSelected(item)
|
else -> super.onOptionsItemSelected(item)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
override fun onAuthenticated(account: OAuthAccount, newAccount: Boolean) {
|
||||||
override fun onAuthenticationProblems() {
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun onAuthenticated(account: OAuthAccount) {
|
|
||||||
bookmarkInteractor.signedIn()
|
bookmarkInteractor.signedIn()
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onLoggedOut() {
|
override fun onLoggedOut() {
|
||||||
bookmarkInteractor.signedOut()
|
bookmarkInteractor.signedOut()
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onProfileUpdated(profile: Profile) {
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -13,7 +13,6 @@ import androidx.preference.PreferenceFragmentCompat
|
||||||
import kotlinx.coroutines.launch
|
import kotlinx.coroutines.launch
|
||||||
import mozilla.components.concept.sync.AccountObserver
|
import mozilla.components.concept.sync.AccountObserver
|
||||||
import mozilla.components.concept.sync.OAuthAccount
|
import mozilla.components.concept.sync.OAuthAccount
|
||||||
import mozilla.components.concept.sync.Profile
|
|
||||||
import org.mozilla.fenix.R
|
import org.mozilla.fenix.R
|
||||||
import org.mozilla.fenix.ext.getPreferenceKey
|
import org.mozilla.fenix.ext.getPreferenceKey
|
||||||
import org.mozilla.fenix.ext.nav
|
import org.mozilla.fenix.ext.nav
|
||||||
|
@ -71,20 +70,16 @@ class AccountProblemFragment : PreferenceFragmentCompat(), AccountObserver {
|
||||||
}
|
}
|
||||||
|
|
||||||
// We're told our auth problems have been fixed; close this fragment.
|
// We're told our auth problems have been fixed; close this fragment.
|
||||||
override fun onAuthenticated(account: OAuthAccount) {
|
override fun onAuthenticated(account: OAuthAccount, newAccount: Boolean) {
|
||||||
lifecycleScope.launch {
|
lifecycleScope.launch {
|
||||||
NavHostFragment.findNavController(this@AccountProblemFragment).popBackStack()
|
NavHostFragment.findNavController(this@AccountProblemFragment).popBackStack()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onAuthenticationProblems() {}
|
|
||||||
|
|
||||||
// We're told there are no more auth problems since there is no more account; close this fragment.
|
// We're told there are no more auth problems since there is no more account; close this fragment.
|
||||||
override fun onLoggedOut() {
|
override fun onLoggedOut() {
|
||||||
lifecycleScope.launch {
|
lifecycleScope.launch {
|
||||||
NavHostFragment.findNavController(this@AccountProblemFragment).popBackStack()
|
NavHostFragment.findNavController(this@AccountProblemFragment).popBackStack()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onProfileUpdated(profile: Profile) {}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -22,8 +22,6 @@ import kotlinx.coroutines.launch
|
||||||
import mozilla.components.concept.sync.AccountObserver
|
import mozilla.components.concept.sync.AccountObserver
|
||||||
import mozilla.components.concept.sync.ConstellationState
|
import mozilla.components.concept.sync.ConstellationState
|
||||||
import mozilla.components.concept.sync.DeviceConstellationObserver
|
import mozilla.components.concept.sync.DeviceConstellationObserver
|
||||||
import mozilla.components.concept.sync.OAuthAccount
|
|
||||||
import mozilla.components.concept.sync.Profile
|
|
||||||
import mozilla.components.service.fxa.FxaException
|
import mozilla.components.service.fxa.FxaException
|
||||||
import mozilla.components.service.fxa.FxaPanicException
|
import mozilla.components.service.fxa.FxaPanicException
|
||||||
import mozilla.components.service.fxa.manager.FxaAccountManager
|
import mozilla.components.service.fxa.manager.FxaAccountManager
|
||||||
|
@ -42,8 +40,6 @@ class AccountSettingsFragment : PreferenceFragmentCompat() {
|
||||||
|
|
||||||
// Navigate away from this fragment when we encounter auth problems or logout events.
|
// Navigate away from this fragment when we encounter auth problems or logout events.
|
||||||
private val accountStateObserver = object : AccountObserver {
|
private val accountStateObserver = object : AccountObserver {
|
||||||
override fun onAuthenticated(account: OAuthAccount) {}
|
|
||||||
|
|
||||||
override fun onAuthenticationProblems() {
|
override fun onAuthenticationProblems() {
|
||||||
lifecycleScope.launch {
|
lifecycleScope.launch {
|
||||||
findNavController().popBackStack()
|
findNavController().popBackStack()
|
||||||
|
@ -61,8 +57,6 @@ class AccountSettingsFragment : PreferenceFragmentCompat() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onProfileUpdated(profile: Profile) {}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onResume() {
|
override fun onResume() {
|
||||||
|
|
|
@ -326,7 +326,7 @@ class SettingsFragment : PreferenceFragmentCompat(), AccountObserver {
|
||||||
Navigation.findNavController(view!!).navigate(directions)
|
Navigation.findNavController(view!!).navigate(directions)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onAuthenticated(account: OAuthAccount) {
|
override fun onAuthenticated(account: OAuthAccount, newAccount: Boolean) {
|
||||||
lifecycleScope.launch {
|
lifecycleScope.launch {
|
||||||
context?.let {
|
context?.let {
|
||||||
updateAccountUIState(it, it.components.backgroundServices.accountManager.accountProfile())
|
updateAccountUIState(it, it.components.backgroundServices.accountManager.accountProfile())
|
||||||
|
|
|
@ -16,7 +16,6 @@ import androidx.navigation.fragment.NavHostFragment.findNavController
|
||||||
import kotlinx.android.synthetic.main.fragment_turn_on_sync.view.*
|
import kotlinx.android.synthetic.main.fragment_turn_on_sync.view.*
|
||||||
import mozilla.components.concept.sync.AccountObserver
|
import mozilla.components.concept.sync.AccountObserver
|
||||||
import mozilla.components.concept.sync.OAuthAccount
|
import mozilla.components.concept.sync.OAuthAccount
|
||||||
import mozilla.components.concept.sync.Profile
|
|
||||||
import org.mozilla.fenix.R
|
import org.mozilla.fenix.R
|
||||||
import org.mozilla.fenix.components.FenixSnackbar
|
import org.mozilla.fenix.components.FenixSnackbar
|
||||||
import org.mozilla.fenix.components.metrics.Event
|
import org.mozilla.fenix.components.metrics.Event
|
||||||
|
@ -77,13 +76,9 @@ class TurnOnSyncFragment : Fragment(), AccountObserver {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onAuthenticated(account: OAuthAccount) {
|
override fun onAuthenticated(account: OAuthAccount, newAccount: Boolean) {
|
||||||
FenixSnackbar.make(view!!, FenixSnackbar.LENGTH_SHORT)
|
FenixSnackbar.make(view!!, FenixSnackbar.LENGTH_SHORT)
|
||||||
.setText(requireContext().getString(R.string.sync_syncing_in_progress))
|
.setText(requireContext().getString(R.string.sync_syncing_in_progress))
|
||||||
.show()
|
.show()
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onAuthenticationProblems() {}
|
|
||||||
override fun onLoggedOut() {}
|
|
||||||
override fun onProfileUpdated(profile: Profile) {}
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue