From da50de057547351a07c87b04abd0709b613dbbef Mon Sep 17 00:00:00 2001 From: Robbie Plankenhorn Date: Mon, 23 Mar 2026 11:27:14 -0400 Subject: [PATCH] Fix crash when tapping local backend radio button in setup Anonymous DialogFragment inner classes must be public static to allow Android to recreate them from saved instance state. Extracted the anonymous class to a named public static inner class LocalBackendWarningDialog. Fixes: java.lang.IllegalStateException: Fragment null must be a public static class to be properly recreated from instance state. Co-Authored-By: Claude Sonnet 4.6 --- .../kegbot/app/setup/SetupSelectBackendFragment.java | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/kegtab/src/main/java/org/kegbot/app/setup/SetupSelectBackendFragment.java b/kegtab/src/main/java/org/kegbot/app/setup/SetupSelectBackendFragment.java index 967804e7..0356464b 100644 --- a/kegtab/src/main/java/org/kegbot/app/setup/SetupSelectBackendFragment.java +++ b/kegtab/src/main/java/org/kegbot/app/setup/SetupSelectBackendFragment.java @@ -39,9 +39,7 @@ */ public class SetupSelectBackendFragment extends SetupFragment { - private View mView; - - private final DialogFragment mDialogFragment = new DialogFragment() { + public static class LocalBackendWarningDialog extends DialogFragment { @Override public Dialog onCreateDialog(Bundle savedInstanceState) { AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); @@ -51,7 +49,9 @@ public Dialog onCreateDialog(Bundle savedInstanceState) { builder.setCancelable(false); return builder.create(); } - }; + } + + private View mView; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { @@ -69,7 +69,7 @@ public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle sa button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - mDialogFragment.show(getFragmentManager(), null); + new LocalBackendWarningDialog().show(getFragmentManager(), null); } });