Subratsss
9/4/2018 - 3:09 PM

Activity Fragment Issues

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();
                    }
                }

        }

    }