Java 类io.reactivex.observers.ResourceObserver 实例源码

项目:Learning-RxJava    文件:Ch2_34.java   
public static void main(String[] args) {
        Observable<Long> source =
                Observable.interval(1, TimeUnit.SECONDS);
        ResourceObserver<Long> myObserver = new
                ResourceObserver<Long>() {
                    @Override
                    public void onNext(Long value) {
                        System.out.println(value);
                    }

                    @Override
                    public void onError(Throwable e) {
                        e.printStackTrace();
                    }

                    @Override
                    public void onComplete() {
                        System.out.println("Done!");
                    }
                };
//capture Disposable
        Disposable disposable = source.subscribeWith(myObserver);
    }
项目:AppOpsX    文件:PermPresenter.java   
void setMode(final OpEntryInfo info) {
  Helper.setMode(context, appInfo.packageName, info)
      .subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread())
      .subscribe(new ResourceObserver<OpsResult>() {
        @Override
        public void onNext(OpsResult value) {

        }

        @Override
        public void onError(Throwable e) {
          mView.updateItem(info);
        }

        @Override
        public void onComplete() {

        }
      });
}
项目:rxactivityresponse    文件:LocationObservable.java   
@SuppressLint("MissingPermission")
@Override
protected void locationSettingSuccess(final ResourceObserver<Location> emitter, GoogleApiClient client) {
    this.client = client;
    locationListener = new LocationListener() {
        @Override
        public void onLocationChanged(Location location) {
            emitter.onNext(location);
            if (locationRequest.getNumUpdates() == 1) {
                emitter.onComplete();
            }
        }
    };

    //noinspection MissingPermission
    LocationServices.FusedLocationApi.requestLocationUpdates(client, locationRequest, locationListener);
}
项目:AppOpsX    文件:SearchHandler.java   
void handleWord(final String text) {
  if (TextUtils.isEmpty(text)) {
    mAdapter.clear();
    return;
  }

  search(text)
      .subscribeOn(Schedulers.io())
      .observeOn(AndroidSchedulers.mainThread()).subscribe(new ResourceObserver<List<AppInfo>>() {


    @Override
    protected void onStart() {
      super.onStart();
    }

    @Override
    public void onNext(List<AppInfo> value) {

      mAdapter.kw = text;
      mAdapter.showItems(value);
      if (!value.isEmpty()) {
        recyclerView.scrollToPosition(0);
      }
    }

    @Override
    public void onError(Throwable e) {

    }

    @Override
    public void onComplete() {

    }
  });


}
项目:AppOpsX    文件:PermGroupPresenter.java   
void changeMode(final int groupPosition, final int childPosition,
    final PermissionChildItem info) {

  info.opEntryInfo.changeStatus();

  Helper.setMode(context, info.appInfo.packageName, info.opEntryInfo)
      .subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread())
      .subscribe(new ResourceObserver<OpsResult>() {
        @Override
        public void onNext(OpsResult value) {

          mView.changeTitle(groupPosition, childPosition, info.opEntryInfo.isAllowed());
        }

        @Override
        public void onError(Throwable e) {
          try {
            info.opEntryInfo.changeStatus();
            mView.refreshItem(groupPosition, childPosition);
          } catch (Exception e2) {
            e2.printStackTrace();
          }
        }

        @Override
        public void onComplete() {

        }
      });
}
项目:AppOpsX    文件:ConfigPresenter.java   
void restoreOps(final RestoreModel model) {
  final int size = model.preAppInfos.size();
  final AtomicInteger progress = new AtomicInteger();
  mView.showProgress(true, size);

  Observable.fromIterable(model.preAppInfos).observeOn(Schedulers.io())
      .flatMap(new Function<PreAppInfo, ObservableSource<OpsResult>>() {
        @Override
        public ObservableSource<OpsResult> apply(@NonNull PreAppInfo appInfo) throws Exception {
          return Helper.setModes(context, appInfo.getPackageName(), AppOpsManager.MODE_IGNORED,
              appInfo.getOps());
        }
      }).observeOn(AndroidSchedulers.mainThread()).subscribe(new ResourceObserver<OpsResult>() {
    @Override
    public void onNext(@NonNull OpsResult opsResult) {
      mView.setProgress(progress.incrementAndGet());
    }

    @Override
    public void onError(@NonNull Throwable e) {
      progress.incrementAndGet();
    }

    @Override
    public void onComplete() {
      mView.showProgress(false, 0);
      Toast.makeText(context, "恢复成功", Toast.LENGTH_LONG).show();
    }
  });
}
项目:rxactivityresponse    文件:LocationSettingsObservable.java   
private void handleLocationSettings(final ResourceObserver<T> emitter, final GoogleApiClient client) {
    if (activityResultCanceled(STATE_NAME)) {
        emitter.onError(new LocationSettingDeniedException());
        return;
    }
    LocationSettingsRequest.Builder builder = new LocationSettingsRequest.Builder()
        .setAlwaysShow(true)
        .addLocationRequest(locationRequest);

    PendingResult<LocationSettingsResult> pendingResult = LocationServices.SettingsApi.checkLocationSettings(client, builder.build());
    pendingResult.setResultCallback(new ResultCallback<LocationSettingsResult>() {
        @Override
        public void onResult(LocationSettingsResult result) {
            final Status status = result.getStatus();
            switch (status.getStatusCode()) {
                case LocationSettingsStatusCodes.SUCCESS:
                    locationSettingSuccess(emitter, client);
                    break;
                case LocationSettingsStatusCodes.RESOLUTION_REQUIRED:
                    resolveResolutionRequired(emitter, status);
                    emitter.onComplete();  // silently close our api connection, full restart through responsehandler required, so we can close this connection.
                    break;
                case LocationSettingsStatusCodes.SETTINGS_CHANGE_UNAVAILABLE:
                    emitter.onError(new RxPlayServices.RxLocationError(LocationSettingsStatusCodes.SETTINGS_CHANGE_UNAVAILABLE));
                    break;
            }
        }
    });
}
项目:rxactivityresponse    文件:LocationSettingsObservable.java   
protected void resolveResolutionRequired(ResourceObserver<T> subscriber, Status status) {
    recieveStateResponse(STATE_NAME);
    try {
        status.startResolutionForResult(activity, getRequestCode());
    } catch (IntentSender.SendIntentException e) {
        subscriber.onError(new RxPlayServices.RxLocationError(e));
    }
}
项目:AppOpsX    文件:PermPresenter.java   
void load() {
  observable = Helper.getAppPermission(context, appInfo.packageName,
      PreferenceManager.getDefaultSharedPreferences(context)
          .getBoolean("key_show_no_prems", false));

  observable.subscribeOn(Schedulers.io())
      .observeOn(AndroidSchedulers.mainThread())
      .subscribe(new ResourceObserver<List<OpEntryInfo>>() {

        @Override
        protected void onStart() {
          super.onStart();
        }

        @Override
        public void onNext(List<OpEntryInfo> opEntryInfos) {

          if (opEntryInfos != null && !opEntryInfos.isEmpty()) {
            if (autoDisabled) {

              if (sortByMode) {
                reSortByModePerms(opEntryInfos);
              } else {
                mView.showProgress(false);
                mView.showPerms(opEntryInfos);
              }
            } else {
              autoDisable();
            }

          } else {
            mView.showError(context.getString(R.string.no_perms));
          }
          loadSuccess = true;
        }

        @Override
        public void onError(Throwable e) {
          mView.showError(getHandleError(e));

          loadSuccess = false;
        }

        @Override
        public void onComplete() {
        }
      });
}
项目:AppOpsX    文件:MainActivity.java   
private void loadData(final boolean isFirst) {
  boolean showSysApp = PreferenceManager.getDefaultSharedPreferences(getApplicationContext())
      .getBoolean("show_sysapp", false);
  Helper.getInstalledApps(getApplicationContext(), showSysApp)
      .map(Helper.getSortComparator(getApplicationContext())).subscribeOn(Schedulers.io())
      .observeOn(AndroidSchedulers.mainThread()).subscribe(new ResourceObserver<List<AppInfo>>() {

    @Override
    protected void onStart() {
      super.onStart();
      if(isFirst){
        mProgressBar.setVisibility(View.VISIBLE);
        recyclerView.setVisibility(View.GONE);
      }
    }

    @Override
    public void onNext(List<AppInfo> value) {
      adapter.showItems(value);
      mSearchHandler.setBaseData(new ArrayList<AppInfo>(value));

      invalidateOptionsMenu();

    }

    @Override
    public void onError(Throwable e) {
      e.printStackTrace();
      mSwipeRefreshLayout.setRefreshing(false);
      Toast.makeText(getApplicationContext(), e.getMessage(), Toast.LENGTH_LONG).show();

      invalidateOptionsMenu();
    }

    @Override
    public void onComplete() {
      mProgressBar.setVisibility(View.GONE);
      recyclerView.setVisibility(View.VISIBLE);
      mSwipeRefreshLayout.setRefreshing(false);

      if (isFirst) {
        mSwipeRefreshLayout.setEnabled(true);
      }

      invalidateOptionsMenu();
    }
  });
  loadUsers();
}
项目:rxactivityresponse    文件:CustomStateObserverExampleButton.java   
@Override
public void onGoogleApiClientReady(final ResourceObserver<String> emitter, final GoogleApiClient client) {
    if (activityResultCanceled(STATE_NAME)) {
        // always check and handle responses after recieveStateResponse
        emitter.onError(new GoogleLoginCanceledException());
        return;
    }
    final Disposable disposable = Observable.create(new ObservableOnSubscribe<String>() {
        @Override
        public void subscribe(ObservableEmitter<String> subscriber) {
            //noinspection MissingPermission
            final String accountName = Plus.AccountApi.getAccountName(client);
            final Account account = new Account(accountName, GoogleAuthUtil.GOOGLE_ACCOUNT_TYPE);
            final String scopes = "oauth2:" + GOOGLE_PLUS_SCOPES;
            try {
                subscriber.onNext(GoogleAuthUtil.getToken(activity.getApplicationContext(), account, scopes));
                resetClientForDemoPurposes(client);
                subscriber.onComplete();
            } catch (Exception e) {
                subscriber.onError(e);
            }
        }
    }).subscribeOn(Schedulers.computation()).observeOn(AndroidSchedulers.mainThread())
            .subscribe(new Consumer<String>() {
                @Override
                public void accept(String s) {
                    emitter.onNext(s);
                }
            }, new Consumer<Throwable>() {
                @Override
                public void accept(Throwable throwable) {
                    if (throwable instanceof UserRecoverableAuthException) {
                        // always trigger recieveStateResponse before startActivityForResult (or permission...)
                        recieveStateResponse(STATE_NAME);
                        activity.startActivityForResult(((UserRecoverableAuthException) throwable).getIntent(), getRequestCode());
                        emitter.onComplete();
                    } else {
                        emitter.onError(throwable);
                    }
                }
            });
    emitter.add(disposable);
}
项目:rxactivityresponse    文件:PlayServicesBaseObservable.java   
@Override
public void subscribe(final ObservableEmitter<T> emitter) {
    if (activityResultCanceled(STATE_NAME)) {
        emitter.onError(new PlayServicesConnectionCanceledException());
        return;
    }
    GoogleApiClient.Builder builder = new GoogleApiClient.Builder(activity);
    for (Api<? extends Api.ApiOptions.NotRequiredOptions> service : services) {
        builder.addApi(service);
    }
    if (scopes != null) {
        for (Scope scope : scopes) {
            builder.addScope(scope);
        }
    }
    builder.addConnectionCallbacks(new GoogleApiClient.ConnectionCallbacks() {
        @Override
        public void onConnected(Bundle bundle) {
            ResourceObserver<T> resourceObserver = new ResourceObserver<T>() {
                @Override
                public void onNext(T t) {
                    emitter.onNext(t);
                }

                @Override
                public void onError(Throwable e) {
                    emitter.onError(e);
                }

                @Override
                public void onComplete() {
                    emitter.onComplete();
                }
            };


            onGoogleApiClientReady(resourceObserver, client);
        }

        @Override
        public void onConnectionSuspended(int reason) {
            emitter.onError(new GoogleApiConnectionSuspended(reason));
        }
    });
    builder.addOnConnectionFailedListener(new GoogleApiClient.OnConnectionFailedListener() {
        @Override
        public void onConnectionFailed(final ConnectionResult connectionResult) {
            if (connectionResult.hasResolution()) {
                resolveConnectionFailed(connectionResult, emitter);
            } else {
                emitter.onError(new GoogleApiConnectionFailed(connectionResult));
            }
        }
    });
    client = builder.build();
    client.connect();
    emitter.setCancellable(new Cancellable() {
        @Override
        public void cancel() throws Exception {
            onUnsubscribe();
        }
    });
}
项目:rxactivityresponse    文件:PlayServicesObservable.java   
@Override
public void onGoogleApiClientReady(ResourceObserver<GoogleApiClient> emitter, GoogleApiClient client) {
    emitter.onNext(client);
}
项目:rxactivityresponse    文件:LocationSettingsObservable.java   
@Override
public void onGoogleApiClientReady(ResourceObserver<T> emitter, GoogleApiClient client) {
    handleLocationSettings(emitter, client);
}
项目:rxactivityresponse    文件:PlayServicesBaseObservable.java   
public abstract void onGoogleApiClientReady(ResourceObserver<T> emitter, GoogleApiClient client);
项目:rxactivityresponse    文件:LocationSettingsObservable.java   
protected abstract void locationSettingSuccess(ResourceObserver<T> subscriber, GoogleApiClient client);