diff --git a/Habitica/res/layout/activity_login.xml b/Habitica/res/layout/activity_login.xml index 7ce3c4dc1..830501bb8 100644 --- a/Habitica/res/layout/activity_login.xml +++ b/Habitica/res/layout/activity_login.xml @@ -57,8 +57,6 @@ android:scaleType="centerCrop" android:paddingBottom="400dp" /> - - diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/MainNavigationController.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/MainNavigationController.kt index 775618cfd..a5c6082ba 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/MainNavigationController.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/MainNavigationController.kt @@ -19,6 +19,9 @@ object MainNavigationController { private val navController: NavController? get() { return controllerReference?.get() } + val isReady: Boolean + get() = controllerReference?.get() != null + fun setup(navController: NavController) { this.controllerReference = WeakReference(navController) } diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/DeathActivity.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/DeathActivity.kt index 0d88b5123..ae13256f3 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/DeathActivity.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/DeathActivity.kt @@ -89,11 +89,15 @@ class DeathActivity: BaseActivity() { private fun startAnimating() { binding.ghostView.startAnimation(Animations.bobbingAnimation()) - makeCoins(305) - makeCoins(160) + binding.heartView.post { + makeCoins(305) + makeCoins(160) + } } private fun makeCoins(startAngle: Int) { + val positionArray = intArrayOf(0, 0) + binding.heartView.getLocationOnScreen(positionArray) ParticleSystem( binding.confettiContainer, 14, @@ -105,7 +109,7 @@ class DeathActivity: BaseActivity() { .setSpeedRange(0.01f, 0.03f) .setFadeOut(4000, AccelerateInterpolator()) .setSpeedModuleAndAngleRange(0.01f, 0.03f, startAngle, startAngle+80) - .emit(550, 670, 3, 6000) + .emit(binding.root.width / 2, positionArray[1] + (binding.heartView.height/2), 3, 6000) } diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/MainActivity.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/MainActivity.kt index 22ace32c4..93921e0bc 100755 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/MainActivity.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/MainActivity.kt @@ -462,7 +462,7 @@ open class MainActivity : BaseActivity(), SnackbarActivity { } val now = Date().time - if (!this.isFinishing && now - lastDeathDialogDisplay > 60000) { + if (!this.isFinishing && MainNavigationController.isReady && now - lastDeathDialogDisplay > 60000) { lastDeathDialogDisplay = now MainNavigationController.navigate(R.id.deathActivity) }