-
Notifications
You must be signed in to change notification settings - Fork 583
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Use
Observable.create()
to construct LocationServicesOkObservable (#…
…438) * Use `Observable.create()` to construct LocationServicesOkObservable * Move setCancellable to the bottom * Remove try-catch block
- Loading branch information
1 parent
28a2f97
commit 09c96c6
Showing
4 changed files
with
64 additions
and
67 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
56 changes: 0 additions & 56 deletions
56
.../main/java/com/polidea/rxandroidble2/internal/util/LocationServicesOkObservableApi23.java
This file was deleted.
Oops, something went wrong.
53 changes: 53 additions & 0 deletions
53
...ava/com/polidea/rxandroidble2/internal/util/LocationServicesOkObservableApi23Factory.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,53 @@ | ||
package com.polidea.rxandroidble2.internal.util; | ||
|
||
import android.annotation.TargetApi; | ||
import android.content.BroadcastReceiver; | ||
import android.content.Context; | ||
import android.content.Intent; | ||
import android.content.IntentFilter; | ||
import android.location.LocationManager; | ||
import android.os.Build; | ||
|
||
import bleshadow.javax.inject.Inject; | ||
import io.reactivex.Observable; | ||
import io.reactivex.ObservableEmitter; | ||
import io.reactivex.ObservableOnSubscribe; | ||
import io.reactivex.functions.Cancellable; | ||
|
||
@TargetApi(Build.VERSION_CODES.KITKAT) | ||
public class LocationServicesOkObservableApi23Factory { | ||
private final Context context; | ||
private final LocationServicesStatus locationServicesStatus; | ||
|
||
@Inject | ||
LocationServicesOkObservableApi23Factory( | ||
final Context context, | ||
final LocationServicesStatus locationServicesStatus) { | ||
this.context = context; | ||
this.locationServicesStatus = locationServicesStatus; | ||
} | ||
|
||
public Observable<Boolean> get() { | ||
return Observable.create(new ObservableOnSubscribe<Boolean>() { | ||
@Override | ||
public void subscribe(final ObservableEmitter<Boolean> emitter) throws Exception { | ||
final boolean initialValue = locationServicesStatus.isLocationProviderOk(); | ||
final BroadcastReceiver broadcastReceiver = new BroadcastReceiver() { | ||
@Override | ||
public void onReceive(Context context, Intent intent) { | ||
final boolean newValue = locationServicesStatus.isLocationProviderOk(); | ||
emitter.onNext(newValue); | ||
} | ||
}; | ||
emitter.onNext(initialValue); | ||
context.registerReceiver(broadcastReceiver, new IntentFilter(LocationManager.MODE_CHANGED_ACTION)); | ||
emitter.setCancellable(new Cancellable() { | ||
@Override | ||
public void cancel() throws Exception { | ||
context.unregisterReceiver(broadcastReceiver); | ||
} | ||
}); | ||
} | ||
}).distinctUntilChanged(); | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters