Merge "Provide better talkback for buttons in calling." into nyc-dev
diff --git a/InCallUI/res/layout/call_button_fragment.xml b/InCallUI/res/layout/call_button_fragment.xml
index db75764..6dbfbf7 100644
--- a/InCallUI/res/layout/call_button_fragment.xml
+++ b/InCallUI/res/layout/call_button_fragment.xml
@@ -75,7 +75,7 @@
         <ToggleButton android:id="@+id/muteButton"
             style="@style/InCallCompoundButton"
             android:background="@drawable/btn_compound_mute"
-            android:contentDescription="@string/onscreenMuteText" />
+            android:contentDescription="@string/onscreenMuteText_unselected" />
 
         <!-- CENTER SLOT ======================================================================= -->
 
@@ -83,7 +83,7 @@
         <ToggleButton android:id="@+id/dialpadButton"
             style="@style/InCallCompoundButton"
             android:background="@drawable/btn_compound_dialpad"
-            android:contentDescription="@string/onscreenShowDialpadText" />
+            android:contentDescription="@string/onscreenShowDialpadText_unselected" />
 
         <!-- MIDDLE RIGHT SLOT ================================================================= -->
 
diff --git a/InCallUI/res/values/strings.xml b/InCallUI/res/values/strings.xml
index 2f3d16b..57a1b53 100644
--- a/InCallUI/res/values/strings.xml
+++ b/InCallUI/res/values/strings.xml
@@ -275,10 +275,18 @@
     <string name="onscreenHoldText_selected">Resume Call</string>
     <!-- Text for the onscreen "End call" button -->
     <string name="onscreenEndCallText">End Call</string>
-    <!-- Text for the onscreen "Show Dialpad" button -->
-    <string name="onscreenShowDialpadText">Dialpad</string>
-    <!-- Text for the onscreen "Mute" button -->
-    <string name="onscreenMuteText">Mute</string>
+    <!-- Text for the onscreen "Show Dialpad" button when it is not selected. Pressing it will
+         show the dialpad. -->
+    <string name="onscreenShowDialpadText_unselected">Show Dialpad</string>
+    <!-- Text for the onscreen "Show Dialpad" button when it is selected. Pressing it will
+         hide the dialpad. -->
+    <string name="onscreenShowDialpadText_selected">Hide Dialpad</string>
+    <!-- Text for the onscreen "Mute" button when it is not selected. Pressing it will mute
+         the call. -->
+    <string name="onscreenMuteText_unselected">Mute</string>
+    <!-- Text for the onscreen "Mute" button when it is selected. Pressing it will unmute
+         the call. -->
+    <string name="onscreenMuteText_selected">Unmute</string>
     <!-- Text for the onscreen "Add call" button -->
     <string name="onscreenAddCallText">Add call</string>
     <!-- Text for the onscreen "Merge calls" button -->
diff --git a/InCallUI/src/com/android/incallui/CallButtonFragment.java b/InCallUI/src/com/android/incallui/CallButtonFragment.java
index 9859f4e..5a25b6a 100644
--- a/InCallUI/src/com/android/incallui/CallButtonFragment.java
+++ b/InCallUI/src/com/android/incallui/CallButtonFragment.java
@@ -433,6 +433,9 @@
     public void setMute(boolean value) {
         if (mMuteButton.isSelected() != value) {
             mMuteButton.setSelected(value);
+            mMuteButton.setContentDescription(getContext().getString(
+                    value ? R.string.onscreenMuteText_selected
+                            : R.string.onscreenMuteText_unselected));
         }
     }
 
@@ -789,6 +792,9 @@
             boolean changed = ((InCallActivity) getActivity()).showDialpadFragment(value, animate);
             if (changed) {
                 mShowDialpadButton.setSelected(value);
+                mShowDialpadButton.setContentDescription(getContext().getString(
+                        value /* show */ ? R.string.onscreenShowDialpadText_unselected
+                                : R.string.onscreenShowDialpadText_selected));
             }
         }
     }