use of cl.smartcities.isci.transportinspector.map.model.busStop.IconBuilder in project androidApp by InspectorIncognito.
the class GenerateViewIconTask method doInBackground.
@Override
protected HashMap<String, Bitmap> doInBackground(Void... params) {
HashMap<String, Bitmap> imagesMap = new HashMap<>();
LayoutInflater inflater = LayoutInflater.from(TranSappApplication.getAppContext());
for (IconBuilder builder : buildingList) {
builder.setIconsAndViews(inflater, imagesMap, viewMap);
}
return imagesMap;
}
use of cl.smartcities.isci.transportinspector.map.model.busStop.IconBuilder in project androidApp by InspectorIncognito.
the class BusUserPlugin method setOnBus.
private void setOnBus() {
final GeoJsonSource locationGeoJsonSource = mapboxMap.getSourceAs(LocationLayerConstants.LOCATION_SOURCE);
if (locationGeoJsonSource == null) {
return;
}
this.directionDetectionEngine = new DirectionEngine(10, currentUserBus.getService());
ArrayList<IconBuilder> buildingList = new ArrayList<>();
buildingList.add(new UserBusIconsBuilder(currentUserBus).toBuilder());
GenerateViewIconTask task = new GenerateViewIconTask(new GenerateViewIconTask.ImageLoaderListener() {
@Override
public void onImageGenResult(HashMap<String, View> viewMap, HashMap<String, Bitmap> bitmapHashMap) {
if (mapboxMap != null) {
mapboxMap.addImages(bitmapHashMap);
} else {
return;
}
BearingEngine.Orientation orientation;
if (currentUserBus.isFlipped()) {
userLocationFeature.addStringProperty(LocationLayerConstants.PROPERTY_ORIENTATION, "LEFT");
orientation = BearingEngine.Orientation.Left;
} else {
userLocationFeature.addStringProperty(LocationLayerConstants.PROPERTY_ORIENTATION, "RIGHT");
orientation = BearingEngine.Orientation.Right;
}
userLocationFeature.addBooleanProperty(LocationLayerConstants.PROPERTY_ON_BUS, true);
bearingEngine = new BearingEngine(mapboxMap, previousPoint, orientation);
if (currentUserBus.getDirection() != null && !currentUserBus.getDirection().isEmpty()) {
onBusEngine.setOnBus(currentUserBus);
}
locationGeoJsonSource.setGeoJson(userLocationFeature);
mapboxMap.animateCamera(CameraUpdateFactory.newLatLng(MapboxUtil.convertToLatLng(userLocationFeature)));
}
}, viewMap, buildingList);
task.execute();
}
use of cl.smartcities.isci.transportinspector.map.model.busStop.IconBuilder in project androidApp by InspectorIncognito.
the class BusUserPlugin method setBusAvatarId.
public void setBusAvatarId(int busAvatarId) {
if (currentUserBus == null) {
return;
}
currentUserBus.setAvatarId(busAvatarId);
ArrayList<IconBuilder> buildingList = new ArrayList<>();
buildingList.add(new UserBusIconsBuilder(currentUserBus).toBuilder());
GenerateViewIconTask task = new GenerateViewIconTask(new GenerateViewIconTask.ImageLoaderListener() {
@Override
public void onImageGenResult(HashMap<String, View> viewMap, HashMap<String, Bitmap> bitmapHashMap) {
if (mapboxMap != null) {
mapboxMap.addImages(bitmapHashMap);
} else {
return;
}
GeoJsonSource locationGeoJsonSource = mapboxMap.getSourceAs(LocationLayerConstants.LOCATION_SOURCE);
if (locationGeoJsonSource != null) {
locationGeoJsonSource.setGeoJson(userLocationFeature);
}
}
}, viewMap, buildingList);
task.execute();
}
use of cl.smartcities.isci.transportinspector.map.model.busStop.IconBuilder in project androidApp by InspectorIncognito.
the class BusStopPlugin method onFavIconClick.
@Override
public void onFavIconClick(final String busStopId) {
final FavoriteHelper helper = new FavoriteHelper(getContext());
final boolean isFavorite = helper.isFavorite(busStopId);
ArrayList<IconBuilder> buildingList = new ArrayList<>();
buildingList.add(new BusStopIconsBuilder(FeatureCollection.fromFeatures(new Feature[] { selectedBusStop })).toBuilder());
final GenerateViewIconTask task = new GenerateViewIconTask(new GenerateViewIconTask.ImageLoaderListener() {
@Override
public void onImageGenResult(HashMap<String, View> viewMap, HashMap<String, Bitmap> bitmapHashMap) {
if (mapboxMap != null) {
mapboxMap.addImages(bitmapHashMap);
}
refreshBusStopSource();
}
}, viewMap, buildingList);
new Thread(new Runnable() {
@Override
public void run() {
if (isFavorite) {
helper.removeFavoriteBusStop(busStopId);
} else {
helper.addFavoriteBusStop(busStopId);
}
task.execute();
}
}).start();
}
use of cl.smartcities.isci.transportinspector.map.model.busStop.IconBuilder in project androidApp by InspectorIncognito.
the class BusStopPlugin method onResponse.
private void onResponse(ArrayList<ServerSentBus> buses, ArrayList<ServerSentEvent> events, final BusStopLoadingLayerTask loaderTask, final Thread thread) {
buses = filterBuses(buses);
updateBusSource(buses);
for (ServerSentEvent event : events) {
event.finishInitialization();
}
((BusStopMarker) selectedBusStop).setEvents(events);
ArrayList<IconBuilder> buildingList = new ArrayList<>();
buildingList.add(new BusStopIconsBuilder(FeatureCollection.fromFeatures(new Feature[] { selectedBusStop })).toBuilder());
buildingList.add(new MapBusIconsBuilder(FeatureCollection.fromFeatures(busesFeatures.getFeatures())).toBuilder());
GenerateViewIconTask task = new GenerateViewIconTask(new GenerateViewIconTask.ImageLoaderListener() {
@Override
public void onImageGenResult(HashMap<String, View> viewMap, HashMap<String, Bitmap> bitmapHashMap) {
if (selectedBusStop == null) {
return;
}
Log.d(BusStopPlugin.class.getSimpleName(), "onImageGenResult");
if (mapboxMap != null) {
mapboxMap.addImages(bitmapHashMap);
} else {
return;
}
selectedBusStop.addBooleanProperty(BusStopMarker.PROPERTY_LOADING, false);
if (loaderTask != null && thread != null) {
loaderTask.stop();
thread.interrupt();
}
refreshBusStopSource();
refreshBusSource();
if (!busesFeatures.getFeatures().isEmpty()) {
Collections.sort(busesFeatures.getFeatures(), new Comparator<Feature>() {
@Override
public int compare(Feature bus1, Feature bus2) {
BusMarker m1 = (BusMarker) bus1;
BusMarker m2 = (BusMarker) bus2;
return m1.getBus().getDistanceToBusStop() < m2.getBus().getDistanceToBusStop() ? -1 : (m1.getBus().getDistanceToBusStop() == m2.getBus().getDistanceToBusStop() ? 0 : 1);
}
});
Feature busFeature = busesFeatures.getFeatures().get(0);
LatLngBounds.Builder latLngBoundsBuilder = new LatLngBounds.Builder();
latLngBoundsBuilder.include(MapboxUtil.convertToLatLng(busFeature));
latLngBoundsBuilder.include(MapboxUtil.getRotatePoint(busFeature, selectedBusStop, busFeature.getNumberProperty(BusMarker.PROPERTY_BEARING).doubleValue()));
CameraUpdate update = CameraUpdateFactory.newLatLngBounds(latLngBoundsBuilder.build(), 100, 100, 100, 100);
if (loaderTask != null && thread != null) {
MapboxUtil.animateCameraToNewCameraPosition(update.getCameraPosition(mapboxMap), mapboxMap);
// mapboxMap.animateCamera(update, 1000);
periodicRequestHandler.startPeriodicRequest();
final BusStop busStop = ((BusStopMarker) selectedBusStop).getBusStop();
listener.onBusStopSelected(busStop);
}
}
}
}, viewMap, buildingList);
((BusStopMarker) selectedBusStop).getBusStop().setIncomingBuses(buses);
task.execute();
}
Aggregations