From bf4ece69cd26cef7c166ef82cacd9d2449f6ca4d Mon Sep 17 00:00:00 2001 From: Diego Romar Date: Mon, 1 Dec 2025 16:41:22 -0300 Subject: [PATCH] bug: bottom dialog fragment attached not attached to activity (#117) * Remove onClickListener from peersBtn When HomeFragment is destroyed * Remove unused imports * Check if BottomDialogFragment is attached to Activity When setting its onShowListener --- .../java/io/netbird/client/ui/home/BottomDialogFragment.java | 5 +++++ .../main/java/io/netbird/client/ui/home/HomeFragment.java | 4 ++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/io/netbird/client/ui/home/BottomDialogFragment.java b/app/src/main/java/io/netbird/client/ui/home/BottomDialogFragment.java index a945e46..a0ed1ce 100644 --- a/app/src/main/java/io/netbird/client/ui/home/BottomDialogFragment.java +++ b/app/src/main/java/io/netbird/client/ui/home/BottomDialogFragment.java @@ -45,6 +45,11 @@ public class BottomDialogFragment extends com.google.android.material.bottomshee // Apply transparent background theme to the dialog BottomSheetDialog dialog = new BottomSheetDialog(requireContext(), R.style.BottomSheetDialogTheme); dialog.setOnShowListener(dialogInterface -> { + // Check if the fragment is still attached to avoid IllegalStateException + if (getActivity() == null || !isAdded()) { + return; + } + FrameLayout bottomSheet = dialog.findViewById(com.google.android.material.R.id.design_bottom_sheet); if (bottomSheet != null) { // Set the bottom sheet to be full screen diff --git a/app/src/main/java/io/netbird/client/ui/home/HomeFragment.java b/app/src/main/java/io/netbird/client/ui/home/HomeFragment.java index e0d483c..1676a6e 100644 --- a/app/src/main/java/io/netbird/client/ui/home/HomeFragment.java +++ b/app/src/main/java/io/netbird/client/ui/home/HomeFragment.java @@ -11,7 +11,6 @@ import android.widget.FrameLayout; import android.widget.TextView; import androidx.annotation.NonNull; -import androidx.appcompat.app.AlertDialog; import androidx.fragment.app.Fragment; import com.airbnb.lottie.LottieAnimationView; @@ -22,7 +21,6 @@ import io.netbird.client.ServiceAccessor; import io.netbird.client.StateListener; import io.netbird.client.StateListenerRegistry; import io.netbird.client.databinding.FragmentHomeBinding; -import io.netbird.client.ui.PreferenceUI; import io.netbird.gomobile.android.PeerInfo; import io.netbird.gomobile.android.PeerInfoArray; @@ -126,6 +124,8 @@ public class HomeFragment extends Fragment implements StateListener { super.onDestroyView(); buttonAnimation.destroy(); stateListenerRegistry.unregisterServiceStateListener(this); + FrameLayout openPanelCardView = binding.peersBtn; + openPanelCardView.setOnClickListener(null); binding = null; }