add timeouts to HTTPUrlConnections and allow cancelation of all sending files
This commit is contained in:
parent
de7c0c5121
commit
61f58b3dbd
|
@ -212,6 +212,8 @@ public class HttpDownloadConnection implements Transferable {
|
||||||
if (connection instanceof HttpsURLConnection) {
|
if (connection instanceof HttpsURLConnection) {
|
||||||
mHttpConnectionManager.setupTrustManager((HttpsURLConnection) connection, interactive);
|
mHttpConnectionManager.setupTrustManager((HttpsURLConnection) connection, interactive);
|
||||||
}
|
}
|
||||||
|
connection.setConnectTimeout(Config.SOCKET_TIMEOUT * 1000);
|
||||||
|
connection.setReadTimeout(Config.SOCKET_TIMEOUT * 1000);
|
||||||
connection.connect();
|
connection.connect();
|
||||||
String contentLength = connection.getHeaderField("Content-Length");
|
String contentLength = connection.getHeaderField("Content-Length");
|
||||||
connection.disconnect();
|
connection.disconnect();
|
||||||
|
@ -279,6 +281,8 @@ public class HttpDownloadConnection implements Transferable {
|
||||||
long size = file.getSize();
|
long size = file.getSize();
|
||||||
connection.setRequestProperty("Range", "bytes="+size+"-");
|
connection.setRequestProperty("Range", "bytes="+size+"-");
|
||||||
}
|
}
|
||||||
|
connection.setConnectTimeout(Config.SOCKET_TIMEOUT * 1000);
|
||||||
|
connection.setReadTimeout(Config.SOCKET_TIMEOUT * 1000);
|
||||||
connection.connect();
|
connection.connect();
|
||||||
is = new BufferedInputStream(connection.getInputStream());
|
is = new BufferedInputStream(connection.getInputStream());
|
||||||
boolean serverResumed = "bytes".equals(connection.getHeaderField("Accept-Ranges"));
|
boolean serverResumed = "bytes".equals(connection.getHeaderField("Accept-Ranges"));
|
||||||
|
|
|
@ -171,10 +171,12 @@ public class HttpUploadConnection implements Transferable {
|
||||||
connection.setRequestProperty("Content-Type", mime == null ? "application/octet-stream" : mime);
|
connection.setRequestProperty("Content-Type", mime == null ? "application/octet-stream" : mime);
|
||||||
connection.setRequestProperty("User-Agent",mXmppConnectionService.getIqGenerator().getIdentityName());
|
connection.setRequestProperty("User-Agent",mXmppConnectionService.getIqGenerator().getIdentityName());
|
||||||
connection.setDoOutput(true);
|
connection.setDoOutput(true);
|
||||||
|
connection.setConnectTimeout(Config.SOCKET_TIMEOUT * 1000);
|
||||||
|
connection.setReadTimeout(Config.SOCKET_TIMEOUT * 1000);
|
||||||
connection.connect();
|
connection.connect();
|
||||||
os = connection.getOutputStream();
|
os = connection.getOutputStream();
|
||||||
transmitted = 0;
|
transmitted = 0;
|
||||||
int count = -1;
|
int count;
|
||||||
byte[] buffer = new byte[4096];
|
byte[] buffer = new byte[4096];
|
||||||
while (((count = mFileInputStream.read(buffer)) != -1) && !canceled) {
|
while (((count = mFileInputStream.read(buffer)) != -1) && !canceled) {
|
||||||
transmitted += count;
|
transmitted += count;
|
||||||
|
|
|
@ -573,9 +573,10 @@ public class ConversationFragment extends Fragment implements EditMessage.Keyboa
|
||||||
downloadFile.setVisible(true);
|
downloadFile.setVisible(true);
|
||||||
downloadFile.setTitle(activity.getString(R.string.download_x_file,UIHelper.getFileDescriptionString(activity, m)));
|
downloadFile.setTitle(activity.getString(R.string.download_x_file,UIHelper.getFileDescriptionString(activity, m)));
|
||||||
}
|
}
|
||||||
if ((t != null && !(t instanceof TransferablePlaceholder))
|
boolean waitingOfferedSending = m.getStatus() == Message.STATUS_WAITING
|
||||||
|| (m.isFileOrImage() && (m.getStatus() == Message.STATUS_WAITING
|
|| m.getStatus() == Message.STATUS_UNSEND
|
||||||
|| m.getStatus() == Message.STATUS_OFFERED))) {
|
|| m.getStatus() == Message.STATUS_OFFERED;
|
||||||
|
if ((t != null && !(t instanceof TransferablePlaceholder)) || waitingOfferedSending && m.needsUploading()) {
|
||||||
cancelTransmission.setVisible(true);
|
cancelTransmission.setVisible(true);
|
||||||
}
|
}
|
||||||
if (treatAsFile) {
|
if (treatAsFile) {
|
||||||
|
|
Loading…
Reference in a new issue