File tree 1 file changed +14
-7
lines changed
app/src/main/java/org/blitzortung/android/app
1 file changed +14
-7
lines changed Original file line number Diff line number Diff line change @@ -140,13 +140,7 @@ class Main : FragmentActivity(), OnSharedPreferenceChangeListener {
140
140
141
141
statusComponent.indicateError(event.failed)
142
142
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)
150
144
if (updatedSequenceNumber == event.sequenceNumber) {
151
145
currentResult = event
152
146
@@ -207,6 +201,19 @@ class Main : FragmentActivity(), OnSharedPreferenceChangeListener {
207
201
}
208
202
}
209
203
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
+
210
217
private lateinit var mapFragment: MapFragment
211
218
212
219
private lateinit var binding: MainBinding
You can’t perform that action at this time.
0 commit comments