Update rule of launching media output dialog

-Do not hide Media Output Dialog in Settings, and let dialog handles
-Hide Media output slice panel when launching dialog

Bug: 155822415
Test: make -j50 RunSettingsRoboTests
Merged-In: I16732f625f100b259d6e53c85db40af0ec1652c5
Change-Id: I16732f625f100b259d6e53c85db40af0ec1652c5
This commit is contained in:
timhypeng
2020-10-06 12:12:53 +08:00
committed by tim peng
parent 7127fff467
commit 6472c98ffa
6 changed files with 99 additions and 68 deletions

View File

@@ -59,6 +59,9 @@ public class RemoteMediaSlice implements CustomSliceable {
private static final String TAG = "RemoteMediaSlice";
private static final String MEDIA_ID = "media_id";
private static final String ACTION_LAUNCH_DIALOG = "action_launch_dialog";
private static final String SESSION_INFO = "RoutingSessionInfo";
private static final String CUSTOMIZED_ACTION = "customized_action";
private final Context mContext;
@@ -77,6 +80,20 @@ public class RemoteMediaSlice implements CustomSliceable {
final String id = intent.getStringExtra(MEDIA_ID);
if (!TextUtils.isEmpty(id)) {
getWorker().adjustSessionVolume(id, newPosition);
return;
}
if (TextUtils.equals(ACTION_LAUNCH_DIALOG, intent.getStringExtra(CUSTOMIZED_ACTION))) {
// Launch Media Output Dialog
final RoutingSessionInfo info = intent.getParcelableExtra(SESSION_INFO);
mContext.sendBroadcast(new Intent()
.setPackage(MediaOutputSliceConstants.SYSTEMUI_PACKAGE_NAME)
.setAction(MediaOutputSliceConstants.ACTION_LAUNCH_MEDIA_OUTPUT_DIALOG)
.putExtra(MediaOutputSliceConstants.EXTRA_PACKAGE_NAME,
info.getClientPackageName()));
// Dismiss volume panel
mContext.sendBroadcast(new Intent()
.setPackage(MediaOutputSliceConstants.SETTINGS_PACKAGE_NAME)
.setAction(MediaOutputSliceConstants.ACTION_CLOSE_PANEL));
}
}
@@ -168,19 +185,18 @@ public class RemoteMediaSlice implements CustomSliceable {
private SliceAction getMediaOutputDialogAction(RoutingSessionInfo info,
boolean isMediaOutputDisabled) {
final Intent intent = new Intent()
.setAction(isMediaOutputDisabled
? "" : MediaOutputSliceConstants.ACTION_LAUNCH_MEDIA_OUTPUT_DIALOG)
.setPackage(MediaOutputSliceConstants.SYSTEMUI_PACKAGE_NAME)
.putExtra(MediaOutputSliceConstants.EXTRA_PACKAGE_NAME,
info.getClientPackageName());
final IconCompat icon = IconCompat.createWithResource(mContext,
R.drawable.ic_volume_remote);
final Intent intent = new Intent(getUri().toString())
.setData(getUri())
.setClass(mContext, SliceBroadcastReceiver.class)
.putExtra(CUSTOMIZED_ACTION, isMediaOutputDisabled ? "" : ACTION_LAUNCH_DIALOG)
.putExtra(SESSION_INFO, info)
.addFlags(Intent.FLAG_RECEIVER_FOREGROUND);
final PendingIntent primaryBroadcastIntent = PendingIntent.getBroadcast(mContext,
0 /* requestCode */, intent, 0 /* flags */);
info.hashCode(), intent, PendingIntent.FLAG_UPDATE_CURRENT);
final SliceAction primarySliceAction = SliceAction.createDeeplink(
primaryBroadcastIntent, icon, ListBuilder.ICON_IMAGE,
primaryBroadcastIntent,
IconCompat.createWithResource(mContext, R.drawable.ic_volume_remote),
ListBuilder.ICON_IMAGE,
mContext.getString(R.string.media_output_label_title,
Utils.getApplicationLabel(mContext, info.getClientPackageName())));
return primarySliceAction;