OSDN Git Service

Fix OPP crash and Call Log sort order.
authorJaikumar Ganesh <jaikumar@google.com>
Tue, 12 Oct 2010 18:49:18 +0000 (11:49 -0700)
committerJaikumar Ganesh <jaikumar@google.com>
Tue, 12 Oct 2010 18:49:18 +0000 (11:49 -0700)
Bug: 3067780 3067770
Dr No: jerry

Change-Id: I2ac39e2f1f0233a6ada84af39d8addfe0fe04cea

src/com/android/bluetooth/opp/BluetoothOppObexServerSession.java
src/com/android/bluetooth/pbap/BluetoothPbapVcardManager.java

index 278d29e..cb292c1 100644 (file)
@@ -286,14 +286,14 @@ public class BluetoothOppObexServerSession extends ServerRequestHandler implemen
         if (V) Log.v(TAG, "mLocalShareInfoId = " + mLocalShareInfoId);
 
         if (V) Log.v(TAG, "acquire partial WakeLock");
-        if (mWakeLock.isHeld()) {
-            mPartialWakeLock.acquire();
-            mWakeLock.release();
-        }
 
-        mServerBlocking = true;
 
         synchronized (this) {
+            if (mWakeLock.isHeld()) {
+                mPartialWakeLock.acquire();
+                mWakeLock.release();
+            }
+            mServerBlocking = true;
             try {
 
                 while (mServerBlocking) {
@@ -538,15 +538,20 @@ public class BluetoothOppObexServerSession extends ServerRequestHandler implemen
         resp.responseCode = ResponseCodes.OBEX_HTTP_OK;
     }
 
-    @Override
-    public void onClose() {
-        if (V) Log.v(TAG, "release WakeLock");
+    private synchronized void releaseWakeLocks() {
         if (mWakeLock.isHeld()) {
             mWakeLock.release();
         }
         if (mPartialWakeLock.isHeld()) {
             mPartialWakeLock.release();
         }
+    }
+
+    @Override
+    public void onClose() {
+        if (V) Log.v(TAG, "release WakeLock");
+        releaseWakeLocks();
+
         /* onClose could happen even before start() where mCallback is set */
         if (mCallback != null) {
             Message msg = Message.obtain(mCallback);
index b134b42..d16a36f 100644 (file)
@@ -444,7 +444,7 @@ public class BluetoothPbapVcardManager {
 
                 composer = new VCardComposer(mContext, vcardType, true);
                 composer.addHandler(new HandlerForStringBuffer(op, ownerVCard));
-                if (!composer.init(Contacts.CONTENT_URI, selection, null, null)) {
+                if (!composer.init(Contacts.CONTENT_URI, selection, null, Contacts._ID)) {
                     return ResponseCodes.OBEX_HTTP_INTERNAL_ERROR;
                 }
 
@@ -470,7 +470,8 @@ public class BluetoothPbapVcardManager {
             try {
                 composer = new BluetoothPbapCallLogComposer(mContext, true);
                 composer.addHandler(new HandlerForStringBuffer(op, ownerVCard));
-                if (!composer.init(CallLog.Calls.CONTENT_URI, selection, null, null)) {
+                if (!composer.init(CallLog.Calls.CONTENT_URI, selection, null,
+                                   CALLLOG_SORT_ORDER)) {
                     return ResponseCodes.OBEX_HTTP_INTERNAL_ERROR;
                 }