Loading android/app/Android.bp +1 −0 Original line number Diff line number Diff line Loading @@ -260,6 +260,7 @@ android_app { error_checks: [ "ExtraText", "NewApi", "Recycle", ], strict_updatability_linting: true, }, Loading android/app/lint-baseline.xml +0 −32 Original line number Diff line number Diff line Loading @@ -5535,38 +5535,6 @@ line="490"/> </issue> <issue id="Recycle" message="This `Cursor` should be freed up after use with `#close()`"> <location file="packages/modules/Bluetooth/android/app/src/com/android/bluetooth/mapclient/MapClientContent.java" line="283"/> </issue> <issue id="Recycle" message="This `Cursor` should be freed up after use with `#close()`"> <location file="packages/modules/Bluetooth/android/app/src/com/android/bluetooth/mapclient/MapClientContent.java" line="436"/> </issue> <issue id="Recycle" message="This `Cursor` should be freed up after use with `#close()`"> <location file="packages/modules/Bluetooth/android/app/src/com/android/bluetooth/mapclient/MapClientContent.java" line="528"/> </issue> <issue id="Recycle" message="This `Cursor` should be freed up after use with `#close()`"> <location file="packages/modules/Bluetooth/android/app/src/com/android/bluetooth/mapclient/MapClientContent.java" line="550"/> </issue> <issue id="ObsoleteSdkInt" message="Unnecessary; SDK_INT is always >= 19"> Loading android/app/src/com/android/bluetooth/mapclient/MapClientContent.java +53 −42 Original line number Diff line number Diff line Loading @@ -280,17 +280,19 @@ class MapClientContent { originalUriToHandleMap = mUriToHandleMap; duplicateUriToHandleMap = new HashMap<>(originalUriToHandleMap); for (Uri uri : new Uri[]{Mms.CONTENT_URI, Sms.CONTENT_URI}) { Cursor cursor = mResolver.query(uri, null, null, null, null); try (Cursor cursor = mResolver.query(uri, null, null, null, null)) { while (cursor.moveToNext()) { Uri index = Uri .withAppendedPath(uri, cursor.getString(cursor.getColumnIndex("_id"))); Uri index = Uri.withAppendedPath( uri, cursor.getString(cursor.getColumnIndex("_id"))); int readStatus = cursor.getInt(cursor.getColumnIndex(Sms.READ)); MessageStatus currentMessage = duplicateUriToHandleMap.remove(index); if (currentMessage != null && currentMessage.mRead != readStatus) { logV(currentMessage.mHandle); currentMessage.mRead = readStatus; mCallbacks.onMessageStatusChanged(currentMessage.mHandle, BluetoothMapClient.READ); mCallbacks.onMessageStatusChanged( currentMessage.mHandle, BluetoothMapClient.READ); } } } } Loading Loading @@ -433,10 +435,11 @@ class MapClientContent { String threads = new String(); Uri uri = Threads.CONTENT_URI.buildUpon().appendQueryParameter("simple", "true").build(); Cursor threadCursor = resolver.query(uri, null, null, null, null); try (Cursor threadCursor = resolver.query(uri, null, null, null, null)) { while (threadCursor.moveToNext()) { threads += threadCursor.getInt(threadCursor.getColumnIndex(Threads._ID)) + ", "; } } resolver.delete(Sms.CONTENT_URI, Sms.SUBSCRIPTION_ID + " =? ", new String[]{Integer.toString(subscriptionId)}); Loading Loading @@ -524,32 +527,39 @@ class MapClientContent { logD("MATCHING THREAD" + threadId); logD(MmsSms.CONTENT_CONVERSATIONS_URI + threadId + "/recipients"); Cursor cursor = mResolver .query(Uri.withAppendedPath(MmsSms.CONTENT_CONVERSATIONS_URI, threadId + "/recipients"), null, null, null, null); try (Cursor cursor = mResolver.query( Uri.withAppendedPath( MmsSms.CONTENT_CONVERSATIONS_URI, threadId + "/recipients"), null, null, null, null)) { if (cursor.moveToNext()) { logD("Columns" + Arrays.toString(cursor.getColumnNames())); logV("CONTACT LIST: " + cursor.getString(cursor.getColumnIndex("recipient_ids"))); addRecipientsToEntries(bmsg, cursor.getString(cursor.getColumnIndex("recipient_ids")).split(" ")); addRecipientsToEntries( bmsg, cursor.getString(cursor.getColumnIndex("recipient_ids")).split(" ")); return true; } else { Log.w(TAG, "Thread Not Found"); return false; } } } private void addRecipientsToEntries(Bmessage bmsg, String[] recipients) { logV("CONTACT LIST: " + Arrays.toString(recipients)); for (String recipient : recipients) { Cursor cursor = mResolver .query(Uri.parse("content://mms-sms/canonical-address/" + recipient), null, null, null, null); try (Cursor cursor = mResolver.query( Uri.parse("content://mms-sms/canonical-address/" + recipient), null, null, null, null)) { while (cursor.moveToNext()) { String number = cursor.getString(cursor.getColumnIndex(Mms.Addr.ADDRESS)); logV("CONTACT number: " + number); Loading @@ -562,6 +572,7 @@ class MapClientContent { } } } } /** * Get the total number of messages we've stored under this device's subscription ID, for a Loading Loading
android/app/Android.bp +1 −0 Original line number Diff line number Diff line Loading @@ -260,6 +260,7 @@ android_app { error_checks: [ "ExtraText", "NewApi", "Recycle", ], strict_updatability_linting: true, }, Loading
android/app/lint-baseline.xml +0 −32 Original line number Diff line number Diff line Loading @@ -5535,38 +5535,6 @@ line="490"/> </issue> <issue id="Recycle" message="This `Cursor` should be freed up after use with `#close()`"> <location file="packages/modules/Bluetooth/android/app/src/com/android/bluetooth/mapclient/MapClientContent.java" line="283"/> </issue> <issue id="Recycle" message="This `Cursor` should be freed up after use with `#close()`"> <location file="packages/modules/Bluetooth/android/app/src/com/android/bluetooth/mapclient/MapClientContent.java" line="436"/> </issue> <issue id="Recycle" message="This `Cursor` should be freed up after use with `#close()`"> <location file="packages/modules/Bluetooth/android/app/src/com/android/bluetooth/mapclient/MapClientContent.java" line="528"/> </issue> <issue id="Recycle" message="This `Cursor` should be freed up after use with `#close()`"> <location file="packages/modules/Bluetooth/android/app/src/com/android/bluetooth/mapclient/MapClientContent.java" line="550"/> </issue> <issue id="ObsoleteSdkInt" message="Unnecessary; SDK_INT is always >= 19"> Loading
android/app/src/com/android/bluetooth/mapclient/MapClientContent.java +53 −42 Original line number Diff line number Diff line Loading @@ -280,17 +280,19 @@ class MapClientContent { originalUriToHandleMap = mUriToHandleMap; duplicateUriToHandleMap = new HashMap<>(originalUriToHandleMap); for (Uri uri : new Uri[]{Mms.CONTENT_URI, Sms.CONTENT_URI}) { Cursor cursor = mResolver.query(uri, null, null, null, null); try (Cursor cursor = mResolver.query(uri, null, null, null, null)) { while (cursor.moveToNext()) { Uri index = Uri .withAppendedPath(uri, cursor.getString(cursor.getColumnIndex("_id"))); Uri index = Uri.withAppendedPath( uri, cursor.getString(cursor.getColumnIndex("_id"))); int readStatus = cursor.getInt(cursor.getColumnIndex(Sms.READ)); MessageStatus currentMessage = duplicateUriToHandleMap.remove(index); if (currentMessage != null && currentMessage.mRead != readStatus) { logV(currentMessage.mHandle); currentMessage.mRead = readStatus; mCallbacks.onMessageStatusChanged(currentMessage.mHandle, BluetoothMapClient.READ); mCallbacks.onMessageStatusChanged( currentMessage.mHandle, BluetoothMapClient.READ); } } } } Loading Loading @@ -433,10 +435,11 @@ class MapClientContent { String threads = new String(); Uri uri = Threads.CONTENT_URI.buildUpon().appendQueryParameter("simple", "true").build(); Cursor threadCursor = resolver.query(uri, null, null, null, null); try (Cursor threadCursor = resolver.query(uri, null, null, null, null)) { while (threadCursor.moveToNext()) { threads += threadCursor.getInt(threadCursor.getColumnIndex(Threads._ID)) + ", "; } } resolver.delete(Sms.CONTENT_URI, Sms.SUBSCRIPTION_ID + " =? ", new String[]{Integer.toString(subscriptionId)}); Loading Loading @@ -524,32 +527,39 @@ class MapClientContent { logD("MATCHING THREAD" + threadId); logD(MmsSms.CONTENT_CONVERSATIONS_URI + threadId + "/recipients"); Cursor cursor = mResolver .query(Uri.withAppendedPath(MmsSms.CONTENT_CONVERSATIONS_URI, threadId + "/recipients"), null, null, null, null); try (Cursor cursor = mResolver.query( Uri.withAppendedPath( MmsSms.CONTENT_CONVERSATIONS_URI, threadId + "/recipients"), null, null, null, null)) { if (cursor.moveToNext()) { logD("Columns" + Arrays.toString(cursor.getColumnNames())); logV("CONTACT LIST: " + cursor.getString(cursor.getColumnIndex("recipient_ids"))); addRecipientsToEntries(bmsg, cursor.getString(cursor.getColumnIndex("recipient_ids")).split(" ")); addRecipientsToEntries( bmsg, cursor.getString(cursor.getColumnIndex("recipient_ids")).split(" ")); return true; } else { Log.w(TAG, "Thread Not Found"); return false; } } } private void addRecipientsToEntries(Bmessage bmsg, String[] recipients) { logV("CONTACT LIST: " + Arrays.toString(recipients)); for (String recipient : recipients) { Cursor cursor = mResolver .query(Uri.parse("content://mms-sms/canonical-address/" + recipient), null, null, null, null); try (Cursor cursor = mResolver.query( Uri.parse("content://mms-sms/canonical-address/" + recipient), null, null, null, null)) { while (cursor.moveToNext()) { String number = cursor.getString(cursor.getColumnIndex(Mms.Addr.ADDRESS)); logV("CONTACT number: " + number); Loading @@ -562,6 +572,7 @@ class MapClientContent { } } } } /** * Get the total number of messages we've stored under this device's subscription ID, for a Loading