Merge "Update the icon of security IA." into rvc-dev
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 555cbd1..2fd7e45 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -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>
diff --git a/src/com/android/settings/network/telephony/RenameMobileNetworkDialogFragment.java b/src/com/android/settings/network/telephony/RenameMobileNetworkDialogFragment.java
index ab8327c..2340236 100644
--- a/src/com/android/settings/network/telephony/RenameMobileNetworkDialogFragment.java
+++ b/src/com/android/settings/network/telephony/RenameMobileNetworkDialogFragment.java
@@ -200,7 +200,7 @@
 
     private Color[] getColors() {
         final Resources res = getContext().getResources();
-        final int[] colorInts = res.getIntArray(android.R.array.simColors);
+        final int[] colorInts = res.getIntArray(com.android.internal.R.array.sim_colors);
         final String[] colorStrings = res.getStringArray(R.array.color_picker);
         final int iconSize = res.getDimensionPixelSize(R.dimen.color_swatch_size);
         final int strokeWidth = res.getDimensionPixelSize(R.dimen.color_swatch_stroke_width);
diff --git a/src/com/android/settings/wifi/WifiSettings2.java b/src/com/android/settings/wifi/WifiSettings2.java
index 5152569..b94994e 100644
--- a/src/com/android/settings/wifi/WifiSettings2.java
+++ b/src/com/android/settings/wifi/WifiSettings2.java
@@ -22,6 +22,7 @@
 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;
@@ -69,6 +70,7 @@
 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;
@@ -109,6 +111,7 @@
     @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.
@@ -428,6 +431,9 @@
                 }
             }
             return;
+        } else if (requestCode == MANAGE_SUBSCRIPTION) {
+            //Do nothing
+            return;
         }
 
         final boolean formerlyRestricted = mIsRestricted;
@@ -750,6 +756,12 @@
             pref.setKey(wifiEntry.getKey());
             pref.setOrder(index++);
             pref.refresh();
+
+            if (wifiEntry.canManageSubscription()) {
+                pref.setOnButtonClickListener(preference -> {
+                    openSubscriptionHelpPage();
+                });
+            }
             mWifiEntryPreferenceCategory.addPreference(pref);
         }
         removeCachedPrefs(mWifiEntryPreferenceCategory);
@@ -1061,4 +1073,24 @@
         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());
+    }
 }
diff --git a/tests/robotests/src/com/android/settings/homepage/contextualcards/slices/ContextualAdaptiveSleepSliceTest.java b/tests/robotests/src/com/android/settings/homepage/contextualcards/slices/ContextualAdaptiveSleepSliceTest.java
index 0a88d64..3261902 100644
--- a/tests/robotests/src/com/android/settings/homepage/contextualcards/slices/ContextualAdaptiveSleepSliceTest.java
+++ b/tests/robotests/src/com/android/settings/homepage/contextualcards/slices/ContextualAdaptiveSleepSliceTest.java
@@ -66,7 +66,7 @@
         mContext = spy(RuntimeEnvironment.application);
         mContextualAdaptiveSleepSlice = spy(new ContextualAdaptiveSleepSlice(mContext));
 
-        Settings.System.putInt(mContext.getContentResolver(), Settings.System.ADAPTIVE_SLEEP, 0);
+        Settings.Secure.putInt(mContext.getContentResolver(), Settings.Secure.ADAPTIVE_SLEEP, 0);
         doReturn(mPackageManager).when(mContext).getPackageManager();
         doReturn(mSharedPreferences).when(mContext).getSharedPreferences(eq(PREF), anyInt());
         doReturn(true).when(mContextualAdaptiveSleepSlice).isSettingsAvailable();
@@ -124,7 +124,7 @@
 
     @Test
     public void getSlice_DoNotShowIFTurnedOn() {
-        Settings.System.putInt(mContext.getContentResolver(), Settings.System.ADAPTIVE_SLEEP, 1);
+        Settings.Secure.putInt(mContext.getContentResolver(), Settings.Secure.ADAPTIVE_SLEEP, 1);
 
         final Slice slice = mContextualAdaptiveSleepSlice.getSlice();
 
diff --git a/tests/robotests/src/com/android/settings/wifi/WifiSettings2Test.java b/tests/robotests/src/com/android/settings/wifi/WifiSettings2Test.java
index 2af87fe..c85ea49 100644
--- a/tests/robotests/src/com/android/settings/wifi/WifiSettings2Test.java
+++ b/tests/robotests/src/com/android/settings/wifi/WifiSettings2Test.java
@@ -25,6 +25,7 @@
 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;
 
@@ -98,13 +99,14 @@
 
     @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
@@ -163,7 +165,7 @@
     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);
 
@@ -200,7 +202,7 @@
         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);
     }
 
@@ -268,4 +270,14 @@
 
         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());
+    }
 }