From: Lixin Yue Date: Thu, 5 Nov 2009 03:45:52 +0000 (+0800) Subject: PBAP only transfer contacts that are visible in contacts application. X-Git-Tag: android-7.1.2_r17~1438^2~8 X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=cd5ed0c7d04119e508fbddfd9656ef8559e3e524;p=android-x86%2Fpackages-apps-Bluetooth.git PBAP only transfer contacts that are visible in contacts application. This is to address below issue: There have been reports by users where they are seeing contacts in the carkit that are not present in the Contacts App UI but are present in the database. Bug: 2245178 Dr No: Eastham --- diff --git a/res/values/strings_pbap.xml b/res/values/strings_pbap.xml index 30673749..9c8419a3 100644 --- a/res/values/strings_pbap.xml +++ b/res/values/strings_pbap.xml @@ -24,6 +24,6 @@ Always allowed? Carkit Unknown name - My phone number + My name 000000 diff --git a/src/com/android/bluetooth/pbap/BluetoothPbapService.java b/src/com/android/bluetooth/pbap/BluetoothPbapService.java index b32265df..5842394e 100644 --- a/src/com/android/bluetooth/pbap/BluetoothPbapService.java +++ b/src/com/android/bluetooth/pbap/BluetoothPbapService.java @@ -427,7 +427,7 @@ public class BluetoothPbapService extends Service { } sLocalPhoneName = tm.getLine1AlphaTag(); if (TextUtils.isEmpty(sLocalPhoneName)) { - sLocalPhoneName = this.getString(R.string.ownNumber); + sLocalPhoneName = this.getString(R.string.localPhoneName); } } diff --git a/src/com/android/bluetooth/pbap/BluetoothPbapVcardManager.java b/src/com/android/bluetooth/pbap/BluetoothPbapVcardManager.java index 3a8ce3a3..f16ce137 100644 --- a/src/com/android/bluetooth/pbap/BluetoothPbapVcardManager.java +++ b/src/com/android/bluetooth/pbap/BluetoothPbapVcardManager.java @@ -107,6 +107,8 @@ public class BluetoothPbapVcardManager { // here. static final String CALLLOG_SORT_ORDER = Calls._ID + " DESC"; + private static final String CLAUSE_ONLY_VISIBLE = Contacts.IN_VISIBLE_GROUP + "=1"; + public BluetoothPbapVcardManager(final Context context) { mContext = context; mResolver = mContext.getContentResolver(); @@ -140,7 +142,7 @@ public class BluetoothPbapVcardManager { int size = 0; Cursor contactCursor = null; try { - contactCursor = mResolver.query(myUri, null, null, null, null); + contactCursor = mResolver.query(myUri, null, CLAUSE_ONLY_VISIBLE, null, null); if (contactCursor != null) { size = contactCursor.getCount() + 1; // always has the 0.vcf } @@ -212,11 +214,11 @@ public class BluetoothPbapVcardManager { Cursor contactCursor = null; try { if (orderByWhat == BluetoothPbapObexServer.ORDER_BY_INDEXED) { - contactCursor = mResolver.query(myUri, CONTACTS_PROJECTION, null, null, - Contacts._ID); + contactCursor = mResolver.query(myUri, CONTACTS_PROJECTION, CLAUSE_ONLY_VISIBLE, + null, Contacts._ID); } else if (orderByWhat == BluetoothPbapObexServer.ORDER_BY_ALPHABETICAL) { - contactCursor = mResolver.query(myUri, CONTACTS_PROJECTION, null, null, - Contacts.DISPLAY_NAME); + contactCursor = mResolver.query(myUri, CONTACTS_PROJECTION, CLAUSE_ONLY_VISIBLE, + null, Contacts.DISPLAY_NAME); } if (contactCursor != null) { for (contactCursor.moveToFirst(); !contactCursor.isAfterLast(); contactCursor @@ -243,7 +245,7 @@ public class BluetoothPbapVcardManager { final Uri myUri = Phone.CONTENT_URI; Cursor phoneCursor = null; try { - phoneCursor = mResolver.query(myUri, PHONES_PROJECTION, null, null, + phoneCursor = mResolver.query(myUri, PHONES_PROJECTION, CLAUSE_ONLY_VISIBLE, null, SORT_ORDER_PHONE_NUMBER); if (phoneCursor != null) { for (phoneCursor.moveToFirst(); !phoneCursor.isAfterLast(); phoneCursor @@ -336,7 +338,7 @@ public class BluetoothPbapVcardManager { long startPointId = 0; long endPointId = 0; try { - contactCursor = mResolver.query(myUri, CONTACTS_PROJECTION, null, null, + contactCursor = mResolver.query(myUri, CONTACTS_PROJECTION, CLAUSE_ONLY_VISIBLE, null, Contacts._ID); if (contactCursor != null) { contactCursor.moveToPosition(startPoint - 1); @@ -358,10 +360,10 @@ public class BluetoothPbapVcardManager { final String selection; if (startPoint == endPoint) { - selection = Contacts._ID + "=" + startPointId; + selection = Contacts._ID + "=" + startPointId + " AND " + CLAUSE_ONLY_VISIBLE; } else { selection = Contacts._ID + ">=" + startPointId + " AND " + Contacts._ID + "<=" - + endPointId; + + endPointId + " AND " + CLAUSE_ONLY_VISIBLE; } if (V) Log.v(TAG, "Query selection is: " + selection); @@ -381,8 +383,8 @@ public class BluetoothPbapVcardManager { long contactId = 0; if (orderByWhat == BluetoothPbapObexServer.ORDER_BY_INDEXED) { try { - contactCursor = mResolver.query(myUri, CONTACTS_PROJECTION, null, null, - Contacts._ID); + contactCursor = mResolver.query(myUri, CONTACTS_PROJECTION, CLAUSE_ONLY_VISIBLE, + null, Contacts._ID); if (contactCursor != null) { contactCursor.moveToPosition(offset - 1); contactId = contactCursor.getLong(CONTACTS_ID_COLUMN_INDEX); @@ -395,8 +397,8 @@ public class BluetoothPbapVcardManager { } } else if (orderByWhat == BluetoothPbapObexServer.ORDER_BY_ALPHABETICAL) { try { - contactCursor = mResolver.query(myUri, CONTACTS_PROJECTION, null, null, - Contacts.DISPLAY_NAME); + contactCursor = mResolver.query(myUri, CONTACTS_PROJECTION, CLAUSE_ONLY_VISIBLE, + null, Contacts.DISPLAY_NAME); if (contactCursor != null) { contactCursor.moveToPosition(offset - 1); contactId = contactCursor.getLong(CONTACTS_ID_COLUMN_INDEX);