diff --git a/forge-gui-android/AndroidManifest.xml b/forge-gui-android/AndroidManifest.xml
index 6608bb88ce6..3a2caefad6a 100644
--- a/forge-gui-android/AndroidManifest.xml
+++ b/forge-gui-android/AndroidManifest.xml
@@ -7,6 +7,7 @@
+
diff --git a/forge-gui-android/src/forge/app/Main.java b/forge-gui-android/src/forge/app/Main.java
index bf4c73e0e4f..b9d26086c2b 100644
--- a/forge-gui-android/src/forge/app/Main.java
+++ b/forge-gui-android/src/forge/app/Main.java
@@ -17,6 +17,8 @@ import android.net.Uri;
import android.os.Bundle;
import android.os.Environment;
import android.os.PowerManager;
+import android.provider.Settings;
+import static android.provider.Settings.System.SCREEN_OFF_TIMEOUT;
import android.view.WindowManager;
import android.webkit.MimeTypeMap;
import com.badlogic.gdx.Gdx;
@@ -35,6 +37,8 @@ import java.io.OutputStream;
import java.util.concurrent.Callable;
public class Main extends AndroidApplication {
+ public int time = -2;
+
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
@@ -235,13 +239,17 @@ public class Main extends AndroidApplication {
@Override
public void preventSystemSleep(final boolean preventSleep) {
+ if (time == -2)
+ time = Settings.System.getInt(getContentResolver(), SCREEN_OFF_TIMEOUT, 0);
FThreads.invokeInEdtNowOrLater(new Runnable() { //must set window flags from EDT thread
@Override
public void run() {
if (preventSleep) {
+ Settings.System.putInt(getContentResolver(), SCREEN_OFF_TIMEOUT, Integer.MAX_VALUE);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
}
else {
+ Settings.System.putInt(getContentResolver(), SCREEN_OFF_TIMEOUT, time);
getWindow().clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
}
}
diff --git a/forge-gui/src/main/java/forge/download/GuiDownloadService.java b/forge-gui/src/main/java/forge/download/GuiDownloadService.java
index 04d31f77fd8..b6e308b55bc 100644
--- a/forge-gui/src/main/java/forge/download/GuiDownloadService.java
+++ b/forge-gui/src/main/java/forge/download/GuiDownloadService.java
@@ -255,7 +255,9 @@ public abstract class GuiDownloadService implements Runnable {
byte[] buffer = new byte[1024];
for (Entry kv : files.entrySet()) {
- if (cancel) { break; }
+ if (cancel) {//stop prevent sleep
+ GuiBase.getInterface().preventSystemSleep(false);
+ break; }
count++;
cardSkipped = true; //assume skipped unless saved successfully