From 92fa23b59b544f534d6d3721d0f20ab87371a8dd Mon Sep 17 00:00:00 2001 From: CoyAce Date: Mon, 9 Mar 2026 21:00:07 +0800 Subject: [PATCH] app: [android] replace OnFocusChangedListener with onPause/onResume References: https://lists.sr.ht/~eliasnaur/gio/%3CCAMAFT9Uyh_JWrkQQt+AmekJWFBqhZPsP_3ZxC1fUNB+=VGGorw@mail.gmail.com%3E Signed-off-by: CoyAce Signed-off-by: Elias Naur --- app/GioActivity.java | 10 ++++++++++ app/GioView.java | 19 ++++++++++++------- 2 files changed, 22 insertions(+), 7 deletions(-) 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);