mirror of
				https://github.com/commons-app/apps-android-commons.git
				synced 2025-10-31 14:53:59 +01:00 
			
		
		
		
	temporary fixes part five
This commit is contained in:
		
							parent
							
								
									0fe7388bde
								
							
						
					
					
						commit
						8f00d75604
					
				
					 1 changed files with 18 additions and 16 deletions
				
			
		|  | @ -14,6 +14,7 @@ import kotlinx.coroutines.channels.Channel | |||
| import kotlinx.coroutines.delay | ||||
| import kotlinx.coroutines.ensureActive | ||||
| import kotlinx.coroutines.flow.MutableStateFlow | ||||
| import kotlinx.coroutines.flow.asStateFlow | ||||
| import kotlinx.coroutines.flow.collectLatest | ||||
| import kotlinx.coroutines.launch | ||||
| import kotlinx.coroutines.withContext | ||||
|  | @ -29,7 +30,7 @@ class JustExperimenting(frag: NearbyParentFragment) { | |||
|     private val skipLimit = 2 | ||||
|     private val skipDelayMs = 1000L | ||||
| 
 | ||||
|     private var markersState = MutableStateFlow(emptyList<Marker>()) | ||||
|     private var markersStateChannel = Channel<List<Marker>>(Channel.CONFLATED) | ||||
|     private val markerBaseDataChannel = Channel<ArrayList<MarkerPlaceGroup>>(Channel.CONFLATED) | ||||
| 
 | ||||
|     private val clickedPlaces = CopyOnWriteArrayList<Place>() | ||||
|  | @ -40,23 +41,24 @@ class JustExperimenting(frag: NearbyParentFragment) { | |||
|     fun loadNewMarkers(es: ArrayList<MarkerPlaceGroup>) = scope.launch { | ||||
|         markerBaseDataChannel.send(es) | ||||
|     } | ||||
|     fun updateMarkersState(markers: List<Marker>){ | ||||
|         Timber.tag("nearbyperformancefixes").d("should be here in a bit") | ||||
|         markersState.value = markers | ||||
|     suspend fun updateMarkersState(markers: List<Marker>){ | ||||
|         markersStateChannel.send(markers) | ||||
|     } | ||||
|     init { | ||||
|         scope.launch(Dispatchers.Default) { | ||||
|             markersState.collectLatest { | ||||
|                 Timber.tag("nearbyperformancefixes").d("here lol") | ||||
|                 if (it.isEmpty()) { | ||||
|                     return@collectLatest | ||||
|             var pinStateUpdateJob: Job? = null | ||||
|             for (markers in markersStateChannel) { | ||||
|                 pinStateUpdateJob?.cancel() | ||||
|                 pinStateUpdateJob = launch { | ||||
|                     if (markers.isEmpty()) { | ||||
|                         return@launch | ||||
|                     } | ||||
|                     if (skippedCount++ < skipLimit) { | ||||
|                         delay(skipDelayMs) | ||||
|                     } | ||||
|                     skippedCount = 0 | ||||
|                     frag.replaceMarkerOverlays(markers) | ||||
|                 } | ||||
| //                if (skippedCount++ < skipLimit) { | ||||
| //                    delay(skipDelayMs) | ||||
| //                } | ||||
|                 skippedCount = 0 | ||||
|                 Timber.tag("temptagtwo").d("here: ${it.size}") | ||||
|                 frag.replaceMarkerOverlays(it) | ||||
|             } | ||||
|         } | ||||
|         scope.launch(Dispatchers.Default) { | ||||
|  | @ -103,9 +105,7 @@ class JustExperimenting(frag: NearbyParentFragment) { | |||
|         val batchSize = 3 | ||||
|         var currentIndex = 0 | ||||
|         val endIndex = markerBaseDataList.lastIndex | ||||
|         Timber.tag("nearbyperformancefixes").d("loaded %d gray pins", endIndex+1) | ||||
|         while (currentIndex <= endIndex) { | ||||
|             Timber.tag("nearbyperformancefixes").d("loading pins from %d", currentIndex) | ||||
|             scope.ensureActive() | ||||
|             val toUpdateMarkersFrom = currentIndex | ||||
| 
 | ||||
|  | @ -155,6 +155,7 @@ class JustExperimenting(frag: NearbyParentFragment) { | |||
|                 val clickedPlacesBacklog = hashMapOf<LatLng, Place>() | ||||
|                 while (clickedPlacesIndex < clickedPlaces.size) { | ||||
|                     clickedPlacesBacklog.put(clickedPlaces[clickedPlacesIndex].location, clickedPlaces[clickedPlacesIndex]) | ||||
|                     ++clickedPlacesIndex | ||||
|                 } | ||||
|                 for (i in currentIndex..endIndex) { | ||||
|                     if (clickedPlacesBacklog.containsKey(markerBaseDataList[i].place.location)) { | ||||
|  | @ -168,6 +169,7 @@ class JustExperimenting(frag: NearbyParentFragment) { | |||
|     } | ||||
| 
 | ||||
|     private fun performCleanup() { | ||||
|         markersStateChannel.close() | ||||
|         markerBaseDataChannel.close() | ||||
|     } | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 savsch
						savsch