I have a Fragment where I opening bottom dialog
private void openImageDialog() {
NavController navController = findNavController(view);
Timber.d("%s", navController.getCurrentDestination());
navController.navigate(SettingUpProfileFragmentDirections.openImageDialog(resourceFile));
}
And on BottomSheetDialogFragment I have
private void openGallery() {
Intent intent = new Intent(ACTION_PICK, EXTERNAL_CONTENT_URI);
startActivityForResult(intent, SELECT_IMAGE_REQUEST);
}
After returning on dialog I just dismiss dialog like this
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == SELECT_IMAGE_REQUEST && resultCode == RESULT_OK && data != null) {
dismiss();
}
}
and when I am trying to open dialog from Fragment again I get the next exception
java.lang.IllegalArgumentException: Navigation action/destination com.xxx:id/openImageDialog cannot be found from the current destination Destination(com.xxx:id/editProfilePhotoDialog)
at androidx.navigation.NavController.navigate(NavController.java:938)
at androidx.navigation.NavController.navigate(NavController.java:875)
at androidx.navigation.NavController.navigate(NavController.java:861)
at androidx.navigation.NavController.navigate(NavController.java:1150)
at com.xxx.ui.fragment.SettingUpProfileFragment.openImageDialog(SettingUpProfileFragment.java:143)
at com.xxx.ui.fragment.SettingUpProfileFragment.onProfileImageClick(SettingUpProfileFragment.java:130)
at com.xxx.ui.fragment.SettingUpProfileFragment.lambda$onViewCreated$4$SettingUpProfileFragment(SettingUpProfileFragment.java:96)
at com.xxx.ui.fragment.-$$Lambda$SettingUpProfileFragment$2Q5hfVos3CTEjzzPhfVwb1h-ZBs.onClick(Unknown Source:2)
at android.view.View.performClick(View.java:7448)
at android.view.View.performClickInternal(View.java:7425)
at android.view.View.access$3600(View.java:810)
at android.view.View$PerformClick.run(View.java:28305)
at android.os.Handler.handleCallback(Handler.java:938)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:223)
at android.app.ActivityThread.main(ActivityThread.java:7656)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)
Log from openImageDialog()
method shows that I'm still on dialog fragment
D/SettingUpProfileFragment: Destination(com.xxx:id/editProfilePhotoDialog)
.
I have the idea that I'm still on dialog because of opening gallery from it but have no idea how it can impact navigation. Any ideas on how I can fix this?