Files
lnreader/app.json
T
Patrick Loser 77be5624f2 feat: Add URL Novel Search and Intent-Based Novel Opening (#1987)
* 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
2026-09-01 18:59:32 +05:30

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"]
}
}
}
}