diff --git a/main.go b/main.go
index f23106e..3eeaaf9 100644
--- a/main.go
+++ b/main.go
@@ -29,7 +29,6 @@ import (
_ "mellium.im/xmpp/disco"
"mellium.im/xmpp/jid"
"mellium.im/xmpp/muc"
- "mellium.im/xmpp/stanza"
_ "mellium.im/xmpp/stanza"
oasisSdk "pain.agency/oasis-sdk"
// gui - optional
@@ -679,12 +678,15 @@ func main() {
url, uerr := url.Parse(strings.Split(text, " ")[0])
if uerr == nil && strings.HasPrefix(strings.Split(text, " ")[0], "https://") {
- //err = client.SendImage(jid.MustParse(activeMucJid).Bare(), text, url.String(), &text)
- err = client.SendSingleFileMessage(jid.MustParse(activeMucJid).Bare(), url.String(), nil)
- if err != nil {
- dialog.ShowError(err, w)
- }
- return
+ dialog.ShowConfirm("Confirm", "Do you want to embed this link into your message?", func(b bool) {
+ if b {
+ err = client.SendSingleFileMessage(jid.MustParse(activeMucJid).Bare(), url.String(), nil)
+ if err != nil {
+ dialog.ShowError(err, w)
+ }
+ return
+ }
+ }, w)
}
err = client.SendText(jid.MustParse(activeMucJid).Bare(), text)
@@ -950,65 +952,66 @@ func main() {
})
- servDisc := fyne.NewMenuItem("Disco features", func() {
- //var search jid.JID
- dialog.ShowEntryDialog("Disco features", "JID: ", func(s string) { // TODO: replace with undeprecated widgetd
- d := dialog.NewCustom("Please wait", "Close", widget.NewLabel("..."), w)
- d.Show()
- go func() {
- //search, err = jid.Parse(s)
- //if err != nil {
- // d.Hide()
- // dialog.ShowError(err, w)
- // return
- //}
- txt := `
-
-`
- var stan stanza.IQ
- xml.Unmarshal([]byte(txt), &stan)
- if err != nil {
- d.Hide()
- dialog.ShowError(err, w)
- return
- }
- r, err := client.Session.EncodeIQ(client.Ctx, stan)
- if err != nil {
- d.Hide()
- dialog.ShowError(err, w)
- return
- }
- ra, _ := r.Token()
- t, _ := xml.MarshalIndent(ra, "", "\t")
- fmt.Println(string(t))
- d.Hide()
- /*
-
- myBox := container.NewGridWithColumns(1, widget.NewLabel("Items"))
- info, err := disco.GetInfo(client.Ctx, "", search, client.Session)
+ /*
+ servDisc := fyne.NewMenuItem("Disco features", func() {
+ //var search jid.JID
+ dialog.ShowEntryDialog("Disco features", "JID: ", func(s string) { // TODO: replace with undeprecated widgetd
+ d := dialog.NewCustom("Please wait", "Close", widget.NewLabel("..."), w)
+ d.Show()
+ go func() {
+ //search, err = jid.Parse(s)
+ //if err != nil {
+ // d.Hide()
+ // dialog.ShowError(err, w)
+ // return
+ //}
+ txt := `
+
+ `
+ var stan stanza.IQ
+ xml.Unmarshal([]byte(txt), &stan)
if err != nil {
d.Hide()
dialog.ShowError(err, w)
return
}
- m := info.Identity
- bytes, err := xml.MarshalIndent(m, "", "\t")
+ r, err := client.Session.EncodeIQ(client.Ctx, stan)
if err != nil {
d.Hide()
dialog.ShowError(err, w)
return
}
- fyne.Do(func() {d.Hide()})
- myBox.Objects = append(myBox.Objects, widget.NewLabel(string(bytes)))
- dialog.ShowCustom("Service discovery", "cancel", myBox, w)
- */
- }()
+ ra, _ := r.Token()
+ t, _ := xml.MarshalIndent(ra, "", "\t")
+ fmt.Println(string(t))
+ d.Hide()
+ /*
- }, w)
- })
+ myBox := container.NewGridWithColumns(1, widget.NewLabel("Items"))
+ info, err := disco.GetInfo(client.Ctx, "", search, client.Session)
+ if err != nil {
+ d.Hide()
+ dialog.ShowError(err, w)
+ return
+ }
+ m := info.Identity
+ bytes, err := xml.MarshalIndent(m, "", "\t")
+ if err != nil {
+ d.Hide()
+ dialog.ShowError(err, w)
+ return
+ }
+ fyne.Do(func() {d.Hide()})
+ myBox.Objects = append(myBox.Objects, widget.NewLabel(string(bytes)))
+ dialog.ShowCustom("Service discovery", "cancel", myBox, w)
+ }()
+
+ }, w)
+ })
+ */
savedata := fyne.NewMenuItem("DEBUG: Save tab data to disk", func() {
d := []ChatTab{}
@@ -1024,6 +1027,7 @@ func main() {
os.WriteFile("text.xml", b, os.ModeAppend)
})
menu_help := fyne.NewMenu("π", mit, reconnect, savedata, fyne.NewMenuItem("Join rooms in bookmarks", func() {
+ // FIXME: Race condition
client.FetchBookmarks()
rooms := client.BookmarkCache()
for _, v := range rooms {
@@ -1046,7 +1050,7 @@ func main() {
}
}))
- menu_changeroom := fyne.NewMenu("Α", mic, servDisc, beginADM, joinARoom, leaveRoom)
+ menu_changeroom := fyne.NewMenu("Α", mic, beginADM, joinARoom, leaveRoom)
menu_configureview := fyne.NewMenu("Β", mia, mis, jtt, jtb)
hafjag := fyne.NewMenuItem("Hafjag", func() {
entry.Text = "Hafjag"