iOS: the app's settings in Settings, not behind a shake; iPhone upright (#445)

The server address and the player token were set from alerts that
opened on shaking the phone, which nobody finds. Settings now has a This
device section in the app: the server, the player token and its
address, and a Make button that creates an API token and hands it
straight to the app's keychain. The app sends what it has at ready
(appSettings) and takes setServer, setToken and clearToken; a new
server rebuilds the web view as the alert did. The first-launch prompt
and the Cannot reach alert stay native, since there is no page then.

The iPhone is portrait only; the iPad keeps all four orientations, which
Split View and Slide Over need (#434 checked the iPad's layout).

Build 14.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Ray Slakinski
2026-11-13 08:39:54 -05:00
parent 69f1a38e9f
commit 171c77475a
10 changed files with 142 additions and 61 deletions

View File

@@ -28,7 +28,7 @@ targets:
properties:
CFBundleDisplayName: iPX
CFBundleShortVersionString: $(MARKETING_VERSION)
CFBundleVersion: "13"
CFBundleVersion: "14"
# Playing on with the screen locked. A plist key, not a signed entitlement.
UIBackgroundModes: [audio, fetch, remote-notification]
# The unread badge's refresh while the app is closed (#421).
@@ -47,7 +47,11 @@ targets:
- UISceneConfigurationName: CarPlay
UISceneClassName: CPTemplateApplicationScene
UISceneDelegateClassName: $(PRODUCT_MODULE_NAME).CarPlaySceneDelegate
UISupportedInterfaceOrientations:
# Upright only on a phone, where the page's layout is made for portrait; every way on an
# iPad, which also needs all four for Split View and Slide Over.
UISupportedInterfaceOrientations~iphone:
- UIInterfaceOrientationPortrait
UISupportedInterfaceOrientations~ipad:
- UIInterfaceOrientationPortrait
- UIInterfaceOrientationPortraitUpsideDown
- UIInterfaceOrientationLandscapeLeft
@@ -103,7 +107,7 @@ targets:
properties:
CFBundleDisplayName: iPX
CFBundleShortVersionString: $(MARKETING_VERSION)
CFBundleVersion: "13"
CFBundleVersion: "14"
NSExtension:
NSExtensionPointIdentifier: com.apple.widgetkit-extension
entitlements: