[Android Head-Units] okij:
@SpeedFire-: As several users have reported, the Player widget doesn't consistently update the album and track information and the album art, especially after switching players. I also have problems with this.

Today I had a closer look about what goes wrong and now I have an idea about what needs to be fixed. I don't know if it's a general solution for this issue, but it should at least fix a part of it.

As you know, I'm using DAB-Z, NavRadio+ and GoneMad Music Player as the three media apps in the Player widget. I also have activated the 4th player option in the widget settings.

Every now and then I see "FM Radio" as 4th player, even though I have deactivated it in the MTCE factory settings, i.e. the radio app com.microntek.radio app is frozen (which I also double checked with Titanium Backup). Therefore "FM Radio" should never ever be shown as 4th player on my setup, because the radio hardware (MTCE radio interface) now is solely controlled by NavRadio+.

Even if I don't see "FM Radio" as 4th player, it often happens that I don't see the NavRadio+ broadcast intents in the Player widget after switching to it, but the raw information of the MTCE radio interface (i.e. just the station number and frequency). Then only after switching FM stations in NavRadio+ or after switching to a different player and back to NavRadio+ the Player widget shows the proper NavRadio+ broadcast intents in its display.

Also after switching from NavRadio+ to a different player I often see "FM Radio" as 4th player and the raw information of the MTCE radio interface (station number and frequency) for a fraction of a second until the proper information (e.g. artist/title information and album art of the now activated media player) is displayed.

So what's happening is that the Player widget not only reacts to the broadcast intents that NavRadio+ is sending, but at the same time also reacts to the changes in the MTCE radio interface (which in this case is controlled by NavRadio+). But actually the Player widget only needs to react to the changes in the MTCE radio interface when the stock FM Radio app is in use.

Depending on the order in which the Player widget receives the NavRadio+ broadcast and the changes in the MTCE radio interface (randomly one of them can be the first and the other one the second), it displays either the wrong or the correct information. This is also evidenced by the fact that I often see "FM Radio" as 4th player for a fraction of a second when switching to NavRadio+. After this the 4th player button disappears again, NavRadio+ is shown as the selected player and also the correct station name and logo (which are broadcast by NavRadio+) are displayed.

Conclusion: This issue needs to be fixed. :) I suggest that you implement some conditions to the Player widget code, so that the part of the code that listens to the MTCE radio interface is not executed when either

NavRadio+ (com.navimods.radio) is installed or

the stock FM Radio app (com.microntek.radio) is frozen/deactivated or

the user has activated an option (which you would have to implement in the Player widget settings) to ignore all actions on the MTCE radio interface and only listen to broadcast intents.

Of course you don't have to implement all three of these conditions, just one of them would be fully sufficient. Just pick the one that is the easiest to implement or the most universal (e.g. it could be that non-MTCE users have similar problems, so the 2nd condition would not work for them).

I hope that this fix will vastly improve the accuracy of the Player widget display. 🤞 Please let me know what you think about this.