diff --git a/app/GioActivity.java b/app/GioActivity.java index 722c17ca..40546fb7 100644 --- a/app/GioActivity.java +++ b/app/GioActivity.java @@ -48,6 +48,16 @@ public final class GioActivity extends Activity { super.onStop(); } + @Override public void onPause() { + super.onPause(); + view.pause(); + } + + @Override public void onResume() { + super.onResume(); + view.resume(); + } + @Override public void onConfigurationChanged(Configuration c) { super.onConfigurationChanged(c); view.configurationChanged(); diff --git a/app/GioView.java b/app/GioView.java index 412c06f8..7e03bb59 100644 --- a/app/GioView.java +++ b/app/GioView.java @@ -62,7 +62,6 @@ public final class GioView extends SurfaceView implements Choreographer.FrameCal private static boolean jniLoaded; private final SurfaceHolder.Callback surfCallbacks; - private final View.OnFocusChangeListener focusCallback; private final InputMethodManager imm; private final float scrollXScale; private final float scrollYScale; @@ -114,12 +113,6 @@ public final class GioView extends SurfaceView implements Choreographer.FrameCal nhandle = onCreateView(this); setFocusable(true); setFocusableInTouchMode(true); - focusCallback = new View.OnFocusChangeListener() { - @Override public void onFocusChange(View v, boolean focus) { - GioView.this.onFocusChange(nhandle, focus); - } - }; - setOnFocusChangeListener(focusCallback); surfCallbacks = new SurfaceHolder.Callback() { @Override public void surfaceCreated(SurfaceHolder holder) { // Ignore; surfaceChanged is guaranteed to be called immediately after this. @@ -482,6 +475,18 @@ public final class GioView extends SurfaceView implements Choreographer.FrameCal } } + public void pause() { + if (nhandle != 0) { + onFocusChange(nhandle, false); + } + } + + public void resume() { + if (nhandle != 0) { + onFocusChange(nhandle, true); + } + } + public void destroy() { if (nhandle != 0) { onDestroyView(nhandle);