diff options
author | daniel oeh <daniel.oeh@gmail.com> | 2014-02-12 00:20:02 +0100 |
---|---|---|
committer | daniel oeh <daniel.oeh@gmail.com> | 2014-02-12 00:20:02 +0100 |
commit | 967e322913b5505029ecdcd084c058a5b286d274 (patch) | |
tree | 962cf30ddf506b7fc9ad5339f5bbf69a5bc9890d /src/de/danoeh/antennapod/service/download/Downloader.java | |
parent | 969170f0e802d7b93bac3cda167f672d582868fe (diff) | |
download | AntennaPod-967e322913b5505029ecdcd084c058a5b286d274.zip |
Acquire Wi-Fi lock before downloading. Should fix issue #110 and #243
- Adds the WAKE_LOCK permission
Diffstat (limited to 'src/de/danoeh/antennapod/service/download/Downloader.java')
-rw-r--r-- | src/de/danoeh/antennapod/service/download/Downloader.java | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/src/de/danoeh/antennapod/service/download/Downloader.java b/src/de/danoeh/antennapod/service/download/Downloader.java index 84731fe9f..80cc5b3f8 100644 --- a/src/de/danoeh/antennapod/service/download/Downloader.java +++ b/src/de/danoeh/antennapod/service/download/Downloader.java @@ -1,5 +1,8 @@ package de.danoeh.antennapod.service.download; +import android.content.Context; +import android.net.wifi.WifiManager; +import de.danoeh.antennapod.PodcastApp; import de.danoeh.antennapod.R; import java.util.concurrent.Callable; @@ -26,7 +29,19 @@ public abstract class Downloader implements Callable<Downloader> { protected abstract void download(); public final Downloader call() { + WifiManager wifiManager = (WifiManager) PodcastApp.getInstance().getSystemService(Context.WIFI_SERVICE); + WifiManager.WifiLock wifiLock = null; + if (wifiManager != null) { + wifiLock = wifiManager.createWifiLock(TAG); + wifiLock.acquire(); + } + download(); + + if (wifiLock != null) { + wifiLock.release(); + } + if (result == null) { throw new IllegalStateException( "Downloader hasn't created DownloadStatus object"); |