diff options
author | Dan Pasanen <dan.pasanen@gmail.com> | 2017-04-05 08:20:56 -0500 |
---|---|---|
committer | Dan Pasanen <dan.pasanen@gmail.com> | 2017-04-05 08:20:56 -0500 |
commit | 8caae26b264a3ecb1f9e5b22123e75caf58c4c10 (patch) | |
tree | 8b858e15fd089d5bb990a6bbe0cfd3caa32f4d45 | |
parent | f4196b3baf2f7bcc7b78ecbc385b4ac14736a43f (diff) | |
parent | 971d02c0af79530b3d8be906476abfdbc563ba99 (diff) | |
download | android_packages_apps_Bluetooth-8caae26b264a3ecb1f9e5b22123e75caf58c4c10.tar.gz android_packages_apps_Bluetooth-8caae26b264a3ecb1f9e5b22123e75caf58c4c10.tar.bz2 android_packages_apps_Bluetooth-8caae26b264a3ecb1f9e5b22123e75caf58c4c10.zip |
Merge tag 'android-7.1.2_r2' into cm-14.1
Android 7.1.2 Release 2 (N2G47E)
Change-Id: I7a3e271db2f0e1e35a069906b9b7904e1e1fd7fe
24 files changed, 205 insertions, 106 deletions
diff --git a/jni/com_android_bluetooth_btservice_AdapterService.cpp b/jni/com_android_bluetooth_btservice_AdapterService.cpp index 28a0e558c..95cc6644d 100644 --- a/jni/com_android_bluetooth_btservice_AdapterService.cpp +++ b/jni/com_android_bluetooth_btservice_AdapterService.cpp @@ -32,8 +32,11 @@ #include <fcntl.h> namespace android { - +// OOB_LE_BD_ADDR_SIZE is 6 bytes addres + 1 byte address type +#define OOB_LE_BD_ADDR_SIZE 7 #define OOB_TK_SIZE 16 +#define OOB_LE_SC_C_SIZE 16 +#define OOB_LE_SC_R_SIZE 16 #define ADDITIONAL_NREFS 50 static jmethodID method_stateChangeCallback; @@ -892,19 +895,67 @@ static jboolean createBondOutOfBandNative(JNIEnv* env, jobject obj, jbyteArray a return result; } + jbyte* leBtDeviceAddressBytes = NULL; jbyte* smTKBytes = NULL; - jbyteArray smTK = callByteArrayGetter(env, oobData, "android/bluetooth/OobData", "getSecurityManagerTk"); + jbyte* leScCBytes = NULL; + jbyte* leScRBytes = NULL; + jbyteArray leBtDeviceAddress = NULL; + jbyteArray smTK = NULL; + jbyteArray leScC = NULL; + jbyteArray leScR = NULL; + + leBtDeviceAddress = callByteArrayGetter(env, oobData, "android/bluetooth/OobData", "getLeBluetoothDeviceAddress"); + if (leBtDeviceAddress != NULL) { + leBtDeviceAddressBytes = env->GetByteArrayElements(leBtDeviceAddress, NULL); + int len = env->GetArrayLength(leBtDeviceAddress); + if (len != OOB_LE_BD_ADDR_SIZE) { + ALOGI("%s: wrong length of leBtDeviceAddress, should be empty or %d bytes.", __func__, OOB_LE_BD_ADDR_SIZE); + jniThrowIOException(env, EINVAL); + goto done; + } + memcpy(oob_data.le_bt_dev_addr, leBtDeviceAddressBytes, len); + } + + smTK = callByteArrayGetter(env, oobData, "android/bluetooth/OobData", "getSecurityManagerTk"); if (smTK != NULL) { smTKBytes = env->GetByteArrayElements(smTK, NULL); int len = env->GetArrayLength(smTK); if (len != OOB_TK_SIZE) { - ALOGI("%s: wrong length of smTK, should be empty or %d bytes.", __FUNCTION__, OOB_TK_SIZE); + ALOGI("%s: wrong length of smTK, should be empty or %d bytes.", __func__, OOB_TK_SIZE); jniThrowIOException(env, EINVAL); goto done; } memcpy(oob_data.sm_tk, smTKBytes, len); } + leScC = callByteArrayGetter(env, oobData, "android/bluetooth/OobData", + "getLeSecureConnectionsConfirmation"); + if (leScC != NULL) { + leScCBytes = env->GetByteArrayElements(leScC, NULL); + int len = env->GetArrayLength(leScC); + if (len != OOB_LE_SC_C_SIZE) { + ALOGI("%s: wrong length of LE SC Confirmation, should be empty or %d bytes.", + __func__, OOB_LE_SC_C_SIZE); + jniThrowIOException(env, EINVAL); + goto done; + } + memcpy(oob_data.le_sc_c, leScCBytes, len); + } + + leScR = callByteArrayGetter(env, oobData, "android/bluetooth/OobData", + "getLeSecureConnectionsRandom"); + if (leScR != NULL) { + leScRBytes = env->GetByteArrayElements(leScR, NULL); + int len = env->GetArrayLength(leScR); + if (len != OOB_LE_SC_R_SIZE) { + ALOGI("%s: wrong length of LE SC Random, should be empty or %d bytes.", + __func__, OOB_LE_SC_R_SIZE); + jniThrowIOException(env, EINVAL); + goto done; + } + memcpy(oob_data.le_sc_r, leScRBytes, len); + } + if (sBluetoothInterface->create_bond_out_of_band((bt_bdaddr_t *)addr, transport, &oob_data) == BT_STATUS_SUCCESS) result = JNI_TRUE; @@ -912,9 +963,18 @@ static jboolean createBondOutOfBandNative(JNIEnv* env, jobject obj, jbyteArray a done: env->ReleaseByteArrayElements(address, addr, 0); + if (leBtDeviceAddress != NULL) + env->ReleaseByteArrayElements(leBtDeviceAddress, leBtDeviceAddressBytes, 0); + if (smTK != NULL) env->ReleaseByteArrayElements(smTK, smTKBytes, 0); + if (leScC != NULL) + env->ReleaseByteArrayElements(leScC, leScCBytes, 0); + + if (leScR != NULL) + env->ReleaseByteArrayElements(leScR, leScRBytes, 0); + return result; } diff --git a/res/values-b+sr+Latn/strings.xml b/res/values-b+sr+Latn/strings.xml index c3b1d1a02..360e03b35 100644 --- a/res/values-b+sr+Latn/strings.xml +++ b/res/values-b+sr+Latn/strings.xml @@ -69,7 +69,7 @@ <string name="upload_succ_ok" msgid="7705428476405478828">"Potvrdi"</string> <string name="upload_fail_line1" msgid="7899394672421491701">"Datoteka nije poslata na <xliff:g id="RECIPIENT">%1$s</xliff:g>."</string> <string name="upload_fail_line1_2" msgid="2108129204050841798">"Datoteka: <xliff:g id="FILE">%1$s</xliff:g>"</string> - <string name="upload_fail_ok" msgid="5807702461606714296">"Pokušaj ponovo"</string> + <string name="upload_fail_ok" msgid="5807702461606714296">"Probaj ponovo"</string> <string name="upload_fail_cancel" msgid="9118496285835687125">"Zatvori"</string> <string name="bt_error_btn_ok" msgid="5965151173011534240">"Potvrdi"</string> <string name="unknown_file" msgid="6092727753965095366">"Nepoznata datoteka"</string> @@ -87,7 +87,7 @@ <string name="bt_sm_2_1" product="nosdcard" msgid="352165168004521000">"Nema dovoljno prostora u USB memoriji da bi se sačuvala datoteka pošiljaoca „<xliff:g id="SENDER">%1$s</xliff:g>“"</string> <string name="bt_sm_2_1" product="default" msgid="1989018443456803630">"Nema dovoljno prostora na SD kartici da bi se sačuvala datoteka pošiljaoca „<xliff:g id="SENDER">%1$s</xliff:g>“"</string> <string name="bt_sm_2_2" msgid="2965243265852680543">"Potreban prostor: <xliff:g id="SIZE">%1$s</xliff:g>"</string> - <string name="ErrorTooManyRequests" msgid="8578277541472944529">"Previše zahteva se obrađuje. Pokušajte ponovo kasnije."</string> + <string name="ErrorTooManyRequests" msgid="8578277541472944529">"Previše zahteva se obrađuje. Probajte ponovo kasnije."</string> <string name="status_pending" msgid="2503691772030877944">"Prenos datoteke još nije počeo."</string> <string name="status_running" msgid="6562808920311008696">"Prenos datoteke je u toku."</string> <string name="status_success" msgid="239573225847565868">"Prenos datoteke je dovršen."</string> diff --git a/res/values-bn-rBD/strings_sap.xml b/res/values-bn-rBD/strings_sap.xml index 23def2a6e..35329d8fd 100644 --- a/res/values-bn-rBD/strings_sap.xml +++ b/res/values-bn-rBD/strings_sap.xml @@ -1,8 +1,8 @@ <?xml version="1.0" encoding="UTF-8"?> <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <string name="bluetooth_sap_notif_title" msgid="6877860822993195074">"ব্লুটুথ SIM -এ অ্যাক্সেস করুন"</string> - <string name="bluetooth_sap_notif_ticker" msgid="6807778527893726699">"ব্লুটুথ SIM -এ অ্যাক্সেস করুন"</string> + <string name="bluetooth_sap_notif_title" msgid="6877860822993195074">"ব্লুটুথ সিম -এ অ্যাক্সেস করুন"</string> + <string name="bluetooth_sap_notif_ticker" msgid="6807778527893726699">"ব্লুটুথ সিম -এ অ্যাক্সেস করুন"</string> <string name="bluetooth_sap_notif_message" msgid="7138657801087500690">"ক্লায়েন্ট সংযোগ বিচ্ছিন্ন করার অনুরোধ জানাবেন?"</string> <string name="bluetooth_sap_notif_disconnecting" msgid="819150843490233288">"সংযোগ বিচ্ছিন্ন করতে ক্লায়েন্টের জন্য অপেক্ষা করা"</string> <string name="bluetooth_sap_notif_disconnect_button" msgid="3678476872583356919">"সংযোগ বিচ্ছিন্ন করুন"</string> diff --git a/res/values-bs-rBA/strings.xml b/res/values-bs-rBA/strings.xml index aca69f4b2..d426d6c8c 100644 --- a/res/values-bs-rBA/strings.xml +++ b/res/values-bs-rBA/strings.xml @@ -41,7 +41,7 @@ <string name="notification_receiving" msgid="4674648179652543984">"Bluetooth dijeljenje: Prima se fajl <xliff:g id="FILE">%1$s</xliff:g>"</string> <string name="notification_received" msgid="3324588019186687985">"Bluetooth dijeljenje: Primljen fajl <xliff:g id="FILE">%1$s</xliff:g>"</string> <string name="notification_received_fail" msgid="3619350997285714746">"Bluetooth dijeljenje: Fajl <xliff:g id="FILE">%1$s</xliff:g> nije primljen"</string> - <string name="notification_sending" msgid="3035748958534983833">"Bluetooth dijeljenje: Šalje se fajl <xliff:g id="FILE">%1$s</xliff:g>"</string> + <string name="notification_sending" msgid="3035748958534983833">"Bluetooth dijeljenje: Slanje fajla <xliff:g id="FILE">%1$s</xliff:g>"</string> <string name="notification_sent" msgid="9218710861333027778">"Bluetooth dijeljenje: Poslan fajl <xliff:g id="FILE">%1$s</xliff:g>"</string> <string name="notification_sent_complete" msgid="302943281067557969">"Dovršeno 100%"</string> <string name="notification_sent_fail" msgid="6696082233774569445">"Bluetooth dijeljenje: Fajl <xliff:g id="FILE">%1$s</xliff:g> nije poslan"</string> diff --git a/res/values-el/strings.xml b/res/values-el/strings.xml index 7c90422cb..193a34f58 100644 --- a/res/values-el/strings.xml +++ b/res/values-el/strings.xml @@ -38,13 +38,13 @@ <string name="incoming_file_confirm_timeout_content" msgid="172779756093975981">"Σημειώθηκε διακοπή κατά την αποδοχή ενός εισερχόμενου αρχείου από τον αποστολέα \"<xliff:g id="SENDER">%1$s</xliff:g>\""</string> <string name="incoming_file_confirm_Notification_title" msgid="5573329005298936903">"Εισερχόμενο αρχείο"</string> <string name="incoming_file_confirm_Notification_content" msgid="3359694069319644738">"Ο χρήστης <xliff:g id="SENDER">%1$s</xliff:g> πρόκειται να στείλει το αρχείο <xliff:g id="FILE">%2$s</xliff:g>"</string> - <string name="notification_receiving" msgid="4674648179652543984">"Κοινή χρήση μέσω Bluetooth: Λήψη του <xliff:g id="FILE">%1$s</xliff:g>"</string> - <string name="notification_received" msgid="3324588019186687985">"Κοινή χρήση μέσω Bluetooth: Ελήφθη το <xliff:g id="FILE">%1$s</xliff:g>"</string> - <string name="notification_received_fail" msgid="3619350997285714746">"Κοινή χρήση μέσω Bluetooth: Το αρχείο <xliff:g id="FILE">%1$s</xliff:g> δεν ελήφθη"</string> - <string name="notification_sending" msgid="3035748958534983833">"Κοινή χρήση μέσω Bluetooth: Αποστολή του <xliff:g id="FILE">%1$s</xliff:g>"</string> - <string name="notification_sent" msgid="9218710861333027778">"Κοινή χρήση μέσω Bluetooth: Εστάλη το <xliff:g id="FILE">%1$s</xliff:g>"</string> + <string name="notification_receiving" msgid="4674648179652543984">"Μοιραστείτε μέσω Bluetooth: Λήψη του <xliff:g id="FILE">%1$s</xliff:g>"</string> + <string name="notification_received" msgid="3324588019186687985">"Μοιραστείτε μέσω Bluetooth: Ελήφθη το <xliff:g id="FILE">%1$s</xliff:g>"</string> + <string name="notification_received_fail" msgid="3619350997285714746">"Μοιραστείτε μέσω Bluetooth: Το αρχείο <xliff:g id="FILE">%1$s</xliff:g> δεν ελήφθη"</string> + <string name="notification_sending" msgid="3035748958534983833">"Μοιραστείτε μέσω Bluetooth: Αποστολή του <xliff:g id="FILE">%1$s</xliff:g>"</string> + <string name="notification_sent" msgid="9218710861333027778">"Μοιραστείτε μέσω Bluetooth: Εστάλη το <xliff:g id="FILE">%1$s</xliff:g>"</string> <string name="notification_sent_complete" msgid="302943281067557969">"Ολοκληρώθηκε το 100%"</string> - <string name="notification_sent_fail" msgid="6696082233774569445">"Κοινή χρήση μέσω Bluetooth: Το αρχείο <xliff:g id="FILE">%1$s</xliff:g> δεν εστάλη"</string> + <string name="notification_sent_fail" msgid="6696082233774569445">"Μοιραστείτε μέσω Bluetooth: Το αρχείο <xliff:g id="FILE">%1$s</xliff:g> δεν εστάλη"</string> <string name="download_title" msgid="3353228219772092586">"Μεταφορά αρχείου"</string> <string name="download_line1" msgid="4926604799202134144">"Από: \"<xliff:g id="SENDER">%1$s</xliff:g>\""</string> <string name="download_line2" msgid="5876973543019417712">"Αρχείο: <xliff:g id="FILE">%1$s</xliff:g>"</string> diff --git a/res/values-hi/strings.xml b/res/values-hi/strings.xml index ac0397a5a..d151385da 100644 --- a/res/values-hi/strings.xml +++ b/res/values-hi/strings.xml @@ -129,5 +129,5 @@ <string name="bluetooth_map_settings_title" msgid="7420332483392851321">"ब्लूटूथ संदेश साझाकरण सेटिंग"</string> <string name="bluetooth_map_settings_no_account_slots_left" msgid="1796029082612965251">"खाता नहीं चुना जा सकता. 0 स्लॉट शेष"</string> <string name="bluetooth_connected" msgid="6718623220072656906">"ब्लूटूथ ऑडियो कनेक्ट किया गया"</string> - <string name="bluetooth_disconnected" msgid="3318303728981478873">"ब्लूटूथ ऑडियो डिस्कनेक्ट किया गया"</string> + <string name="bluetooth_disconnected" msgid="3318303728981478873">"ब्लूटूथ ऑडियो डिसकनेक्ट किया गया"</string> </resources> diff --git a/res/values-hi/strings_sap.xml b/res/values-hi/strings_sap.xml index 0cb376c8c..9e9d76e55 100644 --- a/res/values-hi/strings_sap.xml +++ b/res/values-hi/strings_sap.xml @@ -3,8 +3,8 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="bluetooth_sap_notif_title" msgid="6877860822993195074">"ब्लूटूथ सिम ऐक्सेस"</string> <string name="bluetooth_sap_notif_ticker" msgid="6807778527893726699">"ब्लूटूथ सिम ऐक्सेस"</string> - <string name="bluetooth_sap_notif_message" msgid="7138657801087500690">"डिस्कनेक्ट करने के लिए क्लाइंट से अनुरोध करें?"</string> - <string name="bluetooth_sap_notif_disconnecting" msgid="819150843490233288">"डिस्कनेक्ट करने के लिए क्लाइंट की प्रतीक्षा की जा रही है"</string> - <string name="bluetooth_sap_notif_disconnect_button" msgid="3678476872583356919">"डिस्कनेक्ट करें"</string> - <string name="bluetooth_sap_notif_force_disconnect_button" msgid="8144086340185532030">"बलपूर्वक डिस्कनेक्ट करें"</string> + <string name="bluetooth_sap_notif_message" msgid="7138657801087500690">"डिसकनेक्ट करने के लिए क्लाइंट से अनुरोध करें?"</string> + <string name="bluetooth_sap_notif_disconnecting" msgid="819150843490233288">"डिसकनेक्ट करने के लिए क्लाइंट की प्रतीक्षा की जा रही है"</string> + <string name="bluetooth_sap_notif_disconnect_button" msgid="3678476872583356919">"डिसकनेक्ट करें"</string> + <string name="bluetooth_sap_notif_force_disconnect_button" msgid="8144086340185532030">"बलपूर्वक डिसकनेक्ट करें"</string> </resources> diff --git a/res/values-hy-rAM/strings.xml b/res/values-hy-rAM/strings.xml index efef63b5c..a7f644a5a 100644 --- a/res/values-hy-rAM/strings.xml +++ b/res/values-hy-rAM/strings.xml @@ -19,7 +19,7 @@ <string name="permlab_bluetoothShareManager" msgid="311492132450338925">"Օգտվել ներբեռնման կառավարչից:"</string> <string name="permdesc_bluetoothShareManager" msgid="8930572979123190223">"Թույլ է տալիս, որ ծրագիրը մատչի BluetoothShare կառավարչին և այն օգտագործի ֆայլեր փոխանցելու համար:"</string> <string name="permlab_bluetoothWhitelist" msgid="7091552898592306386">"Մուտք bluetooth սարքի ցուցակին:"</string> - <string name="permdesc_bluetoothWhitelist" msgid="5494513855192170109">"Թույլ է տալիս, որ ծրագիրը ժամանակավորապես մաքրի Bluetooth սարքի ցուցակը, ինչը թույլ է տալիս, որ այդ սարքը կարողանա ֆայլեր ուղարկել տվյալ սարքին առանց օգտվողի հաստատման:"</string> + <string name="permdesc_bluetoothWhitelist" msgid="5494513855192170109">"Թույլ է տալիս, որ ծրագիրը ժամանակավորապես մաքրի Bluetooth սարքի ցուցակը, ինչը թույլ է տալիս, որ այդ սարքը կարողանա ֆայլեր ուղարկել տվյալ սարքին առանց օգտատիրոջ հաստատման:"</string> <string name="bt_share_picker_label" msgid="6268100924487046932">"Bluetooth"</string> <string name="unknown_device" msgid="9221903979877041009">"Անհայտ սարք"</string> <string name="unknownNumber" msgid="4994750948072751566">"Անհայտ"</string> @@ -50,7 +50,7 @@ <string name="download_line2" msgid="5876973543019417712">"Ֆայլ՝ <xliff:g id="FILE">%1$s</xliff:g>"</string> <string name="download_line3" msgid="4384821622908676061">"Ֆայլի չափը՝ <xliff:g id="SIZE">%1$s</xliff:g>"</string> <string name="download_line4" msgid="8535996869722666525"></string> - <string name="download_line5" msgid="3069560415845295386">"Ֆայլը ստացվում է..."</string> + <string name="download_line5" msgid="3069560415845295386">"Ֆայլի ստացում..."</string> <string name="download_cancel" msgid="9177305996747500768">"Դադարեցնել"</string> <string name="download_ok" msgid="5000360731674466039">"Թաքցնել"</string> <string name="incoming_line1" msgid="2127419875681087545">"Ումից"</string> @@ -93,7 +93,7 @@ <string name="status_success" msgid="239573225847565868">"Ֆայլերի փոխանցումը հաջողությամբ ավարտվել է:"</string> <string name="status_not_accept" msgid="1695082417193780738">"Բովանդակությունը չի աջակցվում:"</string> <string name="status_forbidden" msgid="613956401054050725">"Փոխանցումն արգելված է նպատակային սարքի կողմից:"</string> - <string name="status_canceled" msgid="6664490318773098285">"Փոխանցումը չեղարկվել է օգտվողի կողմից:"</string> + <string name="status_canceled" msgid="6664490318773098285">"Փոխանցումը չեղարկվել է օգտատիրոջ կողմից:"</string> <string name="status_file_error" msgid="3671917770630165299">"Կրիչի խնդիր:"</string> <string name="status_no_sd_card" product="nosdcard" msgid="1112125377088421469">"USB կրիչ չկա:"</string> <string name="status_no_sd_card" product="default" msgid="5760944071743325592">"SD քարտ չկա: Տեղադրեք SD քարտ` փոխանցված ֆայլերը պահպանելու համար:"</string> diff --git a/res/values-in/strings.xml b/res/values-in/strings.xml index fd810468e..6bd88d219 100644 --- a/res/values-in/strings.xml +++ b/res/values-in/strings.xml @@ -16,7 +16,7 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <string name="permlab_bluetoothShareManager" msgid="311492132450338925">"Akses pengelola unduhan."</string> + <string name="permlab_bluetoothShareManager" msgid="311492132450338925">"Akses pengelola download."</string> <string name="permdesc_bluetoothShareManager" msgid="8930572979123190223">"Izinkan apl mengakses pengelola BluetoothShare dan menggunakannya untuk mentransfer file."</string> <string name="permlab_bluetoothWhitelist" msgid="7091552898592306386">"Memasukkan akses perangkat bluetooth ke dalam daftar putih."</string> <string name="permdesc_bluetoothWhitelist" msgid="5494513855192170109">"Mengizinkan aplikasi memasukkan perangkat Bluetooth ke dalam daftar putih untuk sementara, yang memungkinkan perangkat tersebut mengirimkan file ke perangkat ini tanpa konfirmasi pengguna."</string> diff --git a/res/values-kn-rIN/strings.xml b/res/values-kn-rIN/strings.xml index 3ad57a976..50e53de59 100644 --- a/res/values-kn-rIN/strings.xml +++ b/res/values-kn-rIN/strings.xml @@ -21,14 +21,14 @@ <string name="permlab_bluetoothWhitelist" msgid="7091552898592306386">"ಶ್ವೇತಪಟ್ಟಿ ಬ್ಲೂಟೂತ್ ಸಾಧನವನ್ನು ಪ್ರವೇಶಿಸಿ."</string> <string name="permdesc_bluetoothWhitelist" msgid="5494513855192170109">"ಬಳಕೆದಾರರ ದೃಢೀಕರಣ ಇಲ್ಲದೆ ಈ ಸಾಧನಕ್ಕೆ ಫೈಲ್ಗಳನ್ನು ಕಳುಹಿಸಲು ಬ್ಲೂಟೂತ್ ಸಾಧನವನ್ನು ತಾತ್ಕಾಲಿಕವಾಗಿ ಶ್ವೇತಪಟ್ಟಿ ಮಾಡಲು ಅಪ್ಲಿಕೇಶನ್ಗೆ ಅನುಮತಿಸುತ್ತದೆ."</string> <string name="bt_share_picker_label" msgid="6268100924487046932">"ಬ್ಲೂಟೂತ್"</string> - <string name="unknown_device" msgid="9221903979877041009">"ಅಜ್ಞಾತ ಸಾಧನ"</string> - <string name="unknownNumber" msgid="4994750948072751566">"ಅಜ್ಞಾತ"</string> + <string name="unknown_device" msgid="9221903979877041009">"ಅಪರಿಚಿತ ಸಾಧನ"</string> + <string name="unknownNumber" msgid="4994750948072751566">"ಅಪರಿಚಿತ"</string> <string name="airplane_error_title" msgid="2683839635115739939">"ಏರ್ಪ್ಲೇನ್ ಮೋಡ್"</string> <string name="airplane_error_msg" msgid="8698965595254137230">"ಏರ್ಪ್ಲೇನ್ ಮೋಡ್ನಲ್ಲಿ ನೀವು ಬ್ಲೂಟೂತ್ ಬಳಸಲು ಸಾಧ್ಯವಿಲ್ಲ."</string> <string name="bt_enable_title" msgid="8657832550503456572"></string> <string name="bt_enable_line1" msgid="7203551583048149">"ಬ್ಲೂಟೂತ್ ಸೇವೆಗಳನ್ನು ಬಳಸಲು, ಮೊದಲು ನೀವದನ್ನು ಆನ್ ಮಾಡಬೇಕು."</string> <string name="bt_enable_line2" msgid="4341936569415937994">"ಇದೀಗ ಬ್ಲೂಟೂತ್ ಆನ್ ಮಾಡುವುದೇ?"</string> - <string name="bt_enable_cancel" msgid="1988832367505151727">"ರದ್ದುಮಾಡು"</string> + <string name="bt_enable_cancel" msgid="1988832367505151727">"ರದ್ದುಮಾಡಿ"</string> <string name="bt_enable_ok" msgid="3432462749994538265">"ಆನ್ ಮಾಡು"</string> <string name="incoming_file_confirm_title" msgid="8139874248612182627">"ಫೈಲ್ ವರ್ಗಾವಣೆ"</string> <string name="incoming_file_confirm_content" msgid="2752605552743148036">"ಒಳಬರುವ ಫೈಲ್ಗಳನ್ನು ಸ್ವೀಕರಿಸುವುದೇ?"</string> @@ -99,7 +99,7 @@ <string name="status_no_sd_card" product="default" msgid="5760944071743325592">"ಯಾವುದೇ SD ಕಾರ್ಡ್ಗಳಿಲ್ಲ. ವರ್ಗಾವಣೆ ಮಾಡಲಾದ ಫೈಲ್ಗಳನ್ನು ಉಳಿಸಲು SD ಕಾರ್ಡ್ವೊಂದನ್ನು ಸೇರಿಸಿ."</string> <string name="status_connection_error" msgid="947681831523219891">"ಸಂಪರ್ಕವು ವಿಫಲವಾಗಿದೆ."</string> <string name="status_protocol_error" msgid="3245444473429269539">"ವಿನಂತಿಯನ್ನು ಸರಿಯಾಗಿ ನಿರ್ವಹಿಸಲಾಗುವುದಿಲ್ಲ."</string> - <string name="status_unknown_error" msgid="8156660554237824912">"ಅಜ್ಞಾತ ದೋಷ."</string> + <string name="status_unknown_error" msgid="8156660554237824912">"ಅಪರಿಚಿತ ದೋಷ."</string> <string name="btopp_live_folder" msgid="7967791481444474554">"ಬ್ಲೂಟೂತ್ ಸ್ವೀಕರಿಸಲಾಗಿದೆ"</string> <string name="download_success" msgid="7036160438766730871">"<xliff:g id="FILE_SIZE">%1$s</xliff:g> ಸ್ವೀಕರಿಸುವುದು ಪೂರ್ಣಗೊಂಡಿದೆ."</string> <string name="upload_success" msgid="4014469387779648949">"<xliff:g id="FILE_SIZE">%1$s</xliff:g> ಕಳುಹಿಸುವುದು ಪೂರ್ಣಗೊಂಡಿದೆ."</string> @@ -122,7 +122,7 @@ <string name="transfer_menu_clear" msgid="5854038118831427492">"ಪಟ್ಟಿಯಿಂದ ತೆರವುಗೊಳಿಸಿ"</string> <string name="transfer_clear_dlg_title" msgid="2953444575556460386">"ತೆರವುಗೊಳಿಸು"</string> <string name="bluetooth_map_settings_save" msgid="7635491847388074606">"ಉಳಿಸು"</string> - <string name="bluetooth_map_settings_cancel" msgid="9205350798049865699">"ರದ್ದುಮಾಡು"</string> + <string name="bluetooth_map_settings_cancel" msgid="9205350798049865699">"ರದ್ದುಮಾಡಿ"</string> <string name="bluetooth_map_settings_intro" msgid="6482369468223987562">"ಬ್ಲೂಟೂತ್ ಮೂಲಕ ಹಂಚಿಕೊಳ್ಳಲು ಬಯಸುವ ಖಾತೆಗಳನ್ನು ಆಯ್ಕೆಮಾಡಿ. ಸಂಪರ್ಕಪಡಿಸುವಾಗ ಖಾತೆಗಳಿಗೆ ಯಾವುದೇ ಪ್ರವೇಶವನ್ನು ನೀವು ಈಗಲೂ ಸಮ್ಮತಿಸಬೇಕಾಗುತ್ತದೆ."</string> <string name="bluetooth_map_settings_count" msgid="4557473074937024833">"ಉಳಿದಿರುವ ಸ್ಲಾಟ್ಗಳು:"</string> <string name="bluetooth_map_settings_app_icon" msgid="7105805610929114707">"ಅಪ್ಲಿಕೇಶನ್ ಐಕಾನ್"</string> diff --git a/res/values-kn-rIN/strings_pbap_client.xml b/res/values-kn-rIN/strings_pbap_client.xml index 186b23ae3..ced3f079e 100644 --- a/res/values-kn-rIN/strings_pbap_client.xml +++ b/res/values-kn-rIN/strings_pbap_client.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <string name="pbap_account_type" msgid="6257077123906049322">"com.android.bluetooth.pbapsink"</string> + <string name="pbap_account_type" msgid="6257077123906049322">"com.android.ಬ್ಲೂಟೂತ್.pbapsink"</string> </resources> diff --git a/res/values-nl/strings.xml b/res/values-nl/strings.xml index 21fff3363..95e58fad3 100644 --- a/res/values-nl/strings.xml +++ b/res/values-nl/strings.xml @@ -91,7 +91,7 @@ <string name="status_pending" msgid="2503691772030877944">"Bestandsoverdracht nog niet gestart."</string> <string name="status_running" msgid="6562808920311008696">"Bestandsoverdracht wordt uitgevoerd."</string> <string name="status_success" msgid="239573225847565868">"Bestandsoverdracht is voltooid."</string> - <string name="status_not_accept" msgid="1695082417193780738">"Inhoud wordt niet ondersteund."</string> + <string name="status_not_accept" msgid="1695082417193780738">"Content wordt niet ondersteund."</string> <string name="status_forbidden" msgid="613956401054050725">"Overdracht wordt niet toegestaan door het doelapparaat."</string> <string name="status_canceled" msgid="6664490318773098285">"Overdracht geannuleerd door gebruiker."</string> <string name="status_file_error" msgid="3671917770630165299">"Probleem met opslagruimte."</string> diff --git a/res/values-sr/strings.xml b/res/values-sr/strings.xml index 03fed95d3..7228cfe2c 100644 --- a/res/values-sr/strings.xml +++ b/res/values-sr/strings.xml @@ -69,7 +69,7 @@ <string name="upload_succ_ok" msgid="7705428476405478828">"Потврди"</string> <string name="upload_fail_line1" msgid="7899394672421491701">"Датотека није послата на <xliff:g id="RECIPIENT">%1$s</xliff:g>."</string> <string name="upload_fail_line1_2" msgid="2108129204050841798">"Датотека: <xliff:g id="FILE">%1$s</xliff:g>"</string> - <string name="upload_fail_ok" msgid="5807702461606714296">"Покушај поново"</string> + <string name="upload_fail_ok" msgid="5807702461606714296">"Пробај поново"</string> <string name="upload_fail_cancel" msgid="9118496285835687125">"Затвори"</string> <string name="bt_error_btn_ok" msgid="5965151173011534240">"Потврди"</string> <string name="unknown_file" msgid="6092727753965095366">"Непозната датотека"</string> @@ -87,7 +87,7 @@ <string name="bt_sm_2_1" product="nosdcard" msgid="352165168004521000">"Нема довољно простора у USB меморији да би се сачувала датотека пошиљаоца „<xliff:g id="SENDER">%1$s</xliff:g>“"</string> <string name="bt_sm_2_1" product="default" msgid="1989018443456803630">"Нема довољно простора на SD картици да би се сачувала датотека пошиљаоца „<xliff:g id="SENDER">%1$s</xliff:g>“"</string> <string name="bt_sm_2_2" msgid="2965243265852680543">"Потребан простор: <xliff:g id="SIZE">%1$s</xliff:g>"</string> - <string name="ErrorTooManyRequests" msgid="8578277541472944529">"Превише захтева се обрађује. Покушајте поново касније."</string> + <string name="ErrorTooManyRequests" msgid="8578277541472944529">"Превише захтева се обрађује. Пробајте поново касније."</string> <string name="status_pending" msgid="2503691772030877944">"Пренос датотеке још није почео."</string> <string name="status_running" msgid="6562808920311008696">"Пренос датотеке је у току."</string> <string name="status_success" msgid="239573225847565868">"Пренос датотеке је довршен."</string> diff --git a/src/com/android/bluetooth/btservice/AdapterService.java b/src/com/android/bluetooth/btservice/AdapterService.java index f4d029796..b6caeb273 100644 --- a/src/com/android/bluetooth/btservice/AdapterService.java +++ b/src/com/android/bluetooth/btservice/AdapterService.java @@ -1188,6 +1188,12 @@ public class AdapterService extends Service { return service.getBondState(device); } + public long getSupportedProfiles() { + AdapterService service = getService(); + if (service == null) return 0; + return service.getSupportedProfiles(); + } + public int getConnectionState(BluetoothDevice device) { AdapterService service = getService(); if (service == null) return 0; @@ -2189,6 +2195,10 @@ public class AdapterService extends Service { return deviceProp.getBondState(); } + long getSupportedProfiles() { + return Config.getSupportedProfilesBitMask(); + } + int getConnectionState(BluetoothDevice device) { enforceCallingOrSelfPermission(BLUETOOTH_PERM, "Need BLUETOOTH permission"); byte[] addr = Utils.getBytesFromAddress(device.getAddress()); @@ -2704,28 +2714,6 @@ public class AdapterService extends Service { return getResources().getInteger(R.integer.config_bluetooth_operating_voltage_mv) / 1000.0; } - private String getStateString() { - int state = getState(); - switch (state) { - case BluetoothAdapter.STATE_OFF: - return "STATE_OFF"; - case BluetoothAdapter.STATE_TURNING_ON: - return "STATE_TURNING_ON"; - case BluetoothAdapter.STATE_ON: - return "STATE_ON"; - case BluetoothAdapter.STATE_TURNING_OFF: - return "STATE_TURNING_OFF"; - case BluetoothAdapter.STATE_BLE_TURNING_ON: - return "STATE_BLE_TURNING_ON"; - case BluetoothAdapter.STATE_BLE_ON: - return "STATE_BLE_ON"; - case BluetoothAdapter.STATE_BLE_TURNING_OFF: - return "STATE_BLE_TURNING_OFF"; - default: - return "UNKNOWN STATE: " + state; - } - } - @Override protected void dump(FileDescriptor fd, PrintWriter writer, String[] args) { enforceCallingOrSelfPermission(android.Manifest.permission.DUMP, TAG); @@ -2743,20 +2731,6 @@ public class AdapterService extends Service { } } - long onDuration = System.currentTimeMillis() - mBluetoothStartTime; - String onDurationString = String.format("%02d:%02d:%02d.%03d", - (int)(onDuration / (1000 * 60 * 60)), - (int)((onDuration / (1000 * 60)) % 60), - (int)((onDuration / 1000) % 60), - (int)(onDuration % 1000)); - - writer.println("Bluetooth Status"); - writer.println(" enabled: " + isEnabled()); - writer.println(" state: " + getStateString()); - writer.println(" address: " + getAddress()); - writer.println(" name: " + getName()); - writer.println(" time since enabled: " + onDurationString + "\n"); - writer.println("Bonded devices:"); for (BluetoothDevice device : getBondedDevices()) { writer.println(" " + device.getAddress() + diff --git a/src/com/android/bluetooth/btservice/Config.java b/src/com/android/bluetooth/btservice/Config.java index 3254feb01..723a494f6 100644 --- a/src/com/android/bluetooth/btservice/Config.java +++ b/src/com/android/bluetooth/btservice/Config.java @@ -104,9 +104,7 @@ public class Config { profiles.add(PROFILE_SERVICES[i]); } } - int totalProfiles = profiles.size(); - SUPPORTED_PROFILES = new Class[totalProfiles]; - profiles.toArray(SUPPORTED_PROFILES); + SUPPORTED_PROFILES = profiles.toArray(new Class[profiles.size()]); } @SuppressWarnings("rawtypes") @@ -135,7 +133,36 @@ public class Config { return SUPPORTED_PROFILES; } + static long getSupportedProfilesBitMask() { + long mask = 0; + for (final Class profileClass : getSupportedProfiles()) { + final int profileIndex = getProfileIndex(profileClass); + + if (profileIndex != -1) { + mask |= 1 << getProfileIndex(profileClass); + } + } + + return mask; + } + private static boolean isProfileDisabled(Context context, Class profile) { + final int profileIndex = getProfileIndex(profile); + + if (profileIndex == -1) { + Log.w(TAG, "Could not find profile bit mask"); + return false; + } + + final ContentResolver resolver = context.getContentResolver(); + final long disabledProfilesBitMask = Settings.Global.getLong(resolver, + Settings.Global.BLUETOOTH_DISABLED_PROFILES, 0); + final long profileBit = 1 << profileIndex; + + return (disabledProfilesBitMask & profileBit) != 0; + } + + private static int getProfileIndex(Class profile) { int profileIndex = -1; if (profile == HeadsetService.class) { @@ -164,16 +191,6 @@ public class Config { profileIndex = BluetoothProfile.PBAP_CLIENT; } - if (profileIndex == -1) { - Log.d(TAG, "Could not find profile bit mask"); - return false; - } - - final ContentResolver resolver = context.getContentResolver(); - final long disabledProfilesBitMask = Settings.Global.getLong(resolver, - Settings.Global.BLUETOOTH_DISABLED_PROFILES, 0); - long profileBit = 1 << profileIndex; - - return (disabledProfilesBitMask & profileBit) != 0; + return profileIndex; } } diff --git a/src/com/android/bluetooth/btservice/RemoteDevices.java b/src/com/android/bluetooth/btservice/RemoteDevices.java index 94c469d8f..08f694324 100644 --- a/src/com/android/bluetooth/btservice/RemoteDevices.java +++ b/src/com/android/bluetooth/btservice/RemoteDevices.java @@ -245,8 +245,9 @@ final class RemoteDevices { DeviceProperties prop = getDeviceProperties(device); Intent intent = new Intent(BluetoothDevice.ACTION_UUID); intent.putExtra(BluetoothDevice.EXTRA_DEVICE, device); - intent.putExtra(BluetoothDevice.EXTRA_UUID, prop == null? null: prop.mUuids); - mAdapterService.initProfilePriorities(device, prop == null? null: prop.mUuids); + intent.putExtra(BluetoothDevice.EXTRA_UUID, prop == null ? null : prop.mUuids); + mAdapterService.initProfilePriorities(device, prop == null ? null : prop.mUuids); + mAdapterService.sendBroadcast(intent, AdapterService.BLUETOOTH_ADMIN_PERM); //Remove the outstanding UUID request diff --git a/src/com/android/bluetooth/btservice/bluetooth.proto b/src/com/android/bluetooth/btservice/bluetooth.proto index 77ded7807..c616c10a2 100644 --- a/src/com/android/bluetooth/btservice/bluetooth.proto +++ b/src/com/android/bluetooth/btservice/bluetooth.proto @@ -28,6 +28,18 @@ message BluetoothLog { // Number of bonded devices. optional int32 num_bonded_devices = 5; + + // Number of BluetoothSession including discarded ones beyond capacity + optional int64 num_bluetooth_session = 6; + + // Number of PairEvent including discarded ones beyond capacity + optional int64 num_pair_event = 7; + + // Number of WakeEvent including discarded ones beyond capacity + optional int64 num_wake_event = 8; + + // Number of ScanEvent including discarded ones beyond capacity + optional int64 num_scan_event = 9; } // The information about the device. @@ -82,7 +94,7 @@ message BluetoothSession { // The information about the RFComm session. optional RFCommSession rfcomm_session = 6; - // The information about the A2DP session. + // The information about the A2DP audio session. optional A2DPSession a2dp_session = 7; } @@ -95,7 +107,7 @@ message RFCommSession { optional int32 tx_bytes = 2; } -// Session information that gets logged for every A2DP session. +// Session information that gets logged for A2DP session. message A2DPSession { // Media timer in milliseconds. @@ -118,6 +130,9 @@ message A2DPSession { // Buffer underruns count. optional int32 buffer_underruns_count = 7; + + // Total audio time in this A2DP session + optional int64 audio_duration_millis = 8; } message PairEvent { diff --git a/src/com/android/bluetooth/gatt/AdvertiseManager.java b/src/com/android/bluetooth/gatt/AdvertiseManager.java index 3fb4aa945..4e6055fc8 100644 --- a/src/com/android/bluetooth/gatt/AdvertiseManager.java +++ b/src/com/android/bluetooth/gatt/AdvertiseManager.java @@ -157,7 +157,7 @@ class AdvertiseManager { } } - private AdvertiseClient getAdvertiseClient(int clientIf) { + public AdvertiseClient getAdvertiseClient(int clientIf) { for (AdvertiseClient client : mAdvertiseClients) { if (client.clientIf == clientIf) { return client; @@ -316,6 +316,9 @@ class AdvertiseManager { return false; } setAdvertisingData(client, client.advertiseData, false); + if (client.scanResponse != null) { + setAdvertisingData(client, client.scanResponse, true); + } return true; } diff --git a/src/com/android/bluetooth/gatt/AppScanStats.java b/src/com/android/bluetooth/gatt/AppScanStats.java index e73f41512..7eed888b5 100644 --- a/src/com/android/bluetooth/gatt/AppScanStats.java +++ b/src/com/android/bluetooth/gatt/AppScanStats.java @@ -64,6 +64,9 @@ import com.android.bluetooth.btservice.BluetoothProto; // earliest recorded scan exits this window. static final long EXCESSIVE_SCANNING_PERIOD_MS = 30 * 1000; + // Maximum msec before scan gets downgraded to opportunistic + static final int SCAN_TIMEOUT_MS = 30 * 60 * 1000; + String appName; int scansStarted = 0; int scansStopped = 0; @@ -160,6 +163,14 @@ import com.android.bluetooth.btservice.BluetoothProto; EXCESSIVE_SCANNING_PERIOD_MS; } + synchronized boolean isScanningTooLong() { + if (lastScans.isEmpty() || !isScanning) { + return false; + } + + return (System.currentTimeMillis() - startTime) > SCAN_TIMEOUT_MS; + } + // This function truncates the app name for privacy reasons. Apps with // four part package names or more get truncated to three parts, and apps // with three part package names names get truncated to two. Apps with two diff --git a/src/com/android/bluetooth/gatt/GattService.java b/src/com/android/bluetooth/gatt/GattService.java index f8bef759d..3f004b417 100644 --- a/src/com/android/bluetooth/gatt/GattService.java +++ b/src/com/android/bluetooth/gatt/GattService.java @@ -1435,6 +1435,12 @@ public class GattService extends ProfileService { if (DBG) Log.d(TAG, "unregisterClient() - clientIf=" + clientIf); mClientMap.remove(clientIf); + + AdvertiseClient client = mAdvertiseManager.getAdvertiseClient(clientIf); + if (client != null && !client.appDied) { + stopMultiAdvertising(client); + } + gattClientUnregisterAppNative(clientIf); } diff --git a/src/com/android/bluetooth/gatt/ScanManager.java b/src/com/android/bluetooth/gatt/ScanManager.java index 9ed405901..4e69c08cf 100644 --- a/src/com/android/bluetooth/gatt/ScanManager.java +++ b/src/com/android/bluetooth/gatt/ScanManager.java @@ -70,9 +70,6 @@ public class ScanManager { private static final int MSG_FLUSH_BATCH_RESULTS = 2; private static final int MSG_SCAN_TIMEOUT = 3; - // Maximum msec before scan gets downgraded to opportunistic - private static final int SCAN_TIMEOUT_MS = 30 * 60 * 1000; - private static final String ACTION_REFRESH_BATCHED_SCAN = "com.android.bluetooth.gatt.REFRESH_BATCHED_SCAN"; @@ -209,7 +206,7 @@ public class ScanManager { handleFlushBatchResults(client); break; case MSG_SCAN_TIMEOUT: - mScanNative.regularScanTimeout(); + mScanNative.regularScanTimeout(client); break; default: // Shouldn't happen. @@ -244,8 +241,7 @@ public class ScanManager { Message msg = mHandler.obtainMessage(MSG_SCAN_TIMEOUT); msg.obj = client; // Only one timeout message should exist at any time - mHandler.removeMessages(MSG_SCAN_TIMEOUT); - mHandler.sendMessageDelayed(msg, SCAN_TIMEOUT_MS); + mHandler.sendMessageDelayed(msg, AppScanStats.SCAN_TIMEOUT_MS); } } @@ -689,14 +685,12 @@ public class ScanManager { removeScanFilters(client.clientIf); } - void regularScanTimeout() { - for (ScanClient client : mRegularScanClients) { - if (!isExemptFromScanDowngrade(client)) { - Log.w(TAG, "Moving scan client to opportunistic (clientIf " - + client.clientIf + ")"); - setOpportunisticScanClient(client); - client.stats.setScanTimeout(); - } + void regularScanTimeout(ScanClient client) { + if (!isExemptFromScanDowngrade(client) && client.stats.isScanningTooLong()) { + Log.w(TAG, + "Moving scan client to opportunistic (clientIf " + client.clientIf + ")"); + setOpportunisticScanClient(client); + client.stats.setScanTimeout(); } // The scan should continue for background scans diff --git a/src/com/android/bluetooth/hfpclient/HeadsetClientService.java b/src/com/android/bluetooth/hfpclient/HeadsetClientService.java index 31125c0fa..da41175c9 100644 --- a/src/com/android/bluetooth/hfpclient/HeadsetClientService.java +++ b/src/com/android/bluetooth/hfpclient/HeadsetClientService.java @@ -93,7 +93,9 @@ public class HeadsetClientService extends ProfileService { } catch (Exception e) { Log.w(TAG, "Unable to unregister broadcast receiver", e); } - mStateMachine.doQuit(); + if (mStateMachine != null) { + mStateMachine.doQuit(); + } // Stop the HfpClientConnectionService. Intent stopIntent = new Intent(this, HfpClientConnectionService.class); @@ -168,6 +170,8 @@ public class HeadsetClientService extends ProfileService { if (mService != null && mService.isAvailable()) { return mService; } + + Log.e(TAG, "HeadsetClientService is not available."); return null; } @@ -489,6 +493,7 @@ public class HeadsetClientService extends ProfileService { "Need BLUETOOTH ADMIN permission"); if (getPriority(device) == BluetoothProfile.PRIORITY_OFF) { + Log.w(TAG, "Connection not allowed: <" + device.getAddress() + "> is PRIORITY_OFF"); return false; } @@ -503,6 +508,7 @@ public class HeadsetClientService extends ProfileService { int connectionState = mStateMachine.getConnectionState(device); if (connectionState == BluetoothProfile.STATE_CONNECTED || connectionState == BluetoothProfile.STATE_CONNECTING) { + Log.w(TAG, "Unable to connect: state is CONNECTING or CONNECTED."); return false; } diff --git a/src/com/android/bluetooth/hfpclient/HeadsetClientStateMachine.java b/src/com/android/bluetooth/hfpclient/HeadsetClientStateMachine.java index 76ef46301..66e25c811 100755 --- a/src/com/android/bluetooth/hfpclient/HeadsetClientStateMachine.java +++ b/src/com/android/bluetooth/hfpclient/HeadsetClientStateMachine.java @@ -1036,6 +1036,14 @@ final class HeadsetClientStateMachine extends StateMachine { return; } + if (flag == BluetoothHeadsetClient.CALL_ACCEPT_HOLD) { + // HFP is disabled when a call is put on hold to ensure correct audio routing for + // cellular calls accepted while an HFP call is in progress. Reenable HFP when the HFP + // call is put off hold. + Log.d(TAG,"hfp_enable=true"); + mAudioManager.setParameters("hfp_enable=true"); + } + if (handleCallActionNative(action, 0)) { addQueuedAction(ACCEPT_CALL, action); } else { @@ -1103,6 +1111,11 @@ final class HeadsetClientStateMachine extends StateMachine { action = HeadsetClientHalConstants.CALL_ACTION_CHLD_2; } + // Set HFP enable to false in case the call is being held to accept a cellular call. This + // allows the cellular call's audio to be correctly routed. + Log.d(TAG,"hfp_enable=false"); + mAudioManager.setParameters("hfp_enable=false"); + if (handleCallActionNative(action, 0)) { addQueuedAction(HOLD_CALL, action); } else { diff --git a/src/com/android/bluetooth/map/BluetoothMapContent.java b/src/com/android/bluetooth/map/BluetoothMapContent.java index 4f42bfb58..0bff19bd6 100755 --- a/src/com/android/bluetooth/map/BluetoothMapContent.java +++ b/src/com/android/bluetooth/map/BluetoothMapContent.java @@ -1658,10 +1658,8 @@ public class BluetoothMapContent { private String setWhereFilterFolderType(BluetoothMapFolderElement folderElement, FilterInfo fi) { - String where = ""; - if(folderElement.shouldIgnore()) { - where = "1=1"; - } else { + String where = "1=1"; + if (!folderElement.shouldIgnore()) { if (fi.mMsgType == FilterInfo.TYPE_SMS) { where = setWhereFilterFolderTypeSms(folderElement.getName()); } else if (fi.mMsgType == FilterInfo.TYPE_MMS) { @@ -1672,6 +1670,7 @@ public class BluetoothMapContent { where = setWhereFilterFolderTypeIm(folderElement.getFolderId()); } } + return where; } |