77be5624f2
* Add native share intent handling module * Handle shared URLs via intent handler * i18n: add global search and novel error strings Generated with omp (AI coding agent) * novel store: track bootstrap failures as user-facing errors Bootstrap failures no longer surface raw plugin/DB errors; missing novels map to a custom not-found message. Generated with omp (AI coding agent) * novel screen: render error view when bootstrap fails Shows a custom error with a back action instead of a blank screen, and hides the appbar actions in the error state. Generated with omp (AI coding agent) * global search: never auto-navigate or search URL text URLs are handled by the screen's explicit submit flow; navigation and search stay out of the hook. Generated with omp (AI coding agent) * global search: add animated open-novel FAB with clipboard offer Submit or FAB tap opens a matching URL's novel; unmatched URLs toast. The FAB floats above the keyboard via keyboard-controller and slides in from the right. Generated with omp (AI coding agent) * fix review issues * fix rebase issue
95 lines
2.6 KiB
JSON
95 lines
2.6 KiB
JSON
{
|
|
"expo": {
|
|
"version": "2.1.3",
|
|
"name": "LNReader",
|
|
"slug": "LNReader",
|
|
"scheme": "lnreader",
|
|
"icon": "./assets/native/ic_launcher.png",
|
|
"plugins": [
|
|
"./plugins/withAndroidCustomizations",
|
|
[
|
|
"expo-splash-screen",
|
|
{
|
|
"image": "./assets/native/ic_launcher_round.png",
|
|
"backgroundColor": "#1D1B20",
|
|
"resizeMode": "contain",
|
|
"dark": {
|
|
"image": "./assets/native/ic_launcher_round.png",
|
|
"backgroundColor": "#000000"
|
|
},
|
|
"android": {
|
|
"image": "./assets/native/splash_icon.png",
|
|
"backgroundColor": "#132C33",
|
|
"imageWidth": 288,
|
|
"resizeMode": "native",
|
|
"dark": {
|
|
"image": "./assets/native/splash_icon.png",
|
|
"backgroundColor": "#132C33"
|
|
}
|
|
}
|
|
}
|
|
],
|
|
"expo-localization",
|
|
[
|
|
"react-native-edge-to-edge",
|
|
{
|
|
"android": {
|
|
"enforceNavigationBarContrast": false
|
|
}
|
|
}
|
|
],
|
|
"expo-web-browser",
|
|
"./plugins/withReaderAssets",
|
|
[
|
|
"expo-build-properties",
|
|
{
|
|
"android": {
|
|
"usesCleartextTraffic": true,
|
|
"manifestApplicationAttributes": {
|
|
"android:largeHeap": "true",
|
|
"android:allowBackup": "true"
|
|
},
|
|
"enableMinifyInReleaseBuilds": true,
|
|
"enableShrinkResourcesInReleaseBuilds": true
|
|
}
|
|
}
|
|
]
|
|
],
|
|
"android": {
|
|
"versionCode": 4196355,
|
|
"package": "com.rajarsheechatterjee.LNReader",
|
|
"adaptiveIcon": {
|
|
"foregroundImage": "./assets/native/ic_launcher_foreground.png",
|
|
"backgroundImage": "./assets/native/ic_launcher_background.png",
|
|
"monochromeImage": "./assets/native/ic_launcher_monochrome.png"
|
|
},
|
|
"permissions": [
|
|
"android.permission.DOWNLOAD_WITHOUT_NOTIFICATION",
|
|
"android.permission.WAKE_LOCK",
|
|
"android.permission.FOREGROUND_SERVICE",
|
|
"android.permission.FOREGROUND_SERVICE_DATA_SYNC",
|
|
"android.permission.FOREGROUND_SERVICE_MEDIA_PLAYBACK",
|
|
"android.permission.POST_NOTIFICATIONS"
|
|
],
|
|
"intentFilters": [
|
|
{
|
|
"action": "SEND",
|
|
"category": ["DEFAULT"],
|
|
"data": [{ "mimeType": "text/plain" }]
|
|
}
|
|
]
|
|
},
|
|
"extra": {
|
|
"eas": {
|
|
"projectId": "3a63596f-e80c-4342-96b7-a8ac48910489"
|
|
}
|
|
},
|
|
"ios": {
|
|
"bundleIdentifier": "com.rajarsheechatterjee.LNReader",
|
|
"infoPlist": {
|
|
"UIBackgroundModes": ["audio"]
|
|
}
|
|
}
|
|
}
|
|
}
|