Clean up Contextual Wifi card

Bug: 245854887
Test: m RunSettingsRoboTests
Change-Id: I3b4ccc076a68eadc11e9fb3d2967a34fe0396cf9
diff --git a/res/drawable/ic_wifi_off.xml b/res/drawable/ic_wifi_off.xml
deleted file mode 100644
index 1480a59..0000000
--- a/res/drawable/ic_wifi_off.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<!--
-  ~ Copyright (C) 2020 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.
-  -->
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
-        android:width="24dp"
-        android:height="24dp"
-        android:viewportWidth="24"
-        android:viewportHeight="24"
-        android:tint="?android:attr/colorControlNormal">
-    <path
-        android:fillColor="@android:color/white"
-        android:pathData="M23,9c-4.11,-4.11 -9.93,-5.43 -15.15,-3.98l9.57,9.57L23,9zM5.76,5.76L2.81,2.81 1.39,4.22l2.52,2.52C2.88,7.37 1.89,8.11 1,9l11,11 2.59,-2.59 5.19,5.19 1.41,-1.41L16,16 5.76,5.76z"/>
-</vector>
\ No newline at end of file
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 859a59c..4a35932 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -2167,12 +2167,8 @@
 
     <!-- Button label to connect to a Wi-Fi network -->
     <string name="wifi_connect">Connect</string>
-    <!-- Turned on notification for Wi-Fi [CHAR LIMIT=40] -->
-    <string name="wifi_turned_on_message">Wi\u2011Fi turned on</string>
     <!-- A notification for connected to a Wi-Fi network [CHAR LIMIT=NONE] -->
     <string name="wifi_connected_to_message">Connected to <xliff:g id="network_name" example="MyNetwork">%1$s</xliff:g></string>
-    <!-- A notification for connecting to a Wi-Fi network [CHAR LIMIT=NONE] -->
-    <string name="wifi_connecting_to_message">Connecting to <xliff:g id="network_name" example="MyNetwork">%1$s</xliff:g></string>
     <!-- Button label to connecting progress to a Wi-Fi network [CHAR LIMIT=20] -->
     <string name="wifi_connecting">Connecting\u2026</string>
     <!-- Failured notification for connect -->
diff --git a/src/com/android/settings/homepage/contextualcards/ContextualCardLoader.java b/src/com/android/settings/homepage/contextualcards/ContextualCardLoader.java
index 0cda62d..ebafbaf 100644
--- a/src/com/android/settings/homepage/contextualcards/ContextualCardLoader.java
+++ b/src/com/android/settings/homepage/contextualcards/ContextualCardLoader.java
@@ -18,7 +18,6 @@
 
 import static com.android.settings.intelligence.ContextualCardProto.ContextualCard.Category.STICKY_VALUE;
 import static com.android.settings.slices.CustomSliceRegistry.BLUETOOTH_DEVICES_SLICE_URI;
-import static com.android.settings.slices.CustomSliceRegistry.CONTEXTUAL_WIFI_SLICE_URI;
 
 import android.app.settings.SettingsEnums;
 import android.content.Context;
