package com.dozuki.ifixit.ui.guide.view;
import android.content.Context;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.TextView;
import com.dozuki.ifixit.R;
import com.dozuki.ifixit.model.guide.GuideStep;
import com.dozuki.ifixit.model.guide.StepLine;
import com.dozuki.ifixit.ui.BaseFragment;
import java.util.ArrayList;
public class StepLinesFragment extends BaseFragment {
public static final String GUIDE_STEP = "GUIDE_STEP_KEY";
private Context mContext;
private TextView mTitle;
private ListView mLineList;
private StepTextArrayAdapter mTextAdapter;
private GuideStep mStep;
@Override
public void onCreate(Bundle savedInstanceState) {
mContext = getActivity();
super.onCreate(savedInstanceState);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
// Inflate the layout for this fragment
View view = inflater.inflate(R.layout.guide_step_lines, container, false);
mLineList = (ListView) view.findViewById(R.id.step_text_list);
mTitle = (TextView) view.findViewById(R.id.step_title);
Bundle extras = getArguments();
if (extras != null) {
mStep = (GuideStep)extras.getSerializable(GUIDE_STEP);
}
String title = mStep.getTitle().length() == 0
? getString(R.string.step_number, mStep.getStepNum())
: mStep.getTitle();
// Set the guide title text, defaults to Step #
mTitle.setText(title);
// Initialize the step instructions text and bullets
mTextAdapter = new StepTextArrayAdapter(mContext, R.id.step_text_list, mStep.getLines());
mLineList.setAdapter(mTextAdapter);
return view;
}
public class StepTextArrayAdapter extends ArrayAdapter<StepLine> {
private ArrayList<StepLine> mLines;
private Context mContext;
public StepTextArrayAdapter(Context context, int viewResourceId,
ArrayList<StepLine> lines) {
super(context, viewResourceId, lines);
mLines = lines;
mContext = context;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
GuideStepLineView stepLine = (GuideStepLineView) convertView;
if (stepLine == null) {
stepLine = new GuideStepLineView(mContext);
}
stepLine.setLine(mLines.get(position));
return stepLine;
}
}
}