Merge "Revert "Revert "Revert "Ringer mode button state a11y"""" into udc-dev
diff --git a/packages/SystemUI/src/com/android/systemui/volume/VolumeDialogImpl.java b/packages/SystemUI/src/com/android/systemui/volume/VolumeDialogImpl.java
index f37a9b5..7456d34 100644
--- a/packages/SystemUI/src/com/android/systemui/volume/VolumeDialogImpl.java
+++ b/packages/SystemUI/src/com/android/systemui/volume/VolumeDialogImpl.java
@@ -928,7 +928,6 @@
                 showRingerDrawer();
             }
         });
-        updateSelectedRingerContainerDescription(mIsRingerDrawerOpen);
 
         mRingerDrawerVibrate.setOnClickListener(
                 new RingerDrawerItemClickListener(RINGER_MODE_VIBRATE));
@@ -991,19 +990,6 @@
                         : 0;
     }
 
-    @VisibleForTesting String getSelectedRingerContainerDescription() {
-        return mSelectedRingerContainer == null ? null :
-                mSelectedRingerContainer.getContentDescription().toString();
-    }
-
-    @VisibleForTesting void toggleRingerDrawer(boolean show) {
-        if (show) {
-            showRingerDrawer();
-        } else {
-            hideRingerDrawer();
-        }
-    }
-
     /** Animates in the ringer drawer. */
     private void showRingerDrawer() {
         if (mIsRingerDrawerOpen) {
@@ -1081,7 +1067,12 @@
                     .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;
     }
@@ -1127,38 +1118,14 @@
                 .translationY(0f)
                 .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;
     }
 
-
-    /**
-     * @param open false to set the description when drawer is closed
-     */
-    private void updateSelectedRingerContainerDescription(boolean open) {
-        if (mState == null || mSelectedRingerContainer == 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) {
         if (mSettingsView != null) {
             mSettingsView.setVisibility(
@@ -1734,7 +1701,7 @@
         });
     }
 
-    @VisibleForTesting int getStringDescriptionResourceForRingerMode(int mode) {
+    private int getStringDescriptionResourceForRingerMode(int mode) {
         switch (mode) {
             case RINGER_MODE_SILENT:
                 return R.string.volume_ringer_status_silent;
@@ -1816,7 +1783,6 @@
             updateVolumeRowH(row);
         }
         updateRingerH();
-        updateSelectedRingerContainerDescription(mIsRingerDrawerOpen);
         mWindow.setTitle(composeWindowTitle());
     }
 
diff --git a/packages/SystemUI/tests/src/com/android/systemui/volume/VolumeDialogImplTest.java b/packages/SystemUI/tests/src/com/android/systemui/volume/VolumeDialogImplTest.java
index ef3a332..8f725be 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/volume/VolumeDialogImplTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/volume/VolumeDialogImplTest.java
@@ -16,19 +16,13 @@
 
 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.SHOW_REASON_UNKNOWN;
 import static com.android.systemui.volume.VolumeDialogControllerImpl.STREAMS;
 
 import static junit.framework.Assert.assertEquals;
-import static junit.framework.Assert.assertNotSame;
 import static junit.framework.Assert.assertTrue;
 
-import static org.junit.Assume.assumeNotNull;
 import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.never;
@@ -299,7 +293,7 @@
     @Test
     public void testSelectVibrateFromDrawer() {
         final State initialUnsetState = new State();
-        initialUnsetState.ringerModeInternal = RINGER_MODE_NORMAL;
+        initialUnsetState.ringerModeInternal = AudioManager.RINGER_MODE_NORMAL;
         mDialog.onStateChangedH(initialUnsetState);
 
         mActiveRinger.performClick();
@@ -313,7 +307,7 @@
     @Test
     public void testSelectMuteFromDrawer() {
         final State initialUnsetState = new State();
-        initialUnsetState.ringerModeInternal = RINGER_MODE_NORMAL;
+        initialUnsetState.ringerModeInternal = AudioManager.RINGER_MODE_NORMAL;
         mDialog.onStateChangedH(initialUnsetState);
 
         mActiveRinger.performClick();
@@ -335,7 +329,7 @@
 
         // Make sure we've actually changed the ringer mode.
         verify(mVolumeDialogController, times(1)).setRingerMode(
-                RINGER_MODE_NORMAL, false);
+                AudioManager.RINGER_MODE_NORMAL, false);
     }
 
     /**
@@ -517,87 +511,6 @@
         }
     }
 
-    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();
-        assumeNotNull(ringerContainerDescription);
-
-        String ringerDescription = mContext.getString(
-                mDialog.getStringDescriptionResourceForRingerMode(ringerMode));
-
-        if (drawerState == RingerDrawerState.OPEN) {
-            assertEquals(ringerDescription, ringerContainerDescription);
-        } else {
-            assertNotSame(ringerDescription, ringerContainerDescription);
-            assertTrue(ringerContainerDescription.startsWith(ringerDescription));
-        }
-    }
-
     @After
     public void teardown() {
         if (mDialog != null) {