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