summaryrefslogtreecommitdiffstats
path: root/jni
diff options
context:
space:
mode:
authorGaurav Asati <gasati@codeaurora.org>2014-11-04 19:07:45 +0530
committerLinux Build Service Account <lnxbuild@localhost>2015-10-06 03:25:41 -0600
commit9aa4ca7ab542b8ac306396eddf387e35e39cec3a (patch)
treeafdf230c171e79fbdd8f25cbb10ba0e4aed6226f /jni
parent6d58ab27c66e1343f11118fc0f371a582cfe21f8 (diff)
downloadandroid_packages_apps_Bluetooth-9aa4ca7ab542b8ac306396eddf387e35e39cec3a.tar.gz
android_packages_apps_Bluetooth-9aa4ca7ab542b8ac306396eddf387e35e39cec3a.tar.bz2
android_packages_apps_Bluetooth-9aa4ca7ab542b8ac306396eddf387e35e39cec3a.zip
Bluetooth: Disconnect SCO for In-Band Ringtone.
-Disconnect SCO when remote sends RING indication even after disabling in-band ringtone. Change-Id: I6955de8a7dd192aea492b768dd80343a32ca1cc0 CRs-Fixed: 751075 Bluetooth : Stop the ring when HS disconnects. This change makes sure that Ring is stopped when HF is disconnected. Change-Id: I3e150089ad799133101f9466f5c7aa042a1e600e CRs-Fixed: 748283 Bluetooth: Abandon Audio Focus. - After call is rejected by user abandon audio focus. - When audio focus abandonment is delayed A2dp sink cannot resume. Change-Id: I5a02b639427e711ac695f551469261549a62797e Add support for AT+CGMI and AT+CGMM Added support for AT+CGMI and AT+CGMM commands. AT+CGMI gets the AG manufacturer identifacation. AT+CGMM gets the AG manufacturer model. The information is broadcasted as strings. CRs-fixed: 844824 Change-Id: I9d53e378f6651ee0afd94b5525189c17cfeffa76
Diffstat (limited to 'jni')
-rw-r--r--jni/com_android_bluetooth_hfpclient.cpp28
1 files changed, 28 insertions, 0 deletions
diff --git a/jni/com_android_bluetooth_hfpclient.cpp b/jni/com_android_bluetooth_hfpclient.cpp
index 62133ebe0..6c6927cb2 100644
--- a/jni/com_android_bluetooth_hfpclient.cpp
+++ b/jni/com_android_bluetooth_hfpclient.cpp
@@ -56,6 +56,8 @@ static jmethodID method_onSubscriberInfo;
static jmethodID method_onInBandRing;
static jmethodID method_onLastVoiceTagNumber;
static jmethodID method_onRingIndication;
+static jmethodID method_onCgmi;
+static jmethodID method_onCgmm;
static bool checkCallbackThread() {
// Always fetch the latest callbackEnv from AdapterService.
@@ -251,6 +253,28 @@ static void ring_indication_cb () {
checkAndClearExceptionFromCallback(sCallbackEnv, __FUNCTION__);
}
+static void cgmi_cb (const char *str) {
+ jstring js_manf_id;
+
+ CHECK_CALLBACK_ENV
+
+ js_manf_id = sCallbackEnv->NewStringUTF(str);
+ sCallbackEnv->CallVoidMethod(mCallbacksObj, method_onCgmi, js_manf_id);
+ checkAndClearExceptionFromCallback(sCallbackEnv, __FUNCTION__);
+ sCallbackEnv->DeleteLocalRef(js_manf_id);
+}
+
+static void cgmm_cb (const char *str) {
+ jstring js_manf_model;
+
+ CHECK_CALLBACK_ENV
+
+ js_manf_model = sCallbackEnv->NewStringUTF(str);
+ sCallbackEnv->CallVoidMethod(mCallbacksObj, method_onCgmm, js_manf_model);
+ checkAndClearExceptionFromCallback(sCallbackEnv, __FUNCTION__);
+ sCallbackEnv->DeleteLocalRef(js_manf_model);
+}
+
static bthf_client_callbacks_t sBluetoothHfpClientCallbacks = {
sizeof(sBluetoothHfpClientCallbacks),
connection_state_cb,
@@ -274,6 +298,8 @@ static bthf_client_callbacks_t sBluetoothHfpClientCallbacks = {
in_band_ring_cb,
last_voice_tag_number_cb,
ring_indication_cb,
+ cgmi_cb,
+ cgmm_cb,
};
static void classInitNative(JNIEnv* env, jclass clazz) {
@@ -299,6 +325,8 @@ static void classInitNative(JNIEnv* env, jclass clazz) {
method_onLastVoiceTagNumber = env->GetMethodID(clazz, "onLastVoiceTagNumber",
"(Ljava/lang/String;)V");
method_onRingIndication = env->GetMethodID(clazz, "onRingIndication","()V");
+ method_onCgmi = env->GetMethodID(clazz, "onCgmi","(Ljava/lang/String;)V");
+ method_onCgmm = env->GetMethodID(clazz, "onCgmm","(Ljava/lang/String;)V");
ALOGI("%s succeeds", __FUNCTION__);
}