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)
-}