diff --git a/.circleci/config.yml b/.circleci/config.yml index fa7fd824..001ebc62 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -25,12 +25,12 @@ jobs: - run: name: unit-tests command: | - ./gradlew :subsonic-api:test :cache:test :subsonic-api-image-loader:testDebugUnitTest :ultrasonic:testDebugUnitTest + ./gradlew ciTest testDebugUnitTest ./gradlew jacocoFullReport bash <(curl -s https://codecov.io/bash) - run: name: lint - command: ./gradlew lint + command: ./gradlew :ultrasonic:lintRelease - run: name: assemble release build command: ./gradlew assembleRelease diff --git a/build.gradle b/build.gradle index abcee58c..d8dd50e5 100644 --- a/build.gradle +++ b/build.gradle @@ -2,6 +2,11 @@ buildscript { apply from: 'dependencies.gradle' + ext.bootstrap = [ + kotlinModule : "${project.rootDir}/gradle_scripts/kotlin-module-bootstrap.gradle", + androidModule : "${project.rootDir}/gradle_scripts/android-module-bootstrap.gradle" + ] + repositories { jcenter() google() diff --git a/cache/build.gradle b/cache/build.gradle deleted file mode 100644 index 57cecf59..00000000 --- a/cache/build.gradle +++ /dev/null @@ -1,46 +0,0 @@ -apply plugin: 'java-library' -apply plugin: 'kotlin' -apply plugin: 'jacoco' -apply from: '../gradle_scripts/code_quality.gradle' - -dependencies { - api project(':domain') - api other.kotlinStdlib - api other.twitterSerial - - testImplementation testing.junit - testImplementation testing.kotlinJunit - testImplementation testing.mockito - testImplementation testing.mockitoInline - testImplementation testing.mockitoKotlin - testImplementation testing.kluent -} - -jacoco { - toolVersion(versions.jacoco) -} - -ext { - jacocoExclude = [] -} - -jacocoTestReport { - reports { - html.enabled true - csv.enabled false - xml.enabled true - } - - afterEvaluate { - classDirectories = files(classDirectories.files.collect { - fileTree(dir: it, excludes: jacocoExclude) - }) - } -} - -test.finalizedBy jacocoTestReport -test { - jacoco { - excludes += jacocoExclude - } -} diff --git a/core/cache/build.gradle b/core/cache/build.gradle new file mode 100644 index 00000000..4f9d6446 --- /dev/null +++ b/core/cache/build.gradle @@ -0,0 +1,12 @@ +apply from: bootstrap.kotlinModule + +dependencies { + api project(':core:domain') + api other.twitterSerial + + testImplementation testing.kotlinJunit + testImplementation testing.mockito + testImplementation testing.mockitoInline + testImplementation testing.mockitoKotlin + testImplementation testing.kluent +} diff --git a/cache/src/main/kotlin/org/moire/ultrasonic/cache/Directories.kt b/core/cache/src/main/kotlin/org/moire/ultrasonic/cache/Directories.kt similarity index 100% rename from cache/src/main/kotlin/org/moire/ultrasonic/cache/Directories.kt rename to core/cache/src/main/kotlin/org/moire/ultrasonic/cache/Directories.kt diff --git a/cache/src/main/kotlin/org/moire/ultrasonic/cache/PermanentFileStorage.kt b/core/cache/src/main/kotlin/org/moire/ultrasonic/cache/PermanentFileStorage.kt similarity index 100% rename from cache/src/main/kotlin/org/moire/ultrasonic/cache/PermanentFileStorage.kt rename to core/cache/src/main/kotlin/org/moire/ultrasonic/cache/PermanentFileStorage.kt diff --git a/cache/src/main/kotlin/org/moire/ultrasonic/cache/serializers/ArtistSerializer.kt b/core/cache/src/main/kotlin/org/moire/ultrasonic/cache/serializers/ArtistSerializer.kt similarity index 100% rename from cache/src/main/kotlin/org/moire/ultrasonic/cache/serializers/ArtistSerializer.kt rename to core/cache/src/main/kotlin/org/moire/ultrasonic/cache/serializers/ArtistSerializer.kt diff --git a/cache/src/main/kotlin/org/moire/ultrasonic/cache/serializers/IndexesSerializer.kt b/core/cache/src/main/kotlin/org/moire/ultrasonic/cache/serializers/IndexesSerializer.kt similarity index 100% rename from cache/src/main/kotlin/org/moire/ultrasonic/cache/serializers/IndexesSerializer.kt rename to core/cache/src/main/kotlin/org/moire/ultrasonic/cache/serializers/IndexesSerializer.kt diff --git a/cache/src/main/kotlin/org/moire/ultrasonic/cache/serializers/MusicFolderSerializer.kt b/core/cache/src/main/kotlin/org/moire/ultrasonic/cache/serializers/MusicFolderSerializer.kt similarity index 100% rename from cache/src/main/kotlin/org/moire/ultrasonic/cache/serializers/MusicFolderSerializer.kt rename to core/cache/src/main/kotlin/org/moire/ultrasonic/cache/serializers/MusicFolderSerializer.kt diff --git a/cache/src/test/kotlin/org/moire/ultrasonic/cache/BaseStorageTest.kt b/core/cache/src/test/kotlin/org/moire/ultrasonic/cache/BaseStorageTest.kt similarity index 100% rename from cache/src/test/kotlin/org/moire/ultrasonic/cache/BaseStorageTest.kt rename to core/cache/src/test/kotlin/org/moire/ultrasonic/cache/BaseStorageTest.kt diff --git a/cache/src/test/kotlin/org/moire/ultrasonic/cache/PermanentFileStorageTest.kt b/core/cache/src/test/kotlin/org/moire/ultrasonic/cache/PermanentFileStorageTest.kt similarity index 100% rename from cache/src/test/kotlin/org/moire/ultrasonic/cache/PermanentFileStorageTest.kt rename to core/cache/src/test/kotlin/org/moire/ultrasonic/cache/PermanentFileStorageTest.kt diff --git a/cache/src/test/kotlin/org/moire/ultrasonic/cache/serializers/ArtistSerializerTest.kt b/core/cache/src/test/kotlin/org/moire/ultrasonic/cache/serializers/ArtistSerializerTest.kt similarity index 100% rename from cache/src/test/kotlin/org/moire/ultrasonic/cache/serializers/ArtistSerializerTest.kt rename to core/cache/src/test/kotlin/org/moire/ultrasonic/cache/serializers/ArtistSerializerTest.kt diff --git a/cache/src/test/kotlin/org/moire/ultrasonic/cache/serializers/IndexesSerializerTest.kt b/core/cache/src/test/kotlin/org/moire/ultrasonic/cache/serializers/IndexesSerializerTest.kt similarity index 100% rename from cache/src/test/kotlin/org/moire/ultrasonic/cache/serializers/IndexesSerializerTest.kt rename to core/cache/src/test/kotlin/org/moire/ultrasonic/cache/serializers/IndexesSerializerTest.kt diff --git a/cache/src/test/kotlin/org/moire/ultrasonic/cache/serializers/MusicFolderSerializerTest.kt b/core/cache/src/test/kotlin/org/moire/ultrasonic/cache/serializers/MusicFolderSerializerTest.kt similarity index 100% rename from cache/src/test/kotlin/org/moire/ultrasonic/cache/serializers/MusicFolderSerializerTest.kt rename to core/cache/src/test/kotlin/org/moire/ultrasonic/cache/serializers/MusicFolderSerializerTest.kt diff --git a/core/domain/build.gradle b/core/domain/build.gradle new file mode 100644 index 00000000..b6d0f5d0 --- /dev/null +++ b/core/domain/build.gradle @@ -0,0 +1,10 @@ +apply from: bootstrap.kotlinModule + +ext { + jacocoExclude = [ + '**/domain/**' + ] +} +dependencies { + api other.semver +} diff --git a/domain/src/main/kotlin/org/moire/ultrasonic/domain/Artist.kt b/core/domain/src/main/kotlin/org/moire/ultrasonic/domain/Artist.kt similarity index 100% rename from domain/src/main/kotlin/org/moire/ultrasonic/domain/Artist.kt rename to core/domain/src/main/kotlin/org/moire/ultrasonic/domain/Artist.kt diff --git a/domain/src/main/kotlin/org/moire/ultrasonic/domain/Bookmark.kt b/core/domain/src/main/kotlin/org/moire/ultrasonic/domain/Bookmark.kt similarity index 100% rename from domain/src/main/kotlin/org/moire/ultrasonic/domain/Bookmark.kt rename to core/domain/src/main/kotlin/org/moire/ultrasonic/domain/Bookmark.kt diff --git a/domain/src/main/kotlin/org/moire/ultrasonic/domain/ChatMessage.kt b/core/domain/src/main/kotlin/org/moire/ultrasonic/domain/ChatMessage.kt similarity index 100% rename from domain/src/main/kotlin/org/moire/ultrasonic/domain/ChatMessage.kt rename to core/domain/src/main/kotlin/org/moire/ultrasonic/domain/ChatMessage.kt diff --git a/domain/src/main/kotlin/org/moire/ultrasonic/domain/Genre.kt b/core/domain/src/main/kotlin/org/moire/ultrasonic/domain/Genre.kt similarity index 100% rename from domain/src/main/kotlin/org/moire/ultrasonic/domain/Genre.kt rename to core/domain/src/main/kotlin/org/moire/ultrasonic/domain/Genre.kt diff --git a/domain/src/main/kotlin/org/moire/ultrasonic/domain/Indexes.kt b/core/domain/src/main/kotlin/org/moire/ultrasonic/domain/Indexes.kt similarity index 100% rename from domain/src/main/kotlin/org/moire/ultrasonic/domain/Indexes.kt rename to core/domain/src/main/kotlin/org/moire/ultrasonic/domain/Indexes.kt diff --git a/domain/src/main/kotlin/org/moire/ultrasonic/domain/JukeboxStatus.kt b/core/domain/src/main/kotlin/org/moire/ultrasonic/domain/JukeboxStatus.kt similarity index 100% rename from domain/src/main/kotlin/org/moire/ultrasonic/domain/JukeboxStatus.kt rename to core/domain/src/main/kotlin/org/moire/ultrasonic/domain/JukeboxStatus.kt diff --git a/domain/src/main/kotlin/org/moire/ultrasonic/domain/Lyrics.kt b/core/domain/src/main/kotlin/org/moire/ultrasonic/domain/Lyrics.kt similarity index 100% rename from domain/src/main/kotlin/org/moire/ultrasonic/domain/Lyrics.kt rename to core/domain/src/main/kotlin/org/moire/ultrasonic/domain/Lyrics.kt diff --git a/domain/src/main/kotlin/org/moire/ultrasonic/domain/MusicDirectory.kt b/core/domain/src/main/kotlin/org/moire/ultrasonic/domain/MusicDirectory.kt similarity index 100% rename from domain/src/main/kotlin/org/moire/ultrasonic/domain/MusicDirectory.kt rename to core/domain/src/main/kotlin/org/moire/ultrasonic/domain/MusicDirectory.kt diff --git a/domain/src/main/kotlin/org/moire/ultrasonic/domain/MusicFolder.kt b/core/domain/src/main/kotlin/org/moire/ultrasonic/domain/MusicFolder.kt similarity index 100% rename from domain/src/main/kotlin/org/moire/ultrasonic/domain/MusicFolder.kt rename to core/domain/src/main/kotlin/org/moire/ultrasonic/domain/MusicFolder.kt diff --git a/domain/src/main/kotlin/org/moire/ultrasonic/domain/PlayerState.kt b/core/domain/src/main/kotlin/org/moire/ultrasonic/domain/PlayerState.kt similarity index 100% rename from domain/src/main/kotlin/org/moire/ultrasonic/domain/PlayerState.kt rename to core/domain/src/main/kotlin/org/moire/ultrasonic/domain/PlayerState.kt diff --git a/domain/src/main/kotlin/org/moire/ultrasonic/domain/Playlist.kt b/core/domain/src/main/kotlin/org/moire/ultrasonic/domain/Playlist.kt similarity index 100% rename from domain/src/main/kotlin/org/moire/ultrasonic/domain/Playlist.kt rename to core/domain/src/main/kotlin/org/moire/ultrasonic/domain/Playlist.kt diff --git a/domain/src/main/kotlin/org/moire/ultrasonic/domain/PodcastsChannel.kt b/core/domain/src/main/kotlin/org/moire/ultrasonic/domain/PodcastsChannel.kt similarity index 100% rename from domain/src/main/kotlin/org/moire/ultrasonic/domain/PodcastsChannel.kt rename to core/domain/src/main/kotlin/org/moire/ultrasonic/domain/PodcastsChannel.kt diff --git a/domain/src/main/kotlin/org/moire/ultrasonic/domain/RepeatMode.kt b/core/domain/src/main/kotlin/org/moire/ultrasonic/domain/RepeatMode.kt similarity index 100% rename from domain/src/main/kotlin/org/moire/ultrasonic/domain/RepeatMode.kt rename to core/domain/src/main/kotlin/org/moire/ultrasonic/domain/RepeatMode.kt diff --git a/domain/src/main/kotlin/org/moire/ultrasonic/domain/SearchCriteria.kt b/core/domain/src/main/kotlin/org/moire/ultrasonic/domain/SearchCriteria.kt similarity index 100% rename from domain/src/main/kotlin/org/moire/ultrasonic/domain/SearchCriteria.kt rename to core/domain/src/main/kotlin/org/moire/ultrasonic/domain/SearchCriteria.kt diff --git a/domain/src/main/kotlin/org/moire/ultrasonic/domain/SearchResult.kt b/core/domain/src/main/kotlin/org/moire/ultrasonic/domain/SearchResult.kt similarity index 100% rename from domain/src/main/kotlin/org/moire/ultrasonic/domain/SearchResult.kt rename to core/domain/src/main/kotlin/org/moire/ultrasonic/domain/SearchResult.kt diff --git a/domain/src/main/kotlin/org/moire/ultrasonic/domain/Share.kt b/core/domain/src/main/kotlin/org/moire/ultrasonic/domain/Share.kt similarity index 100% rename from domain/src/main/kotlin/org/moire/ultrasonic/domain/Share.kt rename to core/domain/src/main/kotlin/org/moire/ultrasonic/domain/Share.kt diff --git a/domain/src/main/kotlin/org/moire/ultrasonic/domain/UserInfo.kt b/core/domain/src/main/kotlin/org/moire/ultrasonic/domain/UserInfo.kt similarity index 100% rename from domain/src/main/kotlin/org/moire/ultrasonic/domain/UserInfo.kt rename to core/domain/src/main/kotlin/org/moire/ultrasonic/domain/UserInfo.kt diff --git a/domain/src/main/kotlin/org/moire/ultrasonic/domain/Version.kt b/core/domain/src/main/kotlin/org/moire/ultrasonic/domain/Version.kt similarity index 100% rename from domain/src/main/kotlin/org/moire/ultrasonic/domain/Version.kt rename to core/domain/src/main/kotlin/org/moire/ultrasonic/domain/Version.kt diff --git a/core/library/build.gradle b/core/library/build.gradle new file mode 100644 index 00000000..75940e1c --- /dev/null +++ b/core/library/build.gradle @@ -0,0 +1,13 @@ +apply from: bootstrap.androidModule +apply plugin: 'com.android.library' + +android { + lintOptions { + baselineFile file("lint-baseline.xml") + abortOnError true + } +} + +dependencies { + api androidSupport.support +} diff --git a/library/lint-baseline.xml b/core/library/lint-baseline.xml similarity index 100% rename from library/lint-baseline.xml rename to core/library/lint-baseline.xml diff --git a/library/src/main/AndroidManifest.xml b/core/library/src/main/AndroidManifest.xml similarity index 70% rename from library/src/main/AndroidManifest.xml rename to core/library/src/main/AndroidManifest.xml index f0ef29f3..7a731338 100644 --- a/library/src/main/AndroidManifest.xml +++ b/core/library/src/main/AndroidManifest.xml @@ -3,6 +3,4 @@ package="com.mobeta.android.dslv" android:versionCode="4" android:versionName="0.6.1"> - - + diff --git a/library/src/main/java/com/mobeta/android/dslv/DragSortController.java b/core/library/src/main/java/com/mobeta/android/dslv/DragSortController.java similarity index 100% rename from library/src/main/java/com/mobeta/android/dslv/DragSortController.java rename to core/library/src/main/java/com/mobeta/android/dslv/DragSortController.java diff --git a/library/src/main/java/com/mobeta/android/dslv/DragSortCursorAdapter.java b/core/library/src/main/java/com/mobeta/android/dslv/DragSortCursorAdapter.java similarity index 100% rename from library/src/main/java/com/mobeta/android/dslv/DragSortCursorAdapter.java rename to core/library/src/main/java/com/mobeta/android/dslv/DragSortCursorAdapter.java diff --git a/library/src/main/java/com/mobeta/android/dslv/DragSortItemView.java b/core/library/src/main/java/com/mobeta/android/dslv/DragSortItemView.java similarity index 100% rename from library/src/main/java/com/mobeta/android/dslv/DragSortItemView.java rename to core/library/src/main/java/com/mobeta/android/dslv/DragSortItemView.java diff --git a/library/src/main/java/com/mobeta/android/dslv/DragSortItemViewCheckable.java b/core/library/src/main/java/com/mobeta/android/dslv/DragSortItemViewCheckable.java similarity index 100% rename from library/src/main/java/com/mobeta/android/dslv/DragSortItemViewCheckable.java rename to core/library/src/main/java/com/mobeta/android/dslv/DragSortItemViewCheckable.java diff --git a/library/src/main/java/com/mobeta/android/dslv/DragSortListView.java b/core/library/src/main/java/com/mobeta/android/dslv/DragSortListView.java similarity index 100% rename from library/src/main/java/com/mobeta/android/dslv/DragSortListView.java rename to core/library/src/main/java/com/mobeta/android/dslv/DragSortListView.java diff --git a/library/src/main/java/com/mobeta/android/dslv/ResourceDragSortCursorAdapter.java b/core/library/src/main/java/com/mobeta/android/dslv/ResourceDragSortCursorAdapter.java similarity index 100% rename from library/src/main/java/com/mobeta/android/dslv/ResourceDragSortCursorAdapter.java rename to core/library/src/main/java/com/mobeta/android/dslv/ResourceDragSortCursorAdapter.java diff --git a/library/src/main/java/com/mobeta/android/dslv/SimpleDragSortCursorAdapter.java b/core/library/src/main/java/com/mobeta/android/dslv/SimpleDragSortCursorAdapter.java similarity index 100% rename from library/src/main/java/com/mobeta/android/dslv/SimpleDragSortCursorAdapter.java rename to core/library/src/main/java/com/mobeta/android/dslv/SimpleDragSortCursorAdapter.java diff --git a/library/src/main/java/com/mobeta/android/dslv/SimpleFloatViewManager.java b/core/library/src/main/java/com/mobeta/android/dslv/SimpleFloatViewManager.java similarity index 100% rename from library/src/main/java/com/mobeta/android/dslv/SimpleFloatViewManager.java rename to core/library/src/main/java/com/mobeta/android/dslv/SimpleFloatViewManager.java diff --git a/library/src/main/res/values/dslv_attrs.xml b/core/library/src/main/res/values/dslv_attrs.xml similarity index 100% rename from library/src/main/res/values/dslv_attrs.xml rename to core/library/src/main/res/values/dslv_attrs.xml diff --git a/core/menudrawer/build.gradle b/core/menudrawer/build.gradle new file mode 100644 index 00000000..102c5711 --- /dev/null +++ b/core/menudrawer/build.gradle @@ -0,0 +1,8 @@ +apply from: bootstrap.androidModule + +android { + lintOptions { + baselineFile file("lint-baseline.xml") + abortOnError true + } +} diff --git a/menudrawer/lint-baseline.xml b/core/menudrawer/lint-baseline.xml similarity index 100% rename from menudrawer/lint-baseline.xml rename to core/menudrawer/lint-baseline.xml diff --git a/menudrawer/src/main/AndroidManifest.xml b/core/menudrawer/src/main/AndroidManifest.xml similarity index 75% rename from menudrawer/src/main/AndroidManifest.xml rename to core/menudrawer/src/main/AndroidManifest.xml index 0dc0710c..c80a4f06 100644 --- a/menudrawer/src/main/AndroidManifest.xml +++ b/core/menudrawer/src/main/AndroidManifest.xml @@ -3,6 +3,4 @@ package="net.simonvt.menudrawer" android:versionCode="6" android:versionName="3.0.2"> - - diff --git a/menudrawer/src/main/java/net/simonvt/menudrawer/BuildLayerFrameLayout.java b/core/menudrawer/src/main/java/net/simonvt/menudrawer/BuildLayerFrameLayout.java similarity index 100% rename from menudrawer/src/main/java/net/simonvt/menudrawer/BuildLayerFrameLayout.java rename to core/menudrawer/src/main/java/net/simonvt/menudrawer/BuildLayerFrameLayout.java diff --git a/menudrawer/src/main/java/net/simonvt/menudrawer/ColorDrawable.java b/core/menudrawer/src/main/java/net/simonvt/menudrawer/ColorDrawable.java similarity index 100% rename from menudrawer/src/main/java/net/simonvt/menudrawer/ColorDrawable.java rename to core/menudrawer/src/main/java/net/simonvt/menudrawer/ColorDrawable.java diff --git a/menudrawer/src/main/java/net/simonvt/menudrawer/DraggableDrawer.java b/core/menudrawer/src/main/java/net/simonvt/menudrawer/DraggableDrawer.java similarity index 100% rename from menudrawer/src/main/java/net/simonvt/menudrawer/DraggableDrawer.java rename to core/menudrawer/src/main/java/net/simonvt/menudrawer/DraggableDrawer.java diff --git a/menudrawer/src/main/java/net/simonvt/menudrawer/FloatScroller.java b/core/menudrawer/src/main/java/net/simonvt/menudrawer/FloatScroller.java similarity index 100% rename from menudrawer/src/main/java/net/simonvt/menudrawer/FloatScroller.java rename to core/menudrawer/src/main/java/net/simonvt/menudrawer/FloatScroller.java diff --git a/menudrawer/src/main/java/net/simonvt/menudrawer/MenuDrawer.java b/core/menudrawer/src/main/java/net/simonvt/menudrawer/MenuDrawer.java similarity index 100% rename from menudrawer/src/main/java/net/simonvt/menudrawer/MenuDrawer.java rename to core/menudrawer/src/main/java/net/simonvt/menudrawer/MenuDrawer.java diff --git a/menudrawer/src/main/java/net/simonvt/menudrawer/NoClickThroughFrameLayout.java b/core/menudrawer/src/main/java/net/simonvt/menudrawer/NoClickThroughFrameLayout.java similarity index 100% rename from menudrawer/src/main/java/net/simonvt/menudrawer/NoClickThroughFrameLayout.java rename to core/menudrawer/src/main/java/net/simonvt/menudrawer/NoClickThroughFrameLayout.java diff --git a/menudrawer/src/main/java/net/simonvt/menudrawer/OverlayDrawer.java b/core/menudrawer/src/main/java/net/simonvt/menudrawer/OverlayDrawer.java similarity index 100% rename from menudrawer/src/main/java/net/simonvt/menudrawer/OverlayDrawer.java rename to core/menudrawer/src/main/java/net/simonvt/menudrawer/OverlayDrawer.java diff --git a/menudrawer/src/main/java/net/simonvt/menudrawer/PeekInterpolator.java b/core/menudrawer/src/main/java/net/simonvt/menudrawer/PeekInterpolator.java similarity index 100% rename from menudrawer/src/main/java/net/simonvt/menudrawer/PeekInterpolator.java rename to core/menudrawer/src/main/java/net/simonvt/menudrawer/PeekInterpolator.java diff --git a/menudrawer/src/main/java/net/simonvt/menudrawer/Position.java b/core/menudrawer/src/main/java/net/simonvt/menudrawer/Position.java similarity index 100% rename from menudrawer/src/main/java/net/simonvt/menudrawer/Position.java rename to core/menudrawer/src/main/java/net/simonvt/menudrawer/Position.java diff --git a/menudrawer/src/main/java/net/simonvt/menudrawer/Scroller.java b/core/menudrawer/src/main/java/net/simonvt/menudrawer/Scroller.java similarity index 100% rename from menudrawer/src/main/java/net/simonvt/menudrawer/Scroller.java rename to core/menudrawer/src/main/java/net/simonvt/menudrawer/Scroller.java diff --git a/menudrawer/src/main/java/net/simonvt/menudrawer/SinusoidalInterpolator.java b/core/menudrawer/src/main/java/net/simonvt/menudrawer/SinusoidalInterpolator.java similarity index 100% rename from menudrawer/src/main/java/net/simonvt/menudrawer/SinusoidalInterpolator.java rename to core/menudrawer/src/main/java/net/simonvt/menudrawer/SinusoidalInterpolator.java diff --git a/menudrawer/src/main/java/net/simonvt/menudrawer/SlideDrawable.java b/core/menudrawer/src/main/java/net/simonvt/menudrawer/SlideDrawable.java similarity index 100% rename from menudrawer/src/main/java/net/simonvt/menudrawer/SlideDrawable.java rename to core/menudrawer/src/main/java/net/simonvt/menudrawer/SlideDrawable.java diff --git a/menudrawer/src/main/java/net/simonvt/menudrawer/SlidingDrawer.java b/core/menudrawer/src/main/java/net/simonvt/menudrawer/SlidingDrawer.java similarity index 100% rename from menudrawer/src/main/java/net/simonvt/menudrawer/SlidingDrawer.java rename to core/menudrawer/src/main/java/net/simonvt/menudrawer/SlidingDrawer.java diff --git a/menudrawer/src/main/java/net/simonvt/menudrawer/SmoothInterpolator.java b/core/menudrawer/src/main/java/net/simonvt/menudrawer/SmoothInterpolator.java similarity index 100% rename from menudrawer/src/main/java/net/simonvt/menudrawer/SmoothInterpolator.java rename to core/menudrawer/src/main/java/net/simonvt/menudrawer/SmoothInterpolator.java diff --git a/menudrawer/src/main/java/net/simonvt/menudrawer/StaticDrawer.java b/core/menudrawer/src/main/java/net/simonvt/menudrawer/StaticDrawer.java similarity index 100% rename from menudrawer/src/main/java/net/simonvt/menudrawer/StaticDrawer.java rename to core/menudrawer/src/main/java/net/simonvt/menudrawer/StaticDrawer.java diff --git a/menudrawer/src/main/java/net/simonvt/menudrawer/ViewHelper.java b/core/menudrawer/src/main/java/net/simonvt/menudrawer/ViewHelper.java similarity index 100% rename from menudrawer/src/main/java/net/simonvt/menudrawer/ViewHelper.java rename to core/menudrawer/src/main/java/net/simonvt/menudrawer/ViewHelper.java diff --git a/menudrawer/src/main/java/net/simonvt/menudrawer/compat/ActionBarHelper.java b/core/menudrawer/src/main/java/net/simonvt/menudrawer/compat/ActionBarHelper.java similarity index 100% rename from menudrawer/src/main/java/net/simonvt/menudrawer/compat/ActionBarHelper.java rename to core/menudrawer/src/main/java/net/simonvt/menudrawer/compat/ActionBarHelper.java diff --git a/menudrawer/src/main/java/net/simonvt/menudrawer/compat/ActionBarHelperCompat.java b/core/menudrawer/src/main/java/net/simonvt/menudrawer/compat/ActionBarHelperCompat.java similarity index 100% rename from menudrawer/src/main/java/net/simonvt/menudrawer/compat/ActionBarHelperCompat.java rename to core/menudrawer/src/main/java/net/simonvt/menudrawer/compat/ActionBarHelperCompat.java diff --git a/menudrawer/src/main/java/net/simonvt/menudrawer/compat/ActionBarHelperNative.java b/core/menudrawer/src/main/java/net/simonvt/menudrawer/compat/ActionBarHelperNative.java similarity index 100% rename from menudrawer/src/main/java/net/simonvt/menudrawer/compat/ActionBarHelperNative.java rename to core/menudrawer/src/main/java/net/simonvt/menudrawer/compat/ActionBarHelperNative.java diff --git a/menudrawer/src/main/res/values/attrs.xml b/core/menudrawer/src/main/res/values/attrs.xml similarity index 100% rename from menudrawer/src/main/res/values/attrs.xml rename to core/menudrawer/src/main/res/values/attrs.xml diff --git a/menudrawer/src/main/res/values/colors.xml b/core/menudrawer/src/main/res/values/colors.xml similarity index 100% rename from menudrawer/src/main/res/values/colors.xml rename to core/menudrawer/src/main/res/values/colors.xml diff --git a/menudrawer/src/main/res/values/ids.xml b/core/menudrawer/src/main/res/values/ids.xml similarity index 100% rename from menudrawer/src/main/res/values/ids.xml rename to core/menudrawer/src/main/res/values/ids.xml diff --git a/menudrawer/src/main/res/values/strings.xml b/core/menudrawer/src/main/res/values/strings.xml similarity index 100% rename from menudrawer/src/main/res/values/strings.xml rename to core/menudrawer/src/main/res/values/strings.xml diff --git a/menudrawer/src/main/res/values/styles.xml b/core/menudrawer/src/main/res/values/styles.xml similarity index 100% rename from menudrawer/src/main/res/values/styles.xml rename to core/menudrawer/src/main/res/values/styles.xml diff --git a/core/pulltorefresh/build.gradle b/core/pulltorefresh/build.gradle new file mode 100644 index 00000000..102c5711 --- /dev/null +++ b/core/pulltorefresh/build.gradle @@ -0,0 +1,8 @@ +apply from: bootstrap.androidModule + +android { + lintOptions { + baselineFile file("lint-baseline.xml") + abortOnError true + } +} diff --git a/pulltorefresh/lint-baseline.xml b/core/pulltorefresh/lint-baseline.xml similarity index 100% rename from pulltorefresh/lint-baseline.xml rename to core/pulltorefresh/lint-baseline.xml diff --git a/pulltorefresh/src/main/AndroidManifest.xml b/core/pulltorefresh/src/main/AndroidManifest.xml similarity index 72% rename from pulltorefresh/src/main/AndroidManifest.xml rename to core/pulltorefresh/src/main/AndroidManifest.xml index 6382ef54..2dc1eb5f 100644 --- a/pulltorefresh/src/main/AndroidManifest.xml +++ b/core/pulltorefresh/src/main/AndroidManifest.xml @@ -3,6 +3,4 @@ package="com.handmark.pulltorefresh.library" android:versionCode="2110" android:versionName="2.1.1"> - - \ No newline at end of file diff --git a/pulltorefresh/src/main/java/com/handmark/pulltorefresh/library/ILoadingLayout.java b/core/pulltorefresh/src/main/java/com/handmark/pulltorefresh/library/ILoadingLayout.java similarity index 100% rename from pulltorefresh/src/main/java/com/handmark/pulltorefresh/library/ILoadingLayout.java rename to core/pulltorefresh/src/main/java/com/handmark/pulltorefresh/library/ILoadingLayout.java diff --git a/pulltorefresh/src/main/java/com/handmark/pulltorefresh/library/IPullToRefresh.java b/core/pulltorefresh/src/main/java/com/handmark/pulltorefresh/library/IPullToRefresh.java similarity index 100% rename from pulltorefresh/src/main/java/com/handmark/pulltorefresh/library/IPullToRefresh.java rename to core/pulltorefresh/src/main/java/com/handmark/pulltorefresh/library/IPullToRefresh.java diff --git a/pulltorefresh/src/main/java/com/handmark/pulltorefresh/library/LoadingLayoutProxy.java b/core/pulltorefresh/src/main/java/com/handmark/pulltorefresh/library/LoadingLayoutProxy.java similarity index 100% rename from pulltorefresh/src/main/java/com/handmark/pulltorefresh/library/LoadingLayoutProxy.java rename to core/pulltorefresh/src/main/java/com/handmark/pulltorefresh/library/LoadingLayoutProxy.java diff --git a/pulltorefresh/src/main/java/com/handmark/pulltorefresh/library/OverscrollHelper.java b/core/pulltorefresh/src/main/java/com/handmark/pulltorefresh/library/OverscrollHelper.java similarity index 100% rename from pulltorefresh/src/main/java/com/handmark/pulltorefresh/library/OverscrollHelper.java rename to core/pulltorefresh/src/main/java/com/handmark/pulltorefresh/library/OverscrollHelper.java diff --git a/pulltorefresh/src/main/java/com/handmark/pulltorefresh/library/PullToRefreshAdapterViewBase.java b/core/pulltorefresh/src/main/java/com/handmark/pulltorefresh/library/PullToRefreshAdapterViewBase.java similarity index 100% rename from pulltorefresh/src/main/java/com/handmark/pulltorefresh/library/PullToRefreshAdapterViewBase.java rename to core/pulltorefresh/src/main/java/com/handmark/pulltorefresh/library/PullToRefreshAdapterViewBase.java diff --git a/pulltorefresh/src/main/java/com/handmark/pulltorefresh/library/PullToRefreshBase.java b/core/pulltorefresh/src/main/java/com/handmark/pulltorefresh/library/PullToRefreshBase.java similarity index 100% rename from pulltorefresh/src/main/java/com/handmark/pulltorefresh/library/PullToRefreshBase.java rename to core/pulltorefresh/src/main/java/com/handmark/pulltorefresh/library/PullToRefreshBase.java diff --git a/pulltorefresh/src/main/java/com/handmark/pulltorefresh/library/PullToRefreshExpandableListView.java b/core/pulltorefresh/src/main/java/com/handmark/pulltorefresh/library/PullToRefreshExpandableListView.java similarity index 100% rename from pulltorefresh/src/main/java/com/handmark/pulltorefresh/library/PullToRefreshExpandableListView.java rename to core/pulltorefresh/src/main/java/com/handmark/pulltorefresh/library/PullToRefreshExpandableListView.java diff --git a/pulltorefresh/src/main/java/com/handmark/pulltorefresh/library/PullToRefreshGridView.java b/core/pulltorefresh/src/main/java/com/handmark/pulltorefresh/library/PullToRefreshGridView.java similarity index 100% rename from pulltorefresh/src/main/java/com/handmark/pulltorefresh/library/PullToRefreshGridView.java rename to core/pulltorefresh/src/main/java/com/handmark/pulltorefresh/library/PullToRefreshGridView.java diff --git a/pulltorefresh/src/main/java/com/handmark/pulltorefresh/library/PullToRefreshHorizontalScrollView.java b/core/pulltorefresh/src/main/java/com/handmark/pulltorefresh/library/PullToRefreshHorizontalScrollView.java similarity index 100% rename from pulltorefresh/src/main/java/com/handmark/pulltorefresh/library/PullToRefreshHorizontalScrollView.java rename to core/pulltorefresh/src/main/java/com/handmark/pulltorefresh/library/PullToRefreshHorizontalScrollView.java diff --git a/pulltorefresh/src/main/java/com/handmark/pulltorefresh/library/PullToRefreshListView.java b/core/pulltorefresh/src/main/java/com/handmark/pulltorefresh/library/PullToRefreshListView.java similarity index 100% rename from pulltorefresh/src/main/java/com/handmark/pulltorefresh/library/PullToRefreshListView.java rename to core/pulltorefresh/src/main/java/com/handmark/pulltorefresh/library/PullToRefreshListView.java diff --git a/pulltorefresh/src/main/java/com/handmark/pulltorefresh/library/PullToRefreshScrollView.java b/core/pulltorefresh/src/main/java/com/handmark/pulltorefresh/library/PullToRefreshScrollView.java similarity index 100% rename from pulltorefresh/src/main/java/com/handmark/pulltorefresh/library/PullToRefreshScrollView.java rename to core/pulltorefresh/src/main/java/com/handmark/pulltorefresh/library/PullToRefreshScrollView.java diff --git a/pulltorefresh/src/main/java/com/handmark/pulltorefresh/library/PullToRefreshWebView.java b/core/pulltorefresh/src/main/java/com/handmark/pulltorefresh/library/PullToRefreshWebView.java similarity index 100% rename from pulltorefresh/src/main/java/com/handmark/pulltorefresh/library/PullToRefreshWebView.java rename to core/pulltorefresh/src/main/java/com/handmark/pulltorefresh/library/PullToRefreshWebView.java diff --git a/pulltorefresh/src/main/java/com/handmark/pulltorefresh/library/extras/PullToRefreshWebView2.java b/core/pulltorefresh/src/main/java/com/handmark/pulltorefresh/library/extras/PullToRefreshWebView2.java similarity index 100% rename from pulltorefresh/src/main/java/com/handmark/pulltorefresh/library/extras/PullToRefreshWebView2.java rename to core/pulltorefresh/src/main/java/com/handmark/pulltorefresh/library/extras/PullToRefreshWebView2.java diff --git a/pulltorefresh/src/main/java/com/handmark/pulltorefresh/library/extras/SoundPullEventListener.java b/core/pulltorefresh/src/main/java/com/handmark/pulltorefresh/library/extras/SoundPullEventListener.java similarity index 100% rename from pulltorefresh/src/main/java/com/handmark/pulltorefresh/library/extras/SoundPullEventListener.java rename to core/pulltorefresh/src/main/java/com/handmark/pulltorefresh/library/extras/SoundPullEventListener.java diff --git a/pulltorefresh/src/main/java/com/handmark/pulltorefresh/library/internal/EmptyViewMethodAccessor.java b/core/pulltorefresh/src/main/java/com/handmark/pulltorefresh/library/internal/EmptyViewMethodAccessor.java similarity index 100% rename from pulltorefresh/src/main/java/com/handmark/pulltorefresh/library/internal/EmptyViewMethodAccessor.java rename to core/pulltorefresh/src/main/java/com/handmark/pulltorefresh/library/internal/EmptyViewMethodAccessor.java diff --git a/pulltorefresh/src/main/java/com/handmark/pulltorefresh/library/internal/FlipLoadingLayout.java b/core/pulltorefresh/src/main/java/com/handmark/pulltorefresh/library/internal/FlipLoadingLayout.java similarity index 100% rename from pulltorefresh/src/main/java/com/handmark/pulltorefresh/library/internal/FlipLoadingLayout.java rename to core/pulltorefresh/src/main/java/com/handmark/pulltorefresh/library/internal/FlipLoadingLayout.java diff --git a/pulltorefresh/src/main/java/com/handmark/pulltorefresh/library/internal/IndicatorLayout.java b/core/pulltorefresh/src/main/java/com/handmark/pulltorefresh/library/internal/IndicatorLayout.java similarity index 100% rename from pulltorefresh/src/main/java/com/handmark/pulltorefresh/library/internal/IndicatorLayout.java rename to core/pulltorefresh/src/main/java/com/handmark/pulltorefresh/library/internal/IndicatorLayout.java diff --git a/pulltorefresh/src/main/java/com/handmark/pulltorefresh/library/internal/LoadingLayout.java b/core/pulltorefresh/src/main/java/com/handmark/pulltorefresh/library/internal/LoadingLayout.java similarity index 100% rename from pulltorefresh/src/main/java/com/handmark/pulltorefresh/library/internal/LoadingLayout.java rename to core/pulltorefresh/src/main/java/com/handmark/pulltorefresh/library/internal/LoadingLayout.java diff --git a/pulltorefresh/src/main/java/com/handmark/pulltorefresh/library/internal/RotateLoadingLayout.java b/core/pulltorefresh/src/main/java/com/handmark/pulltorefresh/library/internal/RotateLoadingLayout.java similarity index 100% rename from pulltorefresh/src/main/java/com/handmark/pulltorefresh/library/internal/RotateLoadingLayout.java rename to core/pulltorefresh/src/main/java/com/handmark/pulltorefresh/library/internal/RotateLoadingLayout.java diff --git a/pulltorefresh/src/main/java/com/handmark/pulltorefresh/library/internal/Utils.java b/core/pulltorefresh/src/main/java/com/handmark/pulltorefresh/library/internal/Utils.java similarity index 100% rename from pulltorefresh/src/main/java/com/handmark/pulltorefresh/library/internal/Utils.java rename to core/pulltorefresh/src/main/java/com/handmark/pulltorefresh/library/internal/Utils.java diff --git a/pulltorefresh/src/main/java/com/handmark/pulltorefresh/library/internal/ViewCompat.java b/core/pulltorefresh/src/main/java/com/handmark/pulltorefresh/library/internal/ViewCompat.java similarity index 100% rename from pulltorefresh/src/main/java/com/handmark/pulltorefresh/library/internal/ViewCompat.java rename to core/pulltorefresh/src/main/java/com/handmark/pulltorefresh/library/internal/ViewCompat.java diff --git a/pulltorefresh/src/main/res/anim/slide_in_from_bottom.xml b/core/pulltorefresh/src/main/res/anim/slide_in_from_bottom.xml similarity index 100% rename from pulltorefresh/src/main/res/anim/slide_in_from_bottom.xml rename to core/pulltorefresh/src/main/res/anim/slide_in_from_bottom.xml diff --git a/pulltorefresh/src/main/res/anim/slide_in_from_top.xml b/core/pulltorefresh/src/main/res/anim/slide_in_from_top.xml similarity index 100% rename from pulltorefresh/src/main/res/anim/slide_in_from_top.xml rename to core/pulltorefresh/src/main/res/anim/slide_in_from_top.xml diff --git a/pulltorefresh/src/main/res/anim/slide_out_to_bottom.xml b/core/pulltorefresh/src/main/res/anim/slide_out_to_bottom.xml similarity index 100% rename from pulltorefresh/src/main/res/anim/slide_out_to_bottom.xml rename to core/pulltorefresh/src/main/res/anim/slide_out_to_bottom.xml diff --git a/pulltorefresh/src/main/res/anim/slide_out_to_top.xml b/core/pulltorefresh/src/main/res/anim/slide_out_to_top.xml similarity index 100% rename from pulltorefresh/src/main/res/anim/slide_out_to_top.xml rename to core/pulltorefresh/src/main/res/anim/slide_out_to_top.xml diff --git a/pulltorefresh/src/main/res/drawable-hdpi/default_ptr_flip.png b/core/pulltorefresh/src/main/res/drawable-hdpi/default_ptr_flip.png similarity index 100% rename from pulltorefresh/src/main/res/drawable-hdpi/default_ptr_flip.png rename to core/pulltorefresh/src/main/res/drawable-hdpi/default_ptr_flip.png diff --git a/pulltorefresh/src/main/res/drawable-hdpi/default_ptr_rotate.png b/core/pulltorefresh/src/main/res/drawable-hdpi/default_ptr_rotate.png similarity index 100% rename from pulltorefresh/src/main/res/drawable-hdpi/default_ptr_rotate.png rename to core/pulltorefresh/src/main/res/drawable-hdpi/default_ptr_rotate.png diff --git a/pulltorefresh/src/main/res/drawable-hdpi/indicator_arrow.png b/core/pulltorefresh/src/main/res/drawable-hdpi/indicator_arrow.png similarity index 100% rename from pulltorefresh/src/main/res/drawable-hdpi/indicator_arrow.png rename to core/pulltorefresh/src/main/res/drawable-hdpi/indicator_arrow.png diff --git a/pulltorefresh/src/main/res/drawable-mdpi/default_ptr_flip.png b/core/pulltorefresh/src/main/res/drawable-mdpi/default_ptr_flip.png similarity index 100% rename from pulltorefresh/src/main/res/drawable-mdpi/default_ptr_flip.png rename to core/pulltorefresh/src/main/res/drawable-mdpi/default_ptr_flip.png diff --git a/pulltorefresh/src/main/res/drawable-mdpi/default_ptr_rotate.png b/core/pulltorefresh/src/main/res/drawable-mdpi/default_ptr_rotate.png similarity index 100% rename from pulltorefresh/src/main/res/drawable-mdpi/default_ptr_rotate.png rename to core/pulltorefresh/src/main/res/drawable-mdpi/default_ptr_rotate.png diff --git a/pulltorefresh/src/main/res/drawable-mdpi/indicator_arrow.png b/core/pulltorefresh/src/main/res/drawable-mdpi/indicator_arrow.png similarity index 100% rename from pulltorefresh/src/main/res/drawable-mdpi/indicator_arrow.png rename to core/pulltorefresh/src/main/res/drawable-mdpi/indicator_arrow.png diff --git a/pulltorefresh/src/main/res/drawable-xhdpi/default_ptr_flip.png b/core/pulltorefresh/src/main/res/drawable-xhdpi/default_ptr_flip.png similarity index 100% rename from pulltorefresh/src/main/res/drawable-xhdpi/default_ptr_flip.png rename to core/pulltorefresh/src/main/res/drawable-xhdpi/default_ptr_flip.png diff --git a/pulltorefresh/src/main/res/drawable-xhdpi/default_ptr_rotate.png b/core/pulltorefresh/src/main/res/drawable-xhdpi/default_ptr_rotate.png similarity index 100% rename from pulltorefresh/src/main/res/drawable-xhdpi/default_ptr_rotate.png rename to core/pulltorefresh/src/main/res/drawable-xhdpi/default_ptr_rotate.png diff --git a/pulltorefresh/src/main/res/drawable-xhdpi/indicator_arrow.png b/core/pulltorefresh/src/main/res/drawable-xhdpi/indicator_arrow.png similarity index 100% rename from pulltorefresh/src/main/res/drawable-xhdpi/indicator_arrow.png rename to core/pulltorefresh/src/main/res/drawable-xhdpi/indicator_arrow.png diff --git a/pulltorefresh/src/main/res/drawable/indicator_bg_bottom.xml b/core/pulltorefresh/src/main/res/drawable/indicator_bg_bottom.xml similarity index 100% rename from pulltorefresh/src/main/res/drawable/indicator_bg_bottom.xml rename to core/pulltorefresh/src/main/res/drawable/indicator_bg_bottom.xml diff --git a/pulltorefresh/src/main/res/drawable/indicator_bg_top.xml b/core/pulltorefresh/src/main/res/drawable/indicator_bg_top.xml similarity index 100% rename from pulltorefresh/src/main/res/drawable/indicator_bg_top.xml rename to core/pulltorefresh/src/main/res/drawable/indicator_bg_top.xml diff --git a/pulltorefresh/src/main/res/layout/pull_to_refresh_header_horizontal.xml b/core/pulltorefresh/src/main/res/layout/pull_to_refresh_header_horizontal.xml similarity index 100% rename from pulltorefresh/src/main/res/layout/pull_to_refresh_header_horizontal.xml rename to core/pulltorefresh/src/main/res/layout/pull_to_refresh_header_horizontal.xml diff --git a/pulltorefresh/src/main/res/layout/pull_to_refresh_header_vertical.xml b/core/pulltorefresh/src/main/res/layout/pull_to_refresh_header_vertical.xml similarity index 100% rename from pulltorefresh/src/main/res/layout/pull_to_refresh_header_vertical.xml rename to core/pulltorefresh/src/main/res/layout/pull_to_refresh_header_vertical.xml diff --git a/core/pulltorefresh/src/main/res/values-ar/pull_refresh_strings.xml b/core/pulltorefresh/src/main/res/values-ar/pull_refresh_strings.xml new file mode 100644 index 00000000..25d5392d --- /dev/null +++ b/core/pulltorefresh/src/main/res/values-ar/pull_refresh_strings.xml @@ -0,0 +1,6 @@ + + + اسحب للتحديث… + اترك للتحديث… + تحميل… + diff --git a/pulltorefresh/src/main/res/values-cs/pull_refresh_strings.xml b/core/pulltorefresh/src/main/res/values-cs/pull_refresh_strings.xml similarity index 98% rename from pulltorefresh/src/main/res/values-cs/pull_refresh_strings.xml rename to core/pulltorefresh/src/main/res/values-cs/pull_refresh_strings.xml index a8f0acea..c878da0c 100755 --- a/pulltorefresh/src/main/res/values-cs/pull_refresh_strings.xml +++ b/core/pulltorefresh/src/main/res/values-cs/pull_refresh_strings.xml @@ -1,6 +1,6 @@ - - - Tažením aktualizujete… - Uvolněním aktualizujete… - Načítání… - + + + Tažením aktualizujete… + Uvolněním aktualizujete… + Načítání… + diff --git a/pulltorefresh/src/main/res/values-de/pull_refresh_strings.xml b/core/pulltorefresh/src/main/res/values-de/pull_refresh_strings.xml similarity index 98% rename from pulltorefresh/src/main/res/values-de/pull_refresh_strings.xml rename to core/pulltorefresh/src/main/res/values-de/pull_refresh_strings.xml index 3f773deb..901291bf 100755 --- a/pulltorefresh/src/main/res/values-de/pull_refresh_strings.xml +++ b/core/pulltorefresh/src/main/res/values-de/pull_refresh_strings.xml @@ -1,6 +1,6 @@ - - - Ziehen zum Aktualisieren… - Loslassen zum Aktualisieren… - Laden… - + + + Ziehen zum Aktualisieren… + Loslassen zum Aktualisieren… + Laden… + diff --git a/pulltorefresh/src/main/res/values-es/pull_refresh_strings.xml b/core/pulltorefresh/src/main/res/values-es/pull_refresh_strings.xml similarity index 98% rename from pulltorefresh/src/main/res/values-es/pull_refresh_strings.xml rename to core/pulltorefresh/src/main/res/values-es/pull_refresh_strings.xml index 6f85c100..5e9d2803 100755 --- a/pulltorefresh/src/main/res/values-es/pull_refresh_strings.xml +++ b/core/pulltorefresh/src/main/res/values-es/pull_refresh_strings.xml @@ -1,6 +1,6 @@ - - - Tirar para actualizar… - Soltar para actualizar… - Cargando… - + + + Tirar para actualizar… + Soltar para actualizar… + Cargando… + diff --git a/pulltorefresh/src/main/res/values-fi/pull_refresh_strings.xml b/core/pulltorefresh/src/main/res/values-fi/pull_refresh_strings.xml similarity index 100% rename from pulltorefresh/src/main/res/values-fi/pull_refresh_strings.xml rename to core/pulltorefresh/src/main/res/values-fi/pull_refresh_strings.xml diff --git a/pulltorefresh/src/main/res/values-fr/pull_refresh_strings.xml b/core/pulltorefresh/src/main/res/values-fr/pull_refresh_strings.xml similarity index 98% rename from pulltorefresh/src/main/res/values-fr/pull_refresh_strings.xml rename to core/pulltorefresh/src/main/res/values-fr/pull_refresh_strings.xml index e59f07ec..fb53ef8c 100755 --- a/pulltorefresh/src/main/res/values-fr/pull_refresh_strings.xml +++ b/core/pulltorefresh/src/main/res/values-fr/pull_refresh_strings.xml @@ -1,6 +1,6 @@ - - - Tirez pour rafraîchir… - Relâcher pour rafraîchir… - Chargement… - + + + Tirez pour rafraîchir… + Relâcher pour rafraîchir… + Chargement… + diff --git a/pulltorefresh/src/main/res/values-he/pull_refresh_strings.xml b/core/pulltorefresh/src/main/res/values-he/pull_refresh_strings.xml similarity index 98% rename from pulltorefresh/src/main/res/values-he/pull_refresh_strings.xml rename to core/pulltorefresh/src/main/res/values-he/pull_refresh_strings.xml index f22f7853..beedc1f6 100644 --- a/pulltorefresh/src/main/res/values-he/pull_refresh_strings.xml +++ b/core/pulltorefresh/src/main/res/values-he/pull_refresh_strings.xml @@ -1,6 +1,6 @@ - - - משוך לרענון… - שחרר לרענון… - טוען… - + + + משוך לרענון… + שחרר לרענון… + טוען… + diff --git a/pulltorefresh/src/main/res/values-it/pull_refresh_strings.xml b/core/pulltorefresh/src/main/res/values-it/pull_refresh_strings.xml similarity index 98% rename from pulltorefresh/src/main/res/values-it/pull_refresh_strings.xml rename to core/pulltorefresh/src/main/res/values-it/pull_refresh_strings.xml index 9eaa7495..415fb9ed 100755 --- a/pulltorefresh/src/main/res/values-it/pull_refresh_strings.xml +++ b/core/pulltorefresh/src/main/res/values-it/pull_refresh_strings.xml @@ -1,6 +1,6 @@ - - - Tira per aggiornare… - Rilascia per aggionare… - Caricamento… - + + + Tira per aggiornare… + Rilascia per aggionare… + Caricamento… + diff --git a/pulltorefresh/src/main/res/values-iw/pull_refresh_strings.xml b/core/pulltorefresh/src/main/res/values-iw/pull_refresh_strings.xml similarity index 98% rename from pulltorefresh/src/main/res/values-iw/pull_refresh_strings.xml rename to core/pulltorefresh/src/main/res/values-iw/pull_refresh_strings.xml index f22f7853..beedc1f6 100644 --- a/pulltorefresh/src/main/res/values-iw/pull_refresh_strings.xml +++ b/core/pulltorefresh/src/main/res/values-iw/pull_refresh_strings.xml @@ -1,6 +1,6 @@ - - - משוך לרענון… - שחרר לרענון… - טוען… - + + + משוך לרענון… + שחרר לרענון… + טוען… + diff --git a/pulltorefresh/src/main/res/values-ja/pull_refresh_strings.xml b/core/pulltorefresh/src/main/res/values-ja/pull_refresh_strings.xml similarity index 98% rename from pulltorefresh/src/main/res/values-ja/pull_refresh_strings.xml rename to core/pulltorefresh/src/main/res/values-ja/pull_refresh_strings.xml index 12415443..d24842c9 100644 --- a/pulltorefresh/src/main/res/values-ja/pull_refresh_strings.xml +++ b/core/pulltorefresh/src/main/res/values-ja/pull_refresh_strings.xml @@ -1,6 +1,6 @@ - - - 画面を引っ張って… - 指を離して更新… - 読み込み中… - + + + 画面を引っ張って… + 指を離して更新… + 読み込み中… + diff --git a/pulltorefresh/src/main/res/values-ko/pull_refresh_strings.xml b/core/pulltorefresh/src/main/res/values-ko/pull_refresh_strings.xml similarity index 98% rename from pulltorefresh/src/main/res/values-ko/pull_refresh_strings.xml rename to core/pulltorefresh/src/main/res/values-ko/pull_refresh_strings.xml index 15d86d4d..53edd592 100755 --- a/pulltorefresh/src/main/res/values-ko/pull_refresh_strings.xml +++ b/core/pulltorefresh/src/main/res/values-ko/pull_refresh_strings.xml @@ -1,6 +1,6 @@ - - - 당겨서 새로 고침… - 놓아서 새로 고침… - 로드 중… - + + + 당겨서 새로 고침… + 놓아서 새로 고침… + 로드 중… + diff --git a/pulltorefresh/src/main/res/values-nl/pull_refresh_strings.xml b/core/pulltorefresh/src/main/res/values-nl/pull_refresh_strings.xml similarity index 98% rename from pulltorefresh/src/main/res/values-nl/pull_refresh_strings.xml rename to core/pulltorefresh/src/main/res/values-nl/pull_refresh_strings.xml index 0701c9b4..4c063ed9 100755 --- a/pulltorefresh/src/main/res/values-nl/pull_refresh_strings.xml +++ b/core/pulltorefresh/src/main/res/values-nl/pull_refresh_strings.xml @@ -1,6 +1,6 @@ - - - Sleep om te vernieuwen… - Loslaten om te vernieuwen… - Laden… - + + + Sleep om te vernieuwen… + Loslaten om te vernieuwen… + Laden… + diff --git a/pulltorefresh/src/main/res/values-pl/pull_refresh_strings.xml b/core/pulltorefresh/src/main/res/values-pl/pull_refresh_strings.xml similarity index 98% rename from pulltorefresh/src/main/res/values-pl/pull_refresh_strings.xml rename to core/pulltorefresh/src/main/res/values-pl/pull_refresh_strings.xml index 7d474c18..007255a2 100755 --- a/pulltorefresh/src/main/res/values-pl/pull_refresh_strings.xml +++ b/core/pulltorefresh/src/main/res/values-pl/pull_refresh_strings.xml @@ -1,6 +1,6 @@ - - - Pociągnij, aby odświeżyć… - Puść, aby odświeżyć… - Wczytywanie… - + + + Pociągnij, aby odświeżyć… + Puść, aby odświeżyć… + Wczytywanie… + diff --git a/pulltorefresh/src/main/res/values-pt-rBR/pull_refresh_strings.xml b/core/pulltorefresh/src/main/res/values-pt-rBR/pull_refresh_strings.xml similarity index 98% rename from pulltorefresh/src/main/res/values-pt-rBR/pull_refresh_strings.xml rename to core/pulltorefresh/src/main/res/values-pt-rBR/pull_refresh_strings.xml index 1a4359a8..0ec1ef7f 100755 --- a/pulltorefresh/src/main/res/values-pt-rBR/pull_refresh_strings.xml +++ b/core/pulltorefresh/src/main/res/values-pt-rBR/pull_refresh_strings.xml @@ -1,6 +1,6 @@ - - - Puxe para atualizar… - Libere para atualizar… - Carregando… - + + + Puxe para atualizar… + Libere para atualizar… + Carregando… + diff --git a/pulltorefresh/src/main/res/values-pt/pull_refresh_strings.xml b/core/pulltorefresh/src/main/res/values-pt/pull_refresh_strings.xml similarity index 98% rename from pulltorefresh/src/main/res/values-pt/pull_refresh_strings.xml rename to core/pulltorefresh/src/main/res/values-pt/pull_refresh_strings.xml index 71eea31a..d08bc63b 100755 --- a/pulltorefresh/src/main/res/values-pt/pull_refresh_strings.xml +++ b/core/pulltorefresh/src/main/res/values-pt/pull_refresh_strings.xml @@ -1,6 +1,6 @@ - - - Puxe para atualizar… - Liberação para atualizar… - A carregar… - + + + Puxe para atualizar… + Liberação para atualizar… + A carregar… + diff --git a/pulltorefresh/src/main/res/values-ro/pull_refresh_strings.xml b/core/pulltorefresh/src/main/res/values-ro/pull_refresh_strings.xml similarity index 98% rename from pulltorefresh/src/main/res/values-ro/pull_refresh_strings.xml rename to core/pulltorefresh/src/main/res/values-ro/pull_refresh_strings.xml index c89e80a9..87ddc941 100644 --- a/pulltorefresh/src/main/res/values-ro/pull_refresh_strings.xml +++ b/core/pulltorefresh/src/main/res/values-ro/pull_refresh_strings.xml @@ -1,6 +1,6 @@ - - - Trage pentru a reîmprospăta… - Eliberează pentru a reîmprospăta… - Încărcare… - + + + Trage pentru a reîmprospăta… + Eliberează pentru a reîmprospăta… + Încărcare… + diff --git a/pulltorefresh/src/main/res/values-ru/pull_refresh_strings.xml b/core/pulltorefresh/src/main/res/values-ru/pull_refresh_strings.xml similarity index 98% rename from pulltorefresh/src/main/res/values-ru/pull_refresh_strings.xml rename to core/pulltorefresh/src/main/res/values-ru/pull_refresh_strings.xml index ca364ff8..71ddcda7 100755 --- a/pulltorefresh/src/main/res/values-ru/pull_refresh_strings.xml +++ b/core/pulltorefresh/src/main/res/values-ru/pull_refresh_strings.xml @@ -1,6 +1,6 @@ - - - Потяните для обновления… - Отпустите для обновления… - Загрузка… - + + + Потяните для обновления… + Отпустите для обновления… + Загрузка… + diff --git a/pulltorefresh/src/main/res/values-zh/pull_refresh_strings.xml b/core/pulltorefresh/src/main/res/values-zh/pull_refresh_strings.xml similarity index 97% rename from pulltorefresh/src/main/res/values-zh/pull_refresh_strings.xml rename to core/pulltorefresh/src/main/res/values-zh/pull_refresh_strings.xml index 397376be..08766e0b 100755 --- a/pulltorefresh/src/main/res/values-zh/pull_refresh_strings.xml +++ b/core/pulltorefresh/src/main/res/values-zh/pull_refresh_strings.xml @@ -1,6 +1,6 @@ - - - 下拉刷新… - 放开以刷新… - 正在载入… - + + + 下拉刷新… + 放开以刷新… + 正在载入… + diff --git a/pulltorefresh/src/main/res/values/attrs.xml b/core/pulltorefresh/src/main/res/values/attrs.xml similarity index 100% rename from pulltorefresh/src/main/res/values/attrs.xml rename to core/pulltorefresh/src/main/res/values/attrs.xml diff --git a/pulltorefresh/src/main/res/values/dimens.xml b/core/pulltorefresh/src/main/res/values/dimens.xml similarity index 100% rename from pulltorefresh/src/main/res/values/dimens.xml rename to core/pulltorefresh/src/main/res/values/dimens.xml diff --git a/pulltorefresh/src/main/res/values/ids.xml b/core/pulltorefresh/src/main/res/values/ids.xml similarity index 100% rename from pulltorefresh/src/main/res/values/ids.xml rename to core/pulltorefresh/src/main/res/values/ids.xml diff --git a/pulltorefresh/src/main/res/values/pull_refresh_strings.xml b/core/pulltorefresh/src/main/res/values/pull_refresh_strings.xml similarity index 100% rename from pulltorefresh/src/main/res/values/pull_refresh_strings.xml rename to core/pulltorefresh/src/main/res/values/pull_refresh_strings.xml diff --git a/core/subsonic-api-image-loader/build.gradle b/core/subsonic-api-image-loader/build.gradle new file mode 100644 index 00000000..40c63863 --- /dev/null +++ b/core/subsonic-api-image-loader/build.gradle @@ -0,0 +1,22 @@ +apply from: bootstrap.androidModule + +android { + libraryVariants.all { + generateBuildConfig.enabled = true + } +} + +dependencies { + api project(':core:domain') + api project(':core:subsonic-api') + api(other.picasso) { + exclude group: "com.android.support" + } + + testImplementation testing.kotlinJunit + testImplementation testing.mockito + testImplementation testing.mockitoInline + testImplementation testing.mockitoKotlin + testImplementation testing.kluent + testImplementation testing.robolectric +} diff --git a/subsonic-api-image-loader/src/integrationTest/kotlin/org/moire/ultrasonic/subsonic/loader/image/AvatarRequestHandlerTest.kt b/core/subsonic-api-image-loader/src/integrationTest/kotlin/org/moire/ultrasonic/subsonic/loader/image/AvatarRequestHandlerTest.kt similarity index 97% rename from subsonic-api-image-loader/src/integrationTest/kotlin/org/moire/ultrasonic/subsonic/loader/image/AvatarRequestHandlerTest.kt rename to core/subsonic-api-image-loader/src/integrationTest/kotlin/org/moire/ultrasonic/subsonic/loader/image/AvatarRequestHandlerTest.kt index 4dbc5f33..df1ae690 100644 --- a/subsonic-api-image-loader/src/integrationTest/kotlin/org/moire/ultrasonic/subsonic/loader/image/AvatarRequestHandlerTest.kt +++ b/core/subsonic-api-image-loader/src/integrationTest/kotlin/org/moire/ultrasonic/subsonic/loader/image/AvatarRequestHandlerTest.kt @@ -50,7 +50,7 @@ class AvatarRequestHandlerTest { handler.load(requestUri.buildRequest(), 0) } - fail `should throw` IllegalStateException::class + fail `should throw` IllegalArgumentException::class } @Test diff --git a/subsonic-api-image-loader/src/integrationTest/kotlin/org/moire/ultrasonic/subsonic/loader/image/CommonFunctions.kt b/core/subsonic-api-image-loader/src/integrationTest/kotlin/org/moire/ultrasonic/subsonic/loader/image/CommonFunctions.kt similarity index 100% rename from subsonic-api-image-loader/src/integrationTest/kotlin/org/moire/ultrasonic/subsonic/loader/image/CommonFunctions.kt rename to core/subsonic-api-image-loader/src/integrationTest/kotlin/org/moire/ultrasonic/subsonic/loader/image/CommonFunctions.kt diff --git a/subsonic-api-image-loader/src/integrationTest/kotlin/org/moire/ultrasonic/subsonic/loader/image/CoverArtRequestHandlerTest.kt b/core/subsonic-api-image-loader/src/integrationTest/kotlin/org/moire/ultrasonic/subsonic/loader/image/CoverArtRequestHandlerTest.kt similarity index 97% rename from subsonic-api-image-loader/src/integrationTest/kotlin/org/moire/ultrasonic/subsonic/loader/image/CoverArtRequestHandlerTest.kt rename to core/subsonic-api-image-loader/src/integrationTest/kotlin/org/moire/ultrasonic/subsonic/loader/image/CoverArtRequestHandlerTest.kt index a4d74733..cfef4c4e 100644 --- a/subsonic-api-image-loader/src/integrationTest/kotlin/org/moire/ultrasonic/subsonic/loader/image/CoverArtRequestHandlerTest.kt +++ b/core/subsonic-api-image-loader/src/integrationTest/kotlin/org/moire/ultrasonic/subsonic/loader/image/CoverArtRequestHandlerTest.kt @@ -50,7 +50,7 @@ class CoverArtRequestHandlerTest { handler.load(requestUri.buildRequest(), 0) } - fail `should throw` IllegalStateException::class + fail `should throw` IllegalArgumentException::class } @Test diff --git a/subsonic-api-image-loader/src/integrationTest/kotlin/org/moire/ultrasonic/subsonic/loader/image/RequestCreatorTest.kt b/core/subsonic-api-image-loader/src/integrationTest/kotlin/org/moire/ultrasonic/subsonic/loader/image/RequestCreatorTest.kt similarity index 100% rename from subsonic-api-image-loader/src/integrationTest/kotlin/org/moire/ultrasonic/subsonic/loader/image/RequestCreatorTest.kt rename to core/subsonic-api-image-loader/src/integrationTest/kotlin/org/moire/ultrasonic/subsonic/loader/image/RequestCreatorTest.kt diff --git a/subsonic-api-image-loader/src/integrationTest/resources/Big_Buck_Bunny.jpeg b/core/subsonic-api-image-loader/src/integrationTest/resources/Big_Buck_Bunny.jpeg similarity index 100% rename from subsonic-api-image-loader/src/integrationTest/resources/Big_Buck_Bunny.jpeg rename to core/subsonic-api-image-loader/src/integrationTest/resources/Big_Buck_Bunny.jpeg diff --git a/subsonic-api-image-loader/src/main/AndroidManifest.xml b/core/subsonic-api-image-loader/src/main/AndroidManifest.xml similarity index 100% rename from subsonic-api-image-loader/src/main/AndroidManifest.xml rename to core/subsonic-api-image-loader/src/main/AndroidManifest.xml diff --git a/subsonic-api-image-loader/src/main/kotlin/org/moire/ultrasonic/subsonic/loader/image/AvatarRequestHandler.kt b/core/subsonic-api-image-loader/src/main/kotlin/org/moire/ultrasonic/subsonic/loader/image/AvatarRequestHandler.kt similarity index 93% rename from subsonic-api-image-loader/src/main/kotlin/org/moire/ultrasonic/subsonic/loader/image/AvatarRequestHandler.kt rename to core/subsonic-api-image-loader/src/main/kotlin/org/moire/ultrasonic/subsonic/loader/image/AvatarRequestHandler.kt index afce254e..f74f0bcf 100644 --- a/subsonic-api-image-loader/src/main/kotlin/org/moire/ultrasonic/subsonic/loader/image/AvatarRequestHandler.kt +++ b/core/subsonic-api-image-loader/src/main/kotlin/org/moire/ultrasonic/subsonic/loader/image/AvatarRequestHandler.kt @@ -23,6 +23,7 @@ class AvatarRequestHandler( override fun load(request: Request, networkPolicy: Int): Result { val username = request.uri.getQueryParameter(QUERY_USERNAME) + ?: throw IllegalArgumentException("Nullable username") val response = apiClient.getAvatar(username) if (response.hasError()) { diff --git a/subsonic-api-image-loader/src/main/kotlin/org/moire/ultrasonic/subsonic/loader/image/CoverArtRequestHandler.kt b/core/subsonic-api-image-loader/src/main/kotlin/org/moire/ultrasonic/subsonic/loader/image/CoverArtRequestHandler.kt similarity index 94% rename from subsonic-api-image-loader/src/main/kotlin/org/moire/ultrasonic/subsonic/loader/image/CoverArtRequestHandler.kt rename to core/subsonic-api-image-loader/src/main/kotlin/org/moire/ultrasonic/subsonic/loader/image/CoverArtRequestHandler.kt index 8c6f4cd3..d9c50dc9 100644 --- a/subsonic-api-image-loader/src/main/kotlin/org/moire/ultrasonic/subsonic/loader/image/CoverArtRequestHandler.kt +++ b/core/subsonic-api-image-loader/src/main/kotlin/org/moire/ultrasonic/subsonic/loader/image/CoverArtRequestHandler.kt @@ -21,6 +21,7 @@ class CoverArtRequestHandler(private val apiClient: SubsonicAPIClient) : Request override fun load(request: Request, networkPolicy: Int): Result { val id = request.uri.getQueryParameter(QUERY_ID) + ?: throw IllegalArgumentException("Nullable id") val response = apiClient.getCoverArt(id) if (response.hasError()) { diff --git a/subsonic-api-image-loader/src/main/kotlin/org/moire/ultrasonic/subsonic/loader/image/RequestCreator.kt b/core/subsonic-api-image-loader/src/main/kotlin/org/moire/ultrasonic/subsonic/loader/image/RequestCreator.kt similarity index 100% rename from subsonic-api-image-loader/src/main/kotlin/org/moire/ultrasonic/subsonic/loader/image/RequestCreator.kt rename to core/subsonic-api-image-loader/src/main/kotlin/org/moire/ultrasonic/subsonic/loader/image/RequestCreator.kt diff --git a/subsonic-api-image-loader/src/main/kotlin/org/moire/ultrasonic/subsonic/loader/image/SubsonicImageLoader.kt b/core/subsonic-api-image-loader/src/main/kotlin/org/moire/ultrasonic/subsonic/loader/image/SubsonicImageLoader.kt similarity index 100% rename from subsonic-api-image-loader/src/main/kotlin/org/moire/ultrasonic/subsonic/loader/image/SubsonicImageLoader.kt rename to core/subsonic-api-image-loader/src/main/kotlin/org/moire/ultrasonic/subsonic/loader/image/SubsonicImageLoader.kt diff --git a/core/subsonic-api/build.gradle b/core/subsonic-api/build.gradle new file mode 100644 index 00000000..2e4582fe --- /dev/null +++ b/core/subsonic-api/build.gradle @@ -0,0 +1,29 @@ +apply from: bootstrap.kotlinModule + +dependencies { + api other.retrofit + api other.jacksonConverter + api other.koinCore + + implementation(other.jacksonKotlin) { + exclude module: 'kotlin-reflect' + } + implementation other.kotlinReflect // for jackson kotlin, but to use the same version + implementation other.okhttpLogging + + testImplementation testing.kotlinJunit + testImplementation testing.mockito + testImplementation testing.mockitoInline + testImplementation testing.mockitoKotlin + testImplementation testing.kluent + testImplementation testing.mockWebServer + testImplementation testing.apacheCodecs +} + +ext { + // Excluding data classes + jacocoExclude = [ + '**/models/**', + '**/di/**' + ] +} diff --git a/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/CommonFunctions.kt b/core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/CommonFunctions.kt similarity index 100% rename from subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/CommonFunctions.kt rename to core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/CommonFunctions.kt diff --git a/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/GetStreamUrlTest.kt b/core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/GetStreamUrlTest.kt similarity index 100% rename from subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/GetStreamUrlTest.kt rename to core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/GetStreamUrlTest.kt diff --git a/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicAPIClientTest.kt b/core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicAPIClientTest.kt similarity index 100% rename from subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicAPIClientTest.kt rename to core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicAPIClientTest.kt diff --git a/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiAddChatMessageTest.kt b/core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiAddChatMessageTest.kt similarity index 100% rename from subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiAddChatMessageTest.kt rename to core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiAddChatMessageTest.kt diff --git a/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiCreateBookmarkTest.kt b/core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiCreateBookmarkTest.kt similarity index 100% rename from subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiCreateBookmarkTest.kt rename to core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiCreateBookmarkTest.kt diff --git a/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiCreatePlaylistTest.kt b/core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiCreatePlaylistTest.kt similarity index 100% rename from subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiCreatePlaylistTest.kt rename to core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiCreatePlaylistTest.kt diff --git a/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiCreateShareTest.kt b/core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiCreateShareTest.kt similarity index 100% rename from subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiCreateShareTest.kt rename to core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiCreateShareTest.kt diff --git a/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiDeleteBookmarkTest.kt b/core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiDeleteBookmarkTest.kt similarity index 100% rename from subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiDeleteBookmarkTest.kt rename to core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiDeleteBookmarkTest.kt diff --git a/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiDeletePlaylistTest.kt b/core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiDeletePlaylistTest.kt similarity index 100% rename from subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiDeletePlaylistTest.kt rename to core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiDeletePlaylistTest.kt diff --git a/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiDeleteShareTest.kt b/core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiDeleteShareTest.kt similarity index 100% rename from subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiDeleteShareTest.kt rename to core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiDeleteShareTest.kt diff --git a/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiErrorsTest.kt b/core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiErrorsTest.kt similarity index 100% rename from subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiErrorsTest.kt rename to core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiErrorsTest.kt diff --git a/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetAlbumList2Test.kt b/core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetAlbumList2Test.kt similarity index 100% rename from subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetAlbumList2Test.kt rename to core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetAlbumList2Test.kt diff --git a/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetAlbumListRequestTest.kt b/core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetAlbumListRequestTest.kt similarity index 100% rename from subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetAlbumListRequestTest.kt rename to core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetAlbumListRequestTest.kt diff --git a/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetAlbumTest.kt b/core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetAlbumTest.kt similarity index 100% rename from subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetAlbumTest.kt rename to core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetAlbumTest.kt diff --git a/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetArtistTest.kt b/core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetArtistTest.kt similarity index 100% rename from subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetArtistTest.kt rename to core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetArtistTest.kt diff --git a/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetArtistsTest.kt b/core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetArtistsTest.kt similarity index 100% rename from subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetArtistsTest.kt rename to core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetArtistsTest.kt diff --git a/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetAvatarTest.kt b/core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetAvatarTest.kt similarity index 100% rename from subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetAvatarTest.kt rename to core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetAvatarTest.kt diff --git a/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetBookmarksTest.kt b/core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetBookmarksTest.kt similarity index 100% rename from subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetBookmarksTest.kt rename to core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetBookmarksTest.kt diff --git a/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetChatMessagesTest.kt b/core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetChatMessagesTest.kt similarity index 100% rename from subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetChatMessagesTest.kt rename to core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetChatMessagesTest.kt diff --git a/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetCoverArtTest.kt b/core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetCoverArtTest.kt similarity index 100% rename from subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetCoverArtTest.kt rename to core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetCoverArtTest.kt diff --git a/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetGenresTest.kt b/core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetGenresTest.kt similarity index 100% rename from subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetGenresTest.kt rename to core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetGenresTest.kt diff --git a/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetIndexesTest.kt b/core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetIndexesTest.kt similarity index 100% rename from subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetIndexesTest.kt rename to core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetIndexesTest.kt diff --git a/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetLicenseTest.kt b/core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetLicenseTest.kt similarity index 100% rename from subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetLicenseTest.kt rename to core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetLicenseTest.kt diff --git a/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetLyricsTest.kt b/core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetLyricsTest.kt similarity index 100% rename from subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetLyricsTest.kt rename to core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetLyricsTest.kt diff --git a/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetMusicDirectoryTest.kt b/core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetMusicDirectoryTest.kt similarity index 100% rename from subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetMusicDirectoryTest.kt rename to core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetMusicDirectoryTest.kt diff --git a/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetMusicFoldersTest.kt b/core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetMusicFoldersTest.kt similarity index 100% rename from subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetMusicFoldersTest.kt rename to core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetMusicFoldersTest.kt diff --git a/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetPlaylistTest.kt b/core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetPlaylistTest.kt similarity index 100% rename from subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetPlaylistTest.kt rename to core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetPlaylistTest.kt diff --git a/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetPlaylistsTest.kt b/core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetPlaylistsTest.kt similarity index 100% rename from subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetPlaylistsTest.kt rename to core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetPlaylistsTest.kt diff --git a/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetPodcastsTest.kt b/core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetPodcastsTest.kt similarity index 100% rename from subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetPodcastsTest.kt rename to core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetPodcastsTest.kt diff --git a/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetRandomSongsTest.kt b/core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetRandomSongsTest.kt similarity index 100% rename from subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetRandomSongsTest.kt rename to core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetRandomSongsTest.kt diff --git a/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetSharesTest.kt b/core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetSharesTest.kt similarity index 100% rename from subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetSharesTest.kt rename to core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetSharesTest.kt diff --git a/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetSongsByGenreTest.kt b/core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetSongsByGenreTest.kt similarity index 100% rename from subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetSongsByGenreTest.kt rename to core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetSongsByGenreTest.kt diff --git a/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetStarred2Test.kt b/core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetStarred2Test.kt similarity index 100% rename from subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetStarred2Test.kt rename to core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetStarred2Test.kt diff --git a/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetStarredTest.kt b/core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetStarredTest.kt similarity index 100% rename from subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetStarredTest.kt rename to core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetStarredTest.kt diff --git a/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetUserTest.kt b/core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetUserTest.kt similarity index 100% rename from subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetUserTest.kt rename to core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetUserTest.kt diff --git a/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetVideosListTest.kt b/core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetVideosListTest.kt similarity index 100% rename from subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetVideosListTest.kt rename to core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetVideosListTest.kt diff --git a/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiJukeboxControlTest.kt b/core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiJukeboxControlTest.kt similarity index 100% rename from subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiJukeboxControlTest.kt rename to core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiJukeboxControlTest.kt diff --git a/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiPasswordTest.kt b/core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiPasswordTest.kt similarity index 100% rename from subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiPasswordTest.kt rename to core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiPasswordTest.kt diff --git a/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiPingRequestTest.kt b/core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiPingRequestTest.kt similarity index 100% rename from subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiPingRequestTest.kt rename to core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiPingRequestTest.kt diff --git a/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiSSLTest.kt b/core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiSSLTest.kt similarity index 100% rename from subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiSSLTest.kt rename to core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiSSLTest.kt diff --git a/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiScrobbleTest.kt b/core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiScrobbleTest.kt similarity index 100% rename from subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiScrobbleTest.kt rename to core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiScrobbleTest.kt diff --git a/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiSearchTest.kt b/core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiSearchTest.kt similarity index 100% rename from subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiSearchTest.kt rename to core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiSearchTest.kt diff --git a/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiSearchThreeTest.kt b/core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiSearchThreeTest.kt similarity index 100% rename from subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiSearchThreeTest.kt rename to core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiSearchThreeTest.kt diff --git a/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiSearchTwoTest.kt b/core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiSearchTwoTest.kt similarity index 100% rename from subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiSearchTwoTest.kt rename to core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiSearchTwoTest.kt diff --git a/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiStarTest.kt b/core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiStarTest.kt similarity index 100% rename from subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiStarTest.kt rename to core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiStarTest.kt diff --git a/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiStreamTest.kt b/core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiStreamTest.kt similarity index 100% rename from subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiStreamTest.kt rename to core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiStreamTest.kt diff --git a/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiUnstarTest.kt b/core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiUnstarTest.kt similarity index 100% rename from subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiUnstarTest.kt rename to core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiUnstarTest.kt diff --git a/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiUpdatePlaylistTest.kt b/core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiUpdatePlaylistTest.kt similarity index 100% rename from subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiUpdatePlaylistTest.kt rename to core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiUpdatePlaylistTest.kt diff --git a/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiUpdateShareTest.kt b/core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiUpdateShareTest.kt similarity index 100% rename from subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiUpdateShareTest.kt rename to core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiUpdateShareTest.kt diff --git a/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/interceptors/BaseInterceptorTest.kt b/core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/interceptors/BaseInterceptorTest.kt similarity index 100% rename from subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/interceptors/BaseInterceptorTest.kt rename to core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/interceptors/BaseInterceptorTest.kt diff --git a/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/interceptors/PasswordHexInterceptorTest.kt b/core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/interceptors/PasswordHexInterceptorTest.kt similarity index 100% rename from subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/interceptors/PasswordHexInterceptorTest.kt rename to core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/interceptors/PasswordHexInterceptorTest.kt diff --git a/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/interceptors/PasswordMD5InterceptorTest.kt b/core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/interceptors/PasswordMD5InterceptorTest.kt similarity index 100% rename from subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/interceptors/PasswordMD5InterceptorTest.kt rename to core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/interceptors/PasswordMD5InterceptorTest.kt diff --git a/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/interceptors/RangeHeaderInterceptorTest.kt b/core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/interceptors/RangeHeaderInterceptorTest.kt similarity index 100% rename from subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/interceptors/RangeHeaderInterceptorTest.kt rename to core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/interceptors/RangeHeaderInterceptorTest.kt diff --git a/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/interceptors/VersionInterceptorTest.kt b/core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/interceptors/VersionInterceptorTest.kt similarity index 100% rename from subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/interceptors/VersionInterceptorTest.kt rename to core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/interceptors/VersionInterceptorTest.kt diff --git a/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/rules/MockWebServerRule.kt b/core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/rules/MockWebServerRule.kt similarity index 100% rename from subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/rules/MockWebServerRule.kt rename to core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/rules/MockWebServerRule.kt diff --git a/subsonic-api/src/integrationTest/resources/error_first_generic_error.json b/core/subsonic-api/src/integrationTest/resources/error_first_generic_error.json similarity index 100% rename from subsonic-api/src/integrationTest/resources/error_first_generic_error.json rename to core/subsonic-api/src/integrationTest/resources/error_first_generic_error.json diff --git a/subsonic-api/src/integrationTest/resources/generic_error.json b/core/subsonic-api/src/integrationTest/resources/generic_error.json similarity index 100% rename from subsonic-api/src/integrationTest/resources/generic_error.json rename to core/subsonic-api/src/integrationTest/resources/generic_error.json diff --git a/subsonic-api/src/integrationTest/resources/get_album_list_2_ok.json b/core/subsonic-api/src/integrationTest/resources/get_album_list_2_ok.json similarity index 100% rename from subsonic-api/src/integrationTest/resources/get_album_list_2_ok.json rename to core/subsonic-api/src/integrationTest/resources/get_album_list_2_ok.json diff --git a/subsonic-api/src/integrationTest/resources/get_album_list_ok.json b/core/subsonic-api/src/integrationTest/resources/get_album_list_ok.json similarity index 100% rename from subsonic-api/src/integrationTest/resources/get_album_list_ok.json rename to core/subsonic-api/src/integrationTest/resources/get_album_list_ok.json diff --git a/subsonic-api/src/integrationTest/resources/get_album_ok.json b/core/subsonic-api/src/integrationTest/resources/get_album_ok.json similarity index 100% rename from subsonic-api/src/integrationTest/resources/get_album_ok.json rename to core/subsonic-api/src/integrationTest/resources/get_album_ok.json diff --git a/subsonic-api/src/integrationTest/resources/get_artist_ok.json b/core/subsonic-api/src/integrationTest/resources/get_artist_ok.json similarity index 100% rename from subsonic-api/src/integrationTest/resources/get_artist_ok.json rename to core/subsonic-api/src/integrationTest/resources/get_artist_ok.json diff --git a/subsonic-api/src/integrationTest/resources/get_artists_ok.json b/core/subsonic-api/src/integrationTest/resources/get_artists_ok.json similarity index 100% rename from subsonic-api/src/integrationTest/resources/get_artists_ok.json rename to core/subsonic-api/src/integrationTest/resources/get_artists_ok.json diff --git a/subsonic-api/src/integrationTest/resources/get_bookmarks_ok.json b/core/subsonic-api/src/integrationTest/resources/get_bookmarks_ok.json similarity index 100% rename from subsonic-api/src/integrationTest/resources/get_bookmarks_ok.json rename to core/subsonic-api/src/integrationTest/resources/get_bookmarks_ok.json diff --git a/subsonic-api/src/integrationTest/resources/get_chat_messages_ok.json b/core/subsonic-api/src/integrationTest/resources/get_chat_messages_ok.json similarity index 100% rename from subsonic-api/src/integrationTest/resources/get_chat_messages_ok.json rename to core/subsonic-api/src/integrationTest/resources/get_chat_messages_ok.json diff --git a/subsonic-api/src/integrationTest/resources/get_genres_ok.json b/core/subsonic-api/src/integrationTest/resources/get_genres_ok.json similarity index 100% rename from subsonic-api/src/integrationTest/resources/get_genres_ok.json rename to core/subsonic-api/src/integrationTest/resources/get_genres_ok.json diff --git a/subsonic-api/src/integrationTest/resources/get_indexes_ok.json b/core/subsonic-api/src/integrationTest/resources/get_indexes_ok.json similarity index 100% rename from subsonic-api/src/integrationTest/resources/get_indexes_ok.json rename to core/subsonic-api/src/integrationTest/resources/get_indexes_ok.json diff --git a/subsonic-api/src/integrationTest/resources/get_lyrics_ok.json b/core/subsonic-api/src/integrationTest/resources/get_lyrics_ok.json similarity index 100% rename from subsonic-api/src/integrationTest/resources/get_lyrics_ok.json rename to core/subsonic-api/src/integrationTest/resources/get_lyrics_ok.json diff --git a/subsonic-api/src/integrationTest/resources/get_music_directory_ok.json b/core/subsonic-api/src/integrationTest/resources/get_music_directory_ok.json similarity index 100% rename from subsonic-api/src/integrationTest/resources/get_music_directory_ok.json rename to core/subsonic-api/src/integrationTest/resources/get_music_directory_ok.json diff --git a/subsonic-api/src/integrationTest/resources/get_music_folders_ok.json b/core/subsonic-api/src/integrationTest/resources/get_music_folders_ok.json similarity index 100% rename from subsonic-api/src/integrationTest/resources/get_music_folders_ok.json rename to core/subsonic-api/src/integrationTest/resources/get_music_folders_ok.json diff --git a/subsonic-api/src/integrationTest/resources/get_playlist_ok.json b/core/subsonic-api/src/integrationTest/resources/get_playlist_ok.json similarity index 100% rename from subsonic-api/src/integrationTest/resources/get_playlist_ok.json rename to core/subsonic-api/src/integrationTest/resources/get_playlist_ok.json diff --git a/subsonic-api/src/integrationTest/resources/get_playlists_ok.json b/core/subsonic-api/src/integrationTest/resources/get_playlists_ok.json similarity index 100% rename from subsonic-api/src/integrationTest/resources/get_playlists_ok.json rename to core/subsonic-api/src/integrationTest/resources/get_playlists_ok.json diff --git a/subsonic-api/src/integrationTest/resources/get_podcasts_ok.json b/core/subsonic-api/src/integrationTest/resources/get_podcasts_ok.json similarity index 100% rename from subsonic-api/src/integrationTest/resources/get_podcasts_ok.json rename to core/subsonic-api/src/integrationTest/resources/get_podcasts_ok.json diff --git a/subsonic-api/src/integrationTest/resources/get_random_songs_ok.json b/core/subsonic-api/src/integrationTest/resources/get_random_songs_ok.json similarity index 100% rename from subsonic-api/src/integrationTest/resources/get_random_songs_ok.json rename to core/subsonic-api/src/integrationTest/resources/get_random_songs_ok.json diff --git a/subsonic-api/src/integrationTest/resources/get_shares_ok.json b/core/subsonic-api/src/integrationTest/resources/get_shares_ok.json similarity index 100% rename from subsonic-api/src/integrationTest/resources/get_shares_ok.json rename to core/subsonic-api/src/integrationTest/resources/get_shares_ok.json diff --git a/subsonic-api/src/integrationTest/resources/get_songs_by_genre_ok.json b/core/subsonic-api/src/integrationTest/resources/get_songs_by_genre_ok.json similarity index 100% rename from subsonic-api/src/integrationTest/resources/get_songs_by_genre_ok.json rename to core/subsonic-api/src/integrationTest/resources/get_songs_by_genre_ok.json diff --git a/subsonic-api/src/integrationTest/resources/get_starred_2_ok.json b/core/subsonic-api/src/integrationTest/resources/get_starred_2_ok.json similarity index 100% rename from subsonic-api/src/integrationTest/resources/get_starred_2_ok.json rename to core/subsonic-api/src/integrationTest/resources/get_starred_2_ok.json diff --git a/subsonic-api/src/integrationTest/resources/get_starred_ok.json b/core/subsonic-api/src/integrationTest/resources/get_starred_ok.json similarity index 100% rename from subsonic-api/src/integrationTest/resources/get_starred_ok.json rename to core/subsonic-api/src/integrationTest/resources/get_starred_ok.json diff --git a/subsonic-api/src/integrationTest/resources/get_user_ok.json b/core/subsonic-api/src/integrationTest/resources/get_user_ok.json similarity index 100% rename from subsonic-api/src/integrationTest/resources/get_user_ok.json rename to core/subsonic-api/src/integrationTest/resources/get_user_ok.json diff --git a/subsonic-api/src/integrationTest/resources/get_videos_ok.json b/core/subsonic-api/src/integrationTest/resources/get_videos_ok.json similarity index 100% rename from subsonic-api/src/integrationTest/resources/get_videos_ok.json rename to core/subsonic-api/src/integrationTest/resources/get_videos_ok.json diff --git a/subsonic-api/src/integrationTest/resources/incompatible_client_protocol_version_error.json b/core/subsonic-api/src/integrationTest/resources/incompatible_client_protocol_version_error.json similarity index 100% rename from subsonic-api/src/integrationTest/resources/incompatible_client_protocol_version_error.json rename to core/subsonic-api/src/integrationTest/resources/incompatible_client_protocol_version_error.json diff --git a/subsonic-api/src/integrationTest/resources/incompatible_server_protocol_version_error.json b/core/subsonic-api/src/integrationTest/resources/incompatible_server_protocol_version_error.json similarity index 100% rename from subsonic-api/src/integrationTest/resources/incompatible_server_protocol_version_error.json rename to core/subsonic-api/src/integrationTest/resources/incompatible_server_protocol_version_error.json diff --git a/subsonic-api/src/integrationTest/resources/jukebox_control_playlist_ok.json b/core/subsonic-api/src/integrationTest/resources/jukebox_control_playlist_ok.json similarity index 100% rename from subsonic-api/src/integrationTest/resources/jukebox_control_playlist_ok.json rename to core/subsonic-api/src/integrationTest/resources/jukebox_control_playlist_ok.json diff --git a/subsonic-api/src/integrationTest/resources/jukebox_control_status_ok.json b/core/subsonic-api/src/integrationTest/resources/jukebox_control_status_ok.json similarity index 100% rename from subsonic-api/src/integrationTest/resources/jukebox_control_status_ok.json rename to core/subsonic-api/src/integrationTest/resources/jukebox_control_status_ok.json diff --git a/subsonic-api/src/integrationTest/resources/license_ok.json b/core/subsonic-api/src/integrationTest/resources/license_ok.json similarity index 100% rename from subsonic-api/src/integrationTest/resources/license_ok.json rename to core/subsonic-api/src/integrationTest/resources/license_ok.json diff --git a/subsonic-api/src/integrationTest/resources/non_subsonic_response.json b/core/subsonic-api/src/integrationTest/resources/non_subsonic_response.json similarity index 100% rename from subsonic-api/src/integrationTest/resources/non_subsonic_response.json rename to core/subsonic-api/src/integrationTest/resources/non_subsonic_response.json diff --git a/subsonic-api/src/integrationTest/resources/ping_ok.json b/core/subsonic-api/src/integrationTest/resources/ping_ok.json similarity index 100% rename from subsonic-api/src/integrationTest/resources/ping_ok.json rename to core/subsonic-api/src/integrationTest/resources/ping_ok.json diff --git a/subsonic-api/src/integrationTest/resources/ping_ok_utf8_bom.json b/core/subsonic-api/src/integrationTest/resources/ping_ok_utf8_bom.json similarity index 100% rename from subsonic-api/src/integrationTest/resources/ping_ok_utf8_bom.json rename to core/subsonic-api/src/integrationTest/resources/ping_ok_utf8_bom.json diff --git a/subsonic-api/src/integrationTest/resources/request_data_not_found_error_response.json b/core/subsonic-api/src/integrationTest/resources/request_data_not_found_error_response.json similarity index 100% rename from subsonic-api/src/integrationTest/resources/request_data_not_found_error_response.json rename to core/subsonic-api/src/integrationTest/resources/request_data_not_found_error_response.json diff --git a/subsonic-api/src/integrationTest/resources/requested_data_was_not_found_error.json b/core/subsonic-api/src/integrationTest/resources/requested_data_was_not_found_error.json similarity index 100% rename from subsonic-api/src/integrationTest/resources/requested_data_was_not_found_error.json rename to core/subsonic-api/src/integrationTest/resources/requested_data_was_not_found_error.json diff --git a/subsonic-api/src/integrationTest/resources/required_param_missing_error.json b/core/subsonic-api/src/integrationTest/resources/required_param_missing_error.json similarity index 100% rename from subsonic-api/src/integrationTest/resources/required_param_missing_error.json rename to core/subsonic-api/src/integrationTest/resources/required_param_missing_error.json diff --git a/subsonic-api/src/integrationTest/resources/reversed_tokens_generic_error.json b/core/subsonic-api/src/integrationTest/resources/reversed_tokens_generic_error.json similarity index 100% rename from subsonic-api/src/integrationTest/resources/reversed_tokens_generic_error.json rename to core/subsonic-api/src/integrationTest/resources/reversed_tokens_generic_error.json diff --git a/subsonic-api/src/integrationTest/resources/search2_ok.json b/core/subsonic-api/src/integrationTest/resources/search2_ok.json similarity index 100% rename from subsonic-api/src/integrationTest/resources/search2_ok.json rename to core/subsonic-api/src/integrationTest/resources/search2_ok.json diff --git a/subsonic-api/src/integrationTest/resources/search3_ok.json b/core/subsonic-api/src/integrationTest/resources/search3_ok.json similarity index 100% rename from subsonic-api/src/integrationTest/resources/search3_ok.json rename to core/subsonic-api/src/integrationTest/resources/search3_ok.json diff --git a/subsonic-api/src/integrationTest/resources/search_ok.json b/core/subsonic-api/src/integrationTest/resources/search_ok.json similarity index 100% rename from subsonic-api/src/integrationTest/resources/search_ok.json rename to core/subsonic-api/src/integrationTest/resources/search_ok.json diff --git a/subsonic-api/src/integrationTest/resources/self-signed.p12 b/core/subsonic-api/src/integrationTest/resources/self-signed.p12 similarity index 100% rename from subsonic-api/src/integrationTest/resources/self-signed.p12 rename to core/subsonic-api/src/integrationTest/resources/self-signed.p12 diff --git a/subsonic-api/src/integrationTest/resources/self-signed.pem b/core/subsonic-api/src/integrationTest/resources/self-signed.pem similarity index 100% rename from subsonic-api/src/integrationTest/resources/self-signed.pem rename to core/subsonic-api/src/integrationTest/resources/self-signed.pem diff --git a/subsonic-api/src/integrationTest/resources/token_auth_not_supported_for_ldap_error.json b/core/subsonic-api/src/integrationTest/resources/token_auth_not_supported_for_ldap_error.json similarity index 100% rename from subsonic-api/src/integrationTest/resources/token_auth_not_supported_for_ldap_error.json rename to core/subsonic-api/src/integrationTest/resources/token_auth_not_supported_for_ldap_error.json diff --git a/subsonic-api/src/integrationTest/resources/trial_period_is_over_error.json b/core/subsonic-api/src/integrationTest/resources/trial_period_is_over_error.json similarity index 100% rename from subsonic-api/src/integrationTest/resources/trial_period_is_over_error.json rename to core/subsonic-api/src/integrationTest/resources/trial_period_is_over_error.json diff --git a/subsonic-api/src/integrationTest/resources/unexpected_error.json b/core/subsonic-api/src/integrationTest/resources/unexpected_error.json similarity index 100% rename from subsonic-api/src/integrationTest/resources/unexpected_error.json rename to core/subsonic-api/src/integrationTest/resources/unexpected_error.json diff --git a/subsonic-api/src/integrationTest/resources/user_not_authorized_for_operation_error.json b/core/subsonic-api/src/integrationTest/resources/user_not_authorized_for_operation_error.json similarity index 100% rename from subsonic-api/src/integrationTest/resources/user_not_authorized_for_operation_error.json rename to core/subsonic-api/src/integrationTest/resources/user_not_authorized_for_operation_error.json diff --git a/subsonic-api/src/integrationTest/resources/with_additional_json_object_generic_error.json b/core/subsonic-api/src/integrationTest/resources/with_additional_json_object_generic_error.json similarity index 100% rename from subsonic-api/src/integrationTest/resources/with_additional_json_object_generic_error.json rename to core/subsonic-api/src/integrationTest/resources/with_additional_json_object_generic_error.json diff --git a/subsonic-api/src/integrationTest/resources/without_message_generic_error.json b/core/subsonic-api/src/integrationTest/resources/without_message_generic_error.json similarity index 100% rename from subsonic-api/src/integrationTest/resources/without_message_generic_error.json rename to core/subsonic-api/src/integrationTest/resources/without_message_generic_error.json diff --git a/subsonic-api/src/integrationTest/resources/wrong_username_or_password_error.json b/core/subsonic-api/src/integrationTest/resources/wrong_username_or_password_error.json similarity index 100% rename from subsonic-api/src/integrationTest/resources/wrong_username_or_password_error.json rename to core/subsonic-api/src/integrationTest/resources/wrong_username_or_password_error.json diff --git a/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/ApiNotSupportedException.kt b/core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/ApiNotSupportedException.kt similarity index 100% rename from subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/ApiNotSupportedException.kt rename to core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/ApiNotSupportedException.kt diff --git a/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/ApiVersionCheckWrapper.kt b/core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/ApiVersionCheckWrapper.kt similarity index 100% rename from subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/ApiVersionCheckWrapper.kt rename to core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/ApiVersionCheckWrapper.kt diff --git a/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicAPIClient.kt b/core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicAPIClient.kt similarity index 100% rename from subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicAPIClient.kt rename to core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicAPIClient.kt diff --git a/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicAPIDefinition.kt b/core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicAPIDefinition.kt similarity index 100% rename from subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicAPIDefinition.kt rename to core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicAPIDefinition.kt diff --git a/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicAPIVersions.kt b/core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicAPIVersions.kt similarity index 100% rename from subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicAPIVersions.kt rename to core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicAPIVersions.kt diff --git a/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicClientConfiguration.kt b/core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicClientConfiguration.kt similarity index 100% rename from subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicClientConfiguration.kt rename to core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicClientConfiguration.kt diff --git a/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicError.kt b/core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicError.kt similarity index 100% rename from subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicError.kt rename to core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicError.kt diff --git a/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/di/SubsonicApiModule.kt b/core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/di/SubsonicApiModule.kt similarity index 100% rename from subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/di/SubsonicApiModule.kt rename to core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/di/SubsonicApiModule.kt diff --git a/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/interceptors/PasswordExt.kt b/core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/interceptors/PasswordExt.kt similarity index 100% rename from subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/interceptors/PasswordExt.kt rename to core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/interceptors/PasswordExt.kt diff --git a/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/interceptors/PasswordHexInterceptor.kt b/core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/interceptors/PasswordHexInterceptor.kt similarity index 100% rename from subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/interceptors/PasswordHexInterceptor.kt rename to core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/interceptors/PasswordHexInterceptor.kt diff --git a/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/interceptors/PasswordMD5Interceptor.kt b/core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/interceptors/PasswordMD5Interceptor.kt similarity index 100% rename from subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/interceptors/PasswordMD5Interceptor.kt rename to core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/interceptors/PasswordMD5Interceptor.kt diff --git a/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/interceptors/ProxyPasswordInterceptor.kt b/core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/interceptors/ProxyPasswordInterceptor.kt similarity index 100% rename from subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/interceptors/ProxyPasswordInterceptor.kt rename to core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/interceptors/ProxyPasswordInterceptor.kt diff --git a/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/interceptors/RangeHeaderInterceptor.kt b/core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/interceptors/RangeHeaderInterceptor.kt similarity index 100% rename from subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/interceptors/RangeHeaderInterceptor.kt rename to core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/interceptors/RangeHeaderInterceptor.kt diff --git a/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/interceptors/VersionInterceptor.kt b/core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/interceptors/VersionInterceptor.kt similarity index 100% rename from subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/interceptors/VersionInterceptor.kt rename to core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/interceptors/VersionInterceptor.kt diff --git a/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/Album.kt b/core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/Album.kt similarity index 100% rename from subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/Album.kt rename to core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/Album.kt diff --git a/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/AlbumListType.kt b/core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/AlbumListType.kt similarity index 100% rename from subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/AlbumListType.kt rename to core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/AlbumListType.kt diff --git a/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/Artist.kt b/core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/Artist.kt similarity index 100% rename from subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/Artist.kt rename to core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/Artist.kt diff --git a/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/Bookmark.kt b/core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/Bookmark.kt similarity index 100% rename from subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/Bookmark.kt rename to core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/Bookmark.kt diff --git a/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/ChatMessage.kt b/core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/ChatMessage.kt similarity index 100% rename from subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/ChatMessage.kt rename to core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/ChatMessage.kt diff --git a/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/Genre.kt b/core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/Genre.kt similarity index 100% rename from subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/Genre.kt rename to core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/Genre.kt diff --git a/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/Index.kt b/core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/Index.kt similarity index 100% rename from subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/Index.kt rename to core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/Index.kt diff --git a/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/Indexes.kt b/core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/Indexes.kt similarity index 100% rename from subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/Indexes.kt rename to core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/Indexes.kt diff --git a/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/JukeboxAction.kt b/core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/JukeboxAction.kt similarity index 100% rename from subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/JukeboxAction.kt rename to core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/JukeboxAction.kt diff --git a/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/JukeboxStatus.kt b/core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/JukeboxStatus.kt similarity index 100% rename from subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/JukeboxStatus.kt rename to core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/JukeboxStatus.kt diff --git a/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/License.kt b/core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/License.kt similarity index 100% rename from subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/License.kt rename to core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/License.kt diff --git a/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/Lyrics.kt b/core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/Lyrics.kt similarity index 100% rename from subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/Lyrics.kt rename to core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/Lyrics.kt diff --git a/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/MusicDirectory.kt b/core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/MusicDirectory.kt similarity index 100% rename from subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/MusicDirectory.kt rename to core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/MusicDirectory.kt diff --git a/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/MusicDirectoryChild.kt b/core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/MusicDirectoryChild.kt similarity index 100% rename from subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/MusicDirectoryChild.kt rename to core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/MusicDirectoryChild.kt diff --git a/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/MusicFolder.kt b/core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/MusicFolder.kt similarity index 100% rename from subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/MusicFolder.kt rename to core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/MusicFolder.kt diff --git a/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/Playlist.kt b/core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/Playlist.kt similarity index 100% rename from subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/Playlist.kt rename to core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/Playlist.kt diff --git a/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/PodcastChannel.kt b/core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/PodcastChannel.kt similarity index 100% rename from subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/PodcastChannel.kt rename to core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/PodcastChannel.kt diff --git a/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/SearchResult.kt b/core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/SearchResult.kt similarity index 100% rename from subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/SearchResult.kt rename to core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/SearchResult.kt diff --git a/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/SearchThreeResult.kt b/core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/SearchThreeResult.kt similarity index 100% rename from subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/SearchThreeResult.kt rename to core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/SearchThreeResult.kt diff --git a/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/SearchTwoResult.kt b/core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/SearchTwoResult.kt similarity index 100% rename from subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/SearchTwoResult.kt rename to core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/SearchTwoResult.kt diff --git a/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/Share.kt b/core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/Share.kt similarity index 100% rename from subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/Share.kt rename to core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/Share.kt diff --git a/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/User.kt b/core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/User.kt similarity index 100% rename from subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/User.kt rename to core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/models/User.kt diff --git a/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/BookmarksResponse.kt b/core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/BookmarksResponse.kt similarity index 100% rename from subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/BookmarksResponse.kt rename to core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/BookmarksResponse.kt diff --git a/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/ChatMessagesResponse.kt b/core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/ChatMessagesResponse.kt similarity index 100% rename from subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/ChatMessagesResponse.kt rename to core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/ChatMessagesResponse.kt diff --git a/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/GenresResponse.kt b/core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/GenresResponse.kt similarity index 100% rename from subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/GenresResponse.kt rename to core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/GenresResponse.kt diff --git a/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/GetAlbumList2Response.kt b/core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/GetAlbumList2Response.kt similarity index 100% rename from subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/GetAlbumList2Response.kt rename to core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/GetAlbumList2Response.kt diff --git a/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/GetAlbumListResponse.kt b/core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/GetAlbumListResponse.kt similarity index 100% rename from subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/GetAlbumListResponse.kt rename to core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/GetAlbumListResponse.kt diff --git a/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/GetAlbumResponse.kt b/core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/GetAlbumResponse.kt similarity index 100% rename from subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/GetAlbumResponse.kt rename to core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/GetAlbumResponse.kt diff --git a/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/GetArtistResponse.kt b/core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/GetArtistResponse.kt similarity index 100% rename from subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/GetArtistResponse.kt rename to core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/GetArtistResponse.kt diff --git a/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/GetArtistsResponse.kt b/core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/GetArtistsResponse.kt similarity index 100% rename from subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/GetArtistsResponse.kt rename to core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/GetArtistsResponse.kt diff --git a/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/GetIndexesResponse.kt b/core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/GetIndexesResponse.kt similarity index 100% rename from subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/GetIndexesResponse.kt rename to core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/GetIndexesResponse.kt diff --git a/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/GetLyricsResponse.kt b/core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/GetLyricsResponse.kt similarity index 100% rename from subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/GetLyricsResponse.kt rename to core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/GetLyricsResponse.kt diff --git a/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/GetMusicDirectoryResponse.kt b/core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/GetMusicDirectoryResponse.kt similarity index 100% rename from subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/GetMusicDirectoryResponse.kt rename to core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/GetMusicDirectoryResponse.kt diff --git a/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/GetPlaylistResponse.kt b/core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/GetPlaylistResponse.kt similarity index 100% rename from subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/GetPlaylistResponse.kt rename to core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/GetPlaylistResponse.kt diff --git a/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/GetPlaylistsResponse.kt b/core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/GetPlaylistsResponse.kt similarity index 100% rename from subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/GetPlaylistsResponse.kt rename to core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/GetPlaylistsResponse.kt diff --git a/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/GetPodcastsResponse.kt b/core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/GetPodcastsResponse.kt similarity index 100% rename from subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/GetPodcastsResponse.kt rename to core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/GetPodcastsResponse.kt diff --git a/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/GetRandomSongsResponse.kt b/core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/GetRandomSongsResponse.kt similarity index 100% rename from subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/GetRandomSongsResponse.kt rename to core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/GetRandomSongsResponse.kt diff --git a/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/GetSongsByGenreResponse.kt b/core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/GetSongsByGenreResponse.kt similarity index 100% rename from subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/GetSongsByGenreResponse.kt rename to core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/GetSongsByGenreResponse.kt diff --git a/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/GetStarredResponse.kt b/core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/GetStarredResponse.kt similarity index 100% rename from subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/GetStarredResponse.kt rename to core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/GetStarredResponse.kt diff --git a/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/GetStarredTwoResponse.kt b/core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/GetStarredTwoResponse.kt similarity index 100% rename from subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/GetStarredTwoResponse.kt rename to core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/GetStarredTwoResponse.kt diff --git a/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/GetUserResponse.kt b/core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/GetUserResponse.kt similarity index 100% rename from subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/GetUserResponse.kt rename to core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/GetUserResponse.kt diff --git a/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/JukeboxResponse.kt b/core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/JukeboxResponse.kt similarity index 100% rename from subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/JukeboxResponse.kt rename to core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/JukeboxResponse.kt diff --git a/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/LicenseResponse.kt b/core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/LicenseResponse.kt similarity index 100% rename from subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/LicenseResponse.kt rename to core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/LicenseResponse.kt diff --git a/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/MusicFoldersResponse.kt b/core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/MusicFoldersResponse.kt similarity index 100% rename from subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/MusicFoldersResponse.kt rename to core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/MusicFoldersResponse.kt diff --git a/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/SearchResponse.kt b/core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/SearchResponse.kt similarity index 100% rename from subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/SearchResponse.kt rename to core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/SearchResponse.kt diff --git a/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/SearchThreeResponse.kt b/core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/SearchThreeResponse.kt similarity index 100% rename from subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/SearchThreeResponse.kt rename to core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/SearchThreeResponse.kt diff --git a/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/SearchTwoResponse.kt b/core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/SearchTwoResponse.kt similarity index 100% rename from subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/SearchTwoResponse.kt rename to core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/SearchTwoResponse.kt diff --git a/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/SharesResponse.kt b/core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/SharesResponse.kt similarity index 100% rename from subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/SharesResponse.kt rename to core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/SharesResponse.kt diff --git a/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/StreamResponse.kt b/core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/StreamResponse.kt similarity index 100% rename from subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/StreamResponse.kt rename to core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/StreamResponse.kt diff --git a/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/SubsonicResponse.kt b/core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/SubsonicResponse.kt similarity index 100% rename from subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/SubsonicResponse.kt rename to core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/SubsonicResponse.kt diff --git a/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/VideosResponse.kt b/core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/VideosResponse.kt similarity index 100% rename from subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/VideosResponse.kt rename to core/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/response/VideosResponse.kt diff --git a/subsonic-api/src/test/kotlin/org/moire/ultrasonic/api/subsonic/ApiVersionCheckWrapperTest.kt b/core/subsonic-api/src/test/kotlin/org/moire/ultrasonic/api/subsonic/ApiVersionCheckWrapperTest.kt similarity index 100% rename from subsonic-api/src/test/kotlin/org/moire/ultrasonic/api/subsonic/ApiVersionCheckWrapperTest.kt rename to core/subsonic-api/src/test/kotlin/org/moire/ultrasonic/api/subsonic/ApiVersionCheckWrapperTest.kt diff --git a/subsonic-api/src/test/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicAPIVersionsDeserializerTest.kt b/core/subsonic-api/src/test/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicAPIVersionsDeserializerTest.kt similarity index 100% rename from subsonic-api/src/test/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicAPIVersionsDeserializerTest.kt rename to core/subsonic-api/src/test/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicAPIVersionsDeserializerTest.kt diff --git a/subsonic-api/src/test/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicAPIVersionsTest.kt b/core/subsonic-api/src/test/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicAPIVersionsTest.kt similarity index 100% rename from subsonic-api/src/test/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicAPIVersionsTest.kt rename to core/subsonic-api/src/test/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicAPIVersionsTest.kt diff --git a/subsonic-api/src/test/kotlin/org/moire/ultrasonic/api/subsonic/interceptors/ProxyPasswordInterceptorTest.kt b/core/subsonic-api/src/test/kotlin/org/moire/ultrasonic/api/subsonic/interceptors/ProxyPasswordInterceptorTest.kt similarity index 100% rename from subsonic-api/src/test/kotlin/org/moire/ultrasonic/api/subsonic/interceptors/ProxyPasswordInterceptorTest.kt rename to core/subsonic-api/src/test/kotlin/org/moire/ultrasonic/api/subsonic/interceptors/ProxyPasswordInterceptorTest.kt diff --git a/subsonic-api/src/test/kotlin/org/moire/ultrasonic/api/subsonic/models/AlbumListTypeTest.kt b/core/subsonic-api/src/test/kotlin/org/moire/ultrasonic/api/subsonic/models/AlbumListTypeTest.kt similarity index 100% rename from subsonic-api/src/test/kotlin/org/moire/ultrasonic/api/subsonic/models/AlbumListTypeTest.kt rename to core/subsonic-api/src/test/kotlin/org/moire/ultrasonic/api/subsonic/models/AlbumListTypeTest.kt diff --git a/subsonic-api/src/test/kotlin/org/moire/ultrasonic/api/subsonic/models/StatusTest.kt b/core/subsonic-api/src/test/kotlin/org/moire/ultrasonic/api/subsonic/models/StatusTest.kt similarity index 100% rename from subsonic-api/src/test/kotlin/org/moire/ultrasonic/api/subsonic/models/StatusTest.kt rename to core/subsonic-api/src/test/kotlin/org/moire/ultrasonic/api/subsonic/models/StatusTest.kt diff --git a/subsonic-api/src/test/kotlin/org/moire/ultrasonic/api/subsonic/response/StreamResponseTest.kt b/core/subsonic-api/src/test/kotlin/org/moire/ultrasonic/api/subsonic/response/StreamResponseTest.kt similarity index 100% rename from subsonic-api/src/test/kotlin/org/moire/ultrasonic/api/subsonic/response/StreamResponseTest.kt rename to core/subsonic-api/src/test/kotlin/org/moire/ultrasonic/api/subsonic/response/StreamResponseTest.kt diff --git a/dependencies.gradle b/dependencies.gradle index d3070c20..576c0019 100644 --- a/dependencies.gradle +++ b/dependencies.gradle @@ -1,18 +1,18 @@ ext.versions = [ minSdk : 14, targetSdk : 22, - compileSdk : 27, - gradle : '4.5.1', + compileSdk : 28, + gradle : '4.6', - androidTools : "3.1.3", - ktlint : "0.24.0", - ktlintGradle : "4.1.0", + androidTools : "3.2.0", + ktlint : "0.28.0", + ktlintGradle : "5.1.0", detekt : "1.0.0.RC6-4", jacoco : "0.8.2", androidSupport : "22.2.1", - kotlin : "1.2.51", + kotlin : "1.2.71", retrofit : "2.4.0", jackson : "2.9.5", @@ -22,7 +22,8 @@ ext.versions = [ koin : "1.0.0-beta-3", picasso : "2.71828", - junit : "4.12", + junit4 : "4.12", + junit5 : "5.3.1", mockito : "2.16.0", mockitoKotlin : "1.5.0", kluent : "1.35", @@ -62,7 +63,8 @@ ext.other = [ ] ext.testing = [ - junit : "junit:junit:$versions.junit", + junit : "junit:junit:$versions.junit4", + junitVintage : "org.junit.vintage:junit-vintage-engine:$versions.junit5", kotlinJunit : "org.jetbrains.kotlin:kotlin-test-junit:$versions.kotlin", mockitoKotlin : "com.nhaarman:mockito-kotlin:$versions.mockitoKotlin", mockito : "org.mockito:mockito-core:$versions.mockito", diff --git a/domain/build.gradle b/domain/build.gradle deleted file mode 100644 index cab611de..00000000 --- a/domain/build.gradle +++ /dev/null @@ -1,38 +0,0 @@ -apply plugin: 'java-library' -apply plugin: 'kotlin' -apply plugin: 'jacoco' -apply from: '../gradle_scripts/code_quality.gradle' - -dependencies { - api other.kotlinStdlib - api other.semver -} - -jacoco { - toolVersion(versions.jacoco) -} - -ext { - jacocoExclude = [] -} - -jacocoTestReport { - reports { - html.enabled true - csv.enabled false - xml.enabled true - } - - afterEvaluate { - classDirectories = files(classDirectories.files.collect { - fileTree(dir: it, excludes: jacocoExclude) - }) - } -} - -test.finalizedBy jacocoTestReport -test { - jacoco { - excludes += jacocoExclude - } -} diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index 99340b4a..c44b679a 100644 Binary files a/gradle/wrapper/gradle-wrapper.jar and b/gradle/wrapper/gradle-wrapper.jar differ diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 8941bfbb..3f0f9be6 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -2,4 +2,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-4.5.1-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-4.6-all.zip diff --git a/gradle_scripts/android-module-bootstrap.gradle b/gradle_scripts/android-module-bootstrap.gradle new file mode 100644 index 00000000..98fb9516 --- /dev/null +++ b/gradle_scripts/android-module-bootstrap.gradle @@ -0,0 +1,74 @@ +apply plugin: 'com.android.library' +apply plugin: 'kotlin-android' +apply plugin: 'kotlin-android-extensions' +apply plugin: 'jacoco' +apply from: "${project.rootDir}/gradle_scripts/code_quality.gradle" + +androidExtensions { + experimental = true +} + +android { + compileSdkVersion versions.compileSdk + + defaultConfig { + testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" + minSdkVersion versions.minSdk + targetSdkVersion versions.targetSdk + } + + compileOptions { + sourceCompatibility JavaVersion.VERSION_1_8 + targetCompatibility JavaVersion.VERSION_1_8 + } + + sourceSets { + main.java.srcDirs += "${projectDir}/src/main/kotlin" + test.java.srcDirs += "${projectDir}/src/test/kotlin" + test.java.srcDirs += "${projectDir}/src/integrationTest/kotlin" + test.resources.srcDirs += "${projectDir}/src/integrationTest/resources" + } + + buildTypes { + debug { + minifyEnabled false + debuggable true + } + release { + minifyEnabled false + } + } + + // Disable generating BuildConfig class by default + // Replace it with https://issuetracker.google.com/issues/72050365 once released. + libraryVariants.all { + generateBuildConfig.enabled = false + } +} + +sourceCompatibility = JavaVersion.VERSION_1_8 +targetCompatibility = JavaVersion.VERSION_1_8 + +tasks.withType(Test) { + useJUnitPlatform() + jacoco { + includeNoLocationClasses = true + excludes += jacocoExclude + } +} + +dependencies { + api other.kotlinStdlib + + testImplementation testing.junit + testRuntimeOnly testing.junitVintage +} + +jacoco { + toolVersion(versions.jacoco) +} + +ext { + jacocoExclude = [] +} + diff --git a/gradle_scripts/jacoco.gradle b/gradle_scripts/jacoco.gradle index eef97b49..f7b30b11 100644 --- a/gradle_scripts/jacoco.gradle +++ b/gradle_scripts/jacoco.gradle @@ -4,72 +4,89 @@ jacoco { toolVersion(versions.jacoco) } -task jacocoMergeReports(type: JacocoMerge) { +def mergedJacocoExec = file("${project.buildDir}/jacoco/jacocoMerged.exec") + +tasks.create(name: 'jacocoMergeReports', type: JacocoMerge) { group = "Reporting" description = "Merge all jacoco reports from projects into one." - List jacocoFiles = new ArrayList<>() + ListProperty jacocoFiles = project.objects.listProperty(File.class) project.subprojects { subproject -> - File commonModuleReport = new File(subproject.buildDir, "/jacoco/test.exec") - if (commonModuleReport.exists()) jacocoFiles.add(commonModuleReport) - File androidModuleReport = new File(subproject.buildDir, "/jacoco/testDebugUnitTest.exec") - if (androidModuleReport.exists()) jacocoFiles.add(androidModuleReport) + subproject.plugins.withId("jacoco") { + project.logger.info("${subproject.name} has Jacoco plugin applied") + subproject.tasks.withType(Test) { task -> + File destFile = task.extensions.getByType(JacocoTaskExtension.class).destinationFile + if (destFile.exists() && !task.name.contains("Release")) { + jacocoFiles.add(destFile) + } + } + } } - executionData(jacocoFiles.toArray()) - destinationFile(file("${project.buildDir}/jacoco/jacoco.exec")) + + executionData(jacocoFiles) + destinationFile(mergedJacocoExec) } -def createJacocoFullReportTask() { - tasks.create(name: 'jacocoFullReport', type: JacocoReport, dependsOn: 'jacocoMergeReports') { - group = "Reporting" - description = "Generate full Jacoco coverage report including all modules." +tasks.create(name: 'jacocoFullReport', type: JacocoReport, dependsOn: 'jacocoMergeReports') { + group = "Reporting" + description = "Generate full Jacoco coverage report including all modules." - List classFileTreeList = new ArrayList<>() - List sourceFileTreeList = new ArrayList<>() + classDirectories = files() + sourceDirectories = files() + executionData = files() + + reports { + xml.enabled = true + html.enabled = true + csv.enabled = false + } + + // Always run merging, as all input calculation is done in doFirst {} + outputs.upToDateWhen { false } + // Task will run anyway even if initial inputs are empty + onlyIf = { true } + + doFirst { project.subprojects { subproject -> - if (subproject.plugins.hasPlugin("kotlin-android") && - subproject.hasProperty("jacocoExclude")) { - classFileTreeList.add( - fileTree( - dir: "${subproject.buildDir}/tmp/kotlin-classes/debug", - excludes: subproject.jacocoExclude - ) - ) - sourceFileTreeList.add( - subproject.extensions.getByName('android').sourceSets.main.java.sourceFiles - ) - } else if (subproject.hasProperty("jacocoExclude")) { - classFileTreeList.add( - fileTree( - dir: "${subproject.buildDir}/classes/kotlin/main", - excludes: subproject.jacocoExclude - ) - ) - sourceFileTreeList.add(subproject.sourceSets.main.getAllSource()) + subproject.plugins.withId("jacoco") { + project.logger.info("${subproject.name} has Jacoco plugin applied") + subproject.plugins.withId("kotlin-android") { + project.logger.info("${subproject.name} is android project") + def mainSources = subproject.extensions.findByName("android").sourceSets['main'] + project.logger.info("Android sources: ${mainSources.java.srcDirs}") + mainSources.java.srcDirs.forEach { + additionalSourceDirs(it) + } + project.logger.info("Subproject exclude: ${subproject.jacocoExclude}") + additionalClassDirs(fileTree( + dir: "${subproject.buildDir}/tmp/kotlin-classes/debug", + excludes: subproject.jacocoExclude + )) + } + subproject.plugins.withId("kotlin") { plugin -> + project.logger.info("${subproject.name} is common kotlin project") + SourceDirectorySet mainSources = subproject.extensions.getByName("kotlin") + .sourceSets[SourceSet.MAIN_SOURCE_SET_NAME] + .kotlin + mainSources.srcDirs.forEach { + project.logger.debug("Adding sources: $it") + additionalSourceDirs(it) + } + project.logger.info("Subproject exclude: ${subproject.jacocoExclude}") + additionalClassDirs(fileTree( + dir: "${subproject.buildDir}/classes/kotlin/main", + excludes: subproject.jacocoExclude + )) + } + + subproject.tasks.withType(Test) { task -> + File destFile = task.extensions.getByType(JacocoTaskExtension.class).destinationFile + if (destFile.exists() && !task.name.contains("Release")) { + project.logger.info("Adding execution data: $destFile") + executionData(destFile) + } + } } } - - classDirectories = files(classFileTreeList.toArray()) - sourceDirectories = files(sourceFileTreeList.toArray()) - executionData = files("${buildDir}/jacoco/jacoco.exec") - - reports { - xml.enabled = true - html.enabled = true - csv.enabled = false - } } } - -// We need to wait to all subprojects configuration finish or we don't get sources and exclusions -def subprojectsCount = allprojects.size() -allprojects { - afterEvaluate { subproject -> - subprojectsCount-- - if (subprojectsCount == 0) { - apply { - createJacocoFullReportTask() - } - } - } -} \ No newline at end of file diff --git a/subsonic-api/build.gradle b/gradle_scripts/kotlin-module-bootstrap.gradle similarity index 51% rename from subsonic-api/build.gradle rename to gradle_scripts/kotlin-module-bootstrap.gradle index 78f37860..f5972e63 100644 --- a/subsonic-api/build.gradle +++ b/gradle_scripts/kotlin-module-bootstrap.gradle @@ -1,34 +1,27 @@ -apply plugin: 'kotlin' apply plugin: 'java-library' +apply plugin: 'kotlin' apply plugin: 'jacoco' -apply from: '../gradle_scripts/code_quality.gradle' +apply from: "${project.rootDir}/gradle_scripts/code_quality.gradle" + +sourceCompatibility = JavaVersion.VERSION_1_8 +targetCompatibility = JavaVersion.VERSION_1_8 sourceSets { main.java.srcDirs += "${projectDir}/src/main/kotlin" + test.java.srcDirs += "${projectDir}/src/test/kotlin" test.java.srcDirs += "${projectDir}/src/integrationTest/kotlin" test.resources.srcDirs += "${projectDir}/src/integrationTest/resources" } +test { + useJUnitPlatform() +} + dependencies { api other.kotlinStdlib - api other.retrofit - api other.jacksonConverter - api other.koinCore - - implementation(other.jacksonKotlin) { - exclude module: 'kotlin-reflect' - } - implementation other.kotlinReflect // for jackson kotlin, but to use the same version - implementation other.okhttpLogging testImplementation testing.junit - testImplementation testing.kotlinJunit - testImplementation testing.mockito - testImplementation testing.mockitoInline - testImplementation testing.mockitoKotlin - testImplementation testing.kluent - testImplementation testing.mockWebServer - testImplementation testing.apacheCodecs + testRuntimeOnly testing.junitVintage } jacoco { @@ -36,11 +29,8 @@ jacoco { } ext { - // Excluding data classes - jacocoExclude = [ - '**/models/**', - '**/di/**' - ] + // override it in the module + jacocoExclude = [] } jacocoTestReport { @@ -61,5 +51,11 @@ test.finalizedBy jacocoTestReport test { jacoco { excludes += jacocoExclude + includeNoLocationClasses = true } } + +tasks.create(name: "ciTest", dependsOn: "test") { + group = "Verification" + description = "Special task for CI that calls all tests in pure kotlin modules" +} diff --git a/library/.gitignore b/library/.gitignore deleted file mode 100644 index e8fa30f8..00000000 --- a/library/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -/build -*.iml diff --git a/library/build.gradle b/library/build.gradle deleted file mode 100644 index b2e07832..00000000 --- a/library/build.gradle +++ /dev/null @@ -1,26 +0,0 @@ -apply plugin: 'com.android.library' - -android { - compileSdkVersion versions.compileSdk - - defaultConfig { - minSdkVersion versions.minSdk - targetSdkVersion versions.targetSdk - } - - buildTypes { - release { - minifyEnabled false - proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt' - } - } - - lintOptions { - baselineFile file("lint-baseline.xml") - abortOnError true - } -} - -dependencies { - api androidSupport.support -} diff --git a/menudrawer/.gitignore b/menudrawer/.gitignore deleted file mode 100644 index e8fa30f8..00000000 --- a/menudrawer/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -/build -*.iml diff --git a/menudrawer/build.gradle b/menudrawer/build.gradle deleted file mode 100644 index 1979d8cd..00000000 --- a/menudrawer/build.gradle +++ /dev/null @@ -1,22 +0,0 @@ -apply plugin: 'com.android.library' - -android { - compileSdkVersion versions.compileSdk - - defaultConfig { - minSdkVersion versions.minSdk - targetSdkVersion versions.targetSdk - } - - buildTypes { - release { - minifyEnabled false - proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt' - } - } - - lintOptions { - baselineFile file("lint-baseline.xml") - abortOnError true - } -} diff --git a/pulltorefresh/.gitignore b/pulltorefresh/.gitignore deleted file mode 100644 index e8fa30f8..00000000 --- a/pulltorefresh/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -/build -*.iml diff --git a/pulltorefresh/build.gradle b/pulltorefresh/build.gradle deleted file mode 100644 index 1979d8cd..00000000 --- a/pulltorefresh/build.gradle +++ /dev/null @@ -1,22 +0,0 @@ -apply plugin: 'com.android.library' - -android { - compileSdkVersion versions.compileSdk - - defaultConfig { - minSdkVersion versions.minSdk - targetSdkVersion versions.targetSdk - } - - buildTypes { - release { - minifyEnabled false - proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt' - } - } - - lintOptions { - baselineFile file("lint-baseline.xml") - abortOnError true - } -} diff --git a/pulltorefresh/src/main/res/values-ar/pull_refresh_strings.xml b/pulltorefresh/src/main/res/values-ar/pull_refresh_strings.xml deleted file mode 100644 index 5b0b571c..00000000 --- a/pulltorefresh/src/main/res/values-ar/pull_refresh_strings.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - اسحب للتحديث… - اترك للتحديث… - تحميل… - diff --git a/settings.gradle b/settings.gradle index eb222b3d..b5554310 100644 --- a/settings.gradle +++ b/settings.gradle @@ -1,8 +1,8 @@ -include ':library' -include ':domain' -include ':subsonic-api' -include ':subsonic-api-image-loader' -include ':cache' -include ':menudrawer' -include ':pulltorefresh' +include ':core:library' +include ':core:domain' +include ':core:subsonic-api' +include ':core:subsonic-api-image-loader' +include ':core:cache' +include ':core:menudrawer' +include ':core:pulltorefresh' include ':ultrasonic' diff --git a/subsonic-api-image-loader/build.gradle b/subsonic-api-image-loader/build.gradle deleted file mode 100644 index 5baa60ce..00000000 --- a/subsonic-api-image-loader/build.gradle +++ /dev/null @@ -1,52 +0,0 @@ -apply plugin: 'com.android.library' -apply plugin: 'kotlin-android' -apply from: '../gradle_scripts/code_quality.gradle' -apply plugin: 'jacoco' - - -ext { - jacocoExclude = [] -} - -jacoco { - toolVersion(versions.jacoco) -} - -tasks.withType(Test) { - jacoco.includeNoLocationClasses = true -} - -android { - compileSdkVersion(versions.compileSdk) - - defaultConfig { - minSdkVersion(versions.minSdk) - targetSdkVersion(versions.targetSdk) - - testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" - } - - sourceSets { - main.java.srcDirs += 'src/main/kotlin' - test.java.srcDirs += 'src/test/kotlin' - test.java.srcDirs += "${projectDir}/src/integrationTest/kotlin" - test.resources.srcDirs += "${projectDir}/src/integrationTest/resources" - } -} - -dependencies { - api project(':domain') - api project(':subsonic-api') - api other.kotlinStdlib - api(other.picasso) { - exclude group: "com.android.support" - } - - testImplementation testing.junit - testImplementation testing.kotlinJunit - testImplementation testing.mockito - testImplementation testing.mockitoInline - testImplementation testing.mockitoKotlin - testImplementation testing.kluent - testImplementation testing.robolectric -} diff --git a/subsonic-api/.gitignore b/subsonic-api/.gitignore deleted file mode 100644 index e8fa30f8..00000000 --- a/subsonic-api/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -/build -*.iml diff --git a/ultrasonic/build.gradle b/ultrasonic/build.gradle index aa7a2ff5..56f858d0 100644 --- a/ultrasonic/build.gradle +++ b/ultrasonic/build.gradle @@ -49,14 +49,18 @@ android { } } +tasks.withType(Test) { + useJUnitPlatform() +} + dependencies { - implementation project(':menudrawer') - implementation project(':pulltorefresh') - implementation project(':library') - implementation project(':domain') - implementation project(':subsonic-api') - implementation project(':subsonic-api-image-loader') - implementation project(':cache') + implementation project(':core:menudrawer') + implementation project(':core:pulltorefresh') + implementation project(':core:library') + implementation project(':core:domain') + implementation project(':core:subsonic-api') + implementation project(':core:subsonic-api-image-loader') + implementation project(':core:cache') implementation androidSupport.support implementation androidSupport.design @@ -67,11 +71,16 @@ dependencies { testImplementation other.kotlinReflect testImplementation testing.junit + testRuntimeOnly testing.junitVintage testImplementation testing.kotlinJunit testImplementation testing.mockitoKotlin testImplementation testing.kluent } +jacoco { + toolVersion(versions.jacoco) +} + // Excluding all java classes and stuff that should not be covered ext { jacocoExclude = [ diff --git a/ultrasonic/lint-baseline.xml b/ultrasonic/lint-baseline.xml index 916b6f0c..fc439fa2 100644 --- a/ultrasonic/lint-baseline.xml +++ b/ultrasonic/lint-baseline.xml @@ -1,5 +1,5 @@ - + @@ -30,7 +30,7 @@ errorLine2=" ~~~~~~~~~~~~~~~"> @@ -41,7 +41,7 @@ errorLine2=" ~~~~~~~~~~~~~~~"> @@ -52,18 +52,7 @@ errorLine2=" ~~~~~~~~~~~~~~~"> - - - - @@ -74,10 +63,32 @@ errorLine2=" ~~~~~~~~~~~~~~~"> + + + + + + + + - - - - - - - - @@ -166,30 +155,30 @@ errorLine2=" ~~~~~~~~~~~"> + errorLine1=" Thread thread = new Thread(this, String.format("ImageLoader_%d", i));" + errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> + file="src/main/java/org/moire/ultrasonic/util/LegacyImageLoader.java" + line="104" + column="46"/> + errorLine1=" return String.format("%s:%d", coverArtId, size);" + errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> + file="src/main/java/org/moire/ultrasonic/util/LegacyImageLoader.java" + line="209" + column="16"/> - - - - + + + + @@ -232,7 +221,7 @@ errorLine2=" ~~~~~~~~~~~"> @@ -243,7 +232,7 @@ errorLine2=" ~~~~~~~~~~~"> @@ -254,7 +243,7 @@ errorLine2=" ~~~~~~~~~~~"> @@ -265,7 +254,7 @@ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> @@ -276,7 +265,7 @@ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> @@ -298,7 +287,7 @@ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> @@ -309,7 +298,7 @@ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> @@ -320,7 +309,7 @@ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> @@ -331,10 +320,43 @@ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> + + + + + + + + + + + + @@ -397,7 +419,7 @@ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> @@ -430,7 +452,7 @@ errorLine2=" ~~~~"> @@ -441,7 +463,7 @@ errorLine2=" ~~~~"> @@ -559,7 +581,7 @@ errorLine2=" ^"> @@ -570,7 +592,7 @@ errorLine2=" ^"> @@ -581,7 +603,7 @@ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> @@ -592,7 +614,7 @@ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> @@ -603,7 +625,7 @@ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> @@ -614,7 +636,7 @@ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> @@ -625,7 +647,7 @@ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> @@ -636,7 +658,7 @@ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> @@ -647,7 +669,7 @@ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> @@ -658,7 +680,7 @@ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> @@ -669,7 +691,7 @@ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> @@ -680,7 +702,7 @@ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> @@ -691,7 +713,7 @@ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> @@ -702,7 +724,7 @@ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> @@ -713,7 +735,7 @@ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> @@ -724,7 +746,7 @@ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> @@ -735,7 +757,7 @@ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> @@ -746,7 +768,7 @@ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> @@ -757,7 +779,7 @@ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> @@ -768,51 +790,7 @@ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - - - - - - - - - - - - - - - - @@ -823,7 +801,7 @@ errorLine2=" ~~~~~~~~~~~~"> @@ -853,11 +831,11 @@ id="ExportedContentProvider" message="Exported content providers can provide access to potentially sensitive data" errorLine1=" <provider" - errorLine2=" ^"> + errorLine2=" ~~~~~~~~"> + column="10"/> @@ -987,7 +965,7 @@ errorLine2=" ~~~~~~~~~~~~~"> @@ -998,7 +976,7 @@ errorLine2=" ~~~~~~~~~~~~~~~"> @@ -1009,7 +987,7 @@ errorLine2=" ~~~~~~~~~~~"> @@ -1057,17 +1035,6 @@ column="16"/> - - - - @@ -1359,27 +1326,27 @@ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~"> @@ -1388,83 +1355,21 @@ message="The resource `R.string.parser_artist_count` appears to be unused" errorLine1=" <string name="parser.artist_count">Got %d Artists.</string>" errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + errorLine2=" ~~~~~~~~~~~~"> + column="6"/> + + + + @@ -1642,7 +1496,18 @@ errorLine2=" ^"> + + + + @@ -1667,7 +1532,40 @@ file="src/main/res/drawable-hdpi/ic_stat_ultrasonic.png"/> + + + + + + + + + + + + + + + @@ -1726,7 +1624,7 @@ errorLine2=" ^"> @@ -1737,7 +1635,7 @@ errorLine2=" ~~~~~~~~~"> @@ -1803,7 +1701,7 @@ errorLine2=" ~~~~~~~"> @@ -1811,605 +1709,649 @@ id="ContentDescription" message="Missing `contentDescription` attribute on image" errorLine1=" <ImageView" - errorLine2=" ^"> + errorLine2=" ~~~~~~~~~"> + column="6"/> + errorLine2=" ~~~~~~~~~"> + column="6"/> + errorLine2=" ~~~~~~~~~"> + column="6"/> + errorLine2=" ~~~~~~~~~"> + column="6"/> + errorLine2=" ~~~~~~~~~"> + column="6"/> + errorLine2=" ~~~~~~~~~"> + column="6"/> + errorLine2=" ~~~~~~~~~"> + column="6"/> + errorLine2=" ~~~~~~~~~"> + column="6"/> + errorLine2=" ~~~~~~~~~"> + column="6"/> + errorLine2=" ~~~~~~~~~"> + column="6"/> + errorLine2=" ~~~~~~~~~"> + column="6"/> + errorLine2=" ~~~~~~~~~"> + column="6"/> + errorLine2=" ~~~~~~~~~~~"> + column="14"/> + errorLine2=" ~~~~~~~~~~~"> + column="14"/> + errorLine2=" ~~~~~~~~~~~"> + column="14"/> + errorLine2=" ~~~~~~~~~"> + column="6"/> + errorLine2=" ~~~~~~~~~~~"> + column="14"/> + errorLine2=" ~~~~~~~~~~~"> + column="14"/> + errorLine2=" ~~~~~~~~~~~"> + column="14"/> + errorLine2=" ~~~~~~~~~"> + column="6"/> + errorLine2=" ~~~~~~~~~~~"> + column="14"/> + errorLine2=" ~~~~~~~~~~~"> + column="14"/> + errorLine2=" ~~~~~~~~~~~"> + column="14"/> + errorLine2=" ~~~~~~~~~"> + column="6"/> + errorLine2=" ~~~~~~~~~~~"> + column="14"/> + errorLine2=" ~~~~~~~~~~~"> + column="14"/> + errorLine2=" ~~~~~~~~~~~"> + column="14"/> + errorLine2=" ~~~~~~~~~~~"> + column="10"/> + errorLine2=" ~~~~~~~~~"> + column="6"/> + errorLine2=" ~~~~~~~~~"> + column="6"/> + errorLine2=" ~~~~~~~~~"> + column="10"/> + errorLine2=" ~~~~~~~~~"> + column="10"/> + errorLine2=" ~~~~~~~~~"> + column="10"/> + errorLine2=" ~~~~~~~~~"> + column="4"/> + errorLine2=" ~~~~~~~~~"> + column="2"/> + errorLine2=" ~~~~~~~~~"> + column="6"/> + errorLine2=" ~~~~~~~~~"> + column="6"/> + errorLine2=" ~~~~~~~~~"> + column="6"/> + errorLine2=" ~~~~~~~~~"> + column="6"/> + errorLine2=" ~~~~~~~~~"> + column="6"/> + errorLine2=" ~~~~~~~~~~~"> + column="10"/> + errorLine2=" ~~~~~~~~~~~"> + column="10"/> + errorLine2=" ~~~~~~~~~~~"> + column="10"/> + errorLine2=" ~~~~~~~~~~~"> + column="10"/> + errorLine2=" ~~~~~~~~~"> + column="6"/> + errorLine2=" ~~~~~~~~~~~"> + column="14"/> + errorLine2=" ~~~~~~~~~~~"> + column="14"/> + errorLine2=" ~~~~~~~~~~~"> + column="14"/> + errorLine2=" ~~~~~~~~~~~"> + column="14"/> + errorLine2=" ~~~~~~~~~"> + column="6"/> + errorLine2=" ~~~~~~~~~"> + column="6"/> + errorLine2=" ~~~~~~~~~"> + column="6"/> + errorLine2=" ~~~~~~~~~"> + column="6"/> + errorLine2=" ~~~~~~~~~"> + column="6"/> + errorLine2=" ~~~~~~~~~"> + column="6"/> + + + + + + + + + + + + + + + +