private void enableUserLocation(boolean enable) { if (mLocationProvider == null) { mLocationProvider = new UserLocationProvider( new GpsLocationProvider(getActivity().getApplicationContext()), mMapView); mLocationProvider.setDrawAccuracyEnabled(true); if (mLocationListener != null) { mLocationProvider.setLocationListener(mLocationListener); } mMapView.addOverlay(mLocationProvider); } if (enable) { mLocationProvider.enableMyLocation(); if (mUserLocationTrackingMode == TrackingMode.NONE) { mLocationProvider.disableFollowLocation(); } else { mLocationProvider.enableFollowLocation(); } } else { mLocationProvider.disableFollowLocation(); mLocationProvider.disableMyLocation(); } }
private void setAutoPanMode(AutoPanMode current, AutoPanMode update) { if (mPanMode.compareAndSet(current, update)) { switch (current) { case DRONE: mDrone.removeDroneListener(this); break; case USER: mUserLocationTrackingMode = TrackingMode.NONE; if (mLocationProvider != null) { mLocationProvider.disableFollowLocation(); } break; case DISABLED: default: break; } switch (update) { case DRONE: mDrone.addDroneListener(this); break; case USER: mUserLocationTrackingMode = TrackingMode.FOLLOW; if (mLocationProvider != null) { mLocationProvider.enableFollowLocation(); } break; case DISABLED: default: break; } } }