Skip to content

Commit bbf9ab7

Browse files
committed
fix pre API 24 behaviour
1 parent 668a004 commit bbf9ab7

File tree

1 file changed

+14
-7
lines changed
  • app/src/main/java/org/blitzortung/android/app

1 file changed

+14
-7
lines changed

app/src/main/java/org/blitzortung/android/app/Main.kt

+14-7
Original file line numberDiff line numberDiff line change
@@ -140,13 +140,7 @@ class Main : FragmentActivity(), OnSharedPreferenceChangeListener {
140140

141141
statusComponent.indicateError(event.failed)
142142
if (!event.failed && event.sequenceNumber != null) {
143-
val updatedSequenceNumber =
144-
if (isAtLeast(24)) {
145-
currentSequenceNumber.updateAndGet { previousSequenceNumber ->
146-
if (previousSequenceNumber < event.sequenceNumber) event.sequenceNumber else previousSequenceNumber
147-
}} else {
148-
if (currentSequenceNumber.get() < event.sequenceNumber) event.sequenceNumber else currentSequenceNumber.get()
149-
}
143+
val updatedSequenceNumber = determineUpdatedSequenceNumber(event.sequenceNumber)
150144
if (updatedSequenceNumber == event.sequenceNumber) {
151145
currentResult = event
152146

@@ -207,6 +201,19 @@ class Main : FragmentActivity(), OnSharedPreferenceChangeListener {
207201
}
208202
}
209203

204+
private fun determineUpdatedSequenceNumber(sequenceNumber: Long) = if (isAtLeast(24)) {
205+
currentSequenceNumber.updateAndGet { previousSequenceNumber ->
206+
if (previousSequenceNumber < sequenceNumber) sequenceNumber else previousSequenceNumber
207+
}
208+
} else {
209+
synchronized(currentSequenceNumber) {
210+
val previousSequenceNumber = currentSequenceNumber.get()
211+
val updated = if (previousSequenceNumber < sequenceNumber) sequenceNumber else previousSequenceNumber
212+
currentSequenceNumber.set(updated)
213+
updated
214+
}
215+
}
216+
210217
private lateinit var mapFragment: MapFragment
211218

212219
private lateinit var binding: MainBinding

0 commit comments

Comments
 (0)