package org.osmdroid.samplefragments.layouts.rec;
/**
* created on 1/13/2017.
*
* @author PalilloKun
* https://github.com/PalilloKun/SampleMapWithRecyclerView/blob/master/app/src/main/java/com/palitokun/mapwrecyclerview/CustomRecycler/CustomRecycler.java
*/
import android.content.Context;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import org.osmdroid.R;
import org.osmdroid.util.GeoPoint;
import org.osmdroid.views.MapView;
import java.util.ArrayList;
/**
*Custom Adapter for Recycler data
* @author PalilloKun
*/
public class CustomRecycler extends RecyclerView.Adapter<CustomRecycler.ViewHolder>{
public ArrayList<Info> data ;
public Context contextActual;
public ArrayList<String> list;
public CustomRecycler(ArrayList<Info> a) {
data=a;
}
public static class ViewHolder extends RecyclerView.ViewHolder {
public ViewHolder(View v) {
super(v);
}
}
/*
* Class for map layout
* */
public class MapViewHolder extends ViewHolder {
MapView mapaShow;
public MapViewHolder(View v) {
super(v);
this.mapaShow = (MapView) v.findViewById(R.id.mapShow);
}
}
/*
* Class for infodata layout
* */
public class InfoDataViewHolder extends ViewHolder {
TextView TitleInfoTxt;
TextView ContentInfodata;
public InfoDataViewHolder(View v) {
super(v);
this.TitleInfoTxt = (TextView) v.findViewById(R.id.TitleInfoTxt);
this.ContentInfodata = (TextView) v.findViewById(R.id.ContentInfodata);
}
}
@Override
public ViewHolder onCreateViewHolder(ViewGroup viewGroup, int viewType) {
View v;
/*
* viewType = 1, is a Map
* viewType = 2, is a Graphic
* viewType = 3, is a InfoData
*
* In this example, only put two layouts: Map and Info
* */
if(viewType == 1){
v = LayoutInflater.from(viewGroup.getContext())
.inflate(R.layout.recyclerviewcard, viewGroup, false);
return new MapViewHolder(v);
}else {
v = LayoutInflater.from(viewGroup.getContext())
.inflate(R.layout.recyclercard2, viewGroup, false);
return new InfoDataViewHolder(v);
}
}
@Override
public void onBindViewHolder(ViewHolder viewHolder, int position) {
//For Info data
if (viewHolder.getItemViewType() == 3) {
Info dat = data.get(position);
InfoDataViewHolder Indicador = (InfoDataViewHolder) viewHolder;
Indicador.TitleInfoTxt.setText(dat.getTitle());
Indicador.ContentInfodata.setText(dat.getContent());
}else{
Info dat = data.get(position);
MapViewHolder Indicador = (MapViewHolder) viewHolder;
Indicador.mapaShow.setBuiltInZoomControls(true);
Indicador.mapaShow.setMultiTouchControls(true);
Indicador.mapaShow.setClickable(false);
Indicador.mapaShow.getController().setZoom(14);
Indicador.mapaShow.getController().setCenter(new GeoPoint(-25.2961407, -57.6309129));
}
}
@Override
public int getItemCount() {
return data.size();
}
@Override
public int getItemViewType(int position) {
//return mDataSetTypes[position];
return Integer.valueOf(data.get(position).getTypeLayout());
}
}