From 2847106f3b6174f25ab43551f96612209fe951c8 Mon Sep 17 00:00:00 2001 From: Po Lu Date: Wed, 4 Sep 2024 17:24:34 +0800 Subject: Port to Android 35 * configure.ac: Temporary workaround for Gnulib bug. Verify that the provided android.jar corresponds to Android 35, or any later version. * cross/ndk-build/Makefile.in (NDK_BUILD_SO_LDFLAGS): New variable. * cross/ndk-build/ndk-resolve.mk (NDK_LOCAL_A_NAMES_$(LOCAL_MODULE)): Define to NDK_BUILD_SO_LDFLAGS by default to enable building binaries with support for 16 kb page sizes. * java/AndroidManifest.xml.in: Target SDK 35. * java/INSTALL (16KB PAGE SIZES): New section. Replace references to Android 34 with 35. * java/org/gnu/emacs/EmacsActivity.java (onCreate): Restore pre-SDK 35 inset-relative placement. * java/org/gnu/emacs/EmacsFillPolygon.java (perform): Suppress deprecation warnings, and document why. * m4/ndk-build.m4 (ndk_INIT, ndk_LATE): Check for and enable toolchain support for 16 KB page sizes, if available. (ndk_CONFIG_FILES): Export linker options so derived. * src/conf_post.h [__ANDROID_API__ < 35]: Include system time.h and redefine timezone_t to rpl_timezone_t, so that the Gnulib replacement may not conflict with the useless OS type. --- java/AndroidManifest.xml.in | 2 +- java/INSTALL | 40 +++++++++++++++++++++++--------- java/org/gnu/emacs/EmacsActivity.java | 6 +++++ java/org/gnu/emacs/EmacsFillPolygon.java | 13 ++++++++++- 4 files changed, 48 insertions(+), 13 deletions(-) (limited to 'java') diff --git a/java/AndroidManifest.xml.in b/java/AndroidManifest.xml.in index df00e497f8f..5c9714efab8 100644 --- a/java/AndroidManifest.xml.in +++ b/java/AndroidManifest.xml.in @@ -207,7 +207,7 @@ along with GNU Emacs. If not, see . --> + android:targetSdkVersion="35"/> = Build.VERSION_CODES.VANILLA_ICE_CREAM) + layout.setFitsSystemWindows (true); + /* Maybe start the Emacs service if necessary. */ EmacsService.startEmacsService (this); diff --git a/java/org/gnu/emacs/EmacsFillPolygon.java b/java/org/gnu/emacs/EmacsFillPolygon.java index 6bc8333984a..d99fdd97782 100644 --- a/java/org/gnu/emacs/EmacsFillPolygon.java +++ b/java/org/gnu/emacs/EmacsFillPolygon.java @@ -26,8 +26,11 @@ import android.graphics.Point; import android.graphics.Rect; import android.graphics.RectF; +import android.os.Build; + public final class EmacsFillPolygon { + @SuppressWarnings ("deprecation") /* computeBounds (IZ) */ public static void perform (EmacsDrawable drawable, EmacsGC gc, Point points[]) { @@ -60,7 +63,15 @@ public final class EmacsFillPolygon /* Compute the damage rectangle. */ rectF = new RectF (0, 0, 0, 0); - path.computeBounds (rectF, true); + + /* computeBounds (IZ) is deprecated but the incompetence of + Android's release management has caused its replacement to be + omitted from published header files. */ + + /* if (Build.VERSION.SDK_INT < Build.VERSION_CODES.VANILLA_ICE_CREAM) */ + path.computeBounds (rectF, true); + /* else + path.computeBounds (rectF); */ rect = new Rect ((int) Math.floor (rectF.left), (int) Math.floor (rectF.top), -- cgit v1.3