[RequiresApi] Add annotation for S API

Bug: 181358771
Test: lint check
Change-Id: I83c988de89980e3e82ca828fcfaaef26b837aae5
diff --git a/framework/java/android/net/wifi/WifiInfo.java b/framework/java/android/net/wifi/WifiInfo.java
index 92cdbef..8b99294 100644
--- a/framework/java/android/net/wifi/WifiInfo.java
+++ b/framework/java/android/net/wifi/WifiInfo.java
@@ -1275,8 +1275,8 @@
         dest.writeInt(mMaxSupportedRxLinkSpeed);
         dest.writeString(mPasspointUniqueId);
         dest.writeInt(mSubscriptionId);
+        dest.writeTypedList(mInformationElements);
         if (SdkLevel.isAtLeastS()) {
-            dest.writeTypedList(mInformationElements);
             dest.writeInt(mIsPrimary);
         }
         dest.writeInt(mSecurityType);
@@ -1329,9 +1329,9 @@
                 info.mMaxSupportedRxLinkSpeed = in.readInt();
                 info.mPasspointUniqueId = in.readString();
                 info.mSubscriptionId = in.readInt();
+                info.mInformationElements = in.createTypedArrayList(
+                        ScanResult.InformationElement.CREATOR);
                 if (SdkLevel.isAtLeastS()) {
-                    info.mInformationElements = in.createTypedArrayList(
-                            ScanResult.InformationElement.CREATOR);
                     info.mIsPrimary = in.readInt();
                 }
                 info.mSecurityType = in.readInt();
@@ -1387,9 +1387,6 @@
     @Nullable
     @SuppressWarnings("NullableCollection")
     public List<ScanResult.InformationElement> getInformationElements() {
-        if (!SdkLevel.isAtLeastS()) {
-            throw new UnsupportedOperationException();
-        }
         if (mInformationElements == null) return null;
         return new ArrayList<>(mInformationElements);
     }
@@ -1416,6 +1413,7 @@
      *
      * @hide
      */
