[Output Switcher] Decouple selection behavior code

Bug: 269703576
Test: atest MediaOutputAdapterTest MediaOutputControllerTest MediaOutputBaseDialogTest MediaOutputDialogTest
Change-Id: I0e57a2fb3a61079a1ffc7f52e914ac100dabdab1
This commit is contained in:
shaoweishen
2023-02-21 13:38:43 +00:00
parent d4f3eb5eeb
commit 134521d11a
3 changed files with 20 additions and 7 deletions

View File

@@ -33,7 +33,6 @@ import static android.media.MediaRoute2Info.TYPE_WIRED_HEADSET;
import static android.media.RouteListingPreference.Item.FLAG_ONGOING_SESSION;
import static android.media.RouteListingPreference.Item.FLAG_ONGOING_SESSION_MANAGED;
import static android.media.RouteListingPreference.Item.FLAG_SUGGESTED;
import static android.media.RouteListingPreference.Item.SELECTION_BEHAVIOR_TRANSFER;
import static android.media.RouteListingPreference.Item.SUBTEXT_AD_ROUTING_DISALLOWED;
import static android.media.RouteListingPreference.Item.SUBTEXT_CUSTOM;
import static android.media.RouteListingPreference.Item.SUBTEXT_DEVICE_LOW_POWER;
@@ -45,6 +44,7 @@ import static android.media.RouteListingPreference.Item.SUBTEXT_TRACK_UNSUPPORTE
import static android.media.RouteListingPreference.Item.SUBTEXT_UNAUTHORIZED;
import static com.android.settingslib.media.LocalMediaManager.MediaDeviceState.STATE_SELECTED;
import static com.android.settingslib.media.MediaDevice.SelectionBehavior.SELECTION_BEHAVIOR_TRANSFER;
import android.annotation.SuppressLint;
import android.content.Context;
@@ -95,6 +95,17 @@ public abstract class MediaDevice implements Comparable<MediaDevice> {
int TYPE_CAST_GROUP_DEVICE = 7;
}
@Retention(RetentionPolicy.SOURCE)
@IntDef({SelectionBehavior.SELECTION_BEHAVIOR_NONE,
SELECTION_BEHAVIOR_TRANSFER,
SelectionBehavior.SELECTION_BEHAVIOR_GO_TO_APP
})
public @interface SelectionBehavior {
int SELECTION_BEHAVIOR_NONE = 0;
int SELECTION_BEHAVIOR_TRANSFER = 1;
int SELECTION_BEHAVIOR_GO_TO_APP = 2;
}
@VisibleForTesting
int mType;
@@ -213,7 +224,7 @@ public abstract class MediaDevice implements Comparable<MediaDevice> {
*
* @return selection behavior of device
*/
@RouteListingPreference.Item.SubText
@SelectionBehavior
public int getSelectionBehavior() {
return Build.VERSION.SDK_INT >= Build.VERSION_CODES.UPSIDE_DOWN_CAKE && mItem != null
? mItem.getSelectionBehavior() : SELECTION_BEHAVIOR_TRANSFER;

View File

@@ -16,13 +16,14 @@
package com.android.systemui.media.dialog;
import static android.media.RouteListingPreference.Item.SELECTION_BEHAVIOR_GO_TO_APP;
import static android.media.RouteListingPreference.Item.SELECTION_BEHAVIOR_NONE;
import static android.media.RouteListingPreference.Item.SELECTION_BEHAVIOR_TRANSFER;
import static android.media.RouteListingPreference.Item.SUBTEXT_AD_ROUTING_DISALLOWED;
import static android.media.RouteListingPreference.Item.SUBTEXT_DOWNLOADED_CONTENT_ROUTING_DISALLOWED;
import static android.media.RouteListingPreference.Item.SUBTEXT_SUBSCRIPTION_REQUIRED;
import static com.android.settingslib.media.MediaDevice.SelectionBehavior.SELECTION_BEHAVIOR_GO_TO_APP;
import static com.android.settingslib.media.MediaDevice.SelectionBehavior.SELECTION_BEHAVIOR_NONE;
import static com.android.settingslib.media.MediaDevice.SelectionBehavior.SELECTION_BEHAVIOR_TRANSFER;
import android.content.Context;
import android.content.res.ColorStateList;
import android.graphics.PorterDuff;

View File

@@ -16,12 +16,13 @@
package com.android.systemui.media.dialog;
import static android.media.RouteListingPreference.Item.SELECTION_BEHAVIOR_GO_TO_APP;
import static android.media.RouteListingPreference.Item.SELECTION_BEHAVIOR_NONE;
import static android.media.RouteListingPreference.Item.SUBTEXT_AD_ROUTING_DISALLOWED;
import static android.media.RouteListingPreference.Item.SUBTEXT_CUSTOM;
import static android.media.RouteListingPreference.Item.SUBTEXT_SUBSCRIPTION_REQUIRED;
import static com.android.settingslib.media.MediaDevice.SelectionBehavior.SELECTION_BEHAVIOR_GO_TO_APP;
import static com.android.settingslib.media.MediaDevice.SelectionBehavior.SELECTION_BEHAVIOR_NONE;
import static com.google.common.truth.Truth.assertThat;
import static org.mockito.Mockito.mock;