use of cl.smartcities.isci.transportinspector.periodicRequest.PeriodicRequestHandler in project androidApp by InspectorIncognito.
the class DetailsActivity method onCreate.
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Bundle bundle = this.getIntent().getExtras();
if (bundle.keySet().contains(BUS_STOP)) {
busStop = bundle.getParcelable(BUS_STOP);
periodicRequestHandler = new PeriodicRequestHandler(this, this, busStop);
}
}
use of cl.smartcities.isci.transportinspector.periodicRequest.PeriodicRequestHandler in project androidApp by InspectorIncognito.
the class BusStopPlugin method busStopFeatureClick.
private void busStopFeatureClick(Feature busStopFeature, BusStopClickHandler handler) {
if (selectedBus != null) {
Log.d(BusStopPlugin.class.getSimpleName(), "selectedBus != null");
deselectSelectedBusFeature();
}
final Feature newSelectedFeature = handler.handleMarkerClick(busStopFeature, busStopFeatures);
if (newSelectedFeature != null) {
Log.d(BusStopPlugin.class.getSimpleName(), "newSelectedFeature != null");
if (busStopServiceCall != null && !busStopServiceCall.isCanceled()) {
busStopServiceCall.cancel();
}
busesFeatures = FeatureCollection.fromFeatures(new Feature[] {});
if (periodicRequestHandler != null) {
periodicRequestHandler.stopPeriodicRequest();
periodicRequestHandler = null;
}
refreshBusSource();
Log.d(BusStopPlugin.class.getSimpleName(), "selectedBusStop assign");
if (selectedBusStop != null) {
deselectSelectedBusStop();
}
selectedBusStop = newSelectedFeature;
final BusStop busStop = ((BusStopMarker) newSelectedFeature).getBusStop();
final BusStopLoadingLayerTask loaderTask = new BusStopLoadingLayerTask(newSelectedFeature, new BusStopLoadingLayerTask.LoadingListener() {
@Override
public void refresh() {
refreshBusStopSource();
}
});
final Thread thread = new Thread(loaderTask);
thread.start();
busStopServiceCall = busStopInfoService.getBusStopData(Installation.getPhoneId(), newSelectedFeature.getStringProperty(BusStopMarker.PROPERTY_ID));
/*Log the URL called*/
Log.d(BusStopPlugin.class.getSimpleName(), busStopServiceCall.request().url().toString());
busStopServiceCall.enqueue(new Callback<ServerSentBusStopInfo>() {
@Override
public void onResponse(Call<ServerSentBusStopInfo> call, Response<ServerSentBusStopInfo> response) {
Log.d(BusStopPlugin.class.getSimpleName(), "onResponse");
if (response == null || response.body() == null) {
if (response != null)
Log.e("BusStopPlugin", response.toString());
return;
}
periodicRequestHandler = new PeriodicRequestHandler(getContext(), BusStopPlugin.this, busStop, response.body().getEventsList());
BusStopPlugin.this.onResponse(response.body().getBusList(), response.body().getEventsList(), loaderTask, thread);
}
@Override
public void onFailure(Call<ServerSentBusStopInfo> call, Throwable t) {
Log.d(BusStopPlugin.class.getSimpleName(), "onFailure");
if (!call.isCanceled()) {
Toast.makeText(getContext(), "Error de conexión", Toast.LENGTH_SHORT).show();
}
loaderTask.stop();
thread.interrupt();
deselectSelectedBusStop(newSelectedFeature);
}
});
listener.onBusStopFocusGained();
animateCameraToSelection(newSelectedFeature);
} else {
refreshBusSource();
centerCameraInSelection(busStopFeature);
}
refreshBusStopSource();
}
use of cl.smartcities.isci.transportinspector.periodicRequest.PeriodicRequestHandler in project androidApp by InspectorIncognito.
the class BusUserPlugin method getOnMapClickListener.
public MultiLayerOnMapClickListener getOnMapClickListener() {
return new MultiLayerOnMapClickListener() {
@Override
public boolean onMapClick(@NonNull LatLng point) {
PointF screenPoint = mapboxMap.getProjection().toScreenLocation(point);
final List<Feature> allFeatures = mapboxMap.queryRenderedFeatures(screenPoint);
Collections.reverse(allFeatures);
for (Feature feature : allFeatures) {
if (feature.hasProperty(LocationLayerConstants.PROPERTY_ON_BUS) && feature.getBooleanProperty(LocationLayerConstants.PROPERTY_ON_BUS).equals(true)) {
// BUS FEATURE CLICK
final List<Feature> infoWindowFeature = mapboxMap.queryRenderedFeatures(screenPoint, LocationLayerConstants.LOCATION_LAYER_INFO_WINDOW);
if (!infoWindowFeature.isEmpty()) {
PeriodicRequestHandler periodicRequestHandler = new PeriodicRequestHandler(TranSappApplication.getAppContext(), null, null);
BusClickHandler handler = new BusClickHandler(TranSappApplication.getAppContext().getResources(), periodicRequestHandler, listener);
PointF symbolScreenPoint = mapboxMap.getProjection().toScreenLocation(MapboxUtil.convertToLatLng(feature));
if (handler.handleInfoWindowClick(currentUserBus, screenPoint, symbolScreenPoint, viewMap, true)) {
return true;
}
minimizeFeature();
return true;
}
userLocationFeature.addBooleanProperty(LocationLayerConstants.PROPERTY_MAXIMIZED, true);
GeoJsonSource locationGeoJsonSource = mapboxMap.getSourceAs(LocationLayerConstants.LOCATION_SOURCE);
if (locationGeoJsonSource == null) {
return true;
}
locationGeoJsonSource.setGeoJson(userLocationFeature);
return true;
}
}
// we didn't find a click event on any layer
minimizeFeature();
return false;
}
};
}
Aggregations