@@ -49,6 +49,7 @@ import com.keylesspalace.tusky.util.Error
4949import com.keylesspalace.tusky.util.Loading
5050import com.keylesspalace.tusky.util.Success
5151import com.keylesspalace.tusky.util.await
52+ import com.keylesspalace.tusky.util.observe
5253import com.keylesspalace.tusky.util.show
5354import com.keylesspalace.tusky.util.viewBinding
5455import com.keylesspalace.tusky.viewmodel.EditProfileViewModel
@@ -152,85 +153,79 @@ class EditProfileActivity : BaseActivity(), Injectable {
152153
153154 viewModel.obtainProfile()
154155
155- lifecycleScope.launch {
156- viewModel.profileData.collect { profileRes ->
157- if (profileRes == null ) return @collect
158- when (profileRes) {
159- is Success -> {
160- val me = profileRes.data
161- if (me != null ) {
162- binding.displayNameEditText.setText(me.displayName)
163- binding.noteEditText.setText(me.source?.note)
164- binding.lockedCheckBox.isChecked = me.locked
165-
166- accountFieldEditAdapter.setFields(me.source?.fields.orEmpty())
167- binding.addFieldButton.isVisible =
168- (me.source?.fields?.size ? : 0 ) < maxAccountFields
169-
170- if (viewModel.avatarData.value == null ) {
171- Glide .with (this @EditProfileActivity)
172- .load(me.avatar)
173- .placeholder(R .drawable.avatar_default)
174- .transform(
175- FitCenter (),
176- RoundedCorners (
177- resources.getDimensionPixelSize(R .dimen.avatar_radius_80dp)
178- )
156+ viewModel.profileData.observe { profileRes ->
157+ if (profileRes == null ) return @observe
158+ when (profileRes) {
159+ is Success -> {
160+ val me = profileRes.data
161+ if (me != null ) {
162+ binding.displayNameEditText.setText(me.displayName)
163+ binding.noteEditText.setText(me.source?.note)
164+ binding.lockedCheckBox.isChecked = me.locked
165+
166+ accountFieldEditAdapter.setFields(me.source?.fields.orEmpty())
167+ binding.addFieldButton.isVisible =
168+ (me.source?.fields?.size ? : 0 ) < maxAccountFields
169+
170+ if (viewModel.avatarData.value == null ) {
171+ Glide .with (this @EditProfileActivity)
172+ .load(me.avatar)
173+ .placeholder(R .drawable.avatar_default)
174+ .transform(
175+ FitCenter (),
176+ RoundedCorners (
177+ resources.getDimensionPixelSize(R .dimen.avatar_radius_80dp)
179178 )
180- .into(binding.avatarPreview )
181- }
182-
183- if (viewModel.headerData.value == null ) {
184- Glide . with ( this @EditProfileActivity)
185- .load(me.header )
186- .into(binding.headerPreview )
187- }
179+ )
180+ .into(binding.avatarPreview)
181+ }
182+
183+ if (viewModel.headerData.value == null ) {
184+ Glide . with ( this @EditProfileActivity )
185+ .load(me.header )
186+ .into(binding.headerPreview)
188187 }
189188 }
190- is Error -> {
191- Snackbar .make(
192- binding.avatarButton,
193- R .string.error_generic,
194- Snackbar .LENGTH_LONG
195- )
196- .setAction(R .string.action_retry) {
197- viewModel.obtainProfile()
198- }
199- .show()
200- }
201- is Loading -> { }
202189 }
190+ is Error -> {
191+ Snackbar .make(
192+ binding.avatarButton,
193+ R .string.error_generic,
194+ Snackbar .LENGTH_LONG
195+ )
196+ .setAction(R .string.action_retry) {
197+ viewModel.obtainProfile()
198+ }
199+ .show()
200+ }
201+ is Loading -> { }
203202 }
204203 }
205204
206- lifecycleScope.launch {
207- viewModel.instanceData.collect { instanceInfo ->
208- maxAccountFields = instanceInfo.maxFields
209- accountFieldEditAdapter.setFieldLimits(
210- instanceInfo.maxFieldNameLength,
211- instanceInfo.maxFieldValueLength
212- )
213- binding.addFieldButton.isVisible =
214- accountFieldEditAdapter.itemCount < maxAccountFields
215- }
205+ viewModel.instanceData.observe { instanceInfo ->
206+ maxAccountFields = instanceInfo.maxFields
207+ accountFieldEditAdapter.setFieldLimits(
208+ instanceInfo.maxFieldNameLength,
209+ instanceInfo.maxFieldValueLength
210+ )
211+ binding.addFieldButton.isVisible =
212+ accountFieldEditAdapter.itemCount < maxAccountFields
216213 }
217214
218215 observeImage(viewModel.avatarData, binding.avatarPreview, true )
219216 observeImage(viewModel.headerData, binding.headerPreview, false )
220217
221- lifecycleScope.launch {
222- viewModel.saveData.collect {
223- if (it == null ) return @collect
224- when (it) {
225- is Success -> {
226- finish()
227- }
228- is Loading -> {
229- binding.saveProgressBar.visibility = View .VISIBLE
230- }
231- is Error -> {
232- onSaveFailure(it.errorMessage)
233- }
218+ viewModel.saveData.observe {
219+ if (it == null ) return @observe
220+ when (it) {
221+ is Success -> {
222+ finish()
223+ }
224+ is Loading -> {
225+ binding.saveProgressBar.visibility = View .VISIBLE
226+ }
227+ is Error -> {
228+ onSaveFailure(it.errorMessage)
234229 }
235230 }
236231 }
@@ -258,10 +253,8 @@ class EditProfileActivity : BaseActivity(), Injectable {
258253 }
259254
260255 onBackPressedDispatcher.addCallback(this , onBackCallback)
261- lifecycleScope.launch {
262- viewModel.isChanged.collect { dataWasChanged ->
263- onBackCallback.isEnabled = dataWasChanged
264- }
256+ viewModel.isChanged.observe { dataWasChanged ->
257+ onBackCallback.isEnabled = dataWasChanged
265258 }
266259 }
267260
@@ -277,26 +270,23 @@ class EditProfileActivity : BaseActivity(), Injectable {
277270 imageView : ImageView ,
278271 roundedCorners : Boolean
279272 ) {
280- lifecycleScope.launch {
281- flow.collect { imageUri ->
282-
283- // skipping all caches so we can always reuse the same uri
284- val glide = Glide .with (imageView)
285- .load(imageUri)
286- .skipMemoryCache(true )
287- .diskCacheStrategy(DiskCacheStrategy .NONE )
288-
289- if (roundedCorners) {
290- glide.transform(
291- FitCenter (),
292- RoundedCorners (resources.getDimensionPixelSize(R .dimen.avatar_radius_80dp))
293- ).into(imageView)
294- } else {
295- glide.into(imageView)
296- }
297-
298- imageView.show()
273+ flow.observe { imageUri ->
274+ // skipping all caches so we can always reuse the same uri
275+ val glide = Glide .with (imageView)
276+ .load(imageUri)
277+ .skipMemoryCache(true )
278+ .diskCacheStrategy(DiskCacheStrategy .NONE )
279+
280+ if (roundedCorners) {
281+ glide.transform(
282+ FitCenter (),
283+ RoundedCorners (resources.getDimensionPixelSize(R .dimen.avatar_radius_80dp))
284+ ).into(imageView)
285+ } else {
286+ glide.into(imageView)
299287 }
288+
289+ imageView.show()
300290 }
301291 }
302292
0 commit comments