package pl.charmas.android.reactivelocation.observables.geofence; import android.app.PendingIntent; import android.content.Context; import com.google.android.gms.common.api.GoogleApiClient; import com.google.android.gms.common.api.Status; import java.util.List; import pl.charmas.android.reactivelocation.observables.BaseLocationObservable; import rx.Observable; import rx.Observer; public abstract class RemoveGeofenceObservable<T> extends BaseLocationObservable<T> { public static Observable<Status> createObservable( Context ctx, PendingIntent pendingIntent) { return Observable.create(new RemoveGeofenceByPendingIntentObservable(ctx, pendingIntent)); } public static Observable<Status> createObservable( Context ctx, List<String> requestIds) { return Observable.create(new RemoveGeofenceRequestIdsObservable(ctx, requestIds)); } protected RemoveGeofenceObservable(Context ctx) { super(ctx); } @Override protected void onGoogleApiClientReady(GoogleApiClient apiClient, final Observer<? super T> observer) { removeGeofences(apiClient, observer); } protected abstract void removeGeofences(GoogleApiClient locationClient, Observer<? super T> observer); }