Merge pull request #14 from ultrasonic/add-ktlint

Add ktlint
This commit is contained in:
Yahor Berdnikau 2017-07-29 23:05:52 +02:00 committed by GitHub
commit f1041d247d
15 changed files with 41 additions and 22 deletions

View File

@ -1,15 +1,17 @@
// Top-level build file where you can add configuration options common to all sub-projects/modules.
apply from: 'dependencies.gradle'
buildscript {
apply from: 'dependencies.gradle'
repositories {
jcenter()
maven {
url "https://plugins.gradle.org/m2/"
}
}
dependencies {
classpath gradlePlugins.androidTools
classpath gradlePlugins.kotlin
classpath gradlePlugins.ktlintGradle
}
}

View File

@ -5,6 +5,8 @@ ext.versions = [
buildTools : "25.0.3",
androidTools : "2.3.3",
ktlint : "0.9.0",
ktlintGradle : "2.1.0",
androidSupport : "22.2.1",
@ -23,6 +25,7 @@ ext.versions = [
ext.gradlePlugins = [
androidTools : "com.android.tools.build:gradle:$versions.androidTools",
kotlin : "org.jetbrains.kotlin:kotlin-gradle-plugin:$versions.kotlin",
ktlintGradle : "gradle.plugin.org.jlleitschuh.gradle:ktlint-gradle:$versions.ktlintGradle",
]
ext.androidSupport = [

View File

@ -0,0 +1,10 @@
// Applies code quality plugins when -Pqc is passed to the gradle
def isCodeQualityEnabled = project.hasProperty('qc')
if (isCodeQualityEnabled) {
apply plugin: "org.jlleitschuh.gradle.ktlint"
ktlint {
version = versions.ktlint
}
}

View File

@ -1,4 +1,5 @@
apply plugin: 'kotlin'
apply from: '../gradle_scripts/code_quality.gradle'
sourceSets {
main.java.srcDirs += 'src/main/kotlin'

View File

@ -23,7 +23,9 @@ import retrofit2.Response
import java.nio.charset.Charset
import java.security.MessageDigest
import java.text.SimpleDateFormat
import java.util.*
import java.util.Calendar
import java.util.Locale
import java.util.TimeZone
/**
* Integration test for [SubsonicAPIClient] class.

View File

@ -8,11 +8,11 @@ import org.junit.runners.model.Statement
/**
* Starts mock web server for test and shut it down after.
*/
class MockWebServerRule: TestRule {
class MockWebServerRule : TestRule {
val mockWebServer = MockWebServer()
override fun apply(base: Statement?, description: Description?): Statement {
val ruleStatement = object: Statement() {
val ruleStatement = object : Statement() {
override fun evaluate() {
try {
mockWebServer.start()

View File

@ -52,9 +52,9 @@ enum class SubsonicAPIVersions(val subsonicVersions: String, val restApiVersion:
throw IllegalArgumentException("Unknown api version $apiVersion")
}
class SubsonicAPIVersionsDeserializer: JsonDeserializer<SubsonicAPIVersions>() {
override fun deserialize(p: JsonParser?, ctxt: DeserializationContext?): SubsonicAPIVersions {
if (p!!.currentName != "version") {
class SubsonicAPIVersionsDeserializer : JsonDeserializer<SubsonicAPIVersions>() {
override fun deserialize(p: JsonParser, ctxt: DeserializationContext?): SubsonicAPIVersions {
if (p.currentName != "version") {
throw JsonParseException(p, "Not valid token for API version!")
}
return fromApiVersion(p.text)

View File

@ -25,9 +25,9 @@ enum class SubsonicError(val code: Int) {
.filter { it.code == jsonErrorCode }.firstOrNull()
?: throw IllegalArgumentException("Unknown code $jsonErrorCode")
class SubsonicErrorDeserializer: JsonDeserializer<SubsonicError>() {
override fun deserialize(p: JsonParser?, ctxt: DeserializationContext?): SubsonicError {
p!!.nextToken() // "code"
class SubsonicErrorDeserializer : JsonDeserializer<SubsonicError>() {
override fun deserialize(p: JsonParser, ctxt: DeserializationContext?): SubsonicError {
p.nextToken() // "code"
val error = parseErrorFromJson(p.valueAsInt)
p.nextToken() // "message"
p.nextToken() // end of error object

View File

@ -1,6 +1,6 @@
package org.moire.ultrasonic.api.subsonic.models
import java.util.*
import java.util.Calendar
data class Artist(val id: Long,
val name: String,

View File

@ -1,7 +1,7 @@
package org.moire.ultrasonic.api.subsonic.models
import com.fasterxml.jackson.annotation.JsonProperty
import java.util.*
import java.util.Calendar
data class MusicDirectory(val id: Long,
val name: String,

View File

@ -1,6 +1,6 @@
package org.moire.ultrasonic.api.subsonic.models
import java.util.*
import java.util.Calendar
data class MusicDirectoryChild(val id: Long, val parent: Long, val isDir: Boolean = false,
val title: String = "", val album: String = "",

View File

@ -7,5 +7,5 @@ import org.moire.ultrasonic.api.subsonic.models.License
class LicenseResponse(val license: License = License(),
status: Status,
version: SubsonicAPIVersions,
error: SubsonicError?):
error: SubsonicError?) :
SubsonicResponse(status, version, error)

View File

@ -14,12 +14,12 @@ class MusicFoldersResponse(status: Status,
version: SubsonicAPIVersions,
error: SubsonicError?,
@JsonDeserialize(using = MusicFoldersDeserializer::class)
val musicFolders: List<MusicFolder> = emptyList()):
val musicFolders: List<MusicFolder> = emptyList()) :
SubsonicResponse(status, version, error) {
companion object {
class MusicFoldersDeserializer(): JsonDeserializer<List<MusicFolder>>() {
override fun deserialize(p: JsonParser?, ctxt: DeserializationContext?): List<MusicFolder> {
p!!.nextToken()
class MusicFoldersDeserializer() : JsonDeserializer<List<MusicFolder>>() {
override fun deserialize(p: JsonParser, ctxt: DeserializationContext?): List<MusicFolder> {
p.nextToken()
if (p.currentName == "musicFolder" && p.nextToken() == JsonToken.START_ARRAY) {
val mfJavaType = ctxt!!.typeFactory
.constructCollectionType(List::class.java, MusicFolder::class.java)

View File

@ -25,9 +25,9 @@ open class SubsonicResponse(val status: Status,
.filter { it.jsonValue == jsonValue }.firstOrNull()
?: throw IllegalArgumentException("Unknown status value: $jsonValue")
class StatusJsonDeserializer: JsonDeserializer<Status>() {
override fun deserialize(p: JsonParser?, ctxt: DeserializationContext?): Status {
if (p!!.currentName != "status") {
class StatusJsonDeserializer : JsonDeserializer<Status>() {
override fun deserialize(p: JsonParser, ctxt: DeserializationContext?): Status {
if (p.currentName != "status") {
throw JsonParseException(p,
"Current token is not status. Current token name ${p.currentName}.")
}

View File

@ -1,5 +1,6 @@
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply from: "../gradle_scripts/code_quality.gradle"
android {
compileSdkVersion versions.compileSdk