Мне нужно вернуть значения из контактов, которые извлекаются из телефона с наблюдаемой. Проблема заключается в возвращаемом значении.
У меня есть следующий метод в мосте:
@JavascriptInterface
public String getFavoriteUsers() {
return getBridgeHelper().getFavoriteUsers();
}
Он вызывает метод в помощнике (который является классом, как выполнять задачи) и внутри этого помощника:
@SuppressLint("CheckResult")
public String getFavoriteUsers() {
Observable.fromCallable(() -> {
SharedPreferences sp = getContext().getSharedPreferences(Constants.SHARED_PREFERENCES_NAME, Context.MODE_PRIVATE);
String userIdStores = sp.getString(Constants.SP_FAVOURITES, "[]");
return new Gson().toJson(ContactsManager.findContactsById(ContactsData.getInstance().contactsStored, userIdStores));
})
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(
result -> returnObservedContacts(result),
throwable -> LoggerManager.handlesError(TAG, throwable, throwable.getMessage())
);
}
Итак, мне нужно вернуть этот результат на предыдущий мост, но у меня нет четкой идеи, как это сделать.
Спасибо
РЕШЕНИЕ:
Решение состоит в том, чтобы удалить подписку из Observable и добавить blockingFirst в конце. Затем мы можем сделать наблюдаемое возвращаемым значением.