fix crash

This commit is contained in:
Phillip Thelen 2023-10-27 14:35:11 +02:00
parent b8d486412f
commit 98f3a2957c
6 changed files with 18 additions and 10 deletions

View file

@ -1,6 +1,5 @@
package com.habitrpg.android.habitica.ui.activities
import android.content.Context
import android.graphics.drawable.BitmapDrawable
import android.graphics.drawable.Drawable
import android.os.Bundle

View file

@ -33,7 +33,6 @@ import com.habitrpg.android.habitica.ui.views.CurrencyText
import com.habitrpg.android.habitica.ui.views.dialogs.HabiticaAlertDialog
import com.habitrpg.android.habitica.ui.views.dialogs.HabiticaProgressDialog
import com.habitrpg.android.habitica.ui.views.insufficientCurrency.InsufficientGemsDialog
import com.habitrpg.android.habitica.ui.views.insufficientCurrency.InsufficientHourglassesDialog
import com.habitrpg.android.habitica.ui.views.shops.PurchaseDialog
import com.habitrpg.common.habitica.helpers.ExceptionHandler
import com.habitrpg.common.habitica.helpers.RecyclerViewState
@ -256,7 +255,7 @@ open class ShopFragment : BaseMainFragment<FragmentRefreshRecyclerviewBinding>()
alert.setMessage(getString(R.string.change_class_equipment_warning))
alert.addButton(R.string.choose_class, true) { _, _ ->
val dialog = HabiticaProgressDialog.show(
context,
requireActivity(),
getString(R.string.changing_class_progress),
300
)
@ -274,7 +273,7 @@ open class ShopFragment : BaseMainFragment<FragmentRefreshRecyclerviewBinding>()
alert.setTitle(getString(R.string.class_confirmation, classIdentifier))
alert.addButton(R.string.choose_class, true) { _, _ ->
val dialog = HabiticaProgressDialog.show(
context,
requireActivity(),
getString(R.string.changing_class_progress),
300
)

View file

@ -488,7 +488,7 @@ class AccountPreferenceFragment :
}
private fun deleteAccount(password: String) {
val dialog = context?.let { HabiticaProgressDialog.show(it, R.string.deleting_account) }
val dialog = activity?.let { HabiticaProgressDialog.show(it, R.string.deleting_account) }
lifecycleScope.launchCatching({ throwable ->
dialog?.dismiss()
if (throwable is HttpException && throwable.code() == 401) {
@ -537,7 +537,7 @@ class AccountPreferenceFragment :
}
private fun resetAccount() {
val dialog = context?.let { HabiticaProgressDialog.show(it, R.string.resetting_account) }
val dialog = activity?.let { HabiticaProgressDialog.show(it, R.string.resetting_account) }
lifecycleScope.launch(ExceptionHandler.coroutine()) {
userRepository.resetAccount()
dialog?.dismiss()

View file

@ -93,7 +93,7 @@ open class NotificationsViewModel @Inject constructor(
fun getNotificationCount(): Flow<Int> {
return getNotifications().map {
it.count { notification ->
(notification.type == Notification.Type.UNALLOCATED_STATS_POINTS.type) == hasStats
(notification.type != Notification.Type.UNALLOCATED_STATS_POINTS.type) || hasStats
}
}.distinctUntilChanged()
}

View file

@ -1,10 +1,14 @@
package com.habitrpg.android.habitica.ui.views.dialogs
import android.content.Context
import androidx.appcompat.app.AppCompatActivity
import androidx.compose.foundation.layout.size
import androidx.compose.ui.Modifier
import androidx.compose.ui.platform.ComposeView
import androidx.compose.ui.unit.dp
import androidx.fragment.app.FragmentActivity
import androidx.lifecycle.setViewTreeLifecycleOwner
import androidx.savedstate.setViewTreeSavedStateRegistryOwner
import com.habitrpg.common.habitica.theme.HabiticaTheme
import com.habitrpg.common.habitica.views.HabiticaCircularProgressView
import com.habitrpg.common.habitica.extensions.dpToPx
@ -12,11 +16,11 @@ import com.habitrpg.common.habitica.extensions.dpToPx
class HabiticaProgressDialog(context: Context) : HabiticaAlertDialog(context) {
companion object {
fun show(context: Context, titleID: Int): HabiticaProgressDialog {
fun show(context: FragmentActivity, titleID: Int): HabiticaProgressDialog {
return show(context, context.getString(titleID))
}
fun show(context: Context, title: String?, dialogWidth: Int = 300): HabiticaProgressDialog {
fun show(context: FragmentActivity, title: String?, dialogWidth: Int = 300): HabiticaProgressDialog {
val dialog = HabiticaProgressDialog(context)
val composeView = ComposeView(context)
dialog.setAdditionalContentView(composeView)
@ -25,6 +29,12 @@ class HabiticaProgressDialog(context: Context) : HabiticaAlertDialog(context) {
HabiticaCircularProgressView(Modifier.size(60.dp))
}
}
dialog.window?.let {
dialog.additionalContentView?.setViewTreeSavedStateRegistryOwner(context)
it.decorView.setViewTreeSavedStateRegistryOwner(context)
dialog.additionalContentView?.setViewTreeLifecycleOwner(context)
it.decorView.setViewTreeLifecycleOwner(context)
}
dialog.dialogWidth = dialogWidth.dpToPx(context)
dialog.setTitle(title)
dialog.enqueue()

View file

@ -1,2 +1,2 @@
NAME=4.3
CODE=6711
CODE=6721