From de2b623fedee3f3aa569b653dff8643ea93f9004 Mon Sep 17 00:00:00 2001 From: Roman Tsisyk Date: Thu, 23 Nov 2023 08:42:30 +0200 Subject: [PATCH] [android] Fix NPE in AlertDialog.setOnShowListener() lambda Touching at the same time Add street and back button generates two events in the event loop - one to show EditTextDialogFragment and another is to close the activity. `editTextDialog.setOnShowListener((dialog) -> {` callback is called when activity has gone already. Signed-off-by: Roman Tsisyk --- .../app/organicmaps/dialog/EditTextDialogFragment.java | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/android/app/src/main/java/app/organicmaps/dialog/EditTextDialogFragment.java b/android/app/src/main/java/app/organicmaps/dialog/EditTextDialogFragment.java index 5f170758ac..aa7a7ac2a8 100644 --- a/android/app/src/main/java/app/organicmaps/dialog/EditTextDialogFragment.java +++ b/android/app/src/main/java/app/organicmaps/dialog/EditTextDialogFragment.java @@ -128,7 +128,10 @@ public class EditTextDialogFragment extends BaseMwmDialogFragment // Wait till alert is shown to get mPositiveButton. editTextDialog.setOnShowListener((dialog) -> { mPositiveButton = editTextDialog.getButton(DialogInterface.BUTTON_POSITIVE); - this.validateInput(requireActivity(), mInitialText); + final FragmentActivity activity = getActivity(); + if (activity == null) + return; + this.validateInput(activity, mInitialText); }); // Setup validation on input edit. @@ -137,7 +140,10 @@ public class EditTextDialogFragment extends BaseMwmDialogFragment @Override public void onTextChanged(CharSequence s, int start, int before, int count) { - EditTextDialogFragment.this.validateInput(requireActivity(), s.toString()); + final FragmentActivity activity = getActivity(); + if (activity == null) + return; + EditTextDialogFragment.this.validateInput(activity, s.toString()); } });