Merge "[Settings] Remove failure JUnit test cases"
diff --git a/res/values/strings.xml b/res/values/strings.xml
index f6c69d3..d2b145b 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -2268,6 +2268,8 @@
     <string name="wifi_advanced_device_mac_address_title">Device MAC address</string>
     <!-- Wi-Fi settings screen, advanced, title of the item to show the randomized Wi-Fi MAC address. [CHAR LIMIT=50] -->
     <string name="wifi_advanced_randomized_mac_address_title">Randomized MAC address</string>
+    <!-- Wi-Fi settings screen, advanced, title of the item to show the randomized Wi-Fi MAC address when disconnected. [CHAR LIMIT=50] -->
+    <string name="wifi_advanced_randomized_mac_address_disconnected_title">Randomized MAC address (last used)</string>
     <!-- Title of the screen to adjust IP settings -->
     <!-- Wi-Fi settings screen, advanced, title of the item to show the Wi-Fi device's current IP address. -->
     <string name="wifi_advanced_ip_address_title">IP address</string>
diff --git a/src/com/android/settings/accounts/AddAccountSettings.java b/src/com/android/settings/accounts/AddAccountSettings.java
index 81db4df..64bb201 100644
--- a/src/com/android/settings/accounts/AddAccountSettings.java
+++ b/src/com/android/settings/accounts/AddAccountSettings.java
@@ -247,8 +247,7 @@
         identityIntent.setAction(SHOULD_NOT_RESOLVE);
         identityIntent.addCategory(SHOULD_NOT_RESOLVE);
 
-        mPendingIntent = PendingIntent.getBroadcast(this, 0, identityIntent,
-                PendingIntent.FLAG_IMMUTABLE);
+        mPendingIntent = PendingIntent.getBroadcast(this, 0, identityIntent, 0);
         addAccountOptions.putParcelable(KEY_CALLER_IDENTITY, mPendingIntent);
         addAccountOptions.putBoolean(EXTRA_HAS_MULTIPLE_USERS, Utils.hasMultipleUsers(this));
         AccountManager.get(this).addAccountAsUser(
diff --git a/src/com/android/settings/bluetooth/BluetoothSliceBuilder.java b/src/com/android/settings/bluetooth/BluetoothSliceBuilder.java
index 67c3650..5a4ee1f 100644
--- a/src/com/android/settings/bluetooth/BluetoothSliceBuilder.java
+++ b/src/com/android/settings/bluetooth/BluetoothSliceBuilder.java
@@ -129,13 +129,13 @@
     private static PendingIntent getPrimaryAction(Context context) {
         final Intent intent = getIntent(context);
         return PendingIntent.getActivity(context, 0 /* requestCode */,
-                intent, PendingIntent.FLAG_IMMUTABLE);
+                intent, 0 /* flags */);
     }
 
     private static PendingIntent getBroadcastIntent(Context context) {
         final Intent intent = new Intent(ACTION_BLUETOOTH_SLICE_CHANGED)
                 .setClass(context, SliceBroadcastReceiver.class);
         return PendingIntent.getBroadcast(context, 0 /* requestCode */, intent,
-                PendingIntent.FLAG_UPDATE_CURRENT | PendingIntent.FLAG_IMMUTABLE);
+                PendingIntent.FLAG_UPDATE_CURRENT);
     }
 }
