package at.tugraz.examreminder.ui; import android.content.Intent; import android.os.Bundle; import android.support.v4.app.FragmentTransaction; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.AdapterView; import android.widget.ListView; import android.widget.Toast; import at.tugraz.examreminder.ExamReminderApplication; import at.tugraz.examreminder.R; import at.tugraz.examreminder.adapter.CheckableCoursesAdapter; import at.tugraz.examreminder.adapter.ExamsAdapter; import at.tugraz.examreminder.core.Course; import at.tugraz.examreminder.core.CourseContainer; import at.tugraz.examreminder.core.Exam; import at.tugraz.examreminder.service.CourseListSerializer; import com.actionbarsherlock.app.SherlockFragment; import com.actionbarsherlock.app.SherlockListFragment; import com.actionbarsherlock.view.Menu; import com.actionbarsherlock.view.MenuInflater; import com.actionbarsherlock.view.MenuItem; public class ExamsFragment extends SherlockListFragment implements ExamsAdapter.OnItemClickListener { private ExamsAdapter adapter; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setHasOptionsMenu(true); adapter = new ExamsAdapter(getActivity()); setListAdapter(adapter); adapter.setOnItemClickListener(this); } @Override public void onResume() { super.onResume(); adapter.notifyDataSetChanged(); } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View layout = inflater.inflate(R.layout.exams_fragment, container, false); return layout; } @Override public void onItemClick(int position) { if(ExamReminderApplication.useTabletMode(getActivity())) { updateExamDetailFragment(position); } else { Exam exam = adapter.getItem(position); String exam_dump = CourseListSerializer.examToJson(exam); String course_dump = CourseListSerializer.courseToJson((Course)exam.course.clone()); Intent intent = new Intent(getActivity(), ExamDetailsActivity.class); intent.putExtra(ExamDetailsActivity.INTENT_EXAM_DUMP, exam_dump); intent.putExtra(ExamDetailsActivity.INTENT_COURSE_DUMP, course_dump); startActivity(intent); } } protected void updateExamDetailFragment(int position) { FragmentTransaction ft = getFragmentManager().beginTransaction(); Exam exam = adapter.getItem(position); ExamDetailsFragment newFragment = new ExamDetailsFragment(); newFragment.setValuesFromExam(exam, exam.course); ft.replace(R.id.details_fragment_container, newFragment); ft.commit(); } }