Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
94 commits
Select commit Hold shift + click to select a range
81157cc
-handle load preload and better memory managing
datttran Jun 13, 2025
e8f7602
add genre page and new search page
datttran Aug 14, 2025
357556c
refine home page
datttran Aug 14, 2025
952fd07
clean version with no debug print and updated home screen
datttran Aug 14, 2025
cf31864
update note
datttran Aug 14, 2025
7c9fcfa
update chapter info on home page
datttran Aug 14, 2025
51994ac
add theme
datttran Aug 14, 2025
4606793
fix: dark theme readability and tag colors, responsive grid layout
datttran Aug 14, 2025
5684ddc
feat: improve dark theme readability, tag colors, responsive grid, an…
datttran Aug 14, 2025
654e3c6
Test branch: UI overhaul with logo, pagination, and performance changes
datttran Aug 14, 2025
6a12233
Fix pagination loading display - pagination controls now always visib…
datttran Aug 24, 2025
f600b4a
Clean up debug code and fix comic detail display - now shows status, …
datttran Aug 24, 2025
851b65c
Implement proper caching system for comic details - cache details for…
datttran Aug 24, 2025
fb221f9
Add debug prints to diagnose caching issues
datttran Aug 24, 2025
8384de7
Improve database upgrade logic and add database recreation methods
datttran Aug 24, 2025
e54bffa
Add database testing method to diagnose caching issues
datttran Aug 24, 2025
7fe83a6
Fix genre caching system and remove debug prints - ensure genres get …
datttran Aug 24, 2025
c22dce7
Add Google Fonts Sono to the app theme - implement modern typography …
datttran Aug 24, 2025
b527534
Change font from Sono to Inconsolata - implement monospace typography…
datttran Aug 24, 2025
166b9ac
Add font selection feature to settings - users can choose from 18 pop…
datttran Aug 24, 2025
1e8749e
Implement dynamic font switching with FontProvider - app now reloads …
datttran Aug 24, 2025
12b9d8f
Add font scaling feature - users can adjust font size from 0.5x to 3.…
datttran Aug 24, 2025
e71eaf6
Fix font scaling assertion error - add null checks and scale validati…
datttran Aug 24, 2025
2ae7f71
Fix font scaling assertion error with robust manual text style scalin…
datttran Aug 24, 2025
f234253
Comprehensive font scaling implementation - all text elements now sca…
datttran Aug 24, 2025
8c075e4
Fix hardcoded text styles in Home Screen and Settings Screen - all te…
datttran Aug 24, 2025
e6c8ffb
feat: Implement comprehensive app scaling and responsive grid system
datttran Aug 24, 2025
a20fc44
- minor fixes [Setting Page]
datttran Aug 25, 2025
f67504d
feat: implement loading screen with Hero animation and background com…
datttran Aug 25, 2025
629adb3
refactor: remove loading spinner and text from genre chips
datttran Aug 25, 2025
95af2ae
refactor: remove all CircularProgressIndicator, use only shimmer effects
datttran Aug 25, 2025
deaee6b
refactor: remove empty loading container and overlay
datttran Aug 25, 2025
26f5a42
fix: ensure consistent card sizing between shimmer and loaded states
datttran Aug 25, 2025
3646cf2
fix: ensure perfect consistency between shimmer and loaded grid layouts
datttran Aug 25, 2025
5172247
fix: remove padding difference between shimmer and loaded grids
datttran Aug 25, 2025
e618edd
fix: eliminate empty space above loading grid by using SliverGrid
datttran Aug 25, 2025
6526349
fix: correct shimmer card proportions to match real comic cards (80/2…
datttran Aug 25, 2025
3d648b4
fix: use different colors to distinguish image and text sections in s…
datttran Aug 25, 2025
13b7a92
test: use black and white colors for shimmer card sections to verify …
datttran Aug 25, 2025
63cca0a
test: remove Shimmer.fromColors to test plain color layout
datttran Aug 25, 2025
5d86aa7
feat: replace shimmer with fade_shimmer package
datttran Aug 25, 2025
085208a
fix: update FadeShimmer colors for better visibility
datttran Aug 25, 2025
7691321
feat: implement proper FadeShimmer API with fadeTheme and delays
datttran Aug 25, 2025
55bcddb
fix: add artificial delays to make shimmer effect visible
datttran Aug 25, 2025
f169b96
feat: replace fade_shimmer with card_loading package
datttran Aug 25, 2025
f3102bd
feat: implement proper 85/15 loading card layout with CardLoading
datttran Aug 25, 2025
f7e4777
fix: replace double.infinity heights with fixed heights for CardLoading
datttran Aug 25, 2025
8f60419
feat: implement LayoutBuilder solution for dynamic CardLoading heights
datttran Aug 25, 2025
f225b9d
feat: implement unified SliverGrid system for loading and loaded states
datttran Aug 25, 2025
a547348
feat: create custom loading card with two-part design
datttran Aug 25, 2025
8a76bf0
fix: use LayoutBuilder to ensure loading cards match loaded card dime…
datttran Aug 25, 2025
166ab9d
fix: match loading card count to loaded card count
datttran Aug 25, 2025
eb059d8
feat: combine CardLoading into Card widgets for perfect sizing consis…
datttran Aug 25, 2025
c4fe040
perf: remove artificial delays for instant cached genre switching
datttran Aug 25, 2025
eba1450
feat: add Space Grotesk font to NetTruyenReader
datttran Aug 25, 2025
bffd528
feat: implement sleek card design with dark borders and subtle shadows
datttran Aug 25, 2025
9b5653f
feat: implement hard, crisp shadows with no blur or spread
datttran Aug 25, 2025
60bd8f5
feat: apply hard shadow styling to both loading and loaded cards
datttran Aug 25, 2025
55cb4c1
feat: add theme-aware background color to loaded card text section
datttran Aug 25, 2025
b26ddf2
feat: add 6px right padding to grid for shadow and border spacing
datttran Aug 25, 2025
630bfcb
optimize: reduce grid right padding from 6px to 4px
datttran Aug 25, 2025
41fb538
fix: resolve text section background corner mismatch
datttran Aug 25, 2025
baf2a30
feat: add 2px hard shadows to genre chips
datttran Aug 25, 2025
935af78
refactor: wrap ActionChip with Material for better shadow control
datttran Aug 25, 2025
8873eb3
fix: resolve Material wrapper height mismatch with ActionChip
datttran Aug 25, 2025
518ec80
feat: implement DecoratedBox with ClipRRect for genre chip shadows
datttran Aug 25, 2025
f4664f7
fix: remove problematic inline comments that caused syntax errors
datttran Aug 25, 2025
985ec4d
feat: add 8px padding to genre chip DecoratedBox
datttran Aug 25, 2025
e7bd4ee
refactor: replace ActionChip with Container + InkWell for genre chips
datttran Aug 25, 2025
1d52b20
- convert chip to custom container
datttran Aug 25, 2025
e3f9a16
- update top banner
datttran Aug 25, 2025
b85d136
- update theme color
datttran Aug 25, 2025
f714d74
- update icon
datttran Aug 25, 2025
943fc53
- logo animation v1.
datttran Aug 25, 2025
1cbadd9
- logo animation v2
datttran Aug 25, 2025
8c0dbf5
- logo animation v4
datttran Aug 26, 2025
140804e
- logo animation v5 temp
datttran Aug 26, 2025
c1838d7
- finish reload animation
datttran Aug 26, 2025
ae8d9f0
- fix scroll into view issue
datttran Aug 26, 2025
b40f6fc
- fix chap number
datttran Aug 26, 2025
4da8e88
- search page update
datttran Aug 26, 2025
d8c3f6f
- update card universal
datttran Aug 26, 2025
20feb66
- update genre page
datttran Aug 26, 2025
74f2523
- update search page v1
datttran Aug 26, 2025
4cb9b49
- update search page v2
datttran Aug 26, 2025
591deae
- update search page v3
datttran Aug 26, 2025
7f1d0f2
- update get chapter list method v1
datttran Aug 28, 2025
862790d
- update get chapter list method v3
datttran Aug 28, 2025
a7d3022
- update HD thumbnail
datttran Aug 28, 2025
2ba0e5c
- update HD thumbnail Final
datttran Aug 28, 2025
840df26
- Keep reading process [PASS]
datttran Aug 28, 2025
686e1af
- READING PAGE V1
datttran Aug 29, 2025
45be512
- READING PAGE . FINAL with CMT
datttran Sep 1, 2025
ea53abe
- basic switch chapter v1
datttran Sep 1, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,11 @@
*.swp
.DS_Store
.atom/
.build/
.buildlog/
.history
.svn/
.swiftpm/
migrate_working_dir/

# IntelliJ related
Expand Down
25 changes: 5 additions & 20 deletions .metadata
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
# This file should be version controlled and should not be manually edited.

version:
revision: "2663184aa79047d0a33a14a3b607954f8fdd8730"
revision: "20f82749394e68bcfbbeee96bad384abaae09c13"
channel: "stable"

project_type: app
Expand All @@ -13,26 +13,11 @@ project_type: app
migration:
platforms:
- platform: root
create_revision: 2663184aa79047d0a33a14a3b607954f8fdd8730
base_revision: 2663184aa79047d0a33a14a3b607954f8fdd8730
- platform: android
create_revision: 2663184aa79047d0a33a14a3b607954f8fdd8730
base_revision: 2663184aa79047d0a33a14a3b607954f8fdd8730
create_revision: 20f82749394e68bcfbbeee96bad384abaae09c13
base_revision: 20f82749394e68bcfbbeee96bad384abaae09c13
- platform: ios
create_revision: 2663184aa79047d0a33a14a3b607954f8fdd8730
base_revision: 2663184aa79047d0a33a14a3b607954f8fdd8730
- platform: linux
create_revision: 2663184aa79047d0a33a14a3b607954f8fdd8730
base_revision: 2663184aa79047d0a33a14a3b607954f8fdd8730
- platform: macos
create_revision: 2663184aa79047d0a33a14a3b607954f8fdd8730
base_revision: 2663184aa79047d0a33a14a3b607954f8fdd8730
- platform: web
create_revision: 2663184aa79047d0a33a14a3b607954f8fdd8730
base_revision: 2663184aa79047d0a33a14a3b607954f8fdd8730
- platform: windows
create_revision: 2663184aa79047d0a33a14a3b607954f8fdd8730
base_revision: 2663184aa79047d0a33a14a3b607954f8fdd8730
create_revision: 20f82749394e68bcfbbeee96bad384abaae09c13
base_revision: 20f82749394e68bcfbbeee96bad384abaae09c13

# User provided section

Expand Down
117 changes: 107 additions & 10 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,16 +1,113 @@
# nettruyenreader
# NetTruyen Reader

A new Flutter project.
A polished, ad-free comic reading experience for NetTruyen.

## Getting Started
## Features

This project is a starting point for a Flutter application.
- **Network Error Handling**: Comprehensive error handling for network connectivity issues
- **Retry Logic**: Automatic retry with exponential backoff for failed requests
- **User-Friendly Error Messages**: Clear, actionable error messages instead of technical jargon
- **Network Status Indicator**: Real-time network connectivity status
- **Offline Support**: Cached content for offline reading

A few resources to get you started if this is your first Flutter project:
## Network Error Handling

- [Lab: Write your first Flutter app](https://docs.flutter.dev/get-started/codelab)
- [Cookbook: Useful Flutter samples](https://docs.flutter.dev/cookbook)
The app includes robust error handling for various network scenarios:

For help getting started with Flutter development, view the
[online documentation](https://docs.flutter.dev/), which offers tutorials,
samples, guidance on mobile development, and a full API reference.
### Connection Refused Error
- **Cause**: Server is down, blocked, or unreachable
- **Solution**: The app will automatically retry with exponential backoff
- **User Action**: Check internet connection and try again later

### Connection Timeout
- **Cause**: Slow network or server response
- **Solution**: Automatic retry with increased timeout
- **User Action**: Check network speed and try again

### DNS Resolution Issues
- **Cause**: Unable to resolve domain names
- **Solution**: Check internet connection and DNS settings
- **User Action**: Try switching networks or using a VPN

### Server Errors (403, 404, 500)
- **Cause**: Server-side issues or access restrictions
- **Solution**: App shows appropriate error messages
- **User Action**: Wait and retry, or contact support

## Troubleshooting

### If you're getting "Connection refused" errors:

1. **Check your internet connection**
- Try accessing other websites
- Restart your router if needed

2. **Try using a VPN**
- The site might be blocked in your region
- Use a VPN service to bypass restrictions

3. **Check if the site is down**
- Visit nettruyenvio.com in your browser
- Check if the site is accessible

4. **Clear app cache**
- Go to Settings > Apps > NetTruyen Reader > Clear Cache
- Restart the app

### If you're getting "Cloudflare blocked" errors:

1. **Wait a few minutes**
- Cloudflare protection might be temporary
- Try again after 5-10 minutes

2. **Use the "Verify you are human" option**
- The app will open a browser window
- Complete the Cloudflare challenge
- Return to the app

3. **Try a different network**
- Switch from WiFi to mobile data
- Or vice versa

## Error Messages

The app provides user-friendly error messages:

- **"Unable to connect to the server"** - Network connectivity issue
- **"Connection timed out"** - Slow network or server response
- **"Access blocked by Cloudflare"** - Site protection active
- **"Server error"** - Temporary server issues

## Technical Details

### Retry Logic
- Maximum 3 retry attempts
- Exponential backoff (2s, 4s, 6s delays)
- Different handling for different error types

### Network Status Indicator
- Shows real-time connectivity status
- Checks both general internet and site accessibility
- Auto-refreshes when tapped

### Error Recovery
- Automatic retry on network restoration
- Manual retry buttons on error screens
- Graceful degradation for offline scenarios

## Development

### Running the app
```bash
flutter pub get
flutter run
```

### Testing network error handling
- Disconnect from internet to test offline scenarios
- Use network throttling tools to test slow connections
- Block specific domains to test DNS issues

## License

This project is for educational purposes only.
Loading