mirror of
https://github.com/commons-app/apps-android-commons.git
synced 2025-10-26 20:33:53 +01:00
Issue 5835 nearby (#5843)
* NearbyParentFragment.java: OnScroll - removed distance threshold, delay search by 800ms, discard multiple OnScroll within 800ms. OnDestroy - destroy any queued OnScroll events * NearbyParentFragment.java: loadPlacesDataAsync - set batchSize from 50 back to original 3 * comment --------- Co-authored-by: Nicolas Raoul <nicolas.raoul@gmail.com>
This commit is contained in:
parent
3d49b1f79a
commit
d0e64d7886
1 changed files with 28 additions and 23 deletions
|
|
@ -27,6 +27,7 @@ import android.os.Build.VERSION;
|
|||
import android.os.Build.VERSION_CODES;
|
||||
import android.os.Bundle;
|
||||
import android.os.Environment;
|
||||
import android.os.Handler;
|
||||
import android.preference.PreferenceManager;
|
||||
import android.provider.Settings;
|
||||
import android.text.Html;
|
||||
|
|
@ -149,7 +150,6 @@ public class NearbyParentFragment extends CommonsDaggerSupportFragment
|
|||
WikidataEditListener.WikidataP18EditListener, LocationUpdateListener,
|
||||
LocationPermissionCallback, BottomSheetAdapter.ItemClickListener {
|
||||
|
||||
|
||||
FragmentNearbyParentBinding binding;
|
||||
|
||||
@Inject
|
||||
|
|
@ -171,6 +171,7 @@ public class NearbyParentFragment extends CommonsDaggerSupportFragment
|
|||
SystemThemeUtils systemThemeUtils;
|
||||
@Inject
|
||||
CommonPlaceClickActions commonPlaceClickActions;
|
||||
|
||||
private LocationPermissionsHelper locationPermissionsHelper;
|
||||
private NearbyFilterSearchRecyclerViewAdapter nearbyFilterSearchRecyclerViewAdapter;
|
||||
private BottomSheetBehavior bottomSheetListBehavior;
|
||||
|
|
@ -208,6 +209,11 @@ public class NearbyParentFragment extends CommonsDaggerSupportFragment
|
|||
private Place nearestPlace;
|
||||
private volatile boolean stopQuery;
|
||||
|
||||
private boolean isSearchInProgress = false;
|
||||
private final Handler searchHandler = new Handler();
|
||||
private Runnable searchRunnable;
|
||||
private static final long SCROLL_DELAY = 800; // Delay for debounce of onscroll, in milliseconds.
|
||||
|
||||
private List<Place> updatedPlacesList;
|
||||
private LatLng updatedLatLng;
|
||||
private boolean searchable;
|
||||
|
|
@ -419,28 +425,27 @@ public class NearbyParentFragment extends CommonsDaggerSupportFragment
|
|||
binding.map.addMapListener(new MapListener() {
|
||||
@Override
|
||||
public boolean onScroll(ScrollEvent event) {
|
||||
if (lastMapFocus != null) {
|
||||
Location mylocation = new Location("");
|
||||
Location dest_location = new Location("");
|
||||
dest_location.setLatitude(binding.map.getMapCenter().getLatitude());
|
||||
dest_location.setLongitude(binding.map.getMapCenter().getLongitude());
|
||||
mylocation.setLatitude(lastMapFocus.getLatitude());
|
||||
mylocation.setLongitude(lastMapFocus.getLongitude());
|
||||
Float distance = mylocation.distanceTo(dest_location);//in meters
|
||||
if (lastMapFocus != null) {
|
||||
if (isNetworkConnectionEstablished() && (event.getX() > 0
|
||||
|| event.getY() > 0)) {
|
||||
if (distance > 2000.0) {
|
||||
searchable = true;
|
||||
|
||||
// Remove any pending search runnables
|
||||
searchHandler.removeCallbacks(searchRunnable);
|
||||
|
||||
// Set a runnable to call the Search after a delay
|
||||
searchRunnable = new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
if (!isSearchInProgress) {
|
||||
isSearchInProgress = true; // search executing flag
|
||||
// Start Search
|
||||
try {
|
||||
presenter.searchInTheArea();
|
||||
} else {
|
||||
searchable = false;
|
||||
} finally {
|
||||
isSearchInProgress = false;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
searchable = false;
|
||||
}
|
||||
}
|
||||
};
|
||||
// post runnable with configured SCROLL_DELAY
|
||||
searchHandler.postDelayed(searchRunnable, SCROLL_DELAY);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
|
@ -680,6 +685,7 @@ public class NearbyParentFragment extends CommonsDaggerSupportFragment
|
|||
@Override
|
||||
public void onDestroyView() {
|
||||
super.onDestroyView();
|
||||
searchHandler.removeCallbacks(searchRunnable);
|
||||
presenter.removeNearbyPreferences(applicationKvStore);
|
||||
}
|
||||
|
||||
|
|
@ -2499,5 +2505,4 @@ public class NearbyParentFragment extends CommonsDaggerSupportFragment
|
|||
intent.setData(Uri.parse(WLM_URL));
|
||||
startActivity(intent);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue