Java 类io.reactivex.CompletableOnSubscribe 实例源码

项目:JRAW-Android-Sample    文件:RedditService.java   
public static Completable userlessAuthentication(
        final RedditClient reddit,
        final Credentials credentials) {
    return Completable.create(new CompletableOnSubscribe() {
        @Override
        public void subscribe(CompletableEmitter e) throws Exception {
            try {
                OAuthData oAuthData = reddit.getOAuthHelper().easyAuth(credentials);
                reddit.authenticate(oAuthData);
                e.onComplete();
            } catch (Exception ex) {
                e.onError(ex);
            }
        }
    });
}
项目:JRAW-Android-Sample    文件:RedditService.java   
public static Completable userAuthentication(
        final RedditClient reddit,
        final Credentials credentials,
        final String url) {
    return Completable.create(new CompletableOnSubscribe() {
        @Override
        public void subscribe(CompletableEmitter e) throws Exception {
            OAuthHelper oAuthHelper = reddit.getOAuthHelper();

            try {
                OAuthData oAuthData = oAuthHelper.onUserChallenge(url, credentials);
                reddit.authenticate(oAuthData);
                AuthenticationManager.get().onAuthenticated(oAuthData);
                e.onComplete();
            } catch (Exception ex) {
                e.onError(ex);
            }
        }
    });
}
项目:JRAW-Android-Sample    文件:RedditService.java   
public static Completable logout(final Credentials credentials) {
    return Completable.create(new CompletableOnSubscribe() {
        @Override
        public void subscribe(CompletableEmitter e) throws Exception {
            try {
                AuthenticationManager.get().getRedditClient().getOAuthHelper()
                        .revokeAccessToken(credentials);
                AuthenticationManager.get().getRedditClient().getOAuthHelper()
                        .revokeRefreshToken(credentials);
                // Calling deauthenticate() isn't really necessary, since revokeAccessToken()
                // already calls it.
                // AuthenticationManager.get().getRedditClient().deauthenticate();

                // As of JRAW 9.0.0, revoking the access/refresh token does not update the
                // auth state to NONE (it instead remains as NEEDS_REFRESH), so to completely
                // restart the session to a blank state you should re-instantiate the
                // AuthenticationManager. See https://github.com/mattbdean/JRAW/issues/196

                // AuthenticationManager.get().init(...., ....); uncomment this line.
                e.onComplete();
            } catch (Exception ex) {
                e.onError(ex);
            }
        }
    });
}
项目:Profiler    文件:FirebaseDatabaseService.java   
@Override
public Completable deleteProfile(final String uid) {
    return Completable.create(
            new CompletableOnSubscribe() {
                @Override
                public void subscribe(final CompletableEmitter e) throws Exception {
                    final DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
                    rootRef.child(USER_PROFILES)
                            .child(uid)
                            .setValue(null)
                            .addOnCompleteListener(new OnCompleteListener<Void>() {
                                @Override
                                public void onComplete(@NonNull Task<Void> task) {
                                    if (task.isSuccessful()) {
                                        e.onComplete();
                                    } else {
                                        e.onError(task.getException());
                                    }
                                }
                            });
                }

            });
}
项目:Profiler    文件:FirebaseDatabaseService.java   
@Override
public Completable updateProfile(final Profile profile) {
    return Completable.create(
            new CompletableOnSubscribe() {
                @Override
                public void subscribe(final CompletableEmitter e) throws Exception {
                    final DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
                    rootRef.child(USER_PROFILES)
                            .child(profile.getUid())
                            .setValue(profile)
                            .addOnCompleteListener(new OnCompleteListener<Void>() {
                                @Override
                                public void onComplete(@NonNull Task<Void> task) {
                                    if (task.isSuccessful()) {
                                        e.onComplete();
                                    } else {
                                        e.onError(task.getException());
                                    }
                                }
                            });
                }

            });
}
项目:Profiler    文件:FirebaseAuthService.java   
@Override
public Completable createAccount(final Credentials cred) {
    return Completable.create(new CompletableOnSubscribe() {
        @Override
        public void subscribe(final CompletableEmitter e) throws Exception {
            if (auth == null) {
                auth = FirebaseAuth.getInstance();
            }

            auth.createUserWithEmailAndPassword(cred.getEmail(), cred.getPassword())
                    .addOnCompleteListener(new OnCompleteListener<AuthResult>() {
                        @Override
                        public void onComplete(@NonNull Task<AuthResult> task) {
                            if (task.isSuccessful()) {
                                e.onComplete();
                            } else {
                                e.onError(task.getException());
                            }
                        }
                    });

        }
    });
}
项目:Profiler    文件:FirebaseAuthService.java   
@Override
public Completable attemptLogin(final Credentials cred) {
    return Completable.create(new CompletableOnSubscribe() {
        @Override
        public void subscribe(final CompletableEmitter e) throws Exception {
            if (auth == null) {
                auth = FirebaseAuth.getInstance();
            }

            auth.signInWithEmailAndPassword(cred.getEmail(), cred.getPassword())
                    .addOnCompleteListener(new OnCompleteListener<AuthResult>() {
                        @Override
                        public void onComplete(@NonNull Task<AuthResult> task) {
                            if (task.isSuccessful()) {
                                e.onComplete();
                            } else {
                                e.onError(task.getException());
                            }
                        }
                    });
        }
    });
}
项目:Profiler    文件:FirebaseAuthService.java   
@Override
public Completable deleteUser() {
    return Completable.create(new CompletableOnSubscribe() {
        @Override
        public void subscribe(final CompletableEmitter e) throws Exception {
            if (auth == null) {
                auth = FirebaseAuth.getInstance();
            }

            final FirebaseUser user = auth.getCurrentUser();

            user.delete().addOnCompleteListener(new OnCompleteListener<Void>() {
                @Override
                public void onComplete(@NonNull Task<Void> task) {
                    if (task.isSuccessful()) {
                        e.onComplete();
                    } else {
                        e.onError(task.getException());
                    }
                }
            });

        }
    });
}
项目:showcase-android    文件:RxFirebaseDatabase.java   
/**
 * Set the given value on the specified {@link DatabaseReference}.
 *
 * @param ref reference represents a particular location in your database.
 * @param value value to update.
 * @return a {@link Completable} which is complete when the set value call finish successfully.
 */
@NonNull
public static Completable setValue(@NonNull final DatabaseReference ref,
                                   final Object value) {
   return Completable.create(new CompletableOnSubscribe() {
      @Override
      public void subscribe(@io.reactivex.annotations.NonNull final CompletableEmitter e) throws Exception {
         ref.setValue(value).addOnSuccessListener(new OnSuccessListener<Void>() {
            @Override public void onSuccess(Void aVoid) {
               e.onComplete();
            }
         }).addOnFailureListener(new OnFailureListener() {
            @Override public void onFailure(@NonNull Exception exception) {
               e.onError(exception);
            }
         });
      }
   });
}
项目:showcase-android    文件:RxFirebaseDatabase.java   
/**
 * Update the specific child keys to the specified values.
 *
 * @param ref        reference represents a particular location in your database.
 * @param updateData The paths to update and their new values
 * @return a {@link Completable} which is complete when the update children call finish successfully.
 */
@NonNull
public static Completable updateChildren(@NonNull final DatabaseReference ref,
                                         @NonNull final Map<String, Object> updateData) {
   return Completable.create(new CompletableOnSubscribe() {
      @Override
      public void subscribe(final CompletableEmitter emitter) throws Exception {
         ref.updateChildren(updateData, new DatabaseReference.CompletionListener() {
            @Override
            public void onComplete(DatabaseError error, DatabaseReference databaseReference) {
               if (error != null) {
                  emitter.onError(new RxFirebaseDataException(error));
               } else {
                  emitter.onComplete();
               }
            }
         });
      }
   });
}
项目:science-journal    文件:MaybeConsumers.java   
/**
 * Given an operation that takes a {@link MaybeConsumer<Success>}, create a JavaRX
 * {@link Completable} that succeeds iff the operation does.
 *
 * Example:
 * <pre>
 *     // update the experiment, and then log that it was successful
 *     DataController dc = getDataController();
 *     MaybeConsumers.buildCompleteable(mc -> dc.updateExperiment(e.getExperimentId(), mc))
 *                   .subscribe(() -> log("successfully updated!"));
 * </pre>
 */
