From 70efb670c8d9a09d87b465bbb1e10a1af2be3b16 Mon Sep 17 00:00:00 2001 From: Fan Zhang Date: Tue, 5 Sep 2017 11:02:03 -0700 Subject: [PATCH] Use raw string when setting wifi preference title. This is necessary for talkback to correctly recognize content description on the whole viewgroup. Merged-In: Ic792102b269b9a8db09c632f7e70d8773048c840 Change-Id: I555f94afcd6f4c681bb16dd23d94b2ae0fd4c116 Fixes: 65202862 Test: robotests --- .../wifi/AccessPointPreference.java | 18 +++++++++++------- .../wifi/AccessPointPreferenceTest.java | 16 ++++++++++++++++ 2 files changed, 27 insertions(+), 7 deletions(-) diff --git a/packages/SettingsLib/src/com/android/settingslib/wifi/AccessPointPreference.java b/packages/SettingsLib/src/com/android/settingslib/wifi/AccessPointPreference.java index 2c4f9c4321946..70b4347d83cab 100644 --- a/packages/SettingsLib/src/com/android/settingslib/wifi/AccessPointPreference.java +++ b/packages/SettingsLib/src/com/android/settingslib/wifi/AccessPointPreference.java @@ -160,7 +160,7 @@ public class AccessPointPreference extends Preference { drawable.setLevel(mLevel); } - mTitleView = (TextView) view.findViewById(com.android.internal.R.id.title); + mTitleView = (TextView) view.findViewById(android.R.id.title); if (mTitleView != null) { // Attach to the end of the title view mTitleView.setCompoundDrawablesRelativeWithIntrinsicBounds(null, null, mBadge, null); @@ -231,12 +231,7 @@ public class AccessPointPreference extends Preference { * Updates the title and summary; may indirectly call notifyChanged(). */ public void refresh() { - if (mForSavedNetworks) { - setTitle(mAccessPoint.getConfigName()); - } else { - setTitle(mAccessPoint.getSsid()); - } - + setTitle(this, mAccessPoint, mForSavedNetworks); final Context context = getContext(); int level = mAccessPoint.getLevel(); int wifiSpeed = mAccessPoint.getSpeed(); @@ -265,6 +260,15 @@ public class AccessPointPreference extends Preference { } } + @VisibleForTesting + static void setTitle(AccessPointPreference preference, AccessPoint ap, boolean savedNetworks) { + if (savedNetworks) { + preference.setTitle(ap.getConfigName()); + } else { + preference.setTitle(ap.getSsidStr()); + } + } + /** * Helper method to generate content description string. */ diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/wifi/AccessPointPreferenceTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/wifi/AccessPointPreferenceTest.java index 7fe69a73cb996..bbaeed2b0752f 100644 --- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/wifi/AccessPointPreferenceTest.java +++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/wifi/AccessPointPreferenceTest.java @@ -17,6 +17,7 @@ package com.android.settingslib.wifi; import static com.google.common.truth.Truth.assertThat; import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; import android.content.Context; @@ -78,4 +79,19 @@ public class AccessPointPreferenceTest { RuntimeEnvironment.application, pref, ap)) .isEqualTo("ssid,connected,Wifi signal full.,Secure network"); } + + @Test + public void refresh_setTitle_shouldUseSsidString() { + final String ssid = "ssid"; + final String summary = "connected"; + final int security = AccessPoint.SECURITY_WEP; + final AccessPoint ap = new TestAccessPointBuilder(mContext) + .setSsid(ssid) + .setSecurity(security) + .build(); + final AccessPointPreference preference = mock(AccessPointPreference.class); + + AccessPointPreference.setTitle(preference, ap, false /* savedNetwork */); + verify(preference).setTitle(ssid); + } }