added message option to download images

iNPUTmice created

Change summary

res/menu/message_context.xml                            |  5 +++
src/eu/siacs/conversations/ui/ConversationFragment.java | 14 +++++++++++
src/eu/siacs/conversations/ui/EditAccountActivity.java  |  2 -
3 files changed, 18 insertions(+), 3 deletions(-)

Detailed changes

res/menu/message_context.xml 🔗

@@ -9,9 +9,12 @@
         android:title="@string/share_image"/>
     <item
         android:id="@+id/copy_url"
-        android:title="@string/copy_original_url" />
+        android:title="@string/copy_original_url"/>
     <item
         android:id="@+id/send_again"
         android:title="@string/send_again"/>
+    <item
+        android:id="@+id/download_image"
+        android:title="@string/download_image"/>
 
 </menu>

src/eu/siacs/conversations/ui/ConversationFragment.java 🔗

@@ -355,6 +355,7 @@ public class ConversationFragment extends Fragment {
 			MenuItem shareImage = menu.findItem(R.id.share_image);
 			MenuItem sendAgain = menu.findItem(R.id.send_again);
 			MenuItem copyUrl = menu.findItem(R.id.copy_url);
+			MenuItem downloadImage = menu.findItem(R.id.download_image);
 			if (this.selectedMessage.getType() != Message.TYPE_TEXT
 					|| this.selectedMessage.getDownloadable() != null) {
 				copyText.setVisible(false);
@@ -372,6 +373,12 @@ public class ConversationFragment extends Fragment {
 					|| this.selectedMessage.getImageParams().url == null) {
 				copyUrl.setVisible(false);
 			}
+
+			if (this.selectedMessage.getType() != Message.TYPE_TEXT
+					|| this.selectedMessage.getDownloadable() != null
+					|| !this.selectedMessage.bodyContainsDownloadable()) {
+				downloadImage.setVisible(false);
+			}
 		}
 	}
 
@@ -390,6 +397,8 @@ public class ConversationFragment extends Fragment {
 		case R.id.copy_url:
 			copyUrl(selectedMessage);
 			return true;
+		case R.id.download_image:
+			downloadImage(selectedMessage);
 		default:
 			return super.onContextItemSelected(item);
 		}
@@ -427,6 +436,11 @@ public class ConversationFragment extends Fragment {
 		}
 	}
 
+	private void downloadImage(Message message) {
+		activity.xmppConnectionService.getHttpConnectionManager()
+				.createNewConnection(message);
+	}
+
 	protected void privateMessageWith(String counterpart) {
 		this.mEditMessage.setText("");
 		this.conversation.setNextPresence(counterpart);

src/eu/siacs/conversations/ui/EditAccountActivity.java 🔗

@@ -1,8 +1,6 @@
 package eu.siacs.conversations.ui;
 
 import android.app.PendingIntent;
-import android.content.ClipData;
-import android.content.ClipboardManager;
 import android.content.Intent;
 import android.os.Bundle;
 import android.text.Editable;