mirror of
https://github.com/nextcloud/talk-android
synced 2025-06-23 21:50:31 +01:00
Improve previews
This commit is contained in:
parent
2d3e255f97
commit
b265994031
@ -27,7 +27,6 @@ import android.content.Intent
|
|||||||
import android.graphics.drawable.Drawable
|
import android.graphics.drawable.Drawable
|
||||||
import android.graphics.drawable.LayerDrawable
|
import android.graphics.drawable.LayerDrawable
|
||||||
import android.net.Uri
|
import android.net.Uri
|
||||||
import android.os.Handler
|
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import androidx.emoji.widget.EmojiTextView
|
import androidx.emoji.widget.EmojiTextView
|
||||||
import butterknife.BindView
|
import butterknife.BindView
|
||||||
@ -89,6 +88,7 @@ class MagicPreviewMessageViewHolder(itemView: View?) : IncomingImageMessageViewH
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (message.messageType == SINGLE_NC_ATTACHMENT_MESSAGE) {
|
if (message.messageType == SINGLE_NC_ATTACHMENT_MESSAGE) {
|
||||||
// it's a preview for a Nextcloud share
|
// it's a preview for a Nextcloud share
|
||||||
|
|
||||||
@ -99,8 +99,9 @@ class MagicPreviewMessageViewHolder(itemView: View?) : IncomingImageMessageViewH
|
|||||||
)
|
)
|
||||||
|
|
||||||
if (message.getSelectedIndividualHashMap().containsKey("mimetype")) {
|
if (message.getSelectedIndividualHashMap().containsKey("mimetype")) {
|
||||||
// we now handle this directly in imageloader
|
if (message.imageUrl == "no-preview") {
|
||||||
//image.load(getDrawableResourceIdForMimeType(message.getSelectedIndividualHashMap().get ("mimetype")))
|
image.load(getDrawableResourceIdForMimeType(message.getSelectedIndividualHashMap()["mimetype"]))
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
fetchFileInformation(
|
fetchFileInformation(
|
||||||
"/" + message.getSelectedIndividualHashMap()["path"],
|
"/" + message.getSelectedIndividualHashMap()["path"],
|
||||||
@ -187,14 +188,11 @@ class MagicPreviewMessageViewHolder(itemView: View?) : IncomingImageMessageViewH
|
|||||||
if (davResponse.data != null) {
|
if (davResponse.data != null) {
|
||||||
val browserFileList =
|
val browserFileList =
|
||||||
davResponse.data as List<BrowserFile>
|
davResponse.data as List<BrowserFile>
|
||||||
if (!browserFileList.isEmpty()) {
|
if (browserFileList.isNotEmpty()) {
|
||||||
Handler(context.mainLooper)
|
|
||||||
.post {
|
|
||||||
image.load(getDrawableResourceIdForMimeType(browserFileList[0].mimeType))
|
image.load(getDrawableResourceIdForMimeType(browserFileList[0].mimeType))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
override fun onError(e: Throwable) {}
|
override fun onError(e: Throwable) {}
|
||||||
})
|
})
|
||||||
@ -202,10 +200,13 @@ class MagicPreviewMessageViewHolder(itemView: View?) : IncomingImageMessageViewH
|
|||||||
|
|
||||||
override fun getPayloadForImageLoader(message: ChatMessage): Any {
|
override fun getPayloadForImageLoader(message: ChatMessage): Any {
|
||||||
val map = HashMap<String, Any>()
|
val map = HashMap<String, Any>()
|
||||||
|
// used for setting a placeholder
|
||||||
if (message.getSelectedIndividualHashMap().containsKey("mimetype")) {
|
if (message.getSelectedIndividualHashMap().containsKey("mimetype")) {
|
||||||
map["mimetype"] = message.getSelectedIndividualHashMap().get("mimetype")!!
|
map["mimetype"] = message.getSelectedIndividualHashMap()["mimetype"]!!
|
||||||
}
|
}
|
||||||
|
|
||||||
|
map["hasPreview"] = message.selectedIndividualHashMap.getOrDefault("has-preview", false)
|
||||||
|
|
||||||
return ImageLoaderPayload(map)
|
return ImageLoaderPayload(map)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -364,6 +364,7 @@ class ChatController(args: Bundle) : BaseController(), MessagesListAdapter
|
|||||||
adapter = MessagesListAdapter(
|
adapter = MessagesListAdapter(
|
||||||
conversationUser?.userId, messageHolders, ImageLoader { imageView, url, payload ->
|
conversationUser?.userId, messageHolders, ImageLoader { imageView, url, payload ->
|
||||||
|
|
||||||
|
if (url != "no-preview") {
|
||||||
imageView.load(url) {
|
imageView.load(url) {
|
||||||
if (conversationUser != null && url!!.startsWith(conversationUser.baseUrl) && (url.contains(
|
if (conversationUser != null && url!!.startsWith(conversationUser.baseUrl) && (url.contains(
|
||||||
"index.php/core/preview?fileId=") || url.contains("/avatar/"))) {
|
"index.php/core/preview?fileId=") || url.contains("/avatar/"))) {
|
||||||
@ -383,6 +384,7 @@ class ChatController(args: Bundle) : BaseController(), MessagesListAdapter
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
})
|
})
|
||||||
} else {
|
} else {
|
||||||
messagesListView?.visibility = View.VISIBLE
|
messagesListView?.visibility = View.VISIBLE
|
||||||
|
@ -148,7 +148,13 @@ public class ChatMessage implements IMessage, MessageContentType, MessageContent
|
|||||||
Map<String, String> individualHashMap = messageParameters.get(key);
|
Map<String, String> individualHashMap = messageParameters.get(key);
|
||||||
if (individualHashMap.get("type").equals("file")) {
|
if (individualHashMap.get("type").equals("file")) {
|
||||||
selectedIndividualHashMap = individualHashMap;
|
selectedIndividualHashMap = individualHashMap;
|
||||||
return (ApiUtils.getUrlForFilePreviewWithFileId(getActiveUser().getBaseUrl(),
|
if (selectedIndividualHashMap.containsKey("preview-available")) {
|
||||||
|
if (selectedIndividualHashMap.get("preview-available").equals("no")) {
|
||||||
|
return "no-preview";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return (ApiUtils.getUrlForFilePreviewWithFileId(activeUser.getBaseUrl(),
|
||||||
individualHashMap.get("id"), NextcloudTalkApplication.Companion.getSharedApplication()
|
individualHashMap.get("id"), NextcloudTalkApplication.Companion.getSharedApplication()
|
||||||
.getResources()
|
.getResources()
|
||||||
.getDimensionPixelSize(R.dimen.maximum_file_preview_size)));
|
.getDimensionPixelSize(R.dimen.maximum_file_preview_size)));
|
||||||
@ -157,7 +163,7 @@ public class ChatMessage implements IMessage, MessageContentType, MessageContent
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (!messageTypesToIgnore.contains(getMessageType()) && isLinkPreviewAllowed) {
|
if (!messageTypesToIgnore.contains(getMessageType()) && isLinkPreviewAllowed) {
|
||||||
return getMessage().trim();
|
return message.trim();
|
||||||
}
|
}
|
||||||
|
|
||||||
return null;
|
return null;
|
||||||
|
Loading…
Reference in New Issue
Block a user