/** EventInfoのメンバ変数に基づいてデータベースを更新する */ public void updateDB() { // mRecurrenceが存在するデータについてはこのアプリでは無視する if (mRecurrence != null) { return; } Log.d("CALENDAR", "UpdateDB" + mTitle + ":" + getStartTimeString()); // タイトルと更新日時を取得する String[] projection = {TITLE, UPDATED}; String selection = EVENT_ID + " = ?"; String[] selectionArgs = {mEventId}; // 読み込まれたデータのID情報をもとにデータベースを検索 Cursor c = mContentResolver.query( EventCalendarActivity.RESOLVER_URI, projection, selection, selectionArgs, null); if (c.moveToNext()) { // すでに存在しているデータの場合は更新処理 String dbUpdated = c.getString(c.getColumnIndex(UPDATED)); c.close(); GregorianCalendar cal = DateStrCls.toCalendar(dbUpdated); // 更新日時を比較する(Calendar#compareTo) // 等しければ、0 // Googleカレンダーの更新日時(mUpdated) が新しい場合は 1 // データベースの更新日時(cal)が新しい場合は -1 int comp = mUpdated.compareTo(cal); if (comp == 0) { // アップデートの日時が等しい } else if (comp > 0) { // Googleカレンダー側が新しいので更新する。 if (isCanceled()) { // Googleカレンダーで削除されたものなら、データベースから削除 mContentResolver.delete(EventCalendarActivity.RESOLVER_URI, selection, selectionArgs); } else { mContentResolver.update( EventCalendarActivity.RESOLVER_URI, getValues(), selection, selectionArgs); } } else if (comp < 0) { // DB側が新しければ後でGoogleカレンダーにアップロードするためにrecordにMODIFIEDフラグをセット ContentValues cv = new ContentValues(); cv.put(MODIFIED, 1); mContentResolver.update(EventCalendarActivity.RESOLVER_URI, cv, selection, selectionArgs); } } else { // DBに同じデータが見つからなかったとき c.close(); if (isCanceled()) { // Googleカレンダー側で削除されていれば何もしない return; } // 新規データとしてInsert mContentResolver.insert(EventCalendarActivity.RESOLVER_URI, getValues()); } }
public String getUpdatedString() { return DateStrCls.toDBDateString(mUpdated); }
public String getPublishedString() { return DateStrCls.toDBDateString(mPublished); }
/** * mUpdatedに文字列で値を設定します * * @param date */ public void setUpdated(String date) { this.mUpdated = DateStrCls.toCalendar(date); }
public void setPublished(String date) { this.mPublished = DateStrCls.toCalendar(date); }
public void setEnd(String dateString) { this.mEnd = DateStrCls.toCalendar(dateString); }
public String getEndString() { return DateStrCls.toDBDateString(mEnd); }
public String getStartString() { return DateStrCls.toDBDateString(mStart); }
public void setStart(String dateString) { this.mStart = DateStrCls.toCalendar(dateString); }