Merge "Revert "Ringer mode button state a11y"" into udc-dev am: c6a789e74a

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/23589201

Change-Id: I45635c32e8d51bdfa98512e70ce70261fa63c8d5
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
Sam Dubey
2023-06-07 19:25:28 +00:00
committed by Automerger Merge Worker
2 changed files with 14 additions and 131 deletions

View File

@@ -930,7 +930,6 @@ public class VolumeDialogImpl implements VolumeDialog, Dumpable,
showRingerDrawer(); showRingerDrawer();
} }
}); });
updateSelectedRingerContainerDescription(mIsRingerDrawerOpen);
mRingerDrawerVibrate.setOnClickListener( mRingerDrawerVibrate.setOnClickListener(
new RingerDrawerItemClickListener(RINGER_MODE_VIBRATE)); new RingerDrawerItemClickListener(RINGER_MODE_VIBRATE));
@@ -993,18 +992,6 @@ public class VolumeDialogImpl implements VolumeDialog, Dumpable,
: 0; : 0;
} }
@VisibleForTesting String getSelectedRingerContainerDescription() {
return mSelectedRingerContainer.getContentDescription().toString();
}
@VisibleForTesting void toggleRingerDrawer(boolean show) {
if (show) {
showRingerDrawer();
} else {
hideRingerDrawer();
}
}
/** Animates in the ringer drawer. */ /** Animates in the ringer drawer. */
private void showRingerDrawer() { private void showRingerDrawer() {
if (mIsRingerDrawerOpen) { if (mIsRingerDrawerOpen) {
@@ -1082,7 +1069,12 @@ public class VolumeDialogImpl implements VolumeDialog, Dumpable,
.start(); .start();
} }
updateSelectedRingerContainerDescription(true); // When the ringer drawer is open, tapping the currently selected ringer will set the ringer
// to the current ringer mode. Change the content description to that, instead of the 'tap
// to change ringer mode' default.
mSelectedRingerContainer.setContentDescription(
mContext.getString(getStringDescriptionResourceForRingerMode(
mState.ringerModeInternal)));
mIsRingerDrawerOpen = true; mIsRingerDrawerOpen = true;
} }
@@ -1128,38 +1120,14 @@ public class VolumeDialogImpl implements VolumeDialog, Dumpable,
.translationY(0f) .translationY(0f)
.start(); .start();
updateSelectedRingerContainerDescription(false); // When the drawer is closed, tapping the selected ringer drawer will open it, allowing the
// user to change the ringer.
mSelectedRingerContainer.setContentDescription(
mContext.getString(R.string.volume_ringer_change));
mIsRingerDrawerOpen = false; mIsRingerDrawerOpen = false;
} }
/**
* @param open false to set the description when drawer is closed
*/
private void updateSelectedRingerContainerDescription(boolean open) {
if (mState == null) return;
String currentMode = mContext.getString(getStringDescriptionResourceForRingerMode(
mState.ringerModeInternal));
String tapToSelect;
if (open) {
// When the ringer drawer is open, tapping the currently selected ringer will set the
// ringer to the current ringer mode. Change the content description to that, instead of
// the 'tap to change ringer mode' default.
tapToSelect = "";
} else {
// When the drawer is closed, tapping the selected ringer drawer will open it, allowing
// the user to change the ringer. The user needs to know that, and also the current mode
currentMode += ", ";
tapToSelect = mContext.getString(R.string.volume_ringer_change);
}
mSelectedRingerContainer.setContentDescription(currentMode + tapToSelect);
}
private void initSettingsH(int lockTaskModeState) { private void initSettingsH(int lockTaskModeState) {
if (mSettingsView != null) { if (mSettingsView != null) {
mSettingsView.setVisibility( mSettingsView.setVisibility(
@@ -1735,7 +1703,7 @@ public class VolumeDialogImpl implements VolumeDialog, Dumpable,
}); });
} }
@VisibleForTesting int getStringDescriptionResourceForRingerMode(int mode) { private int getStringDescriptionResourceForRingerMode(int mode) {
switch (mode) { switch (mode) {
case RINGER_MODE_SILENT: case RINGER_MODE_SILENT:
return R.string.volume_ringer_status_silent; return R.string.volume_ringer_status_silent;
@@ -1817,7 +1785,6 @@ public class VolumeDialogImpl implements VolumeDialog, Dumpable,
updateVolumeRowH(row); updateVolumeRowH(row);
} }
updateRingerH(); updateRingerH();
updateSelectedRingerContainerDescription(mIsRingerDrawerOpen);
mWindow.setTitle(composeWindowTitle()); mWindow.setTitle(composeWindowTitle());
} }

View File

