提交 8d2455c3 编写于 作者: J JessYan

Improve PermissionUtil

上级 0cecfd1f
......@@ -21,7 +21,6 @@ import com.tbruyelle.rxpermissions2.Permission;
import com.tbruyelle.rxpermissions2.RxPermissions;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import io.reactivex.annotations.NonNull;
......@@ -88,21 +87,31 @@ public class PermissionUtil {
.subscribe(new ErrorHandleSubscriber<List<Permission>>(errorHandler) {
@Override
public void onNext(@NonNull List<Permission> permissions) {
List<String> failurePermissions = new ArrayList<>();
List<String> askNeverAgainPermissions = new ArrayList<>();
for (Permission p : permissions) {
if (!p.granted) {
if (p.shouldShowRequestPermissionRationale) {
Timber.tag(TAG).d("Request permissions failure");
requestPermission.onRequestPermissionFailure(Arrays.asList(p.name));
return;
failurePermissions.add(p.name);
} else {
Timber.tag(TAG).d("Request permissions failure with ask never again");
requestPermission.onRequestPermissionFailureWithAskNeverAgain(Arrays.asList(p.name));
return;
askNeverAgainPermissions.add(p.name);
}
}
}
Timber.tag(TAG).d("Request permissions success");
requestPermission.onRequestPermissionSuccess();
if (failurePermissions.size() > 0) {
Timber.tag(TAG).d("Request permissions failure");
requestPermission.onRequestPermissionFailure(failurePermissions);
}
if (askNeverAgainPermissions.size() > 0){
Timber.tag(TAG).d("Request permissions failure with ask never again");
requestPermission.onRequestPermissionFailureWithAskNeverAgain(askNeverAgainPermissions);
}
if (failurePermissions.size() == 0 && askNeverAgainPermissions.size() == 0){
Timber.tag(TAG).d("Request permissions success");
requestPermission.onRequestPermissionSuccess();
}
}
});
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册