Skip to content

Commit

Permalink
fix(core): sync remote in background
Browse files Browse the repository at this point in the history
  • Loading branch information
rhunk committed Jan 23, 2024
1 parent eb3ea26 commit 5563418
Showing 1 changed file with 34 additions and 29 deletions.
63 changes: 34 additions & 29 deletions core/src/main/kotlin/me/rhunk/snapenhance/core/SnapEnhance.kt
Original file line number Diff line number Diff line change
Expand Up @@ -114,7 +114,9 @@ class SnapEnhance {
appContext.isMainActivityPaused = false
}) {
appContext.reloadConfig()
syncRemote()
appContext.executeAsync {
syncRemote()
}
}
}
}
Expand All @@ -134,6 +136,11 @@ class SnapEnhance {
initWidgetListener()
initNative()
scope.launch(Dispatchers.IO) {
runCatching {
syncRemote()
}.onFailure {
log.error("Failed to sync remote", it)
}
translation.userLocale = getConfigLocale()
translation.loadFromCallback { locale ->
bridgeClient.fetchLocales(locale)
Expand Down Expand Up @@ -257,37 +264,35 @@ class SnapEnhance {
}

private fun syncRemote() {
appContext.executeAsync {
bridgeClient.sync(object : SyncCallback.Stub() {
override fun syncFriend(uuid: String): String? {
return database.getFriendInfo(uuid)?.let {
MessagingFriendInfo(
userId = it.userId!!,
displayName = it.displayName,
mutableUsername = it.mutableUsername!!,
bitmojiId = it.bitmojiAvatarId,
selfieId = it.bitmojiSelfieId,
streaks = if (it.streakLength > 0) {
FriendStreaks(
expirationTimestamp = it.streakExpirationTimestamp,
length = it.streakLength
)
} else null
).toSerialized()
}
appContext.bridgeClient.sync(object : SyncCallback.Stub() {
override fun syncFriend(uuid: String): String? {
return appContext.database.getFriendInfo(uuid)?.let {
MessagingFriendInfo(
userId = it.userId!!,
displayName = it.displayName,
mutableUsername = it.mutableUsername!!,
bitmojiId = it.bitmojiAvatarId,
selfieId = it.bitmojiSelfieId,
streaks = if (it.streakLength > 0) {
FriendStreaks(
expirationTimestamp = it.streakExpirationTimestamp,
length = it.streakLength
)
} else null
).toSerialized()
}
}

override fun syncGroup(uuid: String): String? {
return database.getFeedEntryByConversationId(uuid)?.let {
MessagingGroupInfo(
it.key!!,
it.feedDisplayName!!,
it.participantsSize
).toSerialized()
}
override fun syncGroup(uuid: String): String? {
return appContext.database.getFeedEntryByConversationId(uuid)?.let {
MessagingGroupInfo(
it.key!!,
it.feedDisplayName!!,
it.participantsSize
).toSerialized()
}
})
}
}
})
}

private fun jetpackComposeResourceHook() {
Expand Down

0 comments on commit 5563418

Please sign in to comment.