From 90ab682a441002fca1192d7eab04a2397d3957d4 Mon Sep 17 00:00:00 2001 From: Greg Date: Sat, 5 Sep 2020 14:12:29 -0400 Subject: [PATCH] Port to gio gioui.org@20200829. --- Ble.jar | Bin 7388 -> 8114 bytes BlessedConnect.java | 17 +++++++++++++---- ble_android.go | 11 ++++------- ble_darwin.go | 4 +--- go.mod | 2 +- go.sum | 2 ++ jni_android.c | 19 ++++++++++++++----- 7 files changed, 35 insertions(+), 20 deletions(-) diff --git a/Ble.jar b/Ble.jar index 5d85407dbb3136e9e5ce9db49fa00ba6f53909d7..f461df29d6eb383fafd381fae2dadf71d2f70d80 100644 GIT binary patch delta 7149 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 BMK1sV delta 6511 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 I^)KW90oQaY@c;k- diff --git a/BlessedConnect.java b/BlessedConnect.java index 769b612..bbb778d 100644 --- a/BlessedConnect.java +++ b/BlessedConnect.java @@ -1,6 +1,7 @@ package st.wow.git.ble; import java.lang.String; +import java.lang.Runnable; import java.util.List; import java.util.UUID; import android.app.Activity; @@ -19,6 +20,7 @@ import android.content.Intent; import android.content.IntentFilter; import android.content.pm.PackageManager; import android.Manifest; +import android.os.Handler; import android.util.Log; import android.view.View; @@ -40,10 +42,17 @@ public class BlessedConnect extends Fragment { public void register(View view) { Log.d("gio", "BlessedConnect: register()"); - Activity act = (Activity)view.getContext(); - FragmentTransaction ft = act.getFragmentManager().beginTransaction(); - ft.add(this, "BlessedConnect"); - ft.commitNow(); + Context ctx = view.getContext(); + Handler handler = new Handler(ctx.getMainLooper()); + BlessedConnect inst = this; + handler.post(new Runnable() { + public void run() { + Activity act = (Activity)ctx; + FragmentTransaction ft = act.getFragmentManager().beginTransaction(); + ft.add(inst, "BlessedConnect"); + ft.commitNow(); + } + }); } @Override public void onAttach(Context ctx) { diff --git a/ble_android.go b/ble_android.go index aa1155b..c59daca 100644 --- a/ble_android.go +++ b/ble_android.go @@ -223,15 +223,12 @@ func NewBLE() *BLE { } //Enable -func (b *BLE) Enable(w *app.Window) { +func (b *BLE) Enable(view uintptr) { log.Printf("ble.Enable()") setJVM(app.JavaVM()) - go w.Do(func(view uintptr) { - log.Printf("ble.Enable(): inside w.Do()") - runInJVM(func(env *C.JNIEnv) { - log.Printf("ble.Enable(): inside runInJVM()") - C.registerFragment(env, (C.jobject)(unsafe.Pointer(view))) - }) + runInJVM(func(env *JNIEnv) { + log.Printf("ble.Enable(): inside runInJVM()") + C.registerFragment(env, (C.jobject)(unsafe.Pointer(view))) }) } diff --git a/ble_darwin.go b/ble_darwin.go index a06cf51..e9c60f6 100644 --- a/ble_darwin.go +++ b/ble_darwin.go @@ -8,8 +8,6 @@ import ( "time" "unsafe" - "gioui.org/app" - "git.wow.st/gmp/ble/gatt" "git.wow.st/gmp/ble/ns" ) @@ -204,7 +202,7 @@ func NewBLE() *BLE { } //Enable is not required for Darwin. -func (b *BLE) Enable(w *app.Window) { +func (b *BLE) Enable(v uintptr) { } // Core Bluetooth callback functions diff --git a/go.mod b/go.mod index 488a5c3..a86edfb 100644 --- a/go.mod +++ b/go.mod @@ -2,4 +2,4 @@ module git.wow.st/gmp/ble go 1.13 -require gioui.org v0.0.0-20200619121558-88ced59dad93 +require gioui.org v0.0.0-20200829162755-829ee4559c5a diff --git a/go.sum b/go.sum index 889df00..4360fbb 100644 --- a/go.sum +++ b/go.sum @@ -5,6 +5,8 @@ gioui.org v0.0.0-20200612151431-2dc19a36959c h1:sGUKyRMv2bbfbsRyG8ghOI12l+WCGta+ gioui.org v0.0.0-20200612151431-2dc19a36959c/go.mod h1:AHI9rFr6AEEHCb8EPVtb/p5M+NMJRKH58IOp8O3Je04= gioui.org v0.0.0-20200619121558-88ced59dad93 h1:Llh4Tigdbu++FrRXL/KzqDHnH2Q5LPmAEk0djh6NLwk= gioui.org v0.0.0-20200619121558-88ced59dad93/go.mod h1:jiUwifN9cRl/zmco43aAqh0aV+s9GbhG13KcD+gEpkU= +gioui.org v0.0.0-20200829162755-829ee4559c5a h1:mciXRGzQwU0TbgCILZzl6L1nYIWU31lDGIb+8RYige8= +gioui.org v0.0.0-20200829162755-829ee4559c5a/go.mod h1:Y+uS7hHMvku1Q+ooaoq6fYD5B2LGoT8JtFgvmYmRzTw= github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= diff --git a/jni_android.c b/jni_android.c index 5e72b6f..8c3331e 100644 --- a/jni_android.c +++ b/jni_android.c @@ -5,11 +5,20 @@ void registerFragment(JNIEnv *env, jobject view) { - jclass cls = (*env)->FindClass(env, "st/wow/git/ble/BlessedConnect"); - jmethodID reg = (*env)->GetMethodID(env, cls, "register", "(Landroid/view/View;)V"); - jmethodID init = (*env)->GetMethodID(env, cls, "", "()V"); - jobject inst = (*env)->NewObject(env, cls, init); - (*env)->CallVoidMethod(env, inst, reg, view); + jclass cls = (*env)->GetObjectClass(env, view); + jmethodID mid = (*env)->GetMethodID(env, cls, "getContext", "()Landroid/content/Context;"); + jobject ctx = (*env)->CallObjectMethod(env, view, mid); + cls = (*env)->GetObjectClass(env, ctx); + mid = (*env)->GetMethodID(env, cls, "getClassLoader", "()Ljava/lang/ClassLoader;"); + jobject loader = (*env)->CallObjectMethod(env, ctx, mid); + cls = (*env)->GetObjectClass(env, loader); + mid = (*env)->GetMethodID(env, cls, "findClass", "(Ljava/lang/String;)Ljava/lang/Class;"); + jstring str = (*env)->NewStringUTF(env, "st/wow/git/ble/BlessedConnect"); + cls = (*env)->CallObjectMethod(env, loader, mid, str); + mid = (*env)->GetMethodID(env, cls, "", "()V"); + jobject inst = (*env)->NewObject(env, cls, mid); + mid = (*env)->GetMethodID(env, cls, "register", "(Landroid/view/View;)V"); + (*env)->CallVoidMethod(env, inst, mid, view); } jboolean