diff --git a/.github/workflows/run-code-quality-check.yml b/.github/workflows/run-code-quality-check.yml index bf9871e9f..f4e40e0ab 100644 --- a/.github/workflows/run-code-quality-check.yml +++ b/.github/workflows/run-code-quality-check.yml @@ -56,7 +56,6 @@ jobs: # https://megalinter.github.io/configuration/ VALIDATE_ALL_CODEBASE: ${{ github.event_name == 'push' && github.ref == 'refs/heads/main' }} # Validates all source when push on main, else just the git diff with main. Override with true if you always want to lint all sources GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - KOTLIN_KTLINT_ARGUMENTS: "--ruleset=custom-ktlint-rules/build/libs/custom-ktlint-rules.jar" # ADD YOUR CUSTOM ENV VARIABLES HERE OR DEFINE THEM IN A FILE .mega-linter.yml AT THE ROOT OF YOUR REPOSITORY # DISABLE: COPYPASTE,SPELL # Uncomment to disable copy-paste and spell checks diff --git a/.github/workflows/run-test.yml b/.github/workflows/run-test.yml index 412970fb0..e48a39e49 100644 --- a/.github/workflows/run-test.yml +++ b/.github/workflows/run-test.yml @@ -140,6 +140,20 @@ jobs: - name: Ensure license headers are added run: python "build-tools/check-license-headers.py" + verify-formatting: + name: Verify ktlint formatting + runs-on: ubuntu-20.04 + + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Prepare Android Environment + uses: ./.github/actions/prepare-android-env + + - name: Run test + run: ./gradlew ktlintCheck + test-results: name: Upload tests results runs-on: ubuntu-20.04 @@ -147,6 +161,8 @@ jobs: needs: - android-tests - unit-tests + - verify-formatting + - test-license-headers steps: - name: Checkout diff --git a/.mega-linter.yml b/.mega-linter.yml index be56a0aae..c0ed3b405 100644 --- a/.mega-linter.yml +++ b/.mega-linter.yml @@ -13,3 +13,4 @@ DISABLE_LINTERS: - PYTHON_PYLINT - PYTHON_PYRIGHT - PYTHON_RUFF + - KOTLIN_KTLINT diff --git a/app-shared-tests/src/main/java/com/appunite/loudius/AbsLoginScreenTest.kt b/app-shared-tests/src/main/java/com/appunite/loudius/AbsLoginScreenTest.kt index 5888bcd5a..c618a1f3d 100644 --- a/app-shared-tests/src/main/java/com/appunite/loudius/AbsLoginScreenTest.kt +++ b/app-shared-tests/src/main/java/com/appunite/loudius/AbsLoginScreenTest.kt @@ -84,8 +84,8 @@ abstract class AbsLoginScreenTest { intended( allOf( hasAction(Intent.ACTION_VIEW), - hasData("https://github.com/login/oauth/authorize?client_id=91131449e417c7e29912&scope=repo"), - ), + hasData("https://github.com/login/oauth/authorize?client_id=91131449e417c7e29912&scope=repo") + ) ) } @@ -108,8 +108,8 @@ abstract class AbsLoginScreenTest { intended( allOf( hasAction(Intent.ACTION_VIEW), - hasData("https://github.com/login/oauth/authorize?client_id=91131449e417c7e29912&scope=repo"), - ), + hasData("https://github.com/login/oauth/authorize?client_id=91131449e417c7e29912&scope=repo") + ) ) } @@ -136,10 +136,10 @@ abstract class AbsLoginScreenTest { hasComponent( allOf( hasPackageName("com.miui.securitycenter"), - hasClassName("com.miui.permcenter.permissions.PermissionsEditorActivity"), - ), - ), - ), + hasClassName("com.miui.permcenter.permissions.PermissionsEditorActivity") + ) + ) + ) ) } } diff --git a/app-shared-tests/src/main/java/com/appunite/loudius/AbsWalkThroughAppTest.kt b/app-shared-tests/src/main/java/com/appunite/loudius/AbsWalkThroughAppTest.kt index da8ffa556..07b4885e8 100644 --- a/app-shared-tests/src/main/java/com/appunite/loudius/AbsWalkThroughAppTest.kt +++ b/app-shared-tests/src/main/java/com/appunite/loudius/AbsWalkThroughAppTest.kt @@ -59,10 +59,10 @@ abstract class AbsWalkThroughAppTest : UniversalWalkThroughAppTest() { ActivityScenario.launch( Intent( Intent.ACTION_VIEW, - Uri.parse("loudius://callback?code=example_code"), + Uri.parse("loudius://callback?code=example_code") ).apply { setPackage(integrationTestRule.composeTestRule.activity.packageName) - }, + } ) } } diff --git a/app-shared-tests/src/main/java/com/appunite/loudius/util/IntegrationTestRule.kt b/app-shared-tests/src/main/java/com/appunite/loudius/util/IntegrationTestRule.kt index 108d960fe..7fb0b1743 100644 --- a/app-shared-tests/src/main/java/com/appunite/loudius/util/IntegrationTestRule.kt +++ b/app-shared-tests/src/main/java/com/appunite/loudius/util/IntegrationTestRule.kt @@ -29,7 +29,7 @@ import org.junit.runners.model.Statement class IntegrationTestRule( testClass: Any, - testActivity: Class = TestActivity::class.java, + testActivity: Class = TestActivity::class.java ) : TestRule { val composeTestRule = createAndroidComposeRule(testActivity).apply { diff --git a/app-shared-tests/src/main/java/com/appunite/loudius/util/MockWebServerRule.kt b/app-shared-tests/src/main/java/com/appunite/loudius/util/MockWebServerRule.kt index 3ee4a4446..317b49787 100644 --- a/app-shared-tests/src/main/java/com/appunite/loudius/util/MockWebServerRule.kt +++ b/app-shared-tests/src/main/java/com/appunite/loudius/util/MockWebServerRule.kt @@ -39,7 +39,7 @@ class Request( val headers: Headers, val method: String, val url: HttpUrl, - val body: Buffer, + val body: Buffer ) { override fun toString(): String = "Request(method=$method, url=$url, headers=${headers.joinToString(separator = ",") { (key, value) -> "$key: $value" }})" @@ -73,7 +73,7 @@ class MockWebServerRule : TestRule { buildList { add(e) addAll(dispatcher.errors) - }, + } ) } } finally { @@ -100,7 +100,7 @@ private class UrlOverrideInterceptor(private val baseUrl: HttpUrl) : Interceptor .build() return chain.proceed( request.newBuilder().url(newUrl) - .addHeader("X-Test-Original-Url", request.url.toString()).build(), + .addHeader("X-Test-Original-Url", request.url.toString()).build() ) } } @@ -130,7 +130,7 @@ private class MockDispatcher : Dispatcher() { ).toHttpUrl(), headers = request.headers.newBuilder().removeAll("X-Test-Original-Url").build(), method = request.method ?: throw Exception("Nullable method in the request"), - body = request.body, + body = request.body ) } catch (e: Exception) { throw Exception("Request: $request, is incorrect", e) @@ -155,7 +155,7 @@ private class MockDispatcher : Dispatcher() { } throw MultipleFailuresError( "Request: ${mockRequest.method} ${mockRequest.url}, " + if (assertionErrors.isEmpty()) "there are no mocks" else "no mock is matching the request", - assertionErrors, + assertionErrors ) } } @@ -176,7 +176,7 @@ class MultipleFailuresError(val heading: String, val failures: List) 0 -> "no failures" 1 -> "failure" else -> "failures" - }, + } ) append(")") append("\n") diff --git a/app-shared-tests/src/main/java/com/appunite/loudius/util/Register.kt b/app-shared-tests/src/main/java/com/appunite/loudius/util/Register.kt index 8979585c0..3921311f6 100644 --- a/app-shared-tests/src/main/java/com/appunite/loudius/util/Register.kt +++ b/app-shared-tests/src/main/java/com/appunite/loudius/util/Register.kt @@ -38,7 +38,7 @@ object Register { "token_type": "bearer", "scope": "repo" } - """.trimIndent(), + """.trimIndent() ) } } @@ -92,7 +92,7 @@ object Register { "issue_url": "https://api.github.com/repos/owner/repo/issues/1", "author_association": "COLLABORATOR" } - """.trimIndent(), + """.trimIndent() ) } } @@ -130,7 +130,7 @@ object Register { ], "teams": [] } - """, + """ ) } } @@ -226,7 +226,7 @@ object Register { } ] } - """, + """ ) } } diff --git a/app-shared-tests/src/test/java/com/appunite/loudius/util/KeyGroupingKtTest.kt b/app-shared-tests/src/test/java/com/appunite/loudius/util/KeyGroupingKtTest.kt index 3019f8c23..91c4d39ce 100644 --- a/app-shared-tests/src/test/java/com/appunite/loudius/util/KeyGroupingKtTest.kt +++ b/app-shared-tests/src/test/java/com/appunite/loudius/util/KeyGroupingKtTest.kt @@ -37,12 +37,12 @@ class KeyGroupingKtTest { listOf( mockKeyEvent(1), mockKeyEvent(2), - mockKeyEvent(3), - ), + mockKeyEvent(3) + ) ) expectThat(grouped) .containsExactly( - KeyTypeEvent(listOf(1, 2, 3), 0), + KeyTypeEvent(listOf(1, 2, 3), 0) ) } @@ -53,12 +53,12 @@ class KeyGroupingKtTest { mockKeyEvent(1, action = KeyEvent.ACTION_DOWN), mockKeyEvent(1, action = KeyEvent.ACTION_UP), mockKeyEvent(2, action = KeyEvent.ACTION_DOWN), - mockKeyEvent(2, action = KeyEvent.ACTION_UP), - ), + mockKeyEvent(2, action = KeyEvent.ACTION_UP) + ) ) expectThat(grouped) .containsExactly( - KeyTypeEvent(listOf(1, 2), 0), + KeyTypeEvent(listOf(1, 2), 0) ) } @@ -68,14 +68,14 @@ class KeyGroupingKtTest { listOf( mockKeyEvent(1, metaState = 1), mockKeyEvent(2, metaState = 2), - mockKeyEvent(3, metaState = 3), - ), + mockKeyEvent(3, metaState = 3) + ) ) expectThat(grouped) .containsExactly( KeyTypeEvent(listOf(1), 1), KeyTypeEvent(listOf(2), 2), - KeyTypeEvent(listOf(3), 3), + KeyTypeEvent(listOf(3), 3) ) } @@ -87,21 +87,21 @@ class KeyGroupingKtTest { mockKeyEvent(2, metaState = 1), mockKeyEvent(3, metaState = 2), mockKeyEvent(4, metaState = 2), - mockKeyEvent(5, metaState = 1), - ), + mockKeyEvent(5, metaState = 1) + ) ) expectThat(grouped) .containsExactly( KeyTypeEvent(listOf(1, 2), 1), KeyTypeEvent(listOf(3, 4), 2), - KeyTypeEvent(listOf(5), 1), + KeyTypeEvent(listOf(5), 1) ) } private fun mockKeyEvent( keyCode: Int, metaState: Int = 0, - action: Int = KeyEvent.ACTION_UP, + action: Int = KeyEvent.ACTION_UP ): KeyEvent = mockk { every { getKeyCode() } returns keyCode every { getAction() } returns action diff --git a/app-shared-tests/src/test/java/com/appunite/loudius/util/MockWebServerRuleTest.kt b/app-shared-tests/src/test/java/com/appunite/loudius/util/MockWebServerRuleTest.kt index 03b499d6b..2fa857779 100644 --- a/app-shared-tests/src/test/java/com/appunite/loudius/util/MockWebServerRuleTest.kt +++ b/app-shared-tests/src/test/java/com/appunite/loudius/util/MockWebServerRuleTest.kt @@ -114,7 +114,7 @@ class MockWebServerRuleTest { .contains("An test exception occurred, but we also found some not mocked requests") expectThat(it).isA().get(MultipleFailuresError::failures) .first().isA() - }, + } ) executeRequest("https://example.com/not_mocked") @@ -139,7 +139,7 @@ class MockWebServerRuleTest { .contains("Request: GET https://example.com/not_mocked, there are no mocks") get(MultipleFailuresError::failures).isEmpty() } - }, + } ) executeRequest("https://example.com/not_mocked") @@ -177,7 +177,7 @@ class MockWebServerRuleTest { message.isNotNull().contains("found \"/not_mocked\"") } } - }, + } ) executeRequest("https://example.com/not_mocked") @@ -233,7 +233,7 @@ class MockWebServerRuleTest { val slot = executeRequestAndGetMockedArgumentRequest { it.method( "POST", - "Request body".toRequestBody(), + "Request body".toRequestBody() ) } @@ -248,7 +248,7 @@ class MockWebServerRuleTest { expectedException.expect( matcher { expectThat(it).isA() - }, + } ) throw CustomException @@ -256,21 +256,21 @@ class MockWebServerRuleTest { private fun executeRequest( url: String, - builder: (okhttp3.Request.Builder) -> okhttp3.Request.Builder = { it }, + builder: (okhttp3.Request.Builder) -> okhttp3.Request.Builder = { it } ): Response { val client = OkHttpClient.Builder() .addInterceptor(TestInterceptor) .build() val request = builder( okhttp3.Request.Builder() - .url(url), + .url(url) ) .build() return client.newCall(request).execute() } private fun executeRequestAndGetMockedArgumentRequest( - requestBuilder: (okhttp3.Request.Builder) -> okhttp3.Request.Builder = { it }, + requestBuilder: (okhttp3.Request.Builder) -> okhttp3.Request.Builder = { it } ): CapturingSlot { val slot = slot() val mock = mockk { diff --git a/app/src/androidTest/java/com/appunite/loudius/End2EndWalkThroughAppTest.kt b/app/src/androidTest/java/com/appunite/loudius/End2EndWalkThroughAppTest.kt index 1406c9b19..7ee1afb4f 100644 --- a/app/src/androidTest/java/com/appunite/loudius/End2EndWalkThroughAppTest.kt +++ b/app/src/androidTest/java/com/appunite/loudius/End2EndWalkThroughAppTest.kt @@ -59,8 +59,8 @@ class End2EndWalkThroughAppTest : UniversalWalkThroughAppTest() { automatorTestRule.device.ensure( hasAnyOfObjects( By.text("Accept & continue"), - By.text("Username or email address"), - ), + By.text("Username or email address") + ) ) } @@ -102,7 +102,7 @@ class End2EndWalkThroughAppTest : UniversalWalkThroughAppTest() { description("Wait for return to the app") { automatorTestRule.device.waitAndFind( - By.pkg(InstrumentationRegistry.getInstrumentation().targetContext.packageName), + By.pkg(InstrumentationRegistry.getInstrumentation().targetContext.packageName) ) } } diff --git a/app/src/androidTest/java/com/appunite/loudius/util/AutomatorTestRule.kt b/app/src/androidTest/java/com/appunite/loudius/util/AutomatorTestRule.kt index b97a03f4c..cdd4ac5ad 100644 --- a/app/src/androidTest/java/com/appunite/loudius/util/AutomatorTestRule.kt +++ b/app/src/androidTest/java/com/appunite/loudius/util/AutomatorTestRule.kt @@ -55,7 +55,7 @@ fun UiDevice.type(text: String) { .forEach { pressKeyCodes( it.keyCodes.toIntArray(), - it.metaState, + it.metaState ) } waitForIdle() @@ -73,7 +73,7 @@ fun UiDevice.type(text: String) { * ``` */ fun UiDevice.waitAndFind( - selector: BySelector, + selector: BySelector ): UiObject2 { ensure(Until.hasObject(selector)) @@ -93,7 +93,7 @@ fun UiDevice.waitAndFind( */ fun UiDevice.ensure( condition: Condition, - timeout: Long = 30_000L, + timeout: Long = 30_000L ) { val result = wait(condition, timeout) ?: throw AssertionError("Error in condition") if (!result) { diff --git a/app/src/main/java/com/appunite/loudius/MainActivity.kt b/app/src/main/java/com/appunite/loudius/MainActivity.kt index 72b7abed2..3795ae051 100644 --- a/app/src/main/java/com/appunite/loudius/MainActivity.kt +++ b/app/src/main/java/com/appunite/loudius/MainActivity.kt @@ -50,7 +50,7 @@ class MainActivity : ComponentActivity() { // A surface container using the 'background' color from the theme Surface( modifier = Modifier.fillMaxSize(), - color = MaterialTheme.colorScheme.background, + color = MaterialTheme.colorScheme.background ) { val navController = rememberNavController() @@ -60,14 +60,14 @@ class MainActivity : ComponentActivity() { NavHost( navController = navController, - startDestination = Screen.Login.route, + startDestination = Screen.Login.route ) { composable(route = Screen.Login.route) { LoginScreen() } composable( route = Screen.Authenticating.route, - deepLinks = Screen.Authenticating.deepLinks, + deepLinks = Screen.Authenticating.deepLinks ) { AuthenticatingScreen( onNavigateToPullRequest = { @@ -79,7 +79,7 @@ class MainActivity : ComponentActivity() { navController.navigate(Screen.Login.route) { popUpTo(Screen.Login.route) { inclusive = true } } - }, + } ) } composable(route = Screen.PullRequests.route) { @@ -88,14 +88,14 @@ class MainActivity : ComponentActivity() { owner = owner, repo = repo, pullRequestNumber = pullRequestNumber, - submissionDate = submissionTime, + submissionDate = submissionTime ) navController.navigate(route) } } composable( route = Screen.Reviewers.route, - arguments = Screen.Reviewers.arguments, + arguments = Screen.Reviewers.arguments ) { ReviewersScreen { navController.popBackStack() } } @@ -119,7 +119,7 @@ class MainActivity : ComponentActivity() { Toast.makeText( this@MainActivity, getString(R.string.common_user_unauthorized_error_message), - Toast.LENGTH_LONG, + Toast.LENGTH_LONG ).show() } } diff --git a/app/src/main/java/com/appunite/loudius/common/Screen.kt b/app/src/main/java/com/appunite/loudius/common/Screen.kt index f29b7d1cf..375a34a94 100644 --- a/app/src/main/java/com/appunite/loudius/common/Screen.kt +++ b/app/src/main/java/com/appunite/loudius/common/Screen.kt @@ -42,7 +42,7 @@ sealed class Screen(val route: String) { get() = listOf( navDeepLink { uriPattern = Constants.REDIRECT_URL - }, + } ) } @@ -61,7 +61,7 @@ sealed class Screen(val route: String) { navArgument(pullRequestNumberArg) { type = NavType.StringType }, navArgument(ownerArg) { type = NavType.StringType }, navArgument(repoArg) { type = NavType.StringType }, - navArgument(submissionDateArg) { type = NavType.StringType }, + navArgument(submissionDateArg) { type = NavType.StringType } ) } @@ -69,7 +69,7 @@ sealed class Screen(val route: String) { owner: String, repo: String, pullRequestNumber: String, - submissionDate: String, + submissionDate: String ): String = "reviewers_screen/$pullRequestNumber/$owner/$repo/$submissionDate" fun getInitialValues(savedStateHandle: SavedStateHandle) = ReviewersInitialValues( @@ -77,15 +77,15 @@ sealed class Screen(val route: String) { repo = checkNotNull(savedStateHandle[repoArg]), pullRequestNumber = checkNotNull(savedStateHandle[pullRequestNumberArg]), submissionTime = checkNotNull( - LocalDateTime.parse(savedStateHandle[submissionDateArg]), - ), + LocalDateTime.parse(savedStateHandle[submissionDateArg]) + ) ) data class ReviewersInitialValues( val owner: String, val repo: String, val pullRequestNumber: String, - val submissionTime: LocalDateTime, + val submissionTime: LocalDateTime ) } } diff --git a/app/src/main/java/com/appunite/loudius/di/DataSourceModule.kt b/app/src/main/java/com/appunite/loudius/di/DataSourceModule.kt index 55e4f192d..4bded668f 100644 --- a/app/src/main/java/com/appunite/loudius/di/DataSourceModule.kt +++ b/app/src/main/java/com/appunite/loudius/di/DataSourceModule.kt @@ -42,13 +42,13 @@ object DataSourceModule { @Provides @Singleton fun providePullRequestNetworkDataSource( - service: PullRequestsService, + service: PullRequestsService ): PullRequestDataSource = PullRequestsDataSourceImpl(service) @Provides @Singleton fun provideUserDataSource( - userService: UserService, + userService: UserService ): UserDataSource = UserDataSourceImpl(userService) @Singleton @@ -59,6 +59,6 @@ object DataSourceModule { @Singleton @Provides fun provideAuthDataSource( - service: AuthService, + service: AuthService ): AuthDataSource = AuthDataSourceImpl(service) } diff --git a/app/src/main/java/com/appunite/loudius/di/NetworkModule.kt b/app/src/main/java/com/appunite/loudius/di/NetworkModule.kt index 2f94519ea..6c6775612 100644 --- a/app/src/main/java/com/appunite/loudius/di/NetworkModule.kt +++ b/app/src/main/java/com/appunite/loudius/di/NetworkModule.kt @@ -61,7 +61,7 @@ object NetworkModule { fun provideAuthHttpClient( gson: Gson, @AuthAPI baseUrl: String, - loggingInterceptor: HttpLoggingInterceptor, + loggingInterceptor: HttpLoggingInterceptor ): HttpClient = HttpClient(OkHttp) { expectSuccess = true engine { @@ -84,7 +84,7 @@ object NetworkModule { @BaseAPI baseUrl: String, loggingInterceptor: HttpLoggingInterceptor, authInterceptor: AuthInterceptor, - authFailureHandler: AuthFailureHandler, + authFailureHandler: AuthFailureHandler ): HttpClient = HttpClient(OkHttp) { expectSuccess = true engine { diff --git a/app/src/main/java/com/appunite/loudius/di/RepositoryModule.kt b/app/src/main/java/com/appunite/loudius/di/RepositoryModule.kt index 47b489fd5..47cc7169c 100644 --- a/app/src/main/java/com/appunite/loudius/di/RepositoryModule.kt +++ b/app/src/main/java/com/appunite/loudius/di/RepositoryModule.kt @@ -38,13 +38,13 @@ object RepositoryModule { @Singleton fun providePullRequestRepository( dataSource: PullRequestDataSource, - userDataSource: UserDataSource, + userDataSource: UserDataSource ): PullRequestRepository = PullRequestRepositoryImpl(dataSource, userDataSource) @Singleton @Provides fun provideAuthRepository( authDataSource: AuthDataSource, - userLocalDataSource: UserLocalDataSource, + userLocalDataSource: UserLocalDataSource ): AuthRepository = AuthRepositoryImpl(authDataSource, userLocalDataSource) } diff --git a/app/src/main/java/com/appunite/loudius/domain/repository/AuthRepository.kt b/app/src/main/java/com/appunite/loudius/domain/repository/AuthRepository.kt index afe36052e..6724105c2 100644 --- a/app/src/main/java/com/appunite/loudius/domain/repository/AuthRepository.kt +++ b/app/src/main/java/com/appunite/loudius/domain/repository/AuthRepository.kt @@ -27,7 +27,7 @@ interface AuthRepository { suspend fun fetchAccessToken( clientId: String, clientSecret: String, - code: String, + code: String ): Result fun getAccessToken(): AccessToken @@ -36,13 +36,13 @@ interface AuthRepository { @Singleton class AuthRepositoryImpl @Inject constructor( private val authDataSource: AuthDataSource, - private val userLocalDataSource: UserLocalDataSource, + private val userLocalDataSource: UserLocalDataSource ) : AuthRepository { override suspend fun fetchAccessToken( clientId: String, clientSecret: String, - code: String, + code: String ): Result { val result = authDataSource.getAccessToken(clientId, clientSecret, code) result.onSuccess { diff --git a/app/src/main/java/com/appunite/loudius/domain/repository/PullRequestRepository.kt b/app/src/main/java/com/appunite/loudius/domain/repository/PullRequestRepository.kt index a51d3611f..9e92b28d1 100644 --- a/app/src/main/java/com/appunite/loudius/domain/repository/PullRequestRepository.kt +++ b/app/src/main/java/com/appunite/loudius/domain/repository/PullRequestRepository.kt @@ -31,13 +31,13 @@ interface PullRequestRepository { suspend fun getReviews( owner: String, repo: String, - pullRequestNumber: String, + pullRequestNumber: String ): Result> suspend fun getRequestedReviewers( owner: String, repo: String, - pullRequestNumber: String, + pullRequestNumber: String ): Result suspend fun getCurrentUserPullRequests(): Result @@ -46,13 +46,13 @@ interface PullRequestRepository { owner: String, repo: String, pullRequestNumber: String, - message: String, + message: String ): Result } class PullRequestRepositoryImpl @Inject constructor( private val pullRequestsDataSource: PullRequestDataSource, - private val userDataSource: UserDataSource, + private val userDataSource: UserDataSource ) : PullRequestRepository { override suspend fun getCurrentUserPullRequests(): Result { val currentUser = userDataSource.getUser() @@ -62,7 +62,7 @@ class PullRequestRepositoryImpl @Inject constructor( override suspend fun getReviews( owner: String, repo: String, - pullRequestNumber: String, + pullRequestNumber: String ): Result> = coroutineScope { val currentUserDeferred = async { userDataSource.getUser() } val reviewsDeferred = async { @@ -77,13 +77,13 @@ class PullRequestRepositoryImpl @Inject constructor( } private fun List.excludeUserReviews( - user: User, + user: User ) = filter { review -> review.user.id != user.id } override suspend fun getRequestedReviewers( owner: String, repo: String, - pullRequestNumber: String, + pullRequestNumber: String ): Result = pullRequestsDataSource.getReviewers(owner, repo, pullRequestNumber) @@ -91,7 +91,7 @@ class PullRequestRepositoryImpl @Inject constructor( owner: String, repo: String, pullRequestNumber: String, - message: String, + message: String ): Result = pullRequestsDataSource.notify(owner, repo, pullRequestNumber, message) } diff --git a/app/src/main/java/com/appunite/loudius/network/datasource/AuthDataSource.kt b/app/src/main/java/com/appunite/loudius/network/datasource/AuthDataSource.kt index c3d8f6430..15f97c03c 100644 --- a/app/src/main/java/com/appunite/loudius/network/datasource/AuthDataSource.kt +++ b/app/src/main/java/com/appunite/loudius/network/datasource/AuthDataSource.kt @@ -29,13 +29,13 @@ interface AuthDataSource { suspend fun getAccessToken( clientId: String, clientSecret: String, - code: String, + code: String ): Result } @Singleton class AuthDataSourceImpl @Inject constructor( - private val authService: AuthService, + private val authService: AuthService ) : AuthDataSource { companion object { @@ -45,7 +45,7 @@ class AuthDataSourceImpl @Inject constructor( override suspend fun getAccessToken( clientId: String, clientSecret: String, - code: String, + code: String ): Result = authService.getAccessToken(clientId, clientSecret, code).flatMap { response -> if (response.accessToken != null) { diff --git a/app/src/main/java/com/appunite/loudius/network/datasource/PullRequestsDataSourceImpl.kt b/app/src/main/java/com/appunite/loudius/network/datasource/PullRequestsDataSourceImpl.kt index de744af47..18a8d07c9 100644 --- a/app/src/main/java/com/appunite/loudius/network/datasource/PullRequestsDataSourceImpl.kt +++ b/app/src/main/java/com/appunite/loudius/network/datasource/PullRequestsDataSourceImpl.kt @@ -28,13 +28,13 @@ interface PullRequestDataSource { suspend fun getReviewers( owner: String, repository: String, - pullRequestNumber: String, + pullRequestNumber: String ): Result suspend fun getReviews( owner: String, repository: String, - pullRequestNumber: String, + pullRequestNumber: String ): Result> suspend fun getPullRequestsForUser(author: String): Result @@ -43,13 +43,13 @@ interface PullRequestDataSource { owner: String, repository: String, pullRequestNumber: String, - message: String, + message: String ): Result } @Singleton class PullRequestsDataSourceImpl @Inject constructor( - private val service: PullRequestsService, + private val service: PullRequestsService ) : PullRequestDataSource { override suspend fun getPullRequestsForUser(author: String): Result = @@ -58,21 +58,21 @@ class PullRequestsDataSourceImpl @Inject constructor( override suspend fun getReviewers( owner: String, repository: String, - pullRequestNumber: String, + pullRequestNumber: String ): Result = service.getReviewers(owner, repository, pullRequestNumber) override suspend fun getReviews( owner: String, repository: String, - pullRequestNumber: String, + pullRequestNumber: String ): Result> = service.getReviews(owner, repository, pullRequestNumber) override suspend fun notify( owner: String, repository: String, pullRequestNumber: String, - message: String, + message: String ): Result = service.notify(owner, repository, pullRequestNumber, NotifyRequestBody(message)) } diff --git a/app/src/main/java/com/appunite/loudius/network/datasource/UserDataSource.kt b/app/src/main/java/com/appunite/loudius/network/datasource/UserDataSource.kt index 5c947aa92..a3679bdba 100644 --- a/app/src/main/java/com/appunite/loudius/network/datasource/UserDataSource.kt +++ b/app/src/main/java/com/appunite/loudius/network/datasource/UserDataSource.kt @@ -27,7 +27,7 @@ interface UserDataSource { @Singleton class UserDataSourceImpl @Inject constructor( - private val userService: UserService, + private val userService: UserService ) : UserDataSource { override suspend fun getUser(): Result = userService.getUser() } diff --git a/app/src/main/java/com/appunite/loudius/network/intercept/AuthFailureInterceptor.kt b/app/src/main/java/com/appunite/loudius/network/intercept/AuthFailureInterceptor.kt index 4269a6b28..0cbda13bd 100644 --- a/app/src/main/java/com/appunite/loudius/network/intercept/AuthFailureInterceptor.kt +++ b/app/src/main/java/com/appunite/loudius/network/intercept/AuthFailureInterceptor.kt @@ -22,7 +22,7 @@ import okhttp3.Response import javax.inject.Inject class AuthFailureInterceptor @Inject constructor( - private val authFailureHandler: AuthFailureHandler, + private val authFailureHandler: AuthFailureHandler ) : Interceptor { override fun intercept(chain: Interceptor.Chain): Response { val request = chain.request() diff --git a/app/src/main/java/com/appunite/loudius/network/intercept/AuthInterceptor.kt b/app/src/main/java/com/appunite/loudius/network/intercept/AuthInterceptor.kt index b2aa76a1e..38f4dbe6d 100644 --- a/app/src/main/java/com/appunite/loudius/network/intercept/AuthInterceptor.kt +++ b/app/src/main/java/com/appunite/loudius/network/intercept/AuthInterceptor.kt @@ -22,7 +22,7 @@ import okhttp3.Response import javax.inject.Inject class AuthInterceptor @Inject constructor( - private val authRepository: AuthRepository, + private val authRepository: AuthRepository ) : Interceptor { override fun intercept(chain: Interceptor.Chain): Response { val authenticatedRequest = chain.request().newBuilder() diff --git a/app/src/main/java/com/appunite/loudius/network/model/AccessTokenResponse.kt b/app/src/main/java/com/appunite/loudius/network/model/AccessTokenResponse.kt index cb55b63a9..60adbb222 100644 --- a/app/src/main/java/com/appunite/loudius/network/model/AccessTokenResponse.kt +++ b/app/src/main/java/com/appunite/loudius/network/model/AccessTokenResponse.kt @@ -20,5 +20,5 @@ typealias AccessToken = String data class AccessTokenResponse( val accessToken: AccessToken?, - val error: String? = null, + val error: String? = null ) diff --git a/app/src/main/java/com/appunite/loudius/network/model/PullRequest.kt b/app/src/main/java/com/appunite/loudius/network/model/PullRequest.kt index 0be70ac02..0a57a8f34 100644 --- a/app/src/main/java/com/appunite/loudius/network/model/PullRequest.kt +++ b/app/src/main/java/com/appunite/loudius/network/model/PullRequest.kt @@ -25,7 +25,7 @@ data class PullRequest( val number: Int, val repositoryUrl: String, val title: String, - val createdAt: LocalDateTime, + val createdAt: LocalDateTime ) { val fullRepositoryName: String get() = repositoryUrl.removePrefix(REPOSITORY_PATH) diff --git a/app/src/main/java/com/appunite/loudius/network/model/PullRequestsResponse.kt b/app/src/main/java/com/appunite/loudius/network/model/PullRequestsResponse.kt index 1670a8a72..e86434fd6 100644 --- a/app/src/main/java/com/appunite/loudius/network/model/PullRequestsResponse.kt +++ b/app/src/main/java/com/appunite/loudius/network/model/PullRequestsResponse.kt @@ -19,5 +19,5 @@ package com.appunite.loudius.network.model data class PullRequestsResponse( val incompleteResults: Boolean, val items: List, - val totalCount: Int, + val totalCount: Int ) diff --git a/app/src/main/java/com/appunite/loudius/network/model/RequestedReviewer.kt b/app/src/main/java/com/appunite/loudius/network/model/RequestedReviewer.kt index b05c0985e..05ff77824 100644 --- a/app/src/main/java/com/appunite/loudius/network/model/RequestedReviewer.kt +++ b/app/src/main/java/com/appunite/loudius/network/model/RequestedReviewer.kt @@ -18,5 +18,5 @@ package com.appunite.loudius.network.model data class RequestedReviewer( val id: Int, - val login: String, + val login: String ) diff --git a/app/src/main/java/com/appunite/loudius/network/model/RequestedReviewersResponse.kt b/app/src/main/java/com/appunite/loudius/network/model/RequestedReviewersResponse.kt index f88a6da98..7274fa050 100644 --- a/app/src/main/java/com/appunite/loudius/network/model/RequestedReviewersResponse.kt +++ b/app/src/main/java/com/appunite/loudius/network/model/RequestedReviewersResponse.kt @@ -17,5 +17,5 @@ package com.appunite.loudius.network.model data class RequestedReviewersResponse( - val users: List, + val users: List ) diff --git a/app/src/main/java/com/appunite/loudius/network/model/Review.kt b/app/src/main/java/com/appunite/loudius/network/model/Review.kt index 17b2c5ec1..348c3e830 100644 --- a/app/src/main/java/com/appunite/loudius/network/model/Review.kt +++ b/app/src/main/java/com/appunite/loudius/network/model/Review.kt @@ -22,5 +22,5 @@ data class Review( val id: String, val user: User, val state: ReviewState, - val submittedAt: LocalDateTime, + val submittedAt: LocalDateTime ) diff --git a/app/src/main/java/com/appunite/loudius/network/model/ReviewState.kt b/app/src/main/java/com/appunite/loudius/network/model/ReviewState.kt index c194401e1..c0e4f4f56 100644 --- a/app/src/main/java/com/appunite/loudius/network/model/ReviewState.kt +++ b/app/src/main/java/com/appunite/loudius/network/model/ReviewState.kt @@ -19,5 +19,5 @@ package com.appunite.loudius.network.model enum class ReviewState { APPROVED, CHANGES_REQUESTED, - COMMENTED, + COMMENTED } diff --git a/app/src/main/java/com/appunite/loudius/network/model/error/DefaultErrorResponse.kt b/app/src/main/java/com/appunite/loudius/network/model/error/DefaultErrorResponse.kt index a7019d375..b9103af3d 100644 --- a/app/src/main/java/com/appunite/loudius/network/model/error/DefaultErrorResponse.kt +++ b/app/src/main/java/com/appunite/loudius/network/model/error/DefaultErrorResponse.kt @@ -18,5 +18,5 @@ package com.appunite.loudius.network.model.error data class DefaultErrorResponse( val message: String?, - val documentationUrl: String?, + val documentationUrl: String? ) diff --git a/app/src/main/java/com/appunite/loudius/network/model/request/NotifyRequestBody.kt b/app/src/main/java/com/appunite/loudius/network/model/request/NotifyRequestBody.kt index d7544f817..83c96539a 100644 --- a/app/src/main/java/com/appunite/loudius/network/model/request/NotifyRequestBody.kt +++ b/app/src/main/java/com/appunite/loudius/network/model/request/NotifyRequestBody.kt @@ -17,5 +17,5 @@ package com.appunite.loudius.network.model.request data class NotifyRequestBody( - val body: String, + val body: String ) diff --git a/app/src/main/java/com/appunite/loudius/network/services/AuthService.kt b/app/src/main/java/com/appunite/loudius/network/services/AuthService.kt index 4d26a091e..fa6540a1c 100644 --- a/app/src/main/java/com/appunite/loudius/network/services/AuthService.kt +++ b/app/src/main/java/com/appunite/loudius/network/services/AuthService.kt @@ -31,7 +31,7 @@ interface AuthService { suspend fun getAccessToken( clientId: String, clientSecret: String, - code: String, + code: String ): Result } @@ -40,7 +40,7 @@ class AuthServiceImpl @Inject constructor(private val client: HttpClient) : Auth override suspend fun getAccessToken( clientId: String, clientSecret: String, - code: String, + code: String ): Result = runCatching { client.submitForm( url = "login/oauth/access_token", @@ -48,7 +48,7 @@ class AuthServiceImpl @Inject constructor(private val client: HttpClient) : Auth append("client_id", clientId) append("client_secret", clientSecret) append("code", code) - }, + } ) { headers { append(HttpHeaders.Accept, ContentType.Application.Json.toString()) diff --git a/app/src/main/java/com/appunite/loudius/network/services/PullRequestsService.kt b/app/src/main/java/com/appunite/loudius/network/services/PullRequestsService.kt index 9d74b98e5..ad8a2e50a 100644 --- a/app/src/main/java/com/appunite/loudius/network/services/PullRequestsService.kt +++ b/app/src/main/java/com/appunite/loudius/network/services/PullRequestsService.kt @@ -36,26 +36,26 @@ interface PullRequestsService { suspend fun getPullRequestsForUser( query: String, page: Int = 0, - perPage: Int = 100, + perPage: Int = 100 ): Result suspend fun getReviewers( owner: String, repo: String, - pullRequestNumber: String, + pullRequestNumber: String ): Result suspend fun getReviews( owner: String, repo: String, - pullRequestNumber: String, + pullRequestNumber: String ): Result> suspend fun notify( owner: String, repo: String, issueNumber: String, - body: NotifyRequestBody, + body: NotifyRequestBody ): Result } @@ -64,7 +64,7 @@ class PullRequestsServiceImpl @Inject constructor(private val client: HttpClient override suspend fun getPullRequestsForUser( query: String, page: Int, - perPage: Int, + perPage: Int ): Result = runCatching { client.get("/search/issues") { parameter("q".encodeURLParameter(), query) @@ -76,7 +76,7 @@ class PullRequestsServiceImpl @Inject constructor(private val client: HttpClient override suspend fun getReviewers( owner: String, repo: String, - pullRequestNumber: String, + pullRequestNumber: String ): Result = runCatching { client.get("/repos/$owner/$repo/pulls/$pullRequestNumber/requested_reviewers").body() } @@ -84,7 +84,7 @@ class PullRequestsServiceImpl @Inject constructor(private val client: HttpClient override suspend fun getReviews( owner: String, repo: String, - pullRequestNumber: String, + pullRequestNumber: String ): Result> = runCatching { client.get("/repos/$owner/$repo/pulls/$pullRequestNumber/reviews").body() } @@ -93,7 +93,7 @@ class PullRequestsServiceImpl @Inject constructor(private val client: HttpClient owner: String, repo: String, issueNumber: String, - body: NotifyRequestBody, + body: NotifyRequestBody ): Result = runCatching { client.post("/repos/$owner/$repo/issues/$issueNumber/comments") { setBody(body) diff --git a/app/src/main/java/com/appunite/loudius/network/utils/AuthFailureHandler.kt b/app/src/main/java/com/appunite/loudius/network/utils/AuthFailureHandler.kt index dc0be7fc7..eb8f9be51 100644 --- a/app/src/main/java/com/appunite/loudius/network/utils/AuthFailureHandler.kt +++ b/app/src/main/java/com/appunite/loudius/network/utils/AuthFailureHandler.kt @@ -26,7 +26,7 @@ import javax.inject.Singleton @Singleton class AuthFailureHandler @Inject constructor( - private val dispatcher: CoroutineDispatcher, + private val dispatcher: CoroutineDispatcher ) { private val _authFailureFlow = MutableSharedFlow() val authFailureFlow: SharedFlow = _authFailureFlow diff --git a/app/src/main/java/com/appunite/loudius/network/utils/LocalDateTimeDeserializer.kt b/app/src/main/java/com/appunite/loudius/network/utils/LocalDateTimeDeserializer.kt index d5fcc5383..ed22b30f7 100644 --- a/app/src/main/java/com/appunite/loudius/network/utils/LocalDateTimeDeserializer.kt +++ b/app/src/main/java/com/appunite/loudius/network/utils/LocalDateTimeDeserializer.kt @@ -30,7 +30,7 @@ class LocalDateTimeDeserializer : JsonDeserializer { override fun deserialize( json: JsonElement?, typeOfT: Type, - context: JsonDeserializationContext, + context: JsonDeserializationContext ): LocalDateTime { try { json ?: throw JsonParseException("Cannot deserialize null value") diff --git a/app/src/main/java/com/appunite/loudius/ui/MainViewModel.kt b/app/src/main/java/com/appunite/loudius/ui/MainViewModel.kt index 38f431554..4d06c9fa5 100644 --- a/app/src/main/java/com/appunite/loudius/ui/MainViewModel.kt +++ b/app/src/main/java/com/appunite/loudius/ui/MainViewModel.kt @@ -27,7 +27,7 @@ import kotlinx.coroutines.launch import javax.inject.Inject data class MainState( - val authFailureEvent: Unit? = null, + val authFailureEvent: Unit? = null ) @HiltViewModel diff --git a/app/src/main/java/com/appunite/loudius/ui/authenticating/AuthenticatingScreen.kt b/app/src/main/java/com/appunite/loudius/ui/authenticating/AuthenticatingScreen.kt index c0d30d3d1..1e8f9090f 100644 --- a/app/src/main/java/com/appunite/loudius/ui/authenticating/AuthenticatingScreen.kt +++ b/app/src/main/java/com/appunite/loudius/ui/authenticating/AuthenticatingScreen.kt @@ -31,7 +31,7 @@ import com.appunite.loudius.components.theme.LoudiusTheme fun AuthenticatingScreen( viewModel: AuthenticatingViewModel = hiltViewModel(), onNavigateToPullRequest: () -> Unit, - onNavigateToLogin: () -> Unit, + onNavigateToLogin: () -> Unit ) { val state = viewModel.state LaunchedEffect(key1 = state.navigateTo) { @@ -55,7 +55,7 @@ fun AuthenticatingScreen( @Composable fun AuthenticatingScreenStateless( errorScreenType: LoadingErrorType?, - onTryAgainClick: () -> Unit, + onTryAgainClick: () -> Unit ) { when (errorScreenType) { LoadingErrorType.GENERIC_ERROR -> ShowLoudiusGenericErrorScreen(onTryAgainClick) @@ -66,18 +66,18 @@ fun AuthenticatingScreenStateless( @Composable private fun ShowLoudiusLoginErrorScreen( - navigateToLogin: () -> Unit, + navigateToLogin: () -> Unit ) { LoudiusFullScreenError( errorText = stringResource(id = R.string.authenticating_screen_error_screen_error_message), buttonText = stringResource(id = R.string.authenticating_screen_error_screen_login_button), - onButtonClick = navigateToLogin, + onButtonClick = navigateToLogin ) } @Composable private fun ShowLoudiusGenericErrorScreen( - onTryAgainClick: () -> Unit, + onTryAgainClick: () -> Unit ) { LoudiusFullScreenError(onButtonClick = onTryAgainClick) } diff --git a/app/src/main/java/com/appunite/loudius/ui/authenticating/AuthenticatingViewModel.kt b/app/src/main/java/com/appunite/loudius/ui/authenticating/AuthenticatingViewModel.kt index 0134c409e..fe12da3a7 100644 --- a/app/src/main/java/com/appunite/loudius/ui/authenticating/AuthenticatingViewModel.kt +++ b/app/src/main/java/com/appunite/loudius/ui/authenticating/AuthenticatingViewModel.kt @@ -40,12 +40,12 @@ sealed class AuthenticatingAction { enum class LoadingErrorType { LOGIN_ERROR, - GENERIC_ERROR, + GENERIC_ERROR } data class AuthenticatingState( val navigateTo: AuthenticatingScreenNavigation? = null, - val errorScreenType: LoadingErrorType? = null, + val errorScreenType: LoadingErrorType? = null ) sealed class AuthenticatingScreenNavigation { @@ -56,7 +56,7 @@ sealed class AuthenticatingScreenNavigation { @HiltViewModel class AuthenticatingViewModel @Inject constructor( private val authRepository: AuthRepository, - savedStateHandle: SavedStateHandle, + savedStateHandle: SavedStateHandle ) : ViewModel() { private val code = Screen.Authenticating.getCode(savedStateHandle) @@ -92,18 +92,18 @@ class AuthenticatingViewModel @Inject constructor( authRepository.fetchAccessToken( clientId = CLIENT_ID, clientSecret = BuildConfig.LOUDIUS_CLIENT_SECRET, - code = code, + code = code ).onSuccess { state = state.copy( - navigateTo = AuthenticatingScreenNavigation.NavigateToPullRequests, + navigateTo = AuthenticatingScreenNavigation.NavigateToPullRequests ) }.onFailure { state = state.copy(errorScreenType = resolveErrorType(it)) } } }, onFailure = { - state = state.copy(errorScreenType = LoadingErrorType.LOGIN_ERROR) - }) + state = state.copy(errorScreenType = LoadingErrorType.LOGIN_ERROR) + }) } private fun resolveErrorType(it: Throwable) = when (it) { diff --git a/app/src/main/java/com/appunite/loudius/ui/login/GithubHelper.kt b/app/src/main/java/com/appunite/loudius/ui/login/GithubHelper.kt index a5d34d8f3..037acc4ae 100644 --- a/app/src/main/java/com/appunite/loudius/ui/login/GithubHelper.kt +++ b/app/src/main/java/com/appunite/loudius/ui/login/GithubHelper.kt @@ -46,7 +46,7 @@ class GithubHelper(private val context: Context) { Intent("miui.intent.action.APP_PERM_EDITOR") .setClassName( "com.miui.securitycenter", - "com.miui.permcenter.permissions.PermissionsEditorActivity", + "com.miui.permcenter.permissions.PermissionsEditorActivity" ) .putExtra("extra_pkgname", GITHUB_APP_PACKAGE_NAME) } @@ -62,13 +62,13 @@ class GithubHelper(private val context: Context) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) { context.packageManager.getPackageInfo( GITHUB_APP_PACKAGE_NAME, - PackageManager.PackageInfoFlags.of(PackageManager.GET_META_DATA.toLong()), + PackageManager.PackageInfoFlags.of(PackageManager.GET_META_DATA.toLong()) ) } else { @Suppress("DEPRECATION") context.packageManager.getPackageInfo( GITHUB_APP_PACKAGE_NAME, - PackageManager.GET_META_DATA, + PackageManager.GET_META_DATA ) } true diff --git a/app/src/main/java/com/appunite/loudius/ui/login/LoginScreen.kt b/app/src/main/java/com/appunite/loudius/ui/login/LoginScreen.kt index e467f4b07..c1e812ff3 100644 --- a/app/src/main/java/com/appunite/loudius/ui/login/LoginScreen.kt +++ b/app/src/main/java/com/appunite/loudius/ui/login/LoginScreen.kt @@ -56,7 +56,7 @@ import com.appunite.loudius.components.R as componentsR @Composable fun LoginScreen( - viewModel: LoginScreenViewModel = hiltViewModel(), + viewModel: LoginScreenViewModel = hiltViewModel() ) { val context = LocalContext.current val navigateTo = viewModel.state.navigateTo @@ -64,7 +64,7 @@ fun LoginScreen( when (navigateTo) { LoginNavigateTo.OpenGithubAuth -> { context.startActivity( - Intent(Intent.ACTION_VIEW, Uri.parse(AUTHORIZATION_URL)), + Intent(Intent.ACTION_VIEW, Uri.parse(AUTHORIZATION_URL)) ) viewModel.onAction(LoginAction.ClearNavigation) } @@ -83,14 +83,14 @@ fun LoginScreen( } LoginScreenStateless( state = viewModel.state, - onAction = viewModel::onAction, + onAction = viewModel::onAction ) } @Composable fun LoginScreenStateless( state: LoginState, - onAction: (LoginAction) -> Unit, + onAction: (LoginAction) -> Unit ) { if (BuildConfig.DEBUG) { Row(modifier = Modifier.fillMaxWidth(), horizontalArrangement = Arrangement.End) { @@ -100,7 +100,7 @@ fun LoginScreenStateless( Column( modifier = Modifier.fillMaxSize(), verticalArrangement = Arrangement.SpaceEvenly, - horizontalAlignment = Alignment.CenterHorizontally, + horizontalAlignment = Alignment.CenterHorizontally ) { LoginImage() LoudiusOutlinedButton( @@ -115,9 +115,9 @@ fun LoginScreenStateless( icon = { LoudiusOutlinedButtonIcon( contentDescription = stringResource(R.string.login_screen_github_icon_content_description), - painter = painterResource(id = componentsR.drawable.components_ic_github), + painter = painterResource(id = componentsR.drawable.components_ic_github) ) - }, + } ) if (state.showXiaomiPermissionDialog) { XiaomiPermissionDialog(onAction) @@ -130,13 +130,13 @@ private fun BrowseComponentIcon(onClick: (LoginAction) -> Unit) { Image( painter = painterResource(id = R.drawable.ic_components_browser), contentDescription = stringResource( - id = R.string.login_screen_loudius_browser_components_icon_description, + id = R.string.login_screen_loudius_browser_components_icon_description ), modifier = Modifier .clip(CircleShape) .clickable { onClick(LoginAction.ClickBrowseComponents) } .padding(16.dp) - .size(24.dp), + .size(24.dp) ) } @@ -148,7 +148,7 @@ private fun XiaomiPermissionDialog(onAction: (LoginAction) -> Unit) { text = { LoudiusText( style = LoudiusTextStyle.ScreenContent, - text = stringResource(R.string.login_screen_xiaomi_dialog_text), + text = stringResource(R.string.login_screen_xiaomi_dialog_text) ) }, confirmButton = { @@ -160,7 +160,7 @@ private fun XiaomiPermissionDialog(onAction: (LoginAction) -> Unit) { LoudiusOutlinedButton(text = stringResource(R.string.login_screen_xiaomi_dialog_already_granted)) { onAction(LoginAction.XiaomiPermissionDialogAlreadyGrantedPermission) } - }, + } ) } @@ -169,8 +169,8 @@ fun LoginImage() { Image( painter = painterResource(id = R.drawable.loudius_logo), contentDescription = stringResource( - R.string.login_screen_loudius_logo_content_description, - ), + R.string.login_screen_loudius_logo_content_description + ) ) } @@ -181,7 +181,7 @@ fun LoginScreenPreview() { MaterialTheme { LoginScreenStateless( state = LoginState(showXiaomiPermissionDialog = false, navigateTo = null), - onAction = {}, + onAction = {} ) } } @@ -193,7 +193,7 @@ fun LoginScreenPreviewWithDialog() { MaterialTheme { LoginScreenStateless( state = LoginState(showXiaomiPermissionDialog = true, navigateTo = null), - onAction = {}, + onAction = {} ) } } diff --git a/app/src/main/java/com/appunite/loudius/ui/login/LoginScreenViewModel.kt b/app/src/main/java/com/appunite/loudius/ui/login/LoginScreenViewModel.kt index c10428046..f63ec1f9f 100644 --- a/app/src/main/java/com/appunite/loudius/ui/login/LoginScreenViewModel.kt +++ b/app/src/main/java/com/appunite/loudius/ui/login/LoginScreenViewModel.kt @@ -40,12 +40,12 @@ sealed class LoginNavigateTo { data class LoginState( val showXiaomiPermissionDialog: Boolean = false, - val navigateTo: LoginNavigateTo? = null, + val navigateTo: LoginNavigateTo? = null ) @HiltViewModel class LoginScreenViewModel @Inject constructor( - private val githubHelper: GithubHelper, + private val githubHelper: GithubHelper ) : ViewModel() { var state by mutableStateOf(LoginState()) @@ -60,7 +60,7 @@ class LoginScreenViewModel @Inject constructor( LoginAction.ClickLogIn -> { if (githubHelper.shouldAskForXiaomiIntent()) { state = state.copy( - showXiaomiPermissionDialog = true, + showXiaomiPermissionDialog = true ) } else { state = state.copy(navigateTo = LoginNavigateTo.OpenGithubAuth) @@ -78,7 +78,7 @@ class LoginScreenViewModel @Inject constructor( LoginAction.XiaomiPermissionDialogAlreadyGrantedPermission -> { state = state.copy( showXiaomiPermissionDialog = false, - navigateTo = LoginNavigateTo.OpenGithubAuth, + navigateTo = LoginNavigateTo.OpenGithubAuth ) } diff --git a/app/src/main/java/com/appunite/loudius/ui/pullrequests/PullRequestsScreen.kt b/app/src/main/java/com/appunite/loudius/ui/pullrequests/PullRequestsScreen.kt index 4130cb24c..649367cf8 100644 --- a/app/src/main/java/com/appunite/loudius/ui/pullrequests/PullRequestsScreen.kt +++ b/app/src/main/java/com/appunite/loudius/ui/pullrequests/PullRequestsScreen.kt @@ -60,7 +60,7 @@ typealias NavigateToReviewers = (String, String, String, String) -> Unit @Composable fun PullRequestsScreen( viewModel: PullRequestsViewModel = hiltViewModel(), - navigateToReviewers: NavigateToReviewers, + navigateToReviewers: NavigateToReviewers ) { val state = viewModel.state val refreshing = viewModel.isRefreshing @@ -69,7 +69,7 @@ fun PullRequestsScreen( state = state, refreshing = refreshing, onRefresh = viewModel::refreshData, - onAction = viewModel::onAction, + onAction = viewModel::onAction ) LaunchedEffect(state.navigateToReviewers) { navigateToReviewers(state, navigateToReviewers, viewModel) @@ -79,14 +79,14 @@ fun PullRequestsScreen( private fun navigateToReviewers( state: PullRequestState, navigateToReviewers: NavigateToReviewers, - viewModel: PullRequestsViewModel, + viewModel: PullRequestsViewModel ) { state.navigateToReviewers?.let { navigateToReviewers( it.owner, it.repo, it.pullRequestNumber, - it.submissionTime, + it.submissionTime ) viewModel.onAction(PulLRequestsAction.OnNavigateToReviewers) } @@ -97,7 +97,7 @@ private fun PullRequestsScreenStateless( state: PullRequestState, refreshing: Boolean, onRefresh: () -> Unit, - onAction: (PulLRequestsAction) -> Unit, + onAction: (PulLRequestsAction) -> Unit ) { Scaffold( topBar = { @@ -107,12 +107,12 @@ private fun PullRequestsScreenStateless( when (state.data) { is Data.Error -> LoudiusFullScreenError( modifier = Modifier.padding(padding), - onButtonClick = { onAction(PulLRequestsAction.RetryClick) }, + onButtonClick = { onAction(PulLRequestsAction.RetryClick) } ) is Data.Loading -> LoudiusLoadingIndicator(Modifier.padding(padding)) is Data.Success -> PullRequestContent(state.data, refreshing, onRefresh, padding, onAction) } - }, + } ) } @@ -122,7 +122,7 @@ private fun PullRequestContent( refreshing: Boolean, onRefresh: () -> Unit, padding: PaddingValues, - onAction: (PulLRequestsAction) -> Unit, + onAction: (PulLRequestsAction) -> Unit ) { if (state.pullRequests.isEmpty()) { EmptyListPlaceholder(padding) @@ -133,9 +133,9 @@ private fun PullRequestContent( onItemClick = onAction, pullRefreshState = rememberPullRefreshState( refreshing = refreshing, - onRefresh = onRefresh, + onRefresh = onRefresh ), - refreshing = refreshing, + refreshing = refreshing ) } } @@ -146,21 +146,21 @@ private fun PullRequestsList( modifier: Modifier, onItemClick: (PulLRequestsAction) -> Unit, pullRefreshState: PullRefreshState, - refreshing: Boolean, + refreshing: Boolean ) { LoudiusPullToRefreshBox( pullRefreshState = pullRefreshState, refreshing = refreshing, - modifier = modifier, + modifier = modifier ) { LazyColumn( - modifier = Modifier.fillMaxSize(), + modifier = Modifier.fillMaxSize() ) { itemsIndexed(pullRequests) { index, item -> PullRequestItem( index = index, data = item, - onClick = onItemClick, + onClick = onItemClick ) } } @@ -171,7 +171,7 @@ private fun PullRequestsList( private fun PullRequestItem( index: Int, data: PullRequest, - onClick: (PulLRequestsAction) -> Unit, + onClick: (PulLRequestsAction) -> Unit ) { LoudiusListItem( index = index, @@ -182,9 +182,9 @@ private fun PullRequestItem( RepoDetails( modifier = modifier, pullRequestTitle = data.title, - repositoryName = data.fullRepositoryName, + repositoryName = data.fullRepositoryName ) - }, + } ) } @@ -193,7 +193,7 @@ private fun PullRequestIcon(modifier: Modifier) { LoudiusListIcon( modifier = modifier, painter = painterResource(id = R.drawable.ic_pull_request), - contentDescription = stringResource(id = R.string.pull_requests_screen_pull_request_content_description), + contentDescription = stringResource(id = R.string.pull_requests_screen_pull_request_content_description) ) } @@ -202,11 +202,11 @@ private fun RepoDetails(modifier: Modifier, pullRequestTitle: String, repository Column(modifier = modifier) { LoudiusText( text = pullRequestTitle, - style = LoudiusTextStyle.ListItem, + style = LoudiusTextStyle.ListItem ) LoudiusText( text = repositoryName, - style = LoudiusTextStyle.ListCaption, + style = LoudiusTextStyle.ListCaption ) } } @@ -215,7 +215,7 @@ private fun RepoDetails(modifier: Modifier, pullRequestTitle: String, repository private fun EmptyListPlaceholder(padding: PaddingValues) { Box(modifier = Modifier.padding(padding)) { LoudiusPlaceholderText( - text = stringResource(id = R.string.ull_requests_screen_you_dont_have_any_pull_request_message), + text = stringResource(id = R.string.ull_requests_screen_you_dont_have_any_pull_request_message) ) } } @@ -228,7 +228,7 @@ private val successData = Data.Success( number = 0, repositoryUrl = "${Constants.BASE_API_URL}/repos/appunite/Stefan", title = "[SIL-67] Details screen - network layer", - createdAt = LocalDateTime.parse("2021-11-29T16:31:41"), + createdAt = LocalDateTime.parse("2021-11-29T16:31:41") ), PullRequest( id = 1, @@ -236,7 +236,7 @@ private val successData = Data.Success( number = 1, repositoryUrl = "${Constants.BASE_API_URL}/repos/appunite/Silentus", title = "[SIL-66] Add client secret to build config", - createdAt = LocalDateTime.parse("2022-11-29T16:31:41"), + createdAt = LocalDateTime.parse("2022-11-29T16:31:41") ), PullRequest( id = 2, @@ -244,7 +244,7 @@ private val successData = Data.Success( number = 2, repositoryUrl = "${Constants.BASE_API_URL}/repos/appunite/Loudius", title = "[SIL-73] Storing access token", - createdAt = LocalDateTime.parse("2023-01-29T16:31:41"), + createdAt = LocalDateTime.parse("2023-01-29T16:31:41") ), PullRequest( id = 3, @@ -252,9 +252,9 @@ private val successData = Data.Success( number = 3, repositoryUrl = "${Constants.BASE_API_URL}/repos/appunite/Blocktrade", title = "[SIL-62/SIL-75] Provide new annotation for API instances", - createdAt = LocalDateTime.parse("2022-01-29T16:31:41"), - ), - ), + createdAt = LocalDateTime.parse("2022-01-29T16:31:41") + ) + ) ) @Preview("Pull requests - filled list") @@ -266,7 +266,7 @@ fun PullRequestsScreenPreview() { state = PullRequestState(successData), onAction = {}, refreshing = false, - onRefresh = {}, + onRefresh = {} ) } } @@ -280,7 +280,7 @@ fun PullRequestsScreenEmptyListPreview() { PullRequestState(Data.Success(emptyList())), onAction = {}, refreshing = false, - onRefresh = {}, + onRefresh = {} ) } } @@ -294,7 +294,7 @@ fun PullRequestsScreenLoadingPreview() { PullRequestState(Data.Loading), onAction = {}, refreshing = false, - onRefresh = {}, + onRefresh = {} ) } } @@ -308,7 +308,7 @@ fun PullRequestsScreenErrorPreview() { PullRequestState(Data.Error), onAction = {}, refreshing = false, - onRefresh = {}, + onRefresh = {} ) } } @@ -322,7 +322,7 @@ fun PullRequestsScreenRefreshingPreview() { state = PullRequestState(successData), onAction = {}, refreshing = true, - onRefresh = {}, + onRefresh = {} ) } } diff --git a/app/src/main/java/com/appunite/loudius/ui/pullrequests/PullRequestsViewModel.kt b/app/src/main/java/com/appunite/loudius/ui/pullrequests/PullRequestsViewModel.kt index 7ef83c4a5..bb6896140 100644 --- a/app/src/main/java/com/appunite/loudius/ui/pullrequests/PullRequestsViewModel.kt +++ b/app/src/main/java/com/appunite/loudius/ui/pullrequests/PullRequestsViewModel.kt @@ -41,19 +41,19 @@ sealed class Data { data class PullRequestState( val data: Data = Data.Loading, - val navigateToReviewers: NavigationPayload? = null, + val navigateToReviewers: NavigationPayload? = null ) data class NavigationPayload( val owner: String, val repo: String, val pullRequestNumber: String, - val submissionTime: String, + val submissionTime: String ) @HiltViewModel class PullRequestsViewModel @Inject constructor( - private val pullRequestsRepository: PullRequestRepository, + private val pullRequestsRepository: PullRequestRepository ) : ViewModel() { var state: PullRequestState by mutableStateOf(PullRequestState()) private set @@ -105,8 +105,8 @@ class PullRequestsViewModel @Inject constructor( itemClickedData.owner, itemClickedData.shortRepositoryName, itemClickedData.number.toString(), - itemClickedData.createdAt.toString(), - ), + itemClickedData.createdAt.toString() + ) ) } diff --git a/app/src/main/java/com/appunite/loudius/ui/reviewers/Reviewer.kt b/app/src/main/java/com/appunite/loudius/ui/reviewers/Reviewer.kt index 024e527a3..a9bf7b191 100644 --- a/app/src/main/java/com/appunite/loudius/ui/reviewers/Reviewer.kt +++ b/app/src/main/java/com/appunite/loudius/ui/reviewers/Reviewer.kt @@ -22,5 +22,5 @@ data class Reviewer( val isReviewDone: Boolean, val hoursFromPRStart: Long, val hoursFromReviewDone: Long?, - val isLoading: Boolean = false, + val isLoading: Boolean = false ) diff --git a/app/src/main/java/com/appunite/loudius/ui/reviewers/ReviewersScreen.kt b/app/src/main/java/com/appunite/loudius/ui/reviewers/ReviewersScreen.kt index e77858c01..22d4cc4aa 100644 --- a/app/src/main/java/com/appunite/loudius/ui/reviewers/ReviewersScreen.kt +++ b/app/src/main/java/com/appunite/loudius/ui/reviewers/ReviewersScreen.kt @@ -67,7 +67,7 @@ import com.appunite.loudius.components.R as componentsR @Composable fun ReviewersScreen( viewModel: ReviewersViewModel = hiltViewModel(), - navigateBack: () -> Unit, + navigateBack: () -> Unit ) { val state = viewModel.state val snackbarHostState = remember { SnackbarHostState() } @@ -80,13 +80,13 @@ fun ReviewersScreen( onRefresh = viewModel::refreshData, onClickBackArrow = navigateBack, snackbarHostState = snackbarHostState, - onAction = viewModel::onAction, + onAction = viewModel::onAction ) if (state.snackbarTypeShown != null) { SnackbarLaunchedEffect( snackbarTypeShown = state.snackbarTypeShown, snackbarHostState = snackbarHostState, - onSnackbarDismiss = viewModel::onAction, + onSnackbarDismiss = viewModel::onAction ) } } @@ -95,7 +95,7 @@ fun ReviewersScreen( private fun SnackbarLaunchedEffect( snackbarTypeShown: ReviewersSnackbarType, snackbarHostState: SnackbarHostState, - onSnackbarDismiss: (ReviewersAction) -> Unit, + onSnackbarDismiss: (ReviewersAction) -> Unit ) { val snackbarMessage = resolveSnackbarMessage(snackbarTypeShown) @@ -123,13 +123,13 @@ private fun ReviewersScreenStateless( onRefresh: () -> Unit, onClickBackArrow: () -> Unit, snackbarHostState: SnackbarHostState, - onAction: (ReviewersAction) -> Unit, + onAction: (ReviewersAction) -> Unit ) { Scaffold( topBar = { LoudiusTopAppBar( onClickBackArrow = onClickBackArrow, - title = stringResource(id = R.string.reviewers_screen_title, pullRequestNumber), + title = stringResource(id = R.string.reviewers_screen_title, pullRequestNumber) ) }, snackbarHost = { SnackbarHost(hostState = snackbarHostState) }, @@ -137,13 +137,13 @@ private fun ReviewersScreenStateless( when (data) { is Data.Error -> LoudiusFullScreenError( modifier = Modifier.padding(padding), - onButtonClick = { onAction(ReviewersAction.OnTryAgain) }, + onButtonClick = { onAction(ReviewersAction.OnTryAgain) } ) is Data.Loading -> LoudiusLoadingIndicator(Modifier.padding(padding)) is Data.Success -> ReviewersScreenContent(data, refreshing, onRefresh, padding, onAction) } - }, + } ) } @@ -153,18 +153,18 @@ private fun ReviewersScreenContent( refreshing: Boolean, onRefreshing: () -> Unit, padding: PaddingValues, - onAction: (ReviewersAction) -> Unit, + onAction: (ReviewersAction) -> Unit ) { if (data.reviewers.isNotEmpty()) { ReviewersList( data = data, pullRefreshState = rememberPullRefreshState( refreshing = refreshing, - onRefresh = onRefreshing, + onRefresh = onRefreshing ), modifier = Modifier.padding(padding), onNotifyClick = onAction, - refreshing = refreshing, + refreshing = refreshing ) } else { EmptyListPlaceholder(padding) @@ -177,21 +177,21 @@ private fun ReviewersList( pullRefreshState: PullRefreshState, modifier: Modifier, onNotifyClick: (ReviewersAction) -> Unit, - refreshing: Boolean, + refreshing: Boolean ) { LoudiusPullToRefreshBox( pullRefreshState = pullRefreshState, refreshing = refreshing, - modifier = modifier, + modifier = modifier ) { LazyColumn( - modifier = Modifier.fillMaxSize(), + modifier = Modifier.fillMaxSize() ) { itemsIndexed((data as Data.Success).reviewers) { index, reviewer -> ReviewerItem( reviewer = reviewer, index = index, - onNotifyClick = onNotifyClick, + onNotifyClick = onNotifyClick ) } } @@ -202,7 +202,7 @@ private fun ReviewersList( private fun ReviewerItem( reviewer: Reviewer, index: Int, - onNotifyClick: (ReviewersAction) -> Unit, + onNotifyClick: (ReviewersAction) -> Unit ) { LoudiusListItem( index = index, @@ -215,20 +215,20 @@ private fun ReviewerItem( }, action = { NotifyButtonOrLoadingIndicator(reviewer = reviewer, onNotifyClick = onNotifyClick) - }, + } ) } @Composable private fun NotifyButtonOrLoadingIndicator( reviewer: Reviewer, - onNotifyClick: (ReviewersAction) -> Unit, + onNotifyClick: (ReviewersAction) -> Unit ) { Box(contentAlignment = Center) { LoudiusOutlinedButton( text = stringResource(R.string.reviewers_screen_notify_button), onClick = { onNotifyClick(ReviewersAction.Notify(reviewer.login)) }, - modifier = Modifier.alpha(if (reviewer.isLoading) 0f else 1f), + modifier = Modifier.alpha(if (reviewer.isLoading) 0f else 1f) ) if (reviewer.isLoading) { LoudiusLoadingIndicator(modifier = Modifier.size(24.dp)) @@ -241,9 +241,9 @@ private fun ReviewerAvatarView(modifier: Modifier = Modifier) { LoudiusListIcon( painter = painterResource(id = componentsR.drawable.components_person_outline_24px), contentDescription = stringResource( - R.string.reviewers_screen_user_image_content_description, + R.string.reviewers_screen_user_image_content_description ), - modifier = modifier, + modifier = modifier ) } @@ -251,7 +251,7 @@ private fun ReviewerAvatarView(modifier: Modifier = Modifier) { private fun IsReviewedHeadlineText(reviewer: Reviewer) { LoudiusText( text = resolveIsReviewedText(reviewer), - style = if (reviewer.isReviewDone) LoudiusTextStyle.ListHeader else LoudiusTextStyle.ListHeaderWarning, + style = if (reviewer.isReviewDone) LoudiusTextStyle.ListHeader else LoudiusTextStyle.ListHeaderWarning ) } @@ -266,7 +266,7 @@ private fun resolveIsReviewedText(reviewer: Reviewer) = if (reviewer.isReviewDon private fun ReviewerName(reviewer: Reviewer) { LoudiusText( text = reviewer.login, - style = LoudiusTextStyle.ListItem, + style = LoudiusTextStyle.ListItem ) } @@ -274,7 +274,7 @@ private fun ReviewerName(reviewer: Reviewer) { private fun EmptyListPlaceholder(padding: PaddingValues) { Box(modifier = Modifier.padding(padding)) { LoudiusPlaceholderText( - text = stringResource(R.string.reviewers_screen_you_dont_have_any_reviewers_message), + text = stringResource(R.string.reviewers_screen_you_dont_have_any_reviewers_message) ) } } @@ -285,7 +285,7 @@ private fun ReviewerViewPreview() { LoudiusTheme { ReviewerItem( index = 0, - reviewer = Reviewer(1, "Kezc", true, 12, 12), + reviewer = Reviewer(1, "Kezc", true, 12, 12) ) {} } } @@ -296,7 +296,7 @@ private fun ReviewerViewLoadingPreview() { LoudiusTheme { ReviewerItem( index = 0, - reviewer = Reviewer(1, "Kezc", true, 12, 12, isLoading = true), + reviewer = Reviewer(1, "Kezc", true, 12, 12, isLoading = true) ) {} } } @@ -305,7 +305,7 @@ private val successData = listOf( Reviewer(1, "Kezc", true, 24, 12), Reviewer(2, "Krzysiudan", false, 24, 0), Reviewer(3, "Weronika", false, 24, 0, true), - Reviewer(4, "Jacek", false, 24, 0), + Reviewer(4, "Jacek", false, 24, 0) ) @Preview @@ -320,7 +320,7 @@ fun DetailsScreenPreview() { snackbarHostState = SnackbarHostState(), onAction = {}, refreshing = false, - onRefresh = {}, + onRefresh = {} ) } } @@ -337,7 +337,7 @@ fun DetailsScreenNoReviewsPreview() { snackbarHostState = SnackbarHostState(), onAction = {}, refreshing = false, - onRefresh = {}, + onRefresh = {} ) } } @@ -354,7 +354,7 @@ fun DetailsScreenRefreshingPreview() { snackbarHostState = SnackbarHostState(), onAction = {}, refreshing = true, - onRefresh = {}, + onRefresh = {} ) } } diff --git a/app/src/main/java/com/appunite/loudius/ui/reviewers/ReviewersViewModel.kt b/app/src/main/java/com/appunite/loudius/ui/reviewers/ReviewersViewModel.kt index 602d4078b..af16e20d4 100644 --- a/app/src/main/java/com/appunite/loudius/ui/reviewers/ReviewersViewModel.kt +++ b/app/src/main/java/com/appunite/loudius/ui/reviewers/ReviewersViewModel.kt @@ -48,7 +48,7 @@ sealed class ReviewersAction { data class ReviewersState( val data: Data = Data.Loading, val pullRequestNumber: String = "", - val snackbarTypeShown: ReviewersSnackbarType? = null, + val snackbarTypeShown: ReviewersSnackbarType? = null ) sealed class Data { @@ -64,7 +64,7 @@ enum class ReviewersSnackbarType { @HiltViewModel class ReviewersViewModel @Inject constructor( private val repository: PullRequestRepository, - savedStateHandle: SavedStateHandle, + savedStateHandle: SavedStateHandle ) : ViewModel() { private val initialValues = getInitialValues(savedStateHandle) @@ -108,14 +108,14 @@ class ReviewersViewModel @Inject constructor( repository.getRequestedReviewers( initialValues.owner, initialValues.repo, - initialValues.pullRequestNumber, + initialValues.pullRequestNumber ) } val reviewsDeferred = async { repository.getReviews( initialValues.owner, initialValues.repo, - initialValues.pullRequestNumber, + initialValues.pullRequestNumber ) } @@ -127,7 +127,7 @@ class ReviewersViewModel @Inject constructor( private fun mergeData( requestedReviewers: Result>, - reviewersWithReviews: Result>, + reviewersWithReviews: Result> ) = requestedReviewers.flatMap { list -> reviewersWithReviews.map { it + list } } @@ -143,7 +143,7 @@ class ReviewersViewModel @Inject constructor( requestedReviewer.login, false, hoursFromPRStart, - null, + null ) } } @@ -162,7 +162,7 @@ class ReviewersViewModel @Inject constructor( latestReview.user.login, true, hoursFromPRStart, - hoursFromReviewDone, + hoursFromReviewDone ) } } @@ -192,42 +192,42 @@ class ReviewersViewModel @Inject constructor( private fun setReviewerToLoading( successData: Data.Success, - userLogin: String, + userLogin: String ) { state = state.copy( data = Data.Success( - reviewers = successData.reviewers.updateLoadingState(userLogin, true), - ), + reviewers = successData.reviewers.updateLoadingState(userLogin, true) + ) ) } private fun onNotifyUserFailure( successData: Data.Success, - userLogin: String, + userLogin: String ) { state = state.copy( snackbarTypeShown = FAILURE, data = Data.Success( - reviewers = successData.reviewers.updateLoadingState(userLogin, false), - ), + reviewers = successData.reviewers.updateLoadingState(userLogin, false) + ) ) } private fun onNotifyUserSuccess( successData: Data.Success, - userLogin: String, + userLogin: String ) { state = state.copy( snackbarTypeShown = SUCCESS, data = Data.Success( - successData.reviewers.updateLoadingState(userLogin, false), - ), + successData.reviewers.updateLoadingState(userLogin, false) + ) ) } private fun List.updateLoadingState( userLogin: String, - isLoading: Boolean, + isLoading: Boolean ): List = map { if (it.login == userLogin) { it.copy(isLoading = isLoading) diff --git a/app/src/test/java/com/appunite/loudius/domain/PullRequestRepositoryImpTest.kt b/app/src/test/java/com/appunite/loudius/domain/PullRequestRepositoryImpTest.kt index f118061ef..4995339ea 100644 --- a/app/src/test/java/com/appunite/loudius/domain/PullRequestRepositoryImpTest.kt +++ b/app/src/test/java/com/appunite/loudius/domain/PullRequestRepositoryImpTest.kt @@ -63,7 +63,7 @@ class PullRequestRepositoryImpTest { .containsExactly( Review("4", User(1, "user1"), ReviewState.COMMENTED, Defaults.date1), Review("5", User(1, "user1"), ReviewState.COMMENTED, Defaults.date2), - Review("6", User(1, "user1"), ReviewState.APPROVED, Defaults.date3), + Review("6", User(1, "user1"), ReviewState.APPROVED, Defaults.date3) ) } @@ -90,16 +90,16 @@ class PullRequestRepositoryImpTest { val result = repository.getRequestedReviewers( "example", "example", - pullRequestNumber, + pullRequestNumber ) expectThat(result).isSuccess().isEqualTo( RequestedReviewersResponse( listOf( RequestedReviewer(3, "user3"), - RequestedReviewer(4, "user4"), - ), - ), + RequestedReviewer(4, "user4") + ) + ) ) } @@ -111,7 +111,7 @@ class PullRequestRepositoryImpTest { val response = repository.getRequestedReviewers( "example", "example", - pullRequestNumber, + pullRequestNumber ) expectThat(response) @@ -131,7 +131,7 @@ class PullRequestRepositoryImpTest { "exampleOwner", "exampleRepo", pullRequestNumber, - "@ExampleUser", + "@ExampleUser" ) expectThat(result) @@ -149,7 +149,7 @@ class PullRequestRepositoryImpTest { "exampleOwner", "exampleRepo", pullRequestNumber, - "@ExampleUser", + "@ExampleUser" ) expectThat(response) @@ -166,8 +166,8 @@ class PullRequestRepositoryImpTest { coEvery { userDataSource.getUser() } returns Result.success( User( 0, - "correctAuthor", - ), + "correctAuthor" + ) ) val response = repository.getCurrentUserPullRequests() diff --git a/app/src/test/java/com/appunite/loudius/fakes/FakeAuthRepository.kt b/app/src/test/java/com/appunite/loudius/fakes/FakeAuthRepository.kt index 256971123..1133689e6 100644 --- a/app/src/test/java/com/appunite/loudius/fakes/FakeAuthRepository.kt +++ b/app/src/test/java/com/appunite/loudius/fakes/FakeAuthRepository.kt @@ -25,7 +25,7 @@ class FakeAuthRepository : AuthRepository { override suspend fun fetchAccessToken( clientId: String, clientSecret: String, - code: String, + code: String ): Result = when (code) { "validCode" -> Result.success("validToken") "invalidCode" -> Result.failure(BadVerificationCodeException) diff --git a/app/src/test/java/com/appunite/loudius/fakes/FakePullRequestDataSource.kt b/app/src/test/java/com/appunite/loudius/fakes/FakePullRequestDataSource.kt index 35a2cbe87..a62965399 100644 --- a/app/src/test/java/com/appunite/loudius/fakes/FakePullRequestDataSource.kt +++ b/app/src/test/java/com/appunite/loudius/fakes/FakePullRequestDataSource.kt @@ -32,10 +32,10 @@ class FakePullRequestDataSource : PullRequestDataSource { override suspend fun getReviews( owner: String, repository: String, - pullRequestNumber: String, + pullRequestNumber: String ): Result> = when (pullRequestNumber) { "correctPullRequestNumber", "onlyReviewsPullNumber" -> Result.success( - Defaults.reviews(), + Defaults.reviews() ) else -> Result.failure(WebException.UnknownError(404, null)) } @@ -43,15 +43,15 @@ class FakePullRequestDataSource : PullRequestDataSource { override suspend fun getReviewers( owner: String, repository: String, - pullRequestNumber: String, + pullRequestNumber: String ): Result = when (pullRequestNumber) { "correctPullRequestNumber", "onlyRequestedReviewersPullNumber" -> Result.success( RequestedReviewersResponse( listOf( RequestedReviewer(3, "user3"), - RequestedReviewer(4, "user4"), - ), - ), + RequestedReviewer(4, "user4") + ) + ) ) else -> Result.failure(WebException.UnknownError(404, null)) } @@ -65,7 +65,7 @@ class FakePullRequestDataSource : PullRequestDataSource { owner: String, repository: String, pullRequestNumber: String, - message: String, + message: String ): Result = when (pullRequestNumber) { "correctPullRequestNumber" -> Result.success(Unit) else -> Result.failure(WebException.UnknownError(404, null)) diff --git a/app/src/test/java/com/appunite/loudius/fakes/FakePullRequestRepository.kt b/app/src/test/java/com/appunite/loudius/fakes/FakePullRequestRepository.kt index 88a90ca6e..4dafd2c36 100644 --- a/app/src/test/java/com/appunite/loudius/fakes/FakePullRequestRepository.kt +++ b/app/src/test/java/com/appunite/loudius/fakes/FakePullRequestRepository.kt @@ -27,14 +27,14 @@ class FakePullRequestRepository : PullRequestRepository { override suspend fun getReviews( owner: String, repo: String, - pullRequestNumber: String, + pullRequestNumber: String ): Result> = Result.success(Defaults.reviews().filterNot { it.user == Defaults.currentUser() }) override suspend fun getRequestedReviewers( owner: String, repo: String, - pullRequestNumber: String, + pullRequestNumber: String ): Result = Result.success(RequestedReviewersResponse(Defaults.requestedReviewers())) @@ -45,7 +45,7 @@ class FakePullRequestRepository : PullRequestRepository { owner: String, repo: String, pullRequestNumber: String, - message: String, + message: String ): Result = when (pullRequestNumber) { "correctPullRequestNumber" -> Result.success(Unit) else -> Result.failure(WebException.UnknownError(404, null)) diff --git a/app/src/test/java/com/appunite/loudius/fakes/FakeSharedPreferences.kt b/app/src/test/java/com/appunite/loudius/fakes/FakeSharedPreferences.kt index 08d62e574..efdebfd69 100644 --- a/app/src/test/java/com/appunite/loudius/fakes/FakeSharedPreferences.kt +++ b/app/src/test/java/com/appunite/loudius/fakes/FakeSharedPreferences.kt @@ -32,7 +32,7 @@ class FakeSharedPreferences : SharedPreferences { override fun putStringSet( key: String, - value: MutableSet?, + value: MutableSet? ): SharedPreferences.Editor = TODO("Not yet implemented") diff --git a/app/src/test/java/com/appunite/loudius/network/NetworkTestDoubles.kt b/app/src/test/java/com/appunite/loudius/network/NetworkTestDoubles.kt index f83c8fd39..57770c60f 100644 --- a/app/src/test/java/com/appunite/loudius/network/NetworkTestDoubles.kt +++ b/app/src/test/java/com/appunite/loudius/network/NetworkTestDoubles.kt @@ -37,20 +37,20 @@ private fun testGson() = fun httpClientTestDouble( mockWebServer: MockWebServer, - block: HttpClientConfig.() -> Unit = {}, + block: HttpClientConfig.() -> Unit = {} ): HttpClient = HttpClient(OkHttp) { block(this) expectSuccess = true defaultRequest { url( - mockWebServer.url("/").toString(), + mockWebServer.url("/").toString() ) } install(ContentNegotiation) { register( ContentType.Application.Json, - GsonConverter(testGson()), + GsonConverter(testGson()) ) } } diff --git a/app/src/test/java/com/appunite/loudius/network/datasource/AuthDataSourceImplTest.kt b/app/src/test/java/com/appunite/loudius/network/datasource/AuthDataSourceImplTest.kt index 04dbc3fd1..76765439d 100644 --- a/app/src/test/java/com/appunite/loudius/network/datasource/AuthDataSourceImplTest.kt +++ b/app/src/test/java/com/appunite/loudius/network/datasource/AuthDataSourceImplTest.kt @@ -66,7 +66,7 @@ class AuthDataSourceImplTest { MockResponse() .setResponseCode(200) .setBody(jsonResponse) - .addHeader("Content-type", "application/json"), + .addHeader("Content-type", "application/json") ) val result = @@ -89,7 +89,7 @@ class AuthDataSourceImplTest { MockResponse() .setResponseCode(200) .setBody(jsonResponse) - .addHeader("Content-type", "application/json"), + .addHeader("Content-type", "application/json") ) val result = @@ -112,7 +112,7 @@ class AuthDataSourceImplTest { MockResponse() .setResponseCode(200) .setBody(jsonResponse) - .addHeader("Content-type", "application/json"), + .addHeader("Content-type", "application/json") ) val result = authDataSourceImpl.getAccessToken("", "", "") diff --git a/app/src/test/java/com/appunite/loudius/network/datasource/PullRequestsDataSourceImplTest.kt b/app/src/test/java/com/appunite/loudius/network/datasource/PullRequestsDataSourceImplTest.kt index fa855de00..aeb6c3ea8 100644 --- a/app/src/test/java/com/appunite/loudius/network/datasource/PullRequestsDataSourceImplTest.kt +++ b/app/src/test/java/com/appunite/loudius/network/datasource/PullRequestsDataSourceImplTest.kt @@ -74,11 +74,11 @@ class PullRequestsDataSourceImplTest { mockWebServer.enqueue( MockResponse() .setSocketPolicy(SocketPolicy.DISCONNECT_DURING_RESPONSE_BODY) - .addHeader("Content-type", "application/json"), + .addHeader("Content-type", "application/json") ) val response = pullRequestDataSource.getPullRequestsForUser( - "exampleUser", + "exampleUser" ) expectThat(response) @@ -175,7 +175,7 @@ class PullRequestsDataSourceImplTest { MockResponse() .setResponseCode(200) .setBody(jsonResponse) - .addHeader("Content-type", "application/json"), + .addHeader("Content-type", "application/json") ) val response = pullRequestDataSource.getPullRequestsForUser("exampleUser") @@ -199,7 +199,7 @@ class PullRequestsDataSourceImplTest { MockResponse() .setResponseCode(401) .setBody(jsonResponse) - .addHeader("Content-type", "application/json"), + .addHeader("Content-type", "application/json") ) val response = pullRequestDataSource.getPullRequestsForUser("exampleUser") @@ -219,13 +219,13 @@ class PullRequestsDataSourceImplTest { mockWebServer.enqueue( MockResponse() .setSocketPolicy(SocketPolicy.DISCONNECT_DURING_RESPONSE_BODY) - .addHeader("Content-type", "application/json"), + .addHeader("Content-type", "application/json") ) val response = pullRequestDataSource.getReviewers( "exampleOwner", "exampleRepo", - "exampleNumber", + "exampleNumber" ) expectThat(response) @@ -269,13 +269,13 @@ class PullRequestsDataSourceImplTest { MockResponse() .setResponseCode(200) .setBody(jsonResponse) - .addHeader("Content-type", "application/json"), + .addHeader("Content-type", "application/json") ) val response = pullRequestDataSource.getReviewers( "exampleOwner", "exampleRepo", - "exampleNumber", + "exampleNumber" ) expectThat(response) @@ -283,9 +283,9 @@ class PullRequestsDataSourceImplTest { .isEqualTo( RequestedReviewersResponse( listOf( - RequestedReviewer(1, "exampleLogin"), - ), - ), + RequestedReviewer(1, "exampleLogin") + ) + ) ) } @@ -304,13 +304,13 @@ class PullRequestsDataSourceImplTest { MockResponse() .setResponseCode(401) .setBody(jsonResponse) - .addHeader("Content-type", "application/json"), + .addHeader("Content-type", "application/json") ) val response = pullRequestDataSource.getReviewers( "exampleOwner", "exampleRepo", - "exampleNumber", + "exampleNumber" ) expectThat(response) @@ -328,13 +328,13 @@ class PullRequestsDataSourceImplTest { mockWebServer.enqueue( MockResponse() .setSocketPolicy(SocketPolicy.DISCONNECT_DURING_RESPONSE_BODY) - .addHeader("Content-type", "application/json"), + .addHeader("Content-type", "application/json") ) val resposne = pullRequestDataSource.getReviews( "exampleOwner", "exampleRepo", - "exampleNumber", + "exampleNumber" ) expectThat(resposne) @@ -392,13 +392,13 @@ class PullRequestsDataSourceImplTest { MockResponse() .setResponseCode(200) .setBody(jsonResponse) - .addHeader("Content-type", "application/json"), + .addHeader("Content-type", "application/json") ) val response = pullRequestDataSource.getReviews( "exampleOwner", "exampleRepo", - "exampleNumber", + "exampleNumber" ) expectThat(response) @@ -409,8 +409,8 @@ class PullRequestsDataSourceImplTest { "1", User(10000000, "exampleUser"), ReviewState.COMMENTED, - LocalDateTime.parse("2023-03-02T10:21:36"), - ), + LocalDateTime.parse("2023-03-02T10:21:36") + ) ) } @@ -429,13 +429,13 @@ class PullRequestsDataSourceImplTest { MockResponse() .setResponseCode(401) .setBody(jsonResponse) - .addHeader("Content-type", "application/json"), + .addHeader("Content-type", "application/json") ) val response = pullRequestDataSource.getReviews( "exampleOwner", "exampleRepo", - "exampleNumber", + "exampleNumber" ) expectThat(response) @@ -453,14 +453,14 @@ class PullRequestsDataSourceImplTest { mockWebServer.enqueue( MockResponse() .setSocketPolicy(SocketPolicy.DISCONNECT_AFTER_REQUEST) - .addHeader("Content-type", "application/json"), + .addHeader("Content-type", "application/json") ) val response = pullRequestDataSource.notify( "exampleOwner", "exampleRepo", "exampleNumber", - "@ExampleUser", + "@ExampleUser" ) expectThat(response) @@ -508,14 +508,14 @@ class PullRequestsDataSourceImplTest { MockResponse() .setResponseCode(200) .setBody(jsonResponse) - .addHeader("Content-type", "application/json"), + .addHeader("Content-type", "application/json") ) val response = pullRequestDataSource.notify( "exampleOwner", "exampleRepo", "exampleNumber", - "@ExampleUser", + "@ExampleUser" ) expectThat(response).isSuccess() @@ -535,14 +535,14 @@ class PullRequestsDataSourceImplTest { MockResponse() .setResponseCode(401) .setBody(jsonResponse) - .addHeader("Content-type", "application/json"), + .addHeader("Content-type", "application/json") ) val response = pullRequestDataSource.notify( "exampleOwner", "exampleRepo", "exampleNumber", - "@ExampleUser", + "@ExampleUser" ) expectThat(response) diff --git a/app/src/test/java/com/appunite/loudius/network/datasource/UserDataSourceTest.kt b/app/src/test/java/com/appunite/loudius/network/datasource/UserDataSourceTest.kt index 9ba929da0..6443966b2 100644 --- a/app/src/test/java/com/appunite/loudius/network/datasource/UserDataSourceTest.kt +++ b/app/src/test/java/com/appunite/loudius/network/datasource/UserDataSourceTest.kt @@ -63,7 +63,7 @@ class UserDataSourceTest { mockWebServer.enqueue( MockResponse() .setSocketPolicy(SocketPolicy.DISCONNECT_DURING_RESPONSE_BODY) - .addHeader("Content-type", "application/json"), + .addHeader("Content-type", "application/json") ) val response = userDataSource.getUser() @@ -117,7 +117,7 @@ class UserDataSourceTest { MockResponse() .setResponseCode(200) .setBody(jsonResponse) - .addHeader("Content-type", "application/json"), + .addHeader("Content-type", "application/json") ) val response = userDataSource.getUser() @@ -142,7 +142,7 @@ class UserDataSourceTest { MockResponse() .setResponseCode(401) .setBody(jsonResponse) - .addHeader("Content-type", "application/json"), + .addHeader("Content-type", "application/json") ) val response = userDataSource.getUser() diff --git a/app/src/test/java/com/appunite/loudius/ui/authenticating/AuthenticatingViewModelTest.kt b/app/src/test/java/com/appunite/loudius/ui/authenticating/AuthenticatingViewModelTest.kt index 6e869d0be..accc31385 100644 --- a/app/src/test/java/com/appunite/loudius/ui/authenticating/AuthenticatingViewModelTest.kt +++ b/app/src/test/java/com/appunite/loudius/ui/authenticating/AuthenticatingViewModelTest.kt @@ -74,7 +74,7 @@ class AuthenticatingViewModelTest { @Test fun `GIVEN unexpected Github behavior WHEN authenticating screen is opened THEN show generic error screen`() { coEvery { repository.fetchAccessToken(any(), any(), any()) } returns Result.failure( - WebException.UnknownError(null, null), + WebException.UnknownError(null, null) ) setupIntent("validCode") val viewModel = create() @@ -89,7 +89,7 @@ class AuthenticatingViewModelTest { fun `GIVEN unexpected error is presented WHEN try again success THEN navigate to pull requests`() { // simulate unknown error response coEvery { repository.fetchAccessToken(any(), any(), any()) } returns Result.failure( - WebException.UnknownError(null, null), + WebException.UnknownError(null, null) ) setupIntent("validCode") val viewModel = create() diff --git a/app/src/test/java/com/appunite/loudius/ui/pullrequests/PullRequestsViewModelTest.kt b/app/src/test/java/com/appunite/loudius/ui/pullrequests/PullRequestsViewModelTest.kt index 919f4cfad..940a8ee0e 100644 --- a/app/src/test/java/com/appunite/loudius/ui/pullrequests/PullRequestsViewModelTest.kt +++ b/app/src/test/java/com/appunite/loudius/ui/pullrequests/PullRequestsViewModelTest.kt @@ -97,7 +97,7 @@ class PullRequestsViewModelTest { fun `WHEN fetching data failed on init THEN display error`() = runTest { coEvery { pullRequestRepository.getCurrentUserPullRequests() } coAnswers { Result.failure( - WebException.NetworkError(), + WebException.NetworkError() ) } val viewModel = createViewModel() @@ -109,7 +109,7 @@ class PullRequestsViewModelTest { fun `GIVEN error state WHEN retry THEN fetch pull requests list again`() = runTest { coEvery { pullRequestRepository.getCurrentUserPullRequests() } coAnswers { Result.failure( - WebException.NetworkError(), + WebException.NetworkError() ) } val viewModel = createViewModel() @@ -139,8 +139,8 @@ class PullRequestsViewModelTest { pullRequest.owner, pullRequest.shortRepositoryName, pullRequest.number.toString(), - pullRequest.createdAt.toString(), - ), + pullRequest.createdAt.toString() + ) ) } diff --git a/app/src/test/java/com/appunite/loudius/ui/reviewers/ReviewersViewModelTest.kt b/app/src/test/java/com/appunite/loudius/ui/reviewers/ReviewersViewModelTest.kt index 1b64dca1d..1416511c3 100644 --- a/app/src/test/java/com/appunite/loudius/ui/reviewers/ReviewersViewModelTest.kt +++ b/app/src/test/java/com/appunite/loudius/ui/reviewers/ReviewersViewModelTest.kt @@ -88,7 +88,7 @@ class ReviewersViewModelTest { get(Data.Success::reviewers).containsExactly( Reviewer(1, "user1", true, 7, 5), Reviewer(2, "user2", false, 7, null), - Reviewer(3, "user3", false, 7, null), + Reviewer(3, "user3", false, 7, null) ) } } @@ -101,7 +101,7 @@ class ReviewersViewModelTest { repository.getRequestedReviewers( any(), any(), - any(), + any() ) } coAnswers { neverCompletingSuspension() } @@ -109,7 +109,7 @@ class ReviewersViewModelTest { repository.getReviews( any(), any(), - any(), + any() ) } coAnswers { neverCompletingSuspension() } @@ -159,7 +159,7 @@ class ReviewersViewModelTest { repository.getReviews( any(), any(), - any(), + any() ) } coAnswers { neverCompletingSuspension() } viewModel = createViewModel() @@ -173,14 +173,14 @@ class ReviewersViewModelTest { repository.getReviews( any(), any(), - any(), + any() ) } returns Result.success(emptyList()) coEvery { repository.getRequestedReviewers( any(), any(), - any(), + any() ) } returns Result.success(RequestedReviewersResponse(emptyList())) @@ -200,7 +200,7 @@ class ReviewersViewModelTest { get(Data.Success::reviewers).containsExactly( Reviewer(1, "user1", true, 7, 5), Reviewer(2, "user2", false, 7, null), - Reviewer(3, "user3", false, 7, null), + Reviewer(3, "user3", false, 7, null) ) } } @@ -209,7 +209,7 @@ class ReviewersViewModelTest { fun `GIVEN reviewers with no review done WHEN init THEN list of reviewers is fetched`() = runTest { coEvery { repository.getReviews(any(), any(), any()) } returns Result.success( - emptyList(), + emptyList() ) viewModel = createViewModel() @@ -217,7 +217,7 @@ class ReviewersViewModelTest { get(Data.Success::reviewers) .containsExactly( Reviewer(2, "user2", false, 7, null), - Reviewer(3, "user3", false, 7, null), + Reviewer(3, "user3", false, 7, null) ) } } @@ -229,14 +229,14 @@ class ReviewersViewModelTest { repository.getRequestedReviewers( any(), any(), - any(), + any() ) } returns Result.success(RequestedReviewersResponse(emptyList())) viewModel = createViewModel() expectThat(viewModel.state.data).isA().and { get(Data.Success::reviewers).containsExactly( - Reviewer(1, "user1", true, 7, 5), + Reviewer(1, "user1", true, 7, 5) ) } } @@ -245,13 +245,13 @@ class ReviewersViewModelTest { fun `WHEN there is an error during fetching data from 2 requests on init THEN error is shown`() = runTest { coEvery { repository.getReviews(any(), any(), any()) } returns Result.failure( - WebException.NetworkError(), + WebException.NetworkError() ) coEvery { repository.getRequestedReviewers( any(), any(), - any(), + any() ) } returns Result.failure(WebException.NetworkError()) viewModel = createViewModel() @@ -266,7 +266,7 @@ class ReviewersViewModelTest { repository.getRequestedReviewers( any(), any(), - any(), + any() ) } returns Result.failure(WebException.NetworkError()) viewModel = createViewModel() @@ -278,7 +278,7 @@ class ReviewersViewModelTest { fun `WHEN there is an error during fetching data on init only from reviews request THEN error is shown`() = runTest { coEvery { repository.getReviews(any(), any(), any()) } returns Result.failure( - WebException.NetworkError(), + WebException.NetworkError() ) viewModel = createViewModel() @@ -308,7 +308,7 @@ class ReviewersViewModelTest { any(), any(), any(), - any(), + any() ) } coAnswers { neverCompletingSuspension() } @@ -375,7 +375,7 @@ class ReviewersViewModelTest { get(Data.Success::reviewers).containsExactly( Reviewer(1, "user1", true, 7, 5), Reviewer(2, "user2", false, 7, null), - Reviewer(3, "user3", false, 7, null), + Reviewer(3, "user3", false, 7, null) ) } } diff --git a/app/src/test/java/com/appunite/loudius/util/Defaults.kt b/app/src/test/java/com/appunite/loudius/util/Defaults.kt index 3ef477ffc..42079c090 100644 --- a/app/src/test/java/com/appunite/loudius/util/Defaults.kt +++ b/app/src/test/java/com/appunite/loudius/util/Defaults.kt @@ -35,7 +35,7 @@ object Defaults { number = id, repositoryUrl = "https://api.github.com/repos/exampleOwner/exampleRepo", title = "example title", - LocalDateTime.parse("2023-03-07T08:21:45").plusHours(id.toLong()), + LocalDateTime.parse("2023-03-07T08:21:45").plusHours(id.toLong()) ) fun reviews() = listOf( @@ -44,18 +44,18 @@ object Defaults { Review("3", currentUser(), ReviewState.APPROVED, date3), Review("4", User(1, "user1"), ReviewState.COMMENTED, date1), Review("5", User(1, "user1"), ReviewState.COMMENTED, date2), - Review("6", User(1, "user1"), ReviewState.APPROVED, date3), + Review("6", User(1, "user1"), ReviewState.APPROVED, date3) ) fun requestedReviewers() = listOf( RequestedReviewer(2, "user2"), - RequestedReviewer(3, "user3"), + RequestedReviewer(3, "user3") ) fun pullRequestsResponse() = PullRequestsResponse( incompleteResults = false, totalCount = 1, - items = listOf(pullRequest()), + items = listOf(pullRequest()) ) fun currentUser() = User(0, "currentUser") diff --git a/app/src/test/java/com/appunite/loudius/util/MainDispatcherExtension.kt b/app/src/test/java/com/appunite/loudius/util/MainDispatcherExtension.kt index b4f48d1f4..9187c24bb 100644 --- a/app/src/test/java/com/appunite/loudius/util/MainDispatcherExtension.kt +++ b/app/src/test/java/com/appunite/loudius/util/MainDispatcherExtension.kt @@ -28,7 +28,7 @@ import org.junit.jupiter.api.extension.ExtensionContext @OptIn(ExperimentalCoroutinesApi::class) class MainDispatcherExtension( - private val testDispatcher: TestDispatcher = UnconfinedTestDispatcher(), + private val testDispatcher: TestDispatcher = UnconfinedTestDispatcher() ) : BeforeTestExecutionCallback, AfterTestExecutionCallback { override fun beforeTestExecution(context: ExtensionContext?) { Dispatchers.setMain(testDispatcher) diff --git a/components/src/main/java/com/appunite/loudius/components/components/LoudiusDialog.kt b/components/src/main/java/com/appunite/loudius/components/components/LoudiusDialog.kt index 8d643de66..7213a2524 100644 --- a/components/src/main/java/com/appunite/loudius/components/components/LoudiusDialog.kt +++ b/components/src/main/java/com/appunite/loudius/components/components/LoudiusDialog.kt @@ -33,7 +33,7 @@ fun LoudiusDialog( /** * For text [LoudiusTextStyle.ScreenContent] should be used */ - text: @Composable (() -> Unit)? = null, + text: @Composable (() -> Unit)? = null ) { AlertDialog( @@ -44,7 +44,7 @@ fun LoudiusDialog( }, text = text, confirmButton = confirmButton, - dismissButton = dismissButton, + dismissButton = dismissButton ) } @@ -58,7 +58,7 @@ fun LoudiusDialogSimplePreview() { title = "Title", confirmButton = { LoudiusOutlinedButton(text = "Confirm") {} - }, + } ) } } @@ -74,7 +74,7 @@ fun LoudiusDialogAdvancedPreview() { text = { LoudiusText( style = LoudiusTextStyle.ScreenContent, - text = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse dapibus elit justo, at pharetra nulla mattis vel. Integer gravida tortor sed fringilla viverra. Duis scelerisque ante neque, a pretium eros.", + text = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse dapibus elit justo, at pharetra nulla mattis vel. Integer gravida tortor sed fringilla viverra. Duis scelerisque ante neque, a pretium eros." ) }, confirmButton = { @@ -82,7 +82,7 @@ fun LoudiusDialogAdvancedPreview() { }, dismissButton = { LoudiusOutlinedButton(text = "Dismiss") {} - }, + } ) } } diff --git a/components/src/main/java/com/appunite/loudius/components/components/LoudiusErrorDialog.kt b/components/src/main/java/com/appunite/loudius/components/components/LoudiusErrorDialog.kt index ce8622a8b..b97a60d8d 100644 --- a/components/src/main/java/com/appunite/loudius/components/components/LoudiusErrorDialog.kt +++ b/components/src/main/java/com/appunite/loudius/components/components/LoudiusErrorDialog.kt @@ -32,7 +32,7 @@ fun LoudiusErrorDialog( onConfirmButtonClick: () -> Unit, dialogTitle: String = stringResource(id = R.string.components_error_dialog_title), dialogText: String = stringResource(id = R.string.components_error_dialog_description), - confirmText: String = stringResource(R.string.components_error_dialog_confirm_button), + confirmText: String = stringResource(R.string.components_error_dialog_confirm_button) ) { var openDialog by remember { mutableStateOf(true) } if (openDialog) { @@ -42,7 +42,7 @@ fun LoudiusErrorDialog( text = { LoudiusText(style = LoudiusTextStyle.ScreenContent, text = dialogText) }, confirmButton = { LoudiusOutlinedButton(text = confirmText, onClick = onConfirmButtonClick) - }, + } ) } } diff --git a/components/src/main/java/com/appunite/loudius/components/components/LoudiusFullScreenError.kt b/components/src/main/java/com/appunite/loudius/components/components/LoudiusFullScreenError.kt index f500ca4b2..0ecbcdddc 100644 --- a/components/src/main/java/com/appunite/loudius/components/components/LoudiusFullScreenError.kt +++ b/components/src/main/java/com/appunite/loudius/components/components/LoudiusFullScreenError.kt @@ -42,13 +42,13 @@ fun LoudiusFullScreenError( modifier: Modifier = Modifier, errorText: String = stringResource(id = R.string.components_error_dialog_description), buttonText: String = stringResource(id = R.string.components_error_dialog_try_again_button), - onButtonClick: () -> Unit, + onButtonClick: () -> Unit ) { ScreenErrorWithSpacers( modifier = modifier, errorText = errorText, buttonText = buttonText, - onButtonClick = onButtonClick, + onButtonClick = onButtonClick ) } @@ -57,28 +57,28 @@ fun ScreenErrorWithSpacers( modifier: Modifier, errorText: String, buttonText: String, - onButtonClick: () -> Unit, + onButtonClick: () -> Unit ) { Column( modifier = modifier .background(color = Color.White) .padding(32.dp) .fillMaxSize(), - horizontalAlignment = Alignment.CenterHorizontally, + horizontalAlignment = Alignment.CenterHorizontally ) { Spacer(modifier = Modifier.weight(weight = 0.15f)) ErrorImage( modifier = Modifier .weight(weight = .35f) .sizeIn(maxWidth = 400.dp, maxHeight = 400.dp) - .fillMaxWidth(), + .fillMaxWidth() ) Spacer(modifier = Modifier.weight(weight = 0.05f)) ErrorText(text = errorText) LoudiusOutlinedButton( modifier = Modifier.padding(vertical = 16.dp), onClick = onButtonClick, - text = buttonText, + text = buttonText ) Spacer(modifier = Modifier.weight(weight = 0.25f)) } @@ -86,12 +86,12 @@ fun ScreenErrorWithSpacers( @Composable private fun ErrorImage( - modifier: Modifier = Modifier, + modifier: Modifier = Modifier ) { Image( modifier = modifier, painter = painterResource(id = R.drawable.components_error_image), - contentDescription = stringResource(R.string.components_error_dialog_image_content_description), + contentDescription = stringResource(R.string.components_error_dialog_image_content_description) ) } @@ -100,7 +100,7 @@ private fun ErrorText(text: String) { LoudiusText( text = text, modifier = Modifier.padding(horizontal = 16.dp, vertical = 16.dp), - style = LoudiusTextStyle.ScreenContent, + style = LoudiusTextStyle.ScreenContent ) } @@ -119,7 +119,7 @@ fun LoudiusErrorScreenCustomTextsPreview() { LoudiusTheme { LoudiusFullScreenError( errorText = "Custom title", - buttonText = "My Button Text", + buttonText = "My Button Text" ) {} } } diff --git a/components/src/main/java/com/appunite/loudius/components/components/LoudiusListItem.kt b/components/src/main/java/com/appunite/loudius/components/components/LoudiusListItem.kt index 04ecee743..4f8ad30af 100644 --- a/components/src/main/java/com/appunite/loudius/components/components/LoudiusListItem.kt +++ b/components/src/main/java/com/appunite/loudius/components/components/LoudiusListItem.kt @@ -45,21 +45,21 @@ fun LoudiusListItem( modifier: Modifier = Modifier, icon: @Composable (Modifier) -> Unit = {}, content: @Composable (Modifier) -> Unit, - action: @Composable () -> Unit = {}, + action: @Composable () -> Unit = {} ) { Row( modifier = modifier .fillMaxWidth() .background(resolveListItemBackgroundColor(index)) .bottomBorder(1.dp, MaterialTheme.colorScheme.outlineVariant) - .padding(16.dp), + .padding(16.dp) ) { icon(Modifier.align(Alignment.CenterVertically)) content( Modifier .weight(1f) .padding(start = 16.dp) - .align(Alignment.CenterVertically), + .align(Alignment.CenterVertically) ) action() } @@ -71,7 +71,7 @@ fun LoudiusListIcon(modifier: Modifier, painter: Painter, contentDescription: St painter = painter, contentDescription = contentDescription, modifier = modifier, - colorFilter = ColorFilter.tint(MaterialTheme.colorScheme.onSurface), + colorFilter = ColorFilter.tint(MaterialTheme.colorScheme.onSurface) ) } @@ -94,9 +94,9 @@ fun LoudiusListItemJustContentPreview() { LoudiusText( text = "Text", modifier = modifier, - style = LoudiusTextStyle.ListItem, + style = LoudiusTextStyle.ListItem ) - }, + } ) } @@ -109,14 +109,14 @@ fun LoudiusListItemMultiplePreview() { Column(modifier = modifier) { LoudiusText( text = "Title", - style = LoudiusTextStyle.ListItem, + style = LoudiusTextStyle.ListItem ) LoudiusText( text = "Caption", - style = LoudiusTextStyle.ListCaption, + style = LoudiusTextStyle.ListCaption ) } - }, + } ) } @@ -129,14 +129,14 @@ fun LoudiusListItemWithHeaderPreview() { Column(modifier = modifier) { LoudiusText( text = "Header text", - style = LoudiusTextStyle.ListHeader, + style = LoudiusTextStyle.ListHeader ) LoudiusText( text = "Title", - style = LoudiusTextStyle.ListItem, + style = LoudiusTextStyle.ListItem ) } - }, + } ) } @@ -149,12 +149,12 @@ fun LoudiusListItemContentAndActionPreview() { LoudiusText( text = "Text", modifier = modifier, - style = LoudiusTextStyle.ListItem, + style = LoudiusTextStyle.ListItem ) }, action = { LoudiusOutlinedButton(text = "Button") {} - }, + } ) } @@ -167,16 +167,16 @@ fun LoudiusListItemContentAndIconPreview() { LoudiusListIcon( painter = painterResource(id = componentsR.drawable.components_person_outline_24px), contentDescription = "Test", - modifier = modifier, + modifier = modifier ) }, content = { modifier -> LoudiusText( text = "Text", modifier = modifier, - style = LoudiusTextStyle.ListItem, + style = LoudiusTextStyle.ListItem ) - }, + } ) } @@ -188,18 +188,18 @@ private fun LoudiusListItemExample(index: Int) { LoudiusListIcon( modifier = modifier, painter = painterResource(id = componentsR.drawable.components_person_outline_24px), - contentDescription = "Test", + contentDescription = "Test" ) }, content = { modifier -> LoudiusText( text = "Text", modifier = modifier, - style = LoudiusTextStyle.ListItem, + style = LoudiusTextStyle.ListItem ) }, action = { LoudiusOutlinedButton(text = "Button", onClick = {}) - }, + } ) } diff --git a/components/src/main/java/com/appunite/loudius/components/components/LoudiusLoadingIndicator.kt b/components/src/main/java/com/appunite/loudius/components/components/LoudiusLoadingIndicator.kt index d06a5aae9..8794894c1 100644 --- a/components/src/main/java/com/appunite/loudius/components/components/LoudiusLoadingIndicator.kt +++ b/components/src/main/java/com/appunite/loudius/components/components/LoudiusLoadingIndicator.kt @@ -42,7 +42,7 @@ fun LoudiusLoadingIndicator(modifier: Modifier = Modifier) { val composition by rememberLottieComposition(LottieCompositionSpec.RawRes(R.raw.loading_indicator)) val progress by animateLottieCompositionAsState( composition = composition, - iterations = LottieConstants.IterateForever, + iterations = LottieConstants.IterateForever ) val loadingContentDescription = stringResource(R.string.components_loading_indicator_content_description) Box( @@ -50,14 +50,14 @@ fun LoudiusLoadingIndicator(modifier: Modifier = Modifier) { .fillMaxSize() .semantics(mergeDescendants = true) { stateDescription = loadingContentDescription - }, + } ) { LottieAnimation( composition = composition, progress = { progress }, modifier = Modifier .align(Alignment.Center) - .size(96.dp), + .size(96.dp) ) } } diff --git a/components/src/main/java/com/appunite/loudius/components/components/LoudiusOutlinedButton.kt b/components/src/main/java/com/appunite/loudius/components/components/LoudiusOutlinedButton.kt index 1ea23a4b8..cd0138cee 100644 --- a/components/src/main/java/com/appunite/loudius/components/components/LoudiusOutlinedButton.kt +++ b/components/src/main/java/com/appunite/loudius/components/components/LoudiusOutlinedButton.kt @@ -31,7 +31,7 @@ import com.appunite.loudius.components.theme.LoudiusTheme enum class LoudiusOutlinedButtonStyle { Large, - Regular, + Regular } @Composable @@ -41,12 +41,12 @@ fun LoudiusOutlinedButton( enabled: Boolean = true, icon: @Composable (() -> Unit)? = null, style: LoudiusOutlinedButtonStyle = LoudiusOutlinedButtonStyle.Regular, - onClick: () -> Unit, + onClick: () -> Unit ) { OutlinedButton( enabled = enabled, onClick = onClick, - modifier = modifier, + modifier = modifier ) { icon?.invoke() @@ -55,7 +55,7 @@ fun LoudiusOutlinedButton( modifier = Modifier .applyIf(style == LoudiusOutlinedButtonStyle.Large) { padding(8.dp) } .applyIf(style == LoudiusOutlinedButtonStyle.Regular && icon != null) { padding(start = 8.dp) }, - style = LoudiusTextStyle.Button, + style = LoudiusTextStyle.Button ) } } @@ -67,12 +67,12 @@ inline fun T.applyIf(predicate: Boolean, block: T.() -> T): T { @Composable fun LoudiusOutlinedButtonIcon( painter: Painter, - contentDescription: String, + contentDescription: String ) { Icon( painter = painter, contentDescription = contentDescription, - tint = Color.Black, + tint = Color.Black ) } @@ -82,7 +82,7 @@ fun LoudiusOutlinedButtonPreview() { LoudiusTheme { LoudiusOutlinedButton( onClick = { }, - text = "Some button", + text = "Some button" ) } } @@ -94,7 +94,7 @@ fun LoudiusOutlinedButtonLargePreview() { LoudiusOutlinedButton( onClick = { }, text = "Some button", - style = LoudiusOutlinedButtonStyle.Large, + style = LoudiusOutlinedButtonStyle.Large ) } } @@ -109,9 +109,9 @@ fun LoudiusOutlinedButtonWithIconPreview() { icon = { LoudiusOutlinedButtonIcon( painter = painterResource(id = R.drawable.components_ic_github), - "Github Icon", + "Github Icon" ) - }, + } ) } } @@ -127,9 +127,9 @@ fun LoudiusOutlinedButtonDisabledPreview() { icon = { LoudiusOutlinedButtonIcon( painter = painterResource(id = R.drawable.components_ic_github), - "Github Icon", + "Github Icon" ) - }, + } ) } } @@ -145,9 +145,9 @@ fun LoudiusOutlinedButtonWithIconLargePreview() { icon = { LoudiusOutlinedButtonIcon( painter = painterResource(id = R.drawable.components_ic_github), - "Github Icon", + "Github Icon" ) - }, + } ) } } diff --git a/components/src/main/java/com/appunite/loudius/components/components/LoudiusPlaceholderText.kt b/components/src/main/java/com/appunite/loudius/components/components/LoudiusPlaceholderText.kt index 58bd3f481..7f87198b7 100644 --- a/components/src/main/java/com/appunite/loudius/components/components/LoudiusPlaceholderText.kt +++ b/components/src/main/java/com/appunite/loudius/components/components/LoudiusPlaceholderText.kt @@ -32,11 +32,11 @@ fun LoudiusPlaceholderText(text: String) { modifier = Modifier .fillMaxSize() .padding(16.dp), - contentAlignment = Alignment.Center, + contentAlignment = Alignment.Center ) { LoudiusText( text = text, - style = LoudiusTextStyle.ScreenContent, + style = LoudiusTextStyle.ScreenContent ) } } diff --git a/components/src/main/java/com/appunite/loudius/components/components/LoudiusPullToRefreshBox.kt b/components/src/main/java/com/appunite/loudius/components/components/LoudiusPullToRefreshBox.kt index 5bb9ac05f..0114f7c8b 100644 --- a/components/src/main/java/com/appunite/loudius/components/components/LoudiusPullToRefreshBox.kt +++ b/components/src/main/java/com/appunite/loudius/components/components/LoudiusPullToRefreshBox.kt @@ -35,7 +35,7 @@ fun LoudiusPullToRefreshBox( pullRefreshState: PullRefreshState, refreshing: Boolean, modifier: Modifier = Modifier, - content: @Composable () -> Unit, + content: @Composable () -> Unit ) { Box(modifier = modifier.pullRefresh(pullRefreshState)) { content() @@ -49,7 +49,7 @@ private fun LoudiusPullToRefreshBoxPreview() { LoudiusTheme { LoudiusPullToRefreshBox( pullRefreshState = rememberPullRefreshState(refreshing = true, onRefresh = {}), - refreshing = true, + refreshing = true ) {} } } diff --git a/components/src/main/java/com/appunite/loudius/components/components/LoudiusText.kt b/components/src/main/java/com/appunite/loudius/components/components/LoudiusText.kt index 34829ff4c..040cb1bea 100644 --- a/components/src/main/java/com/appunite/loudius/components/components/LoudiusText.kt +++ b/components/src/main/java/com/appunite/loudius/components/components/LoudiusText.kt @@ -32,14 +32,14 @@ enum class LoudiusTextStyle { ListCaption, Button, TitleLarge, - ScreenContent, + ScreenContent } @Composable fun LoudiusText( text: String, modifier: Modifier = Modifier, - style: LoudiusTextStyle = LoudiusTextStyle.ListCaption, + style: LoudiusTextStyle = LoudiusTextStyle.ListCaption ) { Text( modifier = modifier, @@ -61,7 +61,7 @@ fun LoudiusText( LoudiusTextStyle.ListHeaderWarning -> MaterialTheme.colorScheme.error LoudiusTextStyle.ListCaption -> MaterialTheme.colorScheme.onSurfaceVariant else -> MaterialTheme.colorScheme.onSurface - }, + } ) } diff --git a/components/src/main/java/com/appunite/loudius/components/components/LoudiusTopAppBar.kt b/components/src/main/java/com/appunite/loudius/components/components/LoudiusTopAppBar.kt index 279c9e514..9234f2306 100644 --- a/components/src/main/java/com/appunite/loudius/components/components/LoudiusTopAppBar.kt +++ b/components/src/main/java/com/appunite/loudius/components/components/LoudiusTopAppBar.kt @@ -33,13 +33,13 @@ import com.appunite.loudius.components.theme.LoudiusTheme @Composable fun LoudiusTopAppBar( title: String, - onClickBackArrow: (() -> Unit)? = null, + onClickBackArrow: (() -> Unit)? = null ) { TopAppBar( title = { LoudiusText( text = title, - style = LoudiusTextStyle.TitleLarge, + style = LoudiusTextStyle.TitleLarge ) }, navigationIcon = { @@ -47,14 +47,14 @@ fun LoudiusTopAppBar( IconButton(onClick = onClickBackArrow) { Icon( painter = painterResource(id = R.drawable.components_arrow_back), - contentDescription = stringResource(R.string.components_common_back_button_icon_content_description), + contentDescription = stringResource(R.string.components_common_back_button_icon_content_description) ) } } }, colors = TopAppBarDefaults.centerAlignedTopAppBarColors( - containerColor = MaterialTheme.colorScheme.surface, - ), + containerColor = MaterialTheme.colorScheme.surface + ) ) } @@ -64,7 +64,7 @@ fun LoudiusTopAppBar() { LoudiusTheme { LoudiusTopAppBar( onClickBackArrow = {}, - title = "Loudius", + title = "Loudius" ) } } @@ -74,7 +74,7 @@ fun LoudiusTopAppBar() { fun LoudiusTopAppBarWithoutBackButton() { LoudiusTheme { LoudiusTopAppBar( - title = "Loudius", + title = "Loudius" ) } } diff --git a/components/src/main/java/com/appunite/loudius/components/components/utils/BottomBorderModifier.kt b/components/src/main/java/com/appunite/loudius/components/components/utils/BottomBorderModifier.kt index 7a6fec8bb..28122ca49 100644 --- a/components/src/main/java/com/appunite/loudius/components/components/utils/BottomBorderModifier.kt +++ b/components/src/main/java/com/appunite/loudius/components/components/utils/BottomBorderModifier.kt @@ -37,8 +37,8 @@ fun Modifier.bottomBorder(strokeWidth: Dp, color: Color) = composed( color = color, start = Offset(x = 0f, y = height), end = Offset(x = width, y = height), - strokeWidth = strokeWidthPx, + strokeWidth = strokeWidthPx ) } - }, + } ) diff --git a/components/src/main/java/com/appunite/loudius/components/components/utils/ReferenceDevices.kt b/components/src/main/java/com/appunite/loudius/components/components/utils/ReferenceDevices.kt index d8214f2ef..a20ea0a1b 100644 --- a/components/src/main/java/com/appunite/loudius/components/components/utils/ReferenceDevices.kt +++ b/components/src/main/java/com/appunite/loudius/components/components/utils/ReferenceDevices.kt @@ -33,30 +33,30 @@ object ReferenceDevices { showSystemUi = true, name = "small phone - portrait", group = "multi screen", - device = ReferenceDevices.SmallPhone, + device = ReferenceDevices.SmallPhone ) @Preview( showSystemUi = true, name = "small phone - landscape", group = "multi screen", - device = ReferenceDevices.SmallPhoneLandscape, + device = ReferenceDevices.SmallPhoneLandscape ) @Preview( showSystemUi = true, name = "default phone", group = "multi screen", - device = ReferenceDevices.Default, + device = ReferenceDevices.Default ) @Preview( showSystemUi = true, name = "tablet - landscape", group = "multi screen", - device = ReferenceDevices.Tablet, + device = ReferenceDevices.Tablet ) @Preview( showSystemUi = true, name = "tablet - portrait", group = "multi screen", - device = ReferenceDevices.TabletPortrait, + device = ReferenceDevices.TabletPortrait ) annotation class MultiScreenPreviews diff --git a/components/src/main/java/com/appunite/loudius/components/theme/Theme.kt b/components/src/main/java/com/appunite/loudius/components/theme/Theme.kt index 35399a09b..4852bdcc2 100644 --- a/components/src/main/java/com/appunite/loudius/components/theme/Theme.kt +++ b/components/src/main/java/com/appunite/loudius/components/theme/Theme.kt @@ -34,7 +34,7 @@ import androidx.core.view.ViewCompat private val DarkColorScheme = darkColorScheme( primary = Purple80, secondary = PurpleGrey80, - tertiary = Pink80, + tertiary = Pink80 ) private val LightColorScheme = lightColorScheme( @@ -45,7 +45,7 @@ private val LightColorScheme = lightColorScheme( onSurface = Black90, onSurfaceVariant = NeutralVariant30, outlineVariant = NeutralVariant80, - error = Error20, + error = Error20 /* Other default colors to override background = Color(0xFFFFFBFE), @@ -62,7 +62,7 @@ fun LoudiusTheme( darkTheme: Boolean = isSystemInDarkTheme(), // Dynamic color is available on Android 12+ dynamicColor: Boolean = true, - content: @Composable () -> Unit, + content: @Composable () -> Unit ) { val colorScheme = when { dynamicColor && Build.VERSION.SDK_INT >= Build.VERSION_CODES.S -> { @@ -84,6 +84,6 @@ fun LoudiusTheme( MaterialTheme( colorScheme = colorScheme, typography = Typography, - content = content, + content = content ) } diff --git a/components/src/main/java/com/appunite/loudius/components/theme/Type.kt b/components/src/main/java/com/appunite/loudius/components/theme/Type.kt index 736a01be9..37d623e3d 100644 --- a/components/src/main/java/com/appunite/loudius/components/theme/Type.kt +++ b/components/src/main/java/com/appunite/loudius/components/theme/Type.kt @@ -29,15 +29,15 @@ val Typography = Typography( fontWeight = FontWeight.Normal, fontSize = 16.sp, lineHeight = 24.sp, - letterSpacing = 0.5.sp, + letterSpacing = 0.5.sp ), titleLarge = TextStyle( fontFamily = FontFamily.Default, fontWeight = FontWeight.Normal, fontSize = 22.sp, lineHeight = 28.sp, - letterSpacing = 0.sp, - ), + letterSpacing = 0.sp + ) /* Other default text styles to override labelSmall = TextStyle( fontFamily = FontFamily.Default, diff --git a/components/src/test/java/com/appunite/loudius/PaparazziShowkaseTests.kt b/components/src/test/java/com/appunite/loudius/PaparazziShowkaseTests.kt index 5ca2bb712..259d78620 100644 --- a/components/src/test/java/com/appunite/loudius/PaparazziShowkaseTests.kt +++ b/components/src/test/java/com/appunite/loudius/PaparazziShowkaseTests.kt @@ -38,7 +38,7 @@ import org.junit.Test import org.junit.runner.RunWith class ComponentPreview( - private val showkaseBrowserComponent: ShowkaseBrowserComponent, + private val showkaseBrowserComponent: ShowkaseBrowserComponent ) { val content: @Composable () -> Unit = showkaseBrowserComponent.component override fun toString(): String = @@ -55,22 +55,22 @@ class PaparazziShowkaseTests { @get:Rule val paparazzi = Paparazzi( - deviceConfig = DeviceConfig.PIXEL_5.copy(softButtons = false), + deviceConfig = DeviceConfig.PIXEL_5.copy(softButtons = false) ) @Test fun preview_tests( @TestParameter(valuesProvider = PreviewProvider::class) componentPreview: ComponentPreview, @TestParameter(value = ["1.0", "2"]) fontScale: Float, - @TestParameter(value = ["light"]) theme: String, + @TestParameter(value = ["light"]) theme: String ) { paparazzi.snapshot { CompositionLocalProvider( LocalInspectionMode provides true, LocalDensity provides Density( density = LocalDensity.current.density, - fontScale = fontScale, - ), + fontScale = fontScale + ) ) { LoudiusTheme(darkTheme = (theme == "dark")) { Box(modifier = Modifier.background(Color.White)) {