From bd595bcfa7a10d0f985e8537cba9105acd1ec40f Mon Sep 17 00:00:00 2001 From: Apo Date: Thu, 20 Mar 2025 19:41:46 -0400 Subject: [PATCH] loading episode popup --- src/config/config.go | 2 +- src/curdIntegration.go | 11 +++++++++ src/main.go | 2 ++ src/ui/loadingVideoPopUp.go | 46 +++++++++++++++++++++++++++++++++++++ 4 files changed, 60 insertions(+), 1 deletion(-) create mode 100644 src/ui/loadingVideoPopUp.go diff --git a/src/config/config.go b/src/config/config.go index 3a253e2..93e932c 100644 --- a/src/config/config.go +++ b/src/config/config.go @@ -26,7 +26,7 @@ func CreateConfig(app fyne.Preferences) { SkipOpening: app.Bool(SkipOpeningKey), SkipEnding: app.Bool(SkipEndingKey), TrayIcon: app.Bool(TrayIconKey), - DiscordPresence: app.Bool(DiscordPresence), + DiscordPresence: app.BoolWithFallback(DiscordPresence, true), } } diff --git a/src/curdIntegration.go b/src/curdIntegration.go index 7a595ef..f6e927b 100644 --- a/src/curdIntegration.go +++ b/src/curdIntegration.go @@ -5,6 +5,7 @@ import ( "AnimeGUI/src/anilist" "AnimeGUI/src/config" "AnimeGUI/src/richPresence" + "AnimeGUI/src/ui" "AnimeGUI/verniy" "errors" "fmt" @@ -99,6 +100,13 @@ type AllAnimeIdData struct { } func OnPlayButtonClick(animeName string, animeData *verniy.MediaList, savingWatch bool) error { + succes := false + ui.ShowLoadingVideoPopUp() + defer func() { + if !succes { + ui.CloseLoadingPopup(0) + } + }() if mpvPresent == false { log.Error("MPV is not yet dl") @@ -172,6 +180,8 @@ func OnPlayButtonClick(animeName string, animeData *verniy.MediaList, savingWatc } } playingAnimeLoop(playingAnime, animeData, savingWatch) + ui.ChangeLoadingStep(2) + succes = true return nil } @@ -246,6 +256,7 @@ func playingAnimeLoop(playingAnime curd.Anime, animeData *verniy.MediaList, savi } } + ui.CloseLoadingPopup(1) presenceAnime := richPresence.PresenceAnime{Name: playingAnime.Title.English, Ep: playingAnime.Ep.Number + 1, ImageLink: *animeData.Media.CoverImage.Large, PlaybackTime: 0, Duration: playingAnime.Ep.Duration, TotalEp: playingAnime.TotalEpisodes} var pauseCounter int for { diff --git a/src/main.go b/src/main.go index 901a76f..18fcefe 100644 --- a/src/main.go +++ b/src/main.go @@ -5,6 +5,7 @@ import ( "AnimeGUI/src/anilist" "AnimeGUI/src/config" "AnimeGUI/src/richPresence" + "AnimeGUI/src/ui" "AnimeGUI/verniy" "fmt" "fyne.io/fyne/v2" @@ -357,6 +358,7 @@ func initMainApp() { initSettingDialog() initPlayMorePopUp() + ui.InitLoadingVideoPopUp(window) window.SetContent(fynetooltip.AddWindowToolTipLayer(container.NewBorder(nil, nil, nil, imageContainer, leftSide), window.Canvas())) window.Canvas().Focus(input) diff --git a/src/ui/loadingVideoPopUp.go b/src/ui/loadingVideoPopUp.go new file mode 100644 index 0000000..3ad2d0d --- /dev/null +++ b/src/ui/loadingVideoPopUp.go @@ -0,0 +1,46 @@ +package ui + +import ( + "fmt" + "fyne.io/fyne/v2" + "fyne.io/fyne/v2/container" + "fyne.io/fyne/v2/dialog" + "fyne.io/fyne/v2/widget" + "github.com/charmbracelet/log" + "time" +) + +var loadingVideoPopup *dialog.CustomDialog +var step int + +func InitLoadingVideoPopUp(window fyne.Window) { + content := container.NewVBox(widget.NewLabel("Loading episode")) + loadingVideoPopup = dialog.NewCustomWithoutButtons("Loading episode", content, window) + loadingVideoPopup.Resize(fyne.NewSize(400, 400)) + +} + +func ChangeLoadingStep(value int) { + step = value +} + +func ShowLoadingVideoPopUp() { + step = 1 + if loadingVideoPopup == nil { + log.Error("Couldn't open loading popup") + return + } + fmt.Println("popup") + loadingVideoPopup.Show() +} + +func CloseLoadingPopup(duration time.Duration) { + if loadingVideoPopup == nil { + log.Error("Couldn't close loading popup") + return + } + go func() { + time.Sleep(time.Second * duration) + loadingVideoPopup.Hide() + }() +}