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

Commit 3cf3aa44 authored by Alexandr Shabalin's avatar Alexandr Shabalin Committed by Android (Google) Code Review
Browse files

Merge "Fix the stream expansion and routing listing preference accessibility." into main

parents 372ae47e fa45d178
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -759,7 +759,7 @@ public class MediaOutputAdapterLegacyTest extends SysuiTestCase {
                .onCreateViewHolder(new LinearLayout(mContext), 0);
        mMediaOutputAdapter.onBindViewHolder(mViewHolder, 1);

        mViewHolder.mEndTouchArea.performClick();
        mViewHolder.mCheckBox.performClick();

        verify(mMediaSwitchingController).addDeviceToPlayMedia(mMediaDevice2);
    }
@@ -903,7 +903,7 @@ public class MediaOutputAdapterLegacyTest extends SysuiTestCase {
                .onCreateViewHolder(new LinearLayout(mContext), 0);
        mMediaOutputAdapter.onBindViewHolder(mViewHolder, 0);

        mViewHolder.mEndTouchArea.performClick();
        mViewHolder.mCheckBox.performClick();

        verify(mMediaSwitchingController).removeDeviceFromPlayMedia(mMediaDevice1);
    }
@@ -1059,7 +1059,7 @@ public class MediaOutputAdapterLegacyTest extends SysuiTestCase {
                        new LinearLayout(mContext), MediaItem.MediaItemType.TYPE_DEVICE);
        mMediaOutputAdapter.onBindViewHolder(mViewHolder, 0);

        mViewHolder.mEndTouchArea.performClick();
        mViewHolder.mEndClickIcon.performClick();
        mViewHolder = (MediaOutputAdapterLegacy.MediaDeviceViewHolderLegacy) mMediaOutputAdapter
                .onCreateViewHolder(
                        new LinearLayout(mContext), MediaItem.MediaItemType.TYPE_DEVICE);
@@ -1082,7 +1082,7 @@ public class MediaOutputAdapterLegacyTest extends SysuiTestCase {
                        new LinearLayout(mContext), MediaItem.MediaItemType.TYPE_DEVICE);
        mMediaOutputAdapter.onBindViewHolder(mViewHolder, 0);

        mViewHolder.mEndTouchArea.performClick();
        mViewHolder.mEndClickIcon.performClick();
        mViewHolder = (MediaOutputAdapterLegacy.MediaDeviceViewHolderLegacy) mMediaOutputAdapter
                .onCreateViewHolder(
                        new LinearLayout(mContext), MediaItem.MediaItemType.TYPE_DEVICE);
+2 −2
Original line number Diff line number Diff line
@@ -20,14 +20,14 @@
    android:id="@+id/device_container"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginStart="@dimen/media_output_dialog_margin_horizontal"
    android:layout_marginEnd="56dp"
    android:orientation="vertical">
    <TextView
        android:id="@+id/title"
        android:layout_width="wrap_content"
        android:layout_height="36dp"
        android:layout_gravity="center_vertical|start"
        android:layout_marginStart="@dimen/media_output_dialog_margin_horizontal"
        android:layout_marginEnd="56dp"
        android:ellipsize="end"
        android:maxLines="1"
        android:fontFamily="@*android:string/config_headlineFontFamilyMedium"
+12 −20
Original line number Diff line number Diff line
@@ -20,7 +20,7 @@
    android:id="@+id/device_container"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:paddingHorizontal="@dimen/media_output_dialog_margin_horizontal"
    android:layout_marginHorizontal="@dimen/media_output_dialog_margin_horizontal"
    android:focusable="true"
    android:baselineAligned="false">
    <FrameLayout
@@ -127,7 +127,6 @@
            android:layout_width="24dp"
            android:layout_height="24dp"
            android:layout_marginEnd="16dp"
            android:indeterminate="true"
            android:layout_gravity="end|center"
            android:indeterminateOnly="true"
            android:importantForAccessibility="no"
@@ -138,30 +137,23 @@
        android:layout_width="@dimen/media_output_dialog_item_height"
        android:layout_height="@dimen/media_output_dialog_item_height"
        android:visibility="gone"
        android:layout_marginBottom="6dp"
        android:layout_marginStart="7dp"
        android:layout_gravity="end|center"
        android:gravity="center"
        android:background="@drawable/media_output_item_background_active">
        <CheckBox
            android:id="@+id/check_box"
            android:focusable="false"
            android:importantForAccessibility="no"
            android:layout_gravity="center"
            android:layout_width="24dp"
            android:layout_height="24dp"
            android:button="@drawable/media_output_item_check_box"
            android:foreground="@drawable/media_output_item_check_box"
            android:foregroundGravity="center"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:button="@null"
            android:visibility="gone"
            />
        <ImageView
            android:id="@+id/media_output_item_end_click_icon"
            android:layout_width="24dp"
            android:layout_height="24dp"
            android:focusable="false"
            android:importantForAccessibility="no"
            android:layout_gravity="center"
            android:indeterminate="true"
            android:indeterminateOnly="true"
        <ImageButton
            android:id="@+id/end_area_image_button"
            android:background="@android:color/transparent"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:contentDescription="@null"
            android:visibility="gone"/>
    </FrameLayout>
</LinearLayout>
 No newline at end of file
