From e40e768888584370970fc175869084fe2c64d2ef Mon Sep 17 00:00:00 2001 From: Phillip Thelen Date: Mon, 1 Jul 2019 16:07:16 +0200 Subject: [PATCH] Fix hatching pet dialog --- .../habitica/ui/activities/MainActivity.kt | 33 +++++++++++++- .../inventory/items/ItemRecyclerFragment.kt | 43 +++---------------- 2 files changed, 38 insertions(+), 38 deletions(-) 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 033adce5f..43bb84890 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 @@ -41,7 +41,6 @@ import com.habitrpg.android.habitica.events.ShowConnectionProblemEvent import com.habitrpg.android.habitica.events.ShowSnackbarEvent import com.habitrpg.android.habitica.events.commands.FeedCommand import com.habitrpg.android.habitica.extensions.DateUtils -import com.habitrpg.android.habitica.extensions.dpToPx import com.habitrpg.android.habitica.extensions.subscribeWithErrorHandler import com.habitrpg.android.habitica.helpers.* import com.habitrpg.android.habitica.helpers.notifications.PushNotificationManager @@ -49,6 +48,8 @@ import com.habitrpg.android.habitica.interactors.CheckClassSelectionUseCase import com.habitrpg.android.habitica.interactors.DisplayItemDropUseCase import com.habitrpg.android.habitica.interactors.NotifyUserUseCase import com.habitrpg.android.habitica.models.TutorialStep +import com.habitrpg.android.habitica.models.inventory.Egg +import com.habitrpg.android.habitica.models.inventory.HatchingPotion import com.habitrpg.android.habitica.models.notifications.LoginIncentiveData import com.habitrpg.android.habitica.models.responses.MaintenanceResponse import com.habitrpg.android.habitica.models.responses.TaskScoringResult @@ -59,7 +60,6 @@ import com.habitrpg.android.habitica.ui.AvatarWithBarsViewModel import com.habitrpg.android.habitica.ui.TutorialView import com.habitrpg.android.habitica.ui.fragments.NavigationDrawerFragment import com.habitrpg.android.habitica.ui.helpers.DataBindingUtils -import com.habitrpg.android.habitica.ui.helpers.KeyboardUtil import com.habitrpg.android.habitica.ui.helpers.bindOptionalView import com.habitrpg.android.habitica.ui.helpers.bindView import com.habitrpg.android.habitica.ui.viewmodels.NotificationsViewModel @@ -674,6 +674,35 @@ open class MainActivity : BaseActivity(), TutorialView.OnTutorialReaction { } } + fun hatchPet(potion: HatchingPotion, egg: Egg) { + compositeSubscription.add(this.inventoryRepository.hatchPet(egg, potion) { + val petWrapper = View.inflate(this, R.layout.pet_imageview, null) as? FrameLayout + val petImageView = petWrapper?.findViewById(R.id.pet_imageview) as? SimpleDraweeView + + DataBindingUtils.loadImage(petImageView, "Pet-" + egg.key + "-" + potion.key) + val potionName = potion.text + val eggName = egg.text + val dialog = HabiticaAlertDialog(this) + dialog.setTitle(getString(R.string.hatched_pet_title, potionName, eggName)) + dialog.setAdditionalContentView(petWrapper) + dialog.addButton(R.string.onwards, true) { hatchingDialog, _ -> hatchingDialog.dismiss() } + dialog.addButton(R.string.share, false) { hatchingDialog, _ -> + val event1 = ShareEvent() + event1.sharedMessage = getString(R.string.share_hatched, potionName, eggName) + " https://habitica.com/social/hatch-pet" + val petImageSideLength = 140 + val sharedImage = Bitmap.createBitmap(petImageSideLength, petImageSideLength, Bitmap.Config.ARGB_8888) + val canvas = Canvas(sharedImage) + canvas.drawColor(ContextCompat.getColor(this, R.color.brand_300)) + petImageView?.drawable?.setBounds(0, 0, petImageSideLength, petImageSideLength) + petImageView?.drawable?.draw(canvas) + event1.shareImage = sharedImage + EventBus.getDefault().post(event1) + hatchingDialog.dismiss() + } + dialog?.show() + }.subscribe(Consumer { }, RxErrorHandler.handleEmptyError())) + } + companion object { const val SELECT_CLASS_RESULT = 11 const val GEM_PURCHASE_REQUEST = 111 diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/inventory/items/ItemRecyclerFragment.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/inventory/items/ItemRecyclerFragment.kt index 55517d23d..d7d6b34e9 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/inventory/items/ItemRecyclerFragment.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/inventory/items/ItemRecyclerFragment.kt @@ -1,34 +1,30 @@ package com.habitrpg.android.habitica.ui.fragments.inventory.items -import android.graphics.Bitmap -import android.graphics.Canvas import android.os.Bundle import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import android.view.Window import android.widget.Button -import android.widget.FrameLayout import android.widget.TextView -import androidx.core.content.ContextCompat -import com.facebook.drawee.view.SimpleDraweeView import com.habitrpg.android.habitica.R import com.habitrpg.android.habitica.components.UserComponent import com.habitrpg.android.habitica.data.InventoryRepository import com.habitrpg.android.habitica.data.UserRepository -import com.habitrpg.android.habitica.events.ShareEvent import com.habitrpg.android.habitica.extensions.subscribeWithErrorHandler import com.habitrpg.android.habitica.helpers.MainNavigationController import com.habitrpg.android.habitica.helpers.RxErrorHandler import com.habitrpg.android.habitica.models.inventory.* import com.habitrpg.android.habitica.models.user.OwnedPet import com.habitrpg.android.habitica.models.user.User +import com.habitrpg.android.habitica.ui.activities.MainActivity import com.habitrpg.android.habitica.ui.adapter.inventory.ItemRecyclerAdapter import com.habitrpg.android.habitica.ui.fragments.BaseFragment -import com.habitrpg.android.habitica.ui.helpers.* -import com.habitrpg.android.habitica.ui.views.dialogs.HabiticaAlertDialog +import com.habitrpg.android.habitica.ui.helpers.RecyclerViewEmptySupport +import com.habitrpg.android.habitica.ui.helpers.SafeDefaultItemAnimator +import com.habitrpg.android.habitica.ui.helpers.bindView +import com.habitrpg.android.habitica.ui.helpers.resetViews import io.reactivex.functions.Consumer -import org.greenrobot.eventbus.EventBus import javax.inject.Inject class ItemRecyclerFragment : BaseFragment() { @@ -191,33 +187,8 @@ class ItemRecyclerFragment : BaseFragment() { } private fun hatchPet(potion: HatchingPotion, egg: Egg) { - compositeSubscription.add(this.inventoryRepository.hatchPet(egg, potion) { - dismiss() - val petWrapper = View.inflate(context, R.layout.pet_imageview, null) as? FrameLayout - val petImageView = petWrapper?.findViewById(R.id.pet_imageview) as? SimpleDraweeView - - DataBindingUtils.loadImage(petImageView, "Pet-" + egg.key + "-" + potion.key) - val potionName = potion.text - val eggName = egg.text - val dialog = context?.let { HabiticaAlertDialog(it) } - dialog?.setTitle(getString(R.string.hatched_pet_title, potionName, eggName)) - dialog?.setAdditionalContentView(petWrapper) - dialog?.addButton(R.string.onwards, true) { hatchingDialog, _ -> hatchingDialog.dismiss() } - dialog?.addButton(R.string.share, false) { hatchingDialog, _ -> - val event1 = ShareEvent() - event1.sharedMessage = getString(R.string.share_hatched, potionName, eggName) + " https://habitica.com/social/hatch-pet" - val petImageSideLength = 140 - val sharedImage = Bitmap.createBitmap(petImageSideLength, petImageSideLength, Bitmap.Config.ARGB_8888) - val canvas = Canvas(sharedImage) - context?.let { canvas.drawColor(ContextCompat.getColor(it, R.color.brand_300)) } - petImageView?.drawable?.setBounds(0, 0, petImageSideLength, petImageSideLength) - petImageView?.drawable?.draw(canvas) - event1.shareImage = sharedImage - EventBus.getDefault().post(event1) - hatchingDialog.dismiss() - } - dialog?.show() - }.subscribe(Consumer { }, RxErrorHandler.handleEmptyError())) + dismiss() + (activity as? MainActivity)?.hatchPet(potion, egg) } private fun loadItems() {