public static Completable buildCompleteable(
        io.reactivex.functions.Consumer<MaybeConsumer<Success>> c) {
    return Completable.create(new CompletableOnSubscribe() {
        @Override
        public void subscribe(CompletableEmitter emitter) throws Exception {
            c.accept(new MaybeConsumer<Success>() {
                @Override
                public void success(Success value) {
                    emitter.onComplete();
                }

                @Override
                public void fail(Exception e) {
                    emitter.onError(e);
                }
            });
        }
    });
}
项目:AutoDispose    文件:AutoDisposeCompletableObserverTest.java   
@Test public void verifyCancellation() {
  final AtomicInteger i = new AtomicInteger();
  //noinspection unchecked because Java
  Completable source = Completable.create(new CompletableOnSubscribe() {
    @Override public void subscribe(CompletableEmitter e) {
      e.setCancellable(new Cancellable() {
        @Override public void cancel() {
          i.incrementAndGet();
        }
      });
    }
  });
  MaybeSubject<Integer> lifecycle = MaybeSubject.create();
  source.as(autoDisposable(lifecycle))
      .subscribe();

  assertThat(i.get()).isEqualTo(0);
  assertThat(lifecycle.hasObservers()).isTrue();

  lifecycle.onSuccess(0);

  // Verify cancellation was called
  assertThat(i.get()).isEqualTo(1);
  assertThat(lifecycle.hasObservers()).isFalse();
}
项目:RxFileUtils    文件:RxFileUtils.java   
/**
 * Delete File from internal Storage
 *
 * @param context  Context, not null
 * @param filename  Filename of the File that will be deleted
 * @return <code>Completable</code> that completes with <code>onComplete()</code> when the File is deleted.
 *         <code>onError()</code> is emitted if the given Context is null, filename is null or File is not deleted.
 */
public static Completable deleteInternal(@Nullable final Context context, final String filename) {
    return Completable.create(new CompletableOnSubscribe() {
        @Override
        public void subscribe(CompletableEmitter emitter) throws Exception {
            if (context == null) {
                emitter.onError(new IllegalArgumentException("Context must not be null"));
                return;
            }
            if (filename == null) {
                emitter.onError(new IllegalArgumentException("Filename must not be null"));
                return;
            }

            File directory = context.getFilesDir();
            File file = new File(directory, filename);
            boolean deleted = file.delete();

            if (deleted) {
                emitter.onComplete();
            } else {
                emitter.onError(new FileNotFoundException());
            }
        }
    });
}
项目:apollo-android    文件:Rx2Apollo.java   
/**
 * Converts an {@link ApolloPrefetch} to a synchronous Completable
 *
 * @param prefetch the ApolloPrefetch to convert
 * @return the converted Completable
 * @throws NullPointerException if prefetch == null
 */
@Nonnull public static Completable from(@Nonnull final ApolloPrefetch prefetch) {
  checkNotNull(prefetch, "prefetch == null");

  return Completable.create(new CompletableOnSubscribe() {
    @Override public void subscribe(final CompletableEmitter emitter) {
      cancelOnCompletableDisposed(emitter, prefetch);
      prefetch.enqueue(new ApolloPrefetch.Callback() {
        @Override public void onSuccess() {
          if (!emitter.isDisposed()) {
            emitter.onComplete();
          }
        }

        @Override public void onFailure(@Nonnull ApolloException e) {
          Exceptions.throwIfFatal(e);
          if (!emitter.isDisposed()) {
            emitter.onError(e);
          }
        }
      });
    }
  });
}
项目:Rx2Firebase    文件:RxFirebaseDatabase.java   
/**
 * Set the given value on the specified {@link DatabaseReference}.
 *
 * @param ref   reference represents a particular location in your database.
 * @param value value to update.
 * @return a {@link Completable} which is complete when the set value call finish successfully.
 */
