Merge "discovery: support large attributes (part 2)"
diff --git a/libs/discovery/jni.go b/libs/discovery/jni.go
index efcd95f..b9a1c27 100644
--- a/libs/discovery/jni.go
+++ b/libs/discovery/jni.go
@@ -20,15 +20,12 @@
androidContextSign = jutil.ClassSign("android.content.Context")
contextSign = jutil.ClassSign("io.v.v23.context.VContext")
advertisementSign = jutil.ClassSign("io.v.x.ref.lib.discovery.Advertisement")
- uuidSign = jutil.ClassSign("java.util.UUID")
scanHandlerSign = jutil.ClassSign("io.v.impl.google.lib.discovery.ScanHandler")
- // Global reference for io.v.android.libs.discovery.ble.BlePlugin
- jBlePluginClass jutil.Class
// Global reference for io.v.x.ref.lib.discovery.Advertisement
jAdvertisementClass jutil.Class
- // Global reference for java.util.UUID
- jUUIDClass jutil.Class
+ // Global reference for io.v.android.libs.discovery.ble.BlePlugin
+ jBlePluginClass jutil.Class
// Global reference for io.v.android.libs.discovery.ble.NativeScanHandler
jNativeScanHandlerClass jutil.Class
)
@@ -36,22 +33,15 @@
func Init(env jutil.Env) error {
var err error
- jUUIDClass, err = jutil.JFindClass(env, "java/util/UUID")
+ jAdvertisementClass, err = jutil.JFindClass(env, "io/v/x/ref/lib/discovery/Advertisement")
if err != nil {
return err
}
-
- jNativeScanHandlerClass, err = jutil.JFindClass(env, "io/v/android/libs/discovery/ble/NativeScanHandler")
- if err != nil {
- return err
- }
-
jBlePluginClass, err = jutil.JFindClass(env, "io/v/android/libs/discovery/ble/BlePlugin")
if err != nil {
return err
}
-
- jAdvertisementClass, err = jutil.JFindClass(env, "io/v/x/ref/lib/discovery/Advertisement")
+ jNativeScanHandlerClass, err = jutil.JFindClass(env, "io/v/android/libs/discovery/ble/NativeScanHandler")
return err
}
diff --git a/libs/discovery/plugin.go b/libs/discovery/plugin.go
index c3825ed..22f7fbb 100644
--- a/libs/discovery/plugin.go
+++ b/libs/discovery/plugin.go
@@ -7,8 +7,6 @@
package discovery
import (
- "bytes"
- "encoding/binary"
"runtime"
"v.io/v23/context"
@@ -78,7 +76,7 @@
return err
}
-func (p *plugin) Scan(ctx *context.T, serviceUuid discovery.Uuid, ch chan<- discovery.Advertisement, done func()) error {
+func (p *plugin) Scan(ctx *context.T, interfaceName string, ch chan<- discovery.Advertisement, done func()) error {
env, freeFunc := jutil.GetEnv()
defer freeFunc()
jContext, err := jcontext.JavaContext(env, ctx, nil)
@@ -86,33 +84,16 @@
return err
}
- jUuid, err := JavaUUID(env, serviceUuid)
-
- if err != nil {
- return err
- }
-
jutil.GoRef(&ch)
jNativeScanHandler, err := jutil.NewObject(env, jNativeScanHandlerClass, []jutil.Sign{jutil.LongSign}, int64(jutil.PtrValue(&ch)))
if err != nil {
return err
}
- err = jutil.CallVoidMethod(env, p.jPlugin, "addScanner", []jutil.Sign{contextSign, uuidSign, scanHandlerSign},
- jContext, jUuid, jNativeScanHandler)
-
+ err = jutil.CallVoidMethod(env, p.jPlugin, "addScanner", []jutil.Sign{contextSign, jutil.StringSign, scanHandlerSign}, jContext, interfaceName, jNativeScanHandler)
if err != nil {
return err
}
p.trigger.Add(done, ctx.Done())
return nil
}
-
-// JavaUUID converts a Go UUID type to a Java UUID object.
-func JavaUUID(env jutil.Env, uuid discovery.Uuid) (jutil.Object, error) {
- buf := bytes.NewBuffer(uuid)
- var high, low int64
- binary.Read(buf, binary.BigEndian, &high)
- binary.Read(buf, binary.BigEndian, &low)
- return jutil.NewObject(env, jUUIDClass, []jutil.Sign{jutil.LongSign, jutil.LongSign}, high, low)
-}