INNER CODE UNIT · Kotlin
syncToRemote
1812z/HyperIsland · android/app/src/main/kotlin/io/github/hyperisland/XposedPrefsSyncApp.kt:81
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" }
Log.d(TAG, "synced key=$key to remote prefs")
}
} catch (e: Exception) {
val scope = if (key == null) "all" else key