• Как управлять состоянием Activity, внутри onActivityResult после вызова startActivityForResult?

    @archduke Автор вопроса
    Александр Юдаков, Спасибо. А как быть если уничтожится Activity(система убьет), а потом восстановится - получается просто результат будет проигнорирован и никак не обработан? Или есть какая то логика, которая при восстановлении заполняет обработчики?
  • Как управлять состоянием Activity, внутри onActivityResult после вызова startActivityForResult?

    @archduke Автор вопроса
    Александр Юдаков , а можно подробней как это работает? Получается ActivityResultHandler все равно куда то нужно сохранять в глобальное состояние, чтоб его можно было вызвать в onActivityResult?
  • Как управлять состоянием Activity, внутри onActivityResult после вызова startActivityForResult?

    @archduke Автор вопроса
    Пример с запуском активити просто для наглядности взял, подобная ситуация так же может возникнуть и с запросом Permissions, если надо вызвать какой то метод после проверки и запроса Permissions, и у метода несколько может быть папаметров, получается тоже придется все параметры заводить в состояние, иначе в onRequestPermissionsResult, получить параметры для метода не получится.
    А если свое Activity, то в интенте можно передавать параметр позиции, но в этом случае получается что Activity не очень изолирована, она должна еще управлять параметром позиции, хотя ее задача только возвращать результат для получения фотогафии.
    Возможно в этом случае не плохим может показаться вариант, если запускать отдельное Activity, которое будет что то вроде прокси, которое будет сохранять состояние и запускать Activity для получения фотографии, и у него уже в onActivityResult доставлять результат в вызывающую активити с позицией элемента и фотографией полученной из вызова? Хотя может и такой себе вариант, не очень.
  • Как управлять состоянием Activity, внутри onActivityResult после вызова startActivityForResult?

    @archduke Автор вопроса
    Это получается что стейт все равно тогда придется переносить из Activity в определенную сущность, чтоб не потерять номер позиции в списке, который должен принять результат? Все видется так, что глобального стейта не избежать, его можно перенести в другой компонент, но не избежать?
  • Как с помощью rxjava2 совместить несколько связанных запросов в наборе данных?

    @archduke Автор вопроса
    Еще есть один вопрос. Если нужео с помощью rxjava симмитировать что то вроде stream из java8, обычно рекомендуют делать так:
    Observable.just("a", "b", "c", "d", "e", "f")
        .map(s -> s + "1")
        .toList()
        .subscribe(mView::show)
    );

    но в данном случае нужно еще c Disposable возиться(хотя если вызвать dispose() сразу после subscribe(), то все будет номально, но все равно выглядит как то перегруженно, если все выполняется в одном потоке, нужна просто связка операторов). Такой способ будет лучше или нет?:
    mView.show(Observable.just("a", "b", "c", "d", "e", "f")
        .map(s -> s + "1")
        .toList()
        .blockingGet()
    );

    Ну т.е. если нужно сделать что то без подписок, и ближе к стилю stream java8, то можно преобрадовывать в Single и делать blockingGet()?
  • Как с помощью rxjava2 совместить несколько связанных запросов в наборе данных?

    @archduke Автор вопроса
    Спасибо, работает.
    А
    .switchMap(holders -> uploadHolders(holders))
    так понимаю тут не обязательно именно switchMap использовать, можно и flatMap(учитывая что uploadHolders() будет давать только 1 элемент)?
    С иммутабельными данными есть проблема:
    uploadImage(image).map(url -> {
                image.url = url;
                return image;
            )

    надо делать так после аплоадинга картинки, можно конечно создавать новый обьект Image, но его надо будет каким то образом правильно добавлять в Holder. На конкурентности, как понимаю, могут быть проблемы если после вызова этого кода, другой поток будет пытаться поменять что то(Image или Holder), но внутри этого блока проблем не будет. Если интерфейс блокируется во время это операции, и никакого постороннего влияния на Holder или Image не будет, то проблем с конкурентностью быть не должно?