@Override public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) { if (DEBUG) { Log.v("PermissiveFragment", "Results: " + Arrays.toString(permissions) + " = " + Arrays.toString(grantResults)); } waitingForResult = false; // save result, postpone sending this event until this fragment is resumed result = new RequestPermissionsResult(permissions, grantResults); if (isResumed()) { Log.e(TAG, "It's in resumed state, so we should close it immediately."); closeFragment(); } }
@Override public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); if (savedInstanceState != null) { waitingForResult = savedInstanceState.getBoolean(WAITING_FOR_RESULT); if (!restoreActivity() && !waitingForResult) { Log.e(TAG, "It should never happen, that we close this fragment before any results are received!"); closeFragment(); } } }
@Override public void onResume() { super.onResume(); if (DEBUG) { Log.v(TAG, "onResume():"); } if (hasResult()) { closeFragment(); } }