aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/eu/siacs/conversations/services/XmppConnectionService.java12
1 files changed, 11 insertions, 1 deletions
diff --git a/src/eu/siacs/conversations/services/XmppConnectionService.java b/src/eu/siacs/conversations/services/XmppConnectionService.java
index 62e48773..46da0b67 100644
--- a/src/eu/siacs/conversations/services/XmppConnectionService.java
+++ b/src/eu/siacs/conversations/services/XmppConnectionService.java
@@ -84,6 +84,7 @@ public class XmppConnectionService extends Service {
private static final int PING_MIN_INTERVAL = 10;
private static final int PING_TIMEOUT = 5;
private static final int CONNECT_TIMEOUT = 60;
+ private static final long CARBON_GRACE_PERIOD = 60000L;
private List<Account> accounts;
private List<Conversation> conversations = null;
@@ -101,6 +102,8 @@ public class XmppConnectionService extends Service {
private Random mRandom = new Random(System.currentTimeMillis());
+ private long lastCarbonMessageReceived = -CARBON_GRACE_PERIOD;
+
private ContentObserver contactObserver = new ContentObserver(null) {
@Override
public void onChange(boolean selfChange) {
@@ -120,6 +123,12 @@ public class XmppConnectionService extends Service {
MessagePacket packet) {
Message message = null;
boolean notify = true;
+ if(PreferenceManager
+ .getDefaultSharedPreferences(getApplicationContext())
+ .getBoolean("notification_grace_period_after_carbon_received", true)){
+ notify=(SystemClock.elapsedRealtime() - lastCarbonMessageReceived) > CARBON_GRACE_PERIOD;
+ }
+
if ((packet.getType() == MessagePacket.TYPE_CHAT)) {
String pgpBody = MessageParser.getPgpBody(packet);
if (pgpBody != null) {
@@ -143,6 +152,7 @@ public class XmppConnectionService extends Service {
service);
if (message != null) {
if (message.getStatus() == Message.STATUS_SEND) {
+ lastCarbonMessageReceived = SystemClock.elapsedRealtime();
notify = false;
message.getConversation().markRead();
} else {
@@ -1351,4 +1361,4 @@ public class XmppConnectionService extends Service {
}
}
-} \ No newline at end of file
+}