Merge pull request #912 from SamWhited/update-foreground-notification

Add color / category to foreground notification
This commit is contained in:
Daniel Gultsch 2015-01-21 11:48:36 +01:00
commit 7df6ae9ef8
1 changed files with 14 additions and 7 deletions

View File

@ -118,7 +118,7 @@ public class NotificationService {
.getSystemService(Context.POWER_SERVICE); .getSystemService(Context.POWER_SERVICE);
final boolean isScreenOn; final boolean isScreenOn;
if (android.os.Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) { if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) {
isScreenOn = pm.isScreenOn(); isScreenOn = pm.isScreenOn();
} else { } else {
isScreenOn = pm.isInteractive(); isScreenOn = pm.isInteractive();
@ -134,10 +134,10 @@ public class NotificationService {
final boolean isScreenOn = isInteractive(); final boolean isScreenOn = isInteractive();
if (this.mIsInForeground && isScreenOn if (this.mIsInForeground && isScreenOn && this.mOpenConversation == message.getConversation()) {
&& this.mOpenConversation == message.getConversation()) {
return; return;
} }
synchronized (notifications) { synchronized (notifications) {
final String conversationUuid = message.getConversationUuid(); final String conversationUuid = message.getConversationUuid();
if (notifications.containsKey(conversationUuid)) { if (notifications.containsKey(conversationUuid)) {
@ -156,7 +156,6 @@ public class NotificationService {
notifyPebble(message); notifyPebble(message);
} }
} }
} }
public void clear() { public void clear() {
@ -173,6 +172,10 @@ public class NotificationService {
} }
} }
private void setNotificationColor(final Builder mBuilder) {
mBuilder.setColor(mXmppConnectionService.getResources().getColor(R.color.primary));
}
private void updateNotification(final boolean notify) { private void updateNotification(final boolean notify) {
final NotificationManager notificationManager = (NotificationManager) mXmppConnectionService final NotificationManager notificationManager = (NotificationManager) mXmppConnectionService
.getSystemService(Context.NOTIFICATION_SERVICE); .getSystemService(Context.NOTIFICATION_SERVICE);
@ -205,8 +208,8 @@ public class NotificationService {
} }
if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
mBuilder.setCategory(Notification.CATEGORY_MESSAGE); mBuilder.setCategory(Notification.CATEGORY_MESSAGE);
mBuilder.setColor(mXmppConnectionService.getResources().getColor(R.color.primary));
} }
setNotificationColor(mBuilder);
mBuilder.setSmallIcon(R.drawable.ic_notification); mBuilder.setSmallIcon(R.drawable.ic_notification);
mBuilder.setDeleteIntent(createDeleteIntent()); mBuilder.setDeleteIntent(createDeleteIntent());
mBuilder.setLights(0xffffffff, 2000, 4000); mBuilder.setLights(0xffffffff, 2000, 4000);
@ -331,7 +334,7 @@ public class NotificationService {
if ((message.getType() == Message.TYPE_FILE || message.getType() == Message.TYPE_IMAGE) && if ((message.getType() == Message.TYPE_FILE || message.getType() == Message.TYPE_IMAGE) &&
message.getDownloadable() != null) { message.getDownloadable() != null) {
return message; return message;
} }
} }
return null; return null;
} }
@ -452,6 +455,10 @@ public class NotificationService {
mBuilder.setContentIntent(createOpenConversationsIntent()); mBuilder.setContentIntent(createOpenConversationsIntent());
mBuilder.setWhen(0); mBuilder.setWhen(0);
mBuilder.setPriority(NotificationCompat.PRIORITY_MIN); mBuilder.setPriority(NotificationCompat.PRIORITY_MIN);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
mBuilder.setCategory(Notification.CATEGORY_SERVICE);
}
setNotificationColor(mBuilder);
return mBuilder.build(); return mBuilder.build();
} }