INNER CODE UNIT · Kotlin
syncAllToRemote
1812z/HyperIsland · android/app/src/main/kotlin/io/github/hyperisland/XposedPrefsSyncApp.kt:77
private fun syncAllToRemote(service: XposedService) {
syncToRemote(service, configPrefs, key = null)
}
private fun syncToRemote(service: XposedService, sourcePrefs: SharedPreferences, key: String?) {
synchronized(syncLock) {
try {
if (key == null) {
syncAllIfChanged(service, sourcePrefs)
} else {
if (!shouldSyncKey(key)) return
invalidateRemoteDigest(service)
val remote = service.getRemotePreferences(remotePrefsNameForKey(key))
val editor = remote.edit() ?: error("remote editor unavailable")
check(writeValue(editor, key, sourcePrefs.all[key])) {
"unsupported preference value for $key"
}
check(editor.commit()) { "remote commit failed for $key" }