ankidroid / ankidroid/Anki-Android

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

Đang mở
#17,551 12 bình luận 0 reaction 0 người được giao Xem trên GitHub
2.19 Help Wanted Keep Open Priority-High Sync
Ngôn ngữ chính
Kotlin
Star
11.8k
Fork
2.9k
Merge trung bình
2 ngày 3 giờ
Pull request đã merge (30 ngày)
171

Mô tả

* 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
}
}
```

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Đánh giá

Issue này chưa được đánh giá.

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.