diff options
| author | Po Lu | 2023-08-01 21:06:06 +0800 |
|---|---|---|
| committer | Po Lu | 2023-08-01 21:06:06 +0800 |
| commit | e41349dd93ffec2b1e383cb4c4dfdb59f6e7edac (patch) | |
| tree | 0fcd44202d335331c554ebab0730467329729ad0 /java | |
| parent | b022398b8f0a03f0e1b3ec8df41a439cdbe5bd19 (diff) | |
| download | emacs-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.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 | |||
| 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 | }; |