From 4564d5570a24af64840dd829e43c6f0106260193 Mon Sep 17 00:00:00 2001 From: Paul Hawke Date: Fri, 11 Jul 2025 14:36:36 -0500 Subject: [PATCH] Break up MediaDetailPagerFragment to make it easier to convert to kotlin --- .../bookmarks/BookmarkListRootFragment.java | 3 +- .../category/CategoryDetailsActivity.kt | 4 +- .../contributions/ContributionsFragment.kt | 3 +- .../explore/ExploreListRootFragment.java | 4 +- .../explore/ExploreMapRootFragment.java | 4 +- .../nrw/commons/explore/SearchActivity.java | 9 +- .../WikidataItemDetailsActivity.java | 8 +- .../explore/media/PageableMediaFragment.kt | 2 +- .../nrw/commons/media/MediaDetailAdapter.java | 95 +++++++++++++++ .../nrw/commons/media/MediaDetailFragment.kt | 2 - .../media/MediaDetailPagerFragment.java | 111 ++---------------- .../commons/media/MediaDetailProvider.java | 15 +++ .../nearby/fragments/NearbyParentFragment.kt | 3 +- .../media/MediaDetailFragmentUnitTests.kt | 2 +- 14 files changed, 138 insertions(+), 127 deletions(-) create mode 100644 app/src/main/java/fr/free/nrw/commons/media/MediaDetailAdapter.java create mode 100644 app/src/main/java/fr/free/nrw/commons/media/MediaDetailProvider.java diff --git a/app/src/main/java/fr/free/nrw/commons/bookmarks/BookmarkListRootFragment.java b/app/src/main/java/fr/free/nrw/commons/bookmarks/BookmarkListRootFragment.java index ca7dd3f3b..e14cbbb6f 100644 --- a/app/src/main/java/fr/free/nrw/commons/bookmarks/BookmarkListRootFragment.java +++ b/app/src/main/java/fr/free/nrw/commons/bookmarks/BookmarkListRootFragment.java @@ -22,6 +22,7 @@ import fr.free.nrw.commons.contributions.MainActivity; import fr.free.nrw.commons.databinding.FragmentFeaturedRootBinding; import fr.free.nrw.commons.di.CommonsDaggerSupportFragment; import fr.free.nrw.commons.media.MediaDetailPagerFragment; +import fr.free.nrw.commons.media.MediaDetailProvider; import fr.free.nrw.commons.navtab.NavTab; import java.util.ArrayList; import java.util.Iterator; @@ -29,7 +30,7 @@ import timber.log.Timber; public class BookmarkListRootFragment extends CommonsDaggerSupportFragment implements FragmentManager.OnBackStackChangedListener, - MediaDetailPagerFragment.MediaDetailProvider, + MediaDetailProvider, AdapterView.OnItemClickListener, CategoryImagesCallback { private MediaDetailPagerFragment mediaDetails; diff --git a/app/src/main/java/fr/free/nrw/commons/category/CategoryDetailsActivity.kt b/app/src/main/java/fr/free/nrw/commons/category/CategoryDetailsActivity.kt index 8517db744..c998f96ac 100644 --- a/app/src/main/java/fr/free/nrw/commons/category/CategoryDetailsActivity.kt +++ b/app/src/main/java/fr/free/nrw/commons/category/CategoryDetailsActivity.kt @@ -8,7 +8,6 @@ import android.view.Menu import android.view.MenuItem import android.view.View import androidx.activity.viewModels -import androidx.fragment.app.Fragment import androidx.fragment.app.FragmentManager import androidx.lifecycle.Lifecycle import androidx.lifecycle.lifecycleScope @@ -22,6 +21,7 @@ import fr.free.nrw.commons.explore.categories.media.CategoriesMediaFragment import fr.free.nrw.commons.explore.categories.parent.ParentCategoriesFragment import fr.free.nrw.commons.explore.categories.sub.SubCategoriesFragment import fr.free.nrw.commons.media.MediaDetailPagerFragment +import fr.free.nrw.commons.media.MediaDetailProvider import fr.free.nrw.commons.theme.BaseActivity import fr.free.nrw.commons.utils.handleWebUrl import fr.free.nrw.commons.wikidata.model.WikiSite @@ -36,7 +36,7 @@ import javax.inject.Inject * a particular category on wikimedia commons. */ class CategoryDetailsActivity : BaseActivity(), - MediaDetailPagerFragment.MediaDetailProvider, + MediaDetailProvider, CategoryImagesCallback { private lateinit var supportFragmentManager: FragmentManager diff --git a/app/src/main/java/fr/free/nrw/commons/contributions/ContributionsFragment.kt b/app/src/main/java/fr/free/nrw/commons/contributions/ContributionsFragment.kt index 541cc6e56..537d805c5 100644 --- a/app/src/main/java/fr/free/nrw/commons/contributions/ContributionsFragment.kt +++ b/app/src/main/java/fr/free/nrw/commons/contributions/ContributionsFragment.kt @@ -43,7 +43,7 @@ import fr.free.nrw.commons.location.LatLng import fr.free.nrw.commons.location.LocationServiceManager import fr.free.nrw.commons.location.LocationUpdateListener import fr.free.nrw.commons.media.MediaDetailPagerFragment -import fr.free.nrw.commons.media.MediaDetailPagerFragment.MediaDetailProvider +import fr.free.nrw.commons.media.MediaDetailProvider import fr.free.nrw.commons.mwapi.OkHttpJsonApiClient import fr.free.nrw.commons.nearby.NearbyController import fr.free.nrw.commons.nearby.NearbyNotificationCardView @@ -72,7 +72,6 @@ import io.reactivex.disposables.CompositeDisposable import io.reactivex.schedulers.Schedulers import timber.log.Timber import java.util.Calendar -import java.util.Date import javax.inject.Inject import javax.inject.Named diff --git a/app/src/main/java/fr/free/nrw/commons/explore/ExploreListRootFragment.java b/app/src/main/java/fr/free/nrw/commons/explore/ExploreListRootFragment.java index f3948caa7..e3ad90119 100644 --- a/app/src/main/java/fr/free/nrw/commons/explore/ExploreListRootFragment.java +++ b/app/src/main/java/fr/free/nrw/commons/explore/ExploreListRootFragment.java @@ -5,7 +5,6 @@ import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; -import android.widget.FrameLayout; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.fragment.app.Fragment; @@ -17,10 +16,11 @@ import fr.free.nrw.commons.databinding.FragmentFeaturedRootBinding; import fr.free.nrw.commons.di.CommonsDaggerSupportFragment; import fr.free.nrw.commons.explore.categories.media.CategoriesMediaFragment; import fr.free.nrw.commons.media.MediaDetailPagerFragment; +import fr.free.nrw.commons.media.MediaDetailProvider; import fr.free.nrw.commons.navtab.NavTab; public class ExploreListRootFragment extends CommonsDaggerSupportFragment implements - MediaDetailPagerFragment.MediaDetailProvider, CategoryImagesCallback { + MediaDetailProvider, CategoryImagesCallback { private MediaDetailPagerFragment mediaDetails; private CategoriesMediaFragment listFragment; diff --git a/app/src/main/java/fr/free/nrw/commons/explore/ExploreMapRootFragment.java b/app/src/main/java/fr/free/nrw/commons/explore/ExploreMapRootFragment.java index abf02758d..31a8e11ba 100644 --- a/app/src/main/java/fr/free/nrw/commons/explore/ExploreMapRootFragment.java +++ b/app/src/main/java/fr/free/nrw/commons/explore/ExploreMapRootFragment.java @@ -5,7 +5,6 @@ import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; -import android.widget.FrameLayout; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.fragment.app.Fragment; @@ -17,10 +16,11 @@ import fr.free.nrw.commons.databinding.FragmentFeaturedRootBinding; import fr.free.nrw.commons.di.CommonsDaggerSupportFragment; import fr.free.nrw.commons.explore.map.ExploreMapFragment; import fr.free.nrw.commons.media.MediaDetailPagerFragment; +import fr.free.nrw.commons.media.MediaDetailProvider; import fr.free.nrw.commons.navtab.NavTab; public class ExploreMapRootFragment extends CommonsDaggerSupportFragment implements - MediaDetailPagerFragment.MediaDetailProvider, CategoryImagesCallback { + MediaDetailProvider, CategoryImagesCallback { private MediaDetailPagerFragment mediaDetails; private ExploreMapFragment mapFragment; diff --git a/app/src/main/java/fr/free/nrw/commons/explore/SearchActivity.java b/app/src/main/java/fr/free/nrw/commons/explore/SearchActivity.java index 1651c720c..b27ffc338 100644 --- a/app/src/main/java/fr/free/nrw/commons/explore/SearchActivity.java +++ b/app/src/main/java/fr/free/nrw/commons/explore/SearchActivity.java @@ -6,7 +6,6 @@ import android.os.Bundle; import android.text.TextUtils; import android.view.View; import androidx.annotation.NonNull; -import androidx.fragment.app.Fragment; import androidx.fragment.app.FragmentManager; import androidx.fragment.app.FragmentTransaction; import com.jakewharton.rxbinding2.view.RxView; @@ -23,18 +22,14 @@ import fr.free.nrw.commons.explore.models.RecentSearch; import fr.free.nrw.commons.explore.recentsearches.RecentSearchesDao; import fr.free.nrw.commons.explore.recentsearches.RecentSearchesFragment; import fr.free.nrw.commons.media.MediaDetailPagerFragment; +import fr.free.nrw.commons.media.MediaDetailProvider; import fr.free.nrw.commons.theme.BaseActivity; import fr.free.nrw.commons.utils.FragmentUtils; import fr.free.nrw.commons.utils.ViewUtil; import io.reactivex.android.schedulers.AndroidSchedulers; -import java.util.ArrayList; -import java.util.Arrays; import java.util.Date; -import java.util.List; -import java.util.Locale; import java.util.concurrent.TimeUnit; import javax.inject.Inject; -import kotlin.Pair; import timber.log.Timber; /** @@ -42,7 +37,7 @@ import timber.log.Timber; */ public class SearchActivity extends BaseActivity - implements MediaDetailPagerFragment.MediaDetailProvider, CategoryImagesCallback { + implements MediaDetailProvider, CategoryImagesCallback { @Inject RecentSearchesDao recentSearchesDao; diff --git a/app/src/main/java/fr/free/nrw/commons/explore/depictions/WikidataItemDetailsActivity.java b/app/src/main/java/fr/free/nrw/commons/explore/depictions/WikidataItemDetailsActivity.java index e4f7ce465..ec5ea42a4 100644 --- a/app/src/main/java/fr/free/nrw/commons/explore/depictions/WikidataItemDetailsActivity.java +++ b/app/src/main/java/fr/free/nrw/commons/explore/depictions/WikidataItemDetailsActivity.java @@ -11,7 +11,6 @@ import android.view.Menu; import android.view.MenuInflater; import android.view.MenuItem; import android.view.View; -import androidx.fragment.app.Fragment; import androidx.fragment.app.FragmentManager; import com.google.android.material.snackbar.Snackbar; import fr.free.nrw.commons.Media; @@ -24,6 +23,7 @@ import fr.free.nrw.commons.explore.depictions.child.ChildDepictionsFragment; import fr.free.nrw.commons.explore.depictions.media.DepictedImagesFragment; import fr.free.nrw.commons.explore.depictions.parent.ParentDepictionsFragment; import fr.free.nrw.commons.media.MediaDetailPagerFragment; +import fr.free.nrw.commons.media.MediaDetailProvider; import fr.free.nrw.commons.theme.BaseActivity; import fr.free.nrw.commons.upload.structure.depictions.DepictModel; import fr.free.nrw.commons.upload.structure.depictions.DepictedItem; @@ -31,16 +31,12 @@ import fr.free.nrw.commons.wikidata.WikidataConstants; import io.reactivex.android.schedulers.AndroidSchedulers; import io.reactivex.disposables.CompositeDisposable; import io.reactivex.schedulers.Schedulers; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; import javax.inject.Inject; -import kotlin.Pair; /** * Activity to show depiction media, parent classes and child classes of depicted items in Explore */ -public class WikidataItemDetailsActivity extends BaseActivity implements MediaDetailPagerFragment.MediaDetailProvider, +public class WikidataItemDetailsActivity extends BaseActivity implements MediaDetailProvider, CategoryImagesCallback { private FragmentManager supportFragmentManager; private DepictedImagesFragment depictionImagesListFragment; diff --git a/app/src/main/java/fr/free/nrw/commons/explore/media/PageableMediaFragment.kt b/app/src/main/java/fr/free/nrw/commons/explore/media/PageableMediaFragment.kt index e19b1b056..e7895f683 100644 --- a/app/src/main/java/fr/free/nrw/commons/explore/media/PageableMediaFragment.kt +++ b/app/src/main/java/fr/free/nrw/commons/explore/media/PageableMediaFragment.kt @@ -8,7 +8,7 @@ import fr.free.nrw.commons.MediaDataExtractor import fr.free.nrw.commons.R import fr.free.nrw.commons.category.CategoryImagesCallback import fr.free.nrw.commons.explore.paging.BasePagingFragment -import fr.free.nrw.commons.media.MediaDetailPagerFragment.MediaDetailProvider +import fr.free.nrw.commons.media.MediaDetailProvider import javax.inject.Inject abstract class PageableMediaFragment : diff --git a/app/src/main/java/fr/free/nrw/commons/media/MediaDetailAdapter.java b/app/src/main/java/fr/free/nrw/commons/media/MediaDetailAdapter.java new file mode 100644 index 000000000..106bfb4cb --- /dev/null +++ b/app/src/main/java/fr/free/nrw/commons/media/MediaDetailAdapter.java @@ -0,0 +1,95 @@ +package fr.free.nrw.commons.media; + +import android.view.ViewGroup; +import androidx.annotation.NonNull; +import androidx.fragment.app.Fragment; +import androidx.fragment.app.FragmentManager; +import androidx.fragment.app.FragmentStatePagerAdapter; +import timber.log.Timber; + +//FragmentStatePagerAdapter allows user to swipe across collection of images (no. of images undetermined) +class MediaDetailAdapter extends FragmentStatePagerAdapter { + + final MediaDetailPagerFragment mediaDetailPagerFragment; + /** + * Keeps track of the current displayed fragment. + */ + private Fragment mCurrentFragment; + + public MediaDetailAdapter(MediaDetailPagerFragment mediaDetailPagerFragment, + FragmentManager fm) { + super(fm); + this.mediaDetailPagerFragment = mediaDetailPagerFragment; + } + + @Override + public Fragment getItem(int i) { + if (i == 0) { + // See bug https://code.google.com/p/android/issues/detail?id=27526 + if (mediaDetailPagerFragment.getActivity() == null) { + Timber.d("Skipping getItem. Returning as activity is destroyed!"); + return null; + } + mediaDetailPagerFragment.binding.mediaDetailsPager.postDelayed( + () -> mediaDetailPagerFragment.getActivity().invalidateOptionsMenu(), 5); + } + if (mediaDetailPagerFragment.isFromFeaturedRootFragment) { + return MediaDetailFragment.forMedia(mediaDetailPagerFragment.position + i, + mediaDetailPagerFragment.editable, mediaDetailPagerFragment.isFeaturedImage, + mediaDetailPagerFragment.isWikipediaButtonDisplayed); + } else { + return MediaDetailFragment.forMedia(i, mediaDetailPagerFragment.editable, + mediaDetailPagerFragment.isFeaturedImage, + mediaDetailPagerFragment.isWikipediaButtonDisplayed); + } + } + + @Override + public int getCount() { + if (mediaDetailPagerFragment.getActivity() == null) { + Timber.d("Skipping getCount. Returning as activity is destroyed!"); + return 0; + } + return mediaDetailPagerFragment.provider.getTotalMediaCount(); + } + + /** + * Get the currently displayed fragment. + * + * @return + */ + public Fragment getCurrentFragment() { + return mCurrentFragment; + } + + /** + * If current fragment is of type MediaDetailFragment, return it, otherwise return null. + * + * @return MediaDetailFragment + */ + public MediaDetailFragment getCurrentMediaDetailFragment() { + if (mCurrentFragment instanceof MediaDetailFragment) { + return (MediaDetailFragment) mCurrentFragment; + } + + return null; + } + + /** + * Called to inform the adapter of which item is currently considered to be the "primary", that + * is the one show to the user as the current page. + * + * @param container + * @param position + * @param object + */ + @Override + public void setPrimaryItem(@NonNull final ViewGroup container, final int position, + @NonNull final Object object) { + // Update the current fragment if changed + if (getCurrentFragment() != object) { + mCurrentFragment = ((Fragment) object); + } + super.setPrimaryItem(container, position, object); + } +} diff --git a/app/src/main/java/fr/free/nrw/commons/media/MediaDetailFragment.kt b/app/src/main/java/fr/free/nrw/commons/media/MediaDetailFragment.kt index 5980e1fb5..07574067c 100644 --- a/app/src/main/java/fr/free/nrw/commons/media/MediaDetailFragment.kt +++ b/app/src/main/java/fr/free/nrw/commons/media/MediaDetailFragment.kt @@ -77,7 +77,6 @@ import fr.free.nrw.commons.CommonsApplication.Companion.instance import fr.free.nrw.commons.Media import fr.free.nrw.commons.MediaDataExtractor import fr.free.nrw.commons.R -import fr.free.nrw.commons.utils.UnderlineUtils import fr.free.nrw.commons.actions.ThanksClient import fr.free.nrw.commons.auth.SessionManager import fr.free.nrw.commons.auth.csrf.InvalidLoginTokenException @@ -102,7 +101,6 @@ import fr.free.nrw.commons.kvstore.JsonKvStore import fr.free.nrw.commons.language.AppLanguageLookUpTable import fr.free.nrw.commons.location.LocationServiceManager import fr.free.nrw.commons.locationpicker.LocationPicker -import fr.free.nrw.commons.media.MediaDetailPagerFragment.MediaDetailProvider import fr.free.nrw.commons.profile.ProfileActivity import fr.free.nrw.commons.review.ReviewHelper import fr.free.nrw.commons.settings.Prefs diff --git a/app/src/main/java/fr/free/nrw/commons/media/MediaDetailPagerFragment.java b/app/src/main/java/fr/free/nrw/commons/media/MediaDetailPagerFragment.java index 324d5867b..8facf3753 100644 --- a/app/src/main/java/fr/free/nrw/commons/media/MediaDetailPagerFragment.java +++ b/app/src/main/java/fr/free/nrw/commons/media/MediaDetailPagerFragment.java @@ -21,11 +21,8 @@ import android.widget.Toast; import androidx.appcompat.app.ActionBar; import androidx.appcompat.app.AlertDialog; import androidx.appcompat.app.AppCompatActivity; -import androidx.annotation.NonNull; import androidx.core.content.ContextCompat; -import androidx.fragment.app.Fragment; import androidx.fragment.app.FragmentManager; -import androidx.fragment.app.FragmentStatePagerAdapter; import androidx.viewpager.widget.ViewPager; import com.google.android.material.snackbar.Snackbar; import fr.free.nrw.commons.CommonsApplication; @@ -69,23 +66,23 @@ public class MediaDetailPagerFragment extends CommonsDaggerSupportFragment imple private static CompositeDisposable compositeDisposable = new CompositeDisposable(); - private FragmentMediaDetailPagerBinding binding; + FragmentMediaDetailPagerBinding binding; - private boolean editable; - private boolean isFeaturedImage; - private boolean isWikipediaButtonDisplayed; + boolean editable; + boolean isFeaturedImage; + boolean isWikipediaButtonDisplayed; MediaDetailAdapter adapter; - private Bookmark bookmark; - private MediaDetailProvider provider; - private boolean isFromFeaturedRootFragment; - private int position; + Bookmark bookmark; + MediaDetailProvider provider; + boolean isFromFeaturedRootFragment; + int position; /** * ProgressBar used to indicate the loading status of media items. */ - private ProgressBar imageProgressBar; + ProgressBar imageProgressBar; - private ArrayList removedItems=new ArrayList(); + ArrayList removedItems=new ArrayList(); public void clearRemoved(){ removedItems.clear(); @@ -127,7 +124,7 @@ public class MediaDetailPagerFragment extends CommonsDaggerSupportFragment imple binding.mediaDetailsPager.addOnPageChangeListener(this); // Initialize the ProgressBar by finding it in the layout imageProgressBar = binding.getRoot().findViewById(R.id.itemProgressBar); - adapter = new MediaDetailAdapter(getChildFragmentManager()); + adapter = new MediaDetailAdapter(this, getChildFragmentManager()); // ActionBar is now supported in both activities - if this crashes something is quite wrong final ActionBar actionBar = ((AppCompatActivity) getActivity()).getSupportActionBar(); @@ -589,90 +586,4 @@ public class MediaDetailPagerFragment extends CommonsDaggerSupportFragment imple provider.refreshNominatedMedia(index); } - public interface MediaDetailProvider { - Media getMediaAtPosition(int i); - - int getTotalMediaCount(); - - Integer getContributionStateAt(int position); - - // Reload media detail fragment once media is nominated - void refreshNominatedMedia(int index); - } - - //FragmentStatePagerAdapter allows user to swipe across collection of images (no. of images undetermined) - private class MediaDetailAdapter extends FragmentStatePagerAdapter { - - /** - * Keeps track of the current displayed fragment. - */ - private Fragment mCurrentFragment; - - public MediaDetailAdapter(FragmentManager fm) { - super(fm); - } - - @Override - public Fragment getItem(int i) { - if (i == 0) { - // See bug https://code.google.com/p/android/issues/detail?id=27526 - if(getActivity() == null) { - Timber.d("Skipping getItem. Returning as activity is destroyed!"); - return null; - } - binding.mediaDetailsPager.postDelayed(() -> getActivity().invalidateOptionsMenu(), 5); - } - if (isFromFeaturedRootFragment) { - return MediaDetailFragment.forMedia(position+i, editable, isFeaturedImage, isWikipediaButtonDisplayed); - } else { - return MediaDetailFragment.forMedia(i, editable, isFeaturedImage, isWikipediaButtonDisplayed); - } - } - - @Override - public int getCount() { - if (getActivity() == null) { - Timber.d("Skipping getCount. Returning as activity is destroyed!"); - return 0; - } - return provider.getTotalMediaCount(); - } - - /** - * Get the currently displayed fragment. - * @return - */ - public Fragment getCurrentFragment() { - return mCurrentFragment; - } - - /** - * If current fragment is of type MediaDetailFragment, return it, otherwise return null. - * @return MediaDetailFragment - */ - public MediaDetailFragment getCurrentMediaDetailFragment() { - if (mCurrentFragment instanceof MediaDetailFragment) { - return (MediaDetailFragment) mCurrentFragment; - } - - return null; - } - - /** - * Called to inform the adapter of which item is currently considered to be the "primary", - * that is the one show to the user as the current page. - * @param container - * @param position - * @param object - */ - @Override - public void setPrimaryItem(@NonNull final ViewGroup container, final int position, - @NonNull final Object object) { - // Update the current fragment if changed - if(getCurrentFragment() != object) { - mCurrentFragment = ((Fragment)object); - } - super.setPrimaryItem(container, position, object); - } - } } diff --git a/app/src/main/java/fr/free/nrw/commons/media/MediaDetailProvider.java b/app/src/main/java/fr/free/nrw/commons/media/MediaDetailProvider.java new file mode 100644 index 000000000..358db00e2 --- /dev/null +++ b/app/src/main/java/fr/free/nrw/commons/media/MediaDetailProvider.java @@ -0,0 +1,15 @@ +package fr.free.nrw.commons.media; + +import fr.free.nrw.commons.Media; + +public interface MediaDetailProvider { + + Media getMediaAtPosition(int i); + + int getTotalMediaCount(); + + Integer getContributionStateAt(int position); + + // Reload media detail fragment once media is nominated + void refreshNominatedMedia(int index); +} diff --git a/app/src/main/java/fr/free/nrw/commons/nearby/fragments/NearbyParentFragment.kt b/app/src/main/java/fr/free/nrw/commons/nearby/fragments/NearbyParentFragment.kt index a0dcead07..5c991f465 100644 --- a/app/src/main/java/fr/free/nrw/commons/nearby/fragments/NearbyParentFragment.kt +++ b/app/src/main/java/fr/free/nrw/commons/nearby/fragments/NearbyParentFragment.kt @@ -74,6 +74,7 @@ import fr.free.nrw.commons.location.LocationServiceManager.LocationChangeType import fr.free.nrw.commons.location.LocationUpdateListener import fr.free.nrw.commons.media.MediaClient import fr.free.nrw.commons.media.MediaDetailPagerFragment +import fr.free.nrw.commons.media.MediaDetailProvider import fr.free.nrw.commons.navtab.NavTab import fr.free.nrw.commons.nearby.BottomSheetAdapter import fr.free.nrw.commons.nearby.BottomSheetAdapter.ItemClickListener @@ -150,7 +151,7 @@ class NearbyParentFragment : CommonsDaggerSupportFragment(), LocationUpdateListener, LocationPermissionCallback, ItemClickListener, - MediaDetailPagerFragment.MediaDetailProvider { + MediaDetailProvider { var binding: FragmentNearbyParentBinding? = null val mapEventsOverlay: MapEventsOverlay = MapEventsOverlay(object : MapEventsReceiver { diff --git a/app/src/test/kotlin/fr/free/nrw/commons/media/MediaDetailFragmentUnitTests.kt b/app/src/test/kotlin/fr/free/nrw/commons/media/MediaDetailFragmentUnitTests.kt index b6d3c6e28..6159a3ccf 100644 --- a/app/src/test/kotlin/fr/free/nrw/commons/media/MediaDetailFragmentUnitTests.kt +++ b/app/src/test/kotlin/fr/free/nrw/commons/media/MediaDetailFragmentUnitTests.kt @@ -132,7 +132,7 @@ class MediaDetailFragmentUnitTests { private lateinit var button: Button @Mock - private lateinit var detailProvider: MediaDetailPagerFragment.MediaDetailProvider + private lateinit var detailProvider: MediaDetailProvider @Mock private lateinit var applicationKvStore: JsonKvStore