print specific toast when download failed because of write error

This commit is contained in:
Daniel Gultsch 2016-06-02 21:37:52 +02:00
parent 594aab56db
commit 583aba1b44
2 changed files with 13 additions and 2 deletions

View file

@ -140,12 +140,18 @@ public class HttpDownloadConnection implements Transferable {
mXmppConnectionService.updateConversationUi(); mXmppConnectionService.updateConversationUi();
} }
private class WriteException extends IOException {
}
private void showToastForException(Exception e) { private void showToastForException(Exception e) {
e.printStackTrace(); e.printStackTrace();
if (e instanceof java.net.UnknownHostException) { if (e instanceof java.net.UnknownHostException) {
mXmppConnectionService.showErrorToastInUi(R.string.download_failed_server_not_found); mXmppConnectionService.showErrorToastInUi(R.string.download_failed_server_not_found);
} else if (e instanceof java.net.ConnectException) { } else if (e instanceof java.net.ConnectException) {
mXmppConnectionService.showErrorToastInUi(R.string.download_failed_could_not_connect); mXmppConnectionService.showErrorToastInUi(R.string.download_failed_could_not_connect);
} else if (e instanceof WriteException) {
mXmppConnectionService.showErrorToastInUi(R.string.download_failed_could_not_write_file);
} else if (!(e instanceof CancellationException)) { } else if (!(e instanceof CancellationException)) {
mXmppConnectionService.showErrorToastInUi(R.string.download_failed_file_not_found); mXmppConnectionService.showErrorToastInUi(R.string.download_failed_file_not_found);
} }
@ -284,11 +290,15 @@ public class HttpDownloadConnection implements Transferable {
file.createNewFile(); file.createNewFile();
os = AbstractConnectionManager.createOutputStream(file, true); os = AbstractConnectionManager.createOutputStream(file, true);
} }
int count = -1; int count;
byte[] buffer = new byte[1024]; byte[] buffer = new byte[1024];
while ((count = is.read(buffer)) != -1) { while ((count = is.read(buffer)) != -1) {
transmitted += count; transmitted += count;
try {
os.write(buffer, 0, count); os.write(buffer, 0, count);
} catch (IOException e) {
throw new WriteException();
}
updateProgress((int) ((((double) transmitted) / expected) * 100)); updateProgress((int) ((((double) transmitted) / expected) * 100));
if (canceled) { if (canceled) {
throw new CancellationException(); throw new CancellationException();

View file

@ -539,6 +539,7 @@
<string name="download_failed_server_not_found">Download failed: Server not found</string> <string name="download_failed_server_not_found">Download failed: Server not found</string>
<string name="download_failed_file_not_found">Download failed: File not found</string> <string name="download_failed_file_not_found">Download failed: File not found</string>
<string name="download_failed_could_not_connect">Download failed: Could not connect to host</string> <string name="download_failed_could_not_connect">Download failed: Could not connect to host</string>
<string name="download_failed_could_not_write_file">Download failed: Could not write file</string>
<string name="pref_use_white_background">Use white background</string> <string name="pref_use_white_background">Use white background</string>
<string name="pref_use_white_background_summary">Show received messages as black text on a white background</string> <string name="pref_use_white_background_summary">Show received messages as black text on a white background</string>
<string name="account_status_tor_unavailable">Tor network unavailable</string> <string name="account_status_tor_unavailable">Tor network unavailable</string>