KickStarterDetailPresenter.java 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. package com.sunil.mvp.ui.kiskstarterdetail;
  2. import android.content.Context;
  3. import android.support.annotation.NonNull;
  4. import android.util.Log;
  5. import android.widget.Toast;
  6. import com.sunil.mvp.db.model.KickStarter;
  7. import com.sunil.mvp.db.source.KickStarterLocalSource;
  8. import io.reactivex.Observable;
  9. import io.reactivex.disposables.CompositeDisposable;
  10. import io.reactivex.functions.Action;
  11. import io.reactivex.functions.Consumer;
  12. /**
  13. * Created by sunil on 19-08-2017.
  14. */
  15. public class KickStarterDetailPresenter implements KickStarterDetailContract.Presenter {
  16. @NonNull
  17. private KickStarterDetailContract.View mKickStartView;
  18. private Context context;
  19. private CompositeDisposable mCompositeDisposable;
  20. private KickStarterLocalSource kickStarterLocalSource;
  21. public KickStarterDetailPresenter() {
  22. kickStarterLocalSource = new KickStarterLocalSource();
  23. }
  24. @Override
  25. public void subscribe() {
  26. if (mCompositeDisposable == null) {
  27. mCompositeDisposable = new CompositeDisposable();
  28. }
  29. }
  30. @Override
  31. public void unSubscribe() {
  32. mCompositeDisposable.clear();
  33. }
  34. @Override
  35. public void attachView(KickStarterDetailContract.View view) {
  36. mKickStartView = view;
  37. }
  38. @Override
  39. public void loadDetailKickStarter(int s_n0) {
  40. Log.v("", "S_SN: " + s_n0);
  41. Observable<KickStarter> kickStarterObservable = kickStarterLocalSource.getKickStarterById(s_n0);
  42. kickStarterObservable.doOnDispose(new Action() {
  43. @Override
  44. public void run() throws Exception {
  45. Toast.makeText(context, "Error", Toast.LENGTH_LONG).show();
  46. }
  47. }).subscribe(new Consumer<KickStarter>() {
  48. @Override
  49. public void accept(@io.reactivex.annotations.NonNull KickStarter kickStarter) throws Exception {
  50. mKickStartView.onKickStartersOk(kickStarter);
  51. }
  52. }, new Consumer<Throwable>() {
  53. @Override
  54. public void accept(@io.reactivex.annotations.NonNull Throwable throwable) throws Exception {
  55. mKickStartView.showLoadErrorMessage(throwable.getMessage());
  56. }
  57. }, new Action() {
  58. @Override
  59. public void run() throws Exception {
  60. mKickStartView.showLoadErrorMessage("Error");
  61. }
  62. });
  63. }
  64. }