Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 4b629b79 authored by Shaowei Shen's avatar Shaowei Shen Committed by Android (Google) Code Review
Browse files

Merge "Expand user control over the output switcher"

parents 14e41257 c1738b00
Loading
Loading
Loading
Loading
+16 −14
Original line number Diff line number Diff line
@@ -24560,8 +24560,8 @@ package android.media {
  public final class RouteListingPreference implements android.os.Parcelable {
    method public int describeContents();
    method @Nullable public android.content.ComponentName getInAppOnlyItemRoutingReceiver();
    method @NonNull public java.util.List<android.media.RouteListingPreference.Item> getItems();
    method @Nullable public android.content.ComponentName getLinkedItemComponentName();
    method public boolean getUseSystemOrdering();
    method public void writeToParcel(@NonNull android.os.Parcel, int);
    field public static final String ACTION_TRANSFER_MEDIA = "android.media.action.TRANSFER_MEDIA";
@@ -24572,37 +24572,39 @@ package android.media {
  public static final class RouteListingPreference.Builder {
    ctor public RouteListingPreference.Builder();
    method @NonNull public android.media.RouteListingPreference build();
    method @NonNull public android.media.RouteListingPreference.Builder setInAppOnlyItemRoutingReceiver(@Nullable android.content.ComponentName);
    method @NonNull public android.media.RouteListingPreference.Builder setItems(@NonNull java.util.List<android.media.RouteListingPreference.Item>);
    method @NonNull public android.media.RouteListingPreference.Builder setLinkedItemComponentName(@Nullable android.content.ComponentName);
    method @NonNull public android.media.RouteListingPreference.Builder setUseSystemOrdering(boolean);
  }
  public static final class RouteListingPreference.Item implements android.os.Parcelable {
    method public int describeContents();
    method @Nullable public CharSequence getCustomDisableReasonMessage();
    method public int getDisableReason();
    method @Nullable public CharSequence getCustomSubtextMessage();
    method public int getFlags();
    method @NonNull public String getRouteId();
    method public int getSessionParticipantCount();
    method public int getSelectionBehavior();
    method public int getSubText();
    method public void writeToParcel(@NonNull android.os.Parcel, int);
    field @NonNull public static final android.os.Parcelable.Creator<android.media.RouteListingPreference.Item> CREATOR;
    field public static final int DISABLE_REASON_AD = 3; // 0x3
    field public static final int DISABLE_REASON_CUSTOM = 5; // 0x5
    field public static final int DISABLE_REASON_DOWNLOADED_CONTENT = 2; // 0x2
    field public static final int DISABLE_REASON_IN_APP_ONLY = 4; // 0x4
    field public static final int DISABLE_REASON_NONE = 0; // 0x0
    field public static final int DISABLE_REASON_SUBSCRIPTION_REQUIRED = 1; // 0x1
    field public static final int FLAG_ONGOING_SESSION = 1; // 0x1
    field public static final int FLAG_SUGGESTED_ROUTE = 2; // 0x2
    field public static final int SELECTION_BEHAVIOR_GO_TO_APP = 2; // 0x2
    field public static final int SELECTION_BEHAVIOR_NONE = 0; // 0x0
    field public static final int SELECTION_BEHAVIOR_TRANSFER = 1; // 0x1
    field public static final int SUBTEXT_AD_ROUTING_DISALLOWED = 3; // 0x3
    field public static final int SUBTEXT_CUSTOM = 10000; // 0x2710
    field public static final int SUBTEXT_DOWNLOADED_CONTENT_ROUTING_DISALLOWED = 2; // 0x2
    field public static final int SUBTEXT_NONE = 0; // 0x0
    field public static final int SUBTEXT_SUBSCRIPTION_REQUIRED = 1; // 0x1
  }
  public static final class RouteListingPreference.Item.Builder {
    ctor public RouteListingPreference.Item.Builder(@NonNull String);
    method @NonNull public android.media.RouteListingPreference.Item build();
    method @NonNull public android.media.RouteListingPreference.Item.Builder setCustomDisableReasonMessage(@Nullable CharSequence);
    method @NonNull public android.media.RouteListingPreference.Item.Builder setDisableReason(int);
    method @NonNull public android.media.RouteListingPreference.Item.Builder setCustomSubtextMessage(@Nullable CharSequence);
    method @NonNull public android.media.RouteListingPreference.Item.Builder setFlags(int);
    method @NonNull public android.media.RouteListingPreference.Item.Builder setSessionParticipantCount(@IntRange(from=0) int);
    method @NonNull public android.media.RouteListingPreference.Item.Builder setSelectionBehavior(int);
    method @NonNull public android.media.RouteListingPreference.Item.Builder setSubText(int);
  }
  public final class RoutingSessionInfo implements android.os.Parcelable {
+162 −136

File changed.

Preview size limit exceeded, changes collapsed.

+7 −5
Original line number Diff line number Diff line
@@ -30,8 +30,8 @@ import static android.media.MediaRoute2Info.TYPE_USB_DEVICE;
import static android.media.MediaRoute2Info.TYPE_USB_HEADSET;
import static android.media.MediaRoute2Info.TYPE_WIRED_HEADPHONES;
import static android.media.MediaRoute2Info.TYPE_WIRED_HEADSET;
import static android.media.RouteListingPreference.Item.DISABLE_REASON_NONE;
import static android.media.RouteListingPreference.Item.FLAG_SUGGESTED_ROUTE;
import static android.media.RouteListingPreference.Item.SUBTEXT_NONE;

import static com.android.settingslib.media.LocalMediaManager.MediaDeviceState.STATE_SELECTED;

@@ -198,10 +198,11 @@ public abstract class MediaDevice implements Comparable<MediaDevice> {
     *
     * @return disabled reason of device
     */
    @RouteListingPreference.Item.DisableReason
    @RouteListingPreference.Item.SubText
    public int getDisableReason() {
        return Build.VERSION.SDK_INT >= Build.VERSION_CODES.UPSIDE_DOWN_CAKE && mItem != null
                ? mItem.getDisableReason() : -1;
                ? mItem.getSubText()
                : -1;
    }

    /**
@@ -210,8 +211,9 @@ public abstract class MediaDevice implements Comparable<MediaDevice> {
     * @return true if device has disabled reason
     */
    public boolean hasDisabledReason() {
        return Build.VERSION.SDK_INT >= Build.VERSION_CODES.UPSIDE_DOWN_CAKE && mItem != null
                && mItem.getDisableReason() != DISABLE_REASON_NONE;
        return Build.VERSION.SDK_INT >= Build.VERSION_CODES.UPSIDE_DOWN_CAKE
                && mItem != null
                && mItem.getSubText() != SUBTEXT_NONE;
    }

    /**
+4 −4
Original line number Diff line number Diff line
@@ -16,7 +16,7 @@

package com.android.systemui.media.dialog;

import static android.media.RouteListingPreference.Item.DISABLE_REASON_SUBSCRIPTION_REQUIRED;
import static android.media.RouteListingPreference.Item.SUBTEXT_SUBSCRIPTION_REQUIRED;

import android.content.Context;
import android.content.res.ColorStateList;
@@ -411,10 +411,10 @@ public class MediaOutputAdapter extends MediaOutputBaseAdapter {
    @RequiresApi(34)
    private static class Api34Impl {
        @DoNotInline
        static String composeDisabledReason(@RouteListingPreference.Item.DisableReason int reason,
                Context context) {
        static String composeDisabledReason(
                @RouteListingPreference.Item.SubText int reason, Context context) {
            switch(reason) {
                case DISABLE_REASON_SUBSCRIPTION_REQUIRED:
                case SUBTEXT_SUBSCRIPTION_REQUIRED:
                    return context.getString(R.string.media_output_status_require_premium);
            }
            return "";
+2 −2
Original line number Diff line number Diff line
@@ -16,7 +16,7 @@

package com.android.systemui.media.dialog;

import static android.media.RouteListingPreference.Item.DISABLE_REASON_SUBSCRIPTION_REQUIRED;
import static android.media.RouteListingPreference.Item.SUBTEXT_SUBSCRIPTION_REQUIRED;

import static com.google.common.truth.Truth.assertThat;

@@ -436,7 +436,7 @@ public class MediaOutputAdapterTest extends SysuiTestCase {
                R.string.media_output_status_require_premium);
        when(mMediaOutputController.isSubStatusSupported()).thenReturn(true);
        when(mMediaDevice2.hasDisabledReason()).thenReturn(true);
        when(mMediaDevice2.getDisableReason()).thenReturn(DISABLE_REASON_SUBSCRIPTION_REQUIRED);
        when(mMediaDevice2.getDisableReason()).thenReturn(SUBTEXT_SUBSCRIPTION_REQUIRED);
        mMediaOutputAdapter.onBindViewHolder(mViewHolder, 1);

        assertThat(mViewHolder.mTitleText.getVisibility()).isEqualTo(View.GONE);
Loading