client app: use actual buttons
diff --git a/core/client/cmd/pcloud/app_android.go b/core/client/cmd/pcloud/app_android.go
index c66b401..61737ee 100644
--- a/core/client/cmd/pcloud/app_android.go
+++ b/core/client/cmd/pcloud/app_android.go
@@ -3,7 +3,6 @@
import (
"errors"
"fmt"
- "time"
"unsafe"
"gioui.org/app"
@@ -84,16 +83,12 @@
}
func (a *androidApp) StartVPN(config []byte) error {
- fmt.Println("2222222")
a.nebulaConfig = config
- fmt.Println(string(a.nebulaConfig))
return jni.Do(a.jvm, func(env *jni.Env) error {
- fmt.Println(123123)
cls := jni.GetObjectClass(env, a.activity)
m := jni.GetMethodID(env, cls, "startVpn", "(Ljava/lang/String;)Ljava/lang/String;")
jConfig := jni.JavaString(env, string(config))
_, err := jni.CallObjectMethod(env, a.activity, m, jni.Value(jConfig))
- fmt.Println(123123123)
return err
})
@@ -144,14 +139,6 @@
if string(a.nebulaConfig) == "" {
return nil
}
- fmt.Println(333333333)
- fmt.Println(string(a.nebulaConfig))
- // return nil
- // if err := a.callVoidMethod(a.appCtx, "prepareVPN", "(Landroid/app/Activity;I)V",
- // jni.Value(act), jni.Value(requestPrepareVPN)); err != nil {
- // return nil
- // }
-
config := nc.NewC(logrus.StandardLogger())
if err := config.LoadString(string(a.nebulaConfig)); err != nil {
return err
@@ -161,24 +148,13 @@
if err != nil {
panic(err)
}
- t := time.Now()
- fmt.Println("#########3")
- fmt.Println(t.String())
- fmt.Println(hostCert.Details.NotBefore.String())
- fmt.Println(hostCert.Details.NotAfter.String())
- fmt.Println(t.Before(hostCert.Details.NotBefore))
- fmt.Println(t.After(hostCert.Details.NotAfter))
- fmt.Println("#########3")
- // return nil
return jni.Do(a.jvm, func(env *jni.Env) error {
- fmt.Println("---------")
cls := jni.GetObjectClass(env, a.service)
m := jni.GetMethodID(env, cls, "newBuilder", "()Landroid/net/VpnService$Builder;")
b, err := jni.CallObjectMethod(env, a.service, m)
if err != nil {
return fmt.Errorf("PCloudVPNService.newBuilder: %v", err)
}
- fmt.Println("---------")
bcls := jni.GetObjectClass(env, b)
addAddress := jni.GetMethodID(env, bcls, "addAddress", "(Ljava/lang/String;I)Landroid/net/VpnService$Builder;")
addRoute := jni.GetMethodID(env, bcls, "addRoute", "(Ljava/lang/String;I)Landroid/net/VpnService$Builder;")
@@ -229,7 +205,6 @@
return err
}
fd := int(tunFD)
- fmt.Println("===========")
ctrl, err := nebula.Main(config, false, "pcloud", logrus.StandardLogger(), &fd)
if err != nil {
return err
diff --git a/core/client/cmd/pcloud/client.go b/core/client/cmd/pcloud/client.go
index b48db76..0d059ff 100644
--- a/core/client/cmd/pcloud/client.go
+++ b/core/client/cmd/pcloud/client.go
@@ -7,7 +7,6 @@
"encoding/base64"
"encoding/json"
"errors"
- "fmt"
"io"
"net/http"
@@ -112,7 +111,6 @@
return nil, err
}
cfgYaml := cfgYamlB.Bytes()
- fmt.Println(string(cfgYaml))
var cfgMap map[string]interface{}
if err := yaml.Unmarshal(cfgYaml, &cfgMap); err != nil {
return nil, err
@@ -133,6 +131,5 @@
return nil, nil, err
}
curve25519.ScalarBaseMult(&pubkey, &privkey)
- fmt.Println()
return pubkey[:], privkey[:], nil
}
diff --git a/core/client/cmd/pcloud/main.go b/core/client/cmd/pcloud/main.go
index 1e43fa5..fa013c9 100644
--- a/core/client/cmd/pcloud/main.go
+++ b/core/client/cmd/pcloud/main.go
@@ -10,10 +10,12 @@
"time"
"gioui.org/app"
+ "gioui.org/font/gofont"
"gioui.org/io/system"
"gioui.org/layout"
"gioui.org/op"
"gioui.org/unit"
+ "gioui.org/widget/material"
"github.com/skip2/go-qrcode"
)
@@ -34,10 +36,11 @@
}
func newProcessor() *processor {
+ th := material.NewTheme(gofont.Collection())
return &processor{
vc: NewDirectVPNClient(*vpnApiAddr),
app: createApp(),
- ui: NewUI(),
+ ui: NewUI(th),
inviteQrCh: make(chan image.Image, 1),
inviteQrScannedCh: make(chan []byte, 1),
onConnectCh: make(chan interface{}, 1),
@@ -95,17 +98,11 @@
p.ui.InviteQRGenerated(img)
w.Invalidate()
case code := <-p.inviteQrScannedCh:
- // go func() {
- fmt.Println("00000000")
p.JoinNetworkAndConnect(code)
- fmt.Println("00000000")
- // }()
case s := <-p.onConnectCh:
- fmt.Println("--- 1111111111")
if err := p.app.Connect(s); err != nil {
- panic(err)
+ return err
}
- fmt.Println("--- 1111111111")
}
}
return nil
diff --git a/core/client/cmd/pcloud/ui.go b/core/client/cmd/pcloud/ui.go
index 50e74ff..6f805fa 100644
--- a/core/client/cmd/pcloud/ui.go
+++ b/core/client/cmd/pcloud/ui.go
@@ -9,6 +9,7 @@
"gioui.org/op/paint"
"gioui.org/unit"
"gioui.org/widget"
+ "gioui.org/widget/material"
)
type (
@@ -17,6 +18,7 @@
)
type UI struct {
+ th *material.Theme
invite struct {
open widget.Clickable
show bool
@@ -30,8 +32,8 @@
}
}
-func NewUI() *UI {
- return &UI{}
+func NewUI(th *material.Theme) *UI {
+ return &UI{th: th}
}
func (ui *UI) InviteQRGenerated(img image.Image) {
@@ -96,15 +98,10 @@
func (ui *UI) layoutActions(gtx C) D {
return layout.Flex{Axis: layout.Horizontal}.Layout(gtx,
layout.Flexed(1, func(gtx C) D {
- return ui.invite.open.Layout(gtx, func(gtx C) D {
- return ColorBox(gtx, gtx.Constraints.Min, color.NRGBA{R: 255, A: 255})
- })
-
+ return material.Button(ui.th, &ui.invite.open, "Invite").Layout(gtx)
}),
layout.Flexed(1, func(gtx C) D {
- return ui.join.open.Layout(gtx, func(gtx C) D {
- return ColorBox(gtx, gtx.Constraints.Min, color.NRGBA{G: 128, A: 255})
- })
+ return material.Button(ui.th, &ui.join.open, "Join").Layout(gtx)
}),
)
}
diff --git a/core/client/go.mod b/core/client/go.mod
index 76a8d55..c14150b 100644
--- a/core/client/go.mod
+++ b/core/client/go.mod
@@ -9,6 +9,7 @@
github.com/skip2/go-qrcode v0.0.0-20200617195104-da1b6568686e
github.com/slackhq/nebula v1.5.1
golang.org/x/crypto v0.0.0-20211202192323-5770296d904e
+ golang.org/x/exp v0.0.0-20210722180016-6781d3edade3
golang.org/x/tools v0.1.8-0.20211022200916-316ba0b74098 // indirect
sigs.k8s.io/yaml v1.1.0
)