diff --git a/app/src/main/java/com/gh/common/constant/Constants.java b/app/src/main/java/com/gh/common/constant/Constants.java index 7e735eb0ca..fddda3edae 100644 --- a/app/src/main/java/com/gh/common/constant/Constants.java +++ b/app/src/main/java/com/gh/common/constant/Constants.java @@ -185,6 +185,9 @@ public class Constants { // 悬浮图标Y值 public static final String SP_TASK_FLOAT_LAST_Y = "task_float_last_y"; + // 日程ID + public static final String SP_SCHEDULE_ID = "schedule_id"; + //手机号码匹配规则 public static final String REGEX_MOBILE = "^((13[0-9])|(15[^4,\\D])|(18[0,5-9]))\\d{8}$"; public static final String REGEX_ACCOUNT = "^[a-zA-Z_]\\w{5,17}$"; diff --git a/app/src/main/java/com/gh/common/util/CalendarHelper.kt b/app/src/main/java/com/gh/common/util/CalendarHelper.kt index fe67dd434d..fca7644395 100644 --- a/app/src/main/java/com/gh/common/util/CalendarHelper.kt +++ b/app/src/main/java/com/gh/common/util/CalendarHelper.kt @@ -7,6 +7,7 @@ import android.database.Cursor import android.net.Uri import android.provider.CalendarContract.* import android.text.TextUtils +import com.gh.common.constant.Constants import com.gh.gamecenter.BuildConfig import com.gh.gamecenter.R import java.util.* @@ -117,10 +118,22 @@ object CalendarHelper { put(Events.CALENDAR_ID, calendarId) put(Events.EVENT_TIMEZONE, TimeZone.getDefault().id) } + + // 检测是否存在已保存的日程ID,有则更新 + val scheduleId = SPUtils.getLong(Constants.SP_SCHEDULE_ID) + if (scheduleId != 0L) { + val updateUri = ContentUris.withAppendedId(CALENDAR_EVENT_URL, scheduleId) + val rows = context.contentResolver.update(updateUri, eventValues, null, null) + if (rows != -1) return true + } + val eUri: Uri? = context.contentResolver.insert(CALENDAR_EVENT_URL, eventValues) val eventId = eUri?.let { ContentUris.parseId(it) } if (eventId == 0L) { // 插入失败 return false + } else { + // 保存日程ID + SPUtils.setLong(Constants.SP_SCHEDULE_ID, eventId ?: 0L) } /** 插入提醒 - 依赖插入日程成功 */ val reminderValues = ContentValues() @@ -141,6 +154,17 @@ object CalendarHelper { fun deleteCalendarEvent(context: Context, title: String): Boolean { + + // 检测是否存在已保存的日程ID,有则根据该ID删除 + val scheduleId = SPUtils.getLong(Constants.SP_SCHEDULE_ID) + if (scheduleId != 0L) { + val deleteUri = ContentUris.withAppendedId(CALENDAR_EVENT_URL, scheduleId) + val rows = context.contentResolver.delete(deleteUri, null, null) + if (rows != -1) { + SPUtils.setLong(Constants.SP_SCHEDULE_ID, 0L) + return true + } + } val eventCursor = context.contentResolver.query(CALENDAR_EVENT_URL, null, null, null, null) eventCursor?.use { @@ -154,6 +178,7 @@ object CalendarHelper { .getColumnIndex(Calendars._ID)) // 取得id val deleteUri = ContentUris.withAppendedId(CALENDAR_EVENT_URL, id.toLong()) val rows = context.contentResolver.delete(deleteUri, null, null) + SPUtils.setLong(Constants.SP_SCHEDULE_ID, 0L) return rows != -1 } it.moveToNext()