From 9869f89d4204db10243f394938a63b83e581f5c7 Mon Sep 17 00:00:00 2001 From: Akshat Tiwari <51470769+akshaaatt@users.noreply.github.com> Date: Fri, 28 Apr 2023 00:00:51 +0530 Subject: [PATCH 1/3] Refactor entire codebase - Improve the code architecture and follow the same here as LB Android. - Removed Listens service. --- app/build.gradle | 4 +- .../metabrainz/android/LoginActivityTest.kt | 7 +- app/src/main/AndroidManifest.xml | 58 +++++------ .../android/{ => application}/App.kt | 18 +--- .../metabrainz/android/data/dao/AlbumDao.kt | 18 ---- .../metabrainz/android/data/dao/ArtistDao.kt | 18 ---- .../android/data/dao/PlaylistDao.kt | 32 ------ .../metabrainz/android/data/dao/SongDao.kt | 18 ---- .../data/di/ListensRepositoryModule.kt | 14 --- .../android/data/repository/BlogRepository.kt | 8 -- .../data/repository/ListensRepository.kt | 10 -- .../data/repository/ListensRepositoryImpl.kt | 37 ------- .../android/data/sources/api/BlogService.kt | 9 -- .../data/sources/api/ListenSubmitService.kt | 14 --- .../data/sources/api/ListensService.kt | 14 --- .../data/sources/api/entities/ArtistCredit.kt | 2 +- .../data/sources/api/entities/LabelInfo.kt | 4 +- .../data/sources/api/entities/Place.kt | 4 +- .../data/sources/api/entities/Track.kt | 2 +- .../data/sources/api/entities/blog/Blog.kt | 5 - .../sources/api/entities/listens/Listens.kt | 5 - .../sources/api/entities/listens/Payload.kt | 8 -- .../api/entities/listens/TrackMetadata.kt | 9 -- .../response/BarcodeReleaseResponse.kt | 11 --- .../response/RecordingSearchResponse.kt | 8 -- .../data/sources/api/entities/userdata/Tag.kt | 6 -- .../api/entities/userdata/UserRating.kt | 5 - .../sources/api/entities/userdata/UserTag.kt | 5 - .../data/sources/brainzplayer/Album.kt | 8 -- .../data/sources/brainzplayer/AlbumEntity.kt | 13 --- .../data/sources/brainzplayer/Artist.kt | 8 -- .../data/sources/brainzplayer/ArtistEntity.kt | 13 --- .../data/sources/brainzplayer/Playlist.kt | 34 ------- .../sources/brainzplayer/PlaylistEntity.kt | 15 --- .../android/data/sources/brainzplayer/Song.kt | 11 --- .../data/sources/brainzplayer/SongEntity.kt | 16 --- .../{data => }/di/BlogRepositoryModule.kt | 5 +- .../di/CollectionRepositoryModule.kt | 10 +- .../{data => }/di/LoginRepositoryModule.kt | 5 +- .../{data => }/di/LookupRepositoryModule.kt | 6 +- .../acoustid/AcoustIDResponse.kt | 4 +- .../api/entities => model}/acoustid/Artist.kt | 2 +- .../api/entities => model}/acoustid/Date.kt | 2 +- .../api/entities => model}/acoustid/Medium.kt | 4 +- .../entities => model}/acoustid/Recording.kt | 6 +- .../entities => model}/acoustid/Release.kt | 8 +- .../acoustid/ReleaseEvent.kt | 4 +- .../acoustid/ReleaseGroup.kt | 6 +- .../api/entities => model}/acoustid/Result.kt | 4 +- .../api/entities => model}/acoustid/Track.kt | 4 +- .../org/metabrainz/android/model/blog/Blog.kt | 5 + .../api/entities => model}/blog/Post.kt | 2 +- .../listens/AdditionalInfo.kt | 2 +- .../api/entities => model}/listens/Listen.kt | 4 +- .../android/model/listens/Listens.kt | 5 + .../entities => model}/listens/MbidMapping.kt | 2 +- .../android/model/listens/Payload.kt | 8 ++ .../android/model/listens/TrackMetadata.kt | 9 ++ .../api/entities => model}/mbentity/Area.kt | 4 +- .../api/entities => model}/mbentity/Artist.kt | 18 ++-- .../entities => model}/mbentity/Collection.kt | 2 +- .../api/entities => model}/mbentity/Event.kt | 4 +- .../entities => model}/mbentity/Instrument.kt | 4 +- .../api/entities => model}/mbentity/Label.kt | 8 +- .../entities => model}/mbentity/MBEntity.kt | 10 +- .../mbentity/MBEntityType.kt | 12 +-- .../entities => model}/mbentity/Recording.kt | 4 +- .../entities => model}/mbentity/Release.kt | 4 +- .../mbentity/ReleaseGroup.kt | 4 +- .../api/entities => model}/mbentity/Work.kt | 4 +- .../model/response/BarcodeReleaseResponse.kt | 10 ++ .../response/CollectionListResponse.kt | 6 +- .../model/response/RecordingSearchResponse.kt | 7 ++ .../response/SearchResponse.kt | 6 +- .../entities => model}/userdata/Collection.kt | 2 +- .../api/entities => model}/userdata/Rating.kt | 2 +- .../metabrainz/android/model/userdata/Tag.kt | 6 ++ .../entities => model}/userdata/UserInfo.kt | 2 +- .../android/model/userdata/UserRating.kt | 5 + .../android/model/userdata/UserTag.kt | 5 + .../features/listens/ListenHandler.kt | 59 ----------- .../features/listens/ListenService.kt | 59 ----------- .../features/listens/ListenSessionListener.kt | 98 ------------------- .../repository/BarcodeLookupRepository.kt | 6 +- .../android/repository/BlogRepository.kt | 7 ++ .../repository/BlogRepositoryImpl.kt | 8 +- .../repository/CollectionRepository.kt | 5 +- .../repository/CollectionRepositoryImpl.kt | 13 +-- .../{data => }/repository/LoginRepository.kt | 4 +- .../repository/LoginRepositoryImpl.kt | 13 +-- .../{data => }/repository/LookupRepository.kt | 5 +- .../repository/LookupRepositoryImpl.kt | 8 +- .../metabrainz/android/service/BlogService.kt | 8 ++ .../api => service}/CollectionService.kt | 2 +- .../api => service}/HeaderInterceptor.kt | 4 +- .../sources/api => service}/LoginService.kt | 4 +- .../sources/api => service}/LookupService.kt | 9 +- .../MusicBrainzServiceGenerator.kt | 4 +- .../api => service}/OAuthAuthenticator.kt | 13 +-- .../sources/api => service}/SearchService.kt | 2 +- .../sources/api => service}/ServiceModule.kt | 11 +-- .../features => ui}/adapters/BlogAdapter.kt | 6 +- .../features => ui}/adapters/ResultAdapter.kt | 6 +- .../features => ui}/adapters/ResultItem.kt | 2 +- .../adapters/ResultItemComparator.kt | 2 +- .../adapters/ResultItemUtils.kt | 27 ++--- .../adapters/ResultPagingAdapter.kt | 6 +- .../adapters/ResultViewHolder.kt | 2 +- .../components/BottomNavigationBar.kt | 8 +- .../components}/HtmlAssetTextView.kt | 2 +- .../components/TopAppBar.kt | 10 +- .../navigation/NavigationItem.kt | 2 +- .../notifications/AlertReceiver.kt | 2 +- .../notifications/NotificationHelper.kt | 11 ++- .../screens}/about/AboutActivity.kt | 7 +- .../screens}/about/AboutFragment.kt | 6 +- .../screens}/artist/ArtistActivity.kt | 27 ++--- .../screens}/artist/ArtistBioFragment.kt | 10 +- .../screens}/artist/ArtistViewModel.kt | 17 ++-- .../screens}/barcode/BarcodeActivity.kt | 4 +- .../screens}/barcode/BarcodeResultActivity.kt | 14 +-- .../screens}/barcode/BarcodeViewModel.kt | 6 +- .../screens}/base/LookupActivity.kt | 4 +- .../screens}/base/LookupViewModel.kt | 11 +-- .../screens}/base/MusicBrainzActivity.kt | 12 +-- .../screens}/base/MusicBrainzFragment.kt | 2 +- .../screens}/base/ViewPagerAdapter.kt | 2 +- .../screens}/collection/CollectionActivity.kt | 20 ++-- .../collection/CollectionDetailsActivity.kt | 20 ++-- .../collection/CollectionListAdapter.kt | 11 +-- .../collection/CollectionViewModel.kt | 11 +-- .../screens}/dashboard/BackLayerContent.kt | 12 +-- .../screens}/dashboard/DashboardActivity.kt | 12 +-- .../screens}/dashboard/DonateActivity.kt | 4 +- .../screens}/label/LabelActivity.kt | 32 +++--- .../screens}/label/LabelInfoFragment.kt | 7 +- .../screens}/label/LabelViewModel.kt | 10 +- .../screens}/links/LinksAdapter.kt | 4 +- .../screens}/links/LinksFragment.kt | 4 +- .../screens}/links/LinksViewModel.kt | 2 +- .../screens}/login/LoginActivity.kt | 18 ++-- .../screens}/login/LoginSharedPreferences.kt | 6 +- .../screens}/login/LoginViewModel.kt | 6 +- .../screens}/newsbrainz/NewsBrainzActivity.kt | 10 +- .../screens}/newsbrainz/NewsListViewModel.kt | 7 +- .../screens}/onboarding/FeaturesActivity.kt | 6 +- .../screens}/recording/RecordingActivity.kt | 30 +++--- .../recording/RecordingInfoFragment.kt | 8 +- .../screens}/recording/RecordingViewModel.kt | 10 +- .../release/CoverArtSlideshowAdapter.kt | 2 +- .../screens}/release/ReleaseActivity.kt | 26 ++--- .../screens}/release/ReleaseInfoFragment.kt | 8 +- .../screens}/release/ReleaseTrackAdapter.kt | 6 +- .../screens}/release/ReleaseTracksFragment.kt | 8 +- .../screens}/release/ReleaseViewModel.kt | 16 +-- .../release_group/ReleaseGroupActivity.kt | 30 +++--- .../release_group/ReleaseGroupInfoFragment.kt | 8 +- .../release_group/ReleaseGroupViewModel.kt | 10 +- .../release_list/ReleaseListAdapter.kt | 12 +-- .../release_list/ReleaseListFragment.kt | 8 +- .../release_list/ReleaseListViewModel.kt | 6 +- .../screens}/search/SearchActivity.kt | 24 ++--- .../screens}/search/SearchPagingSource.kt | 14 +-- .../screens}/search/SearchViewModel.kt | 11 ++- .../screens}/settings/SettingsActivity.kt | 16 ++- .../screens}/settings/SettingsFragment.kt | 16 +-- .../screens}/suggestion/SuggestionHelper.kt | 2 +- .../screens}/suggestion/SuggestionProvider.kt | 2 +- .../screens}/userdata/TagAdapter.kt | 4 +- .../screens}/userdata/UserDataFragment.kt | 32 +++--- .../screens}/userdata/UserTagAdapter.kt | 4 +- .../screens}/userdata/UserViewModel.kt | 4 +- .../{presentation => ui}/theme/Color.kt | 2 +- .../{presentation => ui}/theme/Theme.kt | 2 +- .../{data/sources => util}/CollectionUtils.kt | 13 ++- .../{presentation => util}/Configuration.kt | 2 +- .../{data/sources => util}/Constants.kt | 4 +- .../{presentation => util}/IntentFactory.kt | 4 +- .../java/org/metabrainz/android/util/Log.kt | 1 - .../{data/sources => util}/QueryUtils.kt | 2 +- .../{presentation => util}/UserPreferences.kt | 5 +- .../java/org/metabrainz/android/util/Utils.kt | 9 +- app/src/main/res/layout/activity_about.xml | 2 +- app/src/main/res/layout/fragment_about.xml | 2 +- .../main/res/layout/fragment_user_data.xml | 2 +- .../org/metabrainz/android/AssertionUtils.kt | 10 +- .../org/metabrainz/android/EntityTestUtils.kt | 26 ++--- .../metabrainz/android/ResultItemTestUtils.kt | 2 +- .../android/CollectionRepositoryTest.kt | 6 +- .../metabrainz/android/EntityModelsTest.kt | 7 +- .../metabrainz/android/LoginRepositoryTest.kt | 4 +- .../android/LookupRepositoryTest.kt | 20 ++-- .../metabrainz/android/LookupViewModelTest.kt | 8 +- .../android/MockCollectionRepository.kt | 8 +- .../android/MockLookupRepository.kt | 3 +- .../android/ResultItemConversionTest.kt | 2 +- build.gradle | 2 +- gradle/wrapper/gradle-wrapper.properties | 2 +- 198 files changed, 705 insertions(+), 1221 deletions(-) rename app/src/main/java/org/metabrainz/android/{ => application}/App.kt (79%) delete mode 100644 app/src/main/java/org/metabrainz/android/data/dao/AlbumDao.kt delete mode 100644 app/src/main/java/org/metabrainz/android/data/dao/ArtistDao.kt delete mode 100644 app/src/main/java/org/metabrainz/android/data/dao/PlaylistDao.kt delete mode 100644 app/src/main/java/org/metabrainz/android/data/dao/SongDao.kt delete mode 100644 app/src/main/java/org/metabrainz/android/data/di/ListensRepositoryModule.kt delete mode 100644 app/src/main/java/org/metabrainz/android/data/repository/BlogRepository.kt delete mode 100644 app/src/main/java/org/metabrainz/android/data/repository/ListensRepository.kt delete mode 100644 app/src/main/java/org/metabrainz/android/data/repository/ListensRepositoryImpl.kt delete mode 100644 app/src/main/java/org/metabrainz/android/data/sources/api/BlogService.kt delete mode 100644 app/src/main/java/org/metabrainz/android/data/sources/api/ListenSubmitService.kt delete mode 100644 app/src/main/java/org/metabrainz/android/data/sources/api/ListensService.kt delete mode 100644 app/src/main/java/org/metabrainz/android/data/sources/api/entities/blog/Blog.kt delete mode 100644 app/src/main/java/org/metabrainz/android/data/sources/api/entities/listens/Listens.kt delete mode 100644 app/src/main/java/org/metabrainz/android/data/sources/api/entities/listens/Payload.kt delete mode 100644 app/src/main/java/org/metabrainz/android/data/sources/api/entities/listens/TrackMetadata.kt delete mode 100644 app/src/main/java/org/metabrainz/android/data/sources/api/entities/response/BarcodeReleaseResponse.kt delete mode 100644 app/src/main/java/org/metabrainz/android/data/sources/api/entities/response/RecordingSearchResponse.kt delete mode 100644 app/src/main/java/org/metabrainz/android/data/sources/api/entities/userdata/Tag.kt delete mode 100644 app/src/main/java/org/metabrainz/android/data/sources/api/entities/userdata/UserRating.kt delete mode 100644 app/src/main/java/org/metabrainz/android/data/sources/api/entities/userdata/UserTag.kt delete mode 100644 app/src/main/java/org/metabrainz/android/data/sources/brainzplayer/Album.kt delete mode 100644 app/src/main/java/org/metabrainz/android/data/sources/brainzplayer/AlbumEntity.kt delete mode 100644 app/src/main/java/org/metabrainz/android/data/sources/brainzplayer/Artist.kt delete mode 100644 app/src/main/java/org/metabrainz/android/data/sources/brainzplayer/ArtistEntity.kt delete mode 100644 app/src/main/java/org/metabrainz/android/data/sources/brainzplayer/Playlist.kt delete mode 100644 app/src/main/java/org/metabrainz/android/data/sources/brainzplayer/PlaylistEntity.kt delete mode 100644 app/src/main/java/org/metabrainz/android/data/sources/brainzplayer/Song.kt delete mode 100644 app/src/main/java/org/metabrainz/android/data/sources/brainzplayer/SongEntity.kt rename app/src/main/java/org/metabrainz/android/{data => }/di/BlogRepositoryModule.kt (68%) rename app/src/main/java/org/metabrainz/android/{data => }/di/CollectionRepositoryModule.kt (53%) rename app/src/main/java/org/metabrainz/android/{data => }/di/LoginRepositoryModule.kt (68%) rename app/src/main/java/org/metabrainz/android/{data => }/di/LookupRepositoryModule.kt (66%) rename app/src/main/java/org/metabrainz/android/{data/sources/api/entities => model}/acoustid/AcoustIDResponse.kt (66%) rename app/src/main/java/org/metabrainz/android/{data/sources/api/entities => model}/acoustid/Artist.kt (83%) rename app/src/main/java/org/metabrainz/android/{data/sources/api/entities => model}/acoustid/Date.kt (80%) rename app/src/main/java/org/metabrainz/android/{data/sources/api/entities => model}/acoustid/Medium.kt (75%) rename app/src/main/java/org/metabrainz/android/{data/sources/api/entities => model}/acoustid/Recording.kt (66%) rename app/src/main/java/org/metabrainz/android/{data/sources/api/entities => model}/acoustid/Release.kt (68%) rename app/src/main/java/org/metabrainz/android/{data/sources/api/entities => model}/acoustid/ReleaseEvent.kt (67%) rename app/src/main/java/org/metabrainz/android/{data/sources/api/entities => model}/acoustid/ReleaseGroup.kt (71%) rename app/src/main/java/org/metabrainz/android/{data/sources/api/entities => model}/acoustid/Result.kt (69%) rename app/src/main/java/org/metabrainz/android/{data/sources/api/entities => model}/acoustid/Track.kt (70%) create mode 100644 app/src/main/java/org/metabrainz/android/model/blog/Blog.kt rename app/src/main/java/org/metabrainz/android/{data/sources/api/entities => model}/blog/Post.kt (63%) rename app/src/main/java/org/metabrainz/android/{data/sources/api/entities => model}/listens/AdditionalInfo.kt (89%) rename app/src/main/java/org/metabrainz/android/{data/sources/api/entities => model}/listens/Listen.kt (66%) create mode 100644 app/src/main/java/org/metabrainz/android/model/listens/Listens.kt rename app/src/main/java/org/metabrainz/android/{data/sources/api/entities => model}/listens/MbidMapping.kt (66%) create mode 100644 app/src/main/java/org/metabrainz/android/model/listens/Payload.kt create mode 100644 app/src/main/java/org/metabrainz/android/model/listens/TrackMetadata.kt rename app/src/main/java/org/metabrainz/android/{data/sources/api/entities => model}/mbentity/Area.kt (90%) rename app/src/main/java/org/metabrainz/android/{data/sources/api/entities => model}/mbentity/Artist.kt (61%) rename app/src/main/java/org/metabrainz/android/{data/sources/api/entities => model}/mbentity/Collection.kt (90%) rename app/src/main/java/org/metabrainz/android/{data/sources/api/entities => model}/mbentity/Event.kt (85%) rename app/src/main/java/org/metabrainz/android/{data/sources/api/entities => model}/mbentity/Instrument.kt (85%) rename app/src/main/java/org/metabrainz/android/{data/sources/api/entities => model}/mbentity/Label.kt (80%) rename app/src/main/java/org/metabrainz/android/{data/sources/api/entities => model}/mbentity/MBEntity.kt (69%) rename app/src/main/java/org/metabrainz/android/{data/sources/api/entities => model}/mbentity/MBEntityType.kt (50%) rename app/src/main/java/org/metabrainz/android/{data/sources/api/entities => model}/mbentity/Recording.kt (90%) rename app/src/main/java/org/metabrainz/android/{data/sources/api/entities => model}/mbentity/Release.kt (96%) rename app/src/main/java/org/metabrainz/android/{data/sources/api/entities => model}/mbentity/ReleaseGroup.kt (95%) rename app/src/main/java/org/metabrainz/android/{data/sources/api/entities => model}/mbentity/Work.kt (71%) create mode 100644 app/src/main/java/org/metabrainz/android/model/response/BarcodeReleaseResponse.kt rename app/src/main/java/org/metabrainz/android/{data/sources/api/entities => model}/response/CollectionListResponse.kt (55%) create mode 100644 app/src/main/java/org/metabrainz/android/model/response/RecordingSearchResponse.kt rename app/src/main/java/org/metabrainz/android/{data/sources/api/entities => model}/response/SearchResponse.kt (50%) rename app/src/main/java/org/metabrainz/android/{data/sources/api/entities => model}/userdata/Collection.kt (82%) rename app/src/main/java/org/metabrainz/android/{data/sources/api/entities => model}/userdata/Rating.kt (67%) create mode 100644 app/src/main/java/org/metabrainz/android/model/userdata/Tag.kt rename app/src/main/java/org/metabrainz/android/{data/sources/api/entities => model}/userdata/UserInfo.kt (78%) create mode 100644 app/src/main/java/org/metabrainz/android/model/userdata/UserRating.kt create mode 100644 app/src/main/java/org/metabrainz/android/model/userdata/UserTag.kt delete mode 100644 app/src/main/java/org/metabrainz/android/presentation/features/listens/ListenHandler.kt delete mode 100644 app/src/main/java/org/metabrainz/android/presentation/features/listens/ListenService.kt delete mode 100644 app/src/main/java/org/metabrainz/android/presentation/features/listens/ListenSessionListener.kt rename app/src/main/java/org/metabrainz/android/{data => }/repository/BarcodeLookupRepository.kt (78%) create mode 100644 app/src/main/java/org/metabrainz/android/repository/BlogRepository.kt rename app/src/main/java/org/metabrainz/android/{data => }/repository/BlogRepositoryImpl.kt (70%) rename app/src/main/java/org/metabrainz/android/{data => }/repository/CollectionRepository.kt (58%) rename app/src/main/java/org/metabrainz/android/{data => }/repository/CollectionRepositoryImpl.kt (78%) rename app/src/main/java/org/metabrainz/android/{data => }/repository/LoginRepository.kt (72%) rename app/src/main/java/org/metabrainz/android/{data => }/repository/LoginRepositoryImpl.kt (81%) rename app/src/main/java/org/metabrainz/android/{data => }/repository/LookupRepository.kt (80%) rename app/src/main/java/org/metabrainz/android/{data => }/repository/LookupRepositoryImpl.kt (93%) create mode 100644 app/src/main/java/org/metabrainz/android/service/BlogService.kt rename app/src/main/java/org/metabrainz/android/{data/sources/api => service}/CollectionService.kt (92%) rename app/src/main/java/org/metabrainz/android/{data/sources/api => service}/HeaderInterceptor.kt (93%) rename app/src/main/java/org/metabrainz/android/{data/sources/api => service}/LoginService.kt (89%) rename app/src/main/java/org/metabrainz/android/{data/sources/api => service}/LookupService.kt (85%) rename app/src/main/java/org/metabrainz/android/{data/sources/api => service}/MusicBrainzServiceGenerator.kt (97%) rename app/src/main/java/org/metabrainz/android/{data/sources/api => service}/OAuthAuthenticator.kt (75%) rename app/src/main/java/org/metabrainz/android/{data/sources/api => service}/SearchService.kt (89%) rename app/src/main/java/org/metabrainz/android/{data/sources/api => service}/ServiceModule.kt (70%) rename app/src/main/java/org/metabrainz/android/{presentation/features => ui}/adapters/BlogAdapter.kt (90%) rename app/src/main/java/org/metabrainz/android/{presentation/features => ui}/adapters/ResultAdapter.kt (89%) rename app/src/main/java/org/metabrainz/android/{presentation/features => ui}/adapters/ResultItem.kt (68%) rename app/src/main/java/org/metabrainz/android/{presentation/features => ui}/adapters/ResultItemComparator.kt (86%) rename app/src/main/java/org/metabrainz/android/{presentation/features => ui}/adapters/ResultItemUtils.kt (71%) rename app/src/main/java/org/metabrainz/android/{presentation/features => ui}/adapters/ResultPagingAdapter.kt (89%) rename app/src/main/java/org/metabrainz/android/{presentation/features => ui}/adapters/ResultViewHolder.kt (93%) rename app/src/main/java/org/metabrainz/android/{presentation => ui}/components/BottomNavigationBar.kt (88%) rename app/src/main/java/org/metabrainz/android/{presentation/view => ui/components}/HtmlAssetTextView.kt (90%) rename app/src/main/java/org/metabrainz/android/{presentation => ui}/components/TopAppBar.kt (87%) rename app/src/main/java/org/metabrainz/android/{presentation/features => ui}/navigation/NavigationItem.kt (80%) rename app/src/main/java/org/metabrainz/android/{presentation/features => ui}/notifications/AlertReceiver.kt (93%) rename app/src/main/java/org/metabrainz/android/{presentation/features => ui}/notifications/NotificationHelper.kt (86%) rename app/src/main/java/org/metabrainz/android/{presentation/features => ui/screens}/about/AboutActivity.kt (79%) rename app/src/main/java/org/metabrainz/android/{presentation/features => ui/screens}/about/AboutFragment.kt (87%) rename app/src/main/java/org/metabrainz/android/{presentation/features => ui/screens}/artist/ArtistActivity.kt (65%) rename app/src/main/java/org/metabrainz/android/{presentation/features => ui/screens}/artist/ArtistBioFragment.kt (90%) rename app/src/main/java/org/metabrainz/android/{presentation/features => ui/screens}/artist/ArtistViewModel.kt (69%) rename app/src/main/java/org/metabrainz/android/{presentation/features => ui/screens}/barcode/BarcodeActivity.kt (96%) rename app/src/main/java/org/metabrainz/android/{presentation/features => ui/screens}/barcode/BarcodeResultActivity.kt (88%) rename app/src/main/java/org/metabrainz/android/{presentation/features => ui/screens}/barcode/BarcodeViewModel.kt (77%) rename app/src/main/java/org/metabrainz/android/{presentation/features => ui/screens}/base/LookupActivity.kt (94%) rename app/src/main/java/org/metabrainz/android/{presentation/features => ui/screens}/base/LookupViewModel.kt (70%) rename app/src/main/java/org/metabrainz/android/{presentation/features => ui/screens}/base/MusicBrainzActivity.kt (81%) rename app/src/main/java/org/metabrainz/android/{presentation/features => ui/screens}/base/MusicBrainzFragment.kt (64%) rename app/src/main/java/org/metabrainz/android/{presentation/features => ui/screens}/base/ViewPagerAdapter.kt (88%) rename app/src/main/java/org/metabrainz/android/{presentation/features => ui/screens}/collection/CollectionActivity.kt (85%) rename app/src/main/java/org/metabrainz/android/{presentation/features => ui/screens}/collection/CollectionDetailsActivity.kt (84%) rename app/src/main/java/org/metabrainz/android/{presentation/features => ui/screens}/collection/CollectionListAdapter.kt (79%) rename app/src/main/java/org/metabrainz/android/{presentation/features => ui/screens}/collection/CollectionViewModel.kt (71%) rename app/src/main/java/org/metabrainz/android/{presentation/features => ui/screens}/dashboard/BackLayerContent.kt (95%) rename app/src/main/java/org/metabrainz/android/{presentation/features => ui/screens}/dashboard/DashboardActivity.kt (85%) rename app/src/main/java/org/metabrainz/android/{presentation/features => ui/screens}/dashboard/DonateActivity.kt (85%) rename app/src/main/java/org/metabrainz/android/{presentation/features => ui/screens}/label/LabelActivity.kt (61%) rename app/src/main/java/org/metabrainz/android/{presentation/features => ui/screens}/label/LabelInfoFragment.kt (87%) rename app/src/main/java/org/metabrainz/android/{presentation/features => ui/screens}/label/LabelViewModel.kt (55%) rename app/src/main/java/org/metabrainz/android/{presentation/features => ui/screens}/links/LinksAdapter.kt (94%) rename app/src/main/java/org/metabrainz/android/{presentation/features => ui/screens}/links/LinksFragment.kt (92%) rename app/src/main/java/org/metabrainz/android/{presentation/features => ui/screens}/links/LinksViewModel.kt (87%) rename app/src/main/java/org/metabrainz/android/{presentation/features => ui/screens}/login/LoginActivity.kt (88%) rename app/src/main/java/org/metabrainz/android/{presentation/features => ui/screens}/login/LoginSharedPreferences.kt (90%) rename app/src/main/java/org/metabrainz/android/{presentation/features => ui/screens}/login/LoginViewModel.kt (83%) rename app/src/main/java/org/metabrainz/android/{presentation/features => ui/screens}/newsbrainz/NewsBrainzActivity.kt (91%) rename app/src/main/java/org/metabrainz/android/{presentation/features => ui/screens}/newsbrainz/NewsListViewModel.kt (76%) rename app/src/main/java/org/metabrainz/android/{presentation/features => ui/screens}/onboarding/FeaturesActivity.kt (94%) rename app/src/main/java/org/metabrainz/android/{presentation/features => ui/screens}/recording/RecordingActivity.kt (63%) rename app/src/main/java/org/metabrainz/android/{presentation/features => ui/screens}/recording/RecordingInfoFragment.kt (84%) rename app/src/main/java/org/metabrainz/android/{presentation/features => ui/screens}/recording/RecordingViewModel.kt (55%) rename app/src/main/java/org/metabrainz/android/{presentation/features => ui/screens}/release/CoverArtSlideshowAdapter.kt (95%) rename app/src/main/java/org/metabrainz/android/{presentation/features => ui/screens}/release/ReleaseActivity.kt (69%) rename app/src/main/java/org/metabrainz/android/{presentation/features => ui/screens}/release/ReleaseInfoFragment.kt (93%) rename app/src/main/java/org/metabrainz/android/{presentation/features => ui/screens}/release/ReleaseTrackAdapter.kt (96%) rename app/src/main/java/org/metabrainz/android/{presentation/features => ui/screens}/release/ReleaseTracksFragment.kt (89%) rename app/src/main/java/org/metabrainz/android/{presentation/features => ui/screens}/release/ReleaseViewModel.kt (64%) rename app/src/main/java/org/metabrainz/android/{presentation/features => ui/screens}/release_group/ReleaseGroupActivity.kt (63%) rename app/src/main/java/org/metabrainz/android/{presentation/features => ui/screens}/release_group/ReleaseGroupInfoFragment.kt (89%) rename app/src/main/java/org/metabrainz/android/{presentation/features => ui/screens}/release_group/ReleaseGroupViewModel.kt (81%) rename app/src/main/java/org/metabrainz/android/{presentation/features => ui/screens}/release_list/ReleaseListAdapter.kt (90%) rename app/src/main/java/org/metabrainz/android/{presentation/features => ui/screens}/release_list/ReleaseListFragment.kt (88%) rename app/src/main/java/org/metabrainz/android/{presentation/features => ui/screens}/release_list/ReleaseListViewModel.kt (80%) rename app/src/main/java/org/metabrainz/android/{presentation/features => ui/screens}/search/SearchActivity.kt (93%) rename app/src/main/java/org/metabrainz/android/{presentation/features => ui/screens}/search/SearchPagingSource.kt (81%) rename app/src/main/java/org/metabrainz/android/{presentation/features => ui/screens}/search/SearchViewModel.kt (60%) rename app/src/main/java/org/metabrainz/android/{presentation/features => ui/screens}/settings/SettingsActivity.kt (88%) rename app/src/main/java/org/metabrainz/android/{presentation/features => ui/screens}/settings/SettingsFragment.kt (81%) rename app/src/main/java/org/metabrainz/android/{presentation/features => ui/screens}/suggestion/SuggestionHelper.kt (96%) rename app/src/main/java/org/metabrainz/android/{presentation/features => ui/screens}/suggestion/SuggestionProvider.kt (85%) rename app/src/main/java/org/metabrainz/android/{presentation/features => ui/screens}/userdata/TagAdapter.kt (88%) rename app/src/main/java/org/metabrainz/android/{presentation/features => ui/screens}/userdata/UserDataFragment.kt (75%) rename app/src/main/java/org/metabrainz/android/{presentation/features => ui/screens}/userdata/UserTagAdapter.kt (88%) rename app/src/main/java/org/metabrainz/android/{presentation/features => ui/screens}/userdata/UserViewModel.kt (71%) rename app/src/main/java/org/metabrainz/android/{presentation => ui}/theme/Color.kt (88%) rename app/src/main/java/org/metabrainz/android/{presentation => ui}/theme/Theme.kt (98%) rename app/src/main/java/org/metabrainz/android/{data/sources => util}/CollectionUtils.kt (83%) rename app/src/main/java/org/metabrainz/android/{presentation => util}/Configuration.kt (92%) rename app/src/main/java/org/metabrainz/android/{data/sources => util}/Constants.kt (93%) rename app/src/main/java/org/metabrainz/android/{presentation => util}/IntentFactory.kt (62%) rename app/src/main/java/org/metabrainz/android/{data/sources => util}/QueryUtils.kt (90%) rename app/src/main/java/org/metabrainz/android/{presentation => util}/UserPreferences.kt (93%) diff --git a/app/build.gradle b/app/build.gradle index 3a7d13d3..875ad5ea 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -8,6 +8,8 @@ plugins { def keystorePropertiesFile = rootProject.file("keystore.properties") android { + namespace 'org.metabrainz.android' + compileSdk 33 signingConfigs { release { @@ -69,11 +71,9 @@ android { abortOnError false disable 'MissingTranslation' } - composeOptions { kotlinCompilerExtensionVersion '1.3.0' } - namespace 'org.metabrainz.android' } dependencies { diff --git a/app/src/androidTest/java/org/metabrainz/android/LoginActivityTest.kt b/app/src/androidTest/java/org/metabrainz/android/LoginActivityTest.kt index e473e678..a7b47100 100644 --- a/app/src/androidTest/java/org/metabrainz/android/LoginActivityTest.kt +++ b/app/src/androidTest/java/org/metabrainz/android/LoginActivityTest.kt @@ -15,8 +15,8 @@ import org.junit.Before import org.junit.Rule import org.junit.Test import org.junit.runner.RunWith -import org.metabrainz.android.data.sources.api.MusicBrainzServiceGenerator -import org.metabrainz.android.presentation.features.login.LoginActivity +import org.metabrainz.android.service.MusicBrainzServiceGenerator +import org.metabrainz.android.ui.screens.login.LoginActivity @RunWith(AndroidJUnit4ClassRunner::class) class LoginActivityTest { @@ -35,7 +35,8 @@ class LoginActivityTest { fun testLoginAuthorization() { Espresso.onView(ViewMatchers.withId(R.id.login_btn)).perform(ViewActions.click()) Intents.intended(AllOf.allOf(IntentMatchers.hasAction(Intent.ACTION_VIEW), - IntentMatchers.hasData(Uri.parse(MusicBrainzServiceGenerator.AUTH_BASE_URL + IntentMatchers.hasData(Uri.parse( + MusicBrainzServiceGenerator.AUTH_BASE_URL + "authorize" + "?response_type=code" + "&client_id=" + MusicBrainzServiceGenerator.CLIENT_ID diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 1ede0bdf..957ce2e0 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -2,6 +2,11 @@ + + + @@ -10,8 +15,7 @@ - - - - - @@ -42,27 +37,27 @@ + android:parentActivityName=".ui.screens.collection.CollectionActivity"> + android:value=".ui.screens.collection.CollectionActivity" /> @@ -71,7 +66,7 @@ android:resource="@xml/searchable" /> @@ -86,26 +81,25 @@ - + - - + + diff --git a/app/src/main/java/org/metabrainz/android/App.kt b/app/src/main/java/org/metabrainz/android/application/App.kt similarity index 79% rename from app/src/main/java/org/metabrainz/android/App.kt rename to app/src/main/java/org/metabrainz/android/application/App.kt index 87fbede0..771ba807 100644 --- a/app/src/main/java/org/metabrainz/android/App.kt +++ b/app/src/main/java/org/metabrainz/android/application/App.kt @@ -1,8 +1,7 @@ -package org.metabrainz.android +package org.metabrainz.android.application import android.app.Application import android.content.Context -import android.content.Intent import android.content.pm.PackageManager import android.graphics.Typeface import android.net.ConnectivityManager @@ -10,9 +9,7 @@ import android.net.NetworkCapabilities import android.os.Build import android.provider.Settings import dagger.hilt.android.HiltAndroidApp -import org.metabrainz.android.presentation.Configuration -import org.metabrainz.android.presentation.UserPreferences.preferenceListeningEnabled -import org.metabrainz.android.presentation.features.listens.ListenService +import org.metabrainz.android.util.Configuration @HiltAndroidApp class App : Application() { @@ -21,23 +18,12 @@ class App : Application() { super.onCreate() context = this loadCustomTypefaces() - if (preferenceListeningEnabled && Build.VERSION.SDK_INT > Build.VERSION_CODES.LOLLIPOP) startListenService() } private fun loadCustomTypefaces() { robotoLight = Typeface.createFromAsset(context!!.assets, "Roboto-Light.ttf") } - fun startListenService() { - val intent = Intent(this.applicationContext, ListenService::class.java) - startService(intent) - } - - fun stopListenService() { - val intent = Intent(this.applicationContext, ListenService::class.java) - stopService(intent) - } - val isNotificationServiceAllowed: Boolean get() { val listeners = Settings.Secure.getString(contentResolver, "enabled_notification_listeners") diff --git a/app/src/main/java/org/metabrainz/android/data/dao/AlbumDao.kt b/app/src/main/java/org/metabrainz/android/data/dao/AlbumDao.kt deleted file mode 100644 index bb8a0004..00000000 --- a/app/src/main/java/org/metabrainz/android/data/dao/AlbumDao.kt +++ /dev/null @@ -1,18 +0,0 @@ -package org.metabrainz.android.data.dao - -import androidx.room.* -import kotlinx.coroutines.flow.Flow -import org.metabrainz.android.data.sources.brainzplayer.AlbumEntity - -@Dao -interface AlbumDao { - - @Query(value = "SELECT * FROM ALBUMS WHERE albumId = :albumId") - fun getAlbumEntity(albumId: Long): Flow - - @Query(value = "SELECT * FROM ALBUMS") - fun getAlbumEntities(): Flow> - - @Insert(onConflict = OnConflictStrategy.IGNORE) - suspend fun addAlbums(albumEntities: List) -} \ No newline at end of file diff --git a/app/src/main/java/org/metabrainz/android/data/dao/ArtistDao.kt b/app/src/main/java/org/metabrainz/android/data/dao/ArtistDao.kt deleted file mode 100644 index 6b9eddef..00000000 --- a/app/src/main/java/org/metabrainz/android/data/dao/ArtistDao.kt +++ /dev/null @@ -1,18 +0,0 @@ -package org.metabrainz.android.data.dao - -import androidx.room.* -import kotlinx.coroutines.flow.Flow -import org.metabrainz.android.data.sources.brainzplayer.ArtistEntity - -@Dao -interface ArtistDao { - @Query(value = "SELECT * FROM ARTISTS WHERE artistID = :artistID") - fun getArtistEntity(artistID: String) : Flow - - @Query(value = "SELECT * FROM ARTISTS") - fun getArtistEntities() : Flow> - - @Insert(onConflict = OnConflictStrategy.IGNORE) - suspend fun addArtists(artistEntities: List): List - -} \ No newline at end of file diff --git a/app/src/main/java/org/metabrainz/android/data/dao/PlaylistDao.kt b/app/src/main/java/org/metabrainz/android/data/dao/PlaylistDao.kt deleted file mode 100644 index 1e61ea47..00000000 --- a/app/src/main/java/org/metabrainz/android/data/dao/PlaylistDao.kt +++ /dev/null @@ -1,32 +0,0 @@ -package org.metabrainz.android.data.dao - -import androidx.room.* -import kotlinx.coroutines.flow.Flow -import org.metabrainz.android.data.sources.brainzplayer.PlaylistEntity -import org.metabrainz.android.data.sources.brainzplayer.SongEntity - -@Dao -interface PlaylistDao { - - @Query("SELECT * FROM PLAYLISTS") - fun getAllPlaylist(): Flow> - - @Query("SELECT * FROM PLAYLISTS WHERE id LIKE :playlistId") - fun getPlaylist(playlistId: Long): Flow - - @Insert(onConflict = OnConflictStrategy.REPLACE) - suspend fun insertPlaylist(playlistEntity: PlaylistEntity) - - @Insert(onConflict = OnConflictStrategy.REPLACE) - suspend fun insertPlaylists(playlistEntities: List) - - @Query("UPDATE playlists SET items =:songs WHERE id =:playlistId") - suspend fun updatePlaylistSongs(songs:List, playlistId: Long) - - @Query("UPDATE playlists SET title=:newName WHERE id =:playlistId") - suspend fun renamePlaylistName(newName: String, playlistId: Long) - - @Delete - suspend fun delete(playlistEntity: PlaylistEntity) - -} \ No newline at end of file diff --git a/app/src/main/java/org/metabrainz/android/data/dao/SongDao.kt b/app/src/main/java/org/metabrainz/android/data/dao/SongDao.kt deleted file mode 100644 index b5e2ec87..00000000 --- a/app/src/main/java/org/metabrainz/android/data/dao/SongDao.kt +++ /dev/null @@ -1,18 +0,0 @@ -package org.metabrainz.android.data.dao - -import androidx.room.* -import kotlinx.coroutines.flow.Flow -import org.metabrainz.android.data.sources.brainzplayer.SongEntity - -@Dao -interface SongDao { - @Query( - value = "SELECT * FROM SONGS WHERE mediaID = :mediaId ") - fun getSongEntity(mediaId: String) : Flow - - @Query(value = "SELECT * FROM SONGS") - fun getSongEntities() : Flow> - - @Insert(onConflict = OnConflictStrategy.IGNORE) - suspend fun addSongs(songEntities: List): List -} \ No newline at end of file diff --git a/app/src/main/java/org/metabrainz/android/data/di/ListensRepositoryModule.kt b/app/src/main/java/org/metabrainz/android/data/di/ListensRepositoryModule.kt deleted file mode 100644 index ceb3083c..00000000 --- a/app/src/main/java/org/metabrainz/android/data/di/ListensRepositoryModule.kt +++ /dev/null @@ -1,14 +0,0 @@ -package org.metabrainz.android.data.di - -import dagger.hilt.InstallIn -import dagger.hilt.android.components.ActivityRetainedComponent -import dagger.Binds -import dagger.Module -import org.metabrainz.android.data.repository.* - -@Module -@InstallIn(ActivityRetainedComponent::class) -abstract class ListensRepositoryModule { - @Binds - abstract fun bindsListensRepository(repository: ListensRepositoryImpl?): ListensRepository? -} \ No newline at end of file diff --git a/app/src/main/java/org/metabrainz/android/data/repository/BlogRepository.kt b/app/src/main/java/org/metabrainz/android/data/repository/BlogRepository.kt deleted file mode 100644 index 4472461e..00000000 --- a/app/src/main/java/org/metabrainz/android/data/repository/BlogRepository.kt +++ /dev/null @@ -1,8 +0,0 @@ -package org.metabrainz.android.data.repository - -import org.metabrainz.android.data.sources.api.entities.blog.Blog -import org.metabrainz.android.util.Resource - -interface BlogRepository { - suspend fun fetchBlogs(): Resource -} \ No newline at end of file diff --git a/app/src/main/java/org/metabrainz/android/data/repository/ListensRepository.kt b/app/src/main/java/org/metabrainz/android/data/repository/ListensRepository.kt deleted file mode 100644 index 07c3c9fc..00000000 --- a/app/src/main/java/org/metabrainz/android/data/repository/ListensRepository.kt +++ /dev/null @@ -1,10 +0,0 @@ -package org.metabrainz.android.data.repository - -import org.metabrainz.android.data.sources.api.entities.CoverArt -import org.metabrainz.android.data.sources.api.entities.listens.Listen -import org.metabrainz.android.util.Resource - -interface ListensRepository { - suspend fun fetchUserListens(userName: String): Resource> - suspend fun fetchCoverArt(MBID: String): Resource -} \ No newline at end of file diff --git a/app/src/main/java/org/metabrainz/android/data/repository/ListensRepositoryImpl.kt b/app/src/main/java/org/metabrainz/android/data/repository/ListensRepositoryImpl.kt deleted file mode 100644 index 2e9f4576..00000000 --- a/app/src/main/java/org/metabrainz/android/data/repository/ListensRepositoryImpl.kt +++ /dev/null @@ -1,37 +0,0 @@ -package org.metabrainz.android.data.repository - -import androidx.annotation.WorkerThread -import org.metabrainz.android.data.sources.api.ListensService -import org.metabrainz.android.data.sources.api.entities.CoverArt -import org.metabrainz.android.data.sources.api.entities.listens.Listen -import org.metabrainz.android.util.Resource -import org.metabrainz.android.util.Resource.Status.FAILED -import org.metabrainz.android.util.Resource.Status.SUCCESS -import javax.inject.Inject -import javax.inject.Singleton - -@Singleton -class ListensRepositoryImpl @Inject constructor(val service: ListensService) : ListensRepository{ - - @WorkerThread - override suspend fun fetchUserListens(userName: String): Resource> { - return try { - val response = service.getUserListens(user_name = userName) - Resource(SUCCESS, response.payload.listens) - } catch (e: Exception) { - e.printStackTrace() - Resource(FAILED, null) - } - } - - override suspend fun fetchCoverArt(MBID: String): Resource { - return try { - val coverArt = service.getCoverArt(MBID) - Resource(SUCCESS, coverArt) - } - catch (e: Exception) { - e.printStackTrace() - Resource.failure() - } - } -} \ No newline at end of file diff --git a/app/src/main/java/org/metabrainz/android/data/sources/api/BlogService.kt b/app/src/main/java/org/metabrainz/android/data/sources/api/BlogService.kt deleted file mode 100644 index 00914100..00000000 --- a/app/src/main/java/org/metabrainz/android/data/sources/api/BlogService.kt +++ /dev/null @@ -1,9 +0,0 @@ -package org.metabrainz.android.data.sources.api - -import org.metabrainz.android.data.sources.api.entities.blog.Blog -import retrofit2.http.GET - -interface BlogService { - @GET("blog.metabrainz.org/posts/") - suspend fun getBlogs(): Blog -} \ No newline at end of file diff --git a/app/src/main/java/org/metabrainz/android/data/sources/api/ListenSubmitService.kt b/app/src/main/java/org/metabrainz/android/data/sources/api/ListenSubmitService.kt deleted file mode 100644 index 44824f26..00000000 --- a/app/src/main/java/org/metabrainz/android/data/sources/api/ListenSubmitService.kt +++ /dev/null @@ -1,14 +0,0 @@ -package org.metabrainz.android.data.sources.api - -import okhttp3.ResponseBody -import org.metabrainz.android.data.sources.api.entities.ListenSubmitBody -import retrofit2.Call -import retrofit2.http.Body -import retrofit2.http.Header -import retrofit2.http.POST - -interface ListenSubmitService { - @POST("https://api.listenbrainz.org/1/submit-listens") - fun submitListen(@Header("Authorization") token: String?, - @Body body: ListenSubmitBody?): Call? -} \ No newline at end of file diff --git a/app/src/main/java/org/metabrainz/android/data/sources/api/ListensService.kt b/app/src/main/java/org/metabrainz/android/data/sources/api/ListensService.kt deleted file mode 100644 index 669ab475..00000000 --- a/app/src/main/java/org/metabrainz/android/data/sources/api/ListensService.kt +++ /dev/null @@ -1,14 +0,0 @@ -package org.metabrainz.android.data.sources.api - -import org.metabrainz.android.data.sources.api.entities.CoverArt -import org.metabrainz.android.data.sources.api.entities.listens.Listens -import retrofit2.http.GET -import retrofit2.http.Path - -interface ListensService { - @GET("1/user/{user_name}/listens") - suspend fun getUserListens(@Path("user_name") user_name: String): Listens - - @GET("http://coverartarchive.org/release/{MBID}") - suspend fun getCoverArt(@Path("MBID") MBID: String): CoverArt -} \ No newline at end of file diff --git a/app/src/main/java/org/metabrainz/android/data/sources/api/entities/ArtistCredit.kt b/app/src/main/java/org/metabrainz/android/data/sources/api/entities/ArtistCredit.kt index 978f9c54..ee89049d 100644 --- a/app/src/main/java/org/metabrainz/android/data/sources/api/entities/ArtistCredit.kt +++ b/app/src/main/java/org/metabrainz/android/data/sources/api/entities/ArtistCredit.kt @@ -1,6 +1,6 @@ package org.metabrainz.android.data.sources.api.entities -import org.metabrainz.android.data.sources.api.entities.mbentity.Artist +import org.metabrainz.android.model.mbentity.Artist class ArtistCredit { var name: String? = null diff --git a/app/src/main/java/org/metabrainz/android/data/sources/api/entities/LabelInfo.kt b/app/src/main/java/org/metabrainz/android/data/sources/api/entities/LabelInfo.kt index 4939ee39..7ae4d158 100644 --- a/app/src/main/java/org/metabrainz/android/data/sources/api/entities/LabelInfo.kt +++ b/app/src/main/java/org/metabrainz/android/data/sources/api/entities/LabelInfo.kt @@ -1,10 +1,10 @@ package org.metabrainz.android.data.sources.api.entities import com.google.gson.annotations.SerializedName -import org.metabrainz.android.data.sources.api.entities.mbentity.Label +import org.metabrainz.android.model.mbentity.Label class LabelInfo { - var label: Label? = null + var label: org.metabrainz.android.model.mbentity.Label? = null @SerializedName("catalog-number") var catalogNumber: String? = null diff --git a/app/src/main/java/org/metabrainz/android/data/sources/api/entities/Place.kt b/app/src/main/java/org/metabrainz/android/data/sources/api/entities/Place.kt index 77cae22f..110e980b 100644 --- a/app/src/main/java/org/metabrainz/android/data/sources/api/entities/Place.kt +++ b/app/src/main/java/org/metabrainz/android/data/sources/api/entities/Place.kt @@ -1,7 +1,7 @@ package org.metabrainz.android.data.sources.api.entities import com.google.gson.annotations.SerializedName -import org.metabrainz.android.data.sources.api.entities.mbentity.Area +import org.metabrainz.android.model.mbentity.Area class Place { @SerializedName("id") @@ -9,7 +9,7 @@ class Place { var name: String? = null private var disambiguation: String? = null var type: String? = null - var area: Area? = null + var area: org.metabrainz.android.model.mbentity.Area? = null @SerializedName("life-span") var lifeSpan: LifeSpan? = null diff --git a/app/src/main/java/org/metabrainz/android/data/sources/api/entities/Track.kt b/app/src/main/java/org/metabrainz/android/data/sources/api/entities/Track.kt index ff6df391..f63688f3 100644 --- a/app/src/main/java/org/metabrainz/android/data/sources/api/entities/Track.kt +++ b/app/src/main/java/org/metabrainz/android/data/sources/api/entities/Track.kt @@ -1,7 +1,7 @@ package org.metabrainz.android.data.sources.api.entities import com.google.gson.annotations.SerializedName -import org.metabrainz.android.data.sources.api.entities.mbentity.Recording +import org.metabrainz.android.model.mbentity.Recording class Track { @SerializedName("id") diff --git a/app/src/main/java/org/metabrainz/android/data/sources/api/entities/blog/Blog.kt b/app/src/main/java/org/metabrainz/android/data/sources/api/entities/blog/Blog.kt deleted file mode 100644 index a01292a1..00000000 --- a/app/src/main/java/org/metabrainz/android/data/sources/api/entities/blog/Blog.kt +++ /dev/null @@ -1,5 +0,0 @@ -package org.metabrainz.android.data.sources.api.entities.blog - -class Blog ( - val posts: ArrayList -) \ No newline at end of file diff --git a/app/src/main/java/org/metabrainz/android/data/sources/api/entities/listens/Listens.kt b/app/src/main/java/org/metabrainz/android/data/sources/api/entities/listens/Listens.kt deleted file mode 100644 index 58eb7458..00000000 --- a/app/src/main/java/org/metabrainz/android/data/sources/api/entities/listens/Listens.kt +++ /dev/null @@ -1,5 +0,0 @@ -package org.metabrainz.android.data.sources.api.entities.listens - -data class Listens( - val payload: Payload -) \ No newline at end of file diff --git a/app/src/main/java/org/metabrainz/android/data/sources/api/entities/listens/Payload.kt b/app/src/main/java/org/metabrainz/android/data/sources/api/entities/listens/Payload.kt deleted file mode 100644 index 27c38e0b..00000000 --- a/app/src/main/java/org/metabrainz/android/data/sources/api/entities/listens/Payload.kt +++ /dev/null @@ -1,8 +0,0 @@ -package org.metabrainz.android.data.sources.api.entities.listens - -data class Payload( - val count: Int, - val latest_listen_ts: Int, - val listens: List, - val user_id: String -) \ No newline at end of file diff --git a/app/src/main/java/org/metabrainz/android/data/sources/api/entities/listens/TrackMetadata.kt b/app/src/main/java/org/metabrainz/android/data/sources/api/entities/listens/TrackMetadata.kt deleted file mode 100644 index b6126add..00000000 --- a/app/src/main/java/org/metabrainz/android/data/sources/api/entities/listens/TrackMetadata.kt +++ /dev/null @@ -1,9 +0,0 @@ -package org.metabrainz.android.data.sources.api.entities.listens - -data class TrackMetadata( - val additional_info: AdditionalInfo?, - val artist_name: String, - val mbid_mapping: MbidMapping?, - val release_name: String, - val track_name: String -) \ No newline at end of file diff --git a/app/src/main/java/org/metabrainz/android/data/sources/api/entities/response/BarcodeReleaseResponse.kt b/app/src/main/java/org/metabrainz/android/data/sources/api/entities/response/BarcodeReleaseResponse.kt deleted file mode 100644 index 057ab265..00000000 --- a/app/src/main/java/org/metabrainz/android/data/sources/api/entities/response/BarcodeReleaseResponse.kt +++ /dev/null @@ -1,11 +0,0 @@ -package org.metabrainz.android.data.sources.api.entities.response - -import org.metabrainz.android.data.sources.api.entities.mbentity.Release -import java.util.* - -class BarcodeReleaseResponse { - var created: String? = null - var count = 0 - var offset = 0 - var releases: List = ArrayList() -} \ No newline at end of file diff --git a/app/src/main/java/org/metabrainz/android/data/sources/api/entities/response/RecordingSearchResponse.kt b/app/src/main/java/org/metabrainz/android/data/sources/api/entities/response/RecordingSearchResponse.kt deleted file mode 100644 index 109a086c..00000000 --- a/app/src/main/java/org/metabrainz/android/data/sources/api/entities/response/RecordingSearchResponse.kt +++ /dev/null @@ -1,8 +0,0 @@ -package org.metabrainz.android.data.sources.api.entities.response - -import org.metabrainz.android.data.sources.api.entities.mbentity.MBEntity -import org.metabrainz.android.data.sources.api.entities.mbentity.Recording - -class RecordingSearchResponse : SearchResponse() { - var recordings: List? = null -} \ No newline at end of file diff --git a/app/src/main/java/org/metabrainz/android/data/sources/api/entities/userdata/Tag.kt b/app/src/main/java/org/metabrainz/android/data/sources/api/entities/userdata/Tag.kt deleted file mode 100644 index 929bfa04..00000000 --- a/app/src/main/java/org/metabrainz/android/data/sources/api/entities/userdata/Tag.kt +++ /dev/null @@ -1,6 +0,0 @@ -package org.metabrainz.android.data.sources.api.entities.userdata - -class Tag { - var count = 0 - var name: String? = null -} \ No newline at end of file diff --git a/app/src/main/java/org/metabrainz/android/data/sources/api/entities/userdata/UserRating.kt b/app/src/main/java/org/metabrainz/android/data/sources/api/entities/userdata/UserRating.kt deleted file mode 100644 index f14fadd7..00000000 --- a/app/src/main/java/org/metabrainz/android/data/sources/api/entities/userdata/UserRating.kt +++ /dev/null @@ -1,5 +0,0 @@ -package org.metabrainz.android.data.sources.api.entities.userdata - -class UserRating { - var value = 0f -} \ No newline at end of file diff --git a/app/src/main/java/org/metabrainz/android/data/sources/api/entities/userdata/UserTag.kt b/app/src/main/java/org/metabrainz/android/data/sources/api/entities/userdata/UserTag.kt deleted file mode 100644 index 968fdc33..00000000 --- a/app/src/main/java/org/metabrainz/android/data/sources/api/entities/userdata/UserTag.kt +++ /dev/null @@ -1,5 +0,0 @@ -package org.metabrainz.android.data.sources.api.entities.userdata - -class UserTag { - var name: String? = null -} \ No newline at end of file diff --git a/app/src/main/java/org/metabrainz/android/data/sources/brainzplayer/Album.kt b/app/src/main/java/org/metabrainz/android/data/sources/brainzplayer/Album.kt deleted file mode 100644 index d771ca31..00000000 --- a/app/src/main/java/org/metabrainz/android/data/sources/brainzplayer/Album.kt +++ /dev/null @@ -1,8 +0,0 @@ -package org.metabrainz.android.data.sources.brainzplayer - -data class Album( - val albumId: Long = 0, - val title: String = "", - val artist: String = "", - val albumArt: String = "" -) \ No newline at end of file diff --git a/app/src/main/java/org/metabrainz/android/data/sources/brainzplayer/AlbumEntity.kt b/app/src/main/java/org/metabrainz/android/data/sources/brainzplayer/AlbumEntity.kt deleted file mode 100644 index f9785166..00000000 --- a/app/src/main/java/org/metabrainz/android/data/sources/brainzplayer/AlbumEntity.kt +++ /dev/null @@ -1,13 +0,0 @@ -package org.metabrainz.android.data.sources.brainzplayer - -import androidx.room.Entity -import androidx.room.PrimaryKey - -@Entity(tableName = "ALBUMS") -data class AlbumEntity( - @PrimaryKey - val albumId: Long, - val title: String , - val artist: String , - val albumArt: String -) \ No newline at end of file diff --git a/app/src/main/java/org/metabrainz/android/data/sources/brainzplayer/Artist.kt b/app/src/main/java/org/metabrainz/android/data/sources/brainzplayer/Artist.kt deleted file mode 100644 index 6b7190e1..00000000 --- a/app/src/main/java/org/metabrainz/android/data/sources/brainzplayer/Artist.kt +++ /dev/null @@ -1,8 +0,0 @@ -package org.metabrainz.android.data.sources.brainzplayer - -data class Artist( - val id: Long = 0, - val name: String = "", - val songs: List = listOf(), - val albums: List = listOf() -) \ No newline at end of file diff --git a/app/src/main/java/org/metabrainz/android/data/sources/brainzplayer/ArtistEntity.kt b/app/src/main/java/org/metabrainz/android/data/sources/brainzplayer/ArtistEntity.kt deleted file mode 100644 index b8a1c2a5..00000000 --- a/app/src/main/java/org/metabrainz/android/data/sources/brainzplayer/ArtistEntity.kt +++ /dev/null @@ -1,13 +0,0 @@ -package org.metabrainz.android.data.sources.brainzplayer - -import androidx.room.Entity -import androidx.room.PrimaryKey - -@Entity(tableName = "ARTISTS") -data class ArtistEntity( - @PrimaryKey(autoGenerate = true) - val artistID: Long = 0, - val name: String, - val songs: MutableList, - val albums: MutableList -) \ No newline at end of file diff --git a/app/src/main/java/org/metabrainz/android/data/sources/brainzplayer/Playlist.kt b/app/src/main/java/org/metabrainz/android/data/sources/brainzplayer/Playlist.kt deleted file mode 100644 index 17eda27f..00000000 --- a/app/src/main/java/org/metabrainz/android/data/sources/brainzplayer/Playlist.kt +++ /dev/null @@ -1,34 +0,0 @@ -package org.metabrainz.android.data.sources.brainzplayer - -import androidx.annotation.DrawableRes -import org.metabrainz.android.R -import kotlin.random.Random - -data class Playlist( - var id: Long = Random.nextLong(), - var title: String = "", - val items: List = listOf(), - @DrawableRes val art: Int = R.drawable.ic_queue_music -) { - companion object { - val currentlyPlaying = Playlist( - id = -1, - title = "Currently Playing", - items = emptyList(), - art = R.drawable.ic_queue_music_playing - ) - - val favourite = Playlist( - id = 0, - title = "Favourite", - items = emptyList(), - art = R.drawable.ic_liked - ) - - val recentlyPlayed = Playlist( - id = 1, - title = "Recently Played", - items = emptyList() - ) - } -} \ No newline at end of file diff --git a/app/src/main/java/org/metabrainz/android/data/sources/brainzplayer/PlaylistEntity.kt b/app/src/main/java/org/metabrainz/android/data/sources/brainzplayer/PlaylistEntity.kt deleted file mode 100644 index 5ebaa03b..00000000 --- a/app/src/main/java/org/metabrainz/android/data/sources/brainzplayer/PlaylistEntity.kt +++ /dev/null @@ -1,15 +0,0 @@ -package org.metabrainz.android.data.sources.brainzplayer - -import androidx.annotation.DrawableRes -import androidx.room.Entity -import androidx.room.PrimaryKey -import org.metabrainz.android.R - -@Entity(tableName = "PLAYLISTS") -data class PlaylistEntity ( - @PrimaryKey(autoGenerate = true) - val id: Long, - val title: String, - val items: List, - @DrawableRes val art: Int = R.drawable.ic_queue_music -) \ No newline at end of file diff --git a/app/src/main/java/org/metabrainz/android/data/sources/brainzplayer/Song.kt b/app/src/main/java/org/metabrainz/android/data/sources/brainzplayer/Song.kt deleted file mode 100644 index b517d82f..00000000 --- a/app/src/main/java/org/metabrainz/android/data/sources/brainzplayer/Song.kt +++ /dev/null @@ -1,11 +0,0 @@ -package org.metabrainz.android.data.sources.brainzplayer - -data class Song ( - val mediaID : String="", - val title : String="", - val artist: String = "", - val uri : String = "", - val albumID: String = "", - val album: String = "", - val albumArt: String = "" -) \ No newline at end of file diff --git a/app/src/main/java/org/metabrainz/android/data/sources/brainzplayer/SongEntity.kt b/app/src/main/java/org/metabrainz/android/data/sources/brainzplayer/SongEntity.kt deleted file mode 100644 index b493153a..00000000 --- a/app/src/main/java/org/metabrainz/android/data/sources/brainzplayer/SongEntity.kt +++ /dev/null @@ -1,16 +0,0 @@ -package org.metabrainz.android.data.sources.brainzplayer - -import androidx.room.Entity -import androidx.room.PrimaryKey - -@Entity(tableName = "SONGS") -data class SongEntity( - @PrimaryKey - val mediaID : String, - val title : String, - val artist: String , - val uri : String , - val albumID: String , - val album: String , - val albumArt: String -) \ No newline at end of file diff --git a/app/src/main/java/org/metabrainz/android/data/di/BlogRepositoryModule.kt b/app/src/main/java/org/metabrainz/android/di/BlogRepositoryModule.kt similarity index 68% rename from app/src/main/java/org/metabrainz/android/data/di/BlogRepositoryModule.kt rename to app/src/main/java/org/metabrainz/android/di/BlogRepositoryModule.kt index adc3bc29..d2d51ba7 100644 --- a/app/src/main/java/org/metabrainz/android/data/di/BlogRepositoryModule.kt +++ b/app/src/main/java/org/metabrainz/android/di/BlogRepositoryModule.kt @@ -1,10 +1,11 @@ -package org.metabrainz.android.data.di +package org.metabrainz.android.di import dagger.hilt.InstallIn import dagger.hilt.android.components.ActivityRetainedComponent import dagger.Binds import dagger.Module -import org.metabrainz.android.data.repository.* +import org.metabrainz.android.repository.BlogRepository +import org.metabrainz.android.repository.BlogRepositoryImpl @Module @InstallIn(ActivityRetainedComponent::class) diff --git a/app/src/main/java/org/metabrainz/android/data/di/CollectionRepositoryModule.kt b/app/src/main/java/org/metabrainz/android/di/CollectionRepositoryModule.kt similarity index 53% rename from app/src/main/java/org/metabrainz/android/data/di/CollectionRepositoryModule.kt rename to app/src/main/java/org/metabrainz/android/di/CollectionRepositoryModule.kt index 80692d96..8359fa02 100644 --- a/app/src/main/java/org/metabrainz/android/data/di/CollectionRepositoryModule.kt +++ b/app/src/main/java/org/metabrainz/android/di/CollectionRepositoryModule.kt @@ -1,13 +1,13 @@ -package org.metabrainz.android.data.di +package org.metabrainz.android.di import dagger.hilt.InstallIn import dagger.hilt.android.components.ActivityRetainedComponent import dagger.Binds import dagger.Module -import org.metabrainz.android.data.repository.CollectionRepository -import org.metabrainz.android.data.repository.CollectionRepositoryImpl -import org.metabrainz.android.data.repository.LookupRepositoryImpl -import org.metabrainz.android.data.repository.LookupRepository +import org.metabrainz.android.repository.CollectionRepository +import org.metabrainz.android.repository.CollectionRepositoryImpl +import org.metabrainz.android.repository.LookupRepositoryImpl +import org.metabrainz.android.repository.LookupRepository @Module @InstallIn(ActivityRetainedComponent::class) diff --git a/app/src/main/java/org/metabrainz/android/data/di/LoginRepositoryModule.kt b/app/src/main/java/org/metabrainz/android/di/LoginRepositoryModule.kt similarity index 68% rename from app/src/main/java/org/metabrainz/android/data/di/LoginRepositoryModule.kt rename to app/src/main/java/org/metabrainz/android/di/LoginRepositoryModule.kt index 168fb76b..c50bdf2a 100644 --- a/app/src/main/java/org/metabrainz/android/data/di/LoginRepositoryModule.kt +++ b/app/src/main/java/org/metabrainz/android/di/LoginRepositoryModule.kt @@ -1,10 +1,11 @@ -package org.metabrainz.android.data.di +package org.metabrainz.android.di import dagger.hilt.InstallIn import dagger.hilt.android.components.ActivityRetainedComponent import dagger.Binds import dagger.Module -import org.metabrainz.android.data.repository.* +import org.metabrainz.android.repository.LoginRepository +import org.metabrainz.android.repository.LoginRepositoryImpl @Module @InstallIn(ActivityRetainedComponent::class) diff --git a/app/src/main/java/org/metabrainz/android/data/di/LookupRepositoryModule.kt b/app/src/main/java/org/metabrainz/android/di/LookupRepositoryModule.kt similarity index 66% rename from app/src/main/java/org/metabrainz/android/data/di/LookupRepositoryModule.kt rename to app/src/main/java/org/metabrainz/android/di/LookupRepositoryModule.kt index 95351b6d..f16ae82e 100644 --- a/app/src/main/java/org/metabrainz/android/data/di/LookupRepositoryModule.kt +++ b/app/src/main/java/org/metabrainz/android/di/LookupRepositoryModule.kt @@ -1,11 +1,11 @@ -package org.metabrainz.android.data.di +package org.metabrainz.android.di import dagger.hilt.InstallIn import dagger.hilt.android.components.ActivityRetainedComponent import dagger.Binds import dagger.Module -import org.metabrainz.android.data.repository.LookupRepositoryImpl -import org.metabrainz.android.data.repository.LookupRepository +import org.metabrainz.android.repository.LookupRepositoryImpl +import org.metabrainz.android.repository.LookupRepository @Module @InstallIn(ActivityRetainedComponent::class) diff --git a/app/src/main/java/org/metabrainz/android/data/sources/api/entities/acoustid/AcoustIDResponse.kt b/app/src/main/java/org/metabrainz/android/model/acoustid/AcoustIDResponse.kt similarity index 66% rename from app/src/main/java/org/metabrainz/android/data/sources/api/entities/acoustid/AcoustIDResponse.kt rename to app/src/main/java/org/metabrainz/android/model/acoustid/AcoustIDResponse.kt index edd07265..777d3e1d 100644 --- a/app/src/main/java/org/metabrainz/android/data/sources/api/entities/acoustid/AcoustIDResponse.kt +++ b/app/src/main/java/org/metabrainz/android/model/acoustid/AcoustIDResponse.kt @@ -1,4 +1,4 @@ -package org.metabrainz.android.data.sources.api.entities.acoustid +package org.metabrainz.android.model.acoustid import com.google.gson.annotations.Expose import com.google.gson.annotations.SerializedName @@ -7,7 +7,7 @@ import java.util.* class AcoustIDResponse { @SerializedName("results") @Expose - var results: List = ArrayList() + var results: List = ArrayList() @SerializedName("status") @Expose diff --git a/app/src/main/java/org/metabrainz/android/data/sources/api/entities/acoustid/Artist.kt b/app/src/main/java/org/metabrainz/android/model/acoustid/Artist.kt similarity index 83% rename from app/src/main/java/org/metabrainz/android/data/sources/api/entities/acoustid/Artist.kt rename to app/src/main/java/org/metabrainz/android/model/acoustid/Artist.kt index 8a62afd1..edf12800 100644 --- a/app/src/main/java/org/metabrainz/android/data/sources/api/entities/acoustid/Artist.kt +++ b/app/src/main/java/org/metabrainz/android/model/acoustid/Artist.kt @@ -1,4 +1,4 @@ -package org.metabrainz.android.data.sources.api.entities.acoustid +package org.metabrainz.android.model.acoustid import com.google.gson.annotations.Expose import com.google.gson.annotations.SerializedName diff --git a/app/src/main/java/org/metabrainz/android/data/sources/api/entities/acoustid/Date.kt b/app/src/main/java/org/metabrainz/android/model/acoustid/Date.kt similarity index 80% rename from app/src/main/java/org/metabrainz/android/data/sources/api/entities/acoustid/Date.kt rename to app/src/main/java/org/metabrainz/android/model/acoustid/Date.kt index 27b001e6..92804e22 100644 --- a/app/src/main/java/org/metabrainz/android/data/sources/api/entities/acoustid/Date.kt +++ b/app/src/main/java/org/metabrainz/android/model/acoustid/Date.kt @@ -1,4 +1,4 @@ -package org.metabrainz.android.data.sources.api.entities.acoustid +package org.metabrainz.android.model.acoustid import com.google.gson.annotations.Expose import com.google.gson.annotations.SerializedName diff --git a/app/src/main/java/org/metabrainz/android/data/sources/api/entities/acoustid/Medium.kt b/app/src/main/java/org/metabrainz/android/model/acoustid/Medium.kt similarity index 75% rename from app/src/main/java/org/metabrainz/android/data/sources/api/entities/acoustid/Medium.kt rename to app/src/main/java/org/metabrainz/android/model/acoustid/Medium.kt index 64b44aac..ba46a178 100644 --- a/app/src/main/java/org/metabrainz/android/data/sources/api/entities/acoustid/Medium.kt +++ b/app/src/main/java/org/metabrainz/android/model/acoustid/Medium.kt @@ -1,4 +1,4 @@ -package org.metabrainz.android.data.sources.api.entities.acoustid +package org.metabrainz.android.model.acoustid import com.google.gson.annotations.Expose import com.google.gson.annotations.SerializedName @@ -19,5 +19,5 @@ class Medium { @SerializedName("tracks") @Expose - var tracks: List = ArrayList() + var tracks: List = ArrayList() } \ No newline at end of file diff --git a/app/src/main/java/org/metabrainz/android/data/sources/api/entities/acoustid/Recording.kt b/app/src/main/java/org/metabrainz/android/model/acoustid/Recording.kt similarity index 66% rename from app/src/main/java/org/metabrainz/android/data/sources/api/entities/acoustid/Recording.kt rename to app/src/main/java/org/metabrainz/android/model/acoustid/Recording.kt index 99afd8a8..c9846088 100644 --- a/app/src/main/java/org/metabrainz/android/data/sources/api/entities/acoustid/Recording.kt +++ b/app/src/main/java/org/metabrainz/android/model/acoustid/Recording.kt @@ -1,4 +1,4 @@ -package org.metabrainz.android.data.sources.api.entities.acoustid +package org.metabrainz.android.model.acoustid import com.google.gson.annotations.Expose import com.google.gson.annotations.SerializedName @@ -7,7 +7,7 @@ import java.util.* class Recording { @SerializedName("artists") @Expose - var artists: List = ArrayList() + var artists: List = ArrayList() @SerializedName("duration") @Expose @@ -19,7 +19,7 @@ class Recording { @SerializedName("releasegroups") @Expose - var releaseGroups: List = ArrayList() + var releaseGroups: List = ArrayList() @SerializedName("title") @Expose diff --git a/app/src/main/java/org/metabrainz/android/data/sources/api/entities/acoustid/Release.kt b/app/src/main/java/org/metabrainz/android/model/acoustid/Release.kt similarity index 68% rename from app/src/main/java/org/metabrainz/android/data/sources/api/entities/acoustid/Release.kt rename to app/src/main/java/org/metabrainz/android/model/acoustid/Release.kt index 51c8ecae..ea165df0 100644 --- a/app/src/main/java/org/metabrainz/android/data/sources/api/entities/acoustid/Release.kt +++ b/app/src/main/java/org/metabrainz/android/model/acoustid/Release.kt @@ -1,4 +1,4 @@ -package org.metabrainz.android.data.sources.api.entities.acoustid +package org.metabrainz.android.model.acoustid import com.google.gson.annotations.Expose import com.google.gson.annotations.SerializedName @@ -11,7 +11,7 @@ class Release { @SerializedName("date") @Expose - var date: Date? = null + var date: org.metabrainz.android.model.acoustid.Date? = null @SerializedName("id") @Expose @@ -23,11 +23,11 @@ class Release { @SerializedName("mediums") @Expose - var mediums: List = ArrayList() + var mediums: List = ArrayList() @SerializedName("releaseEvents") @Expose - var releaseEvents: List = ArrayList() + var releaseEvents: List = ArrayList() @SerializedName("title") @Expose diff --git a/app/src/main/java/org/metabrainz/android/data/sources/api/entities/acoustid/ReleaseEvent.kt b/app/src/main/java/org/metabrainz/android/model/acoustid/ReleaseEvent.kt similarity index 67% rename from app/src/main/java/org/metabrainz/android/data/sources/api/entities/acoustid/ReleaseEvent.kt rename to app/src/main/java/org/metabrainz/android/model/acoustid/ReleaseEvent.kt index 151b0c02..9999ff9a 100644 --- a/app/src/main/java/org/metabrainz/android/data/sources/api/entities/acoustid/ReleaseEvent.kt +++ b/app/src/main/java/org/metabrainz/android/model/acoustid/ReleaseEvent.kt @@ -1,4 +1,4 @@ -package org.metabrainz.android.data.sources.api.entities.acoustid +package org.metabrainz.android.model.acoustid import com.google.gson.annotations.Expose import com.google.gson.annotations.SerializedName @@ -10,5 +10,5 @@ class ReleaseEvent { @SerializedName("date") @Expose - var date: Date? = null + var date: org.metabrainz.android.model.acoustid.Date? = null } \ No newline at end of file diff --git a/app/src/main/java/org/metabrainz/android/data/sources/api/entities/acoustid/ReleaseGroup.kt b/app/src/main/java/org/metabrainz/android/model/acoustid/ReleaseGroup.kt similarity index 71% rename from app/src/main/java/org/metabrainz/android/data/sources/api/entities/acoustid/ReleaseGroup.kt rename to app/src/main/java/org/metabrainz/android/model/acoustid/ReleaseGroup.kt index 8af63a74..e52d51c2 100644 --- a/app/src/main/java/org/metabrainz/android/data/sources/api/entities/acoustid/ReleaseGroup.kt +++ b/app/src/main/java/org/metabrainz/android/model/acoustid/ReleaseGroup.kt @@ -1,4 +1,4 @@ -package org.metabrainz.android.data.sources.api.entities.acoustid +package org.metabrainz.android.model.acoustid import com.google.gson.annotations.Expose import com.google.gson.annotations.SerializedName @@ -7,7 +7,7 @@ import java.util.* class ReleaseGroup { @SerializedName("artists") @Expose - var artists: List = ArrayList() + var artists: List = ArrayList() @SerializedName("id") @Expose @@ -15,7 +15,7 @@ class ReleaseGroup { @SerializedName("releases") @Expose - var releases: List = ArrayList() + var releases: List = ArrayList() @SerializedName("secondarytypes") @Expose diff --git a/app/src/main/java/org/metabrainz/android/data/sources/api/entities/acoustid/Result.kt b/app/src/main/java/org/metabrainz/android/model/acoustid/Result.kt similarity index 69% rename from app/src/main/java/org/metabrainz/android/data/sources/api/entities/acoustid/Result.kt rename to app/src/main/java/org/metabrainz/android/model/acoustid/Result.kt index fcb4f735..34f364d5 100644 --- a/app/src/main/java/org/metabrainz/android/data/sources/api/entities/acoustid/Result.kt +++ b/app/src/main/java/org/metabrainz/android/model/acoustid/Result.kt @@ -1,4 +1,4 @@ -package org.metabrainz.android.data.sources.api.entities.acoustid +package org.metabrainz.android.model.acoustid import com.google.gson.annotations.Expose import com.google.gson.annotations.SerializedName @@ -11,7 +11,7 @@ class Result { @SerializedName("recordings") @Expose - var recordings: List = ArrayList() + var recordings: List = ArrayList() @SerializedName("score") @Expose diff --git a/app/src/main/java/org/metabrainz/android/data/sources/api/entities/acoustid/Track.kt b/app/src/main/java/org/metabrainz/android/model/acoustid/Track.kt similarity index 70% rename from app/src/main/java/org/metabrainz/android/data/sources/api/entities/acoustid/Track.kt rename to app/src/main/java/org/metabrainz/android/model/acoustid/Track.kt index fadbb3f8..028db8f8 100644 --- a/app/src/main/java/org/metabrainz/android/data/sources/api/entities/acoustid/Track.kt +++ b/app/src/main/java/org/metabrainz/android/model/acoustid/Track.kt @@ -1,4 +1,4 @@ -package org.metabrainz.android.data.sources.api.entities.acoustid +package org.metabrainz.android.model.acoustid import com.google.gson.annotations.Expose import com.google.gson.annotations.SerializedName @@ -7,7 +7,7 @@ import java.util.* class Track { @SerializedName("artists") @Expose - var artists: List = ArrayList() + var artists: List = ArrayList() @SerializedName("id") @Expose diff --git a/app/src/main/java/org/metabrainz/android/model/blog/Blog.kt b/app/src/main/java/org/metabrainz/android/model/blog/Blog.kt new file mode 100644 index 00000000..206762fe --- /dev/null +++ b/app/src/main/java/org/metabrainz/android/model/blog/Blog.kt @@ -0,0 +1,5 @@ +package org.metabrainz.android.model.blog + +class Blog ( + val posts: ArrayList +) \ No newline at end of file diff --git a/app/src/main/java/org/metabrainz/android/data/sources/api/entities/blog/Post.kt b/app/src/main/java/org/metabrainz/android/model/blog/Post.kt similarity index 63% rename from app/src/main/java/org/metabrainz/android/data/sources/api/entities/blog/Post.kt rename to app/src/main/java/org/metabrainz/android/model/blog/Post.kt index f0a143bc..58c01b17 100644 --- a/app/src/main/java/org/metabrainz/android/data/sources/api/entities/blog/Post.kt +++ b/app/src/main/java/org/metabrainz/android/model/blog/Post.kt @@ -1,4 +1,4 @@ -package org.metabrainz.android.data.sources.api.entities.blog +package org.metabrainz.android.model.blog data class Post ( val ID: String, diff --git a/app/src/main/java/org/metabrainz/android/data/sources/api/entities/listens/AdditionalInfo.kt b/app/src/main/java/org/metabrainz/android/model/listens/AdditionalInfo.kt similarity index 89% rename from app/src/main/java/org/metabrainz/android/data/sources/api/entities/listens/AdditionalInfo.kt rename to app/src/main/java/org/metabrainz/android/model/listens/AdditionalInfo.kt index 9b3608bf..7e913091 100644 --- a/app/src/main/java/org/metabrainz/android/data/sources/api/entities/listens/AdditionalInfo.kt +++ b/app/src/main/java/org/metabrainz/android/model/listens/AdditionalInfo.kt @@ -1,4 +1,4 @@ -package org.metabrainz.android.data.sources.api.entities.listens +package org.metabrainz.android.model.listens data class AdditionalInfo( val artist_msid: String, diff --git a/app/src/main/java/org/metabrainz/android/data/sources/api/entities/listens/Listen.kt b/app/src/main/java/org/metabrainz/android/model/listens/Listen.kt similarity index 66% rename from app/src/main/java/org/metabrainz/android/data/sources/api/entities/listens/Listen.kt rename to app/src/main/java/org/metabrainz/android/model/listens/Listen.kt index 8c792a73..1fbcca4d 100644 --- a/app/src/main/java/org/metabrainz/android/data/sources/api/entities/listens/Listen.kt +++ b/app/src/main/java/org/metabrainz/android/model/listens/Listen.kt @@ -1,4 +1,4 @@ -package org.metabrainz.android.data.sources.api.entities.listens +package org.metabrainz.android.model.listens import org.metabrainz.android.data.sources.api.entities.CoverArt @@ -6,7 +6,7 @@ data class Listen( val inserted_at: String, val listened_at: Int, val recording_msid: String, - val track_metadata: TrackMetadata, + val track_metadata: org.metabrainz.android.model.listens.TrackMetadata, val user_name: String, var coverArt: CoverArt? = null ) \ No newline at end of file diff --git a/app/src/main/java/org/metabrainz/android/model/listens/Listens.kt b/app/src/main/java/org/metabrainz/android/model/listens/Listens.kt new file mode 100644 index 00000000..395e3a0f --- /dev/null +++ b/app/src/main/java/org/metabrainz/android/model/listens/Listens.kt @@ -0,0 +1,5 @@ +package org.metabrainz.android.model.listens + +data class Listens( + val payload: org.metabrainz.android.model.listens.Payload +) \ No newline at end of file diff --git a/app/src/main/java/org/metabrainz/android/data/sources/api/entities/listens/MbidMapping.kt b/app/src/main/java/org/metabrainz/android/model/listens/MbidMapping.kt similarity index 66% rename from app/src/main/java/org/metabrainz/android/data/sources/api/entities/listens/MbidMapping.kt rename to app/src/main/java/org/metabrainz/android/model/listens/MbidMapping.kt index bfea8753..93d9c876 100644 --- a/app/src/main/java/org/metabrainz/android/data/sources/api/entities/listens/MbidMapping.kt +++ b/app/src/main/java/org/metabrainz/android/model/listens/MbidMapping.kt @@ -1,4 +1,4 @@ -package org.metabrainz.android.data.sources.api.entities.listens +package org.metabrainz.android.model.listens data class MbidMapping( val artist_mbids: List, diff --git a/app/src/main/java/org/metabrainz/android/model/listens/Payload.kt b/app/src/main/java/org/metabrainz/android/model/listens/Payload.kt new file mode 100644 index 00000000..487f9f1c --- /dev/null +++ b/app/src/main/java/org/metabrainz/android/model/listens/Payload.kt @@ -0,0 +1,8 @@ +package org.metabrainz.android.model.listens + +data class Payload( + val count: Int, + val latest_listen_ts: Int, + val listens: List, + val user_id: String +) \ No newline at end of file diff --git a/app/src/main/java/org/metabrainz/android/model/listens/TrackMetadata.kt b/app/src/main/java/org/metabrainz/android/model/listens/TrackMetadata.kt new file mode 100644 index 00000000..550f3f5d --- /dev/null +++ b/app/src/main/java/org/metabrainz/android/model/listens/TrackMetadata.kt @@ -0,0 +1,9 @@ +package org.metabrainz.android.model.listens + +data class TrackMetadata( + val additional_info: org.metabrainz.android.model.listens.AdditionalInfo?, + val artist_name: String, + val mbid_mapping: org.metabrainz.android.model.listens.MbidMapping?, + val release_name: String, + val track_name: String +) \ No newline at end of file diff --git a/app/src/main/java/org/metabrainz/android/data/sources/api/entities/mbentity/Area.kt b/app/src/main/java/org/metabrainz/android/model/mbentity/Area.kt similarity index 90% rename from app/src/main/java/org/metabrainz/android/data/sources/api/entities/mbentity/Area.kt rename to app/src/main/java/org/metabrainz/android/model/mbentity/Area.kt index f8cf6697..0f5afd55 100644 --- a/app/src/main/java/org/metabrainz/android/data/sources/api/entities/mbentity/Area.kt +++ b/app/src/main/java/org/metabrainz/android/model/mbentity/Area.kt @@ -1,11 +1,11 @@ -package org.metabrainz.android.data.sources.api.entities.mbentity +package org.metabrainz.android.model.mbentity import com.google.gson.annotations.SerializedName import org.metabrainz.android.data.sources.api.entities.Alias import org.metabrainz.android.data.sources.api.entities.LifeSpan import java.util.* -class Area : MBEntity() { +class Area : org.metabrainz.android.model.mbentity.MBEntity() { //TODO: ISO codes field to be added var type: String? = null var name: String? = null diff --git a/app/src/main/java/org/metabrainz/android/data/sources/api/entities/mbentity/Artist.kt b/app/src/main/java/org/metabrainz/android/model/mbentity/Artist.kt similarity index 61% rename from app/src/main/java/org/metabrainz/android/data/sources/api/entities/mbentity/Artist.kt rename to app/src/main/java/org/metabrainz/android/model/mbentity/Artist.kt index 4342f4b5..60a2b1b1 100644 --- a/app/src/main/java/org/metabrainz/android/data/sources/api/entities/mbentity/Artist.kt +++ b/app/src/main/java/org/metabrainz/android/model/mbentity/Artist.kt @@ -1,24 +1,24 @@ -package org.metabrainz.android.data.sources.api.entities.mbentity +package org.metabrainz.android.model.mbentity import com.google.gson.annotations.SerializedName import org.metabrainz.android.data.sources.api.entities.LifeSpan import org.metabrainz.android.data.sources.api.entities.Link import java.util.* -class Artist : MBEntity() { +class Artist : org.metabrainz.android.model.mbentity.MBEntity() { var name: String? = null var country: String? = null var type: String? = null @SerializedName("sort-name") var sortName: String? = null - var area: Area? = null + var area: org.metabrainz.android.model.mbentity.Area? = null @SerializedName("begin-area") - var beginArea: Area? = null + var beginArea: org.metabrainz.android.model.mbentity.Area? = null @SerializedName("end-area") - var endArea: Area? = null + var endArea: org.metabrainz.android.model.mbentity.Area? = null @SerializedName("life-span") var lifeSpan: LifeSpan? = null @@ -28,16 +28,16 @@ class Artist : MBEntity() { this.relations.addAll(relations) } @JvmField - val releases: MutableList = ArrayList() - fun getReleases(): List { + val releases: MutableList = ArrayList() + fun getReleases(): List { return releases } - fun setReleases(releases: List?) { + fun setReleases(releases: List?) { this.releases.addAll(releases!!) } - fun setRelease(release: Release, position: Int) { + fun setRelease(release: org.metabrainz.android.model.mbentity.Release, position: Int) { releases[position] = release } diff --git a/app/src/main/java/org/metabrainz/android/data/sources/api/entities/mbentity/Collection.kt b/app/src/main/java/org/metabrainz/android/model/mbentity/Collection.kt similarity index 90% rename from app/src/main/java/org/metabrainz/android/data/sources/api/entities/mbentity/Collection.kt rename to app/src/main/java/org/metabrainz/android/model/mbentity/Collection.kt index 60ec00b7..42c6a2cb 100644 --- a/app/src/main/java/org/metabrainz/android/data/sources/api/entities/mbentity/Collection.kt +++ b/app/src/main/java/org/metabrainz/android/model/mbentity/Collection.kt @@ -1,4 +1,4 @@ -package org.metabrainz.android.data.sources.api.entities.mbentity +package org.metabrainz.android.model.mbentity import com.google.gson.annotations.SerializedName diff --git a/app/src/main/java/org/metabrainz/android/data/sources/api/entities/mbentity/Event.kt b/app/src/main/java/org/metabrainz/android/model/mbentity/Event.kt similarity index 85% rename from app/src/main/java/org/metabrainz/android/data/sources/api/entities/mbentity/Event.kt rename to app/src/main/java/org/metabrainz/android/model/mbentity/Event.kt index bb5131f6..1453bf49 100644 --- a/app/src/main/java/org/metabrainz/android/data/sources/api/entities/mbentity/Event.kt +++ b/app/src/main/java/org/metabrainz/android/model/mbentity/Event.kt @@ -1,9 +1,9 @@ -package org.metabrainz.android.data.sources.api.entities.mbentity +package org.metabrainz.android.model.mbentity import com.google.gson.annotations.SerializedName import org.metabrainz.android.data.sources.api.entities.LifeSpan -class Event : MBEntity() { +class Event : org.metabrainz.android.model.mbentity.MBEntity() { //TODO: Add Relations Field var name: String? = null diff --git a/app/src/main/java/org/metabrainz/android/data/sources/api/entities/mbentity/Instrument.kt b/app/src/main/java/org/metabrainz/android/model/mbentity/Instrument.kt similarity index 85% rename from app/src/main/java/org/metabrainz/android/data/sources/api/entities/mbentity/Instrument.kt rename to app/src/main/java/org/metabrainz/android/model/mbentity/Instrument.kt index 47f48830..21ee0dee 100644 --- a/app/src/main/java/org/metabrainz/android/data/sources/api/entities/mbentity/Instrument.kt +++ b/app/src/main/java/org/metabrainz/android/model/mbentity/Instrument.kt @@ -1,9 +1,9 @@ -package org.metabrainz.android.data.sources.api.entities.mbentity +package org.metabrainz.android.model.mbentity import org.metabrainz.android.data.sources.api.entities.Alias import java.util.* -class Instrument : MBEntity() { +class Instrument : org.metabrainz.android.model.mbentity.MBEntity() { var type: String? = null var name: String? = null var description: String? = null diff --git a/app/src/main/java/org/metabrainz/android/data/sources/api/entities/mbentity/Label.kt b/app/src/main/java/org/metabrainz/android/model/mbentity/Label.kt similarity index 80% rename from app/src/main/java/org/metabrainz/android/data/sources/api/entities/mbentity/Label.kt rename to app/src/main/java/org/metabrainz/android/model/mbentity/Label.kt index 5fc380ed..7b3aa5f0 100644 --- a/app/src/main/java/org/metabrainz/android/data/sources/api/entities/mbentity/Label.kt +++ b/app/src/main/java/org/metabrainz/android/model/mbentity/Label.kt @@ -1,11 +1,11 @@ -package org.metabrainz.android.data.sources.api.entities.mbentity +package org.metabrainz.android.model.mbentity import com.google.gson.annotations.SerializedName import org.metabrainz.android.data.sources.api.entities.LifeSpan import org.metabrainz.android.data.sources.api.entities.Link import java.util.* -class Label : MBEntity() { +class Label : org.metabrainz.android.model.mbentity.MBEntity() { var name: String? = null var type: String? = null @@ -16,12 +16,12 @@ class Label : MBEntity() { @SerializedName("life-span") var lifeSpan: LifeSpan? = null var country: String? = null - var area: Area? = null + var area: org.metabrainz.android.model.mbentity.Area? = null var relations: MutableList = ArrayList() set(relations) { this.relations.addAll(relations) } - var releases: MutableList = ArrayList() + var releases: MutableList = ArrayList() set(releases) { this.releases.addAll(releases) } diff --git a/app/src/main/java/org/metabrainz/android/data/sources/api/entities/mbentity/MBEntity.kt b/app/src/main/java/org/metabrainz/android/model/mbentity/MBEntity.kt similarity index 69% rename from app/src/main/java/org/metabrainz/android/data/sources/api/entities/mbentity/MBEntity.kt rename to app/src/main/java/org/metabrainz/android/model/mbentity/MBEntity.kt index 9031c7df..7ed49fc7 100644 --- a/app/src/main/java/org/metabrainz/android/data/sources/api/entities/mbentity/MBEntity.kt +++ b/app/src/main/java/org/metabrainz/android/model/mbentity/MBEntity.kt @@ -1,10 +1,10 @@ -package org.metabrainz.android.data.sources.api.entities.mbentity +package org.metabrainz.android.model.mbentity import com.google.gson.annotations.SerializedName -import org.metabrainz.android.data.sources.api.entities.userdata.Rating -import org.metabrainz.android.data.sources.api.entities.userdata.Tag -import org.metabrainz.android.data.sources.api.entities.userdata.UserRating -import org.metabrainz.android.data.sources.api.entities.userdata.UserTag +import org.metabrainz.android.model.userdata.Rating +import org.metabrainz.android.model.userdata.Tag +import org.metabrainz.android.model.userdata.UserRating +import org.metabrainz.android.model.userdata.UserTag import java.io.Serializable import java.util.* diff --git a/app/src/main/java/org/metabrainz/android/data/sources/api/entities/mbentity/MBEntityType.kt b/app/src/main/java/org/metabrainz/android/model/mbentity/MBEntityType.kt similarity index 50% rename from app/src/main/java/org/metabrainz/android/data/sources/api/entities/mbentity/MBEntityType.kt rename to app/src/main/java/org/metabrainz/android/model/mbentity/MBEntityType.kt index 270c65d9..db435930 100644 --- a/app/src/main/java/org/metabrainz/android/data/sources/api/entities/mbentity/MBEntityType.kt +++ b/app/src/main/java/org/metabrainz/android/model/mbentity/MBEntityType.kt @@ -1,10 +1,10 @@ -package org.metabrainz.android.data.sources.api.entities.mbentity +package org.metabrainz.android.model.mbentity -import org.metabrainz.android.presentation.features.artist.ArtistActivity -import org.metabrainz.android.presentation.features.label.LabelActivity -import org.metabrainz.android.presentation.features.recording.RecordingActivity -import org.metabrainz.android.presentation.features.release.ReleaseActivity -import org.metabrainz.android.presentation.features.release_group.ReleaseGroupActivity +import org.metabrainz.android.ui.screens.artist.ArtistActivity +import org.metabrainz.android.ui.screens.label.LabelActivity +import org.metabrainz.android.ui.screens.recording.RecordingActivity +import org.metabrainz.android.ui.screens.release.ReleaseActivity +import org.metabrainz.android.ui.screens.release_group.ReleaseGroupActivity enum class MBEntityType(var entity: String, var typeActivityClass: Class<*>) { ARTIST("artist", ArtistActivity::class.java), diff --git a/app/src/main/java/org/metabrainz/android/data/sources/api/entities/mbentity/Recording.kt b/app/src/main/java/org/metabrainz/android/model/mbentity/Recording.kt similarity index 90% rename from app/src/main/java/org/metabrainz/android/data/sources/api/entities/mbentity/Recording.kt rename to app/src/main/java/org/metabrainz/android/model/mbentity/Recording.kt index 239be073..4685fdef 100644 --- a/app/src/main/java/org/metabrainz/android/data/sources/api/entities/mbentity/Recording.kt +++ b/app/src/main/java/org/metabrainz/android/model/mbentity/Recording.kt @@ -1,11 +1,11 @@ -package org.metabrainz.android.data.sources.api.entities.mbentity +package org.metabrainz.android.model.mbentity import com.google.gson.annotations.SerializedName import org.metabrainz.android.data.sources.api.entities.ArtistCredit import org.metabrainz.android.data.sources.api.entities.Link import java.util.* -class Recording : MBEntity() { +class Recording : org.metabrainz.android.model.mbentity.MBEntity() { var title: String? = null var length: Long = 0 diff --git a/app/src/main/java/org/metabrainz/android/data/sources/api/entities/mbentity/Release.kt b/app/src/main/java/org/metabrainz/android/model/mbentity/Release.kt similarity index 96% rename from app/src/main/java/org/metabrainz/android/data/sources/api/entities/mbentity/Release.kt rename to app/src/main/java/org/metabrainz/android/model/mbentity/Release.kt index cee69192..3dafb246 100644 --- a/app/src/main/java/org/metabrainz/android/data/sources/api/entities/mbentity/Release.kt +++ b/app/src/main/java/org/metabrainz/android/model/mbentity/Release.kt @@ -1,10 +1,10 @@ -package org.metabrainz.android.data.sources.api.entities.mbentity +package org.metabrainz.android.model.mbentity import com.google.gson.annotations.SerializedName import org.metabrainz.android.data.sources.api.entities.* import java.util.* -class Release : MBEntity() { +class Release : org.metabrainz.android.model.mbentity.MBEntity() { var title: String? = null @SerializedName("artist-credit") diff --git a/app/src/main/java/org/metabrainz/android/data/sources/api/entities/mbentity/ReleaseGroup.kt b/app/src/main/java/org/metabrainz/android/model/mbentity/ReleaseGroup.kt similarity index 95% rename from app/src/main/java/org/metabrainz/android/data/sources/api/entities/mbentity/ReleaseGroup.kt rename to app/src/main/java/org/metabrainz/android/model/mbentity/ReleaseGroup.kt index 3c61b8a7..c59200e3 100644 --- a/app/src/main/java/org/metabrainz/android/data/sources/api/entities/mbentity/ReleaseGroup.kt +++ b/app/src/main/java/org/metabrainz/android/model/mbentity/ReleaseGroup.kt @@ -1,11 +1,11 @@ -package org.metabrainz.android.data.sources.api.entities.mbentity +package org.metabrainz.android.model.mbentity import com.google.gson.annotations.SerializedName import org.metabrainz.android.data.sources.api.entities.ArtistCredit import org.metabrainz.android.data.sources.api.entities.Link import java.util.* -class ReleaseGroup : MBEntity() { +class ReleaseGroup : org.metabrainz.android.model.mbentity.MBEntity() { var title: String? = null @SerializedName("primary-type") diff --git a/app/src/main/java/org/metabrainz/android/data/sources/api/entities/mbentity/Work.kt b/app/src/main/java/org/metabrainz/android/model/mbentity/Work.kt similarity index 71% rename from app/src/main/java/org/metabrainz/android/data/sources/api/entities/mbentity/Work.kt rename to app/src/main/java/org/metabrainz/android/model/mbentity/Work.kt index b0a888ad..830cea18 100644 --- a/app/src/main/java/org/metabrainz/android/data/sources/api/entities/mbentity/Work.kt +++ b/app/src/main/java/org/metabrainz/android/model/mbentity/Work.kt @@ -1,6 +1,6 @@ -package org.metabrainz.android.data.sources.api.entities.mbentity +package org.metabrainz.android.model.mbentity -internal class Work : MBEntity() { +internal class Work : org.metabrainz.android.model.mbentity.MBEntity() { //TODO: Implement Relations var title: String? = null override fun toString(): String { diff --git a/app/src/main/java/org/metabrainz/android/model/response/BarcodeReleaseResponse.kt b/app/src/main/java/org/metabrainz/android/model/response/BarcodeReleaseResponse.kt new file mode 100644 index 00000000..1f332999 --- /dev/null +++ b/app/src/main/java/org/metabrainz/android/model/response/BarcodeReleaseResponse.kt @@ -0,0 +1,10 @@ +package org.metabrainz.android.model.response + +import org.metabrainz.android.model.mbentity.Release + +class BarcodeReleaseResponse { + var created: String? = null + var count = 0 + var offset = 0 + var releases: List = ArrayList() +} \ No newline at end of file diff --git a/app/src/main/java/org/metabrainz/android/data/sources/api/entities/response/CollectionListResponse.kt b/app/src/main/java/org/metabrainz/android/model/response/CollectionListResponse.kt similarity index 55% rename from app/src/main/java/org/metabrainz/android/data/sources/api/entities/response/CollectionListResponse.kt rename to app/src/main/java/org/metabrainz/android/model/response/CollectionListResponse.kt index e923bf34..ad34f49b 100644 --- a/app/src/main/java/org/metabrainz/android/data/sources/api/entities/response/CollectionListResponse.kt +++ b/app/src/main/java/org/metabrainz/android/model/response/CollectionListResponse.kt @@ -1,7 +1,7 @@ -package org.metabrainz.android.data.sources.api.entities.response +package org.metabrainz.android.model.response import com.google.gson.annotations.SerializedName -import org.metabrainz.android.data.sources.api.entities.mbentity.Collection +import org.metabrainz.android.model.mbentity.Collection import java.util.* class CollectionListResponse { @@ -10,5 +10,5 @@ class CollectionListResponse { @SerializedName("collection-limit") var limit: String? = null - var collections: List = ArrayList() + var collections: List = ArrayList() } \ No newline at end of file diff --git a/app/src/main/java/org/metabrainz/android/model/response/RecordingSearchResponse.kt b/app/src/main/java/org/metabrainz/android/model/response/RecordingSearchResponse.kt new file mode 100644 index 00000000..ee5fe4e0 --- /dev/null +++ b/app/src/main/java/org/metabrainz/android/model/response/RecordingSearchResponse.kt @@ -0,0 +1,7 @@ +package org.metabrainz.android.model.response + +import org.metabrainz.android.model.mbentity.Recording + +class RecordingSearchResponse : SearchResponse() { + var recordings: List? = null +} \ No newline at end of file diff --git a/app/src/main/java/org/metabrainz/android/data/sources/api/entities/response/SearchResponse.kt b/app/src/main/java/org/metabrainz/android/model/response/SearchResponse.kt similarity index 50% rename from app/src/main/java/org/metabrainz/android/data/sources/api/entities/response/SearchResponse.kt rename to app/src/main/java/org/metabrainz/android/model/response/SearchResponse.kt index 60b6a3eb..04a91a10 100644 --- a/app/src/main/java/org/metabrainz/android/data/sources/api/entities/response/SearchResponse.kt +++ b/app/src/main/java/org/metabrainz/android/model/response/SearchResponse.kt @@ -1,9 +1,9 @@ -package org.metabrainz.android.data.sources.api.entities.response +package org.metabrainz.android.model.response import com.google.gson.annotations.SerializedName -import org.metabrainz.android.data.sources.api.entities.mbentity.MBEntity +import org.metabrainz.android.model.mbentity.MBEntity -open class SearchResponse { +open class SearchResponse { @SerializedName("created") var timestamp: String? = null var count = 0 diff --git a/app/src/main/java/org/metabrainz/android/data/sources/api/entities/userdata/Collection.kt b/app/src/main/java/org/metabrainz/android/model/userdata/Collection.kt similarity index 82% rename from app/src/main/java/org/metabrainz/android/data/sources/api/entities/userdata/Collection.kt rename to app/src/main/java/org/metabrainz/android/model/userdata/Collection.kt index 008e3760..38e1b5bb 100644 --- a/app/src/main/java/org/metabrainz/android/data/sources/api/entities/userdata/Collection.kt +++ b/app/src/main/java/org/metabrainz/android/model/userdata/Collection.kt @@ -1,4 +1,4 @@ -package org.metabrainz.android.data.sources.api.entities.userdata +package org.metabrainz.android.model.userdata import com.google.gson.annotations.SerializedName diff --git a/app/src/main/java/org/metabrainz/android/data/sources/api/entities/userdata/Rating.kt b/app/src/main/java/org/metabrainz/android/model/userdata/Rating.kt similarity index 67% rename from app/src/main/java/org/metabrainz/android/data/sources/api/entities/userdata/Rating.kt rename to app/src/main/java/org/metabrainz/android/model/userdata/Rating.kt index 95d58122..9877ccaf 100644 --- a/app/src/main/java/org/metabrainz/android/data/sources/api/entities/userdata/Rating.kt +++ b/app/src/main/java/org/metabrainz/android/model/userdata/Rating.kt @@ -1,4 +1,4 @@ -package org.metabrainz.android.data.sources.api.entities.userdata +package org.metabrainz.android.model.userdata import com.google.gson.annotations.SerializedName diff --git a/app/src/main/java/org/metabrainz/android/model/userdata/Tag.kt b/app/src/main/java/org/metabrainz/android/model/userdata/Tag.kt new file mode 100644 index 00000000..73b05dde --- /dev/null +++ b/app/src/main/java/org/metabrainz/android/model/userdata/Tag.kt @@ -0,0 +1,6 @@ +package org.metabrainz.android.model.userdata + +class Tag { + var count = 0 + var name: String? = null +} \ No newline at end of file diff --git a/app/src/main/java/org/metabrainz/android/data/sources/api/entities/userdata/UserInfo.kt b/app/src/main/java/org/metabrainz/android/model/userdata/UserInfo.kt similarity index 78% rename from app/src/main/java/org/metabrainz/android/data/sources/api/entities/userdata/UserInfo.kt rename to app/src/main/java/org/metabrainz/android/model/userdata/UserInfo.kt index c0b034b1..902cf93e 100644 --- a/app/src/main/java/org/metabrainz/android/data/sources/api/entities/userdata/UserInfo.kt +++ b/app/src/main/java/org/metabrainz/android/model/userdata/UserInfo.kt @@ -1,4 +1,4 @@ -package org.metabrainz.android.data.sources.api.entities.userdata +package org.metabrainz.android.model.userdata import com.google.gson.annotations.SerializedName diff --git a/app/src/main/java/org/metabrainz/android/model/userdata/UserRating.kt b/app/src/main/java/org/metabrainz/android/model/userdata/UserRating.kt new file mode 100644 index 00000000..ee974ce2 --- /dev/null +++ b/app/src/main/java/org/metabrainz/android/model/userdata/UserRating.kt @@ -0,0 +1,5 @@ +package org.metabrainz.android.model.userdata + +class UserRating { + var value = 0f +} \ No newline at end of file diff --git a/app/src/main/java/org/metabrainz/android/model/userdata/UserTag.kt b/app/src/main/java/org/metabrainz/android/model/userdata/UserTag.kt new file mode 100644 index 00000000..894b1f6b --- /dev/null +++ b/app/src/main/java/org/metabrainz/android/model/userdata/UserTag.kt @@ -0,0 +1,5 @@ +package org.metabrainz.android.model.userdata + +class UserTag { + var name: String? = null +} \ No newline at end of file diff --git a/app/src/main/java/org/metabrainz/android/presentation/features/listens/ListenHandler.kt b/app/src/main/java/org/metabrainz/android/presentation/features/listens/ListenHandler.kt deleted file mode 100644 index 70d0d2bc..00000000 --- a/app/src/main/java/org/metabrainz/android/presentation/features/listens/ListenHandler.kt +++ /dev/null @@ -1,59 +0,0 @@ -package org.metabrainz.android.presentation.features.listens - -import android.media.MediaMetadata -import android.os.Bundle -import android.os.Handler -import android.os.Looper -import android.os.Message -import okhttp3.ResponseBody -import org.metabrainz.android.data.sources.api.ListenSubmitService -import org.metabrainz.android.data.sources.api.MusicBrainzServiceGenerator.createService -import org.metabrainz.android.data.sources.api.entities.ListenSubmitBody -import org.metabrainz.android.data.sources.api.entities.ListenTrackMetadata -import org.metabrainz.android.presentation.UserPreferences.preferenceListenBrainzToken -import org.metabrainz.android.util.Log.d -import retrofit2.Call -import retrofit2.Response - -class ListenHandler : Handler(Looper.getMainLooper()) { - private val delay = 30000 - private val timestamp = "timestamp" - - override fun handleMessage(msg: Message) { - super.handleMessage(msg) - val token = preferenceListenBrainzToken - if (token == null || token.isEmpty()) { - d("ListenBrainz User token has not been set!") - return - } - val service = createService(ListenSubmitService::class.java, false) - val metadata = ListenTrackMetadata() - metadata.artist = msg.data.getString(MediaMetadata.METADATA_KEY_ARTIST) - metadata.track = msg.data.getString(MediaMetadata.METADATA_KEY_TITLE) - val body = ListenSubmitBody() - body.addListen(msg.data.getLong(timestamp), metadata) - body.listenType = "single" - d(body.toString()) - service.submitListen("Token $token", body)!!.enqueue(object : retrofit2.Callback { - override fun onResponse(call: Call, response: Response) { - d(response.message()) - } - override fun onFailure(call: Call, t: Throwable) {} - }) - } - - fun submitListen(artist: String?, title: String?, timestamp: Long) { - val message = obtainMessage() - val data = Bundle() - data.putString(MediaMetadata.METADATA_KEY_ARTIST, artist) - data.putString(MediaMetadata.METADATA_KEY_TITLE, title) - data.putLong(this.timestamp, timestamp) - message.what = timestamp.toInt() - message.data = data - sendMessageDelayed(message, delay.toLong()) - } - - fun cancelListen(timestamp: Long) { - removeMessages(java.lang.Long.valueOf(timestamp).toInt()) - } -} \ No newline at end of file diff --git a/app/src/main/java/org/metabrainz/android/presentation/features/listens/ListenService.kt b/app/src/main/java/org/metabrainz/android/presentation/features/listens/ListenService.kt deleted file mode 100644 index 87956ba1..00000000 --- a/app/src/main/java/org/metabrainz/android/presentation/features/listens/ListenService.kt +++ /dev/null @@ -1,59 +0,0 @@ -package org.metabrainz.android.presentation.features.listens - -import android.content.ComponentName -import android.content.Intent -import android.media.session.MediaSessionManager -import android.os.Handler -import android.os.Looper -import android.service.notification.NotificationListenerService -import android.service.notification.StatusBarNotification -import org.metabrainz.android.presentation.UserPreferences.preferenceListenBrainzToken -import org.metabrainz.android.util.Log.d - -class ListenService : NotificationListenerService() { - private var sessionManager: MediaSessionManager? = null - private var handler: ListenHandler? = null - private var sessionListener: ListenSessionListener? = null - private var listenServiceComponent: ComponentName? = null - override fun onStartCommand(intent: Intent, flags: Int, startId: Int): Int { - d("Listen Service Started") - return START_STICKY - } - - override fun onListenerConnected() { - super.onListenerConnected() - when { - Looper.myLooper() == null -> { - Handler(Looper.getMainLooper()).post { initialize() } - } - else -> initialize() - } - } - - private fun initialize() { - d("Initializing Listener Service") - val token = preferenceListenBrainzToken - if (token == null || token.isEmpty()){ - d("ListenBrainz User token has not been set!") - } - handler = ListenHandler() - sessionManager = applicationContext.getSystemService(MEDIA_SESSION_SERVICE) as MediaSessionManager - sessionListener = ListenSessionListener(handler!!) - listenServiceComponent = ComponentName(this, this.javaClass) - sessionManager!!.addOnActiveSessionsChangedListener(sessionListener!!, listenServiceComponent) - } - - override fun onDestroy() { - super.onDestroy() - sessionManager!!.removeOnActiveSessionsChangedListener(sessionListener!!) - sessionListener!!.clearSessions() - } - - override fun onNotificationPosted(sbn: StatusBarNotification) { - super.onNotificationPosted(sbn) - } - - override fun onNotificationRemoved(sbn: StatusBarNotification) { - super.onNotificationRemoved(sbn) - } -} \ No newline at end of file diff --git a/app/src/main/java/org/metabrainz/android/presentation/features/listens/ListenSessionListener.kt b/app/src/main/java/org/metabrainz/android/presentation/features/listens/ListenSessionListener.kt deleted file mode 100644 index 895873e2..00000000 --- a/app/src/main/java/org/metabrainz/android/presentation/features/listens/ListenSessionListener.kt +++ /dev/null @@ -1,98 +0,0 @@ -package org.metabrainz.android.presentation.features.listens - -import android.media.MediaMetadata -import android.media.session.MediaController -import android.media.session.MediaSession -import android.media.session.MediaSessionManager.OnActiveSessionsChangedListener -import android.media.session.PlaybackState -import org.metabrainz.android.presentation.UserPreferences.preferenceListeningSpotifyEnabled -import org.metabrainz.android.util.Log.d - -class ListenSessionListener(handler: ListenHandler) : OnActiveSessionsChangedListener { - private val controllers: MutableList - private val handler: ListenHandler - private val activeSessions: MutableMap - - override fun onActiveSessionsChanged(controllers: List?) { - if (controllers == null) return - clearSessions() - this.controllers.addAll(controllers) - for (controller in controllers) { - if (!preferenceListeningSpotifyEnabled && controller.packageName == SPOTIFY_PACKAGE_NAME){ - continue - } - val callback = ListenCallback() - controller.registerCallback(callback) - } - } - - fun clearSessions() { - for ((key, value) in activeSessions) { - for (controller in controllers) { - if (controller.sessionToken == key){ - controller.unregisterCallback(value!!) - } - } - } - activeSessions.clear() - controllers.clear() - } - - private inner class ListenCallback : MediaController.Callback() { - var artist: String? = null - var title: String? = null - var timestamp: Long = 0 - var state: PlaybackState? = null - var submitted = true - override fun onMetadataChanged(metadata: MediaMetadata?) { - if (metadata == null) return - when { - state != null -> d("Listen Metadata " + state!!.state) - else -> d("Listen Metadata") - } - artist = metadata.getString(MediaMetadata.METADATA_KEY_ARTIST) - if (artist == null || artist!!.isEmpty()) { - artist = metadata.getString(MediaMetadata.METADATA_KEY_ALBUM_ARTIST) - } - title = metadata.getString(MediaMetadata.METADATA_KEY_TITLE) - if (artist == null || title == null || artist!!.isEmpty() || title!!.isEmpty()){ - return - } - if (System.currentTimeMillis() / 1000 - timestamp >= 1000) { - submitted = false - } - timestamp = System.currentTimeMillis() / 1000 - if (state != null && state!!.state == PlaybackState.STATE_PLAYING && !submitted) { - handler.submitListen(artist, title, timestamp) - submitted = true - } - } - - override fun onPlaybackStateChanged(state: PlaybackState?) { - if (state == null) return - this.state = state - d("Listen PlaybackState " + state.state) - if (state.state == PlaybackState.STATE_PLAYING && !submitted) { - handler.submitListen(artist, title, timestamp) - submitted = true - } - if (state.state == PlaybackState.STATE_PAUSED || - state.state == PlaybackState.STATE_STOPPED) { - handler.cancelListen(timestamp) - artist = "" - title = "" - timestamp = 0 - } - } - } - - companion object { - private const val SPOTIFY_PACKAGE_NAME = "com.spotify.music" - } - - init { - controllers = ArrayList() - this.handler = handler - activeSessions = HashMap() - } -} \ No newline at end of file diff --git a/app/src/main/java/org/metabrainz/android/data/repository/BarcodeLookupRepository.kt b/app/src/main/java/org/metabrainz/android/repository/BarcodeLookupRepository.kt similarity index 78% rename from app/src/main/java/org/metabrainz/android/data/repository/BarcodeLookupRepository.kt rename to app/src/main/java/org/metabrainz/android/repository/BarcodeLookupRepository.kt index c0c38174..c9863f95 100644 --- a/app/src/main/java/org/metabrainz/android/data/repository/BarcodeLookupRepository.kt +++ b/app/src/main/java/org/metabrainz/android/repository/BarcodeLookupRepository.kt @@ -1,7 +1,7 @@ -package org.metabrainz.android.data.repository +package org.metabrainz.android.repository -import org.metabrainz.android.data.sources.api.LookupService -import org.metabrainz.android.data.sources.api.entities.mbentity.Release +import org.metabrainz.android.model.mbentity.Release +import org.metabrainz.android.service.LookupService import org.metabrainz.android.util.Resource import org.metabrainz.android.util.Resource.Status.FAILED import org.metabrainz.android.util.Resource.Status.SUCCESS diff --git a/app/src/main/java/org/metabrainz/android/repository/BlogRepository.kt b/app/src/main/java/org/metabrainz/android/repository/BlogRepository.kt new file mode 100644 index 00000000..23b026f9 --- /dev/null +++ b/app/src/main/java/org/metabrainz/android/repository/BlogRepository.kt @@ -0,0 +1,7 @@ +package org.metabrainz.android.repository + +import org.metabrainz.android.util.Resource + +interface BlogRepository { + suspend fun fetchBlogs(): Resource +} \ No newline at end of file diff --git a/app/src/main/java/org/metabrainz/android/data/repository/BlogRepositoryImpl.kt b/app/src/main/java/org/metabrainz/android/repository/BlogRepositoryImpl.kt similarity index 70% rename from app/src/main/java/org/metabrainz/android/data/repository/BlogRepositoryImpl.kt rename to app/src/main/java/org/metabrainz/android/repository/BlogRepositoryImpl.kt index 3cf40a68..5cfc25cd 100644 --- a/app/src/main/java/org/metabrainz/android/data/repository/BlogRepositoryImpl.kt +++ b/app/src/main/java/org/metabrainz/android/repository/BlogRepositoryImpl.kt @@ -1,8 +1,8 @@ -package org.metabrainz.android.data.repository +package org.metabrainz.android.repository import androidx.annotation.WorkerThread -import org.metabrainz.android.data.sources.api.BlogService -import org.metabrainz.android.data.sources.api.entities.blog.Blog +import org.metabrainz.android.service.BlogService +import org.metabrainz.android.model.blog.Blog import org.metabrainz.android.util.Resource import org.metabrainz.android.util.Resource.Status.SUCCESS import javax.inject.Inject @@ -12,7 +12,7 @@ import javax.inject.Singleton class BlogRepositoryImpl @Inject constructor(val service: BlogService) : BlogRepository { @WorkerThread - override suspend fun fetchBlogs(): Resource { + override suspend fun fetchBlogs(): Resource { return try { val result = service.getBlogs() Resource(SUCCESS, result) diff --git a/app/src/main/java/org/metabrainz/android/data/repository/CollectionRepository.kt b/app/src/main/java/org/metabrainz/android/repository/CollectionRepository.kt similarity index 58% rename from app/src/main/java/org/metabrainz/android/data/repository/CollectionRepository.kt rename to app/src/main/java/org/metabrainz/android/repository/CollectionRepository.kt index bba7f9dd..db1cee64 100644 --- a/app/src/main/java/org/metabrainz/android/data/repository/CollectionRepository.kt +++ b/app/src/main/java/org/metabrainz/android/repository/CollectionRepository.kt @@ -1,11 +1,10 @@ -package org.metabrainz.android.data.repository +package org.metabrainz.android.repository -import org.metabrainz.android.data.sources.api.entities.mbentity.Collection import org.metabrainz.android.util.Resource interface CollectionRepository { suspend fun fetchCollectionDetails(entity: String, id: String): Resource - suspend fun fetchCollections(editor: String, fetchPrivate: Boolean): Resource> + suspend fun fetchCollections(editor: String, fetchPrivate: Boolean): Resource> } \ No newline at end of file diff --git a/app/src/main/java/org/metabrainz/android/data/repository/CollectionRepositoryImpl.kt b/app/src/main/java/org/metabrainz/android/repository/CollectionRepositoryImpl.kt similarity index 78% rename from app/src/main/java/org/metabrainz/android/data/repository/CollectionRepositoryImpl.kt rename to app/src/main/java/org/metabrainz/android/repository/CollectionRepositoryImpl.kt index 10b7cb24..b4b0ff49 100644 --- a/app/src/main/java/org/metabrainz/android/data/repository/CollectionRepositoryImpl.kt +++ b/app/src/main/java/org/metabrainz/android/repository/CollectionRepositoryImpl.kt @@ -1,9 +1,9 @@ -package org.metabrainz.android.data.repository +package org.metabrainz.android.repository import androidx.annotation.WorkerThread -import org.metabrainz.android.data.sources.CollectionUtils -import org.metabrainz.android.data.sources.api.CollectionService -import org.metabrainz.android.data.sources.api.entities.mbentity.Collection +import org.metabrainz.android.util.CollectionUtils +import org.metabrainz.android.service.CollectionService +import org.metabrainz.android.model.mbentity.Collection import org.metabrainz.android.util.Resource import org.metabrainz.android.util.Resource.Status.FAILED import org.metabrainz.android.util.Resource.Status.SUCCESS @@ -11,7 +11,8 @@ import javax.inject.Inject import javax.inject.Singleton @Singleton -class CollectionRepositoryImpl @Inject constructor(val service: CollectionService) : CollectionRepository{ +class CollectionRepositoryImpl @Inject constructor(val service: CollectionService) : + CollectionRepository { @WorkerThread override suspend fun fetchCollectionDetails(entity: String, id: String): Resource { @@ -25,7 +26,7 @@ class CollectionRepositoryImpl @Inject constructor(val service: CollectionServic } @WorkerThread - override suspend fun fetchCollections(editor: String, fetchPrivate: Boolean): Resource> { + override suspend fun fetchCollections(editor: String, fetchPrivate: Boolean): Resource> { return try { val response = when { fetchPrivate -> service.getAllUserCollections(editor, "user-collections") diff --git a/app/src/main/java/org/metabrainz/android/data/repository/LoginRepository.kt b/app/src/main/java/org/metabrainz/android/repository/LoginRepository.kt similarity index 72% rename from app/src/main/java/org/metabrainz/android/data/repository/LoginRepository.kt rename to app/src/main/java/org/metabrainz/android/repository/LoginRepository.kt index 65d58b74..83bd1e50 100644 --- a/app/src/main/java/org/metabrainz/android/data/repository/LoginRepository.kt +++ b/app/src/main/java/org/metabrainz/android/repository/LoginRepository.kt @@ -1,8 +1,8 @@ -package org.metabrainz.android.data.repository +package org.metabrainz.android.repository import androidx.lifecycle.MutableLiveData import org.metabrainz.android.data.sources.api.entities.AccessToken -import org.metabrainz.android.data.sources.api.entities.userdata.UserInfo +import org.metabrainz.android.model.userdata.UserInfo interface LoginRepository { diff --git a/app/src/main/java/org/metabrainz/android/data/repository/LoginRepositoryImpl.kt b/app/src/main/java/org/metabrainz/android/repository/LoginRepositoryImpl.kt similarity index 81% rename from app/src/main/java/org/metabrainz/android/data/repository/LoginRepositoryImpl.kt rename to app/src/main/java/org/metabrainz/android/repository/LoginRepositoryImpl.kt index a900e5ef..bd555237 100644 --- a/app/src/main/java/org/metabrainz/android/data/repository/LoginRepositoryImpl.kt +++ b/app/src/main/java/org/metabrainz/android/repository/LoginRepositoryImpl.kt @@ -1,10 +1,10 @@ -package org.metabrainz.android.data.repository +package org.metabrainz.android.repository import androidx.lifecycle.MutableLiveData -import org.metabrainz.android.data.sources.api.LoginService -import org.metabrainz.android.data.sources.api.MusicBrainzServiceGenerator +import org.metabrainz.android.service.LoginService +import org.metabrainz.android.service.MusicBrainzServiceGenerator import org.metabrainz.android.data.sources.api.entities.AccessToken -import org.metabrainz.android.data.sources.api.entities.userdata.UserInfo +import org.metabrainz.android.model.userdata.UserInfo import retrofit2.Call import retrofit2.Callback import retrofit2.Response @@ -12,13 +12,14 @@ import javax.inject.Inject import javax.inject.Singleton @Singleton -class LoginRepositoryImpl @Inject constructor(private val service: LoginService) : LoginRepository{ +class LoginRepositoryImpl @Inject constructor(private val service: LoginService) : LoginRepository { override val accessTokenLiveData: MutableLiveData = MutableLiveData() override val userInfoLiveData: MutableLiveData = MutableLiveData() override fun fetchAccessToken(code: String?) { - service.getAccessToken(MusicBrainzServiceGenerator.AUTH_BASE_URL + "token", + service.getAccessToken( + MusicBrainzServiceGenerator.AUTH_BASE_URL + "token", code, "authorization_code", MusicBrainzServiceGenerator.CLIENT_ID, diff --git a/app/src/main/java/org/metabrainz/android/data/repository/LookupRepository.kt b/app/src/main/java/org/metabrainz/android/repository/LookupRepository.kt similarity index 80% rename from app/src/main/java/org/metabrainz/android/data/repository/LookupRepository.kt rename to app/src/main/java/org/metabrainz/android/repository/LookupRepository.kt index 90c10f29..5ddba380 100644 --- a/app/src/main/java/org/metabrainz/android/data/repository/LookupRepository.kt +++ b/app/src/main/java/org/metabrainz/android/repository/LookupRepository.kt @@ -1,10 +1,9 @@ -package org.metabrainz.android.data.repository +package org.metabrainz.android.repository import org.metabrainz.android.data.sources.api.entities.CoverArt import org.metabrainz.android.data.sources.api.entities.RecordingItem import org.metabrainz.android.data.sources.api.entities.WikiSummary -import org.metabrainz.android.data.sources.api.entities.mbentity.Recording -import org.metabrainz.android.data.sources.api.entities.mbentity.Release +import org.metabrainz.android.model.mbentity.Release import org.metabrainz.android.util.Resource interface LookupRepository { diff --git a/app/src/main/java/org/metabrainz/android/data/repository/LookupRepositoryImpl.kt b/app/src/main/java/org/metabrainz/android/repository/LookupRepositoryImpl.kt similarity index 93% rename from app/src/main/java/org/metabrainz/android/data/repository/LookupRepositoryImpl.kt rename to app/src/main/java/org/metabrainz/android/repository/LookupRepositoryImpl.kt index 8939c0a9..1db41cd9 100644 --- a/app/src/main/java/org/metabrainz/android/data/repository/LookupRepositoryImpl.kt +++ b/app/src/main/java/org/metabrainz/android/repository/LookupRepositoryImpl.kt @@ -1,15 +1,15 @@ -package org.metabrainz.android.data.repository +package org.metabrainz.android.repository import androidx.annotation.WorkerThread import com.google.gson.Gson import com.google.gson.JsonParser -import org.metabrainz.android.data.sources.Constants -import org.metabrainz.android.data.sources.api.LookupService +import org.metabrainz.android.util.Constants +import org.metabrainz.android.service.LookupService import org.metabrainz.android.data.sources.api.entities.CoverArt import org.metabrainz.android.data.sources.api.entities.RecordingItem import org.metabrainz.android.data.sources.api.entities.WikiDataResponse import org.metabrainz.android.data.sources.api.entities.WikiSummary -import org.metabrainz.android.data.sources.api.entities.mbentity.Release +import org.metabrainz.android.model.mbentity.Release import org.metabrainz.android.util.Resource import org.metabrainz.android.util.Resource.Status.SUCCESS import javax.inject.Inject diff --git a/app/src/main/java/org/metabrainz/android/service/BlogService.kt b/app/src/main/java/org/metabrainz/android/service/BlogService.kt new file mode 100644 index 00000000..4326bd98 --- /dev/null +++ b/app/src/main/java/org/metabrainz/android/service/BlogService.kt @@ -0,0 +1,8 @@ +package org.metabrainz.android.service + +import retrofit2.http.GET + +interface BlogService { + @GET("blog.metabrainz.org/posts/") + suspend fun getBlogs(): org.metabrainz.android.model.blog.Blog +} \ No newline at end of file diff --git a/app/src/main/java/org/metabrainz/android/data/sources/api/CollectionService.kt b/app/src/main/java/org/metabrainz/android/service/CollectionService.kt similarity index 92% rename from app/src/main/java/org/metabrainz/android/data/sources/api/CollectionService.kt rename to app/src/main/java/org/metabrainz/android/service/CollectionService.kt index 41a3cb4e..3452648d 100644 --- a/app/src/main/java/org/metabrainz/android/data/sources/api/CollectionService.kt +++ b/app/src/main/java/org/metabrainz/android/service/CollectionService.kt @@ -1,4 +1,4 @@ -package org.metabrainz.android.data.sources.api +package org.metabrainz.android.service import okhttp3.ResponseBody import retrofit2.http.GET diff --git a/app/src/main/java/org/metabrainz/android/data/sources/api/HeaderInterceptor.kt b/app/src/main/java/org/metabrainz/android/service/HeaderInterceptor.kt similarity index 93% rename from app/src/main/java/org/metabrainz/android/data/sources/api/HeaderInterceptor.kt rename to app/src/main/java/org/metabrainz/android/service/HeaderInterceptor.kt index 1fba7a71..cc7cc451 100644 --- a/app/src/main/java/org/metabrainz/android/data/sources/api/HeaderInterceptor.kt +++ b/app/src/main/java/org/metabrainz/android/service/HeaderInterceptor.kt @@ -1,9 +1,9 @@ -package org.metabrainz.android.data.sources.api +package org.metabrainz.android.service import okhttp3.Interceptor import okhttp3.Request import okhttp3.Response -import org.metabrainz.android.presentation.features.login.LoginSharedPreferences +import org.metabrainz.android.ui.screens.login.LoginSharedPreferences import java.io.IOException internal class HeaderInterceptor : Interceptor { diff --git a/app/src/main/java/org/metabrainz/android/data/sources/api/LoginService.kt b/app/src/main/java/org/metabrainz/android/service/LoginService.kt similarity index 89% rename from app/src/main/java/org/metabrainz/android/data/sources/api/LoginService.kt rename to app/src/main/java/org/metabrainz/android/service/LoginService.kt index 9509491a..13b77bae 100644 --- a/app/src/main/java/org/metabrainz/android/data/sources/api/LoginService.kt +++ b/app/src/main/java/org/metabrainz/android/service/LoginService.kt @@ -1,7 +1,7 @@ -package org.metabrainz.android.data.sources.api +package org.metabrainz.android.service import org.metabrainz.android.data.sources.api.entities.AccessToken -import org.metabrainz.android.data.sources.api.entities.userdata.UserInfo +import org.metabrainz.android.model.userdata.UserInfo import retrofit2.Call import retrofit2.http.* diff --git a/app/src/main/java/org/metabrainz/android/data/sources/api/LookupService.kt b/app/src/main/java/org/metabrainz/android/service/LookupService.kt similarity index 85% rename from app/src/main/java/org/metabrainz/android/data/sources/api/LookupService.kt rename to app/src/main/java/org/metabrainz/android/service/LookupService.kt index c5406ee9..d9ddb7d0 100644 --- a/app/src/main/java/org/metabrainz/android/data/sources/api/LookupService.kt +++ b/app/src/main/java/org/metabrainz/android/service/LookupService.kt @@ -1,12 +1,11 @@ -package org.metabrainz.android.data.sources.api +package org.metabrainz.android.service import okhttp3.ResponseBody import org.metabrainz.android.data.sources.api.entities.CoverArt import org.metabrainz.android.data.sources.api.entities.RecordingItem import org.metabrainz.android.data.sources.api.entities.WikiSummary -import org.metabrainz.android.data.sources.api.entities.acoustid.AcoustIDResponse -import org.metabrainz.android.data.sources.api.entities.mbentity.Release -import org.metabrainz.android.data.sources.api.entities.response.BarcodeReleaseResponse +import org.metabrainz.android.model.mbentity.Release +import org.metabrainz.android.model.response.BarcodeReleaseResponse import retrofit2.http.GET import retrofit2.http.POST import retrofit2.http.Path @@ -34,7 +33,7 @@ interface LookupService { suspend fun lookupFingerprint(@Query("client") client: String?, @Query("meta") metadata: String?, @Query("duration") duration: Long, - @Query("fingerprint") fingerprint: String?): AcoustIDResponse + @Query("fingerprint") fingerprint: String?): org.metabrainz.android.model.acoustid.AcoustIDResponse @GET("https://en.wikipedia.org/api/rest_v1/page/summary/{title}") suspend fun getWikipediaSummary(@Path("title") title: String): WikiSummary diff --git a/app/src/main/java/org/metabrainz/android/data/sources/api/MusicBrainzServiceGenerator.kt b/app/src/main/java/org/metabrainz/android/service/MusicBrainzServiceGenerator.kt similarity index 97% rename from app/src/main/java/org/metabrainz/android/data/sources/api/MusicBrainzServiceGenerator.kt rename to app/src/main/java/org/metabrainz/android/service/MusicBrainzServiceGenerator.kt index d86dc8d5..b3c010ff 100644 --- a/app/src/main/java/org/metabrainz/android/data/sources/api/MusicBrainzServiceGenerator.kt +++ b/app/src/main/java/org/metabrainz/android/service/MusicBrainzServiceGenerator.kt @@ -1,4 +1,4 @@ -package org.metabrainz.android.data.sources.api +package org.metabrainz.android.service import android.content.Context import android.net.ConnectivityManager @@ -7,7 +7,7 @@ import android.os.Build import okhttp3.Interceptor import okhttp3.OkHttpClient import okhttp3.logging.HttpLoggingInterceptor -import org.metabrainz.android.App +import org.metabrainz.android.application.App import retrofit2.Retrofit import retrofit2.converter.gson.GsonConverterFactory diff --git a/app/src/main/java/org/metabrainz/android/data/sources/api/OAuthAuthenticator.kt b/app/src/main/java/org/metabrainz/android/service/OAuthAuthenticator.kt similarity index 75% rename from app/src/main/java/org/metabrainz/android/data/sources/api/OAuthAuthenticator.kt rename to app/src/main/java/org/metabrainz/android/service/OAuthAuthenticator.kt index 520be5a9..bb5a9169 100644 --- a/app/src/main/java/org/metabrainz/android/data/sources/api/OAuthAuthenticator.kt +++ b/app/src/main/java/org/metabrainz/android/service/OAuthAuthenticator.kt @@ -1,11 +1,11 @@ -package org.metabrainz.android.data.sources.api +package org.metabrainz.android.service import okhttp3.Authenticator import okhttp3.Request import okhttp3.Response import okhttp3.Route -import org.metabrainz.android.data.sources.api.MusicBrainzServiceGenerator.createService -import org.metabrainz.android.presentation.features.login.LoginSharedPreferences +import org.metabrainz.android.service.MusicBrainzServiceGenerator.createService +import org.metabrainz.android.ui.screens.login.LoginSharedPreferences import org.metabrainz.android.util.Log.d import java.io.IOException @@ -13,12 +13,13 @@ internal class OAuthAuthenticator : Authenticator { @Throws(IOException::class) override fun authenticate(route: Route?, response: Response): Request? { val service = createService(LoginService::class.java, false) - d("OkHttp : " + response.body!!.string()) + d("OkHttp : " + response.body.string()) val refreshToken = LoginSharedPreferences.refreshToken val call = service.refreshAccessToken(refreshToken, "refresh_token", - MusicBrainzServiceGenerator.CLIENT_ID, - MusicBrainzServiceGenerator.CLIENT_SECRET) + MusicBrainzServiceGenerator.CLIENT_ID, + MusicBrainzServiceGenerator.CLIENT_SECRET + ) val newResponse = call!!.execute() val token = newResponse.body() if (token != null) { diff --git a/app/src/main/java/org/metabrainz/android/data/sources/api/SearchService.kt b/app/src/main/java/org/metabrainz/android/service/SearchService.kt similarity index 89% rename from app/src/main/java/org/metabrainz/android/data/sources/api/SearchService.kt rename to app/src/main/java/org/metabrainz/android/service/SearchService.kt index 0f472005..ceb04ca8 100644 --- a/app/src/main/java/org/metabrainz/android/data/sources/api/SearchService.kt +++ b/app/src/main/java/org/metabrainz/android/service/SearchService.kt @@ -1,4 +1,4 @@ -package org.metabrainz.android.data.sources.api +package org.metabrainz.android.service import okhttp3.ResponseBody import retrofit2.http.GET diff --git a/app/src/main/java/org/metabrainz/android/data/sources/api/ServiceModule.kt b/app/src/main/java/org/metabrainz/android/service/ServiceModule.kt similarity index 70% rename from app/src/main/java/org/metabrainz/android/data/sources/api/ServiceModule.kt rename to app/src/main/java/org/metabrainz/android/service/ServiceModule.kt index f95db8fe..401ae87b 100644 --- a/app/src/main/java/org/metabrainz/android/data/sources/api/ServiceModule.kt +++ b/app/src/main/java/org/metabrainz/android/service/ServiceModule.kt @@ -1,10 +1,10 @@ -package org.metabrainz.android.data.sources.api +package org.metabrainz.android.service import dagger.Module import dagger.Provides import dagger.hilt.InstallIn import dagger.hilt.components.SingletonComponent -import org.metabrainz.android.data.sources.api.MusicBrainzServiceGenerator.createService +import org.metabrainz.android.service.MusicBrainzServiceGenerator.createService import retrofit2.Retrofit import retrofit2.converter.gson.GsonConverterFactory import javax.inject.Singleton @@ -24,13 +24,6 @@ class ServiceModule { .addConverterFactory(GsonConverterFactory.create()) .build().create(BlogService::class.java) - @get:Provides - @get:Singleton - val listensService: ListensService = Retrofit.Builder() - .baseUrl("https://api.listenbrainz.org/") - .addConverterFactory(GsonConverterFactory.create()) - .build().create(ListensService::class.java) - @get:Provides @get:Singleton val collectionService: CollectionService = createService(CollectionService::class.java, true) diff --git a/app/src/main/java/org/metabrainz/android/presentation/features/adapters/BlogAdapter.kt b/app/src/main/java/org/metabrainz/android/ui/adapters/BlogAdapter.kt similarity index 90% rename from app/src/main/java/org/metabrainz/android/presentation/features/adapters/BlogAdapter.kt rename to app/src/main/java/org/metabrainz/android/ui/adapters/BlogAdapter.kt index 54f4611a..9dbcb9fc 100644 --- a/app/src/main/java/org/metabrainz/android/presentation/features/adapters/BlogAdapter.kt +++ b/app/src/main/java/org/metabrainz/android/ui/adapters/BlogAdapter.kt @@ -1,4 +1,4 @@ -package org.metabrainz.android.presentation.features.adapters +package org.metabrainz.android.ui.adapters import android.content.Context import android.os.Build @@ -11,9 +11,9 @@ import androidx.cardview.widget.CardView import androidx.core.text.HtmlCompat import androidx.recyclerview.widget.RecyclerView import org.metabrainz.android.R -import org.metabrainz.android.data.sources.api.entities.blog.Post +import org.metabrainz.android.model.blog.Post -class BlogAdapter(private val context: Context, private val posts: ArrayList, private val clickListener: ClickListener) : RecyclerView.Adapter() { +class BlogAdapter(private val context: Context, private val posts: ArrayList, private val clickListener: ClickListener) : RecyclerView.Adapter() { override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder { val v = LayoutInflater.from(parent.context).inflate(R.layout.card_blog, parent, false) diff --git a/app/src/main/java/org/metabrainz/android/presentation/features/adapters/ResultAdapter.kt b/app/src/main/java/org/metabrainz/android/ui/adapters/ResultAdapter.kt similarity index 89% rename from app/src/main/java/org/metabrainz/android/presentation/features/adapters/ResultAdapter.kt rename to app/src/main/java/org/metabrainz/android/ui/adapters/ResultAdapter.kt index 2f81b69d..2521fc33 100644 --- a/app/src/main/java/org/metabrainz/android/presentation/features/adapters/ResultAdapter.kt +++ b/app/src/main/java/org/metabrainz/android/ui/adapters/ResultAdapter.kt @@ -1,4 +1,4 @@ -package org.metabrainz.android.presentation.features.adapters +package org.metabrainz.android.ui.adapters import android.content.Intent import android.view.LayoutInflater @@ -7,8 +7,8 @@ import android.view.ViewGroup import android.view.animation.AnimationUtils import androidx.recyclerview.widget.RecyclerView import org.metabrainz.android.R -import org.metabrainz.android.data.sources.Constants -import org.metabrainz.android.data.sources.api.entities.mbentity.MBEntityType +import org.metabrainz.android.util.Constants +import org.metabrainz.android.model.mbentity.MBEntityType class ResultAdapter(private val data: List, private val entity: MBEntityType) : RecyclerView.Adapter() { private var lastPosition = -1 diff --git a/app/src/main/java/org/metabrainz/android/presentation/features/adapters/ResultItem.kt b/app/src/main/java/org/metabrainz/android/ui/adapters/ResultItem.kt similarity index 68% rename from app/src/main/java/org/metabrainz/android/presentation/features/adapters/ResultItem.kt rename to app/src/main/java/org/metabrainz/android/ui/adapters/ResultItem.kt index fd5d95b7..55e428da 100644 --- a/app/src/main/java/org/metabrainz/android/presentation/features/adapters/ResultItem.kt +++ b/app/src/main/java/org/metabrainz/android/ui/adapters/ResultItem.kt @@ -1,3 +1,3 @@ -package org.metabrainz.android.presentation.features.adapters +package org.metabrainz.android.ui.adapters data class ResultItem(var mBID: String?, var name: String?, var disambiguation: String?, var primary: String?, var secondary: String?) \ No newline at end of file diff --git a/app/src/main/java/org/metabrainz/android/presentation/features/adapters/ResultItemComparator.kt b/app/src/main/java/org/metabrainz/android/ui/adapters/ResultItemComparator.kt similarity index 86% rename from app/src/main/java/org/metabrainz/android/presentation/features/adapters/ResultItemComparator.kt rename to app/src/main/java/org/metabrainz/android/ui/adapters/ResultItemComparator.kt index 78a17848..b445395d 100644 --- a/app/src/main/java/org/metabrainz/android/presentation/features/adapters/ResultItemComparator.kt +++ b/app/src/main/java/org/metabrainz/android/ui/adapters/ResultItemComparator.kt @@ -1,4 +1,4 @@ -package org.metabrainz.android.presentation.features.adapters +package org.metabrainz.android.ui.adapters import androidx.recyclerview.widget.DiffUtil diff --git a/app/src/main/java/org/metabrainz/android/presentation/features/adapters/ResultItemUtils.kt b/app/src/main/java/org/metabrainz/android/ui/adapters/ResultItemUtils.kt similarity index 71% rename from app/src/main/java/org/metabrainz/android/presentation/features/adapters/ResultItemUtils.kt rename to app/src/main/java/org/metabrainz/android/ui/adapters/ResultItemUtils.kt index 4a496a98..9574e3ea 100644 --- a/app/src/main/java/org/metabrainz/android/presentation/features/adapters/ResultItemUtils.kt +++ b/app/src/main/java/org/metabrainz/android/ui/adapters/ResultItemUtils.kt @@ -1,21 +1,24 @@ -package org.metabrainz.android.presentation.features.adapters +package org.metabrainz.android.ui.adapters import com.google.gson.Gson import com.google.gson.JsonParser import com.google.gson.reflect.TypeToken import org.metabrainz.android.data.sources.api.entities.EntityUtils.getDisplayArtist -import org.metabrainz.android.data.sources.api.entities.mbentity.* +import org.metabrainz.android.model.mbentity.MBEntityType +import org.metabrainz.android.model.mbentity.Recording +import org.metabrainz.android.model.mbentity.Release +import org.metabrainz.android.model.mbentity.ReleaseGroup import java.lang.reflect.Type import java.util.* object ResultItemUtils { - fun getEntityAsResultItem(entity: MBEntity?): ResultItem { + fun getEntityAsResultItem(entity: org.metabrainz.android.model.mbentity.MBEntity?): ResultItem { val item: ResultItem? = when (entity) { - is Artist -> { + is org.metabrainz.android.model.mbentity.Artist -> { ResultItem(entity.mbid, entity.name, entity.disambiguation, entity.type, entity.country) } - is Event -> { + is org.metabrainz.android.model.mbentity.Event -> { when { entity.lifeSpan != null -> { ResultItem(entity.mbid, entity.name, entity.disambiguation, entity.type, entity.lifeSpan!!.timePeriod) @@ -25,10 +28,10 @@ object ResultItemUtils { } } } - is Instrument -> { + is org.metabrainz.android.model.mbentity.Instrument -> { ResultItem(entity.mbid, entity.name, entity.disambiguation, entity.description, entity.type) } - is Label -> { + is org.metabrainz.android.model.mbentity.Label -> { ResultItem(entity.mbid, entity.name, entity.disambiguation, entity.type, entity.country) } is Recording -> { @@ -54,19 +57,19 @@ object ResultItemUtils { private fun getTypeToken(entity: MBEntityType): Type? { return when { - entity === MBEntityType.ARTIST -> TypeToken.getParameterized(MutableList::class.java, Artist::class.java).type + entity === MBEntityType.ARTIST -> TypeToken.getParameterized(MutableList::class.java, org.metabrainz.android.model.mbentity.Artist::class.java).type entity === MBEntityType.RELEASE -> TypeToken.getParameterized(MutableList::class.java, Release::class.java).type - entity === MBEntityType.LABEL -> TypeToken.getParameterized(MutableList::class.java, Label::class.java).type + entity === MBEntityType.LABEL -> TypeToken.getParameterized(MutableList::class.java, org.metabrainz.android.model.mbentity.Label::class.java).type entity === MBEntityType.RECORDING -> TypeToken.getParameterized(MutableList::class.java, Recording::class.java).type - entity === MBEntityType.EVENT -> TypeToken.getParameterized(MutableList::class.java, Event::class.java).type - entity === MBEntityType.INSTRUMENT -> TypeToken.getParameterized(MutableList::class.java, Instrument::class.java).type + entity === MBEntityType.EVENT -> TypeToken.getParameterized(MutableList::class.java, org.metabrainz.android.model.mbentity.Event::class.java).type + entity === MBEntityType.INSTRUMENT -> TypeToken.getParameterized(MutableList::class.java, org.metabrainz.android.model.mbentity.Instrument::class.java).type entity === MBEntityType.RELEASE_GROUP -> TypeToken.getParameterized(MutableList::class.java, ReleaseGroup::class.java).type else -> null } } fun getJSONResponseAsResultItemList(response: String?, entity: MBEntityType): List { - val list = Gson().fromJson>(JsonParser.parseString(response).asJsonObject[entity.entity + "s"], getTypeToken(entity)) + val list = Gson().fromJson>(JsonParser.parseString(response).asJsonObject[entity.entity + "s"], getTypeToken(entity)) val items: MutableList = ArrayList() for (e in list) items.add(getEntityAsResultItem(e)) return items diff --git a/app/src/main/java/org/metabrainz/android/presentation/features/adapters/ResultPagingAdapter.kt b/app/src/main/java/org/metabrainz/android/ui/adapters/ResultPagingAdapter.kt similarity index 89% rename from app/src/main/java/org/metabrainz/android/presentation/features/adapters/ResultPagingAdapter.kt rename to app/src/main/java/org/metabrainz/android/ui/adapters/ResultPagingAdapter.kt index 653ceae8..96665292 100644 --- a/app/src/main/java/org/metabrainz/android/presentation/features/adapters/ResultPagingAdapter.kt +++ b/app/src/main/java/org/metabrainz/android/ui/adapters/ResultPagingAdapter.kt @@ -1,4 +1,4 @@ -package org.metabrainz.android.presentation.features.adapters +package org.metabrainz.android.ui.adapters import android.content.Intent import android.view.LayoutInflater @@ -8,8 +8,8 @@ import android.view.animation.AnimationUtils import androidx.paging.PagingDataAdapter import androidx.recyclerview.widget.DiffUtil import org.metabrainz.android.R -import org.metabrainz.android.data.sources.Constants -import org.metabrainz.android.data.sources.api.entities.mbentity.MBEntityType +import org.metabrainz.android.model.mbentity.MBEntityType +import org.metabrainz.android.util.Constants class ResultPagingAdapter(diffCallback: DiffUtil.ItemCallback, private val entity: MBEntityType) : PagingDataAdapter(diffCallback) { private var lastPosition = -1 diff --git a/app/src/main/java/org/metabrainz/android/presentation/features/adapters/ResultViewHolder.kt b/app/src/main/java/org/metabrainz/android/ui/adapters/ResultViewHolder.kt similarity index 93% rename from app/src/main/java/org/metabrainz/android/presentation/features/adapters/ResultViewHolder.kt rename to app/src/main/java/org/metabrainz/android/ui/adapters/ResultViewHolder.kt index 3b1aecdf..d1ca4132 100644 --- a/app/src/main/java/org/metabrainz/android/presentation/features/adapters/ResultViewHolder.kt +++ b/app/src/main/java/org/metabrainz/android/ui/adapters/ResultViewHolder.kt @@ -1,4 +1,4 @@ -package org.metabrainz.android.presentation.features.adapters +package org.metabrainz.android.ui.adapters import android.view.View import android.widget.TextView diff --git a/app/src/main/java/org/metabrainz/android/presentation/components/BottomNavigationBar.kt b/app/src/main/java/org/metabrainz/android/ui/components/BottomNavigationBar.kt similarity index 88% rename from app/src/main/java/org/metabrainz/android/presentation/components/BottomNavigationBar.kt rename to app/src/main/java/org/metabrainz/android/ui/components/BottomNavigationBar.kt index 64de0a8d..a5dbe5bc 100644 --- a/app/src/main/java/org/metabrainz/android/presentation/components/BottomNavigationBar.kt +++ b/app/src/main/java/org/metabrainz/android/ui/components/BottomNavigationBar.kt @@ -1,4 +1,4 @@ -package org.metabrainz.android.presentation.components +package org.metabrainz.android.ui.components import android.app.Activity import android.content.Intent @@ -16,9 +16,9 @@ import androidx.compose.ui.res.painterResource import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp import org.metabrainz.android.R -import org.metabrainz.android.presentation.features.dashboard.DashboardActivity -import org.metabrainz.android.presentation.features.login.LoginActivity -import org.metabrainz.android.presentation.features.navigation.NavigationItem +import org.metabrainz.android.ui.screens.login.LoginActivity +import org.metabrainz.android.ui.navigation.NavigationItem +import org.metabrainz.android.ui.screens.dashboard.DashboardActivity @Composable fun BottomNavigationBar(activity: Activity) { diff --git a/app/src/main/java/org/metabrainz/android/presentation/view/HtmlAssetTextView.kt b/app/src/main/java/org/metabrainz/android/ui/components/HtmlAssetTextView.kt similarity index 90% rename from app/src/main/java/org/metabrainz/android/presentation/view/HtmlAssetTextView.kt rename to app/src/main/java/org/metabrainz/android/ui/components/HtmlAssetTextView.kt index 76b44bca..90eb8775 100644 --- a/app/src/main/java/org/metabrainz/android/presentation/view/HtmlAssetTextView.kt +++ b/app/src/main/java/org/metabrainz/android/ui/components/HtmlAssetTextView.kt @@ -1,4 +1,4 @@ -package org.metabrainz.android.presentation.view +package org.metabrainz.android.ui.components import android.content.Context import android.util.AttributeSet diff --git a/app/src/main/java/org/metabrainz/android/presentation/components/TopAppBar.kt b/app/src/main/java/org/metabrainz/android/ui/components/TopAppBar.kt similarity index 87% rename from app/src/main/java/org/metabrainz/android/presentation/components/TopAppBar.kt rename to app/src/main/java/org/metabrainz/android/ui/components/TopAppBar.kt index 18318024..3118a5f0 100644 --- a/app/src/main/java/org/metabrainz/android/presentation/components/TopAppBar.kt +++ b/app/src/main/java/org/metabrainz/android/ui/components/TopAppBar.kt @@ -1,4 +1,4 @@ -package org.metabrainz.android.presentation.components +package org.metabrainz.android.ui.components import android.app.Activity import android.content.Intent @@ -14,10 +14,10 @@ import androidx.compose.ui.graphics.Color import androidx.compose.ui.res.painterResource import androidx.compose.ui.unit.dp import org.metabrainz.android.R -import org.metabrainz.android.presentation.features.about.AboutActivity -import org.metabrainz.android.presentation.features.dashboard.DashboardActivity -import org.metabrainz.android.presentation.features.dashboard.DonateActivity -import org.metabrainz.android.presentation.features.settings.SettingsActivity +import org.metabrainz.android.ui.screens.about.AboutActivity +import org.metabrainz.android.ui.screens.dashboard.DashboardActivity +import org.metabrainz.android.ui.screens.dashboard.DonateActivity +import org.metabrainz.android.ui.screens.settings.SettingsActivity @Composable fun TopAppBar(activity: Activity, title: String = "MusicBrainz") { diff --git a/app/src/main/java/org/metabrainz/android/presentation/features/navigation/NavigationItem.kt b/app/src/main/java/org/metabrainz/android/ui/navigation/NavigationItem.kt similarity index 80% rename from app/src/main/java/org/metabrainz/android/presentation/features/navigation/NavigationItem.kt rename to app/src/main/java/org/metabrainz/android/ui/navigation/NavigationItem.kt index b3d38b29..afe57cf9 100644 --- a/app/src/main/java/org/metabrainz/android/presentation/features/navigation/NavigationItem.kt +++ b/app/src/main/java/org/metabrainz/android/ui/navigation/NavigationItem.kt @@ -1,4 +1,4 @@ -package org.metabrainz.android.presentation.features.navigation +package org.metabrainz.android.ui.navigation import org.metabrainz.android.R diff --git a/app/src/main/java/org/metabrainz/android/presentation/features/notifications/AlertReceiver.kt b/app/src/main/java/org/metabrainz/android/ui/notifications/AlertReceiver.kt similarity index 93% rename from app/src/main/java/org/metabrainz/android/presentation/features/notifications/AlertReceiver.kt rename to app/src/main/java/org/metabrainz/android/ui/notifications/AlertReceiver.kt index 2b7fa82f..4437c1b1 100644 --- a/app/src/main/java/org/metabrainz/android/presentation/features/notifications/AlertReceiver.kt +++ b/app/src/main/java/org/metabrainz/android/ui/notifications/AlertReceiver.kt @@ -1,4 +1,4 @@ -package org.metabrainz.android.presentation.features.notifications +package org.metabrainz.android.ui.notifications import android.content.BroadcastReceiver import android.content.Context diff --git a/app/src/main/java/org/metabrainz/android/presentation/features/notifications/NotificationHelper.kt b/app/src/main/java/org/metabrainz/android/ui/notifications/NotificationHelper.kt similarity index 86% rename from app/src/main/java/org/metabrainz/android/presentation/features/notifications/NotificationHelper.kt rename to app/src/main/java/org/metabrainz/android/ui/notifications/NotificationHelper.kt index 7cf25bad..534c7c42 100644 --- a/app/src/main/java/org/metabrainz/android/presentation/features/notifications/NotificationHelper.kt +++ b/app/src/main/java/org/metabrainz/android/ui/notifications/NotificationHelper.kt @@ -1,4 +1,4 @@ -package org.metabrainz.android.presentation.features.notifications +package org.metabrainz.android.ui.notifications import android.annotation.TargetApi import android.app.NotificationChannel @@ -13,7 +13,7 @@ import android.os.Build import androidx.core.app.NotificationCompat import androidx.core.content.ContextCompat import org.metabrainz.android.R -import org.metabrainz.android.presentation.features.dashboard.DashboardActivity +import org.metabrainz.android.ui.screens.dashboard.DashboardActivity class NotificationHelper(base: Context?,val icon: Bitmap) : ContextWrapper(base) { @@ -44,7 +44,12 @@ class NotificationHelper(base: Context?,val icon: Bitmap) : ContextWrapper(base) .setPriority(NotificationCompat.PRIORITY_MAX) .setTimeoutAfter(1800000) .setAutoCancel(true) - .setContentIntent(PendingIntent.getActivity(baseContext, 0, Intent(baseContext, intentActivity), 0)) + .setContentIntent(PendingIntent.getActivity( + baseContext, + 0, + Intent(baseContext, intentActivity), + PendingIntent.FLAG_IMMUTABLE + )) companion object { const val channelID = "channelId" diff --git a/app/src/main/java/org/metabrainz/android/presentation/features/about/AboutActivity.kt b/app/src/main/java/org/metabrainz/android/ui/screens/about/AboutActivity.kt similarity index 79% rename from app/src/main/java/org/metabrainz/android/presentation/features/about/AboutActivity.kt rename to app/src/main/java/org/metabrainz/android/ui/screens/about/AboutActivity.kt index f74095a8..62494a70 100644 --- a/app/src/main/java/org/metabrainz/android/presentation/features/about/AboutActivity.kt +++ b/app/src/main/java/org/metabrainz/android/ui/screens/about/AboutActivity.kt @@ -1,4 +1,4 @@ -package org.metabrainz.android.presentation.features.about +package org.metabrainz.android.ui.screens.about import android.graphics.drawable.ColorDrawable import android.net.Uri @@ -6,12 +6,11 @@ import android.os.Bundle import android.view.Menu import org.metabrainz.android.R import org.metabrainz.android.databinding.ActivityAboutBinding -import org.metabrainz.android.presentation.features.base.MusicBrainzActivity -import java.util.* +import org.metabrainz.android.ui.screens.base.MusicBrainzActivity class AboutActivity : MusicBrainzActivity() { private var binding: ActivityAboutBinding? = null - public override fun onCreate(savedInstanceState: Bundle?) { + override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) binding = ActivityAboutBinding.inflate(layoutInflater) setContentView(binding!!.root) diff --git a/app/src/main/java/org/metabrainz/android/presentation/features/about/AboutFragment.kt b/app/src/main/java/org/metabrainz/android/ui/screens/about/AboutFragment.kt similarity index 87% rename from app/src/main/java/org/metabrainz/android/presentation/features/about/AboutFragment.kt rename to app/src/main/java/org/metabrainz/android/ui/screens/about/AboutFragment.kt index 2965df26..95723d4e 100644 --- a/app/src/main/java/org/metabrainz/android/presentation/features/about/AboutFragment.kt +++ b/app/src/main/java/org/metabrainz/android/ui/screens/about/AboutFragment.kt @@ -1,9 +1,9 @@ -package org.metabrainz.android.presentation.features.about +package org.metabrainz.android.ui.screens.about import android.os.Bundle import android.view.* import androidx.fragment.app.Fragment -import org.metabrainz.android.App +import org.metabrainz.android.application.App import org.metabrainz.android.R import org.metabrainz.android.databinding.FragmentAboutBinding @@ -14,7 +14,7 @@ class AboutFragment : Fragment() { setHasOptionsMenu(true) } - override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? { + override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View { binding = FragmentAboutBinding.inflate(inflater, container, false) binding!!.aboutText.setAsset("about.html") return binding!!.root diff --git a/app/src/main/java/org/metabrainz/android/presentation/features/artist/ArtistActivity.kt b/app/src/main/java/org/metabrainz/android/ui/screens/artist/ArtistActivity.kt similarity index 65% rename from app/src/main/java/org/metabrainz/android/presentation/features/artist/ArtistActivity.kt rename to app/src/main/java/org/metabrainz/android/ui/screens/artist/ArtistActivity.kt index 34cf7ee6..dbbaba28 100644 --- a/app/src/main/java/org/metabrainz/android/presentation/features/artist/ArtistActivity.kt +++ b/app/src/main/java/org/metabrainz/android/ui/screens/artist/ArtistActivity.kt @@ -1,20 +1,20 @@ -package org.metabrainz.android.presentation.features.artist +package org.metabrainz.android.ui.screens.artist import android.net.Uri import android.os.Bundle import androidx.activity.viewModels import androidx.lifecycle.SavedStateViewModelFactory import dagger.hilt.android.AndroidEntryPoint -import org.metabrainz.android.App -import org.metabrainz.android.data.sources.Constants -import org.metabrainz.android.data.sources.api.entities.mbentity.Artist -import org.metabrainz.android.presentation.features.base.LookupActivity -import org.metabrainz.android.presentation.features.links.LinksFragment -import org.metabrainz.android.presentation.features.links.LinksViewModel -import org.metabrainz.android.presentation.features.release_list.ReleaseListFragment -import org.metabrainz.android.presentation.features.release_list.ReleaseListViewModel -import org.metabrainz.android.presentation.features.userdata.UserDataFragment -import org.metabrainz.android.presentation.features.userdata.UserViewModel +import org.metabrainz.android.application.App +import org.metabrainz.android.util.Constants +import org.metabrainz.android.model.mbentity.Artist +import org.metabrainz.android.ui.screens.links.LinksFragment +import org.metabrainz.android.ui.screens.links.LinksViewModel +import org.metabrainz.android.ui.screens.release_list.ReleaseListFragment +import org.metabrainz.android.ui.screens.release_list.ReleaseListViewModel +import org.metabrainz.android.ui.screens.userdata.UserDataFragment +import org.metabrainz.android.ui.screens.userdata.UserViewModel +import org.metabrainz.android.ui.screens.base.LookupActivity /** * Activity that retrieves and displays information about an artist given an @@ -25,7 +25,7 @@ class ArtistActivity : LookupActivity() { private val artistViewModel: ArtistViewModel by viewModels() private val releaseListViewModel: ReleaseListViewModel by viewModels() - private val linksViewModel: LinksViewModel by viewModels(){ + private val linksViewModel: LinksViewModel by viewModels { SavedStateViewModelFactory(application, this) } private val userViewModel: UserViewModel by viewModels { @@ -54,5 +54,6 @@ class ArtistActivity : LookupActivity() { } override fun getFragmentsList() = listOf(ArtistBioFragment, - ReleaseListFragment, LinksFragment, UserDataFragment) + ReleaseListFragment, LinksFragment, UserDataFragment + ) } \ No newline at end of file diff --git a/app/src/main/java/org/metabrainz/android/presentation/features/artist/ArtistBioFragment.kt b/app/src/main/java/org/metabrainz/android/ui/screens/artist/ArtistBioFragment.kt similarity index 90% rename from app/src/main/java/org/metabrainz/android/presentation/features/artist/ArtistBioFragment.kt rename to app/src/main/java/org/metabrainz/android/ui/screens/artist/ArtistBioFragment.kt index f0a85e14..61ff5d68 100644 --- a/app/src/main/java/org/metabrainz/android/presentation/features/artist/ArtistBioFragment.kt +++ b/app/src/main/java/org/metabrainz/android/ui/screens/artist/ArtistBioFragment.kt @@ -1,4 +1,4 @@ -package org.metabrainz.android.presentation.features.artist +package org.metabrainz.android.ui.screens.artist import android.os.Bundle import android.view.LayoutInflater @@ -8,9 +8,9 @@ import androidx.fragment.app.Fragment import androidx.fragment.app.activityViewModels import org.metabrainz.android.R import org.metabrainz.android.data.sources.api.entities.WikiSummary -import org.metabrainz.android.data.sources.api.entities.mbentity.Artist +import org.metabrainz.android.model.mbentity.Artist import org.metabrainz.android.databinding.FragmentBioBinding -import org.metabrainz.android.presentation.features.base.MusicBrainzFragment +import org.metabrainz.android.ui.screens.base.MusicBrainzFragment import org.metabrainz.android.util.Resource class ArtistBioFragment : Fragment() { @@ -18,7 +18,7 @@ class ArtistBioFragment : Fragment() { private val artistViewModel: ArtistViewModel by activityViewModels() - override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? { + override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View { binding = FragmentBioBinding.inflate(inflater, container, false) artistViewModel.data.observe(viewLifecycleOwner, { setArtistInfo(it) }) artistViewModel.wikiData.observe(viewLifecycleOwner, { setWiki(it) }) @@ -57,7 +57,7 @@ class ArtistBioFragment : Fragment() { binding!!.poweredByWikipedia.visibility = View.GONE } - private fun setArtistInfo(resource: Resource) { + private fun setArtistInfo(resource: Resource) { if (resource.status == Resource.Status.SUCCESS) { val artist = resource.data diff --git a/app/src/main/java/org/metabrainz/android/presentation/features/artist/ArtistViewModel.kt b/app/src/main/java/org/metabrainz/android/ui/screens/artist/ArtistViewModel.kt similarity index 69% rename from app/src/main/java/org/metabrainz/android/presentation/features/artist/ArtistViewModel.kt rename to app/src/main/java/org/metabrainz/android/ui/screens/artist/ArtistViewModel.kt index be98b728..a8dea8c4 100644 --- a/app/src/main/java/org/metabrainz/android/presentation/features/artist/ArtistViewModel.kt +++ b/app/src/main/java/org/metabrainz/android/ui/screens/artist/ArtistViewModel.kt @@ -1,25 +1,26 @@ -package org.metabrainz.android.presentation.features.artist +package org.metabrainz.android.ui.screens.artist import androidx.lifecycle.* import dagger.hilt.android.lifecycle.HiltViewModel import kotlinx.coroutines.Dispatchers -import org.metabrainz.android.data.repository.LookupRepository import org.metabrainz.android.data.sources.api.entities.WikiSummary -import org.metabrainz.android.data.sources.api.entities.mbentity.Artist -import org.metabrainz.android.data.sources.api.entities.mbentity.MBEntityType.ARTIST -import org.metabrainz.android.presentation.features.base.LookupViewModel +import org.metabrainz.android.model.mbentity.MBEntityType +import org.metabrainz.android.repository.LookupRepository +import org.metabrainz.android.ui.screens.base.LookupViewModel import org.metabrainz.android.util.Resource import org.metabrainz.android.util.Resource.Status.SUCCESS import javax.inject.Inject @HiltViewModel -class ArtistViewModel @Inject constructor(repository: LookupRepository) : LookupViewModel(repository, ARTIST) { +class ArtistViewModel @Inject constructor(repository: LookupRepository) : LookupViewModel(repository, + MBEntityType.ARTIST +) { val wikiData: LiveData> - override val data: LiveData> = jsonLiveData.map { parseData(it) } + override val data: LiveData> = jsonLiveData.map { parseData(it) } - private suspend fun fetchWikiSummary(resource: Resource): Resource { + private suspend fun fetchWikiSummary(resource: Resource): Resource { if (resource.status == SUCCESS) { var title = "" var method = -1 diff --git a/app/src/main/java/org/metabrainz/android/presentation/features/barcode/BarcodeActivity.kt b/app/src/main/java/org/metabrainz/android/ui/screens/barcode/BarcodeActivity.kt similarity index 96% rename from app/src/main/java/org/metabrainz/android/presentation/features/barcode/BarcodeActivity.kt rename to app/src/main/java/org/metabrainz/android/ui/screens/barcode/BarcodeActivity.kt index ee5e5a12..633587b9 100644 --- a/app/src/main/java/org/metabrainz/android/presentation/features/barcode/BarcodeActivity.kt +++ b/app/src/main/java/org/metabrainz/android/ui/screens/barcode/BarcodeActivity.kt @@ -1,4 +1,4 @@ -package org.metabrainz.android.presentation.features.barcode +package org.metabrainz.android.ui.screens.barcode import android.Manifest import android.content.DialogInterface @@ -16,7 +16,7 @@ import androidx.core.content.ContextCompat import me.dm7.barcodescanner.zbar.Result import me.dm7.barcodescanner.zbar.ZBarScannerView import org.metabrainz.android.R -import org.metabrainz.android.presentation.IntentFactory +import org.metabrainz.android.util.IntentFactory class BarcodeActivity : AppCompatActivity(), ZBarScannerView.ResultHandler { private var scannerView: ZBarScannerView? = null diff --git a/app/src/main/java/org/metabrainz/android/presentation/features/barcode/BarcodeResultActivity.kt b/app/src/main/java/org/metabrainz/android/ui/screens/barcode/BarcodeResultActivity.kt similarity index 88% rename from app/src/main/java/org/metabrainz/android/presentation/features/barcode/BarcodeResultActivity.kt rename to app/src/main/java/org/metabrainz/android/ui/screens/barcode/BarcodeResultActivity.kt index eaa47b80..351b9afd 100644 --- a/app/src/main/java/org/metabrainz/android/presentation/features/barcode/BarcodeResultActivity.kt +++ b/app/src/main/java/org/metabrainz/android/ui/screens/barcode/BarcodeResultActivity.kt @@ -1,4 +1,4 @@ -package org.metabrainz.android.presentation.features.barcode +package org.metabrainz.android.ui.screens.barcode import android.content.Intent import android.graphics.drawable.ColorDrawable @@ -10,14 +10,14 @@ import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration import androidx.recyclerview.widget.LinearLayoutManager import dagger.hilt.android.AndroidEntryPoint -import org.metabrainz.android.App +import org.metabrainz.android.application.App import org.metabrainz.android.R -import org.metabrainz.android.data.sources.Constants -import org.metabrainz.android.data.sources.api.entities.mbentity.Release +import org.metabrainz.android.util.Constants import org.metabrainz.android.databinding.ActivityBarcodeResultBinding -import org.metabrainz.android.presentation.features.base.MusicBrainzActivity -import org.metabrainz.android.presentation.features.release.ReleaseActivity -import org.metabrainz.android.presentation.features.release_list.ReleaseListAdapter +import org.metabrainz.android.model.mbentity.Release +import org.metabrainz.android.ui.screens.release.ReleaseActivity +import org.metabrainz.android.ui.screens.release_list.ReleaseListAdapter +import org.metabrainz.android.ui.screens.base.MusicBrainzActivity import org.metabrainz.android.util.Resource import java.util.* diff --git a/app/src/main/java/org/metabrainz/android/presentation/features/barcode/BarcodeViewModel.kt b/app/src/main/java/org/metabrainz/android/ui/screens/barcode/BarcodeViewModel.kt similarity index 77% rename from app/src/main/java/org/metabrainz/android/presentation/features/barcode/BarcodeViewModel.kt rename to app/src/main/java/org/metabrainz/android/ui/screens/barcode/BarcodeViewModel.kt index 6490dc6f..5df13180 100644 --- a/app/src/main/java/org/metabrainz/android/presentation/features/barcode/BarcodeViewModel.kt +++ b/app/src/main/java/org/metabrainz/android/ui/screens/barcode/BarcodeViewModel.kt @@ -1,4 +1,4 @@ -package org.metabrainz.android.presentation.features.barcode +package org.metabrainz.android.ui.screens.barcode import androidx.lifecycle.LiveData import androidx.lifecycle.ViewModel @@ -6,8 +6,8 @@ import androidx.lifecycle.liveData import androidx.lifecycle.viewModelScope import dagger.hilt.android.lifecycle.HiltViewModel import kotlinx.coroutines.Dispatchers -import org.metabrainz.android.data.repository.BarcodeLookupRepository -import org.metabrainz.android.data.sources.api.entities.mbentity.Release +import org.metabrainz.android.model.mbentity.Release +import org.metabrainz.android.repository.BarcodeLookupRepository import org.metabrainz.android.util.Resource import javax.inject.Inject diff --git a/app/src/main/java/org/metabrainz/android/presentation/features/base/LookupActivity.kt b/app/src/main/java/org/metabrainz/android/ui/screens/base/LookupActivity.kt similarity index 94% rename from app/src/main/java/org/metabrainz/android/presentation/features/base/LookupActivity.kt rename to app/src/main/java/org/metabrainz/android/ui/screens/base/LookupActivity.kt index 630bd362..ff6417f4 100644 --- a/app/src/main/java/org/metabrainz/android/presentation/features/base/LookupActivity.kt +++ b/app/src/main/java/org/metabrainz/android/ui/screens/base/LookupActivity.kt @@ -1,4 +1,4 @@ -package org.metabrainz.android.presentation.features.base +package org.metabrainz.android.ui.screens.base import android.graphics.drawable.ColorDrawable import android.os.Bundle @@ -6,7 +6,7 @@ import android.view.View import androidx.viewpager2.widget.ViewPager2 import com.google.android.material.tabs.TabLayoutMediator import org.metabrainz.android.R -import org.metabrainz.android.data.sources.api.entities.mbentity.MBEntity +import org.metabrainz.android.model.mbentity.MBEntity import org.metabrainz.android.databinding.ActivityLookupBinding import org.metabrainz.android.util.Resource diff --git a/app/src/main/java/org/metabrainz/android/presentation/features/base/LookupViewModel.kt b/app/src/main/java/org/metabrainz/android/ui/screens/base/LookupViewModel.kt similarity index 70% rename from app/src/main/java/org/metabrainz/android/presentation/features/base/LookupViewModel.kt rename to app/src/main/java/org/metabrainz/android/ui/screens/base/LookupViewModel.kt index a479fe0c..649b93b4 100644 --- a/app/src/main/java/org/metabrainz/android/presentation/features/base/LookupViewModel.kt +++ b/app/src/main/java/org/metabrainz/android/ui/screens/base/LookupViewModel.kt @@ -1,16 +1,15 @@ -package org.metabrainz.android.presentation.features.base +package org.metabrainz.android.ui.screens.base import androidx.lifecycle.* import com.google.gson.Gson import kotlinx.coroutines.Dispatchers -import org.metabrainz.android.data.repository.LookupRepository -import org.metabrainz.android.data.sources.Constants -import org.metabrainz.android.data.sources.api.entities.mbentity.MBEntity -import org.metabrainz.android.data.sources.api.entities.mbentity.MBEntityType +import org.metabrainz.android.model.mbentity.MBEntityType +import org.metabrainz.android.repository.LookupRepository +import org.metabrainz.android.util.Constants import org.metabrainz.android.util.Resource import org.metabrainz.android.util.Resource.Status.SUCCESS -abstract class LookupViewModel protected constructor(val repository: LookupRepository, val entity: MBEntityType) : ViewModel() { +abstract class LookupViewModel protected constructor(val repository: LookupRepository, val entity: MBEntityType) : ViewModel() { val mbid: MutableLiveData = MutableLiveData() diff --git a/app/src/main/java/org/metabrainz/android/presentation/features/base/MusicBrainzActivity.kt b/app/src/main/java/org/metabrainz/android/ui/screens/base/MusicBrainzActivity.kt similarity index 81% rename from app/src/main/java/org/metabrainz/android/presentation/features/base/MusicBrainzActivity.kt rename to app/src/main/java/org/metabrainz/android/ui/screens/base/MusicBrainzActivity.kt index a607fd2e..96a6d67c 100644 --- a/app/src/main/java/org/metabrainz/android/presentation/features/base/MusicBrainzActivity.kt +++ b/app/src/main/java/org/metabrainz/android/ui/screens/base/MusicBrainzActivity.kt @@ -1,4 +1,4 @@ -package org.metabrainz.android.presentation.features.base +package org.metabrainz.android.ui.screens.base import android.content.ActivityNotFoundException import android.content.Context @@ -9,10 +9,10 @@ import android.view.MenuItem import android.widget.Toast import androidx.appcompat.app.AppCompatActivity import org.metabrainz.android.R -import org.metabrainz.android.presentation.Configuration -import org.metabrainz.android.presentation.IntentFactory.getSettings -import org.metabrainz.android.presentation.UserPreferences.systemLanguagePreference -import org.metabrainz.android.presentation.features.onboarding.FeaturesActivity +import org.metabrainz.android.ui.screens.onboarding.FeaturesActivity +import org.metabrainz.android.util.Configuration +import org.metabrainz.android.util.IntentFactory.getSettings +import org.metabrainz.android.util.UserPreferences.systemLanguagePreference import org.metabrainz.android.util.Utils.changeLanguage import org.metabrainz.android.util.Utils.emailIntent @@ -38,7 +38,7 @@ abstract class MusicBrainzActivity : AppCompatActivity() { sendFeedback() } R.id.menu_features -> { - startActivity(Intent(this,FeaturesActivity::class.java)) + startActivity(Intent(this, FeaturesActivity::class.java)) } R.id.menu_open_website -> { val intent = Intent(Intent.ACTION_VIEW) diff --git a/app/src/main/java/org/metabrainz/android/presentation/features/base/MusicBrainzFragment.kt b/app/src/main/java/org/metabrainz/android/ui/screens/base/MusicBrainzFragment.kt similarity index 64% rename from app/src/main/java/org/metabrainz/android/presentation/features/base/MusicBrainzFragment.kt rename to app/src/main/java/org/metabrainz/android/ui/screens/base/MusicBrainzFragment.kt index 2bc714d9..e31eece7 100644 --- a/app/src/main/java/org/metabrainz/android/presentation/features/base/MusicBrainzFragment.kt +++ b/app/src/main/java/org/metabrainz/android/ui/screens/base/MusicBrainzFragment.kt @@ -1,4 +1,4 @@ -package org.metabrainz.android.presentation.features.base +package org.metabrainz.android.ui.screens.base import androidx.fragment.app.Fragment diff --git a/app/src/main/java/org/metabrainz/android/presentation/features/base/ViewPagerAdapter.kt b/app/src/main/java/org/metabrainz/android/ui/screens/base/ViewPagerAdapter.kt similarity index 88% rename from app/src/main/java/org/metabrainz/android/presentation/features/base/ViewPagerAdapter.kt rename to app/src/main/java/org/metabrainz/android/ui/screens/base/ViewPagerAdapter.kt index fc31064f..6d6497f8 100644 --- a/app/src/main/java/org/metabrainz/android/presentation/features/base/ViewPagerAdapter.kt +++ b/app/src/main/java/org/metabrainz/android/ui/screens/base/ViewPagerAdapter.kt @@ -1,4 +1,4 @@ -package org.metabrainz.android.presentation.features.base +package org.metabrainz.android.ui.screens.base import androidx.fragment.app.Fragment import androidx.fragment.app.FragmentActivity diff --git a/app/src/main/java/org/metabrainz/android/presentation/features/collection/CollectionActivity.kt b/app/src/main/java/org/metabrainz/android/ui/screens/collection/CollectionActivity.kt similarity index 85% rename from app/src/main/java/org/metabrainz/android/presentation/features/collection/CollectionActivity.kt rename to app/src/main/java/org/metabrainz/android/ui/screens/collection/CollectionActivity.kt index 24b75e3e..36556ec9 100644 --- a/app/src/main/java/org/metabrainz/android/presentation/features/collection/CollectionActivity.kt +++ b/app/src/main/java/org/metabrainz/android/ui/screens/collection/CollectionActivity.kt @@ -1,4 +1,4 @@ -package org.metabrainz.android.presentation.features.collection +package org.metabrainz.android.ui.screens.collection import android.content.DialogInterface import android.content.Intent @@ -13,16 +13,16 @@ import androidx.recyclerview.widget.DividerItemDecoration import androidx.recyclerview.widget.LinearLayoutManager import dagger.hilt.android.AndroidEntryPoint import org.metabrainz.android.R -import org.metabrainz.android.data.sources.CollectionUtils.removeCollections -import org.metabrainz.android.data.sources.api.entities.mbentity.Collection +import org.metabrainz.android.util.CollectionUtils.removeCollections +import org.metabrainz.android.model.mbentity.Collection import org.metabrainz.android.databinding.ActivityCollectionBinding -import org.metabrainz.android.presentation.UserPreferences.privateCollectionsPreference -import org.metabrainz.android.presentation.features.base.MusicBrainzActivity -import org.metabrainz.android.presentation.features.dashboard.DashboardActivity -import org.metabrainz.android.presentation.features.login.LoginActivity -import org.metabrainz.android.presentation.features.login.LoginSharedPreferences -import org.metabrainz.android.presentation.features.login.LoginSharedPreferences.loginStatus -import org.metabrainz.android.presentation.features.login.LoginSharedPreferences.username +import org.metabrainz.android.util.UserPreferences.privateCollectionsPreference +import org.metabrainz.android.ui.screens.login.LoginActivity +import org.metabrainz.android.ui.screens.login.LoginSharedPreferences +import org.metabrainz.android.ui.screens.login.LoginSharedPreferences.loginStatus +import org.metabrainz.android.ui.screens.login.LoginSharedPreferences.username +import org.metabrainz.android.ui.screens.base.MusicBrainzActivity +import org.metabrainz.android.ui.screens.dashboard.DashboardActivity import org.metabrainz.android.util.Resource import java.util.* diff --git a/app/src/main/java/org/metabrainz/android/presentation/features/collection/CollectionDetailsActivity.kt b/app/src/main/java/org/metabrainz/android/ui/screens/collection/CollectionDetailsActivity.kt similarity index 84% rename from app/src/main/java/org/metabrainz/android/presentation/features/collection/CollectionDetailsActivity.kt rename to app/src/main/java/org/metabrainz/android/ui/screens/collection/CollectionDetailsActivity.kt index dc149f49..d4c270c4 100644 --- a/app/src/main/java/org/metabrainz/android/presentation/features/collection/CollectionDetailsActivity.kt +++ b/app/src/main/java/org/metabrainz/android/ui/screens/collection/CollectionDetailsActivity.kt @@ -1,4 +1,4 @@ -package org.metabrainz.android.presentation.features.collection +package org.metabrainz.android.ui.screens.collection import android.graphics.drawable.ColorDrawable import android.net.Uri @@ -9,12 +9,12 @@ import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.LinearLayoutManager import dagger.hilt.android.AndroidEntryPoint import org.metabrainz.android.R -import org.metabrainz.android.data.sources.Constants -import org.metabrainz.android.data.sources.api.entities.mbentity.MBEntityType import org.metabrainz.android.databinding.ActivityCollectionDetailsBinding -import org.metabrainz.android.presentation.features.adapters.ResultAdapter -import org.metabrainz.android.presentation.features.adapters.ResultItem -import org.metabrainz.android.presentation.features.base.MusicBrainzActivity +import org.metabrainz.android.model.mbentity.MBEntityType +import org.metabrainz.android.ui.adapters.ResultAdapter +import org.metabrainz.android.ui.adapters.ResultItem +import org.metabrainz.android.ui.screens.base.MusicBrainzActivity +import org.metabrainz.android.util.Constants import org.metabrainz.android.util.Resource import java.util.* @@ -31,7 +31,7 @@ class CollectionDetailsActivity : MusicBrainzActivity() { private var entity: MBEntityType? = null private var collectionResults: MutableList? = null - public override fun onCreate(savedInstanceState: Bundle?) { + override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) binding = ActivityCollectionDetailsBinding.inflate(layoutInflater) setContentView(binding.root) @@ -49,7 +49,11 @@ class CollectionDetailsActivity : MusicBrainzActivity() { binding.recyclerView.adapter = adapter binding.recyclerView.layoutManager = LinearLayoutManager(this) binding.recyclerView.visibility = View.GONE - viewModel!!.fetchCollectionDetails(entity!!, id!!).observe(this, { resource: Resource>? -> setResults(resource) }) + viewModel!!.fetchCollectionDetails(entity!!, id!!).observe(this) { resource: Resource>? -> + setResults( + resource + ) + } } private fun refresh() { diff --git a/app/src/main/java/org/metabrainz/android/presentation/features/collection/CollectionListAdapter.kt b/app/src/main/java/org/metabrainz/android/ui/screens/collection/CollectionListAdapter.kt similarity index 79% rename from app/src/main/java/org/metabrainz/android/presentation/features/collection/CollectionListAdapter.kt rename to app/src/main/java/org/metabrainz/android/ui/screens/collection/CollectionListAdapter.kt index 7140ef33..4cc85ba8 100644 --- a/app/src/main/java/org/metabrainz/android/presentation/features/collection/CollectionListAdapter.kt +++ b/app/src/main/java/org/metabrainz/android/ui/screens/collection/CollectionListAdapter.kt @@ -1,4 +1,4 @@ -package org.metabrainz.android.presentation.features.collection +package org.metabrainz.android.ui.screens.collection import android.content.Context import android.content.Intent @@ -6,14 +6,13 @@ import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import androidx.recyclerview.widget.RecyclerView -import org.metabrainz.android.data.sources.CollectionUtils.getCollectionEntityType -import org.metabrainz.android.data.sources.Constants -import org.metabrainz.android.data.sources.api.entities.mbentity.Collection +import org.metabrainz.android.util.CollectionUtils.getCollectionEntityType +import org.metabrainz.android.util.Constants +import org.metabrainz.android.model.mbentity.Collection import org.metabrainz.android.databinding.ItemCollectionBinding -import org.metabrainz.android.presentation.features.collection.CollectionListAdapter.CollectionViewHolder internal class CollectionListAdapter(private val collections: List) : - RecyclerView.Adapter() { + RecyclerView.Adapter() { override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): CollectionViewHolder { val inflater = parent.context.getSystemService(Context.LAYOUT_INFLATER_SERVICE) as LayoutInflater diff --git a/app/src/main/java/org/metabrainz/android/presentation/features/collection/CollectionViewModel.kt b/app/src/main/java/org/metabrainz/android/ui/screens/collection/CollectionViewModel.kt similarity index 71% rename from app/src/main/java/org/metabrainz/android/presentation/features/collection/CollectionViewModel.kt rename to app/src/main/java/org/metabrainz/android/ui/screens/collection/CollectionViewModel.kt index 96cefcc3..9bb1dd78 100644 --- a/app/src/main/java/org/metabrainz/android/presentation/features/collection/CollectionViewModel.kt +++ b/app/src/main/java/org/metabrainz/android/ui/screens/collection/CollectionViewModel.kt @@ -1,4 +1,4 @@ -package org.metabrainz.android.presentation.features.collection +package org.metabrainz.android.ui.screens.collection import androidx.lifecycle.LiveData import androidx.lifecycle.ViewModel @@ -6,10 +6,9 @@ import androidx.lifecycle.liveData import androidx.lifecycle.viewModelScope import dagger.hilt.android.lifecycle.HiltViewModel import kotlinx.coroutines.Dispatchers -import org.metabrainz.android.data.repository.CollectionRepository -import org.metabrainz.android.data.sources.api.entities.mbentity.Collection -import org.metabrainz.android.data.sources.api.entities.mbentity.MBEntityType -import org.metabrainz.android.presentation.features.adapters.ResultItem +import org.metabrainz.android.model.mbentity.MBEntityType +import org.metabrainz.android.repository.CollectionRepository +import org.metabrainz.android.ui.adapters.ResultItem import org.metabrainz.android.util.Resource import org.metabrainz.android.util.Utils.toResultItemsList import javax.inject.Inject @@ -17,7 +16,7 @@ import javax.inject.Inject @HiltViewModel class CollectionViewModel @Inject constructor(val repository: CollectionRepository) : ViewModel() { - fun fetchCollectionData(editor: String, fetchPrivate: Boolean): LiveData>> { + fun fetchCollectionData(editor: String, fetchPrivate: Boolean): LiveData>> { return liveData(viewModelScope.coroutineContext + Dispatchers.IO) { emit(repository.fetchCollections(editor, fetchPrivate)) } diff --git a/app/src/main/java/org/metabrainz/android/presentation/features/dashboard/BackLayerContent.kt b/app/src/main/java/org/metabrainz/android/ui/screens/dashboard/BackLayerContent.kt similarity index 95% rename from app/src/main/java/org/metabrainz/android/presentation/features/dashboard/BackLayerContent.kt rename to app/src/main/java/org/metabrainz/android/ui/screens/dashboard/BackLayerContent.kt index 7c346494..755731fa 100644 --- a/app/src/main/java/org/metabrainz/android/presentation/features/dashboard/BackLayerContent.kt +++ b/app/src/main/java/org/metabrainz/android/ui/screens/dashboard/BackLayerContent.kt @@ -1,4 +1,4 @@ -package org.metabrainz.android.presentation.features.dashboard +package org.metabrainz.android.ui.screens.dashboard import android.app.Activity import android.content.Context @@ -23,11 +23,11 @@ import androidx.compose.ui.text.withStyle import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp import org.metabrainz.android.R -import org.metabrainz.android.presentation.features.collection.CollectionActivity -import org.metabrainz.android.presentation.features.newsbrainz.NewsBrainzActivity -import org.metabrainz.android.presentation.features.search.SearchActivity -import org.metabrainz.android.presentation.theme.mb_orange -import org.metabrainz.android.presentation.theme.mb_purple +import org.metabrainz.android.ui.screens.search.SearchActivity +import org.metabrainz.android.ui.theme.mb_orange +import org.metabrainz.android.ui.theme.mb_purple +import org.metabrainz.android.ui.screens.collection.CollectionActivity +import org.metabrainz.android.ui.screens.newsbrainz.NewsBrainzActivity @Composable fun BackLayerContent(activity: Activity, applicationContext: Context, padding: PaddingValues) { diff --git a/app/src/main/java/org/metabrainz/android/presentation/features/dashboard/DashboardActivity.kt b/app/src/main/java/org/metabrainz/android/ui/screens/dashboard/DashboardActivity.kt similarity index 85% rename from app/src/main/java/org/metabrainz/android/presentation/features/dashboard/DashboardActivity.kt rename to app/src/main/java/org/metabrainz/android/ui/screens/dashboard/DashboardActivity.kt index 39b8375a..2b36c5ae 100644 --- a/app/src/main/java/org/metabrainz/android/presentation/features/dashboard/DashboardActivity.kt +++ b/app/src/main/java/org/metabrainz/android/ui/screens/dashboard/DashboardActivity.kt @@ -1,4 +1,4 @@ -package org.metabrainz.android.presentation.features.dashboard +package org.metabrainz.android.ui.screens.dashboard import android.content.Intent import android.os.Bundle @@ -12,10 +12,10 @@ import androidx.core.splashscreen.SplashScreen.Companion.installSplashScreen import androidx.preference.PreferenceManager import dagger.hilt.android.AndroidEntryPoint import org.metabrainz.android.R -import org.metabrainz.android.presentation.components.BottomNavigationBar -import org.metabrainz.android.presentation.components.TopAppBar -import org.metabrainz.android.presentation.features.onboarding.FeaturesActivity -import org.metabrainz.android.presentation.theme.MusicBrainzTheme +import org.metabrainz.android.ui.components.BottomNavigationBar +import org.metabrainz.android.ui.components.TopAppBar +import org.metabrainz.android.ui.theme.MusicBrainzTheme +import org.metabrainz.android.ui.screens.onboarding.FeaturesActivity @AndroidEntryPoint class DashboardActivity : ComponentActivity() { @@ -29,7 +29,7 @@ class DashboardActivity : ComponentActivity() { finish() } setContent { - MusicBrainzTheme() { + MusicBrainzTheme { Scaffold( topBar = { TopAppBar(activity = this, title = "Home") }, bottomBar = { BottomNavigationBar(activity = this) }, diff --git a/app/src/main/java/org/metabrainz/android/presentation/features/dashboard/DonateActivity.kt b/app/src/main/java/org/metabrainz/android/ui/screens/dashboard/DonateActivity.kt similarity index 85% rename from app/src/main/java/org/metabrainz/android/presentation/features/dashboard/DonateActivity.kt rename to app/src/main/java/org/metabrainz/android/ui/screens/dashboard/DonateActivity.kt index c0d5f573..380f326c 100644 --- a/app/src/main/java/org/metabrainz/android/presentation/features/dashboard/DonateActivity.kt +++ b/app/src/main/java/org/metabrainz/android/ui/screens/dashboard/DonateActivity.kt @@ -1,4 +1,4 @@ -package org.metabrainz.android.presentation.features.dashboard +package org.metabrainz.android.ui.screens.dashboard import android.net.Uri import android.os.Bundle @@ -9,7 +9,7 @@ import org.metabrainz.android.R class DonateActivity : AppCompatActivity() { public override fun onCreate(savedInstanceState: Bundle?) { - requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS) + supportRequestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS) super.onCreate(savedInstanceState) val customTabsIntent = CustomTabsIntent.Builder() .setToolbarColor(resources.getColor(R.color.colorPrimaryDark)) diff --git a/app/src/main/java/org/metabrainz/android/presentation/features/label/LabelActivity.kt b/app/src/main/java/org/metabrainz/android/ui/screens/label/LabelActivity.kt similarity index 61% rename from app/src/main/java/org/metabrainz/android/presentation/features/label/LabelActivity.kt rename to app/src/main/java/org/metabrainz/android/ui/screens/label/LabelActivity.kt index 21fffc03..e51108e7 100644 --- a/app/src/main/java/org/metabrainz/android/presentation/features/label/LabelActivity.kt +++ b/app/src/main/java/org/metabrainz/android/ui/screens/label/LabelActivity.kt @@ -1,21 +1,21 @@ -package org.metabrainz.android.presentation.features.label +package org.metabrainz.android.ui.screens.label import android.net.Uri import android.os.Bundle import androidx.activity.viewModels import androidx.lifecycle.SavedStateViewModelFactory import dagger.hilt.android.AndroidEntryPoint -import org.metabrainz.android.App -import org.metabrainz.android.data.sources.Constants -import org.metabrainz.android.data.sources.api.entities.mbentity.Label -import org.metabrainz.android.presentation.features.base.LookupActivity -import org.metabrainz.android.presentation.features.base.MusicBrainzFragment -import org.metabrainz.android.presentation.features.links.LinksFragment -import org.metabrainz.android.presentation.features.links.LinksViewModel -import org.metabrainz.android.presentation.features.release_list.ReleaseListFragment -import org.metabrainz.android.presentation.features.release_list.ReleaseListViewModel -import org.metabrainz.android.presentation.features.userdata.UserDataFragment -import org.metabrainz.android.presentation.features.userdata.UserViewModel +import org.metabrainz.android.application.App +import org.metabrainz.android.util.Constants +import org.metabrainz.android.model.mbentity.Label +import org.metabrainz.android.ui.screens.base.LookupActivity +import org.metabrainz.android.ui.screens.base.MusicBrainzFragment +import org.metabrainz.android.ui.screens.links.LinksFragment +import org.metabrainz.android.ui.screens.links.LinksViewModel +import org.metabrainz.android.ui.screens.release_list.ReleaseListFragment +import org.metabrainz.android.ui.screens.release_list.ReleaseListViewModel +import org.metabrainz.android.ui.screens.userdata.UserDataFragment +import org.metabrainz.android.ui.screens.userdata.UserViewModel @AndroidEntryPoint class LabelActivity : LookupActivity