diff --git a/src/com/android/settings/homepage/contextualcards/slices/BatteryFixSlice.java b/src/com/android/settings/homepage/contextualcards/slices/BatteryFixSlice.java
index 6a5b300..d99d01e 100644
--- a/src/com/android/settings/homepage/contextualcards/slices/BatteryFixSlice.java
+++ b/src/com/android/settings/homepage/contextualcards/slices/BatteryFixSlice.java
@@ -163,8 +163,7 @@
 
     private PendingIntent getPrimaryAction() {
         final Intent intent = getIntent();
-        return PendingIntent.getActivity(mContext, 0  /* requestCode */, intent,
-                PendingIntent.FLAG_IMMUTABLE);
+        return PendingIntent.getActivity(mContext, 0  /* requestCode */, intent, 0  /* flags */);
     }
 
     private Slice buildBatteryGoodSlice(ListBuilder sliceBuilder, boolean isError) {
diff --git a/src/com/android/settings/homepage/contextualcards/slices/LowStorageSlice.java b/src/com/android/settings/homepage/contextualcards/slices/LowStorageSlice.java
index 576b435..2bc09e9 100644
--- a/src/com/android/settings/homepage/contextualcards/slices/LowStorageSlice.java
+++ b/src/com/android/settings/homepage/contextualcards/slices/LowStorageSlice.java
@@ -116,8 +116,8 @@
 
     private RowBuilder buildRowBuilder(CharSequence title, String summary, IconCompat icon) {
         final SliceAction primarySliceAction = SliceAction.createDeeplink(
-                PendingIntent.getActivity(mContext, 0, getIntent(), PendingIntent.FLAG_IMMUTABLE),
-                icon, ListBuilder.ICON_IMAGE, title);
+                PendingIntent.getActivity(mContext, 0, getIntent(), 0), icon,
+                ListBuilder.ICON_IMAGE, title);
 
         return new RowBuilder()
                 .setTitleItem(icon, ListBuilder.ICON_IMAGE)
diff --git a/src/com/android/settings/location/LocationSlice.java b/src/com/android/settings/location/LocationSlice.java
index f8add12..2759690 100644
--- a/src/com/android/settings/location/LocationSlice.java
+++ b/src/com/android/settings/location/LocationSlice.java
@@ -96,6 +96,6 @@
     private PendingIntent getPrimaryAction() {
         final Intent intent = getIntent();
         return PendingIntent.getActivity(mContext, 0 /* requestCode */,
-                intent, PendingIntent.FLAG_IMMUTABLE);
+                intent, 0 /* flags */);
     }
 }
diff --git a/src/com/android/settings/notification/zen/ZenModeSliceBuilder.java b/src/com/android/settings/notification/zen/ZenModeSliceBuilder.java
index 14c9117..c9a203e 100644
--- a/src/com/android/settings/notification/zen/ZenModeSliceBuilder.java
+++ b/src/com/android/settings/notification/zen/ZenModeSliceBuilder.java
@@ -142,14 +142,13 @@
 
     private static PendingIntent getPrimaryAction(Context context) {
         final Intent intent = getIntent(context);
-        return PendingIntent.getActivity(context, 0 /* requestCode */, intent,
-                PendingIntent.FLAG_IMMUTABLE);
+        return PendingIntent.getActivity(context, 0 /* requestCode */, intent, 0 /* flags */);
     }
 
     private static PendingIntent getBroadcastIntent(Context context) {
         final Intent intent = new Intent(ACTION_ZEN_MODE_SLICE_CHANGED)
                 .setClass(context, SliceBroadcastReceiver.class);
         return PendingIntent.getBroadcast(context, 0 /* requestCode */, intent,
-                PendingIntent.FLAG_CANCEL_CURRENT | PendingIntent.FLAG_IMMUTABLE);
+                PendingIntent.FLAG_CANCEL_CURRENT);
     }
 }
diff --git a/src/com/android/settings/slices/CustomSliceable.java b/src/com/android/settings/slices/CustomSliceable.java
index 57475a9..92c604e 100644
--- a/src/com/android/settings/slices/CustomSliceable.java
+++ b/src/com/android/settings/slices/CustomSliceable.java
@@ -95,7 +95,7 @@
                 .setData(getUri())
                 .setClass(context, SliceBroadcastReceiver.class);
         return PendingIntent.getBroadcast(context, 0 /* requestCode */, intent,
-                PendingIntent.FLAG_UPDATE_CURRENT | PendingIntent.FLAG_IMMUTABLE);
+                PendingIntent.FLAG_UPDATE_CURRENT);
     }
 
     @Override
