mirror of
https://github.com/sudoxnym/habitica-android.git
synced 2026-04-14 19:56:32 +00:00
Improve mystery item feedback. Fixes #1188
This commit is contained in:
parent
40c3665c3a
commit
2eec91d635
5 changed files with 25 additions and 17 deletions
|
|
@ -22,7 +22,9 @@
|
|||
android:layout_width="@dimen/snackbar_image_size"
|
||||
android:background="@drawable/white_circle_background"
|
||||
android:visibility="gone"
|
||||
tools:visibility="visible" />
|
||||
tools:visibility="visible"
|
||||
android:layout_marginTop="6dp"
|
||||
android:layout_marginBottom="6dp"/>
|
||||
<LinearLayout
|
||||
android:id="@+id/content_container"
|
||||
android:layout_width="0dp"
|
||||
|
|
|
|||
|
|
@ -956,4 +956,5 @@
|
|||
<string name="remove_member_confirm">Are you sure you want to remove %s from the group?</string>
|
||||
<string name="transfer">Transfer</string>
|
||||
<string name="removed_member">%s was removed from the group</string>
|
||||
<string name="mystery_item_received">You open the box and receive a %s</string>
|
||||
</resources>
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
package com.habitrpg.android.habitica.ui.fragments.inventory.items
|
||||
|
||||
import android.graphics.drawable.BitmapDrawable
|
||||
import android.os.Bundle
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
|
|
@ -20,10 +21,9 @@ 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.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 com.habitrpg.android.habitica.ui.helpers.*
|
||||
import com.habitrpg.android.habitica.ui.views.HabiticaSnackbar
|
||||
import com.habitrpg.android.habitica.ui.views.HabiticaSnackbar.Companion.showSnackbar
|
||||
import io.reactivex.functions.Consumer
|
||||
import javax.inject.Inject
|
||||
|
||||
|
|
@ -35,17 +35,17 @@ class ItemRecyclerFragment : BaseFragment() {
|
|||
lateinit var userRepository: UserRepository
|
||||
val recyclerView: RecyclerViewEmptySupport? by bindView(R.id.recyclerView)
|
||||
val emptyView: View? by bindView(R.id.emptyView)
|
||||
val emptyTextView: TextView? by bindView(R.id.empty_text_view)
|
||||
private val emptyTextView: TextView? by bindView(R.id.empty_text_view)
|
||||
val titleView: TextView? by bindView(R.id.titleTextView)
|
||||
val footerView: TextView? by bindView(R.id.footerTextView)
|
||||
val openMarketButton: Button? by bindView(R.id.openMarketButton)
|
||||
val openEmptyMarketButton: Button? by bindView(R.id.openEmptyMarketButton)
|
||||
private val footerView: TextView? by bindView(R.id.footerTextView)
|
||||
private val openMarketButton: Button? by bindView(R.id.openMarketButton)
|
||||
private val openEmptyMarketButton: Button? by bindView(R.id.openEmptyMarketButton)
|
||||
var adapter: ItemRecyclerAdapter? = null
|
||||
var itemType: String? = null
|
||||
var itemTypeText: String? = null
|
||||
var isHatching: Boolean = false
|
||||
var isFeeding: Boolean = false
|
||||
var hatchingItem: Item? = null
|
||||
private var hatchingItem: Item? = null
|
||||
var feedingPet: Pet? = null
|
||||
var user: User? = null
|
||||
internal var layoutManager: androidx.recyclerview.widget.LinearLayoutManager? = null
|
||||
|
|
@ -103,6 +103,14 @@ class ItemRecyclerFragment : BaseFragment() {
|
|||
.subscribe(Consumer { MainNavigationController.navigate(R.id.partyFragment) }, RxErrorHandler.handleEmptyError()))
|
||||
compositeSubscription.add(adapter.getOpenMysteryItemFlowable()
|
||||
.flatMap { inventoryRepository.openMysteryItem(user) }
|
||||
.doOnNext {
|
||||
val activity = activity as? MainActivity
|
||||
if (activity != null) {
|
||||
DataBindingUtils.loadImage("shop_${it.key}") {image ->
|
||||
showSnackbar(activity.snackbarContainer, BitmapDrawable(context?.resources, image), null, getString(R.string.mystery_item_received, it.text), HabiticaSnackbar.SnackbarDisplayType.NORMAL)
|
||||
}
|
||||
}
|
||||
}
|
||||
.flatMap { userRepository.retrieveUser(false) }
|
||||
.subscribe(Consumer { }, RxErrorHandler.handleEmptyError()))
|
||||
compositeSubscription.add(adapter.startHatchingEvents.subscribeWithErrorHandler(Consumer { showHatchingDialog(it) }))
|
||||
|
|
|
|||
|
|
@ -5,7 +5,6 @@ import android.util.AttributeSet
|
|||
import android.view.View
|
||||
import android.widget.LinearLayout
|
||||
import com.habitrpg.android.habitica.R
|
||||
import com.habitrpg.android.habitica.ui.AvatarView
|
||||
import com.habitrpg.android.habitica.ui.helpers.DataBindingUtils
|
||||
import kotlinx.android.synthetic.main.item_image_row.view.*
|
||||
|
||||
|
|
@ -14,7 +13,7 @@ class EquipmentItemRow(context: Context?, attrs: AttributeSet?) : LinearLayout(c
|
|||
var equipmentIdentifier: String? = null
|
||||
set(value) {
|
||||
field = value
|
||||
val imageName = if (equipmentIdentifier?.isNotEmpty() == true && equipmentIdentifier?.endsWith("base_0") == false) "shop_"+equipmentIdentifier else "head_0"
|
||||
val imageName = if (equipmentIdentifier?.isNotEmpty() == true && equipmentIdentifier?.endsWith("base_0") == false) "shop_$equipmentIdentifier" else "head_0"
|
||||
DataBindingUtils.loadImage(imageView, imageName)
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -53,11 +53,9 @@ private constructor(parent: ViewGroup, content: View, callback: ContentViewCallb
|
|||
}
|
||||
|
||||
fun setLeftIcon(image: Drawable?): HabiticaSnackbar {
|
||||
if (image == null) {
|
||||
return this
|
||||
}
|
||||
val imageView = view.findViewById<ImageView>(R.id.leftImageView)
|
||||
imageView.setImageDrawable(image)
|
||||
imageView.visibility = if (image != null) View.VISIBLE else View.GONE
|
||||
return this
|
||||
}
|
||||
|
||||
|
|
@ -122,7 +120,7 @@ private constructor(parent: ViewGroup, content: View, callback: ContentViewCallb
|
|||
showSnackbar(container, null, null, content, null, null, 0, null, displayType)
|
||||
}
|
||||
|
||||
fun showSnackbar(container: ViewGroup, leftImage: Drawable, title: CharSequence, content: CharSequence, displayType: SnackbarDisplayType) {
|
||||
fun showSnackbar(container: ViewGroup, leftImage: Drawable, title: CharSequence?, content: CharSequence?, displayType: SnackbarDisplayType) {
|
||||
showSnackbar(container, leftImage, title, content, null, null, 0, null, displayType)
|
||||
}
|
||||
|
||||
|
|
@ -136,7 +134,7 @@ private constructor(parent: ViewGroup, content: View, callback: ContentViewCallb
|
|||
}
|
||||
|
||||
fun showSnackbar(container: ViewGroup, leftImage: Drawable?, title: CharSequence?, content: CharSequence?, specialView: View?, rightIcon: Drawable?, rightTextColor: Int, rightText: String?, displayType: SnackbarDisplayType) {
|
||||
val snackbar = HabiticaSnackbar.make(container, Snackbar.LENGTH_LONG)
|
||||
val snackbar = make(container, Snackbar.LENGTH_LONG)
|
||||
.setTitle(title)
|
||||
.setText(content)
|
||||
.setSpecialView(specialView)
|
||||
|
|
|
|||
Loading…
Reference in a new issue