Commit graph

193 commits

Author SHA1 Message Date
CollotsSpot
4f6ffc7fb4
Merge d6e49238ec into 07aea41c6e 2025-11-21 11:05:42 +00:00
Claude
d6e49238ec
fix: strip HTML tags from book descriptions for proper display 2025-11-21 11:05:38 +00:00
Claude
2b314696ac
fix: add support for bookMinifiedSeriesFilter metadata variant in series view 2025-11-21 08:31:53 +00:00
Claude
b434f73b2a
perf: optimize scrolling and image loading performance
Added performance optimizations to all library browser views:

- Added cacheExtent: 500 to all GridView/ListView builders to pre-render
  items and reduce stuttering during scrolling
- Wrapped grid items in RepaintBoundary to isolate repaints and improve
  performance
- Optimized CachedNetworkImage with:
  - fadeInDuration/fadeOutDuration: Duration.zero to remove animation overhead
  - memCacheHeight: 300 to limit in-memory cache size
  - maxHeightDiskCache: 600 to resize images for better performance

These changes should significantly reduce the stuttering observed when
scrolling the authors grid and filtering books, especially on first load.
2025-11-20 22:18:20 +00:00
Claude
ccb8318341
fix: request full metadata for series-filtered books
Added minified: false to GetLibrarysItemsReqParams to ensure the API
returns complete book metadata including titles and authors. The logs
showed that series-filtered items were returning bookMinified variant
with empty title and null authorName fields. This change requests the
full metadata variant which includes all necessary fields.
2025-11-20 22:08:39 +00:00
Claude
7d2877c1bb
fix: add series sequence sorting and debug metadata variants
Series sorting fix:
- Detect SeriesFilter and use 'sequence' sort parameter
- Other filters (author/genre) continue using alphabetical title sort
- Books in series now display in proper sequence order

Series metadata debugging:
- Add logging to show media and metadata variants for each item
- Add bookSeriesFilter metadata variant handlers
- Log extracted title and author for debugging
- This will help identify why series-filtered books show no info

The logging will show what metadata structure the API returns for
series-filtered items so we can properly extract title/author data.
2025-11-20 21:47:46 +00:00
Claude
a1844c225c
fix: increase card height to prevent 2-line title overflow
- Change childAspectRatio from 0.68 to 0.65
- Fixes 3.3 pixel overflow when titles span two lines
- Single-line titles already worked, this ensures two-line titles fit
2025-11-20 21:44:32 +00:00
Claude
5094915086
fix: adjust grid aspect ratio to prevent overflow
- Change childAspectRatio from 0.75 to 0.68 for more vertical space
- Fixes 'bottom overflowed by X pixels' error in grid cards
- Provides adequate space for square cover + title + author text
- Cards are slightly taller but layout is now correct
2025-11-20 21:23:11 +00:00
Claude
8667bd03dd
fix: improve navigation stack and ensure square cover aspect ratios
Navigation fixes:
- Change goNamed to pushNamed in all library browser pages
- Maintains proper back navigation stack
- Back button now goes step by step instead of to beginning
- Prevents app from closing when navigating back from book detail

Grid layout fixes:
- Book covers are now always square (1.0 aspect ratio)
- Overall card aspect ratio is 0.75 to provide space for text
- Wrap cover in AspectRatio widget instead of using Expanded
- Ensures title and author info always visible below covers
- Fixes issue where book info was missing in series view
2025-11-20 21:03:15 +00:00
Claude
cf0778e263
feat: convert filtered items to grid view and fix navigation
- Change from ListView to GridView with 3 columns for better book browsing
- Redesign LibraryItemCard as grid cards with cover images and metadata
- Fix navigation to use Routes.libraryItem instead of Routes.you
- Use correct path parameter 'itemId' for book detail navigation
- Remove subtitle from cards to simplify grid layout
- Books now open properly when tapped, same as home page
2025-11-20 20:31:50 +00:00
Claude
9e0f25f0e2
fix: try multiple endpoints and improve series parsing
- Try filterdata endpoint first (like genres)
- Fall back to series endpoint if needed
- Make SimpleSeries.fromJson more robust with multiple field name attempts
- Add extensive logging to debug series loading issues
2025-11-20 19:30:18 +00:00
Claude
f4d1914b21
debug: add extensive logging and error handling for series 2025-11-20 19:29:23 +00:00
Claude
e4a522cc0d
chore: force workflow trigger 2025-11-20 17:18:13 +00:00
Claude
fed36b1e88
chore: trigger workflow build 2025-11-20 17:16:31 +00:00
Claude
86eddcac45
fix: add null safety assertions for Text widgets
Add non-null assertion operators for authorName and subtitle in Text
widgets where null checks are already performed. This resolves the
null safety compilation errors.
2025-11-20 17:07:18 +00:00
Claude
8300cc7571
fix: correct type checking and imports in filtered library page
- Add shelfsdk import to router.dart for Filter types
- Fix Media and MediaMetadata type checking using freezed mapOrNull
- Handle all Media variants (book, bookMinified, bookExpanded)
- Handle all MediaMetadata variants to extract title, subtitle, and authors
- Fix BookMetadata accessing authors list instead of authorName property

