Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class MainActivity extends MvpAppCompatActivity implements IMain,OnMapReadyCallback {
- @InjectPresenter MainPresenter presenter;
- private SupportMapFragment mapFragment;
- private Snackbar snackbar;
- private GoogleMap googleMap;
- @Override
- protected void onCreate(final Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- ButterKnife.bind(this);
- mapFragment = (SupportMapFragment) getSupportFragmentManager()
- .findFragmentById(R.id.map);
- snackbar = Snackbar.make(findViewById(android.R.id.content), R.string.please_wait, Snackbar.LENGTH_INDEFINITE);
- mapFragment.getMapAsync(this);
- }
- @Override
- public void showProgress() {
- snackbar.show();
- }
- @Override
- public void hideProgress() {
- snackbar.dismiss();
- }
- @Override
- public void addMarkersOnMap(Place place) {
- for (PlaceDataItem item : place.getData()) {
- LatLng latLng = new LatLng(item.getLat(), item.getLng());
- googleMap.addMarker(new MarkerOptions().position(latLng)
- .title( item.getName().toString() ));
- }
- }
- @Override
- public void onMapReady(GoogleMap googleMap) {
- this.googleMap=googleMap;
- presenter.createPlace();
- }
- }
- ---------------------
- @InjectViewState
- public class MainPresenter extends MvpPresenter<IMain> {
- @Override
- protected void onFirstViewAttach() {
- super.onFirstViewAttach();
- }
- public void createPlace(){
- if (isOnline(App.getContext())){
- DiskCache.clearAll();
- Observable.intervalRange(10, 5, 1, 2, TimeUnit.SECONDS)
- .map(integer -> integer * 10-90)
- .subscribeOn(Schedulers.io())
- .doOnSubscribe(disposable1 -> getViewState().showProgress())
- .doFinally(() -> getViewState().hideProgress())
- .subscribe(integer -> {
- ApiRequest.getPlace(integer)
- .observeOn(AndroidSchedulers.mainThread())
- .subscribe(place -> {
- getViewState().addMarkersOnMap(place);
- DiskCache.savePlace(place);
- });
- },throwable -> {
- Log.e("MainPresenter", throwable.getMessage() + "");
- });
- }else {
- Observable.fromIterable(DiskCache.restorePlace())
- .subscribeOn(AndroidSchedulers.mainThread())
- .doOnSubscribe(disposable1 -> getViewState().showProgress())
- .doFinally(() -> getViewState().hideProgress())
- .subscribe(place -> {
- getViewState().addMarkersOnMap(place);
- },throwable -> {
- Log.e("MainPresenter", throwable.getMessage() + "");
- });
- }
- }
- public boolean isOnline(Context context) {
- ConnectivityManager cm =
- (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
- NetworkInfo netInfo = cm.getActiveNetworkInfo();
- return netInfo != null && netInfo.isConnectedOrConnecting();
- }
- }
- ----------------
- interface IMain extends MvpView,ILoading{
- void addMarkersOnMap(Place place);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement