add a way to view quest rewards from items screen

This commit is contained in:
Phillip Thelen 2019-06-13 09:03:30 +02:00
parent 15f6052bdb
commit 262779197a
5 changed files with 43 additions and 3 deletions

View file

@ -941,4 +941,5 @@
<string name="confirm_deletion">Confirm deletion</string>
<string name="new_task">New Task</string>
<string name="create_task">Create %s</string>
<string name="details">Details</string>
</resources>

View file

@ -18,6 +18,7 @@ import com.habitrpg.android.habitica.ui.helpers.DataBindingUtils
import com.habitrpg.android.habitica.ui.helpers.bindView
import com.habitrpg.android.habitica.ui.menu.BottomSheetMenu
import com.habitrpg.android.habitica.ui.menu.BottomSheetMenuItem
import com.habitrpg.android.habitica.ui.views.dialogs.DetailDialog
import io.reactivex.BackpressureStrategy
import io.reactivex.Flowable
import io.reactivex.subjects.PublishSubject
@ -160,6 +161,7 @@ class ItemRecyclerAdapter(data: OrderedRealmCollection<OwnedItem>?, autoUpdate:
} else if (item is HatchingPotion) {
menu.addMenuItem(BottomSheetMenuItem(resources.getString(R.string.hatch_egg)))
} else if (item is QuestContent) {
menu.addMenuItem(BottomSheetMenuItem(resources.getString(R.string.details)))
menu.addMenuItem(BottomSheetMenuItem(resources.getString(R.string.invite_party)))
} else if (item is SpecialItem) {
val specialItem = item as SpecialItem
@ -180,8 +182,16 @@ class ItemRecyclerAdapter(data: OrderedRealmCollection<OwnedItem>?, autoUpdate:
event.usingFood = selectedItem
EventBus.getDefault().post(event)
}
is HatchingPotion -> item?.let { startHatchingSubject.onNext(it) }
is QuestContent -> questInvitationEvents.onNext(selectedItem)
is HatchingPotion -> startHatchingSubject.onNext(selectedItem)
is QuestContent -> {
if (index == 0) {
val dialog = DetailDialog(context)
dialog.quest = selectedItem
dialog.show()
} else {
questInvitationEvents.onNext(selectedItem)
}
}
is SpecialItem -> openMysteryItemEvents.onNext(selectedItem)
}
}

View file

@ -0,0 +1,24 @@
package com.habitrpg.android.habitica.ui.views.dialogs
import android.content.Context
import com.habitrpg.android.habitica.extensions.addCloseButton
import com.habitrpg.android.habitica.models.inventory.QuestContent
import com.habitrpg.android.habitica.ui.views.shops.PurchaseDialogQuestContent
class DetailDialog(context: Context) : HabiticaAlertDialog(context) {
var quest: QuestContent? = null
set(value) {
field = value
if (value == null) return
val contentView = PurchaseDialogQuestContent(context)
contentView.setQuestContent(value)
contentView.setQuestContentItem(value)
setAdditionalContentView(contentView)
}
init {
addCloseButton()
}
}

View file

@ -136,7 +136,6 @@ class PurchaseDialog(context: Context, component: UserComponent?, val item: Shop
setCustomHeaderView(customHeader)
addCloseButton()
buyButton = addButton(layoutInflater.inflate(R.layout.dialog_purchase_shopitem_button, null)) { _, _ ->
onBuyButtonClicked()

View file

@ -7,6 +7,7 @@ import android.widget.LinearLayout
import android.widget.TextView
import com.facebook.drawee.view.SimpleDraweeView
import com.habitrpg.android.habitica.R
import com.habitrpg.android.habitica.models.inventory.QuestContent
import com.habitrpg.android.habitica.models.shops.ShopItem
import com.habitrpg.android.habitica.ui.helpers.DataBindingUtils
import com.habitrpg.android.habitica.ui.helpers.bindView
@ -38,4 +39,9 @@ abstract class PurchaseDialogContent : LinearLayout {
DataBindingUtils.loadImage(imageView, item.imageName)
titleTextView.text = item.text
}
open fun setQuestContentItem(questContent: QuestContent) {
DataBindingUtils.loadImage(imageView, "inventory_quest_scroll_" + questContent.key)
titleTextView.text = questContent.text
}
}