mirror of
https://github.com/sudoxnym/habitica-android.git
synced 2026-07-13 17:51:57 +00:00
optimize saving user
This commit is contained in:
parent
c689f9a8d0
commit
67ebc1649d
3 changed files with 16 additions and 5 deletions
|
|
@ -65,6 +65,10 @@ class RealmUserLocalRepository(realm: Realm) : RealmBaseLocalRepository(realm),
|
||||||
if (user.lastCron?.before(oldUser.lastCron) == true) {
|
if (user.lastCron?.before(oldUser.lastCron) == true) {
|
||||||
user.needsCron = false
|
user.needsCron = false
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
if (oldUser.versionNumber >= user.versionNumber) {
|
||||||
|
return
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
realm.executeTransaction { realm1 -> realm1.insertOrUpdate(user) }
|
realm.executeTransaction { realm1 -> realm1.insertOrUpdate(user) }
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,6 @@
|
||||||
|
package com.habitrpg.android.habitica.models
|
||||||
|
|
||||||
|
interface VersionedObject {
|
||||||
|
|
||||||
|
var versionNumber: Int
|
||||||
|
}
|
||||||
|
|
@ -1,10 +1,7 @@
|
||||||
package com.habitrpg.android.habitica.models.user
|
package com.habitrpg.android.habitica.models.user
|
||||||
|
|
||||||
import com.google.gson.annotations.SerializedName
|
import com.google.gson.annotations.SerializedName
|
||||||
import com.habitrpg.android.habitica.models.Avatar
|
import com.habitrpg.android.habitica.models.*
|
||||||
import com.habitrpg.android.habitica.models.PushDevice
|
|
||||||
import com.habitrpg.android.habitica.models.QuestAchievement
|
|
||||||
import com.habitrpg.android.habitica.models.Tag
|
|
||||||
import com.habitrpg.android.habitica.models.invitations.Invitations
|
import com.habitrpg.android.habitica.models.invitations.Invitations
|
||||||
import com.habitrpg.android.habitica.models.social.ChallengeMembership
|
import com.habitrpg.android.habitica.models.social.ChallengeMembership
|
||||||
import com.habitrpg.android.habitica.models.social.UserParty
|
import com.habitrpg.android.habitica.models.social.UserParty
|
||||||
|
|
@ -16,7 +13,7 @@ import io.realm.annotations.Ignore
|
||||||
import io.realm.annotations.PrimaryKey
|
import io.realm.annotations.PrimaryKey
|
||||||
import java.util.*
|
import java.util.*
|
||||||
|
|
||||||
open class User : RealmObject(), Avatar {
|
open class User : RealmObject(), Avatar, VersionedObject {
|
||||||
|
|
||||||
@Ignore
|
@Ignore
|
||||||
var tasks: TaskList? = null
|
var tasks: TaskList? = null
|
||||||
|
|
@ -57,6 +54,10 @@ open class User : RealmObject(), Avatar {
|
||||||
test.userID = id
|
test.userID = id
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@SerializedName("_v")
|
||||||
|
override var versionNumber: Int = 0
|
||||||
|
|
||||||
var balance: Double = 0.toDouble()
|
var balance: Double = 0.toDouble()
|
||||||
private var stats: Stats? = null
|
private var stats: Stats? = null
|
||||||
var inbox: Inbox? = null
|
var inbox: Inbox? = null
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue