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 New Issue