Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 410ceb95 authored by chelseahao's avatar chelseahao
Browse files

Fix crash when rotating the screen with dialog open.

Flag: EXEMPT, bug fix
Test: atest
Bug: 418937587
Change-Id: Ib7d7afdd49cfc34860674337747e85fa4e251bc6
parent 6b490c46
Loading
Loading
Loading
Loading
+10 −3
Original line number Diff line number Diff line
@@ -43,10 +43,10 @@ import java.util.function.Consumer;
/** A dialog fragment for constructing and showing audio stream dialogs. */
public class AudioStreamsDialogFragment extends InstrumentedDialogFragment {
    private static final String TAG = "AudioStreamsDialogFragment";
    private final DialogBuilder mDialogBuilder;
    private DialogBuilder mDialogBuilder;
    private int mDialogId = SettingsEnums.PAGE_UNKNOWN;

    AudioStreamsDialogFragment(DialogBuilder dialogBuilder, int dialogId) {
    void init(DialogBuilder dialogBuilder, int dialogId) {
        mDialogBuilder = dialogBuilder;
        mDialogId = dialogId;
    }
@@ -58,6 +58,11 @@ public class AudioStreamsDialogFragment extends InstrumentedDialogFragment {

    @Override
    public Dialog onCreateDialog(Bundle savedInstanceState) {
        if (mDialogBuilder == null) {
            // Will not show the dialog if mDialogBuilder is null.
            setShowsDialog(false);
            return null;
        }
        return mDialogBuilder.build();
    }

@@ -77,7 +82,9 @@ public class AudioStreamsDialogFragment extends InstrumentedDialogFragment {
            return;
        }
        FragmentManager manager = host.getChildFragmentManager();
        (new AudioStreamsDialogFragment(dialogBuilder, dialogId)).show(manager, TAG);
        var dialogFragment = new AudioStreamsDialogFragment();
        dialogFragment.init(dialogBuilder, dialogId);
        dialogFragment.show(manager, TAG);
    }

    static void dismissAll(@Nullable Fragment host) {
+2 −1
Original line number Diff line number Diff line
@@ -52,7 +52,8 @@ public class AudioStreamsDialogFragmentTest {
    public void setUp() {
        mContext.setTheme(androidx.appcompat.R.style.Theme_AppCompat);
        mDialogBuilder = spy(new AudioStreamsDialogFragment.DialogBuilder(mContext));
        mFragment = new AudioStreamsDialogFragment(mDialogBuilder, SettingsEnums.PAGE_UNKNOWN);
        mFragment = new AudioStreamsDialogFragment();
        mFragment.init(mDialogBuilder, SettingsEnums.PAGE_UNKNOWN);
    }

    @After