@NonNull
public static Completable setValue(@NonNull final DatabaseReference ref,
                                   final Object value) {
   return Completable.create(new CompletableOnSubscribe() {
      @Override
      public void subscribe(@NonNull final CompletableEmitter e) throws Exception {
         ref.setValue(value).addOnSuccessListener(new OnSuccessListener<Void>() {
            @Override public void onSuccess(Void aVoid) {
               e.onComplete();
            }
         }).addOnFailureListener(new OnFailureListener() {
            @Override public void onFailure(@NonNull Exception exception) {
               e.onError(exception);
            }
         });
      }
   });
}
项目:Rx2Firebase    文件:RxFirebaseDatabase.java   
/**
 * Update the specific child keys to the specified values.
 *
 * @param ref        reference represents a particular location in your database.
 * @param updateData The paths to update and their new values
 * @return a {@link Completable} which is complete when the update children call finish successfully.
 */
@NonNull
public static Completable updateChildren(@NonNull final DatabaseReference ref,
                                         @NonNull final Map<String, Object> updateData) {
   return Completable.create(new CompletableOnSubscribe() {
      @Override
      public void subscribe(final CompletableEmitter emitter) throws Exception {
         ref.updateChildren(updateData, new DatabaseReference.CompletionListener() {
            @Override
            public void onComplete(DatabaseError error, DatabaseReference databaseReference) {
               if (error != null) {
                  emitter.onError(new RxFirebaseDataException(error));
               } else {
                  emitter.onComplete();
               }
            }
         });
      }
   });
}
项目:RxStore    文件:RealValueStore.java   
@Override @NonNull public Completable observeClear() {
  return Completable.create(new CompletableOnSubscribe() {
    @Override public void subscribe(final CompletableEmitter emitter) throws Exception {
      runInWriteLock(readWriteLock, new ThrowingRunnable() {
        @Override public void run() throws Exception {
          if (file.exists() && !file.delete()) {
            throw new IOException("Clear operation on store failed.");
          } else {
            emitter.onComplete();
          }

          updateSubject.onNext(ValueUpdate.<T>empty());
        }
      });
    }
  });
}
项目:JRAW-Android-Sample    文件:RedditService.java   
public static Completable refreshToken(final Credentials credentials) {
    return Completable.create(new CompletableOnSubscribe() {
        @Override
        public void subscribe(CompletableEmitter e) throws Exception {
            try {
                AuthenticationManager.get().refreshAccessToken(credentials);
                e.onComplete();
            } catch (Exception ex) {
                e.onError(ex);
            }
        }
    });
}
项目:Profiler    文件:FirebaseDatabaseService.java   
@Override
public Completable createProfile(final Profile profile) {
    return Completable.create(
            new CompletableOnSubscribe() {
                @Override
                public void subscribe(final CompletableEmitter e) throws Exception {
                    final DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
                    final DatabaseReference idRef = rootRef.child(USER_PROFILES).child(profile.getUid());
                    idRef.addListenerForSingleValueEvent(new ValueEventListener() {
                        @Override
                        public void onDataChange(DataSnapshot snapshot) {
                            if (!snapshot.exists()) {
                                idRef.setValue(profile).addOnCompleteListener(new OnCompleteListener<Void>() {
                                    @Override
                                    public void onComplete(@NonNull Task<Void> task) {
                                        if (task.isSuccessful()) {
                                            e.onComplete();
                                        } else {
                                            e.onError(task.getException());
                                        }
                                    }
                                });
                            } else {
                                e.onComplete();
                            }
                        }

                        @Override
                        public void onCancelled(DatabaseError databaseError) {
                            Log.d("FIREBASE", databaseError.toString());
                        }
                    });
                }
            }
    );
}
项目:Profiler    文件:FirebaseAuthService.java   
@Override
public Completable logUserOut() {
    return Completable.create(new CompletableOnSubscribe() {
        @Override
        public void subscribe(final CompletableEmitter e) throws Exception {
            if (auth == null) {
                auth = FirebaseAuth.getInstance();
            }

            listener = new FirebaseAuth.AuthStateListener() {
                @Override
                public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) {
                    auth.removeAuthStateListener(listener);
                    if (firebaseAuth.getCurrentUser() == null) {
                        e.onComplete();
                    } else {
                        e.onError(new Exception());
                    }
                }
            };

            auth.addAuthStateListener(listener);
            auth.signOut();
        }
    });


}
项目:Profiler    文件:FirebaseAuthService.java   
@Override
public Completable reauthenticateUser(final String password) {
    return Completable.create(new CompletableOnSubscribe() {
        @Override
        public void subscribe(final CompletableEmitter e) throws Exception {
            if (auth == null) {
                auth = FirebaseAuth.getInstance();
            }

            final FirebaseUser user = auth.getCurrentUser();
            AuthCredential credential = EmailAuthProvider
                    .getCredential(user.getEmail(), password);

            user.reauthenticate(credential)
                    .addOnCompleteListener(new OnCompleteListener<Void>() {
                        @Override
                        public void onComplete(@NonNull Task<Void> task) {
                            if (task.isSuccessful()) {
                                e.onComplete();
                            } else {
                                e.onError(task.getException());
                            }
                        }
                    });
        }
    });
}
项目:showcase-android    文件:RxFirebaseUser.java   
/**
 * Updates the email address of the user.
 *
 * @param firebaseUser current firebaseUser instance.
 * @param email        new email.
 * @return a {@link Completable} if the task is complete successfully.
 */
