Compare commits
2 Commits
6da0474e59
...
9f32185b78
| Author | SHA1 | Date | |
|---|---|---|---|
| 9f32185b78 | |||
| d70bbfed13 |
|
|
@ -225,6 +225,15 @@ func NewBLE() *BLE {
|
||||||
//Enable
|
//Enable
|
||||||
func (b *BLE) Enable(view uintptr) {
|
func (b *BLE) Enable(view uintptr) {
|
||||||
log.Printf("ble.Enable()")
|
log.Printf("ble.Enable()")
|
||||||
|
// view == 0 is Gio's detach signal (GioView.onDestroyView sends
|
||||||
|
// ViewEvent{View: 0} when the view is destroyed, e.g. the activity
|
||||||
|
// going away on a recents-wipe). Nothing to register; passing the null
|
||||||
|
// ref on would abort in JNI (GetObjectClass on null). A re-attach
|
||||||
|
// arrives as a fresh event with a live view. Callers that forward the
|
||||||
|
// event unfiltered are protected by this guard.
|
||||||
|
if view == 0 {
|
||||||
|
return
|
||||||
|
}
|
||||||
setJVM(app.JavaVM())
|
setJVM(app.JavaVM())
|
||||||
runInJVM(func(env *JNIEnv) {
|
runInJVM(func(env *JNIEnv) {
|
||||||
log.Printf("ble.Enable(): inside runInJVM()")
|
log.Printf("ble.Enable(): inside runInJVM()")
|
||||||
|
|
|
||||||
|
|
@ -5,6 +5,14 @@
|
||||||
|
|
||||||
void
|
void
|
||||||
registerFragment(JNIEnv *env, jobject view) {
|
registerFragment(JNIEnv *env, jobject view) {
|
||||||
|
if (view == NULL) {
|
||||||
|
// Detach signal (Gio sends ViewEvent{View: 0} when the view is
|
||||||
|
// destroyed, e.g. the activity going away on a recents-wipe).
|
||||||
|
// The Go side already filters these; this guard keeps the JNI
|
||||||
|
// calls safe if one ever slips through (GetObjectClass on null
|
||||||
|
// aborts the process).
|
||||||
|
return;
|
||||||
|
}
|
||||||
jclass cls = (*env)->GetObjectClass(env, view);
|
jclass cls = (*env)->GetObjectClass(env, view);
|
||||||
jmethodID mid = (*env)->GetMethodID(env, cls, "getContext", "()Landroid/content/Context;");
|
jmethodID mid = (*env)->GetMethodID(env, cls, "getContext", "()Landroid/content/Context;");
|
||||||
jobject ctx = (*env)->CallObjectMethod(env, view, mid);
|
jobject ctx = (*env)->CallObjectMethod(env, view, mid);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user