package ua.kpi.ecampus.rx; import rx.Observable; import rx.android.schedulers.AndroidSchedulers; import rx.functions.Action1; import rx.schedulers.Schedulers; import ua.kpi.ecampus.api.service.ServiceCreator; import ua.kpi.ecampus.api.service.UserService; import ua.kpi.ecampus.model.pojo.User; import ua.kpi.ecampus.ui.Preference; /** * Perform requests of the UserService class. * * Created by Administrator on 21.03.2016. */ public class UserRxLoader { private Preference mPreference; public UserRxLoader(Preference preference) { mPreference = preference; } /** * Implements the request to the api function. */ public void apiCall() { UserService service = ServiceCreator.createService(UserService.class); Observable<User> observable = service.getUser("bearer " + User.getInstance().token); observable .subscribeOn(Schedulers.newThread()) .observeOn(AndroidSchedulers.mainThread()) .subscribe(onNextAction, onErrorAction); } Action1<User> onNextAction = new Action1<User>() { @Override public void call(User userInfo) { User user = User.getInstance(); user.id = userInfo.id; user.name = userInfo.name; user.position = userInfo.position; user.subdivision = userInfo.subdivision; user.descendantSubdivisions = userInfo.descendantSubdivisions; user.isBulletinBoardModerator = userInfo.isBulletinBoardModerator; mPreference.saveUserInfo(user); //Log.d(Config.LOG, "Successful download of information about the User ".concat(user.name)); } }; Action1<Throwable> onErrorAction = e -> { //Log.e(Config.LOG, e.getMessage()); }; }