@Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Log.i(getClass().getSimpleName(), "onCreate(): this=" + this + ", savedInstanceState=" + savedInstanceState); if (savedInstanceState != null) { allowablePermissions = savedInstanceState.getStringArray("permissions"); permissiveMessenger = savedInstanceState.getParcelable("messenger"); } if (!permissiveMessenger.updatePermissionsResultListener(this)) { permissiveMessenger.rebuildRequest() .withRationale(this) .whenPermissionsResultReceived(this) .execute(getActivity()); } }
@Override public String toString() { return getClass().getSimpleName() + '@' + Integer.toHexString(hashCode()) + '{' + Arrays.toString(permissions) + ", pGrantedListener=" + getPermissionsGrantedListener() + ", pRefusedListener=" + getPermissionsRefusedListener() + ", pResultListener=" + getPermissionsResultListener() + '}'; } }
@Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Log.i(getClass().getSimpleName(), "onCreate(): this=" + this + ", savedInstanceState=" + savedInstanceState); if (savedInstanceState != null) { allowablePermissions = savedInstanceState.getStringArray("permissions"); permissiveMessenger = savedInstanceState.getParcelable("messenger"); } if (!permissiveMessenger.updatePermissionsResultListener(this)) { permissiveMessenger.rebuildRequest() .withRationale(this) .whenPermissionsResultReceived(this) .execute(getActivity()); } }
protected void firePermissionsGrantedListener(String[] grantedPermissions) { final PermissionsGrantedListener listener = getPermissionsGrantedListener(); if (listener != null) { listener.onPermissionsGranted(grantedPermissions); } }
private void fireActionCallbacks(Permissive.Action action, RequestPermissionsResult result) { if (action != null) { if (result.grantedPermissions.length > 0) { action.firePermissionsGrantedListener(result.grantedPermissions); } if (result.refusedPermissions.length > 0) { action.firePermissionsRefusedListener(result.refusedPermissions); } action.firePermissionsResultListener(result.grantedPermissions, result.refusedPermissions); } }
/** * Executes this Request with a given Activity context. * * <p>Keep in mind, that if the activity disappears, then the Request will not be executed.</p> * * @param activity The Activity context which is saved as weak reference. */ @Override public void execute(Activity activity) { super.execute(activity); }
public void educateForLocationPermission(View view) { new Permissive.Request(Manifest.permission.ACCESS_COARSE_LOCATION, Manifest.permission.ACCESS_FINE_LOCATION) .showRationaleFirst(true) .withRationale(new EducateInContextFragment()) .whenPermissionsGranted(this::onPermissionsGranted) .whenPermissionsRefused(this::onPermissionsRefused) .execute(this); }
public void askForCameraPermission(View view) { new Permissive.Request(Manifest.permission.CAMERA) .withRationale(new AskInContextFragment()) .whenPermissionsGranted(this::onPermissionsGranted) .whenPermissionsRefused(this::onPermissionsRefused) .execute(this); }
private void finalizeAction(Permissive.Action action) { Context context = action.getContext(); if (context != null) { final int[] grants = getPermissionGrants(context, action.getPermissions()); fireActionCallbacks(action, new RequestPermissionsResult(action.getPermissions(), grants)); } }