@NonNull
public static Completable updateEmail(@NonNull final FirebaseUser firebaseUser,
                                      @NonNull final String email) {
   return Completable.create(new CompletableOnSubscribe() {
      @Override
      public void subscribe(CompletableEmitter emitter) throws Exception {
         RxCompletableHandler.assignOnTask(emitter, firebaseUser.updateEmail(email));
      }
   });
}
项目:showcase-android    文件:RxFirebaseUser.java   
/**
 * Updates the password of the user.
 *
 * @param firebaseUser current firebaseUser instance.
 * @param password     new password.
 * @return a {@link Completable} if the task is complete successfully.
 */
@NonNull
public static Completable updatePassword(@NonNull final FirebaseUser firebaseUser,
                                         @NonNull final String password) {
   return Completable.create(new CompletableOnSubscribe() {
      @Override
      public void subscribe(CompletableEmitter emitter) throws Exception {
         RxCompletableHandler.assignOnTask(emitter, firebaseUser.updatePassword(password));
      }
   });
}
项目:showcase-android    文件:RxFirebaseUser.java   
/**
 * Updates the user profile information.
 *
 * @param firebaseUser current firebaseUser instance.
 * @param request      {@link UserProfileChangeRequest} request for this user.
 * @return a {@link Completable} if the task is complete successfully.
 */
@NonNull
public static Completable updateProfile(@NonNull final FirebaseUser firebaseUser,
                                        @NonNull final UserProfileChangeRequest request) {
   return Completable.create(new CompletableOnSubscribe() {
      @Override
      public void subscribe(CompletableEmitter emitter) throws Exception {
         RxCompletableHandler.assignOnTask(emitter, firebaseUser.updateProfile(request));
      }
   });
}
项目:showcase-android    文件:RxFirebaseUser.java   
/**
 * Deletes the user record from your Firebase project's database.
 *
 * @param firebaseUser current firebaseUser instance.
 * @return a {@link Completable} if the task is complete successfully.
 */
