Add blocking
This commit is contained in:
56
main.go
56
main.go
@@ -34,7 +34,7 @@ import (
|
||||
"mellium.im/xmpp/jid"
|
||||
"mellium.im/xmpp/muc"
|
||||
"mellium.im/xmpp/pubsub"
|
||||
oasisSdk "pain.agency/oasis-sdk"
|
||||
oasisSdk "github.com/sunglocto/oasis-sdk"
|
||||
// TODO: integrated theme switcher
|
||||
)
|
||||
|
||||
@@ -173,6 +173,8 @@ func CreateUITab(chatJidStr string) ChatTabUI {
|
||||
replytext.Hide()
|
||||
replytext.Importance = widget.SuccessImportance
|
||||
replytext.Selectable = true
|
||||
// replytext.Wrapping = fyne.TextWrapWord
|
||||
replytext.Truncation = fyne.TextTruncateEllipsis
|
||||
btn := widget.NewButtonWithIcon("View media", icon, func() {
|
||||
|
||||
})
|
||||
@@ -275,7 +277,12 @@ func CreateUITab(chatJidStr string) ChatTabUI {
|
||||
content.SetText(msgContent)
|
||||
if chatTabs[chatJidStr].Messages[i].ReplyID != "PICLIENT:UNAVAILABLE" {
|
||||
reply := chatTabs[chatJidStr].Messages[i].Raw.Reply
|
||||
guy := jid.MustParse(reply.To).Resourcepart()
|
||||
j, err := jid.Parse(reply.To)
|
||||
if err != nil {
|
||||
log.Println("ERR: " + err.Error()) // FIXME
|
||||
return
|
||||
}
|
||||
guy := j.Resourcepart()
|
||||
// TODO: EXPERIMENTALLY GET REPLIED TO TEXT
|
||||
|
||||
for i := len(chatTabs[chatJidStr].Messages) - 1; i >= 0; i-- {
|
||||
@@ -573,7 +580,7 @@ func main() {
|
||||
var ImageID string = ""
|
||||
mucJidStr := msg.From.Bare().String()
|
||||
if tab, ok := chatTabs[mucJidStr]; ok {
|
||||
chatInfo.Objects[0] = widget.NewLabel(fmt.Sprintf("[!] %s", mucJidStr))
|
||||
//chatInfo.Objects[0] = widget.NewLabel(fmt.Sprintf("[!] %s", mucJidStr))
|
||||
chatTabs[mucJidStr].Muc = muc
|
||||
str := *msg.CleanedBody
|
||||
if strings.Contains(str, login.DisplayName) {
|
||||
@@ -649,7 +656,10 @@ func main() {
|
||||
fyne.Do(func() {
|
||||
UITabs[mucJidStr].Scroller.Refresh()
|
||||
if scrollDownOnNewMessage {
|
||||
UITabs[mucJidStr].Scroller.ScrollToBottom()
|
||||
tab, ok := UITabs[mucJidStr]
|
||||
if ok {
|
||||
tab.Scroller.ScrollToBottom()
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
@@ -682,6 +692,7 @@ func main() {
|
||||
})
|
||||
|
||||
client.SetPresenceHandler(func(client *oasisSdk.XmppClient, from jid.JID, p oasisSdk.UserPresence) {
|
||||
log.Println(p.Type)
|
||||
bareAcc := from.Bare()
|
||||
tab, ok := chatTabs[bareAcc.String()]
|
||||
if !ok {
|
||||
@@ -696,6 +707,9 @@ func main() {
|
||||
})
|
||||
|
||||
client.SetBookmarkHandler(false, func(client *oasisSdk.XmppClient, bookmark bookmarks.Channel) {
|
||||
if !config.JoinBookmarks {
|
||||
return
|
||||
}
|
||||
// FIXME
|
||||
if bookmark.JID.String() == "conversations-offtopic-reloaded@conference.trashserver.net" {
|
||||
return
|
||||
@@ -1064,8 +1078,9 @@ func main() {
|
||||
bookmarks := client.BookmarkCache()
|
||||
box := container.NewVBox()
|
||||
box.Add(widget.NewRichTextFromMarkdown("# Manage Bookmarks"))
|
||||
box.Add(widget.NewLabel(fmt.Sprintf("%d bookmarks", len(bookmarks))))
|
||||
for address, bookmark := range bookmarks {
|
||||
bookmarkWidget := container.NewGridWithColumns(5)
|
||||
bookmarkWidget := container.NewGridWithColumns(7)
|
||||
|
||||
nameLabel := widget.NewLabel(bookmark.Name)
|
||||
nameLabel.Wrapping = fyne.TextWrapBreak
|
||||
@@ -1080,6 +1095,7 @@ func main() {
|
||||
var autojoinCheck *widget.Check
|
||||
var deleteBookmarkButton *widget.Button
|
||||
var joinRoomButton *widget.Button
|
||||
var setNick *widget.Button
|
||||
joinRoomButton = widget.NewButtonWithIcon("Join", theme.AccountIcon(), func() {
|
||||
fyne.Do(func() { joinRoomButton.Disable() })
|
||||
go func() {
|
||||
@@ -1133,9 +1149,32 @@ func main() {
|
||||
}()
|
||||
})
|
||||
|
||||
nickEntry := widget.NewEntry()
|
||||
nickEntry.SetText(bookmark.Nick)
|
||||
|
||||
setNick = widget.NewButton("Set nick", func() {
|
||||
go func() {
|
||||
fyne.Do(func() {setNick.Disable()})
|
||||
newNick := nickEntry.Text
|
||||
bookmark.Nick = newNick
|
||||
err := client.PublishBookmark(bookmark, context.TODO())
|
||||
if err != nil {
|
||||
fyne.Do(func() {
|
||||
setNick.Enable()
|
||||
dialog.ShowError(err, w)
|
||||
})
|
||||
return
|
||||
}
|
||||
client.RefreshBookmarks(false)
|
||||
fyne.Do(func() {setNick.Enable()})
|
||||
}()
|
||||
})
|
||||
|
||||
bookmarkWidget.Add(autojoinCheck)
|
||||
bookmarkWidget.Add(deleteBookmarkButton)
|
||||
bookmarkWidget.Add(joinRoomButton)
|
||||
bookmarkWidget.Add(nickEntry)
|
||||
bookmarkWidget.Add(setNick)
|
||||
|
||||
box.Add(bookmarkWidget)
|
||||
}
|
||||
@@ -1543,10 +1582,13 @@ func main() {
|
||||
if tab.isMuc {
|
||||
nameLabel := widget.NewRichTextFromMarkdown("# " + activeChatJid)
|
||||
nameLabel.Truncation = fyne.TextTruncateEllipsis
|
||||
box := container.NewVBox(nameLabel, widget.NewLabel(fmt.Sprintf("%d members ", len(tab.Members))))
|
||||
memberLabel := widget.NewLabel(fmt.Sprintf("%d members ", len(tab.Members)))
|
||||
memberLabel.Truncation = fyne.TextTruncateEllipsis
|
||||
box := container.NewVBox(nameLabel, )
|
||||
chatSidebar.Objects = []fyne.CanvasObject{}
|
||||
|
||||
for name, p := range tab.Members {
|
||||
log.Println(string(p.Type))
|
||||
gen, _ := identicon.New("github", 5, 3)
|
||||
userjid, err := jid.Parse(name)
|
||||
if err != nil {
|
||||
@@ -1561,6 +1603,7 @@ func main() {
|
||||
mention := func() {
|
||||
entry.SetText(fmt.Sprintf("%s %s", entry.Text, nickname))
|
||||
}
|
||||
|
||||
if err != nil {
|
||||
fmt.Println("ERROR: " + err.Error())
|
||||
box.Add(container.NewHBox(widget.NewLabel(nickname), widget.NewButton("Mention", mention)))
|
||||
@@ -1571,6 +1614,7 @@ func main() {
|
||||
imageWidget.Refresh()
|
||||
nickLabel := widget.NewLabel(nickname)
|
||||
nickLabel.Selectable = true
|
||||
nickLabel.Truncation = fyne.TextTruncateClip
|
||||
|
||||
box.Add(container.NewHBox(imageWidget, nickLabel))
|
||||
if p.Status != "" {
|
||||
|
||||
Reference in New Issue
Block a user