From 156798b1683f3ac51123a90126dfec9718a433a8 Mon Sep 17 00:00:00 2001 From: Alina Zaidi Date: Thu, 1 Aug 2024 15:40:40 +0000 Subject: [PATCH] [dev_option] Dismiss reboot dialog on screen rotation. Bug: 356273849 Test: mp droid and locally checked that there are no errors and crashes Flag: EXEMPT minor fix Change-Id: Id60b304788bfb79fee13858c8e7bc30261f8e1c7 --- .../RebootConfirmationDialogFragment.java | 11 +++- .../RebootConfirmationDialogFragmentTest.java | 61 +++++++++++++++++++ 2 files changed, 71 insertions(+), 1 deletion(-) create mode 100644 tests/robotests/src/com/android/settings/development/RebootConfirmationDialogFragmentTest.java diff --git a/src/com/android/settings/development/RebootConfirmationDialogFragment.java b/src/com/android/settings/development/RebootConfirmationDialogFragment.java index 45c36976343..44bef57e469 100644 --- a/src/com/android/settings/development/RebootConfirmationDialogFragment.java +++ b/src/com/android/settings/development/RebootConfirmationDialogFragment.java @@ -21,6 +21,7 @@ import android.app.settings.SettingsEnums; import android.content.DialogInterface; import android.os.Bundle; +import androidx.annotation.VisibleForTesting; import androidx.appcompat.app.AlertDialog; import androidx.fragment.app.Fragment; import androidx.fragment.app.FragmentManager; @@ -57,7 +58,8 @@ public class RebootConfirmationDialogFragment extends InstrumentedDialogFragment } } - private RebootConfirmationDialogFragment( + @VisibleForTesting + RebootConfirmationDialogFragment( int messageId, int cancelButtonId, RebootConfirmationDialogHost host) { mMessageId = messageId; mCancelButtonId = cancelButtonId; @@ -92,4 +94,11 @@ public class RebootConfirmationDialogFragment extends InstrumentedDialogFragment super.onDismiss(dialog); mHost.onRebootDialogDismissed(); } + + @Override + public void onPause() { + dismiss(); + + super.onPause(); + } } diff --git a/tests/robotests/src/com/android/settings/development/RebootConfirmationDialogFragmentTest.java b/tests/robotests/src/com/android/settings/development/RebootConfirmationDialogFragmentTest.java new file mode 100644 index 00000000000..966f5ef204d --- /dev/null +++ b/tests/robotests/src/com/android/settings/development/RebootConfirmationDialogFragmentTest.java @@ -0,0 +1,61 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.settings.development; + +import androidx.fragment.app.FragmentActivity; + +import com.android.settings.R; + +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.Mock; +import org.mockito.Mockito; +import org.mockito.MockitoAnnotations; +import org.robolectric.RobolectricTestRunner; +import org.robolectric.shadows.androidx.fragment.FragmentController; + +@RunWith(RobolectricTestRunner.class) +public class RebootConfirmationDialogFragmentTest { + + private RebootConfirmationDialogFragment mFragment; + + @Mock + RebootConfirmationDialogHost mRebootConfirmationDialogHost; + + @Before + public void setUp() { + MockitoAnnotations.initMocks(this); + RebootConfirmationDialogFragment dialogFragment = + FragmentController.setupFragment( + new RebootConfirmationDialogFragment( + R.string.reboot_dialog_override_desktop_mode, + R.string.reboot_dialog_reboot_later, + mRebootConfirmationDialogHost), + FragmentActivity.class, + 0 /* containerViewId= */, null /* bundle= */); + + mFragment = Mockito.spy(dialogFragment); + } + + @Test + public void onPause_shouldDismissDialog() { + mFragment.onPause(); + + Mockito.verify(mFragment).dismiss(); + } +}