Skip to content

Commit

Permalink
Added progress bar indicator to app
Browse files Browse the repository at this point in the history
Signed-off-by: Adrian Rudnik <[email protected]>
  • Loading branch information
adrianrudnik committed Oct 29, 2023
1 parent 3b9278b commit 4ecf4c7
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 9 deletions.
17 changes: 11 additions & 6 deletions service/internal/ui/updater.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,20 +2,23 @@ package ui

import (
"fyne.io/fyne/v2/canvas"
"fyne.io/fyne/v2/widget"
"github.com/adrianrudnik/ablegram/internal/stats"
"time"
)

type UiUpdater struct {
ticker *time.Ticker
statusText *canvas.Text
statusLast bool
ticker *time.Ticker
statusLast bool
statusText *canvas.Text
progressBar *widget.ProgressBarInfinite
}

func NewUiUpdater(text *canvas.Text) *UiUpdater {
func NewUiUpdater(text *canvas.Text, infinite *widget.ProgressBarInfinite) *UiUpdater {
return &UiUpdater{
ticker: time.NewTicker(500 * time.Millisecond),
statusText: text,
ticker: time.NewTicker(500 * time.Millisecond),
statusText: text,
progressBar: infinite,
}
}

Expand All @@ -35,8 +38,10 @@ func (u *UiUpdater) updateStatusText(progress *stats.ProcessProgress) {

if progress.IsInProgress() {
u.statusText.Text = "The service is processing files."
u.progressBar.Start()
} else {
u.statusText.Text = "The service has completed all tasks."
u.progressBar.Hide()
}

u.statusLast = progress.IsInProgress()
Expand Down
7 changes: 4 additions & 3 deletions service/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -116,14 +116,15 @@ func main() {
logo := canvas.NewImageFromResource(resourceLogoPng)
logo.FillMode = canvas.ImageFillOriginal

statusTxt := canvas.NewText("Starting up...", color.White)
statusTxt := canvas.NewText("The service is processing files...", color.White)
quitBtn := widget.NewButton("Shut down service", func() { a.Quit() })
startBtn := widget.NewButton("Open results in browser", func() { openBrowser() })
progressBar := widget.NewProgressBarInfinite()

uiUpdater := ui.NewUiUpdater(statusTxt)
uiUpdater := ui.NewUiUpdater(statusTxt, progressBar)
go uiUpdater.Run(progress)

content := container.New(layout.NewPaddedLayout(), container.New(layout.NewVBoxLayout(), logo, statusTxt, startBtn, quitBtn))
content := container.New(layout.NewPaddedLayout(), container.New(layout.NewVBoxLayout(), logo, statusTxt, progressBar, startBtn, quitBtn))

w.SetContent(content)
w.SetFixedSize(true)
Expand Down

0 comments on commit 4ecf4c7

Please sign in to comment.