RxAndroid 2.0.2 метод подписки не работает - PullRequest
0 голосов
/ 01 мая 2019

когда я пытаюсь использовать

public Observable<String> list(Department department) {
        return departmentAPI.list(department)
                .flatMap((Function<ResponseBody, ObservableSource<String>>) responseBody -> Observable.just(responseBody.string()));
    }

и

private void initDepOptions() {
        final ProgressDialog progressDialog = new ProgressDialog(getContext());
        depDataManager.list(tDepartment)
                .subscribeOn(Schedulers.io())
                .observeOn(AndroidSchedulers.mainThread())
                .doOnSubscribe(disposable -> {
                    progressDialog.setMessage(LOADING_MESSAGE);
                    progressDialog.show();
                })
                .doOnComplete(() -> progressDialog.dismiss())
                .subscribe(new RxSubscriber<String>() {
                    @Override
                    public void onNext(String s) {
                        ApiResponse response = GsonParser.fromJSONObject(s, ApiResponse.class);
                        if (response.success()) {
                            transform2DepartmentList(response.data);
                        } else {
                            Toasty.error(getContext(), response.message, Toast.LENGTH_LONG, true).show();
                        }
                    }
                });
    }

    private void transform2DepartmentList(String json) {
        JSONArray jsonArray = GsonParser.fromJSONObject(json, JSONArray.class);
        List<Department> departments = GsonParser.fromJSONArray(jsonArray, Department.class);

        departmentOptions = departments;
    }

для десериализации данных json с сервера, но onNext() не вызывается.

и это мой RxSubscribe код класса

public class RxSubscriber<T> extends DisposableObserver<T> {

    @Override
    public void onNext(@NonNull T t) {

    }

    @Override
    public void onError(@NonNull Throwable e) {

    }

    @Override
    public void onComplete() {

    }
}

Итак, что мне нужно сделать, чтобы решить эту проблему?

...