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" />
+