From df444b4347ce5ed15b8c3c24ec4473434b619524 Mon Sep 17 00:00:00 2001 From: Hafiz Date: Wed, 2 Jul 2025 15:18:12 -0500 Subject: [PATCH 1/3] Simplifies authentication failure check Removes a redundant check for invalid credentials during authentication failure, streamlining the logic. --- .../android/habitica/data/implementation/ApiClientImpl.kt | 1 - 1 file changed, 1 deletion(-) diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/data/implementation/ApiClientImpl.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/data/implementation/ApiClientImpl.kt index a6ca8de8c..84dd7e0d2 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/data/implementation/ApiClientImpl.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/data/implementation/ApiClientImpl.kt @@ -177,7 +177,6 @@ class ApiClientImpl( || errField.equals("invalidCredentials", ignoreCase = true) || msgField.contains("invalidCredentials", ignoreCase = true) || msgField.contains("Missing authentication headers", ignoreCase = true) - || msgField.contains("There is no account that uses those credentials", ignoreCase = true) if (shouldLogout) { HabiticaBaseApplication.logout(context) From f544f89c3a7a7e9e7acc765d3d65b08560e091b6 Mon Sep 17 00:00:00 2001 From: Hafiz Date: Wed, 2 Jul 2025 15:44:01 -0500 Subject: [PATCH 2/3] Revert "Simplifies authentication failure check" This reverts commit df444b4347ce5ed15b8c3c24ec4473434b619524. --- .../android/habitica/data/implementation/ApiClientImpl.kt | 1 + 1 file changed, 1 insertion(+) diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/data/implementation/ApiClientImpl.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/data/implementation/ApiClientImpl.kt index 84dd7e0d2..a6ca8de8c 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/data/implementation/ApiClientImpl.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/data/implementation/ApiClientImpl.kt @@ -177,6 +177,7 @@ class ApiClientImpl( || errField.equals("invalidCredentials", ignoreCase = true) || msgField.contains("invalidCredentials", ignoreCase = true) || msgField.contains("Missing authentication headers", ignoreCase = true) + || msgField.contains("There is no account that uses those credentials", ignoreCase = true) if (shouldLogout) { HabiticaBaseApplication.logout(context) From 6d076888a1d1f6da3c0c48ffe0fcdafcc1416853 Mon Sep 17 00:00:00 2001 From: Hafiz Date: Wed, 2 Jul 2025 15:50:26 -0500 Subject: [PATCH 3/3] Handles group plans in unauthorized error check --- .../habitica/data/implementation/ApiClientImpl.kt | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/data/implementation/ApiClientImpl.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/data/implementation/ApiClientImpl.kt index a6ca8de8c..cc1de1710 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/data/implementation/ApiClientImpl.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/data/implementation/ApiClientImpl.kt @@ -159,7 +159,8 @@ class ApiClientImpl( when (response.code) { 401 -> { val path = response.request.url.encodedPath - if (!path.contains("/user/auth/update-password")) { + + if (!path.contains("/user/auth/update-password") && !path.contains("group-plans")) { val bodyStr = try { response.peekBody(1024).string() } catch (_: Exception) { @@ -172,10 +173,10 @@ class ApiClientImpl( } catch (_: Exception) { "" to "" } - + val shouldLogout = errField.equals("missingAuthHeaders", ignoreCase = true) - || errField.equals("invalidCredentials", ignoreCase = true) - || msgField.contains("invalidCredentials", ignoreCase = true) + || errField.equals("invalidCredentials", ignoreCase = true) + || msgField.contains("invalidCredentials", ignoreCase = true) || msgField.contains("Missing authentication headers", ignoreCase = true) || msgField.contains("There is no account that uses those credentials", ignoreCase = true)