use of com.mnnyang.gzuclassschedule.data.bean.Course in project GzuClassSchedule by mnnyang.
the class CoursePresenter method updateCourseViewData.
@Override
public void updateCourseViewData(final int csNameId) {
Observable.create(new Observable.OnSubscribe<ArrayList<Course>>() {
@Override
public void call(Subscriber<? super ArrayList<Course>> subscriber) {
CourseDbDao dao = CourseDbDao.newInstance();
final ArrayList<Course> courses = dao.loadCourses(csNameId);
subscriber.onNext(courses);
subscriber.onCompleted();
}
}).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer<ArrayList<Course>>() {
@Override
public void onCompleted() {
}
@Override
public void onError(Throwable e) {
e.printStackTrace();
}
@Override
public void onNext(ArrayList<Course> courses) {
mCourseView.setCourseData(courses);
}
});
}
use of com.mnnyang.gzuclassschedule.data.bean.Course in project GzuClassSchedule by mnnyang.
the class CourseTableView method addCourse.
/**
* 添加课程添加成功返回null 添加失败返回冲突课程<br>
* 应检查课程信息的准确性后再调用该方法 <br>
*
* @return success return null or return conflict object
*/
public Course addCourse(@NonNull Course course) {
LogUtil.i(this, "addCourse-->" + course.toString());
for (Course c : mCourses) {
if (c.equals(course)) {
LogUtil.e(this, c.getName() + " and " + course.getName() + " conflict");
return c;
}
overlapShow(c, course);
}
if (course.getNodes().size() > 0 && course.getWeek() > 0) {
setCourseItemViewColor(course);
mCourses.add(course);
if (!mIsFirst) {
addCourseItemView(course);
}
} else {
LogUtil.e(this, "Time is not complete!--->" + course.toString());
}
return null;
}
use of com.mnnyang.gzuclassschedule.data.bean.Course in project GzuClassSchedule by mnnyang.
the class AddPresenter method addCourse.
@Override
public void addCourse(Course course) {
LogUtil.d(this, course.toString());
if (TextUtils.isEmpty(course.getName())) {
mView.showAddFail("请填写课程名称");
return;
}
if (0 == course.getWeek()) {
mView.showAddFail("请选择上课时间");
return;
}
if (0 == course.getStartWeek()) {
mView.showAddFail("请选择课程开始周");
return;
}
CourseDbDao dao = CourseDbDao.newInstance();
Course course1 = dao.addCourse(course);
if (course1 != null) {
mView.showAddFail("和课程 【" + course1.getName() + "-星期" + course1.getWeek() + "第" + course1.getNodes().get(0) + "节】 " + "时间冲突");
return;
}
mView.onAddSucceed(course);
}
use of com.mnnyang.gzuclassschedule.data.bean.Course in project GzuClassSchedule by mnnyang.
the class CourseDbDao method loadCourses.
@NonNull
public ArrayList<Course> loadCourses(int csNameId) {
String csName = getCsName(csNameId);
SQLiteDatabase db = new CourseDbHelper(app.mContext).getWritableDatabase();
String sql = "select * from " + CoursesPsc.CourseEntry.TABLE_NAME + " where " + CoursesPsc.CourseEntry.COLUMN_NAME_CS_NAME_ID + "='" + csNameId + "'";
Cursor cursor = db.rawQuery(sql, null);
ArrayList<Course> courses = new ArrayList<>();
while (cursor.moveToNext()) {
Course course = parse(cursor);
course.setCsName(csName);
courses.add(course);
sql = "select * from " + CoursesPsc.NodeEntry.TABLE_NAME + " where " + CoursesPsc.NodeEntry.COLUMN_NAME_COURSE_ID + "=" + course.getCourseId();
Cursor nodeCursor = db.rawQuery(sql, null);
while (nodeCursor.moveToNext()) {
course.addNode(nodeCursor.getInt(nodeCursor.getColumnIndex(CoursesPsc.NodeEntry.COLUMN_NAME_NODE_NUM)));
}
nodeCursor.close();
}
cursor.close();
db.close();
return courses;
}
use of com.mnnyang.gzuclassschedule.data.bean.Course in project GzuClassSchedule by mnnyang.
the class CourseDbDao method hasConflictCourse.
/**
* 课程冲突判断<br>
*
* @param course must be have csName
*/
private Course hasConflictCourse(Course course) {
LogUtil.e(this, "冲突检查:-->" + course.toString());
SQLiteDatabase db = new CourseDbHelper(app.mContext).getWritableDatabase();
int csNameId = getCsNameId(course.getCsName(), db);
course.setCsNameId(csNameId);
String sql = "select * from " + CoursesPsc.CourseEntry.TABLE_NAME + " WHERE " + CoursesPsc.CourseEntry.COLUMN_NAME_CS_NAME_ID + "='" + course.getCsNameId() + "'" + " AND " + CoursesPsc.CourseEntry.COLUMN_NAME_COURSE_ID + "!='" + course.getCourseId() + "'";
Cursor cursor = db.rawQuery(sql, null);
while (cursor.moveToNext()) {
Course conflictCourse = parse(cursor);
LogUtil.e(this, "疑是冲突:-->" + course.toString());
sql = "select * from " + CoursesPsc.NodeEntry.TABLE_NAME + " where " + CoursesPsc.NodeEntry.COLUMN_NAME_COURSE_ID + "=" + conflictCourse.getCourseId();
Cursor nodeCursor = db.rawQuery(sql, null);
while (nodeCursor.moveToNext()) {
conflictCourse.addNode(nodeCursor.getInt(nodeCursor.getColumnIndex(CoursesPsc.NodeEntry.COLUMN_NAME_NODE_NUM)));
}
nodeCursor.close();
if (course.equals(conflictCourse)) {
LogUtil.e(this, course.getName() + " 和 " + conflictCourse.toString() + "冲突!!");
cursor.close();
db.close();
return conflictCourse;
}
}
cursor.close();
db.close();
return null;
}
Aggregations