possible work around for notification bug

iNPUTmice created

Change summary

src/eu/siacs/conversations/services/XmppConnectionService.java | 17 ++++
1 file changed, 17 insertions(+)

Detailed changes

src/eu/siacs/conversations/services/XmppConnectionService.java 🔗

@@ -975,6 +975,10 @@ public class XmppConnectionService extends Service {
 
 	public void setOnConversationListChangedListener(
 			OnConversationUpdate listener) {
+		if (!isScreenOn()) {
+			Log.d(Config.LOGTAG,"ignoring setOnConversationListChangedListener");
+			return;
+		}
 		this.mNotificationService.deactivateGracePeriod();
 		if (checkListeners()) {
 			switchToForeground();
@@ -996,6 +1000,10 @@ public class XmppConnectionService extends Service {
 	}
 
 	public void setOnAccountListChangedListener(OnAccountUpdate listener) {
+		if (!isScreenOn()) {
+			Log.d(Config.LOGTAG,"ignoring setOnAccountListChangedListener");
+			return;
+		}
 		this.mNotificationService.deactivateGracePeriod();
 		if (checkListeners()) {
 			switchToForeground();
@@ -1015,6 +1023,10 @@ public class XmppConnectionService extends Service {
 	}
 
 	public void setOnRosterUpdateListener(OnRosterUpdate listener) {
+		if (!isScreenOn()) {
+			Log.d(Config.LOGTAG,"ignoring setOnRosterUpdateListener");
+			return;
+		}
 		this.mNotificationService.deactivateGracePeriod();
 		if (checkListeners()) {
 			switchToForeground();
@@ -1063,6 +1075,11 @@ public class XmppConnectionService extends Service {
 			}
 		}
 	}
+	
+	private boolean isScreenOn() {
+		PowerManager pm = (PowerManager) this.getSystemService(Context.POWER_SERVICE);
+		return pm.isScreenOn();
+	}
 
 	public void connectMultiModeConversations(Account account) {
 		List<Conversation> conversations = getConversations();