private void loadAddress(long msgId, PduHeaders headers) { Cursor c = SqliteWrapper.query(mContext, mContentResolver, Uri.parse("content://mms/" + msgId + "/addr"), new String[] { Addr.ADDRESS, Addr.CHARSET, Addr.TYPE }, null, null, null); if (c != null) { try { while (c.moveToNext()) { String addr = c.getString(0); if (!TextUtils.isEmpty(addr)) { int addrType = c.getInt(2); switch (addrType) { case PduHeaders.FROM: headers.setEncodedStringValue( new EncodedStringValue(c.getInt(1), getBytes(addr)), addrType); break; case PduHeaders.TO: case PduHeaders.CC: case PduHeaders.BCC: headers.appendEncodedStringValue( new EncodedStringValue(c.getInt(1), getBytes(addr)), addrType); break; default: Log.e(TAG, "Unknown address type: " + addrType); break; } } } } finally { c.close(); } } }
private void persistAddress( long msgId, int type, EncodedStringValue[] array) { ContentValues values = new ContentValues(3); for (EncodedStringValue addr : array) { values.clear(); // Clear all values first. values.put(Addr.ADDRESS, toIsoString(addr.getTextString())); values.put(Addr.CHARSET, addr.getCharacterSet()); values.put(Addr.TYPE, type); Uri uri = Uri.parse("content://mms/" + msgId + "/addr"); SqliteWrapper.insert(mContext, mContentResolver, uri, values); } }
private void updateAddress( long msgId, int type, EncodedStringValue[] array) { // Delete old address information and then insert new ones. SqliteWrapper.delete(mContext, mContentResolver, Uri.parse("content://mms/" + msgId + "/addr"), Addr.TYPE + "=" + type, null); persistAddress(msgId, type, array); }
public static String getFrom(Context context, Uri uri) { String msgId = uri.getLastPathSegment(); Uri.Builder builder = Mms.CONTENT_URI.buildUpon(); builder.appendPath(msgId).appendPath("addr"); Cursor cursor = SqliteWrapper.query(context, context.getContentResolver(), builder.build(), new String[]{Addr.ADDRESS, Addr.CHARSET}, Addr.TYPE + "=" + PduHeaders.FROM, null, null); if (cursor != null) { try { if (cursor.moveToFirst()) { String from = cursor.getString(0); if (!TextUtils.isEmpty(from)) { byte[] bytes = PduPersister.getBytes(from); int charset = cursor.getInt(1); return new EncodedStringValue(charset, bytes).getString(); } } } finally { cursor.close(); } } return context.getString(R.string.hidden_sender_address); }
private void loadAddress(long msgId, PduHeaders headers) { Cursor c = mContentResolver.query( Uri.parse("content://mms/" + msgId + "/addr"), new String[] { Addr.ADDRESS, Addr.CHARSET, Addr.TYPE }, null, null, null); if (c != null) { try { while (c.moveToNext()) { String addr = c.getString(0); if (!TextUtils.isEmpty(addr)) { int addrType = c.getInt(2); switch (addrType) { case PduHeaders.FROM: headers.setEncodedStringValue( new EncodedStringValue(c.getInt(1), getBytes(addr)), addrType); break; case PduHeaders.TO: case PduHeaders.CC: case PduHeaders.BCC: headers.appendEncodedStringValue( new EncodedStringValue(c.getInt(1), getBytes(addr)), addrType); break; default: Log.e(TAG, "Unknown address type: " + addrType); break; } } } } finally { c.close(); } } }
private void persistAddress( long msgId, int type, EncodedStringValue[] array) { ContentValues values = new ContentValues(3); for (EncodedStringValue addr : array) { values.clear(); // Clear all values first. values.put(Addr.ADDRESS, toIsoString(addr.getTextString())); values.put(Addr.CHARSET, addr.getCharacterSet()); values.put(Addr.TYPE, type); Uri uri = Uri.parse("content://mms/" + msgId + "/addr"); mContentResolver.insert(uri, values); // TODO: add values to a seperate db for faster loading } }
private void updateAddress( long msgId, int type, EncodedStringValue[] array) { // Delete old address information and then insert new ones. mContentResolver.delete( Uri.parse("content://mms/" + msgId + "/addr"), Addr.TYPE + "=" + type, null); persistAddress(msgId, type, array); }
public static String getFrom(Context context, Uri uri) { String msgId = uri.getLastPathSegment(); Uri.Builder builder = Mms.CONTENT_URI.buildUpon(); builder.appendPath(msgId).appendPath("addr"); Cursor cursor = SqliteWrapper.query(context, context.getContentResolver(), builder.build(), new String[] {Addr.ADDRESS, Addr.CHARSET}, Addr.TYPE + "=" + PduHeaders.FROM, null, null); if (cursor != null) { try { if (cursor.moveToFirst()) { String from = cursor.getString(0); if (!TextUtils.isEmpty(from)) { byte[] bytes = PduPersister.getBytes(from); int charset = cursor.getInt(1); return new EncodedStringValue(charset, bytes) .getString(); } } } finally { cursor.close(); } } return context.getString(R.string.hidden_sender_address); }