package com.rthoni.stssaguenay.ui.fragments; import android.app.ProgressDialog; import android.os.Bundle; import android.support.annotation.Nullable; import android.support.v4.app.Fragment; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.TextView; import android.widget.Toast; import com.luticate.utils.business.LuPromise; import com.rthoni.stssaguenay.R; import com.rthoni.stssaguenay.business.RoutesBusiness; import com.rthoni.stssaguenay.business.STSBusiness; import com.rthoni.stssaguenay.dbo.RoutesDbo; import com.rthoni.stssaguenay.dbo.StopsDbo; import java.util.List; import java.util.Vector; import butterknife.BindView; import butterknife.ButterKnife; /** * Created by robin on 9/29/16. */ public class StopRoutesPickerFragment extends Fragment { @BindView(R.id.textView) TextView _textView; @BindView(R.id.listRoutes) RecyclerView _listRoutes; private StopsDbo _stopsDbo; private RoutesAdapter _routesAdapter; public static class ViewHolder extends RecyclerView.ViewHolder { public TextView _textView; public ViewHolder(TextView v) { super(v); _textView = v; } } public class RoutesAdapter extends RecyclerView.Adapter { private List _routes; @Override public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { View v = LayoutInflater.from(parent.getContext()) .inflate(R.layout.simple_recycler_view_item, parent, false); ViewHolder vh = new ViewHolder((TextView)v); return vh; } @Override public void onBindViewHolder(ViewHolder holder, int position) { final RoutesDbo routeDbo = _routes.get(position); holder._textView.setText(routeDbo.getFullName()); holder._textView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // onStopSelected(routeDbo); } }); } @Override public int getItemCount() { return _routes == null ? 0 : _routes.size(); } public void setRoutes(List routes) { _routes = routes; notifyDataSetChanged(); } } @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { View v = inflater.inflate(R.layout.fragment_stop_route_picker, container, false); ButterKnife.bind(this, v); _textView.setText(getResources().getString(R.string.pick_routes, _stopsDbo.getFullName())); _routesAdapter = new RoutesAdapter(); _listRoutes.setAdapter(_routesAdapter); _listRoutes.setLayoutManager(new LinearLayoutManager(getContext())); loadRoutes(); return v; } public StopsDbo getStopsDbo() { return _stopsDbo; } public void setStopsDbo(StopsDbo stopsDbo) { _stopsDbo = stopsDbo; } public void loadRoutes() { final ProgressDialog progressDialog = new ProgressDialog(getContext()); progressDialog.setIndeterminate(true); progressDialog.show(); RoutesBusiness.getAll(STSBusiness.getConfig()) .then(new LuPromise.LuConsumer>() { @Override public void execute(List data) { progressDialog.dismiss(); List routes = RoutesBusiness.getRoutesDbos(data, _stopsDbo.getRoutes()); _routesAdapter.setRoutes(routes); } }, new LuPromise.LuConsumer() { @Override public void execute(LuPromise.LuPromiseError data) { progressDialog.dismiss(); _routesAdapter.setRoutes(new Vector()); Toast.makeText(getContext(), data.getError(), Toast.LENGTH_LONG).show(); } }); } }