From 33c7e03b6ac9749ba07d326a869307d908feba2e Mon Sep 17 00:00:00 2001 From: Hemant Gupta Date: Wed, 1 Mar 2017 15:06:58 +0530 Subject: [PATCH] Bluetooth: Fix Resource Leak in OPP (1/2) Handle onDestroy in DevicePickerFragment class, which would be called when user presses back button and does not select any device. This will send intent to class that called DevicePickerFragment that no device is selected. Test: Performed the usecase overnight and see if no crash is observed. Bug: 35626275 Change-Id: Ib3965d7dea8d59b244abdc6ffe61ef21109346fb --- .../settings/bluetooth/DevicePickerFragment.java | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/com/android/settings/bluetooth/DevicePickerFragment.java b/src/com/android/settings/bluetooth/DevicePickerFragment.java index 00c731662be..f07b7acc0f9 100644 --- a/src/com/android/settings/bluetooth/DevicePickerFragment.java +++ b/src/com/android/settings/bluetooth/DevicePickerFragment.java @@ -103,12 +103,24 @@ public final class DevicePickerFragment extends DeviceListPreferenceFragment { public void onStart() { super.onStart(); addCachedDevices(); + mSelectedDevice = null; if (mStartScanOnStart) { mLocalAdapter.startScanning(true); mStartScanOnStart = false; } } + @Override + public void onDestroy() { + super.onDestroy(); + /* Check if any device was selected, if no device selected + * send ACTION_DEVICE_SELECTED with a null device, otherwise + * don't do anything */ + if (mSelectedDevice == null) { + sendDevicePickedIntent(null); + } + } + @Override void onDevicePreferenceClick(BluetoothDevicePreference btPreference) { mLocalAdapter.stopScanning();