From eed1c9ec457b6b7ea1b6d24a43e7e75f6468ce16 Mon Sep 17 00:00:00 2001 From: Loic Blot Date: Wed, 4 Nov 2015 00:48:08 +0100 Subject: [PATCH] Implement bulk limit finally. One bug is remaining, the setting is not properly selected --- .../providers/SmsDataProvider.java | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/src/main/java/fr/unix_experience/owncloud_sms/providers/SmsDataProvider.java b/src/main/java/fr/unix_experience/owncloud_sms/providers/SmsDataProvider.java index d3e2ae4..9ec9c76 100644 --- a/src/main/java/fr/unix_experience/owncloud_sms/providers/SmsDataProvider.java +++ b/src/main/java/fr/unix_experience/owncloud_sms/providers/SmsDataProvider.java @@ -23,7 +23,6 @@ import android.content.Context; import android.database.Cursor; import android.net.Uri; import android.support.annotation.NonNull; -import android.util.Log; import fr.unix_experience.owncloud_sms.prefs.OCSMSSharedPrefs; @@ -55,9 +54,6 @@ public class SmsDataProvider extends ContentProvider { } public Cursor queryNonExistingMessages(String mailBox, String existingIds) { - OCSMSSharedPrefs prefs = new OCSMSSharedPrefs(_context); - Integer bulkLimit = prefs.getSyncBulkLimit(); - Log.d(TAG, "Bulk limit is " + bulkLimit.toString()); if (!existingIds.isEmpty()) { return query(mailBox, "_id NOT IN (" + existingIds + ")"); } @@ -68,7 +64,11 @@ public class SmsDataProvider extends ContentProvider { public Cursor queryMessagesSinceDate(String mailBox, Long sinceDate) { OCSMSSharedPrefs prefs = new OCSMSSharedPrefs(_context); Integer bulkLimit = prefs.getSyncBulkLimit(); - Log.d(TAG, "Bulk limit is " + bulkLimit.toString()); + String bulkStr = ""; + if (bulkLimit > 0) { + bulkStr = "LIMIT " + bulkLimit.toString(); + } + return query(mailBox, "date > ?", new String[] { sinceDate.toString() }); } @@ -82,6 +82,14 @@ public class SmsDataProvider extends ContentProvider { @Override public Cursor query(@NonNull Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder) { + OCSMSSharedPrefs prefs = new OCSMSSharedPrefs(_context); + Integer bulkLimit = prefs.getSyncBulkLimit(); + if (bulkLimit > 0) { + if (sortOrder == null) + sortOrder = "_id "; + sortOrder += " LIMIT " + bulkLimit.toString(); + } + if ((_context != null) && (_context.getContentResolver() != null)) { return _context.getContentResolver().query(uri, projection, selection, selectionArgs, sortOrder); }