mirror of
https://github.com/stablyai/orca.git
synced 2026-09-28 00:02:41 +00:00
* release: v1.4.48-rc.0 [rc-slot:2026-06-05-15] * release: v0.0.1-rc.0 [rc-slot:2026-06-06-03] * fix(mobile): respect Android device rotation lock instead of forcing rotation The app rotated on Android even when the system auto-rotate lock was on. Expo's top-level `orientation: "default"` emits `android:screenOrientation="unspecified"`, which auto-rotates on many devices regardless of the lock, and the `react-native-screens` `orientation: 'all'` screenOption mapped to FULL_SENSOR, which forces rotation outright. react-native-screens exposes no orientation value that honors the rotation lock (even 'default' calls setRequestedOrientation(UNSPECIFIED) at runtime, overriding the manifest). The Android value that respects the lock is "fullUser", which must come from the manifest. So: - Add an `android-respect-rotation-lock` Expo config plugin that sets the main activity to `android:screenOrientation="fullUser"` (honors the lock; allows all orientations when unlocked, matching iOS). - Remove the runtime `orientation` screenOption so the manifest value governs. iOS behavior is unchanged (UISupportedInterfaceOrientations still lists all four). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> --------- Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
111 lines
3.4 KiB
JSON
111 lines
3.4 KiB
JSON
{
|
|
"expo": {
|
|
"name": "Orca",
|
|
"slug": "orca-mobile",
|
|
"version": "0.0.13",
|
|
"orientation": "default",
|
|
"icon": "./assets/icon.png",
|
|
"userInterfaceStyle": "automatic",
|
|
"scheme": "orca",
|
|
"newArchEnabled": true,
|
|
"splash": {
|
|
"image": "./assets/splash-icon.png",
|
|
"resizeMode": "contain",
|
|
"backgroundColor": "#111111"
|
|
},
|
|
"ios": {
|
|
"supportsTablet": true,
|
|
"bundleIdentifier": "com.stably.orca.mobile",
|
|
"buildNumber": "2",
|
|
"infoPlist": {
|
|
"NSLocalNetworkUsageDescription": "Orca connects to the desktop app on your local network.",
|
|
"NSMicrophoneUsageDescription": "Allow Orca to record voice dictation and transcribe it on your paired desktop.",
|
|
"NSAppTransportSecurity": {
|
|
"NSAllowsLocalNetworking": true,
|
|
"NSExceptionDomains": {
|
|
"100.64.0.0/10": {
|
|
"NSExceptionAllowsInsecureHTTPLoads": true
|
|
},
|
|
"fd7a:115c:a1e0::/48": {
|
|
"NSExceptionAllowsInsecureHTTPLoads": true
|
|
}
|
|
}
|
|
},
|
|
"ITSAppUsesNonExemptEncryption": false,
|
|
"UISupportedInterfaceOrientations": [
|
|
"UIInterfaceOrientationPortrait",
|
|
"UIInterfaceOrientationPortraitUpsideDown",
|
|
"UIInterfaceOrientationLandscapeLeft",
|
|
"UIInterfaceOrientationLandscapeRight"
|
|
],
|
|
"UISupportedInterfaceOrientations~ipad": [
|
|
"UIInterfaceOrientationPortrait",
|
|
"UIInterfaceOrientationPortraitUpsideDown",
|
|
"UIInterfaceOrientationLandscapeLeft",
|
|
"UIInterfaceOrientationLandscapeRight"
|
|
]
|
|
},
|
|
"privacyManifests": {
|
|
"NSPrivacyTracking": false,
|
|
"NSPrivacyTrackingDomains": [],
|
|
"NSPrivacyCollectedDataTypes": [],
|
|
"NSPrivacyAccessedAPITypes": [
|
|
{
|
|
"NSPrivacyAccessedAPIType": "NSPrivacyAccessedAPICategoryUserDefaults",
|
|
"NSPrivacyAccessedAPITypeReasons": ["CA92.1"]
|
|
},
|
|
{
|
|
"NSPrivacyAccessedAPIType": "NSPrivacyAccessedAPICategoryFileTimestamp",
|
|
"NSPrivacyAccessedAPITypeReasons": ["C617.1"]
|
|
},
|
|
{
|
|
"NSPrivacyAccessedAPIType": "NSPrivacyAccessedAPICategorySystemBootTime",
|
|
"NSPrivacyAccessedAPITypeReasons": ["35F9.1"]
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"android": {
|
|
"adaptiveIcon": {
|
|
"foregroundImage": "./assets/adaptive-icon.png",
|
|
"backgroundColor": "#111111"
|
|
},
|
|
"usesCleartextTraffic": true,
|
|
"allowBackup": false,
|
|
"permissions": ["RECORD_AUDIO", "MODIFY_AUDIO_SETTINGS"],
|
|
"package": "com.stably.orca.mobile",
|
|
"versionCode": 1
|
|
},
|
|
"plugins": [
|
|
"expo-router",
|
|
"./plugins/android-respect-rotation-lock.js",
|
|
[
|
|
"expo-splash-screen",
|
|
{
|
|
"image": "./assets/splash-icon.png",
|
|
"backgroundColor": "#111111"
|
|
}
|
|
],
|
|
[
|
|
"expo-camera",
|
|
{
|
|
"cameraPermission": "Allow Orca to use the camera for QR code scanning.",
|
|
"microphonePermission": "Allow Orca to use your microphone for voice dictation sent to your paired desktop for transcription.",
|
|
"recordAudioAndroid": false
|
|
}
|
|
],
|
|
[
|
|
"expo-build-properties",
|
|
{
|
|
"ios": {
|
|
"buildReactNativeFromSource": true
|
|
},
|
|
"android": {
|
|
"usesCleartextTraffic": true
|
|
}
|
|
}
|
|
]
|
|
]
|
|
}
|
|
}
|