@@ -53,7 +53,9 @@ import au.com.shiftyjelly.pocketcasts.utils.log.LogBuffer
53
53
import au.com.shiftyjelly.pocketcasts.views.dialog.ConfirmationDialog
54
54
import au.com.shiftyjelly.pocketcasts.views.fragments.BaseFragment
55
55
import au.com.shiftyjelly.pocketcasts.views.helper.NavigationIcon
56
- import com.gravatar.quickeditor.GravatarQuickEditor
56
+ import com.gravatar.quickeditor.ui.GetQuickEditorResult
57
+ import com.gravatar.quickeditor.ui.GravatarQuickEditorActivity
58
+ import com.gravatar.quickeditor.ui.GravatarQuickEditorResult
57
59
import com.gravatar.quickeditor.ui.editor.AuthenticationMethod
58
60
import com.gravatar.quickeditor.ui.editor.AvatarPickerContentLayout
59
61
import com.gravatar.quickeditor.ui.editor.GravatarQuickEditorParams
@@ -103,6 +105,19 @@ class AccountDetailsFragment : BaseFragment(), OnUserViewClickListener {
103
105
private val viewModel: AccountDetailsViewModel by viewModels()
104
106
private var binding: FragmentAccountDetailsBinding ? = null
105
107
108
+ private val getQEResult = registerForActivityResult(GetQuickEditorResult ()) { quickEditorResult ->
109
+ when (quickEditorResult) {
110
+ GravatarQuickEditorResult .AVATAR_SELECTED -> {
111
+ Gravatar .refreshGravatarTimestamp()
112
+ viewModel.signInState.observe(viewLifecycleOwner) { signInState ->
113
+ binding?.userView?.signedInState = signInState
114
+ }
115
+ }
116
+
117
+ else -> { /* Do nothing */ }
118
+ }
119
+ }
120
+
106
121
override fun onCreateView (inflater : LayoutInflater , container : ViewGroup ? , savedInstanceState : Bundle ? ): View ? {
107
122
binding = FragmentAccountDetailsBinding .inflate(inflater, container, false )
108
123
return binding?.root
@@ -132,23 +147,19 @@ class AccountDetailsFragment : BaseFragment(), OnUserViewClickListener {
132
147
binding.btnChangeAvatar?.setOnClickListener {
133
148
analyticsTracker.track(AnalyticsEvent .ACCOUNT_DETAILS_CHANGE_AVATAR )
134
149
if (FeatureFlag .isEnabled(Feature .GRAVATAR_NATIVE_QUICK_EDITOR )) {
135
- GravatarQuickEditor .show(
136
- activity = requireActivity(),
137
- gravatarQuickEditorParams = GravatarQuickEditorParams {
138
- email = Email (signInState.email)
139
- avatarPickerContentLayout = AvatarPickerContentLayout .Horizontal
140
- },
141
- authenticationMethod = AuthenticationMethod .OAuth (
142
- OAuthParams {
143
- clientId = GRAVATAR_APP_ID
144
- redirectUri = Gravatar .GRAVATAR_QE_REDIRECT_URL
150
+ getQEResult.launch(
151
+ GravatarQuickEditorActivity .GravatarEditorActivityArguments (
152
+ gravatarQuickEditorParams = GravatarQuickEditorParams {
153
+ email = Email (signInState.email)
154
+ avatarPickerContentLayout = AvatarPickerContentLayout .Horizontal
145
155
},
156
+ authenticationMethod = AuthenticationMethod .OAuth (
157
+ OAuthParams {
158
+ clientId = GRAVATAR_APP_ID
159
+ redirectUri = Gravatar .GRAVATAR_QE_REDIRECT_URL
160
+ },
161
+ ),
146
162
),
147
- onAvatarSelected = {
148
- Gravatar .refreshGravatarTimestamp()
149
- binding.userView.signedInState = signInState
150
- },
151
- onDismiss = {},
152
163
)
153
164
} else {
154
165
Gravatar .refreshGravatarTimestamp()
0 commit comments