[Passpointv2] Implement DataUsage header for Wi-Fi detail fragment

Change header to a data usage chart of the specified Wi-Fi network.

Bug: 124700353
Test: make RunSettingsRoboTests -j32 ROBOTEST_FILTER=com.android.settings
Change-Id: Ide08ffd5e97ced5fe54707562690155414598dac
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 3673af4..165ee0b 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -10756,7 +10756,7 @@
     <string name="media_output_panel_summary_of_playing_device">Currently playing on <xliff:g id="device_name" example="Bose headphone">%1$s</xliff:g></string>
 
     <!-- Message for forget passpoint dialog [CHAR LIMIT=none] -->
-    <string name="forget_passpoint_dialog_message">Your subscription with this provider may be cancelled. Recurring subscriptions will not be cancelled. For more information, check with your provider.</string>
+    <string name="forget_passpoint_dialog_message">You may lose access to any remaining time or data. Check with your provider before removing.</string>
 
     <!-- Keywords for Content Capture feature [CHAR_LIMIT=32] -->
     <string name="keywords_content_capture">content capture</string>
@@ -10764,5 +10764,4 @@
     <string name="content_capture">Content Capture</string>
     <!-- Description of the 'Content Capture' feature toggle in the Settings -> Privacy screen [CHAR LIMIT=NONE]-->
     <string name="content_capture_summary">Allow Android to save information seen on your screen or heard in video or audio content. Android makes helpful suggestions based on your device activity.</string>
-
 </resources>
diff --git a/res/xml/wifi_network_details_fragment.xml b/res/xml/wifi_network_details_fragment.xml
index 7c542d8..8979efc 100644
--- a/res/xml/wifi_network_details_fragment.xml
+++ b/res/xml/wifi_network_details_fragment.xml
@@ -26,6 +26,11 @@
         android:order="-10000"
         settings:allowDividerBelow="true"/>
 
+    <com.android.settings.datausage.DataUsageSummaryPreference
+        android:key="status_header"
+        android:selectable="false"
+        settings:isPreferenceVisible="false"/>
+
     <!-- Buttons -->
     <com.android.settingslib.widget.ActionButtonsPreference
         android:key="buttons"
diff --git a/src/com/android/settings/core/FeatureFlags.java b/src/com/android/settings/core/FeatureFlags.java
index 6c2da07..fbb2ae3 100644
--- a/src/com/android/settings/core/FeatureFlags.java
+++ b/src/com/android/settings/core/FeatureFlags.java
@@ -26,4 +26,7 @@
     public static final String NETWORK_INTERNET_V2 = "settings_network_and_internet_v2";
     public static final String SLICE_INJECTION = "settings_slice_injection";
     public static final String MAINLINE_MODULE = "settings_mainline_module";
+    public static final String WIFI_DETAILS_SAVED_SCREEN = "settings_wifi_details_saved_screen";
+    public static final String WIFI_DETAILS_DATAUSAGE_HEADER =
+            "settings_wifi_details_datausage_header";
 }
diff --git a/src/com/android/settings/datausage/DataUsageSummaryPreference.java b/src/com/android/settings/datausage/DataUsageSummaryPreference.java
index 481538d..93df2f1 100644
--- a/src/com/android/settings/datausage/DataUsageSummaryPreference.java
+++ b/src/com/android/settings/datausage/DataUsageSummaryPreference.java
@@ -69,6 +69,8 @@
     private boolean mDefaultTextColorSet;
     private int mDefaultTextColor;
     private int mNumPlans;
+    /** The specified un-initialized value for cycle time */
+    private final long CYCLE_TIME_UNINITIAL_VALUE = 0;
     /** The ending time of the billing cycle in milliseconds since epoch. */
     private long mCycleEndTimeMs;
     /** The time of the last update in standard milliseconds since the epoch */
@@ -94,6 +96,7 @@
     /** WiFi only mode */
     private boolean mWifiMode;
     private String mUsagePeriod;
