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"