Unregister BroadcastReceiver of SystemUIDialog when it is dismissed

Symptom:
The number of registered BroadcastReceiver increases each time
SystemUIDialog is shown.
This is a leak of BroadcastReceiver.

Root cause:
SystemUIDialog#registerDismissListener(Dialog dialog) registers
a BroadcastReceiver.
But it never unregisters the BroadcastReceiver.
It had been unregistered when the dialog was dismissed previously.
But the unregistration process seems to have been erased by mistake
at refactoring.

Solution:
The unregistration process is added to registerDismissListener() again.
It sets the dialog's OnDismissListener to unregister the
BroadcastReceiver when the dialog is dismissed.

And, SystemUIDialog unregisters the BroadcastReceiver without using
registerDismissListener() to make its setOnDismissListener() available
to clients.

Bug: 134916873
Test: atest packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/SystemUIDialogTest.java
Change-Id: Ic41ac46997362ce585819e660c398b47e6685eaf
2 files changed