Fix issue with turning off WiFi
This commit is contained in:
parent
cbe671ffc6
commit
ff9b25cbc3
2 changed files with 18 additions and 9 deletions
|
@ -15,6 +15,9 @@ import java.util.zip.ZipInputStream;
|
|||
import org.apache.commons.logging.Log;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.content.Context;
|
||||
import android.net.ConnectivityManager;
|
||||
import android.net.NetworkInfo;
|
||||
|
||||
import net.osmand.IProgress;
|
||||
import net.osmand.LogUtil;
|
||||
|
@ -42,7 +45,7 @@ public class DownloadFileHelper {
|
|||
}
|
||||
|
||||
protected void downloadFile(String fileName, FileOutputStream out, URL url, String part, String indexOfAllFiles,
|
||||
IProgress progress) throws IOException, InterruptedException {
|
||||
IProgress progress, boolean forceWifi) throws IOException, InterruptedException {
|
||||
InputStream is = null;
|
||||
|
||||
byte[] buffer = new byte[BUFFER_SIZE];
|
||||
|
@ -69,8 +72,9 @@ public class DownloadFileHelper {
|
|||
}
|
||||
conn.setConnectTimeout(30000);
|
||||
log.info(conn.getResponseMessage() + " " + conn.getResponseCode()); //$NON-NLS-1$
|
||||
if (conn.getResponseCode() != HttpURLConnection.HTTP_PARTIAL &&
|
||||
conn.getResponseCode() != HttpURLConnection.HTTP_OK) {
|
||||
boolean wifiConnectionBroken = forceWifi && !isWifiConnected();
|
||||
if ((conn.getResponseCode() != HttpURLConnection.HTTP_PARTIAL &&
|
||||
conn.getResponseCode() != HttpURLConnection.HTTP_OK ) || wifiConnectionBroken) {
|
||||
conn.disconnect();
|
||||
triesDownload--;
|
||||
continue;
|
||||
|
@ -118,22 +122,27 @@ public class DownloadFileHelper {
|
|||
|
||||
}
|
||||
|
||||
public boolean isWifiConnected(){
|
||||
ConnectivityManager mgr = (ConnectivityManager) ctx.getSystemService(Context.CONNECTIVITY_SERVICE);
|
||||
NetworkInfo ni = mgr.getActiveNetworkInfo();
|
||||
return ni != null && ni.getType() == ConnectivityManager.TYPE_WIFI;
|
||||
}
|
||||
|
||||
protected boolean downloadFile(final String fileName, final File fileToDownload, final File fileToUnZip, final boolean unzipToDir,
|
||||
IProgress progress, Long dateModified, int parts, List<File> toReIndex, String indexOfAllFiles,
|
||||
DownloadFileShowWarning showWarningCallback) throws InterruptedException {
|
||||
DownloadFileShowWarning showWarningCallback, boolean forceWifi ) throws InterruptedException {
|
||||
FileOutputStream out = null;
|
||||
try {
|
||||
|
||||
out = new FileOutputStream(fileToDownload);
|
||||
|
||||
try {
|
||||
if(parts == 1){
|
||||
URL url = new URL("http://download.osmand.net/download?file="+fileName + "&" + Version.getVersionAsURLParam()); //$NON-NLS-1$
|
||||
downloadFile(fileName, out, url, null, indexOfAllFiles, progress);
|
||||
downloadFile(fileName, out, url, null, indexOfAllFiles, progress, forceWifi);
|
||||
} else {
|
||||
for(int i=1; i<=parts; i++){
|
||||
URL url = new URL("http://download.osmand.net/download?file="+fileName+"-"+i + "&" + Version.getVersionAsURLParam()); //$NON-NLS-1$
|
||||
downloadFile(fileName, out, url, " ["+i+"/"+parts+"]", indexOfAllFiles, progress);
|
||||
downloadFile(fileName, out, url, " ["+i+"/"+parts+"]", indexOfAllFiles, progress, forceWifi);
|
||||
}
|
||||
}
|
||||
} finally {
|
||||
|
|
|
@ -573,7 +573,7 @@ private class DownloadIndexesAsyncTask extends AsyncTask<String, Object, String
|
|||
protected String doInBackground(String... filesToDownload) {
|
||||
try {
|
||||
List<File> filesToReindex = new ArrayList<File>();
|
||||
|
||||
boolean forceWifi = downloadFileHelper.isWifiConnected();
|
||||
for (int i = 0; i < filesToDownload.length; i++) {
|
||||
String filename = filesToDownload[i];
|
||||
DownloadEntry entry = entriesToDownload.get(filename);
|
||||
|
@ -582,7 +582,7 @@ private class DownloadIndexesAsyncTask extends AsyncTask<String, Object, String
|
|||
+ filesToDownload.length + "]");
|
||||
boolean result = downloadFileHelper.downloadFile(filename,
|
||||
entry.fileToSave, entry.fileToUnzip, entry.unzip, progress, entry.dateModified,
|
||||
entry.parts, filesToReindex, indexOfAllFiles, this);
|
||||
entry.parts, filesToReindex, indexOfAllFiles, this, forceWifi);
|
||||
if (result) {
|
||||
entriesToDownload.remove(filename);
|
||||
publishProgress(entry);
|
||||
|
|
Loading…
Reference in a new issue