Skip to content

Commit 8c95ab8

Browse files
committed
Add cilck listener to adapter to show Media Detail Screen
1 parent 1059ec4 commit 8c95ab8

File tree

2 files changed

+62
-2
lines changed

2 files changed

+62
-2
lines changed

app/src/main/java/fr/free/nrw/commons/featured/FeaturedImagesActivity.java

Lines changed: 55 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,18 @@
11
package fr.free.nrw.commons.featured;
22

3+
import android.database.DataSetObserver;
34
import android.graphics.Bitmap;
45
import android.graphics.BitmapFactory;
56
import android.os.Bundle;
67
import android.support.v4.app.FragmentManager;
8+
import android.view.View;
9+
import android.widget.AdapterView;
710
import android.widget.GridView;
811

912
import java.util.ArrayList;
1013

1114
import butterknife.ButterKnife;
15+
import fr.free.nrw.commons.Media;
1216
import fr.free.nrw.commons.R;
1317
import fr.free.nrw.commons.auth.AuthenticatedActivity;
1418
import fr.free.nrw.commons.media.MediaDetailPagerFragment;
@@ -19,7 +23,9 @@
1923

2024
public class FeaturedImagesActivity
2125
extends AuthenticatedActivity
22-
implements FragmentManager.OnBackStackChangedListener {
26+
implements FragmentManager.OnBackStackChangedListener,
27+
MediaDetailPagerFragment.MediaDetailProvider,
28+
AdapterView.OnItemClickListener{
2329

2430
private FeaturedImagesListFragment featuredImagesListFragment;
2531
private MediaDetailPagerFragment mediaDetails;
@@ -61,4 +67,52 @@ protected void onCreate(Bundle savedInstanceState) {
6167
public void onBackStackChanged() {
6268

6369
}
70+
71+
@Override
72+
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
73+
if (mediaDetails == null || !mediaDetails.isVisible()) {
74+
mediaDetails = new MediaDetailPagerFragment();
75+
FragmentManager supportFragmentManager = getSupportFragmentManager();
76+
supportFragmentManager
77+
.beginTransaction()
78+
.replace(R.id.featuredFragmentContainer, mediaDetails)
79+
.addToBackStack(null)
80+
.commit();
81+
supportFragmentManager.executePendingTransactions();
82+
}
83+
mediaDetails.showImage(i);
84+
}
85+
86+
@Override
87+
public Media getMediaAtPosition(int i) {
88+
if (featuredImagesListFragment.getAdapter() == null) {
89+
// not yet ready to return data
90+
return null;
91+
} else {
92+
return ((FeaturedImage)featuredImagesListFragment.getAdapter().getItem(i)).getImage();
93+
}
94+
}
95+
96+
@Override
97+
public int getTotalMediaCount() {
98+
if (featuredImagesListFragment.getAdapter() == null) {
99+
return 0;
100+
}
101+
return featuredImagesListFragment.getAdapter().getCount();
102+
}
103+
104+
@Override
105+
public void notifyDatasetChanged() {
106+
107+
}
108+
109+
@Override
110+
public void registerDataSetObserver(DataSetObserver observer) {
111+
112+
}
113+
114+
@Override
115+
public void unregisterDataSetObserver(DataSetObserver observer) {
116+
117+
}
64118
}

app/src/main/java/fr/free/nrw/commons/featured/FeaturedImagesListFragment.java

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
import android.view.ViewGroup;
1010
import android.widget.AdapterView;
1111
import android.widget.GridView;
12+
import android.widget.ListAdapter;
1213

1314
import java.util.ArrayList;
1415

@@ -40,7 +41,8 @@ public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle sa
4041
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
4142
super.onViewCreated(view, savedInstanceState);
4243

43-
gridView = (GridView) getView().findViewById(R.id.featuredImagesList);
44+
gridView = getView().findViewById(R.id.featuredImagesList);
45+
gridView.setOnItemClickListener((AdapterView.OnItemClickListener) getActivity());
4446
gridAdapter = new MockGridViewAdapter(this.getContext(), R.layout.layout_featured_images, getMockFeaturedImages());
4547
gridView.setAdapter(gridAdapter);
4648

@@ -54,4 +56,8 @@ private ArrayList<FeaturedImage> getMockFeaturedImages(){
5456
}
5557
return featuredImages;
5658
}
59+
60+
public ListAdapter getAdapter() {
61+
return gridView.getAdapter();
62+
}
5763
}

0 commit comments

Comments
 (0)