+    @RequiresApi(Build.VERSION_CODES.S)
     @RequiresPermission(Manifest.permission.NETWORK_SETTINGS)
     @SystemApi
     public boolean isPrimary() {
diff --git a/framework/java/android/net/wifi/WifiManager.java b/framework/java/android/net/wifi/WifiManager.java
index 8667947..f549e18 100644
--- a/framework/java/android/net/wifi/WifiManager.java
+++ b/framework/java/android/net/wifi/WifiManager.java
@@ -2452,9 +2452,6 @@
      */
     @RequiresPermission(android.Manifest.permission.CHANGE_WIFI_STATE)
     public boolean removeNonCallerConfiguredNetworks() {
-        if (!SdkLevel.isAtLeastS()) {
-            throw new UnsupportedOperationException();
-        }
         try {
             return mService.removeNonCallerConfiguredNetworks(mContext.getOpPackageName());
         } catch (RemoteException e) {
diff --git a/framework/java/android/net/wifi/WifiScanner.java b/framework/java/android/net/wifi/WifiScanner.java
index 1ccdc00..2fe9d02 100644
--- a/framework/java/android/net/wifi/WifiScanner.java
+++ b/framework/java/android/net/wifi/WifiScanner.java
@@ -712,9 +712,6 @@
          * </p>
          */
         public @WifiBand int getScannedBands() {
-            if (!SdkLevel.isAtLeastS()) {
-                throw new UnsupportedOperationException();
-            }
             return getScannedBandsInternal();
         }
 
diff --git a/framework/lint-baseline.xml b/framework/lint-baseline.xml
index 5423cb5..f80d811 100644
--- a/framework/lint-baseline.xml
+++ b/framework/lint-baseline.xml
@@ -349,4 +349,15 @@
             column="13"/>
     </issue>
 
+    <issue
+        id="NewApi"
+        message="Field requires API level 31 (current min is 30): `android.net.wifi.ScanResult.InformationElement#CREATOR`"
+        errorLine1="                        ScanResult.InformationElement.CREATOR);"
+        errorLine2="                        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="packages/modules/Wifi/framework/java/android/net/wifi/WifiInfo.java"
+            line="1333"
+            column="25"/>
+    </issue>
+
 </issues>
diff --git a/framework/tests/src/android/net/wifi/WifiInfoTest.java b/framework/tests/src/android/net/wifi/WifiInfoTest.java
index 89d609e..7b72fc7 100644
--- a/framework/tests/src/android/net/wifi/WifiInfoTest.java
+++ b/framework/tests/src/android/net/wifi/WifiInfoTest.java
@@ -110,24 +110,24 @@
         assertEquals(TEST_MAX_SUPPORTED_TX_LINK_SPEED_MBPS, info.getMaxSupportedTxLinkSpeedMbps());
         assertEquals(TEST_MAX_SUPPORTED_RX_LINK_SPEED_MBPS, info.getMaxSupportedRxLinkSpeedMbps());
         assertEquals(TEST_BSSID, info.getMacAddress());
+        assertEquals(2, info.getInformationElements().size());
+        assertEquals(informationElements.get(0).id,
+                info.getInformationElements().get(0).id);
+        assertEquals(informationElements.get(0).idExt,
+                info.getInformationElements().get(0).idExt);
+        assertArrayEquals(informationElements.get(0).bytes,
+                info.getInformationElements().get(0).bytes);
+        assertEquals(informationElements.get(1).id,
+                info.getInformationElements().get(1).id);
+        assertEquals(informationElements.get(1).idExt,
+                info.getInformationElements().get(1).idExt);
+        assertArrayEquals(informationElements.get(1).bytes,
+                info.getInformationElements().get(1).bytes);
         if (SdkLevel.isAtLeastS()) {
             assertTrue(info.isOemPaid());
             assertTrue(info.isOemPrivate());
             assertTrue(info.isCarrierMerged());
             assertEquals(TEST_SUB_ID, info.getSubscriptionId());
-            assertEquals(2, info.getInformationElements().size());
-            assertEquals(informationElements.get(0).id,
-                    info.getInformationElements().get(0).id);
-            assertEquals(informationElements.get(0).idExt,
-                    info.getInformationElements().get(0).idExt);
-            assertArrayEquals(informationElements.get(0).bytes,
-                    info.getInformationElements().get(0).bytes);
-            assertEquals(informationElements.get(1).id,
-                    info.getInformationElements().get(1).id);
-            assertEquals(informationElements.get(1).idExt,
-                    info.getInformationElements().get(1).idExt);
-            assertArrayEquals(informationElements.get(1).bytes,
-                    info.getInformationElements().get(1).bytes);
             assertTrue(info.isPrimary());
         }
     }
@@ -204,12 +204,12 @@
         assertEquals(TEST_MAX_SUPPORTED_TX_LINK_SPEED_MBPS, info.getMaxSupportedTxLinkSpeedMbps());
         assertEquals(TEST_MAX_SUPPORTED_RX_LINK_SPEED_MBPS, info.getMaxSupportedRxLinkSpeedMbps());
         assertEquals(WifiInfo.DEFAULT_MAC_ADDRESS, info.getMacAddress());
+        assertNull(info.getInformationElements());
         if (SdkLevel.isAtLeastS()) {
             assertTrue(info.isOemPaid());
             assertTrue(info.isOemPrivate());
             assertTrue(info.isCarrierMerged());
             assertEquals(TEST_SUB_ID, info.getSubscriptionId());
-            assertNull(info.getInformationElements());
             assertTrue(info.isPrimary());
         }
     }
diff --git a/service/tests/wifitests/src/com/android/server/wifi/ClientModeImplTest.java b/service/tests/wifitests/src/com/android/server/wifi/ClientModeImplTest.java
index 78968d8..d61fb82 100644
--- a/service/tests/wifitests/src/com/android/server/wifi/ClientModeImplTest.java
+++ b/service/tests/wifitests/src/com/android/server/wifi/ClientModeImplTest.java
@@ -1007,10 +1007,8 @@
         } else {
             assertNull(wifiInfo.getPasspointProviderFriendlyName());
         }
-        if (SdkLevel.isAtLeastS()) {
-            assertEquals(Arrays.asList(scanResult.informationElements),
+        assertEquals(Arrays.asList(scanResult.informationElements),
                     wifiInfo.getInformationElements());
-        }
         expectRegisterNetworkAgent((na) -> {
             if (!mConnectedNetwork.carrierMerged) {
                 assertNull(na.subscriberId);