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 grantedModifier 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, unregisterForContextMenu
protected 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.Fragment
public void onDetach()
onDetach
in class androidx.fragment.app.Fragment
public final android.view.View onCreateView(@NonNull android.view.LayoutInflater inflater, android.view.ViewGroup container, android.os.Bundle savedInstanceState)
onCreateView
in class androidx.fragment.app.Fragment
protected 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