From bf123dfc150c260aeb5268dd28b3d90690e93fc7 Mon Sep 17 00:00:00 2001 From: Mario Danic Date: Mon, 27 Aug 2018 12:12:27 +0200 Subject: [PATCH] Implement shared file system emssage Signed-off-by: Mario Danic --- .../MagicSystemMessageViewHolder.java | 22 ++++++++++++++----- .../talk/models/json/chat/ChatMessage.java | 2 +- .../talk/models/json/chat/ChatUtils.java | 2 ++ .../EnumSystemMessageTypeConverter.java | 4 ++++ 4 files changed, 23 insertions(+), 7 deletions(-) diff --git a/app/src/main/java/com/nextcloud/talk/adapters/messages/MagicSystemMessageViewHolder.java b/app/src/main/java/com/nextcloud/talk/adapters/messages/MagicSystemMessageViewHolder.java index 0be31bdbe..146c4cf86 100644 --- a/app/src/main/java/com/nextcloud/talk/adapters/messages/MagicSystemMessageViewHolder.java +++ b/app/src/main/java/com/nextcloud/talk/adapters/messages/MagicSystemMessageViewHolder.java @@ -20,8 +20,11 @@ package com.nextcloud.talk.adapters.messages; +import android.content.Context; +import android.content.Intent; import android.content.res.Resources; import android.graphics.drawable.Drawable; +import android.net.Uri; import android.support.v4.view.ViewCompat; import android.text.Spannable; import android.text.SpannableString; @@ -54,25 +57,32 @@ public class MagicSystemMessageViewHolder extends MessageHolders.IncomingTextMes Spannable messageString = new SpannableString(message.getText()); + Context context = NextcloudTalkApplication.getSharedApplication().getApplicationContext(); if (message.getMessageParameters() != null && message.getMessageParameters().size() > 0) { for (String key : message.getMessageParameters().keySet()) { Map individualHashMap = message.getMessageParameters().get(key); + int color; if (individualHashMap.get("type").equals("user") || individualHashMap.get("type").equals("guest")) { - int color; if (individualHashMap.get("id").equals(message.getActiveUserId())) { - color = NextcloudTalkApplication.getSharedApplication().getResources().getColor(R.color - .nc_incoming_text_mention_you); + color = context.getResources().getColor(R.color.nc_incoming_text_mention_you); } else { - color = NextcloudTalkApplication.getSharedApplication().getResources().getColor(R.color - .nc_incoming_text_mention_others); + color = context.getResources().getColor(R.color.nc_incoming_text_mention_others); } messageString = DisplayUtils.searchAndColor(message.getText(), messageString, "@" + individualHashMap.get("name"), color); + } else if (individualHashMap.get("type").equals("file")) { + color = context.getResources().getColor(R.color + .colorPrimary); + messageString = DisplayUtils.searchAndColor(message.getText(), messageString, individualHashMap + .get("name"), color); + itemView.setOnClickListener(v -> { + Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(individualHashMap.get("link"))); + context.startActivity(browserIntent); + }); } } - } text.setText(messageString); diff --git a/app/src/main/java/com/nextcloud/talk/models/json/chat/ChatMessage.java b/app/src/main/java/com/nextcloud/talk/models/json/chat/ChatMessage.java index 25f7b00c3..32ee2c89d 100644 --- a/app/src/main/java/com/nextcloud/talk/models/json/chat/ChatMessage.java +++ b/app/src/main/java/com/nextcloud/talk/models/json/chat/ChatMessage.java @@ -57,7 +57,7 @@ public class ChatMessage implements IMessage, MessageContentType { USER_REMOVED, MODERATOR_PROMOTED, MODERATOR_DEMOTED, - + FILE_SHARED, } String baseUrl; diff --git a/app/src/main/java/com/nextcloud/talk/models/json/chat/ChatUtils.java b/app/src/main/java/com/nextcloud/talk/models/json/chat/ChatUtils.java index 2c3867c0a..f71b36895 100644 --- a/app/src/main/java/com/nextcloud/talk/models/json/chat/ChatUtils.java +++ b/app/src/main/java/com/nextcloud/talk/models/json/chat/ChatUtils.java @@ -31,6 +31,8 @@ public class ChatUtils { if (individualHashMap.get("type").equals("user") || individualHashMap.get("type").equals("guest")) { message = message.replaceAll("\\{" + key + "\\}", "@" + messageParameters.get(key).get("name")); + } else if (individualHashMap.get("type").equals("file")) { + message = message.replaceAll("\\{" + key + "\\}", messageParameters.get(key).get("name")); } } } diff --git a/app/src/main/java/com/nextcloud/talk/models/json/converters/EnumSystemMessageTypeConverter.java b/app/src/main/java/com/nextcloud/talk/models/json/converters/EnumSystemMessageTypeConverter.java index f7e759aee..59e1855f7 100644 --- a/app/src/main/java/com/nextcloud/talk/models/json/converters/EnumSystemMessageTypeConverter.java +++ b/app/src/main/java/com/nextcloud/talk/models/json/converters/EnumSystemMessageTypeConverter.java @@ -74,6 +74,8 @@ public class EnumSystemMessageTypeConverter extends StringBasedTypeConverter