mirror of
https://github.com/commons-app/apps-android-commons.git
synced 2025-10-29 22:03:55 +01:00
temporary fixes part one
This commit is contained in:
parent
e8970ab7f2
commit
f541debe8a
4 changed files with 119 additions and 6 deletions
|
|
@ -286,6 +286,7 @@ public class NearbyController extends MapController {
|
||||||
if (placeList == null) {
|
if (placeList == null) {
|
||||||
return baseMarkersList;
|
return baseMarkersList;
|
||||||
}
|
}
|
||||||
|
Timber.tag("temptagthree").e("loadAttractionsFromLocationToBaseMarkerOptions called with %d places", placeList.size());
|
||||||
placeList = placeList.subList(0, Math.min(placeList.size(), MAX_RESULTS));
|
placeList = placeList.subList(0, Math.min(placeList.size(), MAX_RESULTS));
|
||||||
for (Place place : placeList) {
|
for (Place place : placeList) {
|
||||||
BaseMarker baseMarker = new BaseMarker();
|
BaseMarker baseMarker = new BaseMarker();
|
||||||
|
|
|
||||||
|
|
@ -28,6 +28,7 @@ import android.os.Build.VERSION_CODES;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.os.Environment;
|
import android.os.Environment;
|
||||||
import android.os.Handler;
|
import android.os.Handler;
|
||||||
|
import android.os.Looper;
|
||||||
import android.preference.PreferenceManager;
|
import android.preference.PreferenceManager;
|
||||||
import android.provider.Settings;
|
import android.provider.Settings;
|
||||||
import android.text.Html;
|
import android.text.Html;
|
||||||
|
|
@ -95,6 +96,7 @@ import fr.free.nrw.commons.nearby.PlacesRepository;
|
||||||
import fr.free.nrw.commons.nearby.WikidataFeedback;
|
import fr.free.nrw.commons.nearby.WikidataFeedback;
|
||||||
import fr.free.nrw.commons.nearby.contract.NearbyParentFragmentContract;
|
import fr.free.nrw.commons.nearby.contract.NearbyParentFragmentContract;
|
||||||
import fr.free.nrw.commons.nearby.fragments.AdvanceQueryFragment.Callback;
|
import fr.free.nrw.commons.nearby.fragments.AdvanceQueryFragment.Callback;
|
||||||
|
import fr.free.nrw.commons.nearby.helper.JustExperimenting;
|
||||||
import fr.free.nrw.commons.nearby.model.BottomSheetItem;
|
import fr.free.nrw.commons.nearby.model.BottomSheetItem;
|
||||||
import fr.free.nrw.commons.nearby.presenter.NearbyParentFragmentPresenter;
|
import fr.free.nrw.commons.nearby.presenter.NearbyParentFragmentPresenter;
|
||||||
import fr.free.nrw.commons.upload.FileUtils;
|
import fr.free.nrw.commons.upload.FileUtils;
|
||||||
|
|
@ -125,6 +127,7 @@ import java.util.List;
|
||||||
import java.util.Locale;
|
import java.util.Locale;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
|
import java.util.concurrent.CopyOnWriteArrayList;
|
||||||
import java.util.concurrent.TimeUnit;
|
import java.util.concurrent.TimeUnit;
|
||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
import javax.inject.Named;
|
import javax.inject.Named;
|
||||||
|
|
@ -155,6 +158,8 @@ public class NearbyParentFragment extends CommonsDaggerSupportFragment
|
||||||
|
|
||||||
FragmentNearbyParentBinding binding;
|
FragmentNearbyParentBinding binding;
|
||||||
|
|
||||||
|
private JustExperimenting justExperimenting;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
LocationServiceManager locationManager;
|
LocationServiceManager locationManager;
|
||||||
@Inject
|
@Inject
|
||||||
|
|
@ -326,6 +331,8 @@ public class NearbyParentFragment extends CommonsDaggerSupportFragment
|
||||||
binding = FragmentNearbyParentBinding.inflate(inflater, container, false);
|
binding = FragmentNearbyParentBinding.inflate(inflater, container, false);
|
||||||
view = binding.getRoot();
|
view = binding.getRoot();
|
||||||
|
|
||||||
|
justExperimenting = new JustExperimenting(this);
|
||||||
|
|
||||||
initNetworkBroadCastReceiver();
|
initNetworkBroadCastReceiver();
|
||||||
presenter = new NearbyParentFragmentPresenter(bookmarkLocationDao);
|
presenter = new NearbyParentFragmentPresenter(bookmarkLocationDao);
|
||||||
progressDialog = new ProgressDialog(getActivity());
|
progressDialog = new ProgressDialog(getActivity());
|
||||||
|
|
@ -1508,6 +1515,7 @@ public class NearbyParentFragment extends CommonsDaggerSupportFragment
|
||||||
@SuppressLint("CheckResult")
|
@SuppressLint("CheckResult")
|
||||||
private void processBatchesSequentially(List<Place> places, int batchSize,
|
private void processBatchesSequentially(List<Place> places, int batchSize,
|
||||||
List<Place> updatedPlaceList, LatLng curLatLng, int startIndex) {
|
List<Place> updatedPlaceList, LatLng curLatLng, int startIndex) {
|
||||||
|
Timber.tag("temptagfour").d("processBatchesSequentially called with startIndex %d", startIndex);
|
||||||
if (startIndex >= places.size() || stopQuery) {
|
if (startIndex >= places.size() || stopQuery) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
@ -1926,7 +1934,9 @@ public class NearbyParentFragment extends CommonsDaggerSupportFragment
|
||||||
final boolean displayNeedsPhoto= false;
|
final boolean displayNeedsPhoto= false;
|
||||||
final boolean displayWlm = false;
|
final boolean displayWlm = false;
|
||||||
// Remove the previous markers before updating them
|
// Remove the previous markers before updating them
|
||||||
clearAllMarkers();
|
// clearAllMarkers(); // moved
|
||||||
|
int debugcount = 0;
|
||||||
|
ArrayList<Experiment> es = new ArrayList<>();
|
||||||
for (final MarkerPlaceGroup markerPlaceGroup : NearbyController.markerLabelList) {
|
for (final MarkerPlaceGroup markerPlaceGroup : NearbyController.markerLabelList) {
|
||||||
final Place place = markerPlaceGroup.getPlace();
|
final Place place = markerPlaceGroup.getPlace();
|
||||||
// When label filter is engaged
|
// When label filter is engaged
|
||||||
|
|
@ -1967,10 +1977,19 @@ public class NearbyParentFragment extends CommonsDaggerSupportFragment
|
||||||
}
|
}
|
||||||
|
|
||||||
if (shouldUpdateMarker) {
|
if (shouldUpdateMarker) {
|
||||||
updateMarker(markerPlaceGroup.getIsBookmarked(), place,
|
++debugcount;
|
||||||
NearbyController.currentLocation);
|
Experiment e = new Experiment();
|
||||||
|
e.place = place;
|
||||||
|
e.isBookmarked = markerPlaceGroup.getIsBookmarked();
|
||||||
|
// updateMarker(markerPlaceGroup.getIsBookmarked(), place,
|
||||||
|
// NearbyController.currentLocation);
|
||||||
|
es.add(e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
experimenting(es);
|
||||||
|
Timber.tag("temptagtwo").e("n+1 C 2: "+debugcount);
|
||||||
|
// Timber.tag("temptagtwo").e("iscowa: "+(binding.map.getOverlays() instanceof CopyOnWriteArrayList<Overlay>));
|
||||||
|
// Timber.tag("temptagtwo").e("additional debug info: "+(Looper.myLooper() == Looper.getMainLooper()));
|
||||||
if (selectedLabels == null || selectedLabels.size() == 0) {
|
if (selectedLabels == null || selectedLabels.size() == 0) {
|
||||||
ArrayList<BaseMarker> markerArrayList = new ArrayList<>();
|
ArrayList<BaseMarker> markerArrayList = new ArrayList<>();
|
||||||
for (final MarkerPlaceGroup markerPlaceGroup : NearbyController.markerLabelList) {
|
for (final MarkerPlaceGroup markerPlaceGroup : NearbyController.markerLabelList) {
|
||||||
|
|
@ -1978,7 +1997,8 @@ public class NearbyParentFragment extends CommonsDaggerSupportFragment
|
||||||
nearbyBaseMarker.setPlace(markerPlaceGroup.getPlace());
|
nearbyBaseMarker.setPlace(markerPlaceGroup.getPlace());
|
||||||
markerArrayList.add(nearbyBaseMarker);
|
markerArrayList.add(nearbyBaseMarker);
|
||||||
}
|
}
|
||||||
addMarkersToMap(markerArrayList);
|
//TODO experimentation touncomment
|
||||||
|
// addMarkersToMap(markerArrayList);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -2095,6 +2115,64 @@ public class NearbyParentFragment extends CommonsDaggerSupportFragment
|
||||||
return true;
|
return true;
|
||||||
});
|
});
|
||||||
binding.map.getOverlays().add(marker);
|
binding.map.getOverlays().add(marker);
|
||||||
|
Timber.tag("temptag").d("added marker");
|
||||||
|
}
|
||||||
|
|
||||||
|
private Marker convertToMarker(Place place, Boolean isBookMarked) {
|
||||||
|
Drawable icon = ContextCompat.getDrawable(getContext(), getIconFor(place, isBookMarked));
|
||||||
|
GeoPoint point = new GeoPoint(place.location.getLatitude(), place.location.getLongitude());
|
||||||
|
Marker marker = new Marker(binding.map);
|
||||||
|
marker.setPosition(point);
|
||||||
|
marker.setIcon(icon);
|
||||||
|
if (!Objects.equals(place.name, "")) {
|
||||||
|
marker.setTitle(place.name);
|
||||||
|
marker.setSnippet(
|
||||||
|
containsParentheses(place.getLongDescription())
|
||||||
|
? getTextBetweenParentheses(
|
||||||
|
place.getLongDescription()) : place.getLongDescription());
|
||||||
|
}
|
||||||
|
marker.setTextLabelFontSize(40);
|
||||||
|
marker.setAnchor(Marker.ANCHOR_CENTER, Marker.ANCHOR_TOP);
|
||||||
|
marker.setOnMarkerClickListener((marker1, mapView) -> {
|
||||||
|
if (clickedMarker != null) {
|
||||||
|
clickedMarker.closeInfoWindow();
|
||||||
|
}
|
||||||
|
clickedMarker = marker1;
|
||||||
|
binding.bottomSheetDetails.dataCircularProgress.setVisibility(View.VISIBLE);
|
||||||
|
binding.bottomSheetDetails.icon.setVisibility(View.GONE);
|
||||||
|
binding.bottomSheetDetails.wikiDataLl.setVisibility(View.GONE);
|
||||||
|
if (Objects.equals(place.name, "")) {
|
||||||
|
getPlaceData(place.getWikiDataEntityId(), place, marker1, isBookMarked);
|
||||||
|
} else {
|
||||||
|
marker.showInfoWindow();
|
||||||
|
binding.bottomSheetDetails.dataCircularProgress.setVisibility(View.GONE);
|
||||||
|
binding.bottomSheetDetails.icon.setVisibility(View.VISIBLE);
|
||||||
|
binding.bottomSheetDetails.wikiDataLl.setVisibility(View.VISIBLE);
|
||||||
|
passInfoToSheet(place);
|
||||||
|
hideBottomSheet();
|
||||||
|
}
|
||||||
|
bottomSheetDetailsBehavior.setState(BottomSheetBehavior.STATE_COLLAPSED);
|
||||||
|
return true;
|
||||||
|
});
|
||||||
|
return marker;
|
||||||
|
}
|
||||||
|
|
||||||
|
private class Experiment {
|
||||||
|
public Place place;
|
||||||
|
public Boolean isBookmarked;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void experimenting(final List<Experiment> pubs) {
|
||||||
|
// if(System.currentTimeMillis()>1734359981239L) {return;}
|
||||||
|
ArrayList<Marker> ms = new ArrayList<>(pubs.size());
|
||||||
|
for(Experiment e: pubs){
|
||||||
|
ms.add(convertToMarker(e.place,e.isBookmarked));
|
||||||
|
}
|
||||||
|
justExperimenting.updateMarkersState(ms);
|
||||||
|
}
|
||||||
|
public void experimentingPartTwo(final List<Marker> ms){
|
||||||
|
clearAllMarkers();
|
||||||
|
binding.map.getOverlays().addAll(ms);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -2104,7 +2182,7 @@ public class NearbyParentFragment extends CommonsDaggerSupportFragment
|
||||||
* locations.
|
* locations.
|
||||||
*/
|
*/
|
||||||
private void addMarkersToMap(List<BaseMarker> nearbyBaseMarkers) {
|
private void addMarkersToMap(List<BaseMarker> nearbyBaseMarkers) {
|
||||||
|
Timber.tag("temptagtwo").e("another n+1 C 2: "+nearbyBaseMarkers.size());
|
||||||
for(int i = 0; i< nearbyBaseMarkers.size(); i++){
|
for(int i = 0; i< nearbyBaseMarkers.size(); i++){
|
||||||
addMarkerToMap(nearbyBaseMarkers.get(i).getPlace(), false);
|
addMarkerToMap(nearbyBaseMarkers.get(i).getPlace(), false);
|
||||||
}
|
}
|
||||||
|
|
@ -2396,6 +2474,7 @@ public class NearbyParentFragment extends CommonsDaggerSupportFragment
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public void clearAllMarkers() {
|
public void clearAllMarkers() {
|
||||||
|
Timber.tag("temptagtwo").e("clearallmarkerscalled");
|
||||||
binding.map.getOverlayManager().clear();
|
binding.map.getOverlayManager().clear();
|
||||||
binding.map.invalidate();
|
binding.map.invalidate();
|
||||||
GeoPoint geoPoint = mapCenter;
|
GeoPoint geoPoint = mapCenter;
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,33 @@
|
||||||
|
package fr.free.nrw.commons.nearby.helper
|
||||||
|
|
||||||
|
import androidx.lifecycle.lifecycleScope
|
||||||
|
import fr.free.nrw.commons.databinding.FragmentNearbyParentBinding
|
||||||
|
import fr.free.nrw.commons.nearby.fragments.NearbyParentFragment
|
||||||
|
import kotlinx.coroutines.Dispatchers
|
||||||
|
import kotlinx.coroutines.delay
|
||||||
|
import kotlinx.coroutines.flow.MutableStateFlow
|
||||||
|
import kotlinx.coroutines.flow.collectLatest
|
||||||
|
import kotlinx.coroutines.launch
|
||||||
|
import org.osmdroid.views.overlay.Marker
|
||||||
|
import timber.log.Timber
|
||||||
|
|
||||||
|
class JustExperimenting(frag: NearbyParentFragment) {
|
||||||
|
private var markersState = MutableStateFlow(emptyList<Marker>());
|
||||||
|
private var skippedCount = 0;
|
||||||
|
fun updateMarkersState(markers: List<Marker>){
|
||||||
|
markersState.value = markers
|
||||||
|
}
|
||||||
|
init {
|
||||||
|
frag.lifecycleScope.launch(Dispatchers.Default) {
|
||||||
|
markersState.collectLatest {
|
||||||
|
++skippedCount;
|
||||||
|
if(skippedCount<5){
|
||||||
|
delay(500);
|
||||||
|
}
|
||||||
|
skippedCount = 0;
|
||||||
|
Timber.tag("temptagtwo").d("here: ${it.size}")
|
||||||
|
frag.experimentingPartTwo(it);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -217,7 +217,7 @@ public class NearbyParentFragmentPresenter
|
||||||
public void updateMapMarkers(List<Place> nearbyPlaces, LatLng currentLatLng,
|
public void updateMapMarkers(List<Place> nearbyPlaces, LatLng currentLatLng,
|
||||||
boolean shouldTrackPosition) {
|
boolean shouldTrackPosition) {
|
||||||
if (null != nearbyParentFragmentView) {
|
if (null != nearbyParentFragmentView) {
|
||||||
nearbyParentFragmentView.clearAllMarkers();
|
// nearbyParentFragmentView.clearAllMarkers();
|
||||||
List<BaseMarker> baseMarkers = NearbyController
|
List<BaseMarker> baseMarkers = NearbyController
|
||||||
.loadAttractionsFromLocationToBaseMarkerOptions(currentLatLng,
|
.loadAttractionsFromLocationToBaseMarkerOptions(currentLatLng,
|
||||||
// Curlatlang will be used to calculate distances
|
// Curlatlang will be used to calculate distances
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue