fix: robustez de sync comprovada no emulador (duplicatas eliminadas)
- ApiClient: IllegalArgumentException de URL vira Network (banner, sem crash); DTOs com listas nullable (servidor podia enviar categories/tags: null) - SyncEngine: mutex global serializa runs (logs BEGIN/END); resolveConflict idempotente (não duplica cópia de conflito); registra rekey:<local>→<server> em meta para o editor aberto sobreviver à troca de id do create - ViewModel: resolve(id) em save/delete; createLocal enfileira create único - Outbox: índice único (noteId, op); DB v2 com fallbackToDestructiveMigration - proguard: regras corretas de kotlinx.serialization (Companion.serializer) - README: seção 'Testado em' com os cenários de emulador executados
This commit is contained in:
1 parent
2f63c7a2f5
commit
9e0bcc3e9b
9 files changed
+133
-44
No files matched your search
Vendored
+15
-4
@@ -1,11 +1,22 @@
|
||||
# OkHttp + kotlinx.serialization: keep generic metadata
|
||||
# OkHttp + okio
|
||||
-dontwarn okhttp3.**
|
||||
-dontwarn okio.**
|
||||
-dontwarn org.jetbrains.annotations.**
|
||||
|
||||
# kotlinx.serialization (R8): manter Companion.serializer() e anotados
|
||||
-keepattributes *Annotation*, InnerClasses, Signature, RuntimeVisibleAnnotations, AnnotationDefault
|
||||
-keepclassmembers class com.labexposed.notas.data.remote.** {
|
||||
*** Companion;
|
||||
|
||||
-if @kotlinx.serialization.Serializable class **
|
||||
-keepclassmembers class <1> {
|
||||
static <1>$Companion Companion;
|
||||
}
|
||||
-keepclasseswithmembers class com.labexposed.notas.data.remote.** {
|
||||
-if @kotlinx.serialization.Serializable class ** {
|
||||
static **$Companion Companion;
|
||||
}
|
||||
-keepclassmembers class <2>$Companion {
|
||||
kotlinx.serialization.KSerializer serializer(...);
|
||||
}
|
||||
-keep,includedescriptorclasses class com.labexposed.notas.data.remote.** { *; }
|
||||
|
||||
# Room / WorkManager geram código e refletem pouco; regras padrão bastam
|
||||
-keep class com.labexposed.notas.data.local.** { *; }
|
||||
Reference in new issue
Block a user