cutego/androidextras/utils-androidextras_android.go
2016-01-26 17:58:25 +01:00

56 lines
1 KiB
Go
Executable file

package androidextras
import (
"C"
"strings"
"unsafe"
"github.com/therecipe/qt"
)
func assertion(key int, input ...interface{}) (unsafe.Pointer, func()) {
if len(input) > key {
switch deduced := input[key].(type) {
case string:
{
var jObject = QAndroidJniObject_FromString(deduced)
return jObject.Object(), func() { jObject.DestroyQAndroidJniObject() }
}
case []string:
{
var (
jObject = QAndroidJniObject_FromString(strings.Join(deduced, ",,,"))
jObject2 = jObject.CallObjectMethod2("split", "(Ljava/lang/String;)[Ljava/lang/String;", ",,,")
)
jObject.DestroyQAndroidJniObject()
return jObject2.Object(), func() { jObject2.DestroyQAndroidJniObject() }
}
case int:
{
return unsafe.Pointer(uintptr(C.int(deduced))), nil
}
case bool:
{
return unsafe.Pointer(uintptr(C.int(qt.GoBoolToInt(deduced)))), nil
}
case unsafe.Pointer:
{
return deduced, nil
}
case *QAndroidJniObject:
{
return deduced.Object(), nil
}
}
}
return nil, nil
}