+6 −0
Original line number Diff line number Diff line
@@ -592,6 +592,12 @@
    <!-- Content description of the button to expand the group of devices. [CHAR LIMIT=NONE] -->
    <string name="accessibility_expand_group">Expand group.</string>

    <!-- Content description of the button to add a device to a group. [CHAR LIMIT=NONE] -->
    <string name="accessibility_add_device_to_group">Add device to group.</string>

    <!-- Content description of the button to remove a device from a group. [CHAR LIMIT=NONE] -->
    <string name="accessibility_remove_device_from_group">Remove device from group.</string>

    <!-- Content description of the button to open the application . [CHAR LIMIT=NONE] -->
    <string name="accessibility_open_application">Open application.</string>

+8 −16
Original line number Diff line number Diff line
@@ -36,6 +36,7 @@ import android.view.ViewGroup;
import android.view.animation.LinearInterpolator;
import android.widget.CheckBox;
import android.widget.FrameLayout;
import android.widget.ImageButton;
import android.widget.ImageView;
import android.widget.ProgressBar;
import android.widget.SeekBar;
@@ -44,7 +45,6 @@ import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.annotation.VisibleForTesting;
import androidx.core.widget.CompoundButtonCompat;
import androidx.recyclerview.widget.RecyclerView;

import com.android.media.flags.Flags;
@@ -139,7 +139,7 @@ public class MediaOutputAdapterLegacy extends MediaOutputAdapterBase {
        final ImageView mStatusIcon;
        final CheckBox mCheckBox;
        final ViewGroup mEndTouchArea;
        final ImageView mEndClickIcon;
        final ImageButton mEndClickIcon;
        @VisibleForTesting
        MediaOutputSeekbar mSeekBar;
        private final float mInactiveRadius;
@@ -162,7 +162,7 @@ public class MediaOutputAdapterLegacy extends MediaOutputAdapterBase {
            mStatusIcon = view.requireViewById(R.id.media_output_item_status);
            mCheckBox = view.requireViewById(R.id.check_box);
            mEndTouchArea = view.requireViewById(R.id.end_action_area);
            mEndClickIcon = view.requireViewById(R.id.media_output_item_end_click_icon);
            mEndClickIcon = view.requireViewById(R.id.end_area_image_button);
            mVolumeValueText = view.requireViewById(R.id.volume_value);
            mIconAreaLayout = view.requireViewById(R.id.icon_area);
            mInactiveRadius = mContext.getResources().getDimension(
@@ -180,7 +180,6 @@ public class MediaOutputAdapterLegacy extends MediaOutputAdapterBase {
            mStatusIcon.setVisibility(View.GONE);
            mEndTouchArea.setVisibility(View.GONE);
            mEndClickIcon.setVisibility(View.GONE);
            mEndTouchArea.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_NO);
            mContainerLayout.setOnClickListener(null);
            mTitleText.setTextColor(mController.getColorItemContent());
            mSubTitleText.setTextColor(mController.getColorItemContent());
@@ -581,26 +580,22 @@ public class MediaOutputAdapterLegacy extends MediaOutputAdapterBase {
            mEndClickIcon.setImageTintList(
                    ColorStateList.valueOf(mController.getColorItemContent()));
            mEndClickIcon.setOnClickListener(clickListener);
            mEndTouchArea.setOnClickListener(v -> mEndClickIcon.performClick());
            Drawable drawable = mContext.getDrawable(iconDrawableId);
            mEndClickIcon.setImageDrawable(drawable);
            if (drawable instanceof AnimatedVectorDrawable) {
                ((AnimatedVectorDrawable) drawable).start();
            }
            if (Flags.enableOutputSwitcherDeviceGrouping()) {
            mEndClickIcon.setContentDescription(mContext.getString(accessibilityStringId));
        }
        }

        private void updateEndAreaForGroupCheckBox(@NonNull MediaDevice device,
                @NonNull GroupStatus groupStatus) {
            boolean isEnabled = isGroupCheckboxEnabled(groupStatus);
            mEndTouchArea.setOnClickListener(
                    isEnabled ? (v) -> mCheckBox.performClick() : null);
            mEndTouchArea.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_YES);
            updateEndAreaColor(groupStatus.selected() ? mController.getColorSeekbarProgress()
                    : mController.getColorItemBackground());
            mEndTouchArea.setContentDescription(getDeviceItemContentDescription(device));
            mCheckBox.setContentDescription(mContext.getString(
                    groupStatus.selected() ? R.string.accessibility_remove_device_from_group
                            : R.string.accessibility_add_device_to_group));
            mCheckBox.setOnCheckedChangeListener(null);
            mCheckBox.setChecked(groupStatus.selected());
            mCheckBox.setOnCheckedChangeListener(
@@ -611,10 +606,7 @@ public class MediaOutputAdapterLegacy extends MediaOutputAdapterBase {
        }

        private void setCheckBoxColor(CheckBox checkBox, int color) {
            int[][] states = {{android.R.attr.state_checked}, {}};
            int[] colors = {color, color};
            CompoundButtonCompat.setButtonTintList(checkBox, new
                    ColorStateList(states, colors));
            checkBox.setForegroundTintList(ColorStateList.valueOf(color));
        }

        private boolean shouldShowGroupCheckbox(@NonNull GroupStatus groupStatus) {