@@ -225,8 +224,7 @@
     }
 
     private boolean isLargeCard(ContextualCard card) {
-        return card.getSliceUri().equals(CONTEXTUAL_WIFI_SLICE_URI)
-                || card.getSliceUri().equals(BLUETOOTH_DEVICES_SLICE_URI);
+        return card.getSliceUri().equals(BLUETOOTH_DEVICES_SLICE_URI);
     }
 
     public interface CardContentLoaderListener {
diff --git a/src/com/android/settings/homepage/contextualcards/SettingsContextualCardProvider.java b/src/com/android/settings/homepage/contextualcards/SettingsContextualCardProvider.java
index 81142c2..3e6659f 100644
--- a/src/com/android/settings/homepage/contextualcards/SettingsContextualCardProvider.java
+++ b/src/com/android/settings/homepage/contextualcards/SettingsContextualCardProvider.java
@@ -32,12 +32,6 @@
     @Override
     @Nullable
     public ContextualCardList getContextualCards() {
-        final ContextualCard wifiCard =
-                ContextualCard.newBuilder()
-                        .setSliceUri(CustomSliceRegistry.CONTEXTUAL_WIFI_SLICE_URI.toString())
-                        .setCardName(CustomSliceRegistry.CONTEXTUAL_WIFI_SLICE_URI.toString())
-                        .setCardCategory(ContextualCard.Category.IMPORTANT)
-                        .build();
         final ContextualCard connectedDeviceCard =
                 ContextualCard.newBuilder()
                         .setSliceUri(CustomSliceRegistry.BLUETOOTH_DEVICES_SLICE_URI.toString())
@@ -71,7 +65,6 @@
                         .setCardCategory(ContextualCard.Category.IMPORTANT)
                         .build();
         final ContextualCardList cards = ContextualCardList.newBuilder()
-                .addCard(wifiCard)
                 .addCard(connectedDeviceCard)
                 .addCard(lowStorageCard)
                 .addCard(contextualAdaptiveSleepCard)
diff --git a/src/com/android/settings/slices/CustomSliceRegistry.java b/src/com/android/settings/slices/CustomSliceRegistry.java
index 08d2be6..8f30106 100644
--- a/src/com/android/settings/slices/CustomSliceRegistry.java
+++ b/src/com/android/settings/slices/CustomSliceRegistry.java
@@ -41,7 +41,6 @@
 import com.android.settings.network.telephony.MobileDataSlice;
 import com.android.settings.notification.zen.ZenModeButtonPreferenceController;
 import com.android.settings.wifi.calling.WifiCallingSliceHelper;
-import com.android.settings.wifi.slice.ContextualWifiSlice;
 import com.android.settings.wifi.slice.WifiSlice;
 import com.android.settingslib.media.MediaOutputConstants;
 
@@ -83,15 +82,6 @@
             .build();
 
     /**
-     * Backing Uri for the Wifi Slice.
-     */
-    public static final Uri CONTEXTUAL_WIFI_SLICE_URI = new Uri.Builder()
-            .scheme(ContentResolver.SCHEME_CONTENT)
-            .authority(SettingsSlicesContract.AUTHORITY)
-            .appendPath(SettingsSlicesContract.PATH_SETTING_ACTION)
-            .appendPath("contextual_wifi")
-            .build();
-    /**
      * Slice Uri for Enhanced 4G slice
      */
     public static final Uri ENHANCED_4G_SLICE_URI = new Uri.Builder()
@@ -321,7 +311,6 @@
         // Slices for contextual card.
         sUriToSlice.put(FACE_ENROLL_SLICE_URI, FaceSetupSlice.class);
         sUriToSlice.put(CONTEXTUAL_ADAPTIVE_SLEEP_URI, ContextualAdaptiveSleepSlice.class);
-        sUriToSlice.put(CONTEXTUAL_WIFI_SLICE_URI, ContextualWifiSlice.class);
         sUriToSlice.put(LOW_STORAGE_SLICE_URI, LowStorageSlice.class);
         sUriToSlice.put(BLUETOOTH_DEVICES_SLICE_URI, BluetoothDevicesSlice.class);
     }
diff --git a/src/com/android/settings/wifi/slice/ContextualWifiScanWorker.java b/src/com/android/settings/wifi/slice/ContextualWifiScanWorker.java
deleted file mode 100644
index ae45251..0000000
--- a/src/com/android/settings/wifi/slice/ContextualWifiScanWorker.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * 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.wifi.slice;
-
-import android.content.Context;
-import android.net.Uri;
-
-/**
- * {@link SliceBackgroundWorker} for Wi-Fi, used by {@link ContextualWifiSlice}.
- */
-public class ContextualWifiScanWorker extends WifiScanWorker {
-
-    public ContextualWifiScanWorker(Context context, Uri uri) {
-        super(context, uri);
-    }
-
-    @Override
-    protected int getApRowCount() {
-        return ContextualWifiSlice.getApRowCount();
-    }
-}
diff --git a/src/com/android/settings/wifi/slice/ContextualWifiSlice.java b/src/com/android/settings/wifi/slice/ContextualWifiSlice.java
deleted file mode 100644
index 6b83f74..0000000
--- a/src/com/android/settings/wifi/slice/ContextualWifiSlice.java
+++ /dev/null
@@ -1,156 +0,0 @@
-/*
- * Copyright (C) 2018 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.wifi.slice;
-
-import android.content.Context;
-import android.graphics.drawable.Drawable;
-import android.net.ConnectivityManager;
-import android.net.NetworkCapabilities;
-import android.net.Uri;
-import android.net.wifi.WifiInfo;
-import android.net.wifi.WifiManager;
-import android.text.TextUtils;
-
-import androidx.annotation.VisibleForTesting;
-import androidx.core.graphics.drawable.IconCompat;
-import androidx.slice.Slice;
-import androidx.slice.builders.ListBuilder;
-
-import com.android.settings.R;
-import com.android.settings.Utils;
-import com.android.settings.overlay.FeatureFactory;
-import com.android.settings.slices.CustomSliceRegistry;
-import com.android.settings.slices.CustomSliceable;
-import com.android.wifitrackerlib.WifiEntry;
-
-/**
- * {@link CustomSliceable} for Wi-Fi, used by contextual homepage.
- */
-public class ContextualWifiSlice extends WifiSlice {
-
-    @VisibleForTesting
-    static final int COLLAPSED_ROW_COUNT = 0;
-
-    @VisibleForTesting
-    static long sActiveUiSession = -1000;
-    @VisibleForTesting
-    static boolean sApRowCollapsed;
-
-    private final ConnectivityManager mConnectivityManager;
-
-    public ContextualWifiSlice(Context context) {
-        super(context);
-
-        mConnectivityManager = mContext.getSystemService(ConnectivityManager.class);
-    }
-
-    @Override
-    public Uri getUri() {
-        return CustomSliceRegistry.CONTEXTUAL_WIFI_SLICE_URI;
-    }
-
-    @Override
-    public Slice getSlice() {
-        final long currentUiSession = FeatureFactory.getFeatureFactory()
-                .getSlicesFeatureProvider().getUiSessionToken();
-        if (currentUiSession != sActiveUiSession) {
-            sActiveUiSession = currentUiSession;
-            sApRowCollapsed = hasWorkingNetwork();
-        } else if (!mWifiManager.isWifiEnabled()) {
-            sApRowCollapsed = false;
-        }
-        return super.getSlice();
-    }
-
-    static int getApRowCount() {
-        return sApRowCollapsed ? COLLAPSED_ROW_COUNT : DEFAULT_EXPANDED_ROW_COUNT;
-    }
-
-    @Override
-    protected boolean isApRowCollapsed() {
-        return sApRowCollapsed;
-    }
-
-    @Override
-    protected ListBuilder.RowBuilder getHeaderRow(boolean isWifiEnabled,
-            WifiSliceItem wifiSliceItem) {
-        final ListBuilder.RowBuilder builder = super.getHeaderRow(isWifiEnabled, wifiSliceItem);
-        builder.setTitleItem(getHeaderIcon(isWifiEnabled, wifiSliceItem), ListBuilder.ICON_IMAGE);
-        if (sApRowCollapsed) {
-            builder.setSubtitle(getHeaderSubtitle(wifiSliceItem));
-        }
-        return builder;
-    }
-
-    private IconCompat getHeaderIcon(boolean isWifiEnabled, WifiSliceItem wifiSliceItem) {
-        final Drawable drawable;
-        final int tint;
-        if (!isWifiEnabled) {
-            drawable = mContext.getDrawable(R.drawable.ic_wifi_off);
-            tint = Utils.getDisabled(mContext, Utils.getColorAttrDefaultColor(mContext,
-                    android.R.attr.colorControlNormal));
-        } else {
-            // get icon of medium signal strength
-            drawable = mContext.getDrawable(com.android.settingslib.Utils.getWifiIconResource(2));
-            if (wifiSliceItem != null
-                    && wifiSliceItem.getConnectedState() == WifiEntry.CONNECTED_STATE_CONNECTED) {
-                tint = Utils.getColorAccentDefaultColor(mContext);
-            } else {
-                tint = Utils.getColorAttrDefaultColor(mContext, android.R.attr.colorControlNormal);
-            }
-        }
-        drawable.setTint(tint);
-        return Utils.createIconWithDrawable(drawable);
-    }
-
-    private CharSequence getHeaderSubtitle(WifiSliceItem wifiSliceItem) {
-        if (wifiSliceItem == null
-                || wifiSliceItem.getConnectedState() == WifiEntry.CONNECTED_STATE_DISCONNECTED) {
-            return mContext.getText(R.string.disconnected);
-        }
-        if (wifiSliceItem.getConnectedState() == WifiEntry.CONNECTED_STATE_CONNECTING) {
-            return mContext.getString(R.string.wifi_connecting_to_message,
-                wifiSliceItem.getTitle());
-        }
-        return mContext.getString(R.string.wifi_connected_to_message, wifiSliceItem.getTitle());
-    }
-
-    private boolean hasWorkingNetwork() {
-        return !TextUtils.equals(getActiveSSID(), WifiManager.UNKNOWN_SSID) && hasInternetAccess();
-    }
-
-    private String getActiveSSID() {
-        if (mWifiManager.getWifiState() != WifiManager.WIFI_STATE_ENABLED) {
-            return WifiManager.UNKNOWN_SSID;
-        }
-        return WifiInfo.sanitizeSsid(mWifiManager.getConnectionInfo().getSSID());
-    }
-
-    private boolean hasInternetAccess() {
-        final NetworkCapabilities nc = mConnectivityManager.getNetworkCapabilities(
-                mWifiManager.getCurrentNetwork());
-        return nc != null
-                && !nc.hasCapability(NetworkCapabilities.NET_CAPABILITY_CAPTIVE_PORTAL)
-                && !nc.hasCapability(NetworkCapabilities.NET_CAPABILITY_PARTIAL_CONNECTIVITY)
-                && nc.hasCapability(NetworkCapabilities.NET_CAPABILITY_VALIDATED);
-    }
-
-    @Override
-    public Class getBackgroundWorkerClass() {
-        return ContextualWifiScanWorker.class;
-    }
-}
diff --git a/tests/robotests/src/com/android/settings/homepage/contextualcards/ContextualCardLoaderTest.java b/tests/robotests/src/com/android/settings/homepage/contextualcards/ContextualCardLoaderTest.java
index 0909675..1967aef 100644
--- a/tests/robotests/src/com/android/settings/homepage/contextualcards/ContextualCardLoaderTest.java
+++ b/tests/robotests/src/com/android/settings/homepage/contextualcards/ContextualCardLoaderTest.java
@@ -168,6 +168,7 @@
                 .setName("test_dark_theme")
                 .setCardType(ContextualCard.CardType.SLICE)
                 .setSliceUri(CustomSliceRegistry.DARK_THEME_SLICE_URI)
+                .setCategory(STICKY_VALUE)
                 .build());
         cards.add(new ContextualCard.Builder()
                 .setName("test_gesture")
@@ -176,12 +177,6 @@
                         "content://com.android.settings.test.slices/action/gesture_pick_up"))
                 .build());
         cards.add(new ContextualCard.Builder()
-                .setName("test_wifi")
-                .setCardType(ContextualCard.CardType.SLICE)
-                .setSliceUri(CustomSliceRegistry.CONTEXTUAL_WIFI_SLICE_URI)
-                .setCategory(STICKY_VALUE)
-                .build());
-        cards.add(new ContextualCard.Builder()
                 .setName("test_connected")
                 .setCardType(ContextualCard.CardType.SLICE)
                 .setSliceUri(CustomSliceRegistry.BLUETOOTH_DEVICES_SLICE_URI)
diff --git a/tests/robotests/src/com/android/settings/homepage/contextualcards/ContextualCardManagerTest.java b/tests/robotests/src/com/android/settings/homepage/contextualcards/ContextualCardManagerTest.java
index f18d94f..b53f760 100644
--- a/tests/robotests/src/com/android/settings/homepage/contextualcards/ContextualCardManagerTest.java
+++ b/tests/robotests/src/com/android/settings/homepage/contextualcards/ContextualCardManagerTest.java
@@ -234,7 +234,7 @@
     @Test
     public void sortCards_hasStickyCards_stickyShouldAlwaysBeTheLast() {
         final List<ContextualCard> cards = new ArrayList<>();
-        cards.add(buildContextualCard(CustomSliceRegistry.CONTEXTUAL_WIFI_SLICE_URI,
+        cards.add(buildContextualCard(CustomSliceRegistry.FACE_ENROLL_SLICE_URI,
                 ContextualCardProto.ContextualCard.Category.STICKY_VALUE, 1.02f));
         cards.add(buildContextualCard(CustomSliceRegistry.BLUETOOTH_DEVICES_SLICE_URI,
                 ContextualCardProto.ContextualCard.Category.STICKY_VALUE, 1.01f));
@@ -246,7 +246,7 @@
         assertThat(sortedCards.get(cards.size() - 1).getSliceUri())
                 .isEqualTo(CustomSliceRegistry.BLUETOOTH_DEVICES_SLICE_URI);
         assertThat(sortedCards.get(cards.size() - 2).getSliceUri())
-                .isEqualTo(CustomSliceRegistry.CONTEXTUAL_WIFI_SLICE_URI);
+                .isEqualTo(CustomSliceRegistry.FACE_ENROLL_SLICE_URI);
     }
 
     @Test
@@ -611,7 +611,7 @@
     @Test
     public void getCardsWithViewType_hasOneStickySlice_shouldHaveOneStickyCard() {
         final List<ContextualCard> cards = new ArrayList<>();
-        cards.add(buildContextualCard(CustomSliceRegistry.CONTEXTUAL_WIFI_SLICE_URI.toString()));
+        cards.add(buildContextualCard(CustomSliceRegistry.FACE_ENROLL_SLICE_URI.toString()));
         cards.add(buildContextualCard(CustomSliceRegistry.LOW_STORAGE_SLICE_URI.toString()));
         final List<Integer> categories = Arrays.asList(
                 ContextualCardProto.ContextualCard.Category.STICKY_VALUE,
diff --git a/tests/robotests/src/com/android/settings/homepage/contextualcards/SettingsContextualCardProviderTest.java b/tests/robotests/src/com/android/settings/homepage/contextualcards/SettingsContextualCardProviderTest.java
index d4b67f5..dcf3387 100644
--- a/tests/robotests/src/com/android/settings/homepage/contextualcards/SettingsContextualCardProviderTest.java
+++ b/tests/robotests/src/com/android/settings/homepage/contextualcards/SettingsContextualCardProviderTest.java
@@ -70,16 +70,16 @@
     }
 
     @Test
-    public void getContextualCards_wifiSlice_shouldGetImportantCategory() {
+    public void getContextualCards_darkThemeSlice_shouldGetImportantCategory() {
         final ContextualCardList cards = mProvider.getContextualCards();
-        ContextualCard wifiCard = null;
+        ContextualCard darkThemeCard = null;
         for (ContextualCard card : cards.getCardList()) {
             if (card.getSliceUri().equals(
-                    CustomSliceRegistry.CONTEXTUAL_WIFI_SLICE_URI.toString())) {
-                wifiCard = card;
+                    CustomSliceRegistry.DARK_THEME_SLICE_URI.toString())) {
+                darkThemeCard = card;
             }
         }
 
-        assertThat(wifiCard.getCardCategory()).isEqualTo(ContextualCard.Category.IMPORTANT);
+        assertThat(darkThemeCard.getCardCategory()).isEqualTo(ContextualCard.Category.IMPORTANT);
     }
 }
\ No newline at end of file
diff --git a/tests/robotests/src/com/android/settings/homepage/contextualcards/slices/SliceContextualCardRendererTest.java b/tests/robotests/src/com/android/settings/homepage/contextualcards/slices/SliceContextualCardRendererTest.java
index cf8d361..8dad372 100644
--- a/tests/robotests/src/com/android/settings/homepage/contextualcards/slices/SliceContextualCardRendererTest.java
+++ b/tests/robotests/src/com/android/settings/homepage/contextualcards/slices/SliceContextualCardRendererTest.java
@@ -38,18 +38,16 @@
 import androidx.lifecycle.LiveData;
 import androidx.recyclerview.widget.LinearLayoutManager;
 import androidx.recyclerview.widget.RecyclerView;
-import androidx.slice.builders.ListBuilder;
-import androidx.slice.builders.SliceAction;
 import androidx.slice.Slice;
 import androidx.slice.SliceProvider;
+import androidx.slice.builders.ListBuilder;
+import androidx.slice.builders.SliceAction;
 import androidx.slice.widget.SliceLiveData;
 
-
 import com.android.settings.R;
 import com.android.settings.homepage.contextualcards.ContextualCard;
 import com.android.settings.homepage.contextualcards.ContextualCardsFragment;
 import com.android.settings.homepage.contextualcards.ControllerRendererPool;
-import com.android.settings.wifi.slice.ContextualWifiSlice;
 
 import org.junit.Before;
 import org.junit.Test;
diff --git a/tests/robotests/src/com/android/settings/wifi/slice/ContextualWifiSliceTest.java b/tests/robotests/src/com/android/settings/wifi/slice/ContextualWifiSliceTest.java
deleted file mode 100644
index d9c726a..0000000
--- a/tests/robotests/src/com/android/settings/wifi/slice/ContextualWifiSliceTest.java
+++ /dev/null
@@ -1,190 +0,0 @@
-/*
- * Copyright (C) 2018 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.wifi.slice;
-
-import static com.android.settings.wifi.slice.ContextualWifiSlice.COLLAPSED_ROW_COUNT;
-import static com.android.settings.wifi.slice.WifiSlice.DEFAULT_EXPANDED_ROW_COUNT;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import static org.mockito.Mockito.doReturn;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.spy;
-import static org.mockito.Mockito.when;
-
-import android.content.ContentResolver;
-import android.content.Context;
-import android.content.pm.PackageManager;
-import android.net.Network;
-import android.net.NetworkCapabilities;
-import android.net.wifi.WifiInfo;
-import android.net.wifi.WifiManager;
-
-import androidx.core.graphics.drawable.IconCompat;
-import androidx.slice.Slice;
-import androidx.slice.SliceMetadata;
-import androidx.slice.SliceProvider;
-import androidx.slice.core.SliceAction;
-import androidx.slice.widget.SliceLiveData;
-
-import com.android.settings.R;
-import com.android.settings.slices.CustomSliceRegistry;
-import com.android.settings.slices.SlicesFeatureProviderImpl;
-import com.android.settings.testutils.FakeFeatureFactory;
-import com.android.settings.testutils.shadow.ShadowConnectivityManager;
-import com.android.settings.testutils.shadow.ShadowWifiSlice;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
-import org.robolectric.RobolectricTestRunner;
-import org.robolectric.RuntimeEnvironment;
-import org.robolectric.annotation.Config;
-import org.robolectric.shadows.ShadowBinder;
-
-import java.util.List;
-
-@RunWith(RobolectricTestRunner.class)
-@Config(shadows = {ShadowConnectivityManager.class, ShadowWifiSlice.class})
-public class ContextualWifiSliceTest {
-    private static final String SSID = "123";
-
-    @Mock
-    private WifiManager mWifiManager;
-    @Mock
-    private PackageManager mPackageManager;
-    @Mock
-    private WifiInfo mWifiInfo;
-    @Mock
-    private Network mNetwork;
-
-    private Context mContext;
-    private ContentResolver mResolver;
-    private ContextualWifiSlice mWifiSlice;
-    private FakeFeatureFactory mFeatureFactory;
-
-    @Before
-    public void setUp() {
-        MockitoAnnotations.initMocks(this);
-        mContext = spy(RuntimeEnvironment.application);
-        mResolver = mock(ContentResolver.class);
-        mFeatureFactory = FakeFeatureFactory.setupForTest();
-        mFeatureFactory.slicesFeatureProvider = new SlicesFeatureProviderImpl();
-        mFeatureFactory.slicesFeatureProvider.newUiSession();
-        doReturn(mResolver).when(mContext).getContentResolver();
-        doReturn(mWifiManager).when(mContext).getSystemService(WifiManager.class);
-        doReturn(true).when(mWifiManager).isWifiEnabled();
-        doReturn(WifiManager.WIFI_STATE_ENABLED).when(mWifiManager).getWifiState();
-        doReturn(mWifiInfo).when(mWifiManager).getConnectionInfo();
-        doReturn(SSID).when(mWifiInfo).getSSID();
-        doReturn(mNetwork).when(mWifiManager).getCurrentNetwork();
-        when(mContext.getPackageManager()).thenReturn(mPackageManager);
-
-        // Set-up specs for SliceMetadata.
-        SliceProvider.setSpecs(SliceLiveData.SUPPORTED_SPECS);
-
-        final String siPackageName =
-                mContext.getString(R.string.config_settingsintelligence_package_name);
-        ShadowBinder.setCallingUid(1);
-        when(mPackageManager.getPackagesForUid(1)).thenReturn(new String[]{siPackageName});
-        when(mPackageManager.getNameForUid(1)).thenReturn(siPackageName);
-        ShadowWifiSlice.setWifiPermissible(true);
-        mWifiSlice = new ContextualWifiSlice(mContext);
-    }
-
-    @Test
-    public void getWifiSlice_newSession_hasActiveConnection_shouldCollapseSlice() {
-        mWifiSlice.sActiveUiSession = ~mFeatureFactory.slicesFeatureProvider.getUiSessionToken();
-        connectToWifi(makeValidatedNetworkCapabilities());
-
-        final Slice wifiSlice = mWifiSlice.getSlice();
-
-        assertWifiHeader(wifiSlice);
-        assertThat(ContextualWifiSlice.getApRowCount()).isEqualTo(COLLAPSED_ROW_COUNT);
-    }
-
-    @Test
-    public void getWifiSlice_newSession_noConnection_shouldExpandSlice() {
-        mWifiSlice.sActiveUiSession = ~mFeatureFactory.slicesFeatureProvider.getUiSessionToken();
-
-        final Slice wifiSlice = mWifiSlice.getSlice();
-
-        assertWifiHeader(wifiSlice);
-        assertThat(ContextualWifiSlice.getApRowCount()).isEqualTo(DEFAULT_EXPANDED_ROW_COUNT);
-    }
-
-    @Test
-    public void getWifiSlice_previousExpanded_hasActiveConnection_shouldExpandSlice() {
-        mWifiSlice.sActiveUiSession = mFeatureFactory.slicesFeatureProvider.getUiSessionToken();
-        mWifiSlice.sApRowCollapsed = false;
-        connectToWifi(makeValidatedNetworkCapabilities());
-
-        final Slice wifiSlice = mWifiSlice.getSlice();
-
-        assertWifiHeader(wifiSlice);
-        assertThat(ContextualWifiSlice.getApRowCount()).isEqualTo(DEFAULT_EXPANDED_ROW_COUNT);
-    }
-
-    @Test
-    public void getWifiSlice_previousCollapsed_connectionLoss_shouldCollapseSlice() {
-        mWifiSlice.sActiveUiSession = mFeatureFactory.slicesFeatureProvider.getUiSessionToken();
-        mWifiSlice.sApRowCollapsed = true;
-        connectToWifi(makeValidatedNetworkCapabilities());
-
-        doReturn(null).when(mWifiManager).getCurrentNetwork();
-        final Slice wifiSlice = mWifiSlice.getSlice();
-
-        assertWifiHeader(wifiSlice);
-        assertThat(ContextualWifiSlice.getApRowCount()).isEqualTo(COLLAPSED_ROW_COUNT);
-    }
-
-    @Test
-    public void getWifiSlice_contextualWifiSlice_shouldReturnContextualWifiSliceUri() {
-        mWifiSlice.sActiveUiSession = mFeatureFactory.slicesFeatureProvider.getUiSessionToken();
-
-        final Slice wifiSlice = mWifiSlice.getSlice();
-
-        assertThat(wifiSlice.getUri()).isEqualTo(CustomSliceRegistry.CONTEXTUAL_WIFI_SLICE_URI);
-    }
-
-    private void connectToWifi(NetworkCapabilities nc) {
-        ShadowConnectivityManager.getShadow().setNetworkCapabilities(mNetwork, nc);
-    }
-
-    private NetworkCapabilities makeValidatedNetworkCapabilities() {
-        final NetworkCapabilities nc = NetworkCapabilities.Builder.withoutDefaultCapabilities()
-                .addTransportType(NetworkCapabilities.TRANSPORT_WIFI)
-                .addCapability(NetworkCapabilities.NET_CAPABILITY_VALIDATED)
-                .build();
-        return nc;
-    }
-
-    private void assertWifiHeader(Slice slice) {
-        final SliceMetadata metadata = SliceMetadata.from(mContext, slice);
-        assertThat(metadata.getTitle()).isEqualTo(mContext.getString(R.string.wifi_settings));
-
-        final SliceAction primaryAction = metadata.getPrimaryAction();
-        final IconCompat expectedToggleIcon = IconCompat.createWithResource(mContext,
-                R.drawable.ic_settings_wireless);
-        assertThat(primaryAction.getIcon().toString()).isEqualTo(expectedToggleIcon.toString());
-
-        final List<SliceAction> toggles = metadata.getToggles();
-        assertThat(toggles).hasSize(1);
-    }
-}