diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/ClassSelectionActivity.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/ClassSelectionActivity.kt index ad1b65605..29c1f823b 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/ClassSelectionActivity.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/ClassSelectionActivity.kt @@ -263,15 +263,16 @@ class ClassSelectionActivity : BaseActivity() { private fun selectClass(selectedClass: String, isChanging: Boolean) { shouldFinish = true - this.displayProgressDialog(getString(R.string.changing_class_progress)) + val dialog = this.displayProgressDialog(getString(R.string.changing_class_progress)) lifecycleScope.launch(Dispatchers.Main) { userRepository.changeClass(selectedClass) + dialog.hide() if (isChanging) displayClassChanged(selectedClass) } } - private fun displayProgressDialog(progressText: String) { - HabiticaProgressDialog.show(this, progressText, 300) + private fun displayProgressDialog(progressText: String) : HabiticaProgressDialog { + return HabiticaProgressDialog.show(this, progressText, 300) } private fun dismiss() { diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/preferences/AccountPreferenceFragment.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/preferences/AccountPreferenceFragment.kt index 25c642ba9..c7fbcc766 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/preferences/AccountPreferenceFragment.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/preferences/AccountPreferenceFragment.kt @@ -432,7 +432,7 @@ class AccountPreferenceFragment : } private fun deleteAccount(password: String) { - val dialog = HabiticaProgressDialog.show(context, R.string.deleting_account) + val dialog = context?.let { HabiticaProgressDialog.show(it, R.string.deleting_account) } lifecycleScope.launchCatching({ throwable -> dialog?.dismiss() if (throwable is HttpException && throwable.code() == 401) { @@ -481,7 +481,7 @@ class AccountPreferenceFragment : } private fun resetAccount() { - val dialog = HabiticaProgressDialog.show(context, R.string.resetting_account) + val dialog = context?.let { HabiticaProgressDialog.show(it, R.string.resetting_account) } lifecycleScope.launch(ExceptionHandler.coroutine()) { userRepository.resetAccount() dialog?.dismiss() diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/dialogs/HabiticaProgressDialog.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/dialogs/HabiticaProgressDialog.kt index e5cf910c5..c9f9c3858 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/dialogs/HabiticaProgressDialog.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/dialogs/HabiticaProgressDialog.kt @@ -7,16 +7,16 @@ import com.habitrpg.common.habitica.extensions.dpToPx class HabiticaProgressDialog(context: Context) : HabiticaAlertDialog(context) { companion object { - fun show(context: Context?, titleID: Int): HabiticaProgressDialog? { - return show(context, context?.getString(titleID)) + fun show(context: Context, titleID: Int): HabiticaProgressDialog { + return show(context, context.getString(titleID)) } - fun show(context: Context?, title: String?, dialogWidth: Int = 300): HabiticaProgressDialog? { - val dialog = context?.let { HabiticaProgressDialog(it) } - dialog?.setAdditionalContentView(R.layout.circular_progress) - dialog?.dialogWidth = dialogWidth.dpToPx(context) - dialog?.setTitle(title) - dialog?.enqueue() + fun show(context: Context, title: String?, dialogWidth: Int = 300): HabiticaProgressDialog { + val dialog = HabiticaProgressDialog(context) + dialog.setAdditionalContentView(R.layout.circular_progress) + dialog.dialogWidth = dialogWidth.dpToPx(context) + dialog.setTitle(title) + dialog.enqueue() return dialog } }