package ru.bsuirhelper.android.ui.schedule;
import android.content.Context;
import android.graphics.Color;
import android.preference.PreferenceManager;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;
import ru.bsuirhelper.android.R;
import ru.bsuirhelper.android.core.notes.Note;
import ru.bsuirhelper.android.core.notes.NoteDatabase;
import ru.bsuirhelper.android.core.schedule.Lesson;
import ru.bsuirhelper.android.ui.ActivitySettings;
/**
* Created by Влад on 21.09.13.
*/
class ViewAdapterLessons extends BaseAdapter {
private final Context mContext;
private final Lesson[] mValues;
public static final int TAG_KEY_DAY = 0;
public ViewAdapterLessons(Context context, Lesson[] values) {
this.mContext = context;
this.mValues = values;
}
@Override
public int getCount() {
return mValues.length;
}
@Override
public Object getItem(int i) {
return mValues[i];
}
@Override
public long getItemId(int i) {
return i;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
LayoutInflater inflater = (LayoutInflater) mContext
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
if (convertView == null) {
convertView = inflater.inflate(R.layout.view_lesson, parent, false);
setViewHolder(convertView);
}
final ViewHolder vh = (ViewHolder) convertView.getTag();
Lesson lesson = mValues[position];
String subject = lesson.fields.get("subject");
String timePeriod = lesson.fields.get("timePeriod");
String auditorium = lesson.fields.get("auditorium");
String teacher = lesson.fields.get("teacher");
String subjectType = lesson.fields.get("subjectType");
if (!subjectType.equals("кч")) {
boolean isShowSubjectTypes = PreferenceManager.getDefaultSharedPreferences(
convertView.getContext()).getBoolean(ActivitySettings.KEY_SHOW_SUBJECTS_TYPE, false);
if (isShowSubjectTypes && !subjectType.equals("")) {
vh.lessonName.setText(subject);
vh.lessonSubject.setVisibility(View.VISIBLE);
vh.lessonSubject.setText(" (" + subjectType + ")");
} else {
vh.lessonName.setText(subject);
vh.lessonSubject.setVisibility(View.GONE);
}
} else {
vh.lessonName.setText("КЧ");
}
vh.lessonTime.setText(timePeriod);
vh.lessonTeacher.setText(teacher);
Note note = NoteDatabase.getInstance(convertView.getContext()).fetchNoteByLessonId(lesson.id);
if (note != null) {
vh.ivNote.setVisibility(View.VISIBLE);
} else {
vh.ivNote.setVisibility(View.INVISIBLE);
}
vh.lessonAuditorium.setText(auditorium);
if (subjectType.equals("лр")) {
vh.lView.setBackgroundColor(mContext.getResources().getColor(R.color.red));
} else if (subjectType.equals("пз")) {
vh.lView.setBackgroundColor(mContext.getResources().getColor(R.color.orange));
} else if (subjectType.equals("лк")) {
vh.lView.setBackgroundColor(mContext.getResources().getColor(R.color.green));
} else {
vh.lView.setBackgroundColor(Color.WHITE);
}
View verticalLine = convertView.findViewById(R.id.customview);
verticalLine.setBackgroundColor(Color.WHITE);
return convertView;
}
@Override
public boolean isEnabled(int position) {
return true;
}
public void setViewHolder(View rowView) {
ViewHolder vh = new ViewHolder();
vh.lView = rowView.findViewById(R.id.lesson_type_color);
vh.lessonTime = (TextView) rowView.findViewById(R.id.lesson_time);
vh.lessonAuditorium = (TextView) rowView.findViewById(R.id.lesson_auditorium);
vh.lessonTeacher = (TextView) rowView.findViewById(R.id.lesson_teacher);
vh.lessonName = (TextView) rowView.findViewById(R.id.lesson_name);
vh.lessonSubject = (TextView) rowView.findViewById(R.id.lesson_subject_type);
vh.ivNote = (ImageView) rowView.findViewById(R.id.imageview_note);
rowView.setTag(vh);
}
class ViewHolder {
View lView;
TextView lessonTime;
TextView lessonAuditorium;
TextView lessonTeacher;
TextView lessonName;
TextView lessonSubject;
ImageView ivNote;
}
}