From 121f510556e5b780e8895c8ed2681e814b89cc87 Mon Sep 17 00:00:00 2001 From: Behnam Heydarshahi Date: Thu, 13 Apr 2023 16:28:54 +0000 Subject: [PATCH] Fix volume CSD tests not cleanring up Clear the handler internal to VolumeDialogImpl on test teardown. Bug: b/278069856 Test: atest VolumeDialogImplTest Change-Id: I69440ab86b98a2ce95b38f6b6e9cca9b24d11fa1 --- .../src/com/android/systemui/volume/VolumeDialogImpl.java | 7 +++++++ .../com/android/systemui/volume/VolumeDialogImplTest.java | 8 ++++++++ 2 files changed, 15 insertions(+) diff --git a/packages/SystemUI/src/com/android/systemui/volume/VolumeDialogImpl.java b/packages/SystemUI/src/com/android/systemui/volume/VolumeDialogImpl.java index 3c007f99a6546..aa26e688c4905 100644 --- a/packages/SystemUI/src/com/android/systemui/volume/VolumeDialogImpl.java +++ b/packages/SystemUI/src/com/android/systemui/volume/VolumeDialogImpl.java @@ -2343,6 +2343,13 @@ public class VolumeDialogImpl implements VolumeDialog, Dumpable, } } + @VisibleForTesting + void clearInternalHandleAfterTest() { + if (mHandler != null) { + mHandler.removeCallbacksAndMessages(null); + } + } + private final class CustomDialog extends Dialog implements DialogInterface { public CustomDialog(Context context) { super(context, R.style.volume_dialog_theme); diff --git a/packages/SystemUI/tests/src/com/android/systemui/volume/VolumeDialogImplTest.java b/packages/SystemUI/tests/src/com/android/systemui/volume/VolumeDialogImplTest.java index eb2688894cb0a..e33bfd7d601e1 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/volume/VolumeDialogImplTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/volume/VolumeDialogImplTest.java @@ -58,6 +58,7 @@ import com.android.systemui.util.DeviceConfigProxyFake; import com.android.systemui.util.concurrency.FakeExecutor; import com.android.systemui.util.time.FakeSystemClock; +import org.junit.After; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; @@ -370,6 +371,13 @@ public class VolumeDialogImplTest extends SysuiTestCase { verify(mCsdWarningDialog).show(); } + @After + public void teardown() { + if (mDialog != null) { + mDialog.clearInternalHandleAfterTest(); + } + } + /* @Test public void testContentDescriptions() {