When same Method is called in Fragment which is avileable in Activity We have to called super in activity. Example: onRequestPermissionsResult,onActivityResult etc.
@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
switch (requestCode) {
case CAMERA_PERMISSION:
if (grantResults.length > 0) {
boolean isCameraPermit = grantResults[0]==PackageManager.PERMISSION_GRANTED;
boolean isWritePermit = grantResults[1]==PackageManager.PERMISSION_GRANTED;
boolean isReadPermit = grantResults[2]==PackageManager.PERMISSION_GRANTED;
if (isCameraPermit && isWritePermit && isReadPermit){
openCamera();
}else{
requestPermissions(new String[]{Manifest.permission.CAMERA, Manifest.permission.WRITE_EXTERNAL_STORAGE,
Manifest.permission.READ_EXTERNAL_STORAGE}, CAMERA_PERMISSION);
}
} else {
if (ActivityCompat.shouldShowRequestPermissionRationale(getActivity(), permissions[0])) {
Toast.makeText(context, context.getResources().getString(R.string.camera_permission_needed), Toast.LENGTH_LONG).show();
}
requestPermissions(new String[]{Manifest.permission.CAMERA, Manifest.permission.WRITE_EXTERNAL_STORAGE,
Manifest.permission.READ_EXTERNAL_STORAGE}, CAMERA_PERMISSION);
}
break;
}
}
@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
super.onRequestPermissionsResult(requestCode,permissions,grantResults);//Activity we have to do it.
switch (requestCode) {
case BARCODE_SCAN_PERMISSION:
if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
openBarcode(fragmentIdentifier);
} else {
if (ActivityCompat.shouldShowRequestPermissionRationale(this, permissions[0])) {
Toast.makeText(this, getResources().getString(R.string.camera_permission_needed), Toast.LENGTH_LONG).show();
}
}
}
}