Merge "AVRCP: Add lock in JNI to fix race conditions" into bt.lnx.5.0
diff --git a/packages_apps_bluetooth_ext/src/map/src/BluetoothMapContentEmail.java b/packages_apps_bluetooth_ext/src/map/src/BluetoothMapContentEmail.java
index 40da4eb..655fbf1 100644
--- a/packages_apps_bluetooth_ext/src/map/src/BluetoothMapContentEmail.java
+++ b/packages_apps_bluetooth_ext/src/map/src/BluetoothMapContentEmail.java
@@ -120,11 +120,9 @@
private final BluetoothMapAccountItem mAccount;
/* The MasInstance reference is used to update persistent (over a connection) version counters*/
private final BluetoothMapMasInstance mMasInstance;
- private String mMessageVersion = BluetoothMapUtils.MAP_V10_STR;
private final boolean EMAIL_ATTACHMENT_IMPLEMENTED = false;
private int mRemoteFeatureMask = BluetoothMapUtils.MAP_FEATURE_DEFAULT_BITMASK;
- private int mMsgListingVersion = BluetoothMapUtils.MAP_MESSAGE_LISTING_FORMAT_V10;
private class FilterInfo {
public static final int TYPE_SMS = 0;
diff --git a/packages_apps_bluetooth_ext/src/map/src/BluetoothMapContentObserverEmail.java b/packages_apps_bluetooth_ext/src/map/src/BluetoothMapContentObserverEmail.java
index 005dc42..a99f7a0 100644
--- a/packages_apps_bluetooth_ext/src/map/src/BluetoothMapContentObserverEmail.java
+++ b/packages_apps_bluetooth_ext/src/map/src/BluetoothMapContentObserverEmail.java
@@ -111,7 +111,7 @@
private static final long EVENT_FILTER_CONVERSATION_CHANGED = 1L<<10;
private static final long EVENT_FILTER_PARTICIPANT_PRESENCE_CHANGED = 1L<<11;
private static final long EVENT_FILTER_PARTICIPANT_CHATSTATE_CHANGED= 1L<<12;
- private static final long EVENT_FILTER_MESSAGE_REMOVED = 1L<<13;
+ private static final long EVENT_FILTER_MESSAGE_REMOVED = 1L<<14;
// TODO: If we are requesting a large message from the network, on a slow connection
// 20 seconds might not be enough... But then again 20 seconds is long for other
@@ -141,14 +141,6 @@
private boolean mTransmitEvents = true;
- /* To make the filter update atomic, we declare it volatile.
- * To avoid a penalty when using it, copy the value to a local
- * non-volatile variable when used more than once.
- * Actually we only ever use the lower 4 bytes of this variable,
- * hence we could manage without the volatile keyword, but as
- * we tend to copy ways of doing things, we better do it right:-) */
- private volatile long mEventFilter = 0xFFFFFFFFL;
-
public static final int DELETED_THREAD_ID = -1;
// X-Mms-Message-Type field types. These are from PduHeaders.java
@@ -254,8 +246,8 @@
}
public int getObserverRemoteFeatureMask() {
- if (V) Log.v(TAG, "getObserverRemoteFeatureMask Email: " + mMapEventReportVersion
- + " mMapSupportedFeatures Email: " + mMapSupportedFeatures);
+ if (V) Log.v(TAG, "getObserverRemoteFeatureMask " + mMapEventReportVersion
+ + " mMapSupportedFeatures :" + mMapSupportedFeatures);
return mMapSupportedFeatures;
}
@@ -398,7 +390,7 @@
/* Enable use of the cache for checking the filter */
long eventFilter = mEventFilter;
-
+ if (V) Log.v(TAG," eventFilter " + eventFilter);
/* This should have been a switch on the string, but it is not allowed in Java 1.6 */
/* WARNING: Here we do pointer compare for the string to speed up things, that is.
* HENCE: always use the EVENT_TYPE_"defines" */
@@ -550,7 +542,7 @@
msgList.put(id, msg);
Event evt;
/* Incoming message from the network */
- if (mMapEventReportVersion == BluetoothMapUtils.MAP_EVENT_REPORT_V11) {
+ if (mMapEventReportVersion >= BluetoothMapUtils.MAP_EVENT_REPORT_V11) {
String date = BluetoothMapUtils.getDateTimeString(c.getLong(c
.getColumnIndex(BluetoothMapEmailContract
.ExtEmailMessageColumns.TIMESTAMP)));
@@ -691,7 +683,12 @@
if (!msg.transparent ) {
if(msg.localInitiatedShift == false ) {
// "old_folder" used only for MessageShift event
- Event evt = new Event(EVENT_TYPE_DELETE, msg.id, oldFolder,
+ String eventType = EVENT_TYPE_DELETE;
+ if (mMapEventReportVersion >= BluetoothMapUtils.MAP_EVENT_REPORT_V12) {
+ eventType = EVENT_TYPE_REMOVED;
+ if (V) Log.v(TAG," send EVENT_TYPE_REMOVED");
+ }
+ Event evt = new Event(eventType, msg.id, oldFolder,
null, mAccount.getType());
sendEvent(evt);
} else {