From 454d6af92c0a2a294a980e172c09d0e2c9bac142 Mon Sep 17 00:00:00 2001 From: Phillip Thelen Date: Thu, 14 Sep 2023 22:29:58 +0200 Subject: [PATCH] correctly remove view --- .../android/habitica/interactors/ShareMountUseCase.kt | 7 +++++-- .../android/habitica/interactors/SharePetUseCase.kt | 5 +++-- .../android/habitica/ui/views/stable/MountBottomSheet.kt | 6 +++--- 3 files changed, 11 insertions(+), 7 deletions(-) diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/interactors/ShareMountUseCase.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/interactors/ShareMountUseCase.kt index 9da41a678..c95a12280 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/interactors/ShareMountUseCase.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/interactors/ShareMountUseCase.kt @@ -3,6 +3,7 @@ package com.habitrpg.android.habitica.interactors import android.content.Context import android.graphics.Bitmap import android.graphics.Canvas +import android.view.View import android.view.ViewGroup import android.widget.FrameLayout import androidx.compose.ui.Modifier @@ -27,6 +28,7 @@ class ShareMountUseCase: UseCase() { override suspend fun run(requestValues: RequestValues) { val mountWrapper = MountImageviewBinding.inflate(requestValues.context.layoutInflater) + mountWrapper.root.visibility = View.INVISIBLE val width = if (mountWrapper.root.width > 0) mountWrapper.root.width else 300.dpToPx(requestValues.context) val height = 124.dpToPx(requestValues.context) mountWrapper.root.layout(0, 0, width, height) @@ -34,7 +36,8 @@ class ShareMountUseCase: UseCase() { val currentActivity = HabiticaBaseApplication.getInstance(requestValues.context)?.currentActivity?.get() // Add the view to the decorView so that it can be layouted - (currentActivity?.window?.decorView as? ViewGroup)?.addView(mountWrapper.root) + val containerView = (currentActivity?.window?.decorView as? ViewGroup) + containerView?.addView(mountWrapper.root) if (currentActivity != null) { mountWrapper.backgroundView.setContent { HabiticaTheme { @@ -63,7 +66,7 @@ class ShareMountUseCase: UseCase() { ((requestValues.context as? BaseActivity) ?: HabiticaBaseApplication.getInstance( requestValues.context )?.currentActivity?.get())?.shareContent("pet", requestValues.message, sharedImage) - currentActivity?.toolbar?.removeView(mountWrapper.root) + containerView?.removeView(mountWrapper.root) } // trigger layout val m = FrameLayout.LayoutParams(width, height) diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/interactors/SharePetUseCase.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/interactors/SharePetUseCase.kt index a0b392bca..dc88669a1 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/interactors/SharePetUseCase.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/interactors/SharePetUseCase.kt @@ -44,7 +44,8 @@ class SharePetUseCase: UseCase() { petWrapper.root.visibility = View.INVISIBLE val currentActivity = HabiticaBaseApplication.getInstance(requestValues.context)?.currentActivity?.get() - (currentActivity?.window?.decorView as? ViewGroup)?.addView(petWrapper.root) + val containerView = (currentActivity?.window?.decorView as? ViewGroup) + containerView?.addView(petWrapper.root) if (currentActivity != null) { petWrapper.backgroundView.setContent { HabiticaTheme { @@ -73,7 +74,7 @@ class SharePetUseCase: UseCase() { ((requestValues.context as? BaseActivity) ?: HabiticaBaseApplication.getInstance( requestValues.context )?.currentActivity?.get())?.shareContent("pet", requestValues.message, sharedImage) - currentActivity?.toolbar?.removeView(petWrapper.root) + containerView?.removeView(petWrapper.root) } val m = FrameLayout.LayoutParams(width, height) petWrapper.root.layoutParams = m diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/stable/MountBottomSheet.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/stable/MountBottomSheet.kt index 78a865311..6849cdb4d 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/stable/MountBottomSheet.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/stable/MountBottomSheet.kt @@ -109,9 +109,9 @@ fun MountBottomSheet( ) { BackgroundScene() - val regularPosition = 44f - val highJump = 32f - val lowJump = 40f + val regularPosition = 40f + val highJump = 28f + val lowJump = 35f val position by if (isAnimalFlying(mount)) { infiniteTransition.animateFloat( initialValue = 24f,