app/internal/window: [Android] use app context for clipboard access

The Activity context may not be available, so it's safer and simpler
to use the always available app context.

Signed-off-by: Elias Naur <mail@eliasnaur.com>
This commit is contained in:
Elias Naur
2020-06-13 14:50:46 +02:00
parent 65d9a9d1f1
commit 2f521899c9
3 changed files with 30 additions and 23 deletions
+17
View File
@@ -2,6 +2,8 @@
package org.gioui;
import android.content.ClipboardManager;
import android.content.ClipData;
import android.content.Context;
import java.io.UnsupportedEncodingException;
@@ -36,4 +38,19 @@ public final class Gio {
}
static private native void runGoMain(byte[] dataDir, Context context);
static void writeClipboard(Context ctx, String s) {
ClipboardManager m = (ClipboardManager)ctx.getSystemService(Context.CLIPBOARD_SERVICE);
m.setPrimaryClip(ClipData.newPlainText(null, s));
}
static String readClipboard(Context ctx) {
ClipboardManager m = (ClipboardManager)ctx.getSystemService(Context.CLIPBOARD_SERVICE);
ClipData c = m.getPrimaryClip();
if (c == null || c.getItemCount() < 1) {
return null;
}
return c.getItemAt(0).coerceToText(ctx).toString();
}
}