package com.flatandflatmates.host;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.GestureDetector;
import android.view.LayoutInflater;
import android.view.MotionEvent;
import android.view.View;
import android.view.ViewGroup;
import com.flatandflatmates.R;
import java.util.ArrayList;
import java.util.List;
/**
* Created by applect on 20/2/15.
*/
public class HostingOptions extends Fragment {
private RecyclerView recyclerView;
private HostOptionsInfoAdapter adapter;
@Override
public View onCreateView( LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState){
View layout = inflater.inflate(R.layout.hosting_options, container, false);
recyclerView = (RecyclerView) layout.findViewById(R.id.hostingOptions);
adapter = new HostOptionsInfoAdapter(getActivity(),getData());
recyclerView.setAdapter(adapter);
recyclerView.setLayoutManager( new LinearLayoutManager( getActivity() ) );
recyclerView.addOnItemTouchListener(new RecyclerTouchListener(getActivity(), recyclerView, new ClickListener() {
@Override
public void onClick( View view, int position ) {
Intent hostOptions = new Intent(getActivity(), HostOptionsClick.class);
Bundle param = new Bundle();
param.putInt("position",position);
hostOptions.putExtras(param);
startActivity(hostOptions);
}
@Override
public void onLongClick(View view, int position) {
}
}));
return layout;
}
public static List<HostOptionsInformation> getData(){
List<HostOptionsInformation> data = new ArrayList<>();
int[] icons = {R.drawable.ic_number1, R.drawable.ic_number1, R.drawable.ic_number1,R.drawable.ic_number1};
String[] titles = { "Flat", "Flat Mate","Room", "PG" };
for(int i =0 ; i < titles.length && i < icons.length; i++){
HostOptionsInformation current = new HostOptionsInformation();
current.inconId = icons[i];
current.title = titles[i];
data.add(current);
}
return data;
}
class RecyclerTouchListener implements RecyclerView.OnItemTouchListener{
private GestureDetector gestureDetector;
private ClickListener clickListener;
public RecyclerTouchListener(Context context, RecyclerView rv, ClickListener clickListener){
this.clickListener = clickListener;
gestureDetector = new GestureDetector(context, new GestureDetector.SimpleOnGestureListener(){
@Override
public boolean onSingleTapUp( MotionEvent event){
return true;
}
});
}
@Override
public boolean onInterceptTouchEvent(RecyclerView rv, MotionEvent e) {
View child = rv.findChildViewUnder(e.getX(), e.getY());
if( child != null && clickListener != null && gestureDetector.onTouchEvent(e) ){
clickListener.onClick(child, rv.getChildPosition(child));
}
gestureDetector.onTouchEvent(e);
return false;
}
@Override
public void onTouchEvent(RecyclerView rv, MotionEvent e) {
}
}
public static interface ClickListener{
public void onClick(View view, int position);
public void onLongClick(View view, int position);
}
}