diff options
author | Christian Schneppe <christian@pix-art.de> | 2019-02-21 19:45:12 +0100 |
---|---|---|
committer | Christian Schneppe <christian@pix-art.de> | 2019-02-21 19:45:12 +0100 |
commit | a5019812fbdaf57096b8483778b610fd3b0d1887 (patch) | |
tree | a435332fd2188c7a37163e5f3516d9e012480f82 /src/main/java/de/pixart/messenger/ui | |
parent | 485609f30cf8771b5594c951029847ee6c0b634e (diff) |
show file too large instead of generic delivery failed
Diffstat (limited to '')
-rw-r--r-- | src/main/java/de/pixart/messenger/ui/ConversationFragment.java | 12 | ||||
-rw-r--r-- | src/main/java/de/pixart/messenger/ui/adapter/MessageAdapter.java | 17 |
2 files changed, 25 insertions, 4 deletions
diff --git a/src/main/java/de/pixart/messenger/ui/ConversationFragment.java b/src/main/java/de/pixart/messenger/ui/ConversationFragment.java index 4c97fb129..5f61fbf47 100644 --- a/src/main/java/de/pixart/messenger/ui/ConversationFragment.java +++ b/src/main/java/de/pixart/messenger/ui/ConversationFragment.java @@ -1837,9 +1837,17 @@ public class ConversationFragment extends XmppFragment implements EditMessage.Ke private void showErrorMessage(final Message message) { AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); builder.setTitle(R.string.error_message); - builder.setMessage(message.getErrorMessage()); + final String errorMessage = message.getErrorMessage(); + final String[] errorMessageParts = errorMessage == null ? new String[0] : errorMessage.split("\\u001f"); + final String displayError; + if (errorMessageParts.length == 2) { + displayError = errorMessageParts[1]; + } else { + displayError = errorMessage; + } + builder.setMessage(displayError); builder.setNegativeButton(R.string.copy_to_clipboard, (dialog, which) -> { - activity.copyTextToClipboard(message.getErrorMessage(), R.string.error_message); + activity.copyTextToClipboard(displayError, R.string.error_message); Toast.makeText(activity, R.string.error_message_copied_to_clipboard, Toast.LENGTH_SHORT).show(); }); builder.setPositiveButton(R.string.ok, null); diff --git a/src/main/java/de/pixart/messenger/ui/adapter/MessageAdapter.java b/src/main/java/de/pixart/messenger/ui/adapter/MessageAdapter.java index 8b93793c3..10eb977a7 100644 --- a/src/main/java/de/pixart/messenger/ui/adapter/MessageAdapter.java +++ b/src/main/java/de/pixart/messenger/ui/adapter/MessageAdapter.java @@ -260,10 +260,23 @@ public class MessageAdapter extends ArrayAdapter<Message> implements CopyTextVie if (isResendable && file.exists()) { info = getContext().getString(R.string.send_failed_resend); } else { - if (Message.ERROR_MESSAGE_CANCELLED.equals(message.getErrorMessage())) { + final String errorMessage = message.getErrorMessage(); + if (Message.ERROR_MESSAGE_CANCELLED.equals(errorMessage)) { info = getContext().getString(R.string.cancelled); } else { - info = getContext().getString(R.string.send_failed); + final String[] errorParts = errorMessage.split("\\u001f", 2); + if (errorParts.length == 2) { + switch (errorParts[0]) { + case "file-too-large": + info = getContext().getString(R.string.file_too_large); + break; + default: + info = getContext().getString(R.string.send_failed); + break; + } + } else { + info = getContext().getString(R.string.send_failed); + } } } error = true; |