diff options
| author | Po Lu <luangruo@yahoo.com> | 2023-08-01 21:06:06 +0800 |
|---|---|---|
| committer | Po Lu <luangruo@yahoo.com> | 2023-08-01 21:06:06 +0800 |
| commit | e41349dd93ffec2b1e383cb4c4dfdb59f6e7edac (patch) | |
| tree | 0fcd44202d335331c554ebab0730467329729ad0 /java/org/gnu/emacs/EmacsService.java | |
| parent | b022398b8f0a03f0e1b3ec8df41a439cdbe5bd19 (diff) | |
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/org/gnu/emacs/EmacsService.java')
| -rw-r--r-- | java/org/gnu/emacs/EmacsService.java | 25 |
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 ? DocumentsContract.getDocumentId (name) : null); } + + /* Return if there is a content provider by the name of AUTHORITY + supplying at least one tree URI Emacs retains persistent rights + to access. */ + + public boolean + validAuthority (String authority) + { + List<UriPermission> permissions; + Uri uri; + + permissions = resolver.getPersistedUriPermissions (); + + for (UriPermission permission : permissions) + { + uri = permission.getUri (); + + if (DocumentsContract.isTreeUri (uri) + && permission.isReadPermission () + && uri.getAuthority ().equals (authority)) + return true; + } + + return false; + } }; |
