From 52b69293340b3463a216c520bdc2934d037e530d Mon Sep 17 00:00:00 2001 From: Haijie Hong Date: Tue, 20 Aug 2024 17:02:26 +0800 Subject: [PATCH] Catch IllegalArgumentException when unregister callback BUG: 359585188 Test: local test Flag: EXEMPT minor fix Change-Id: Ie2e485b922b2bf1163d47c14040e6e3d48f55f86 --- .../bluetooth/BluetoothDeviceDetailsFragment.java | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/com/android/settings/bluetooth/BluetoothDeviceDetailsFragment.java b/src/com/android/settings/bluetooth/BluetoothDeviceDetailsFragment.java index bd762a1ef11..25b392c0461 100644 --- a/src/com/android/settings/bluetooth/BluetoothDeviceDetailsFragment.java +++ b/src/com/android/settings/bluetooth/BluetoothDeviceDetailsFragment.java @@ -255,8 +255,17 @@ public class BluetoothDeviceDetailsFragment extends RestrictedDashboardFragment public void onDetach() { super.onDetach(); mManager.getEventManager().unregisterCallback(mBluetoothCallback); - mBluetoothAdapter.removeOnMetadataChangedListener( - mCachedDevice.getDevice(), mExtraControlMetadataListener); + BluetoothDevice device = mCachedDevice.getDevice(); + try { + mBluetoothAdapter.removeOnMetadataChangedListener( + device, mExtraControlMetadataListener); + } catch (IllegalArgumentException e) { + Log.w( + TAG, + "Unable to unregister metadata change callback for " + + mCachedDevice, + e); + } } private void updateExtraControlUri(int viewWidth) {