/** * We want to only request given permissions * * @see android.Manifest.permission */ public RuntimePermission request(@Nullable final String... permissions) { if (permissions != null) { return this.request(Arrays.asList(permissions)); } else { return this; } }
/** * Fill permissions to only ask If we do not call this method, * If not set or empty, the library will find all needed permissions to ask from manifest * You can call .request(permissions) after this method if you want to give permissions in a separate method */ public static RuntimePermission askPermission(@Nullable final FragmentActivity activity, String... permissions) { return new RuntimePermission(activity).request(permissions); }
/** * Fill permissions to only ask If we do not call this method, * If not set or empty, the library will find all needed permissions to ask from manifest * You can call .request(permissions) after this method if you want to give permissions in a separate method */ public static RuntimePermission askPermission(@Nullable final Fragment fragment, String... permissions) { @Nullable FragmentActivity activity = null; if(fragment != null){ activity = fragment.getActivity(); } return askPermission(activity).request(permissions); }
@Override public void subscribe(final SingleEmitter<PermissionResult> emitter) throws Exception { runtimePermission .request(permissions) .onResponse(new ResponseCallback() { @Override public void onResponse(PermissionResult result) { if (result.isAccepted()) { emitter.onSuccess(result); } else { emitter.onError(new Error(result)); } } }).ask(); } });
@Override public void subscribe(final ObservableEmitter<PermissionResult> emitter) throws Exception { runtimePermission .request(permissions) .onResponse(new ResponseCallback() { @Override public void onResponse(PermissionResult result) { if (result.isAccepted()) { emitter.onNext(result); emitter.onComplete(); } else { emitter.onError(new Error(result)); } } }).ask(); } });
@Override public void subscribe(final FlowableEmitter<PermissionResult> emitter) throws Exception { runtimePermission .request(permissions) .onResponse(new ResponseCallback() { @Override public void onResponse(PermissionResult result) { if (result.isAccepted()) { emitter.onNext(result); } else { emitter.onError(new Error(result)); } } }).ask(); } }, BackpressureStrategy.LATEST);
@Override public void subscribe(final MaybeEmitter<PermissionResult> emitter) throws Exception { runtimePermission .request(permissions) .onResponse(new ResponseCallback() { @Override public void onResponse(PermissionResult result) { if (result.isAccepted()) { emitter.onSuccess(result); } else { emitter.onError(new Error(result)); } } }).ask(); } });
private void myMethod() { askPermission(RuntimePermissionMainActivityJava8.this) .request(Manifest.permission.READ_CONTACTS, Manifest.permission.ACCESS_FINE_LOCATION)