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 05aa9ec..8141143 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 @@ -54,6 +54,7 @@ import fr.unix_experience.owncloud_sms.engine.ConnectivityMonitor; import fr.unix_experience.owncloud_sms.enums.OCSMSNotificationType; import fr.unix_experience.owncloud_sms.enums.PermissionID; import fr.unix_experience.owncloud_sms.notifications.OCSMSNotificationUI; +import fr.unix_experience.owncloud_sms.prefs.OCSMSSharedPrefs; import fr.unix_experience.owncloud_sms.prefs.PermissionChecker; import static fr.unix_experience.owncloud_sms.enums.PermissionID.REQUEST_MAX; @@ -204,21 +205,27 @@ public class MainActivity extends AppCompatActivity } Context ctx = getApplicationContext(); - if (_ConnectivityMonitor.isValid()) { - // Now fetch messages since last stored date - JSONArray smsList = new JSONArray(); - new AndroidSmsFetcher(ctx).bufferMessagesSinceDate(smsList, (long) 0); - - if (smsList.length() > 0) { - OCSMSNotificationUI.notify(ctx, ctx.getString(R.string.sync_title), - ctx.getString(R.string.sync_inprogress), OCSMSNotificationType.SYNC.ordinal()); - new SyncTask(getApplicationContext(), smsList).execute(); - } else { - Toast.makeText(ctx, ctx.getString(R.string.nothing_to_sync), Toast.LENGTH_SHORT).show(); - } - } else { + if (!_ConnectivityMonitor.isValid()) { Toast.makeText(ctx, ctx.getString(R.string.err_sync_no_connection_available), Toast.LENGTH_SHORT).show(); + Log.v(MainActivity.TAG, "Finish syncAllMessages(): invalid connection"); + return; } + + // Now fetch messages since last stored date + JSONArray smsList = new JSONArray(); + new AndroidSmsFetcher(ctx).bufferMessagesSinceDate(smsList, (long) 0); + + if (smsList.length() == 0) { + Toast.makeText(ctx, ctx.getString(R.string.nothing_to_sync), Toast.LENGTH_SHORT).show(); + Log.v(MainActivity.TAG, "Finish syncAllMessages(): no sms"); + return; + } + + if (new OCSMSSharedPrefs(this).showSyncNotifications()) { + OCSMSNotificationUI.notify(ctx, ctx.getString(R.string.sync_title), + ctx.getString(R.string.sync_inprogress), OCSMSNotificationType.SYNC.ordinal()); + } + new SyncTask(getApplicationContext(), smsList).execute(); Log.v(MainActivity.TAG, "Finish syncAllMessages()"); } diff --git a/src/main/java/fr/unix_experience/owncloud_sms/activities/OCSMSSettingsActivity.java b/src/main/java/fr/unix_experience/owncloud_sms/activities/OCSMSSettingsActivity.java index 0bb8ae0..eafaed7 100644 --- a/src/main/java/fr/unix_experience/owncloud_sms/activities/OCSMSSettingsActivity.java +++ b/src/main/java/fr/unix_experience/owncloud_sms/activities/OCSMSSettingsActivity.java @@ -77,6 +77,7 @@ public class OCSMSSettingsActivity extends VirtualSettingsActivity { // Bind our boolean preferences VirtualSettingsActivity._boolPrefs.add(new BindObjectPref("push_on_receive", DefaultPrefs.pushOnReceive)); + VirtualSettingsActivity._boolPrefs.add(new BindObjectPref("show_sync_notifications", DefaultPrefs.showSyncNotifications)); VirtualSettingsActivity._boolPrefs.add(new BindObjectPref("sync_wifi", DefaultPrefs.syncWifi)); VirtualSettingsActivity._boolPrefs.add(new BindObjectPref("sync_4g", DefaultPrefs.sync4G)); VirtualSettingsActivity._boolPrefs.add(new BindObjectPref("sync_3g", DefaultPrefs.sync3G)); @@ -95,7 +96,7 @@ public class OCSMSSettingsActivity extends VirtualSettingsActivity { protected void handleCheckboxPreference(String key, Boolean value) { // Network types allowed for sync - if ("push_on_receive".equals(key) || + if ("push_on_receive".equals(key) || "show_sync_notifications".equals(key) || "sync_wifi".equals(key) || "sync_2g".equals(key) || "sync_3g".equals(key) || "sync_gprs".equals(key) || "sync_4g".equals(key) || "sync_others".equals(key)) { diff --git a/src/main/java/fr/unix_experience/owncloud_sms/defines/DefaultPrefs.java b/src/main/java/fr/unix_experience/owncloud_sms/defines/DefaultPrefs.java index 5c5cb55..a17e7a4 100644 --- a/src/main/java/fr/unix_experience/owncloud_sms/defines/DefaultPrefs.java +++ b/src/main/java/fr/unix_experience/owncloud_sms/defines/DefaultPrefs.java @@ -4,6 +4,7 @@ public class DefaultPrefs { public final static Integer syncInterval = 15; public final static Integer minimumCharsForSync = 0; public final static Boolean pushOnReceive = true; + public final static Boolean showSyncNotifications = true; public final static Boolean syncWifi = true; public final static Boolean sync2G = true; diff --git a/src/main/java/fr/unix_experience/owncloud_sms/prefs/OCSMSSharedPrefs.java b/src/main/java/fr/unix_experience/owncloud_sms/prefs/OCSMSSharedPrefs.java index 263a255..dfecc0e 100644 --- a/src/main/java/fr/unix_experience/owncloud_sms/prefs/OCSMSSharedPrefs.java +++ b/src/main/java/fr/unix_experience/owncloud_sms/prefs/OCSMSSharedPrefs.java @@ -43,6 +43,10 @@ public class OCSMSSharedPrefs extends SharedPrefs { return _sPrefs.getBoolean("push_on_receive", DefaultPrefs.pushOnReceive); } + public Boolean showSyncNotifications() { + return _sPrefs.getBoolean("show_sync_notifications", DefaultPrefs.showSyncNotifications); + } + public Boolean syncInWifi() { return _sPrefs.getBoolean("sync_wifi", DefaultPrefs.syncWifi); } diff --git a/src/main/java/fr/unix_experience/owncloud_sms/sync_adapters/SmsSyncAdapter.java b/src/main/java/fr/unix_experience/owncloud_sms/sync_adapters/SmsSyncAdapter.java index 953faa4..b7116a9 100644 --- a/src/main/java/fr/unix_experience/owncloud_sms/sync_adapters/SmsSyncAdapter.java +++ b/src/main/java/fr/unix_experience/owncloud_sms/sync_adapters/SmsSyncAdapter.java @@ -31,6 +31,7 @@ import fr.unix_experience.owncloud_sms.enums.OCSMSNotificationType; import fr.unix_experience.owncloud_sms.enums.OCSyncErrorType; import fr.unix_experience.owncloud_sms.exceptions.OCSyncException; import fr.unix_experience.owncloud_sms.notifications.OCSMSNotificationUI; +import fr.unix_experience.owncloud_sms.prefs.OCSMSSharedPrefs; class SmsSyncAdapter extends AbstractThreadedSyncAdapter { @@ -41,8 +42,11 @@ class SmsSyncAdapter extends AbstractThreadedSyncAdapter { @Override public void onPerformSync(Account account, Bundle extras, String authority, ContentProviderClient provider, SyncResult syncResult) { - OCSMSNotificationUI.notify(getContext(), getContext().getString(R.string.sync_title), - getContext().getString(R.string.sync_inprogress), OCSMSNotificationType.SYNC.ordinal()); + + if (new OCSMSSharedPrefs(getContext()).showSyncNotifications()) { + OCSMSNotificationUI.notify(getContext(), getContext().getString(R.string.sync_title), + getContext().getString(R.string.sync_inprogress), OCSMSNotificationType.SYNC.ordinal()); + } try { OCSMSOwnCloudClient _client = new OCSMSOwnCloudClient(getContext(), account); diff --git a/src/main/res/values-en-rGB/strings.xml b/src/main/res/values-en-rGB/strings.xml index 5c55587..89e3e61 100644 --- a/src/main/res/values-en-rGB/strings.xml +++ b/src/main/res/values-en-rGB/strings.xml @@ -181,4 +181,5 @@ Are you sure you want to reinitialise the synchronisation cursor ? This can slowdown the next synchronisation if we found many old messages not synced with server. Yes No + Show sync notifications diff --git a/src/main/res/values-en/strings.xml b/src/main/res/values-en/strings.xml index 747e71a..598cc1d 100644 --- a/src/main/res/values-en/strings.xml +++ b/src/main/res/values-en/strings.xml @@ -157,5 +157,6 @@ Are you sure you want to reinitialize the synchronization cursor ? This can slowdown the next synchronisation if we found many old messages not synced with server. Yes No + Show sync notifications diff --git a/src/main/res/values-fr/strings.xml b/src/main/res/values-fr/strings.xml index 60d826c..f3582ca 100644 --- a/src/main/res/values-fr/strings.xml +++ b/src/main/res/values-fr/strings.xml @@ -181,4 +181,5 @@ Êtes-vous sûr de vouloir réinitialiser le curseur de synchronisation ? Cela peut ralentir la prochaine synchronisation si nous trouvons de nombreux anciens messages non synchronisés avec le serveur. Oui Non + Afficher les notifications de synchronisation diff --git a/src/main/res/values/strings.xml b/src/main/res/values/strings.xml index 0c7a4f8..218b478 100644 --- a/src/main/res/values/strings.xml +++ b/src/main/res/values/strings.xml @@ -258,4 +258,5 @@ Are you sure you want to reinitialize the synchronization cursor ? This can slowdown the next synchronisation if we found many old messages not synced with server. Yes No + Show sync notifications diff --git a/src/main/res/xml/pref_data_sync.xml b/src/main/res/xml/pref_data_sync.xml index 6671736..db6088f 100644 --- a/src/main/res/xml/pref_data_sync.xml +++ b/src/main/res/xml/pref_data_sync.xml @@ -31,6 +31,12 @@ android:layout_height="wrap_content" android:key="push_on_receive" android:title="@string/pref_push_on_receive" /> +