Ensure window flags only set on EDT thread

This commit is contained in:
drdev
2016-04-17 22:09:26 +00:00
parent 3681ec0aa9
commit 56c5c704a8

View File

@@ -23,6 +23,7 @@ import android.webkit.MimeTypeMap;
import com.badlogic.gdx.Gdx; import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.backends.android.AndroidApplication; import com.badlogic.gdx.backends.android.AndroidApplication;
import forge.FThreads;
import forge.Forge; import forge.Forge;
import forge.interfaces.IDeviceAdapter; import forge.interfaces.IDeviceAdapter;
import forge.util.FileUtil; import forge.util.FileUtil;
@@ -213,13 +214,18 @@ public class Main extends AndroidApplication {
} }
@Override @Override
public void preventSystemSleep(boolean preventSleep) { public void preventSystemSleep(final boolean preventSleep) {
if (preventSleep) { FThreads.invokeInEdtNowOrLater(new Runnable() { //must set window flags from EDT thread
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); @Override
} public void run() {
else { if (preventSleep) {
getWindow().clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
} }
else {
getWindow().clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
}
}
});
} }
} }
} }