From 3128d63bb2d1655c638aa479517c7f63ecaa51da Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 25 Jun 2026 19:49:03 +0000 Subject: [PATCH 1/4] chore: bump okhttp from 4.12.0 to 5.4.0 Bumps `okhttp` from 4.12.0 to 5.4.0. Updates `com.squareup.okhttp3:okhttp` from 4.12.0 to 5.4.0 - [Changelog](https://github.com/square/okhttp/blob/master/CHANGELOG.md) - [Commits](https://github.com/square/okhttp/compare/parent-4.12.0...parent-5.4.0) Updates `com.squareup.okhttp3:mockwebserver` from 4.12.0 to 5.4.0 - [Changelog](https://github.com/square/okhttp/blob/master/CHANGELOG.md) - [Commits](https://github.com/square/okhttp/compare/parent-4.12.0...parent-5.4.0) Updates `com.squareup.okhttp3:logging-interceptor` from 4.12.0 to 5.4.0 - [Changelog](https://github.com/square/okhttp/blob/master/CHANGELOG.md) - [Commits](https://github.com/square/okhttp/compare/parent-4.12.0...parent-5.4.0) --- updated-dependencies: - dependency-name: com.squareup.okhttp3:okhttp dependency-version: 5.4.0 dependency-type: direct:production update-type: version-update:semver-major - dependency-name: com.squareup.okhttp3:mockwebserver dependency-version: 5.4.0 dependency-type: direct:production update-type: version-update:semver-major - dependency-name: com.squareup.okhttp3:logging-interceptor dependency-version: 5.4.0 dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 28ea370f..7bbd6353 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -19,7 +19,7 @@ ksp = "2.3.9" nav3Core = "1.0.1" lifecycleViewmodelNav3 = "2.10.0" leakcanary = "2.14" -okhttp = "4.12.0" +okhttp = "5.4.0" retrofit = "2.11.0" gson = "2.11.0" securityCrypto = "1.0.0" From 82bd98dfd8a461a61798b9aecb7f6ff21feebd47 Mon Sep 17 00:00:00 2001 From: M57 Date: Thu, 25 Jun 2026 23:40:08 +0300 Subject: [PATCH 2/4] Fix HermesWsClientTest teardown and OkHttp 5.x deprecation warnings - Widen catch in tearDown() from Exception to Throwable so MockWebServer.shutdown() AssertionError is caught (OkHttp 5.x enforces clean connection state on shutdown) - Increase teardown wait from 100ms to 500ms for WS close handshake - Replace deprecated RequestBody.create(null, ...) with toRequestBody() extension from Kotlin API --- .../java/com/m57/hermescontrol/data/ws/HermesWsClient.kt | 4 +++- .../m57/hermescontrol/ui/authlogin/AuthLoginViewModel.kt | 6 +++--- .../com/m57/hermescontrol/data/ws/HermesWsClientTest.kt | 5 +++-- 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/com/m57/hermescontrol/data/ws/HermesWsClient.kt b/app/src/main/java/com/m57/hermescontrol/data/ws/HermesWsClient.kt index bad4c3e2..1cd610c9 100644 --- a/app/src/main/java/com/m57/hermescontrol/data/ws/HermesWsClient.kt +++ b/app/src/main/java/com/m57/hermescontrol/data/ws/HermesWsClient.kt @@ -25,7 +25,9 @@ import kotlinx.coroutines.launch import okhttp3.CertificatePinner import okhttp3.OkHttpClient import okhttp3.Request +import okhttp3.MediaType.Companion.toMediaType import okhttp3.RequestBody +import okhttp3.RequestBody.Companion.toRequestBody import okhttp3.Response import okhttp3.WebSocket import okhttp3.WebSocketListener @@ -166,7 +168,7 @@ object HermesWsClient { Request.Builder() .url("http://${AuthManager.getHost()}:${AuthManager.getPort()}/api/auth/ws-ticket") .header("Cookie", "hermes_session_at=$sessionCookie") - .post(RequestBody.create(null, "{}")) + .post("{}".toRequestBody()) .build() val response = client.newCall(request).execute() if (response.isSuccessful) { diff --git a/app/src/main/java/com/m57/hermescontrol/ui/authlogin/AuthLoginViewModel.kt b/app/src/main/java/com/m57/hermescontrol/ui/authlogin/AuthLoginViewModel.kt index da338816..c24106c9 100644 --- a/app/src/main/java/com/m57/hermescontrol/ui/authlogin/AuthLoginViewModel.kt +++ b/app/src/main/java/com/m57/hermescontrol/ui/authlogin/AuthLoginViewModel.kt @@ -18,7 +18,7 @@ import kotlinx.coroutines.launch import kotlinx.coroutines.withContext import okhttp3.OkHttpClient import okhttp3.Request -import okhttp3.RequestBody +import okhttp3.RequestBody.Companion.toRequestBody import java.util.concurrent.TimeUnit /** @@ -341,7 +341,7 @@ class AuthLoginViewModel(private val app: Application) : ViewModel() { Request.Builder() .url("$baseUrl/auth/password-login") .header("Content-Type", "application/json") - .post(RequestBody.create(null, jsonBody)) + .post(jsonBody.toRequestBody()) .build() val loginResp = loginClient.newCall(loginReq).execute() @@ -389,7 +389,7 @@ class AuthLoginViewModel(private val app: Application) : ViewModel() { Request.Builder() .url("$baseUrl/api/auth/ws-ticket") .header("Cookie", cookieHeader) - .post(RequestBody.create(null, "{}")) + .post("{}".toRequestBody()) .build() val ticketResp = ticketClient.newCall(ticketReq).execute() diff --git a/app/src/test/java/com/m57/hermescontrol/data/ws/HermesWsClientTest.kt b/app/src/test/java/com/m57/hermescontrol/data/ws/HermesWsClientTest.kt index 0e4e8c86..531004a5 100644 --- a/app/src/test/java/com/m57/hermescontrol/data/ws/HermesWsClientTest.kt +++ b/app/src/test/java/com/m57/hermescontrol/data/ws/HermesWsClientTest.kt @@ -60,10 +60,11 @@ class HermesWsClientTest { fun tearDown() { HermesWsClient.disconnect() // Wait a bit to allow internal OkHttp coroutines to clean up before shutting down MockWebServer - Thread.sleep(100) + // Increased from 100ms for OkHttp 5.x — needs more time for the WS close handshake + Thread.sleep(500) try { mockWebServer.shutdown() - } catch (e: Exception) { + } catch (e: Throwable) { e.printStackTrace() } unmockkAll() From 3582b48bef306b569c02874669c787f265ad59ba Mon Sep 17 00:00:00 2001 From: M57 Date: Thu, 25 Jun 2026 23:48:45 +0300 Subject: [PATCH 3/4] Remove unused import (ktlint fix) --- .../main/java/com/m57/hermescontrol/data/ws/HermesWsClient.kt | 1 - 1 file changed, 1 deletion(-) diff --git a/app/src/main/java/com/m57/hermescontrol/data/ws/HermesWsClient.kt b/app/src/main/java/com/m57/hermescontrol/data/ws/HermesWsClient.kt index 1cd610c9..86020644 100644 --- a/app/src/main/java/com/m57/hermescontrol/data/ws/HermesWsClient.kt +++ b/app/src/main/java/com/m57/hermescontrol/data/ws/HermesWsClient.kt @@ -25,7 +25,6 @@ import kotlinx.coroutines.launch import okhttp3.CertificatePinner import okhttp3.OkHttpClient import okhttp3.Request -import okhttp3.MediaType.Companion.toMediaType import okhttp3.RequestBody import okhttp3.RequestBody.Companion.toRequestBody import okhttp3.Response From 544c16372994e0ab72767034953eee92b6ff8e39 Mon Sep 17 00:00:00 2001 From: M57 Date: Thu, 25 Jun 2026 23:56:41 +0300 Subject: [PATCH 4/4] Remove unused import of RequestBody (ktlint fix) --- .../main/java/com/m57/hermescontrol/data/ws/HermesWsClient.kt | 1 - 1 file changed, 1 deletion(-) diff --git a/app/src/main/java/com/m57/hermescontrol/data/ws/HermesWsClient.kt b/app/src/main/java/com/m57/hermescontrol/data/ws/HermesWsClient.kt index 86020644..1f39d56f 100644 --- a/app/src/main/java/com/m57/hermescontrol/data/ws/HermesWsClient.kt +++ b/app/src/main/java/com/m57/hermescontrol/data/ws/HermesWsClient.kt @@ -25,7 +25,6 @@ import kotlinx.coroutines.launch import okhttp3.CertificatePinner import okhttp3.OkHttpClient import okhttp3.Request -import okhttp3.RequestBody import okhttp3.RequestBody.Companion.toRequestBody import okhttp3.Response import okhttp3.WebSocket