From 01787b6229ab994b331eb7618bde7a1c90272965 Mon Sep 17 00:00:00 2001 From: Koen Date: Wed, 22 Nov 2023 12:46:39 +0100 Subject: [PATCH] Added backfill exception printing to announcements. --- .../platformplayer/Extensions_Polycentric.kt | 22 +++++++++++++++++++ .../PolycentricCreateProfileActivity.kt | 3 ++- .../activities/PolycentricProfileActivity.kt | 3 ++- .../platformplayer/dialogs/CommentDialog.kt | 3 ++- .../mainactivity/main/PostDetailFragment.kt | 3 ++- .../mainactivity/main/VideoDetailView.kt | 2 +- .../views/adapters/CommentViewHolder.kt | 2 +- dep/polycentricandroid | 2 +- 8 files changed, 33 insertions(+), 7 deletions(-) diff --git a/app/src/main/java/com/futo/platformplayer/Extensions_Polycentric.kt b/app/src/main/java/com/futo/platformplayer/Extensions_Polycentric.kt index 77a73917..7737df09 100644 --- a/app/src/main/java/com/futo/platformplayer/Extensions_Polycentric.kt +++ b/app/src/main/java/com/futo/platformplayer/Extensions_Polycentric.kt @@ -1,6 +1,11 @@ package com.futo.platformplayer +import com.futo.platformplayer.logging.Logger +import com.futo.platformplayer.states.AnnouncementType +import com.futo.platformplayer.states.StateAnnouncement import com.futo.platformplayer.states.StatePlatform +import com.futo.platformplayer.views.adapters.CommentViewHolder +import com.futo.polycentric.core.ProcessHandle import userpackage.Protocol import kotlin.math.abs import kotlin.math.min @@ -39,4 +44,21 @@ fun Protocol.Claim.resolveChannelUrl(): String? { fun Protocol.Claim.resolveChannelUrls(): List { return StatePlatform.instance.resolveChannelUrlsByClaimTemplates(this.claimType.toInt(), this.claimFieldsList.associate { Pair(it.key.toInt(), it.value) }) +} + +suspend fun ProcessHandle.fullyBackfillServersAnnounceExceptions() { + val exceptions = fullyBackfillServers() + for (pair in exceptions) { + val server = pair.key + val exception = pair.value + + StateAnnouncement.instance.registerAnnouncement( + "backfill-failed", + "Backfill failed", + "Failed to backfill server $server. $exception", + AnnouncementType.SESSION_RECURRING + ); + + Logger.e("Backfill", "Failed to backfill server $server.", exception) + } } \ No newline at end of file diff --git a/app/src/main/java/com/futo/platformplayer/activities/PolycentricCreateProfileActivity.kt b/app/src/main/java/com/futo/platformplayer/activities/PolycentricCreateProfileActivity.kt index 2129eb75..32b4f42a 100644 --- a/app/src/main/java/com/futo/platformplayer/activities/PolycentricCreateProfileActivity.kt +++ b/app/src/main/java/com/futo/platformplayer/activities/PolycentricCreateProfileActivity.kt @@ -10,6 +10,7 @@ import androidx.appcompat.app.AppCompatActivity import androidx.lifecycle.lifecycleScope import com.futo.platformplayer.R import com.futo.platformplayer.UIDialogs +import com.futo.platformplayer.fullyBackfillServersAnnounceExceptions import com.futo.platformplayer.logging.Logger import com.futo.platformplayer.setNavigationBarColorAndIcons import com.futo.platformplayer.states.StateApp @@ -82,7 +83,7 @@ class PolycentricCreateProfileActivity : AppCompatActivity() { try { Logger.i(TAG, "Started backfill"); - processHandle.fullyBackfillServers(); + processHandle.fullyBackfillServersAnnounceExceptions(); Logger.i(TAG, "Finished backfill"); } catch (e: Throwable) { Logger.e(TAG, getString(R.string.failed_to_fully_backfill_servers), e); diff --git a/app/src/main/java/com/futo/platformplayer/activities/PolycentricProfileActivity.kt b/app/src/main/java/com/futo/platformplayer/activities/PolycentricProfileActivity.kt index 4c03d06d..b207da44 100644 --- a/app/src/main/java/com/futo/platformplayer/activities/PolycentricProfileActivity.kt +++ b/app/src/main/java/com/futo/platformplayer/activities/PolycentricProfileActivity.kt @@ -19,6 +19,7 @@ import com.futo.platformplayer.R import com.futo.platformplayer.UIDialogs import com.futo.platformplayer.dialogs.CommentDialog import com.futo.platformplayer.dp +import com.futo.platformplayer.fullyBackfillServersAnnounceExceptions import com.futo.platformplayer.images.GlideHelper.Companion.crossfade import com.futo.platformplayer.logging.Logger import com.futo.platformplayer.selectBestImage @@ -194,7 +195,7 @@ class PolycentricProfileActivity : AppCompatActivity() { if (hasChanges) { try { Logger.i(TAG, "Started backfill"); - processHandle.fullyBackfillServers(); + processHandle.fullyBackfillServersAnnounceExceptions(); Logger.i(TAG, "Finished backfill"); withContext(Dispatchers.Main) { UIDialogs.toast(this@PolycentricProfileActivity, getString(R.string.changes_have_been_saved)); diff --git a/app/src/main/java/com/futo/platformplayer/dialogs/CommentDialog.kt b/app/src/main/java/com/futo/platformplayer/dialogs/CommentDialog.kt index 2c78b694..584c8465 100644 --- a/app/src/main/java/com/futo/platformplayer/dialogs/CommentDialog.kt +++ b/app/src/main/java/com/futo/platformplayer/dialogs/CommentDialog.kt @@ -20,6 +20,7 @@ import com.futo.platformplayer.api.media.models.comments.PolycentricPlatformComm import com.futo.platformplayer.api.media.models.ratings.RatingLikeDislikes import com.futo.platformplayer.constructs.Event1 import com.futo.platformplayer.dp +import com.futo.platformplayer.fullyBackfillServersAnnounceExceptions import com.futo.platformplayer.logging.Logger import com.futo.platformplayer.selectBestImage import com.futo.platformplayer.states.StateApp @@ -97,7 +98,7 @@ class CommentDialog(context: Context?, val contextUrl: String, val ref: Protocol StateApp.instance.scopeOrNull?.launch(Dispatchers.IO) { try { Logger.i(TAG, "Started backfill"); - processHandle.fullyBackfillServers() + processHandle.fullyBackfillServersAnnounceExceptions() Logger.i(TAG, "Finished backfill"); } catch (e: Throwable) { Logger.e(TAG, "Failed to backfill servers.", e); diff --git a/app/src/main/java/com/futo/platformplayer/fragment/mainactivity/main/PostDetailFragment.kt b/app/src/main/java/com/futo/platformplayer/fragment/mainactivity/main/PostDetailFragment.kt index 4e8d8bca..b35cd912 100644 --- a/app/src/main/java/com/futo/platformplayer/fragment/mainactivity/main/PostDetailFragment.kt +++ b/app/src/main/java/com/futo/platformplayer/fragment/mainactivity/main/PostDetailFragment.kt @@ -31,6 +31,7 @@ import com.futo.platformplayer.api.media.models.ratings.RatingLikes import com.futo.platformplayer.constructs.TaskHandler import com.futo.platformplayer.dp import com.futo.platformplayer.fixHtmlWhitespace +import com.futo.platformplayer.fullyBackfillServersAnnounceExceptions import com.futo.platformplayer.images.GlideHelper.Companion.crossfade import com.futo.platformplayer.logging.Logger import com.futo.platformplayer.polycentric.PolycentricCache @@ -363,7 +364,7 @@ class PostDetailFragment : MainFragment { StateApp.instance.scopeOrNull?.launch(Dispatchers.IO) { try { Logger.i(TAG, "Started backfill"); - args.processHandle.fullyBackfillServers(); + args.processHandle.fullyBackfillServersAnnounceExceptions(); Logger.i(TAG, "Finished backfill"); } catch (e: Throwable) { Logger.e(TAG, "Failed to backfill servers", e) diff --git a/app/src/main/java/com/futo/platformplayer/fragment/mainactivity/main/VideoDetailView.kt b/app/src/main/java/com/futo/platformplayer/fragment/mainactivity/main/VideoDetailView.kt index 3eb39e43..d529062d 100644 --- a/app/src/main/java/com/futo/platformplayer/fragment/mainactivity/main/VideoDetailView.kt +++ b/app/src/main/java/com/futo/platformplayer/fragment/mainactivity/main/VideoDetailView.kt @@ -1181,7 +1181,7 @@ class VideoDetailView : ConstraintLayout { fragment.lifecycleScope.launch(Dispatchers.IO) { try { Logger.i(TAG, "Started backfill"); - args.processHandle.fullyBackfillServers(); + args.processHandle.fullyBackfillServersAnnounceExceptions(); Logger.i(TAG, "Finished backfill"); } catch (e: Throwable) { Logger.e(TAG, "Failed to backfill servers", e) diff --git a/app/src/main/java/com/futo/platformplayer/views/adapters/CommentViewHolder.kt b/app/src/main/java/com/futo/platformplayer/views/adapters/CommentViewHolder.kt index 65aa180e..79660207 100644 --- a/app/src/main/java/com/futo/platformplayer/views/adapters/CommentViewHolder.kt +++ b/app/src/main/java/com/futo/platformplayer/views/adapters/CommentViewHolder.kt @@ -75,7 +75,7 @@ class CommentViewHolder : ViewHolder { StateApp.instance.scopeOrNull?.launch(Dispatchers.IO) { try { Logger.i(TAG, "Started backfill"); - args.processHandle.fullyBackfillServers(); + args.processHandle.fullyBackfillServersAnnounceExceptions(); Logger.i(TAG, "Finished backfill"); } catch (e: Throwable) { Logger.e(TAG, "Failed to backfill servers.", e) diff --git a/dep/polycentricandroid b/dep/polycentricandroid index 2085892a..839e4c4a 160000 --- a/dep/polycentricandroid +++ b/dep/polycentricandroid @@ -1 +1 @@ -Subproject commit 2085892acb899cf3e1d8f9f0e04c983d86de0e60 +Subproject commit 839e4c4a4f5ed6cb6f68047f88b26c5831e6e703