@@ -16,16 +16,11 @@
package com.android.systemui.volume; package com.android.systemui.volume;
import static android.media.AudioManager.RINGER_MODE_NORMAL;
import static android.media.AudioManager.RINGER_MODE_SILENT;
import static android.media.AudioManager.RINGER_MODE_VIBRATE;
import static com.android.systemui.volume.Events.DISMISS_REASON_UNKNOWN; import static com.android.systemui.volume.Events.DISMISS_REASON_UNKNOWN;
import static com.android.systemui.volume.Events.SHOW_REASON_UNKNOWN; import static com.android.systemui.volume.Events.SHOW_REASON_UNKNOWN;
import static com.android.systemui.volume.VolumeDialogControllerImpl.STREAMS; import static com.android.systemui.volume.VolumeDialogControllerImpl.STREAMS;
import static junit.framework.Assert.assertEquals; import static junit.framework.Assert.assertEquals;
import static junit.framework.Assert.assertNotSame;
import static junit.framework.Assert.assertTrue; import static junit.framework.Assert.assertTrue;
import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.any;
@@ -298,7 +293,7 @@ public class VolumeDialogImplTest extends SysuiTestCase {
@Test @Test
public void testSelectVibrateFromDrawer() { public void testSelectVibrateFromDrawer() {
final State initialUnsetState = new State(); final State initialUnsetState = new State();
initialUnsetState.ringerModeInternal = RINGER_MODE_NORMAL; initialUnsetState.ringerModeInternal = AudioManager.RINGER_MODE_NORMAL;
mDialog.onStateChangedH(initialUnsetState); mDialog.onStateChangedH(initialUnsetState);
mActiveRinger.performClick(); mActiveRinger.performClick();
@@ -312,7 +307,7 @@ public class VolumeDialogImplTest extends SysuiTestCase {
@Test @Test
public void testSelectMuteFromDrawer() { public void testSelectMuteFromDrawer() {
final State initialUnsetState = new State(); final State initialUnsetState = new State();
initialUnsetState.ringerModeInternal = RINGER_MODE_NORMAL; initialUnsetState.ringerModeInternal = AudioManager.RINGER_MODE_NORMAL;
mDialog.onStateChangedH(initialUnsetState); mDialog.onStateChangedH(initialUnsetState);
mActiveRinger.performClick(); mActiveRinger.performClick();
@@ -334,7 +329,7 @@ public class VolumeDialogImplTest extends SysuiTestCase {
// Make sure we've actually changed the ringer mode. // Make sure we've actually changed the ringer mode.
verify(mVolumeDialogController, times(1)).setRingerMode( verify(mVolumeDialogController, times(1)).setRingerMode(
RINGER_MODE_NORMAL, false); AudioManager.RINGER_MODE_NORMAL, false);
} }
/** /**
@@ -516,85 +511,6 @@ public class VolumeDialogImplTest extends SysuiTestCase {
} }
} }
private enum RingerDrawerState {INIT, OPEN, CLOSE}
@Test
public void ringerModeNormal_ringerContainerDescribesItsState() {
assertRingerContainerDescribesItsState(RINGER_MODE_NORMAL, RingerDrawerState.INIT);
}
@Test
public void ringerModeSilent_ringerContainerDescribesItsState() {
assertRingerContainerDescribesItsState(RINGER_MODE_SILENT, RingerDrawerState.INIT);
}
@Test
public void ringerModeVibrate_ringerContainerDescribesItsState() {
assertRingerContainerDescribesItsState(RINGER_MODE_VIBRATE, RingerDrawerState.INIT);
}
@Test
public void ringerModeNormal_openDrawer_ringerContainerDescribesItsState() {
assertRingerContainerDescribesItsState(RINGER_MODE_NORMAL, RingerDrawerState.OPEN);
}
@Test
public void ringerModeSilent_openDrawer_ringerContainerDescribesItsState() {
assertRingerContainerDescribesItsState(RINGER_MODE_SILENT, RingerDrawerState.OPEN);
}
@Test
public void ringerModeVibrate_openDrawer_ringerContainerDescribesItsState() {
assertRingerContainerDescribesItsState(RINGER_MODE_VIBRATE, RingerDrawerState.OPEN);
}
@Test
public void ringerModeNormal_closeDrawer_ringerContainerDescribesItsState() {
assertRingerContainerDescribesItsState(RINGER_MODE_NORMAL, RingerDrawerState.CLOSE);
}
@Test
public void ringerModeSilent_closeDrawer_ringerContainerDescribesItsState() {
assertRingerContainerDescribesItsState(RINGER_MODE_SILENT, RingerDrawerState.CLOSE);
}
@Test
public void ringerModeVibrate_closeDrawer_ringerContainerDescribesItsState() {
assertRingerContainerDescribesItsState(RINGER_MODE_VIBRATE, RingerDrawerState.CLOSE);
}
/**
* The content description should include ringer state, and the correct one.
*/
private void assertRingerContainerDescribesItsState(int ringerMode,
RingerDrawerState drawerState) {
State state = createShellState();
state.ringerModeInternal = ringerMode;
mDialog.onStateChangedH(state);
mDialog.show(SHOW_REASON_UNKNOWN);
if (drawerState != RingerDrawerState.INIT) {
// in both cases we first open the drawer
mDialog.toggleRingerDrawer(true);
if (drawerState == RingerDrawerState.CLOSE) {
mDialog.toggleRingerDrawer(false);
}
}
String ringerContainerDescription = mDialog.getSelectedRingerContainerDescription();
String ringerDescription = mContext.getString(
mDialog.getStringDescriptionResourceForRingerMode(ringerMode));
if (drawerState == RingerDrawerState.OPEN) {
assertEquals(ringerDescription, ringerContainerDescription);
} else {
assertNotSame(ringerDescription, ringerContainerDescription);
assertTrue(ringerContainerDescription.startsWith(ringerDescription));
}
}
@After @After
public void teardown() { public void teardown() {
if (mDialog != null) { if (mDialog != null) {