Fix some NPE issue
Test: unit test
Bug: 222020304
Bug: 222070055
Change-Id: Iadcdea01127bdec134ef091a562c36e81fdc8630
Merged-In: Iadcdea01127bdec134ef091a562c36e81fdc8630
(cherry picked from commit 2b2c26bf712ea8872604b4797c316ad363ca2f07)
diff --git a/nearby/service/java/com/android/server/nearby/fastpair/FastPairAdvHandler.java b/nearby/service/java/com/android/server/nearby/fastpair/FastPairAdvHandler.java
index f41715a..08e98db 100644
--- a/nearby/service/java/com/android/server/nearby/fastpair/FastPairAdvHandler.java
+++ b/nearby/service/java/com/android/server/nearby/fastpair/FastPairAdvHandler.java
@@ -79,6 +79,11 @@
Rpcs.GetObservedDeviceResponse response =
FastPairDataProvider.getInstance()
.loadFastPairAntispoofkeyDeviceMetadata(model);
+ if (response == null) {
+ Log.e(TAG, "server does not have model id "
+ + Hex.bytesToStringLowercase(model));
+ return;
+ }
Locator.get(mContext, FastPairHalfSheetManager.class).showHalfSheet(
DataUtils.toScanFastPairStoreItem(
response, mBleAddress,
@@ -128,6 +133,9 @@
static Data.FastPairDeviceWithAccountKey findRecognizedDevice(
List<Data.FastPairDeviceWithAccountKey> devices, BloomFilter bloomFilter, byte[] salt) {
for (Data.FastPairDeviceWithAccountKey device : devices) {
+ if (device.getAccountKey().toByteArray() == null) {
+ continue;
+ }
byte[] rotatedKey = concat(device.getAccountKey().toByteArray(), salt);
if (bloomFilter.possiblyContains(rotatedKey)) {
return device;