From 5750eb3181de4923a8d3141066f4631df3b7d70c Mon Sep 17 00:00:00 2001 From: Christian Soffke Date: Fri, 30 Dec 2022 16:27:55 +0100 Subject: browse_id3: Only push activity when called from WPS The Properties plugin and playlist viewer have each started using the existing Track Info screen. In both cases, it may not be necessary to push a new activity. Which eliminates the need to perform an additional skin refresh. I've also noticed at least one theme in the wild that assumes ACTIVITY_ID3SCREEN will only ever display info for the currently playing track (as it did previously) and adjusts the skin specifically for that purpose. Change-Id: Ic436d0d4e075a865225839a524387ff2b9058428 --- apps/screens.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/apps/screens.c b/apps/screens.c index db24e534c1..4fd6c2c2e2 100644 --- a/apps/screens.c +++ b/apps/screens.c @@ -699,7 +699,10 @@ bool browse_id3(struct mp3entry *id3, int playlist_display_index, int playlist_a info.playlist_display_index = playlist_display_index; info.playlist_amount = playlist_amount; bool ret = false; - push_current_activity(ACTIVITY_ID3SCREEN); + int curr_activity = get_current_activity(); + if (curr_activity != ACTIVITY_PLUGIN && + curr_activity != ACTIVITY_PLAYLISTVIEWER) + push_current_activity(ACTIVITY_ID3SCREEN); for (i = 0; i < ARRAYLEN(id3_headers); i++) { char temp[8]; @@ -732,8 +735,9 @@ bool browse_id3(struct mp3entry *id3, int playlist_display_index, int playlist_a } } } - - pop_current_activity(); + if (curr_activity != ACTIVITY_PLUGIN && + curr_activity != ACTIVITY_PLAYLISTVIEWER) + pop_current_activity(); return ret; } -- cgit v1.2.3