Advertisement
Guest User

Untitled

a guest
Jan 15th, 2018
104
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.50 KB | None | 0 0
  1. public class MainActivity extends MvpAppCompatActivity implements IMain,OnMapReadyCallback {
  2.     @InjectPresenter MainPresenter presenter;
  3.     private SupportMapFragment mapFragment;
  4.     private Snackbar snackbar;
  5.     private GoogleMap googleMap;
  6.  
  7.     @Override
  8.     protected void onCreate(final Bundle savedInstanceState) {
  9.         super.onCreate(savedInstanceState);
  10.         setContentView(R.layout.activity_main);
  11.         ButterKnife.bind(this);
  12.         mapFragment = (SupportMapFragment) getSupportFragmentManager()
  13.                 .findFragmentById(R.id.map);
  14.  
  15.         snackbar = Snackbar.make(findViewById(android.R.id.content), R.string.please_wait, Snackbar.LENGTH_INDEFINITE);
  16.         mapFragment.getMapAsync(this);
  17.     }
  18.  
  19.     @Override
  20.     public void showProgress() {
  21.         snackbar.show();
  22.     }
  23.  
  24.     @Override
  25.     public void hideProgress() {
  26.         snackbar.dismiss();
  27.     }
  28.  
  29.     @Override
  30.     public void addMarkersOnMap(Place place) {
  31.         for (PlaceDataItem item : place.getData()) {
  32.             LatLng latLng = new LatLng(item.getLat(), item.getLng());
  33.             googleMap.addMarker(new MarkerOptions().position(latLng)
  34.                     .title( item.getName().toString() ));
  35.         }
  36.     }
  37.  
  38.     @Override
  39.     public void onMapReady(GoogleMap googleMap) {
  40.         this.googleMap=googleMap;
  41.         presenter.createPlace();
  42.     }
  43. }
  44.  
  45.  
  46.  
  47. ---------------------
  48.  
  49.  
  50. @InjectViewState
  51. public class MainPresenter extends MvpPresenter<IMain> {
  52.  
  53.     @Override
  54.     protected void onFirstViewAttach() {
  55.         super.onFirstViewAttach();
  56.     }
  57.  
  58.     public void createPlace(){
  59.         if (isOnline(App.getContext())){
  60.             DiskCache.clearAll();
  61.  
  62.             Observable.intervalRange(10, 5, 1, 2, TimeUnit.SECONDS)
  63.                     .map(integer -> integer * 10-90)
  64.                     .subscribeOn(Schedulers.io())
  65.                     .doOnSubscribe(disposable1 -> getViewState().showProgress())
  66.                     .doFinally(() -> getViewState().hideProgress())
  67.                     .subscribe(integer -> {
  68.                         ApiRequest.getPlace(integer)
  69.                                 .observeOn(AndroidSchedulers.mainThread())
  70.                                 .subscribe(place -> {
  71.                                     getViewState().addMarkersOnMap(place);
  72.                                     DiskCache.savePlace(place);
  73.                                 });
  74.                     },throwable -> {
  75.                         Log.e("MainPresenter", throwable.getMessage() + "");
  76.                     });
  77.         }else {
  78.             Observable.fromIterable(DiskCache.restorePlace())
  79.                     .subscribeOn(AndroidSchedulers.mainThread())
  80.                     .doOnSubscribe(disposable1 -> getViewState().showProgress())
  81.                     .doFinally(() -> getViewState().hideProgress())
  82.                     .subscribe(place -> {
  83.                         getViewState().addMarkersOnMap(place);
  84.                     },throwable -> {
  85.                         Log.e("MainPresenter", throwable.getMessage() + "");
  86.                     });
  87.         }
  88.     }
  89.  
  90.     public boolean isOnline(Context context) {
  91.         ConnectivityManager cm =
  92.                 (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
  93.         NetworkInfo netInfo = cm.getActiveNetworkInfo();
  94.         return netInfo != null && netInfo.isConnectedOrConnecting();
  95.     }
  96. }
  97.  
  98. ----------------
  99.  
  100. interface IMain extends MvpView,ILoading{
  101.     void addMarkersOnMap(Place place);
  102. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement