mirror of
https://github.com/sudoxnym/habitica-android.git
synced 2026-07-13 17:51:57 +00:00
Fix customization list jumping
This commit is contained in:
parent
9edc8022ea
commit
5041ce6e5e
1 changed files with 30 additions and 23 deletions
|
|
@ -33,16 +33,11 @@ class CustomizationRecyclerViewAdapter() : androidx.recyclerview.widget.Recycler
|
||||||
var customizationType: String? = null
|
var customizationType: String? = null
|
||||||
var gemBalance: Int = 0
|
var gemBalance: Int = 0
|
||||||
var unsortedCustomizations: List<Customization> = ArrayList()
|
var unsortedCustomizations: List<Customization> = ArrayList()
|
||||||
var customizationList: MutableList<Any> = ArrayList()
|
private var customizationList: MutableList<Any> = ArrayList()
|
||||||
set(value) {
|
|
||||||
field = value
|
|
||||||
notifyDataSetChanged()
|
|
||||||
}
|
|
||||||
var additionalSetItems: List<Customization> = ArrayList()
|
var additionalSetItems: List<Customization> = ArrayList()
|
||||||
var activeCustomization: String? = null
|
var activeCustomization: String? = null
|
||||||
set(value) {
|
set(value) {
|
||||||
field = value
|
field = value
|
||||||
this.notifyDataSetChanged()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
var ownedCustomizations: List<String> = listOf()
|
var ownedCustomizations: List<String> = listOf()
|
||||||
|
|
@ -50,23 +45,27 @@ class CustomizationRecyclerViewAdapter() : androidx.recyclerview.widget.Recycler
|
||||||
private val selectCustomizationEvents = PublishSubject.create<Customization>()
|
private val selectCustomizationEvents = PublishSubject.create<Customization>()
|
||||||
|
|
||||||
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): androidx.recyclerview.widget.RecyclerView.ViewHolder {
|
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): androidx.recyclerview.widget.RecyclerView.ViewHolder {
|
||||||
return if (viewType == 0) {
|
return when (viewType) {
|
||||||
val view = LayoutInflater.from(parent.context)
|
0 -> {
|
||||||
.inflate(R.layout.customization_section_header, parent, false)
|
val view = LayoutInflater.from(parent.context)
|
||||||
SectionViewHolder(view)
|
.inflate(R.layout.customization_section_header, parent, false)
|
||||||
} else if (viewType == 1) {
|
SectionViewHolder(view)
|
||||||
val view = LayoutInflater.from(parent.context)
|
|
||||||
.inflate(R.layout.customization_section_footer, parent, false)
|
|
||||||
SectionFooterViewHolder(view)
|
|
||||||
} else {
|
|
||||||
val viewID: Int = if (customizationType == "background") {
|
|
||||||
R.layout.customization_grid_background_item
|
|
||||||
} else {
|
|
||||||
R.layout.customization_grid_item
|
|
||||||
}
|
}
|
||||||
|
1 -> {
|
||||||
|
val view = LayoutInflater.from(parent.context)
|
||||||
|
.inflate(R.layout.customization_section_footer, parent, false)
|
||||||
|
SectionFooterViewHolder(view)
|
||||||
|
}
|
||||||
|
else -> {
|
||||||
|
val viewID: Int = if (customizationType == "background") {
|
||||||
|
R.layout.customization_grid_background_item
|
||||||
|
} else {
|
||||||
|
R.layout.customization_grid_item
|
||||||
|
}
|
||||||
|
|
||||||
val view = LayoutInflater.from(parent.context).inflate(viewID, parent, false)
|
val view = LayoutInflater.from(parent.context).inflate(viewID, parent, false)
|
||||||
CustomizationViewHolder(view)
|
CustomizationViewHolder(view)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -108,7 +107,14 @@ class CustomizationRecyclerViewAdapter() : androidx.recyclerview.widget.Recycler
|
||||||
val today = Date()
|
val today = Date()
|
||||||
for (customization in newCustomizationList) {
|
for (customization in newCustomizationList) {
|
||||||
if (customization.availableFrom != null || customization.availableUntil != null) {
|
if (customization.availableFrom != null || customization.availableUntil != null) {
|
||||||
if ((customization.availableFrom?.compareTo(today) ?: 0 > 0 || customization.availableUntil?.compareTo(today) ?: 0 < 0) && !customization.isUsable(ownedCustomizations.contains(customization.id))) {
|
if (((customization.availableFrom?.compareTo(today)
|
||||||
|
?: 0) > 0 || (customization.availableUntil?.compareTo(today)
|
||||||
|
?: 0) < 0) && !customization.isUsable(
|
||||||
|
ownedCustomizations.contains(
|
||||||
|
customization.id
|
||||||
|
)
|
||||||
|
)
|
||||||
|
) {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -205,6 +211,8 @@ class CustomizationRecyclerViewAdapter() : androidx.recyclerview.widget.Recycler
|
||||||
layerMap[AvatarView.LayerType.BACKGROUND] = customization?.let { ShopItem.fromCustomization(it, userSize, hairColor).imageName }
|
layerMap[AvatarView.LayerType.BACKGROUND] = customization?.let { ShopItem.fromCustomization(it, userSize, hairColor).imageName }
|
||||||
purchasedCustomizationView.findViewById<AvatarView>(R.id.avatar_view).setAvatar(avatar!!, layerMap)
|
purchasedCustomizationView.findViewById<AvatarView>(R.id.avatar_view).setAvatar(avatar!!, layerMap)
|
||||||
alert.setAdditionalContentView(purchasedCustomizationView)
|
alert.setAdditionalContentView(purchasedCustomizationView)
|
||||||
|
alert.setTitle(customization?.text)
|
||||||
|
alert.setMessage(customization?.notes)
|
||||||
alert.addButton(R.string.equip, true) { _, _ ->
|
alert.addButton(R.string.equip, true) { _, _ ->
|
||||||
customization?.let {
|
customization?.let {
|
||||||
selectCustomizationEvents.onNext(it)
|
selectCustomizationEvents.onNext(it)
|
||||||
|
|
@ -218,7 +226,6 @@ class CustomizationRecyclerViewAdapter() : androidx.recyclerview.widget.Recycler
|
||||||
customization?.let {
|
customization?.let {
|
||||||
selectCustomizationEvents.onNext(it)
|
selectCustomizationEvents.onNext(it)
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue