From b25ba2995b9805dbc3f82b781675153b21a8e8c7 Mon Sep 17 00:00:00 2001 From: govenliu Date: Fri, 20 Mar 2020 18:27:25 +0800 Subject: [PATCH] [Wi-Fi] Add content description for the Openroaming help button. 1. Add content description for the Openroaming help button. 2. Exclude the showing of help button when isSubscription is true (e.g., Passpoint network) Bug: 146669261 Test: Add 2 unit test cases: 1. helpButton_whenCanManageSubscription_shouldSetCorrectContentDescription: to check content description is set correctly. 2. subscriptionEntry_shouldSetImageButtonGone: to check button should hide when isSubscription true. Change-Id: I51e927de3b9d2b35096364fd93835e02b29004fc --- packages/SettingsLib/res/values/strings.xml | 3 ++ .../settingslib/wifi/WifiEntryPreference.java | 4 +++ .../wifi/WifiEntryPreferenceTest.java | 31 +++++++++++++++++++ 3 files changed, 38 insertions(+) diff --git a/packages/SettingsLib/res/values/strings.xml b/packages/SettingsLib/res/values/strings.xml index a7970668124b3..5bd1e5750052b 100644 --- a/packages/SettingsLib/res/values/strings.xml +++ b/packages/SettingsLib/res/values/strings.xml @@ -1279,4 +1279,7 @@ Wired audio device + + + Help & feedback diff --git a/packages/SettingsLib/src/com/android/settingslib/wifi/WifiEntryPreference.java b/packages/SettingsLib/src/com/android/settingslib/wifi/WifiEntryPreference.java index c63c34c1b6d1b..8aa0aec28fb8f 100644 --- a/packages/SettingsLib/src/com/android/settingslib/wifi/WifiEntryPreference.java +++ b/packages/SettingsLib/src/com/android/settingslib/wifi/WifiEntryPreference.java @@ -107,6 +107,7 @@ public class WifiEntryPreference extends Preference implements WifiEntry.WifiEnt final ImageView frictionImageView = (ImageView) view.findViewById( R.id.friction_icon); if (mWifiEntry.canManageSubscription() && !mWifiEntry.isSaved() + && !mWifiEntry.isSubscription() && mWifiEntry.getConnectedState() == WifiEntry.CONNECTED_STATE_DISCONNECTED) { final Drawable drawablehelp = getDrawable(R.drawable.ic_help); drawablehelp.setTintList( @@ -114,6 +115,9 @@ public class WifiEntryPreference extends Preference implements WifiEntry.WifiEnt ((ImageView) imageButton).setImageDrawable(drawablehelp); imageButton.setVisibility(View.VISIBLE); imageButton.setOnClickListener(this); + imageButton.setContentDescription( + getContext().getText(R.string.help_label)); + if (frictionImageView != null) { frictionImageView.setVisibility(View.GONE); } diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/wifi/WifiEntryPreferenceTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/wifi/WifiEntryPreferenceTest.java index 47836c022d384..a9f31ce12b421 100644 --- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/wifi/WifiEntryPreferenceTest.java +++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/wifi/WifiEntryPreferenceTest.java @@ -167,4 +167,35 @@ public class WifiEntryPreferenceTest { assertThat(view.findViewById(R.id.icon_button).getVisibility()).isEqualTo(View.VISIBLE); } + + @Test + public void helpButton_whenCanManageSubscription_shouldSetCorrectContentDescription() { + when(mMockWifiEntry.canManageSubscription()).thenReturn(true); + final WifiEntryPreference pref = + new WifiEntryPreference(mContext, mMockWifiEntry, mMockIconInjector); + final LayoutInflater inflater = LayoutInflater.from(mContext); + final View view = inflater.inflate(pref.getLayoutResource(), new LinearLayout(mContext), + false); + final PreferenceViewHolder holder = PreferenceViewHolder.createInstanceForTests(view); + + pref.onBindViewHolder(holder); + + assertThat(view.findViewById(R.id.icon_button).getContentDescription()).isEqualTo( + mContext.getString(R.string.help_label)); + } + + @Test + public void subscriptionEntry_shouldSetImageButtonGone() { + when(mMockWifiEntry.isSubscription()).thenReturn(true); + final WifiEntryPreference pref = + new WifiEntryPreference(mContext, mMockWifiEntry, mMockIconInjector); + final LayoutInflater inflater = LayoutInflater.from(mContext); + final View view = inflater.inflate(pref.getLayoutResource(), new LinearLayout(mContext), + false); + final PreferenceViewHolder holder = PreferenceViewHolder.createInstanceForTests(view); + + pref.onBindViewHolder(holder); + + assertThat(view.findViewById(R.id.icon_button).getVisibility()).isEqualTo(View.GONE); + } }