Merge "Load the TWS+ devices when TWS+ service is available." into bt.lnx.5.0
diff --git a/BATestApp/Android.mk b/BATestApp/Android.mk
index bc1f5d1..ba23089 100644
--- a/BATestApp/Android.mk
+++ b/BATestApp/Android.mk
@@ -2,7 +2,6 @@
LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
-LOCAL_MODULE_TAGS := debug
LOCAL_RESOURCE_DIR += $(LOCAL_PATH)/res
LOCAL_RESOURCE_DIR += frameworks/support/v7/appcompat/res
LOCAL_RESOURCE_DIR += frameworks/support/v7/recyclerview/res
diff --git a/certification_tools/blegatt_test/Android.mk b/certification_tools/blegatt_test/Android.mk
index 9c0d1a4..afb9a8c 100644
--- a/certification_tools/blegatt_test/Android.mk
+++ b/certification_tools/blegatt_test/Android.mk
@@ -20,7 +20,6 @@
LOCAL_CFLAGS += -DHAS_NO_BDROID_BUILDCFG
LOCAL_MODULE_PATH := $(TARGET_OUT_EXECUTABLES)
-LOCAL_MODULE_TAGS := debug optional
LOCAL_MODULE:= gatt_tool_qti_internal
diff --git a/certification_tools/l2test_ertm/Android.mk b/certification_tools/l2test_ertm/Android.mk
index 75f15ff..2adbb4f 100644
--- a/certification_tools/l2test_ertm/Android.mk
+++ b/certification_tools/l2test_ertm/Android.mk
@@ -19,7 +19,6 @@
LOCAL_CFLAGS += -DHAS_NO_BDROID_BUILDCFG
LOCAL_MODULE_PATH := $(TARGET_OUT_EXECUTABLES)
-LOCAL_MODULE_TAGS := debug optional
LOCAL_MODULE:= l2test_ertm
LOCAL_SHARED_LIBRARIES += libcutils \
diff --git a/certification_tools/mcap_tool/Android.mk.disabled b/certification_tools/mcap_tool/Android.mk.disabled
index de77168..93b8326 100644
--- a/certification_tools/mcap_tool/Android.mk.disabled
+++ b/certification_tools/mcap_tool/Android.mk.disabled
@@ -19,7 +19,6 @@
LOCAL_CFLAGS += -DHAS_NO_BDROID_BUILDCFG
LOCAL_MODULE_PATH := $(TARGET_OUT_EXECUTABLES)
-LOCAL_MODULE_TAGS := debug optional
LOCAL_MODULE:= mcap_tool_qti_internal
diff --git a/certification_tools/rfcommtest/Android.mk b/certification_tools/rfcommtest/Android.mk
index a42dacd..ddd9197 100644
--- a/certification_tools/rfcommtest/Android.mk
+++ b/certification_tools/rfcommtest/Android.mk
@@ -19,7 +19,6 @@
LOCAL_CFLAGS += -DHAS_NO_BDROID_BUILDCFG
LOCAL_MODULE_PATH := $(TARGET_OUT_EXECUTABLES)
-LOCAL_MODULE_TAGS := debug optional
LOCAL_MODULE:= rfc
LOCAL_SHARED_LIBRARIES += libcutils \
diff --git a/packages_apps_bluetooth_ext/jni/com_android_bluetooth_btservice_vendor.cpp b/packages_apps_bluetooth_ext/jni/com_android_bluetooth_btservice_vendor.cpp
index 8e92d96..403df02 100644
--- a/packages_apps_bluetooth_ext/jni/com_android_bluetooth_btservice_vendor.cpp
+++ b/packages_apps_bluetooth_ext/jni/com_android_bluetooth_btservice_vendor.cpp
@@ -64,6 +64,7 @@
static jmethodID method_iotDeviceBroadcast;
static jmethodID method_devicePropertyChangedCallback;
static jmethodID method_adapterPropertyChangedCallback;
+static jmethodID method_ssrCleanupCallback;
static btvendor_interface_t *sBluetoothVendorInterface = NULL;
static jobject mCallbacksObj = NULL;
@@ -116,6 +117,16 @@
sCallbackEnv->CallVoidMethod(mCallbacksObj, method_onBredrCleanup, (jboolean)status);
}
+static void ssr_cleanup_callback(void){
+
+ ALOGI("%s", __FUNCTION__);
+ CallbackEnv sCallbackEnv(__func__);
+
+ if (!sCallbackEnv.valid()) return;
+
+ sCallbackEnv->CallVoidMethod(mCallbacksObj, method_ssrCleanupCallback);
+}
+
static void iot_device_broadcast_callback(RawAddress* bd_addr, uint16_t error,
uint16_t error_info, uint32_t event_mask, uint8_t lmp_ver, uint16_t lmp_subver,
uint16_t manufacturer_id, uint8_t power_level, int8_t rssi, uint8_t link_quality,
@@ -236,6 +247,7 @@
remote_device_properties_callback,
NULL,
adapter_vendor_properties_callback,
+ ssr_cleanup_callback,
};
static void classInitNative(JNIEnv* env, jclass clazz) {
@@ -246,6 +258,8 @@
clazz, "devicePropertyChangedCallback", "([B[I[[B)V");
method_adapterPropertyChangedCallback = env->GetMethodID(
clazz, "adapterPropertyChangedCallback", "([I[[B)V");
+ method_ssrCleanupCallback = env->GetMethodID(
+ clazz, "ssr_cleanup_callback", "()V");
ALOGI("%s: succeeds", __FUNCTION__);
}
diff --git a/packages_apps_bluetooth_ext/src/avrcp/Avrcp_ext.java b/packages_apps_bluetooth_ext/src/avrcp/Avrcp_ext.java
index 7db0c27..43aaf77 100644
--- a/packages_apps_bluetooth_ext/src/avrcp/Avrcp_ext.java
+++ b/packages_apps_bluetooth_ext/src/avrcp/Avrcp_ext.java
@@ -2406,8 +2406,17 @@
SystemClock.elapsedRealtime() - deviceFeatures[deviceIndex].mLastStateUpdate;
currPosition = sinceUpdate + deviceFeatures[deviceIndex].mCurrentPlayState.getPosition();
} else {
- currPosition = deviceFeatures[deviceIndex].mCurrentPlayState.getPosition();
-
+ if (isPlayingState(deviceFeatures[deviceIndex].mCurrentPlayState) &&
+ (avrcp_playstatus_blacklist && isPlayerStateUpdateBlackListed(
+ deviceFeatures[deviceIndex].mCurrentDevice.getAddress(),
+ deviceFeatures[deviceIndex].mCurrentDevice.getName()))) {
+ currPosition = mCurrentPlayerState.getPosition();
+ Log.d(TAG, "Remote is BLed for playstatus, So send playposition by fetching from "+
+ "mCurrentPlayerState." + currPosition);
+ } else {
+ currPosition = deviceFeatures[deviceIndex].mCurrentPlayState.getPosition();
+ Log.d(TAG, "getPlayPosition(): currPosition = " + currPosition);
+ }
}
} else {
if (mCurrentPlayerState == null) {
diff --git a/packages_apps_bluetooth_ext/src/btservice/Vendor.java b/packages_apps_bluetooth_ext/src/btservice/Vendor.java
index ca22e55..b363eb2 100644
--- a/packages_apps_bluetooth_ext/src/btservice/Vendor.java
+++ b/packages_apps_bluetooth_ext/src/btservice/Vendor.java
@@ -150,6 +150,12 @@
intent.putExtra(BluetoothDevice.EXTRA_GLITCH_COUNT, glitchCount);
mService.sendBroadcast(intent, AdapterService.BLUETOOTH_PERM);
}
+
+ void ssr_cleanup_callback() {
+ Log.e(TAG,"ssr_cleanup_callback");
+ mService.ssrCleanupCallback();
+ }
+
void devicePropertyChangedCallback(byte[] address, int[] types, byte[][] values) {
byte[] val;
int type;
diff --git a/vhal/include/hardware/vendor.h b/vhal/include/hardware/vendor.h
index f854702..2b6be6f 100644
--- a/vhal/include/hardware/vendor.h
+++ b/vhal/include/hardware/vendor.h
@@ -124,6 +124,9 @@
RawAddress *bd_addr, int num_properties,
bt_vendor_property_t *properties);
+/** Callback to handle SSR */
+typedef void (* ssr_vendor_callback)(void);
+
/** Bluetooth HCI event Callback */
/* Receive any HCI event from controller for raw commands */
typedef void (* hci_event_recv_callback)(uint8_t event_code, uint8_t *buf, uint8_t len);
@@ -143,6 +146,7 @@
remote_dev_prop_callback rmt_dev_prop_cb;
hci_event_recv_callback hci_event_recv_cb;
adapter_vendor_prop_callback adapter_vendor_prop_cb;
+ ssr_vendor_callback ssr_vendor_cb;
} btvendor_callbacks_t;
typedef int (*property_set_callout)(const char* key, const char* value);