From 489bc37c39989a2a14a747213f3b6478c7f2f9be Mon Sep 17 00:00:00 2001 From: Christian Schneppe Date: Mon, 30 Jan 2017 19:18:00 +0100 Subject: add button to resend failed messages --- .../java/de/pixart/messenger/ui/ConversationActivity.java | 2 +- .../java/de/pixart/messenger/ui/ConversationFragment.java | 7 +------ .../java/de/pixart/messenger/ui/adapter/MessageAdapter.java | 13 ++++++++++++- 3 files changed, 14 insertions(+), 8 deletions(-) (limited to 'src/main/java') diff --git a/src/main/java/de/pixart/messenger/ui/ConversationActivity.java b/src/main/java/de/pixart/messenger/ui/ConversationActivity.java index 0dfd7bc14..069985745 100644 --- a/src/main/java/de/pixart/messenger/ui/ConversationActivity.java +++ b/src/main/java/de/pixart/messenger/ui/ConversationActivity.java @@ -133,7 +133,7 @@ public class ConversationActivity extends XmppActivity private Conversation swipedConversation = null; private Conversation mSelectedConversation = null; private EnhancedListView listView; - private ConversationFragment mConversationFragment; + public ConversationFragment mConversationFragment; private ArrayAdapter listAdapter; diff --git a/src/main/java/de/pixart/messenger/ui/ConversationFragment.java b/src/main/java/de/pixart/messenger/ui/ConversationFragment.java index 5b17e7179..7bc1a3208 100644 --- a/src/main/java/de/pixart/messenger/ui/ConversationFragment.java +++ b/src/main/java/de/pixart/messenger/ui/ConversationFragment.java @@ -614,7 +614,6 @@ public class ConversationFragment extends Fragment implements EditMessage.Keyboa MenuItem retryDecryption = menu.findItem(R.id.retry_decryption); MenuItem correctMessage = menu.findItem(R.id.correct_message); MenuItem shareWith = menu.findItem(R.id.share_with); - MenuItem sendAgain = menu.findItem(R.id.send_again); MenuItem copyUrl = menu.findItem(R.id.copy_url); MenuItem downloadFile = menu.findItem(R.id.download_file); MenuItem cancelTransmission = menu.findItem(R.id.cancel_transmission); @@ -646,7 +645,6 @@ public class ConversationFragment extends Fragment implements EditMessage.Keyboa shareWith.setVisible(true); } if (m.getStatus() == Message.STATUS_SEND_FAILED) { - sendAgain.setVisible(true); } if (m.hasFileOnRemoteHost() || GeoHelper.isGeoUri(m.getBody()) @@ -695,9 +693,6 @@ public class ConversationFragment extends Fragment implements EditMessage.Keyboa case R.id.correct_message: correctMessage(selectedMessage); return true; - case R.id.send_again: - resendMessage(selectedMessage); - return true; case R.id.copy_url: copyUrl(selectedMessage); return true; @@ -792,7 +787,7 @@ public class ConversationFragment extends Fragment implements EditMessage.Keyboa } } - private void resendMessage(Message message) { + public void resendMessage(Message message) { if (message.getType() == Message.TYPE_FILE || message.getType() == Message.TYPE_IMAGE) { DownloadableFile file = activity.xmppConnectionService.getFileBackend().getFile(message); if (!file.exists()) { 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 385fa184b..e5f98ca4e 100644 --- a/src/main/java/de/pixart/messenger/ui/adapter/MessageAdapter.java +++ b/src/main/java/de/pixart/messenger/ui/adapter/MessageAdapter.java @@ -174,7 +174,8 @@ public class MessageAdapter extends ArrayAdapter implements CopyTextVie } } - private void displayStatus(ViewHolder viewHolder, Message message, int type, boolean darkBackground, boolean inValidSession) { + private void displayStatus(ViewHolder viewHolder, final Message message, int type, boolean darkBackground, boolean inValidSession) { + viewHolder.download_button.setVisibility(View.GONE); String filesize = null; String info = null; boolean error = false; @@ -243,6 +244,16 @@ public class MessageAdapter extends ArrayAdapter implements CopyTextVie } if (error && type == SENT) { viewHolder.time.setTextColor(activity.getWarningTextColor()); + viewHolder.download_button.setVisibility(View.VISIBLE); + viewHolder.download_button.setText(R.string.send_again); + viewHolder.download_button.setCompoundDrawablesWithIntrinsicBounds(R.drawable.ic_resend_grey600_48dp, 0, 0, 0); + viewHolder.download_button.setOnClickListener(new OnClickListener() { + final Message mMessage = message; + @Override + public void onClick(View v) { + activity.mConversationFragment.resendMessage(mMessage); + } + }); } else if (!message.isValidInSession() && type == RECEIVED) { viewHolder.time.setTextColor(activity.getUnencryptedTextColor()); } else { -- cgit v1.2.3