diff --git a/src/main/java/fr/unix_experience/owncloud_sms/activities/MainActivity.java b/src/main/java/fr/unix_experience/owncloud_sms/activities/MainActivity.java
index 8f74294..d307270 100644
--- a/src/main/java/fr/unix_experience/owncloud_sms/activities/MainActivity.java
+++ b/src/main/java/fr/unix_experience/owncloud_sms/activities/MainActivity.java
@@ -38,6 +38,7 @@ import android.support.v4.view.GravityCompat;
import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.ActionBarDrawerToggle;
import android.support.v7.app.AppCompatActivity;
+import android.util.Log;
import android.view.MenuItem;
import android.view.Window;
import android.widget.Toast;
@@ -126,6 +127,7 @@ public class MainActivity extends AppCompatActivity
}
public void syncAllMessages () {
+ Log.v(MainActivity.TAG, "Launch syncAllMessages()");
if (!PermissionChecker.checkPermission(this, Manifest.permission.READ_SMS,
REQUEST_SMS)) {
return;
@@ -147,6 +149,7 @@ public class MainActivity extends AppCompatActivity
else {
Toast.makeText(ctx, ctx.getString(R.string.err_sync_no_connection_available), Toast.LENGTH_SHORT).show();
}
+ Log.v(MainActivity.TAG, "Finish syncAllMessages()");
}
private boolean openMyAccounts () {
@@ -202,4 +205,6 @@ public class MainActivity extends AppCompatActivity
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
}
}
+
+ private static final String TAG = MainActivity.class.getSimpleName();
}
diff --git a/src/main/java/fr/unix_experience/owncloud_sms/engine/ASyncSMSSync.java b/src/main/java/fr/unix_experience/owncloud_sms/engine/ASyncSMSSync.java
index 81ca71e..6a3e0ca 100644
--- a/src/main/java/fr/unix_experience/owncloud_sms/engine/ASyncSMSSync.java
+++ b/src/main/java/fr/unix_experience/owncloud_sms/engine/ASyncSMSSync.java
@@ -40,6 +40,7 @@ public interface ASyncSMSSync {
@Override
protected Void doInBackground(Void... params) {
+ Log.d(ASyncSMSSync.TAG, "Starting background sync");
// Get ownCloud SMS account list
AccountManager _accountMgr = AccountManager.get(_context);
Account[] myAccountList = _accountMgr.getAccountsByType(_context.getString(R.string.account_type));
@@ -62,6 +63,7 @@ public interface ASyncSMSSync {
}
}
OCSMSNotificationUI.cancel(_context);
+ Log.d(ASyncSMSSync.TAG, "Stopping background sync");
return null;
}
diff --git a/src/main/java/fr/unix_experience/owncloud_sms/engine/SmsFetcher.java b/src/main/java/fr/unix_experience/owncloud_sms/engine/SmsFetcher.java
index a9382e8..ca6e383 100644
--- a/src/main/java/fr/unix_experience/owncloud_sms/engine/SmsFetcher.java
+++ b/src/main/java/fr/unix_experience/owncloud_sms/engine/SmsFetcher.java
@@ -104,15 +104,16 @@ public class SmsFetcher {
} catch (JSONException e) {
Log.e(SmsFetcher.TAG, "JSON Exception when reading SMS Mailbox", e);
- c.close();
}
}
while (c.moveToNext());
Log.d(SmsFetcher.TAG, c.getCount() + " messages read from " + mbURI);
-
- c.close();
}
+
+ if (c != null) {
+ c.close();
+ }
}
// Used by Content Observer
@@ -235,15 +236,16 @@ public class SmsFetcher {
} catch (JSONException e) {
Log.e(SmsFetcher.TAG, "JSON Exception when reading SMS Mailbox", e);
- c.close();
}
}
while (c.moveToNext());
Log.d(SmsFetcher.TAG, c.getCount() + " messages read from " + mbURI);
-
- c.close();
}
+
+ if (c != null) {
+ c.close();
+ }
}
private String mapMailboxIDToURI(MailboxID mbID) {
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 4d6d9ae..dfac4e2 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,6 +23,7 @@ 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;
@@ -36,7 +37,7 @@ public class SmsDataProvider extends ContentProvider {
@Override
public boolean onCreate() {
- return false;
+ return true;
}
public Cursor query(String mailBox) {
@@ -46,7 +47,9 @@ public class SmsDataProvider extends ContentProvider {
);
}
+ // NOTE: in APIv2 this call should be modified to use date instead of _id which is likely unique
public Cursor queryNonExistingMessages(String mailBox, String existingIds) {
+ Log.d(SmsDataProvider.TAG, "queryNonExistingMessages !");
if (!existingIds.isEmpty()) {
return query(Uri.parse(mailBox),
new String[] { "read", "date", "address", "seen", "body", "_id", "type", },
@@ -58,6 +61,7 @@ public class SmsDataProvider extends ContentProvider {
}
public Cursor queryMessagesSinceDate(String mailBox, Long sinceDate) {
+ Log.d(SmsDataProvider.TAG, "queryMessagesSinceDate !");
return query(Uri.parse(mailBox),
new String[] { "read", "date", "address", "seen", "body", "_id", "type", },
"date > ?", new String[] { sinceDate.toString() }, null
@@ -67,20 +71,51 @@ public class SmsDataProvider extends ContentProvider {
@Override
public Cursor query(@NonNull Uri uri, String[] projection, String selection,
String[] selectionArgs, String sortOrder) {
+ if ((_context == null) || (_context.getContentResolver() == null)) {
+ Log.e(SmsDataProvider.TAG, "query: context is null or content resolver is null, abort.");
+ return null;
+ }
OCSMSSharedPrefs prefs = new OCSMSSharedPrefs(_context);
Integer bulkLimit = prefs.getSyncBulkLimit();
- //Integer senderMinSize = prefs.getMinPhoneNumberCharsToSync();
+ Integer senderMinSize = prefs.getMinPhoneNumberCharsToSync();
+ if (senderMinSize < 0) {
+ senderMinSize = 0;
+ }
+
+ // If minSize > 0 we should filter
+ if (senderMinSize > 0) {
+ if ((selection == null) || (selection.isEmpty())) {
+ selection = "length(address) > ?";
+ selectionArgs = new String[] { senderMinSize.toString() };
+ }
+ else {
+ selection = "length(address) > ? AND " + selection;
+ int nSelectionArgLength = 1;
+ if (selectionArgs != null) {
+ nSelectionArgLength += selectionArgs.length;
+ }
+ String[] nSelectionArgs = new String[nSelectionArgLength];
+ nSelectionArgs[0] = senderMinSize.toString();
+ if (selectionArgs != null) {
+ System.arraycopy(selectionArgs, 0, nSelectionArgs, 1, selectionArgs.length);
+ }
+ selectionArgs = nSelectionArgs;
+ }
+
+ Log.d(SmsDataProvider.TAG, "query: Minimum message length set to " + selectionArgs[0]);
+ }
+
if (bulkLimit > 0) {
if (sortOrder == null)
sortOrder = "_id ";
sortOrder += " LIMIT " + bulkLimit.toString();
+
+ Log.d(SmsDataProvider.TAG, "query: Bulk limit set to " + bulkLimit.toString());
}
- if ((_context != null) && (_context.getContentResolver() != null)) {
- return _context.getContentResolver().query(uri, projection, selection, selectionArgs, sortOrder);
- }
+ Log.d(SmsDataProvider.TAG, "query: selection set to " + selection);
- return null;
+ return _context.getContentResolver().query(uri, projection, selection, selectionArgs, sortOrder);
}
@Override
diff --git a/src/main/res/values-zh-rCN/strings.xml b/src/main/res/values-zh-rCN/strings.xml
index 1ccb91a..0116dc5 100644
--- a/src/main/res/values-zh-rCN/strings.xml
+++ b/src/main/res/values-zh-rCN/strings.xml
@@ -32,18 +32,6 @@
7
-
- ownCloud-SMS
- fr.unix_experience.owncloud_sms
- fr.unix_experience.owncloud_sms.datasync.provider
- fr.unix_experience.owncloud_sms.datasync.slowsync_provider
- fr.unix_experience.owncloud_sms
- Login logo
-
-
- ownCloudSMSPrefs
- last_message_date
-
短信 - 快速模式