mirror of
https://github.com/sudoxnym/habitica-android.git
synced 2026-05-24 06:35:46 +00:00
data handling improvements
This commit is contained in:
parent
eb2333667b
commit
077d23b380
5 changed files with 2 additions and 55 deletions
|
|
@ -20,7 +20,7 @@ import java.util.*
|
|||
|
||||
object GSonFactoryCreator {
|
||||
fun create(): GsonConverterFactory {
|
||||
val skillListType = object : TypeToken<List<Skill?>?>() {}.type
|
||||
val skillListType = object : TypeToken<List<Skill>?>() {}.type
|
||||
val taskTagClassListType = object : TypeToken<RealmList<Tag?>?>() {}.type
|
||||
val customizationListType = object : TypeToken<RealmList<Customization?>?>() {}.type
|
||||
val tutorialStepListType = object : TypeToken<RealmList<TutorialStep?>?>() {}.type
|
||||
|
|
@ -34,7 +34,7 @@ object GSonFactoryCreator {
|
|||
val ownedItemListType = object : TypeToken<RealmList<OwnedItem?>?>() {}.type
|
||||
val ownedPetListType = object : TypeToken<RealmList<OwnedPet?>?>() {}.type
|
||||
val ownedMountListType = object : TypeToken<RealmList<OwnedMount?>?>() {}.type
|
||||
val achievementsListType = object : TypeToken<List<Achievement?>?>() {}.type
|
||||
val achievementsListType = object : TypeToken<List<Achievement>?>() {}.type
|
||||
|
||||
val gson = GsonBuilder()
|
||||
.registerTypeAdapter(taskTagClassListType, TaskTagDeserializer())
|
||||
|
|
@ -57,7 +57,6 @@ object GSonFactoryCreator {
|
|||
.registerTypeAdapter(Challenge::class.java, ChallengeDeserializer())
|
||||
.registerTypeAdapter(User::class.java, UserDeserializer())
|
||||
.registerTypeAdapter(questCollectListType, QuestCollectDeserializer())
|
||||
.registerTypeAdapter(chatMessageListType, ChatMessageListDeserializer())
|
||||
.registerTypeAdapter(challengeListType, ChallengeListDeserializer())
|
||||
.registerTypeAdapter(challengeRealmListType, ChallengeListDeserializer())
|
||||
.registerTypeAdapter(questDropItemListType, QuestDropItemsListSerialization())
|
||||
|
|
|
|||
|
|
@ -41,16 +41,6 @@ open class ChecklistItem : RealmObject, BaseMainObject, Parcelable {
|
|||
this.completed = item.completed
|
||||
}
|
||||
|
||||
override fun equals(other: Any?): Boolean {
|
||||
return if (other?.javaClass == ChecklistItem::class.java && this.id != null) {
|
||||
this.id == (other as? ChecklistItem)?.id
|
||||
} else super.equals(other)
|
||||
}
|
||||
|
||||
override fun hashCode(): Int {
|
||||
return id?.hashCode() ?: 0
|
||||
}
|
||||
|
||||
override fun describeContents(): Int {
|
||||
return 0
|
||||
}
|
||||
|
|
|
|||
|
|
@ -18,16 +18,6 @@ open class RemindersItem : RealmObject, Parcelable {
|
|||
//Use to store task type before a task is created
|
||||
var type: String? = null
|
||||
|
||||
override fun equals(other: Any?): Boolean {
|
||||
return if (other?.javaClass == RemindersItem::class.java) {
|
||||
this.id == (other as? RemindersItem)?.id
|
||||
} else super.equals(other)
|
||||
}
|
||||
|
||||
override fun hashCode(): Int {
|
||||
return id?.hashCode() ?: 0
|
||||
}
|
||||
|
||||
override fun describeContents(): Int {
|
||||
return 0
|
||||
}
|
||||
|
|
|
|||
|
|
@ -29,8 +29,6 @@ import javax.inject.Inject
|
|||
|
||||
open class ShopFragment : BaseMainFragment<FragmentRecyclerviewBinding>() {
|
||||
|
||||
|
||||
|
||||
internal val currencyView: CurrencyViews by lazy {
|
||||
val view = CurrencyViews(context)
|
||||
view
|
||||
|
|
|
|||
|
|
@ -1,30 +0,0 @@
|
|||
package com.habitrpg.android.habitica.utils
|
||||
|
||||
import com.google.gson.JsonDeserializationContext
|
||||
import com.google.gson.JsonDeserializer
|
||||
import com.google.gson.JsonElement
|
||||
import com.google.gson.JsonParseException
|
||||
import com.habitrpg.android.habitica.models.social.ChatMessage
|
||||
|
||||
import java.lang.reflect.Type
|
||||
|
||||
import io.realm.RealmList
|
||||
|
||||
class ChatMessageListDeserializer : JsonDeserializer<RealmList<ChatMessage>> {
|
||||
@Throws(JsonParseException::class)
|
||||
override fun deserialize(json: JsonElement, typeOfT: Type, context: JsonDeserializationContext): RealmList<ChatMessage> {
|
||||
val messages = RealmList<ChatMessage>()
|
||||
|
||||
if (json.isJsonArray) {
|
||||
json.asJsonArray.mapTo(messages) { context.deserialize(it, ChatMessage::class.java) }
|
||||
} else {
|
||||
for ((_, value) in json.asJsonObject.entrySet()) {
|
||||
messages.add(context.deserialize(value, ChatMessage::class.java))
|
||||
}
|
||||
}
|
||||
//Make sure the messageId is set for all likes
|
||||
messages.forEach { it.id = it.id }
|
||||
|
||||
return messages
|
||||
}
|
||||
}
|
||||
Loading…
Reference in a new issue