mirror of
git://git.sv.gnu.org/emacs.git
synced 2026-03-09 08:21:30 -07:00
Respect display names of Android content URIs
* java/org/gnu/emacs/EmacsNative.java (displayNameHash): New function. * java/org/gnu/emacs/EmacsService.java (buildContentName): New argument RESOLVER. Generate names holding URI's display name if available. All callers changed. * lisp/international/mule-cmds.el (set-default-coding-systems): Fix file name coding system as utf-8-unix on Android as on Mac OS. * src/androidvfs.c (enum android_vnode_type): New enum ANDROID_VNODE_CONTENT_AUTHORITY_NAMED. (android_content_name): Register root directories for this new type. (displayNameHash): New function. (android_get_content_name): New argument WITH_CHECKSUM. If present, treat the final two components as a pair of checksum and display name, and verify and exclude the two. (android_authority_name): Provide new argument as appropriate. (android_authority_initial_name): New function.
This commit is contained in:
parent
ce29ae32d0
commit
f2e239c6a7
5 changed files with 231 additions and 25 deletions
|
|
@ -252,7 +252,7 @@ public final class EmacsOpenActivity extends Activity
|
|||
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT)
|
||||
{
|
||||
content = EmacsService.buildContentName (uri);
|
||||
content = EmacsService.buildContentName (uri, getContentResolver ());
|
||||
return content;
|
||||
}
|
||||
|
||||
|
|
@ -423,6 +423,7 @@ public final class EmacsOpenActivity extends Activity
|
|||
/* Obtain the intent that started Emacs. */
|
||||
intent = getIntent ();
|
||||
action = intent.getAction ();
|
||||
resolver = getContentResolver ();
|
||||
|
||||
if (action == null)
|
||||
{
|
||||
|
|
@ -536,7 +537,7 @@ public final class EmacsOpenActivity extends Activity
|
|||
if ((scheme = uri.getScheme ()) != null
|
||||
&& scheme.equals ("content"))
|
||||
{
|
||||
tem1 = EmacsService.buildContentName (uri);
|
||||
tem1 = EmacsService.buildContentName (uri, resolver);
|
||||
attachmentString = ("'(\"" + (tem1.replace ("\\", "\\\\")
|
||||
.replace ("\"", "\\\"")
|
||||
.replace ("$", "\\$"))
|
||||
|
|
@ -568,7 +569,8 @@ public final class EmacsOpenActivity extends Activity
|
|||
&& (scheme = uri.getScheme ()) != null
|
||||
&& scheme.equals ("content"))
|
||||
{
|
||||
tem1 = EmacsService.buildContentName (uri);
|
||||
tem1
|
||||
= EmacsService.buildContentName (uri, resolver);
|
||||
builder.append ("\"");
|
||||
builder.append (tem1.replace ("\\", "\\\\")
|
||||
.replace ("\"", "\\\"")
|
||||
|
|
@ -609,7 +611,6 @@ public final class EmacsOpenActivity extends Activity
|
|||
underlying file, but it cannot be found without
|
||||
opening the file and doing readlink on its file
|
||||
descriptor in /proc/self/fd. */
|
||||
resolver = getContentResolver ();
|
||||
fd = null;
|
||||
|
||||
try
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue