From 7c59e7ab537aa1917250458c67b5aea7772fabb8 Mon Sep 17 00:00:00 2001 From: Salvador Martinez Date: Mon, 26 Sep 2016 15:43:00 -0700 Subject: [PATCH] Fixed talkback feedback for wifi menu When you go to add a existing or new access point for wifi talkback would say the incorrect thing when you tapped on the advanced options dropdown menu toggle. This fixes what talkback says to more accurately reflect what the widget does. Test: Accessibility Scanner Bug: 31623421 Change-Id: I9a00c4e8723014b0b3097f046dbcd1de01636e76 --- res/layout/wifi_dialog.xml | 3 +++ .../settings/wifi/WifiConfigController.java | 24 ++++++++++++------- 2 files changed, 19 insertions(+), 8 deletions(-) diff --git a/res/layout/wifi_dialog.xml b/res/layout/wifi_dialog.xml index ceb7201baad..ba1f6fc10b0 100644 --- a/res/layout/wifi_dialog.xml +++ b/res/layout/wifi_dialog.xml @@ -287,11 +287,14 @@ android:layout_height="wrap_content" style="@style/wifi_item" android:paddingBottom="4dp" + android:importantForAccessibility="yes" + android:contentDescription="@string/wifi_advanced_toggle_description_collapsed" android:visibility="gone"> diff --git a/src/com/android/settings/wifi/WifiConfigController.java b/src/com/android/settings/wifi/WifiConfigController.java index ee6b503e132..dd2e7dff428 100644 --- a/src/com/android/settings/wifi/WifiConfigController.java +++ b/src/com/android/settings/wifi/WifiConfigController.java @@ -54,6 +54,7 @@ import android.widget.CheckBox; import android.widget.CompoundButton; import android.widget.CompoundButton.OnCheckedChangeListener; import android.widget.EditText; +import android.widget.LinearLayout; import android.widget.Spinner; import android.widget.TextView; @@ -262,13 +263,13 @@ public class WifiConfigController implements TextWatcher, showSecurityFields(); showIpConfigFields(); showProxyFields(); + final CheckBox advancedTogglebox = + (CheckBox) mView.findViewById(R.id.wifi_advanced_togglebox); mView.findViewById(R.id.wifi_advanced_toggle).setVisibility(View.VISIBLE); - ((CheckBox) mView.findViewById(R.id.wifi_advanced_togglebox)) - .setOnCheckedChangeListener(this); - if (showAdvancedFields) { - ((CheckBox) mView.findViewById(R.id.wifi_advanced_togglebox)).setChecked(true); - mView.findViewById(R.id.wifi_advanced_fields).setVisibility(View.VISIBLE); - } + advancedTogglebox.setOnCheckedChangeListener(this); + advancedTogglebox.setChecked(showAdvancedFields); + mView.findViewById(R.id.wifi_advanced_fields) + .setVisibility(showAdvancedFields ? View.VISIBLE : View.GONE); } if (mMode == WifiConfigUiBase.MODE_MODIFY) { @@ -1210,11 +1211,18 @@ public class WifiConfigController implements TextWatcher, ((EditText) mPasswordView).setSelection(pos); } } else if (view.getId() == R.id.wifi_advanced_togglebox) { + final View advancedToggle = mView.findViewById(R.id.wifi_advanced_toggle); + final int toggleVisibility; + final int stringID; if (isChecked) { - mView.findViewById(R.id.wifi_advanced_fields).setVisibility(View.VISIBLE); + toggleVisibility = View.VISIBLE; + stringID = R.string.wifi_advanced_toggle_description_expanded; } else { - mView.findViewById(R.id.wifi_advanced_fields).setVisibility(View.GONE); + toggleVisibility = View.GONE; + stringID = R.string.wifi_advanced_toggle_description_collapsed; } + mView.findViewById(R.id.wifi_advanced_fields).setVisibility(toggleVisibility); + advancedToggle.setContentDescription(mContext.getString(stringID)); } }