Add support for CarPlay#111
Conversation
This commit addresses multiple issues causing crashes on smaller screens,
particularly iPhone 13 mini (390pt width):
1. Fixed ContentView floating player padding scope issue
- Variable was declared in wrong scope causing undefined behavior
- Combined padding values into single expression
- Updated threshold from 375pt to 390pt to include iPhone 13 mini
2. Restored text scaling in StatCardView
- Added .minimumScaleFactor(0.7) to all text elements
- Prevents text overflow crashes when content is too long
- Applied to title, value, and subtitle text in both iOS 26+ and legacy versions
3. Conditional layout in HomeView to prevent geometry loops
- Small screens (≤390pt): Use regular HStack without EqualHeightItem
- Larger screens (>390pt): Use EqualHeightHStack for visual consistency
- Avoids infinite geometry calculation loop when combining
minimumScaleFactor with EqualHeightItem
Related to PR kepelet#102 and PR kepelet#105
Fixes white screen crashes reported on iPhone 13 mini (builds 206-207)
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Removed duplicate bottom padding from FloatingPlayerView that was causing excessive spacing below the miniplayer. ContentView already applies appropriate bottom padding to account for the tab bar. Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
- Handle missing `song` key in getSimilarSongs2 response without crashing - Show alert to user on empty results or network failure - Replace duplicate ArtistRadioPlayable with existing RadioEntity - Increase default song count to 100 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Align Artist Radio button to leading edge - Rename button label to "Play Artist Radio" - Reduce miniplayer bottom padding to close gap above tab bar Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
woah, looks nice, thanks! will add it to 2.2! |
if you see this you may join to flo campfire here: https://campfire.flooo.club/join/qJEV-Wphv-bUOD :)
i have promised this before so here we are!
- individual loading state - make both button width equal
but for now only for "smaller" screens
f0653db to
0e1099d
Compare
The cherry-pick of PR #111 (CarPlay support) replaced the project.pbxproj with the fork's version, dropping the flo Watch Watch App build target. Restore the Watch target by starting from the pre-cherry-pick pbxproj and surgically adding only CarPlay-specific entries: - CarPlay.framework linkage - CarPlayCoordinator, CarPlaySceneDelegate, CarPlayNowPlayingManager, CarPlayImageLoader file references and source build phase entries - CarPlay and Frameworks PBXGroups - flo.entitlements reference and CODE_SIGN_ENTITLEMENTS build setting https://claude.ai/code/session_015rkZGZikDmQB6kje6uGB6n
|
@docmeth02 does the CarPlay support still work on this branch? #118 |
|
yup, it is working in the ios simulator @faultables |
how do i check it on my xcode project? somehow on my carplay simulator can’t see any flo apps |
|
oh yeah i noticed you are missing the carplay entitlement in #118 `diff --git a/flo.xcodeproj/project.pbxproj b/flo.xcodeproj/project.pbxproj ` |
|
closing this as all commits have been cherrypicked to release/2.2 |


This is a bit of a WIP since i can only test this in the iphone simulator without having the proper entitlements added from apple. It fully works, but does change some points in how the app works on all platforms.
Major changes i made:
Impact on non-CarPlay usage: The audio session and now playing are improvements for the phone app too — lock screen controls and AirPlay will be more
reliable.
So to actually test this in testflight, you would need to first apply for the carplay entitlement with the account that builds the testflight binaries (https://developer.apple.com/documentation/carplay/requesting-carplay-entitlements)