@NonNull
public static Completable delete(@NonNull final FirebaseUser firebaseUser) {
   return Completable.create(new CompletableOnSubscribe() {
      @Override
      public void subscribe(CompletableEmitter emitter) throws Exception {
         RxCompletableHandler.assignOnTask(emitter, firebaseUser.delete());
      }
   });
}
项目:showcase-android    文件:RxFirebaseUser.java   
/**
 * Reauthenticates the user with the given credential.
 *
 * @param firebaseUser current firebaseUser instance.
 * @param credential   {@link AuthCredential} to re-authenticate.
 * @return a {@link Completable} if the task is complete successfully.
 */
@NonNull
public static Completable reAuthenticate(@NonNull final FirebaseUser firebaseUser,
                                         @NonNull final AuthCredential credential) {
   return Completable.create(new CompletableOnSubscribe() {
      @Override
      public void subscribe(CompletableEmitter emitter) throws Exception {
         RxCompletableHandler.assignOnTask(emitter, firebaseUser.reauthenticate(credential));
      }
   });
}
项目:showcase-android    文件:RxFirebaseUser.java   
/**
 * Manually refreshes the data of the current user (for example, attached providers, display name, and so on).
 *
 * @param firebaseUser current firebaseUser instance.
 * @return a {@link Completable} if the task is complete successfully.
 */
@NonNull
public static Completable reload(@NonNull final FirebaseUser firebaseUser) {
   return Completable.create(new CompletableOnSubscribe() {
      @Override
      public void subscribe(CompletableEmitter emitter) throws Exception {
         RxCompletableHandler.assignOnTask(emitter, firebaseUser.reload());
      }
   });
}
项目:showcase-android    文件:RxFirebaseUser.java   
/**
 * Initiates email verification for the user.
 *
 * @param firebaseUser current firebaseUser instance.
 * @return a {@link Completable} if the task is complete successfully.
 */
@NonNull
public static Completable sendEmailVerification(@NonNull final FirebaseUser firebaseUser) {
   return Completable.create(new CompletableOnSubscribe() {
      @Override
      public void subscribe(CompletableEmitter emitter) throws Exception {
         RxCompletableHandler.assignOnTask(emitter, firebaseUser.sendEmailVerification());
      }
   });
}
项目:showcase-android    文件:RxFirebaseAuth.java   
/**
 * Changes the user's password to newPassword for the account for which the code is valid.
 * Code validity can be checked with {@link FirebaseAuth#verifyPasswordResetCode(String)}.
 * This use case is only valid for signed-out users, and behavior is undefined for signed-in users.
 * Password changes for signed-in users should be made using {@link com.google.firebase.auth.FirebaseUser#updatePassword(String)}.
 *
 * @param firebaseAuth firebaseAuth instance.
 * @param code         generated code by firebase.
 * @param newPassword  new password for the user.
 * @return a {@link Completable} which emits when the action is completed.
 */
@NonNull
public static Completable confirmPasswordReset(@NonNull final FirebaseAuth firebaseAuth,
                                               @NonNull final String code,
                                               @NonNull final String newPassword) {
   return Completable.create(new CompletableOnSubscribe() {
      @Override
      public void subscribe(CompletableEmitter emitter) throws Exception {
         RxCompletableHandler.assignOnTask(emitter, firebaseAuth.confirmPasswordReset(code, newPassword));
      }
   });
}
项目:showcase-android    文件:RxFirebaseAuth.java   
/**
 * Applies the given code, which can be any out of band code which is valid according
 * to {@link FirebaseAuth#checkActionCode(String)} that does not also pass {@link FirebaseAuth#{verifyPasswordResetCode(String)},
 * which requires an additional parameter.
 *
 * @param firebaseAuth firebaseAuth instance.
 * @param code         generated code by firebase.
 * @return a {@link Completable} which emits when the action is completed.
 */
