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
+ }
}