diff --git a/Habitica/res/values/strings.xml b/Habitica/res/values/strings.xml index 25925e927..b73aca491 100644 --- a/Habitica/res/values/strings.xml +++ b/Habitica/res/values/strings.xml @@ -941,4 +941,5 @@ Confirm deletion New Task Create %s + Details diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/inventory/ItemRecyclerAdapter.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/inventory/ItemRecyclerAdapter.kt index efa413c02..378477620 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/inventory/ItemRecyclerAdapter.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/inventory/ItemRecyclerAdapter.kt @@ -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?, 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?, 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) } } diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/dialogs/DetailDialog.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/dialogs/DetailDialog.kt new file mode 100644 index 000000000..1bb123db2 --- /dev/null +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/dialogs/DetailDialog.kt @@ -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() + } +} \ No newline at end of file diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/shops/PurchaseDialog.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/shops/PurchaseDialog.kt index eed937a36..6b36906bc 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/shops/PurchaseDialog.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/shops/PurchaseDialog.kt @@ -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() diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/shops/PurchaseDialogContent.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/shops/PurchaseDialogContent.kt index 94c74d023..7b1945f62 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/shops/PurchaseDialogContent.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/shops/PurchaseDialogContent.kt @@ -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 + } }