v1.3.1 - Multi-Device Sync Fix + Performance + Restore Bug Fix
🔧 Fixed: - Multi-device JSON sync now works (thanks Thomas!) - Restore from Server skipped files (timestamp bug) - No duplicate downloads - First MD sync after export now fast ⚡ Performance: - JSON sync: 12-14s → 2-3s - Hybrid timestamp + E-Tag optimization - Matches Markdown sync speed ✨ New: - Sync status UI in MainActivity - Content-based MD import - Debug logging improvements - SyncStateManager for sync coordination 🔧 Technical: - Clear lastSyncTimestamp on restore - Clear E-Tag caches on restore - E-Tag refresh after upload - Fixed timestamp update after MD export
This commit is contained in:
136
android/config/detekt/detekt.yml
Normal file
136
android/config/detekt/detekt.yml
Normal file
@@ -0,0 +1,136 @@
|
||||
# ⚡ v1.3.1: detekt Configuration
|
||||
# Pragmatic rules for simple-notes-sync
|
||||
|
||||
build:
|
||||
maxIssues: 100 # Allow existing issues for v1.3.1 release, fix in v1.4.0
|
||||
excludeCorrectable: false
|
||||
|
||||
config:
|
||||
validation: true
|
||||
warningsAsErrors: false
|
||||
|
||||
comments:
|
||||
CommentOverPrivateProperty:
|
||||
active: false
|
||||
UndocumentedPublicClass:
|
||||
active: false
|
||||
UndocumentedPublicFunction:
|
||||
active: false
|
||||
|
||||
complexity:
|
||||
ComplexCondition:
|
||||
active: true
|
||||
threshold: 5
|
||||
CyclomaticComplexMethod:
|
||||
active: true
|
||||
threshold: 15
|
||||
ignoreSingleWhenExpression: true
|
||||
LargeClass:
|
||||
active: true
|
||||
threshold: 600 # Increased for WebDavSyncService
|
||||
LongMethod:
|
||||
active: true
|
||||
threshold: 80 # Increased for sync methods
|
||||
LongParameterList:
|
||||
active: true
|
||||
functionThreshold: 6
|
||||
constructorThreshold: 7
|
||||
NestedBlockDepth:
|
||||
active: true
|
||||
threshold: 5
|
||||
TooManyFunctions:
|
||||
active: true
|
||||
thresholdInFiles: 25
|
||||
thresholdInClasses: 25
|
||||
thresholdInInterfaces: 20
|
||||
thresholdInObjects: 20
|
||||
thresholdInEnums: 10
|
||||
|
||||
empty-blocks:
|
||||
EmptyCatchBlock:
|
||||
active: true
|
||||
allowedExceptionNameRegex: "_|(ignore|expected).*"
|
||||
EmptyFunctionBlock:
|
||||
active: true
|
||||
ignoreOverridden: true
|
||||
|
||||
exceptions:
|
||||
SwallowedException:
|
||||
active: true
|
||||
ignoredExceptionTypes:
|
||||
- "InterruptedException"
|
||||
- "MalformedURLException"
|
||||
- "NumberFormatException"
|
||||
- "ParseException"
|
||||
TooGenericExceptionCaught:
|
||||
active: true
|
||||
exceptionNames:
|
||||
- "Error"
|
||||
- "Throwable"
|
||||
allowedExceptionNameRegex: "_|(ignore|expected).*"
|
||||
|
||||
naming:
|
||||
FunctionNaming:
|
||||
active: true
|
||||
functionPattern: "[a-zA-Z][a-zA-Z0-9]*"
|
||||
VariableNaming:
|
||||
active: true
|
||||
variablePattern: "[a-z][A-Za-z0-9]*"
|
||||
PackageNaming:
|
||||
active: true
|
||||
packagePattern: "[a-z]+(\\.[a-z][A-Za-z0-9]*)*"
|
||||
|
||||
performance:
|
||||
SpreadOperator:
|
||||
active: false # Spread operator is fine in most cases
|
||||
|
||||
potential-bugs:
|
||||
CastToNullableType:
|
||||
active: true
|
||||
EqualsWithHashCodeExist:
|
||||
active: true
|
||||
UnconditionalJumpStatementInLoop:
|
||||
active: true
|
||||
|
||||
style:
|
||||
ForbiddenComment:
|
||||
active: true
|
||||
comments:
|
||||
- "FIXME:"
|
||||
- "STOPSHIP:"
|
||||
allowedPatterns: ""
|
||||
MagicNumber:
|
||||
active: true
|
||||
ignoreNumbers:
|
||||
- "-1"
|
||||
- "0"
|
||||
- "1"
|
||||
- "2"
|
||||
- "100"
|
||||
- "1000"
|
||||
ignoreHashCodeFunction: true
|
||||
ignorePropertyDeclaration: true
|
||||
ignoreLocalVariableDeclaration: true
|
||||
ignoreAnnotation: true
|
||||
ignoreEnums: true
|
||||
ignoreRanges: true
|
||||
ignoreExtensionFunctions: true
|
||||
MaxLineLength:
|
||||
active: true
|
||||
maxLineLength: 120
|
||||
excludePackageStatements: true
|
||||
excludeImportStatements: true
|
||||
ReturnCount:
|
||||
active: true
|
||||
max: 4
|
||||
excludedFunctions: []
|
||||
excludeLabeled: true
|
||||
excludeReturnFromLambda: true
|
||||
excludeGuardClauses: true
|
||||
UnusedImports:
|
||||
active: true
|
||||
UnusedPrivateMember:
|
||||
active: true
|
||||
allowedNames: "_.*"
|
||||
WildcardImport:
|
||||
active: false # Allow wildcard imports
|
||||
Reference in New Issue
Block a user