Pass fragment context to PlaceRenderer.java'

This commit is contained in:
misaochan 2018-02-06 19:51:15 +10:00 committed by maskara
parent 307a0acb5d
commit 6517a175cb
3 changed files with 17 additions and 2 deletions

View file

@ -1,5 +1,7 @@
package fr.free.nrw.commons.nearby;
import android.support.v4.app.Fragment;
import com.pedrogomez.renderers.ListAdapteeCollection;
import com.pedrogomez.renderers.RVRendererAdapter;
import com.pedrogomez.renderers.RendererBuilder;
@ -9,13 +11,19 @@ import java.util.List;
class NearbyAdapterFactory {
private Fragment fragment;
NearbyAdapterFactory(){
}
NearbyAdapterFactory(Fragment fragment) {
this.fragment = fragment;
}
public RVRendererAdapter<Place> create(List<Place> placeList) {
RendererBuilder<Place> builder = new RendererBuilder<Place>()
.bind(Place.class, new PlaceRenderer());
.bind(Place.class, new PlaceRenderer(fragment));
ListAdapteeCollection<Place> collection = new ListAdapteeCollection<>(
placeList != null ? placeList : Collections.emptyList());
return new RVRendererAdapter<>(builder, collection);

View file

@ -56,7 +56,7 @@ public class NearbyListFragment extends DaggerFragment {
View view = inflater.inflate(R.layout.fragment_nearby, container, false);
recyclerView = view.findViewById(R.id.listView);
recyclerView.setLayoutManager(new LinearLayoutManager(getContext()));
adapterFactory = new NearbyAdapterFactory();
adapterFactory = new NearbyAdapterFactory(this);
return view;
}

View file

@ -3,6 +3,7 @@ package fr.free.nrw.commons.nearby;
import android.content.Intent;
import android.net.Uri;
import android.support.transition.TransitionManager;
import android.support.v4.app.Fragment;
import android.support.v7.widget.PopupMenu;
import android.util.Log;
import android.view.LayoutInflater;
@ -42,12 +43,18 @@ class PlaceRenderer extends Renderer<Place> {
private View view;
private static ArrayList<LinearLayout> openedItems;
private Place place;
private Fragment fragment;
PlaceRenderer(){
openedItems = new ArrayList<>();
}
PlaceRenderer(Fragment fragment) {
this.fragment = fragment;
openedItems = new ArrayList<>();
}
@Override
protected View inflate(LayoutInflater layoutInflater, ViewGroup viewGroup) {
view = layoutInflater.inflate(R.layout.item_place, viewGroup, false);