Add device to to cached device manager if it's not present

Bug: 346923808
Test: atest BluetoothDeviceDetailsFragmentTest
Flag: EXEMPT minor bug fix
(cherry picked from https://googleplex-android-review.googlesource.com/q/commit:a074f274991f6a172855e0253f49b0a6dd63c758)
Merged-In: Ia4987bc7ec93cb6b54d188922b7232d83d528f2f
Change-Id: Ia4987bc7ec93cb6b54d188922b7232d83d528f2f
diff --git a/src/com/android/settings/bluetooth/BluetoothDeviceDetailsFragment.java b/src/com/android/settings/bluetooth/BluetoothDeviceDetailsFragment.java
index 44915fe..5f9957b 100644
--- a/src/com/android/settings/bluetooth/BluetoothDeviceDetailsFragment.java
+++ b/src/com/android/settings/bluetooth/BluetoothDeviceDetailsFragment.java
@@ -142,13 +142,23 @@
     }
 
     @VisibleForTesting
+    @Nullable
     CachedBluetoothDevice getCachedDevice(String deviceAddress) {
         if (sTestDataFactory != null) {
             return sTestDataFactory.getDevice(deviceAddress);
         }
         BluetoothDevice remoteDevice =
                 mManager.getBluetoothAdapter().getRemoteDevice(deviceAddress);
-        return mManager.getCachedDeviceManager().findDevice(remoteDevice);
+        if (remoteDevice == null) {
+            return null;
+        }
+        CachedBluetoothDevice cachedDevice =
+                mManager.getCachedDeviceManager().findDevice(remoteDevice);
+        if (cachedDevice != null) {
+            return cachedDevice;
+        }
+        Log.i(TAG, "Add device to cached device manager: " + remoteDevice.getAnonymizedAddress());
+        return mManager.getCachedDeviceManager().addDevice(remoteDevice);
     }
 
     @VisibleForTesting