Refactor app architecture for MVVM and state management#49
Draft
scorp867 wants to merge 2 commits into
Draft
Conversation
This commit introduces a comprehensive refactoring of the Musify app to adopt the MVVM architecture. Key changes include: - **ViewModel Creation**: Dedicated ViewModels are now in place for various app sections, separating UI logic from data handling. - **Dependency Injection**: Singleton patterns are removed from `SpotifyStyleDataManager` and `LibraryRepository`, with dependencies now managed by Hilt. - **State Management**: Centralized state management for playback and scanning is implemented using new classes like `PlaybackStateManager` and `ScanningViewModel`. - **State Persistence**: Playback and queue states are now automatically saved and restored, ensuring a seamless user experience across app sessions. - **Code Duplication Elimination**: Redundant scanning and artwork extraction logic has been consolidated. - **UI Updates**: `MainActivity2` and `HomeScreen2` are updated to leverage the new MVVM structure and state management. These changes enhance code maintainability, testability, and overall application stability. Co-authored-by: justinbieber821721 <justinbieber821721@gmail.com>
|
Cursor Agent can help with this pull request. Just |
Co-authored-by: justinbieber821721 <justinbieber821721@gmail.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Refactor the app to implement proper MVVM, Hilt-based dependency injection, and centralized state management for improved maintainability and user experience.
This PR addresses several architectural issues, including direct repository access in UI, scattered business logic, and manual singleton patterns, which led to duplicate code, difficult testing, and inconsistent state handling. The changes centralize these concerns, making the app more robust and easier to extend.