Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public Observable<Response> getCameras() {
- return Observable.interval(10, TimeUnit.SECONDS)
- .flatMap(new Function<Long, Observable<CamerasResponse>>() {
- @Override
- public Observable<CamerasResponse> apply(@NonNull Long aLong) throws Exception {
- return mRepository.getCameras();
- }
- })
- .filter(new Predicate<CamerasResponse>() {
- @Override
- public boolean test(@NonNull CamerasResponse response) throws Exception {
- return response.getData() != null && response.getData().cameras != null;
- }
- })
- .map(new Function<CamerasResponse, Response>() {
- @Override
- public Response apply(@NonNull CamerasResponse responseRetrofit) throws Exception {
- List<CamerasAdapterModel> data = new ArrayList<CamerasAdapterModel>();
- for (CamerasResponse.Cameras camera : responseRetrofit.getData().cameras) {
- data.add(new CamerasAdapterModel(camera.camera_channel_id,
- camera.camera_name,
- camera.preview_url,
- camera.camera_connected_server,
- camera.archive));
- }
- return new Response(responseRetrofit.getStatus(), data);
- }
- })
- .retry(NUMBER_ATTEMPTS)
- .subscribeOn(Schedulers.io())
- .observeOn(AndroidSchedulers.mainThread());
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement