summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJaikumar Ganesh <jaikumarg@android.com>2011-04-26 11:17:39 -0700
committerAndroid Code Review <code-review@android.com>2011-04-26 11:17:39 -0700
commit16fc087dc9dea43c436b0f98995ba0afb75119fb (patch)
treefa56f0e608b54959c051a53907da9368252222b3
parent138654ff978d6fc784003f87dfb5fda46a6a3703 (diff)
parent7d6a3299b58c5b53de4016a2e199974b94ae90df (diff)
downloadandroid_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.java6
-rw-r--r--src/com/android/bluetooth/pbap/BluetoothPbapService.java9
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)) {