Fix hatching pet dialog

This commit is contained in:
Phillip Thelen 2019-07-01 16:07:16 +02:00
parent 8236aa3fee
commit e40e768888
2 changed files with 38 additions and 38 deletions

View file

@ -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

View file

@ -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() {