Skip to content

Commit 2af847a

Browse files
committed
Added KtLint checking.
Fixed issues found by KtLint and some other refactoring.
1 parent 3415808 commit 2af847a

File tree

55 files changed

+246
-263
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

55 files changed

+246
-263
lines changed

.editorconfig

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
[*.{kt,kts}]
2+
indent_size=4
3+
continuation_indent_size=8
4+
insert_final_newline=unset
5+
max_line_length=160

app/build.gradle

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,29 @@ kapt {
2626
generateStubs = true
2727
}
2828

29+
configurations {
30+
ktlint
31+
}
32+
33+
task ktlint(type: JavaExec, group: "verification") {
34+
description = "Check Kotlin code style."
35+
classpath = configurations.ktlint
36+
main = "com.github.shyiko.ktlint.Main"
37+
args "src/**/*.kt"
38+
// to generate report in checkstyle format prepend following args:
39+
// "--reporter=plain", "--reporter=checkstyle,output=${buildDir}/ktlint.xml"
40+
// see https://github.com/shyiko/ktlint#usage for more
41+
}
42+
43+
check.dependsOn ktlint
44+
45+
task ktlintFormat(type: JavaExec, group: "formatting") {
46+
description = "Fix Kotlin code style deviations."
47+
classpath = configurations.ktlint
48+
main = "com.github.shyiko.ktlint.Main"
49+
args "-F", "src/**/*.kt"
50+
}
51+
2952
dependencies {
3053
implementation fileTree(dir: 'libs', include: ['*.jar'])
3154
implementation"org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version"
@@ -49,6 +72,8 @@ dependencies {
4972
kapt "com.google.dagger:dagger-compiler:$DAGGER_VERSION"
5073
kapt "com.google.dagger:dagger-android-processor:$DAGGER_VERSION"
5174

75+
ktlint "com.github.shyiko:ktlint:0.27.0"
76+
5277
testImplementation "com.nhaarman.mockitokotlin2:mockito-kotlin:$MOCKITO_KOTLIN_VERSION"
5378
testImplementation "junit:junit:$JUNIT_VERSION"
5479

app/src/androidTest/java/com/example/tamaskozmer/kotlinrxexample/mocks/di/modules/TestApplicationModule.kt

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,9 @@ import javax.inject.Singleton
1212

1313
@Module
1414
class TestApplicationModule(
15-
private val userRepository: UserRepository = FakeUserRepository(),
16-
private val detailsRepository: DetailsRepository = FakeDetailsRepository()) {
15+
private val userRepository: UserRepository = FakeUserRepository(),
16+
private val detailsRepository: DetailsRepository = FakeDetailsRepository()
17+
) {
1718

1819
@Provides
1920
@Singleton

app/src/androidTest/java/com/example/tamaskozmer/kotlinrxexample/testutil/CustomTestRunner.kt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ import android.app.Application
44
import android.content.Context
55
import android.support.test.runner.AndroidJUnitRunner
66

7-
87
class CustomTestRunner : AndroidJUnitRunner() {
98

109
override fun newApplication(cl: ClassLoader?, className: String?, context: Context?): Application {

app/src/androidTest/java/com/example/tamaskozmer/kotlinrxexample/testutil/TestApplication.kt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ import dagger.android.DispatchingAndroidInjector
66
import dagger.android.support.HasSupportFragmentInjector
77
import javax.inject.Inject
88

9-
109
class TestApplication : Application(), HasSupportFragmentInjector {
1110

1211
@Inject

app/src/androidTest/java/com/example/tamaskozmer/kotlinrxexample/view/fragments/UserListFragmentTest.kt

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ import com.example.tamaskozmer.kotlinrxexample.model.entities.UserListModel
1919
import com.example.tamaskozmer.kotlinrxexample.model.repositories.UserRepository
2020
import com.example.tamaskozmer.kotlinrxexample.testutil.RecyclerViewMatcher
2121
import com.example.tamaskozmer.kotlinrxexample.testutil.TestInjector
22-
import com.example.tamaskozmer.kotlinrxexample.view.activities.MainActivity
22+
import com.example.tamaskozmer.kotlinrxexample.presentation.view.activities.MainActivity
2323
import io.reactivex.Single
2424
import io.reactivex.SingleEmitter
2525
import org.hamcrest.Matchers
@@ -31,7 +31,6 @@ import org.mockito.Mock
3131
import org.mockito.MockitoAnnotations
3232
import org.mockito.Mockito.`when` as whenever
3333

34-
3534
@RunWith(AndroidJUnit4::class)
3635
class UserListFragmentTest {
3736

app/src/main/AndroidManifest.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
android:supportsRtl="true"
1515
android:theme="@style/AppTheme">
1616
<activity
17-
android:name=".view.activities.MainActivity"
17+
android:name=".presentation.view.activities.MainActivity"
1818
android:configChanges="orientation|screenSize">
1919
<intent-filter>
2020
<action android:name="android.intent.action.MAIN" />

app/src/main/java/com/example/tamaskozmer/kotlinrxexample/CustomApplication.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,6 @@ class CustomApplication : DaggerApplication() {
1313

1414
override fun onCreate() {
1515
super.onCreate()
16-
Stetho.initializeWithDefaults(this);
16+
Stetho.initializeWithDefaults(this)
1717
}
1818
}

app/src/main/java/com/example/tamaskozmer/kotlinrxexample/di/modules/ApplicationModule.kt

Lines changed: 40 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,11 @@ import com.example.tamaskozmer.kotlinrxexample.model.repositories.DetailsReposit
1010
import com.example.tamaskozmer.kotlinrxexample.model.repositories.UserRepository
1111
import com.example.tamaskozmer.kotlinrxexample.model.services.QuestionService
1212
import com.example.tamaskozmer.kotlinrxexample.model.services.UserService
13-
import com.example.tamaskozmer.kotlinrxexample.util.*
13+
import com.example.tamaskozmer.kotlinrxexample.util.AppSchedulerProvider
14+
import com.example.tamaskozmer.kotlinrxexample.util.CalendarWrapper
15+
import com.example.tamaskozmer.kotlinrxexample.util.ConnectionHelper
16+
import com.example.tamaskozmer.kotlinrxexample.util.PreferencesHelper
17+
import com.example.tamaskozmer.kotlinrxexample.util.SchedulerProvider
1418
import com.google.gson.Gson
1519
import dagger.Module
1620
import dagger.Provides
@@ -32,41 +36,54 @@ class ApplicationModule() {
3236
@Provides
3337
@Singleton
3438
fun provideRetrofit(): Retrofit = Retrofit.Builder()
35-
.addCallAdapterFactory(RxJava2CallAdapterFactory.create())
36-
.addConverterFactory(GsonConverterFactory.create(Gson()))
37-
.baseUrl(BASE_URL)
38-
.build()
39+
.addCallAdapterFactory(RxJava2CallAdapterFactory.create())
40+
.addConverterFactory(GsonConverterFactory.create(Gson()))
41+
.baseUrl(BASE_URL)
42+
.build()
3943

4044
@Provides
4145
@Singleton
42-
fun provideUserRepository(retrofit: Retrofit, database: AppDatabase, connectionHelper: ConnectionHelper,
43-
preferencesHelper: PreferencesHelper, calendarWrapper: CalendarWrapper): UserRepository {
46+
fun provideUserRepository(
47+
retrofit: Retrofit,
48+
database: AppDatabase,
49+
connectionHelper: ConnectionHelper,
50+
preferencesHelper: PreferencesHelper,
51+
calendarWrapper: CalendarWrapper
52+
): UserRepository {
4453
return DefaultUserRepository(
45-
retrofit.create(UserService::class.java),
46-
database.userDao(),
47-
connectionHelper,
48-
preferencesHelper,
49-
calendarWrapper)
54+
retrofit.create(UserService::class.java),
55+
database.userDao(),
56+
connectionHelper,
57+
preferencesHelper,
58+
calendarWrapper
59+
)
5060
}
5161

5262
@Provides
5363
@Singleton
54-
fun provideDetailsRepository(retrofit: Retrofit, database: AppDatabase, connectionHelper: ConnectionHelper,
55-
preferencesHelper: PreferencesHelper, calendarWrapper: CalendarWrapper): DetailsRepository {
64+
fun provideDetailsRepository(
65+
retrofit: Retrofit,
66+
database: AppDatabase,
67+
connectionHelper: ConnectionHelper,
68+
preferencesHelper: PreferencesHelper,
69+
calendarWrapper: CalendarWrapper
70+
): DetailsRepository {
5671
return DefaultDetailsRepository(
57-
retrofit.create(UserService::class.java),
58-
retrofit.create(QuestionService::class.java),
59-
database.questionDao(),
60-
database.answerDao(),
61-
database.favoritedByUserDao(),
62-
connectionHelper,
63-
preferencesHelper,
64-
calendarWrapper)
72+
retrofit.create(UserService::class.java),
73+
retrofit.create(QuestionService::class.java),
74+
database.questionDao(),
75+
database.answerDao(),
76+
database.favoritedByUserDao(),
77+
connectionHelper,
78+
preferencesHelper,
79+
calendarWrapper
80+
)
6581
}
6682

6783
@Provides
6884
@Singleton
69-
fun provideDatabase(context: Context) = Room.databaseBuilder(context, AppDatabase::class.java, DATABASE_NAME).build()
85+
fun provideDatabase(context: Context) =
86+
Room.databaseBuilder(context, AppDatabase::class.java, DATABASE_NAME).build()
7087

7188
@Provides
7289
@Singleton

app/src/main/java/com/example/tamaskozmer/kotlinrxexample/domain/interactors/GetDetails.kt

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ import javax.inject.Inject
1212

1313
class GetDetails @Inject constructor(private val detailsRepository: DetailsRepository) {
1414

15-
fun execute(userId: Long, forced: Boolean) : Single<DetailsViewModel> {
15+
fun execute(userId: Long, forced: Boolean): Single<DetailsViewModel> {
1616
return Single.zip(
1717
detailsRepository.getQuestionsByUser(userId, forced),
1818
getTitlesForAnswers(userId, forced),
@@ -22,7 +22,7 @@ class GetDetails @Inject constructor(private val detailsRepository: DetailsRepos
2222
createDetailsModel(questions, answers, favorites) })
2323
}
2424

25-
private fun getTitlesForAnswers(userId: Long, forced: Boolean) : Single<List<AnswerViewModel>> {
25+
private fun getTitlesForAnswers(userId: Long, forced: Boolean): Single<List<AnswerViewModel>> {
2626
return detailsRepository.getAnswersByUser(userId, forced)
2727
.flatMap { answers: List<Answer> ->
2828
mapAnswersToAnswerViewModels(answers, userId, forced) }
@@ -39,15 +39,18 @@ class GetDetails @Inject constructor(private val detailsRepository: DetailsRepos
3939
createAnswerViewModels(answers, questions) }
4040
}
4141

42-
private fun createAnswerViewModels(answers: List<Answer>, questions: List<Question>) : List<AnswerViewModel> {
42+
private fun createAnswerViewModels(answers: List<Answer>, questions: List<Question>): List<AnswerViewModel> {
4343
return answers.map { (answerId, questionId, score, accepted) ->
4444
val question = questions.find { it.questionId == questionId }
4545
AnswerViewModel(answerId, score, accepted, question?.title ?: "Unknown")
4646
}
4747
}
4848

49-
private fun createDetailsModel(questions: List<Question>, answers: List<AnswerViewModel>,
50-
favorites: List<Question>): DetailsViewModel {
49+
private fun createDetailsModel(
50+
questions: List<Question>,
51+
answers: List<AnswerViewModel>,
52+
favorites: List<Question>
53+
): DetailsViewModel {
5154
val questionViewModels =
5255
questions.map { QuestionViewModel(it.viewCount, it.score, it.title, it.link, it.questionId) }
5356
val favoriteViewModels =

0 commit comments

Comments
 (0)