From ba5c2ad22a83ade0e8a451d8fc9cdbdb07cd2679 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?He=CC=81ctor=20Abraham?= Date: Wed, 13 Nov 2024 15:13:31 +0100 Subject: [PATCH] Use GravatarQuickEditorActivity instead of the BottomSheet As it is not viable to modify the activity to use `singleTask`, we need to implement the recently added GravatarQuickEditorActivity to handle the OAuth authorization. --- app/src/main/AndroidManifest.xml | 18 +++++--- gradle/libs.versions.toml | 2 +- .../profile/AccountDetailsFragment.kt | 43 ++++++++++++------- 3 files changed, 40 insertions(+), 23 deletions(-) diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 016400e532e..07a7031a477 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -290,19 +290,25 @@ - - + + + + + + + + - - + when (quickEditorResult) { + GravatarQuickEditorResult.AVATAR_SELECTED -> { + Gravatar.refreshGravatarTimestamp() + viewModel.signInState.observe(viewLifecycleOwner) { signInState -> + binding?.userView?.signedInState = signInState + } + } + + else -> { /* Do nothing */ } + } + } + override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? { binding = FragmentAccountDetailsBinding.inflate(inflater, container, false) return binding?.root @@ -132,23 +147,19 @@ class AccountDetailsFragment : BaseFragment(), OnUserViewClickListener { binding.btnChangeAvatar?.setOnClickListener { analyticsTracker.track(AnalyticsEvent.ACCOUNT_DETAILS_CHANGE_AVATAR) if (FeatureFlag.isEnabled(Feature.GRAVATAR_NATIVE_QUICK_EDITOR)) { - GravatarQuickEditor.show( - activity = requireActivity(), - gravatarQuickEditorParams = GravatarQuickEditorParams { - email = Email(signInState.email) - avatarPickerContentLayout = AvatarPickerContentLayout.Horizontal - }, - authenticationMethod = AuthenticationMethod.OAuth( - OAuthParams { - clientId = GRAVATAR_APP_ID - redirectUri = Gravatar.GRAVATAR_QE_REDIRECT_URL + getQEResult.launch( + GravatarQuickEditorActivity.GravatarEditorActivityArguments( + gravatarQuickEditorParams = GravatarQuickEditorParams { + email = Email(signInState.email) + avatarPickerContentLayout = AvatarPickerContentLayout.Horizontal }, + authenticationMethod = AuthenticationMethod.OAuth( + OAuthParams { + clientId = GRAVATAR_APP_ID + redirectUri = Gravatar.GRAVATAR_QE_REDIRECT_URL + }, + ), ), - onAvatarSelected = { - Gravatar.refreshGravatarTimestamp() - binding.userView.signedInState = signInState - }, - onDismiss = {}, ) } else { Gravatar.refreshGravatarTimestamp()