Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add State Management for the UI (#5)
* Feat(test): add required dependencies for testing * test(network): add test file for the app NetworkModule * Feat(network): add header provider to the NetworkModule * docs(Readme): move test item to done section * Test(coroutine): add test requirement rule for the Coroutines * Test(dagger): add required test implementations for the Dagger Hilt * Chore(gradle): add CustomTestRunner to support Dagger Hilt * Test(ui): add some UI tests * Chore(gradle): add new test dependencies for the project * Fix(test): fix failed test when HomeFragmentTest executed (test passed) * Feat(test): add a mock file used to hold some fake data for testing * Test(usecase): add new passed test cases for the current and location weather UseCases * Test(usecase): add new passed test cases for the GetNextDaysForecastsUseCase * Chore(IDE): Update project configs * Refactor(project): Change project name * Chore(docs): add items to the backlog * Feat(icon): add app icon * Chore(IDE): Update project settings * Feat(logo): Add application logo * Feat(common): Add extension for Fragment to easier using SnackBar * Feat(vm): Add base class to provide network error into ViewState * Feat(vm): Add new error constants * Refactor(ui): changed to network connection error * Refactor(data): moved into safe getResult call body * Refactor(ui): Use new extension to show snackBar * Fix(vm): Fix failure detection issues and notify the view from event properly * Refactor(image-api): Use better API to showing random images * Refactor(package): move di to a new package * Feat(di): Add new di ImageModule for the Coil + use in UI * Fix(package): Fix package name * Chore(IDE): Update project settings * Feat(release): Add required implementations for generating release signed APK * Feat(art): Add some shots from the release app * Feat(ci): Add different jobs for run tests, release apk and upload * Chore(art): Add extension * Feat(art): Add new screen shots * Fix(ci): Fix typo * Fix(docs): Fix typo * Chore(docs): Add item to done section * WIP(ci): Upload entire directory to artifacts * WIP(ci): Change the path * Refactor(ci): Change master to main. Upload only release apk file * Refactor(ci): Run only on main and develop branch * Docs(readme): Add release information to docs * Docs(readme): Add reference to all releases * Chore(IDE): Update Project settings * Chore(anim): Add new fading effect on transitions * Feat(data): Add new Error handling code for the project. Because the current API does not have any http result wrapper * Docs(readme): Add some notes in docs * Fix(domain): Remove useless code * Feat(docs): Add new ui screen shot * Chore(docs): Add new release version url * Chore(docs): Move offline item to done section * Feat(gradle): add required dependencies for the offline db * Feat(base-db): add new base implementations required for offline room database * Feat(data): add new base Mapper class to transform Entities to Domain models * Feat(data): add new data access object for the places table * Refactor(di): Provide domain repositories to use in UseCases, and remove data repository wrong dependencies in UseCases and ViewModels * Refactor(core): Repackaged * Feat(domain): Add some domain models * Feat(data): Add db configs * Chore(docs): Add cache strategy info * Chore(project): Upgrade version to create publish release * Refactor(all): remove useless file * Feat(data): add new DAOs to the app database * Refactor(di): Remove useless context from class * Refactor(data): repackaged * Feat(data): add new entity in database * Feat(data): add new helper class to communicate with dao * Refactor(data): Update Base Mapper for domain-entity to use with inject method in other classes * Refactor(data): repackaged, Update WebServices data type * Feat(domain): Add new domain models for the project * Feat(domain): Add new domain repository to use in domain useCases to be implemented in data layer * Refactor(domain): change id type to long * Refactor(presentation-domain): change used model type from entity to domain * Refactor(test-domain): change used data schema * Feat(data): add new data mapper to map domain models to entity or inverse * WIP(data): add new base data source factory to get related datasource instance * Feat(data): add new datasource with related implementor for local and remote useCases * Feat(data): add new remote network data entity response * Feat(common): add new context extension to check network * Feat(data): add new enum class to handle different cache types of First Offline and First Online data management * Refactor(data): Remove unused datasource * Feat(domain): Add new useCase to get data from Location details repository * Feat(data): Add new data layer repository to get just remote data from location details * Feat(data): Add new data layer repository to get remote/local data with cache strategy methods of First Online and First Offline * Feat(di-domain): Add new repository * Feat(test,domain): Add new UseCase to get data from repository * Refactor(all): Add new Logger Tag retrieve possible length size for TAG * Fix(ci): Add branch to ci job * Test(dagger): add required test implementations for the Dagger Hilt * Fix(test): fix failed test when HomeFragmentTest executed (test passed) * Chore(docs): Move offline item to done section * Feat(gradle): add required dependencies for the offline db * Feat(base-db): add new base implementations required for offline room database * Feat(data): add new base Mapper class to transform Entities to Domain models * Feat(data): add new data access object for the places table * Refactor(di): Provide domain repositories to use in UseCases, and remove data repository wrong dependencies in UseCases and ViewModels * Refactor(core): Repackaged * Feat(domain): Add some domain models * Feat(data): Add db configs * Chore(docs): Add cache strategy info * Chore(project): Upgrade version to create publish release * Refactor(all): remove useless file * Feat(data): add new DAOs to the app database * Refactor(di): Remove useless context from class * Refactor(data): repackaged * Feat(data): add new entity in database * Feat(data): add new helper class to communicate with dao * Refactor(data): Update Base Mapper for domain-entity to use with inject method in other classes * Refactor(data): repackaged, Update WebServices data type * Feat(domain): Add new domain models for the project * Feat(domain): Add new domain repository to use in domain useCases to be implemented in data layer * Refactor(domain): change id type to long * Refactor(presentation-domain): change used model type from entity to domain * Refactor(test-domain): change used data schema * Feat(data): add new data mapper to map domain models to entity or inverse * WIP(data): add new base data source factory to get related datasource instance * Feat(data): add new datasource with related implementor for local and remote useCases * Feat(data): add new remote network data entity response * Feat(common): add new context extension to check network * Feat(data): add new enum class to handle different cache types of First Offline and First Online data management * Refactor(data): Remove unused datasource * Feat(domain): Add new useCase to get data from Location details repository * Feat(data): Add new data layer repository to get just remote data from location details * Feat(data): Add new data layer repository to get remote/local data with cache strategy methods of First Online and First Offline * Feat(di-domain): Add new repository * Feat(test,domain): Add new UseCase to get data from repository * Refactor(all): Add new Logger Tag retrieve possible length size for TAG * Fix(ci): Add branch to ci job * Test(dagger): add required test implementations for the Dagger Hilt * Fix(test): fix failed test when HomeFragmentTest executed (test passed) * Feat(data): add new base Mapper class to transform Entities to Domain models * Feat(data): add new data access object for the places table * Refactor(all): remove useless file * Feat(data): add new datasource with related implementor for local and remote useCases * Refactor(data): Remove unused datasource * Test(dagger): add required test implementations for the Dagger Hilt * Fix(test): fix failed test when HomeFragmentTest executed (test passed) * Test(usecase): add new passed test cases for the current and location weather UseCases * Feat(data): add new base Mapper class to transform Entities to Domain models * Feat(data): add new data access object for the places table * Refactor(all): remove useless file * Feat(data): add new datasource with related implementor for local and remote useCases * Refactor(data): Remove unused datasource * Feat(presentation): Add ui state to show data in view * Refactor(common): Add Main Dispatcher * Refactor(data, domain): Update package * Feat(presentation): Add UI state management * Fix(data): Fix package name * Refactor(domain): Use DataState instead of result to emit network data state from useCase to viewModel * Test(dagger): add required test implementations for the Dagger Hilt * Fix(test): fix failed test when HomeFragmentTest executed (test passed) * Feat(data): add new base Mapper class to transform Entities to Domain models * Feat(data): add new data access object for the places table * Refactor(all): remove useless file * Feat(data): add new datasource with related implementor for local and remote useCases * Refactor(data): Remove unused datasource * Test(dagger): add required test implementations for the Dagger Hilt * Fix(test): fix failed test when HomeFragmentTest executed (test passed) * Test(usecase): add new passed test cases for the current and location weather UseCases * Feat(data): add new base Mapper class to transform Entities to Domain models * Feat(data): add new data access object for the places table * Refactor(all): remove useless file * Feat(data): add new datasource with related implementor for local and remote useCases * Refactor(data): Remove unused datasource * Test(dagger): add required test implementations for the Dagger Hilt * Fix(test): fix failed test when HomeFragmentTest executed (test passed) * Feat(data): add new base Mapper class to transform Entities to Domain models * Feat(data): add new data access object for the places table * Refactor(all): remove useless file * Feat(data): add new datasource with related implementor for local and remote useCases * Refactor(data): Remove unused datasource * Test(dagger): add required test implementations for the Dagger Hilt * Fix(test): fix failed test when HomeFragmentTest executed (test passed) * Test(usecase): add new passed test cases for the current and location weather UseCases * Feat(data): add new base Mapper class to transform Entities to Domain models * Feat(data): add new data access object for the places table * Refactor(all): remove useless file * Feat(data): add new datasource with related implementor for local and remote useCases * Refactor(data): Remove unused datasource * Feat(presentation): Add ui state to show data in view * Refactor(common): Add Main Dispatcher * Refactor(data, domain): Update package * Feat(presentation): Add UI state management * Fix(data): Fix package name * Refactor(domain): Use DataState instead of result to emit network data state from useCase to viewModel
- Loading branch information