Refactor architecture to separate data, domain, and presentation layers #520
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 architecture of the
:shared
module to separate the data, domain, and presentation layers into their respective packages.Data Layer:
SQLDelightSafeRepository
class in thedata
package.SQLDelightDatabaseSource
class in thedata
package.Domain Layer:
Note
class in thedomain.model
package.DatabaseState
class in thedomain.model
package.SafeRepository
interface in thedomain.repository
package.ChangePasswordUseCase
,CheckPasswordUseCase
,CheckSqlCipherVersionUseCase
, andCreateNoteUseCase
classes in thedomain.usecase
package.Presentation Layer:
NoteListScreen
class in thepresentation
package.NoteDetailScreen
class in thepresentation
package.Dependency Injection:
sharedModules.kt
to reflect the new package structure.daoModule
to use the newNoteDAO
location.useCaseModule
to use the new use case locations.viewModelModule
to use the new ViewModel locations.For more details, open the Copilot Workspace session.