+    private boolean mSingleWifi;    // Shows only one specified WiFi network usage
 
     public DataUsageSummaryPreference(Context context, AttributeSet attrs) {
         super(context, attrs);
@@ -142,9 +145,10 @@
         notifyChanged();
     }
 
-    void setWifiMode(boolean isWifiMode, String usagePeriod) {
+    void setWifiMode(boolean isWifiMode, String usagePeriod, boolean isSingleWifi) {
         mWifiMode = isWifiMode;
         mUsagePeriod = usagePeriod;
+        mSingleWifi = isSingleWifi;
         notifyChanged();
     }
 
@@ -171,7 +175,16 @@
         Button launchButton = (Button) holder.findViewById(R.id.launch_mdp_app_button);
         TextView limitInfo = (TextView) holder.findViewById(R.id.data_limits);
 
-        if (mWifiMode) {
+        if (mWifiMode && mSingleWifi) {
+            updateCycleTimeText(holder);
+
+            usageTitle.setVisibility(View.GONE);
+            launchButton.setVisibility(View.GONE);
+            carrierInfo.setVisibility(View.GONE);
+
+            limitInfo.setVisibility(TextUtils.isEmpty(mLimitInfoText) ? View.GONE : View.VISIBLE);
+            limitInfo.setText(mLimitInfoText);
+        } else if (mWifiMode) {
             usageTitle.setText(R.string.data_usage_wifi_title);
             usageTitle.setVisibility(View.VISIBLE);
             TextView cycleTime = (TextView) holder.findViewById(R.id.cycle_left_time);
@@ -265,6 +278,13 @@
     private void updateCycleTimeText(PreferenceViewHolder holder) {
         TextView cycleTime = (TextView) holder.findViewById(R.id.cycle_left_time);
 
+        // Takes zero as a special case which value is never set.
+        if (mCycleEndTimeMs == CYCLE_TIME_UNINITIAL_VALUE) {
+            cycleTime.setVisibility(View.GONE);
+            return;
+        }
+
+        cycleTime.setVisibility(View.VISIBLE);
         long millisLeft = mCycleEndTimeMs - System.currentTimeMillis();
         if (millisLeft <= 0) {
             cycleTime.setText(getContext().getString(R.string.billing_cycle_none_left));
diff --git a/src/com/android/settings/datausage/DataUsageSummaryPreferenceController.java b/src/com/android/settings/datausage/DataUsageSummaryPreferenceController.java
index 353c5ee..a06bb77 100644
--- a/src/com/android/settings/datausage/DataUsageSummaryPreferenceController.java
+++ b/src/com/android/settings/datausage/DataUsageSummaryPreferenceController.java
@@ -65,10 +65,10 @@
     private final EntityHeaderController mEntityHeaderController;
     private final Lifecycle mLifecycle;
     private final PreferenceFragmentCompat mFragment;
-    private final DataUsageController mDataUsageController;
-    private final DataUsageInfoController mDataInfoController;
+    protected final DataUsageController mDataUsageController;
+    protected final DataUsageInfoController mDataInfoController;
     private final NetworkTemplate mDefaultTemplate;
-    private final NetworkPolicyEditor mPolicyEditor;
+    protected final NetworkPolicyEditor mPolicyEditor;
     private final int mDataUsageTemplate;
     private final boolean mHasMobileData;
     private final SubscriptionManager mSubscriptionManager;
@@ -200,11 +200,13 @@
         if (DataUsageUtils.hasSim(mActivity)) {
             info = mDataUsageController.getDataUsageInfo(mDefaultTemplate);
             mDataInfoController.updateDataLimit(info, mPolicyEditor.getPolicy(mDefaultTemplate));
-            summaryPreference.setWifiMode(/* isWifiMode */ false, /* usagePeriod */ null);
+            summaryPreference.setWifiMode(/* isWifiMode */ false,
+                    /* usagePeriod */ null, /* isSingleWifi */ false);
         } else {
             info = mDataUsageController.getDataUsageInfo(
                     NetworkTemplate.buildTemplateWifiWildcard());
-            summaryPreference.setWifiMode(/* isWifiMode */ true, /* usagePeriod */ info.period);
+            summaryPreference.setWifiMode(/* isWifiMode */ true, /* usagePeriod */
+                    info.period, /* isSingleWifi */ false);
             summaryPreference.setLimitInfo(null);
             summaryPreference.setUsageNumbers(info.usageLevel,
                     /* dataPlanSize */ -1L,
diff --git a/src/com/android/settings/datausage/WifiDataUsageSummaryPreferenceController.java b/src/com/android/settings/datausage/WifiDataUsageSummaryPreferenceController.java
new file mode 100644
index 0000000..8b6d10a
--- /dev/null
+++ b/src/com/android/settings/datausage/WifiDataUsageSummaryPreferenceController.java
@@ -0,0 +1,72 @@
+/*
+ * Copyright (C) 2019 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.datausage;
+
+import android.app.Activity;
+import android.net.NetworkTemplate;
+import android.telephony.SubscriptionManager;
+import android.text.format.Formatter;
+
+import androidx.preference.Preference;
+import androidx.preference.PreferenceFragmentCompat;
+
+import com.android.settingslib.core.lifecycle.Lifecycle;
+import com.android.settingslib.net.DataUsageController;
+
+/**
+ *  The controller displays a data usage chart for the specified Wi-Fi network.
+ */
+public class WifiDataUsageSummaryPreferenceController extends DataUsageSummaryPreferenceController {
+    final String mNetworkId;
+
+    public WifiDataUsageSummaryPreferenceController(Activity activity,
+            Lifecycle lifecycle, PreferenceFragmentCompat fragment, CharSequence networkId) {
+        super(activity, lifecycle, fragment, SubscriptionManager.INVALID_SUBSCRIPTION_ID);
+
+        if (networkId == null) {
+            mNetworkId = null;
+        } else {
+            mNetworkId = String.valueOf(networkId);
+        }
+    }
+
+    @Override
+    public void updateState(Preference preference) {
+        if (preference == null) {
+            return;
+        }
+
+        final DataUsageSummaryPreference mPreference = (DataUsageSummaryPreference) preference;
+        // TODO(b/126299427): Currently gets data usage of whole Wi-Fi networks, but should get
+        //  specified one.
+        final NetworkTemplate template = NetworkTemplate.buildTemplateWifi(mNetworkId);
+        final DataUsageController.DataUsageInfo info = mDataUsageController.getDataUsageInfo(
+                template);
+        mDataInfoController.updateDataLimit(info, mPolicyEditor.getPolicy(template));
+
+        mPreference.setWifiMode(/* isWifiMode */ true, /* usagePeriod */
+                info.period, /* isSingleWifi */ true);
+        mPreference.setChartEnabled(true);
+        // Treats Wi-Fi network as unlimited network, which has same usage level and limited level.
+        mPreference.setUsageNumbers(info.usageLevel, info.usageLevel, /* hasMobileData */ false);
+
+        // TODO(b/126142293): Passpoint Wi-Fi should have limit of data usage and time remaining
+        mPreference.setProgress(100);
+        mPreference.setLabels(Formatter.formatFileSize(mContext, /* sizeBytes */ 0),
+                DataUsageUtils.formatDataUsage(mContext, info.usageLevel));
+    }
+}
diff --git a/src/com/android/settings/wifi/WifiSettings.java b/src/com/android/settings/wifi/WifiSettings.java
index 9e5bfc8..a8fc34d 100644
--- a/src/com/android/settings/wifi/WifiSettings.java
+++ b/src/com/android/settings/wifi/WifiSettings.java
@@ -67,6 +67,7 @@
 import com.android.settings.widget.SwitchBarController;
 import com.android.settings.wifi.details.WifiNetworkDetailsFragment;
 import com.android.settings.wifi.dpp.WifiDppUtils;
+import com.android.settings.wifi.savedaccesspoints.SavedAccessPointsWifiSettings;
 import com.android.settingslib.RestrictedLockUtils;
 import com.android.settingslib.RestrictedLockUtilsInternal;
 import com.android.settingslib.search.SearchIndexable;
@@ -968,8 +969,13 @@
     }
 
     private void launchNetworkDetailsFragment(ConnectedAccessPointPreference pref) {
+        final AccessPoint accessPoint = pref.getAccessPoint();
+        final Context context = getContext();
+        final CharSequence title = SavedAccessPointsWifiSettings.usingDetailsFragment(context) ?
+                accessPoint.getTitle() : context.getText(R.string.pref_title_network_details);
+
         new SubSettingLauncher(getContext())
-                .setTitleRes(R.string.pref_title_network_details)
+                .setTitleText(title)
                 .setDestination(WifiNetworkDetailsFragment.class.getName())
                 .setArguments(pref.getExtras())
                 .setSourceMetricsCategory(getMetricsCategory())
diff --git a/src/com/android/settings/wifi/details/WifiDetailPreferenceController.java b/src/com/android/settings/wifi/details/WifiDetailPreferenceController.java
index c2daa94..89565df 100644
--- a/src/com/android/settings/wifi/details/WifiDetailPreferenceController.java
+++ b/src/com/android/settings/wifi/details/WifiDetailPreferenceController.java
@@ -42,6 +42,7 @@
 import android.net.wifi.WifiManager;
 import android.os.Handler;
 import android.text.TextUtils;
+import android.util.FeatureFlagUtils;
 import android.util.Log;
 import android.widget.ImageView;
 import android.widget.Toast;
@@ -51,12 +52,14 @@
 import androidx.fragment.app.Fragment;
 import androidx.preference.Preference;
 import androidx.preference.PreferenceCategory;
+import androidx.preference.PreferenceFragmentCompat;
 import androidx.preference.PreferenceScreen;
 
 import com.android.settings.R;
 import com.android.settings.Utils;
 import com.android.settings.core.FeatureFlags;
 import com.android.settings.core.PreferenceControllerMixin;
+import com.android.settings.datausage.WifiDataUsageSummaryPreferenceController;
 import com.android.settings.development.featureflags.FeatureFlagPersistent;
 import com.android.settings.widget.EntityHeaderController;
 import com.android.settings.wifi.WifiDialog;
@@ -150,6 +153,9 @@
     private Preference mDnsPref;
     private PreferenceCategory mIpv6Category;
     private Preference mIpv6AddressPref;
+    private Lifecycle mLifecycle;
+    Preference mDataUsageSummaryPref;
+    WifiDataUsageSummaryPreferenceController mSummaryHeaderController;
 
     private final IconInjector mIconInjector;
     private final IntentFilter mFilter;
@@ -262,6 +268,7 @@
         mFilter.addAction(WifiManager.RSSI_CHANGED_ACTION);
         mFilter.addAction(WifiManager.CONFIGURED_NETWORKS_CHANGED_ACTION);
 
+        mLifecycle = lifecycle;
         lifecycle.addObserver(this);
     }
 
@@ -313,6 +320,17 @@
 
     private void setupEntityHeader(PreferenceScreen screen) {
         LayoutPreference headerPref = screen.findPreference(KEY_HEADER);
+
+        if (usingDataUsageHeader(mContext)) {
+            headerPref.setVisible(false);
+            mDataUsageSummaryPref = screen.findPreference("status_header");
+            mDataUsageSummaryPref.setVisible(true);
+            mSummaryHeaderController =
+                new WifiDataUsageSummaryPreferenceController(mFragment.getActivity(),
+                        mLifecycle, (PreferenceFragmentCompat) mFragment, mAccessPoint.getSsid());
+            return;
+        }
+
         mEntityHeaderController =
                 EntityHeaderController.newInstance(
                         mFragment.getActivity(), mFragment,
@@ -326,6 +344,15 @@
         mEntityHeaderController.setLabel(mAccessPoint.getTitle());
     }
 
+    private void refreshEntityHeader() {
+        if (usingDataUsageHeader(mContext)) {
+            mSummaryHeaderController.updateState(mDataUsageSummaryPref);
+        } else {
+            mEntityHeaderController.setSummary(mAccessPoint.getSettingsSummary())
+                    .done(mFragment.getActivity(), true /* rebind */);
+        }
+    }
+
     @Override
     public void onResume() {
         // Ensure mNetwork is set before any callbacks above are delivered, since our
@@ -360,9 +387,7 @@
         // MAC Address Pref
         mMacAddressPref.setSummary(mWifiConfig.getRandomizedMacAddress().toString());
 
-        // TODO(b/124700353): Change header to data usage chart
-        mEntityHeaderController.setSummary(mAccessPoint.getSettingsSummary())
-                .done(mFragment.getActivity(), true /* rebind */);
+        refreshEntityHeader();
 
         updateIpLayerInfo();
 
@@ -429,8 +454,7 @@
 
     private void refreshNetworkState() {
         mAccessPoint.update(mWifiConfig, mWifiInfo, mNetworkInfo);
-        mEntityHeaderController.setSummary(mAccessPoint.getSettingsSummary())
-                .done(mFragment.getActivity(), true /* rebind */);
+        refreshEntityHeader();
     }
 
     private void refreshRssiViews() {
@@ -443,7 +467,10 @@
         Drawable wifiIcon = mIconInjector.getIcon(mRssiSignalLevel);
 
         wifiIcon.setTintList(Utils.getColorAccent(mContext));
-        mEntityHeaderController.setIcon(wifiIcon).done(mFragment.getActivity(), true /* rebind */);
+        if (mEntityHeaderController != null) {
+            mEntityHeaderController.setIcon(wifiIcon).done(mFragment.getActivity(),
+                    true /* rebind */);
+        }
 
         Drawable wifiIconDark = wifiIcon.getConstantState().newDrawable().mutate();
         wifiIconDark.setTintList(Utils.getColorAttr(mContext, android.R.attr.colorControlNormal));
@@ -670,4 +697,8 @@
             return mContext.getDrawable(Utils.getWifiIconResource(level)).mutate();
         }
     }
+
+    private boolean usingDataUsageHeader(Context context) {
+        return FeatureFlagUtils.isEnabled(context, FeatureFlags.WIFI_DETAILS_DATAUSAGE_HEADER);
+    }
 }
diff --git a/src/com/android/settings/wifi/details/WifiNetworkDetailsFragment.java b/src/com/android/settings/wifi/details/WifiNetworkDetailsFragment.java
index fd2e14a..7edd227 100644
--- a/src/com/android/settings/wifi/details/WifiNetworkDetailsFragment.java
+++ b/src/com/android/settings/wifi/details/WifiNetworkDetailsFragment.java
@@ -153,11 +153,11 @@
 
         controllers.add(mWifiDetailPreferenceController);
         controllers.add(new WifiMeteredPreferenceController(context, mAccessPoint.getConfig()));
-        WifiPrivacyPreferenceController preferenceController = new WifiPrivacyPreferenceController(
+        WifiPrivacyPreferenceController privacyController = new WifiPrivacyPreferenceController(
                 context);
-        preferenceController.setWifiConfiguration(mAccessPoint.getConfig());
-        preferenceController.setIsEphemeral(mAccessPoint.isEphemeral());
-        controllers.add(preferenceController);
+        privacyController.setWifiConfiguration(mAccessPoint.getConfig());
+        privacyController.setIsEphemeral(mAccessPoint.isEphemeral());
+        controllers.add(privacyController);
 
         return controllers;
     }
diff --git a/src/com/android/settings/wifi/savedaccesspoints/SavedAccessPointsWifiSettings.java b/src/com/android/settings/wifi/savedaccesspoints/SavedAccessPointsWifiSettings.java
index 867c2f8..ea858f3 100644
--- a/src/com/android/settings/wifi/savedaccesspoints/SavedAccessPointsWifiSettings.java
+++ b/src/com/android/settings/wifi/savedaccesspoints/SavedAccessPointsWifiSettings.java
@@ -199,11 +199,7 @@
      * Checks if showing WifiNetworkDetailsFragment when clicking saved network item.
      */
     public static boolean usingDetailsFragment(Context context) {
-        if (FeatureFlagUtils.isEnabled(context, FeatureFlags.MOBILE_NETWORK_V2)
-                && FeatureFlagPersistent.isEnabled(context, FeatureFlags.NETWORK_INTERNET_V2)) {
-            return false;    // TODO(b/124695272): mark true when UI is ready.
-        }
-        return false;
+        return FeatureFlagUtils.isEnabled(context, FeatureFlags.WIFI_DETAILS_SAVED_SCREEN);
     }
 
     boolean isSubscriptionsFeatureEnabled() {
diff --git a/tests/robotests/assets/grandfather_invalid_base_preference_controller_constructor b/tests/robotests/assets/grandfather_invalid_base_preference_controller_constructor
index ce03d95..675108d 100644
--- a/tests/robotests/assets/grandfather_invalid_base_preference_controller_constructor
+++ b/tests/robotests/assets/grandfather_invalid_base_preference_controller_constructor
@@ -6,6 +6,7 @@
 com.android.settings.bluetooth.BluetoothDeviceNamePreferenceController
 com.android.settings.bluetooth.BluetoothDeviceRenamePreferenceController
 com.android.settings.datausage.DataUsageSummaryPreferenceController
+com.android.settings.datausage.WifiDataUsageSummaryPreferenceController
 com.android.settings.fuelgauge.RestrictAppPreferenceController
 com.android.settings.fuelgauge.batterysaver.BatterySaverButtonPreferenceController
 com.android.settings.fuelgauge.batterytip.BatteryTipPreferenceController
diff --git a/tests/robotests/src/com/android/settings/datausage/DataUsageSummaryPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/datausage/DataUsageSummaryPreferenceControllerTest.java
index 4347637..eab3dde 100644
--- a/tests/robotests/src/com/android/settings/datausage/DataUsageSummaryPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/datausage/DataUsageSummaryPreferenceControllerTest.java
@@ -164,7 +164,8 @@
         verify(mSummaryPreference).setUsageInfo(info.cycleEnd, now - UPDATE_BACKOFF_MS,
                 CARRIER_NAME, 1 /* numPlans */, intent);
         verify(mSummaryPreference).setChartEnabled(true);
-        verify(mSummaryPreference).setWifiMode(false, null);
+        verify(mSummaryPreference).setWifiMode(false /* isWifiMode */, null /* usagePeriod */,
+                false /* isSingleWifi */);
     }
 
     @Test
@@ -188,7 +189,8 @@
         verify(mSummaryPreference).setUsageInfo(info.cycleEnd, now - UPDATE_BACKOFF_MS,
                 CARRIER_NAME, 0 /* numPlans */, intent);
         verify(mSummaryPreference).setChartEnabled(true);
-        verify(mSummaryPreference).setWifiMode(false, null);
+        verify(mSummaryPreference).setWifiMode(false /* isWifiMode */, null /* usagePeriod */,
+                false /* isSingleWifi */);
     }
 
     @Test
@@ -214,7 +216,8 @@
                 0 /* numPlans */,
                 null /* launchIntent */);
         verify(mSummaryPreference).setChartEnabled(true);
-        verify(mSummaryPreference).setWifiMode(false, null);
+        verify(mSummaryPreference).setWifiMode(false /* isWifiMode */, null /* usagePeriod */,
+                false /* isSingleWifi */);
     }
 
     @Test
@@ -240,7 +243,8 @@
                 0 /* numPlans */,
                 null /* launchIntent */);
         verify(mSummaryPreference).setChartEnabled(false);
-        verify(mSummaryPreference).setWifiMode(false, null);
+        verify(mSummaryPreference).setWifiMode(false /* isWifiMode */, null /* usagePeriod */,
+                false /* isSingleWifi */);
     }
 
     @Test
@@ -321,7 +325,8 @@
         verify(mSummaryPreference).setLimitInfo(captor.capture());
         CharSequence value = captor.getValue();
         assertThat(value.toString()).isEqualTo("1.00 MB data warning / 1.00 MB data limit");
-        verify(mSummaryPreference).setWifiMode(false, null);
+        verify(mSummaryPreference).setWifiMode(false /* isWifiMode */, null /* usagePeriod */,
+                false /* isSingleWifi */);
     }
 
     @Test
