diff options
author | Isaac Katzenelson <isaack@android.com> | 2011-10-14 18:15:18 -0700 |
---|---|---|
committer | Isaac Katzenelson <isaack@android.com> | 2011-10-14 18:15:18 -0700 |
commit | b33cdf41092c79ca3502868d494bc284f4090267 (patch) | |
tree | fc63dc885b3328c82ddb7c1983648a6c96d0c76b /src/com/android/calendar/DeleteEventHelper.java | |
parent | cb8d0a40761dfc1d3d52175fd056c0298493b5e9 (diff) | |
download | android_packages_apps_Calendar-b33cdf41092c79ca3502868d494bc284f4090267.tar.gz android_packages_apps_Calendar-b33cdf41092c79ca3502868d494bc284f4090267.tar.bz2 android_packages_apps_Calendar-b33cdf41092c79ca3502868d494bc284f4090267.zip |
Prevent saving reminders when event is deleted
Bug: 5445751 Calendar provider crash in duplicateEvent
Change-Id: Idf251b192c77206151d14af8b61396ec02113450
Diffstat (limited to 'src/com/android/calendar/DeleteEventHelper.java')
-rw-r--r-- | src/com/android/calendar/DeleteEventHelper.java | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/src/com/android/calendar/DeleteEventHelper.java b/src/com/android/calendar/DeleteEventHelper.java index 1d871e5e..a912a82e 100644 --- a/src/com/android/calendar/DeleteEventHelper.java +++ b/src/com/android/calendar/DeleteEventHelper.java @@ -90,6 +90,13 @@ public class DeleteEventHelper { private AsyncQueryService mService; + private DeleteNotifyListener mDeleteStartedListener = null; + + public interface DeleteNotifyListener { + public void onDeleteStarted(); + } + + public DeleteEventHelper(Context context, Activity parentActivity, boolean exitWhenDone) { if (exitWhenDone && parentActivity == null) { throw new IllegalArgumentException("parentActivity is required to exit when done"); @@ -124,6 +131,7 @@ public class DeleteEventHelper { private DialogInterface.OnClickListener mDeleteNormalDialogListener = new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int button) { + deleteStarted(); long id = mModel.mId; // mCursor.getInt(mEventIndexId); Uri uri = ContentUris.withAppendedId(CalendarContract.Events.CONTENT_URI, id); mService.startDelete(mService.getNextToken(), null, uri, null, null, Utils.UNDO_DELAY); @@ -142,6 +150,7 @@ public class DeleteEventHelper { private DialogInterface.OnClickListener mDeleteExceptionDialogListener = new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int button) { + deleteStarted(); deleteExceptionEvent(); if (mCallback != null) { mCallback.run(); @@ -174,6 +183,7 @@ public class DeleteEventHelper { private DialogInterface.OnClickListener mDeleteRepeatingDialogListener = new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int button) { + deleteStarted(); if (mWhichDelete != -1) { deleteRepeatingEvent(mWhichDelete); } @@ -423,4 +433,14 @@ public class DeleteEventHelper { mParent.finish(); } } + + public void setDeleteNotificationListener(DeleteNotifyListener listener) { + mDeleteStartedListener = listener; + } + + private void deleteStarted() { + if (mDeleteStartedListener != null) { + mDeleteStartedListener.onDeleteStarted(); + } + } } |