Merge "Update SubscriptionManager API by replacing 'id' & 'idx' with 'index'."
diff --git a/src/com/android/settings/bluetooth/BluetoothPairingService.java b/src/com/android/settings/bluetooth/BluetoothPairingService.java
index a24a3f0..5dfd283 100644
--- a/src/com/android/settings/bluetooth/BluetoothPairingService.java
+++ b/src/com/android/settings/bluetooth/BluetoothPairingService.java
@@ -80,6 +80,7 @@
         Log.d(TAG, "Dismiss pairing for " + mDevice.getAddress() + " (" + mDevice.getName() + "), Cancelled.");
       }
       stopForeground(true);
+      stopSelf();
     }
   };
 
@@ -89,6 +90,12 @@
 
   @Override
   public int onStartCommand(Intent intent, int flags, int startId) {
+    if (intent == null) {
+      Log.e(TAG, "Can't start: null intent!");
+      stopSelf();
+      return START_NOT_STICKY;
+    }
+
     Resources res = getResources();
     Notification.Builder builder = new Notification.Builder(this)
         .setSmallIcon(android.R.drawable.stat_sys_data_bluetooth)
@@ -99,6 +106,12 @@
 
     mDevice = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
 
+    if (mDevice.getBondState() != BluetoothDevice.BOND_BONDING) {
+      Log.w(TAG, "Device " + mDevice + " not bonding: " + mDevice.getBondState());
+      stopSelf();
+      return START_NOT_STICKY;
+    }
+
     String name = intent.getStringExtra(BluetoothDevice.EXTRA_NAME);
     if (TextUtils.isEmpty(name)) {
       BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
@@ -119,7 +132,7 @@
     registerReceiver(mCancelReceiver, filter);
 
     startForeground(NOTIFICATION_ID, builder.getNotification());
-    return START_STICKY;
+    return START_REDELIVER_INTENT;
   }
 
   @Override