19853743705603e0b5214e5995bea8c9267708813Dave Schaefer/* 29853743705603e0b5214e5995bea8c9267708813Dave Schaefer * Copyright (C) 2017 The Android Open Source Project 39853743705603e0b5214e5995bea8c9267708813Dave Schaefer * 49853743705603e0b5214e5995bea8c9267708813Dave Schaefer * Licensed under the Apache License, Version 2.0 (the "License"); 59853743705603e0b5214e5995bea8c9267708813Dave Schaefer * you may not use this file except in compliance with the License. 69853743705603e0b5214e5995bea8c9267708813Dave Schaefer * You may obtain a copy of the License at 79853743705603e0b5214e5995bea8c9267708813Dave Schaefer * 89853743705603e0b5214e5995bea8c9267708813Dave Schaefer * http://www.apache.org/licenses/LICENSE-2.0 99853743705603e0b5214e5995bea8c9267708813Dave Schaefer * 109853743705603e0b5214e5995bea8c9267708813Dave Schaefer * Unless required by applicable law or agreed to in writing, software 119853743705603e0b5214e5995bea8c9267708813Dave Schaefer * distributed under the License is distributed on an "AS IS" BASIS, 129853743705603e0b5214e5995bea8c9267708813Dave Schaefer * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 139853743705603e0b5214e5995bea8c9267708813Dave Schaefer * See the License for the specific language governing permissions and 149853743705603e0b5214e5995bea8c9267708813Dave Schaefer * limitations under the License. 159853743705603e0b5214e5995bea8c9267708813Dave Schaefer */ 169853743705603e0b5214e5995bea8c9267708813Dave Schaefer 179853743705603e0b5214e5995bea8c9267708813Dave Schaeferpackage com.android.settingslib.wifi; 189853743705603e0b5214e5995bea8c9267708813Dave Schaefer 199853743705603e0b5214e5995bea8c9267708813Dave Schaeferimport android.content.Context; 209853743705603e0b5214e5995bea8c9267708813Dave Schaeferimport android.net.ConnectivityManager; 219853743705603e0b5214e5995bea8c9267708813Dave Schaeferimport android.net.NetworkInfo; 22a28050ae42edb487239d9800b173ea334981f2b5Sundeep Ghumanimport android.net.wifi.ScanResult; 239853743705603e0b5214e5995bea8c9267708813Dave Schaeferimport android.net.wifi.WifiConfiguration; 2496a53579088a21590cb02e5befc88ef965520d3eSundeep Ghumanimport android.net.wifi.WifiInfo; 259853743705603e0b5214e5995bea8c9267708813Dave Schaeferimport android.os.Bundle; 2604f7f34a713062ec3fd54a4c19481e9f76819899Sundeep Ghumanimport android.os.Parcelable; 27d1dcfd1dc05380864c3ed57a1519e260b91635f1Antony Sargentimport android.support.annotation.Keep; 28fedf4617894ec75d972bbc681b3c64ef8914b980Sundeep Ghuman 29f4f3842b02262a2483b958aa4b1e9b9e8fc4fb7bEric Schwarzenbachimport com.android.settingslib.wifi.AccessPoint.Speed; 309853743705603e0b5214e5995bea8c9267708813Dave Schaefer 31a28050ae42edb487239d9800b173ea334981f2b5Sundeep Ghumanimport java.util.ArrayList; 32a28050ae42edb487239d9800b173ea334981f2b5Sundeep Ghuman 339853743705603e0b5214e5995bea8c9267708813Dave Schaefer/** 349853743705603e0b5214e5995bea8c9267708813Dave Schaefer* Build and return a valid AccessPoint. 359853743705603e0b5214e5995bea8c9267708813Dave Schaefer* 36ce6b0b2539dbb562b5c0e720d51bd3d35af437cfSundeep Ghuman* Only intended for testing the AccessPoint class or creating Access points to be used in testing 37ce6b0b2539dbb562b5c0e720d51bd3d35af437cfSundeep Ghuman* applications. AccessPoints were designed to only be populated by the mechanisms of scan results 38ce6b0b2539dbb562b5c0e720d51bd3d35af437cfSundeep Ghuman* and wifi configurations. 399853743705603e0b5214e5995bea8c9267708813Dave Schaefer*/ 40d1dcfd1dc05380864c3ed57a1519e260b91635f1Antony Sargent@Keep 419853743705603e0b5214e5995bea8c9267708813Dave Schaeferpublic class TestAccessPointBuilder { 429853743705603e0b5214e5995bea8c9267708813Dave Schaefer // match the private values in WifiManager 439853743705603e0b5214e5995bea8c9267708813Dave Schaefer private static final int MIN_RSSI = -100; 449853743705603e0b5214e5995bea8c9267708813Dave Schaefer private static final int MAX_RSSI = -55; 459853743705603e0b5214e5995bea8c9267708813Dave Schaefer 469853743705603e0b5214e5995bea8c9267708813Dave Schaefer // set some sensible defaults 477c32aa3039fd9eba3c09f7503ac451a0ba0b1d87Sundeep Ghuman private String mBssid = null; 48f4f3842b02262a2483b958aa4b1e9b9e8fc4fb7bEric Schwarzenbach private int mSpeed = Speed.NONE; 499853743705603e0b5214e5995bea8c9267708813Dave Schaefer private int mRssi = AccessPoint.UNREACHABLE_RSSI; 5096a53579088a21590cb02e5befc88ef965520d3eSundeep Ghuman private int mNetworkId = WifiConfiguration.INVALID_NETWORK_ID; 519853743705603e0b5214e5995bea8c9267708813Dave Schaefer private String ssid = "TestSsid"; 529853743705603e0b5214e5995bea8c9267708813Dave Schaefer private NetworkInfo mNetworkInfo = null; 53ced37dba7b2ce04ea65a47273d5892ace90ac33cPeter Qiu private String mFqdn = null; 54ced37dba7b2ce04ea65a47273d5892ace90ac33cPeter Qiu private String mProviderFriendlyName = null; 55ce6b0b2539dbb562b5c0e720d51bd3d35af437cfSundeep Ghuman private int mSecurity = AccessPoint.SECURITY_NONE; 5696a53579088a21590cb02e5befc88ef965520d3eSundeep Ghuman private WifiConfiguration mWifiConfig; 5796a53579088a21590cb02e5befc88ef965520d3eSundeep Ghuman private WifiInfo mWifiInfo; 58280581b1053f9a52457a7a9b8873bc6fef1b5472Peter Qiu private boolean mIsCarrierAp = false; 59280581b1053f9a52457a7a9b8873bc6fef1b5472Peter Qiu private String mCarrierName = null; 609853743705603e0b5214e5995bea8c9267708813Dave Schaefer 619853743705603e0b5214e5995bea8c9267708813Dave Schaefer Context mContext; 6204f7f34a713062ec3fd54a4c19481e9f76819899Sundeep Ghuman private ArrayList<ScanResult> mScanResults; 63fedf4617894ec75d972bbc681b3c64ef8914b980Sundeep Ghuman private ArrayList<TimestampedScoredNetwork> mScoredNetworkCache; 649853743705603e0b5214e5995bea8c9267708813Dave Schaefer 65d1dcfd1dc05380864c3ed57a1519e260b91635f1Antony Sargent @Keep 669853743705603e0b5214e5995bea8c9267708813Dave Schaefer public TestAccessPointBuilder(Context context) { 679853743705603e0b5214e5995bea8c9267708813Dave Schaefer mContext = context; 689853743705603e0b5214e5995bea8c9267708813Dave Schaefer } 699853743705603e0b5214e5995bea8c9267708813Dave Schaefer 70d1dcfd1dc05380864c3ed57a1519e260b91635f1Antony Sargent @Keep 719853743705603e0b5214e5995bea8c9267708813Dave Schaefer public AccessPoint build() { 729853743705603e0b5214e5995bea8c9267708813Dave Schaefer Bundle bundle = new Bundle(); 739853743705603e0b5214e5995bea8c9267708813Dave Schaefer 7496a53579088a21590cb02e5befc88ef965520d3eSundeep Ghuman WifiConfiguration wifiConfig = new WifiConfiguration(); 7596a53579088a21590cb02e5befc88ef965520d3eSundeep Ghuman wifiConfig.networkId = mNetworkId; 767c32aa3039fd9eba3c09f7503ac451a0ba0b1d87Sundeep Ghuman wifiConfig.BSSID = mBssid; 779853743705603e0b5214e5995bea8c9267708813Dave Schaefer 789853743705603e0b5214e5995bea8c9267708813Dave Schaefer bundle.putString(AccessPoint.KEY_SSID, ssid); 7996a53579088a21590cb02e5befc88ef965520d3eSundeep Ghuman bundle.putParcelable(AccessPoint.KEY_CONFIG, wifiConfig); 809853743705603e0b5214e5995bea8c9267708813Dave Schaefer bundle.putParcelable(AccessPoint.KEY_NETWORKINFO, mNetworkInfo); 8196a53579088a21590cb02e5befc88ef965520d3eSundeep Ghuman bundle.putParcelable(AccessPoint.KEY_WIFIINFO, mWifiInfo); 82ced37dba7b2ce04ea65a47273d5892ace90ac33cPeter Qiu if (mFqdn != null) { 83ced37dba7b2ce04ea65a47273d5892ace90ac33cPeter Qiu bundle.putString(AccessPoint.KEY_FQDN, mFqdn); 84ced37dba7b2ce04ea65a47273d5892ace90ac33cPeter Qiu } 85ced37dba7b2ce04ea65a47273d5892ace90ac33cPeter Qiu if (mProviderFriendlyName != null) { 86ced37dba7b2ce04ea65a47273d5892ace90ac33cPeter Qiu bundle.putString(AccessPoint.KEY_PROVIDER_FRIENDLY_NAME, mProviderFriendlyName); 87ced37dba7b2ce04ea65a47273d5892ace90ac33cPeter Qiu } 8804f7f34a713062ec3fd54a4c19481e9f76819899Sundeep Ghuman if (mScanResults != null) { 8904f7f34a713062ec3fd54a4c19481e9f76819899Sundeep Ghuman bundle.putParcelableArray(AccessPoint.KEY_SCANRESULTS, 9004f7f34a713062ec3fd54a4c19481e9f76819899Sundeep Ghuman mScanResults.toArray(new Parcelable[mScanResults.size()])); 91a28050ae42edb487239d9800b173ea334981f2b5Sundeep Ghuman } 92fedf4617894ec75d972bbc681b3c64ef8914b980Sundeep Ghuman if (mScoredNetworkCache != null) { 93fedf4617894ec75d972bbc681b3c64ef8914b980Sundeep Ghuman bundle.putParcelableArrayList(AccessPoint.KEY_SCOREDNETWORKCACHE, mScoredNetworkCache); 94fedf4617894ec75d972bbc681b3c64ef8914b980Sundeep Ghuman } 95ce6b0b2539dbb562b5c0e720d51bd3d35af437cfSundeep Ghuman bundle.putInt(AccessPoint.KEY_SECURITY, mSecurity); 96f4f3842b02262a2483b958aa4b1e9b9e8fc4fb7bEric Schwarzenbach bundle.putInt(AccessPoint.KEY_SPEED, mSpeed); 97280581b1053f9a52457a7a9b8873bc6fef1b5472Peter Qiu bundle.putBoolean(AccessPoint.KEY_IS_CARRIER_AP, mIsCarrierAp); 98280581b1053f9a52457a7a9b8873bc6fef1b5472Peter Qiu if (mCarrierName != null) { 99280581b1053f9a52457a7a9b8873bc6fef1b5472Peter Qiu bundle.putString(AccessPoint.KEY_CARRIER_NAME, mCarrierName); 100280581b1053f9a52457a7a9b8873bc6fef1b5472Peter Qiu } 101ce6b0b2539dbb562b5c0e720d51bd3d35af437cfSundeep Ghuman 1029853743705603e0b5214e5995bea8c9267708813Dave Schaefer AccessPoint ap = new AccessPoint(mContext, bundle); 1039853743705603e0b5214e5995bea8c9267708813Dave Schaefer ap.setRssi(mRssi); 1049853743705603e0b5214e5995bea8c9267708813Dave Schaefer return ap; 1059853743705603e0b5214e5995bea8c9267708813Dave Schaefer } 1069853743705603e0b5214e5995bea8c9267708813Dave Schaefer 107d1dcfd1dc05380864c3ed57a1519e260b91635f1Antony Sargent @Keep 1089853743705603e0b5214e5995bea8c9267708813Dave Schaefer public TestAccessPointBuilder setActive(boolean active) { 1099853743705603e0b5214e5995bea8c9267708813Dave Schaefer if (active) { 1109853743705603e0b5214e5995bea8c9267708813Dave Schaefer mNetworkInfo = new NetworkInfo( 1119853743705603e0b5214e5995bea8c9267708813Dave Schaefer ConnectivityManager.TYPE_DUMMY, 1129853743705603e0b5214e5995bea8c9267708813Dave Schaefer ConnectivityManager.TYPE_DUMMY, 1139853743705603e0b5214e5995bea8c9267708813Dave Schaefer "TestNetwork", 1149853743705603e0b5214e5995bea8c9267708813Dave Schaefer "TestNetwork"); 1159853743705603e0b5214e5995bea8c9267708813Dave Schaefer } else { 1169853743705603e0b5214e5995bea8c9267708813Dave Schaefer mNetworkInfo = null; 1179853743705603e0b5214e5995bea8c9267708813Dave Schaefer } 1189853743705603e0b5214e5995bea8c9267708813Dave Schaefer return this; 1199853743705603e0b5214e5995bea8c9267708813Dave Schaefer } 1209853743705603e0b5214e5995bea8c9267708813Dave Schaefer 1219853743705603e0b5214e5995bea8c9267708813Dave Schaefer /** 12296a53579088a21590cb02e5befc88ef965520d3eSundeep Ghuman * Set the rssi based upon the desired signal level. 123ce78a5f2d33716fde95f12b1e02df953d013e986Sundeep Ghuman * 12496a53579088a21590cb02e5befc88ef965520d3eSundeep Ghuman * <p>Side effect: if this AccessPoint was previously unreachable, 12596a53579088a21590cb02e5befc88ef965520d3eSundeep Ghuman * setting the level will also make it reachable. 12696a53579088a21590cb02e5befc88ef965520d3eSundeep Ghuman */ 127d1dcfd1dc05380864c3ed57a1519e260b91635f1Antony Sargent @Keep 1289853743705603e0b5214e5995bea8c9267708813Dave Schaefer public TestAccessPointBuilder setLevel(int level) { 129b9647ebba07f4c7e1db9ccbbd3acc78323271c9dSundeep Ghuman // Reversal of WifiManager.calculateSignalLevels 130b9647ebba07f4c7e1db9ccbbd3acc78323271c9dSundeep Ghuman if (level == 0) { 131b9647ebba07f4c7e1db9ccbbd3acc78323271c9dSundeep Ghuman mRssi = MIN_RSSI; 132b9647ebba07f4c7e1db9ccbbd3acc78323271c9dSundeep Ghuman } else if (level >= AccessPoint.SIGNAL_LEVELS) { 133b9647ebba07f4c7e1db9ccbbd3acc78323271c9dSundeep Ghuman mRssi = MAX_RSSI; 134b9647ebba07f4c7e1db9ccbbd3acc78323271c9dSundeep Ghuman } else { 135b9647ebba07f4c7e1db9ccbbd3acc78323271c9dSundeep Ghuman float inputRange = MAX_RSSI - MIN_RSSI; 136b9647ebba07f4c7e1db9ccbbd3acc78323271c9dSundeep Ghuman float outputRange = AccessPoint.SIGNAL_LEVELS - 1; 137b9647ebba07f4c7e1db9ccbbd3acc78323271c9dSundeep Ghuman mRssi = (int) (level * inputRange / outputRange + MIN_RSSI); 1389853743705603e0b5214e5995bea8c9267708813Dave Schaefer } 1399853743705603e0b5214e5995bea8c9267708813Dave Schaefer return this; 1409853743705603e0b5214e5995bea8c9267708813Dave Schaefer } 1419853743705603e0b5214e5995bea8c9267708813Dave Schaefer 142d1dcfd1dc05380864c3ed57a1519e260b91635f1Antony Sargent @Keep 14396a53579088a21590cb02e5befc88ef965520d3eSundeep Ghuman public TestAccessPointBuilder setNetworkInfo(NetworkInfo info) { 14496a53579088a21590cb02e5befc88ef965520d3eSundeep Ghuman mNetworkInfo = info; 14596a53579088a21590cb02e5befc88ef965520d3eSundeep Ghuman return this; 14696a53579088a21590cb02e5befc88ef965520d3eSundeep Ghuman } 14796a53579088a21590cb02e5befc88ef965520d3eSundeep Ghuman 148d1dcfd1dc05380864c3ed57a1519e260b91635f1Antony Sargent @Keep 14996a53579088a21590cb02e5befc88ef965520d3eSundeep Ghuman public TestAccessPointBuilder setRssi(int rssi) { 15096a53579088a21590cb02e5befc88ef965520d3eSundeep Ghuman mRssi = rssi; 151f4f3842b02262a2483b958aa4b1e9b9e8fc4fb7bEric Schwarzenbach return this; 152f4f3842b02262a2483b958aa4b1e9b9e8fc4fb7bEric Schwarzenbach } 153f4f3842b02262a2483b958aa4b1e9b9e8fc4fb7bEric Schwarzenbach 154f4f3842b02262a2483b958aa4b1e9b9e8fc4fb7bEric Schwarzenbach public TestAccessPointBuilder setSpeed(int speed) { 155f4f3842b02262a2483b958aa4b1e9b9e8fc4fb7bEric Schwarzenbach mSpeed = speed; 15696a53579088a21590cb02e5befc88ef965520d3eSundeep Ghuman return this; 15796a53579088a21590cb02e5befc88ef965520d3eSundeep Ghuman } 15896a53579088a21590cb02e5befc88ef965520d3eSundeep Ghuman 1599853743705603e0b5214e5995bea8c9267708813Dave Schaefer /** 1609853743705603e0b5214e5995bea8c9267708813Dave Schaefer * Set whether the AccessPoint is reachable. 1619853743705603e0b5214e5995bea8c9267708813Dave Schaefer * Side effect: if the signal level was not previously set, 1629853743705603e0b5214e5995bea8c9267708813Dave Schaefer * making an AccessPoint reachable will set the signal to the minimum level. 1639853743705603e0b5214e5995bea8c9267708813Dave Schaefer */ 164d1dcfd1dc05380864c3ed57a1519e260b91635f1Antony Sargent @Keep 1659853743705603e0b5214e5995bea8c9267708813Dave Schaefer public TestAccessPointBuilder setReachable(boolean reachable) { 1669853743705603e0b5214e5995bea8c9267708813Dave Schaefer if (reachable) { 1679853743705603e0b5214e5995bea8c9267708813Dave Schaefer // only override the mRssi if it hasn't been set yet 1689853743705603e0b5214e5995bea8c9267708813Dave Schaefer if (mRssi == AccessPoint.UNREACHABLE_RSSI) { 1699853743705603e0b5214e5995bea8c9267708813Dave Schaefer mRssi = MIN_RSSI; 1709853743705603e0b5214e5995bea8c9267708813Dave Schaefer } 1719853743705603e0b5214e5995bea8c9267708813Dave Schaefer } else { 1729853743705603e0b5214e5995bea8c9267708813Dave Schaefer mRssi = AccessPoint.UNREACHABLE_RSSI; 1739853743705603e0b5214e5995bea8c9267708813Dave Schaefer } 1749853743705603e0b5214e5995bea8c9267708813Dave Schaefer return this; 1759853743705603e0b5214e5995bea8c9267708813Dave Schaefer } 1769853743705603e0b5214e5995bea8c9267708813Dave Schaefer 177d1dcfd1dc05380864c3ed57a1519e260b91635f1Antony Sargent @Keep 1789853743705603e0b5214e5995bea8c9267708813Dave Schaefer public TestAccessPointBuilder setSaved(boolean saved){ 1799853743705603e0b5214e5995bea8c9267708813Dave Schaefer if (saved) { 18096a53579088a21590cb02e5befc88ef965520d3eSundeep Ghuman mNetworkId = 1; 1819853743705603e0b5214e5995bea8c9267708813Dave Schaefer } else { 18296a53579088a21590cb02e5befc88ef965520d3eSundeep Ghuman mNetworkId = WifiConfiguration.INVALID_NETWORK_ID; 1839853743705603e0b5214e5995bea8c9267708813Dave Schaefer } 1849853743705603e0b5214e5995bea8c9267708813Dave Schaefer return this; 1859853743705603e0b5214e5995bea8c9267708813Dave Schaefer } 1869853743705603e0b5214e5995bea8c9267708813Dave Schaefer 187d1dcfd1dc05380864c3ed57a1519e260b91635f1Antony Sargent @Keep 188ce6b0b2539dbb562b5c0e720d51bd3d35af437cfSundeep Ghuman public TestAccessPointBuilder setSecurity(int security) { 189ce6b0b2539dbb562b5c0e720d51bd3d35af437cfSundeep Ghuman mSecurity = security; 190ce6b0b2539dbb562b5c0e720d51bd3d35af437cfSundeep Ghuman return this; 191ce6b0b2539dbb562b5c0e720d51bd3d35af437cfSundeep Ghuman } 192ce6b0b2539dbb562b5c0e720d51bd3d35af437cfSundeep Ghuman 193d1dcfd1dc05380864c3ed57a1519e260b91635f1Antony Sargent @Keep 1949853743705603e0b5214e5995bea8c9267708813Dave Schaefer public TestAccessPointBuilder setSsid(String newSsid) { 1959853743705603e0b5214e5995bea8c9267708813Dave Schaefer ssid = newSsid; 1969853743705603e0b5214e5995bea8c9267708813Dave Schaefer return this; 1979853743705603e0b5214e5995bea8c9267708813Dave Schaefer } 198ced37dba7b2ce04ea65a47273d5892ace90ac33cPeter Qiu 199d1dcfd1dc05380864c3ed57a1519e260b91635f1Antony Sargent @Keep 200ced37dba7b2ce04ea65a47273d5892ace90ac33cPeter Qiu public TestAccessPointBuilder setFqdn(String fqdn) { 201ced37dba7b2ce04ea65a47273d5892ace90ac33cPeter Qiu mFqdn = fqdn; 202ced37dba7b2ce04ea65a47273d5892ace90ac33cPeter Qiu return this; 203ced37dba7b2ce04ea65a47273d5892ace90ac33cPeter Qiu } 204ced37dba7b2ce04ea65a47273d5892ace90ac33cPeter Qiu 205d1dcfd1dc05380864c3ed57a1519e260b91635f1Antony Sargent @Keep 206ced37dba7b2ce04ea65a47273d5892ace90ac33cPeter Qiu public TestAccessPointBuilder setProviderFriendlyName(String friendlyName) { 207ced37dba7b2ce04ea65a47273d5892ace90ac33cPeter Qiu mProviderFriendlyName = friendlyName; 208ced37dba7b2ce04ea65a47273d5892ace90ac33cPeter Qiu return this; 209ced37dba7b2ce04ea65a47273d5892ace90ac33cPeter Qiu } 21096a53579088a21590cb02e5befc88ef965520d3eSundeep Ghuman 211d1dcfd1dc05380864c3ed57a1519e260b91635f1Antony Sargent @Keep 21296a53579088a21590cb02e5befc88ef965520d3eSundeep Ghuman public TestAccessPointBuilder setWifiInfo(WifiInfo info) { 21396a53579088a21590cb02e5befc88ef965520d3eSundeep Ghuman mWifiInfo = info; 21496a53579088a21590cb02e5befc88ef965520d3eSundeep Ghuman return this; 21596a53579088a21590cb02e5befc88ef965520d3eSundeep Ghuman } 21696a53579088a21590cb02e5befc88ef965520d3eSundeep Ghuman 21796a53579088a21590cb02e5befc88ef965520d3eSundeep Ghuman /** 21896a53579088a21590cb02e5befc88ef965520d3eSundeep Ghuman * Set the networkId in the WifiConfig. 21996a53579088a21590cb02e5befc88ef965520d3eSundeep Ghuman * 22096a53579088a21590cb02e5befc88ef965520d3eSundeep Ghuman * <p>Setting this to a value other than {@link WifiConfiguration#INVALID_NETWORK_ID} makes this 22196a53579088a21590cb02e5befc88ef965520d3eSundeep Ghuman * AccessPoint a saved network. 22296a53579088a21590cb02e5befc88ef965520d3eSundeep Ghuman */ 223d1dcfd1dc05380864c3ed57a1519e260b91635f1Antony Sargent @Keep 22496a53579088a21590cb02e5befc88ef965520d3eSundeep Ghuman public TestAccessPointBuilder setNetworkId(int networkId) { 22596a53579088a21590cb02e5befc88ef965520d3eSundeep Ghuman mNetworkId = networkId; 22696a53579088a21590cb02e5befc88ef965520d3eSundeep Ghuman return this; 22796a53579088a21590cb02e5befc88ef965520d3eSundeep Ghuman } 2287c32aa3039fd9eba3c09f7503ac451a0ba0b1d87Sundeep Ghuman 2297c32aa3039fd9eba3c09f7503ac451a0ba0b1d87Sundeep Ghuman public TestAccessPointBuilder setBssid(String bssid) { 2307c32aa3039fd9eba3c09f7503ac451a0ba0b1d87Sundeep Ghuman mBssid = bssid; 2317c32aa3039fd9eba3c09f7503ac451a0ba0b1d87Sundeep Ghuman return this; 2327c32aa3039fd9eba3c09f7503ac451a0ba0b1d87Sundeep Ghuman } 233a28050ae42edb487239d9800b173ea334981f2b5Sundeep Ghuman 23404f7f34a713062ec3fd54a4c19481e9f76819899Sundeep Ghuman public TestAccessPointBuilder setScanResults(ArrayList<ScanResult> scanResults) { 23504f7f34a713062ec3fd54a4c19481e9f76819899Sundeep Ghuman mScanResults = scanResults; 236a28050ae42edb487239d9800b173ea334981f2b5Sundeep Ghuman return this; 237a28050ae42edb487239d9800b173ea334981f2b5Sundeep Ghuman } 238280581b1053f9a52457a7a9b8873bc6fef1b5472Peter Qiu 239280581b1053f9a52457a7a9b8873bc6fef1b5472Peter Qiu public TestAccessPointBuilder setIsCarrierAp(boolean isCarrierAp) { 240280581b1053f9a52457a7a9b8873bc6fef1b5472Peter Qiu mIsCarrierAp = isCarrierAp; 241280581b1053f9a52457a7a9b8873bc6fef1b5472Peter Qiu return this; 242280581b1053f9a52457a7a9b8873bc6fef1b5472Peter Qiu } 243280581b1053f9a52457a7a9b8873bc6fef1b5472Peter Qiu 244280581b1053f9a52457a7a9b8873bc6fef1b5472Peter Qiu public TestAccessPointBuilder setCarrierName(String carrierName) { 245280581b1053f9a52457a7a9b8873bc6fef1b5472Peter Qiu mCarrierName = carrierName; 246280581b1053f9a52457a7a9b8873bc6fef1b5472Peter Qiu return this; 247280581b1053f9a52457a7a9b8873bc6fef1b5472Peter Qiu } 248fedf4617894ec75d972bbc681b3c64ef8914b980Sundeep Ghuman 249fedf4617894ec75d972bbc681b3c64ef8914b980Sundeep Ghuman public TestAccessPointBuilder setScoredNetworkCache( 250fedf4617894ec75d972bbc681b3c64ef8914b980Sundeep Ghuman ArrayList<TimestampedScoredNetwork> scoredNetworkCache) { 251fedf4617894ec75d972bbc681b3c64ef8914b980Sundeep Ghuman mScoredNetworkCache = scoredNetworkCache; 252fedf4617894ec75d972bbc681b3c64ef8914b980Sundeep Ghuman return this; 253fedf4617894ec75d972bbc681b3c64ef8914b980Sundeep Ghuman } 2549853743705603e0b5214e5995bea8c9267708813Dave Schaefer} 255