public ChooserDialog show() {
        if (_alertDialog == null || _list == null) {
            build();
        }

        if (Build.VERSION.SDK_INT < Build.VERSION_CODES.M) {
            showDialog();
            return this;
        }

        if (_permissionListener == null) {
            _permissionListener = new PermissionsUtil.OnPermissionListener() {
                @Override
                public void onPermissionGranted(String[] permissions) {
                    boolean show = false;
                    for (String permission : permissions) {
                        if (permission.equals(Manifest.permission.READ_EXTERNAL_STORAGE)
                                || (Build.VERSION.SDK_INT >= 33 && permission.equals(Manifest.permission.READ_MEDIA_VIDEO))) {
                            show = true;
                            break;
                        }
                    }
                    if (!show) return;
                    if (_enableOptions) {
                        show = false;
                        for (String permission : permissions) {
                            if (permission.equals(Manifest.permission.WRITE_EXTERNAL_STORAGE)) {
                                show = true;
                                break;
                            }
                        }
                    }
                    if (!show) return;
                    if (_adapter.isEmpty()) refreshDirs();
                    showDialog();
                }

                @Override
                public void onPermissionDenied(String[] permissions) {
                    //
                }

                @Override
                public void onShouldShowRequestPermissionRationale(final String[] permissions) {
                    Toast.makeText(_context, "You denied the Read/Write permissions on SDCard.",
                        Toast.LENGTH_LONG).show();
                }
            };
        }

        String[] permissions =
            /*_enableOptions ?*/ new String[]{Manifest.permission.READ_EXTERNAL_STORAGE,
                Manifest.permission.WRITE_EXTERNAL_STORAGE}
                /*: new String[]{Manifest.permission.READ_EXTERNAL_STORAGE}*/;

        if (Build.VERSION.SDK_INT >= 33 && _context.getApplicationInfo().targetSdkVersion >= 33) {
            permissions = new String[]{Manifest.permission.READ_MEDIA_VIDEO};
        }

        PermissionsUtil.checkPermissions(_context, _permissionListener, permissions);

        return this;
    }
allows dialog title follows the current folder name

@param followDir dialog title will follow the changing of directory
@return this
android-file-chooser/src/main/java/com/obsez/android/lib/filechooser/ChooserDialog.java