Merge "Fix ScanResult array parceling." am: 5fdc86fb27
am: 68764eabb7
Change-Id: I6b44179d634722828f40524c26ccf6ea51521f11
This commit is contained in:
@@ -105,7 +105,16 @@ public final class RecommendationRequest implements Parcelable {
|
|||||||
}
|
}
|
||||||
|
|
||||||
protected RecommendationRequest(Parcel in) {
|
protected RecommendationRequest(Parcel in) {
|
||||||
mScanResults = (ScanResult[]) in.readParcelableArray(ScanResult.class.getClassLoader());
|
final int resultCount = in.readInt();
|
||||||
|
if (resultCount > 0) {
|
||||||
|
mScanResults = new ScanResult[resultCount];
|
||||||
|
for (int i = 0; i < resultCount; i++) {
|
||||||
|
mScanResults[i] = in.readParcelable(ScanResult.class.getClassLoader());
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
mScanResults = null;
|
||||||
|
}
|
||||||
|
|
||||||
mCurrentSelectedConfig = in.readParcelable(WifiConfiguration.class.getClassLoader());
|
mCurrentSelectedConfig = in.readParcelable(WifiConfiguration.class.getClassLoader());
|
||||||
mRequiredCapabilities = in.readParcelable(NetworkCapabilities.class.getClassLoader());
|
mRequiredCapabilities = in.readParcelable(NetworkCapabilities.class.getClassLoader());
|
||||||
}
|
}
|
||||||
@@ -117,7 +126,14 @@ public final class RecommendationRequest implements Parcelable {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void writeToParcel(Parcel dest, int flags) {
|
public void writeToParcel(Parcel dest, int flags) {
|
||||||
dest.writeParcelableArray(mScanResults, flags);
|
if (mScanResults != null) {
|
||||||
|
dest.writeInt(mScanResults.length);
|
||||||
|
for (int i = 0; i < mScanResults.length; i++) {
|
||||||
|
dest.writeParcelable(mScanResults[i], flags);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
dest.writeInt(0);
|
||||||
|
}
|
||||||
dest.writeParcelable(mCurrentSelectedConfig, flags);
|
dest.writeParcelable(mCurrentSelectedConfig, flags);
|
||||||
dest.writeParcelable(mRequiredCapabilities, flags);
|
dest.writeParcelable(mRequiredCapabilities, flags);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,84 @@
|
|||||||
|
package android.net;
|
||||||
|
|
||||||
|
import android.net.wifi.ScanResult;
|
||||||
|
import android.net.wifi.WifiConfiguration;
|
||||||
|
import android.os.Parcel;
|
||||||
|
import android.test.AndroidTestCase;
|
||||||
|
|
||||||
|
public class RecommendationRequestTest extends AndroidTestCase {
|
||||||
|
private ScanResult[] mScanResults;
|
||||||
|
private WifiConfiguration mConfiguration;
|
||||||
|
private NetworkCapabilities mCapabilities;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setUp() throws Exception {
|
||||||
|
mScanResults = new ScanResult[2];
|
||||||
|
mScanResults[0] = new ScanResult();
|
||||||
|
mScanResults[1] = new ScanResult(
|
||||||
|
"ssid",
|
||||||
|
"bssid",
|
||||||
|
0L /*hessid*/,
|
||||||
|
1 /*anqpDominId*/,
|
||||||
|
"caps",
|
||||||
|
2 /*level*/,
|
||||||
|
3 /*frequency*/,
|
||||||
|
4L /*tsf*/,
|
||||||
|
5 /*distCm*/,
|
||||||
|
6 /*distSdCm*/,
|
||||||
|
7 /*channelWidth*/,
|
||||||
|
8 /*centerFreq0*/,
|
||||||
|
9 /*centerFreq1*/,
|
||||||
|
false /*is80211McRTTResponder*/);
|
||||||
|
mConfiguration = new WifiConfiguration();
|
||||||
|
mConfiguration.SSID = "RecommendationRequestTest";
|
||||||
|
mCapabilities = new NetworkCapabilities()
|
||||||
|
.removeCapability(NetworkCapabilities.NET_CAPABILITY_TRUSTED);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void testParceling() throws Exception {
|
||||||
|
RecommendationRequest request = new RecommendationRequest.Builder()
|
||||||
|
.setCurrentRecommendedWifiConfig(mConfiguration)
|
||||||
|
.setScanResults(mScanResults)
|
||||||
|
.setNetworkCapabilities(mCapabilities)
|
||||||
|
.build();
|
||||||
|
|
||||||
|
RecommendationRequest parceled = passThroughParcel(request);
|
||||||
|
assertEquals(request.getCurrentSelectedConfig().SSID,
|
||||||
|
parceled.getCurrentSelectedConfig().SSID);
|
||||||
|
assertEquals(request.getRequiredCapabilities(), parceled.getRequiredCapabilities());
|
||||||
|
ScanResult[] parceledScanResults = parceled.getScanResults();
|
||||||
|
assertNotNull(parceledScanResults);
|
||||||
|
assertEquals(mScanResults.length, parceledScanResults.length);
|
||||||
|
for (int i = 0; i < mScanResults.length; i++) {
|
||||||
|
assertEquals(mScanResults[i].SSID, parceledScanResults[i].SSID);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void testParceling_nullScanResults() throws Exception {
|
||||||
|
RecommendationRequest request = new RecommendationRequest.Builder()
|
||||||
|
.setCurrentRecommendedWifiConfig(mConfiguration)
|
||||||
|
.setNetworkCapabilities(mCapabilities)
|
||||||
|
.build();
|
||||||
|
|
||||||
|
RecommendationRequest parceled = passThroughParcel(request);
|
||||||
|
assertEquals(request.getCurrentSelectedConfig().SSID,
|
||||||
|
parceled.getCurrentSelectedConfig().SSID);
|
||||||
|
assertEquals(request.getRequiredCapabilities(), parceled.getRequiredCapabilities());
|
||||||
|
ScanResult[] parceledScanResults = parceled.getScanResults();
|
||||||
|
assertNull(parceledScanResults);
|
||||||
|
}
|
||||||
|
|
||||||
|
private RecommendationRequest passThroughParcel(RecommendationRequest request) {
|
||||||
|
Parcel p = Parcel.obtain();
|
||||||
|
RecommendationRequest output = null;
|
||||||
|
try {
|
||||||
|
request.writeToParcel(p, 0);
|
||||||
|
p.setDataPosition(0);
|
||||||
|
output = RecommendationRequest.CREATOR.createFromParcel(p);
|
||||||
|
} finally {
|
||||||
|
p.recycle();
|
||||||
|
}
|
||||||
|
assertNotNull(output);
|
||||||
|
return output;
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user