下面列出了怎么用io.reactivex.observers.ResourceObserver的API类实例代码及写法,或者点击链接到github查看源代码。
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() {
}
});
}
@SuppressLint("CheckResult")
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_vertical_tab);
mTabFlowLayout = findViewById(R.id.tabflow);
mRecyclerView = findViewById(R.id.recyclerview);
mManager = new LinearLayoutManager(this);
mRecyclerView.setLayoutManager(mManager);
HttpCreate.getServer().getNaviData()
.compose(RxUtils.<BaseResponse<List<NaviBean>>>rxScheduers())
.subscribeWith(new ResourceObserver<BaseResponse<List<NaviBean>>>() {
@Override
public void onNext(BaseResponse<List<NaviBean>> listBaseResponse) {
handleData(listBaseResponse);
}
@Override
public void onError(Throwable e) {
}
@Override
public void onComplete() {
}
});
}
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() {
}
});
}
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() {
}
});
}
void restoreOps(final RestoreModel model) {
final int size = model.preAppInfos.size();
final AtomicInteger progress = new AtomicInteger();
mView.showProgress(true, size);
Observable.fromIterable(model.preAppInfos)
.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());
}
}).subscribeOn(Schedulers.io())
.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();
}
});
}
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() {
}
});
}
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<>(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();
}