ankidroid / ankidroid/Anki-Android

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

Abierto
#17,551 12 comentarios 0 reacciones 0 asignados Ver en GitHub
2.19 Help Wanted Keep Open Priority-High Sync
Lenguaje dominante
Kotlin
Estrellas
11.8k
Forks
2.9k
Merge medio
2 d 3 h
PR fusionados (30 d)
171

Descripción

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

Guía de contribución

Abrir la guía de contribución

Evaluación

Este issue todavía no se ha evaluado.

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.