@NonNull
public static Completable applyActionCode(@NonNull final FirebaseAuth firebaseAuth,
                                          @NonNull final String code) {
   return Completable.create(new CompletableOnSubscribe() {
      @Override
      public void subscribe(CompletableEmitter emitter) throws Exception {
         RxCompletableHandler.assignOnTask(emitter, firebaseAuth.applyActionCode(code));
      }
   });
}
项目:showcase-android    文件:RxFirebaseStorage.java   
/**
 * Deletes the object at this {@link StorageReference}.
 *
 * @param storageRef represents a reference to a Google Cloud Storage object.
 * @return a {@link Completable} if the task is complete successfully.
 */
@NonNull
public static Completable delete(@NonNull final StorageReference storageRef) {
    return Completable.create(new CompletableOnSubscribe() {
        @Override
        public void subscribe(CompletableEmitter emitter) throws Exception {
            RxCompletableHandler.assignOnTask(emitter, storageRef.delete());
        }
    });
}
项目:AndroidSensors    文件:RawGPSMeasurementsGatherer.java   
@SuppressWarnings("MissingPermission")
@RequiresApi(Build.VERSION_CODES.N)
private void startListeningGnssMeasurementsEventsChanges(final GnssMeasurementsEvent.Callback callback) {
    // This is needed because location manager location updates need a looper
    Completable.create(new CompletableOnSubscribe() {
        @Override
        public void subscribe(CompletableEmitter e) throws Exception {
            checkRegistrationSuccess(locationManager.registerGnssMeasurementsCallback(callback));
        }
    })
            .subscribeOn(AndroidSchedulers.mainThread())
            .subscribe();
}
项目:AndroidSensors    文件:RawGPSStatusGatherer.java   
@SuppressWarnings("MissingPermission")
@RequiresApi(Build.VERSION_CODES.N)
private void startListeningGnssStatusChanges(final GnssStatus.Callback callback) {
    // This is needed because location manager location updates need a looper
    Completable.create(new CompletableOnSubscribe() {
        @Override
        public void subscribe(CompletableEmitter e) throws Exception {
            checkRegistrationSuccess(locationManager.registerGnssStatusCallback(callback));
        }
    })
            .subscribeOn(AndroidSchedulers.mainThread())
            .subscribe();
}
项目:AndroidSensors    文件:LocationGatherer.java   
@SuppressWarnings("MissingPermission")
private void startListeningLocationChanges(final LocationListener locationListener) {
    // This is needed because location manager location updates need a looper
    Completable.create(new CompletableOnSubscribe() {
        @Override
        public void subscribe(CompletableEmitter e) throws Exception {
            locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER,
                    sensorConfig.getMinSensorDelay(getSensorType()),
                    MIN_DISTANCE,
                    locationListener);
        }
    })
            .subscribeOn(AndroidSchedulers.mainThread())
            .subscribe();
}
项目:AndroidSensors    文件:RawGPSNavigationGatherer.java   
@RequiresApi(Build.VERSION_CODES.N)
private void startListeningGnssNavigationMessages(final GnssNavigationMessage.Callback callback) {
    // This is needed because location manager location updates need a looper
    Completable.create(new CompletableOnSubscribe() {
        @Override
        public void subscribe(CompletableEmitter e) throws Exception {
            checkRegistrationSuccess(locationManager.registerGnssNavigationMessageCallback(callback));
        }
    })
            .subscribeOn(AndroidSchedulers.mainThread())
            .subscribe();
}
项目:rxtasks    文件:RxTask.java   
/**
 * @param task
 * @param <R> Usually &lt;Void&gt;
 * @return
 */
