Deserialize notifications from User model

This commit is contained in:
Carl Vuorinen 2019-03-17 21:45:04 +02:00
parent 48c5fc59e3
commit e232a9b016
3 changed files with 30 additions and 0 deletions

View file

@ -0,0 +1,21 @@
package com.habitrpg.android.habitica.models.notifications;
import io.realm.RealmObject;
import io.realm.annotations.PrimaryKey;
/**
* Represents Habitica "Global notifications", i.e. the notifications about chat messages
* (in Guilds and Party), Party & Quest invitations, unallocated stat points etc.
*
* These are different from other kind of notifications, such as Push notifications and
* Popup notifications.
*/
public class GlobalNotification extends RealmObject {
@PrimaryKey
public String id;
public String type;
public boolean seen;
// TODO data
}

View file

@ -5,6 +5,7 @@ import com.habitrpg.android.habitica.models.Avatar
import com.habitrpg.android.habitica.models.PushDevice
import com.habitrpg.android.habitica.models.Tag
import com.habitrpg.android.habitica.models.invitations.Invitations
import com.habitrpg.android.habitica.models.notifications.GlobalNotification
import com.habitrpg.android.habitica.models.social.ChallengeMembership
import com.habitrpg.android.habitica.models.social.UserParty
import com.habitrpg.android.habitica.models.tasks.TaskList
@ -122,6 +123,8 @@ open class User : RealmObject(), Avatar {
@Ignore
var pushDevices: List<PushDevice>? = null
var notifications = RealmList<GlobalNotification>()
var purchased: Purchases? = null
set(purchased) {
field = purchased

View file

@ -11,6 +11,7 @@ import com.habitrpg.android.habitica.models.PushDevice
import com.habitrpg.android.habitica.models.Tag
import com.habitrpg.android.habitica.models.inventory.Quest
import com.habitrpg.android.habitica.models.invitations.Invitations
import com.habitrpg.android.habitica.models.notifications.GlobalNotification
import com.habitrpg.android.habitica.models.social.ChallengeMembership
import com.habitrpg.android.habitica.models.social.UserParty
import com.habitrpg.android.habitica.models.tasks.TasksOrder
@ -109,6 +110,11 @@ class UserDeserializer : JsonDeserializer<User> {
.forEach { (user.pushDevices as? ArrayList<PushDevice>)?.add(it) }
}
if (obj.has("notifications")) {
user.notifications = context.deserialize(obj.get("notifications"), object: TypeToken<RealmList<GlobalNotification>>() {
}.type)
}
if (obj.has("lastCron")) {
user.lastCron = context.deserialize(obj.get("lastCron"), Date::class.java)
}