Add dismiss timing for Media Output Dialog

-Dismiss dialog when losing window focus
-Dismiss dialog when launch Volume Panel in Volume dialog

Bug: 155822415
Test: atest MediaControlPanelTest
Merged-In: I666550354cef27703d19b736f74c3d58635041ad
Change-Id: I666550354cef27703d19b736f74c3d58635041ad
This commit is contained in:
timhypeng
2020-10-06 14:45:04 +08:00
committed by tim peng
parent 29ae958b76
commit 07e1fa7bcc
2 changed files with 11 additions and 1 deletions

View File

@@ -49,7 +49,7 @@ import com.android.systemui.statusbar.phone.SystemUIDialog;
* Base dialog for media output UI
*/
public abstract class MediaOutputBaseDialog extends SystemUIDialog implements
MediaOutputController.Callback {
MediaOutputController.Callback, Window.Callback {
private static final String TAG = "MediaOutputDialog";
@@ -210,4 +210,12 @@ public abstract class MediaOutputBaseDialog extends SystemUIDialog implements
public void dismissDialog() {
dismiss();
}
@Override
public void onWindowFocusChanged(boolean hasFocus) {
super.onWindowFocusChanged(hasFocus);
if (!hasFocus && isShowing()) {
dismiss();
}
}
}

View File

@@ -88,6 +88,7 @@ import com.android.settingslib.Utils;
import com.android.systemui.Dependency;
import com.android.systemui.Prefs;
import com.android.systemui.R;
import com.android.systemui.media.dialog.MediaOutputDialogFactory;
import com.android.systemui.plugins.ActivityStarter;
import com.android.systemui.plugins.VolumeDialog;
import com.android.systemui.plugins.VolumeDialogController;
@@ -470,6 +471,7 @@ public class VolumeDialogImpl implements VolumeDialog,
Events.writeEvent(Events.EVENT_SETTINGS_CLICK);
Intent intent = new Intent(Settings.Panel.ACTION_VOLUME);
dismissH(DISMISS_REASON_SETTINGS_CLICKED);
Dependency.get(MediaOutputDialogFactory.class).dismiss();
Dependency.get(ActivityStarter.class).startActivity(intent,
true /* dismissShade */);
});