From d65d6d39c8972c74dc2bfbd16345505c1d8ada1a Mon Sep 17 00:00:00 2001 From: Anthony Calosa Date: Tue, 17 Sep 2019 00:53:47 +0800 Subject: [PATCH] Return FLAG_KEEP_SCREEN_ON functionality --- forge-gui-android/AndroidManifest.xml | 3 +-- forge-gui-android/src/forge/app/Main.java | 13 ++++--------- 2 files changed, 5 insertions(+), 11 deletions(-) diff --git a/forge-gui-android/AndroidManifest.xml b/forge-gui-android/AndroidManifest.xml index f207f20d405..5edbcfad66e 100644 --- a/forge-gui-android/AndroidManifest.xml +++ b/forge-gui-android/AndroidManifest.xml @@ -7,8 +7,7 @@ - - + diff --git a/forge-gui-android/src/forge/app/Main.java b/forge-gui-android/src/forge/app/Main.java index b9d26086c2b..66728960885 100644 --- a/forge-gui-android/src/forge/app/Main.java +++ b/forge-gui-android/src/forge/app/Main.java @@ -17,13 +17,10 @@ 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; import com.badlogic.gdx.backends.android.AndroidApplication; -import forge.FThreads; import forge.Forge; import forge.interfaces.IDeviceAdapter; import forge.model.FModel; @@ -37,7 +34,6 @@ import java.io.OutputStream; import java.util.concurrent.Callable; public class Main extends AndroidApplication { - public int time = -2; @Override protected void onCreate(Bundle savedInstanceState) { @@ -239,17 +235,16 @@ 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 + // Setting getWindow() Flags needs to run on UI thread. + // Should fix android.view.ViewRoot$CalledFromWrongThreadException: + // Only the original thread that created a view hierarchy can touch its views. + runOnUiThread(new Runnable() { @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); } }