package cgeo.geocaching.maps.routing; import android.content.ComponentName; import android.content.ServiceConnection; import android.os.Bundle; import android.os.IBinder; import android.os.RemoteException; import android.support.annotation.Nullable; import btools.routingapp.IBRouterService; public class BRouterServiceConnection implements ServiceConnection { private IBRouterService brouterService; @Override public void onServiceConnected(final ComponentName className, final IBinder service) { brouterService = IBRouterService.Stub.asInterface(service); } @Override public void onServiceDisconnected(final ComponentName className) { brouterService = null; } public boolean isConnected() { return brouterService != null; } @Nullable public String getTrackFromParams(final Bundle params) { if (!isConnected()) { return null; } try { return brouterService.getTrackFromParams(params); } catch (final RemoteException e) { return null; } } }