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