diff --git a/packages/SystemUI/src/com/android/systemui/bluetooth/BroadcastDialog.java b/packages/SystemUI/src/com/android/systemui/bluetooth/BroadcastDialog.java index 25b1e3a8eed20..83e61d69e4f3c 100644 --- a/packages/SystemUI/src/com/android/systemui/bluetooth/BroadcastDialog.java +++ b/packages/SystemUI/src/com/android/systemui/bluetooth/BroadcastDialog.java @@ -155,8 +155,7 @@ public class BroadcastDialog extends SystemUIDialog { } @Override - public void onStart() { - super.onStart(); + public void start() { registerBroadcastCallBack(mExecutor, mBroadcastCallback); } @@ -200,8 +199,7 @@ public class BroadcastDialog extends SystemUIDialog { } @Override - public void onStop() { - super.onStop(); + public void stop() { unregisterBroadcastCallBack(mBroadcastCallback); } diff --git a/packages/SystemUI/src/com/android/systemui/contrast/ContrastDialog.kt b/packages/SystemUI/src/com/android/systemui/contrast/ContrastDialog.kt index 9e15c7e311272..f17d0f307473d 100644 --- a/packages/SystemUI/src/com/android/systemui/contrast/ContrastDialog.kt +++ b/packages/SystemUI/src/com/android/systemui/contrast/ContrastDialog.kt @@ -86,13 +86,11 @@ class ContrastDialog( highlightContrast(toContrastLevel(initialContrast)) } - override fun onStart() { - super.onStart() + override fun start() { uiModeManager.addContrastChangeListener(mainExecutor, this) } - override fun onStop() { - super.onStop() + override fun stop() { uiModeManager.removeContrastChangeListener(this) } diff --git a/packages/SystemUI/src/com/android/systemui/globalactions/GlobalActionsDialogLite.java b/packages/SystemUI/src/com/android/systemui/globalactions/GlobalActionsDialogLite.java index 07753ca1e6dcb..4be47ecb42d9a 100644 --- a/packages/SystemUI/src/com/android/systemui/globalactions/GlobalActionsDialogLite.java +++ b/packages/SystemUI/src/com/android/systemui/globalactions/GlobalActionsDialogLite.java @@ -2477,8 +2477,7 @@ public class GlobalActionsDialogLite implements DialogInterface.OnDismissListene } @Override - protected void onStart() { - super.onStart(); + protected void start() { mGlobalActionsLayout.updateList(); if (mBackgroundDrawable instanceof ScrimDrawable) { @@ -2509,8 +2508,7 @@ public class GlobalActionsDialogLite implements DialogInterface.OnDismissListene } @Override - protected void onStop() { - super.onStop(); + protected void stop() { mColorExtractor.removeOnColorsChangedListener(this); } diff --git a/packages/SystemUI/src/com/android/systemui/media/dialog/MediaOutputBaseDialog.java b/packages/SystemUI/src/com/android/systemui/media/dialog/MediaOutputBaseDialog.java index 9606bcf3fd9b2..08e47a09bab91 100644 --- a/packages/SystemUI/src/com/android/systemui/media/dialog/MediaOutputBaseDialog.java +++ b/packages/SystemUI/src/com/android/systemui/media/dialog/MediaOutputBaseDialog.java @@ -273,8 +273,7 @@ public abstract class MediaOutputBaseDialog extends SystemUIDialog implements } @Override - public void onStart() { - super.onStart(); + public void start() { mMediaOutputController.start(this); if (isBroadcastSupported() && !mIsLeBroadcastCallbackRegistered) { mMediaOutputController.registerLeBroadcastServiceCallback(mExecutor, @@ -284,8 +283,7 @@ public abstract class MediaOutputBaseDialog extends SystemUIDialog implements } @Override - public void onStop() { - super.onStop(); + public void stop() { if (isBroadcastSupported() && mIsLeBroadcastCallbackRegistered) { mMediaOutputController.unregisterLeBroadcastServiceCallback(mBroadcastCallback); mIsLeBroadcastCallbackRegistered = false; diff --git a/packages/SystemUI/src/com/android/systemui/media/dialog/MediaOutputBroadcastDialog.java b/packages/SystemUI/src/com/android/systemui/media/dialog/MediaOutputBroadcastDialog.java index f0ff1409faf1c..abf0932c8407c 100644 --- a/packages/SystemUI/src/com/android/systemui/media/dialog/MediaOutputBroadcastDialog.java +++ b/packages/SystemUI/src/com/android/systemui/media/dialog/MediaOutputBroadcastDialog.java @@ -212,8 +212,8 @@ public class MediaOutputBroadcastDialog extends MediaOutputBaseDialog { } @Override - public void onStart() { - super.onStart(); + public void start() { + super.start(); if (!mIsLeBroadcastAssistantCallbackRegistered) { mIsLeBroadcastAssistantCallbackRegistered = true; mMediaOutputController.registerLeBroadcastAssistantServiceCallback(mExecutor, @@ -223,8 +223,8 @@ public class MediaOutputBroadcastDialog extends MediaOutputBaseDialog { } @Override - public void onStop() { - super.onStop(); + public void stop() { + super.stop(); if (mIsLeBroadcastAssistantCallbackRegistered) { mIsLeBroadcastAssistantCallbackRegistered = false; mMediaOutputController.unregisterLeBroadcastAssistantServiceCallback( diff --git a/packages/SystemUI/src/com/android/systemui/privacy/PrivacyDialog.kt b/packages/SystemUI/src/com/android/systemui/privacy/PrivacyDialog.kt index 03145a7142890..35a7cf1bf4028 100644 --- a/packages/SystemUI/src/com/android/systemui/privacy/PrivacyDialog.kt +++ b/packages/SystemUI/src/com/android/systemui/privacy/PrivacyDialog.kt @@ -90,8 +90,7 @@ class PrivacyDialog( } } - override fun onStop() { - super.onStop() + override fun stop() { dismissed.set(true) val iterator = dismissListeners.iterator() while (iterator.hasNext()) { diff --git a/packages/SystemUI/src/com/android/systemui/qs/tiles/dialog/InternetDialog.java b/packages/SystemUI/src/com/android/systemui/qs/tiles/dialog/InternetDialog.java index 039dafb805222..380b85cb5504b 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/tiles/dialog/InternetDialog.java +++ b/packages/SystemUI/src/com/android/systemui/qs/tiles/dialog/InternetDialog.java @@ -259,8 +259,7 @@ public class InternetDialog extends SystemUIDialog implements } @Override - public void onStart() { - super.onStart(); + public void start() { if (DEBUG) { Log.d(TAG, "onStart"); } @@ -280,8 +279,7 @@ public class InternetDialog extends SystemUIDialog implements } @Override - public void onStop() { - super.onStop(); + public void stop() { if (DEBUG) { Log.d(TAG, "onStop"); } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/SystemUIDialog.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/SystemUIDialog.java index 2027305fdb991..bb223650faccf 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/SystemUIDialog.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/SystemUIDialog.java @@ -191,7 +191,7 @@ public class SystemUIDialog extends AlertDialog implements ViewRootImpl.ConfigCh } @Override - protected void onStart() { + protected final void onStart() { super.onStart(); if (mDismissReceiver != null) { @@ -204,10 +204,18 @@ public class SystemUIDialog extends AlertDialog implements ViewRootImpl.ConfigCh mDialogManager.setShowing(this, true); mSysUiState.setFlag(QuickStepContract.SYSUI_STATE_DIALOG_SHOWING, true) .commitUpdate(mContext.getDisplayId()); + + start(); } + /** + * Called when {@link #onStart} is called. Subclasses wishing to override {@link #onStart()} + * should override this method instead. + */ + protected void start() {} + @Override - protected void onStop() { + protected final void onStop() { super.onStop(); if (mDismissReceiver != null) { @@ -218,8 +226,16 @@ public class SystemUIDialog extends AlertDialog implements ViewRootImpl.ConfigCh mDialogManager.setShowing(this, false); mSysUiState.setFlag(QuickStepContract.SYSUI_STATE_DIALOG_SHOWING, false) .commitUpdate(mContext.getDisplayId()); + + stop(); } + /** + * Called when {@link #onStop} is called. Subclasses wishing to override {@link #onStop()} + * should override this method instead. + */ + protected void stop() {} + public void setShowForAllUsers(boolean show) { setShowForAllUsers(this, show); } diff --git a/packages/SystemUI/src/com/android/systemui/volume/CsdWarningDialog.java b/packages/SystemUI/src/com/android/systemui/volume/CsdWarningDialog.java index e3ed2b405fb00..db7fa14b4cffb 100644 --- a/packages/SystemUI/src/com/android/systemui/volume/CsdWarningDialog.java +++ b/packages/SystemUI/src/com/android/systemui/volume/CsdWarningDialog.java @@ -186,8 +186,7 @@ public class CsdWarningDialog extends SystemUIDialog } @Override - protected void onStart() { - super.onStart(); + protected void start() { mShowTime = System.currentTimeMillis(); synchronized (mTimerLock) { if (mNoUserActionRunnable != null) { @@ -198,7 +197,7 @@ public class CsdWarningDialog extends SystemUIDialog } @Override - protected void onStop() { + protected void stop() { synchronized (mTimerLock) { if (mCancelScheduledNoUserActionRunnable != null) { mCancelScheduledNoUserActionRunnable.run(); diff --git a/packages/SystemUI/src/com/android/systemui/volume/SafetyWarningDialog.java b/packages/SystemUI/src/com/android/systemui/volume/SafetyWarningDialog.java index 5b188b24d7ddb..d42b964d593b5 100644 --- a/packages/SystemUI/src/com/android/systemui/volume/SafetyWarningDialog.java +++ b/packages/SystemUI/src/com/android/systemui/volume/SafetyWarningDialog.java @@ -95,8 +95,7 @@ abstract public class SafetyWarningDialog extends SystemUIDialog } @Override - protected void onStart() { - super.onStart(); + protected void start() { mShowTime = System.currentTimeMillis(); } diff --git a/packages/SystemUI/src/com/android/systemui/volume/VolumePanelDialog.java b/packages/SystemUI/src/com/android/systemui/volume/VolumePanelDialog.java index 87a167baf9bf7..96936e3eb5f04 100644 --- a/packages/SystemUI/src/com/android/systemui/volume/VolumePanelDialog.java +++ b/packages/SystemUI/src/com/android/systemui/volume/VolumePanelDialog.java @@ -196,16 +196,14 @@ public class VolumePanelDialog extends SystemUIDialog implements LifecycleOwner } @Override - protected void onStart() { - super.onStart(); + protected void start() { Log.d(TAG, "onStart"); mLifecycleRegistry.setCurrentState(Lifecycle.State.STARTED); mLifecycleRegistry.setCurrentState(Lifecycle.State.RESUMED); } @Override - protected void onStop() { - super.onStop(); + protected void stop() { Log.d(TAG, "onStop"); mLifecycleRegistry.setCurrentState(Lifecycle.State.DESTROYED); } diff --git a/packages/SystemUI/tests/src/com/android/systemui/media/dialog/MediaOutputBaseDialogTest.java b/packages/SystemUI/tests/src/com/android/systemui/media/dialog/MediaOutputBaseDialogTest.java index 9a0bd9e4b0df2..f206409a071e0 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/media/dialog/MediaOutputBaseDialogTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/media/dialog/MediaOutputBaseDialogTest.java @@ -255,10 +255,10 @@ public class MediaOutputBaseDialogTest extends SysuiTestCase { mLocalBluetoothLeBroadcast); mIsBroadcasting = true; - mMediaOutputBaseDialogImpl.onStart(); + mMediaOutputBaseDialogImpl.start(); verify(mLocalBluetoothLeBroadcast).registerServiceCallBack(any(), any()); - mMediaOutputBaseDialogImpl.onStop(); + mMediaOutputBaseDialogImpl.stop(); verify(mLocalBluetoothLeBroadcast).unregisterServiceCallBack(any()); } @@ -269,8 +269,8 @@ public class MediaOutputBaseDialogTest extends SysuiTestCase { mLocalBluetoothLeBroadcast); mIsBroadcasting = false; - mMediaOutputBaseDialogImpl.onStart(); - mMediaOutputBaseDialogImpl.onStop(); + mMediaOutputBaseDialogImpl.start(); + mMediaOutputBaseDialogImpl.stop(); verify(mLocalBluetoothLeBroadcast, never()).registerServiceCallBack(any(), any()); verify(mLocalBluetoothLeBroadcast, never()).unregisterServiceCallBack(any()); diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/SystemUIDialogTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/SystemUIDialogTest.java index 6c0f6c2f65a5c..07ffd112300b6 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/SystemUIDialogTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/SystemUIDialogTest.java @@ -14,6 +14,8 @@ package com.android.systemui.statusbar.phone; +import static com.google.common.truth.Truth.assertThat; + import static junit.framework.Assert.assertFalse; import static junit.framework.Assert.assertTrue; @@ -44,6 +46,8 @@ import org.mockito.ArgumentCaptor; import org.mockito.Mock; import org.mockito.MockitoAnnotations; +import java.util.concurrent.atomic.AtomicBoolean; + @RunWith(AndroidTestingRunner.class) @RunWithLooper @SmallTest @@ -109,4 +113,31 @@ public class SystemUIDialogTest extends SysuiTestCase { dialog.dismiss(); assertFalse(dialog.isShowing()); } + + @Test public void startAndStopAreCalled() { + AtomicBoolean calledStart = new AtomicBoolean(false); + AtomicBoolean calledStop = new AtomicBoolean(false); + SystemUIDialog dialog = new SystemUIDialog(mContext) { + @Override + protected void start() { + calledStart.set(true); + } + + @Override + protected void stop() { + calledStop.set(true); + } + }; + + assertThat(calledStart.get()).isFalse(); + assertThat(calledStop.get()).isFalse(); + + dialog.show(); + assertThat(calledStart.get()).isTrue(); + assertThat(calledStop.get()).isFalse(); + + dialog.dismiss(); + assertThat(calledStart.get()).isTrue(); + assertThat(calledStop.get()).isTrue(); + } }