package org.lntu.online.ui.fragment;
import android.os.Bundle;
import android.support.v4.view.ViewPager;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import org.joda.time.LocalDate;
import org.lntu.online.R;
import org.lntu.online.model.entity.ClassTable;
import org.lntu.online.ui.activity.ClassTableActivity;
import org.lntu.online.ui.adapter.ClassTablePageAdapter;
import org.lntu.online.ui.dialog.ClassTableTimeDialogHolder;
import java.util.List;
import java.util.Map;
import butterknife.BindView;
import butterknife.ButterKnife;
public class ClassTablePageFragment extends ClassTableActivity.BaseFragment {
@BindView(R.id.view_pager)
protected ViewPager viewPager;
private ClassTablePageAdapter adapter;
private ClassTableTimeDialogHolder holder;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
return inflater.inflate(R.layout.activity_class_table_page, container, false);
}
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
ButterKnife.bind(this, view);
holder = new ClassTableTimeDialogHolder(getActivity());
holder.setOnTimeDialogFinishListener(new ClassTableTimeDialogHolder.OnDialogFinishListener() {
@Override
public void onDialogFinish(LocalDate currentDate) {
if (adapter != null) {
viewPager.setCurrentItem(adapter.getPositionFromDate(currentDate), true);
}
}
});
}
@Override
public void onDataSetInit(int year, String term, LocalDate today) {
adapter = new ClassTablePageAdapter(getActivity(), year, term, today);
viewPager.setAdapter(adapter);
String currentTerm = (today.getMonthOfYear() >= 2 && today.getMonthOfYear() < 8) ? "春" : "秋";
if (today.getYear() == year && currentTerm.equals(term)) {
viewPager.setCurrentItem(adapter.getPositionFromDate(today), true);
} else if (term.equals("春")) {
viewPager.setCurrentItem(adapter.getPositionFromDate(new LocalDate(year, 3, 1)), true);
} else {
viewPager.setCurrentItem(adapter.getPositionFromDate(new LocalDate(year, 9, 1)), true);
}
}
@Override
public void onDataSetUpdate(ClassTable classTable, Map<String, List<ClassTable.CourseWrapper>> classTableMap) {
adapter.updateDataSet(classTable, classTableMap);
}
public void onSetToday() {
if (adapter != null) {
holder.showDialog(adapter.getDateAt(viewPager.getCurrentItem()));
}
}
}