summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorScott Warner <Tortel1210@gmail.com>2015-01-25 14:04:53 -0500
committerSteve Kondik <steve@cyngn.com>2015-03-14 23:47:22 -0700
commitd9fcea76e8af1135128bea4f7c74309c23ad92c7 (patch)
tree4dba5cb74514ece63b15f5e37571239175bdf1ff
parent24c74241fc14ade7635b96cf5a6d2a8a4d39cc64 (diff)
downloadandroid_packages_apps_Bluetooth-d9fcea76e8af1135128bea4f7c74309c23ad92c7.tar.gz
android_packages_apps_Bluetooth-d9fcea76e8af1135128bea4f7c74309c23ad92c7.tar.bz2
android_packages_apps_Bluetooth-d9fcea76e8af1135128bea4f7c74309c23ad92c7.zip
Handle change from boolean to int preference
Commit 02bf7ae9826a355db8614d1aad4f04bb5d6509ab changed the type of the phonebook access preference from boolean to int, which throws a ClassCastException and disconnects from the device. This changes the preference type from a boolean to an integer if this would happen Change-Id: I37bc1f4eec52cd05a04d370bfcecb473c0eff374
-rw-r--r--src/com/android/bluetooth/btservice/AdapterService.java16
1 files changed, 15 insertions, 1 deletions
diff --git a/src/com/android/bluetooth/btservice/AdapterService.java b/src/com/android/bluetooth/btservice/AdapterService.java
index aaafd2f85..54d883c82 100644
--- a/src/com/android/bluetooth/btservice/AdapterService.java
+++ b/src/com/android/bluetooth/btservice/AdapterService.java
@@ -1837,7 +1837,21 @@ public class AdapterService extends Service {
if (!pref.contains(device.getAddress())) {
return BluetoothDevice.ACCESS_UNKNOWN;
}
- return pref.getInt(device.getAddress(), BluetoothDevice.ACCESS_UNKNOWN);
+ try {
+ return pref.getInt(device.getAddress(), BluetoothDevice.ACCESS_UNKNOWN);
+ } catch (ClassCastException e) {
+ // Handle and change old boolean preferences to the int-based values
+ boolean currentPref = pref.getBoolean(device.getAddress(), false);
+ int newPref = currentPref ?
+ BluetoothDevice.ACCESS_ALLOWED : BluetoothDevice.ACCESS_REJECTED;
+
+ SharedPreferences.Editor editor = pref.edit();
+ editor.putInt(device.getAddress(), newPref);
+ if (editor.commit()) {
+ return newPref;
+ }
+ return BluetoothDevice.ACCESS_UNKNOWN;
+ }
}
boolean setPhonebookAccessPermission(BluetoothDevice device, int value) {