@@ -340,7 +345,8 @@
         when(mTelephonyManager.getSimState()).thenReturn(TelephonyManager.SIM_STATE_ABSENT);
         mController.updateState(mSummaryPreference);
 
-        verify(mSummaryPreference).setWifiMode(true, info.period);
+        verify(mSummaryPreference).setWifiMode(true /* isWifiMode */, info.period /* usagePeriod */,
+                false /* isSingleWifi */);
         verify(mSummaryPreference).setLimitInfo(null);
         verify(mSummaryPreference).setUsageNumbers(info.usageLevel, -1L, true);
         verify(mSummaryPreference).setChartEnabled(false);
diff --git a/tests/robotests/src/com/android/settings/datausage/DataUsageSummaryPreferenceTest.java b/tests/robotests/src/com/android/settings/datausage/DataUsageSummaryPreferenceTest.java
index 525b82e..35e6b1d 100644
--- a/tests/robotests/src/com/android/settings/datausage/DataUsageSummaryPreferenceTest.java
+++ b/tests/robotests/src/com/android/settings/datausage/DataUsageSummaryPreferenceTest.java
@@ -488,7 +488,7 @@
                 new Intent());
         mSummaryPreference.setUsageNumbers(1000000L, -1L, true);
         final String cycleText = "The quick fox";
