diff --git a/app/src/main/java/org/blitzortung/android/app/Main.kt b/app/src/main/java/org/blitzortung/android/app/Main.kt index 1b4b363d..d39b1c35 100644 --- a/app/src/main/java/org/blitzortung/android/app/Main.kt +++ b/app/src/main/java/org/blitzortung/android/app/Main.kt @@ -142,10 +142,16 @@ class Main : FragmentActivity(), OnSharedPreferenceChangeListener { if (!event.failed && event.sequenceNumber != null) { val updatedSequenceNumber = if (isAtLeast(24)) { - currentSequenceNumber.updateAndGet { previousSequenceNumber -> - if (previousSequenceNumber < event.sequenceNumber) event.sequenceNumber else previousSequenceNumber - }} else { - if (currentSequenceNumber.get() < event.sequenceNumber) event.sequenceNumber else currentSequenceNumber.get() + currentSequenceNumber.updateAndGet { previousSequenceNumber -> + if (previousSequenceNumber < event.sequenceNumber) event.sequenceNumber else previousSequenceNumber + } + } else { + synchronized(currentSequenceNumber) { + val previousSequenceNumber = currentSequenceNumber.get() + val updated = if (previousSequenceNumber < event.sequenceNumber) event.sequenceNumber else previousSequenceNumber + currentSequenceNumber.set(updated) + updated + } } if (updatedSequenceNumber == event.sequenceNumber) { currentResult = event