ankidroid / ankidroid/Anki-Android

Very long 'Processing' dialog if AutoSync is enabled and AnkiWeb is down. ANR if no notification permissions

オープン
#17,551 コメント 12 件 リアクション 0 件 担当者 0 名 GitHub で見る
2.19 Help Wanted Keep Open Priority-High Sync
主要言語
Kotlin
スター
11.8k
フォーク
2.9k
平均マージ
2日 3時間
マージ済み PR(30日)
171

説明

* Enable autosync
* Open AnkiDroid when AnkiWeb is down
* "Processing" dialog can't be cancelled and took ~15 second to close
* Maybe longer, AnkiWeb was back up by the time it completed

A user reported that the app was hung, this may be related

* Related: #17493

Reproduction patch:

```patch
Index: AnkiDroid/src/main/java/com/ichi2/anki/Sync.kt
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
diff --git a/AnkiDroid/src/main/java/com/ichi2/anki/Sync.kt b/AnkiDroid/src/main/java/com/ichi2/anki/Sync.kt
--- a/AnkiDroid/src/main/java/com/ichi2/anki/Sync.kt (revision 951615f7753ca8b5710f15cce2bba2a9a114f91c)
+++ b/AnkiDroid/src/main/java/com/ichi2/anki/Sync.kt (date 1733378352598)
@@ -23,6 +23,7 @@
import androidx.annotation.StringRes
import androidx.appcompat.app.AlertDialog
import androidx.core.content.edit
+import anki.backend.backendError
import anki.sync.SyncAuth
import anki.sync.SyncCollectionResponse
import anki.sync.syncAuth
@@ -50,6 +51,7 @@
import kotlinx.coroutines.withContext
import net.ankiweb.rsdroid.Backend
import net.ankiweb.rsdroid.exceptions.BackendInterruptedException
+import net.ankiweb.rsdroid.exceptions.BackendNetworkException
import net.ankiweb.rsdroid.exceptions.BackendSyncException
import timber.log.Timber

@@ -223,6 +225,12 @@
manualCancelButton = R.string.dialog_cancel
) {
withCol {
+ Timber.d("Simulating AnkiWeb wait")
+ Thread.sleep(10_000)
+ Timber.d("Simulating AnkiWeb timeout error")
+ throw BackendNetworkException(backendError {
+ message = "testing timeout"
+ })
syncCollection(auth2, media = false) // media is synced by SyncMediaWorker
}
}
```

コントリビューションガイド

コントリビューションガイドを開く

評価

この issue はまだ評価されていません。

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。