Search in sources :

Example 1 with Course

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);
        }
    });
}
Also used : Subscriber(rx.Subscriber) ArrayList(java.util.ArrayList) CourseDbDao(com.mnnyang.gzuclassschedule.data.db.CourseDbDao) Course(com.mnnyang.gzuclassschedule.data.bean.Course)

Example 2 with Course

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;
}
Also used : Course(com.mnnyang.gzuclassschedule.data.bean.Course)

Example 3 with Course

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);
}
Also used : CourseDbDao(com.mnnyang.gzuclassschedule.data.db.CourseDbDao) Course(com.mnnyang.gzuclassschedule.data.bean.Course)

Example 4 with 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;
}
Also used : SQLiteDatabase(android.database.sqlite.SQLiteDatabase) ArrayList(java.util.ArrayList) Cursor(android.database.Cursor) Course(com.mnnyang.gzuclassschedule.data.bean.Course) NonNull(android.support.annotation.NonNull)

Example 5 with Course

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;
}
Also used : SQLiteDatabase(android.database.sqlite.SQLiteDatabase) Cursor(android.database.Cursor) Course(com.mnnyang.gzuclassschedule.data.bean.Course)

Aggregations

Course (com.mnnyang.gzuclassschedule.data.bean.Course)15 SQLiteDatabase (android.database.sqlite.SQLiteDatabase)4 CourseDbDao (com.mnnyang.gzuclassschedule.data.db.CourseDbDao)3 ContentValues (android.content.ContentValues)2 Cursor (android.database.Cursor)2 ArrayList (java.util.ArrayList)2 Subscriber (rx.Subscriber)2 Intent (android.content.Intent)1 StateListDrawable (android.graphics.drawable.StateListDrawable)1 NonNull (android.support.annotation.NonNull)1 TextView (android.widget.TextView)1 CsItem (com.mnnyang.gzuclassschedule.data.bean.CsItem)1 CourseGroup (com.mnnyang.gzuclassschedule.data.beanv2.CourseGroup)1 CourseV2 (com.mnnyang.gzuclassschedule.data.beanv2.CourseV2)1 CourseGroupDao (com.mnnyang.gzuclassschedule.data.greendao.CourseGroupDao)1 CourseV2Dao (com.mnnyang.gzuclassschedule.data.greendao.CourseV2Dao)1 DaoMaster (com.mnnyang.gzuclassschedule.data.greendao.DaoMaster)1 DaoSession (com.mnnyang.gzuclassschedule.data.greendao.DaoSession)1 MyOpenHelper (com.mnnyang.gzuclassschedule.data.greendao.MyOpenHelper)1 ParseCourse (com.mnnyang.gzuclassschedule.utils.spec.ParseCourse)1