renamed downloadable to transferable
This commit is contained in:
parent
925801c14e
commit
ce79f4bbe3
|
@ -70,7 +70,7 @@ public class Message extends AbstractEntity {
|
|||
protected String remoteMsgId = null;
|
||||
protected String serverMsgId = null;
|
||||
protected Conversation conversation = null;
|
||||
protected Downloadable downloadable = null;
|
||||
protected Transferable transferable = null;
|
||||
private Message mNextMessage = null;
|
||||
private Message mPreviousMessage = null;
|
||||
|
||||
|
@ -308,12 +308,12 @@ public class Message extends AbstractEntity {
|
|||
this.trueCounterpart = trueCounterpart;
|
||||
}
|
||||
|
||||
public Downloadable getDownloadable() {
|
||||
return this.downloadable;
|
||||
public Transferable getTransferable() {
|
||||
return this.transferable;
|
||||
}
|
||||
|
||||
public void setDownloadable(Downloadable downloadable) {
|
||||
this.downloadable = downloadable;
|
||||
public void setTransferable(Transferable transferable) {
|
||||
this.transferable = transferable;
|
||||
}
|
||||
|
||||
public boolean equals(Message message) {
|
||||
|
@ -364,8 +364,8 @@ public class Message extends AbstractEntity {
|
|||
public boolean mergeable(final Message message) {
|
||||
return message != null &&
|
||||
(message.getType() == Message.TYPE_TEXT &&
|
||||
this.getDownloadable() == null &&
|
||||
message.getDownloadable() == null &&
|
||||
this.getTransferable() == null &&
|
||||
message.getTransferable() == null &&
|
||||
message.getEncryption() != Message.ENCRYPTION_PGP &&
|
||||
this.getType() == message.getType() &&
|
||||
//this.getStatus() == message.getStatus() &&
|
||||
|
@ -471,7 +471,7 @@ public class Message extends AbstractEntity {
|
|||
if (extensionParts.length == 2) {
|
||||
return extensionParts[extensionParts.length - 1];
|
||||
} else if (extensionParts.length == 3 && Arrays
|
||||
.asList(Downloadable.VALID_CRYPTO_EXTENSIONS)
|
||||
.asList(Transferable.VALID_CRYPTO_EXTENSIONS)
|
||||
.contains(extensionParts[extensionParts.length - 1])) {
|
||||
return extensionParts[extensionParts.length -2];
|
||||
}
|
||||
|
@ -517,8 +517,8 @@ public class Message extends AbstractEntity {
|
|||
} else {
|
||||
return Decision.NEVER;
|
||||
}
|
||||
} else if (Arrays.asList(Downloadable.VALID_IMAGE_EXTENSIONS).contains(extension)
|
||||
|| Arrays.asList(Downloadable.WELL_KNOWN_EXTENSIONS).contains(extension)) {
|
||||
} else if (Arrays.asList(Transferable.VALID_IMAGE_EXTENSIONS).contains(extension)
|
||||
|| Arrays.asList(Transferable.WELL_KNOWN_EXTENSIONS).contains(extension)) {
|
||||
return Decision.SHOULD;
|
||||
} else {
|
||||
return Decision.NEVER;
|
||||
|
@ -539,8 +539,8 @@ public class Message extends AbstractEntity {
|
|||
return params;
|
||||
}
|
||||
params = new FileParams();
|
||||
if (this.downloadable != null) {
|
||||
params.size = this.downloadable.getFileSize();
|
||||
if (this.transferable != null) {
|
||||
params.size = this.transferable.getFileSize();
|
||||
}
|
||||
if (body == null) {
|
||||
return params;
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
package eu.siacs.conversations.entities;
|
||||
|
||||
public interface Downloadable {
|
||||
public interface Transferable {
|
||||
|
||||
String[] VALID_IMAGE_EXTENSIONS = {"webp", "jpeg", "jpg", "png", "jpe"};
|
||||
String[] VALID_CRYPTO_EXTENSIONS = {"pgp", "gpg", "otr"};
|
|
@ -1,10 +1,10 @@
|
|||
package eu.siacs.conversations.entities;
|
||||
|
||||
public class DownloadablePlaceholder implements Downloadable {
|
||||
public class TransferablePlaceholder implements Transferable {
|
||||
|
||||
private int status;
|
||||
|
||||
public DownloadablePlaceholder(int status) {
|
||||
public TransferablePlaceholder(int status) {
|
||||
this.status = status;
|
||||
}
|
||||
@Override
|
|
@ -5,34 +5,26 @@ import android.net.Uri;
|
|||
import android.os.SystemClock;
|
||||
import android.util.Log;
|
||||
|
||||
import org.apache.http.conn.ssl.StrictHostnameVerifier;
|
||||
|
||||
import java.io.BufferedInputStream;
|
||||
import java.io.IOException;
|
||||
import java.io.OutputStream;
|
||||
import java.net.HttpURLConnection;
|
||||
import java.net.MalformedURLException;
|
||||
import java.net.URL;
|
||||
import java.security.KeyManagementException;
|
||||
import java.security.NoSuchAlgorithmException;
|
||||
import java.util.Arrays;
|
||||
|
||||
import javax.net.ssl.HostnameVerifier;
|
||||
import javax.net.ssl.HttpsURLConnection;
|
||||
import javax.net.ssl.SSLContext;
|
||||
import javax.net.ssl.SSLHandshakeException;
|
||||
import javax.net.ssl.SSLSocketFactory;
|
||||
import javax.net.ssl.X509TrustManager;
|
||||
|
||||
import eu.siacs.conversations.Config;
|
||||
import eu.siacs.conversations.R;
|
||||
import eu.siacs.conversations.entities.Downloadable;
|
||||
import eu.siacs.conversations.entities.Transferable;
|
||||
import eu.siacs.conversations.entities.DownloadableFile;
|
||||
import eu.siacs.conversations.entities.Message;
|
||||
import eu.siacs.conversations.services.XmppConnectionService;
|
||||
import eu.siacs.conversations.utils.CryptoHelper;
|
||||
|
||||
public class HttpConnection implements Downloadable {
|
||||
public class HttpConnection implements Transferable {
|
||||
|
||||
private HttpConnectionManager mHttpConnectionManager;
|
||||
private XmppConnectionService mXmppConnectionService;
|
||||
|
@ -40,7 +32,7 @@ public class HttpConnection implements Downloadable {
|
|||
private URL mUrl;
|
||||
private Message message;
|
||||
private DownloadableFile file;
|
||||
private int mStatus = Downloadable.STATUS_UNKNOWN;
|
||||
private int mStatus = Transferable.STATUS_UNKNOWN;
|
||||
private boolean acceptedAutomatically = false;
|
||||
private int mProgress = 0;
|
||||
private long mLastGuiRefresh = 0;
|
||||
|
@ -65,12 +57,12 @@ public class HttpConnection implements Downloadable {
|
|||
}
|
||||
|
||||
public void init(Message message) {
|
||||
init(message,false);
|
||||
init(message, false);
|
||||
}
|
||||
|
||||
public void init(Message message, boolean interactive) {
|
||||
this.message = message;
|
||||
this.message.setDownloadable(this);
|
||||
this.message.setTransferable(this);
|
||||
try {
|
||||
mUrl = new URL(message.getBody());
|
||||
String[] parts = mUrl.getPath().toLowerCase().split("\\.");
|
||||
|
@ -110,7 +102,7 @@ public class HttpConnection implements Downloadable {
|
|||
|
||||
public void cancel() {
|
||||
mHttpConnectionManager.finishConnection(this);
|
||||
message.setDownloadable(null);
|
||||
message.setTransferable(null);
|
||||
mXmppConnectionService.updateConversationUi();
|
||||
}
|
||||
|
||||
|
@ -118,7 +110,7 @@ public class HttpConnection implements Downloadable {
|
|||
Intent intent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE);
|
||||
intent.setData(Uri.fromFile(file));
|
||||
mXmppConnectionService.sendBroadcast(intent);
|
||||
message.setDownloadable(null);
|
||||
message.setTransferable(null);
|
||||
mHttpConnectionManager.finishConnection(this);
|
||||
mXmppConnectionService.updateConversationUi();
|
||||
if (acceptedAutomatically) {
|
||||
|
|
|
@ -14,7 +14,7 @@ import javax.net.ssl.HttpsURLConnection;
|
|||
|
||||
import eu.siacs.conversations.Config;
|
||||
import eu.siacs.conversations.entities.Account;
|
||||
import eu.siacs.conversations.entities.Downloadable;
|
||||
import eu.siacs.conversations.entities.Transferable;
|
||||
import eu.siacs.conversations.entities.DownloadableFile;
|
||||
import eu.siacs.conversations.entities.Message;
|
||||
import eu.siacs.conversations.persistance.FileBackend;
|
||||
|
@ -27,7 +27,7 @@ import eu.siacs.conversations.xmpp.OnIqPacketReceived;
|
|||
import eu.siacs.conversations.xmpp.jid.Jid;
|
||||
import eu.siacs.conversations.xmpp.stanzas.IqPacket;
|
||||
|
||||
public class HttpUploadConnection implements Downloadable {
|
||||
public class HttpUploadConnection implements Transferable {
|
||||
|
||||
private HttpConnectionManager mHttpConnectionManager;
|
||||
private XmppConnectionService mXmppConnectionService;
|
||||
|
@ -76,13 +76,13 @@ public class HttpUploadConnection implements Downloadable {
|
|||
|
||||
private void fail() {
|
||||
mHttpConnectionManager.finishUploadConnection(this);
|
||||
message.setDownloadable(null);
|
||||
message.setTransferable(null);
|
||||
mXmppConnectionService.markMessage(message,Message.STATUS_SEND_FAILED);
|
||||
}
|
||||
|
||||
public void init(Message message) {
|
||||
this.message = message;
|
||||
message.setDownloadable(this);
|
||||
message.setTransferable(this);
|
||||
mXmppConnectionService.markMessage(message,Message.STATUS_UNSEND);
|
||||
this.account = message.getConversation().getAccount();
|
||||
this.file = mXmppConnectionService.getFileBackend().getFile(message, false);
|
||||
|
@ -164,7 +164,7 @@ public class HttpUploadConnection implements Downloadable {
|
|||
mGetUrl = new URL(mGetUrl.toString() + "#" + CryptoHelper.bytesToHex(key));
|
||||
}
|
||||
mXmppConnectionService.getFileBackend().updateFileParams(message, mGetUrl);
|
||||
message.setDownloadable(null);
|
||||
message.setTransferable(null);
|
||||
message.setCounterpart(message.getConversation().getJid().toBareJid());
|
||||
if (message.getEncryption() == Message.ENCRYPTION_DECRYPTED) {
|
||||
mXmppConnectionService.getPgpEngine().encrypt(message, new UiCallback<Message>() {
|
||||
|
|
|
@ -33,7 +33,7 @@ import android.webkit.MimeTypeMap;
|
|||
|
||||
import eu.siacs.conversations.Config;
|
||||
import eu.siacs.conversations.R;
|
||||
import eu.siacs.conversations.entities.Downloadable;
|
||||
import eu.siacs.conversations.entities.Transferable;
|
||||
import eu.siacs.conversations.entities.DownloadableFile;
|
||||
import eu.siacs.conversations.entities.Message;
|
||||
import eu.siacs.conversations.services.XmppConnectionService;
|
||||
|
@ -80,7 +80,7 @@ public class FileBackend {
|
|||
if (path.startsWith("/")) {
|
||||
return new DownloadableFile(path);
|
||||
} else {
|
||||
if (Arrays.asList(Downloadable.VALID_IMAGE_EXTENSIONS).contains(extension)) {
|
||||
if (Arrays.asList(Transferable.VALID_IMAGE_EXTENSIONS).contains(extension)) {
|
||||
return new DownloadableFile(getConversationsFileDirectory() + path);
|
||||
} else {
|
||||
return new DownloadableFile(getConversationsImageDirectory() + path);
|
||||
|
|
|
@ -18,7 +18,6 @@ import android.support.v4.app.NotificationCompat.Builder;
|
|||
import android.support.v4.app.TaskStackBuilder;
|
||||
import android.text.Html;
|
||||
import android.util.DisplayMetrics;
|
||||
import android.util.Log;
|
||||
|
||||
import org.json.JSONArray;
|
||||
import org.json.JSONObject;
|
||||
|
@ -42,7 +41,6 @@ import eu.siacs.conversations.ui.ManageAccountActivity;
|
|||
import eu.siacs.conversations.ui.TimePreference;
|
||||
import eu.siacs.conversations.utils.GeoHelper;
|
||||
import eu.siacs.conversations.utils.UIHelper;
|
||||
import eu.siacs.conversations.xmpp.XmppConnection;
|
||||
|
||||
public class NotificationService {
|
||||
|
||||
|
@ -303,7 +301,7 @@ public class NotificationService {
|
|||
final ArrayList<Message> tmp = new ArrayList<>();
|
||||
for (final Message msg : messages) {
|
||||
if (msg.getType() == Message.TYPE_TEXT
|
||||
&& msg.getDownloadable() == null) {
|
||||
&& msg.getTransferable() == null) {
|
||||
tmp.add(msg);
|
||||
}
|
||||
}
|
||||
|
@ -335,7 +333,7 @@ public class NotificationService {
|
|||
private Message getImage(final Iterable<Message> messages) {
|
||||
for (final Message message : messages) {
|
||||
if (message.getType() == Message.TYPE_IMAGE
|
||||
&& message.getDownloadable() == null
|
||||
&& message.getTransferable() == null
|
||||
&& message.getEncryption() != Message.ENCRYPTION_PGP) {
|
||||
return message;
|
||||
}
|
||||
|
@ -346,7 +344,7 @@ public class NotificationService {
|
|||
private Message getFirstDownloadableMessage(final Iterable<Message> messages) {
|
||||
for (final Message message : messages) {
|
||||
if ((message.getType() == Message.TYPE_FILE || message.getType() == Message.TYPE_IMAGE) &&
|
||||
message.getDownloadable() != null) {
|
||||
message.getTransferable() != null) {
|
||||
return message;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -57,12 +57,11 @@ import eu.siacs.conversations.entities.Blockable;
|
|||
import eu.siacs.conversations.entities.Bookmark;
|
||||
import eu.siacs.conversations.entities.Contact;
|
||||
import eu.siacs.conversations.entities.Conversation;
|
||||
import eu.siacs.conversations.entities.Downloadable;
|
||||
import eu.siacs.conversations.entities.DownloadablePlaceholder;
|
||||
import eu.siacs.conversations.entities.Transferable;
|
||||
import eu.siacs.conversations.entities.TransferablePlaceholder;
|
||||
import eu.siacs.conversations.entities.Message;
|
||||
import eu.siacs.conversations.entities.MucOptions;
|
||||
import eu.siacs.conversations.entities.MucOptions.OnRenameListener;
|
||||
import eu.siacs.conversations.entities.Presences;
|
||||
import eu.siacs.conversations.generator.IqGenerator;
|
||||
import eu.siacs.conversations.generator.MessageGenerator;
|
||||
import eu.siacs.conversations.generator.PresenceGenerator;
|
||||
|
@ -975,7 +974,7 @@ public class XmppConnectionService extends Service implements OnPhoneContactsLoa
|
|||
@Override
|
||||
public void onMessageFound(Message message) {
|
||||
if (!getFileBackend().isFileAvailable(message)) {
|
||||
message.setDownloadable(new DownloadablePlaceholder(Downloadable.STATUS_DELETED));
|
||||
message.setTransferable(new TransferablePlaceholder(Transferable.STATUS_DELETED));
|
||||
}
|
||||
}
|
||||
});
|
||||
|
@ -986,7 +985,7 @@ public class XmppConnectionService extends Service implements OnPhoneContactsLoa
|
|||
Message message = conversation.findMessageWithFileAndUuid(uuid);
|
||||
if (message != null) {
|
||||
if (!getFileBackend().isFileAvailable(message)) {
|
||||
message.setDownloadable(new DownloadablePlaceholder(Downloadable.STATUS_DELETED));
|
||||
message.setTransferable(new TransferablePlaceholder(Transferable.STATUS_DELETED));
|
||||
updateConversationUi();
|
||||
}
|
||||
return;
|
||||
|
|
|
@ -45,9 +45,9 @@ import eu.siacs.conversations.crypto.PgpEngine;
|
|||
import eu.siacs.conversations.entities.Account;
|
||||
import eu.siacs.conversations.entities.Contact;
|
||||
import eu.siacs.conversations.entities.Conversation;
|
||||
import eu.siacs.conversations.entities.Downloadable;
|
||||
import eu.siacs.conversations.entities.Transferable;
|
||||
import eu.siacs.conversations.entities.DownloadableFile;
|
||||
import eu.siacs.conversations.entities.DownloadablePlaceholder;
|
||||
import eu.siacs.conversations.entities.TransferablePlaceholder;
|
||||
import eu.siacs.conversations.entities.Message;
|
||||
import eu.siacs.conversations.entities.MucOptions;
|
||||
import eu.siacs.conversations.entities.Presences;
|
||||
|
@ -439,14 +439,14 @@ public class ConversationFragment extends Fragment implements EditMessage.Keyboa
|
|||
MenuItem downloadFile = menu.findItem(R.id.download_file);
|
||||
MenuItem cancelTransmission = menu.findItem(R.id.cancel_transmission);
|
||||
if ((m.getType() == Message.TYPE_TEXT || m.getType() == Message.TYPE_PRIVATE)
|
||||
&& m.getDownloadable() == null
|
||||
&& m.getTransferable() == null
|
||||
&& !GeoHelper.isGeoUri(m.getBody())
|
||||
&& m.treatAsDownloadable() != Message.Decision.MUST) {
|
||||
copyText.setVisible(true);
|
||||
}
|
||||
if ((m.getType() != Message.TYPE_TEXT
|
||||
&& m.getType() != Message.TYPE_PRIVATE
|
||||
&& m.getDownloadable() == null)
|
||||
&& m.getTransferable() == null)
|
||||
|| (GeoHelper.isGeoUri(m.getBody()))) {
|
||||
shareWith.setVisible(true);
|
||||
}
|
||||
|
@ -458,11 +458,11 @@ public class ConversationFragment extends Fragment implements EditMessage.Keyboa
|
|||
|| m.treatAsDownloadable() == Message.Decision.MUST) {
|
||||
copyUrl.setVisible(true);
|
||||
}
|
||||
if (m.getType() == Message.TYPE_TEXT && m.getDownloadable() == null && m.treatAsDownloadable() != Message.Decision.NEVER) {
|
||||
if (m.getType() == Message.TYPE_TEXT && m.getTransferable() == null && m.treatAsDownloadable() != Message.Decision.NEVER) {
|
||||
downloadFile.setVisible(true);
|
||||
downloadFile.setTitle(activity.getString(R.string.download_x_file,UIHelper.getFileDescriptionString(activity, m)));
|
||||
}
|
||||
if ((m.getDownloadable() != null && !(m.getDownloadable() instanceof DownloadablePlaceholder))
|
||||
if ((m.getTransferable() != null && !(m.getTransferable() instanceof TransferablePlaceholder))
|
||||
|| (m.isFileOrImage() && (m.getStatus() == Message.STATUS_WAITING
|
||||
|| m.getStatus() == Message.STATUS_OFFERED))) {
|
||||
cancelTransmission.setVisible(true);
|
||||
|
@ -529,7 +529,7 @@ public class ConversationFragment extends Fragment implements EditMessage.Keyboa
|
|||
DownloadableFile file = activity.xmppConnectionService.getFileBackend().getFile(message);
|
||||
if (!file.exists()) {
|
||||
Toast.makeText(activity, R.string.file_deleted, Toast.LENGTH_SHORT).show();
|
||||
message.setDownloadable(new DownloadablePlaceholder(Downloadable.STATUS_DELETED));
|
||||
message.setTransferable(new TransferablePlaceholder(Transferable.STATUS_DELETED));
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
@ -561,9 +561,9 @@ public class ConversationFragment extends Fragment implements EditMessage.Keyboa
|
|||
}
|
||||
|
||||
private void cancelTransmission(Message message) {
|
||||
Downloadable downloadable = message.getDownloadable();
|
||||
if (downloadable != null) {
|
||||
downloadable.cancel();
|
||||
Transferable transferable = message.getTransferable();
|
||||
if (transferable != null) {
|
||||
transferable.cancel();
|
||||
} else {
|
||||
activity.xmppConnectionService.markMessage(message, Message.STATUS_SEND_FAILED);
|
||||
}
|
||||
|
@ -757,7 +757,7 @@ public class ConversationFragment extends Fragment implements EditMessage.Keyboa
|
|||
if (message.getEncryption() == Message.ENCRYPTION_PGP
|
||||
&& (message.getStatus() == Message.STATUS_RECEIVED || message
|
||||
.getStatus() >= Message.STATUS_SEND)
|
||||
&& message.getDownloadable() == null) {
|
||||
&& message.getTransferable() == null) {
|
||||
if (!mEncryptedMessages.contains(message)) {
|
||||
mEncryptedMessages.add(message);
|
||||
}
|
||||
|
|
|
@ -21,7 +21,7 @@ import java.util.concurrent.RejectedExecutionException;
|
|||
|
||||
import eu.siacs.conversations.R;
|
||||
import eu.siacs.conversations.entities.Conversation;
|
||||
import eu.siacs.conversations.entities.Downloadable;
|
||||
import eu.siacs.conversations.entities.Transferable;
|
||||
import eu.siacs.conversations.entities.Message;
|
||||
import eu.siacs.conversations.ui.ConversationActivity;
|
||||
import eu.siacs.conversations.ui.XmppActivity;
|
||||
|
@ -69,8 +69,8 @@ public class ConversationAdapter extends ArrayAdapter<Conversation> {
|
|||
}
|
||||
|
||||
if (message.getFileParams().width > 0
|
||||
&& (message.getDownloadable() == null
|
||||
|| message.getDownloadable().getStatus() != Downloadable.STATUS_DELETED)) {
|
||||
&& (message.getTransferable() == null
|
||||
|| message.getTransferable().getStatus() != Transferable.STATUS_DELETED)) {
|
||||
mLastMessage.setVisibility(View.GONE);
|
||||
imagePreview.setVisibility(View.VISIBLE);
|
||||
activity.loadBitmap(message, imagePreview);
|
||||
|
|
|
@ -29,7 +29,7 @@ import eu.siacs.conversations.R;
|
|||
import eu.siacs.conversations.entities.Account;
|
||||
import eu.siacs.conversations.entities.Contact;
|
||||
import eu.siacs.conversations.entities.Conversation;
|
||||
import eu.siacs.conversations.entities.Downloadable;
|
||||
import eu.siacs.conversations.entities.Transferable;
|
||||
import eu.siacs.conversations.entities.DownloadableFile;
|
||||
import eu.siacs.conversations.entities.Message;
|
||||
import eu.siacs.conversations.entities.Message.FileParams;
|
||||
|
@ -99,14 +99,14 @@ public class MessageAdapter extends ArrayAdapter<Message> {
|
|||
}
|
||||
boolean multiReceived = message.getConversation().getMode() == Conversation.MODE_MULTI
|
||||
&& message.getMergedStatus() <= Message.STATUS_RECEIVED;
|
||||
if (message.getType() == Message.TYPE_IMAGE || message.getType() == Message.TYPE_FILE || message.getDownloadable() != null) {
|
||||
if (message.getType() == Message.TYPE_IMAGE || message.getType() == Message.TYPE_FILE || message.getTransferable() != null) {
|
||||
FileParams params = message.getFileParams();
|
||||
if (params.size > (1.5 * 1024 * 1024)) {
|
||||
filesize = params.size / (1024 * 1024)+ " MiB";
|
||||
} else if (params.size > 0) {
|
||||
filesize = params.size / 1024 + " KiB";
|
||||
}
|
||||
if (message.getDownloadable() != null && message.getDownloadable().getStatus() == Downloadable.STATUS_FAILED) {
|
||||
if (message.getTransferable() != null && message.getTransferable().getStatus() == Transferable.STATUS_FAILED) {
|
||||
error = true;
|
||||
}
|
||||
}
|
||||
|
@ -115,7 +115,7 @@ public class MessageAdapter extends ArrayAdapter<Message> {
|
|||
info = getContext().getString(R.string.waiting);
|
||||
break;
|
||||
case Message.STATUS_UNSEND:
|
||||
Downloadable d = message.getDownloadable();
|
||||
Transferable d = message.getTransferable();
|
||||
if (d!=null) {
|
||||
info = getContext().getString(R.string.sending_file,d.getProgress());
|
||||
} else {
|
||||
|
@ -482,11 +482,11 @@ public class MessageAdapter extends ArrayAdapter<Message> {
|
|||
}
|
||||
});
|
||||
|
||||
final Downloadable downloadable = message.getDownloadable();
|
||||
if (downloadable != null && downloadable.getStatus() != Downloadable.STATUS_UPLOADING) {
|
||||
if (downloadable.getStatus() == Downloadable.STATUS_OFFER) {
|
||||
final Transferable transferable = message.getTransferable();
|
||||
if (transferable != null && transferable.getStatus() != Transferable.STATUS_UPLOADING) {
|
||||
if (transferable.getStatus() == Transferable.STATUS_OFFER) {
|
||||
displayDownloadableMessage(viewHolder,message,activity.getString(R.string.download_x_file, UIHelper.getFileDescriptionString(activity, message)));
|
||||
} else if (downloadable.getStatus() == Downloadable.STATUS_OFFER_CHECK_FILESIZE) {
|
||||
} else if (transferable.getStatus() == Transferable.STATUS_OFFER_CHECK_FILESIZE) {
|
||||
displayDownloadableMessage(viewHolder, message, activity.getString(R.string.check_x_filesize, UIHelper.getFileDescriptionString(activity, message)));
|
||||
} else {
|
||||
displayInfoMessage(viewHolder, UIHelper.getMessagePreview(activity, message).first);
|
||||
|
@ -536,9 +536,9 @@ public class MessageAdapter extends ArrayAdapter<Message> {
|
|||
}
|
||||
|
||||
public void startDownloadable(Message message) {
|
||||
Downloadable downloadable = message.getDownloadable();
|
||||
if (downloadable != null) {
|
||||
if (!downloadable.start()) {
|
||||
Transferable transferable = message.getTransferable();
|
||||
if (transferable != null) {
|
||||
if (!transferable.start()) {
|
||||
Toast.makeText(activity, R.string.not_connected_try_again,
|
||||
Toast.LENGTH_SHORT).show();
|
||||
}
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
package eu.siacs.conversations.utils;
|
||||
|
||||
import java.net.URLConnection;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Calendar;
|
||||
|
@ -10,7 +9,7 @@ import java.util.Locale;
|
|||
import eu.siacs.conversations.R;
|
||||
import eu.siacs.conversations.entities.Contact;
|
||||
import eu.siacs.conversations.entities.Conversation;
|
||||
import eu.siacs.conversations.entities.Downloadable;
|
||||
import eu.siacs.conversations.entities.Transferable;
|
||||
import eu.siacs.conversations.entities.Message;
|
||||
import eu.siacs.conversations.xmpp.jid.Jid;
|
||||
|
||||
|
@ -142,24 +141,24 @@ public class UIHelper {
|
|||
}
|
||||
|
||||
public static Pair<String,Boolean> getMessagePreview(final Context context, final Message message) {
|
||||
final Downloadable d = message.getDownloadable();
|
||||
final Transferable d = message.getTransferable();
|
||||
if (d != null ) {
|
||||
switch (d.getStatus()) {
|
||||
case Downloadable.STATUS_CHECKING:
|
||||
case Transferable.STATUS_CHECKING:
|
||||
return new Pair<>(context.getString(R.string.checking_image),true);
|
||||
case Downloadable.STATUS_DOWNLOADING:
|
||||
case Transferable.STATUS_DOWNLOADING:
|
||||
return new Pair<>(context.getString(R.string.receiving_x_file,
|
||||
getFileDescriptionString(context,message),
|
||||
d.getProgress()),true);
|
||||
case Downloadable.STATUS_OFFER:
|
||||
case Downloadable.STATUS_OFFER_CHECK_FILESIZE:
|
||||
case Transferable.STATUS_OFFER:
|
||||
case Transferable.STATUS_OFFER_CHECK_FILESIZE:
|
||||
return new Pair<>(context.getString(R.string.x_file_offered_for_download,
|
||||
getFileDescriptionString(context,message)),true);
|
||||
case Downloadable.STATUS_DELETED:
|
||||
case Transferable.STATUS_DELETED:
|
||||
return new Pair<>(context.getString(R.string.file_deleted),true);
|
||||
case Downloadable.STATUS_FAILED:
|
||||
case Transferable.STATUS_FAILED:
|
||||
return new Pair<>(context.getString(R.string.file_transmission_failed),true);
|
||||
case Downloadable.STATUS_UPLOADING:
|
||||
case Transferable.STATUS_UPLOADING:
|
||||
if (message.getStatus() == Message.STATUS_OFFERED) {
|
||||
return new Pair<>(context.getString(R.string.offering_x_file,
|
||||
getFileDescriptionString(context, message)), true);
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
package eu.siacs.conversations.xmpp.jingle;
|
||||
|
||||
import java.net.URLConnection;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Iterator;
|
||||
|
@ -16,9 +15,9 @@ import android.util.Log;
|
|||
import eu.siacs.conversations.Config;
|
||||
import eu.siacs.conversations.entities.Account;
|
||||
import eu.siacs.conversations.entities.Conversation;
|
||||
import eu.siacs.conversations.entities.Downloadable;
|
||||
import eu.siacs.conversations.entities.Transferable;
|
||||
import eu.siacs.conversations.entities.DownloadableFile;
|
||||
import eu.siacs.conversations.entities.DownloadablePlaceholder;
|
||||
import eu.siacs.conversations.entities.TransferablePlaceholder;
|
||||
import eu.siacs.conversations.entities.Message;
|
||||
import eu.siacs.conversations.services.XmppConnectionService;
|
||||
import eu.siacs.conversations.xml.Element;
|
||||
|
@ -29,7 +28,7 @@ import eu.siacs.conversations.xmpp.jingle.stanzas.JinglePacket;
|
|||
import eu.siacs.conversations.xmpp.jingle.stanzas.Reason;
|
||||
import eu.siacs.conversations.xmpp.stanzas.IqPacket;
|
||||
|
||||
public class JingleConnection implements Downloadable {
|
||||
public class JingleConnection implements Transferable {
|
||||
|
||||
private JingleConnectionManager mJingleConnectionManager;
|
||||
private XmppConnectionService mXmppConnectionService;
|
||||
|
@ -43,7 +42,7 @@ public class JingleConnection implements Downloadable {
|
|||
private int ibbBlockSize = 4096;
|
||||
|
||||
private int mJingleStatus = -1;
|
||||
private int mStatus = Downloadable.STATUS_UNKNOWN;
|
||||
private int mStatus = Transferable.STATUS_UNKNOWN;
|
||||
private Message message;
|
||||
private String sessionId;
|
||||
private Account account;
|
||||
|
@ -199,8 +198,8 @@ public class JingleConnection implements Downloadable {
|
|||
this.contentCreator = "initiator";
|
||||
this.contentName = this.mJingleConnectionManager.nextRandomId();
|
||||
this.message = message;
|
||||
this.message.setDownloadable(this);
|
||||
this.mStatus = Downloadable.STATUS_UPLOADING;
|
||||
this.message.setTransferable(this);
|
||||
this.mStatus = Transferable.STATUS_UPLOADING;
|
||||
this.account = message.getConversation().getAccount();
|
||||
this.initiator = this.account.getJid();
|
||||
this.responder = this.message.getCounterpart();
|
||||
|
@ -256,8 +255,8 @@ public class JingleConnection implements Downloadable {
|
|||
packet.getFrom().toBareJid(), false);
|
||||
this.message = new Message(conversation, "", Message.ENCRYPTION_NONE);
|
||||
this.message.setStatus(Message.STATUS_RECEIVED);
|
||||
this.mStatus = Downloadable.STATUS_OFFER;
|
||||
this.message.setDownloadable(this);
|
||||
this.mStatus = Transferable.STATUS_OFFER;
|
||||
this.message.setTransferable(this);
|
||||
final Jid from = packet.getFrom();
|
||||
this.message.setCounterpart(from);
|
||||
this.account = account;
|
||||
|
@ -408,7 +407,7 @@ public class JingleConnection implements Downloadable {
|
|||
|
||||
private void sendAccept() {
|
||||
mJingleStatus = JINGLE_STATUS_ACCEPTED;
|
||||
this.mStatus = Downloadable.STATUS_DOWNLOADING;
|
||||
this.mStatus = Transferable.STATUS_DOWNLOADING;
|
||||
mXmppConnectionService.updateConversationUi();
|
||||
this.mJingleConnectionManager.getPrimaryCandidate(this.account, new OnPrimaryCandidateFound() {
|
||||
@Override
|
||||
|
@ -639,7 +638,7 @@ public class JingleConnection implements Downloadable {
|
|||
this.disconnectSocks5Connections();
|
||||
this.mJingleStatus = JINGLE_STATUS_FINISHED;
|
||||
this.message.setStatus(Message.STATUS_RECEIVED);
|
||||
this.message.setDownloadable(null);
|
||||
this.message.setTransferable(null);
|
||||
this.mXmppConnectionService.updateMessage(message);
|
||||
this.mJingleConnectionManager.finishConnection(this);
|
||||
}
|
||||
|
@ -716,7 +715,7 @@ public class JingleConnection implements Downloadable {
|
|||
if (this.transport != null && this.transport instanceof JingleInbandTransport) {
|
||||
this.transport.disconnect();
|
||||
}
|
||||
this.message.setDownloadable(null);
|
||||
this.message.setTransferable(null);
|
||||
this.mJingleConnectionManager.finishConnection(this);
|
||||
}
|
||||
|
||||
|
@ -728,7 +727,7 @@ public class JingleConnection implements Downloadable {
|
|||
this.sendCancel();
|
||||
this.mJingleConnectionManager.finishConnection(this);
|
||||
if (this.responder.equals(account.getJid())) {
|
||||
this.message.setDownloadable(new DownloadablePlaceholder(Downloadable.STATUS_FAILED));
|
||||
this.message.setTransferable(new TransferablePlaceholder(Transferable.STATUS_FAILED));
|
||||
if (this.file!=null) {
|
||||
file.delete();
|
||||
}
|
||||
|
@ -736,7 +735,7 @@ public class JingleConnection implements Downloadable {
|
|||
} else {
|
||||
this.mXmppConnectionService.markMessage(this.message,
|
||||
Message.STATUS_SEND_FAILED);
|
||||
this.message.setDownloadable(null);
|
||||
this.message.setTransferable(null);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -748,7 +747,7 @@ public class JingleConnection implements Downloadable {
|
|||
}
|
||||
if (this.message != null) {
|
||||
if (this.responder.equals(account.getJid())) {
|
||||
this.message.setDownloadable(new DownloadablePlaceholder(Downloadable.STATUS_FAILED));
|
||||
this.message.setTransferable(new TransferablePlaceholder(Transferable.STATUS_FAILED));
|
||||
if (this.file!=null) {
|
||||
file.delete();
|
||||
}
|
||||
|
@ -756,7 +755,7 @@ public class JingleConnection implements Downloadable {
|
|||
} else {
|
||||
this.mXmppConnectionService.markMessage(this.message,
|
||||
Message.STATUS_SEND_FAILED);
|
||||
this.message.setDownloadable(null);
|
||||
this.message.setTransferable(null);
|
||||
}
|
||||
}
|
||||
this.mJingleConnectionManager.finishConnection(this);
|
||||
|
|
|
@ -9,14 +9,13 @@ import android.annotation.SuppressLint;
|
|||
import android.util.Log;
|
||||
import eu.siacs.conversations.Config;
|
||||
import eu.siacs.conversations.entities.Account;
|
||||
import eu.siacs.conversations.entities.Downloadable;
|
||||
import eu.siacs.conversations.entities.Transferable;
|
||||
import eu.siacs.conversations.entities.Message;
|
||||
import eu.siacs.conversations.services.AbstractConnectionManager;
|
||||
import eu.siacs.conversations.services.XmppConnectionService;
|
||||
import eu.siacs.conversations.utils.Xmlns;
|
||||
import eu.siacs.conversations.xml.Element;
|
||||
import eu.siacs.conversations.xmpp.OnIqPacketReceived;
|
||||
import eu.siacs.conversations.xmpp.jid.InvalidJidException;
|
||||
import eu.siacs.conversations.xmpp.jid.Jid;
|
||||
import eu.siacs.conversations.xmpp.jingle.stanzas.JinglePacket;
|
||||
import eu.siacs.conversations.xmpp.stanzas.IqPacket;
|
||||
|
@ -59,7 +58,7 @@ public class JingleConnectionManager extends AbstractConnectionManager {
|
|||
}
|
||||
|
||||
public JingleConnection createNewConnection(Message message) {
|
||||
Downloadable old = message.getDownloadable();
|
||||
Transferable old = message.getTransferable();
|
||||
if (old != null) {
|
||||
old.cancel();
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue