public abstract class PermissionCheckingFragment
extends androidx.fragment.app.Fragment
RuntimePermissionChecker if you need to extend any other component
The onCreateView method is used to check for the permission and returns an empty
FrameLayout to the Activity that hosts this fragment.
Based on the permission check result, the below methods would be invoked and can return
the appropriate View for that scenario
setupViewWithPermission(android.os.Bundle) If permission is granted
setupViewWithoutPermission() If permission is not granted| Modifier and Type | Field and Description |
|---|---|
protected android.view.ViewGroup |
container |
protected android.content.Context |
context |
protected android.view.LayoutInflater |
inflater |
| Constructor and Description |
|---|
PermissionCheckingFragment() |
| Modifier and Type | Method and Description |
|---|---|
protected abstract java.lang.String[] |
getRequiredPermissions()
Permissions that are required
|
void |
onAttach(android.content.Context context) |
android.view.View |
onCreateView(android.view.LayoutInflater inflater,
android.view.ViewGroup container,
android.os.Bundle savedInstanceState) |
void |
onDetach() |
protected abstract void |
onPermissionNotGranted(int requestCode,
java.lang.String[] permissions,
int[] grantResults)
Invoked when the requested permissions are not granted
|
void |
onRequestPermissionsResult(int requestCode,
java.lang.String[] permissions,
int[] grantResults) |
protected void |
requestForPermissions() |
protected abstract android.view.View |
setupViewWithoutPermission()
Create the view to be shown when the permissions are not granted
|
protected abstract android.view.View |
setupViewWithPermission(android.os.Bundle savedInstanceState)
Create the view when permissions are granted
|
dump, equals, getActivity, getAllowEnterTransitionOverlap, getAllowReturnTransitionOverlap, getArguments, getChildFragmentManager, getContext, getEnterTransition, getExitTransition, getFragmentManager, getHost, getId, getLayoutInflater, getLayoutInflater, getLifecycle, getLoaderManager, getParentFragment, getReenterTransition, getResources, getRetainInstance, getReturnTransition, getSavedStateRegistry, getSharedElementEnterTransition, getSharedElementReturnTransition, getString, getString, getTag, getTargetFragment, getTargetRequestCode, getText, getUserVisibleHint, getView, getViewLifecycleOwner, getViewLifecycleOwnerLiveData, getViewModelStore, hashCode, hasOptionsMenu, instantiate, instantiate, isAdded, isDetached, isHidden, isInLayout, isMenuVisible, isRemoving, isResumed, isStateSaved, isVisible, onActivityCreated, onActivityResult, onAttach, onAttachFragment, onConfigurationChanged, onContextItemSelected, onCreate, onCreateAnimation, onCreateAnimator, onCreateContextMenu, onCreateOptionsMenu, onDestroy, onDestroyOptionsMenu, onDestroyView, onGetLayoutInflater, onHiddenChanged, onInflate, onInflate, onLowMemory, onMultiWindowModeChanged, onOptionsItemSelected, onOptionsMenuClosed, onPause, onPictureInPictureModeChanged, onPrepareOptionsMenu, onPrimaryNavigationFragmentChanged, onResume, onSaveInstanceState, onStart, onStop, onViewCreated, onViewStateRestored, postponeEnterTransition, postponeEnterTransition, registerForContextMenu, requestPermissions, requireActivity, requireArguments, requireContext, requireFragmentManager, requireHost, requireParentFragment, requireView, setAllowEnterTransitionOverlap, setAllowReturnTransitionOverlap, setArguments, setEnterSharedElementCallback, setEnterTransition, setExitSharedElementCallback, setExitTransition, setHasOptionsMenu, setInitialSavedState, setMenuVisibility, setReenterTransition, setRetainInstance, setReturnTransition, setSharedElementEnterTransition, setSharedElementReturnTransition, setTargetFragment, setUserVisibleHint, shouldShowRequestPermissionRationale, startActivity, startActivity, startActivityForResult, startActivityForResult, startIntentSenderForResult, startPostponedEnterTransition, toString, unregisterForContextMenuprotected android.view.LayoutInflater inflater
protected android.view.ViewGroup container
protected android.content.Context context
public void onAttach(android.content.Context context)
onAttach in class androidx.fragment.app.Fragmentpublic void onDetach()
onDetach in class androidx.fragment.app.Fragmentpublic final android.view.View onCreateView(@NonNull
android.view.LayoutInflater inflater,
android.view.ViewGroup container,
android.os.Bundle savedInstanceState)
onCreateView in class androidx.fragment.app.Fragmentprotected abstract java.lang.String[] getRequiredPermissions()
protected abstract android.view.View setupViewWithoutPermission()
protected abstract android.view.View setupViewWithPermission(android.os.Bundle savedInstanceState)
savedInstanceState - bundleprotected abstract void onPermissionNotGranted(int requestCode,
java.lang.String[] permissions,
int[] grantResults)
requestCode - requestCodepermissions - list of permissionsgrantResults - grant resultsprotected void requestForPermissions()
public void onRequestPermissionsResult(int requestCode,
@NonNull
java.lang.String[] permissions,
@NonNull
int[] grantResults)
onRequestPermissionsResult in class androidx.fragment.app.Fragment