fixed #52. thanks @strb
This commit is contained in:
parent
3f403fb8a9
commit
78bd6c423f
|
@ -41,6 +41,11 @@
|
|||
android:key="notify_in_conversation_when_highlighted"
|
||||
android:title="Conference notification"
|
||||
android:summary="Always notify when a new conference message arrives instead of only when highlighted"/>
|
||||
<CheckBoxPreference
|
||||
android:key="notification_grace_period_after_carbon_received"
|
||||
android:title="Notification grace period"
|
||||
android:summary="Disable notifications for a short time after a carbon copy was received"
|
||||
android:defaultValue="true"/>
|
||||
</PreferenceCategory>
|
||||
<PreferenceCategory
|
||||
android:title="UI Options">
|
||||
|
|
|
@ -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 {
|
|||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue