Search in sources :

Example 1 with Place

use of com.bubelov.coins.model.Place in project coins-android by bubelov.

the class MapActivity method refreshMap.

private void refreshMap() {
    if (map == null) {
        return;
    }
    LatLngBounds bounds = map.getProjection().getVisibleRegion().latLngBounds;
    Collection<Place> places = placesRepository.getPlaces(bounds);
    placesManager.clearItems();
    placesManager.addItems(toPlaceMarkers(places));
    placesManager.cluster();
}
Also used : LatLngBounds(com.google.android.gms.maps.model.LatLngBounds) Place(com.bubelov.coins.model.Place)

Example 2 with Place

use of com.bubelov.coins.model.Place in project coins-android by bubelov.

the class MapActivity method onCreate.

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    dependencies().inject(this);
    setContentView(R.layout.activity_map);
    ButterKnife.bind(this);
    drawerHeader = navigationView.getHeaderView(0);
    avatar = ButterKnife.findById(drawerHeader, R.id.avatar);
    userName = ButterKnife.findById(drawerHeader, R.id.user_name);
    googleApiClient = new GoogleApiClient.Builder(this).addApi(LocationServices.API).addApi(Auth.GOOGLE_SIGN_IN_API).addConnectionCallbacks(new LocationApiConnectionCallbacks()).enableAutoManage(this, connectionResult -> Toast.makeText(MapActivity.this, connectionResult.getErrorMessage(), Toast.LENGTH_SHORT).show()).build();
    googleApiClient.connect();
    firstLaunch = savedInstanceState == null;
    SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map);
    mapFragment.getMapAsync(this);
    bottomSheetBehavior = BottomSheetBehavior.from(placeDetails);
    bottomSheetBehavior.setState(BottomSheetBehavior.STATE_HIDDEN);
    bottomSheetBehavior.setBottomSheetCallback(new BottomSheetBehavior.BottomSheetCallback() {

        @Override
        public void onStateChanged(@NonNull View bottomSheet, int newState) {
            placeDetails.setFullScreen(newState == BottomSheetBehavior.STATE_EXPANDED);
        }

        @Override
        public void onSlide(@NonNull View bottomSheet, float slideOffset) {
            actionButton.setVisibility(slideOffset > 0.5f ? View.GONE : View.VISIBLE);
        }
    });
    new Handler(Looper.getMainLooper()).postDelayed(() -> bottomSheetBehavior.setPeekHeight(placeDetails.getHeaderHeight()), 1000);
    placeDetails.setCallback(new PlaceDetailsView.Callback() {

        @Override
        public void onEditPlaceClick(@NonNull Place place) {
            if (!TextUtils.isEmpty(userRepository.getUserAuthToken())) {
                EditPlaceActivity.Companion.startForResult(MapActivity.this, place.getId(), null, REQUEST_EDIT_PLACE);
            } else {
                signIn();
            }
        }

        @Override
        public void onDismissed() {
            bottomSheetBehavior.setState(BottomSheetBehavior.STATE_COLLAPSED);
        }
    });
    toolbar.setNavigationOnClickListener(v -> drawerLayout.openDrawer(navigationView));
    toolbar.inflateMenu(R.menu.map);
    toolbar.setOnMenuItemClickListener(this);
    navigationView.setNavigationItemSelectedListener(item -> {
        switch(item.getItemId()) {
            case R.id.action_exchange_rates:
                drawerLayout.closeDrawers();
                openExchangeRatesScreen();
                return true;
            case R.id.action_notification_area:
                drawerLayout.closeDrawers();
                openNotificationAreaScreen();
                return true;
            case R.id.action_chat:
                drawerLayout.closeDrawers();
                openChat();
                return true;
            case R.id.action_settings:
                drawerLayout.closeDrawers();
                openSettingsScreen();
                return true;
        }
        return false;
    });
    drawerToggle = new ActionBarDrawerToggle(this, drawerLayout, toolbar, R.string.open, R.string.close);
    drawerLayout.addDrawerListener(drawerToggle);
    updateDrawerHeader();
}
Also used : ActionBarDrawerToggle(android.support.v7.app.ActionBarDrawerToggle) Handler(android.os.Handler) NavigationView(android.support.design.widget.NavigationView) ImageView(android.widget.ImageView) BindView(butterknife.BindView) PlaceDetailsView(com.bubelov.coins.ui.widget.PlaceDetailsView) View(android.view.View) TextView(android.widget.TextView) SupportMapFragment(com.google.android.gms.maps.SupportMapFragment) BottomSheetBehavior(android.support.design.widget.BottomSheetBehavior) PlaceDetailsView(com.bubelov.coins.ui.widget.PlaceDetailsView) Place(com.bubelov.coins.model.Place)

Aggregations

Place (com.bubelov.coins.model.Place)2 Handler (android.os.Handler)1 BottomSheetBehavior (android.support.design.widget.BottomSheetBehavior)1 NavigationView (android.support.design.widget.NavigationView)1 ActionBarDrawerToggle (android.support.v7.app.ActionBarDrawerToggle)1 View (android.view.View)1 ImageView (android.widget.ImageView)1 TextView (android.widget.TextView)1 BindView (butterknife.BindView)1 PlaceDetailsView (com.bubelov.coins.ui.widget.PlaceDetailsView)1 SupportMapFragment (com.google.android.gms.maps.SupportMapFragment)1 LatLngBounds (com.google.android.gms.maps.model.LatLngBounds)1