v0.1.8
๐ง Pre-release Version
๐ Release Information
Version: v0.1.8 Previous Version: v0.1.7 Build Environment: Flutter 3.27.0
๐ Changelog
โถ โจ improve LyricLine widget interactivity and layout - ๐ซ Simplified the hero tag assignment in DetailScreen to use a consistent format for work covers, enhancing clarity and maintainability. - ๐ง Adjusted the hero tag in PlayerScreen to use a static tag for the mini player cover, improving consistency across screens.
These changes improve the code structure and ensure a more uniform approach to hero tag management in the application.
feat: add cancel token support for API requests in detail view model
- ๐ Updated the getWorkFiles method in ApiService to accept an optional CancelToken, allowing for request cancellation.
- ๐ Integrated CancelToken in DetailViewModel to manage ongoing API requests, enhancing user experience by preventing unnecessary operations when the view model is disposed.
- โก๏ธ Improved error handling to differentiate between user-initiated cancellations and other errors during file loading.
These changes enhance the responsiveness and reliability of API interactions within the application.
feat: enhance lyric display and playback control functionality
- ๐ Updated default lyric text from "ๆ ๆญ่ฏ" to "ๆ ๅญๅน" for improved clarity.
- ๐งฎ Simplified the logic for seeking to the next track by removing unnecessary file retrieval steps, enhancing performance.
- โฌ๏ธ Added a listener for player index changes to automatically update the current track and context, improving user experience.
- โป๏ธ Refactored PlayerScreen to utilize a ViewModel for better state management and interaction, enhancing the overall architecture.
These changes collectively improve the lyric display and playback control, providing a more responsive and user-friendly experience.
feat: enhance PlayerLyricView with improved scroll management and user interaction
- ๐ Introduced timers to manage automatic scrolling and view switching, allowing users to manually scroll through lyrics without interruption.
- ๐ฏ Implemented a debounce mechanism to restore automatic scrolling after user interaction, enhancing the playback experience.
- ๐ Updated scrolling logic to prevent automatic scrolling when users are manually browsing lyrics, ensuring a smoother navigation experience.
- ๐งฎ Cleaned up timer management in the dispose method to prevent memory leaks.
These changes significantly improve user control over the lyrics display, providing a more engaging and responsive playback experience.
feat: enhance LyricLine interactivity and update PlayerLyricView with tap functionality
- โฌ๏ธ Added an optional onTap callback to the LyricLine widget, enabling interaction when lyrics are tapped.
- ๐ Updated PlayerLyricView to handle tap events, allowing users to seek to specific timestamps in the audio playback.
- โก๏ธ Improved user experience by temporarily disabling view switching during seeking, ensuring smoother navigation through lyrics.
These changes significantly enhance the interactivity of the lyrics display, providing users with a more engaging playback experience.
feat: enhance PlayerScreen with animated transitions for lyrics and cover display
- ๐ Replaced the static layout with an AnimatedSwitcher to provide smooth transitions between lyrics and cover display.
- ๐ฏ Implemented FadeTransition, SlideTransition, and ScaleTransition for improved visual effects during toggling.
- ๐จ Maintained existing functionality for displaying lyrics and track information while enhancing user experience with dynamic animations.
These changes significantly improve the interactivity and visual appeal of the PlayerScreen, making the transition between different views more engaging for users.
feat: enhance PlayerScreen and PlayerLyricView interaction with scroll state management
- ๐ซ Introduced a new boolean flag `_canSwitchView` in PlayerScreen to control the toggling of lyrics display based on scroll state.
- ๐ Updated PlayerLyricView to notify PlayerScreen when the user manually scrolls, allowing for better management of user interactions.
- ๐ฏ Implemented a debounce mechanism to reset the scroll state after user interaction, improving responsiveness and user experience.
These changes enhance the interactivity of the player screen, ensuring that users can seamlessly toggle lyrics while maintaining control over the playback experience.
refactor: update PlayerLyricView to support immediate scrolling and improve lyric display logic
- ๐ต Modified PlayerLyricView to include an 'immediateScroll' parameter for controlling scrolling behavior.
- โป๏ธ Refactored scrolling logic to handle initial builds and subsequent lyric changes more effectively, enhancing user experience during playback.
- โฌ๏ธ Removed scrolling logic from initState and centralized it in the build method for better performance and clarity.
These changes improve the responsiveness and usability of the lyrics display, ensuring a smoother experience for users while interacting with the player.
feat: add marquee functionality and player work info display
- ๐ Integrated the marquee package to display scrolling text for the current work title in the PlayerScreen.
- โจ Created a new PlayerWorkInfo widget to present work details, including title and voice actor information, enhancing the user interface.
- ๐ Updated pubspec.yaml and pubspec.lock to include the marquee dependency.
These changes improve the audio playback experience by providing dynamic information about the currently playing work, enriching user engagement.
feat: enhance player screen interaction with opaque hit testing
- โฌ๏ธ Added HitTestBehavior.opaque to the player screen's content area, allowing for improved interaction responsiveness.
- ๐ซ This change aims to enhance user experience by ensuring that touch events are registered even when interacting with non-visible elements, leading to a more intuitive interface.
refactor: temporarily remove PlayerSeekControls for UI simplification
- ๐ซ Commented out the PlayerSeekControls widget to reduce complexity in the player interface.
- ๐ฎ Reasons for removal include an excess of buttons leading to a cluttered experience, the need for a clearer design prioritizing controls, and plans to implement gesture-based functionality.
- โฌ๏ธ Added a TODO to redesign the control interface for improved usability.
These changes aim to enhance user experience by streamlining the player controls and preparing for future design improvements.
feat: improve lyric line spacing and update layout in player lyric view
- โฌ๏ธ Increased line height in LyricLine widget for better readability.
- ๐ Replaced fixed height with padding in PlayerLyricView to enhance spacing between lyrics, improving overall layout and user experience.
These changes enhance the visual presentation of lyrics, making them easier to read during playback.
chore: update Android Gradle plugin and wrapper version
- ๐ Downgraded the Android Gradle plugin version from 8.7.1 to 8.1.0 for compatibility reasons.
- ๐ Updated the Gradle wrapper distribution URL to use version 8.3, ensuring the build environment is aligned with the specified plugin version.
These changes help maintain compatibility and stability in the build process.
feat: implement lyrics display and enhance player screen functionality
- โฌ๏ธ Added a new PlayerLyricView widget to display lyrics with automatic scrolling to the current line.
- ๐ Updated PlayerScreen to support toggling between lyrics and player controls, improving user interaction.
- ๐ Integrated the scrollable_positioned_list package for smooth scrolling of lyrics.
- โก๏ธ Enhanced the appearance of lyric lines with updated styling for better readability.
- ๐ง Adjusted padding in PlayerProgress for a more compact layout.
These changes significantly improve the audio playback experience by providing users with an interactive lyrics display, enhancing engagement during playback.
feat: add lyric seeking functionality and update player UI
- ๐ฏ Implemented methods in PlayerViewModel to seek to the next and previous lyrics based on the current subtitle.
- ๐ซ Introduced a new PlayerSeekControls widget to provide UI controls for seeking through audio playback, including options to skip forward and backward by 5 and 30 seconds, as well as to the next and previous lyrics.
- ๐ Updated PlayerScreen to integrate PlayerSeekControls, enhancing the user interface and interaction experience.
These changes improve the audio playback experience by allowing users to navigate through lyrics seamlessly.
feat: enhance player screen functionality and UI transitions
- โฌ๏ธ Added a new method to retrieve the current playback context in PlayerViewModel.
- ๐ Updated DetailScreen to accept a 'fromPlayer' parameter for improved navigation context.
- ๐ Integrated a button in PlayerScreen to navigate to DetailScreen with the current work context.
- โก๏ธ Enhanced WorkCover widget to support dynamic hero tags for better visual transitions.
- ๐ Updated MiniPlayer to use a distinct hero tag for improved UI consistency.
These changes improve navigation and visual continuity between the player and detail screens, enhancing the overall user experience.
feat: update player navigation and enhance UI transitions
- ๐ Commented out the player screen route in main.dart to prevent direct navigation.
- โป๏ธ Refactored the MiniPlayer to use a custom page transition when navigating to the PlayerScreen, enhancing the user experience with smooth animations.
- โฌ๏ธ Added Hero widgets for the cover image and title in both PlayerScreen and MiniPlayer, enabling shared element transitions for a more cohesive visual experience.
These changes improve navigation and visual continuity between the mini player and the player screen.
feat: enhance tag interaction in WorkInfoHeader
- โฌ๏ธ Added a new method to handle tag tap interactions, allowing users to navigate to the search screen with the selected tag as a keyword.
- ๐ Integrated the new interaction into the TagChip widget for both circle names and VA names, improving user engagement and navigation.
These changes enhance the user experience by facilitating easier access to search functionality through tag interactions.
feat: implement search functionality and enhance tag interaction
- โฌ๏ธ Added a new SearchScreen to allow users to search for content using keywords.
- ๐ Updated the MainScreen to include a route for the SearchScreen, passing the initial keyword as an argument.
- โก๏ธ Enhanced the TagChip widget to support tap interactions, enabling users to navigate to the SearchScreen with the selected tag as a keyword.
- โก๏ธ Improved the SearchScreen to automatically execute a search if an initial keyword is provided.
These changes enhance the app's search capabilities and improve user navigation through tag interactions.
Merge pull request #4 from asmr-one/fix-source-id
fix: source id format issue
fix: sourceId is not unique, can not use for Hero tag
edge case: two works with the same sourceId, but different id
(consider theres two versions of the same work uploaded by different users)
chore: rename rjNumber to sourceId
There's no definition of rjNumber
Only have:
workId = a unique NUMBER points an exact work in Kikoeru
sourceId = a well know STRING code referenced to one Dlsite work (if sourceType = 'DLSITE')
fix: do not format work.id to RJ code manually, use sourceId instead
https://t.me/asmr_one_chan/67
fix: bump AGP version to fix android build issue
Error:
Execution failed for task ':path_provider_android:compileDebugJavaWithJavac'.
Ref Issue:
https://github.com/flutter/flutter/issues/156558
https://github.com/flutter/flutter/issues/156304