diff options
author | Jaikumar Ganesh <jaikumarg@android.com> | 2011-04-26 11:17:39 -0700 |
---|---|---|
committer | Android Code Review <code-review@android.com> | 2011-04-26 11:17:39 -0700 |
commit | 16fc087dc9dea43c436b0f98995ba0afb75119fb (patch) | |
tree | fa56f0e608b54959c051a53907da9368252222b3 | |
parent | 138654ff978d6fc784003f87dfb5fda46a6a3703 (diff) | |
parent | 7d6a3299b58c5b53de4016a2e199974b94ae90df (diff) | |
download | android_packages_apps_Bluetooth-16fc087dc9dea43c436b0f98995ba0afb75119fb.tar.gz android_packages_apps_Bluetooth-16fc087dc9dea43c436b0f98995ba0afb75119fb.tar.bz2 android_packages_apps_Bluetooth-16fc087dc9dea43c436b0f98995ba0afb75119fb.zip |
Merge "Fixing crash in BluetoothPbapService."
-rw-r--r-- | src/com/android/bluetooth/pbap/BluetoothPbapReceiver.java | 6 | ||||
-rw-r--r-- | src/com/android/bluetooth/pbap/BluetoothPbapService.java | 9 |
2 files changed, 14 insertions, 1 deletions
diff --git a/src/com/android/bluetooth/pbap/BluetoothPbapReceiver.java b/src/com/android/bluetooth/pbap/BluetoothPbapReceiver.java index b4503766a..55cb66c8e 100644 --- a/src/com/android/bluetooth/pbap/BluetoothPbapReceiver.java +++ b/src/com/android/bluetooth/pbap/BluetoothPbapReceiver.java @@ -61,6 +61,12 @@ public class BluetoothPbapReceiver extends BroadcastReceiver { || (state == BluetoothAdapter.STATE_TURNING_OFF)) { startService = false; } + } else { + // Don't forward intent unless device has bluetooth and bluetooth is enabled. + BluetoothAdapter adapter = BluetoothAdapter.getDefaultAdapter(); + if (adapter == null || !adapter.isEnabled()) { + startService = false; + } } if (startService) { context.startService(in); diff --git a/src/com/android/bluetooth/pbap/BluetoothPbapService.java b/src/com/android/bluetooth/pbap/BluetoothPbapService.java index 3b1216e6f..a7225b260 100644 --- a/src/com/android/bluetooth/pbap/BluetoothPbapService.java +++ b/src/com/android/bluetooth/pbap/BluetoothPbapService.java @@ -245,10 +245,17 @@ public class BluetoothPbapService extends Service { int state = intent.getIntExtra(BluetoothAdapter.EXTRA_STATE, BluetoothAdapter.ERROR); boolean removeTimeoutMsg = true; if (action.equals(BluetoothAdapter.ACTION_STATE_CHANGED)) { - removeTimeoutMsg = false; if (state == BluetoothAdapter.STATE_OFF) { + // Send any pending timeout now, as this service will be destroyed. + if (mSessionStatusHandler.hasMessages(USER_TIMEOUT)) { + Intent timeoutIntent = new Intent(USER_CONFIRM_TIMEOUT_ACTION); + sendBroadcast(timeoutIntent); + removePbapNotification(NOTIFICATION_ID_ACCESS); + } // Release all resources closeService(); + } else { + removeTimeoutMsg = false; } } else if (action.equals(ACCESS_ALLOWED_ACTION)) { if (intent.getBooleanExtra(EXTRA_ALWAYS_ALLOWED, false)) { |