Resolves compilation errors in GitHub Actions build.
2025-11-20 16:54:06 +00:00
Claude
43712643a2
feat: implement filtered book navigation and improve author sorting
- Sort authors by surname (last word in name) instead of first name
- Create FilteredLibraryItemsPage to display books filtered by author/genre/series
- Add navigation from authors/genres/series pages to filtered book lists
- Use AuthorFilter, GenreFilter, and SeriesFilter from shelfsdk
- Add libraryFiltered route with filter parameter support

Users can now:
- Browse authors sorted by surname
- Tap on an author to see all their books
- Tap on a genre to see all books in that genre
- Tap on a series to see all books in that series
2025-11-20 16:43:21 +00:00
Claude
f60ea72659
fix: resolve Series deserialization issues and add author sorting
- Fix genres error by parsing JSON manually to avoid Series deserialization
- Fix series blank screen by using SimpleSeries class instead of full Series
- Add alphabetical sorting to authors page
- Work around shelfsdk Series variant detection issues

The Audiobookshelf API returns Series objects that don't match any of the
variant detection patterns in the shelfsdk SeriesConverter. Since we can't
modify the external shelfsdk, we parse the API responses manually to extract
only the data we need for display.
2025-11-20 16:17:09 +00:00
Claude
5afce16532
fix: create Android keystore directory before SDK license step
Move the directory creation before the SDK license acceptance step to
avoid permission issues. The directory will be created with normal user
permissions, preventing the "Operation not permitted" errors when the
SDK manager (running with sudo) tries to use it.
2025-11-20 14:08:06 +00:00
Claude
f750e8a3eb
fix: use sudo for chmod on Android keystore directory
The directory is created by the SDK license step with sudo, so we need
sudo to change its permissions. This fixes the "Operation not permitted"
error during the workflow run.
2025-11-20 13:14:52 +00:00
Claude
f29159e55b
fix: create Android debug keystore directory before build
Add step to create and set permissions for ~/.config/.android directory
to fix 'Unable to create debug keystore' error during debug APK builds.
2025-11-20 13:07:44 +00:00
Claude
3da7b60ded
fix: correct property names and Series.maybeMap usage
Fix compilation errors in library browser views:
- Use serverUrl instead of url on AudiobookShelfServer model
- Use authToken instead of token on AuthenticatedUser model
- Add all required variant handlers to Series.maybeMap call

These changes align with the actual model definitions in the codebase.
2025-11-20 12:45:29 +00:00
Claude
fafd4c5315
fix: remove unused parameters from librarySeriesProvider
- Remove unused page and limit parameters from librarySeries provider
- Update library_series_page to call provider without parentheses
- Fix riverpod_generator compatibility issue
2025-11-20 11:31:13 +00:00
Claude
e778e494b4
ci: add feature branch build workflow for automatic APK generation
This workflow automatically builds APKs for feature branches:

- Triggers on pushes to branches starting with 'claude/', 'feature/', or 'dev/'
- Runs build_runner to generate required .g.dart files
- Supports both signed (if secrets available) and debug builds
- Uploads APK artifacts with branch name and commit SHA
- 30-day artifact retention for testing
- Manual trigger support via workflow_dispatch

This allows developers to test changes without manually building locally.
Artifacts can be downloaded from the GitHub Actions run page.
2025-11-20 11:17:26 +00:00
Claude
53027bf74c
feat: implement library view with Authors, Genres, and Series browsing
This commit implements a comprehensive library browsing feature:

- Add LibraryBrowserProvider with providers for authors, genres, and series data
- Create LibraryAuthorsPage with grid view of authors including images and book counts
- Create LibraryGenresPage with list view of all genres
- Create LibrarySeriesPage with list view of series and book counts
- Update LibraryBrowserPage navigation to route to the new views
- Add routes for /browser/authors, /browser/genres, and /browser/series
- Replace "Not Implemented" toasts with functional navigation

