Sugar: defined extensions fo deleteOnCascade() methods, as they have to be called in a transaction
This commit is contained in:
parent
424035f56f
commit
30be440774
@ -30,11 +30,6 @@ internal open class CrossSigningInfoEntity(
|
|||||||
|
|
||||||
companion object
|
companion object
|
||||||
|
|
||||||
fun deleteOnCascade() {
|
|
||||||
crossSigningKeys.clearWith { it.deleteOnCascade() }
|
|
||||||
deleteFromRealm()
|
|
||||||
}
|
|
||||||
|
|
||||||
fun getMasterKey() = crossSigningKeys.firstOrNull { it.usages.contains(KeyUsage.MASTER.value) }
|
fun getMasterKey() = crossSigningKeys.firstOrNull { it.usages.contains(KeyUsage.MASTER.value) }
|
||||||
|
|
||||||
fun setMasterKey(info: KeyInfoEntity?) {
|
fun setMasterKey(info: KeyInfoEntity?) {
|
||||||
@ -62,3 +57,8 @@ internal open class CrossSigningInfoEntity(
|
|||||||
info?.let { crossSigningKeys.add(it) }
|
info?.let { crossSigningKeys.add(it) }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
internal fun CrossSigningInfoEntity.deleteOnCascade() {
|
||||||
|
crossSigningKeys.clearWith { it.deleteOnCascade() }
|
||||||
|
deleteFromRealm()
|
||||||
|
}
|
||||||
|
@ -46,9 +46,9 @@ internal open class DeviceInfoEntity(
|
|||||||
val users: RealmResults<UserEntity>? = null
|
val users: RealmResults<UserEntity>? = null
|
||||||
|
|
||||||
companion object
|
companion object
|
||||||
|
}
|
||||||
|
|
||||||
fun deleteOnCascade() {
|
internal fun DeviceInfoEntity.deleteOnCascade() {
|
||||||
trustLevelEntity?.deleteFromRealm()
|
trustLevelEntity?.deleteFromRealm()
|
||||||
deleteFromRealm()
|
deleteFromRealm()
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
@ -29,10 +29,9 @@ internal open class KeyInfoEntity(
|
|||||||
*/
|
*/
|
||||||
var signatures: String? = null,
|
var signatures: String? = null,
|
||||||
var trustLevelEntity: TrustLevelEntity? = null
|
var trustLevelEntity: TrustLevelEntity? = null
|
||||||
) : RealmObject() {
|
) : RealmObject()
|
||||||
|
|
||||||
fun deleteOnCascade() {
|
internal fun KeyInfoEntity.deleteOnCascade() {
|
||||||
trustLevelEntity?.deleteFromRealm()
|
trustLevelEntity?.deleteFromRealm()
|
||||||
deleteFromRealm()
|
deleteFromRealm()
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
@ -29,10 +29,10 @@ internal open class UserEntity(
|
|||||||
) : RealmObject() {
|
) : RealmObject() {
|
||||||
|
|
||||||
companion object
|
companion object
|
||||||
|
}
|
||||||
|
|
||||||
fun deleteOnCascade() {
|
internal fun UserEntity.deleteOnCascade() {
|
||||||
devices.clearWith { it.deleteOnCascade() }
|
devices.clearWith { it.deleteOnCascade() }
|
||||||
crossSigningInfoEntity?.deleteOnCascade()
|
crossSigningInfoEntity?.deleteOnCascade()
|
||||||
deleteFromRealm()
|
deleteFromRealm()
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
@ -44,8 +44,9 @@ internal open class ChunkEntity(@Index var prevToken: String? = null,
|
|||||||
val room: RealmResults<RoomEntity>? = null
|
val room: RealmResults<RoomEntity>? = null
|
||||||
|
|
||||||
companion object
|
companion object
|
||||||
|
}
|
||||||
|
|
||||||
fun deleteOnCascade(deleteStateEvents: Boolean, canDeleteRoot: Boolean) {
|
internal fun ChunkEntity.deleteOnCascade(deleteStateEvents: Boolean, canDeleteRoot: Boolean) {
|
||||||
assertIsManaged()
|
assertIsManaged()
|
||||||
if (deleteStateEvents) {
|
if (deleteStateEvents) {
|
||||||
stateEvents.deleteAllFromRealm()
|
stateEvents.deleteAllFromRealm()
|
||||||
@ -53,4 +54,3 @@ internal open class ChunkEntity(@Index var prevToken: String? = null,
|
|||||||
timelineEvents.clearWith { it.deleteOnCascade(canDeleteRoot) }
|
timelineEvents.clearWith { it.deleteOnCascade(canDeleteRoot) }
|
||||||
deleteFromRealm()
|
deleteFromRealm()
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
@ -30,12 +30,12 @@ internal open class EventAnnotationsSummaryEntity(
|
|||||||
) : RealmObject() {
|
) : RealmObject() {
|
||||||
|
|
||||||
companion object
|
companion object
|
||||||
|
}
|
||||||
|
|
||||||
fun deleteOnCascade() {
|
internal fun EventAnnotationsSummaryEntity.deleteOnCascade() {
|
||||||
reactionsSummary.deleteAllFromRealm()
|
reactionsSummary.deleteAllFromRealm()
|
||||||
editSummary?.deleteFromRealm()
|
editSummary?.deleteFromRealm()
|
||||||
referencesSummaryEntity?.deleteFromRealm()
|
referencesSummaryEntity?.deleteFromRealm()
|
||||||
pollResponseSummary?.deleteFromRealm()
|
pollResponseSummary?.deleteFromRealm()
|
||||||
deleteFromRealm()
|
deleteFromRealm()
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
@ -39,9 +39,9 @@ internal open class PushRuleEntity(
|
|||||||
val parent: RealmResults<PushRulesEntity>? = null
|
val parent: RealmResults<PushRulesEntity>? = null
|
||||||
|
|
||||||
companion object
|
companion object
|
||||||
|
}
|
||||||
|
|
||||||
fun deleteOnCascade() {
|
internal fun PushRuleEntity.deleteOnCascade() {
|
||||||
conditions?.deleteAllFromRealm()
|
conditions?.deleteAllFromRealm()
|
||||||
deleteFromRealm()
|
deleteFromRealm()
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
@ -35,9 +35,9 @@ internal open class PushRulesEntity(
|
|||||||
}
|
}
|
||||||
|
|
||||||
companion object
|
companion object
|
||||||
|
}
|
||||||
|
|
||||||
fun deleteOnCascade() {
|
internal fun PushRulesEntity.deleteOnCascade() {
|
||||||
pushRules.clearWith { it.deleteOnCascade() }
|
pushRules.clearWith { it.deleteOnCascade() }
|
||||||
deleteFromRealm()
|
deleteFromRealm()
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
@ -53,9 +53,9 @@ internal open class PusherEntity(
|
|||||||
}
|
}
|
||||||
|
|
||||||
companion object
|
companion object
|
||||||
|
}
|
||||||
|
|
||||||
fun deleteOnCascade() {
|
internal fun PusherEntity.deleteOnCascade() {
|
||||||
data?.deleteFromRealm()
|
data?.deleteFromRealm()
|
||||||
deleteFromRealm()
|
deleteFromRealm()
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
@ -33,9 +33,9 @@ internal open class ReadReceiptsSummaryEntity(
|
|||||||
val timelineEvent: RealmResults<TimelineEventEntity>? = null
|
val timelineEvent: RealmResults<TimelineEventEntity>? = null
|
||||||
|
|
||||||
companion object
|
companion object
|
||||||
|
}
|
||||||
|
|
||||||
fun deleteOnCascade() {
|
internal fun ReadReceiptsSummaryEntity.deleteOnCascade() {
|
||||||
readReceipts.deleteAllFromRealm()
|
readReceipts.deleteAllFromRealm()
|
||||||
deleteFromRealm()
|
deleteFromRealm()
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
@ -39,8 +39,9 @@ internal open class TimelineEventEntity(var localId: Long = 0,
|
|||||||
val chunk: RealmResults<ChunkEntity>? = null
|
val chunk: RealmResults<ChunkEntity>? = null
|
||||||
|
|
||||||
companion object
|
companion object
|
||||||
|
}
|
||||||
|
|
||||||
fun deleteOnCascade(canDeleteRoot: Boolean) {
|
internal fun TimelineEventEntity.deleteOnCascade(canDeleteRoot: Boolean) {
|
||||||
assertIsManaged()
|
assertIsManaged()
|
||||||
if (canDeleteRoot) {
|
if (canDeleteRoot) {
|
||||||
root?.deleteFromRealm()
|
root?.deleteFromRealm()
|
||||||
@ -49,4 +50,3 @@ internal open class TimelineEventEntity(var localId: Long = 0,
|
|||||||
readReceipts?.deleteOnCascade()
|
readReceipts?.deleteOnCascade()
|
||||||
deleteFromRealm()
|
deleteFromRealm()
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user