Merge "OPP: Fix leaked IntentReceiver issue" into q-keystone-qcom-dev
diff --git a/src/com/android/bluetooth/opp/BluetoothOppService.java b/src/com/android/bluetooth/opp/BluetoothOppService.java
index 77af4a7..4d529f7 100755
--- a/src/com/android/bluetooth/opp/BluetoothOppService.java
+++ b/src/com/android/bluetooth/opp/BluetoothOppService.java
@@ -337,7 +337,7 @@
                         mTransfer.onBatchCanceled();
                         mTransfer = null;
                     }
-                    unregisterReceivers();
+                    unregisterObserver();
                     synchronized (BluetoothOppService.this) {
                         if (mUpdateThread != null) {
                             mUpdateThread.interrupt();
@@ -510,12 +510,19 @@
             Log.v(TAG, "onDestroy");
         }
         stopListeners();
+
+        try {
+            unregisterReceiver(mBluetoothReceiver);
+        } catch (IllegalArgumentException e) {
+            Log.w(TAG, "unregisterReceiver " + e.toString());
+        }
+
         if (mHandler != null) {
             mHandler.removeCallbacksAndMessages(null);
         }
     }
 
-    private void unregisterReceivers() {
+    private void unregisterObserver() {
         try {
             if (mObserver != null) {
                 getContentResolver().unregisterContentObserver(mObserver);
@@ -524,11 +531,6 @@
         } catch (IllegalArgumentException e) {
             Log.w(TAG, "unregisterContentObserver " + e.toString());
         }
-        try {
-            unregisterReceiver(mBluetoothReceiver);
-        } catch (IllegalArgumentException e) {
-            Log.w(TAG, "unregisterReceiver " + e.toString());
-        }
     }
 
     /* suppose we auto accept an incoming OPUSH connection */