diff --git a/src/main/java/eu/siacs/conversations/ui/adapter/MessageAdapter.java b/src/main/java/eu/siacs/conversations/ui/adapter/MessageAdapter.java index 486ed2325fe7bb0ffe2af36b32d3e86a2cd31fff..2b51bd469587c52fd78fe9a63f0e8a333a5d1e6e 100644 --- a/src/main/java/eu/siacs/conversations/ui/adapter/MessageAdapter.java +++ b/src/main/java/eu/siacs/conversations/ui/adapter/MessageAdapter.java @@ -518,8 +518,8 @@ public class MessageAdapter extends ArrayAdapter { } } - private void displayDownloadableMessage(ViewHolder viewHolder, final Message message, String text, final boolean darkBackground) { - toggleWhisperInfo(viewHolder, message, darkBackground); + private void displayDownloadableMessage(ViewHolder viewHolder, final Message message, String text, final boolean darkBackground, final int type) { + displayTextMessage(viewHolder, message, darkBackground, type); viewHolder.image.setVisibility(View.GONE); viewHolder.audioPlayer.setVisibility(View.GONE); viewHolder.download_button.setVisibility(View.VISIBLE); @@ -527,8 +527,8 @@ public class MessageAdapter extends ArrayAdapter { viewHolder.download_button.setOnClickListener(v -> ConversationFragment.downloadFile(activity, message)); } - private void displayOpenableMessage(ViewHolder viewHolder, final Message message, final boolean darkBackground) { - toggleWhisperInfo(viewHolder, message, darkBackground); + private void displayOpenableMessage(ViewHolder viewHolder, final Message message, final boolean darkBackground, final int type) { + displayTextMessage(viewHolder, message, darkBackground, type); viewHolder.image.setVisibility(View.GONE); viewHolder.audioPlayer.setVisibility(View.GONE); viewHolder.download_button.setVisibility(View.VISIBLE); @@ -536,8 +536,8 @@ public class MessageAdapter extends ArrayAdapter { viewHolder.download_button.setOnClickListener(v -> openDownloadable(message)); } - private void displayLocationMessage(ViewHolder viewHolder, final Message message, final boolean darkBackground) { - toggleWhisperInfo(viewHolder, message, darkBackground); + private void displayLocationMessage(ViewHolder viewHolder, final Message message, final boolean darkBackground, final int type) { + displayTextMessage(viewHolder, message, darkBackground, type); viewHolder.image.setVisibility(View.GONE); viewHolder.audioPlayer.setVisibility(View.GONE); viewHolder.download_button.setVisibility(View.VISIBLE); @@ -545,8 +545,8 @@ public class MessageAdapter extends ArrayAdapter { viewHolder.download_button.setOnClickListener(v -> showLocation(message)); } - private void displayAudioMessage(ViewHolder viewHolder, Message message, boolean darkBackground) { - toggleWhisperInfo(viewHolder, message, darkBackground); + private void displayAudioMessage(ViewHolder viewHolder, Message message, boolean darkBackground, final int type) { + displayTextMessage(viewHolder, message, darkBackground, type); viewHolder.image.setVisibility(View.GONE); viewHolder.download_button.setVisibility(View.GONE); final RelativeLayout audioPlayer = viewHolder.audioPlayer; @@ -555,8 +555,8 @@ public class MessageAdapter extends ArrayAdapter { this.audioPlayer.init(audioPlayer, message); } - private void displayMediaPreviewMessage(ViewHolder viewHolder, final Message message, final boolean darkBackground) { - toggleWhisperInfo(viewHolder, message, darkBackground); + private void displayMediaPreviewMessage(ViewHolder viewHolder, final Message message, final boolean darkBackground, final int type) { + displayTextMessage(viewHolder, message, darkBackground, type); viewHolder.download_button.setVisibility(View.GONE); viewHolder.audioPlayer.setVisibility(View.GONE); viewHolder.image.setVisibility(View.VISIBLE); @@ -783,19 +783,19 @@ public class MessageAdapter extends ArrayAdapter { final boolean unInitiatedButKnownSize = MessageUtils.unInitiatedButKnownSize(message); if (unInitiatedButKnownSize || message.isDeleted() || (transferable != null && transferable.getStatus() != Transferable.STATUS_UPLOADING)) { if (unInitiatedButKnownSize || transferable != null && transferable.getStatus() == Transferable.STATUS_OFFER) { - displayDownloadableMessage(viewHolder, message, activity.getString(R.string.download_x_file, UIHelper.getFileDescriptionString(activity, message)), darkBackground); + displayDownloadableMessage(viewHolder, message, activity.getString(R.string.download_x_file, UIHelper.getFileDescriptionString(activity, message)), darkBackground, type); } else if (transferable != null && transferable.getStatus() == Transferable.STATUS_OFFER_CHECK_FILESIZE) { - displayDownloadableMessage(viewHolder, message, activity.getString(R.string.check_x_filesize, UIHelper.getFileDescriptionString(activity, message)), darkBackground); + displayDownloadableMessage(viewHolder, message, activity.getString(R.string.check_x_filesize, UIHelper.getFileDescriptionString(activity, message)), darkBackground, type); } else { displayInfoMessage(viewHolder, UIHelper.getMessagePreview(activity, message).first, darkBackground); } } else if (message.isFileOrImage() && message.getEncryption() != Message.ENCRYPTION_PGP && message.getEncryption() != Message.ENCRYPTION_DECRYPTION_FAILED) { if (message.getFileParams().width > 0 && message.getFileParams().height > 0) { - displayMediaPreviewMessage(viewHolder, message, darkBackground); + displayMediaPreviewMessage(viewHolder, message, darkBackground, type); } else if (message.getFileParams().runtime > 0) { - displayAudioMessage(viewHolder, message, darkBackground); + displayAudioMessage(viewHolder, message, darkBackground, type); } else { - displayOpenableMessage(viewHolder, message, darkBackground); + displayOpenableMessage(viewHolder, message, darkBackground, type); } } else if (message.getEncryption() == Message.ENCRYPTION_PGP) { if (account.isPgpDecryptionServiceConnected()) { @@ -817,24 +817,24 @@ public class MessageAdapter extends ArrayAdapter { displayInfoMessage(viewHolder, activity.getString(R.string.omemo_decryption_failed), darkBackground); } else { if (message.isGeoUri()) { - displayLocationMessage(viewHolder, message, darkBackground); + displayLocationMessage(viewHolder, message, darkBackground, type); } else if (message.bodyIsOnlyEmojis() && message.getType() != Message.TYPE_PRIVATE) { displayEmojiMessage(viewHolder, message.getBody().trim(), darkBackground); } else if (message.treatAsDownloadable()) { try { - final URI uri = new URI(message.getBody()); + final URI uri = message.getOob(); displayDownloadableMessage(viewHolder, message, activity.getString(R.string.check_x_filesize_on_host, UIHelper.getFileDescriptionString(activity, message), uri.getHost()), - darkBackground); + darkBackground, type); } catch (Exception e) { displayDownloadableMessage(viewHolder, message, activity.getString(R.string.check_x_filesize, UIHelper.getFileDescriptionString(activity, message)), - darkBackground); + darkBackground, type); } } else { displayTextMessage(viewHolder, message, darkBackground, type);