Итак, у меня есть логические значения в SharedPreferences в Android.
Я хочу условно обновить логические значения в моем экземпляре Realm в приемнике onPreferenceChanged.Некоторые из логических значений совпадают в объекте Realm, некоторые нет.
Я хотел бы увидеть, есть ли у RealmObject ключ, соответствующий ключу предпочтения, и, если это так, обновить RealmObject со значением предпочтения..
Вот код
private val booleanBindPreferenceSummaryToValueListener = Preference.OnPreferenceChangeListener { preference, value ->
//log the preference change
Log.d(TAG, "onBooleanPreferenceChanged: ${preference.key}: $value")
//open the instance of Realm so we can update changes to the user object and have the information on the server
val realm = Realm.getDefaultInstance()
//get the userID from globals
val userID = Globals.read("UserID", "")
//make sure that the User ID is not null or blank
if (!userID.isNullOrBlank()){
//query the Realm database to get our instance of the user
val user = realm.where<User>().equalTo("platformUserID", userID).findFirst()!!
//find out if this particular boolean value is saved to the Realm object
//TO DO
}
realm.close()
true
}
В JavaScript я бы просто перечислил ключи объекта и отфильтровал массив для любых совпадений, тогда я мог бы написать что-то вроде
if (соответствует.some === true) пользователь [preference.key] = preference.value
Я новичок в Kotlin, но я подумал, что это должно быть легко.Это ускользает от меня в данный момент.