The implementation uses the Audiobookshelf API via shelfsdk to fetch:
- Authors list with metadata (getAuthors)
- Genres from library filter data (getFilterData)
- Series with pagination support (getSeries)

All views follow Material Design 3 patterns and include proper loading/error states.
2025-11-20 10:52:18 +00:00
Dr.Blank
07aea41c6e
fix: update build_runner command to use dart directly instead of fvm
Some checks failed
Flutter CI & Release / Test (push) Has been cancelled
Flutter CI & Release / Build Android APKs (push) Has been cancelled
Flutter CI & Release / build_linux (push) Has been cancelled
Flutter CI & Release / Create GitHub Release (push) Has been cancelled
2025-05-28 12:25:22 +05:30
Dr.Blank
8485a26f1a
chore: update Flutter to version 3.32.0 (#85) 2025-05-28 11:32:07 +05:30
Dr.Blank
19046d92d9
feat: add documentation for testing deeplinks on Linux
Some checks are pending
Flutter CI & Release / Test (push) Waiting to run
Flutter CI & Release / Build Android APKs (push) Blocked by required conditions
Flutter CI & Release / build_linux (push) Blocked by required conditions
Flutter CI & Release / Create GitHub Release (push) Blocked by required conditions
2025-05-27 23:15:52 +05:30
Dr.Blank
4619657f00
feat: deeplinks for linux (#84)
Some checks failed
Flutter CI & Release / Test (push) Has been cancelled
Flutter CI & Release / Build Android APKs (push) Has been cancelled
Flutter CI & Release / build_linux (push) Has been cancelled
Flutter CI & Release / Create GitHub Release (push) Has been cancelled
2025-05-23 21:03:02 +05:30
Dr.Blank
db20682004
feat: Add AppImage build and generic naming for Linux artifacts (#83)
Some checks are pending
Flutter CI & Release / Test (push) Waiting to run
Flutter CI & Release / Build Android APKs (push) Blocked by required conditions
Flutter CI & Release / build_linux (push) Blocked by required conditions
Flutter CI & Release / Create GitHub Release (push) Blocked by required conditions
Co-authored-by: google-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com>
2025-05-23 10:53:24 +05:30
Dr.Blank
5c7be5cbe4
feat: Add settings to control play button visibility on home shelves (#81)
Some checks failed
Flutter CI & Release / Test (push) Has been cancelled
Flutter CI & Release / Build Android APKs (push) Has been cancelled
Flutter CI & Release / build_linux (push) Has been cancelled
Flutter CI & Release / Create GitHub Release (push) Has been cancelled
Co-authored-by: google-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com>
2025-05-22 08:24:59 +05:30
Dr.Blank
25c3346941
feat: Replace theme dialog with segmented buttons (#82)
Co-authored-by: google-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com>
2025-05-22 07:26:25 +05:30
github-actions[bot]
23e5d73bea chore(release): bump version to v0.0.18
Some checks failed
Flutter CI & Release / Test (push) Has been cancelled
Flutter CI & Release / Build Android APKs (push) Has been cancelled
Flutter CI & Release / build_linux (push) Has been cancelled
Flutter CI & Release / Create GitHub Release (push) Has been cancelled
2025-04-23 11:01:25 +00:00
Dr.Blank
bae99292a2
feat: add PlayingIndicatorIcon widget for animated playback indication (#80) 2025-04-23 16:23:57 +05:30
Dr.Blank
25be7fda03
fix: keyboard not showing when adding new user (#79)
* feat: add fadeSlideTransitionBuilder for smoother transitions in user login

* fix: reuse onboarding components on server manager page

* fix: gaining focus rebuilt the widget

using memoized fixes this issue
2025-04-23 15:00:01 +05:30
Dr.Blank
c8767b4e1e
feat: enhance UserBar with user API details and improved text styling 2025-04-23 14:51:39 +05:30
Dr.Blank
ad0cd6e2ad
fix: run dart fix
Some checks are pending
Flutter CI & Release / Test (push) Waiting to run
Flutter CI & Release / Build Android APKs (push) Blocked by required conditions
Flutter CI & Release / build_linux (push) Blocked by required conditions
Flutter CI & Release / Create GitHub Release (push) Blocked by required conditions
2025-04-23 00:29:02 +05:30
Dr.Blank
2cb00c451e
feat: implement scroll-to-top FAB and enhance library item app bar with scroll listener 2025-04-23 00:22:32 +05:30
Dr.Blank
c3d3a3900d
refactor: remove transparent background color from app bars
Some checks failed
Flutter CI & Release / Test (push) Has been cancelled
Flutter CI & Release / Build Android APKs (push) Has been cancelled
Flutter CI & Release / build_linux (push) Has been cancelled
Flutter CI & Release / Create GitHub Release (push) Has been cancelled
2025-04-19 19:47:25 +05:30
Dr.Blank
5f85df4d19
add SVG conversion instructions and vaani_logo.svg file 2025-04-19 19:27:15 +05:30
Dr.Blank
5986482baf
feat: ability to change library (#77)
* feat: add AbsIcons font and update pubspec.yaml for font integration

* feat: implement library selection in YouPage

* fix: optimize authenticatedApi provider to not rebuild unnecessarily

* feat: add LibrarySwitchChip widget and integrate it into YouPage and ScaffoldWithNavBar

* feat: enhance library selection UI with refresh functionality and error handling

* fix: change library switcher activation from long press to double tap

* feat: show current library on nav bar

* feat: refactor LibraryBrowserPage to use CustomScrollView and enhance app bar with dynamic library icon and title
2025-04-19 19:17:31 +05:30
Dr.Blank
37c44f1c6b
add more ways to get app
Some checks failed
Flutter CI & Release / Test (push) Has been cancelled
Flutter CI & Release / Build Android APKs (push) Has been cancelled
Flutter CI & Release / build_linux (push) Has been cancelled
Flutter CI & Release / Create GitHub Release (push) Has been cancelled
2025-04-11 21:00:50 +05:30
github-actions[bot]
b0ea9e14d2 chore(release): bump version to v0.0.17
Some checks are pending
Flutter CI & Release / Test (push) Waiting to run
Flutter CI & Release / Build Android APKs (push) Blocked by required conditions
Flutter CI & Release / build_linux (push) Blocked by required conditions
Flutter CI & Release / Create GitHub Release (push) Blocked by required conditions
2025-04-11 06:49:50 +00:00
Dr.Blank
de7c3359f7
ci: use PAT instead of github token 2025-04-11 12:13:08 +05:30
Dr.Blank
39d051746b
update label regex 2025-04-10 19:46:57 +05:30
Dr.Blank
4ebf46d2fd
chore: remove deprecated apis (#74)
* dart format + remove withopacity

* remove unused imports
2025-04-10 19:42:08 +05:30
Dr.Blank
4af16ac5b4
ci: add format check for lib/ 2025-04-10 19:38:18 +05:30
Dr.Blank
28ceca5408
fix: bug login not shown for some languages (#73)
* fix language preventing logging in

* make eye blink once
2025-04-10 19:12:20 +05:30
Dr.Blank
4663ff9094
feat: add Linux packaging support (#70)
Some checks failed
Flutter CI & Release / Test (push) Has been cancelled
Flutter CI & Release / Build Android APKs (push) Has been cancelled
Flutter CI & Release / build_linux (push) Has been cancelled
Flutter CI & Release / Create GitHub Release (push) Has been cancelled
* Refactor CI workflow and add Linux packaging support; update app title to "Vaani"

* Refactor CI workflow to separate setup, testing, and building steps; add Linux AppImage packaging support

* use reusable workflow

* Make Flutter version input optional in setup-env action and rename step in workflow

* Replace setup-env action with reusable flutter-setup workflow; streamline CI configuration and enhance dependency management

* Add Flutter setup composite action for streamlined environment configuration

* Move repository checkout step to the main workflow for better control and clarity in the CI process

* Remove unnecessary shell specification for Flutter dependency setup to simplify action configuration

* Add shell specification for Flutter dependency command to enhance cross-platform compatibility

* Comment out static analysis step in Flutter test workflow to streamline CI process

* Add repository checkout and Flutter environment setup steps to CI workflow

* Add installation of Linux dependencies for Flutter test workflow

* Remove obsolete Flutter setup and release workflows to streamline CI configuration

* Fix formatting in make_config.yaml by ensuring newline at end of file
2025-04-05 10:31:07 +05:30
Dr.Blank
412c212118
bump version
Some checks failed
Flutter Test / test (push) Has been cancelled
2025-04-04 14:28:39 +05:30