From a82d2c8a88f9aa25407070bca7423689fd3f0b0b Mon Sep 17 00:00:00 2001 From: govenliu Date: Mon, 6 Apr 2020 20:45:44 +0800 Subject: [PATCH] [Wi-Fi] Use getUriHelpString() result to judge if Settings APP should register the help button click event and file related intent if need. The Openroaming help button should show only when the getHelpUriString() value is not null, and need to handle the click event in Settings APP. Bug: 146669261 Test: Adjust unit test cases: 1. make RunSettingsRoboTests ROBOTEST_FILTER=WifiEntryPreferenceTest 2. make RunSettingsRoboTests ROBOTEST_FILTER=WifiSettings2Test Change-Id: I27a717c3014b01cc464908bac56f64bd08aa5da3 --- res/values/strings.xml | 2 -- src/com/android/settings/wifi/WifiSettings2.java | 15 ++++++--------- .../android/settings/wifi/WifiSettings2Test.java | 7 +++++-- 3 files changed, 11 insertions(+), 13 deletions(-) diff --git a/res/values/strings.xml b/res/values/strings.xml index b5cdcf6edcb..39b55bd17d6 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -7189,8 +7189,6 @@ - - diff --git a/src/com/android/settings/wifi/WifiSettings2.java b/src/com/android/settings/wifi/WifiSettings2.java index 1098c013cdc..c2eb3e310c5 100644 --- a/src/com/android/settings/wifi/WifiSettings2.java +++ b/src/com/android/settings/wifi/WifiSettings2.java @@ -769,9 +769,9 @@ public class WifiSettings2 extends RestrictedSettingsFragment pref.setOrder(index++); pref.refresh(); - if (wifiEntry.canManageSubscription()) { + if (wifiEntry.getHelpUriString() != null) { pref.setOnButtonClickListener(preference -> { - openSubscriptionHelpPage(); + openSubscriptionHelpPage(wifiEntry); }); } mWifiEntryPreferenceCategory.addPreference(pref); @@ -1095,8 +1095,8 @@ public class WifiSettings2 extends RestrictedSettingsFragment } @VisibleForTesting - void openSubscriptionHelpPage() { - final Intent intent = getHelpIntent(getContext()); + void openSubscriptionHelpPage(WifiEntry wifiEntry) { + final Intent intent = getHelpIntent(getContext(), wifiEntry.getHelpUriString()); if (intent != null) { try { startActivityForResult(intent, MANAGE_SUBSCRIPTION); @@ -1107,10 +1107,7 @@ public class WifiSettings2 extends RestrictedSettingsFragment } @VisibleForTesting - Intent getHelpIntent(Context context) { - return HelpUtils.getHelpIntent( - context, - context.getString(R.string.help_url_manage_wifi_subscription), - context.getClass().getName()); + Intent getHelpIntent(Context context, String helpUrlString) { + return HelpUtils.getHelpIntent(context, helpUrlString, context.getClass().getName()); } } diff --git a/tests/robotests/src/com/android/settings/wifi/WifiSettings2Test.java b/tests/robotests/src/com/android/settings/wifi/WifiSettings2Test.java index b259cc39b4f..b2a28db8dce 100644 --- a/tests/robotests/src/com/android/settings/wifi/WifiSettings2Test.java +++ b/tests/robotests/src/com/android/settings/wifi/WifiSettings2Test.java @@ -74,6 +74,7 @@ import org.robolectric.shadows.ShadowToast; public class WifiSettings2Test { private static final int NUM_NETWORKS = 4; + private static final String FAKE_URI_STRING = "fakeuri"; @Mock private PowerManager mPowerManager; @@ -281,10 +282,12 @@ public class WifiSettings2Test { @Test public void openSubscriptionHelpPage_shouldCallStartActivityForResult() { - doReturn(new Intent()).when(mWifiSettings2).getHelpIntent(mContext); + doReturn(new Intent()).when(mWifiSettings2).getHelpIntent(mContext, FAKE_URI_STRING); doNothing().when(mWifiSettings2).startActivityForResult(any(Intent.class), anyInt()); + final WifiEntry mockWifiEntry = mock(WifiEntry.class); + when(mockWifiEntry.getHelpUriString()).thenReturn(FAKE_URI_STRING); - mWifiSettings2.openSubscriptionHelpPage(); + mWifiSettings2.openSubscriptionHelpPage(mockWifiEntry); verify(mWifiSettings2, times(1)).startActivityForResult(any(), anyInt()); }