From 8dc00dc22250b383e7692fc761cbca25b014aa8a Mon Sep 17 00:00:00 2001 From: Po Lu Date: Sat, 18 May 2024 20:45:35 +0800 Subject: Housekeeping around androidselect.c * 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. --- java/org/gnu/emacs/EmacsClipboard.java | 4 +-- java/org/gnu/emacs/EmacsSdk11Clipboard.java | 47 +++++++++-------------------- java/org/gnu/emacs/EmacsSdk8Clipboard.java | 29 ++++-------------- 3 files changed, 22 insertions(+), 58 deletions(-) (limited to 'java/org') diff --git a/java/org/gnu/emacs/EmacsClipboard.java b/java/org/gnu/emacs/EmacsClipboard.java index 86553f478ed..2560ef793c2 100644 --- a/java/org/gnu/emacs/EmacsClipboard.java +++ b/java/org/gnu/emacs/EmacsClipboard.java @@ -27,10 +27,10 @@ import android.os.Build; public abstract class EmacsClipboard { - public abstract void setClipboard (byte[] bytes); + public abstract void setClipboard (String string); public abstract int ownsClipboard (); public abstract boolean clipboardExists (); - public abstract byte[] getClipboard (); + public abstract String getClipboard (); public abstract String[] getClipboardTargets (); public abstract AssetFileDescriptor getClipboardData (String target); diff --git a/java/org/gnu/emacs/EmacsSdk11Clipboard.java b/java/org/gnu/emacs/EmacsSdk11Clipboard.java index dfc714476ec..e179551c14d 100644 --- a/java/org/gnu/emacs/EmacsSdk11Clipboard.java +++ b/java/org/gnu/emacs/EmacsSdk11Clipboard.java @@ -86,32 +86,23 @@ public final class EmacsSdk11Clipboard extends EmacsClipboard } } - /* Set the clipboard text to CLIPBOARD, a string in UTF-8 - encoding. */ + /* Save the STRING into the clipboard by way of text copied by the + user. */ @Override public synchronized void - setClipboard (byte[] bytes) + setClipboard (String string) { ClipData data; - String string; - try - { - string = new String (bytes, "UTF-8"); - data = ClipData.newPlainText ("Emacs", string); - manager.setPrimaryClip (data); - ownsClipboard = true; - - /* onPrimaryClipChanged will be called again. Use this - variable to keep track of how many times the clipboard has - been changed. */ - ++clipboardChangedCount; - } - catch (UnsupportedEncodingException exception) - { - Log.w (TAG, "setClipboard: " + exception); - } + data = ClipData.newPlainText ("Emacs", string); + manager.setPrimaryClip (data); + ownsClipboard = true; + + /* onPrimaryClipChanged will be called again. Use this + variable to keep track of how many times the clipboard has + been changed. */ + ++clipboardChangedCount; } /* Return whether or not Emacs owns the clipboard. Value is 1 if @@ -141,7 +132,7 @@ public final class EmacsSdk11Clipboard extends EmacsClipboard NULL if no content is available. */ @Override - public byte[] + public String getClipboard () { ClipData clip; @@ -154,18 +145,8 @@ public final class EmacsSdk11Clipboard extends EmacsClipboard return null; context = EmacsService.SERVICE; - - try - { - text = clip.getItemAt (0).coerceToText (context); - return text.toString ().getBytes ("UTF-8"); - } - catch (UnsupportedEncodingException exception) - { - Log.w (TAG, "getClipboard: " + exception); - } - - return null; + text = clip.getItemAt (0).coerceToText (context); + return text.toString (); } /* Return an array of targets currently provided by the diff --git a/java/org/gnu/emacs/EmacsSdk8Clipboard.java b/java/org/gnu/emacs/EmacsSdk8Clipboard.java index 344ec6f7997..afd235babf5 100644 --- a/java/org/gnu/emacs/EmacsSdk8Clipboard.java +++ b/java/org/gnu/emacs/EmacsSdk8Clipboard.java @@ -52,21 +52,14 @@ public final class EmacsSdk8Clipboard extends EmacsClipboard = (ClipboardManager) context.getSystemService (what); } - /* Set the clipboard text to CLIPBOARD, a string in UTF-8 - encoding. */ + /* Save the STRING into the clipboard by way of text copied by the + user. */ @Override public void - setClipboard (byte[] bytes) + setClipboard (String string) { - try - { - manager.setText (new String (bytes, "UTF-8")); - } - catch (UnsupportedEncodingException exception) - { - Log.w (TAG, "setClipboard: " + exception); - } + manager.setText (string); } /* Return whether or not Emacs owns the clipboard. Value is 1 if @@ -93,7 +86,7 @@ public final class EmacsSdk8Clipboard extends EmacsClipboard NULL if no content is available. */ @Override - public byte[] + public String getClipboard () { String string; @@ -105,17 +98,7 @@ public final class EmacsSdk8Clipboard extends EmacsClipboard return null; string = text.toString (); - - try - { - return string.getBytes ("UTF-8"); - } - catch (UnsupportedEncodingException exception) - { - Log.w (TAG, "getClipboard: " + exception); - } - - return null; + return string; } /* Return an array of targets currently provided by the -- cgit v1.2.1