aboutsummaryrefslogtreecommitdiffstats
path: root/java
diff options
context:
space:
mode:
authorPo Lu2023-08-01 21:06:06 +0800
committerPo Lu2023-08-01 21:06:06 +0800
commite41349dd93ffec2b1e383cb4c4dfdb59f6e7edac (patch)
tree0fcd44202d335331c554ebab0730467329729ad0 /java
parentb022398b8f0a03f0e1b3ec8df41a439cdbe5bd19 (diff)
downloademacs-e41349dd93ffec2b1e383cb4c4dfdb59f6e7edac.tar.gz
emacs-e41349dd93ffec2b1e383cb4c4dfdb59f6e7edac.zip
Update Android port
* doc/emacs/android.texi (Android File System): Describe how to access real files named /assets or /contents if so required. * java/org/gnu/emacs/EmacsService.java (validAuthority): * src/android.c (android_init_emacs_service): * src/android.h: New function. * src/androidvfs.c (android_saf_valid_authority_p): New function. Wrap the Java function. (android_saf_root_stat, android_saf_root_access): Don't return success if no authority by vp->authority's name exists. (android_saf_tree_from_name): Check validity of string data before giving it to JNI.
Diffstat (limited to 'java')
-rw-r--r--java/org/gnu/emacs/EmacsService.java25
1 files changed, 25 insertions, 0 deletions
diff --git a/java/org/gnu/emacs/EmacsService.java b/java/org/gnu/emacs/EmacsService.java
index 3c1bb0855f4..8554dadd06e 100644
--- a/java/org/gnu/emacs/EmacsService.java
+++ b/java/org/gnu/emacs/EmacsService.java
@@ -1769,4 +1769,29 @@ public final class EmacsService extends Service
1769 ? DocumentsContract.getDocumentId (name) 1769 ? DocumentsContract.getDocumentId (name)
1770 : null); 1770 : null);
1771 } 1771 }
1772
1773 /* Return if there is a content provider by the name of AUTHORITY
1774 supplying at least one tree URI Emacs retains persistent rights
1775 to access. */
1776
1777 public boolean
1778 validAuthority (String authority)
1779 {
1780 List<UriPermission> permissions;
1781 Uri uri;
1782
1783 permissions = resolver.getPersistedUriPermissions ();
1784
1785 for (UriPermission permission : permissions)
1786 {
1787 uri = permission.getUri ();
1788
1789 if (DocumentsContract.isTreeUri (uri)
1790 && permission.isReadPermission ()
1791 && uri.getAuthority ().equals (authority))
1792 return true;
1793 }
1794
1795 return false;
1796 }
1772}; 1797};