diff --git a/src/com/android/settings/slices/SliceBuilderUtils.java b/src/com/android/settings/slices/SliceBuilderUtils.java
index 6e14a3f..552927e 100644
--- a/src/com/android/settings/slices/SliceBuilderUtils.java
+++ b/src/com/android/settings/slices/SliceBuilderUtils.java
@@ -159,7 +159,7 @@
                 .setClass(context, SliceBroadcastReceiver.class)
                 .putExtra(EXTRA_SLICE_KEY, data.getKey());
         return PendingIntent.getBroadcast(context, 0 /* requestCode */, intent,
-                PendingIntent.FLAG_UPDATE_CURRENT | PendingIntent.FLAG_IMMUTABLE);
+                PendingIntent.FLAG_UPDATE_CURRENT);
     }
 
     /**
@@ -167,8 +167,7 @@
      */
     public static PendingIntent getContentPendingIntent(Context context, SliceData sliceData) {
         final Intent intent = getContentIntent(context, sliceData);
-        return PendingIntent.getActivity(context, 0 /* requestCode */, intent,
-                PendingIntent.FLAG_IMMUTABLE);
+        return PendingIntent.getActivity(context, 0 /* requestCode */, intent, 0 /* flags */);
     }
 
     /**
diff --git a/src/com/android/settings/wifi/details2/WifiDetailPreferenceController2.java b/src/com/android/settings/wifi/details2/WifiDetailPreferenceController2.java
index 9676f58..a2b143e 100644
--- a/src/com/android/settings/wifi/details2/WifiDetailPreferenceController2.java
+++ b/src/com/android/settings/wifi/details2/WifiDetailPreferenceController2.java
@@ -738,10 +738,7 @@
         }
 
         mMacAddressPref.setVisible(true);
-
-        mMacAddressPref.setTitle((mWifiEntry.getPrivacy() == WifiEntry.PRIVACY_RANDOMIZED_MAC)
-                ? R.string.wifi_advanced_randomized_mac_address_title
-                : R.string.wifi_advanced_device_mac_address_title);
+        mMacAddressPref.setTitle(getMacAddressTitle());
 
         if (macAddress.equals(WifiInfo.DEFAULT_MAC_ADDRESS)) {
             mMacAddressPref.setSummary(R.string.device_info_not_available);
@@ -750,6 +747,15 @@
         }
     }
 
+    private int getMacAddressTitle() {
+        if (mWifiEntry.getPrivacy() == WifiEntry.PRIVACY_RANDOMIZED_MAC) {
+            return mWifiEntry.getConnectedState() == WifiEntry.CONNECTED_STATE_CONNECTED
+                    ? R.string.wifi_advanced_randomized_mac_address_title
+                    : R.string.wifi_advanced_randomized_mac_address_disconnected_title;
+        }
+        return R.string.wifi_advanced_device_mac_address_title;
+    }
+
     private void updatePreference(Preference pref, String detailText) {
         if (!TextUtils.isEmpty(detailText)) {
             pref.setSummary(detailText);
diff --git a/tests/robotests/src/com/android/settings/wifi/details2/WifiDetailPreferenceController2Test.java b/tests/robotests/src/com/android/settings/wifi/details2/WifiDetailPreferenceController2Test.java
index 1f4254e..c5f2a7f 100644
--- a/tests/robotests/src/com/android/settings/wifi/details2/WifiDetailPreferenceController2Test.java
+++ b/tests/robotests/src/com/android/settings/wifi/details2/WifiDetailPreferenceController2Test.java
@@ -815,6 +815,22 @@
     }
 
     @Test
+    public void macAddressPref_shouldVisibleAsRandomizedForConnectedNetwork() {
+        setUpForConnectedNetwork();
+        setUpSpyController();
+        when(mMockWifiEntry.isSaved()).thenReturn(true);
+        when(mMockWifiEntry.getPrivacy()).thenReturn(WifiEntry.PRIVACY_RANDOMIZED_MAC);
+        when(mMockWifiEntry.getMacAddress()).thenReturn(RANDOMIZED_MAC_ADDRESS);
+
+        displayAndResume();
+
+        verify(mMockMacAddressPref).setVisible(true);
+        verify(mMockMacAddressPref).setSummary(RANDOMIZED_MAC_ADDRESS);
+        verify(mMockMacAddressPref).setTitle(
+                R.string.wifi_advanced_randomized_mac_address_title);
+    }
+
+    @Test
     public void macAddressPref_shouldVisibleAsRandomizedForDisconnectedNetwork() {
         setUpForDisconnectedNetwork();
         when(mMockWifiEntry.isSaved()).thenReturn(true);
@@ -825,7 +841,8 @@
 
         verify(mMockMacAddressPref).setVisible(true);
         verify(mMockMacAddressPref).setSummary(RANDOMIZED_MAC_ADDRESS);
-        verify(mMockMacAddressPref).setTitle(R.string.wifi_advanced_randomized_mac_address_title);
+        verify(mMockMacAddressPref).setTitle(
+                R.string.wifi_advanced_randomized_mac_address_disconnected_title);
     }
 
     @Test