podverse / podverse-rn

Podverse mobile app written in React Native for iOS, Android, and F-Droid
https://podverse.fm/about
GNU Affero General Public License v3.0
218 stars 36 forks source link

Emojis in chapter titles cause CarPlay to crash #1844

Open mitchdowney opened 1 year ago

mitchdowney commented 1 year ago

This very excellent feature/bug report was sent to us by email from a user.


Please consider adding an option to hide emoji's or icons in the Chapter titles at an application level. The reasoning for this is that I have seen in some vehicles (2014 in my case) the display of newer emojis cause the entertainment system to crash and restart. A workaround is to disable bluetooth or carplay on the car entertainment system until that chapter is completed and then reconnect. An example of a chapter that crashes the system is https://podverse.fm/clip/94guo6ItdKv

An example of the feature would be to go in settings/other and toggling something like suppress special characters. This would somehow scrub those from the applications output to Bluetooth or Carplay.

Some minor tech details. Ford 2014 Sync iOS

Personally, I think it is likely anything in Unicode 15.0 and above that is causing the problem. Since the car infotainment system does not have the updated range descriptions it causes some sort of an overflow and crashes. Let me know if you need me to test something before general release if you decide to implement it.

mitchdowney commented 1 year ago

Hopefully there is a reliable way to strip all emojis from a text string. I've never tried to do that before.

jamescridland commented 1 year ago

Your bug report says "Ford 2014 SYNC". There's no such thing.

Ford Sync 3 was introduced on Dec 11 2014. The previous version was MyFord Touch, which doesn't have CarPlay - just connecting via Bluetooth. https://www.ford.com/support/category/sync-and-technology/sync-with-myford-touch/

Apple CarPlay only came to Ford cars in late 2016 (as a paid upgrade) or 2017 (with SYNC 3). I suspect this is the Bluetooth stack on the Ford misbehaving, rather than Apple CarPlay itself.

JerodeH commented 1 year ago

The version it is occurring on: Sync 2. Software version 3.10.16180.EA.0_PRODUCT

mitchdowney commented 1 year ago

@jamescridland @JerodeH

@kreonjr tried reproducing the emoji crash with his CarPlay yesterday, but the emojis loaded without issue, so this does not appear to be a widespread issue.

If emojis in titles work for a majority of CarPlay users, then rather than remove emojis by default, I'm thinking we should just add an optional setting, so people who run into the emoji crash can hide emojis.

mitchdowney commented 1 year ago

Ok based on @jamescridland's comment, could this be a non-standard or outdated device for CarPlay? 2014 is the first year CarPlay was released, and it does make me wonder if your stereo has a different Bluetooth based connection than say a 2015 version.

Does your display look like the standard CarPlay app? Here is a screenshot:

image

In any case, the only resolution I can think of is a workaround to add a custom setting that lets you remove emojis from all text. A problem with that would be identifying all the possible strings that could load in CarPlay...do 1) only emojis that appear in the player cause the crash? Or 2) does CarPlay also crash if an emoji is loaded in the Podcasts list on the CarPlay home screen?

If it's 1), we could strip the emojis during the playerLoadNowPlayingItem and createTrack functions, but if it's also 2) we'd need to strip all the emojis from the other CarPlay screens.

But hopefully it's not 3) due to the phone + CarPlay interaction, if the emojis on the phone's screens were to also cause CarPlay to crash, the workaround would involve us adding remove emoji logic to the whole app basically, and maybe that is as simple as adding it to the <Text> component, but if that doesn't work it could be a big task.