diff --git a/app/src/main/java/com/nextcloud/talk/adapters/items/CallItem.java b/app/src/main/java/com/nextcloud/talk/adapters/items/CallItem.java index 088972a7d..8d476a2f7 100644 --- a/app/src/main/java/com/nextcloud/talk/adapters/items/CallItem.java +++ b/app/src/main/java/com/nextcloud/talk/adapters/items/CallItem.java @@ -162,7 +162,7 @@ public class CallItem extends AbstractFlexibleItem GlideApp.with(NextcloudTalkApplication.getSharedApplication().getApplicationContext()) .asBitmap() .diskCacheStrategy(DiskCacheStrategy.NONE) - .load(R.drawable.ic_group_white_24px) + .load(R.drawable.ic_people_group_white_24px) .centerInside() .override(avatarSize, avatarSize) .apply(RequestOptions.bitmapTransform(new CircleCrop())) diff --git a/app/src/main/java/com/nextcloud/talk/adapters/items/ConversationItem.java b/app/src/main/java/com/nextcloud/talk/adapters/items/ConversationItem.java index 9c281972a..6e92ab4e1 100644 --- a/app/src/main/java/com/nextcloud/talk/adapters/items/ConversationItem.java +++ b/app/src/main/java/com/nextcloud/talk/adapters/items/ConversationItem.java @@ -245,7 +245,7 @@ public class ConversationItem extends AbstractFlexibleItem 0) { decryptedPushMessage.setText(ChatUtils.getParsedMessage(notification.getMessageRich(), @@ -278,6 +280,24 @@ public class NotificationJob extends Job { decryptedPushMessage.setText(notification.getMessage()); } + HashMap> subjectRichParametersRichParameters = notification + .getSubjectRichParameters(); + + if (subjectRichParametersRichParameters != null && subjectRichParametersRichParameters + .size() > 0 && subjectRichParametersRichParameters.containsKey("call") + && subjectRichParametersRichParameters.containsKey("user")) { + HashMap callHashMap = subjectRichParametersRichParameters.get("call"); + HashMap userHashMap = subjectRichParametersRichParameters.get("user"); + + if (callHashMap.containsKey("call-type")) { + conversationType = callHashMap.get("call-type"); + + if ("one2one".equals(conversationType)) { + decryptedPushMessage.setSubject(userHashMap.get("name")); + } + } + } + showNotification(intent); } @@ -294,26 +314,47 @@ public class NotificationJob extends Job { private void showNotification(Intent intent) { int smallIcon; - Bitmap largeIcon; + Bitmap largeIcon = null; String category; int priority = Notification.PRIORITY_HIGH; Uri soundUri; + smallIcon = R.drawable.ic_logo; + if (decryptedPushMessage.getType().equals("chat")) { - smallIcon = R.drawable.ic_chat_white_24dp; category = Notification.CATEGORY_MESSAGE; } else { - smallIcon = R.drawable.ic_call_white_24dp; category = Notification.CATEGORY_CALL; } + switch (conversationType) { + case "one2one": + if (decryptedPushMessage.getType().equals("chat")) { + largeIcon = BitmapFactory.decodeResource(context.getResources(), R.drawable.ic_chat_black_24dp); + } else { + largeIcon = BitmapFactory.decodeResource(context.getResources(), R.drawable.ic_call_black_24dp); + } + break; + case "group": + largeIcon = BitmapFactory.decodeResource(context.getResources(), R.drawable.ic_people_group_black_24px); + break; + case "public": + largeIcon = BitmapFactory.decodeResource(context.getResources(), R.drawable.ic_link_black_24px); + break; + default: + if (decryptedPushMessage.getType().equals("chat")) { + largeIcon = BitmapFactory.decodeResource(context.getResources(), R.drawable.ic_chat_black_24dp); + } else { + largeIcon = BitmapFactory.decodeResource(context.getResources(), R.drawable.ic_call_black_24dp); + } + } + PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_CANCEL_CURRENT | PendingIntent.FLAG_ONE_SHOT); NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE); - largeIcon = BitmapFactory.decodeResource(context.getResources(), smallIcon); CRC32 crc32 = new CRC32(); Notification.Builder notificationBuilder = new Notification.Builder(context) diff --git a/app/src/main/res/drawable/ic_link_black_24px.xml b/app/src/main/res/drawable/ic_link_black_24px.xml new file mode 100644 index 000000000..9f52bcc60 --- /dev/null +++ b/app/src/main/res/drawable/ic_link_black_24px.xml @@ -0,0 +1,27 @@ + + + + + diff --git a/app/src/main/res/drawable/ic_logo_black_24dp.xml b/app/src/main/res/drawable/ic_logo_black_24dp.xml deleted file mode 100644 index ca261a2c9..000000000 --- a/app/src/main/res/drawable/ic_logo_black_24dp.xml +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_people_group_black_24px.xml b/app/src/main/res/drawable/ic_people_group_black_24px.xml new file mode 100644 index 000000000..8d90bfb67 --- /dev/null +++ b/app/src/main/res/drawable/ic_people_group_black_24px.xml @@ -0,0 +1,27 @@ + + + + + diff --git a/app/src/main/res/drawable/ic_group_white_24px.xml b/app/src/main/res/drawable/ic_people_group_white_24px.xml similarity index 100% rename from app/src/main/res/drawable/ic_group_white_24px.xml rename to app/src/main/res/drawable/ic_people_group_white_24px.xml diff --git a/app/src/main/res/drawable/ic_group_black_24px.xml b/app/src/main/res/drawable/ic_public_black_24px.xml similarity index 100% rename from app/src/main/res/drawable/ic_group_black_24px.xml rename to app/src/main/res/drawable/ic_public_black_24px.xml diff --git a/app/src/main/res/drawable/ic_public_white_24px.xml b/app/src/main/res/drawable/ic_public_white_24px.xml new file mode 100644 index 000000000..68fc75a37 --- /dev/null +++ b/app/src/main/res/drawable/ic_public_white_24px.xml @@ -0,0 +1,26 @@ + + + + + diff --git a/app/src/main/res/layout/rv_item_call_header.xml b/app/src/main/res/layout/rv_item_call_header.xml index e2b83cec2..6fbdbae4c 100644 --- a/app/src/main/res/layout/rv_item_call_header.xml +++ b/app/src/main/res/layout/rv_item_call_header.xml @@ -39,7 +39,7 @@ android:layout_marginEnd="8dp" android:layout_marginStart="@dimen/activity_horizontal_margin" android:contentDescription="@null" - android:src="@drawable/ic_group_black_24px" + android:src="@drawable/ic_public_black_24px" android:tint="@color/colorPrimary"/>