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 at.tugraz.examreminder.ExamReminderApplication;
import at.tugraz.examreminder.R;
import at.tugraz.examreminder.adapter.CheckableCoursesAdapter;
import at.tugraz.examreminder.core.Course;
import at.tugraz.examreminder.core.CourseContainer;
import com.actionbarsherlock.app.SherlockFragment;
import com.actionbarsherlock.view.Menu;
import com.actionbarsherlock.view.MenuInflater;
import com.actionbarsherlock.view.MenuItem;
public class CoursesFragment extends SherlockFragment {
private ListView courses_list_view;
private CheckableCoursesAdapter adapter;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setHasOptionsMenu(true);
if(ExamReminderApplication.useTabletMode(getActivity()) && CourseContainer.instance().size() > 0) {
updateCourseDetailFragment(0);
}
}
@Override
public void onDestroy() {
super.onDestroy();
}
@Override
public void onResume() {
super.onResume();
adapter.notifyDataSetChanged();
}
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
inflater.inflate(R.menu.courses_menu, menu);
super.onCreateOptionsMenu(menu, inflater);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if(item.getItemId() == R.id.add){
Intent intent = new Intent(getActivity(), AddCourseActivity.class);
startActivity(intent);
return true;
}
return false;
}
protected void updateCourseDetailFragment(int position) {
FragmentTransaction ft = getFragmentManager().beginTransaction();
Course course = CourseContainer.instance().get(position);
CourseDetailsFragment newFragment = new CourseDetailsFragment();
newFragment.setValuesFromCourse(course);
ft.replace(R.id.details_fragment_container, newFragment);
ft.commit();
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View layout = inflater.inflate(R.layout.courses_fragment, container, false);
courses_list_view = (ListView) layout.findViewById(R.id.courses_list);
View empty_view = layout.findViewById(android.R.id.empty);
courses_list_view.setEmptyView(empty_view);
empty_view.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(getActivity(), AddCourseActivity.class);
startActivity(intent);
}
});
adapter = new CheckableCoursesAdapter(savedInstanceState);
adapter.setAdapterView(courses_list_view);
adapter.setOnItemClickListener(new AdapterView.OnItemClickListener() {
public void onItemClick(AdapterView<?> adapterView, View view, int position, long id) {
if(ExamReminderApplication.useTabletMode(getActivity())) {
updateCourseDetailFragment(position);
} else {
Intent intent = new Intent(getActivity(), CourseDetailsActivity.class);
intent.putExtra(CourseDetailsActivity.INTENT_COURSE_ID, position);
startActivity(intent);
}
}
});
return layout;
}
@Override
public void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
adapter.save(outState);
}
}