Merge "[Output Switcher] UI polish and A11y bug fix" into udc-dev
This commit is contained in:
@@ -18,8 +18,8 @@
|
||||
<item android:id="@android:id/background">
|
||||
<shape>
|
||||
<corners
|
||||
android:bottomRightRadius="28dp"
|
||||
android:topRightRadius="28dp"
|
||||
android:bottomRightRadius="@dimen/media_output_dialog_active_background_radius"
|
||||
android:topRightRadius="@dimen/media_output_dialog_active_background_radius"
|
||||
/>
|
||||
<solid android:color="@android:color/transparent" />
|
||||
<size
|
||||
|
||||
@@ -17,6 +17,6 @@
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:shape="rectangle">
|
||||
<corners
|
||||
android:radius="28dp"/>
|
||||
android:radius="@dimen/media_output_dialog_active_background_radius"/>
|
||||
<solid android:color="@color/media_dialog_item_background" />
|
||||
</shape>
|
||||
@@ -50,12 +50,16 @@
|
||||
android:id="@+id/icon_area"
|
||||
android:layout_width="64dp"
|
||||
android:layout_height="64dp"
|
||||
android:focusable="false"
|
||||
android:importantForAccessibility="no"
|
||||
android:background="@drawable/media_output_title_icon_area"
|
||||
android:layout_gravity="center_vertical|start">
|
||||
<ImageView
|
||||
android:id="@+id/title_icon"
|
||||
android:layout_width="24dp"
|
||||
android:layout_height="24dp"
|
||||
android:focusable="false"
|
||||
android:importantForAccessibility="no"
|
||||
android:animateLayoutChanges="true"
|
||||
android:layout_gravity="center"/>
|
||||
<TextView
|
||||
|
||||
@@ -1319,7 +1319,7 @@
|
||||
<dimen name="media_output_dialog_title_anim_y_delta">12.5dp</dimen>
|
||||
<dimen name="media_output_dialog_app_tier_icon_size">20dp</dimen>
|
||||
<dimen name="media_output_dialog_background_radius">16dp</dimen>
|
||||
<dimen name="media_output_dialog_active_background_radius">28dp</dimen>
|
||||
<dimen name="media_output_dialog_active_background_radius">30dp</dimen>
|
||||
<dimen name="media_output_dialog_default_margin_end">16dp</dimen>
|
||||
<dimen name="media_output_dialog_selectable_margin_end">80dp</dimen>
|
||||
<dimen name="media_output_dialog_list_padding_top">8dp</dimen>
|
||||
|
||||
@@ -186,7 +186,6 @@ public abstract class MediaOutputBaseAdapter extends
|
||||
mEndTouchArea.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_NO);
|
||||
mContainerLayout.setOnClickListener(null);
|
||||
mContainerLayout.setContentDescription(null);
|
||||
mTitleIcon.setOnClickListener(null);
|
||||
mTitleText.setTextColor(mController.getColorItemContent());
|
||||
mSubTitleText.setTextColor(mController.getColorItemContent());
|
||||
mTwoLineTitleText.setTextColor(mController.getColorItemContent());
|
||||
@@ -313,32 +312,35 @@ public abstract class MediaOutputBaseAdapter extends
|
||||
}
|
||||
mSeekBar.setMaxVolume(device.getMaxVolume());
|
||||
final int currentVolume = device.getCurrentVolume();
|
||||
if (mSeekBar.getVolume() != currentVolume) {
|
||||
if (isCurrentSeekbarInvisible && !mIsInitVolumeFirstTime) {
|
||||
updateTitleIcon(currentVolume == 0 ? R.drawable.media_output_icon_volume_off
|
||||
: R.drawable.media_output_icon_volume,
|
||||
mController.getColorItemContent());
|
||||
} else {
|
||||
if (!mVolumeAnimator.isStarted()) {
|
||||
int percentage =
|
||||
(int) ((double) currentVolume * VOLUME_PERCENTAGE_SCALE_SIZE
|
||||
/ (double) mSeekBar.getMax());
|
||||
if (percentage == 0) {
|
||||
updateMutedVolumeIcon();
|
||||
} else {
|
||||
updateUnmutedVolumeIcon();
|
||||
if (!mIsDragging) {
|
||||
if (mSeekBar.getVolume() != currentVolume) {
|
||||
if (isCurrentSeekbarInvisible && !mIsInitVolumeFirstTime) {
|
||||
updateTitleIcon(currentVolume == 0 ? R.drawable.media_output_icon_volume_off
|
||||
: R.drawable.media_output_icon_volume,
|
||||
mController.getColorItemContent());
|
||||
} else {
|
||||
if (!mVolumeAnimator.isStarted()) {
|
||||
int percentage =
|
||||
(int) ((double) currentVolume * VOLUME_PERCENTAGE_SCALE_SIZE
|
||||
/ (double) mSeekBar.getMax());
|
||||
if (percentage == 0) {
|
||||
updateMutedVolumeIcon();
|
||||
} else {
|
||||
updateUnmutedVolumeIcon();
|
||||
}
|
||||
mSeekBar.setVolume(currentVolume);
|
||||
}
|
||||
mSeekBar.setVolume(currentVolume);
|
||||
}
|
||||
} else if (currentVolume == 0) {
|
||||
mSeekBar.resetVolume();
|
||||
updateMutedVolumeIcon();
|
||||
}
|
||||
} else if (currentVolume == 0) {
|
||||
mSeekBar.resetVolume();
|
||||
updateMutedVolumeIcon();
|
||||
}
|
||||
if (mIsInitVolumeFirstTime) {
|
||||
mIsInitVolumeFirstTime = false;
|
||||
}
|
||||
mSeekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
|
||||
boolean mStartFromMute = false;
|
||||
@Override
|
||||
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
|
||||
if (device == null || !fromUser) {
|
||||
@@ -352,11 +354,12 @@ public abstract class MediaOutputBaseAdapter extends
|
||||
mVolumeValueText.setText(mContext.getResources().getString(
|
||||
R.string.media_output_dialog_volume_percentage, percentage));
|
||||
mVolumeValueText.setVisibility(View.VISIBLE);
|
||||
if (mStartFromMute) {
|
||||
updateUnmutedVolumeIcon();
|
||||
mStartFromMute = false;
|
||||
}
|
||||
if (progressToVolume != deviceVolume) {
|
||||
mController.adjustVolume(device, progressToVolume);
|
||||
if (deviceVolume == 0) {
|
||||
updateUnmutedVolumeIcon();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -364,6 +367,9 @@ public abstract class MediaOutputBaseAdapter extends
|
||||
public void onStartTrackingTouch(SeekBar seekBar) {
|
||||
mTitleIcon.setVisibility(View.INVISIBLE);
|
||||
mVolumeValueText.setVisibility(View.VISIBLE);
|
||||
int currentVolume = MediaOutputSeekbar.scaleProgressToVolume(
|
||||
seekBar.getProgress());
|
||||
mStartFromMute = (currentVolume == 0);
|
||||
mIsDragging = true;
|
||||
}
|
||||
|
||||
@@ -371,10 +377,7 @@ public abstract class MediaOutputBaseAdapter extends
|
||||
public void onStopTrackingTouch(SeekBar seekBar) {
|
||||
int currentVolume = MediaOutputSeekbar.scaleProgressToVolume(
|
||||
seekBar.getProgress());
|
||||
int percentage =
|
||||
(int) ((double) currentVolume * VOLUME_PERCENTAGE_SCALE_SIZE
|
||||
/ (double) seekBar.getMax());
|
||||
if (percentage == 0) {
|
||||
if (currentVolume == 0) {
|
||||
seekBar.setProgress(0);
|
||||
updateMutedVolumeIcon();
|
||||
} else {
|
||||
@@ -411,7 +414,7 @@ public abstract class MediaOutputBaseAdapter extends
|
||||
}
|
||||
|
||||
void updateIconAreaClickListener(View.OnClickListener listener) {
|
||||
mTitleIcon.setOnClickListener(listener);
|
||||
mIconAreaLayout.setOnClickListener(listener);
|
||||
}
|
||||
|
||||
void initMutingExpectedDevice() {
|
||||
@@ -501,14 +504,15 @@ public abstract class MediaOutputBaseAdapter extends
|
||||
mSeekBar.setOnTouchListener((v, event) -> false);
|
||||
updateIconAreaClickListener((v) -> {
|
||||
if (device.getCurrentVolume() == 0) {
|
||||
mSeekBar.setVolume(UNMUTE_DEFAULT_VOLUME);
|
||||
mController.adjustVolume(device, UNMUTE_DEFAULT_VOLUME);
|
||||
updateUnmutedVolumeIcon();
|
||||
mTitleIcon.setOnTouchListener(((iconV, event) -> false));
|
||||
mIconAreaLayout.setOnTouchListener(((iconV, event) -> false));
|
||||
} else {
|
||||
mSeekBar.resetVolume();
|
||||
mController.adjustVolume(device, 0);
|
||||
updateMutedVolumeIcon();
|
||||
mTitleIcon.setOnTouchListener(((iconV, event) -> {
|
||||
mIconAreaLayout.setOnTouchListener(((iconV, event) -> {
|
||||
mSeekBar.dispatchTouchEvent(event);
|
||||
return false;
|
||||
}));
|
||||
|
||||
Reference in New Issue
Block a user