@CheckReturnValue
@NonNull
public static <R> Completable completes(@NonNull final Task<R> task) {
    return Completable.create(new CompletableOnSubscribe() {
        @Override
        public void subscribe(@NonNull final CompletableEmitter emit) throws Exception {
            task.addOnCompleteListener(RxTask.<R>listener(emit));
        }
    });
}
项目:PosTrainer    文件:AlarmDatabase.java   
@Override
public Completable deleteAlarm(final Alarm alarm) {
    return Completable.create(
            new CompletableOnSubscribe() {
                @Override
                public void subscribe(final CompletableEmitter e) throws Exception {
                    Realm realm = Realm.getDefaultInstance();

                    realm.beginTransaction();

                    RealmQuery<RealmAlarm> query = realm.where(RealmAlarm.class);

                    query.equalTo("alarmId", alarm.getAlarmId());
                    RealmResults<RealmAlarm> result = query.findAll();

                    if (result.size() == 0) {
                        realm.cancelTransaction();
                        e.onError(new Exception());
                    } else {
                        result.deleteFromRealm(0);
                        realm.commitTransaction();
                        e.onComplete();
                    }
                }
            }
    );
}
项目:PosTrainer    文件:AlarmDatabase.java   
@Override
public Completable updateAlarm(final Alarm alarm) {
    return Completable.create(
            new CompletableOnSubscribe() {
                @Override
                public void subscribe(final CompletableEmitter e) throws Exception {
                    Realm realm = Realm.getDefaultInstance();

                    realm.beginTransaction();

                    RealmAlarm realmAlarm = new RealmAlarm();

                    realmAlarm.setAlarmId(alarm.getAlarmId());
                    realmAlarm.setHourOfDay(alarm.getHourOfDay());
                    realmAlarm.setMinute(alarm.getMinute());
                    realmAlarm.setAlarmTitle(alarm.getAlarmTitle());
                    realmAlarm.setActive(alarm.isActive());
                    realmAlarm.setVibrateOnly(alarm.isVibrateOnly());
                    realmAlarm.setRenewAutomatically(alarm.isRenewAutomatically());

                    realm.copyToRealmOrUpdate(realmAlarm);

                    realm.commitTransaction();

                    e.onComplete();
                }
            }
    );
}
项目:webtrekk-android-sdk    文件:WebtrekkBaseSDKTest.java   
protected void waitForFinishedCampaignProcess(@Nullable final Runnable callback){
    Completable.create(new CompletableOnSubscribe() {
        @Override
        public void subscribe(@NonNull CompletableEmitter completableEmitter) throws Exception {
            while (!isCampaignProcessFinished()){
                InstrumentationRegistry.getInstrumentation().waitForIdleSync();
            }
            if (callback != null) {
                callback.run();
            }
            completableEmitter.onComplete();
        }
    }).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread())
            .blockingAwait(130, TimeUnit.SECONDS);
}
项目:RxFileUtils    文件:RxFileUtils.java   
/**
 * Write Content to a File in internal Storage
 *
 * @param context  Context, not null
 * @param filename  Filename of the File that will be saved
 * @param content  Content to write into the File
 * @return <code>Observable<Void></code> that completes with <code>onComplete()</code> when the File is saved.
 *         <code>onError()</code> is emitted if the given Context is null or File operation meets an <code>IOException</code>
 */
@NonNull
public static Completable writeInternal(@Nullable final Context context, final String filename, final String content) {
    return Completable.create(new CompletableOnSubscribe() {
        @Override
        public void subscribe(CompletableEmitter emitter) throws Exception {
            if (context == null) {
                emitter.onError(new IllegalArgumentException("Context must not be null"));
                return;
            }
            if (filename == null) {
                emitter.onError(new IllegalArgumentException("Filename must not be null"));
                return;
            }
            if (content == null) {
                emitter.onError(new IllegalArgumentException("Content must not be null"));
                return;
            }

            FileOutputStream outputStream = null;
            try {
                outputStream = context.openFileOutput(filename, Context.MODE_PRIVATE);
                outputStream.write(content.getBytes());
                outputStream.close();
                emitter.onComplete();
            } catch (IOException e) {
                emitter.onError(e);
            }
        }
    });
}