diff --git a/mail-pagination/data/src/main/kotlin/ch/protonmail/android/mailpagination/data/scroller/ScrollerOnUpdateHandler.kt b/mail-pagination/data/src/main/kotlin/ch/protonmail/android/mailpagination/data/scroller/ScrollerOnUpdateHandler.kt index 04e01e1a9f..784d51912e 100644 --- a/mail-pagination/data/src/main/kotlin/ch/protonmail/android/mailpagination/data/scroller/ScrollerOnUpdateHandler.kt +++ b/mail-pagination/data/src/main/kotlin/ch/protonmail/android/mailpagination/data/scroller/ScrollerOnUpdateHandler.kt @@ -77,7 +77,7 @@ class ScrollerOnUpdateHandler( snapshot: List, onPossibleAppendFollowUp: () -> Unit ) { - Timber.d("$tag: Received direct response ${update.javaClass.simpleName} for Append request") + Timber.d("$tag: Received direct response ${update.debugTypeName()} for Append request") when (update) { is ScrollerUpdate.Append -> { pending.response.complete(update.items.right()) @@ -109,7 +109,7 @@ class ScrollerOnUpdateHandler( update: ScrollerUpdate, snapshot: List ) { - Timber.d("$tag: Received direct response ${update.javaClass.simpleName} for Refresh request") + Timber.d("$tag: Received direct response ${update.debugTypeName()} for Refresh request") when (update) { is ScrollerUpdate.ReplaceFrom -> { if (update.idx == 0) { @@ -133,7 +133,7 @@ class ScrollerOnUpdateHandler( update: ScrollerUpdate, snapshot: List ) { - Timber.d("$tag: Received indirect response ${update.javaClass.simpleName} for ${pending.type} request") + Timber.d("$tag: Received indirect response ${update.debugTypeName()} for ${pending.type} request") when (pending.type) { RequestType.Append -> { @@ -151,7 +151,7 @@ class ScrollerOnUpdateHandler( // Any other response is treated as indirect and we return current snapshot private fun processAppendNoneFollowUpResponse(pending: PendingRequest, update: ScrollerUpdate) { Timber.d( - "$tag: Received Append None follow up response ${update.javaClass.simpleName} " + + "$tag: Received Append None follow up response ${update.debugTypeName()} " + "for ${pending.type} request" ) @@ -166,7 +166,7 @@ class ScrollerOnUpdateHandler( } else -> { - Timber.w("$tag: Unexpected response ${update.javaClass.simpleName}, predicate failed") + Timber.w("$tag: Unexpected response ${update.debugTypeName()}, predicate failed") pending.followUpResponse?.complete(emptyList().right()) } } @@ -175,12 +175,12 @@ class ScrollerOnUpdateHandler( private fun processUpdateWhenNoPendingRequest(update: ScrollerUpdate) { if (shouldInvalidateWhenNoPending(update)) { Timber.d( - "$tag: No pending request, processing ${update.javaClass.simpleName} as invalidation" + "$tag: No pending request, processing ${update.debugTypeName()} as invalidation" ) invalidate() } else { Timber.w( - "$tag: No pending request, ignoring ${update.javaClass.simpleName} update" + "$tag: No pending request, ignoring ${update.debugTypeName()} update" ) } } diff --git a/mail-pagination/data/src/main/kotlin/ch/protonmail/android/mailpagination/data/scroller/ScrollerUpdate.kt b/mail-pagination/data/src/main/kotlin/ch/protonmail/android/mailpagination/data/scroller/ScrollerUpdate.kt index c773226e11..ee89bee14e 100644 --- a/mail-pagination/data/src/main/kotlin/ch/protonmail/android/mailpagination/data/scroller/ScrollerUpdate.kt +++ b/mail-pagination/data/src/main/kotlin/ch/protonmail/android/mailpagination/data/scroller/ScrollerUpdate.kt @@ -69,3 +69,12 @@ fun ScrollerUpdate.itemCount(): Int = when (this) { is ScrollerUpdate.ReplaceRange -> items.size is ScrollerUpdate.Error -> 0 } + +fun ScrollerUpdate<*>.debugTypeName(): String = when (this) { + is ScrollerUpdate.None -> "None" + is ScrollerUpdate.Append -> "Append" + is ScrollerUpdate.ReplaceFrom -> "ReplaceFrom" + is ScrollerUpdate.ReplaceBefore -> "ReplaceBefore" + is ScrollerUpdate.ReplaceRange -> "ReplaceRange" + is ScrollerUpdate.Error -> "Error" +}