From 5750063af166ba9a5433f56baa4051ec56ec07cc Mon Sep 17 00:00:00 2001 From: Hossain Khan Date: Mon, 20 Oct 2025 17:33:02 -0400 Subject: [PATCH] [REVERT] Adding extra data model because `retry()` logic is working --- .../trmnl/android/work/ImageUpdateResult.kt | 47 ------------------- .../trmnl/android/work/RefreshWorkResult.kt | 1 - .../android/work/TrmnlImageRefreshWorker.kt | 2 + 3 files changed, 2 insertions(+), 48 deletions(-) delete mode 100644 app/src/main/java/ink/trmnl/android/work/ImageUpdateResult.kt diff --git a/app/src/main/java/ink/trmnl/android/work/ImageUpdateResult.kt b/app/src/main/java/ink/trmnl/android/work/ImageUpdateResult.kt deleted file mode 100644 index c88e3d0..0000000 --- a/app/src/main/java/ink/trmnl/android/work/ImageUpdateResult.kt +++ /dev/null @@ -1,47 +0,0 @@ -package ink.trmnl.android.work - -import androidx.annotation.Keep -import ink.trmnl.android.data.ImageMetadata - -/** - * Sealed class representing the result of an image update operation. - * - * This provides a type-safe way to handle different outcomes of image refresh operations: - * - [Success]: New image was successfully fetched and should be displayed - * - [RateLimited]: Rate limit encountered, keep showing current image with notification - * - [Error]: Fatal error occurred, display error state - */ -@Keep -sealed class ImageUpdateResult { - /** - * Successfully fetched a new image to display. - * - * @param metadata The metadata for the new image including URL and refresh interval - */ - data class Success( - val metadata: ImageMetadata, - ) : ImageUpdateResult() - - /** - * Rate limit encountered (HTTP 429). - * Keep showing the current image and notify the user. - * - * NOTE: This usually happens for current display API. See details below: - * - https://discord.com/channels/1281055965508141100/1336424981495676978/1429827943902744618 - * - * @param message User-friendly message to display (e.g., "Rate limit (10s cooldown)") - */ - data class RateLimited( - val message: String, - ) : ImageUpdateResult() - - /** - * Fatal error occurred during image fetch. - * Display error state to the user. - * - * @param message Error message to display to the user - */ - data class Error( - val message: String, - ) : ImageUpdateResult() -} diff --git a/app/src/main/java/ink/trmnl/android/work/RefreshWorkResult.kt b/app/src/main/java/ink/trmnl/android/work/RefreshWorkResult.kt index c1ad454..4b594e3 100644 --- a/app/src/main/java/ink/trmnl/android/work/RefreshWorkResult.kt +++ b/app/src/main/java/ink/trmnl/android/work/RefreshWorkResult.kt @@ -9,5 +9,4 @@ import androidx.annotation.Keep enum class RefreshWorkResult { SUCCESS, FAILURE, - RATE_LIMITED, } diff --git a/app/src/main/java/ink/trmnl/android/work/TrmnlImageRefreshWorker.kt b/app/src/main/java/ink/trmnl/android/work/TrmnlImageRefreshWorker.kt index d3a2106..b963d32 100644 --- a/app/src/main/java/ink/trmnl/android/work/TrmnlImageRefreshWorker.kt +++ b/app/src/main/java/ink/trmnl/android/work/TrmnlImageRefreshWorker.kt @@ -87,6 +87,8 @@ class TrmnlImageRefreshWorker( // Check for rate limit errors (HTTP 429) - should retry with exponential backoff if (trmnlDisplayInfo.status.isRateLimitError()) { + // NOTE: This usually happens for current display API. See details below: + // - https://discord.com/channels/1281055965508141100/1336424981495676978/1429827943902744618 Timber.tag(TAG).w("Rate limit exceeded (HTTP 429), will retry with exponential backoff") refreshLogManager.addFailureLog( error = "Rate limit exceeded (HTTP 429) - Too many requests. Will retry automatically.",