From 8cef738ead376a3c18e0a4caac34249f87c98a08 Mon Sep 17 00:00:00 2001 From: Remco Janssen Date: Wed, 24 Jun 2020 00:16:15 +0200 Subject: [PATCH 1/7] #14: Moved all sounds to dynamic feature --- android/DartsScorecard/app/build.gradle | 4 +- .../dartsscorecard/di/play/Play01Module.kt | 39 ++-- .../dartsscorecard/play/Play01ViewModel.kt | 6 +- .../settings/SettingsViewModel.kt | 4 +- .../app/src/main/res/values/strings.xml | 1 + .../di/play/Play01ModuleTest.kt | 10 +- .../play/Play01ViewModelMasterCallerTest.kt | 10 +- .../play/Play01ViewModelRevancheTest.kt | 16 +- .../play/Play01ViewModelTest.kt | 14 +- .../play/Play01ViewModelUndoTest.kt | 16 +- .../data/sound/LocalSoundRepositoryTest.kt | 16 +- .../nl/entreco/data/sound/SoundMapperTest.kt | 4 +- .../{play => }/mastercaller/MasterCaller.kt | 16 +- .../mastercaller/MasterCallerRequest.kt | 10 +- .../{play => }/mastercaller/MusicPlayer.kt | 4 +- .../MusicRepository.kt | 2 +- .../domain/{play => }/mastercaller/Sound.kt | 2 +- .../SoundRepository.kt | 4 +- .../mastercaller/ToggleMusicUsecase.kt | 7 +- .../mastercaller/ToggleSoundUsecase.kt | 6 +- .../mastercaller/MasterCallerRequestTest.kt | 210 ++++++++++++++++++ .../mastercaller/MasterCallerTest.kt | 3 +- .../mastercaller/ToggleSoundUsecaseTest.kt | 2 +- .../mastercaller/MasterCallerRequestTest.kt | 210 ------------------ .../gradle/wrapper/gradle-wrapper.properties | 4 +- .../scripts/dependencies.gradle | 2 +- android/DartsScorecard/settings.gradle | 1 + android/DartsScorecard/sounds/.gitignore | 1 + android/DartsScorecard/sounds/build.gradle | 34 +++ .../sounds/ExampleInstrumentedTest.kt | 24 ++ .../sounds/src/main/AndroidManifest.xml | 14 ++ .../sounds}/LocalMusicRepository.kt | 4 +- .../sounds}/LocalSoundRepository.kt | 26 ++- .../dartsscorecard/sounds/OldDiModule.kt | 36 +++ .../dartsscorecard/sounds}/SoundMapper.kt | 5 +- .../src/main/res/raw/dsc_pro0.ogg | Bin .../src/main/res/raw/dsc_pro1.ogg | Bin .../src/main/res/raw/dsc_pro10.ogg | Bin .../src/main/res/raw/dsc_pro100.ogg | Bin .../src/main/res/raw/dsc_pro101.ogg | Bin .../src/main/res/raw/dsc_pro102.ogg | Bin .../src/main/res/raw/dsc_pro103.ogg | Bin .../src/main/res/raw/dsc_pro104.ogg | Bin .../src/main/res/raw/dsc_pro105.ogg | Bin .../src/main/res/raw/dsc_pro106.ogg | Bin .../src/main/res/raw/dsc_pro107.ogg | Bin .../src/main/res/raw/dsc_pro108.ogg | Bin .../src/main/res/raw/dsc_pro109.ogg | Bin .../src/main/res/raw/dsc_pro11.ogg | Bin .../src/main/res/raw/dsc_pro110.ogg | Bin .../src/main/res/raw/dsc_pro111.ogg | Bin .../src/main/res/raw/dsc_pro112.ogg | Bin .../src/main/res/raw/dsc_pro113.ogg | Bin .../src/main/res/raw/dsc_pro114.ogg | Bin .../src/main/res/raw/dsc_pro115.ogg | Bin .../src/main/res/raw/dsc_pro116.ogg | Bin .../src/main/res/raw/dsc_pro117.ogg | Bin .../src/main/res/raw/dsc_pro118.ogg | Bin .../src/main/res/raw/dsc_pro119.ogg | Bin .../src/main/res/raw/dsc_pro12.ogg | Bin .../src/main/res/raw/dsc_pro120.ogg | Bin .../src/main/res/raw/dsc_pro121.ogg | Bin .../src/main/res/raw/dsc_pro122.ogg | Bin .../src/main/res/raw/dsc_pro123.ogg | Bin .../src/main/res/raw/dsc_pro124.ogg | Bin .../src/main/res/raw/dsc_pro125.ogg | Bin .../src/main/res/raw/dsc_pro126.ogg | Bin .../src/main/res/raw/dsc_pro127.ogg | Bin .../src/main/res/raw/dsc_pro128.ogg | Bin .../src/main/res/raw/dsc_pro129.ogg | Bin .../src/main/res/raw/dsc_pro13.ogg | Bin .../src/main/res/raw/dsc_pro130.ogg | Bin .../src/main/res/raw/dsc_pro131.ogg | Bin .../src/main/res/raw/dsc_pro132.ogg | Bin .../src/main/res/raw/dsc_pro133.ogg | Bin .../src/main/res/raw/dsc_pro134.ogg | Bin .../src/main/res/raw/dsc_pro135.ogg | Bin .../src/main/res/raw/dsc_pro136.ogg | Bin .../src/main/res/raw/dsc_pro137.ogg | Bin .../src/main/res/raw/dsc_pro138.ogg | Bin .../src/main/res/raw/dsc_pro139.ogg | Bin .../src/main/res/raw/dsc_pro14.ogg | Bin .../src/main/res/raw/dsc_pro140.ogg | Bin .../src/main/res/raw/dsc_pro141.ogg | Bin .../src/main/res/raw/dsc_pro142.ogg | Bin .../src/main/res/raw/dsc_pro143.ogg | Bin .../src/main/res/raw/dsc_pro144.ogg | Bin .../src/main/res/raw/dsc_pro145.ogg | Bin .../src/main/res/raw/dsc_pro146.ogg | Bin .../src/main/res/raw/dsc_pro147.ogg | Bin .../src/main/res/raw/dsc_pro148.ogg | Bin .../src/main/res/raw/dsc_pro149.ogg | Bin .../src/main/res/raw/dsc_pro15.ogg | Bin .../src/main/res/raw/dsc_pro150.ogg | Bin .../src/main/res/raw/dsc_pro151.ogg | Bin .../src/main/res/raw/dsc_pro152.ogg | Bin .../src/main/res/raw/dsc_pro153.ogg | Bin .../src/main/res/raw/dsc_pro154.ogg | Bin .../src/main/res/raw/dsc_pro155.ogg | Bin .../src/main/res/raw/dsc_pro156.ogg | Bin .../src/main/res/raw/dsc_pro157.ogg | Bin .../src/main/res/raw/dsc_pro158.ogg | Bin .../src/main/res/raw/dsc_pro159.ogg | Bin .../src/main/res/raw/dsc_pro16.ogg | Bin .../src/main/res/raw/dsc_pro160.ogg | Bin .../src/main/res/raw/dsc_pro161.ogg | Bin .../src/main/res/raw/dsc_pro162.ogg | Bin .../src/main/res/raw/dsc_pro163.ogg | Bin .../src/main/res/raw/dsc_pro164.ogg | Bin .../src/main/res/raw/dsc_pro165.ogg | Bin .../src/main/res/raw/dsc_pro166.ogg | Bin .../src/main/res/raw/dsc_pro167.ogg | Bin .../src/main/res/raw/dsc_pro168.ogg | Bin .../src/main/res/raw/dsc_pro169.ogg | Bin .../src/main/res/raw/dsc_pro17.ogg | Bin .../src/main/res/raw/dsc_pro170.ogg | Bin .../src/main/res/raw/dsc_pro171.ogg | Bin .../src/main/res/raw/dsc_pro174.ogg | Bin .../src/main/res/raw/dsc_pro177.ogg | Bin .../src/main/res/raw/dsc_pro18.ogg | Bin .../src/main/res/raw/dsc_pro180.ogg | Bin .../src/main/res/raw/dsc_pro19.ogg | Bin .../src/main/res/raw/dsc_pro2.ogg | Bin .../src/main/res/raw/dsc_pro20.ogg | Bin .../src/main/res/raw/dsc_pro21.ogg | Bin .../src/main/res/raw/dsc_pro22.ogg | Bin .../src/main/res/raw/dsc_pro23.ogg | Bin .../src/main/res/raw/dsc_pro24.ogg | Bin .../src/main/res/raw/dsc_pro25.ogg | Bin .../src/main/res/raw/dsc_pro26.ogg | Bin .../src/main/res/raw/dsc_pro27.ogg | Bin .../src/main/res/raw/dsc_pro28.ogg | Bin .../src/main/res/raw/dsc_pro29.ogg | Bin .../src/main/res/raw/dsc_pro3.ogg | Bin .../src/main/res/raw/dsc_pro30.ogg | Bin .../src/main/res/raw/dsc_pro31.ogg | Bin .../src/main/res/raw/dsc_pro32.ogg | Bin .../src/main/res/raw/dsc_pro33.ogg | Bin .../src/main/res/raw/dsc_pro34.ogg | Bin .../src/main/res/raw/dsc_pro35.ogg | Bin .../src/main/res/raw/dsc_pro36.ogg | Bin .../src/main/res/raw/dsc_pro37.ogg | Bin .../src/main/res/raw/dsc_pro38.ogg | Bin .../src/main/res/raw/dsc_pro39.ogg | Bin .../src/main/res/raw/dsc_pro4.ogg | Bin .../src/main/res/raw/dsc_pro40.ogg | Bin .../src/main/res/raw/dsc_pro41.ogg | Bin .../src/main/res/raw/dsc_pro42.ogg | Bin .../src/main/res/raw/dsc_pro43.ogg | Bin .../src/main/res/raw/dsc_pro44.ogg | Bin .../src/main/res/raw/dsc_pro45.ogg | Bin .../src/main/res/raw/dsc_pro46.ogg | Bin .../src/main/res/raw/dsc_pro47.ogg | Bin .../src/main/res/raw/dsc_pro48.ogg | Bin .../src/main/res/raw/dsc_pro49.ogg | Bin .../src/main/res/raw/dsc_pro5.ogg | Bin .../src/main/res/raw/dsc_pro50.ogg | Bin .../src/main/res/raw/dsc_pro51.ogg | Bin .../src/main/res/raw/dsc_pro52.ogg | Bin .../src/main/res/raw/dsc_pro53.ogg | Bin .../src/main/res/raw/dsc_pro54.ogg | Bin .../src/main/res/raw/dsc_pro55.ogg | Bin .../src/main/res/raw/dsc_pro56.ogg | Bin .../src/main/res/raw/dsc_pro57.ogg | Bin .../src/main/res/raw/dsc_pro58.ogg | Bin .../src/main/res/raw/dsc_pro59.ogg | Bin .../src/main/res/raw/dsc_pro6.ogg | Bin .../src/main/res/raw/dsc_pro60.ogg | Bin .../src/main/res/raw/dsc_pro61.ogg | Bin .../src/main/res/raw/dsc_pro62.ogg | Bin .../src/main/res/raw/dsc_pro63.ogg | Bin .../src/main/res/raw/dsc_pro64.ogg | Bin .../src/main/res/raw/dsc_pro65.ogg | Bin .../src/main/res/raw/dsc_pro66.ogg | Bin .../src/main/res/raw/dsc_pro67.ogg | Bin .../src/main/res/raw/dsc_pro68.ogg | Bin .../src/main/res/raw/dsc_pro69.ogg | Bin .../src/main/res/raw/dsc_pro7.ogg | Bin .../src/main/res/raw/dsc_pro70.ogg | Bin .../src/main/res/raw/dsc_pro71.ogg | Bin .../src/main/res/raw/dsc_pro72.ogg | Bin .../src/main/res/raw/dsc_pro73.ogg | Bin .../src/main/res/raw/dsc_pro74.ogg | Bin .../src/main/res/raw/dsc_pro75.ogg | Bin .../src/main/res/raw/dsc_pro76.ogg | Bin .../src/main/res/raw/dsc_pro77.ogg | Bin .../src/main/res/raw/dsc_pro78.ogg | Bin .../src/main/res/raw/dsc_pro79.ogg | Bin .../src/main/res/raw/dsc_pro8.ogg | Bin .../src/main/res/raw/dsc_pro80.ogg | Bin .../src/main/res/raw/dsc_pro81.ogg | Bin .../src/main/res/raw/dsc_pro82.ogg | Bin .../src/main/res/raw/dsc_pro83.ogg | Bin .../src/main/res/raw/dsc_pro84.ogg | Bin .../src/main/res/raw/dsc_pro85.ogg | Bin .../src/main/res/raw/dsc_pro86.ogg | Bin .../src/main/res/raw/dsc_pro87.ogg | Bin .../src/main/res/raw/dsc_pro88.ogg | Bin .../src/main/res/raw/dsc_pro89.ogg | Bin .../src/main/res/raw/dsc_pro9.ogg | Bin .../src/main/res/raw/dsc_pro90.ogg | Bin .../src/main/res/raw/dsc_pro91.ogg | Bin .../src/main/res/raw/dsc_pro92.ogg | Bin .../src/main/res/raw/dsc_pro93.ogg | Bin .../src/main/res/raw/dsc_pro94.ogg | Bin .../src/main/res/raw/dsc_pro95.ogg | Bin .../src/main/res/raw/dsc_pro96.ogg | Bin .../src/main/res/raw/dsc_pro97.ogg | Bin .../src/main/res/raw/dsc_pro98.ogg | Bin .../src/main/res/raw/dsc_pro99.ogg | Bin .../src/main/res/raw/dsc_profirstleg.ogg | Bin .../src/main/res/raw/dsc_profourthleg.ogg | Bin .../src/main/res/raw/dsc_progameon.ogg | Bin .../src/main/res/raw/dsc_progameshot.ogg | Bin .../src/main/res/raw/dsc_proleg.ogg | Bin .../src/main/res/raw/dsc_proletsplaydarts.ogg | Bin .../src/main/res/raw/dsc_pronoscore.ogg | Bin .../src/main/res/raw/dsc_prosecondleg.ogg | Bin .../src/main/res/raw/dsc_proset.ogg | Bin .../src/main/res/raw/dsc_prothirdleg.ogg | Bin .../src/main/res/raw/dsc_prowhatagame.ogg | Bin .../src/main/res/raw/pdc_tune.ogg | Bin .../dartsscorecard/sounds/ExampleUnitTest.kt | 17 ++ 223 files changed, 449 insertions(+), 335 deletions(-) rename android/DartsScorecard/domain/src/main/java/nl/entreco/domain/{play => }/mastercaller/MasterCaller.kt (55%) rename android/DartsScorecard/domain/src/main/java/nl/entreco/domain/{play => }/mastercaller/MasterCallerRequest.kt (94%) rename android/DartsScorecard/domain/src/main/java/nl/entreco/domain/{play => }/mastercaller/MusicPlayer.kt (83%) rename android/DartsScorecard/domain/src/main/java/nl/entreco/domain/{repository => mastercaller}/MusicRepository.kt (70%) rename android/DartsScorecard/domain/src/main/java/nl/entreco/domain/{play => }/mastercaller/Sound.kt (98%) rename android/DartsScorecard/domain/src/main/java/nl/entreco/domain/{repository => mastercaller}/SoundRepository.kt (69%) rename android/DartsScorecard/domain/src/main/java/nl/entreco/domain/{play => }/mastercaller/ToggleMusicUsecase.kt (76%) rename android/DartsScorecard/domain/src/main/java/nl/entreco/domain/{play => }/mastercaller/ToggleSoundUsecase.kt (90%) create mode 100644 android/DartsScorecard/domain/src/test/java/nl/entreco/domain/mastercaller/MasterCallerRequestTest.kt rename android/DartsScorecard/domain/src/test/java/nl/entreco/domain/{play => }/mastercaller/MasterCallerTest.kt (95%) rename android/DartsScorecard/domain/src/test/java/nl/entreco/domain/{play => }/mastercaller/ToggleSoundUsecaseTest.kt (97%) delete mode 100644 android/DartsScorecard/domain/src/test/java/nl/entreco/domain/play/mastercaller/MasterCallerRequestTest.kt create mode 100644 android/DartsScorecard/sounds/.gitignore create mode 100644 android/DartsScorecard/sounds/build.gradle create mode 100644 android/DartsScorecard/sounds/src/androidTest/java/nl/entreco/dartsscorecard/sounds/ExampleInstrumentedTest.kt create mode 100644 android/DartsScorecard/sounds/src/main/AndroidManifest.xml rename android/DartsScorecard/{data/src/main/java/nl/entreco/data/sound => sounds/src/main/java/nl/entreco/dartsscorecard/sounds}/LocalMusicRepository.kt (80%) rename android/DartsScorecard/{data/src/main/java/nl/entreco/data/sound => sounds/src/main/java/nl/entreco/dartsscorecard/sounds}/LocalSoundRepository.kt (68%) create mode 100644 android/DartsScorecard/sounds/src/main/java/nl/entreco/dartsscorecard/sounds/OldDiModule.kt rename android/DartsScorecard/{data/src/main/java/nl/entreco/data/sound => sounds/src/main/java/nl/entreco/dartsscorecard/sounds}/SoundMapper.kt (98%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro0.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro1.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro10.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro100.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro101.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro102.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro103.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro104.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro105.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro106.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro107.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro108.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro109.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro11.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro110.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro111.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro112.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro113.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro114.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro115.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro116.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro117.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro118.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro119.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro12.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro120.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro121.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro122.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro123.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro124.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro125.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro126.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro127.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro128.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro129.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro13.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro130.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro131.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro132.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro133.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro134.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro135.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro136.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro137.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro138.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro139.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro14.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro140.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro141.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro142.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro143.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro144.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro145.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro146.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro147.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro148.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro149.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro15.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro150.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro151.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro152.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro153.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro154.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro155.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro156.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro157.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro158.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro159.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro16.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro160.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro161.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro162.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro163.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro164.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro165.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro166.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro167.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro168.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro169.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro17.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro170.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro171.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro174.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro177.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro18.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro180.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro19.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro2.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro20.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro21.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro22.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro23.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro24.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro25.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro26.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro27.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro28.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro29.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro3.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro30.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro31.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro32.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro33.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro34.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro35.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro36.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro37.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro38.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro39.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro4.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro40.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro41.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro42.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro43.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro44.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro45.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro46.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro47.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro48.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro49.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro5.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro50.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro51.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro52.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro53.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro54.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro55.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro56.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro57.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro58.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro59.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro6.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro60.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro61.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro62.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro63.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro64.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro65.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro66.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro67.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro68.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro69.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro7.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro70.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro71.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro72.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro73.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro74.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro75.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro76.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro77.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro78.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro79.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro8.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro80.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro81.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro82.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro83.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro84.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro85.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro86.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro87.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro88.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro89.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro9.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro90.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro91.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro92.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro93.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro94.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro95.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro96.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro97.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro98.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro99.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_profirstleg.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_profourthleg.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_progameon.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_progameshot.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_proleg.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_proletsplaydarts.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pronoscore.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_prosecondleg.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_proset.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_prothirdleg.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_prowhatagame.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/pdc_tune.ogg (100%) create mode 100644 android/DartsScorecard/sounds/src/test/java/nl/entreco/dartsscorecard/sounds/ExampleUnitTest.kt diff --git a/android/DartsScorecard/app/build.gradle b/android/DartsScorecard/app/build.gradle index 8a8107d9..ff37b993 100644 --- a/android/DartsScorecard/app/build.gradle +++ b/android/DartsScorecard/app/build.gradle @@ -20,7 +20,7 @@ android { applicationIdSuffix ".dev" } release { - shrinkResources true + shrinkResources false // Resource shrinker cannot be used for multi-apk applications } } @@ -28,6 +28,8 @@ android { jniLibs.srcDir 'libs' jni.srcDirs = [] //disable automatic ndk-build call } + + dynamicFeatures = [':sounds'] } dependencies { diff --git a/android/DartsScorecard/app/src/main/java/nl/entreco/dartsscorecard/di/play/Play01Module.kt b/android/DartsScorecard/app/src/main/java/nl/entreco/dartsscorecard/di/play/Play01Module.kt index 821eec8d..ca816b57 100644 --- a/android/DartsScorecard/app/src/main/java/nl/entreco/dartsscorecard/di/play/Play01Module.kt +++ b/android/DartsScorecard/app/src/main/java/nl/entreco/dartsscorecard/di/play/Play01Module.kt @@ -2,23 +2,17 @@ package nl.entreco.dartsscorecard.di.play import android.content.ComponentName import android.content.Context -import android.media.MediaPlayer -import android.media.SoundPool import com.google.firebase.remoteconfig.FirebaseRemoteConfig import dagger.Module import dagger.Provides -import nl.entreco.dartsscorecard.R import nl.entreco.dartsscorecard.archive.ArchiveJobService import nl.entreco.dartsscorecard.archive.ArchiveServiceLauncher import nl.entreco.dartsscorecard.play.Play01Activity import nl.entreco.data.description.RemoteMatchDescriptionRepository -import nl.entreco.data.sound.LocalMusicRepository -import nl.entreco.data.sound.LocalSoundRepository -import nl.entreco.data.sound.SoundMapper -import nl.entreco.domain.repository.AudioPrefRepository +import nl.entreco.domain.mastercaller.MusicRepository +import nl.entreco.domain.mastercaller.Sound +import nl.entreco.domain.mastercaller.SoundRepository import nl.entreco.domain.repository.MatchDescriptionRepository -import nl.entreco.domain.repository.MusicRepository -import nl.entreco.domain.repository.SoundRepository import nl.entreco.shared.scopes.ActivityScope import nl.entreco.shared.scopes.ApplicationScope @@ -36,23 +30,24 @@ class Play01Module(private val activity: Play01Activity) { @Provides @Play01Scope - fun provideSoundMapper(): SoundMapper { - return SoundMapper() + fun provideSoundRepository(): SoundRepository { + // TODO Provide original Repo if Dynamic Feature sounds is installed + return object : SoundRepository { + override fun play(sound: Sound) {} + override fun release() {} + } } @Provides @Play01Scope - fun provideSoundRepository(@ActivityScope context: Context, @Play01Scope mapper: SoundMapper, @Play01Scope prefs: AudioPrefRepository): SoundRepository { - val soundPool = SoundPool.Builder().setMaxStreams(2).build() - return LocalSoundRepository(context, soundPool, prefs, mapper) - } - - @Provides - @Play01Scope - fun provideMusicRepository(@ActivityScope context: Context): MusicRepository { - val mediaPlayer = MediaPlayer.create(context, R.raw.pdc_tune) - mediaPlayer.isLooping = true - return LocalMusicRepository(mediaPlayer) + fun provideMusicRepository(): MusicRepository { + // TODO Provide original Repo if Dynamic Feature sounds is installed + return object : MusicRepository { + override fun play() {} + override fun pause() {} + override fun resume() {} + override fun stop() {} + } } @Provides diff --git a/android/DartsScorecard/app/src/main/java/nl/entreco/dartsscorecard/play/Play01ViewModel.kt b/android/DartsScorecard/app/src/main/java/nl/entreco/dartsscorecard/play/Play01ViewModel.kt index 70c73062..6771ac5d 100644 --- a/android/DartsScorecard/app/src/main/java/nl/entreco/dartsscorecard/play/Play01ViewModel.kt +++ b/android/DartsScorecard/app/src/main/java/nl/entreco/dartsscorecard/play/Play01ViewModel.kt @@ -11,6 +11,7 @@ import nl.entreco.dartsscorecard.base.DialogHelper import nl.entreco.dartsscorecard.play.score.GameLoadedNotifier import nl.entreco.dartsscorecard.play.score.TeamScoreListener import nl.entreco.dartsscorecard.play.score.UiCallback +import nl.entreco.domain.mastercaller.* import nl.entreco.domain.model.Game import nl.entreco.domain.model.Next import nl.entreco.domain.model.Score @@ -24,11 +25,6 @@ import nl.entreco.domain.play.listeners.PlayerListener import nl.entreco.domain.play.listeners.ScoreListener import nl.entreco.domain.play.listeners.SpecialEventListener import nl.entreco.domain.play.listeners.StatListener -import nl.entreco.domain.play.mastercaller.MasterCaller -import nl.entreco.domain.play.mastercaller.MasterCallerRequest -import nl.entreco.domain.play.mastercaller.MusicPlayer -import nl.entreco.domain.play.mastercaller.ToggleMusicUsecase -import nl.entreco.domain.play.mastercaller.ToggleSoundUsecase import nl.entreco.domain.play.revanche.RevancheRequest import nl.entreco.domain.play.revanche.RevancheResponse import nl.entreco.domain.play.revanche.RevancheUsecase diff --git a/android/DartsScorecard/app/src/main/java/nl/entreco/dartsscorecard/settings/SettingsViewModel.kt b/android/DartsScorecard/app/src/main/java/nl/entreco/dartsscorecard/settings/SettingsViewModel.kt index b6424689..4076193b 100644 --- a/android/DartsScorecard/app/src/main/java/nl/entreco/dartsscorecard/settings/SettingsViewModel.kt +++ b/android/DartsScorecard/app/src/main/java/nl/entreco/dartsscorecard/settings/SettingsViewModel.kt @@ -8,8 +8,8 @@ import androidx.databinding.ObservableInt import androidx.lifecycle.LiveData import androidx.lifecycle.MutableLiveData import nl.entreco.dartsscorecard.base.BaseViewModel -import nl.entreco.domain.play.mastercaller.ToggleMusicUsecase -import nl.entreco.domain.play.mastercaller.ToggleSoundUsecase +import nl.entreco.domain.mastercaller.ToggleMusicUsecase +import nl.entreco.domain.mastercaller.ToggleSoundUsecase import nl.entreco.domain.repository.AudioPrefRepository import nl.entreco.domain.repository.BotPrefRepository import nl.entreco.shared.toSingleEvent diff --git a/android/DartsScorecard/app/src/main/res/values/strings.xml b/android/DartsScorecard/app/src/main/res/values/strings.xml index 9d0fa4bd..27aa90a4 100644 --- a/android/DartsScorecard/app/src/main/res/values/strings.xml +++ b/android/DartsScorecard/app/src/main/res/values/strings.xml @@ -231,4 +231,5 @@ First to %1$s sets First to %1$s legs Which features would you like to see added to the app + Sound pack diff --git a/android/DartsScorecard/app/src/test/java/nl/entreco/dartsscorecard/di/play/Play01ModuleTest.kt b/android/DartsScorecard/app/src/test/java/nl/entreco/dartsscorecard/di/play/Play01ModuleTest.kt index 4e356580..e5c08dba 100644 --- a/android/DartsScorecard/app/src/test/java/nl/entreco/dartsscorecard/di/play/Play01ModuleTest.kt +++ b/android/DartsScorecard/app/src/test/java/nl/entreco/dartsscorecard/di/play/Play01ModuleTest.kt @@ -2,11 +2,9 @@ package nl.entreco.dartsscorecard.di.play import android.content.Context import android.content.SharedPreferences -import android.media.SoundPool -import com.nhaarman.mockito_kotlin.whenever import nl.entreco.dartsscorecard.play.Play01Activity -import nl.entreco.data.sound.SoundMapper -import nl.entreco.domain.repository.AudioPrefRepository +import nl.entreco.dartsscorecard.sounds.SoundMapper +import nl.entreco.dartsscorecard.sounds.AudioPrefRepository import org.junit.Assert.assertEquals import org.junit.Assert.assertNotNull import org.junit.Test @@ -21,8 +19,8 @@ import org.mockito.junit.MockitoJUnitRunner class Play01ModuleTest { @Mock private lateinit var mockSharedPrefs: SharedPreferences - @Mock private lateinit var mockAudioPrefs: AudioPrefRepository - @Mock private lateinit var mockMapper: SoundMapper + @Mock private lateinit var mockAudioPrefs: nl.entreco.dartsscorecard.sounds.AudioPrefRepository + @Mock private lateinit var mockMapper: nl.entreco.dartsscorecard.sounds.SoundMapper @Mock private lateinit var mockContext: Context @Mock private lateinit var mockActivity: Play01Activity diff --git a/android/DartsScorecard/app/src/test/java/nl/entreco/dartsscorecard/play/Play01ViewModelMasterCallerTest.kt b/android/DartsScorecard/app/src/test/java/nl/entreco/dartsscorecard/play/Play01ViewModelMasterCallerTest.kt index c0a2f7fa..5b8a22f3 100644 --- a/android/DartsScorecard/app/src/test/java/nl/entreco/dartsscorecard/play/Play01ViewModelMasterCallerTest.kt +++ b/android/DartsScorecard/app/src/test/java/nl/entreco/dartsscorecard/play/Play01ViewModelMasterCallerTest.kt @@ -6,25 +6,21 @@ import com.nhaarman.mockito_kotlin.* import nl.entreco.dartsscorecard.R import nl.entreco.libads.ui.AdViewModel import nl.entreco.dartsscorecard.base.DialogHelper -import nl.entreco.dartsscorecard.play.bot.CalculateBotScoreUsecase import nl.entreco.dartsscorecard.play.score.GameLoadedNotifier import nl.entreco.domain.model.* import nl.entreco.domain.model.players.Player import nl.entreco.domain.model.players.Team -import nl.entreco.domain.play.mastercaller.* +import nl.entreco.dartsscorecard.sounds.mastercaller.* import nl.entreco.domain.play.revanche.RevancheUsecase import nl.entreco.domain.play.start.Play01Request import nl.entreco.domain.play.start.Play01Response import nl.entreco.domain.play.start.Play01Usecase import nl.entreco.domain.rating.AskForRatingUsecase -import nl.entreco.domain.repository.AudioPrefRepository +import nl.entreco.dartsscorecard.sounds.AudioPrefRepository import nl.entreco.domain.settings.ScoreSettings import nl.entreco.liblog.Logger import org.junit.Assert.assertEquals import org.junit.Test -import org.junit.runner.RunWith -import org.mockito.Mock -import org.mockito.junit.MockitoJUnitRunner /** * Created by entreco on 14/03/2018. @@ -36,7 +32,7 @@ class Play01ViewModelMasterCallerTest { private val mockPlayGameUsecase: Play01Usecase = mock() private val mockAskForRatingUsecase: AskForRatingUsecase = mock() private val mockToggleSoundUsecase: ToggleSoundUsecase = mock() - private val mockAudioPrefs: AudioPrefRepository = mock() + private val mockAudioPrefs: nl.entreco.dartsscorecard.sounds.AudioPrefRepository = mock() private val mockAdProvider: AdViewModel = mock() private val mockToggleMusicUsecase: ToggleMusicUsecase = mock() private val mockMusicPlayer: MusicPlayer = mock() diff --git a/android/DartsScorecard/app/src/test/java/nl/entreco/dartsscorecard/play/Play01ViewModelRevancheTest.kt b/android/DartsScorecard/app/src/test/java/nl/entreco/dartsscorecard/play/Play01ViewModelRevancheTest.kt index 5ef69b8c..6e065fbb 100644 --- a/android/DartsScorecard/app/src/test/java/nl/entreco/dartsscorecard/play/Play01ViewModelRevancheTest.kt +++ b/android/DartsScorecard/app/src/test/java/nl/entreco/dartsscorecard/play/Play01ViewModelRevancheTest.kt @@ -7,29 +7,25 @@ import com.nhaarman.mockito_kotlin.verify import com.nhaarman.mockito_kotlin.whenever import nl.entreco.libads.ui.AdViewModel import nl.entreco.dartsscorecard.base.DialogHelper -import nl.entreco.dartsscorecard.play.bot.CalculateBotScoreUsecase import nl.entreco.dartsscorecard.play.score.GameLoadedNotifier import nl.entreco.domain.model.Game import nl.entreco.domain.model.Next import nl.entreco.domain.model.State import nl.entreco.domain.model.players.Team -import nl.entreco.domain.play.mastercaller.MasterCaller -import nl.entreco.domain.play.mastercaller.MusicPlayer -import nl.entreco.domain.play.mastercaller.ToggleMusicUsecase -import nl.entreco.domain.play.mastercaller.ToggleSoundUsecase +import nl.entreco.dartsscorecard.sounds.mastercaller.MasterCaller +import nl.entreco.dartsscorecard.sounds.mastercaller.MusicPlayer +import nl.entreco.dartsscorecard.sounds.mastercaller.ToggleMusicUsecase +import nl.entreco.dartsscorecard.sounds.mastercaller.ToggleSoundUsecase import nl.entreco.domain.play.revanche.RevancheResponse import nl.entreco.domain.play.revanche.RevancheUsecase import nl.entreco.domain.play.start.Play01Request import nl.entreco.domain.play.start.Play01Response import nl.entreco.domain.play.start.Play01Usecase import nl.entreco.domain.rating.AskForRatingUsecase -import nl.entreco.domain.repository.AudioPrefRepository +import nl.entreco.dartsscorecard.sounds.AudioPrefRepository import nl.entreco.domain.settings.ScoreSettings import nl.entreco.liblog.Logger import org.junit.Test -import org.junit.runner.RunWith -import org.mockito.Mock -import org.mockito.junit.MockitoJUnitRunner /** * Created by entreco on 19/02/2018. @@ -40,7 +36,7 @@ class Play01ViewModelRevancheTest { private val mockToggleMusicUsecase: ToggleMusicUsecase = mock() private val mockMusicPlayer: MusicPlayer = mock() private val mockToggleSoundUsecase: ToggleSoundUsecase = mock() - private val mockAudioPrefs: AudioPrefRepository = mock() + private val mockAudioPrefs: nl.entreco.dartsscorecard.sounds.AudioPrefRepository = mock() private val mockAdProvider: AdViewModel = mock() private val mockRevancheUsecase: RevancheUsecase = mock() private val mockGameListeners: Play01Listeners = mock() diff --git a/android/DartsScorecard/app/src/test/java/nl/entreco/dartsscorecard/play/Play01ViewModelTest.kt b/android/DartsScorecard/app/src/test/java/nl/entreco/dartsscorecard/play/Play01ViewModelTest.kt index f92b1b48..1a350f5e 100644 --- a/android/DartsScorecard/app/src/test/java/nl/entreco/dartsscorecard/play/Play01ViewModelTest.kt +++ b/android/DartsScorecard/app/src/test/java/nl/entreco/dartsscorecard/play/Play01ViewModelTest.kt @@ -3,7 +3,6 @@ package nl.entreco.dartsscorecard.play import com.nhaarman.mockito_kotlin.* import nl.entreco.libads.ui.AdViewModel import nl.entreco.dartsscorecard.base.DialogHelper -import nl.entreco.dartsscorecard.play.bot.CalculateBotScoreUsecase import nl.entreco.dartsscorecard.play.score.GameLoadedNotifier import nl.entreco.dartsscorecard.play.score.TeamScoreListener import nl.entreco.domain.model.* @@ -14,24 +13,23 @@ import nl.entreco.domain.play.listeners.PlayerListener import nl.entreco.domain.play.listeners.ScoreListener import nl.entreco.domain.play.listeners.SpecialEventListener import nl.entreco.domain.play.listeners.StatListener -import nl.entreco.domain.play.mastercaller.MasterCaller -import nl.entreco.domain.play.mastercaller.MusicPlayer -import nl.entreco.domain.play.mastercaller.ToggleMusicUsecase -import nl.entreco.domain.play.mastercaller.ToggleSoundUsecase +import nl.entreco.dartsscorecard.sounds.mastercaller.MasterCaller +import nl.entreco.dartsscorecard.sounds.mastercaller.MusicPlayer +import nl.entreco.dartsscorecard.sounds.mastercaller.ToggleMusicUsecase +import nl.entreco.dartsscorecard.sounds.mastercaller.ToggleSoundUsecase import nl.entreco.domain.play.revanche.RevancheUsecase import nl.entreco.domain.play.start.MarkGameAsFinishedRequest import nl.entreco.domain.play.start.Play01Request import nl.entreco.domain.play.start.Play01Response import nl.entreco.domain.play.start.Play01Usecase import nl.entreco.domain.rating.AskForRatingUsecase -import nl.entreco.domain.repository.AudioPrefRepository +import nl.entreco.dartsscorecard.sounds.AudioPrefRepository import nl.entreco.domain.settings.ScoreSettings import nl.entreco.domain.setup.game.CreateGameRequest import nl.entreco.liblog.Logger import org.junit.Assert.assertArrayEquals import org.junit.Before import org.junit.Test -import org.mockito.Mock import org.mockito.MockitoAnnotations /** @@ -53,7 +51,7 @@ class Play01ViewModelTest { private val mockToggleSoundUsecase: ToggleSoundUsecase = mock() private val mockAskForRatingUsecase: AskForRatingUsecase = mock() private val mockAdProvider: AdViewModel = mock() - private val mockAudioPrefs: AudioPrefRepository = mock() + private val mockAudioPrefs: nl.entreco.dartsscorecard.sounds.AudioPrefRepository = mock() private val mockPlayGameUsecase: Play01Usecase = mock() private val mockRevancheUsecase: RevancheUsecase = mock() private val mock01Listeners: Play01Listeners = mock() diff --git a/android/DartsScorecard/app/src/test/java/nl/entreco/dartsscorecard/play/Play01ViewModelUndoTest.kt b/android/DartsScorecard/app/src/test/java/nl/entreco/dartsscorecard/play/Play01ViewModelUndoTest.kt index 66055255..5e8e7349 100644 --- a/android/DartsScorecard/app/src/test/java/nl/entreco/dartsscorecard/play/Play01ViewModelUndoTest.kt +++ b/android/DartsScorecard/app/src/test/java/nl/entreco/dartsscorecard/play/Play01ViewModelUndoTest.kt @@ -3,16 +3,15 @@ package nl.entreco.dartsscorecard.play import com.nhaarman.mockito_kotlin.* import nl.entreco.libads.ui.AdViewModel import nl.entreco.dartsscorecard.base.DialogHelper -import nl.entreco.dartsscorecard.play.bot.CalculateBotScoreUsecase import nl.entreco.dartsscorecard.play.score.GameLoadedNotifier import nl.entreco.domain.model.Game import nl.entreco.domain.model.Next import nl.entreco.domain.model.State import nl.entreco.domain.model.players.Team -import nl.entreco.domain.play.mastercaller.MasterCaller -import nl.entreco.domain.play.mastercaller.MusicPlayer -import nl.entreco.domain.play.mastercaller.ToggleMusicUsecase -import nl.entreco.domain.play.mastercaller.ToggleSoundUsecase +import nl.entreco.dartsscorecard.sounds.mastercaller.MasterCaller +import nl.entreco.dartsscorecard.sounds.mastercaller.MusicPlayer +import nl.entreco.dartsscorecard.sounds.mastercaller.ToggleMusicUsecase +import nl.entreco.dartsscorecard.sounds.mastercaller.ToggleSoundUsecase import nl.entreco.domain.play.revanche.RevancheUsecase import nl.entreco.domain.play.start.Play01Request import nl.entreco.domain.play.start.Play01Response @@ -20,14 +19,11 @@ import nl.entreco.domain.play.start.Play01Usecase import nl.entreco.domain.play.stats.UndoTurnRequest import nl.entreco.domain.play.stats.UndoTurnResponse import nl.entreco.domain.rating.AskForRatingUsecase -import nl.entreco.domain.repository.AudioPrefRepository +import nl.entreco.dartsscorecard.sounds.AudioPrefRepository import nl.entreco.domain.settings.ScoreSettings import nl.entreco.liblog.Logger import org.junit.Assert.assertEquals import org.junit.Test -import org.junit.runner.RunWith -import org.mockito.Mock -import org.mockito.junit.MockitoJUnitRunner /** * Created by entreco on 25/01/2018. @@ -45,7 +41,7 @@ class Play01ViewModelUndoTest { private val mockMusicPlayer: MusicPlayer = mock() private val mockToggleSoundUsecase: ToggleSoundUsecase = mock() private val mockAskForRatingUsecase: AskForRatingUsecase = mock() - private val mockAudioPrefs: AudioPrefRepository = mock() + private val mockAudioPrefs: nl.entreco.dartsscorecard.sounds.AudioPrefRepository = mock() private val mockLoad: GameLoadedNotifier = mock() private val mockLoaders: GameLoadedNotifier = mock() diff --git a/android/DartsScorecard/data/src/test/java/nl/entreco/data/sound/LocalSoundRepositoryTest.kt b/android/DartsScorecard/data/src/test/java/nl/entreco/data/sound/LocalSoundRepositoryTest.kt index 3572989d..823f938b 100644 --- a/android/DartsScorecard/data/src/test/java/nl/entreco/data/sound/LocalSoundRepositoryTest.kt +++ b/android/DartsScorecard/data/src/test/java/nl/entreco/data/sound/LocalSoundRepositoryTest.kt @@ -9,10 +9,10 @@ import com.nhaarman.mockito_kotlin.never import com.nhaarman.mockito_kotlin.verify import com.nhaarman.mockito_kotlin.whenever import nl.entreco.data.R -import nl.entreco.domain.play.mastercaller.Fx00 -import nl.entreco.domain.play.mastercaller.Fx01 -import nl.entreco.domain.play.mastercaller.Sound -import nl.entreco.domain.repository.AudioPrefRepository +import nl.entreco.dartsscorecard.sounds.mastercaller.Fx00 +import nl.entreco.dartsscorecard.sounds.mastercaller.Fx01 +import nl.entreco.dartsscorecard.sounds.mastercaller.Sound +import nl.entreco.dartsscorecard.sounds.AudioPrefRepository import org.junit.Assert.assertTrue import org.junit.Test import org.junit.runner.RunWith @@ -29,10 +29,10 @@ class LocalSoundRepositoryTest { private val fx0 = Fx00 private val fx1 = Fx01 - @Mock private lateinit var mockAudioRepo: AudioPrefRepository + @Mock private lateinit var mockAudioRepo: nl.entreco.dartsscorecard.sounds.AudioPrefRepository @Mock private lateinit var mockSoundPool: SoundPool @Mock private lateinit var mockContext: Context - private lateinit var subject: LocalSoundRepository + private lateinit var subject: nl.entreco.dartsscorecard.sounds.LocalSoundRepository private var loadedSounds = emptyList() @Test @@ -96,7 +96,7 @@ class LocalSoundRepositoryTest { private fun givenSubject(enabled: Boolean = true) { whenever(mockAudioRepo.isMasterCallerEnabled()).doReturn(enabled) - subject = LocalSoundRepository(mockContext, mockSoundPool, mockAudioRepo, SoundMapper()) + subject = nl.entreco.dartsscorecard.sounds.LocalSoundRepository(mockContext, mockSoundPool, mockAudioRepo, nl.entreco.dartsscorecard.sounds.SoundMapper()) } private fun givenLoadedSounds(vararg sounds: Sound) { @@ -104,7 +104,7 @@ class LocalSoundRepositoryTest { } private fun whenPlaying(sound: Sound) { - val res = SoundMapper().toRaw(sound) + val res = nl.entreco.dartsscorecard.sounds.SoundMapper().toRaw(sound) whenever(mockSoundPool.load(mockContext, res, normalPriority)).doReturn(sound.hashCode()) subject.play(sound) } diff --git a/android/DartsScorecard/data/src/test/java/nl/entreco/data/sound/SoundMapperTest.kt b/android/DartsScorecard/data/src/test/java/nl/entreco/data/sound/SoundMapperTest.kt index a0a3b9ac..3347ab5a 100644 --- a/android/DartsScorecard/data/src/test/java/nl/entreco/data/sound/SoundMapperTest.kt +++ b/android/DartsScorecard/data/src/test/java/nl/entreco/data/sound/SoundMapperTest.kt @@ -1,7 +1,7 @@ package nl.entreco.data.sound import nl.entreco.data.R -import nl.entreco.domain.play.mastercaller.* +import nl.entreco.dartsscorecard.sounds.mastercaller.* import org.junit.Assert.assertEquals import org.junit.Test @@ -10,7 +10,7 @@ import org.junit.Test */ class SoundMapperTest { - private val subject = SoundMapper() + private val subject = nl.entreco.dartsscorecard.sounds.SoundMapper() @Test fun `it should map None`() { diff --git a/android/DartsScorecard/domain/src/main/java/nl/entreco/domain/play/mastercaller/MasterCaller.kt b/android/DartsScorecard/domain/src/main/java/nl/entreco/domain/mastercaller/MasterCaller.kt similarity index 55% rename from android/DartsScorecard/domain/src/main/java/nl/entreco/domain/play/mastercaller/MasterCaller.kt rename to android/DartsScorecard/domain/src/main/java/nl/entreco/domain/mastercaller/MasterCaller.kt index 033477a6..0e4a9e41 100644 --- a/android/DartsScorecard/domain/src/main/java/nl/entreco/domain/play/mastercaller/MasterCaller.kt +++ b/android/DartsScorecard/domain/src/main/java/nl/entreco/domain/mastercaller/MasterCaller.kt @@ -1,20 +1,22 @@ -package nl.entreco.domain.play.mastercaller +package nl.entreco.domain.mastercaller import nl.entreco.shared.BaseUsecase import nl.entreco.shared.threading.Background import nl.entreco.shared.threading.Foreground -import nl.entreco.domain.repository.SoundRepository import nl.entreco.liblog.Logger import javax.inject.Inject /** * Created by entreco on 14/03/2018. */ -class MasterCaller @Inject constructor(private val logger: Logger, - private val soundRepository: SoundRepository, - bg: Background, fg: Foreground) : BaseUsecase(bg, fg) { +class MasterCaller @Inject constructor( + private val logger: Logger, + private val soundRepository: SoundRepository, + bg: Background, + fg: Foreground +) : BaseUsecase(bg, fg) { - fun play(request: MasterCallerRequest){ + fun play(request: MasterCallerRequest) { onBackground({ soundRepository.play(request.toSound()) }, onEnqueueFailed(request)) @@ -27,6 +29,6 @@ class MasterCaller @Inject constructor(private val logger: Logger, } fun stop() { - onBackground({ soundRepository.release()}, {}) + onBackground({ soundRepository.release() }, {}) } } \ No newline at end of file diff --git a/android/DartsScorecard/domain/src/main/java/nl/entreco/domain/play/mastercaller/MasterCallerRequest.kt b/android/DartsScorecard/domain/src/main/java/nl/entreco/domain/mastercaller/MasterCallerRequest.kt similarity index 94% rename from android/DartsScorecard/domain/src/main/java/nl/entreco/domain/play/mastercaller/MasterCallerRequest.kt rename to android/DartsScorecard/domain/src/main/java/nl/entreco/domain/mastercaller/MasterCallerRequest.kt index 7bc21ae8..05d53bbd 100644 --- a/android/DartsScorecard/domain/src/main/java/nl/entreco/domain/play/mastercaller/MasterCallerRequest.kt +++ b/android/DartsScorecard/domain/src/main/java/nl/entreco/domain/mastercaller/MasterCallerRequest.kt @@ -1,9 +1,15 @@ -package nl.entreco.domain.play.mastercaller +package nl.entreco.domain.mastercaller /** * Created by entreco on 14/03/2018. */ -class MasterCallerRequest(val scored: Int = -1, val start: Boolean = false, val leg: Boolean = false, val set: Boolean = false, val match:Boolean = false) { +class MasterCallerRequest( + private val scored: Int = -1, + private val start: Boolean = false, + private val leg: Boolean = false, + private val set: Boolean = false, + private val match: Boolean = false +) { fun toSound(): Sound { return when { diff --git a/android/DartsScorecard/domain/src/main/java/nl/entreco/domain/play/mastercaller/MusicPlayer.kt b/android/DartsScorecard/domain/src/main/java/nl/entreco/domain/mastercaller/MusicPlayer.kt similarity index 83% rename from android/DartsScorecard/domain/src/main/java/nl/entreco/domain/play/mastercaller/MusicPlayer.kt rename to android/DartsScorecard/domain/src/main/java/nl/entreco/domain/mastercaller/MusicPlayer.kt index 1d1e7a18..7164bafd 100644 --- a/android/DartsScorecard/domain/src/main/java/nl/entreco/domain/play/mastercaller/MusicPlayer.kt +++ b/android/DartsScorecard/domain/src/main/java/nl/entreco/domain/mastercaller/MusicPlayer.kt @@ -1,7 +1,5 @@ -package nl.entreco.domain.play.mastercaller +package nl.entreco.domain.mastercaller -import nl.entreco.domain.repository.MusicRepository -import nl.entreco.liblog.Logger import nl.entreco.shared.BaseUsecase import nl.entreco.shared.threading.Background import nl.entreco.shared.threading.Foreground diff --git a/android/DartsScorecard/domain/src/main/java/nl/entreco/domain/repository/MusicRepository.kt b/android/DartsScorecard/domain/src/main/java/nl/entreco/domain/mastercaller/MusicRepository.kt similarity index 70% rename from android/DartsScorecard/domain/src/main/java/nl/entreco/domain/repository/MusicRepository.kt rename to android/DartsScorecard/domain/src/main/java/nl/entreco/domain/mastercaller/MusicRepository.kt index c4666f83..39f13310 100644 --- a/android/DartsScorecard/domain/src/main/java/nl/entreco/domain/repository/MusicRepository.kt +++ b/android/DartsScorecard/domain/src/main/java/nl/entreco/domain/mastercaller/MusicRepository.kt @@ -1,4 +1,4 @@ -package nl.entreco.domain.repository +package nl.entreco.domain.mastercaller interface MusicRepository { fun play() diff --git a/android/DartsScorecard/domain/src/main/java/nl/entreco/domain/play/mastercaller/Sound.kt b/android/DartsScorecard/domain/src/main/java/nl/entreco/domain/mastercaller/Sound.kt similarity index 98% rename from android/DartsScorecard/domain/src/main/java/nl/entreco/domain/play/mastercaller/Sound.kt rename to android/DartsScorecard/domain/src/main/java/nl/entreco/domain/mastercaller/Sound.kt index 170af6f5..ae88b6d3 100644 --- a/android/DartsScorecard/domain/src/main/java/nl/entreco/domain/play/mastercaller/Sound.kt +++ b/android/DartsScorecard/domain/src/main/java/nl/entreco/domain/mastercaller/Sound.kt @@ -1,4 +1,4 @@ -package nl.entreco.domain.play.mastercaller +package nl.entreco.domain.mastercaller /** * Created by entreco on 14/03/2018. diff --git a/android/DartsScorecard/domain/src/main/java/nl/entreco/domain/repository/SoundRepository.kt b/android/DartsScorecard/domain/src/main/java/nl/entreco/domain/mastercaller/SoundRepository.kt similarity index 69% rename from android/DartsScorecard/domain/src/main/java/nl/entreco/domain/repository/SoundRepository.kt rename to android/DartsScorecard/domain/src/main/java/nl/entreco/domain/mastercaller/SoundRepository.kt index 41b6cbea..6c5ec147 100644 --- a/android/DartsScorecard/domain/src/main/java/nl/entreco/domain/repository/SoundRepository.kt +++ b/android/DartsScorecard/domain/src/main/java/nl/entreco/domain/mastercaller/SoundRepository.kt @@ -1,7 +1,7 @@ -package nl.entreco.domain.repository +package nl.entreco.domain.mastercaller import androidx.annotation.WorkerThread -import nl.entreco.domain.play.mastercaller.Sound +import nl.entreco.domain.mastercaller.Sound /** * Created by entreco on 14/03/2018. diff --git a/android/DartsScorecard/domain/src/main/java/nl/entreco/domain/play/mastercaller/ToggleMusicUsecase.kt b/android/DartsScorecard/domain/src/main/java/nl/entreco/domain/mastercaller/ToggleMusicUsecase.kt similarity index 76% rename from android/DartsScorecard/domain/src/main/java/nl/entreco/domain/play/mastercaller/ToggleMusicUsecase.kt rename to android/DartsScorecard/domain/src/main/java/nl/entreco/domain/mastercaller/ToggleMusicUsecase.kt index 1b986096..6905fedb 100644 --- a/android/DartsScorecard/domain/src/main/java/nl/entreco/domain/play/mastercaller/ToggleMusicUsecase.kt +++ b/android/DartsScorecard/domain/src/main/java/nl/entreco/domain/mastercaller/ToggleMusicUsecase.kt @@ -1,4 +1,4 @@ -package nl.entreco.domain.play.mastercaller +package nl.entreco.domain.mastercaller import nl.entreco.domain.repository.AudioPrefRepository import nl.entreco.shared.BaseUsecase @@ -7,8 +7,11 @@ import nl.entreco.shared.threading.Foreground import javax.inject.Inject class ToggleMusicUsecase @Inject constructor( - private val audioPrefRepository: AudioPrefRepository, bg: Background, fg: Foreground + private val audioPrefRepository: AudioPrefRepository, + bg: Background, + fg: Foreground ) : BaseUsecase(bg, fg) { + fun toggle() { onBackground({ val toggled = !audioPrefRepository.isBackgroundMusicEnabled() diff --git a/android/DartsScorecard/domain/src/main/java/nl/entreco/domain/play/mastercaller/ToggleSoundUsecase.kt b/android/DartsScorecard/domain/src/main/java/nl/entreco/domain/mastercaller/ToggleSoundUsecase.kt similarity index 90% rename from android/DartsScorecard/domain/src/main/java/nl/entreco/domain/play/mastercaller/ToggleSoundUsecase.kt rename to android/DartsScorecard/domain/src/main/java/nl/entreco/domain/mastercaller/ToggleSoundUsecase.kt index cadde4e6..a83b0e30 100644 --- a/android/DartsScorecard/domain/src/main/java/nl/entreco/domain/play/mastercaller/ToggleSoundUsecase.kt +++ b/android/DartsScorecard/domain/src/main/java/nl/entreco/domain/mastercaller/ToggleSoundUsecase.kt @@ -1,9 +1,9 @@ -package nl.entreco.domain.play.mastercaller +package nl.entreco.domain.mastercaller +import nl.entreco.domain.repository.AudioPrefRepository import nl.entreco.shared.BaseUsecase import nl.entreco.shared.threading.Background import nl.entreco.shared.threading.Foreground -import nl.entreco.domain.repository.AudioPrefRepository import javax.inject.Inject /** @@ -14,7 +14,7 @@ class ToggleSoundUsecase @Inject constructor( bg: Background, fg: Foreground ) : BaseUsecase(bg, fg) { - fun toggle(){ + fun toggle() { onBackground({ val toggled = !audioPrefRepository.isMasterCallerEnabled() audioPrefRepository.setMasterCallerEnabled(toggled) diff --git a/android/DartsScorecard/domain/src/test/java/nl/entreco/domain/mastercaller/MasterCallerRequestTest.kt b/android/DartsScorecard/domain/src/test/java/nl/entreco/domain/mastercaller/MasterCallerRequestTest.kt new file mode 100644 index 00000000..26274871 --- /dev/null +++ b/android/DartsScorecard/domain/src/test/java/nl/entreco/domain/mastercaller/MasterCallerRequestTest.kt @@ -0,0 +1,210 @@ +package nl.entreco.domain.mastercaller + +import org.junit.Assert.assertTrue +import org.junit.Test + +/** + * Created by entreco on 14/03/2018. + */ +class MasterCallerRequestTest{ + + @Test + fun `it should map to 'Fx00' when scoring 0`() { + assertTrue( req(0) is Fx00) + } + + @Test + fun `it should map to 'Fx01' when scoring 1`() { + assertTrue( req(1) is Fx01) + } + + @Test + fun `it should map to 'Fx02' when scoring 2`() { + assertTrue( req(2) is Fx02) + } + + @Test + fun `it should map to 'others' when scoring others`() { + assertTrue(req(3) is Fx03) + assertTrue(req(4) is Fx04) + assertTrue(req(5) is Fx05) + assertTrue(req(6) is Fx06) + assertTrue(req(7) is Fx07) + assertTrue(req(8) is Fx08) + assertTrue(req(9) is Fx09) + assertTrue(req(10) is Fx10) + assertTrue(req(11) is Fx11) + assertTrue(req(12) is Fx12) + assertTrue(req(13) is Fx13) + assertTrue(req(14) is Fx14) + assertTrue(req(15) is Fx15) + assertTrue(req(16) is Fx16) + assertTrue(req(17) is Fx17) + assertTrue(req(18) is Fx18) + assertTrue(req(19) is Fx19) + assertTrue(req(20) is Fx20) + assertTrue(req(21) is Fx21) + assertTrue(req(22) is Fx22) + assertTrue(req(23) is Fx23) + assertTrue(req(24) is Fx24) + assertTrue(req(25) is Fx25) + assertTrue(req(26) is Fx26) + assertTrue(req(27) is Fx27) + assertTrue(req(28) is Fx28) + assertTrue(req(29) is Fx29) + assertTrue(req(30) is Fx30) + assertTrue(req(31) is Fx31) + assertTrue(req(32) is Fx32) + assertTrue(req(33) is Fx33) + assertTrue(req(34) is Fx34) + assertTrue(req(35) is Fx35) + assertTrue(req(36) is Fx36) + assertTrue(req(37) is Fx37) + assertTrue(req(38) is Fx38) + assertTrue(req(39) is Fx39) + assertTrue(req(40) is Fx40) + assertTrue(req(41) is Fx41) + assertTrue(req(42) is Fx42) + assertTrue(req(43) is Fx43) + assertTrue(req(44) is Fx44) + assertTrue(req(45) is Fx45) + assertTrue(req(46) is Fx46) + assertTrue(req(47) is Fx47) + assertTrue(req(48) is Fx48) + assertTrue(req(49) is Fx49) + assertTrue(req(50) is Fx50) + assertTrue(req(51) is Fx51) + assertTrue(req(52) is Fx52) + assertTrue(req(53) is Fx53) + assertTrue(req(54) is Fx54) + assertTrue(req(55) is Fx55) + assertTrue(req(56) is Fx56) + assertTrue(req(57) is Fx57) + assertTrue(req(58) is Fx58) + assertTrue(req(59) is Fx59) + assertTrue(req(60) is Fx60) + assertTrue(req(61) is Fx61) + assertTrue(req(62) is Fx62) + assertTrue(req(63) is Fx63) + assertTrue(req(64) is Fx64) + assertTrue(req(65) is Fx65) + assertTrue(req(66) is Fx66) + assertTrue(req(67) is Fx67) + assertTrue(req(68) is Fx68) + assertTrue(req(69) is Fx69) + assertTrue(req(70) is Fx70) + assertTrue(req(71) is Fx71) + assertTrue(req(72) is Fx72) + assertTrue(req(73) is Fx73) + assertTrue(req(74) is Fx74) + assertTrue(req(75) is Fx75) + assertTrue(req(76) is Fx76) + assertTrue(req(77) is Fx77) + assertTrue(req(78) is Fx78) + assertTrue(req(79) is Fx79) + assertTrue(req(80) is Fx80) + assertTrue(req(81) is Fx81) + assertTrue(req(82) is Fx82) + assertTrue(req(83) is Fx83) + assertTrue(req(84) is Fx84) + assertTrue(req(85) is Fx85) + assertTrue(req(86) is Fx86) + assertTrue(req(87) is Fx87) + assertTrue(req(88) is Fx88) + assertTrue(req(89) is Fx89) + assertTrue(req(90) is Fx90) + assertTrue(req(91) is Fx91) + assertTrue(req(92) is Fx92) + assertTrue(req(93) is Fx93) + assertTrue(req(94) is Fx94) + assertTrue(req(95) is Fx95) + assertTrue(req(96) is Fx96) + assertTrue(req(97) is Fx97) + assertTrue(req(98) is Fx98) + assertTrue(req(99) is Fx99) + assertTrue(req(100) is Fx100) + assertTrue(req(101) is Fx101) + assertTrue(req(102) is Fx102) + assertTrue(req(103) is Fx103) + assertTrue(req(104) is Fx104) + assertTrue(req(105) is Fx105) + assertTrue(req(106) is Fx106) + assertTrue(req(107) is Fx107) + assertTrue(req(108) is Fx108) + assertTrue(req(109) is Fx109) + assertTrue(req(110) is Fx110) + assertTrue(req(111) is Fx111) + assertTrue(req(112) is Fx112) + assertTrue(req(113) is Fx113) + assertTrue(req(114) is Fx114) + assertTrue(req(115) is Fx115) + assertTrue(req(116) is Fx116) + assertTrue(req(117) is Fx117) + assertTrue(req(118) is Fx118) + assertTrue(req(119) is Fx119) + assertTrue(req(120) is Fx120) + assertTrue(req(121) is Fx121) + assertTrue(req(122) is Fx122) + assertTrue(req(123) is Fx123) + assertTrue(req(124) is Fx124) + assertTrue(req(125) is Fx125) + assertTrue(req(126) is Fx126) + assertTrue(req(127) is Fx127) + assertTrue(req(128) is Fx128) + assertTrue(req(129) is Fx129) + assertTrue(req(130) is Fx130) + assertTrue(req(131) is Fx131) + assertTrue(req(132) is Fx132) + assertTrue(req(133) is Fx133) + assertTrue(req(134) is Fx134) + assertTrue(req(135) is Fx135) + assertTrue(req(136) is Fx136) + assertTrue(req(137) is Fx137) + assertTrue(req(138) is Fx138) + assertTrue(req(139) is Fx139) + assertTrue(req(140) is Fx140) + assertTrue(req(141) is Fx141) + assertTrue(req(142) is Fx142) + assertTrue(req(143) is Fx143) + assertTrue(req(144) is Fx144) + assertTrue(req(145) is Fx145) + assertTrue(req(146) is Fx146) + assertTrue(req(147) is Fx147) + assertTrue(req(148) is Fx148) + assertTrue(req(149) is Fx149) + assertTrue(req(150) is Fx150) + assertTrue(req(151) is Fx151) + assertTrue(req(152) is Fx152) + assertTrue(req(153) is Fx153) + assertTrue(req(154) is Fx154) + assertTrue(req(155) is Fx155) + assertTrue(req(156) is Fx156) + assertTrue(req(157) is Fx157) + assertTrue(req(158) is Fx158) + assertTrue(req(159) is Fx159) + assertTrue(req(160) is Fx160) + assertTrue(req(161) is Fx161) + assertTrue(req(162) is Fx162) + assertTrue(req(163) is Fx163) + assertTrue(req(164) is Fx164) + assertTrue(req(165) is Fx165) + assertTrue(req(166) is Fx166) + assertTrue(req(167) is Fx167) + assertTrue(req(168) is Fx168) + assertTrue(req(169) is Fx169) + assertTrue(req(170) is Fx170) + assertTrue(req(171) is Fx171) + assertTrue(req(174) is Fx174) + assertTrue(req(177) is Fx177) + assertTrue(req(180) is Fx180) + } + + + + @Test + fun `it should map to 'None' for unknown scores`() { + assertTrue(req(181) is None) + } + + private fun req(scored: Int) = MasterCallerRequest(scored = scored).toSound() +} \ No newline at end of file diff --git a/android/DartsScorecard/domain/src/test/java/nl/entreco/domain/play/mastercaller/MasterCallerTest.kt b/android/DartsScorecard/domain/src/test/java/nl/entreco/domain/mastercaller/MasterCallerTest.kt similarity index 95% rename from android/DartsScorecard/domain/src/test/java/nl/entreco/domain/play/mastercaller/MasterCallerTest.kt rename to android/DartsScorecard/domain/src/test/java/nl/entreco/domain/mastercaller/MasterCallerTest.kt index 82790a91..d15ca219 100644 --- a/android/DartsScorecard/domain/src/test/java/nl/entreco/domain/play/mastercaller/MasterCallerTest.kt +++ b/android/DartsScorecard/domain/src/test/java/nl/entreco/domain/mastercaller/MasterCallerTest.kt @@ -1,11 +1,10 @@ -package nl.entreco.domain.play.mastercaller +package nl.entreco.domain.mastercaller import com.nhaarman.mockito_kotlin.any import com.nhaarman.mockito_kotlin.verify import com.nhaarman.mockito_kotlin.whenever import nl.entreco.domain.common.executors.TestBackground import nl.entreco.domain.common.executors.TestForeground -import nl.entreco.domain.repository.SoundRepository import nl.entreco.liblog.Logger import org.junit.Test import org.junit.runner.RunWith diff --git a/android/DartsScorecard/domain/src/test/java/nl/entreco/domain/play/mastercaller/ToggleSoundUsecaseTest.kt b/android/DartsScorecard/domain/src/test/java/nl/entreco/domain/mastercaller/ToggleSoundUsecaseTest.kt similarity index 97% rename from android/DartsScorecard/domain/src/test/java/nl/entreco/domain/play/mastercaller/ToggleSoundUsecaseTest.kt rename to android/DartsScorecard/domain/src/test/java/nl/entreco/domain/mastercaller/ToggleSoundUsecaseTest.kt index c21b4ac5..2c1b2905 100644 --- a/android/DartsScorecard/domain/src/test/java/nl/entreco/domain/play/mastercaller/ToggleSoundUsecaseTest.kt +++ b/android/DartsScorecard/domain/src/test/java/nl/entreco/domain/mastercaller/ToggleSoundUsecaseTest.kt @@ -1,4 +1,4 @@ -package nl.entreco.domain.play.mastercaller +package nl.entreco.domain.mastercaller import com.nhaarman.mockito_kotlin.argumentCaptor import com.nhaarman.mockito_kotlin.verify diff --git a/android/DartsScorecard/domain/src/test/java/nl/entreco/domain/play/mastercaller/MasterCallerRequestTest.kt b/android/DartsScorecard/domain/src/test/java/nl/entreco/domain/play/mastercaller/MasterCallerRequestTest.kt deleted file mode 100644 index 1b3b0336..00000000 --- a/android/DartsScorecard/domain/src/test/java/nl/entreco/domain/play/mastercaller/MasterCallerRequestTest.kt +++ /dev/null @@ -1,210 +0,0 @@ -package nl.entreco.domain.play.mastercaller - -import org.junit.Assert.assertTrue -import org.junit.Test - -/** - * Created by entreco on 14/03/2018. - */ -class MasterCallerRequestTest{ - - @Test - fun `it should map to 'Fx00' when scoring 0`() { - assertTrue( req(0) is Fx00) - } - - @Test - fun `it should map to 'Fx01' when scoring 1`() { - assertTrue( req(1) is Fx01) - } - - @Test - fun `it should map to 'Fx02' when scoring 2`() { - assertTrue( req(2) is Fx02) - } - - @Test - fun `it should map to 'others' when scoring others`() { - assertTrue(req(3) is Fx03 ) - assertTrue(req(4) is Fx04 ) - assertTrue(req(5) is Fx05 ) - assertTrue(req(6) is Fx06 ) - assertTrue(req(7) is Fx07 ) - assertTrue(req(8) is Fx08 ) - assertTrue(req(9) is Fx09 ) - assertTrue(req(10) is Fx10 ) - assertTrue(req(11) is Fx11 ) - assertTrue(req(12) is Fx12 ) - assertTrue(req(13) is Fx13 ) - assertTrue(req(14) is Fx14 ) - assertTrue(req(15) is Fx15 ) - assertTrue(req(16) is Fx16 ) - assertTrue(req(17) is Fx17 ) - assertTrue(req(18) is Fx18 ) - assertTrue(req(19) is Fx19 ) - assertTrue(req(20) is Fx20 ) - assertTrue(req(21) is Fx21 ) - assertTrue(req(22) is Fx22 ) - assertTrue(req(23) is Fx23 ) - assertTrue(req(24) is Fx24 ) - assertTrue(req(25) is Fx25 ) - assertTrue(req(26) is Fx26 ) - assertTrue(req(27) is Fx27 ) - assertTrue(req(28) is Fx28 ) - assertTrue(req(29) is Fx29 ) - assertTrue(req(30) is Fx30 ) - assertTrue(req(31) is Fx31 ) - assertTrue(req(32) is Fx32 ) - assertTrue(req(33) is Fx33 ) - assertTrue(req(34) is Fx34 ) - assertTrue(req(35) is Fx35 ) - assertTrue(req(36) is Fx36 ) - assertTrue(req(37) is Fx37 ) - assertTrue(req(38) is Fx38 ) - assertTrue(req(39) is Fx39 ) - assertTrue(req(40) is Fx40 ) - assertTrue(req(41) is Fx41 ) - assertTrue(req(42) is Fx42 ) - assertTrue(req(43) is Fx43 ) - assertTrue(req(44) is Fx44 ) - assertTrue(req(45) is Fx45 ) - assertTrue(req(46) is Fx46 ) - assertTrue(req(47) is Fx47 ) - assertTrue(req(48) is Fx48 ) - assertTrue(req(49) is Fx49 ) - assertTrue(req(50) is Fx50 ) - assertTrue(req(51) is Fx51 ) - assertTrue(req(52) is Fx52 ) - assertTrue(req(53) is Fx53 ) - assertTrue(req(54) is Fx54 ) - assertTrue(req(55) is Fx55 ) - assertTrue(req(56) is Fx56 ) - assertTrue(req(57) is Fx57 ) - assertTrue(req(58) is Fx58 ) - assertTrue(req(59) is Fx59 ) - assertTrue(req(60) is Fx60 ) - assertTrue(req(61) is Fx61 ) - assertTrue(req(62) is Fx62 ) - assertTrue(req(63) is Fx63 ) - assertTrue(req(64) is Fx64 ) - assertTrue(req(65) is Fx65 ) - assertTrue(req(66) is Fx66 ) - assertTrue(req(67) is Fx67 ) - assertTrue(req(68) is Fx68 ) - assertTrue(req(69) is Fx69 ) - assertTrue(req(70) is Fx70 ) - assertTrue(req(71) is Fx71 ) - assertTrue(req(72) is Fx72 ) - assertTrue(req(73) is Fx73 ) - assertTrue(req(74) is Fx74 ) - assertTrue(req(75) is Fx75 ) - assertTrue(req(76) is Fx76 ) - assertTrue(req(77) is Fx77 ) - assertTrue(req(78) is Fx78 ) - assertTrue(req(79) is Fx79 ) - assertTrue(req(80) is Fx80 ) - assertTrue(req(81) is Fx81 ) - assertTrue(req(82) is Fx82 ) - assertTrue(req(83) is Fx83 ) - assertTrue(req(84) is Fx84 ) - assertTrue(req(85) is Fx85 ) - assertTrue(req(86) is Fx86 ) - assertTrue(req(87) is Fx87 ) - assertTrue(req(88) is Fx88 ) - assertTrue(req(89) is Fx89 ) - assertTrue(req(90) is Fx90 ) - assertTrue(req(91) is Fx91 ) - assertTrue(req(92) is Fx92 ) - assertTrue(req(93) is Fx93 ) - assertTrue(req(94) is Fx94 ) - assertTrue(req(95) is Fx95 ) - assertTrue(req(96) is Fx96 ) - assertTrue(req(97) is Fx97 ) - assertTrue(req(98) is Fx98 ) - assertTrue(req(99) is Fx99 ) - assertTrue(req(100) is Fx100 ) - assertTrue(req(101) is Fx101 ) - assertTrue(req(102) is Fx102 ) - assertTrue(req(103) is Fx103 ) - assertTrue(req(104) is Fx104 ) - assertTrue(req(105) is Fx105 ) - assertTrue(req(106) is Fx106 ) - assertTrue(req(107) is Fx107 ) - assertTrue(req(108) is Fx108 ) - assertTrue(req(109) is Fx109 ) - assertTrue(req(110) is Fx110 ) - assertTrue(req(111) is Fx111 ) - assertTrue(req(112) is Fx112 ) - assertTrue(req(113) is Fx113 ) - assertTrue(req(114) is Fx114 ) - assertTrue(req(115) is Fx115 ) - assertTrue(req(116) is Fx116 ) - assertTrue(req(117) is Fx117 ) - assertTrue(req(118) is Fx118 ) - assertTrue(req(119) is Fx119 ) - assertTrue(req(120) is Fx120 ) - assertTrue(req(121) is Fx121 ) - assertTrue(req(122) is Fx122 ) - assertTrue(req(123) is Fx123 ) - assertTrue(req(124) is Fx124 ) - assertTrue(req(125) is Fx125 ) - assertTrue(req(126) is Fx126 ) - assertTrue(req(127) is Fx127 ) - assertTrue(req(128) is Fx128 ) - assertTrue(req(129) is Fx129 ) - assertTrue(req(130) is Fx130 ) - assertTrue(req(131) is Fx131 ) - assertTrue(req(132) is Fx132 ) - assertTrue(req(133) is Fx133 ) - assertTrue(req(134) is Fx134 ) - assertTrue(req(135) is Fx135 ) - assertTrue(req(136) is Fx136 ) - assertTrue(req(137) is Fx137 ) - assertTrue(req(138) is Fx138 ) - assertTrue(req(139) is Fx139 ) - assertTrue(req(140) is Fx140 ) - assertTrue(req(141) is Fx141 ) - assertTrue(req(142) is Fx142 ) - assertTrue(req(143) is Fx143 ) - assertTrue(req(144) is Fx144 ) - assertTrue(req(145) is Fx145 ) - assertTrue(req(146) is Fx146 ) - assertTrue(req(147) is Fx147 ) - assertTrue(req(148) is Fx148 ) - assertTrue(req(149) is Fx149 ) - assertTrue(req(150) is Fx150 ) - assertTrue(req(151) is Fx151 ) - assertTrue(req(152) is Fx152 ) - assertTrue(req(153) is Fx153 ) - assertTrue(req(154) is Fx154 ) - assertTrue(req(155) is Fx155 ) - assertTrue(req(156) is Fx156 ) - assertTrue(req(157) is Fx157 ) - assertTrue(req(158) is Fx158 ) - assertTrue(req(159) is Fx159 ) - assertTrue(req(160) is Fx160 ) - assertTrue(req(161) is Fx161 ) - assertTrue(req(162) is Fx162 ) - assertTrue(req(163) is Fx163 ) - assertTrue(req(164) is Fx164 ) - assertTrue(req(165) is Fx165 ) - assertTrue(req(166) is Fx166 ) - assertTrue(req(167) is Fx167 ) - assertTrue(req(168) is Fx168 ) - assertTrue(req(169) is Fx169 ) - assertTrue(req(170) is Fx170 ) - assertTrue(req(171) is Fx171 ) - assertTrue(req(174) is Fx174 ) - assertTrue(req(177) is Fx177 ) - assertTrue(req(180) is Fx180 ) - } - - - - @Test - fun `it should map to 'None' for unknown scores`() { - assertTrue(req(181) is None) - } - - private fun req(scored: Int) = MasterCallerRequest(scored = scored).toSound() -} \ No newline at end of file diff --git a/android/DartsScorecard/gradle/wrapper/gradle-wrapper.properties b/android/DartsScorecard/gradle/wrapper/gradle-wrapper.properties index a35f034a..aa7d6412 100644 --- a/android/DartsScorecard/gradle/wrapper/gradle-wrapper.properties +++ b/android/DartsScorecard/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ -#Tue Jun 23 09:10:43 CEST 2020 +#Wed Jun 24 00:15:39 CEST 2020 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-6.1.1-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-6.5-milestone-1-all.zip diff --git a/android/DartsScorecard/scripts/dependencies.gradle b/android/DartsScorecard/scripts/dependencies.gradle index 4aa5d76a..983e66e9 100644 --- a/android/DartsScorecard/scripts/dependencies.gradle +++ b/android/DartsScorecard/scripts/dependencies.gradle @@ -34,7 +34,7 @@ ext.versionName = { -> ext { kotlinVersion = '1.3.72' - gradleVersion = '4.0.0' + gradleVersion = '4.1.0-alpha10' gmsVersion = '4.3.3' detektVersion = '1.0.0.RC7' firebaseCrashesVersion = '2.1.1' diff --git a/android/DartsScorecard/settings.gradle b/android/DartsScorecard/settings.gradle index 944b2418..c107b350 100644 --- a/android/DartsScorecard/settings.gradle +++ b/android/DartsScorecard/settings.gradle @@ -1 +1,2 @@ +include ':sounds' include ':app', ':domain', ':data', ':shared', ':libLog', ':libCore', ':libConsent', ':libAds' diff --git a/android/DartsScorecard/sounds/.gitignore b/android/DartsScorecard/sounds/.gitignore new file mode 100644 index 00000000..42afabfd --- /dev/null +++ b/android/DartsScorecard/sounds/.gitignore @@ -0,0 +1 @@ +/build \ No newline at end of file diff --git a/android/DartsScorecard/sounds/build.gradle b/android/DartsScorecard/sounds/build.gradle new file mode 100644 index 00000000..6ddd6a2a --- /dev/null +++ b/android/DartsScorecard/sounds/build.gradle @@ -0,0 +1,34 @@ +apply plugin: 'com.android.dynamic-feature' +apply plugin: 'kotlin-android' +apply plugin: 'kotlin-kapt' +apply plugin: 'kotlin-android-extensions' +apply from: '../scripts/android_common.gradle' + +android { + + defaultConfig { + applicationId "nl.entreco.dartsscorecard.sounds" + } + + buildTypes { + release { + minifyEnabled false + proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' + } + } +} + +dependencies { + implementation project(":app") + implementation project(':domain') + + implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlinVersion" + implementation "androidx.core:core-ktx:$xCore" + + // Dagger + kapt "com.google.dagger:dagger-compiler:$daggerVersion" + implementation "com.google.dagger:dagger:$daggerVersion" + + // Test + testImplementation "junit:junit:$junit" +} \ No newline at end of file diff --git a/android/DartsScorecard/sounds/src/androidTest/java/nl/entreco/dartsscorecard/sounds/ExampleInstrumentedTest.kt b/android/DartsScorecard/sounds/src/androidTest/java/nl/entreco/dartsscorecard/sounds/ExampleInstrumentedTest.kt new file mode 100644 index 00000000..a8a4233d --- /dev/null +++ b/android/DartsScorecard/sounds/src/androidTest/java/nl/entreco/dartsscorecard/sounds/ExampleInstrumentedTest.kt @@ -0,0 +1,24 @@ +package nl.entreco.dartsscorecard.sounds + +import androidx.test.platform.app.InstrumentationRegistry +import androidx.test.ext.junit.runners.AndroidJUnit4 + +import org.junit.Test +import org.junit.runner.RunWith + +import org.junit.Assert.* + +/** + * Instrumented test, which will execute on an Android device. + * + * See [testing documentation](http://d.android.com/tools/testing). + */ +@RunWith(AndroidJUnit4::class) +class ExampleInstrumentedTest { + @Test + fun useAppContext() { + // Context of the app under test. + val appContext = InstrumentationRegistry.getInstrumentation().targetContext + assertEquals("nl.entreco.dartsscorecard.sounds", appContext.packageName) + } +} \ No newline at end of file diff --git a/android/DartsScorecard/sounds/src/main/AndroidManifest.xml b/android/DartsScorecard/sounds/src/main/AndroidManifest.xml new file mode 100644 index 00000000..2c6183a7 --- /dev/null +++ b/android/DartsScorecard/sounds/src/main/AndroidManifest.xml @@ -0,0 +1,14 @@ + + + + + + + + + + \ No newline at end of file diff --git a/android/DartsScorecard/data/src/main/java/nl/entreco/data/sound/LocalMusicRepository.kt b/android/DartsScorecard/sounds/src/main/java/nl/entreco/dartsscorecard/sounds/LocalMusicRepository.kt similarity index 80% rename from android/DartsScorecard/data/src/main/java/nl/entreco/data/sound/LocalMusicRepository.kt rename to android/DartsScorecard/sounds/src/main/java/nl/entreco/dartsscorecard/sounds/LocalMusicRepository.kt index c8143fda..498ff1f4 100644 --- a/android/DartsScorecard/data/src/main/java/nl/entreco/data/sound/LocalMusicRepository.kt +++ b/android/DartsScorecard/sounds/src/main/java/nl/entreco/dartsscorecard/sounds/LocalMusicRepository.kt @@ -1,7 +1,7 @@ -package nl.entreco.data.sound +package nl.entreco.dartsscorecard.sounds import android.media.MediaPlayer -import nl.entreco.domain.repository.MusicRepository +import nl.entreco.domain.mastercaller.MusicRepository class LocalMusicRepository(private val mediaPlayer: MediaPlayer): MusicRepository { diff --git a/android/DartsScorecard/data/src/main/java/nl/entreco/data/sound/LocalSoundRepository.kt b/android/DartsScorecard/sounds/src/main/java/nl/entreco/dartsscorecard/sounds/LocalSoundRepository.kt similarity index 68% rename from android/DartsScorecard/data/src/main/java/nl/entreco/data/sound/LocalSoundRepository.kt rename to android/DartsScorecard/sounds/src/main/java/nl/entreco/dartsscorecard/sounds/LocalSoundRepository.kt index bdd8ed19..5e2101d7 100644 --- a/android/DartsScorecard/data/src/main/java/nl/entreco/data/sound/LocalSoundRepository.kt +++ b/android/DartsScorecard/sounds/src/main/java/nl/entreco/dartsscorecard/sounds/LocalSoundRepository.kt @@ -1,10 +1,9 @@ -package nl.entreco.data.sound +package nl.entreco.dartsscorecard.sounds import android.content.Context import android.media.SoundPool -import nl.entreco.domain.play.mastercaller.Sound +import nl.entreco.domain.mastercaller.SoundRepository import nl.entreco.domain.repository.AudioPrefRepository -import nl.entreco.domain.repository.SoundRepository import java.util.ArrayDeque import java.util.Deque import java.util.HashMap @@ -12,15 +11,17 @@ import java.util.HashMap /** * Created by entreco on 14/03/2018. */ -class LocalSoundRepository(private val context: Context, - private val soundPool: SoundPool, - private val prefs: AudioPrefRepository, - private val mapper: SoundMapper) : SoundRepository { +class LocalSoundRepository( + private val context: Context, + private val soundPool: SoundPool, + private val prefs: AudioPrefRepository, + private val mapper: SoundMapper +) : SoundRepository { private val priorityNormal = 1 internal val queue: Deque = ArrayDeque() - internal val sounds: HashMap = hashMapOf() - private val ready: HashMap = hashMapOf() + internal val sounds: HashMap = hashMapOf() + private val ready: HashMap = hashMapOf() init { soundPool.setOnLoadCompleteListener { _, sampleId, status -> @@ -30,7 +31,7 @@ class LocalSoundRepository(private val context: Context, } } - override fun play(sound: Sound) { + override fun play(sound: nl.entreco.domain.mastercaller.Sound) { if (!prefs.isMasterCallerEnabled()) return if (ready.containsKey(sound)) { @@ -47,7 +48,8 @@ class LocalSoundRepository(private val context: Context, try { soundPool.setOnLoadCompleteListener(null) soundPool.release() - } catch (ignore: Throwable) { } + } catch (ignore: Throwable) { + } } internal fun storeSound(soundId: Int) { @@ -57,7 +59,7 @@ class LocalSoundRepository(private val context: Context, } } - private fun queueSoundWithId(soundID: Int, sound: Sound) { + private fun queueSoundWithId(soundID: Int, sound: nl.entreco.domain.mastercaller.Sound) { queue.addFirst(soundID) sounds[sound] = soundID } diff --git a/android/DartsScorecard/sounds/src/main/java/nl/entreco/dartsscorecard/sounds/OldDiModule.kt b/android/DartsScorecard/sounds/src/main/java/nl/entreco/dartsscorecard/sounds/OldDiModule.kt new file mode 100644 index 00000000..36bca9ad --- /dev/null +++ b/android/DartsScorecard/sounds/src/main/java/nl/entreco/dartsscorecard/sounds/OldDiModule.kt @@ -0,0 +1,36 @@ +package nl.entreco.dartsscorecard.sounds + +import android.content.Context +import android.media.MediaPlayer +import android.media.SoundPool +import dagger.Module +import dagger.Provides +import nl.entreco.dartsscorecard.di.play.Play01Scope +import nl.entreco.domain.mastercaller.MusicRepository +import nl.entreco.domain.mastercaller.SoundRepository +import nl.entreco.domain.repository.AudioPrefRepository + +@Module +object OldDiModule { + + @Provides + @Play01Scope + fun provideSoundMapper(): SoundMapper { + return SoundMapper() + } + + @Provides + @Play01Scope + fun provideSoundRepository(context: Context, @Play01Scope mapper: SoundMapper, @Play01Scope prefs: AudioPrefRepository): SoundRepository { + val soundPool = SoundPool.Builder().setMaxStreams(2).build() + return LocalSoundRepository(context, soundPool, prefs, mapper) + } + + @Provides + @Play01Scope + fun provideMusicRepository(context: Context): MusicRepository { + val mediaPlayer = MediaPlayer.create(context, R.raw.pdc_tune) + mediaPlayer.isLooping = true + return LocalMusicRepository(mediaPlayer) + } +} \ No newline at end of file diff --git a/android/DartsScorecard/data/src/main/java/nl/entreco/data/sound/SoundMapper.kt b/android/DartsScorecard/sounds/src/main/java/nl/entreco/dartsscorecard/sounds/SoundMapper.kt similarity index 98% rename from android/DartsScorecard/data/src/main/java/nl/entreco/data/sound/SoundMapper.kt rename to android/DartsScorecard/sounds/src/main/java/nl/entreco/dartsscorecard/sounds/SoundMapper.kt index e6818bbb..182a9b77 100644 --- a/android/DartsScorecard/data/src/main/java/nl/entreco/data/sound/SoundMapper.kt +++ b/android/DartsScorecard/sounds/src/main/java/nl/entreco/dartsscorecard/sounds/SoundMapper.kt @@ -1,8 +1,7 @@ -package nl.entreco.data.sound +package nl.entreco.dartsscorecard.sounds import androidx.annotation.RawRes -import nl.entreco.data.R -import nl.entreco.domain.play.mastercaller.* +import nl.entreco.domain.mastercaller.* /** * Created by entreco on 14/03/2018. diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro0.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro0.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro0.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro0.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro1.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro1.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro1.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro1.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro10.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro10.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro10.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro10.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro100.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro100.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro100.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro100.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro101.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro101.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro101.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro101.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro102.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro102.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro102.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro102.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro103.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro103.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro103.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro103.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro104.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro104.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro104.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro104.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro105.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro105.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro105.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro105.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro106.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro106.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro106.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro106.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro107.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro107.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro107.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro107.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro108.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro108.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro108.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro108.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro109.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro109.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro109.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro109.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro11.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro11.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro11.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro11.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro110.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro110.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro110.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro110.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro111.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro111.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro111.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro111.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro112.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro112.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro112.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro112.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro113.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro113.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro113.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro113.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro114.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro114.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro114.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro114.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro115.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro115.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro115.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro115.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro116.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro116.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro116.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro116.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro117.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro117.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro117.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro117.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro118.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro118.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro118.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro118.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro119.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro119.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro119.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro119.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro12.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro12.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro12.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro12.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro120.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro120.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro120.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro120.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro121.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro121.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro121.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro121.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro122.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro122.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro122.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro122.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro123.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro123.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro123.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro123.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro124.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro124.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro124.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro124.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro125.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro125.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro125.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro125.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro126.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro126.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro126.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro126.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro127.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro127.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro127.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro127.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro128.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro128.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro128.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro128.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro129.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro129.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro129.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro129.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro13.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro13.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro13.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro13.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro130.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro130.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro130.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro130.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro131.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro131.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro131.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro131.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro132.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro132.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro132.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro132.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro133.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro133.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro133.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro133.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro134.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro134.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro134.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro134.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro135.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro135.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro135.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro135.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro136.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro136.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro136.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro136.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro137.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro137.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro137.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro137.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro138.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro138.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro138.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro138.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro139.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro139.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro139.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro139.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro14.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro14.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro14.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro14.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro140.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro140.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro140.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro140.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro141.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro141.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro141.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro141.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro142.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro142.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro142.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro142.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro143.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro143.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro143.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro143.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro144.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro144.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro144.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro144.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro145.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro145.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro145.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro145.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro146.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro146.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro146.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro146.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro147.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro147.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro147.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro147.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro148.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro148.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro148.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro148.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro149.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro149.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro149.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro149.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro15.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro15.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro15.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro15.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro150.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro150.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro150.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro150.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro151.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro151.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro151.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro151.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro152.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro152.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro152.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro152.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro153.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro153.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro153.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro153.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro154.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro154.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro154.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro154.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro155.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro155.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro155.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro155.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro156.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro156.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro156.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro156.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro157.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro157.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro157.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro157.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro158.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro158.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro158.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro158.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro159.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro159.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro159.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro159.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro16.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro16.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro16.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro16.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro160.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro160.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro160.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro160.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro161.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro161.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro161.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro161.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro162.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro162.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro162.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro162.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro163.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro163.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro163.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro163.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro164.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro164.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro164.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro164.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro165.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro165.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro165.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro165.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro166.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro166.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro166.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro166.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro167.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro167.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro167.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro167.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro168.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro168.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro168.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro168.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro169.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro169.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro169.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro169.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro17.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro17.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro17.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro17.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro170.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro170.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro170.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro170.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro171.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro171.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro171.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro171.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro174.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro174.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro174.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro174.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro177.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro177.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro177.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro177.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro18.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro18.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro18.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro18.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro180.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro180.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro180.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro180.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro19.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro19.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro19.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro19.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro2.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro2.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro2.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro2.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro20.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro20.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro20.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro20.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro21.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro21.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro21.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro21.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro22.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro22.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro22.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro22.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro23.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro23.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro23.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro23.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro24.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro24.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro24.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro24.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro25.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro25.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro25.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro25.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro26.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro26.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro26.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro26.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro27.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro27.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro27.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro27.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro28.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro28.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro28.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro28.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro29.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro29.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro29.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro29.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro3.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro3.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro3.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro3.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro30.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro30.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro30.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro30.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro31.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro31.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro31.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro31.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro32.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro32.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro32.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro32.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro33.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro33.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro33.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro33.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro34.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro34.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro34.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro34.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro35.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro35.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro35.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro35.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro36.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro36.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro36.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro36.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro37.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro37.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro37.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro37.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro38.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro38.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro38.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro38.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro39.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro39.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro39.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro39.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro4.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro4.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro4.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro4.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro40.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro40.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro40.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro40.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro41.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro41.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro41.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro41.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro42.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro42.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro42.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro42.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro43.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro43.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro43.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro43.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro44.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro44.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro44.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro44.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro45.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro45.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro45.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro45.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro46.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro46.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro46.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro46.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro47.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro47.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro47.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro47.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro48.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro48.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro48.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro48.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro49.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro49.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro49.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro49.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro5.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro5.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro5.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro5.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro50.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro50.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro50.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro50.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro51.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro51.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro51.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro51.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro52.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro52.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro52.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro52.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro53.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro53.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro53.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro53.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro54.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro54.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro54.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro54.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro55.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro55.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro55.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro55.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro56.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro56.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro56.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro56.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro57.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro57.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro57.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro57.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro58.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro58.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro58.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro58.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro59.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro59.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro59.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro59.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro6.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro6.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro6.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro6.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro60.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro60.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro60.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro60.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro61.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro61.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro61.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro61.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro62.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro62.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro62.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro62.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro63.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro63.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro63.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro63.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro64.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro64.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro64.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro64.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro65.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro65.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro65.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro65.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro66.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro66.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro66.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro66.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro67.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro67.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro67.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro67.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro68.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro68.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro68.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro68.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro69.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro69.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro69.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro69.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro7.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro7.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro7.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro7.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro70.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro70.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro70.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro70.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro71.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro71.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro71.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro71.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro72.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro72.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro72.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro72.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro73.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro73.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro73.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro73.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro74.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro74.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro74.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro74.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro75.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro75.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro75.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro75.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro76.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro76.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro76.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro76.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro77.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro77.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro77.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro77.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro78.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro78.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro78.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro78.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro79.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro79.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro79.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro79.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro8.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro8.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro8.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro8.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro80.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro80.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro80.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro80.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro81.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro81.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro81.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro81.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro82.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro82.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro82.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro82.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro83.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro83.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro83.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro83.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro84.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro84.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro84.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro84.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro85.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro85.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro85.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro85.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro86.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro86.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro86.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro86.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro87.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro87.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro87.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro87.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro88.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro88.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro88.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro88.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro89.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro89.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro89.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro89.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro9.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro9.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro9.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro9.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro90.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro90.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro90.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro90.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro91.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro91.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro91.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro91.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro92.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro92.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro92.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro92.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro93.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro93.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro93.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro93.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro94.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro94.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro94.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro94.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro95.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro95.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro95.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro95.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro96.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro96.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro96.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro96.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro97.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro97.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro97.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro97.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro98.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro98.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro98.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro98.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro99.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro99.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro99.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro99.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_profirstleg.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_profirstleg.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_profirstleg.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_profirstleg.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_profourthleg.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_profourthleg.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_profourthleg.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_profourthleg.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_progameon.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_progameon.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_progameon.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_progameon.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_progameshot.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_progameshot.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_progameshot.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_progameshot.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_proleg.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_proleg.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_proleg.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_proleg.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_proletsplaydarts.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_proletsplaydarts.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_proletsplaydarts.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_proletsplaydarts.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pronoscore.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pronoscore.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pronoscore.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pronoscore.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_prosecondleg.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_prosecondleg.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_prosecondleg.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_prosecondleg.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_proset.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_proset.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_proset.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_proset.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_prothirdleg.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_prothirdleg.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_prothirdleg.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_prothirdleg.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_prowhatagame.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_prowhatagame.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_prowhatagame.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_prowhatagame.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/pdc_tune.ogg b/android/DartsScorecard/sounds/src/main/res/raw/pdc_tune.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/pdc_tune.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/pdc_tune.ogg diff --git a/android/DartsScorecard/sounds/src/test/java/nl/entreco/dartsscorecard/sounds/ExampleUnitTest.kt b/android/DartsScorecard/sounds/src/test/java/nl/entreco/dartsscorecard/sounds/ExampleUnitTest.kt new file mode 100644 index 00000000..b9f65cc9 --- /dev/null +++ b/android/DartsScorecard/sounds/src/test/java/nl/entreco/dartsscorecard/sounds/ExampleUnitTest.kt @@ -0,0 +1,17 @@ +package nl.entreco.dartsscorecard.sounds + +import org.junit.Test + +import org.junit.Assert.* + +/** + * Example local unit test, which will execute on the development machine (host). + * + * See [testing documentation](http://d.android.com/tools/testing). + */ +class ExampleUnitTest { + @Test + fun addition_isCorrect() { + assertEquals(4, 2 + 2) + } +} \ No newline at end of file From fed14578a15a266f2b28cbbd9921fe902d50e545 Mon Sep 17 00:00:00 2001 From: Remco Janssen Date: Wed, 24 Jun 2020 00:16:15 +0200 Subject: [PATCH 2/7] #14: Moved all sounds to dynamic feature --- android/DartsScorecard/app/build.gradle | 4 +- .../dartsscorecard/di/play/Play01Module.kt | 40 ++-- .../dartsscorecard/play/Play01ViewModel.kt | 6 +- .../settings/SettingsViewModel.kt | 4 +- .../app/src/main/res/values/strings.xml | 1 + .../di/play/Play01ModuleTest.kt | 15 +- .../play/Play01ViewModelMasterCallerTest.kt | 10 +- .../play/Play01ViewModelRevancheTest.kt | 16 +- .../play/Play01ViewModelTest.kt | 14 +- .../play/Play01ViewModelUndoTest.kt | 16 +- .../data/sound/LocalSoundRepositoryTest.kt | 16 +- .../nl/entreco/data/sound/SoundMapperTest.kt | 4 +- .../{play => }/mastercaller/MasterCaller.kt | 16 +- .../mastercaller/MasterCallerRequest.kt | 10 +- .../{play => }/mastercaller/MusicPlayer.kt | 4 +- .../MusicRepository.kt | 2 +- .../domain/{play => }/mastercaller/Sound.kt | 2 +- .../SoundRepository.kt | 4 +- .../mastercaller/ToggleMusicUsecase.kt | 7 +- .../mastercaller/ToggleSoundUsecase.kt | 6 +- .../mastercaller/MasterCallerRequestTest.kt | 210 ++++++++++++++++++ .../mastercaller/MasterCallerTest.kt | 3 +- .../mastercaller/ToggleSoundUsecaseTest.kt | 2 +- .../mastercaller/MasterCallerRequestTest.kt | 210 ------------------ android/DartsScorecard/settings.gradle | 1 + android/DartsScorecard/sounds/.gitignore | 1 + android/DartsScorecard/sounds/build.gradle | 34 +++ .../sounds/ExampleInstrumentedTest.kt | 24 ++ .../sounds/src/main/AndroidManifest.xml | 14 ++ .../sounds}/LocalMusicRepository.kt | 4 +- .../sounds}/LocalSoundRepository.kt | 26 ++- .../dartsscorecard/sounds/OldDiModule.kt | 36 +++ .../dartsscorecard/sounds}/SoundMapper.kt | 5 +- .../src/main/res/raw/dsc_pro0.ogg | Bin .../src/main/res/raw/dsc_pro1.ogg | Bin .../src/main/res/raw/dsc_pro10.ogg | Bin .../src/main/res/raw/dsc_pro100.ogg | Bin .../src/main/res/raw/dsc_pro101.ogg | Bin .../src/main/res/raw/dsc_pro102.ogg | Bin .../src/main/res/raw/dsc_pro103.ogg | Bin .../src/main/res/raw/dsc_pro104.ogg | Bin .../src/main/res/raw/dsc_pro105.ogg | Bin .../src/main/res/raw/dsc_pro106.ogg | Bin .../src/main/res/raw/dsc_pro107.ogg | Bin .../src/main/res/raw/dsc_pro108.ogg | Bin .../src/main/res/raw/dsc_pro109.ogg | Bin .../src/main/res/raw/dsc_pro11.ogg | Bin .../src/main/res/raw/dsc_pro110.ogg | Bin .../src/main/res/raw/dsc_pro111.ogg | Bin .../src/main/res/raw/dsc_pro112.ogg | Bin .../src/main/res/raw/dsc_pro113.ogg | Bin .../src/main/res/raw/dsc_pro114.ogg | Bin .../src/main/res/raw/dsc_pro115.ogg | Bin .../src/main/res/raw/dsc_pro116.ogg | Bin .../src/main/res/raw/dsc_pro117.ogg | Bin .../src/main/res/raw/dsc_pro118.ogg | Bin .../src/main/res/raw/dsc_pro119.ogg | Bin .../src/main/res/raw/dsc_pro12.ogg | Bin .../src/main/res/raw/dsc_pro120.ogg | Bin .../src/main/res/raw/dsc_pro121.ogg | Bin .../src/main/res/raw/dsc_pro122.ogg | Bin .../src/main/res/raw/dsc_pro123.ogg | Bin .../src/main/res/raw/dsc_pro124.ogg | Bin .../src/main/res/raw/dsc_pro125.ogg | Bin .../src/main/res/raw/dsc_pro126.ogg | Bin .../src/main/res/raw/dsc_pro127.ogg | Bin .../src/main/res/raw/dsc_pro128.ogg | Bin .../src/main/res/raw/dsc_pro129.ogg | Bin .../src/main/res/raw/dsc_pro13.ogg | Bin .../src/main/res/raw/dsc_pro130.ogg | Bin .../src/main/res/raw/dsc_pro131.ogg | Bin .../src/main/res/raw/dsc_pro132.ogg | Bin .../src/main/res/raw/dsc_pro133.ogg | Bin .../src/main/res/raw/dsc_pro134.ogg | Bin .../src/main/res/raw/dsc_pro135.ogg | Bin .../src/main/res/raw/dsc_pro136.ogg | Bin .../src/main/res/raw/dsc_pro137.ogg | Bin .../src/main/res/raw/dsc_pro138.ogg | Bin .../src/main/res/raw/dsc_pro139.ogg | Bin .../src/main/res/raw/dsc_pro14.ogg | Bin .../src/main/res/raw/dsc_pro140.ogg | Bin .../src/main/res/raw/dsc_pro141.ogg | Bin .../src/main/res/raw/dsc_pro142.ogg | Bin .../src/main/res/raw/dsc_pro143.ogg | Bin .../src/main/res/raw/dsc_pro144.ogg | Bin .../src/main/res/raw/dsc_pro145.ogg | Bin .../src/main/res/raw/dsc_pro146.ogg | Bin .../src/main/res/raw/dsc_pro147.ogg | Bin .../src/main/res/raw/dsc_pro148.ogg | Bin .../src/main/res/raw/dsc_pro149.ogg | Bin .../src/main/res/raw/dsc_pro15.ogg | Bin .../src/main/res/raw/dsc_pro150.ogg | Bin .../src/main/res/raw/dsc_pro151.ogg | Bin .../src/main/res/raw/dsc_pro152.ogg | Bin .../src/main/res/raw/dsc_pro153.ogg | Bin .../src/main/res/raw/dsc_pro154.ogg | Bin .../src/main/res/raw/dsc_pro155.ogg | Bin .../src/main/res/raw/dsc_pro156.ogg | Bin .../src/main/res/raw/dsc_pro157.ogg | Bin .../src/main/res/raw/dsc_pro158.ogg | Bin .../src/main/res/raw/dsc_pro159.ogg | Bin .../src/main/res/raw/dsc_pro16.ogg | Bin .../src/main/res/raw/dsc_pro160.ogg | Bin .../src/main/res/raw/dsc_pro161.ogg | Bin .../src/main/res/raw/dsc_pro162.ogg | Bin .../src/main/res/raw/dsc_pro163.ogg | Bin .../src/main/res/raw/dsc_pro164.ogg | Bin .../src/main/res/raw/dsc_pro165.ogg | Bin .../src/main/res/raw/dsc_pro166.ogg | Bin .../src/main/res/raw/dsc_pro167.ogg | Bin .../src/main/res/raw/dsc_pro168.ogg | Bin .../src/main/res/raw/dsc_pro169.ogg | Bin .../src/main/res/raw/dsc_pro17.ogg | Bin .../src/main/res/raw/dsc_pro170.ogg | Bin .../src/main/res/raw/dsc_pro171.ogg | Bin .../src/main/res/raw/dsc_pro174.ogg | Bin .../src/main/res/raw/dsc_pro177.ogg | Bin .../src/main/res/raw/dsc_pro18.ogg | Bin .../src/main/res/raw/dsc_pro180.ogg | Bin .../src/main/res/raw/dsc_pro19.ogg | Bin .../src/main/res/raw/dsc_pro2.ogg | Bin .../src/main/res/raw/dsc_pro20.ogg | Bin .../src/main/res/raw/dsc_pro21.ogg | Bin .../src/main/res/raw/dsc_pro22.ogg | Bin .../src/main/res/raw/dsc_pro23.ogg | Bin .../src/main/res/raw/dsc_pro24.ogg | Bin .../src/main/res/raw/dsc_pro25.ogg | Bin .../src/main/res/raw/dsc_pro26.ogg | Bin .../src/main/res/raw/dsc_pro27.ogg | Bin .../src/main/res/raw/dsc_pro28.ogg | Bin .../src/main/res/raw/dsc_pro29.ogg | Bin .../src/main/res/raw/dsc_pro3.ogg | Bin .../src/main/res/raw/dsc_pro30.ogg | Bin .../src/main/res/raw/dsc_pro31.ogg | Bin .../src/main/res/raw/dsc_pro32.ogg | Bin .../src/main/res/raw/dsc_pro33.ogg | Bin .../src/main/res/raw/dsc_pro34.ogg | Bin .../src/main/res/raw/dsc_pro35.ogg | Bin .../src/main/res/raw/dsc_pro36.ogg | Bin .../src/main/res/raw/dsc_pro37.ogg | Bin .../src/main/res/raw/dsc_pro38.ogg | Bin .../src/main/res/raw/dsc_pro39.ogg | Bin .../src/main/res/raw/dsc_pro4.ogg | Bin .../src/main/res/raw/dsc_pro40.ogg | Bin .../src/main/res/raw/dsc_pro41.ogg | Bin .../src/main/res/raw/dsc_pro42.ogg | Bin .../src/main/res/raw/dsc_pro43.ogg | Bin .../src/main/res/raw/dsc_pro44.ogg | Bin .../src/main/res/raw/dsc_pro45.ogg | Bin .../src/main/res/raw/dsc_pro46.ogg | Bin .../src/main/res/raw/dsc_pro47.ogg | Bin .../src/main/res/raw/dsc_pro48.ogg | Bin .../src/main/res/raw/dsc_pro49.ogg | Bin .../src/main/res/raw/dsc_pro5.ogg | Bin .../src/main/res/raw/dsc_pro50.ogg | Bin .../src/main/res/raw/dsc_pro51.ogg | Bin .../src/main/res/raw/dsc_pro52.ogg | Bin .../src/main/res/raw/dsc_pro53.ogg | Bin .../src/main/res/raw/dsc_pro54.ogg | Bin .../src/main/res/raw/dsc_pro55.ogg | Bin .../src/main/res/raw/dsc_pro56.ogg | Bin .../src/main/res/raw/dsc_pro57.ogg | Bin .../src/main/res/raw/dsc_pro58.ogg | Bin .../src/main/res/raw/dsc_pro59.ogg | Bin .../src/main/res/raw/dsc_pro6.ogg | Bin .../src/main/res/raw/dsc_pro60.ogg | Bin .../src/main/res/raw/dsc_pro61.ogg | Bin .../src/main/res/raw/dsc_pro62.ogg | Bin .../src/main/res/raw/dsc_pro63.ogg | Bin .../src/main/res/raw/dsc_pro64.ogg | Bin .../src/main/res/raw/dsc_pro65.ogg | Bin .../src/main/res/raw/dsc_pro66.ogg | Bin .../src/main/res/raw/dsc_pro67.ogg | Bin .../src/main/res/raw/dsc_pro68.ogg | Bin .../src/main/res/raw/dsc_pro69.ogg | Bin .../src/main/res/raw/dsc_pro7.ogg | Bin .../src/main/res/raw/dsc_pro70.ogg | Bin .../src/main/res/raw/dsc_pro71.ogg | Bin .../src/main/res/raw/dsc_pro72.ogg | Bin .../src/main/res/raw/dsc_pro73.ogg | Bin .../src/main/res/raw/dsc_pro74.ogg | Bin .../src/main/res/raw/dsc_pro75.ogg | Bin .../src/main/res/raw/dsc_pro76.ogg | Bin .../src/main/res/raw/dsc_pro77.ogg | Bin .../src/main/res/raw/dsc_pro78.ogg | Bin .../src/main/res/raw/dsc_pro79.ogg | Bin .../src/main/res/raw/dsc_pro8.ogg | Bin .../src/main/res/raw/dsc_pro80.ogg | Bin .../src/main/res/raw/dsc_pro81.ogg | Bin .../src/main/res/raw/dsc_pro82.ogg | Bin .../src/main/res/raw/dsc_pro83.ogg | Bin .../src/main/res/raw/dsc_pro84.ogg | Bin .../src/main/res/raw/dsc_pro85.ogg | Bin .../src/main/res/raw/dsc_pro86.ogg | Bin .../src/main/res/raw/dsc_pro87.ogg | Bin .../src/main/res/raw/dsc_pro88.ogg | Bin .../src/main/res/raw/dsc_pro89.ogg | Bin .../src/main/res/raw/dsc_pro9.ogg | Bin .../src/main/res/raw/dsc_pro90.ogg | Bin .../src/main/res/raw/dsc_pro91.ogg | Bin .../src/main/res/raw/dsc_pro92.ogg | Bin .../src/main/res/raw/dsc_pro93.ogg | Bin .../src/main/res/raw/dsc_pro94.ogg | Bin .../src/main/res/raw/dsc_pro95.ogg | Bin .../src/main/res/raw/dsc_pro96.ogg | Bin .../src/main/res/raw/dsc_pro97.ogg | Bin .../src/main/res/raw/dsc_pro98.ogg | Bin .../src/main/res/raw/dsc_pro99.ogg | Bin .../src/main/res/raw/dsc_profirstleg.ogg | Bin .../src/main/res/raw/dsc_profourthleg.ogg | Bin .../src/main/res/raw/dsc_progameon.ogg | Bin .../src/main/res/raw/dsc_progameshot.ogg | Bin .../src/main/res/raw/dsc_proleg.ogg | Bin .../src/main/res/raw/dsc_proletsplaydarts.ogg | Bin .../src/main/res/raw/dsc_pronoscore.ogg | Bin .../src/main/res/raw/dsc_prosecondleg.ogg | Bin .../src/main/res/raw/dsc_proset.ogg | Bin .../src/main/res/raw/dsc_prothirdleg.ogg | Bin .../src/main/res/raw/dsc_prowhatagame.ogg | Bin .../src/main/res/raw/pdc_tune.ogg | Bin .../dartsscorecard/sounds/ExampleUnitTest.kt | 17 ++ 221 files changed, 443 insertions(+), 341 deletions(-) rename android/DartsScorecard/domain/src/main/java/nl/entreco/domain/{play => }/mastercaller/MasterCaller.kt (55%) rename android/DartsScorecard/domain/src/main/java/nl/entreco/domain/{play => }/mastercaller/MasterCallerRequest.kt (94%) rename android/DartsScorecard/domain/src/main/java/nl/entreco/domain/{play => }/mastercaller/MusicPlayer.kt (83%) rename android/DartsScorecard/domain/src/main/java/nl/entreco/domain/{repository => mastercaller}/MusicRepository.kt (70%) rename android/DartsScorecard/domain/src/main/java/nl/entreco/domain/{play => }/mastercaller/Sound.kt (98%) rename android/DartsScorecard/domain/src/main/java/nl/entreco/domain/{repository => mastercaller}/SoundRepository.kt (69%) rename android/DartsScorecard/domain/src/main/java/nl/entreco/domain/{play => }/mastercaller/ToggleMusicUsecase.kt (76%) rename android/DartsScorecard/domain/src/main/java/nl/entreco/domain/{play => }/mastercaller/ToggleSoundUsecase.kt (90%) create mode 100644 android/DartsScorecard/domain/src/test/java/nl/entreco/domain/mastercaller/MasterCallerRequestTest.kt rename android/DartsScorecard/domain/src/test/java/nl/entreco/domain/{play => }/mastercaller/MasterCallerTest.kt (95%) rename android/DartsScorecard/domain/src/test/java/nl/entreco/domain/{play => }/mastercaller/ToggleSoundUsecaseTest.kt (97%) delete mode 100644 android/DartsScorecard/domain/src/test/java/nl/entreco/domain/play/mastercaller/MasterCallerRequestTest.kt create mode 100644 android/DartsScorecard/sounds/.gitignore create mode 100644 android/DartsScorecard/sounds/build.gradle create mode 100644 android/DartsScorecard/sounds/src/androidTest/java/nl/entreco/dartsscorecard/sounds/ExampleInstrumentedTest.kt create mode 100644 android/DartsScorecard/sounds/src/main/AndroidManifest.xml rename android/DartsScorecard/{data/src/main/java/nl/entreco/data/sound => sounds/src/main/java/nl/entreco/dartsscorecard/sounds}/LocalMusicRepository.kt (80%) rename android/DartsScorecard/{data/src/main/java/nl/entreco/data/sound => sounds/src/main/java/nl/entreco/dartsscorecard/sounds}/LocalSoundRepository.kt (68%) create mode 100644 android/DartsScorecard/sounds/src/main/java/nl/entreco/dartsscorecard/sounds/OldDiModule.kt rename android/DartsScorecard/{data/src/main/java/nl/entreco/data/sound => sounds/src/main/java/nl/entreco/dartsscorecard/sounds}/SoundMapper.kt (98%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro0.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro1.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro10.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro100.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro101.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro102.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro103.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro104.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro105.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro106.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro107.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro108.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro109.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro11.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro110.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro111.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro112.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro113.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro114.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro115.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro116.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro117.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro118.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro119.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro12.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro120.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro121.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro122.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro123.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro124.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro125.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro126.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro127.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro128.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro129.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro13.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro130.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro131.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro132.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro133.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro134.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro135.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro136.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro137.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro138.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro139.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro14.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro140.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro141.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro142.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro143.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro144.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro145.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro146.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro147.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro148.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro149.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro15.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro150.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro151.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro152.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro153.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro154.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro155.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro156.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro157.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro158.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro159.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro16.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro160.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro161.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro162.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro163.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro164.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro165.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro166.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro167.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro168.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro169.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro17.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro170.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro171.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro174.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro177.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro18.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro180.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro19.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro2.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro20.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro21.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro22.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro23.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro24.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro25.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro26.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro27.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro28.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro29.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro3.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro30.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro31.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro32.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro33.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro34.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro35.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro36.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro37.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro38.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro39.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro4.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro40.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro41.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro42.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro43.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro44.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro45.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro46.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro47.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro48.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro49.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro5.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro50.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro51.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro52.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro53.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro54.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro55.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro56.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro57.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro58.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro59.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro6.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro60.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro61.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro62.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro63.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro64.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro65.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro66.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro67.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro68.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro69.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro7.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro70.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro71.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro72.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro73.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro74.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro75.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro76.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro77.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro78.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro79.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro8.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro80.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro81.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro82.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro83.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro84.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro85.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro86.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro87.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro88.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro89.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro9.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro90.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro91.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro92.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro93.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro94.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro95.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro96.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro97.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro98.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pro99.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_profirstleg.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_profourthleg.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_progameon.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_progameshot.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_proleg.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_proletsplaydarts.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_pronoscore.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_prosecondleg.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_proset.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_prothirdleg.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/dsc_prowhatagame.ogg (100%) rename android/DartsScorecard/{data => sounds}/src/main/res/raw/pdc_tune.ogg (100%) create mode 100644 android/DartsScorecard/sounds/src/test/java/nl/entreco/dartsscorecard/sounds/ExampleUnitTest.kt diff --git a/android/DartsScorecard/app/build.gradle b/android/DartsScorecard/app/build.gradle index 8a8107d9..ff37b993 100644 --- a/android/DartsScorecard/app/build.gradle +++ b/android/DartsScorecard/app/build.gradle @@ -20,7 +20,7 @@ android { applicationIdSuffix ".dev" } release { - shrinkResources true + shrinkResources false // Resource shrinker cannot be used for multi-apk applications } } @@ -28,6 +28,8 @@ android { jniLibs.srcDir 'libs' jni.srcDirs = [] //disable automatic ndk-build call } + + dynamicFeatures = [':sounds'] } dependencies { diff --git a/android/DartsScorecard/app/src/main/java/nl/entreco/dartsscorecard/di/play/Play01Module.kt b/android/DartsScorecard/app/src/main/java/nl/entreco/dartsscorecard/di/play/Play01Module.kt index ced78655..86859682 100644 --- a/android/DartsScorecard/app/src/main/java/nl/entreco/dartsscorecard/di/play/Play01Module.kt +++ b/android/DartsScorecard/app/src/main/java/nl/entreco/dartsscorecard/di/play/Play01Module.kt @@ -2,27 +2,20 @@ package nl.entreco.dartsscorecard.di.play import android.content.ComponentName import android.content.Context -import android.media.MediaPlayer -import android.media.SoundPool import com.google.firebase.remoteconfig.FirebaseRemoteConfig import dagger.Module import dagger.Provides -import nl.entreco.dartsscorecard.R import nl.entreco.dartsscorecard.archive.ArchiveJobService import nl.entreco.dartsscorecard.archive.ArchiveServiceLauncher -import nl.entreco.dartsscorecard.di.profile.ProfileScope import nl.entreco.dartsscorecard.play.Play01Activity import nl.entreco.data.billing.PlayBillingRepository import nl.entreco.data.description.RemoteMatchDescriptionRepository -import nl.entreco.data.sound.LocalMusicRepository -import nl.entreco.data.sound.LocalSoundRepository -import nl.entreco.data.sound.SoundMapper import nl.entreco.domain.beta.donations.MakePurchaseResponse -import nl.entreco.domain.repository.AudioPrefRepository +import nl.entreco.domain.mastercaller.MusicRepository +import nl.entreco.domain.mastercaller.Sound +import nl.entreco.domain.mastercaller.SoundRepository import nl.entreco.domain.repository.BillingRepo import nl.entreco.domain.repository.MatchDescriptionRepository -import nl.entreco.domain.repository.MusicRepository -import nl.entreco.domain.repository.SoundRepository import nl.entreco.liblog.Logger import nl.entreco.shared.scopes.ActivityScope import nl.entreco.shared.scopes.ApplicationScope @@ -51,23 +44,24 @@ class Play01Module( @Provides @Play01Scope - fun provideSoundMapper(): SoundMapper { - return SoundMapper() + fun provideSoundRepository(): SoundRepository { + // TODO Provide original Repo if Dynamic Feature sounds is installed + return object : SoundRepository { + override fun play(sound: Sound) {} + override fun release() {} + } } @Provides @Play01Scope - fun provideSoundRepository(@ActivityScope context: Context, @Play01Scope mapper: SoundMapper, @Play01Scope prefs: AudioPrefRepository): SoundRepository { - val soundPool = SoundPool.Builder().setMaxStreams(2).build() - return LocalSoundRepository(context, soundPool, prefs, mapper) - } - - @Provides - @Play01Scope - fun provideMusicRepository(@ActivityScope context: Context): MusicRepository { - val mediaPlayer = MediaPlayer.create(context, R.raw.pdc_tune) - mediaPlayer.isLooping = true - return LocalMusicRepository(mediaPlayer) + fun provideMusicRepository(): MusicRepository { + // TODO Provide original Repo if Dynamic Feature sounds is installed + return object : MusicRepository { + override fun play() {} + override fun pause() {} + override fun resume() {} + override fun stop() {} + } } @Provides diff --git a/android/DartsScorecard/app/src/main/java/nl/entreco/dartsscorecard/play/Play01ViewModel.kt b/android/DartsScorecard/app/src/main/java/nl/entreco/dartsscorecard/play/Play01ViewModel.kt index 79948666..9b143444 100644 --- a/android/DartsScorecard/app/src/main/java/nl/entreco/dartsscorecard/play/Play01ViewModel.kt +++ b/android/DartsScorecard/app/src/main/java/nl/entreco/dartsscorecard/play/Play01ViewModel.kt @@ -11,6 +11,7 @@ import nl.entreco.dartsscorecard.base.DialogHelper import nl.entreco.dartsscorecard.play.score.GameLoadedNotifier import nl.entreco.dartsscorecard.play.score.TeamScoreListener import nl.entreco.dartsscorecard.play.score.UiCallback +import nl.entreco.domain.mastercaller.* import nl.entreco.domain.model.Game import nl.entreco.domain.model.Next import nl.entreco.domain.model.Score @@ -24,11 +25,6 @@ import nl.entreco.domain.play.listeners.PlayerListener import nl.entreco.domain.play.listeners.ScoreListener import nl.entreco.domain.play.listeners.SpecialEventListener import nl.entreco.domain.play.listeners.StatListener -import nl.entreco.domain.play.mastercaller.MasterCaller -import nl.entreco.domain.play.mastercaller.MasterCallerRequest -import nl.entreco.domain.play.mastercaller.MusicPlayer -import nl.entreco.domain.play.mastercaller.ToggleMusicUsecase -import nl.entreco.domain.play.mastercaller.ToggleSoundUsecase import nl.entreco.domain.play.revanche.RevancheRequest import nl.entreco.domain.play.revanche.RevancheResponse import nl.entreco.domain.play.revanche.RevancheUsecase diff --git a/android/DartsScorecard/app/src/main/java/nl/entreco/dartsscorecard/settings/SettingsViewModel.kt b/android/DartsScorecard/app/src/main/java/nl/entreco/dartsscorecard/settings/SettingsViewModel.kt index b6424689..4076193b 100644 --- a/android/DartsScorecard/app/src/main/java/nl/entreco/dartsscorecard/settings/SettingsViewModel.kt +++ b/android/DartsScorecard/app/src/main/java/nl/entreco/dartsscorecard/settings/SettingsViewModel.kt @@ -8,8 +8,8 @@ import androidx.databinding.ObservableInt import androidx.lifecycle.LiveData import androidx.lifecycle.MutableLiveData import nl.entreco.dartsscorecard.base.BaseViewModel -import nl.entreco.domain.play.mastercaller.ToggleMusicUsecase -import nl.entreco.domain.play.mastercaller.ToggleSoundUsecase +import nl.entreco.domain.mastercaller.ToggleMusicUsecase +import nl.entreco.domain.mastercaller.ToggleSoundUsecase import nl.entreco.domain.repository.AudioPrefRepository import nl.entreco.domain.repository.BotPrefRepository import nl.entreco.shared.toSingleEvent diff --git a/android/DartsScorecard/app/src/main/res/values/strings.xml b/android/DartsScorecard/app/src/main/res/values/strings.xml index 9d0fa4bd..27aa90a4 100644 --- a/android/DartsScorecard/app/src/main/res/values/strings.xml +++ b/android/DartsScorecard/app/src/main/res/values/strings.xml @@ -231,4 +231,5 @@ First to %1$s sets First to %1$s legs Which features would you like to see added to the app + Sound pack diff --git a/android/DartsScorecard/app/src/test/java/nl/entreco/dartsscorecard/di/play/Play01ModuleTest.kt b/android/DartsScorecard/app/src/test/java/nl/entreco/dartsscorecard/di/play/Play01ModuleTest.kt index e07a6e42..4b59052b 100644 --- a/android/DartsScorecard/app/src/test/java/nl/entreco/dartsscorecard/di/play/Play01ModuleTest.kt +++ b/android/DartsScorecard/app/src/test/java/nl/entreco/dartsscorecard/di/play/Play01ModuleTest.kt @@ -1,13 +1,8 @@ package nl.entreco.dartsscorecard.di.play import android.content.Context -import android.content.SharedPreferences -import android.media.SoundPool -import com.nhaarman.mockito_kotlin.whenever import nl.entreco.dartsscorecard.play.Play01Activity -import nl.entreco.data.sound.SoundMapper import nl.entreco.domain.beta.donations.MakePurchaseResponse -import nl.entreco.domain.repository.AudioPrefRepository import org.junit.Assert.assertEquals import org.junit.Assert.assertNotNull import org.junit.Test @@ -22,9 +17,6 @@ import org.mockito.junit.MockitoJUnitRunner class Play01ModuleTest { @Mock private lateinit var mockListener: (MakePurchaseResponse) -> Unit - @Mock private lateinit var mockSharedPrefs: SharedPreferences - @Mock private lateinit var mockAudioPrefs: AudioPrefRepository - @Mock private lateinit var mockMapper: SoundMapper @Mock private lateinit var mockContext: Context @Mock private lateinit var mockActivity: Play01Activity @@ -40,12 +32,7 @@ class Play01ModuleTest { @Test(expected = NullPointerException::class) // SoundPool.Builder fun `it should provide SoundRepository`() { - assertNotNull(subject().provideSoundRepository(mockContext, mockMapper, mockAudioPrefs)) - } - - @Test - fun `it should provide soundMapper`() { - assertNotNull(subject().provideSoundMapper()) + assertNotNull(subject().provideSoundRepository()) } @Test diff --git a/android/DartsScorecard/app/src/test/java/nl/entreco/dartsscorecard/play/Play01ViewModelMasterCallerTest.kt b/android/DartsScorecard/app/src/test/java/nl/entreco/dartsscorecard/play/Play01ViewModelMasterCallerTest.kt index c0a2f7fa..5b8a22f3 100644 --- a/android/DartsScorecard/app/src/test/java/nl/entreco/dartsscorecard/play/Play01ViewModelMasterCallerTest.kt +++ b/android/DartsScorecard/app/src/test/java/nl/entreco/dartsscorecard/play/Play01ViewModelMasterCallerTest.kt @@ -6,25 +6,21 @@ import com.nhaarman.mockito_kotlin.* import nl.entreco.dartsscorecard.R import nl.entreco.libads.ui.AdViewModel import nl.entreco.dartsscorecard.base.DialogHelper -import nl.entreco.dartsscorecard.play.bot.CalculateBotScoreUsecase import nl.entreco.dartsscorecard.play.score.GameLoadedNotifier import nl.entreco.domain.model.* import nl.entreco.domain.model.players.Player import nl.entreco.domain.model.players.Team -import nl.entreco.domain.play.mastercaller.* +import nl.entreco.dartsscorecard.sounds.mastercaller.* import nl.entreco.domain.play.revanche.RevancheUsecase import nl.entreco.domain.play.start.Play01Request import nl.entreco.domain.play.start.Play01Response import nl.entreco.domain.play.start.Play01Usecase import nl.entreco.domain.rating.AskForRatingUsecase -import nl.entreco.domain.repository.AudioPrefRepository +import nl.entreco.dartsscorecard.sounds.AudioPrefRepository import nl.entreco.domain.settings.ScoreSettings import nl.entreco.liblog.Logger import org.junit.Assert.assertEquals import org.junit.Test -import org.junit.runner.RunWith -import org.mockito.Mock -import org.mockito.junit.MockitoJUnitRunner /** * Created by entreco on 14/03/2018. @@ -36,7 +32,7 @@ class Play01ViewModelMasterCallerTest { private val mockPlayGameUsecase: Play01Usecase = mock() private val mockAskForRatingUsecase: AskForRatingUsecase = mock() private val mockToggleSoundUsecase: ToggleSoundUsecase = mock() - private val mockAudioPrefs: AudioPrefRepository = mock() + private val mockAudioPrefs: nl.entreco.dartsscorecard.sounds.AudioPrefRepository = mock() private val mockAdProvider: AdViewModel = mock() private val mockToggleMusicUsecase: ToggleMusicUsecase = mock() private val mockMusicPlayer: MusicPlayer = mock() diff --git a/android/DartsScorecard/app/src/test/java/nl/entreco/dartsscorecard/play/Play01ViewModelRevancheTest.kt b/android/DartsScorecard/app/src/test/java/nl/entreco/dartsscorecard/play/Play01ViewModelRevancheTest.kt index 5ef69b8c..6e065fbb 100644 --- a/android/DartsScorecard/app/src/test/java/nl/entreco/dartsscorecard/play/Play01ViewModelRevancheTest.kt +++ b/android/DartsScorecard/app/src/test/java/nl/entreco/dartsscorecard/play/Play01ViewModelRevancheTest.kt @@ -7,29 +7,25 @@ import com.nhaarman.mockito_kotlin.verify import com.nhaarman.mockito_kotlin.whenever import nl.entreco.libads.ui.AdViewModel import nl.entreco.dartsscorecard.base.DialogHelper -import nl.entreco.dartsscorecard.play.bot.CalculateBotScoreUsecase import nl.entreco.dartsscorecard.play.score.GameLoadedNotifier import nl.entreco.domain.model.Game import nl.entreco.domain.model.Next import nl.entreco.domain.model.State import nl.entreco.domain.model.players.Team -import nl.entreco.domain.play.mastercaller.MasterCaller -import nl.entreco.domain.play.mastercaller.MusicPlayer -import nl.entreco.domain.play.mastercaller.ToggleMusicUsecase -import nl.entreco.domain.play.mastercaller.ToggleSoundUsecase +import nl.entreco.dartsscorecard.sounds.mastercaller.MasterCaller +import nl.entreco.dartsscorecard.sounds.mastercaller.MusicPlayer +import nl.entreco.dartsscorecard.sounds.mastercaller.ToggleMusicUsecase +import nl.entreco.dartsscorecard.sounds.mastercaller.ToggleSoundUsecase import nl.entreco.domain.play.revanche.RevancheResponse import nl.entreco.domain.play.revanche.RevancheUsecase import nl.entreco.domain.play.start.Play01Request import nl.entreco.domain.play.start.Play01Response import nl.entreco.domain.play.start.Play01Usecase import nl.entreco.domain.rating.AskForRatingUsecase -import nl.entreco.domain.repository.AudioPrefRepository +import nl.entreco.dartsscorecard.sounds.AudioPrefRepository import nl.entreco.domain.settings.ScoreSettings import nl.entreco.liblog.Logger import org.junit.Test -import org.junit.runner.RunWith -import org.mockito.Mock -import org.mockito.junit.MockitoJUnitRunner /** * Created by entreco on 19/02/2018. @@ -40,7 +36,7 @@ class Play01ViewModelRevancheTest { private val mockToggleMusicUsecase: ToggleMusicUsecase = mock() private val mockMusicPlayer: MusicPlayer = mock() private val mockToggleSoundUsecase: ToggleSoundUsecase = mock() - private val mockAudioPrefs: AudioPrefRepository = mock() + private val mockAudioPrefs: nl.entreco.dartsscorecard.sounds.AudioPrefRepository = mock() private val mockAdProvider: AdViewModel = mock() private val mockRevancheUsecase: RevancheUsecase = mock() private val mockGameListeners: Play01Listeners = mock() diff --git a/android/DartsScorecard/app/src/test/java/nl/entreco/dartsscorecard/play/Play01ViewModelTest.kt b/android/DartsScorecard/app/src/test/java/nl/entreco/dartsscorecard/play/Play01ViewModelTest.kt index f92b1b48..1a350f5e 100644 --- a/android/DartsScorecard/app/src/test/java/nl/entreco/dartsscorecard/play/Play01ViewModelTest.kt +++ b/android/DartsScorecard/app/src/test/java/nl/entreco/dartsscorecard/play/Play01ViewModelTest.kt @@ -3,7 +3,6 @@ package nl.entreco.dartsscorecard.play import com.nhaarman.mockito_kotlin.* import nl.entreco.libads.ui.AdViewModel import nl.entreco.dartsscorecard.base.DialogHelper -import nl.entreco.dartsscorecard.play.bot.CalculateBotScoreUsecase import nl.entreco.dartsscorecard.play.score.GameLoadedNotifier import nl.entreco.dartsscorecard.play.score.TeamScoreListener import nl.entreco.domain.model.* @@ -14,24 +13,23 @@ import nl.entreco.domain.play.listeners.PlayerListener import nl.entreco.domain.play.listeners.ScoreListener import nl.entreco.domain.play.listeners.SpecialEventListener import nl.entreco.domain.play.listeners.StatListener -import nl.entreco.domain.play.mastercaller.MasterCaller -import nl.entreco.domain.play.mastercaller.MusicPlayer -import nl.entreco.domain.play.mastercaller.ToggleMusicUsecase -import nl.entreco.domain.play.mastercaller.ToggleSoundUsecase +import nl.entreco.dartsscorecard.sounds.mastercaller.MasterCaller +import nl.entreco.dartsscorecard.sounds.mastercaller.MusicPlayer +import nl.entreco.dartsscorecard.sounds.mastercaller.ToggleMusicUsecase +import nl.entreco.dartsscorecard.sounds.mastercaller.ToggleSoundUsecase import nl.entreco.domain.play.revanche.RevancheUsecase import nl.entreco.domain.play.start.MarkGameAsFinishedRequest import nl.entreco.domain.play.start.Play01Request import nl.entreco.domain.play.start.Play01Response import nl.entreco.domain.play.start.Play01Usecase import nl.entreco.domain.rating.AskForRatingUsecase -import nl.entreco.domain.repository.AudioPrefRepository +import nl.entreco.dartsscorecard.sounds.AudioPrefRepository import nl.entreco.domain.settings.ScoreSettings import nl.entreco.domain.setup.game.CreateGameRequest import nl.entreco.liblog.Logger import org.junit.Assert.assertArrayEquals import org.junit.Before import org.junit.Test -import org.mockito.Mock import org.mockito.MockitoAnnotations /** @@ -53,7 +51,7 @@ class Play01ViewModelTest { private val mockToggleSoundUsecase: ToggleSoundUsecase = mock() private val mockAskForRatingUsecase: AskForRatingUsecase = mock() private val mockAdProvider: AdViewModel = mock() - private val mockAudioPrefs: AudioPrefRepository = mock() + private val mockAudioPrefs: nl.entreco.dartsscorecard.sounds.AudioPrefRepository = mock() private val mockPlayGameUsecase: Play01Usecase = mock() private val mockRevancheUsecase: RevancheUsecase = mock() private val mock01Listeners: Play01Listeners = mock() diff --git a/android/DartsScorecard/app/src/test/java/nl/entreco/dartsscorecard/play/Play01ViewModelUndoTest.kt b/android/DartsScorecard/app/src/test/java/nl/entreco/dartsscorecard/play/Play01ViewModelUndoTest.kt index 66055255..5e8e7349 100644 --- a/android/DartsScorecard/app/src/test/java/nl/entreco/dartsscorecard/play/Play01ViewModelUndoTest.kt +++ b/android/DartsScorecard/app/src/test/java/nl/entreco/dartsscorecard/play/Play01ViewModelUndoTest.kt @@ -3,16 +3,15 @@ package nl.entreco.dartsscorecard.play import com.nhaarman.mockito_kotlin.* import nl.entreco.libads.ui.AdViewModel import nl.entreco.dartsscorecard.base.DialogHelper -import nl.entreco.dartsscorecard.play.bot.CalculateBotScoreUsecase import nl.entreco.dartsscorecard.play.score.GameLoadedNotifier import nl.entreco.domain.model.Game import nl.entreco.domain.model.Next import nl.entreco.domain.model.State import nl.entreco.domain.model.players.Team -import nl.entreco.domain.play.mastercaller.MasterCaller -import nl.entreco.domain.play.mastercaller.MusicPlayer -import nl.entreco.domain.play.mastercaller.ToggleMusicUsecase -import nl.entreco.domain.play.mastercaller.ToggleSoundUsecase +import nl.entreco.dartsscorecard.sounds.mastercaller.MasterCaller +import nl.entreco.dartsscorecard.sounds.mastercaller.MusicPlayer +import nl.entreco.dartsscorecard.sounds.mastercaller.ToggleMusicUsecase +import nl.entreco.dartsscorecard.sounds.mastercaller.ToggleSoundUsecase import nl.entreco.domain.play.revanche.RevancheUsecase import nl.entreco.domain.play.start.Play01Request import nl.entreco.domain.play.start.Play01Response @@ -20,14 +19,11 @@ import nl.entreco.domain.play.start.Play01Usecase import nl.entreco.domain.play.stats.UndoTurnRequest import nl.entreco.domain.play.stats.UndoTurnResponse import nl.entreco.domain.rating.AskForRatingUsecase -import nl.entreco.domain.repository.AudioPrefRepository +import nl.entreco.dartsscorecard.sounds.AudioPrefRepository import nl.entreco.domain.settings.ScoreSettings import nl.entreco.liblog.Logger import org.junit.Assert.assertEquals import org.junit.Test -import org.junit.runner.RunWith -import org.mockito.Mock -import org.mockito.junit.MockitoJUnitRunner /** * Created by entreco on 25/01/2018. @@ -45,7 +41,7 @@ class Play01ViewModelUndoTest { private val mockMusicPlayer: MusicPlayer = mock() private val mockToggleSoundUsecase: ToggleSoundUsecase = mock() private val mockAskForRatingUsecase: AskForRatingUsecase = mock() - private val mockAudioPrefs: AudioPrefRepository = mock() + private val mockAudioPrefs: nl.entreco.dartsscorecard.sounds.AudioPrefRepository = mock() private val mockLoad: GameLoadedNotifier = mock() private val mockLoaders: GameLoadedNotifier = mock() diff --git a/android/DartsScorecard/data/src/test/java/nl/entreco/data/sound/LocalSoundRepositoryTest.kt b/android/DartsScorecard/data/src/test/java/nl/entreco/data/sound/LocalSoundRepositoryTest.kt index 3572989d..823f938b 100644 --- a/android/DartsScorecard/data/src/test/java/nl/entreco/data/sound/LocalSoundRepositoryTest.kt +++ b/android/DartsScorecard/data/src/test/java/nl/entreco/data/sound/LocalSoundRepositoryTest.kt @@ -9,10 +9,10 @@ import com.nhaarman.mockito_kotlin.never import com.nhaarman.mockito_kotlin.verify import com.nhaarman.mockito_kotlin.whenever import nl.entreco.data.R -import nl.entreco.domain.play.mastercaller.Fx00 -import nl.entreco.domain.play.mastercaller.Fx01 -import nl.entreco.domain.play.mastercaller.Sound -import nl.entreco.domain.repository.AudioPrefRepository +import nl.entreco.dartsscorecard.sounds.mastercaller.Fx00 +import nl.entreco.dartsscorecard.sounds.mastercaller.Fx01 +import nl.entreco.dartsscorecard.sounds.mastercaller.Sound +import nl.entreco.dartsscorecard.sounds.AudioPrefRepository import org.junit.Assert.assertTrue import org.junit.Test import org.junit.runner.RunWith @@ -29,10 +29,10 @@ class LocalSoundRepositoryTest { private val fx0 = Fx00 private val fx1 = Fx01 - @Mock private lateinit var mockAudioRepo: AudioPrefRepository + @Mock private lateinit var mockAudioRepo: nl.entreco.dartsscorecard.sounds.AudioPrefRepository @Mock private lateinit var mockSoundPool: SoundPool @Mock private lateinit var mockContext: Context - private lateinit var subject: LocalSoundRepository + private lateinit var subject: nl.entreco.dartsscorecard.sounds.LocalSoundRepository private var loadedSounds = emptyList() @Test @@ -96,7 +96,7 @@ class LocalSoundRepositoryTest { private fun givenSubject(enabled: Boolean = true) { whenever(mockAudioRepo.isMasterCallerEnabled()).doReturn(enabled) - subject = LocalSoundRepository(mockContext, mockSoundPool, mockAudioRepo, SoundMapper()) + subject = nl.entreco.dartsscorecard.sounds.LocalSoundRepository(mockContext, mockSoundPool, mockAudioRepo, nl.entreco.dartsscorecard.sounds.SoundMapper()) } private fun givenLoadedSounds(vararg sounds: Sound) { @@ -104,7 +104,7 @@ class LocalSoundRepositoryTest { } private fun whenPlaying(sound: Sound) { - val res = SoundMapper().toRaw(sound) + val res = nl.entreco.dartsscorecard.sounds.SoundMapper().toRaw(sound) whenever(mockSoundPool.load(mockContext, res, normalPriority)).doReturn(sound.hashCode()) subject.play(sound) } diff --git a/android/DartsScorecard/data/src/test/java/nl/entreco/data/sound/SoundMapperTest.kt b/android/DartsScorecard/data/src/test/java/nl/entreco/data/sound/SoundMapperTest.kt index a0a3b9ac..3347ab5a 100644 --- a/android/DartsScorecard/data/src/test/java/nl/entreco/data/sound/SoundMapperTest.kt +++ b/android/DartsScorecard/data/src/test/java/nl/entreco/data/sound/SoundMapperTest.kt @@ -1,7 +1,7 @@ package nl.entreco.data.sound import nl.entreco.data.R -import nl.entreco.domain.play.mastercaller.* +import nl.entreco.dartsscorecard.sounds.mastercaller.* import org.junit.Assert.assertEquals import org.junit.Test @@ -10,7 +10,7 @@ import org.junit.Test */ class SoundMapperTest { - private val subject = SoundMapper() + private val subject = nl.entreco.dartsscorecard.sounds.SoundMapper() @Test fun `it should map None`() { diff --git a/android/DartsScorecard/domain/src/main/java/nl/entreco/domain/play/mastercaller/MasterCaller.kt b/android/DartsScorecard/domain/src/main/java/nl/entreco/domain/mastercaller/MasterCaller.kt similarity index 55% rename from android/DartsScorecard/domain/src/main/java/nl/entreco/domain/play/mastercaller/MasterCaller.kt rename to android/DartsScorecard/domain/src/main/java/nl/entreco/domain/mastercaller/MasterCaller.kt index 033477a6..0e4a9e41 100644 --- a/android/DartsScorecard/domain/src/main/java/nl/entreco/domain/play/mastercaller/MasterCaller.kt +++ b/android/DartsScorecard/domain/src/main/java/nl/entreco/domain/mastercaller/MasterCaller.kt @@ -1,20 +1,22 @@ -package nl.entreco.domain.play.mastercaller +package nl.entreco.domain.mastercaller import nl.entreco.shared.BaseUsecase import nl.entreco.shared.threading.Background import nl.entreco.shared.threading.Foreground -import nl.entreco.domain.repository.SoundRepository import nl.entreco.liblog.Logger import javax.inject.Inject /** * Created by entreco on 14/03/2018. */ -class MasterCaller @Inject constructor(private val logger: Logger, - private val soundRepository: SoundRepository, - bg: Background, fg: Foreground) : BaseUsecase(bg, fg) { +class MasterCaller @Inject constructor( + private val logger: Logger, + private val soundRepository: SoundRepository, + bg: Background, + fg: Foreground +) : BaseUsecase(bg, fg) { - fun play(request: MasterCallerRequest){ + fun play(request: MasterCallerRequest) { onBackground({ soundRepository.play(request.toSound()) }, onEnqueueFailed(request)) @@ -27,6 +29,6 @@ class MasterCaller @Inject constructor(private val logger: Logger, } fun stop() { - onBackground({ soundRepository.release()}, {}) + onBackground({ soundRepository.release() }, {}) } } \ No newline at end of file diff --git a/android/DartsScorecard/domain/src/main/java/nl/entreco/domain/play/mastercaller/MasterCallerRequest.kt b/android/DartsScorecard/domain/src/main/java/nl/entreco/domain/mastercaller/MasterCallerRequest.kt similarity index 94% rename from android/DartsScorecard/domain/src/main/java/nl/entreco/domain/play/mastercaller/MasterCallerRequest.kt rename to android/DartsScorecard/domain/src/main/java/nl/entreco/domain/mastercaller/MasterCallerRequest.kt index 7bc21ae8..05d53bbd 100644 --- a/android/DartsScorecard/domain/src/main/java/nl/entreco/domain/play/mastercaller/MasterCallerRequest.kt +++ b/android/DartsScorecard/domain/src/main/java/nl/entreco/domain/mastercaller/MasterCallerRequest.kt @@ -1,9 +1,15 @@ -package nl.entreco.domain.play.mastercaller +package nl.entreco.domain.mastercaller /** * Created by entreco on 14/03/2018. */ -class MasterCallerRequest(val scored: Int = -1, val start: Boolean = false, val leg: Boolean = false, val set: Boolean = false, val match:Boolean = false) { +class MasterCallerRequest( + private val scored: Int = -1, + private val start: Boolean = false, + private val leg: Boolean = false, + private val set: Boolean = false, + private val match: Boolean = false +) { fun toSound(): Sound { return when { diff --git a/android/DartsScorecard/domain/src/main/java/nl/entreco/domain/play/mastercaller/MusicPlayer.kt b/android/DartsScorecard/domain/src/main/java/nl/entreco/domain/mastercaller/MusicPlayer.kt similarity index 83% rename from android/DartsScorecard/domain/src/main/java/nl/entreco/domain/play/mastercaller/MusicPlayer.kt rename to android/DartsScorecard/domain/src/main/java/nl/entreco/domain/mastercaller/MusicPlayer.kt index 1d1e7a18..7164bafd 100644 --- a/android/DartsScorecard/domain/src/main/java/nl/entreco/domain/play/mastercaller/MusicPlayer.kt +++ b/android/DartsScorecard/domain/src/main/java/nl/entreco/domain/mastercaller/MusicPlayer.kt @@ -1,7 +1,5 @@ -package nl.entreco.domain.play.mastercaller +package nl.entreco.domain.mastercaller -import nl.entreco.domain.repository.MusicRepository -import nl.entreco.liblog.Logger import nl.entreco.shared.BaseUsecase import nl.entreco.shared.threading.Background import nl.entreco.shared.threading.Foreground diff --git a/android/DartsScorecard/domain/src/main/java/nl/entreco/domain/repository/MusicRepository.kt b/android/DartsScorecard/domain/src/main/java/nl/entreco/domain/mastercaller/MusicRepository.kt similarity index 70% rename from android/DartsScorecard/domain/src/main/java/nl/entreco/domain/repository/MusicRepository.kt rename to android/DartsScorecard/domain/src/main/java/nl/entreco/domain/mastercaller/MusicRepository.kt index c4666f83..39f13310 100644 --- a/android/DartsScorecard/domain/src/main/java/nl/entreco/domain/repository/MusicRepository.kt +++ b/android/DartsScorecard/domain/src/main/java/nl/entreco/domain/mastercaller/MusicRepository.kt @@ -1,4 +1,4 @@ -package nl.entreco.domain.repository +package nl.entreco.domain.mastercaller interface MusicRepository { fun play() diff --git a/android/DartsScorecard/domain/src/main/java/nl/entreco/domain/play/mastercaller/Sound.kt b/android/DartsScorecard/domain/src/main/java/nl/entreco/domain/mastercaller/Sound.kt similarity index 98% rename from android/DartsScorecard/domain/src/main/java/nl/entreco/domain/play/mastercaller/Sound.kt rename to android/DartsScorecard/domain/src/main/java/nl/entreco/domain/mastercaller/Sound.kt index 170af6f5..ae88b6d3 100644 --- a/android/DartsScorecard/domain/src/main/java/nl/entreco/domain/play/mastercaller/Sound.kt +++ b/android/DartsScorecard/domain/src/main/java/nl/entreco/domain/mastercaller/Sound.kt @@ -1,4 +1,4 @@ -package nl.entreco.domain.play.mastercaller +package nl.entreco.domain.mastercaller /** * Created by entreco on 14/03/2018. diff --git a/android/DartsScorecard/domain/src/main/java/nl/entreco/domain/repository/SoundRepository.kt b/android/DartsScorecard/domain/src/main/java/nl/entreco/domain/mastercaller/SoundRepository.kt similarity index 69% rename from android/DartsScorecard/domain/src/main/java/nl/entreco/domain/repository/SoundRepository.kt rename to android/DartsScorecard/domain/src/main/java/nl/entreco/domain/mastercaller/SoundRepository.kt index 41b6cbea..6c5ec147 100644 --- a/android/DartsScorecard/domain/src/main/java/nl/entreco/domain/repository/SoundRepository.kt +++ b/android/DartsScorecard/domain/src/main/java/nl/entreco/domain/mastercaller/SoundRepository.kt @@ -1,7 +1,7 @@ -package nl.entreco.domain.repository +package nl.entreco.domain.mastercaller import androidx.annotation.WorkerThread -import nl.entreco.domain.play.mastercaller.Sound +import nl.entreco.domain.mastercaller.Sound /** * Created by entreco on 14/03/2018. diff --git a/android/DartsScorecard/domain/src/main/java/nl/entreco/domain/play/mastercaller/ToggleMusicUsecase.kt b/android/DartsScorecard/domain/src/main/java/nl/entreco/domain/mastercaller/ToggleMusicUsecase.kt similarity index 76% rename from android/DartsScorecard/domain/src/main/java/nl/entreco/domain/play/mastercaller/ToggleMusicUsecase.kt rename to android/DartsScorecard/domain/src/main/java/nl/entreco/domain/mastercaller/ToggleMusicUsecase.kt index 1b986096..6905fedb 100644 --- a/android/DartsScorecard/domain/src/main/java/nl/entreco/domain/play/mastercaller/ToggleMusicUsecase.kt +++ b/android/DartsScorecard/domain/src/main/java/nl/entreco/domain/mastercaller/ToggleMusicUsecase.kt @@ -1,4 +1,4 @@ -package nl.entreco.domain.play.mastercaller +package nl.entreco.domain.mastercaller import nl.entreco.domain.repository.AudioPrefRepository import nl.entreco.shared.BaseUsecase @@ -7,8 +7,11 @@ import nl.entreco.shared.threading.Foreground import javax.inject.Inject class ToggleMusicUsecase @Inject constructor( - private val audioPrefRepository: AudioPrefRepository, bg: Background, fg: Foreground + private val audioPrefRepository: AudioPrefRepository, + bg: Background, + fg: Foreground ) : BaseUsecase(bg, fg) { + fun toggle() { onBackground({ val toggled = !audioPrefRepository.isBackgroundMusicEnabled() diff --git a/android/DartsScorecard/domain/src/main/java/nl/entreco/domain/play/mastercaller/ToggleSoundUsecase.kt b/android/DartsScorecard/domain/src/main/java/nl/entreco/domain/mastercaller/ToggleSoundUsecase.kt similarity index 90% rename from android/DartsScorecard/domain/src/main/java/nl/entreco/domain/play/mastercaller/ToggleSoundUsecase.kt rename to android/DartsScorecard/domain/src/main/java/nl/entreco/domain/mastercaller/ToggleSoundUsecase.kt index cadde4e6..a83b0e30 100644 --- a/android/DartsScorecard/domain/src/main/java/nl/entreco/domain/play/mastercaller/ToggleSoundUsecase.kt +++ b/android/DartsScorecard/domain/src/main/java/nl/entreco/domain/mastercaller/ToggleSoundUsecase.kt @@ -1,9 +1,9 @@ -package nl.entreco.domain.play.mastercaller +package nl.entreco.domain.mastercaller +import nl.entreco.domain.repository.AudioPrefRepository import nl.entreco.shared.BaseUsecase import nl.entreco.shared.threading.Background import nl.entreco.shared.threading.Foreground -import nl.entreco.domain.repository.AudioPrefRepository import javax.inject.Inject /** @@ -14,7 +14,7 @@ class ToggleSoundUsecase @Inject constructor( bg: Background, fg: Foreground ) : BaseUsecase(bg, fg) { - fun toggle(){ + fun toggle() { onBackground({ val toggled = !audioPrefRepository.isMasterCallerEnabled() audioPrefRepository.setMasterCallerEnabled(toggled) diff --git a/android/DartsScorecard/domain/src/test/java/nl/entreco/domain/mastercaller/MasterCallerRequestTest.kt b/android/DartsScorecard/domain/src/test/java/nl/entreco/domain/mastercaller/MasterCallerRequestTest.kt new file mode 100644 index 00000000..26274871 --- /dev/null +++ b/android/DartsScorecard/domain/src/test/java/nl/entreco/domain/mastercaller/MasterCallerRequestTest.kt @@ -0,0 +1,210 @@ +package nl.entreco.domain.mastercaller + +import org.junit.Assert.assertTrue +import org.junit.Test + +/** + * Created by entreco on 14/03/2018. + */ +class MasterCallerRequestTest{ + + @Test + fun `it should map to 'Fx00' when scoring 0`() { + assertTrue( req(0) is Fx00) + } + + @Test + fun `it should map to 'Fx01' when scoring 1`() { + assertTrue( req(1) is Fx01) + } + + @Test + fun `it should map to 'Fx02' when scoring 2`() { + assertTrue( req(2) is Fx02) + } + + @Test + fun `it should map to 'others' when scoring others`() { + assertTrue(req(3) is Fx03) + assertTrue(req(4) is Fx04) + assertTrue(req(5) is Fx05) + assertTrue(req(6) is Fx06) + assertTrue(req(7) is Fx07) + assertTrue(req(8) is Fx08) + assertTrue(req(9) is Fx09) + assertTrue(req(10) is Fx10) + assertTrue(req(11) is Fx11) + assertTrue(req(12) is Fx12) + assertTrue(req(13) is Fx13) + assertTrue(req(14) is Fx14) + assertTrue(req(15) is Fx15) + assertTrue(req(16) is Fx16) + assertTrue(req(17) is Fx17) + assertTrue(req(18) is Fx18) + assertTrue(req(19) is Fx19) + assertTrue(req(20) is Fx20) + assertTrue(req(21) is Fx21) + assertTrue(req(22) is Fx22) + assertTrue(req(23) is Fx23) + assertTrue(req(24) is Fx24) + assertTrue(req(25) is Fx25) + assertTrue(req(26) is Fx26) + assertTrue(req(27) is Fx27) + assertTrue(req(28) is Fx28) + assertTrue(req(29) is Fx29) + assertTrue(req(30) is Fx30) + assertTrue(req(31) is Fx31) + assertTrue(req(32) is Fx32) + assertTrue(req(33) is Fx33) + assertTrue(req(34) is Fx34) + assertTrue(req(35) is Fx35) + assertTrue(req(36) is Fx36) + assertTrue(req(37) is Fx37) + assertTrue(req(38) is Fx38) + assertTrue(req(39) is Fx39) + assertTrue(req(40) is Fx40) + assertTrue(req(41) is Fx41) + assertTrue(req(42) is Fx42) + assertTrue(req(43) is Fx43) + assertTrue(req(44) is Fx44) + assertTrue(req(45) is Fx45) + assertTrue(req(46) is Fx46) + assertTrue(req(47) is Fx47) + assertTrue(req(48) is Fx48) + assertTrue(req(49) is Fx49) + assertTrue(req(50) is Fx50) + assertTrue(req(51) is Fx51) + assertTrue(req(52) is Fx52) + assertTrue(req(53) is Fx53) + assertTrue(req(54) is Fx54) + assertTrue(req(55) is Fx55) + assertTrue(req(56) is Fx56) + assertTrue(req(57) is Fx57) + assertTrue(req(58) is Fx58) + assertTrue(req(59) is Fx59) + assertTrue(req(60) is Fx60) + assertTrue(req(61) is Fx61) + assertTrue(req(62) is Fx62) + assertTrue(req(63) is Fx63) + assertTrue(req(64) is Fx64) + assertTrue(req(65) is Fx65) + assertTrue(req(66) is Fx66) + assertTrue(req(67) is Fx67) + assertTrue(req(68) is Fx68) + assertTrue(req(69) is Fx69) + assertTrue(req(70) is Fx70) + assertTrue(req(71) is Fx71) + assertTrue(req(72) is Fx72) + assertTrue(req(73) is Fx73) + assertTrue(req(74) is Fx74) + assertTrue(req(75) is Fx75) + assertTrue(req(76) is Fx76) + assertTrue(req(77) is Fx77) + assertTrue(req(78) is Fx78) + assertTrue(req(79) is Fx79) + assertTrue(req(80) is Fx80) + assertTrue(req(81) is Fx81) + assertTrue(req(82) is Fx82) + assertTrue(req(83) is Fx83) + assertTrue(req(84) is Fx84) + assertTrue(req(85) is Fx85) + assertTrue(req(86) is Fx86) + assertTrue(req(87) is Fx87) + assertTrue(req(88) is Fx88) + assertTrue(req(89) is Fx89) + assertTrue(req(90) is Fx90) + assertTrue(req(91) is Fx91) + assertTrue(req(92) is Fx92) + assertTrue(req(93) is Fx93) + assertTrue(req(94) is Fx94) + assertTrue(req(95) is Fx95) + assertTrue(req(96) is Fx96) + assertTrue(req(97) is Fx97) + assertTrue(req(98) is Fx98) + assertTrue(req(99) is Fx99) + assertTrue(req(100) is Fx100) + assertTrue(req(101) is Fx101) + assertTrue(req(102) is Fx102) + assertTrue(req(103) is Fx103) + assertTrue(req(104) is Fx104) + assertTrue(req(105) is Fx105) + assertTrue(req(106) is Fx106) + assertTrue(req(107) is Fx107) + assertTrue(req(108) is Fx108) + assertTrue(req(109) is Fx109) + assertTrue(req(110) is Fx110) + assertTrue(req(111) is Fx111) + assertTrue(req(112) is Fx112) + assertTrue(req(113) is Fx113) + assertTrue(req(114) is Fx114) + assertTrue(req(115) is Fx115) + assertTrue(req(116) is Fx116) + assertTrue(req(117) is Fx117) + assertTrue(req(118) is Fx118) + assertTrue(req(119) is Fx119) + assertTrue(req(120) is Fx120) + assertTrue(req(121) is Fx121) + assertTrue(req(122) is Fx122) + assertTrue(req(123) is Fx123) + assertTrue(req(124) is Fx124) + assertTrue(req(125) is Fx125) + assertTrue(req(126) is Fx126) + assertTrue(req(127) is Fx127) + assertTrue(req(128) is Fx128) + assertTrue(req(129) is Fx129) + assertTrue(req(130) is Fx130) + assertTrue(req(131) is Fx131) + assertTrue(req(132) is Fx132) + assertTrue(req(133) is Fx133) + assertTrue(req(134) is Fx134) + assertTrue(req(135) is Fx135) + assertTrue(req(136) is Fx136) + assertTrue(req(137) is Fx137) + assertTrue(req(138) is Fx138) + assertTrue(req(139) is Fx139) + assertTrue(req(140) is Fx140) + assertTrue(req(141) is Fx141) + assertTrue(req(142) is Fx142) + assertTrue(req(143) is Fx143) + assertTrue(req(144) is Fx144) + assertTrue(req(145) is Fx145) + assertTrue(req(146) is Fx146) + assertTrue(req(147) is Fx147) + assertTrue(req(148) is Fx148) + assertTrue(req(149) is Fx149) + assertTrue(req(150) is Fx150) + assertTrue(req(151) is Fx151) + assertTrue(req(152) is Fx152) + assertTrue(req(153) is Fx153) + assertTrue(req(154) is Fx154) + assertTrue(req(155) is Fx155) + assertTrue(req(156) is Fx156) + assertTrue(req(157) is Fx157) + assertTrue(req(158) is Fx158) + assertTrue(req(159) is Fx159) + assertTrue(req(160) is Fx160) + assertTrue(req(161) is Fx161) + assertTrue(req(162) is Fx162) + assertTrue(req(163) is Fx163) + assertTrue(req(164) is Fx164) + assertTrue(req(165) is Fx165) + assertTrue(req(166) is Fx166) + assertTrue(req(167) is Fx167) + assertTrue(req(168) is Fx168) + assertTrue(req(169) is Fx169) + assertTrue(req(170) is Fx170) + assertTrue(req(171) is Fx171) + assertTrue(req(174) is Fx174) + assertTrue(req(177) is Fx177) + assertTrue(req(180) is Fx180) + } + + + + @Test + fun `it should map to 'None' for unknown scores`() { + assertTrue(req(181) is None) + } + + private fun req(scored: Int) = MasterCallerRequest(scored = scored).toSound() +} \ No newline at end of file diff --git a/android/DartsScorecard/domain/src/test/java/nl/entreco/domain/play/mastercaller/MasterCallerTest.kt b/android/DartsScorecard/domain/src/test/java/nl/entreco/domain/mastercaller/MasterCallerTest.kt similarity index 95% rename from android/DartsScorecard/domain/src/test/java/nl/entreco/domain/play/mastercaller/MasterCallerTest.kt rename to android/DartsScorecard/domain/src/test/java/nl/entreco/domain/mastercaller/MasterCallerTest.kt index 82790a91..d15ca219 100644 --- a/android/DartsScorecard/domain/src/test/java/nl/entreco/domain/play/mastercaller/MasterCallerTest.kt +++ b/android/DartsScorecard/domain/src/test/java/nl/entreco/domain/mastercaller/MasterCallerTest.kt @@ -1,11 +1,10 @@ -package nl.entreco.domain.play.mastercaller +package nl.entreco.domain.mastercaller import com.nhaarman.mockito_kotlin.any import com.nhaarman.mockito_kotlin.verify import com.nhaarman.mockito_kotlin.whenever import nl.entreco.domain.common.executors.TestBackground import nl.entreco.domain.common.executors.TestForeground -import nl.entreco.domain.repository.SoundRepository import nl.entreco.liblog.Logger import org.junit.Test import org.junit.runner.RunWith diff --git a/android/DartsScorecard/domain/src/test/java/nl/entreco/domain/play/mastercaller/ToggleSoundUsecaseTest.kt b/android/DartsScorecard/domain/src/test/java/nl/entreco/domain/mastercaller/ToggleSoundUsecaseTest.kt similarity index 97% rename from android/DartsScorecard/domain/src/test/java/nl/entreco/domain/play/mastercaller/ToggleSoundUsecaseTest.kt rename to android/DartsScorecard/domain/src/test/java/nl/entreco/domain/mastercaller/ToggleSoundUsecaseTest.kt index c21b4ac5..2c1b2905 100644 --- a/android/DartsScorecard/domain/src/test/java/nl/entreco/domain/play/mastercaller/ToggleSoundUsecaseTest.kt +++ b/android/DartsScorecard/domain/src/test/java/nl/entreco/domain/mastercaller/ToggleSoundUsecaseTest.kt @@ -1,4 +1,4 @@ -package nl.entreco.domain.play.mastercaller +package nl.entreco.domain.mastercaller import com.nhaarman.mockito_kotlin.argumentCaptor import com.nhaarman.mockito_kotlin.verify diff --git a/android/DartsScorecard/domain/src/test/java/nl/entreco/domain/play/mastercaller/MasterCallerRequestTest.kt b/android/DartsScorecard/domain/src/test/java/nl/entreco/domain/play/mastercaller/MasterCallerRequestTest.kt deleted file mode 100644 index 1b3b0336..00000000 --- a/android/DartsScorecard/domain/src/test/java/nl/entreco/domain/play/mastercaller/MasterCallerRequestTest.kt +++ /dev/null @@ -1,210 +0,0 @@ -package nl.entreco.domain.play.mastercaller - -import org.junit.Assert.assertTrue -import org.junit.Test - -/** - * Created by entreco on 14/03/2018. - */ -class MasterCallerRequestTest{ - - @Test - fun `it should map to 'Fx00' when scoring 0`() { - assertTrue( req(0) is Fx00) - } - - @Test - fun `it should map to 'Fx01' when scoring 1`() { - assertTrue( req(1) is Fx01) - } - - @Test - fun `it should map to 'Fx02' when scoring 2`() { - assertTrue( req(2) is Fx02) - } - - @Test - fun `it should map to 'others' when scoring others`() { - assertTrue(req(3) is Fx03 ) - assertTrue(req(4) is Fx04 ) - assertTrue(req(5) is Fx05 ) - assertTrue(req(6) is Fx06 ) - assertTrue(req(7) is Fx07 ) - assertTrue(req(8) is Fx08 ) - assertTrue(req(9) is Fx09 ) - assertTrue(req(10) is Fx10 ) - assertTrue(req(11) is Fx11 ) - assertTrue(req(12) is Fx12 ) - assertTrue(req(13) is Fx13 ) - assertTrue(req(14) is Fx14 ) - assertTrue(req(15) is Fx15 ) - assertTrue(req(16) is Fx16 ) - assertTrue(req(17) is Fx17 ) - assertTrue(req(18) is Fx18 ) - assertTrue(req(19) is Fx19 ) - assertTrue(req(20) is Fx20 ) - assertTrue(req(21) is Fx21 ) - assertTrue(req(22) is Fx22 ) - assertTrue(req(23) is Fx23 ) - assertTrue(req(24) is Fx24 ) - assertTrue(req(25) is Fx25 ) - assertTrue(req(26) is Fx26 ) - assertTrue(req(27) is Fx27 ) - assertTrue(req(28) is Fx28 ) - assertTrue(req(29) is Fx29 ) - assertTrue(req(30) is Fx30 ) - assertTrue(req(31) is Fx31 ) - assertTrue(req(32) is Fx32 ) - assertTrue(req(33) is Fx33 ) - assertTrue(req(34) is Fx34 ) - assertTrue(req(35) is Fx35 ) - assertTrue(req(36) is Fx36 ) - assertTrue(req(37) is Fx37 ) - assertTrue(req(38) is Fx38 ) - assertTrue(req(39) is Fx39 ) - assertTrue(req(40) is Fx40 ) - assertTrue(req(41) is Fx41 ) - assertTrue(req(42) is Fx42 ) - assertTrue(req(43) is Fx43 ) - assertTrue(req(44) is Fx44 ) - assertTrue(req(45) is Fx45 ) - assertTrue(req(46) is Fx46 ) - assertTrue(req(47) is Fx47 ) - assertTrue(req(48) is Fx48 ) - assertTrue(req(49) is Fx49 ) - assertTrue(req(50) is Fx50 ) - assertTrue(req(51) is Fx51 ) - assertTrue(req(52) is Fx52 ) - assertTrue(req(53) is Fx53 ) - assertTrue(req(54) is Fx54 ) - assertTrue(req(55) is Fx55 ) - assertTrue(req(56) is Fx56 ) - assertTrue(req(57) is Fx57 ) - assertTrue(req(58) is Fx58 ) - assertTrue(req(59) is Fx59 ) - assertTrue(req(60) is Fx60 ) - assertTrue(req(61) is Fx61 ) - assertTrue(req(62) is Fx62 ) - assertTrue(req(63) is Fx63 ) - assertTrue(req(64) is Fx64 ) - assertTrue(req(65) is Fx65 ) - assertTrue(req(66) is Fx66 ) - assertTrue(req(67) is Fx67 ) - assertTrue(req(68) is Fx68 ) - assertTrue(req(69) is Fx69 ) - assertTrue(req(70) is Fx70 ) - assertTrue(req(71) is Fx71 ) - assertTrue(req(72) is Fx72 ) - assertTrue(req(73) is Fx73 ) - assertTrue(req(74) is Fx74 ) - assertTrue(req(75) is Fx75 ) - assertTrue(req(76) is Fx76 ) - assertTrue(req(77) is Fx77 ) - assertTrue(req(78) is Fx78 ) - assertTrue(req(79) is Fx79 ) - assertTrue(req(80) is Fx80 ) - assertTrue(req(81) is Fx81 ) - assertTrue(req(82) is Fx82 ) - assertTrue(req(83) is Fx83 ) - assertTrue(req(84) is Fx84 ) - assertTrue(req(85) is Fx85 ) - assertTrue(req(86) is Fx86 ) - assertTrue(req(87) is Fx87 ) - assertTrue(req(88) is Fx88 ) - assertTrue(req(89) is Fx89 ) - assertTrue(req(90) is Fx90 ) - assertTrue(req(91) is Fx91 ) - assertTrue(req(92) is Fx92 ) - assertTrue(req(93) is Fx93 ) - assertTrue(req(94) is Fx94 ) - assertTrue(req(95) is Fx95 ) - assertTrue(req(96) is Fx96 ) - assertTrue(req(97) is Fx97 ) - assertTrue(req(98) is Fx98 ) - assertTrue(req(99) is Fx99 ) - assertTrue(req(100) is Fx100 ) - assertTrue(req(101) is Fx101 ) - assertTrue(req(102) is Fx102 ) - assertTrue(req(103) is Fx103 ) - assertTrue(req(104) is Fx104 ) - assertTrue(req(105) is Fx105 ) - assertTrue(req(106) is Fx106 ) - assertTrue(req(107) is Fx107 ) - assertTrue(req(108) is Fx108 ) - assertTrue(req(109) is Fx109 ) - assertTrue(req(110) is Fx110 ) - assertTrue(req(111) is Fx111 ) - assertTrue(req(112) is Fx112 ) - assertTrue(req(113) is Fx113 ) - assertTrue(req(114) is Fx114 ) - assertTrue(req(115) is Fx115 ) - assertTrue(req(116) is Fx116 ) - assertTrue(req(117) is Fx117 ) - assertTrue(req(118) is Fx118 ) - assertTrue(req(119) is Fx119 ) - assertTrue(req(120) is Fx120 ) - assertTrue(req(121) is Fx121 ) - assertTrue(req(122) is Fx122 ) - assertTrue(req(123) is Fx123 ) - assertTrue(req(124) is Fx124 ) - assertTrue(req(125) is Fx125 ) - assertTrue(req(126) is Fx126 ) - assertTrue(req(127) is Fx127 ) - assertTrue(req(128) is Fx128 ) - assertTrue(req(129) is Fx129 ) - assertTrue(req(130) is Fx130 ) - assertTrue(req(131) is Fx131 ) - assertTrue(req(132) is Fx132 ) - assertTrue(req(133) is Fx133 ) - assertTrue(req(134) is Fx134 ) - assertTrue(req(135) is Fx135 ) - assertTrue(req(136) is Fx136 ) - assertTrue(req(137) is Fx137 ) - assertTrue(req(138) is Fx138 ) - assertTrue(req(139) is Fx139 ) - assertTrue(req(140) is Fx140 ) - assertTrue(req(141) is Fx141 ) - assertTrue(req(142) is Fx142 ) - assertTrue(req(143) is Fx143 ) - assertTrue(req(144) is Fx144 ) - assertTrue(req(145) is Fx145 ) - assertTrue(req(146) is Fx146 ) - assertTrue(req(147) is Fx147 ) - assertTrue(req(148) is Fx148 ) - assertTrue(req(149) is Fx149 ) - assertTrue(req(150) is Fx150 ) - assertTrue(req(151) is Fx151 ) - assertTrue(req(152) is Fx152 ) - assertTrue(req(153) is Fx153 ) - assertTrue(req(154) is Fx154 ) - assertTrue(req(155) is Fx155 ) - assertTrue(req(156) is Fx156 ) - assertTrue(req(157) is Fx157 ) - assertTrue(req(158) is Fx158 ) - assertTrue(req(159) is Fx159 ) - assertTrue(req(160) is Fx160 ) - assertTrue(req(161) is Fx161 ) - assertTrue(req(162) is Fx162 ) - assertTrue(req(163) is Fx163 ) - assertTrue(req(164) is Fx164 ) - assertTrue(req(165) is Fx165 ) - assertTrue(req(166) is Fx166 ) - assertTrue(req(167) is Fx167 ) - assertTrue(req(168) is Fx168 ) - assertTrue(req(169) is Fx169 ) - assertTrue(req(170) is Fx170 ) - assertTrue(req(171) is Fx171 ) - assertTrue(req(174) is Fx174 ) - assertTrue(req(177) is Fx177 ) - assertTrue(req(180) is Fx180 ) - } - - - - @Test - fun `it should map to 'None' for unknown scores`() { - assertTrue(req(181) is None) - } - - private fun req(scored: Int) = MasterCallerRequest(scored = scored).toSound() -} \ No newline at end of file diff --git a/android/DartsScorecard/settings.gradle b/android/DartsScorecard/settings.gradle index 944b2418..c107b350 100644 --- a/android/DartsScorecard/settings.gradle +++ b/android/DartsScorecard/settings.gradle @@ -1 +1,2 @@ +include ':sounds' include ':app', ':domain', ':data', ':shared', ':libLog', ':libCore', ':libConsent', ':libAds' diff --git a/android/DartsScorecard/sounds/.gitignore b/android/DartsScorecard/sounds/.gitignore new file mode 100644 index 00000000..42afabfd --- /dev/null +++ b/android/DartsScorecard/sounds/.gitignore @@ -0,0 +1 @@ +/build \ No newline at end of file diff --git a/android/DartsScorecard/sounds/build.gradle b/android/DartsScorecard/sounds/build.gradle new file mode 100644 index 00000000..6ddd6a2a --- /dev/null +++ b/android/DartsScorecard/sounds/build.gradle @@ -0,0 +1,34 @@ +apply plugin: 'com.android.dynamic-feature' +apply plugin: 'kotlin-android' +apply plugin: 'kotlin-kapt' +apply plugin: 'kotlin-android-extensions' +apply from: '../scripts/android_common.gradle' + +android { + + defaultConfig { + applicationId "nl.entreco.dartsscorecard.sounds" + } + + buildTypes { + release { + minifyEnabled false + proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' + } + } +} + +dependencies { + implementation project(":app") + implementation project(':domain') + + implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlinVersion" + implementation "androidx.core:core-ktx:$xCore" + + // Dagger + kapt "com.google.dagger:dagger-compiler:$daggerVersion" + implementation "com.google.dagger:dagger:$daggerVersion" + + // Test + testImplementation "junit:junit:$junit" +} \ No newline at end of file diff --git a/android/DartsScorecard/sounds/src/androidTest/java/nl/entreco/dartsscorecard/sounds/ExampleInstrumentedTest.kt b/android/DartsScorecard/sounds/src/androidTest/java/nl/entreco/dartsscorecard/sounds/ExampleInstrumentedTest.kt new file mode 100644 index 00000000..a8a4233d --- /dev/null +++ b/android/DartsScorecard/sounds/src/androidTest/java/nl/entreco/dartsscorecard/sounds/ExampleInstrumentedTest.kt @@ -0,0 +1,24 @@ +package nl.entreco.dartsscorecard.sounds + +import androidx.test.platform.app.InstrumentationRegistry +import androidx.test.ext.junit.runners.AndroidJUnit4 + +import org.junit.Test +import org.junit.runner.RunWith + +import org.junit.Assert.* + +/** + * Instrumented test, which will execute on an Android device. + * + * See [testing documentation](http://d.android.com/tools/testing). + */ +@RunWith(AndroidJUnit4::class) +class ExampleInstrumentedTest { + @Test + fun useAppContext() { + // Context of the app under test. + val appContext = InstrumentationRegistry.getInstrumentation().targetContext + assertEquals("nl.entreco.dartsscorecard.sounds", appContext.packageName) + } +} \ No newline at end of file diff --git a/android/DartsScorecard/sounds/src/main/AndroidManifest.xml b/android/DartsScorecard/sounds/src/main/AndroidManifest.xml new file mode 100644 index 00000000..2c6183a7 --- /dev/null +++ b/android/DartsScorecard/sounds/src/main/AndroidManifest.xml @@ -0,0 +1,14 @@ + + + + + + + + + + \ No newline at end of file diff --git a/android/DartsScorecard/data/src/main/java/nl/entreco/data/sound/LocalMusicRepository.kt b/android/DartsScorecard/sounds/src/main/java/nl/entreco/dartsscorecard/sounds/LocalMusicRepository.kt similarity index 80% rename from android/DartsScorecard/data/src/main/java/nl/entreco/data/sound/LocalMusicRepository.kt rename to android/DartsScorecard/sounds/src/main/java/nl/entreco/dartsscorecard/sounds/LocalMusicRepository.kt index c8143fda..498ff1f4 100644 --- a/android/DartsScorecard/data/src/main/java/nl/entreco/data/sound/LocalMusicRepository.kt +++ b/android/DartsScorecard/sounds/src/main/java/nl/entreco/dartsscorecard/sounds/LocalMusicRepository.kt @@ -1,7 +1,7 @@ -package nl.entreco.data.sound +package nl.entreco.dartsscorecard.sounds import android.media.MediaPlayer -import nl.entreco.domain.repository.MusicRepository +import nl.entreco.domain.mastercaller.MusicRepository class LocalMusicRepository(private val mediaPlayer: MediaPlayer): MusicRepository { diff --git a/android/DartsScorecard/data/src/main/java/nl/entreco/data/sound/LocalSoundRepository.kt b/android/DartsScorecard/sounds/src/main/java/nl/entreco/dartsscorecard/sounds/LocalSoundRepository.kt similarity index 68% rename from android/DartsScorecard/data/src/main/java/nl/entreco/data/sound/LocalSoundRepository.kt rename to android/DartsScorecard/sounds/src/main/java/nl/entreco/dartsscorecard/sounds/LocalSoundRepository.kt index bdd8ed19..5e2101d7 100644 --- a/android/DartsScorecard/data/src/main/java/nl/entreco/data/sound/LocalSoundRepository.kt +++ b/android/DartsScorecard/sounds/src/main/java/nl/entreco/dartsscorecard/sounds/LocalSoundRepository.kt @@ -1,10 +1,9 @@ -package nl.entreco.data.sound +package nl.entreco.dartsscorecard.sounds import android.content.Context import android.media.SoundPool -import nl.entreco.domain.play.mastercaller.Sound +import nl.entreco.domain.mastercaller.SoundRepository import nl.entreco.domain.repository.AudioPrefRepository -import nl.entreco.domain.repository.SoundRepository import java.util.ArrayDeque import java.util.Deque import java.util.HashMap @@ -12,15 +11,17 @@ import java.util.HashMap /** * Created by entreco on 14/03/2018. */ -class LocalSoundRepository(private val context: Context, - private val soundPool: SoundPool, - private val prefs: AudioPrefRepository, - private val mapper: SoundMapper) : SoundRepository { +class LocalSoundRepository( + private val context: Context, + private val soundPool: SoundPool, + private val prefs: AudioPrefRepository, + private val mapper: SoundMapper +) : SoundRepository { private val priorityNormal = 1 internal val queue: Deque = ArrayDeque() - internal val sounds: HashMap = hashMapOf() - private val ready: HashMap = hashMapOf() + internal val sounds: HashMap = hashMapOf() + private val ready: HashMap = hashMapOf() init { soundPool.setOnLoadCompleteListener { _, sampleId, status -> @@ -30,7 +31,7 @@ class LocalSoundRepository(private val context: Context, } } - override fun play(sound: Sound) { + override fun play(sound: nl.entreco.domain.mastercaller.Sound) { if (!prefs.isMasterCallerEnabled()) return if (ready.containsKey(sound)) { @@ -47,7 +48,8 @@ class LocalSoundRepository(private val context: Context, try { soundPool.setOnLoadCompleteListener(null) soundPool.release() - } catch (ignore: Throwable) { } + } catch (ignore: Throwable) { + } } internal fun storeSound(soundId: Int) { @@ -57,7 +59,7 @@ class LocalSoundRepository(private val context: Context, } } - private fun queueSoundWithId(soundID: Int, sound: Sound) { + private fun queueSoundWithId(soundID: Int, sound: nl.entreco.domain.mastercaller.Sound) { queue.addFirst(soundID) sounds[sound] = soundID } diff --git a/android/DartsScorecard/sounds/src/main/java/nl/entreco/dartsscorecard/sounds/OldDiModule.kt b/android/DartsScorecard/sounds/src/main/java/nl/entreco/dartsscorecard/sounds/OldDiModule.kt new file mode 100644 index 00000000..36bca9ad --- /dev/null +++ b/android/DartsScorecard/sounds/src/main/java/nl/entreco/dartsscorecard/sounds/OldDiModule.kt @@ -0,0 +1,36 @@ +package nl.entreco.dartsscorecard.sounds + +import android.content.Context +import android.media.MediaPlayer +import android.media.SoundPool +import dagger.Module +import dagger.Provides +import nl.entreco.dartsscorecard.di.play.Play01Scope +import nl.entreco.domain.mastercaller.MusicRepository +import nl.entreco.domain.mastercaller.SoundRepository +import nl.entreco.domain.repository.AudioPrefRepository + +@Module +object OldDiModule { + + @Provides + @Play01Scope + fun provideSoundMapper(): SoundMapper { + return SoundMapper() + } + + @Provides + @Play01Scope + fun provideSoundRepository(context: Context, @Play01Scope mapper: SoundMapper, @Play01Scope prefs: AudioPrefRepository): SoundRepository { + val soundPool = SoundPool.Builder().setMaxStreams(2).build() + return LocalSoundRepository(context, soundPool, prefs, mapper) + } + + @Provides + @Play01Scope + fun provideMusicRepository(context: Context): MusicRepository { + val mediaPlayer = MediaPlayer.create(context, R.raw.pdc_tune) + mediaPlayer.isLooping = true + return LocalMusicRepository(mediaPlayer) + } +} \ No newline at end of file diff --git a/android/DartsScorecard/data/src/main/java/nl/entreco/data/sound/SoundMapper.kt b/android/DartsScorecard/sounds/src/main/java/nl/entreco/dartsscorecard/sounds/SoundMapper.kt similarity index 98% rename from android/DartsScorecard/data/src/main/java/nl/entreco/data/sound/SoundMapper.kt rename to android/DartsScorecard/sounds/src/main/java/nl/entreco/dartsscorecard/sounds/SoundMapper.kt index e6818bbb..182a9b77 100644 --- a/android/DartsScorecard/data/src/main/java/nl/entreco/data/sound/SoundMapper.kt +++ b/android/DartsScorecard/sounds/src/main/java/nl/entreco/dartsscorecard/sounds/SoundMapper.kt @@ -1,8 +1,7 @@ -package nl.entreco.data.sound +package nl.entreco.dartsscorecard.sounds import androidx.annotation.RawRes -import nl.entreco.data.R -import nl.entreco.domain.play.mastercaller.* +import nl.entreco.domain.mastercaller.* /** * Created by entreco on 14/03/2018. diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro0.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro0.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro0.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro0.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro1.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro1.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro1.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro1.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro10.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro10.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro10.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro10.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro100.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro100.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro100.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro100.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro101.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro101.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro101.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro101.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro102.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro102.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro102.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro102.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro103.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro103.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro103.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro103.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro104.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro104.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro104.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro104.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro105.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro105.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro105.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro105.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro106.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro106.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro106.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro106.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro107.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro107.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro107.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro107.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro108.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro108.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro108.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro108.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro109.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro109.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro109.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro109.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro11.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro11.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro11.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro11.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro110.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro110.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro110.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro110.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro111.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro111.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro111.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro111.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro112.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro112.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro112.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro112.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro113.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro113.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro113.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro113.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro114.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro114.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro114.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro114.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro115.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro115.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro115.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro115.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro116.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro116.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro116.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro116.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro117.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro117.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro117.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro117.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro118.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro118.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro118.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro118.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro119.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro119.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro119.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro119.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro12.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro12.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro12.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro12.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro120.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro120.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro120.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro120.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro121.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro121.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro121.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro121.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro122.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro122.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro122.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro122.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro123.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro123.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro123.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro123.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro124.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro124.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro124.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro124.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro125.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro125.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro125.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro125.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro126.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro126.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro126.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro126.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro127.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro127.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro127.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro127.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro128.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro128.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro128.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro128.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro129.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro129.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro129.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro129.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro13.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro13.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro13.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro13.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro130.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro130.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro130.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro130.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro131.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro131.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro131.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro131.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro132.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro132.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro132.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro132.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro133.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro133.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro133.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro133.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro134.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro134.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro134.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro134.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro135.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro135.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro135.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro135.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro136.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro136.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro136.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro136.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro137.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro137.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro137.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro137.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro138.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro138.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro138.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro138.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro139.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro139.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro139.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro139.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro14.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro14.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro14.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro14.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro140.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro140.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro140.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro140.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro141.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro141.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro141.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro141.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro142.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro142.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro142.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro142.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro143.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro143.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro143.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro143.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro144.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro144.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro144.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro144.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro145.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro145.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro145.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro145.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro146.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro146.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro146.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro146.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro147.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro147.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro147.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro147.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro148.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro148.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro148.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro148.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro149.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro149.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro149.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro149.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro15.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro15.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro15.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro15.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro150.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro150.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro150.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro150.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro151.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro151.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro151.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro151.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro152.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro152.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro152.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro152.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro153.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro153.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro153.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro153.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro154.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro154.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro154.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro154.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro155.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro155.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro155.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro155.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro156.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro156.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro156.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro156.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro157.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro157.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro157.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro157.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro158.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro158.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro158.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro158.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro159.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro159.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro159.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro159.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro16.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro16.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro16.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro16.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro160.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro160.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro160.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro160.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro161.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro161.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro161.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro161.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro162.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro162.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro162.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro162.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro163.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro163.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro163.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro163.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro164.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro164.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro164.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro164.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro165.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro165.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro165.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro165.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro166.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro166.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro166.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro166.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro167.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro167.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro167.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro167.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro168.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro168.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro168.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro168.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro169.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro169.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro169.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro169.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro17.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro17.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro17.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro17.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro170.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro170.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro170.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro170.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro171.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro171.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro171.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro171.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro174.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro174.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro174.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro174.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro177.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro177.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro177.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro177.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro18.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro18.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro18.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro18.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro180.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro180.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro180.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro180.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro19.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro19.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro19.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro19.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro2.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro2.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro2.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro2.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro20.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro20.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro20.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro20.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro21.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro21.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro21.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro21.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro22.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro22.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro22.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro22.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro23.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro23.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro23.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro23.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro24.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro24.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro24.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro24.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro25.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro25.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro25.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro25.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro26.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro26.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro26.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro26.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro27.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro27.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro27.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro27.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro28.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro28.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro28.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro28.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro29.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro29.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro29.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro29.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro3.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro3.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro3.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro3.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro30.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro30.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro30.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro30.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro31.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro31.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro31.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro31.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro32.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro32.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro32.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro32.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro33.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro33.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro33.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro33.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro34.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro34.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro34.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro34.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro35.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro35.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro35.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro35.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro36.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro36.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro36.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro36.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro37.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro37.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro37.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro37.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro38.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro38.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro38.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro38.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro39.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro39.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro39.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro39.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro4.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro4.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro4.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro4.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro40.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro40.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro40.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro40.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro41.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro41.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro41.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro41.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro42.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro42.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro42.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro42.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro43.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro43.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro43.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro43.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro44.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro44.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro44.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro44.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro45.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro45.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro45.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro45.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro46.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro46.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro46.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro46.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro47.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro47.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro47.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro47.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro48.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro48.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro48.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro48.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro49.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro49.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro49.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro49.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro5.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro5.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro5.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro5.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro50.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro50.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro50.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro50.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro51.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro51.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro51.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro51.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro52.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro52.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro52.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro52.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro53.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro53.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro53.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro53.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro54.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro54.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro54.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro54.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro55.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro55.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro55.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro55.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro56.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro56.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro56.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro56.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro57.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro57.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro57.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro57.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro58.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro58.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro58.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro58.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro59.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro59.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro59.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro59.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro6.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro6.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro6.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro6.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro60.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro60.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro60.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro60.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro61.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro61.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro61.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro61.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro62.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro62.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro62.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro62.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro63.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro63.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro63.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro63.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro64.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro64.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro64.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro64.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro65.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro65.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro65.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro65.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro66.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro66.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro66.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro66.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro67.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro67.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro67.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro67.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro68.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro68.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro68.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro68.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro69.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro69.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro69.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro69.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro7.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro7.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro7.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro7.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro70.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro70.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro70.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro70.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro71.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro71.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro71.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro71.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro72.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro72.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro72.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro72.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro73.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro73.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro73.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro73.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro74.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro74.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro74.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro74.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro75.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro75.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro75.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro75.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro76.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro76.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro76.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro76.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro77.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro77.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro77.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro77.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro78.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro78.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro78.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro78.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro79.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro79.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro79.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro79.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro8.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro8.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro8.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro8.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro80.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro80.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro80.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro80.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro81.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro81.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro81.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro81.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro82.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro82.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro82.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro82.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro83.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro83.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro83.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro83.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro84.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro84.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro84.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro84.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro85.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro85.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro85.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro85.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro86.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro86.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro86.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro86.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro87.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro87.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro87.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro87.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro88.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro88.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro88.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro88.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro89.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro89.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro89.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro89.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro9.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro9.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro9.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro9.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro90.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro90.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro90.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro90.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro91.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro91.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro91.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro91.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro92.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro92.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro92.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro92.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro93.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro93.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro93.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro93.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro94.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro94.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro94.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro94.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro95.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro95.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro95.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro95.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro96.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro96.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro96.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro96.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro97.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro97.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro97.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro97.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro98.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro98.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro98.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro98.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pro99.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pro99.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pro99.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pro99.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_profirstleg.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_profirstleg.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_profirstleg.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_profirstleg.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_profourthleg.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_profourthleg.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_profourthleg.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_profourthleg.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_progameon.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_progameon.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_progameon.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_progameon.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_progameshot.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_progameshot.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_progameshot.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_progameshot.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_proleg.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_proleg.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_proleg.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_proleg.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_proletsplaydarts.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_proletsplaydarts.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_proletsplaydarts.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_proletsplaydarts.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_pronoscore.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_pronoscore.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_pronoscore.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_pronoscore.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_prosecondleg.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_prosecondleg.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_prosecondleg.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_prosecondleg.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_proset.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_proset.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_proset.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_proset.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_prothirdleg.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_prothirdleg.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_prothirdleg.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_prothirdleg.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/dsc_prowhatagame.ogg b/android/DartsScorecard/sounds/src/main/res/raw/dsc_prowhatagame.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/dsc_prowhatagame.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/dsc_prowhatagame.ogg diff --git a/android/DartsScorecard/data/src/main/res/raw/pdc_tune.ogg b/android/DartsScorecard/sounds/src/main/res/raw/pdc_tune.ogg similarity index 100% rename from android/DartsScorecard/data/src/main/res/raw/pdc_tune.ogg rename to android/DartsScorecard/sounds/src/main/res/raw/pdc_tune.ogg diff --git a/android/DartsScorecard/sounds/src/test/java/nl/entreco/dartsscorecard/sounds/ExampleUnitTest.kt b/android/DartsScorecard/sounds/src/test/java/nl/entreco/dartsscorecard/sounds/ExampleUnitTest.kt new file mode 100644 index 00000000..b9f65cc9 --- /dev/null +++ b/android/DartsScorecard/sounds/src/test/java/nl/entreco/dartsscorecard/sounds/ExampleUnitTest.kt @@ -0,0 +1,17 @@ +package nl.entreco.dartsscorecard.sounds + +import org.junit.Test + +import org.junit.Assert.* + +/** + * Example local unit test, which will execute on the development machine (host). + * + * See [testing documentation](http://d.android.com/tools/testing). + */ +class ExampleUnitTest { + @Test + fun addition_isCorrect() { + assertEquals(4, 2 + 2) + } +} \ No newline at end of file From b2d96741897c71d04b779f793832ea7209cc84c8 Mon Sep 17 00:00:00 2001 From: Entreco Date: Thu, 11 Mar 2021 17:40:36 +0100 Subject: [PATCH 3/7] #14: Dynamic experiment --- android/DartsScorecard/app/build.gradle | 8 ++- .../java/nl/entreco/dartsscorecard/App.kt | 3 +- .../dartsscorecard/di/play/Play01Module.kt | 61 ++++++++++++++----- .../dynamic/NoMusicRepository.kt | 44 +++++++++++++ .../dynamic/NoSoundRepository.kt | 35 +++++++++++ .../dynamic/SoundModuleProvider.kt | 21 +++++++ .../app/src/main/res/values/feature_names.xml | 4 ++ .../app/src/main/res/values/strings.xml | 1 - .../entreco/data/db/hiscores/HiScoreMapper.kt | 4 +- .../scripts/dependencies.gradle | 12 ++-- android/DartsScorecard/sounds/build.gradle | 13 ++-- ...OldDiModule.kt => DynamicSoundProvider.kt} | 21 ++----- 12 files changed, 175 insertions(+), 52 deletions(-) create mode 100644 android/DartsScorecard/app/src/main/java/nl/entreco/dartsscorecard/dynamic/NoMusicRepository.kt create mode 100644 android/DartsScorecard/app/src/main/java/nl/entreco/dartsscorecard/dynamic/NoSoundRepository.kt create mode 100644 android/DartsScorecard/app/src/main/java/nl/entreco/dartsscorecard/dynamic/SoundModuleProvider.kt create mode 100644 android/DartsScorecard/app/src/main/res/values/feature_names.xml rename android/DartsScorecard/sounds/src/main/java/nl/entreco/dartsscorecard/sounds/{OldDiModule.kt => DynamicSoundProvider.kt} (59%) diff --git a/android/DartsScorecard/app/build.gradle b/android/DartsScorecard/app/build.gradle index ff37b993..0c5f19fd 100644 --- a/android/DartsScorecard/app/build.gradle +++ b/android/DartsScorecard/app/build.gradle @@ -53,19 +53,23 @@ dependencies { implementation "com.google.firebase:firebase-config:$fbConfig" implementation "com.google.firebase:firebase-database:$fbDatabase" implementation "com.google.firebase:firebase-ads:$fbAds" + implementation "com.google.firebase:firebase-crashlytics:$fbCrash" + implementation "com.google.android.play:core:$playCore" + implementation "com.google.android.play:core-ktx:$playCoreKtx" + implementation "org.jetbrains.kotlin:kotlin-reflect:$kotlinVersion" + implementation "androidx.core:core-ktx:$xCore" implementation "androidx.room:room-runtime:$room" implementation "androidx.lifecycle:lifecycle-extensions:$lifecycle" implementation "androidx.constraintlayout:constraintlayout:$xConstraint" implementation "androidx.preference:preference-ktx:$xPreferences" + implementation "com.github.bumptech.glide:glide:$glide" implementation "com.github.yalantis:jellytoolbar:$jelly" implementation "de.hdodenhof:circleimageview:$circleImageView" implementation "com.airbnb.android:lottie:$lottieVersion" implementation "com.google.code.gson:gson:$gson" - implementation "com.google.firebase:firebase-crashlytics:$fbCrash" - // Leaks debugImplementation "com.squareup.leakcanary:leakcanary-android:$leakCanary" diff --git a/android/DartsScorecard/app/src/main/java/nl/entreco/dartsscorecard/App.kt b/android/DartsScorecard/app/src/main/java/nl/entreco/dartsscorecard/App.kt index de686081..7951e315 100644 --- a/android/DartsScorecard/app/src/main/java/nl/entreco/dartsscorecard/App.kt +++ b/android/DartsScorecard/app/src/main/java/nl/entreco/dartsscorecard/App.kt @@ -2,6 +2,7 @@ package nl.entreco.dartsscorecard import android.app.Application import android.os.StrictMode +import com.google.android.play.core.splitcompat.SplitCompatApplication import nl.entreco.dartsscorecard.di.application.AppComponent import nl.entreco.dartsscorecard.di.application.AppModule import nl.entreco.dartsscorecard.di.application.DaggerAppComponent @@ -10,7 +11,7 @@ import nl.entreco.dartsscorecard.di.application.DaggerAppComponent /** * Created by Entreco on 14/11/2017. */ -class App : Application() { +class App : SplitCompatApplication() { val appComponent: AppComponent by lazy { DaggerAppComponent.builder().appModule(AppModule(this)).build() diff --git a/android/DartsScorecard/app/src/main/java/nl/entreco/dartsscorecard/di/play/Play01Module.kt b/android/DartsScorecard/app/src/main/java/nl/entreco/dartsscorecard/di/play/Play01Module.kt index 86859682..9811f1df 100644 --- a/android/DartsScorecard/app/src/main/java/nl/entreco/dartsscorecard/di/play/Play01Module.kt +++ b/android/DartsScorecard/app/src/main/java/nl/entreco/dartsscorecard/di/play/Play01Module.kt @@ -2,18 +2,25 @@ package nl.entreco.dartsscorecard.di.play import android.content.ComponentName import android.content.Context +import com.google.android.play.core.splitinstall.SplitInstallManager +import com.google.android.play.core.splitinstall.SplitInstallManagerFactory +import com.google.android.play.core.splitinstall.SplitInstallRequest import com.google.firebase.remoteconfig.FirebaseRemoteConfig import dagger.Module import dagger.Provides +import nl.entreco.dartsscorecard.R import nl.entreco.dartsscorecard.archive.ArchiveJobService import nl.entreco.dartsscorecard.archive.ArchiveServiceLauncher +import nl.entreco.dartsscorecard.dynamic.NoMusicRepository +import nl.entreco.dartsscorecard.dynamic.NoSoundRepository +import nl.entreco.dartsscorecard.dynamic.SoundModuleProvider import nl.entreco.dartsscorecard.play.Play01Activity import nl.entreco.data.billing.PlayBillingRepository import nl.entreco.data.description.RemoteMatchDescriptionRepository import nl.entreco.domain.beta.donations.MakePurchaseResponse import nl.entreco.domain.mastercaller.MusicRepository -import nl.entreco.domain.mastercaller.Sound import nl.entreco.domain.mastercaller.SoundRepository +import nl.entreco.domain.repository.AudioPrefRepository import nl.entreco.domain.repository.BillingRepo import nl.entreco.domain.repository.MatchDescriptionRepository import nl.entreco.liblog.Logger @@ -21,15 +28,18 @@ import nl.entreco.shared.scopes.ActivityScope import nl.entreco.shared.scopes.ApplicationScope import java.lang.ref.WeakReference +private const val DYNAMIC_PROVIDER = "nl.entreco.dartsscorecard.sounds.DynamicSoundProvider" + /** * Created by Entreco on 14/11/2017. */ @Module class Play01Module( private val activity: Play01Activity, - private val listener: (MakePurchaseResponse) -> Unit + private val listener: (MakePurchaseResponse) -> Unit, ) { + @Provides @Play01Scope fun provideBillingService(logger: Logger): BillingRepo { @@ -44,24 +54,43 @@ class Play01Module( @Provides @Play01Scope - fun provideSoundRepository(): SoundRepository { - // TODO Provide original Repo if Dynamic Feature sounds is installed - return object : SoundRepository { - override fun play(sound: Sound) {} - override fun release() {} - } + fun provideSplitInstallManager(@ActivityScope context: Context): SplitInstallManager { + return SplitInstallManagerFactory.create(context) + } + + @Provides + @Play01Scope + fun provideSplitInstallRequest(@ActivityScope context: Context) = SplitInstallRequest.newBuilder() + .addModule(context.getString(R.string.title_sounds)) + .build() + + @Provides + @Play01Scope + fun provideSoundRepository( + @ActivityScope context: Context, + splitInstallRequest: SplitInstallRequest, + splitInstallManager: SplitInstallManager, + prefs: AudioPrefRepository, + logger: Logger, + ): SoundRepository { + return if (splitInstallManager.installedModules.contains(context.getString(R.string.title_sounds))) { + val provider = Class.forName(DYNAMIC_PROVIDER).kotlin.objectInstance as SoundModuleProvider + provider.provideSoundRepository(context, prefs) + } else NoSoundRepository(logger, splitInstallRequest, splitInstallManager) } @Provides @Play01Scope - fun provideMusicRepository(): MusicRepository { - // TODO Provide original Repo if Dynamic Feature sounds is installed - return object : MusicRepository { - override fun play() {} - override fun pause() {} - override fun resume() {} - override fun stop() {} - } + fun provideMusicRepository( + @ActivityScope context: Context, + splitInstallRequest: SplitInstallRequest, + splitInstallManager: SplitInstallManager, + logger: Logger, + ): MusicRepository { + return if (splitInstallManager.installedModules.contains(context.getString(R.string.title_sounds))) { + val provider = Class.forName(DYNAMIC_PROVIDER).kotlin.objectInstance as SoundModuleProvider + provider.provideMusicRepository(context) + } else NoMusicRepository(logger, splitInstallRequest, splitInstallManager) } @Provides diff --git a/android/DartsScorecard/app/src/main/java/nl/entreco/dartsscorecard/dynamic/NoMusicRepository.kt b/android/DartsScorecard/app/src/main/java/nl/entreco/dartsscorecard/dynamic/NoMusicRepository.kt new file mode 100644 index 00000000..546eb9eb --- /dev/null +++ b/android/DartsScorecard/app/src/main/java/nl/entreco/dartsscorecard/dynamic/NoMusicRepository.kt @@ -0,0 +1,44 @@ +package nl.entreco.dartsscorecard.dynamic + +import com.google.android.play.core.internal.r +import com.google.android.play.core.splitinstall.SplitInstallManager +import com.google.android.play.core.splitinstall.SplitInstallRequest +import nl.entreco.domain.mastercaller.MusicRepository +import nl.entreco.liblog.Logger + + +/************************************************************************* + * + * ONWARD CONFIDENTIAL + * __________________ + * + * [2021] ONWARD + * All Rights Reserved. + * + */ +class NoMusicRepository( + private val logger: Logger, + private val request: SplitInstallRequest, + private val manager: SplitInstallManager +) : MusicRepository { + + override fun play() { + logger.i("Music play") + manager.startInstall(request) + .addOnCompleteListener{ logger.i("Music - installed") } + .addOnSuccessListener { logger.i("Music - loading") } + .addOnFailureListener { logger.i("Music - error: ${it.localizedMessage}") } + } + + override fun pause() { + logger.i("Music pause") + } + + override fun resume() { + logger.i("Music resume") + } + + override fun stop() { + logger.i("Music stop") + } +} \ No newline at end of file diff --git a/android/DartsScorecard/app/src/main/java/nl/entreco/dartsscorecard/dynamic/NoSoundRepository.kt b/android/DartsScorecard/app/src/main/java/nl/entreco/dartsscorecard/dynamic/NoSoundRepository.kt new file mode 100644 index 00000000..51114908 --- /dev/null +++ b/android/DartsScorecard/app/src/main/java/nl/entreco/dartsscorecard/dynamic/NoSoundRepository.kt @@ -0,0 +1,35 @@ +package nl.entreco.dartsscorecard.dynamic + +import com.google.android.play.core.splitinstall.SplitInstallManager +import com.google.android.play.core.splitinstall.SplitInstallRequest +import nl.entreco.domain.mastercaller.Sound +import nl.entreco.domain.mastercaller.SoundRepository +import nl.entreco.liblog.Logger + +/************************************************************************* + * + * ONWARD CONFIDENTIAL + * __________________ + * + * [2021] ONWARD + * All Rights Reserved. + * + */ +class NoSoundRepository( + private val logger: Logger, + private val request: SplitInstallRequest, + private val manager: SplitInstallManager +) : SoundRepository { + + override fun play(sound: Sound) { + logger.i("Sound play: $sound") + manager.startInstall(request) + .addOnCompleteListener{ logger.i("Sound - installed") } + .addOnSuccessListener { logger.i("Sound - loading") } + .addOnFailureListener { logger.i("Sound - error: ${it.localizedMessage}") } + } + + override fun release() { + logger.i("Sound release") + } +} \ No newline at end of file diff --git a/android/DartsScorecard/app/src/main/java/nl/entreco/dartsscorecard/dynamic/SoundModuleProvider.kt b/android/DartsScorecard/app/src/main/java/nl/entreco/dartsscorecard/dynamic/SoundModuleProvider.kt new file mode 100644 index 00000000..8bea6ae4 --- /dev/null +++ b/android/DartsScorecard/app/src/main/java/nl/entreco/dartsscorecard/dynamic/SoundModuleProvider.kt @@ -0,0 +1,21 @@ +package nl.entreco.dartsscorecard.dynamic + +import android.content.Context +import nl.entreco.dartsscorecard.di.play.Play01Scope +import nl.entreco.domain.mastercaller.MusicRepository +import nl.entreco.domain.mastercaller.SoundRepository +import nl.entreco.domain.repository.AudioPrefRepository + +/************************************************************************* + * + * ONWARD CONFIDENTIAL + * __________________ + * + * [2021] ONWARD + * All Rights Reserved. + * + */ +interface SoundModuleProvider { + fun provideSoundRepository(context: Context, @Play01Scope prefs: AudioPrefRepository): SoundRepository + fun provideMusicRepository(context: Context): MusicRepository +} \ No newline at end of file diff --git a/android/DartsScorecard/app/src/main/res/values/feature_names.xml b/android/DartsScorecard/app/src/main/res/values/feature_names.xml new file mode 100644 index 00000000..64d31c36 --- /dev/null +++ b/android/DartsScorecard/app/src/main/res/values/feature_names.xml @@ -0,0 +1,4 @@ + + + Sound pack + \ No newline at end of file diff --git a/android/DartsScorecard/app/src/main/res/values/strings.xml b/android/DartsScorecard/app/src/main/res/values/strings.xml index 27aa90a4..9d0fa4bd 100644 --- a/android/DartsScorecard/app/src/main/res/values/strings.xml +++ b/android/DartsScorecard/app/src/main/res/values/strings.xml @@ -231,5 +231,4 @@ First to %1$s sets First to %1$s legs Which features would you like to see added to the app - Sound pack diff --git a/android/DartsScorecard/data/src/main/java/nl/entreco/data/db/hiscores/HiScoreMapper.kt b/android/DartsScorecard/data/src/main/java/nl/entreco/data/db/hiscores/HiScoreMapper.kt index 17fb0711..fda6c64a 100644 --- a/android/DartsScorecard/data/src/main/java/nl/entreco/data/db/hiscores/HiScoreMapper.kt +++ b/android/DartsScorecard/data/src/main/java/nl/entreco/data/db/hiscores/HiScoreMapper.kt @@ -24,8 +24,8 @@ class HiScoreMapper { HiScoreItem.Num60(stats.sumBy { it.num60s }), HiScoreItem.Num20(stats.sumBy { it.num20s }), HiScoreItem.NumBust(stats.sumBy { it.num0s }), - HiScoreItem.BestMatchAvg(stats.map { avg(it.numDarts, it.totalScore) * 3}.max() ?: 0F), - HiScoreItem.BestMatchCheckout(stats.map { avg(it.numDartsAtFinish, it.numFinishes) * 100}.max() ?: 0F) + HiScoreItem.BestMatchAvg(stats.map { avg(it.numDarts, it.totalScore) * 3}.maxOrNull() ?: 0F), + HiScoreItem.BestMatchCheckout(stats.map { avg(it.numDartsAtFinish, it.numFinishes) * 100}.maxOrNull() ?: 0F) ) return HiScore(player.id, player.name, scores) } diff --git a/android/DartsScorecard/scripts/dependencies.gradle b/android/DartsScorecard/scripts/dependencies.gradle index b8fe2960..22a6cfc1 100644 --- a/android/DartsScorecard/scripts/dependencies.gradle +++ b/android/DartsScorecard/scripts/dependencies.gradle @@ -33,7 +33,7 @@ ext.versionName = { -> } ext { - kotlinVersion = '1.3.72' + kotlinVersion = '1.4.31' gradleVersion = '4.1.2' gmsVersion = '4.3.3' detektVersion = '1.0.0.RC7' @@ -47,12 +47,14 @@ ext { versionName = versionName() dependencies = [ - daggerVersion = '2.28', - xConstraint = '2.0.0-beta4', + daggerVersion = '2.33', + xConstraint = '2.0.0', xAnnotation = '1.1.0', playBilling = '3.0.3', + playCore = '1.10.0', + playCoreKtx = '1.8.1', xAppCompat = '1.1.0', - xCore = '1.3.0', + xCore = '1.3.2', xCoreCommon = '2.0.1', xCoreRuntime = '2.0.1', xExif = '1.3.2', @@ -75,7 +77,7 @@ ext { jelly = 'v1.0', lottieVersion = '3.4.0', gson = '2.8.6', - leakCanary = '2.3', + leakCanary = '2.6', junit = '4.13.2', mockito = '3.3.3', mockitoKotlin = '1.5.0', diff --git a/android/DartsScorecard/sounds/build.gradle b/android/DartsScorecard/sounds/build.gradle index 6ddd6a2a..a4bef39c 100644 --- a/android/DartsScorecard/sounds/build.gradle +++ b/android/DartsScorecard/sounds/build.gradle @@ -2,19 +2,14 @@ apply plugin: 'com.android.dynamic-feature' apply plugin: 'kotlin-android' apply plugin: 'kotlin-kapt' apply plugin: 'kotlin-android-extensions' -apply from: '../scripts/android_common.gradle' android { + def config = rootProject.extensions.getByName("ext") + compileSdkVersion config.androidCompileSdkVersion defaultConfig { - applicationId "nl.entreco.dartsscorecard.sounds" - } - - buildTypes { - release { - minifyEnabled false - proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' - } + minSdkVersion config.androidMinSdkVersion + targetSdkVersion config.androidTargetSdkVersion } } diff --git a/android/DartsScorecard/sounds/src/main/java/nl/entreco/dartsscorecard/sounds/OldDiModule.kt b/android/DartsScorecard/sounds/src/main/java/nl/entreco/dartsscorecard/sounds/DynamicSoundProvider.kt similarity index 59% rename from android/DartsScorecard/sounds/src/main/java/nl/entreco/dartsscorecard/sounds/OldDiModule.kt rename to android/DartsScorecard/sounds/src/main/java/nl/entreco/dartsscorecard/sounds/DynamicSoundProvider.kt index 36bca9ad..f889832b 100644 --- a/android/DartsScorecard/sounds/src/main/java/nl/entreco/dartsscorecard/sounds/OldDiModule.kt +++ b/android/DartsScorecard/sounds/src/main/java/nl/entreco/dartsscorecard/sounds/DynamicSoundProvider.kt @@ -3,32 +3,21 @@ package nl.entreco.dartsscorecard.sounds import android.content.Context import android.media.MediaPlayer import android.media.SoundPool -import dagger.Module -import dagger.Provides import nl.entreco.dartsscorecard.di.play.Play01Scope +import nl.entreco.dartsscorecard.dynamic.SoundModuleProvider import nl.entreco.domain.mastercaller.MusicRepository import nl.entreco.domain.mastercaller.SoundRepository import nl.entreco.domain.repository.AudioPrefRepository -@Module -object OldDiModule { +object DynamicSoundProvider : SoundModuleProvider { - @Provides - @Play01Scope - fun provideSoundMapper(): SoundMapper { - return SoundMapper() - } - - @Provides - @Play01Scope - fun provideSoundRepository(context: Context, @Play01Scope mapper: SoundMapper, @Play01Scope prefs: AudioPrefRepository): SoundRepository { + override fun provideSoundRepository(context: Context, @Play01Scope prefs: AudioPrefRepository): SoundRepository { + val mapper = SoundMapper() val soundPool = SoundPool.Builder().setMaxStreams(2).build() return LocalSoundRepository(context, soundPool, prefs, mapper) } - @Provides - @Play01Scope - fun provideMusicRepository(context: Context): MusicRepository { + override fun provideMusicRepository(context: Context): MusicRepository { val mediaPlayer = MediaPlayer.create(context, R.raw.pdc_tune) mediaPlayer.isLooping = true return LocalMusicRepository(mediaPlayer) From 7643d5108ea2a1455b93c9b7d1579e71b277ed5e Mon Sep 17 00:00:00 2001 From: Entreco Date: Thu, 11 Mar 2021 17:55:26 +0100 Subject: [PATCH 4/7] #14: Fix merge issues --- .../dartsscorecard/di/play/Play01Module.kt | 6 ++-- .../app/src/main/res/values/feature_names.xml | 2 +- .../app/src/main/res/values/strings.xml | 1 - .../sounds/src/main/AndroidManifest.xml | 2 +- .../sounds/DynamicSoundProvider.kt | 5 +++ .../dartsscorecard/sounds/OldDiModule.kt | 36 ------------------- 6 files changed, 10 insertions(+), 42 deletions(-) delete mode 100644 android/DartsScorecard/sounds/src/main/java/nl/entreco/dartsscorecard/sounds/OldDiModule.kt diff --git a/android/DartsScorecard/app/src/main/java/nl/entreco/dartsscorecard/di/play/Play01Module.kt b/android/DartsScorecard/app/src/main/java/nl/entreco/dartsscorecard/di/play/Play01Module.kt index 9811f1df..e95cbe1d 100644 --- a/android/DartsScorecard/app/src/main/java/nl/entreco/dartsscorecard/di/play/Play01Module.kt +++ b/android/DartsScorecard/app/src/main/java/nl/entreco/dartsscorecard/di/play/Play01Module.kt @@ -61,7 +61,7 @@ class Play01Module( @Provides @Play01Scope fun provideSplitInstallRequest(@ActivityScope context: Context) = SplitInstallRequest.newBuilder() - .addModule(context.getString(R.string.title_sounds)) + .addModule(context.getString(R.string.module_sounds)) .build() @Provides @@ -73,7 +73,7 @@ class Play01Module( prefs: AudioPrefRepository, logger: Logger, ): SoundRepository { - return if (splitInstallManager.installedModules.contains(context.getString(R.string.title_sounds))) { + return if (splitInstallManager.installedModules.contains(context.getString(R.string.module_sounds))) { val provider = Class.forName(DYNAMIC_PROVIDER).kotlin.objectInstance as SoundModuleProvider provider.provideSoundRepository(context, prefs) } else NoSoundRepository(logger, splitInstallRequest, splitInstallManager) @@ -87,7 +87,7 @@ class Play01Module( splitInstallManager: SplitInstallManager, logger: Logger, ): MusicRepository { - return if (splitInstallManager.installedModules.contains(context.getString(R.string.title_sounds))) { + return if (splitInstallManager.installedModules.contains(context.getString(R.string.module_sounds))) { val provider = Class.forName(DYNAMIC_PROVIDER).kotlin.objectInstance as SoundModuleProvider provider.provideMusicRepository(context) } else NoMusicRepository(logger, splitInstallRequest, splitInstallManager) diff --git a/android/DartsScorecard/app/src/main/res/values/feature_names.xml b/android/DartsScorecard/app/src/main/res/values/feature_names.xml index 64d31c36..995a346c 100644 --- a/android/DartsScorecard/app/src/main/res/values/feature_names.xml +++ b/android/DartsScorecard/app/src/main/res/values/feature_names.xml @@ -1,4 +1,4 @@ - Sound pack + sound \ No newline at end of file diff --git a/android/DartsScorecard/app/src/main/res/values/strings.xml b/android/DartsScorecard/app/src/main/res/values/strings.xml index 27aa90a4..9d0fa4bd 100644 --- a/android/DartsScorecard/app/src/main/res/values/strings.xml +++ b/android/DartsScorecard/app/src/main/res/values/strings.xml @@ -231,5 +231,4 @@ First to %1$s sets First to %1$s legs Which features would you like to see added to the app - Sound pack diff --git a/android/DartsScorecard/sounds/src/main/AndroidManifest.xml b/android/DartsScorecard/sounds/src/main/AndroidManifest.xml index 2c6183a7..bb0aeaf8 100644 --- a/android/DartsScorecard/sounds/src/main/AndroidManifest.xml +++ b/android/DartsScorecard/sounds/src/main/AndroidManifest.xml @@ -5,7 +5,7 @@ + dist:title="@string/module_sounds"> diff --git a/android/DartsScorecard/sounds/src/main/java/nl/entreco/dartsscorecard/sounds/DynamicSoundProvider.kt b/android/DartsScorecard/sounds/src/main/java/nl/entreco/dartsscorecard/sounds/DynamicSoundProvider.kt index f889832b..c054e5dd 100644 --- a/android/DartsScorecard/sounds/src/main/java/nl/entreco/dartsscorecard/sounds/DynamicSoundProvider.kt +++ b/android/DartsScorecard/sounds/src/main/java/nl/entreco/dartsscorecard/sounds/DynamicSoundProvider.kt @@ -9,6 +9,11 @@ import nl.entreco.domain.mastercaller.MusicRepository import nl.entreco.domain.mastercaller.SoundRepository import nl.entreco.domain.repository.AudioPrefRepository +/** + * Accessed dynamically through reflection, + * if the Dynamic Sound module is installed :nerd: + */ +@Deprecated("Not deprecated, but used through reflection") object DynamicSoundProvider : SoundModuleProvider { override fun provideSoundRepository(context: Context, @Play01Scope prefs: AudioPrefRepository): SoundRepository { diff --git a/android/DartsScorecard/sounds/src/main/java/nl/entreco/dartsscorecard/sounds/OldDiModule.kt b/android/DartsScorecard/sounds/src/main/java/nl/entreco/dartsscorecard/sounds/OldDiModule.kt deleted file mode 100644 index 36bca9ad..00000000 --- a/android/DartsScorecard/sounds/src/main/java/nl/entreco/dartsscorecard/sounds/OldDiModule.kt +++ /dev/null @@ -1,36 +0,0 @@ -package nl.entreco.dartsscorecard.sounds - -import android.content.Context -import android.media.MediaPlayer -import android.media.SoundPool -import dagger.Module -import dagger.Provides -import nl.entreco.dartsscorecard.di.play.Play01Scope -import nl.entreco.domain.mastercaller.MusicRepository -import nl.entreco.domain.mastercaller.SoundRepository -import nl.entreco.domain.repository.AudioPrefRepository - -@Module -object OldDiModule { - - @Provides - @Play01Scope - fun provideSoundMapper(): SoundMapper { - return SoundMapper() - } - - @Provides - @Play01Scope - fun provideSoundRepository(context: Context, @Play01Scope mapper: SoundMapper, @Play01Scope prefs: AudioPrefRepository): SoundRepository { - val soundPool = SoundPool.Builder().setMaxStreams(2).build() - return LocalSoundRepository(context, soundPool, prefs, mapper) - } - - @Provides - @Play01Scope - fun provideMusicRepository(context: Context): MusicRepository { - val mediaPlayer = MediaPlayer.create(context, R.raw.pdc_tune) - mediaPlayer.isLooping = true - return LocalMusicRepository(mediaPlayer) - } -} \ No newline at end of file From 2bce30a4809bad0c0dc8f40ef10ea97cc1395777 Mon Sep 17 00:00:00 2001 From: Entreco Date: Thu, 11 Mar 2021 18:16:39 +0100 Subject: [PATCH 5/7] #14: Hardcode Module name -> it keeps going wrong with resource --- .../java/nl/entreco/dartsscorecard/di/play/Play01Module.kt | 6 +++--- .../app/src/main/res/values/feature_names.xml | 4 ---- android/DartsScorecard/sounds/src/main/AndroidManifest.xml | 2 +- 3 files changed, 4 insertions(+), 8 deletions(-) delete mode 100644 android/DartsScorecard/app/src/main/res/values/feature_names.xml diff --git a/android/DartsScorecard/app/src/main/java/nl/entreco/dartsscorecard/di/play/Play01Module.kt b/android/DartsScorecard/app/src/main/java/nl/entreco/dartsscorecard/di/play/Play01Module.kt index e95cbe1d..517e6fbc 100644 --- a/android/DartsScorecard/app/src/main/java/nl/entreco/dartsscorecard/di/play/Play01Module.kt +++ b/android/DartsScorecard/app/src/main/java/nl/entreco/dartsscorecard/di/play/Play01Module.kt @@ -61,7 +61,7 @@ class Play01Module( @Provides @Play01Scope fun provideSplitInstallRequest(@ActivityScope context: Context) = SplitInstallRequest.newBuilder() - .addModule(context.getString(R.string.module_sounds)) + .addModule("sound") .build() @Provides @@ -73,7 +73,7 @@ class Play01Module( prefs: AudioPrefRepository, logger: Logger, ): SoundRepository { - return if (splitInstallManager.installedModules.contains(context.getString(R.string.module_sounds))) { + return if (splitInstallManager.installedModules.contains("sound")) { val provider = Class.forName(DYNAMIC_PROVIDER).kotlin.objectInstance as SoundModuleProvider provider.provideSoundRepository(context, prefs) } else NoSoundRepository(logger, splitInstallRequest, splitInstallManager) @@ -87,7 +87,7 @@ class Play01Module( splitInstallManager: SplitInstallManager, logger: Logger, ): MusicRepository { - return if (splitInstallManager.installedModules.contains(context.getString(R.string.module_sounds))) { + return if (splitInstallManager.installedModules.contains("sound")) { val provider = Class.forName(DYNAMIC_PROVIDER).kotlin.objectInstance as SoundModuleProvider provider.provideMusicRepository(context) } else NoMusicRepository(logger, splitInstallRequest, splitInstallManager) diff --git a/android/DartsScorecard/app/src/main/res/values/feature_names.xml b/android/DartsScorecard/app/src/main/res/values/feature_names.xml deleted file mode 100644 index 995a346c..00000000 --- a/android/DartsScorecard/app/src/main/res/values/feature_names.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - sound - \ No newline at end of file diff --git a/android/DartsScorecard/sounds/src/main/AndroidManifest.xml b/android/DartsScorecard/sounds/src/main/AndroidManifest.xml index bb0aeaf8..63611efa 100644 --- a/android/DartsScorecard/sounds/src/main/AndroidManifest.xml +++ b/android/DartsScorecard/sounds/src/main/AndroidManifest.xml @@ -5,7 +5,7 @@ + dist:title="sound"> From b1504f44c569de526bb65b6b7de5292a44f79efe Mon Sep 17 00:00:00 2001 From: Entreco Date: Thu, 11 Mar 2021 19:50:10 +0100 Subject: [PATCH 6/7] #14: Sounds --- .../java/nl/entreco/dartsscorecard/di/play/Play01Module.kt | 7 ++++--- .../app/src/main/res/values/module_names.xml | 4 ++++ android/DartsScorecard/settings.gradle | 3 +-- android/DartsScorecard/sounds/src/main/AndroidManifest.xml | 2 +- 4 files changed, 10 insertions(+), 6 deletions(-) create mode 100644 android/DartsScorecard/app/src/main/res/values/module_names.xml diff --git a/android/DartsScorecard/app/src/main/java/nl/entreco/dartsscorecard/di/play/Play01Module.kt b/android/DartsScorecard/app/src/main/java/nl/entreco/dartsscorecard/di/play/Play01Module.kt index 517e6fbc..5001d955 100644 --- a/android/DartsScorecard/app/src/main/java/nl/entreco/dartsscorecard/di/play/Play01Module.kt +++ b/android/DartsScorecard/app/src/main/java/nl/entreco/dartsscorecard/di/play/Play01Module.kt @@ -29,6 +29,7 @@ import nl.entreco.shared.scopes.ApplicationScope import java.lang.ref.WeakReference private const val DYNAMIC_PROVIDER = "nl.entreco.dartsscorecard.sounds.DynamicSoundProvider" +private const val SOUNDS = "sounds" /** * Created by Entreco on 14/11/2017. @@ -61,7 +62,7 @@ class Play01Module( @Provides @Play01Scope fun provideSplitInstallRequest(@ActivityScope context: Context) = SplitInstallRequest.newBuilder() - .addModule("sound") + .addModule(SOUNDS) .build() @Provides @@ -73,7 +74,7 @@ class Play01Module( prefs: AudioPrefRepository, logger: Logger, ): SoundRepository { - return if (splitInstallManager.installedModules.contains("sound")) { + return if (splitInstallManager.installedModules.contains(SOUNDS)) { val provider = Class.forName(DYNAMIC_PROVIDER).kotlin.objectInstance as SoundModuleProvider provider.provideSoundRepository(context, prefs) } else NoSoundRepository(logger, splitInstallRequest, splitInstallManager) @@ -87,7 +88,7 @@ class Play01Module( splitInstallManager: SplitInstallManager, logger: Logger, ): MusicRepository { - return if (splitInstallManager.installedModules.contains("sound")) { + return if (splitInstallManager.installedModules.contains(SOUNDS)) { val provider = Class.forName(DYNAMIC_PROVIDER).kotlin.objectInstance as SoundModuleProvider provider.provideMusicRepository(context) } else NoMusicRepository(logger, splitInstallRequest, splitInstallManager) diff --git a/android/DartsScorecard/app/src/main/res/values/module_names.xml b/android/DartsScorecard/app/src/main/res/values/module_names.xml new file mode 100644 index 00000000..49195e27 --- /dev/null +++ b/android/DartsScorecard/app/src/main/res/values/module_names.xml @@ -0,0 +1,4 @@ + + + sounds + \ No newline at end of file diff --git a/android/DartsScorecard/settings.gradle b/android/DartsScorecard/settings.gradle index c107b350..fbae2a1d 100644 --- a/android/DartsScorecard/settings.gradle +++ b/android/DartsScorecard/settings.gradle @@ -1,2 +1 @@ -include ':sounds' -include ':app', ':domain', ':data', ':shared', ':libLog', ':libCore', ':libConsent', ':libAds' +include ':app', ':domain', ':data', ':shared', ':libLog', ':libCore', ':libConsent', ':libAds', ':sounds' diff --git a/android/DartsScorecard/sounds/src/main/AndroidManifest.xml b/android/DartsScorecard/sounds/src/main/AndroidManifest.xml index 63611efa..8e376c3c 100644 --- a/android/DartsScorecard/sounds/src/main/AndroidManifest.xml +++ b/android/DartsScorecard/sounds/src/main/AndroidManifest.xml @@ -5,7 +5,7 @@ + dist:title="@string/module_sound"> From e7c69828b72fd639382b5d9f21fa5c9c8999eb6e Mon Sep 17 00:00:00 2001 From: Entreco Date: Thu, 11 Mar 2021 23:44:16 +0100 Subject: [PATCH 7/7] #14: Everything working --- android/DartsScorecard/app/build.gradle | 1 - .../DartsScorecard/app/release/output.json | 1 - .../dartsscorecard/base/ViewModelActivity.kt | 14 +++-- .../dartsscorecard/beta/BetaAnimator.kt | 3 +- .../dartsscorecard/di/play/Play01Component.kt | 3 + .../dartsscorecard/di/play/Play01Module.kt | 35 +++++++---- .../dynamic/DynamicInstaller.kt | 61 +++++++++++++++++++ .../dartsscorecard/dynamic/Installer.kt | 5 ++ .../dartsscorecard/dynamic/NoInstaller.kt | 5 ++ .../dynamic/NoMusicRepository.kt | 40 ++---------- .../dynamic/NoSoundRepository.kt | 30 +-------- .../dynamic/SoundInstalledCallback.kt | 8 +++ .../dynamic/SoundModuleProvider.kt | 9 --- .../dartsscorecard/launch/LaunchActivity.kt | 1 + .../dartsscorecard/play/Play01Activity.kt | 48 +++++++++++---- .../dartsscorecard/play/Play01Animator.kt | 9 +-- .../dartsscorecard/play/Play01Navigator.kt | 31 ++++++++-- .../dartsscorecard/play/Play01ViewModel.kt | 43 ++++++++----- .../play/live/TeamLiveStatModel.kt | 12 ++-- .../main/res/layout-land/activity_play_01.xml | 1 + .../app/src/main/res/layout/activity_beta.xml | 1 + .../src/main/res/layout/activity_play_01.xml | 1 + android/DartsScorecard/data/build.gradle | 1 - android/DartsScorecard/domain/build.gradle | 1 - android/DartsScorecard/sounds/build.gradle | 7 ++- .../sounds/DynamicSoundProvider.kt | 14 ++++- 26 files changed, 245 insertions(+), 140 deletions(-) delete mode 100644 android/DartsScorecard/app/release/output.json create mode 100644 android/DartsScorecard/app/src/main/java/nl/entreco/dartsscorecard/dynamic/DynamicInstaller.kt create mode 100644 android/DartsScorecard/app/src/main/java/nl/entreco/dartsscorecard/dynamic/Installer.kt create mode 100644 android/DartsScorecard/app/src/main/java/nl/entreco/dartsscorecard/dynamic/NoInstaller.kt create mode 100644 android/DartsScorecard/app/src/main/java/nl/entreco/dartsscorecard/dynamic/SoundInstalledCallback.kt diff --git a/android/DartsScorecard/app/build.gradle b/android/DartsScorecard/app/build.gradle index 0c5f19fd..41e5ef83 100644 --- a/android/DartsScorecard/app/build.gradle +++ b/android/DartsScorecard/app/build.gradle @@ -1,7 +1,6 @@ apply plugin: 'com.android.application' apply plugin: 'kotlin-android' apply plugin: 'kotlin-kapt' -apply plugin: 'kotlin-android-extensions' apply plugin: 'com.google.firebase.crashlytics' apply from: '../scripts/android_common.gradle' apply from: '../scripts/versioning.gradle' diff --git a/android/DartsScorecard/app/release/output.json b/android/DartsScorecard/app/release/output.json deleted file mode 100644 index f571e316..00000000 --- a/android/DartsScorecard/app/release/output.json +++ /dev/null @@ -1 +0,0 @@ -[{"outputType":{"type":"APK"},"apkInfo":{"type":"MAIN","splits":[],"versionCode":1},"path":"app-release.apk","properties":{"packageId":"nl.entreco.dartsscorecard","split":"","minSdkVersion":"23"}}] \ No newline at end of file diff --git a/android/DartsScorecard/app/src/main/java/nl/entreco/dartsscorecard/base/ViewModelActivity.kt b/android/DartsScorecard/app/src/main/java/nl/entreco/dartsscorecard/base/ViewModelActivity.kt index bfa8a93a..53d4442d 100644 --- a/android/DartsScorecard/app/src/main/java/nl/entreco/dartsscorecard/base/ViewModelActivity.kt +++ b/android/DartsScorecard/app/src/main/java/nl/entreco/dartsscorecard/base/ViewModelActivity.kt @@ -1,13 +1,13 @@ package nl.entreco.dartsscorecard.base import android.app.Activity -import androidx.lifecycle.ViewModel -import androidx.lifecycle.ViewModelProvider import android.os.Bundle +import android.view.MenuItem import androidx.annotation.StringRes import androidx.appcompat.app.AppCompatActivity import androidx.appcompat.widget.Toolbar -import android.view.MenuItem +import androidx.lifecycle.ViewModel +import androidx.lifecycle.ViewModelProvider import nl.entreco.dartsscorecard.App import nl.entreco.dartsscorecard.R import nl.entreco.dartsscorecard.di.viewmodel.ViewModelComponent @@ -19,7 +19,7 @@ import nl.entreco.dartsscorecard.faq.WtfActivity */ abstract class ViewModelActivity : AppCompatActivity() { - private val styler by lazy { Styler( this) } + private val styler by lazy { Styler(this) } val Activity.app: App get() = application as App @@ -28,7 +28,8 @@ abstract class ViewModelActivity : AppCompatActivity() { @Suppress("UNCHECKED_CAST") inline fun viewModelProvider( mode: LazyThreadSafetyMode = LazyThreadSafetyMode.NONE, - crossinline provider: () -> VM) = lazy(mode) { + crossinline provider: () -> VM, + ) = lazy(mode) { ViewModelProvider(this, object : ViewModelProvider.Factory { override fun create(aClass: Class) = provider() as T1 @@ -37,7 +38,8 @@ abstract class ViewModelActivity : AppCompatActivity() { inline fun componentProvider( mode: LazyThreadSafetyMode = LazyThreadSafetyMode.NONE, - crossinline provider: (ViewModelComponent) -> VM) = lazy(mode) { + crossinline provider: (ViewModelComponent) -> VM, + ) = lazy(mode) { val component = app.appComponent.plus(ViewModelModule(this)) provider(component) } diff --git a/android/DartsScorecard/app/src/main/java/nl/entreco/dartsscorecard/beta/BetaAnimator.kt b/android/DartsScorecard/app/src/main/java/nl/entreco/dartsscorecard/beta/BetaAnimator.kt index 23be1743..067d4494 100644 --- a/android/DartsScorecard/app/src/main/java/nl/entreco/dartsscorecard/beta/BetaAnimator.kt +++ b/android/DartsScorecard/app/src/main/java/nl/entreco/dartsscorecard/beta/BetaAnimator.kt @@ -3,7 +3,6 @@ package nl.entreco.dartsscorecard.beta import android.view.View import com.google.android.material.appbar.AppBarLayout import com.google.android.material.bottomsheet.BottomSheetBehavior -import kotlinx.android.synthetic.main.include_beta_detail.view.voteFab import nl.entreco.dartsscorecard.databinding.ActivityBetaBinding import kotlin.math.abs import kotlin.math.max @@ -15,7 +14,7 @@ class BetaAnimator(binding: ActivityBetaBinding) { private val behaviour: BottomSheetBehavior = BottomSheetBehavior.from(binding.sheet) private val appBar = binding.includeToolbar.betaAppbar - private val animator = BetaAnimatorHandler(appBar, binding.includeToolbar.toolbar, binding.sheet, binding.sheet.voteFab) + private val animator = BetaAnimatorHandler(appBar, binding.includeToolbar.toolbar, binding.sheet, binding.includeBetaDetail.voteFab) internal var toggler: Toggler? = null internal var swapper: Swapper? = null diff --git a/android/DartsScorecard/app/src/main/java/nl/entreco/dartsscorecard/di/play/Play01Component.kt b/android/DartsScorecard/app/src/main/java/nl/entreco/dartsscorecard/di/play/Play01Component.kt index 243e97f0..f9c029b3 100644 --- a/android/DartsScorecard/app/src/main/java/nl/entreco/dartsscorecard/di/play/Play01Component.kt +++ b/android/DartsScorecard/app/src/main/java/nl/entreco/dartsscorecard/di/play/Play01Component.kt @@ -1,6 +1,8 @@ package nl.entreco.dartsscorecard.di.play import dagger.Subcomponent +import nl.entreco.dartsscorecard.dynamic.DynamicInstaller +import nl.entreco.dartsscorecard.dynamic.Installer import nl.entreco.dartsscorecard.play.Play01Navigator import nl.entreco.dartsscorecard.play.Play01ViewModel import nl.entreco.dartsscorecard.play.input.InputViewModel @@ -22,6 +24,7 @@ interface Play01Component { fun inputViewModel(): InputViewModel fun statViewModel(): LiveStatViewModel fun finishUsecase(): GetFinishUsecase + fun installer() : Installer fun billing() : BillingRepo fun ads(): AdViewModel } \ No newline at end of file diff --git a/android/DartsScorecard/app/src/main/java/nl/entreco/dartsscorecard/di/play/Play01Module.kt b/android/DartsScorecard/app/src/main/java/nl/entreco/dartsscorecard/di/play/Play01Module.kt index 5001d955..2b4f17a4 100644 --- a/android/DartsScorecard/app/src/main/java/nl/entreco/dartsscorecard/di/play/Play01Module.kt +++ b/android/DartsScorecard/app/src/main/java/nl/entreco/dartsscorecard/di/play/Play01Module.kt @@ -8,9 +8,11 @@ import com.google.android.play.core.splitinstall.SplitInstallRequest import com.google.firebase.remoteconfig.FirebaseRemoteConfig import dagger.Module import dagger.Provides -import nl.entreco.dartsscorecard.R import nl.entreco.dartsscorecard.archive.ArchiveJobService import nl.entreco.dartsscorecard.archive.ArchiveServiceLauncher +import nl.entreco.dartsscorecard.dynamic.DynamicInstaller +import nl.entreco.dartsscorecard.dynamic.Installer +import nl.entreco.dartsscorecard.dynamic.NoInstaller import nl.entreco.dartsscorecard.dynamic.NoMusicRepository import nl.entreco.dartsscorecard.dynamic.NoSoundRepository import nl.entreco.dartsscorecard.dynamic.SoundModuleProvider @@ -40,7 +42,6 @@ class Play01Module( private val listener: (MakePurchaseResponse) -> Unit, ) { - @Provides @Play01Scope fun provideBillingService(logger: Logger): BillingRepo { @@ -61,7 +62,7 @@ class Play01Module( @Provides @Play01Scope - fun provideSplitInstallRequest(@ActivityScope context: Context) = SplitInstallRequest.newBuilder() + fun provideSplitInstallRequest() = SplitInstallRequest.newBuilder() .addModule(SOUNDS) .build() @@ -69,29 +70,37 @@ class Play01Module( @Play01Scope fun provideSoundRepository( @ActivityScope context: Context, - splitInstallRequest: SplitInstallRequest, splitInstallManager: SplitInstallManager, prefs: AudioPrefRepository, - logger: Logger, ): SoundRepository { return if (splitInstallManager.installedModules.contains(SOUNDS)) { - val provider = Class.forName(DYNAMIC_PROVIDER).kotlin.objectInstance as SoundModuleProvider - provider.provideSoundRepository(context, prefs) - } else NoSoundRepository(logger, splitInstallRequest, splitInstallManager) + val provider = Class.forName(DYNAMIC_PROVIDER).kotlin.objectInstance as? SoundModuleProvider + val updatedContext = context.createPackageContext(context.packageName, 0) + provider?.provideSoundRepository(updatedContext.applicationContext, prefs) ?: NoSoundRepository() + } else NoSoundRepository() } @Provides @Play01Scope fun provideMusicRepository( @ActivityScope context: Context, - splitInstallRequest: SplitInstallRequest, splitInstallManager: SplitInstallManager, - logger: Logger, ): MusicRepository { return if (splitInstallManager.installedModules.contains(SOUNDS)) { - val provider = Class.forName(DYNAMIC_PROVIDER).kotlin.objectInstance as SoundModuleProvider - provider.provideMusicRepository(context) - } else NoMusicRepository(logger, splitInstallRequest, splitInstallManager) + val provider = Class.forName(DYNAMIC_PROVIDER).kotlin.objectInstance as? SoundModuleProvider + val updatedContext = context.createPackageContext(context.packageName, 0) + provider?.provideMusicRepository(updatedContext.applicationContext) ?: NoMusicRepository() + } else NoMusicRepository() + } + + @Provides + @Play01Scope + fun provideDynamicInstaller( + splitInstallRequest: SplitInstallRequest, + splitInstallManager: SplitInstallManager, + ): Installer { + return if (splitInstallManager.installedModules.contains(SOUNDS)) NoInstaller() + else DynamicInstaller(splitInstallRequest, splitInstallManager) } @Provides diff --git a/android/DartsScorecard/app/src/main/java/nl/entreco/dartsscorecard/dynamic/DynamicInstaller.kt b/android/DartsScorecard/app/src/main/java/nl/entreco/dartsscorecard/dynamic/DynamicInstaller.kt new file mode 100644 index 00000000..b2a1ea58 --- /dev/null +++ b/android/DartsScorecard/app/src/main/java/nl/entreco/dartsscorecard/dynamic/DynamicInstaller.kt @@ -0,0 +1,61 @@ +package nl.entreco.dartsscorecard.dynamic + +import com.google.android.play.core.ktx.status +import com.google.android.play.core.splitinstall.SplitInstallManager +import com.google.android.play.core.splitinstall.SplitInstallRequest +import com.google.android.play.core.splitinstall.SplitInstallSessionState +import com.google.android.play.core.splitinstall.SplitInstallStateUpdatedListener +import com.google.android.play.core.splitinstall.model.SplitInstallSessionStatus + +class DynamicInstaller( + private val request: SplitInstallRequest, + private val manager: SplitInstallManager, +) : Installer { + + private var mySessionId = 0 + + override fun install(callback: SoundInstalledCallback) { + val installListener = InstallListener(callback) + manager.registerListener(installListener) + manager.startInstall(request) + .addOnCompleteListener { } + .addOnSuccessListener { mySessionId = it } + .addOnFailureListener { callback.onError() } + } +} + +class InstallListener( + private val callback: SoundInstalledCallback, +) : SplitInstallStateUpdatedListener { + + override fun onStateUpdate(state: SplitInstallSessionState) { + when (state.status()) { + SplitInstallSessionStatus.DOWNLOADING -> { + val totalBytes = state.totalBytesToDownload() + val bytes = state.bytesDownloaded() + callback.onProgress(bytes, totalBytes) + } + SplitInstallSessionStatus.INSTALLED -> { + + // After a module is installed, you can start accessing its content or + // fire an intent to start an activity in the installed module. + // For other use cases, see access code and resources from installed modules. + + // If the request is an on demand module for an Android Instant App + // running on Android 8.0 (API level 26) or higher, you need to + // update the app context using the SplitInstallHelper API. + callback.onComplete() + } + SplitInstallSessionStatus.CANCELED, + SplitInstallSessionStatus.CANCELING, + SplitInstallSessionStatus.DOWNLOADED, + SplitInstallSessionStatus.FAILED, + SplitInstallSessionStatus.INSTALLING, + SplitInstallSessionStatus.PENDING, + SplitInstallSessionStatus.REQUIRES_USER_CONFIRMATION, + SplitInstallSessionStatus.UNKNOWN -> { + callback.onDebug(state.status()) + } + } + } +} diff --git a/android/DartsScorecard/app/src/main/java/nl/entreco/dartsscorecard/dynamic/Installer.kt b/android/DartsScorecard/app/src/main/java/nl/entreco/dartsscorecard/dynamic/Installer.kt new file mode 100644 index 00000000..82fb66a7 --- /dev/null +++ b/android/DartsScorecard/app/src/main/java/nl/entreco/dartsscorecard/dynamic/Installer.kt @@ -0,0 +1,5 @@ +package nl.entreco.dartsscorecard.dynamic + +interface Installer { + fun install(callback: SoundInstalledCallback) +} \ No newline at end of file diff --git a/android/DartsScorecard/app/src/main/java/nl/entreco/dartsscorecard/dynamic/NoInstaller.kt b/android/DartsScorecard/app/src/main/java/nl/entreco/dartsscorecard/dynamic/NoInstaller.kt new file mode 100644 index 00000000..a142d6af --- /dev/null +++ b/android/DartsScorecard/app/src/main/java/nl/entreco/dartsscorecard/dynamic/NoInstaller.kt @@ -0,0 +1,5 @@ +package nl.entreco.dartsscorecard.dynamic + +class NoInstaller : Installer { + override fun install(callback: SoundInstalledCallback) {} +} \ No newline at end of file diff --git a/android/DartsScorecard/app/src/main/java/nl/entreco/dartsscorecard/dynamic/NoMusicRepository.kt b/android/DartsScorecard/app/src/main/java/nl/entreco/dartsscorecard/dynamic/NoMusicRepository.kt index 546eb9eb..7253a7ee 100644 --- a/android/DartsScorecard/app/src/main/java/nl/entreco/dartsscorecard/dynamic/NoMusicRepository.kt +++ b/android/DartsScorecard/app/src/main/java/nl/entreco/dartsscorecard/dynamic/NoMusicRepository.kt @@ -1,44 +1,14 @@ package nl.entreco.dartsscorecard.dynamic -import com.google.android.play.core.internal.r -import com.google.android.play.core.splitinstall.SplitInstallManager -import com.google.android.play.core.splitinstall.SplitInstallRequest import nl.entreco.domain.mastercaller.MusicRepository -import nl.entreco.liblog.Logger +class NoMusicRepository: MusicRepository { -/************************************************************************* - * - * ONWARD CONFIDENTIAL - * __________________ - * - * [2021] ONWARD - * All Rights Reserved. - * - */ -class NoMusicRepository( - private val logger: Logger, - private val request: SplitInstallRequest, - private val manager: SplitInstallManager -) : MusicRepository { + override fun play() {} - override fun play() { - logger.i("Music play") - manager.startInstall(request) - .addOnCompleteListener{ logger.i("Music - installed") } - .addOnSuccessListener { logger.i("Music - loading") } - .addOnFailureListener { logger.i("Music - error: ${it.localizedMessage}") } - } + override fun pause() {} - override fun pause() { - logger.i("Music pause") - } + override fun resume() {} - override fun resume() { - logger.i("Music resume") - } - - override fun stop() { - logger.i("Music stop") - } + override fun stop() {} } \ No newline at end of file diff --git a/android/DartsScorecard/app/src/main/java/nl/entreco/dartsscorecard/dynamic/NoSoundRepository.kt b/android/DartsScorecard/app/src/main/java/nl/entreco/dartsscorecard/dynamic/NoSoundRepository.kt index 51114908..d1a984be 100644 --- a/android/DartsScorecard/app/src/main/java/nl/entreco/dartsscorecard/dynamic/NoSoundRepository.kt +++ b/android/DartsScorecard/app/src/main/java/nl/entreco/dartsscorecard/dynamic/NoSoundRepository.kt @@ -1,35 +1,11 @@ package nl.entreco.dartsscorecard.dynamic -import com.google.android.play.core.splitinstall.SplitInstallManager -import com.google.android.play.core.splitinstall.SplitInstallRequest import nl.entreco.domain.mastercaller.Sound import nl.entreco.domain.mastercaller.SoundRepository -import nl.entreco.liblog.Logger -/************************************************************************* - * - * ONWARD CONFIDENTIAL - * __________________ - * - * [2021] ONWARD - * All Rights Reserved. - * - */ -class NoSoundRepository( - private val logger: Logger, - private val request: SplitInstallRequest, - private val manager: SplitInstallManager -) : SoundRepository { +class NoSoundRepository : SoundRepository { - override fun play(sound: Sound) { - logger.i("Sound play: $sound") - manager.startInstall(request) - .addOnCompleteListener{ logger.i("Sound - installed") } - .addOnSuccessListener { logger.i("Sound - loading") } - .addOnFailureListener { logger.i("Sound - error: ${it.localizedMessage}") } - } + override fun play(sound: Sound) {} - override fun release() { - logger.i("Sound release") - } + override fun release() {} } \ No newline at end of file diff --git a/android/DartsScorecard/app/src/main/java/nl/entreco/dartsscorecard/dynamic/SoundInstalledCallback.kt b/android/DartsScorecard/app/src/main/java/nl/entreco/dartsscorecard/dynamic/SoundInstalledCallback.kt new file mode 100644 index 00000000..5953646d --- /dev/null +++ b/android/DartsScorecard/app/src/main/java/nl/entreco/dartsscorecard/dynamic/SoundInstalledCallback.kt @@ -0,0 +1,8 @@ +package nl.entreco.dartsscorecard.dynamic + +interface SoundInstalledCallback { + fun onComplete() + fun onProgress(bytes: Long, totalBytes: Long) + fun onError() + fun onDebug(status: Int) +} \ No newline at end of file diff --git a/android/DartsScorecard/app/src/main/java/nl/entreco/dartsscorecard/dynamic/SoundModuleProvider.kt b/android/DartsScorecard/app/src/main/java/nl/entreco/dartsscorecard/dynamic/SoundModuleProvider.kt index 8bea6ae4..41c1b617 100644 --- a/android/DartsScorecard/app/src/main/java/nl/entreco/dartsscorecard/dynamic/SoundModuleProvider.kt +++ b/android/DartsScorecard/app/src/main/java/nl/entreco/dartsscorecard/dynamic/SoundModuleProvider.kt @@ -6,15 +6,6 @@ import nl.entreco.domain.mastercaller.MusicRepository import nl.entreco.domain.mastercaller.SoundRepository import nl.entreco.domain.repository.AudioPrefRepository -/************************************************************************* - * - * ONWARD CONFIDENTIAL - * __________________ - * - * [2021] ONWARD - * All Rights Reserved. - * - */ interface SoundModuleProvider { fun provideSoundRepository(context: Context, @Play01Scope prefs: AudioPrefRepository): SoundRepository fun provideMusicRepository(context: Context): MusicRepository diff --git a/android/DartsScorecard/app/src/main/java/nl/entreco/dartsscorecard/launch/LaunchActivity.kt b/android/DartsScorecard/app/src/main/java/nl/entreco/dartsscorecard/launch/LaunchActivity.kt index e00375a3..6f47d613 100644 --- a/android/DartsScorecard/app/src/main/java/nl/entreco/dartsscorecard/launch/LaunchActivity.kt +++ b/android/DartsScorecard/app/src/main/java/nl/entreco/dartsscorecard/launch/LaunchActivity.kt @@ -6,6 +6,7 @@ import android.graphics.Color import android.os.Bundle import androidx.databinding.DataBindingUtil import androidx.lifecycle.Observer +import com.google.android.play.core.splitcompat.SplitCompat import nl.entreco.dartsscorecard.R import nl.entreco.dartsscorecard.base.ViewModelActivity import nl.entreco.dartsscorecard.databinding.ActivityLaunchBinding diff --git a/android/DartsScorecard/app/src/main/java/nl/entreco/dartsscorecard/play/Play01Activity.kt b/android/DartsScorecard/app/src/main/java/nl/entreco/dartsscorecard/play/Play01Activity.kt index c47bc8b5..a9ad0642 100644 --- a/android/DartsScorecard/app/src/main/java/nl/entreco/dartsscorecard/play/Play01Activity.kt +++ b/android/DartsScorecard/app/src/main/java/nl/entreco/dartsscorecard/play/Play01Activity.kt @@ -5,14 +5,21 @@ import android.content.Intent import android.os.Bundle import android.view.Menu import android.view.MenuItem +import android.view.View +import android.view.ViewGroup import android.view.WindowManager +import android.widget.ProgressBar +import android.widget.Toast import androidx.appcompat.widget.Toolbar import androidx.databinding.DataBindingUtil +import com.google.android.material.snackbar.Snackbar import nl.entreco.dartsscorecard.R import nl.entreco.dartsscorecard.base.ViewModelActivity import nl.entreco.dartsscorecard.databinding.ActivityPlay01Binding import nl.entreco.dartsscorecard.di.play.Play01Component import nl.entreco.dartsscorecard.di.play.Play01Module +import nl.entreco.dartsscorecard.dynamic.Installer +import nl.entreco.dartsscorecard.dynamic.SoundInstalledCallback import nl.entreco.dartsscorecard.play.input.InputViewModel import nl.entreco.dartsscorecard.play.live.LiveStatViewModel import nl.entreco.dartsscorecard.play.score.ScoreViewModel @@ -23,7 +30,8 @@ import nl.entreco.domain.repository.BillingRepo import nl.entreco.domain.setup.game.CreateGameResponse import nl.entreco.libads.ui.AdViewModel -class Play01Activity : ViewModelActivity() { + +class Play01Activity : ViewModelActivity(), SoundInstalledCallback { private val component: Play01Component by componentProvider { it.plus(Play01Module(this) { response -> @@ -36,6 +44,7 @@ class Play01Activity : ViewModelActivity() { private val statViewModel: LiveStatViewModel by viewModelProvider { component.statViewModel() } private val finishUsecase: GetFinishUsecase by componentProvider { component.finishUsecase() } private val adViewModel: AdViewModel by viewModelProvider { component.ads() } + private val installer: Installer by lazy { component.installer() } private val billingRepo: BillingRepo by lazy { component.billing() } private val navigator: Play01Navigator by lazy { component.navigator() } @@ -103,17 +112,19 @@ class Play01Activity : ViewModelActivity() { override fun onOptionsItemSelected(item: MenuItem): Boolean { when (item.itemId) { - R.id.menu_play_settings -> { + R.id.menu_play_settings -> { swapStyle() viewModel.loading.set(true) } R.id.menu_music_settings -> { + if (!item.isChecked) installer.install(this) viewModel.toggleBgMusic(item) } R.id.menu_sound_settings -> { + if (!item.isChecked) installer.install(this) viewModel.toggleMasterCaller(item) } - R.id.menu_delete_match -> { + R.id.menu_delete_match -> { viewModel.askToDeleteMatch { onBackPressed() } @@ -129,14 +140,13 @@ class Play01Activity : ViewModelActivity() { companion object { @JvmStatic - fun retrieveSetup(intent: Intent): Play01Request { - return Play01Request(intent.getLongExtra("gameId", -1), - intent.getStringExtra("teamIds").orEmpty(), - intent.getIntExtra("startScore", -1), - intent.getIntExtra("startIndex", -1), - intent.getIntExtra("legs", -1), - intent.getIntExtra("sets", -1)) - } + fun retrieveSetup(intent: Intent) = Play01Request( + intent.getLongExtra("gameId", -1), + intent.getStringExtra("teamIds").orEmpty(), + intent.getIntExtra("startScore", -1), + intent.getIntExtra("startIndex", -1), + intent.getIntExtra("legs", -1), + intent.getIntExtra("sets", -1)) @JvmStatic fun startGame(context: Context, create: CreateGameResponse) { @@ -150,4 +160,20 @@ class Play01Activity : ViewModelActivity() { context.startActivity(intent) } } + + override fun onComplete() { + navigator.doneSnackbar() + } + + override fun onProgress(bytes: Long, totalBytes: Long) { + navigator.showSnackbar((bytes.toFloat() / totalBytes.toFloat() * 100).toInt()) + } + + override fun onError() { + Toast.makeText(this, "Unable to download Sounds", Toast.LENGTH_SHORT).show() + } + + override fun onDebug(status: Int) { + Toast.makeText(this, "Debug code: $status", Toast.LENGTH_SHORT).show() + } } diff --git a/android/DartsScorecard/app/src/main/java/nl/entreco/dartsscorecard/play/Play01Animator.kt b/android/DartsScorecard/app/src/main/java/nl/entreco/dartsscorecard/play/Play01Animator.kt index e7a17f31..cfe391b0 100644 --- a/android/DartsScorecard/app/src/main/java/nl/entreco/dartsscorecard/play/Play01Animator.kt +++ b/android/DartsScorecard/app/src/main/java/nl/entreco/dartsscorecard/play/Play01Animator.kt @@ -5,10 +5,6 @@ import android.view.ViewPropertyAnimator import android.view.ViewTreeObserver import androidx.viewpager.widget.ViewPager import com.google.android.material.bottomsheet.BottomSheetBehavior -import kotlinx.android.synthetic.main.activity_play_01.view.includeScore -import kotlinx.android.synthetic.main.activity_play_01.view.includeToolbar -import kotlinx.android.synthetic.main.play_01_score.view.footer -import kotlinx.android.synthetic.main.play_01_score.view.header import nl.entreco.dartsscorecard.base.PagerAnimator import nl.entreco.dartsscorecard.base.widget.MaxHeightRecyclerView import nl.entreco.dartsscorecard.databinding.ActivityPlay01Binding @@ -29,8 +25,9 @@ class Play01Animator(binding: ActivityPlay01Binding) { private val animator = Play01AnimatorHandler(binding.root, binding.includeScore.scoreSheet, binding.includeInput.fab, binding.includeMain.mainSheet, binding.includeMain.version, binding.includeInput.inputResume, pager, binding.includeScore.teamContainer, inputSheet, - binding.root.includeScore.header, - binding.root.includeScore.footer, binding.root.includeToolbar) + binding.includeScore.header, + binding.includeScore.footer, + binding.includeToolbar.toolbar) init { animator.calculateHeightForScoreView() diff --git a/android/DartsScorecard/app/src/main/java/nl/entreco/dartsscorecard/play/Play01Navigator.kt b/android/DartsScorecard/app/src/main/java/nl/entreco/dartsscorecard/play/Play01Navigator.kt index 6ac6f959..6e9da92f 100644 --- a/android/DartsScorecard/app/src/main/java/nl/entreco/dartsscorecard/play/Play01Navigator.kt +++ b/android/DartsScorecard/app/src/main/java/nl/entreco/dartsscorecard/play/Play01Navigator.kt @@ -1,7 +1,7 @@ package nl.entreco.dartsscorecard.play -import com.google.android.material.snackbar.Snackbar import android.view.View +import com.google.android.material.snackbar.Snackbar import nl.entreco.dartsscorecard.R import nl.entreco.dartsscorecard.profile.view.ProfileActivity import nl.entreco.domain.model.players.Bot @@ -11,12 +11,16 @@ import javax.inject.Inject /** * Created by entreco on 24/02/2018. */ -class Play01Navigator @Inject constructor(private val activity: Play01Activity) { +class Play01Navigator @Inject constructor( + private val activity: Play01Activity, +) { + + private var snackbar: Snackbar? = null fun gotoTeamProfile(view: View, team: Team) { val teams = team.players.map { it.id }.filter { it > 0 }.toLongArray() when { - teams.isEmpty() -> { + teams.isEmpty() -> { Snackbar.make(view, R.string.err_player_was_deleted, Snackbar.LENGTH_INDEFINITE) .setAction(android.R.string.ok) { } .show() @@ -26,9 +30,28 @@ class Play01Navigator @Inject constructor(private val activity: Play01Activity) .setAction(android.R.string.ok) { } .show() } - else -> { + else -> { ProfileActivity.launch(activity, teams, view) } } } + + fun showSnackbar(percentage: Int) { + if (snackbar == null) { + snackbar = Snackbar.make(activity.findViewById(R.id.play_root), "Downloading Soundpack", Snackbar.LENGTH_INDEFINITE) + snackbar?.show() + } else if(snackbar?.isShown == true){ + snackbar?.setText("Downloading Soundpack\nProgress ($percentage%)") + } + } + + fun doneSnackbar() { + snackbar?.setAction("Restart") { + activity.runOnUiThread { + activity.finish() + snackbar = null + } + } + snackbar?.show() + } } diff --git a/android/DartsScorecard/app/src/main/java/nl/entreco/dartsscorecard/play/Play01ViewModel.kt b/android/DartsScorecard/app/src/main/java/nl/entreco/dartsscorecard/play/Play01ViewModel.kt index 9b143444..31bb55c9 100644 --- a/android/DartsScorecard/app/src/main/java/nl/entreco/dartsscorecard/play/Play01ViewModel.kt +++ b/android/DartsScorecard/app/src/main/java/nl/entreco/dartsscorecard/play/Play01ViewModel.kt @@ -11,7 +11,11 @@ import nl.entreco.dartsscorecard.base.DialogHelper import nl.entreco.dartsscorecard.play.score.GameLoadedNotifier import nl.entreco.dartsscorecard.play.score.TeamScoreListener import nl.entreco.dartsscorecard.play.score.UiCallback -import nl.entreco.domain.mastercaller.* +import nl.entreco.domain.mastercaller.MasterCaller +import nl.entreco.domain.mastercaller.MasterCallerRequest +import nl.entreco.domain.mastercaller.MusicPlayer +import nl.entreco.domain.mastercaller.ToggleMusicUsecase +import nl.entreco.domain.mastercaller.ToggleSoundUsecase import nl.entreco.domain.model.Game import nl.entreco.domain.model.Next import nl.entreco.domain.model.Score @@ -60,7 +64,7 @@ class Play01ViewModel @Inject constructor( private val askForRatingUsecase: AskForRatingUsecase, private val audioPrefRepository: AudioPrefRepository, private val adViewModel: AdViewModel, - @ActivityScope private val logger: Logger + @ActivityScope private val logger: Logger, ) : BaseViewModel(), UiCallback, InputListener { val loading = ObservableBoolean(true) @@ -74,8 +78,10 @@ class Play01ViewModel @Inject constructor( private var load: GameLoadedNotifier? = null private var loaders: Array>? = null - fun load(request: Play01Request, load: GameLoadedNotifier, - vararg loaders: GameLoadedNotifier) { + fun load( + request: Play01Request, load: GameLoadedNotifier, + vararg loaders: GameLoadedNotifier, + ) { this.load = load this.loaders = arrayOf(*loaders) this.playGameUsecase.loadGameAndStart(request, @@ -97,8 +103,10 @@ class Play01ViewModel @Inject constructor( } } - private fun onGameOk(request: Play01Request, response: Play01Response?, - revancheResponse: RevancheResponse?) { + private fun onGameOk( + request: Play01Request, response: Play01Response?, + revancheResponse: RevancheResponse?, + ) { this.request = request this.game = response?.game ?: revancheResponse!!.game this.teams = response?.teams ?: revancheResponse!!.teams @@ -124,9 +132,11 @@ class Play01ViewModel @Inject constructor( } } - fun registerListeners(scoreListener: ScoreListener, statListener: StatListener, - specialEventListener: SpecialEventListener<*>, - vararg playerListeners: PlayerListener) { + fun registerListeners( + scoreListener: ScoreListener, statListener: StatListener, + specialEventListener: SpecialEventListener<*>, + vararg playerListeners: PlayerListener, + ) { gameListeners.registerListeners(scoreListener, statListener, specialEventListener, *playerListeners) } @@ -213,21 +223,22 @@ class Play01ViewModel @Inject constructor( private fun notifyMasterCaller(next: Next, turn: Turn) { when (next.state) { - State.START -> masterCaller.play(MasterCallerRequest(start = true)) - State.LEG -> masterCaller.play(MasterCallerRequest(leg = true)) - State.SET -> masterCaller.play(MasterCallerRequest(set = true)) - State.MATCH -> masterCaller.play(MasterCallerRequest(match = true)) + State.START -> masterCaller.play(MasterCallerRequest(start = true)) + State.LEG -> masterCaller.play(MasterCallerRequest(leg = true)) + State.SET -> masterCaller.play(MasterCallerRequest(set = true)) + State.MATCH -> masterCaller.play(MasterCallerRequest(match = true)) State.ERR_BUST -> masterCaller.play(MasterCallerRequest(0)) - else -> masterCaller.play(MasterCallerRequest(turn.total())) + else -> masterCaller.play(MasterCallerRequest(turn.total())) } } private fun showInterstitial(next: Next) { when (next.state) { State.START -> adViewModel.provideInterstitial() - State.SET -> adViewModel.provideInterstitial() + State.SET -> adViewModel.provideInterstitial() State.MATCH -> adViewModel.provideInterstitial() - else -> { /* ignore */ } + else -> { /* ignore */ + } } } diff --git a/android/DartsScorecard/app/src/main/java/nl/entreco/dartsscorecard/play/live/TeamLiveStatModel.kt b/android/DartsScorecard/app/src/main/java/nl/entreco/dartsscorecard/play/live/TeamLiveStatModel.kt index 411961bf..8fed21f5 100644 --- a/android/DartsScorecard/app/src/main/java/nl/entreco/dartsscorecard/play/live/TeamLiveStatModel.kt +++ b/android/DartsScorecard/app/src/main/java/nl/entreco/dartsscorecard/play/live/TeamLiveStatModel.kt @@ -8,8 +8,10 @@ import nl.entreco.domain.model.players.Team /** * Created by entreco on 11/01/2018. */ -class TeamLiveStatModel(val team: Team, - private val liveStats: MutableList = mutableListOf()) { +class TeamLiveStatModel( + val team: Team, + private val liveStats: MutableList = mutableListOf(), +) { companion object { const val empty = "--" @@ -81,7 +83,7 @@ class TeamLiveStatModel(val team: Team, private fun updateHighestScore() { when (val value = liveStats .filter { it.highest.isNotEmpty() } - .maxBy { it.highest[0] } + .maxByOrNull { it.highest[0] } ?.highest?.firstOrNull()) { null -> hScore.set(empty) else -> hScore.set("$value") @@ -91,7 +93,7 @@ class TeamLiveStatModel(val team: Team, private fun updateHighestCheckout() { when (val value = liveStats .filter { it.highestCo.isNotEmpty() } - .maxBy { it.highestCo[0] } + .maxByOrNull { it.highestCo[0] } ?.highestCo?.firstOrNull()) { null -> hCo.set(empty) else -> hCo.set("$value") @@ -144,7 +146,7 @@ class TeamLiveStatModel(val team: Team, private fun update(set: Int, darts: Int, total: Int, nAtCheckout: Int, checkouts: Int) { val avg = when (darts) { 0 -> empty - else -> "%.2f".format(total / darts.toDouble() * 3) + else -> "%.2f".format(total / darts.toDouble() * 3) } val co = "$checkouts/$nAtCheckout" val du = when (nAtCheckout) { diff --git a/android/DartsScorecard/app/src/main/res/layout-land/activity_play_01.xml b/android/DartsScorecard/app/src/main/res/layout-land/activity_play_01.xml index bf591e11..bf469384 100644 --- a/android/DartsScorecard/app/src/main/res/layout-land/activity_play_01.xml +++ b/android/DartsScorecard/app/src/main/res/layout-land/activity_play_01.xml @@ -35,6 +35,7 @@ diff --git a/android/DartsScorecard/app/src/main/res/layout/activity_play_01.xml b/android/DartsScorecard/app/src/main/res/layout/activity_play_01.xml index a7a572dc..bb2924b2 100644 --- a/android/DartsScorecard/app/src/main/res/layout/activity_play_01.xml +++ b/android/DartsScorecard/app/src/main/res/layout/activity_play_01.xml @@ -35,6 +35,7 @@