diff --git a/app/src/main/java/fr/free/nrw/commons/ViewPagerAdapter.java b/app/src/main/java/fr/free/nrw/commons/ViewPagerAdapter.java index 5ca20372a..b887aaf99 100644 --- a/app/src/main/java/fr/free/nrw/commons/ViewPagerAdapter.java +++ b/app/src/main/java/fr/free/nrw/commons/ViewPagerAdapter.java @@ -18,6 +18,17 @@ public class ViewPagerAdapter extends FragmentPagerAdapter { super(manager); } + /** + * Constructs a ViewPagerAdapter with a specified Fragment Manager and Fragment resume behavior. + * + * @param manager The FragmentManager + * @param behavior An integer which represents the behavior of non visible fragments. See + * FragmentPagerAdapter.java for options. + */ + public ViewPagerAdapter(FragmentManager manager, int behavior) { + super(manager, behavior); + } + /** * This method returns the fragment of the viewpager at a particular position * @param position diff --git a/app/src/main/java/fr/free/nrw/commons/explore/ExploreFragment.java b/app/src/main/java/fr/free/nrw/commons/explore/ExploreFragment.java index 223d028dc..b31c34b67 100644 --- a/app/src/main/java/fr/free/nrw/commons/explore/ExploreFragment.java +++ b/app/src/main/java/fr/free/nrw/commons/explore/ExploreFragment.java @@ -12,6 +12,7 @@ import android.view.ViewGroup; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.fragment.app.Fragment; +import androidx.fragment.app.FragmentPagerAdapter; import androidx.viewpager.widget.ViewPager.OnPageChangeListener; import fr.free.nrw.commons.R; import fr.free.nrw.commons.ViewPagerAdapter; @@ -69,7 +70,9 @@ public class ExploreFragment extends CommonsDaggerSupportFragment { loadNearbyMapData(); binding = FragmentExploreBinding.inflate(inflater, container, false); - viewPagerAdapter = new ViewPagerAdapter(getChildFragmentManager()); + viewPagerAdapter = new ViewPagerAdapter(getChildFragmentManager(), + FragmentPagerAdapter.BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT); + binding.viewPager.setAdapter(viewPagerAdapter); binding.viewPager.setId(R.id.viewPager); binding.tabLayout.setupWithViewPager(binding.viewPager); diff --git a/app/src/main/java/fr/free/nrw/commons/explore/map/ExploreMapFragment.java b/app/src/main/java/fr/free/nrw/commons/explore/map/ExploreMapFragment.java index a222a98ac..feebd20c6 100644 --- a/app/src/main/java/fr/free/nrw/commons/explore/map/ExploreMapFragment.java +++ b/app/src/main/java/fr/free/nrw/commons/explore/map/ExploreMapFragment.java @@ -221,7 +221,6 @@ public class ExploreMapFragment extends CommonsDaggerSupportFragment binding.mapView.getController().setZoom(ZOOM_LEVEL); } - performMapReadyActions(); binding.mapView.getOverlays().add(new MapEventsOverlay(new MapEventsReceiver() { @Override @@ -341,7 +340,12 @@ public class ExploreMapFragment extends CommonsDaggerSupportFragment !locationPermissionsHelper.checkLocationPermission(getActivity())) { isPermissionDenied = true; } - lastKnownLocation = MapUtils.getDefaultLatLng(); + + lastKnownLocation = getLastLocation(); + + if (lastKnownLocation == null) { + lastKnownLocation = MapUtils.getDefaultLatLng(); + } // if we came from 'Show in Explore' in Nearby, load Nearby map center and zoom if (isCameFromNearbyMap()) { @@ -974,9 +978,6 @@ public class ExploreMapFragment extends CommonsDaggerSupportFragment -0.07483536015053005, 1f); } } - if (!isCameFromNearbyMap()) { - moveCameraToPosition(new GeoPoint(latLnge.getLatitude(), latLnge.getLongitude())); - } return latLnge; } diff --git a/app/src/main/java/fr/free/nrw/commons/media/MediaInterface.kt b/app/src/main/java/fr/free/nrw/commons/media/MediaInterface.kt index ef0ef1f9c..643374e54 100644 --- a/app/src/main/java/fr/free/nrw/commons/media/MediaInterface.kt +++ b/app/src/main/java/fr/free/nrw/commons/media/MediaInterface.kt @@ -186,13 +186,25 @@ interface MediaInterface { ): Single companion object { + /** + * Retrieved thumbnail height will be about this tall, but must be at least this height. + * A larger number means higher thumbnail resolution but more network usage. + */ + const val THUMB_HEIGHT_PX = 450 + const val MEDIA_PARAMS = - "&prop=imageinfo|coordinates&iiprop=url|extmetadata|user&&iiurlwidth=640&iiextmetadatafilter=DateTime|Categories|GPSLatitude|GPSLongitude|ImageDescription|DateTimeOriginal|Artist|LicenseShortName|LicenseUrl" + "&prop=imageinfo|coordinates&iiprop=url|extmetadata|user&&iiurlheight=" + + THUMB_HEIGHT_PX + + "&iiextmetadatafilter=DateTime|Categories|GPSLatitude|GPSLongitude|" + + "ImageDescription|DateTimeOriginal|Artist|LicenseShortName|LicenseUrl" /** * fetches category detail(title, hidden) for each category along with File information */ const val MEDIA_PARAMS_WITH_CATEGORY_DETAILS = - "&clprop=hidden&prop=categories|imageinfo&iiprop=url|extmetadata|user&&iiurlwidth=640&iiextmetadatafilter=DateTime|GPSLatitude|GPSLongitude|ImageDescription|DateTimeOriginal|Artist|LicenseShortName|LicenseUrl" + "&clprop=hidden&prop=categories|imageinfo&iiprop=url|extmetadata|user&&iiurlheight=" + + THUMB_HEIGHT_PX + + "&iiextmetadatafilter=DateTime|GPSLatitude|GPSLongitude|ImageDescription|" + + "DateTimeOriginal|Artist|LicenseShortName|LicenseUrl" } } diff --git a/app/src/main/java/fr/free/nrw/commons/wikidata/model/gallery/ImageInfo.kt b/app/src/main/java/fr/free/nrw/commons/wikidata/model/gallery/ImageInfo.kt index 492e2e1f8..7645e438d 100644 --- a/app/src/main/java/fr/free/nrw/commons/wikidata/model/gallery/ImageInfo.kt +++ b/app/src/main/java/fr/free/nrw/commons/wikidata/model/gallery/ImageInfo.kt @@ -72,7 +72,6 @@ open class ImageInfo : Serializable { } fun getThumbUrl(): String { - updateThumbUrl() return thumbUrl ?: "" }