Buggy code:
public class ReceiptsListFragment extends ReceiptsFragment implements DatabaseHelper . ReceiptRowListener { public static final String TAG = "ReceiptsListFragment" ; private static final int NEW_RECEIPT_CAMERA_REQUEST = 1 ; private static final int ADD_PHOTO_CAMERA_REQUEST = 2 ; private static final int NATIVE_NEW_RECEIPT_CAMERA_REQUEST = 3 ; private static final int NATIVE_ADD_PHOTO_CAMERA_REQUEST = 4 ; private static final int IMPORT_GALLERY_IMAGE = 5 ; private static final int PERMISSION_CAMERA_REQUEST = 21 ; private static final String PREFERENCE_HIGHLIGHTED_RECEIPT_ID = "highlightedReceiptId" ; private static final String PREFERENCE_IMAGE_URI = "imageUri" ; private ReceiptCardAdapter mAdapter ; private Receipt mHighlightedReceipt ; private Uri mImageUri ; private ProgressBar mProgressDialog ; private TextView mNoDataAlert ; private Attachable mAttachable ; private FloatingActionMenu mFloatingActionMenu ; private View mFloatingActionMenuActiveMaskView ; private NavigationHandler mNavigationHandler ; private boolean mShowDialogOnResume = false ; private File mImageFile ; @ Override public void onAttach ( Activity activity ) { } @ Override public void onCreate ( Bundle savedInstanceState ) { } @ Override public View onCreateView ( LayoutInflater inflater , ViewGroup container , Bundle savedInstanceState ) { } @ Override public void onActivityCreated ( Bundle savedInstanceState ) { } public int getLayoutId ( ) { } @ Override public void onResume ( ) { } @ Override public void setUserVisibleHint ( boolean isVisibleToUser ) { } @ Override public void onPause ( ) { } private void restoreDataHelper ( SharedPreferences preferences ) { } @ Override public void onDestroy ( ) { } @ Override public void onActivityResult ( final int requestCode , final int resultCode , final Intent data ) { } public final void addPictureReceipt ( ) { String dirPath ; File dir = mCurrentTrip . getDirectory ( ) ; if ( dir . exists ( ) ) { dirPath = dir . getAbsolutePath ( ) ; } else { dirPath = getPersistenceManager ( ) . getStorageManager ( ) . mkdir ( dir . getName ( ) ) . getAbsolutePath ( ) ; } if ( getPersistenceManager ( ) . getPreferences ( ) . useNativeCamera ( ) ) { final Intent intent = new Intent ( MediaStore . ACTION_IMAGE_CAPTURE ) ; mImageUri = Uri . fromFile ( new File ( dirPath , ( ( ( ( System . currentTimeMillis ( ) ) + "x" ) + ( getPersistenceManager ( ) . getDatabase ( ) . getReceiptsSerial ( mCurrentTrip ) . size ( ) ) ) + ".jpg" ) ) ) ; intent . putExtra ( EXTRA_OUTPUT , mImageUri ) ; startActivityForResult ( intent , ReceiptsListFragment . NATIVE_NEW_RECEIPT_CAMERA_REQUEST ) ; } else { if ( ( ContextCompat . checkSelfPermission ( getActivity ( ) , CAMERA ) ) != ( PackageManager . PERMISSION_GRANTED ) ) { Log . i ( ReceiptsListFragment . TAG , "User<seq2seq4repair_space>does<seq2seq4repair_space>not<seq2seq4repair_space>have<seq2seq4repair_space>camera<seq2seq4repair_space>permissions.<seq2seq4repair_space>Requesting..." ) ; <START_BUG> requestPermissions ( new String [ ] { permission . CAMERA } , ReceiptsListFragment . PERMISSION_CAMERA_REQUEST ) ; <END_BUG> } else { Log . i ( ReceiptsListFragment . TAG , "User<seq2seq4repair_space>has<seq2seq4repair_space>appropriate<seq2seq4repair_space>permissions.<seq2seq4repair_space>Granting<seq2seq4repair_space>camera<seq2seq4repair_space>access" ) ; if ( ApiHelper . NEW_SR_CAMERA_IS_SUPPORTED ) { final Intent intent = new Intent ( getActivity ( ) , CameraActivity . class ) ; mImageUri = Uri . fromFile ( new File ( dirPath , ( ( ( ( System . currentTimeMillis ( ) ) + "x" ) + ( getPersistenceManager ( ) . getDatabase ( ) . getReceiptsSerial ( mCurrentTrip ) . size ( ) ) ) + ".jpg" ) ) ) ; intent . putExtra ( EXTRA_OUTPUT , mImageUri ) ; startActivityForResult ( intent , ReceiptsListFragment . NEW_RECEIPT_CAMERA_REQUEST ) ; } else { final Intent intent = new Intent ( getActivity ( ) , MyCameraActivity . class ) ; String [ ] strings = new String [ ] { dirPath , ( ( ( System . currentTimeMillis ( ) ) + "x" ) + ( getPersistenceManager ( ) . getDatabase ( ) . getReceiptsSerial ( mCurrentTrip ) . size ( ) ) ) + ".jpg" } ; intent . putExtra ( STRING_DATA , strings ) ; startActivityForResult ( intent , ReceiptsListFragment . NEW_RECEIPT_CAMERA_REQUEST ) ; } } } } @ Override public void onRequestPermissionsResult ( int requestCode , @ NonNull String [ ] permissions , @ NonNull int [ ] grantResults ) { } public final void addTextReceipt ( ) { } private void importReceipt ( ) { } public final boolean showReceiptMenu ( final Receipt receipt ) { } private void attachImageToReceipt ( Attachment attachment , Receipt receipt , boolean replace ) { } private void attachPDFToReceipt ( Attachment attachment , Receipt receipt , boolean replace ) { } private void showImage ( @ NonNull Receipt receipt ) { } private void showPDF ( @ NonNull Receipt receipt ) { } public final void deleteReceipt ( final Receipt receipt ) { } public void moveOrCopy ( final Receipt receipt ) { } final void moveReceiptUp ( final Receipt receipt ) { } final void moveReceiptDown ( final Receipt receipt ) { } @ Override public void onListItemClick ( ListView l , View v , int position , long id ) { } @ Override public void onReceiptRowsQuerySuccess ( List < Receipt > receipts ) { } @ Override public void onReceiptRowInsertSuccess ( Receipt receipt ) { } @ Override public void onReceiptRowInsertFailure ( SQLException ex ) { } @ Override public void onReceiptRowUpdateSuccess ( Receipt receipt ) { } @ Override public void onReceiptRowUpdateFailure ( ) { } @ Override public void onReceiptDeleteSuccess ( Receipt receipt ) { } @ Override public void onReceiptDeleteFailure ( ) { } @ Override public void onReceiptCopySuccess ( Trip trip ) { } @ Override public void onReceiptCopyFailure ( ) { } @ Override public void onReceiptMoveSuccess ( Trip trip ) { } @ Override public void onReceiptMoveFailure ( ) { } }

Fix:
requestPermissionsWithPossibleChildFragment ( new String [ ] { permission . CAMERA } , ReceiptsListFragment . PERMISSION_CAMERA_REQUEST ) ;