package net.atomcode.bearing.location; import android.content.Context; import android.location.Location; /** * Simple wrapper for location providers */ public interface LocationProvider { /** * Prepare the provider for use, connecting to remote services etc. */ public void create(Context context); /** * Shutdown the provider, disconnecting from remote services. */ public void destroy(); /** * Get the last known cached location */ public Location getLastKnownLocation(LocationProviderRequest request); /** * Get a single location update for this provider * @param request The request containing the location update type * @param listener The listener to use to get the callback * @return A request identifier to cancel a request if required */ public String requestSingleLocationUpdate(LocationProviderRequest request, LocationListener listener); /** * Get recurring location updates for this provider * @param request The request containing the location update type * @param listener The listener to use to get the callback * @return A request identifier to cancel a request if required */ public String requestRecurringLocationUpdates(LocationProviderRequest request, LocationListener listener); /** * Cancel a currently running request using the given request id * @param requestId The id to use when cancelling a request */ public void cancelUpdates(String requestId); }