CI / check (push) Canceled after 0s
- Upload a profile picture on web and mobile. The API square-crops it to 512px WebP, strips metadata (phone photos carry GPS), stores it in Postgres and serves it with immutable caching. Avatar URLs are stored as paths, so they survive moving the API. Arbitrary avatar URLs are no longer accepted (they'd let a profile track its viewers). - New accounts get the username as typed as their display name; existing accounts are backfilled, and clearing it falls back to the username. - Service names in Settings get a brand-coloured badge and larger type. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01MzFywujuH9TiuXbr9vjoX8
60 lines
1.7 KiB
JSON
60 lines
1.7 KiB
JSON
{
|
|
"expo": {
|
|
"name": "musicshare",
|
|
"slug": "musicshare",
|
|
"version": "1.0.0",
|
|
"orientation": "portrait",
|
|
"icon": "./assets/images/icon.png",
|
|
"scheme": "musicshare",
|
|
"userInterfaceStyle": "dark",
|
|
"ios": {
|
|
"icon": "./assets/images/icon.png",
|
|
"bundleIdentifier": "tech.chrisedwards.musicshare",
|
|
"infoPlist": {
|
|
"NSAppleMusicUsageDescription": "musicshare shows your friends what you play in Apple Music, and opens their songs for you."
|
|
}
|
|
},
|
|
"android": {
|
|
"adaptiveIcon": {
|
|
"backgroundColor": "#1a0a4a",
|
|
"foregroundImage": "./assets/images/android-icon-foreground.png",
|
|
"backgroundImage": "./assets/images/android-icon-background.png",
|
|
"monochromeImage": "./assets/images/android-icon-monochrome.png"
|
|
},
|
|
"predictiveBackGestureEnabled": false,
|
|
"package": "tech.chrisedwards.musicshare"
|
|
},
|
|
"plugins": [
|
|
"expo-router",
|
|
"expo-secure-store",
|
|
[
|
|
"expo-splash-screen",
|
|
{
|
|
"backgroundColor": "#0b0820",
|
|
"image": "./assets/images/splash-icon.png",
|
|
"imageWidth": 150
|
|
}
|
|
],
|
|
[
|
|
"expo-camera",
|
|
{
|
|
"cameraPermission": "musicshare uses the camera to scan friends' QR codes.",
|
|
"microphonePermission": false,
|
|
"recordAudioAndroid": false
|
|
}
|
|
],
|
|
[
|
|
"expo-image-picker",
|
|
{
|
|
"photosPermission": "musicshare lets you choose a profile picture from your photos.",
|
|
"cameraPermission": "musicshare uses the camera to scan friends' QR codes.",
|
|
"microphonePermission": false
|
|
}
|
|
]
|
|
],
|
|
"experiments": {
|
|
"reactCompiler": true
|
|
}
|
|
}
|
|
}
|