Replace vocsy_epub_viewer with flutter_epub_viewer to provide an integrated reading experience within the app instead of separate native FolioReader takeover. Key changes: - Replace vocsy_epub_viewer with flutter_epub_viewer (1.2.2) for WebView-based EPUB rendering - Add EpubReaderScreen with CFI-based position tracking and progress restoration - Add EpubDownloadService with download progress tracking - Update database schema to add epub_location field for CFI storage - Enhance ReadingProgress model to support EPUB locations as JSON - Update PublicationDetailScreen to route to appropriate reader (EPUB vs image) - Add EPUB reader route configuration - Update Android configuration (NDK 25.1.8937393, network permissions) - Add loading progress bar showing download and processing status Benefits: - Integrated Flutter widget stays within app - CFI-based position tracking works cross-platform - Chapter navigation and search functionality - Better UI customization and theme integration Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
128 lines
No EOL
3.1 KiB
JSON
128 lines
No EOL
3.1 KiB
JSON
{
|
|
"images": [
|
|
{
|
|
"idiom": "iphone",
|
|
"size": "20x20",
|
|
"scale": "2x",
|
|
"filename": "Icon-App-20x20@2x.png"
|
|
},
|
|
{
|
|
"idiom": "iphone",
|
|
"size": "20x20",
|
|
"scale": "3x",
|
|
"filename": "Icon-App-20x20@3x.png"
|
|
},
|
|
{
|
|
"idiom": "iphone",
|
|
"size": "29x29",
|
|
"scale": "1x",
|
|
"filename": "Icon-App-29x29@1x.png"
|
|
},
|
|
{
|
|
"idiom": "iphone",
|
|
"size": "29x29",
|
|
"scale": "2x",
|
|
"filename": "Icon-App-29x29@2x.png"
|
|
},
|
|
{
|
|
"idiom": "iphone",
|
|
"size": "29x29",
|
|
"scale": "3x",
|
|
"filename": "Icon-App-29x29@3x.png"
|
|
},
|
|
{
|
|
"idiom": "iphone",
|
|
"size": "40x40",
|
|
"scale": "2x",
|
|
"filename": "Icon-App-40x40@2x.png"
|
|
},
|
|
{
|
|
"idiom": "iphone",
|
|
"size": "40x40",
|
|
"scale": "3x",
|
|
"filename": "Icon-App-40x40@3x.png"
|
|
},
|
|
{
|
|
"idiom": "iphone",
|
|
"size": "60x60",
|
|
"scale": "2x",
|
|
"filename": "Icon-App-60x60@2x.png"
|
|
},
|
|
{
|
|
"idiom": "iphone",
|
|
"size": "60x60",
|
|
"scale": "3x",
|
|
"filename": "Icon-App-60x60@3x.png"
|
|
},
|
|
{
|
|
"idiom": "iphone",
|
|
"size": "76x76",
|
|
"scale": "2x",
|
|
"filename": "Icon-App-76x76@2x.png"
|
|
},
|
|
{
|
|
"idiom": "ipad",
|
|
"size": "20x20",
|
|
"scale": "1x",
|
|
"filename": "Icon-App-20x20@1x.png"
|
|
},
|
|
{
|
|
"idiom": "ipad",
|
|
"size": "20x20",
|
|
"scale": "2x",
|
|
"filename": "Icon-App-20x20@2x.png"
|
|
},
|
|
{
|
|
"idiom": "ipad",
|
|
"size": "29x29",
|
|
"scale": "1x",
|
|
"filename": "Icon-App-29x29@1x.png"
|
|
},
|
|
{
|
|
"idiom": "ipad",
|
|
"size": "29x29",
|
|
"scale": "2x",
|
|
"filename": "Icon-App-29x29@2x.png"
|
|
},
|
|
{
|
|
"idiom": "ipad",
|
|
"size": "40x40",
|
|
"scale": "1x",
|
|
"filename": "Icon-App-40x40@1x.png"
|
|
},
|
|
{
|
|
"idiom": "ipad",
|
|
"size": "40x40",
|
|
"scale": "2x",
|
|
"filename": "Icon-App-40x40@2x.png"
|
|
},
|
|
{
|
|
"idiom": "ipad",
|
|
"size": "76x76",
|
|
"scale": "1x",
|
|
"filename": "Icon-App-76x76@1x.png"
|
|
},
|
|
{
|
|
"idiom": "ipad",
|
|
"size": "76x76",
|
|
"scale": "2x",
|
|
"filename": "Icon-App-76x76@2x.png"
|
|
},
|
|
{
|
|
"idiom": "ipad",
|
|
"size": "83.5x83.5",
|
|
"scale": "2x",
|
|
"filename": "Icon-App-83.5x83.5@2x.png"
|
|
},
|
|
{
|
|
"size": "1024x1024",
|
|
"idiom": "ios-marketing",
|
|
"scale": "1x",
|
|
"filename": "ItunesArtwork@2x.png"
|
|
}
|
|
],
|
|
"info": {
|
|
"version": 1,
|
|
"author": "easyappicon"
|
|
}
|
|
} |