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:
@@ -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;
|
||||
|
Reference in New Issue
Block a user