aboutsummaryrefslogtreecommitdiffstats
path: root/java (follow)
Commit message (Collapse)AuthorAgeFilesLines
* ; * java/AndroidManifest.xml.in (Version-code): Update for Emacs 30.0.50.Po Lu2025-03-061-1/+1
|
* Move java/incrementing-version-code to AndroidManifest.xml.inPo Lu2025-03-052-12/+15
| | | | | | | | | | | * admin/admin.el (admin-android-version-code-regexp): New variable. (set-version): Modify AndroidManifest.xml.in instead. * java/AndroidManifest.xml.in (Version-code): Define version code. * java/incrementing-version-code: Delete file.
* Provide an Android version code derived from the Emacs versionPeter Oliver2025-03-051-0/+12
| | | | | | | | | | | | | | | | | | The version code is intended to be an integer that increments for each Android package release (https://developer.android.com/studio/publish/versioning#versioningsettings). If we keep this updated under version control, then F-Droid (a third-party Android package repository), can watch for that, and use it to automatically build Emacs packages for Android each time a new Emacs release is tagged (https://f-droid.org/en/docs/Build_Metadata_Reference/#UpdateCheckData). * admin/admin.el (set-version): Update version code in java/incrementing-version-code * java/incrementing-version-code: New file containing an Android version code corresponding to the current Emacs version. (bug#75809)
* Fix remaining Android bugs reported over the past monthsPo Lu2025-02-194-22/+69
| | | | | | | | | | | | | | | | | | | | | | | | | | | | * java/org/gnu/emacs/EmacsActivity.java (attachWindow): Guarantee that child windows promoted to toplevels receive layout parameters that direct them to receive their parents' dimensions. Otherwise, the size of the window as a child is retained on Huawei HarmonyOS 4.2 and possibly other Android distributions. * java/org/gnu/emacs/EmacsService.java (updateCursorAnchorInfo): Run anchor updates on the UI thread, as `InputMethodManager#updateCursorAnchorInfo' is liable to call `View#requestLayout'. * java/org/gnu/emacs/EmacsView.java (onMeasure): Always call `measureChildren', or child frames' onLayout handlers might not be invoked after they request a layout cycle and are duly processed in `onLayout'. (swapBuffers): Delete erroneous commentary. * java/org/gnu/emacs/EmacsWindow.java (viewLayout): If overrideRedirect, don't inadvertently clear rect.left and rect.top by recording the window's WM window-relative position. Fix typos. (reparentTo): Invalidate focus after transferring frame. (translateCoordinates): Account for override-redirect windows. Mostly important for mouse-drag-and-drop-region.
* Properly move existing tooltips on AndroidPo Lu2025-02-191-2/+11
| | | | | | * java/org/gnu/emacs/EmacsWindow.java (requestViewLayout): If an override redirect window, additionally notify the window manager of layout changes.
* Fix crash in frame deletion on AndroidPo Lu2025-02-171-2/+8
| | | | | * java/org/gnu/emacs/EmacsWindow.java (destroyHandle): Invalidate the input focus in the UI thread, as is proper.
* Update copyright year to 2025Stefan Kangas2025-01-0258-58/+58
| | | | Run "TZ=UTC0 admin/update-copyright".
* Register for more Intents actions on AndroidPo Lu2024-08-092-5/+6
| | | | | | | | * java/AndroidManifest.xml.in <EmacsOpenActivity>: Register for SEND Intents with mailto URIs. * java/org/gnu/emacs/EmacsOpenActivity.java (onCreate): Use Intent constants rather than string literals.
* ; Fix typosStefan Kangas2024-07-181-1/+1
|
* Port better to Android 3.0Po Lu2024-07-181-4/+4
| | | | | | * java/org/gnu/emacs/EmacsNoninteractive.java (main): Use the old getPackageInfo calling convention if it exists rather than on Android 2.3.3 and earlier.
* Do not set LD_LIBRARY_PATH during Android initializationPo Lu2024-07-141-113/+137
| | | | | | | | | | | | | | | | | | * doc/emacs/android.texi (Android Environment): Adjust documentation to match. * java/org/gnu/emacs/EmacsNoninteractive.java (main1): New function. Remove initialization of EmacsNative hither. (main): Acquire an ApplicationInfo or LoadedApk, as the case may be on the host system, derive a ClassLoader from the result, and load and call `main1' from within this class loader. * src/android-emacs.c (main): * src/android.c (setEmacsParams): Do not override LD_LIBRARY_PATH or set EMACS_LD_LIBRARY_PATH. This enables Emacs to execute subprocesses in certain "fortified" Android systems, amongst other things.
* Take precautions against ill-formed content URIsPo Lu2024-07-111-1/+17
| | | | | | * java/org/gnu/emacs/EmacsService.java (openContentUri) (checkContentUri): Verify that URIs derived from user-provided file names can be parsed before attempting to open them.
* Correct conditions for iconification on AndroidPo Lu2024-07-081-14/+9
| | | | | | | | * java/org/gnu/emacs/EmacsActivity.java (EmacsActivity) <isPaused>: Rename to <isStopped>. (attachWindow): Adjust to match. (onPause): Delete function. (onStop): Deem frames iconified after calls to onStop instead.
* * java/res/mipmap-v26/emacs_icon.xml: Define monospace icon.Po Lu2024-07-011-0/+1
|
* Improve Android "adaptive icon"Po Lu2024-06-302-27/+25
| | | | | | | * java/res/drawable/emacs_background.xml: * java/res/drawable/emacs_foreground.xml: Transform borders and gradient colors to better align with the original.
* Prevent crashes and related issues if initial activity is destroyed on AndroidPo Lu2024-06-272-7/+47
| | | | | | | | | | | | * java/org/gnu/emacs/EmacsWindow.java (EmacsWindow) <initialWindowCreated>: New variable. (EmacsWindow): If the initial frame has not yet been created, set attachmentToken to -1. * java/org/gnu/emacs/EmacsWindowManager.java (registerWindow): When the window's attachment token is -1 (i.e., it is the default window), start EmacsActivity rather than EmacsMultitaskActivity. Catch exceptions around startActivity.
* Fix omission of updates to child frames on AndroidPo Lu2024-06-242-23/+17
| | | | | | | | | | | | | * java/org/gnu/emacs/EmacsView.java (onAttachedFromWindow): Force a layout cycle rather than report exposure immediately. (prepareForLayout): Delete function. * java/org/gnu/emacs/EmacsWindow.java (mapWindow): Remove redundant calls to prepareForLayout. * src/androidterm.c (handle_one_android_event): Do not swap buffers when exposure is registered by a frame only partially updated.
* Avoid races between the tooltip and compositor on X and AndroidPo Lu2024-06-191-1/+1
| | | | | | | | | | * java/org/gnu/emacs/EmacsView.java (onLayout): Don't send exposure events when the window is still to be attached. * src/androidfns.c (Fx_show_tip): * src/xfns.c (Fx_show_tip): Block async input around initial frame update.
* Fix window class of Android tooltipsPo Lu2024-06-181-1/+1
| | | | | * java/org/gnu/emacs/EmacsWindow.java (getWindowLayoutParams): Declare as a panel, rather than an attached dialog.
* * java/Makefile.in (emacs.apk-in): Don't compress *.gz files on SDK 8.Po Lu2024-06-181-1/+1
|
* Reinforce bitmap reconfiguration on AndroidPo Lu2024-06-171-68/+93
| | | | | | | | | | | | | | | | | | * java/org/gnu/emacs/EmacsView.java (EmacsView) <unswapped>: New field in which to record whether the back buffer has received contents beyond those present at the last buffer swap. <dimensionsLock>: Delete field. (onAttachedToWindow, onLayout, handleDirtyBitmap) (prepareForLayout): Rather, synchronize window dimensions with the view. (getCanvas, getBitmap): Do not reconfigure the back buffer bitmap if such outstanding data exists. (postSwapBuffers): New function. (swapBuffers): If such outstanding data exists and the back bufferis pending reconfiguration, recreate the back buffer and report exposure. * src/androidterm.c (handle_one_android_event): Fix indentation.
* ; Fix typosStefan Kangas2024-06-161-2/+2
|
* Minor adjustments to battery.el on AndroidPo Lu2024-06-161-2/+2
| | | | | | | | | | | | | * src/android.c (android_query_battery): * java/org/gnu/emacs/EmacsService.java (queryBattery19) (queryBattery): Reorder items in value for consistency with Fandroid_query_battery. * lisp/battery.el (battery-status-function): Select battery-android only when android-query-battery is present. (battery-android): Return temperature and correct values of power source constants.
* Simplify bitmap reallocation on AndroidPo Lu2024-06-161-18/+17
| | | | | | | * java/org/gnu/emacs/EmacsView.java: Update outdated commentary. (handleDirtyBitmap): Don't copy contents of the previous bitmap to the new. (onLayout): Unconditionally expose upon layout changes.
* Restore omitted dependencyPo Lu2024-06-121-1/+2
| | | | | * java/Makefile.in (install_temp): Depend on $(libsrc)/asset-directory-tool.
* Restore functionality on Android 2.2Po Lu2024-06-121-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * java/Makefile.in (install_temp): Do not compress directory-tree and generate such files in a special format that stores file sizes. * lib-src/asset-directory-tool.c (struct directory_tree): New field st_size. (need_file_size): New variable. (main_1, main_2, main): Write file sizes before sibling offsets if `--api-8' is specified. * src/android-asset.h (struct android_asset_manager): New field open. (struct android_asset): New field name. (AAssetManager_fromJava): Load AssetManager#open. (AAssetManager_open): If a directory tree has already been loaded, search for a matching asset and load its size thence, to avoid the requirement of an AssetFileDescriptor. (AAsset_close): Don't assume asset->fd exists. Release asset->name. (AAsset_getLength): Likewise. (android_asset_create_stream): If asset->name exists, call AssetManager#open, in order to open compressed files. * src/androidvfs.c (OLD_ANDROID_ASSETS): Define to 1 on API 8. (android_extract_long, android_scan_directory_tree): Mark arguments as const. Adjust offsets when OLD_ANDROID_ASSETS. (android_is_directory, android_init_assets, android_afs_readdir): Likewise. * src/lread.c (lread_fstat): Define to sys_fstat, not fstat.
* ; * java/Makefile.in: Fix typo.Po Lu2024-06-121-1/+1
|
* Improve compression of Emacs packages on Android 2.2Po Lu2024-06-122-31/+100
| | | | | | | | | | | | | | | | | | | | | | | | * configure.ac (ZIP): Search for a `zip' executable and substitute the same if targeting SDK 8. * java/INSTALL: Document new requirement. * java/Makefile.in (GZIP_PROG, ZIP): New substitutions. (.PHONY): Delete references to directory-tree. (install_temp): On SDK 8 and earlier, compress large *.el and Info files with gzip, and divide install_temp into three separate directories, with one for large files, another for gzipped files, and one more for the remainder. (install_temp/assets/directory-tree, install_temp/assets/version) (install_temp/assets/build_info): Merge these rules into install_tmp, that they may execute before the assets directory is split. (emacs.apk-in): Package each directory separately, accounting for their varied compression requirements. * lisp/term/android-win.el (input-decode-map): Define select to return in input-decode-map.
* Eliminate some redundant synchronization on AndroidPo Lu2024-06-112-7/+15
| | | | | | | | * java/org/gnu/emacs/EmacsService.java (resetIC): Return on all versions of Android if the connection need not be reset. * java/org/gnu/emacs/EmacsView.java (getICMode, setICMode): Remove needless synchronization.
* Eliminate Makefile racePo Lu2024-06-071-2/+6
| | | | | | | * java/Makefile.in (cf-stamp): Don't separately depend on NDK_BUILD_SHARED, as this renders make liable to descend into cross/ndk-build twice in different processes. (clean): Don't remove nonexistent file.
* ; * java/INSTALL (LIBRSVG): Typo.Po Lu2024-06-071-1/+1
|
* Document compilation of librsvg on AndroidPo Lu2024-06-071-13/+45
| | | | | | * java/INSTALL (LIBRSVG): New section. (BUILDING WITH OLD NDK VERSIONS): Update recommended invocation of configure in the case of a combined toolchain.
* * java/AndroidManifest.xml.in: Revert portions of last change.Po Lu2024-06-061-2/+0
|
* Spelling fixesPaul Eggert2024-06-046-8/+8
|
* Provide additional Android metadataPo Lu2024-06-041-0/+5
| | | | | | | * java/AndroidManifest.xml.in: Enable preserving user data beyond uninstallation, restarting activities without persiting state, increase maximum number of simultaneously open activities, and provide a sensible category.
* Enable downgrading between this and future releases of EmacsPo Lu2024-06-041-6/+10
| | | | * java/AndroidManifest.xml.in: Fix `versionCode' at 30.
* Trim redundancies from EmacsTileObjectPo Lu2024-06-021-4/+1
| | | | | | * java/org/gnu/emacs/EmacsTileObject.java (EmacsTileObject) <colorFilter>: Delete unused field. <paint>: Qualify as `static'.
* Work around one Android bug and document anotherPo Lu2024-05-232-13/+23
| | | | | | | | | | | * etc/PROBLEMS (Runtime problems specific to Android): Document deficiency of "Android Keyboard (AOSP)." * java/org/gnu/emacs/EmacsView.java (showOnScreenKeyboard): Revert yesterday's change. * java/org/gnu/emacs/EmacsWindow.java (toggleOnScreenKeyboard): Sync with the UI thread after displaying the on-screen keyboard.
* Improve compatibility with Android's default text editorPo Lu2024-05-221-0/+17
| | | | | | | | * java/org/gnu/emacs/EmacsView.java (showOnScreenKeyboard): Request a selection update if `inputConnection' has been established, to more closely emulate the OS text editing widget. (onCreateInputConnection) [EmacsService.DEBUG_IC]: Print current selection values before reporting them.
* Housekeeping around androidselect.cPo Lu2024-05-183-58/+22
| | | | | | | | | | | | | | | * java/org/gnu/emacs/EmacsClipboard.java (setClipboard) (getClipboard): * java/org/gnu/emacs/EmacsSdk11Clipboard.java (setClipboard) (getClipboard): * java/org/gnu/emacs/EmacsSdk8Clipboard.java (setClipboard) (getClipboard): Save and return Strings rather than byte arrays. * src/androidselect.c (android_init_emacs_clipboard) (Fandroid_set_clipboard, Fandroid_get_clipboard): Adjust to match.
* Communicate frame titles to the window manager on AndroidPo Lu2024-05-132-1/+69
| | | | | | | | | | | | | | | | | | | | | | | | | | | | * java/org/gnu/emacs/EmacsActivity.java (detachWindow) (attachWindow): Call updateWmName. (updateWmName): New function; transfer wm name from the window attached to the task's description. * java/org/gnu/emacs/EmacsWindow.java (EmacsWindow) <wmName>: New field. (setWmName): New function. * src/android.c (android_init_emacs_window): Link to new function. (android_set_wm_name): New function. * src/android.h (struct android_emacs_service): Delete unused entries. * src/androidfns.c (android_set_name_internal, android_set_name) (android_implicitly_set_name, android_explicitly_set_name) (android_set_title): Port from X. * src/androidterm.c (android_term_init): Compute default frame title. * src/androidterm.h (struct android_display_info) <x_id_name>: New field.
* Additional changes to processing of Num Lock on AndroidPo Lu2024-05-122-31/+57
| | | | | | | | | | | | | * java/org/gnu/emacs/EmacsView.java (onKeyDown, onKeyMultiple) (onKeyDown): Disregard Num and Scroll Lock keys, and return value of window functions to the system. * java/org/gnu/emacs/EmacsWindow.java (eventModifiers): Return normalized meta state, not only those bits the system considers modifiers. (onKeyDown, onKeyUp): Ignore numpad keys to which no base characters are assigned, so that the system may generate the proper action keys instead.
* Correct earlier changes to processing of Num Lock on AndroidPo Lu2024-05-121-10/+4
| | | | | | * java/org/gnu/emacs/EmacsWindow.java (onKeyDown, onKeyUp): Cease stripping META_NUM_LOCK_ON and META_SCROLL_LOCK_ON from meta masks reported to getUnicodeChar.
* Delete unused functionsPo Lu2024-05-111-6/+0
| | | | | | | * java/org/gnu/emacs/EmacsNative.java (dup, close): * src/android.c (dup, close): Delete functions no longer referenced.
* Remove redundant encoding of strings in androidvfs.cPo Lu2024-05-101-12/+5
| | | | | | | | | * java/org/gnu/emacs/EmacsService.java (getDocumentTrees): Accept PROVIDER as a String. * src/android.c (android_init_emacs_service): * src/androidvfs.c (android_saf_root_opendir): Adjust to match.
* Fix earlier change to content URI resolution on AndroidPo Lu2024-05-101-1/+4
| | | | | | | | | * java/org/gnu/emacs/EmacsService.java (openContentUri): Return -1 if fd be NULL. * src/androidvfs.c (android_authority_open): Detect SecurityException and suchlike. (android_vfs_init): Initialize exception classes on Android 4.4.
* Fix hang after failed yank-media on AndroidPo Lu2024-05-083-27/+11
| | | | | | | | | | | | | | | | | | * java/org/gnu/emacs/EmacsClipboard.java (getClipboardTargets) (getClipboardData): * java/org/gnu/emacs/EmacsSdk11Clipboard.java (getClipboardTargets, getClipboardData): * java/org/gnu/emacs/EmacsSdk8Clipboard.java (getClipboardTargets, getClipboardData): Return string data as Strings rather than byte arrays. * src/androidselect.c (android_init_emacs_clipboard) (Fandroid_get_clipboard_targets): Adjust to match. (extract_fd_offsets): Remove duplicated semicolon. (Fandroid_get_clipboard_data): Call unblock_input before returning if extract_fd_offsets fails.
* ; * java/org/gnu/emacs/EmacsTileObject.java: Fix copyright dates.Po Lu2024-05-061-1/+1
|
* Optimize stipples on AndroidPo Lu2024-05-062-11/+105
| | | | | | | | | | * java/org/gnu/emacs/EmacsGC.java (EmacsGC) <tileObject>: Change type to EmacsTileObject. (markDirty): Create an EmacsTileObject rather than a BitmapDrawable. * java/org/gnu/emacs/EmacsTileObject.java: New file, significantly leaner than BitmapDrawable.
* Fix inadvertent removal in EmacsWindowPo Lu2024-05-051-0/+4
| | | | | * java/org/gnu/emacs/EmacsWindow.java (onKeyUp): Send KeyPress events upon deferred KEYCODE_BACK.