diff --git a/podcasts-gtk/resources/gtk/headerbar.ui b/podcasts-gtk/resources/gtk/headerbar.ui
index 2879d0b..a3643a4 100644
--- a/podcasts-gtk/resources/gtk/headerbar.ui
+++ b/podcasts-gtk/resources/gtk/headerbar.ui
@@ -271,41 +271,5 @@ Tobias Bernard
2
-
-
-
- 3
-
-
diff --git a/podcasts-gtk/resources/gtk/inapp_notif.ui b/podcasts-gtk/resources/gtk/inapp_notif.ui
index 0b76e4f..46859e8 100644
--- a/podcasts-gtk/resources/gtk/inapp_notif.ui
+++ b/podcasts-gtk/resources/gtk/inapp_notif.ui
@@ -53,20 +53,12 @@ Tobias Bernard
3
6
-
- 150
- True
+
False
- center
- center
- 12
- 12
- An in-app action notification
- start
False
- False
+ True
0
@@ -97,10 +89,27 @@ Tobias Bernard
1
+
+
+ 150
+ True
+ False
+ center
+ center
+ 12
+ 12
+ An in-app action notification
+ start
+
+
+ False
+ False
+ 2
+
+
Undo
- True
True
True
center
@@ -113,7 +122,7 @@ Tobias Bernard
False
False
end
- 2
+ 3
diff --git a/podcasts-gtk/src/app.rs b/podcasts-gtk/src/app.rs
index 7892043..d27ca80 100644
--- a/podcasts-gtk/src/app.rs
+++ b/podcasts-gtk/src/app.rs
@@ -17,10 +17,11 @@ use settings::{self, WindowGeometry};
use stacks::{Content, PopulatedState};
use utils;
use widgets::about_dialog;
-use widgets::appnotif::{InAppNotification, UndoState};
+use widgets::appnotif::{InAppNotification, SpinnerState, State};
use widgets::player;
use widgets::show_menu::{mark_all_notif, remove_show_notif, ShowMenu};
+use std::cell::RefCell;
use std::env;
use std::rc::Rc;
use std::sync::Arc;
@@ -57,9 +58,8 @@ pub(crate) enum Action {
ShowShowsAnimated,
HeaderBarShowTile(String),
HeaderBarNormal,
- HeaderBarShowUpdateIndicator,
- HeaderBarHideUpdateIndicator,
MarkAllPlayerNotification(Arc),
+ ShowUpdateNotif(Receiver),
RemoveShow(Arc),
ErrorNotification(String),
InitEpisode(i32),
@@ -75,6 +75,7 @@ pub(crate) struct App {
content: Rc,
headerbar: Rc,
player: Rc,
+ updater: RefCell