@Override
public void run (){
final LoadStatus status = mRouteTask.getLoadStatus();
// Has the route task loaded successfully?
if (status == LoadStatus.FAILED_TO_LOAD) {
Log.i(TAG, mRouteTask.getLoadError().getMessage());
Log.i(TAG, "CAUSE = " + mRouteTask.getLoadError().getCause().getMessage());
} else {
final ListenableFuture<RouteParameters> routeTaskFuture = mRouteTask
.createDefaultParametersAsync();
// Add a done listener that uses the returned route parameters
// to build up a specific request for the route we need
routeTaskFuture.addDoneListener(new Runnable() {
@Override
public void run() {
try {
final RouteParameters routeParameters = routeTaskFuture.get();
final TravelMode mode = routeParameters.getTravelMode();
mode.setImpedanceAttributeName("WalkTime");
mode.setTimeAttributeName("WalkTime");
// Set the restriction attributes for walk times
List<String> restrictionAttributes = mode.getRestrictionAttributeNames();
// clear default restrictions set for vehicles
restrictionAttributes.clear();
// add pedestrian restrictions
restrictionAttributes.add("Avoid Roads Unsuitable for Pedestrians");
restrictionAttributes.add("Preferred for Pedestrians");
restrictionAttributes.add("Walking");
// Add a stop for origin and destination
routeParameters.setTravelMode(mode);
routeParameters.getStops().add(origin);
routeParameters.getStops().add(destination);
// We want the task to return driving directions and routes
routeParameters.setReturnDirections(true);
routeParameters.setOutputSpatialReference(SpatialReferences.getWebMercator());
final ListenableFuture<RouteResult> routeResFuture = mRouteTask
.solveRouteAsync(routeParameters);
routeResFuture.addDoneListener(new Runnable() {
@Override
public void run() {
try {
final RouteResult routeResult = routeResFuture.get();
// Show route results
if (routeResult != null){
mCallback.onRouteReturned(routeResult);
}else{
Log.i(TAG, "NO RESULT FROM ROUTING");
}
} catch (final Exception e) {
Log.e(TAG, e.getMessage());
}
}
});
} catch (final Exception e1){
Log.e(TAG,e1.getMessage() );
}
}
});
}
}