Size: a a a

ReactiveX - русскоговорящее сообщество

2020 April 18

SS

Sergey Salnikov in ReactiveX - русскоговорящее сообщество
источник

ЕУ

Евгений Удалов in ReactiveX - русскоговорящее сообщество
источник

SS

Sergey Salnikov in ReactiveX - русскоговорящее сообщество
Oleksandr Hulak
Это чат по реактивщине, а не по андроиду
да таджикампохуй лол
источник
2020 April 19

РА

Руслан Александров in ReactiveX - русскоговорящее сообщество
Привет, помогите, плиз🙏
источник

РА

Руслан Александров in ReactiveX - русскоговорящее сообщество
public class App {
   interface IView {
       void show(String str);
       void showResult(String result);
   }

   interface IPresenter {
       void setAnswer(String answer);
       void start();
   }

   interface IInteractor {
       Observable<String> getObservable();
   }

   class PresenterImpl implements IPresenter {
       private IInteractor mInteractor;
       private IView mView;
       private volatile String mAnswer;

       @Override
       public void setAnswer(String answer) {
           mAnswer = answer;
       }

       /**
        * интерактор генерит данные, которые мы отправляем во вьюшку
        * вьюшка может послать ответ в презентер, который надо проверить
        * и отправить во вьюшку через showResult(String result)
        * если результата до следующего эмитта из интерактора не пришло,
        * то тоже отправляем сообщение в showResult(String result)
        */
       @Override
       public void start() {
           mInteractor.getObservable()
                   .doOnNext(mView::show)
                   .subscribeOn(Schedulers.computation())
                   .observeOn(AndroidSchedulers.mainThread())
                   .subscribe();
       }
   }

   class InteractorImpl implements IInteractor {
       private int mCount;

       @Override
       public Observable<String> getObservable() {
           return Observable.interval(1000, TimeUnit.MILLISECONDS)
                   .flatMap(l -> Observable.just("Count " + mCount));
       }
   }
}
источник

AD

Aleksey D. in ReactiveX - русскоговорящее сообщество
Руслан Александров
public class App {
   interface IView {
       void show(String str);
       void showResult(String result);
   }

   interface IPresenter {
       void setAnswer(String answer);
       void start();
   }

   interface IInteractor {
       Observable<String> getObservable();
   }

   class PresenterImpl implements IPresenter {
       private IInteractor mInteractor;
       private IView mView;
       private volatile String mAnswer;

       @Override
       public void setAnswer(String answer) {
           mAnswer = answer;
       }

       /**
        * интерактор генерит данные, которые мы отправляем во вьюшку
        * вьюшка может послать ответ в презентер, который надо проверить
        * и отправить во вьюшку через showResult(String result)
        * если результата до следующего эмитта из интерактора не пришло,
        * то тоже отправляем сообщение в showResult(String result)
        */
       @Override
       public void start() {
           mInteractor.getObservable()
                   .doOnNext(mView::show)
                   .subscribeOn(Schedulers.computation())
                   .observeOn(AndroidSchedulers.mainThread())
                   .subscribe();
       }
   }

   class InteractorImpl implements IInteractor {
       private int mCount;

       @Override
       public Observable<String> getObservable() {
           return Observable.interval(1000, TimeUnit.MILLISECONDS)
                   .flatMap(l -> Observable.just("Count " + mCount));
       }
   }
}
а с чем помочь-то надо?
источник

i

iamthevoid in ReactiveX - русскоговорящее сообщество
Возможно он хотел написать адрес и описать ситуацию (грабят, убивают), но вместо этого по привычке накодил
источник

РА

Руслан Александров in ReactiveX - русскоговорящее сообщество
Aleksey D.
а с чем помочь-то надо?
не могу сообразить как связать вьюху с презентером
источник

AD

Aleksey D. in ReactiveX - русскоговорящее сообщество
Руслан Александров
не могу сообразить как связать вьюху с презентером
а реактивщина здесь при чём?
источник

Т

Тимур in ReactiveX - русскоговорящее сообщество
Привет.
От бд (Room) мне приходит:

Single<List<NewsEntity>> getListAllNews();

В List<NewsEntity>> мне нужно пройтись по каждому NewsEntity и преобразовать его в NewsModel. Для таких целей мне бы подошел flatMap, но он не работает у Single.
Поэтому пришлось использовать .map, а в нём цикл. Читал, что использовать цикл в map плохо.
Пока получилось так:

