Merge "Merge "Fix cast dialog dismiss on home/recents" into oc-dev am: 5c0f27a24b" into oc-dev-plus-aosp

am: 9af66b3521

Change-Id: Ia8c4aa8371c2cc910194c77b4053a3ac865affcd
This commit is contained in:
Jason Monk
2017-04-24 20:21:20 +00:00
committed by android-build-merger

View File

@@ -16,8 +16,14 @@
package com.android.systemui.qs.tiles;
import android.app.Dialog;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.DialogInterface;
import android.content.DialogInterface.OnDismissListener;
import android.content.Intent;
import android.content.IntentFilter;
import android.os.UserHandle;
import android.provider.Settings;
import android.service.quicksettings.Tile;
import android.support.v7.app.MediaRouteChooserDialog;
@@ -61,6 +67,7 @@ public class CastTile extends QSTileImpl<BooleanState> {
private final KeyguardMonitor mKeyguard;
private final Callback mCallback = new Callback();
private final ActivityStarter mActivityStarter;
private Dialog mDialog;
public CastTile(QSHost host) {
super(host);
@@ -128,9 +135,7 @@ public class CastTile extends QSTileImpl<BooleanState> {
Context context = new ContextThemeWrapper(mContext,
R.style.Theme_AppCompat_Light_Dialog_Alert);
if (mState.value) {
MediaRouteControllerDialog dialog = new MediaRouteControllerDialog(context);
dialog.getWindow().setType(WindowManager.LayoutParams.TYPE_STATUS_BAR_PANEL);
dialog.show();
mDialog = new MediaRouteControllerDialog(context);
} else {
// Instead of showing detail, show standard media routing UI.
MediaRouteChooserDialog dialog = new MediaRouteChooserDialog(context);
@@ -138,13 +143,21 @@ public class CastTile extends QSTileImpl<BooleanState> {
.addControlCategory(MediaControlIntent.CATEGORY_LIVE_VIDEO)
.build();
dialog.setRouteSelector(selector);
dialog.getWindow().setType(WindowManager.LayoutParams.TYPE_STATUS_BAR_PANEL);
dialog.show();
mDialog = dialog;
}
mDialog.getWindow().setType(WindowManager.LayoutParams.TYPE_STATUS_BAR_PANEL);
mDialog.show();
registerReceiver();
mHost.collapsePanels();
});
}
private void registerReceiver() {
mContext.registerReceiverAsUser(mReceiver, UserHandle.CURRENT,
new IntentFilter(Intent.ACTION_CLOSE_SYSTEM_DIALOGS), null, null);
mDialog.setOnDismissListener(dialog -> mContext.unregisterReceiver(mReceiver));
}
@Override
public CharSequence getTileLabel() {
return mContext.getString(R.string.quick_settings_cast_title);
@@ -210,6 +223,15 @@ public class CastTile extends QSTileImpl<BooleanState> {
}
};
private final BroadcastReceiver mReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
if (mDialog != null) {
mDialog.dismiss();
}
}
};
private final class CastDetailAdapter implements DetailAdapter, QSDetailItems.Callback {
private final LinkedHashMap<String, CastDevice> mVisibleOrder = new LinkedHashMap<>();