From 09aa948ab48261b13550b76a5820d3473caf200a Mon Sep 17 00:00:00 2001 From: Po Lu Date: Thu, 2 Mar 2023 12:30:36 +0800 Subject: [PATCH] Improve criteria for restoring fullscreen state on Android * java/Makefile.in ($(CLASS_FILES) &): Touch all class files, even those javac chose not to rebuild. * java/org/gnu/emacs/EmacsActivity.java (onWindowFocusChanged): Restore fullscreen state here. (onResume): And not here. --- java/Makefile.in | 1 + java/org/gnu/emacs/EmacsActivity.java | 12 +++++++++--- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/java/Makefile.in b/java/Makefile.in index 994ffdd0828..c7fe6e07c77 100644 --- a/java/Makefile.in +++ b/java/Makefile.in @@ -261,6 +261,7 @@ $(CLASS_FILES): $(RESOURCE_FILE) .SUFFIXES: .java .class $(CLASS_FILES) &: $(JAVA_FILES) $(AM_V_JAVAC) $(JAVAC) $(JAVAFLAGS) $(JAVA_FILES) + $(AM_V_SILENT) touch $(CLASS_FILES) # N.B. that find must be called all over again in case javac generated # nested classes. diff --git a/java/org/gnu/emacs/EmacsActivity.java b/java/org/gnu/emacs/EmacsActivity.java index c444110de60..bcfee3f7080 100644 --- a/java/org/gnu/emacs/EmacsActivity.java +++ b/java/org/gnu/emacs/EmacsActivity.java @@ -241,6 +241,15 @@ public class EmacsActivity extends Activity { focusedActivities.add (this); lastFocusedActivity = this; + + /* Update the window insets as the focus change may have + changed the window insets as well, and the system does not + automatically restore visibility flags. */ + + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN + && Build.VERSION.SDK_INT < Build.VERSION_CODES.R + && isFullscreen) + syncFullscreenWith (window); } else focusedActivities.remove (this); @@ -264,9 +273,6 @@ public class EmacsActivity extends Activity { isPaused = false; - /* Update the window insets. */ - syncFullscreenWith (window); - EmacsWindowAttachmentManager.MANAGER.noticeDeiconified (this); super.onResume (); } -- 2.39.2