From 05c32e292e307a245eabcb2344bd1527d69f64f2 Mon Sep 17 00:00:00 2001 From: Stefan Haller Date: Wed, 20 Sep 2023 10:04:21 +0200 Subject: [PATCH] Extract StatusManager.addStatus method Avoids a bit of code duplication. --- pkg/gui/status/status_manager.go | 44 ++++++++++++++------------------ 1 file changed, 19 insertions(+), 25 deletions(-) diff --git a/pkg/gui/status/status_manager.go b/pkg/gui/status/status_manager.go index d54853c6e..ba04e14f2 100644 --- a/pkg/gui/status/status_manager.go +++ b/pkg/gui/status/status_manager.go @@ -27,19 +27,7 @@ func NewStatusManager() *StatusManager { } func (self *StatusManager) WithWaitingStatus(message string, f func()) { - self.mutex.Lock() - - self.nextId += 1 - id := self.nextId - - newStatus := appStatus{ - message: message, - statusType: "waiting", - id: id, - } - self.statuses = append([]appStatus{newStatus}, self.statuses...) - - self.mutex.Unlock() + id := self.addStatus(message, "waiting") f() @@ -47,18 +35,7 @@ func (self *StatusManager) WithWaitingStatus(message string, f func()) { } func (self *StatusManager) AddToastStatus(message string) int { - self.mutex.Lock() - defer self.mutex.Unlock() - - self.nextId++ - id := self.nextId - - newStatus := appStatus{ - message: message, - statusType: "toast", - id: id, - } - self.statuses = append([]appStatus{newStatus}, self.statuses...) + id := self.addStatus(message, "toast") go func() { time.Sleep(time.Second * 2) @@ -84,6 +61,23 @@ func (self *StatusManager) HasStatus() bool { return len(self.statuses) > 0 } +func (self *StatusManager) addStatus(message string, statusType string) int { + self.mutex.Lock() + defer self.mutex.Unlock() + + self.nextId++ + id := self.nextId + + newStatus := appStatus{ + message: message, + statusType: statusType, + id: id, + } + self.statuses = append([]appStatus{newStatus}, self.statuses...) + + return id +} + func (self *StatusManager) removeStatus(id int) { self.mutex.Lock() defer self.mutex.Unlock()