Loading res/values/strings.xml +3 −0 Original line number Diff line number Diff line Loading @@ -7196,6 +7196,9 @@ <string name="help_url_double_tap_screen" translatable="false"></string> <string name="help_url_account_detail" translatable="false"></string> <string name="help_url_icc_lock" translatable="false"></string> <!-- Help URI, ManageSubscription [DO NOT TRANSLATE] --> <string name="help_url_manage_wifi_subscription" translatable="false"></string> <string name="help_uri_process_stats_summary" translatable="false"></string> <string name="help_uri_process_stats_apps" translatable="false"></string> <string name="help_uri_private_dns" translatable="false"></string> src/com/android/settings/wifi/WifiSettings2.java +32 −0 Original line number Diff line number Diff line Loading @@ -22,6 +22,7 @@ import static android.os.UserManager.DISALLOW_CONFIG_WIFI; import android.app.Activity; import android.app.Dialog; import android.app.settings.SettingsEnums; import android.content.ActivityNotFoundException; import android.content.ContentResolver; import android.content.Context; import android.content.DialogInterface; Loading Loading @@ -69,6 +70,7 @@ import com.android.settings.search.BaseSearchIndexProvider; import com.android.settings.widget.SwitchBarController; import com.android.settings.wifi.details2.WifiNetworkDetailsFragment2; import com.android.settings.wifi.dpp.WifiDppUtils; import com.android.settingslib.HelpUtils; import com.android.settingslib.RestrictedLockUtils; import com.android.settingslib.RestrictedLockUtilsInternal; import com.android.settingslib.search.Indexable; Loading Loading @@ -109,6 +111,7 @@ public class WifiSettings2 extends RestrictedSettingsFragment @VisibleForTesting static final int ADD_NETWORK_REQUEST = 2; static final int CONFIG_NETWORK_REQUEST = 3; static final int MANAGE_SUBSCRIPTION = 4; private static final String PREF_KEY_EMPTY_WIFI_LIST = "wifi_empty_list"; // TODO(b/70983952): Rename these to use WifiEntry instead of AccessPoint. Loading Loading @@ -428,6 +431,9 @@ public class WifiSettings2 extends RestrictedSettingsFragment } } return; } else if (requestCode == MANAGE_SUBSCRIPTION) { //Do nothing return; } final boolean formerlyRestricted = mIsRestricted; Loading Loading @@ -750,6 +756,12 @@ public class WifiSettings2 extends RestrictedSettingsFragment pref.setKey(wifiEntry.getKey()); pref.setOrder(index++); pref.refresh(); if (wifiEntry.canManageSubscription()) { pref.setOnButtonClickListener(preference -> { openSubscriptionHelpPage(); }); } mWifiEntryPreferenceCategory.addPreference(pref); } removeCachedPrefs(mWifiEntryPreferenceCategory); Loading Loading @@ -1061,4 +1073,24 @@ public class WifiSettings2 extends RestrictedSettingsFragment int reason = networkStatus.getNetworkSelectionDisableReason(); return WifiConfiguration.NetworkSelectionStatus.DISABLED_BY_WRONG_PASSWORD == reason; } @VisibleForTesting void openSubscriptionHelpPage() { final Intent intent = getHelpIntent(getContext()); if (intent != null) { try { startActivityForResult(intent, MANAGE_SUBSCRIPTION); } catch (ActivityNotFoundException e) { Log.e(TAG, "Activity was not found for intent, " + intent.toString()); } } } @VisibleForTesting Intent getHelpIntent(Context context) { return HelpUtils.getHelpIntent( context, context.getString(R.string.help_url_manage_wifi_subscription), context.getClass().getName()); } } tests/robotests/src/com/android/settings/wifi/WifiSettings2Test.java +18 −6 Original line number Diff line number Diff line Loading @@ -25,6 +25,7 @@ import static org.mockito.Mockito.doNothing; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.spy; import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; Loading Loading @@ -98,13 +99,14 @@ public class WifiSettings2Test { @Test public void addNetworkFragmentSendResult_onActivityResult_shouldHandleEvent() { final WifiSettings wifiSettings = spy(new WifiSettings()); final WifiSettings2 wifiSettings2 = spy(new WifiSettings2()); final Intent intent = new Intent(); doNothing().when(wifiSettings).handleAddNetworkRequest(anyInt(), any(Intent.class)); doNothing().when(wifiSettings2).handleAddNetworkRequest(anyInt(), any(Intent.class)); wifiSettings.onActivityResult(WifiSettings.ADD_NETWORK_REQUEST, Activity.RESULT_OK, intent); wifiSettings2.onActivityResult(WifiSettings2.ADD_NETWORK_REQUEST, Activity.RESULT_OK, intent); verify(wifiSettings).handleAddNetworkRequest(anyInt(), any(Intent.class)); verify(wifiSettings2).handleAddNetworkRequest(anyInt(), any(Intent.class)); } @Test Loading Loading @@ -163,7 +165,7 @@ public class WifiSettings2Test { public void setAdditionalSettingsSummaries_wifiWakeupEnabled_displayOn() { final ContentResolver contentResolver = mContext.getContentResolver(); when(mWifiManager.isAutoWakeupEnabled()).thenReturn(true); when(mWifiManager.isScanAlwaysAvailable()).thenReturn(false); when(mWifiManager.isScanAlwaysAvailable()).thenReturn(true); Settings.Global.putInt(contentResolver, Settings.Global.AIRPLANE_MODE_ON, 0); when(mPowerManager.isPowerSaveMode()).thenReturn(false); Loading Loading @@ -200,7 +202,7 @@ public class WifiSettings2Test { when(activity.getSystemService(Context.USER_SERVICE)) .thenReturn(userManager); when(mWifiSettings2.findPreference(WifiSettings.PREF_KEY_DATA_USAGE)) when(mWifiSettings2.findPreference(WifiSettings2.PREF_KEY_DATA_USAGE)) .thenReturn(mDataUsagePreference); } Loading Loading @@ -268,4 +270,14 @@ public class WifiSettings2Test { verify(mWifiSettings2).changeNextButtonState(anyBoolean()); } @Test public void openSubscriptionHelpPage_shouldCallStartActivityForResult() { doReturn(new Intent()).when(mWifiSettings2).getHelpIntent(mContext); doNothing().when(mWifiSettings2).startActivityForResult(any(Intent.class), anyInt()); mWifiSettings2.openSubscriptionHelpPage(); verify(mWifiSettings2, times(1)).startActivityForResult(any(), anyInt()); } } Loading
res/values/strings.xml +3 −0 Original line number Diff line number Diff line Loading @@ -7196,6 +7196,9 @@ <string name="help_url_double_tap_screen" translatable="false"></string> <string name="help_url_account_detail" translatable="false"></string> <string name="help_url_icc_lock" translatable="false"></string> <!-- Help URI, ManageSubscription [DO NOT TRANSLATE] --> <string name="help_url_manage_wifi_subscription" translatable="false"></string> <string name="help_uri_process_stats_summary" translatable="false"></string> <string name="help_uri_process_stats_apps" translatable="false"></string> <string name="help_uri_private_dns" translatable="false"></string>
src/com/android/settings/wifi/WifiSettings2.java +32 −0 Original line number Diff line number Diff line Loading @@ -22,6 +22,7 @@ import static android.os.UserManager.DISALLOW_CONFIG_WIFI; import android.app.Activity; import android.app.Dialog; import android.app.settings.SettingsEnums; import android.content.ActivityNotFoundException; import android.content.ContentResolver; import android.content.Context; import android.content.DialogInterface; Loading Loading @@ -69,6 +70,7 @@ import com.android.settings.search.BaseSearchIndexProvider; import com.android.settings.widget.SwitchBarController; import com.android.settings.wifi.details2.WifiNetworkDetailsFragment2; import com.android.settings.wifi.dpp.WifiDppUtils; import com.android.settingslib.HelpUtils; import com.android.settingslib.RestrictedLockUtils; import com.android.settingslib.RestrictedLockUtilsInternal; import com.android.settingslib.search.Indexable; Loading Loading @@ -109,6 +111,7 @@ public class WifiSettings2 extends RestrictedSettingsFragment @VisibleForTesting static final int ADD_NETWORK_REQUEST = 2; static final int CONFIG_NETWORK_REQUEST = 3; static final int MANAGE_SUBSCRIPTION = 4; private static final String PREF_KEY_EMPTY_WIFI_LIST = "wifi_empty_list"; // TODO(b/70983952): Rename these to use WifiEntry instead of AccessPoint. Loading Loading @@ -428,6 +431,9 @@ public class WifiSettings2 extends RestrictedSettingsFragment } } return; } else if (requestCode == MANAGE_SUBSCRIPTION) { //Do nothing return; } final boolean formerlyRestricted = mIsRestricted; Loading Loading @@ -750,6 +756,12 @@ public class WifiSettings2 extends RestrictedSettingsFragment pref.setKey(wifiEntry.getKey()); pref.setOrder(index++); pref.refresh(); if (wifiEntry.canManageSubscription()) { pref.setOnButtonClickListener(preference -> { openSubscriptionHelpPage(); }); } mWifiEntryPreferenceCategory.addPreference(pref); } removeCachedPrefs(mWifiEntryPreferenceCategory); Loading Loading @@ -1061,4 +1073,24 @@ public class WifiSettings2 extends RestrictedSettingsFragment int reason = networkStatus.getNetworkSelectionDisableReason(); return WifiConfiguration.NetworkSelectionStatus.DISABLED_BY_WRONG_PASSWORD == reason; } @VisibleForTesting void openSubscriptionHelpPage() { final Intent intent = getHelpIntent(getContext()); if (intent != null) { try { startActivityForResult(intent, MANAGE_SUBSCRIPTION); } catch (ActivityNotFoundException e) { Log.e(TAG, "Activity was not found for intent, " + intent.toString()); } } } @VisibleForTesting Intent getHelpIntent(Context context) { return HelpUtils.getHelpIntent( context, context.getString(R.string.help_url_manage_wifi_subscription), context.getClass().getName()); } }
tests/robotests/src/com/android/settings/wifi/WifiSettings2Test.java +18 −6 Original line number Diff line number Diff line Loading @@ -25,6 +25,7 @@ import static org.mockito.Mockito.doNothing; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.spy; import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; Loading Loading @@ -98,13 +99,14 @@ public class WifiSettings2Test { @Test public void addNetworkFragmentSendResult_onActivityResult_shouldHandleEvent() { final WifiSettings wifiSettings = spy(new WifiSettings()); final WifiSettings2 wifiSettings2 = spy(new WifiSettings2()); final Intent intent = new Intent(); doNothing().when(wifiSettings).handleAddNetworkRequest(anyInt(), any(Intent.class)); doNothing().when(wifiSettings2).handleAddNetworkRequest(anyInt(), any(Intent.class)); wifiSettings.onActivityResult(WifiSettings.ADD_NETWORK_REQUEST, Activity.RESULT_OK, intent); wifiSettings2.onActivityResult(WifiSettings2.ADD_NETWORK_REQUEST, Activity.RESULT_OK, intent); verify(wifiSettings).handleAddNetworkRequest(anyInt(), any(Intent.class)); verify(wifiSettings2).handleAddNetworkRequest(anyInt(), any(Intent.class)); } @Test Loading Loading @@ -163,7 +165,7 @@ public class WifiSettings2Test { public void setAdditionalSettingsSummaries_wifiWakeupEnabled_displayOn() { final ContentResolver contentResolver = mContext.getContentResolver(); when(mWifiManager.isAutoWakeupEnabled()).thenReturn(true); when(mWifiManager.isScanAlwaysAvailable()).thenReturn(false); when(mWifiManager.isScanAlwaysAvailable()).thenReturn(true); Settings.Global.putInt(contentResolver, Settings.Global.AIRPLANE_MODE_ON, 0); when(mPowerManager.isPowerSaveMode()).thenReturn(false); Loading Loading @@ -200,7 +202,7 @@ public class WifiSettings2Test { when(activity.getSystemService(Context.USER_SERVICE)) .thenReturn(userManager); when(mWifiSettings2.findPreference(WifiSettings.PREF_KEY_DATA_USAGE)) when(mWifiSettings2.findPreference(WifiSettings2.PREF_KEY_DATA_USAGE)) .thenReturn(mDataUsagePreference); } Loading Loading @@ -268,4 +270,14 @@ public class WifiSettings2Test { verify(mWifiSettings2).changeNextButtonState(anyBoolean()); } @Test public void openSubscriptionHelpPage_shouldCallStartActivityForResult() { doReturn(new Intent()).when(mWifiSettings2).getHelpIntent(mContext); doNothing().when(mWifiSettings2).startActivityForResult(any(Intent.class), anyInt()); mWifiSettings2.openSubscriptionHelpPage(); verify(mWifiSettings2, times(1)).startActivityForResult(any(), anyInt()); } }