Search in sources :

Example 6 with Course

use of com.mnnyang.gzuclassschedule.data.bean.Course in project GzuClassSchedule by mnnyang.

the class CourseDbDao method updateCourse.

/**
 * 更新
 */
public Course updateCourse(Course course) {
    Course conflictCourse = hasConflictCourse(course);
    if (null != conflictCourse) {
        return conflictCourse;
    }
    SQLiteDatabase db = new CourseDbHelper(app.mContext).getWritableDatabase();
    db.beginTransaction();
    try {
        // course.setCsNameId()
        ContentValues values = new ContentValues();
        putAllNotId(course, values);
        db.update(CoursesPsc.CourseEntry.TABLE_NAME, values, CoursesPsc.CourseEntry.COLUMN_NAME_COURSE_ID + "=?", new String[] { course.getCourseId() + "" });
        deleteNodeByCourseId(course.getCourseId(), db);
        for (Integer integer : course.getNodes()) {
            values.clear();
            values.put(CoursesPsc.NodeEntry.COLUMN_NAME_COURSE_ID, course.getCourseId());
            values.put(CoursesPsc.NodeEntry.COLUMN_NAME_NODE_NUM, integer);
            db.insert(CoursesPsc.NodeEntry.TABLE_NAME, null, values);
        }
        db.setTransactionSuccessful();
    } catch (Exception e) {
        e.printStackTrace();
    } finally {
        db.endTransaction();
        db.close();
    }
    return null;
}
Also used : ContentValues(android.content.ContentValues) SQLiteDatabase(android.database.sqlite.SQLiteDatabase) Course(com.mnnyang.gzuclassschedule.data.bean.Course)

Example 7 with Course

use of com.mnnyang.gzuclassschedule.data.bean.Course in project GzuClassSchedule by mnnyang.

the class CourseDbDao method addCourse.

/**
 * 添加课程<br>
 * 应检查课程信息的准确性后再调用该方法 <br>
 *
 * @return success return null or return conflict object
 */
public Course addCourse(Course course) {
    Course conflictCourse = hasConflictCourse(course);
    if (null != conflictCourse) {
        LogUtil.e(this, "有冲突");
        return conflictCourse;
    }
    SQLiteDatabase db = new CourseDbHelper(app.mContext).getWritableDatabase();
    ContentValues values = new ContentValues();
    putAllNotId(course, values);
    db.beginTransaction();
    try {
        long courseId = db.insert(CoursesPsc.CourseEntry.TABLE_NAME, null, values);
        for (Integer integer : course.getNodes()) {
            values.clear();
            values.put(CoursesPsc.NodeEntry.COLUMN_NAME_COURSE_ID, courseId);
            values.put(CoursesPsc.NodeEntry.COLUMN_NAME_NODE_NUM, integer);
            db.insert(CoursesPsc.NodeEntry.TABLE_NAME, null, values);
        }
        db.setTransactionSuccessful();
    } catch (Exception e) {
        e.printStackTrace();
    } finally {
        db.endTransaction();
    }
    db.close();
    return null;
}
Also used : ContentValues(android.content.ContentValues) SQLiteDatabase(android.database.sqlite.SQLiteDatabase) Course(com.mnnyang.gzuclassschedule.data.bean.Course)

Example 8 with Course

use of com.mnnyang.gzuclassschedule.data.bean.Course in project GzuClassSchedule by mnnyang.

the class ImptPresenter method parseCoursesHtmlToDb.

private void parseCoursesHtmlToDb(final String html, final String courseTimeTerm) {
    try {
        Observable.create(new Observable.OnSubscribe<String>() {

            @Override
            public void call(Subscriber<? super String> subscriber) {
                final ArrayList<Course> courses = ParseCourse.parse(html);
                // 删除旧数据
                CourseDbDao.newInstance().removeByCsName(courseTimeTerm);
                // 添加新数据
                for (Course c : courses) {
                    c.setCsName(courseTimeTerm);
                    CourseDbDao.newInstance().addCourse(c);
                }
                subscriber.onNext("导入成功");
                subscriber.onCompleted();
            }
        }).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer<String>() {

            @Override
            public void onCompleted() {
                LogUtil.d(this, "完成");
            }

            @Override
            public void onError(Throwable e) {
                mImptView.hideImpting();
                mImptView.showErrToast("插入数据库失败", true);
            }

            @Override
            public void onNext(String s) {
                System.out.println("导入成功:" + courseTimeTerm);
                Preferences.putInt(app.mContext.getString(R.string.app_preference_current_sd_name_id), CourseDbDao.newInstance().getCsNameId(courseTimeTerm));
                mImptView.hideImpting();
                mImptView.showSucceed();
            }
        });
    } catch (Exception e) {
        e.printStackTrace();
        mImptView.hideImpting();
        mImptView.showErrToast("导入错误", true);
    }
}
Also used : Subscriber(rx.Subscriber) ParseCourse(com.mnnyang.gzuclassschedule.utils.spec.ParseCourse) Course(com.mnnyang.gzuclassschedule.data.bean.Course)

Example 9 with Course

use of com.mnnyang.gzuclassschedule.data.bean.Course in project GzuClassSchedule by mnnyang.

the class CourseTableView method setNoCurBgAndVisible.

private void setNoCurBgAndVisible(LinearLayout itemView) {
    StateListDrawable drawable;
    drawable = getShowBgDrawable(mColors[mColors.length - 2], mColors[mColors.length - 1]);
    itemView.setBackground(drawable);
    TextView tv = (TextView) itemView.getChildAt(0);
    tv.setTextColor(Utils.getColor(getResources(), R.color.color_text_not_current));
    tv.setText("[非本周]" + tv.getText());
    if (((Course) itemView.getTag()).isShowOverlap()) {
        itemView.setVisibility(VISIBLE);
    } else {
        itemView.setVisibility(GONE);
    }
}
Also used : TextView(android.widget.TextView) StateListDrawable(android.graphics.drawable.StateListDrawable) Course(com.mnnyang.gzuclassschedule.data.bean.Course)

Example 10 with Course

use of com.mnnyang.gzuclassschedule.data.bean.Course in project GzuClassSchedule by mnnyang.

the class CourseTableView method setCourseData.

public CourseTableView setCourseData(ArrayList<Course> courseData) {
    mCourses.clear();
    mNameColorMap.clear();
    // 没有插入时候,导致页面没有刷新
    resetView();
    for (Course course : courseData) {
        addCourse(course);
    }
    return this;
}
Also used : 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