下面列出了io.reactivex.SingleEmitter#onError ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
@Override
public final void subscribe(SingleEmitter<T> emitter) throws Exception {
final GoogleApiClient apiClient = createApiClient(new ApiClientConnectionCallbacks(emitter));
try {
apiClient.connect();
} catch (Throwable ex) {
emitter.onError(ex);
}
emitter.setCancellable(() -> {
if (apiClient.isConnected()) {
onUnsubscribed(apiClient);
}
apiClient.disconnect();
});
}
/**
* @param emit
* @return
*/
@NonNull
@CheckReturnValue
public static ValueEventListener listener(@NonNull final SingleEmitter<DataSnapshot> emit) {
return new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
if (!emit.isDisposed()) {
emit.onSuccess(dataSnapshot);
}
}
@Override
public void onCancelled(DatabaseError e) {
if (!emit.isDisposed()) {
emit.onError(e.toException());
}
}
};
}
/**
* @param emit
* @return
*/
@NonNull
@CheckReturnValue
public static ValueEventListener listener(@NonNull final SingleEmitter<DataSnapshot> emit) {
return new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
if (!emit.isDisposed()) {
emit.onSuccess(dataSnapshot);
}
}
@Override
public void onCancelled(DatabaseError e) {
if (!emit.isDisposed()) {
emit.onError(e.toException());
}
}
};
}
private static <T> void onNullableSuccess(@Nullable T v, SingleEmitter<T> emitter) {
if (v == null) {
emitter.onError(new NullPointerException());
} else {
emitter.onSuccess(v);
}
}
@NonNull private String createDirectory(SingleEmitter<String> e) {
File appDir =
new File(Environment.getExternalStorageDirectory() + "/AppPermissionsExtractedApk");
if (!appDir.exists()) {
if (!appDir.mkdir()) {
e.onError(new Exception("Error creating directory"));
}
}
return appDir.getPath();
}
@Override
public void subscribe(SingleEmitter<GoogleSignInAccount> emitter) throws Exception {
if (!result.isSuccess()) {
emitter.onError(new GoogleSignInException(result));
return;
}
emitter.onSuccess(result.getSignInAccount());
}
/**
* @param emitter
* @param function
* @return
*/
@NonNull
@CheckReturnValue
public static Transaction.Handler transaction(
@NonNull final SingleEmitter<DataSnapshot> emitter,
@NonNull final Function<MutableData, Transaction.Result> function) {
return new Transaction.Handler() {
@Override
public Transaction.Result doTransaction(MutableData mutableData) {
try {
return function.apply(mutableData);
} catch (Exception e) {
throw new RuntimeException(e);
}
}
@Override
public void onComplete(@Nullable DatabaseError databaseError,
boolean committed,
@NonNull DataSnapshot dataSnapshot) {
if (!emitter.isDisposed()) {
if (null == databaseError) {
emitter.onSuccess(dataSnapshot);
} else {
emitter.onError(databaseError.toException());
}
}
}
};
}
/**
* @param emitter
* @param function
* @return
*/
@NonNull
@CheckReturnValue
public static Transaction.Handler transaction(
@NonNull final SingleEmitter<DataSnapshot> emitter,
@NonNull final Function<MutableData, Transaction.Result> function) {
return new Transaction.Handler() {
@Override
public Transaction.Result doTransaction(MutableData mutableData) {
try {
return function.apply(mutableData);
} catch (Exception e) {
throw new RuntimeException(e);
}
}
@Override
public void onComplete(@Nullable DatabaseError databaseError,
boolean committed,
@NonNull DataSnapshot dataSnapshot) {
if (!emitter.isDisposed()) {
if (null == databaseError) {
emitter.onSuccess(dataSnapshot);
} else {
emitter.onError(databaseError.toException());
}
}
}
};
}
@Override
public void subscribe(@NonNull SingleEmitter<Result> emitter) throws Exception {
try {
final Result value = preparedOperation.executeAsBlocking();
emitter.onSuccess(value);
} catch (Exception e) {
emitter.onError(e);
}
}
@Override
public void subscribe(@NonNull SingleEmitter<Optional<Result>> emitter) throws Exception {
try {
final Result value = preparedOperation.executeAsBlocking();
emitter.onSuccess(Optional.of(value));
} catch (Exception e) {
emitter.onError(e);
}
}