From 9c388984517526e1cadcbbc44bbe8e2395ce14ca Mon Sep 17 00:00:00 2001 From: h-muraki Date: Thu, 30 Apr 2026 13:31:28 +0900 Subject: [PATCH] fix: upgrade ktlint to 1.7.1 to support stateInUi's context parameters ktlint 1.4.0 cannot parse the Kotlin 2.x context parameter syntax (`context(viewModel: ViewModel)`) used by stateInUi, causing spotlessCheck to fail. Bump ktlint to 1.7.1 (the first version with context parameter support). Also fixes incidental issues surfaced by the upgrade and review: - Apply ktlint 1.7.1's KDoc-spacing rule to NavigationTest.kt. - Fix import order in InterestsViewModel and SettingsViewModel. - Remove unused viewModelScope import from MainActivityViewModel. - Update FlowExtensions.kt copyright year to 2026. Co-Authored-By: Claude Opus 4.7 (1M context) --- .../com/google/samples/apps/nowinandroid/ui/NavigationTest.kt | 1 + .../google/samples/apps/nowinandroid/MainActivityViewModel.kt | 1 - .../google/samples/apps/nowinandroid/core/ui/FlowExtensions.kt | 2 +- .../nowinandroid/feature/interests/impl/InterestsViewModel.kt | 2 +- .../nowinandroid/feature/settings/impl/SettingsViewModel.kt | 2 +- gradle/libs.versions.toml | 2 +- 6 files changed, 5 insertions(+), 5 deletions(-) diff --git a/app/src/androidTest/kotlin/com/google/samples/apps/nowinandroid/ui/NavigationTest.kt b/app/src/androidTest/kotlin/com/google/samples/apps/nowinandroid/ui/NavigationTest.kt index c0eba5fd3..c22513eaf 100644 --- a/app/src/androidTest/kotlin/com/google/samples/apps/nowinandroid/ui/NavigationTest.kt +++ b/app/src/androidTest/kotlin/com/google/samples/apps/nowinandroid/ui/NavigationTest.kt @@ -110,6 +110,7 @@ class NavigationTest { // TODO: implement tests related to navigation & resetting of destinations (b/213307564) // Restoring content should be tested with another tab than the For You one, as that will // still succeed even when restoring state is turned off. + /** * When navigating between the different top level destinations, we should restore the state * of previously visited destinations. diff --git a/app/src/main/kotlin/com/google/samples/apps/nowinandroid/MainActivityViewModel.kt b/app/src/main/kotlin/com/google/samples/apps/nowinandroid/MainActivityViewModel.kt index 8641a49bd..4da4f8c16 100644 --- a/app/src/main/kotlin/com/google/samples/apps/nowinandroid/MainActivityViewModel.kt +++ b/app/src/main/kotlin/com/google/samples/apps/nowinandroid/MainActivityViewModel.kt @@ -17,7 +17,6 @@ package com.google.samples.apps.nowinandroid import androidx.lifecycle.ViewModel -import androidx.lifecycle.viewModelScope import com.google.samples.apps.nowinandroid.MainActivityUiState.Loading import com.google.samples.apps.nowinandroid.MainActivityUiState.Success import com.google.samples.apps.nowinandroid.core.data.repository.UserDataRepository diff --git a/core/ui/src/main/kotlin/com/google/samples/apps/nowinandroid/core/ui/FlowExtensions.kt b/core/ui/src/main/kotlin/com/google/samples/apps/nowinandroid/core/ui/FlowExtensions.kt index f39f609b7..8722fd74c 100644 --- a/core/ui/src/main/kotlin/com/google/samples/apps/nowinandroid/core/ui/FlowExtensions.kt +++ b/core/ui/src/main/kotlin/com/google/samples/apps/nowinandroid/core/ui/FlowExtensions.kt @@ -1,5 +1,5 @@ /* - * Copyright 2024 The Android Open Source Project + * Copyright 2026 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/feature/interests/impl/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/interests/impl/InterestsViewModel.kt b/feature/interests/impl/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/interests/impl/InterestsViewModel.kt index e2d2bfd6c..174e77fb8 100644 --- a/feature/interests/impl/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/interests/impl/InterestsViewModel.kt +++ b/feature/interests/impl/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/interests/impl/InterestsViewModel.kt @@ -23,8 +23,8 @@ import com.google.samples.apps.nowinandroid.core.data.repository.UserDataReposit import com.google.samples.apps.nowinandroid.core.domain.GetFollowableTopicsUseCase import com.google.samples.apps.nowinandroid.core.domain.TopicSortField import com.google.samples.apps.nowinandroid.core.model.data.FollowableTopic -import com.google.samples.apps.nowinandroid.feature.interests.api.navigation.InterestsNavKey import com.google.samples.apps.nowinandroid.core.ui.stateInUi +import com.google.samples.apps.nowinandroid.feature.interests.api.navigation.InterestsNavKey import dagger.assisted.Assisted import dagger.assisted.AssistedFactory import dagger.assisted.AssistedInject diff --git a/feature/settings/impl/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/settings/impl/SettingsViewModel.kt b/feature/settings/impl/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/settings/impl/SettingsViewModel.kt index 4f8266404..99a394d3a 100644 --- a/feature/settings/impl/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/settings/impl/SettingsViewModel.kt +++ b/feature/settings/impl/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/settings/impl/SettingsViewModel.kt @@ -21,9 +21,9 @@ import androidx.lifecycle.viewModelScope import com.google.samples.apps.nowinandroid.core.data.repository.UserDataRepository import com.google.samples.apps.nowinandroid.core.model.data.DarkThemeConfig import com.google.samples.apps.nowinandroid.core.model.data.ThemeBrand +import com.google.samples.apps.nowinandroid.core.ui.stateInUi import com.google.samples.apps.nowinandroid.feature.settings.impl.SettingsUiState.Loading import com.google.samples.apps.nowinandroid.feature.settings.impl.SettingsUiState.Success -import com.google.samples.apps.nowinandroid.core.ui.stateInUi import dagger.hilt.android.lifecycle.HiltViewModel import kotlinx.coroutines.flow.StateFlow import kotlinx.coroutines.flow.map diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 16123b7f6..3f3983676 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -51,7 +51,7 @@ kotlinxCoroutines = "1.10.1" kotlinxDatetime = "0.6.1" kotlinxSerializationJson = "1.8.0" ksp = "2.3.4" -ktlint = "1.4.0" +ktlint = "1.7.1" okhttp = "4.12.0" protobuf = "4.29.2" protobufPlugin = "0.9.6"