diff --git a/subsonic-api/build.gradle b/subsonic-api/build.gradle index 4d6a0c05..78f37860 100644 --- a/subsonic-api/build.gradle +++ b/subsonic-api/build.gradle @@ -13,6 +13,8 @@ dependencies { api other.kotlinStdlib api other.retrofit api other.jacksonConverter + api other.koinCore + implementation(other.jacksonKotlin) { exclude module: 'kotlin-reflect' } @@ -36,7 +38,8 @@ jacoco { ext { // Excluding data classes jacocoExclude = [ - '**/models/**' + '**/models/**', + '**/di/**' ] } diff --git a/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/di/SubsonicApiModule.kt b/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/di/SubsonicApiModule.kt new file mode 100644 index 00000000..3e3ac397 --- /dev/null +++ b/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/di/SubsonicApiModule.kt @@ -0,0 +1,10 @@ +package org.moire.ultrasonic.api.subsonic.di + +import org.koin.dsl.context.Context +import org.moire.ultrasonic.api.subsonic.SubsonicAPIClient + +const val SUBSONIC_API_CLIENT_CONTEXT = "SubsonicApiClientContext" + +fun Context.subsonicApiModule() = context(SUBSONIC_API_CLIENT_CONTEXT) { + bean { return@bean SubsonicAPIClient(get()) } +} diff --git a/ultrasonic/build.gradle b/ultrasonic/build.gradle index 3bbd5475..bf224674 100644 --- a/ultrasonic/build.gradle +++ b/ultrasonic/build.gradle @@ -70,7 +70,7 @@ dependencies { testImplementation testing.kluent } -// Excluding all non-kotlin classes +// Excluding all java classes and stuff that should not be covered ext { jacocoExclude = [ '**/activity/**', @@ -84,7 +84,8 @@ ext { '**/view/**', '**/R$*.class', '**/R.class', - '**/BuildConfig.class' + '**/BuildConfig.class', + '**/di/**' ] } jacocoAndroidUnitTestReport { diff --git a/ultrasonic/src/main/kotlin/org/moire/ultrasonic/di/MusicServiceModule.kt b/ultrasonic/src/main/kotlin/org/moire/ultrasonic/di/MusicServiceModule.kt index e0c110d1..884b4988 100644 --- a/ultrasonic/src/main/kotlin/org/moire/ultrasonic/di/MusicServiceModule.kt +++ b/ultrasonic/src/main/kotlin/org/moire/ultrasonic/di/MusicServiceModule.kt @@ -8,6 +8,7 @@ import org.moire.ultrasonic.BuildConfig import org.moire.ultrasonic.api.subsonic.SubsonicAPIClient import org.moire.ultrasonic.api.subsonic.SubsonicAPIVersions import org.moire.ultrasonic.api.subsonic.SubsonicClientConfiguration +import org.moire.ultrasonic.api.subsonic.di.subsonicApiModule import org.moire.ultrasonic.cache.PermanentFileStorage import org.moire.ultrasonic.service.CachedMusicService import org.moire.ultrasonic.service.MusicService @@ -25,6 +26,8 @@ private const val LOG_TAG = "MusicServiceModule" fun musicServiceModule(sp: SharedPreferences) = applicationContext { context(MUSIC_SERVICE_CONTEXT) { + subsonicApiModule() + bean(name = "ServerInstance") { return@bean sp.getInt( Constants.PREFERENCES_KEY_SERVER_INSTANCE,