diff options
author | 2025-03-18 22:39:23 +0000 | |
---|---|---|
committer | 2025-03-18 22:47:58 +0000 | |
commit | 6080c0a6f594f7bcba4f16703dd31c3f6ca22b86 (patch) | |
tree | 49715dd6b5f94b87ce15f3ad3dbbca1172ee9885 /framework | |
parent | 934f9d0a8d5636fa9f3c11860ae2cc1850b0e0be (diff) |
Use ParceledListSlice fix the binder transcation issue
Flag: EXEMPT bugfix
Bug: 403396045
Test: atest FrameworksWifiApiTests, FrameworksWifiTests
Change-Id: Id3b62fee3c2b7d18e8caf5fac64f1c25ef9ac4ba
Diffstat (limited to 'framework')
-rw-r--r-- | framework/java/android/net/wifi/IWifiScannerListener.aidl | 10 | ||||
-rw-r--r-- | framework/java/android/net/wifi/WifiScanner.java | 15 |
2 files changed, 14 insertions, 11 deletions
diff --git a/framework/java/android/net/wifi/IWifiScannerListener.aidl b/framework/java/android/net/wifi/IWifiScannerListener.aidl index bd19ac2d0f..74b22a1bbf 100644 --- a/framework/java/android/net/wifi/IWifiScannerListener.aidl +++ b/framework/java/android/net/wifi/IWifiScannerListener.aidl @@ -15,14 +15,14 @@ package android.net.wifi; -import android.net.wifi.WifiScanner; import android.net.wifi.ScanResult; +import android.net.wifi.WifiScanner; +import com.android.modules.utils.ParceledListSlice; /** * @hide */ -oneway interface IWifiScannerListener -{ +oneway interface IWifiScannerListener { void onSuccess(); void onFailure(int reason, String description); @@ -46,5 +46,5 @@ oneway interface IWifiScannerListener /** * reports full scan result for all access points found in scan */ - void onFullResults(in List<ScanResult> scanResult); -}
\ No newline at end of file + void onFullResults(in ParceledListSlice<ScanResult> scanResult); +} diff --git a/framework/java/android/net/wifi/WifiScanner.java b/framework/java/android/net/wifi/WifiScanner.java index fd9676e0e4..b5cc3b0976 100644 --- a/framework/java/android/net/wifi/WifiScanner.java +++ b/framework/java/android/net/wifi/WifiScanner.java @@ -45,6 +45,7 @@ import android.util.Log; import androidx.annotation.RequiresApi; import com.android.internal.util.Protocol; +import com.android.modules.utils.ParceledListSlice; import com.android.modules.utils.build.SdkLevel; import com.android.wifi.flags.Flags; @@ -387,14 +388,14 @@ public class WifiScanner { * reports full scan result for all access points found in scan */ @Override - public void onFullResults(List<ScanResult> fullScanResult) { + public void onFullResults(ParceledListSlice<ScanResult> fullScanResult) { Log.i(TAG, "onFullResults"); if (mActionListener == null) return; if (!(mActionListener instanceof ScanListener)) return; ScanListener scanListener = (ScanListener) mActionListener; Binder.clearCallingIdentity(); mExecutor.execute( - () -> fullScanResult.forEach(scanListener::onFullResult)); + () -> fullScanResult.getList().forEach(scanListener::onFullResult)); } @Override @@ -1021,7 +1022,8 @@ public class WifiScanner { dest.writeInt(mFlags); dest.writeInt(mBucketsScanned); dest.writeInt(mScannedBands); - dest.writeParcelableList(mResults, 0); + ParceledListSlice<ScanResult> parceledListSlice = new ParceledListSlice<>(mResults); + parceledListSlice.writeToParcel(dest, flags); } /** Implement the Parcelable interface {@hide} */ @@ -1032,9 +1034,10 @@ public class WifiScanner { int flags = in.readInt(); int bucketsScanned = in.readInt(); int bandsScanned = in.readInt(); - List<ScanResult> results = new ArrayList<>(); - in.readParcelableList(results, ScanResult.class.getClassLoader()); - return new ScanData(id, flags, bucketsScanned, bandsScanned, results); + ParceledListSlice<ScanResult> parceledListSlice = + ParceledListSlice.CREATOR.createFromParcel(in); + return new ScanData(id, flags, bucketsScanned, bandsScanned, + parceledListSlice.getList()); } public ScanData[] newArray(int size) { |