database.newsDao().getListAllNews()
       .map(new Function<List<NewsEntity>, List<NewsModel>>() {
           @Override
           public List<NewsModel > apply(List<NewsEntity > newsEntities) throws Exception {
               List<NewsModel> newsModels = new ArrayList<>();
               for (int i = 0; i < newsEntities.size(); i++) {
                   NewsModel newsModel = new Currency(
                           newsEntities.getCurId(),
                           newsEntities.getCharCode(),
                           newsEntities.getName(),
                           newsEntities.getRate(),
                           newsEntities.getDate(),
                   );
                   newsModels.add(currency);
               }
               return newsModels;

           }
       });

Может всё таки как-то можно использовать flatMap у Single?
источник

AM

Alexander Mitropolsky in ReactiveX - русскоговорящее сообщество
Тимур
Привет.
От бд (Room) мне приходит:

Single<List<NewsEntity>> getListAllNews();

В List<NewsEntity>> мне нужно пройтись по каждому NewsEntity и преобразовать его в NewsModel. Для таких целей мне бы подошел flatMap, но он не работает у Single.
Поэтому пришлось использовать .map, а в нём цикл. Читал, что использовать цикл в map плохо.
Пока получилось так:

database.newsDao().getListAllNews()
       .map(new Function<List<NewsEntity>, List<NewsModel>>() {
           @Override
           public List<NewsModel > apply(List<NewsEntity > newsEntities) throws Exception {
               List<NewsModel> newsModels = new ArrayList<>();
               for (int i = 0; i < newsEntities.size(); i++) {
                   NewsModel newsModel = new Currency(
                           newsEntities.getCurId(),
                           newsEntities.getCharCode(),
                           newsEntities.getName(),
                           newsEntities.getRate(),
                           newsEntities.getDate(),
                   );
                   newsModels.add(currency);
               }
               return newsModels;

           }
       });

Может всё таки как-то можно использовать flatMap у Single?
Почему вдруг flatMap должен не работать у Single?
источник

Т

Тимур in ReactiveX - русскоговорящее сообщество
Alexander Mitropolsky
Почему вдруг flatMap должен не работать у Single?
Не так выразился, flatMap работает у Single.  

В общем, с помощью rxjava2 мне из бд Room нужно взять List<NewsEntity>, пройтись по каждому NewsEntity в листе и преобразовать его в NewsModel. А подписчик должен получить уже List<NewsModel>. Как это сделать?

Выше я скидывал вариант map + цикл, но такой подход вроде как не камильфо.
источник

AM

Alexander Mitropolsky in ReactiveX - русскоговорящее сообщество
Мне кажется ничего плохо в использовании map здесь нет, да и к тому же flatmap для других целей. Только было бы куда лучше вынести логику конвертации в отдельный класс, чтобы не писать каждый раз внутри map.
источник

И

Игорь in ReactiveX - русскоговорящее сообщество
.а если flatMapObservable(list -> Observable. fromIterable(list)). map(listItem->....) ну а уже собрать назад и вернуть single как вам удобней?
источник

P

Papin in ReactiveX - русскоговорящее сообщество
Тимур
Привет.
От бд (Room) мне приходит:

Single<List<NewsEntity>> getListAllNews();

В List<NewsEntity>> мне нужно пройтись по каждому NewsEntity и преобразовать его в NewsModel. Для таких целей мне бы подошел flatMap, но он не работает у Single.
Поэтому пришлось использовать .map, а в нём цикл. Читал, что использовать цикл в map плохо.
Пока получилось так:

database.newsDao().getListAllNews()
       .map(new Function<List<NewsEntity>, List<NewsModel>>() {
           @Override
           public List<NewsModel > apply(List<NewsEntity > newsEntities) throws Exception {
               List<NewsModel> newsModels = new ArrayList<>();
               for (int i = 0; i < newsEntities.size(); i++) {
                   NewsModel newsModel = new Currency(
                           newsEntities.getCurId(),
                           newsEntities.getCharCode(),
                           newsEntities.getName(),
                           newsEntities.getRate(),
                           newsEntities.getDate(),
                   );
                   newsModels.add(currency);
               }
               return newsModels;

           }
       });

Может всё таки как-то можно использовать flatMap у Single?
А зачем флэт мап?
источник

P

Papin in ReactiveX - русскоговорящее сообщество
Если надо флэп мат итерейбл
источник

P

Papin in ReactiveX - русскоговорящее сообщество
Потом
.toList()
источник

P

Papin in ReactiveX - русскоговорящее сообщество
И все
7 строк кода выйдет
источник

Т

Тимур in ReactiveX - русскоговорящее сообщество
Игорь
.а если flatMapObservable(list -> Observable. fromIterable(list)). map(listItem->....) ну а уже собрать назад и вернуть single как вам удобней?
Спасибо! Это то что и нужно было.
источник
2020 April 21

NK

ID:1137891255 in ReactiveX - русскоговорящее сообщество
источник