From 8c95ab868a9c324a01633090decc173f0b74e2b6 Mon Sep 17 00:00:00 2001 From: neslihanturan Date: Wed, 10 Jan 2018 18:04:47 +0300 Subject: [PATCH] Add cilck listener to adapter to show Media Detail Screen --- .../featured/FeaturedImagesActivity.java | 56 ++++++++++++++++++- .../featured/FeaturedImagesListFragment.java | 8 ++- 2 files changed, 62 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/fr/free/nrw/commons/featured/FeaturedImagesActivity.java b/app/src/main/java/fr/free/nrw/commons/featured/FeaturedImagesActivity.java index cf0afde68..ba13d34bd 100644 --- a/app/src/main/java/fr/free/nrw/commons/featured/FeaturedImagesActivity.java +++ b/app/src/main/java/fr/free/nrw/commons/featured/FeaturedImagesActivity.java @@ -1,14 +1,18 @@ package fr.free.nrw.commons.featured; +import android.database.DataSetObserver; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.os.Bundle; import android.support.v4.app.FragmentManager; +import android.view.View; +import android.widget.AdapterView; import android.widget.GridView; import java.util.ArrayList; import butterknife.ButterKnife; +import fr.free.nrw.commons.Media; import fr.free.nrw.commons.R; import fr.free.nrw.commons.auth.AuthenticatedActivity; import fr.free.nrw.commons.media.MediaDetailPagerFragment; @@ -19,7 +23,9 @@ import fr.free.nrw.commons.media.MediaDetailPagerFragment; public class FeaturedImagesActivity extends AuthenticatedActivity - implements FragmentManager.OnBackStackChangedListener { + implements FragmentManager.OnBackStackChangedListener, + MediaDetailPagerFragment.MediaDetailProvider, + AdapterView.OnItemClickListener{ private FeaturedImagesListFragment featuredImagesListFragment; private MediaDetailPagerFragment mediaDetails; @@ -61,4 +67,52 @@ public class FeaturedImagesActivity public void onBackStackChanged() { } + + @Override + public void onItemClick(AdapterView adapterView, View view, int i, long l) { + if (mediaDetails == null || !mediaDetails.isVisible()) { + mediaDetails = new MediaDetailPagerFragment(); + FragmentManager supportFragmentManager = getSupportFragmentManager(); + supportFragmentManager + .beginTransaction() + .replace(R.id.featuredFragmentContainer, mediaDetails) + .addToBackStack(null) + .commit(); + supportFragmentManager.executePendingTransactions(); + } + mediaDetails.showImage(i); + } + + @Override + public Media getMediaAtPosition(int i) { + if (featuredImagesListFragment.getAdapter() == null) { + // not yet ready to return data + return null; + } else { + return ((FeaturedImage)featuredImagesListFragment.getAdapter().getItem(i)).getImage(); + } + } + + @Override + public int getTotalMediaCount() { + if (featuredImagesListFragment.getAdapter() == null) { + return 0; + } + return featuredImagesListFragment.getAdapter().getCount(); + } + + @Override + public void notifyDatasetChanged() { + + } + + @Override + public void registerDataSetObserver(DataSetObserver observer) { + + } + + @Override + public void unregisterDataSetObserver(DataSetObserver observer) { + + } } diff --git a/app/src/main/java/fr/free/nrw/commons/featured/FeaturedImagesListFragment.java b/app/src/main/java/fr/free/nrw/commons/featured/FeaturedImagesListFragment.java index 09c684587..55b93030a 100644 --- a/app/src/main/java/fr/free/nrw/commons/featured/FeaturedImagesListFragment.java +++ b/app/src/main/java/fr/free/nrw/commons/featured/FeaturedImagesListFragment.java @@ -9,6 +9,7 @@ import android.view.View; import android.view.ViewGroup; import android.widget.AdapterView; import android.widget.GridView; +import android.widget.ListAdapter; import java.util.ArrayList; @@ -40,7 +41,8 @@ public class FeaturedImagesListFragment extends DaggerFragment { public void onViewCreated(View view, @Nullable Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); - gridView = (GridView) getView().findViewById(R.id.featuredImagesList); + gridView = getView().findViewById(R.id.featuredImagesList); + gridView.setOnItemClickListener((AdapterView.OnItemClickListener) getActivity()); gridAdapter = new MockGridViewAdapter(this.getContext(), R.layout.layout_featured_images, getMockFeaturedImages()); gridView.setAdapter(gridAdapter); @@ -54,4 +56,8 @@ public class FeaturedImagesListFragment extends DaggerFragment { } return featuredImages; } + + public ListAdapter getAdapter() { + return gridView.getAdapter(); + } }