-        mSummaryPreference.setWifiMode(true, cycleText);
+        mSummaryPreference.setWifiMode(true /* isWifiMode */, cycleText, false /* isSingleWifi */);
         doReturn(200L).when(mSummaryPreference).getHistoricalUsageLevel();
 
         bindViewHolder();
@@ -524,7 +524,8 @@
     @Test
     public void testSetWifiMode_noUsageInfo_shouldDisableLaunchButton() {
         mSummaryPreference = spy(mSummaryPreference);
-        mSummaryPreference.setWifiMode(true, "Test cycle text");
+        mSummaryPreference.setWifiMode(true /* isWifiMode */, "Test cycle text",
+                false /* isSingleWifi */);
         doReturn(0L).when(mSummaryPreference).getHistoricalUsageLevel();
 
         bindViewHolder();
diff --git a/tests/robotests/src/com/android/settings/wifi/details/WifiDetailPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/wifi/details/WifiDetailPreferenceControllerTest.java
index 204a0e2..db76722 100644
--- a/tests/robotests/src/com/android/settings/wifi/details/WifiDetailPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/wifi/details/WifiDetailPreferenceControllerTest.java
@@ -778,9 +778,9 @@
 
         mockWifiConfig.networkId = 5;
         when(mockWifiConfig.isPasspoint()).thenReturn(true);
+        spyController.displayPreference(mockScreen);
         FeatureFlagPersistent.setEnabled(mContext, FeatureFlags.NETWORK_INTERNET_V2, true);
 
-        spyController.displayPreference(mockScreen);
         mForgetClickListener.getValue().onClick(null);
 
         verify(mockWifiManager, times(0)).removePasspointConfiguration(mockWifiConfig.FQDN);