diff --git a/hyperroid/app/src/main/AndroidManifest.xml b/hyperroid/app/src/main/AndroidManifest.xml index c1e4dfa8..25d61053 100644 --- a/hyperroid/app/src/main/AndroidManifest.xml +++ b/hyperroid/app/src/main/AndroidManifest.xml @@ -1,7 +1,7 @@ diff --git a/hyperroid/app/src/main/java/com/roguetemple/hyperroid/HyperRenderer.java b/hyperroid/app/src/main/java/com/roguetemple/hyperroid/HyperRenderer.java index e5395a0b..0e7815f8 100644 --- a/hyperroid/app/src/main/java/com/roguetemple/hyperroid/HyperRenderer.java +++ b/hyperroid/app/src/main/java/com/roguetemple/hyperroid/HyperRenderer.java @@ -5,8 +5,11 @@ import javax.microedition.khronos.opengles.GL10; // import android.graphics.Paint; // import android.graphics.Path; +import android.content.Context; import android.graphics.Typeface; import android.opengl.GLSurfaceView; +import android.os.Build; +import android.os.PowerManager; // bimport android.widget.Toast; import com.android.texample.GLText; @@ -25,7 +28,13 @@ public class HyperRenderer implements GLSurfaceView.Renderer { public void onDrawFrame(GL10 gl) { if(game.forceCanvas) return; - gl.glClear(GL10.GL_COLOR_BUFFER_BIT); + + PowerManager pm = (PowerManager) game.getSystemService(Context.POWER_SERVICE); + boolean isScreenOn = Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT_WATCH ? pm.isInteractive() : pm.isScreenOn(); + if(!isScreenOn) return; + if(!game.activityVisible) return; + + gl.glClear(GL10.GL_COLOR_BUFFER_BIT); synchronized(game) { game.hv.updateGame(); game.draw(); diff --git a/hyperroid/app/src/main/java/com/roguetemple/hyperroid/HyperRogue.java b/hyperroid/app/src/main/java/com/roguetemple/hyperroid/HyperRogue.java index 68b611a7..0de57469 100644 --- a/hyperroid/app/src/main/java/com/roguetemple/hyperroid/HyperRogue.java +++ b/hyperroid/app/src/main/java/com/roguetemple/hyperroid/HyperRogue.java @@ -339,10 +339,13 @@ public class HyperRogue extends Activity { int lastland; int curpos[]; float curvol; - + + public static boolean activityVisible = true; + @Override protected void onPause() { super.onPause(); + activityVisible = false; boolean keep; @@ -392,6 +395,7 @@ public class HyperRogue extends Activity { } protected void onResume() { + activityVisible = true; super.onResume(); if(backgroundmusic != null) { try {backgroundmusic.prepare(); } catch(Exception e) {} diff --git a/hyperroid/app/src/main/java/com/roguetemple/hyperroid/HyperView.java b/hyperroid/app/src/main/java/com/roguetemple/hyperroid/HyperView.java index 7d846a54..d9a710b7 100644 --- a/hyperroid/app/src/main/java/com/roguetemple/hyperroid/HyperView.java +++ b/hyperroid/app/src/main/java/com/roguetemple/hyperroid/HyperView.java @@ -1,5 +1,6 @@ package com.roguetemple.hyperroid; +import android.app.KeyguardManager; import android.content.Context; import android.graphics.Bitmap; import android.graphics.Canvas; @@ -8,6 +9,7 @@ import android.graphics.Path; import android.graphics.PorterDuff; import android.graphics.PorterDuffXfermode; import android.graphics.Typeface; +import android.os.Build; import android.os.PowerManager; import android.os.SystemClock; import android.util.AttributeSet; @@ -169,7 +171,7 @@ public class HyperView extends View { public void updateGame() { lasttick = curtick; curtick = (int)SystemClock.elapsedRealtime(); - + if(clickcnt > 0) clickcnt--; game.update(width, height, curtick, mousex, mousey, clicked | ((clickcnt & 1) > 0)); @@ -184,9 +186,10 @@ public class HyperView extends View { super.onDraw(canvas); PowerManager pm = (PowerManager) game.getSystemService(Context.POWER_SERVICE); - boolean isScreenOn = pm.isScreenOn(); + boolean isScreenOn = Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT_WATCH ? pm.isInteractive() : pm.isScreenOn(); if(!isScreenOn) return; - + if(!game.activityVisible) return; + dc = canvas; width = getWidth(); height = getHeight();