From 01868a1210fc38e7483fdc8d84b7b5ef96159576 Mon Sep 17 00:00:00 2001 From: tnmy-cyngn Date: Mon, 25 Apr 2016 19:19:17 +0530 Subject: Fixed the cutoff timestamp for MMS deletion by limit. Also null check for query selection arguments. Bug: PAELLA-195 Change-Id: I7a2caba894c9a371dbdd7ddb38e17406b5df1818 --- .../messaging/datamodel/action/MessageRecyclerAction.java | 4 ++-- src/com/android/messaging/sms/MmsUtils.java | 15 +++++++++------ 2 files changed, 11 insertions(+), 8 deletions(-) (limited to 'src') diff --git a/src/com/android/messaging/datamodel/action/MessageRecyclerAction.java b/src/com/android/messaging/datamodel/action/MessageRecyclerAction.java index 86da6aa..5e1424d 100644 --- a/src/com/android/messaging/datamodel/action/MessageRecyclerAction.java +++ b/src/com/android/messaging/datamodel/action/MessageRecyclerAction.java @@ -41,13 +41,13 @@ public class MessageRecyclerAction extends Action implements Parcelable { public static void deleteMessagesOverLimit(final String conversationId, int protocol) { if (!PrefsUtils.isAutoDeleteEnabled() || (protocol != MessageData.PROTOCOL_SMS - && protocol != MessageData.PROTOCOL_MMS)) { + && protocol != MessageData.PROTOCOL_MMS) || conversationId == null) { return; } int cutOffLimit = PrefsUtils.getMessagesPerThreadLimitByProtocol(protocol); long cutOffTimeStampFromLimit = BugleDatabaseOperations. - getCutOffTimeStampFromLimit(conversationId, cutOffLimit, MessageData.PROTOCOL_SMS); + getCutOffTimeStampFromLimit(conversationId, cutOffLimit, protocol); if (cutOffTimeStampFromLimit > Long.MIN_VALUE) { deleteMessages(conversationId, protocol, cutOffTimeStampFromLimit); diff --git a/src/com/android/messaging/sms/MmsUtils.java b/src/com/android/messaging/sms/MmsUtils.java index 1fd811f..4f5d223 100644 --- a/src/com/android/messaging/sms/MmsUtils.java +++ b/src/com/android/messaging/sms/MmsUtils.java @@ -1391,29 +1391,32 @@ public class MmsUtils { Uri uri; String selectionSql; String dateField; + long cutOffTimeStamp = Long.MIN_VALUE; switch (protocol) { case MessageData.PROTOCOL_SMS: uri = Sms.CONTENT_URI; selectionSql = getSmsTypeSelectionSql(); + cutOffTimeStamp = cutOffTimestampInMillis; dateField = Sms.DATE; break; case MessageData.PROTOCOL_MMS: uri = Mms.CONTENT_URI; selectionSql = getMmsTypeSelectionSql(); + cutOffTimeStamp = cutOffTimestampInMillis / 1000L; dateField = Mms.DATE; break; default: return 0; } final ContentResolver resolver = - Factory.get().getApplicationContext().getContentResolver(); + Factory.get().getApplicationContext().getContentResolver(); final String selection = String.format( - Locale.US, - "%s AND (%s<=%d)", - selectionSql, - dateField, - cutOffTimestampInMillis); + Locale.US, + "%s AND (%s<=%d)", + selectionSql, + dateField, + cutOffTimeStamp); int deleted = resolver.delete(uri, selection, null); return deleted; -- cgit v1.2.3