diff options
| author | Bananeweizen <bananeweizen@gmx.de> | 2012-08-12 14:31:15 +0200 |
|---|---|---|
| committer | Bananeweizen <bananeweizen@gmx.de> | 2012-08-12 14:31:15 +0200 |
| commit | 48708e5195aa4d95b547a6104f903c97b0a0a9c6 (patch) | |
| tree | b56bb141e00500c783aca11503fb876229e33a4e /cgeo-calendar/src/cgeo/calendar/AddEntryLevel14.java | |
| parent | 1a68a9a5fd0d5456806a1fa1cb4a695b5326d019 (diff) | |
| download | cgeo-48708e5195aa4d95b547a6104f903c97b0a0a9c6.zip cgeo-48708e5195aa4d95b547a6104f903c97b0a0a9c6.tar.gz cgeo-48708e5195aa4d95b547a6104f903c97b0a0a9c6.tar.bz2 | |
fix #1934: Calendar entry has wrong date
Diffstat (limited to 'cgeo-calendar/src/cgeo/calendar/AddEntryLevel14.java')
| -rw-r--r-- | cgeo-calendar/src/cgeo/calendar/AddEntryLevel14.java | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/cgeo-calendar/src/cgeo/calendar/AddEntryLevel14.java b/cgeo-calendar/src/cgeo/calendar/AddEntryLevel14.java new file mode 100644 index 0000000..787be73 --- /dev/null +++ b/cgeo-calendar/src/cgeo/calendar/AddEntryLevel14.java @@ -0,0 +1,47 @@ +package cgeo.calendar; + +import android.content.Intent; +import android.text.Html; + +import java.util.Date; + +/** + * Add cache to calendar in Android versions 4.0 and greater using <code>Intent</code>. This does not require + * calendar permissions. + * TODO Does this work with apps other than default calendar app? + */ +class AddEntryLevel14 extends AbstractAddEntry { + + public AddEntryLevel14(CalendarEntry entry, CalendarActivity activity) { + super(entry, activity); + } + + @Override + protected void addEntryToCalendarInternal() { + final Date eventDate = entry.parseDate(); + final String description = entry.parseDescription(); + final String eventLocation = entry.parseLocation(); + + /* + * TODO These strings are available as constants starting with API 14 and can be used when + * targetSdkVersion changes to 14. For example CalendarContract.EXTRA_EVENT_BEGIN_TIME and + * Events.TITLE + */ + final Intent intent = new Intent(Intent.ACTION_INSERT) + .setData(Compatibility.getCalendarEventsProviderURI()) + .putExtra("title", Html.fromHtml(entry.getName()).toString()) + .putExtra("description", description) + .putExtra("hasAlarm", false) + .putExtra("eventTimezone", "UTC") + .putExtra("eventLocation", eventLocation); + if (entry.getStartTimeMinutes() >= 0) { + intent.putExtra("beginTime", eventDate.getTime() + entry.getStartTimeMinutes() * 60000); + } + else { + intent.putExtra("beginTime", eventDate.getTime() + 43200000); + intent.putExtra("allDay", true); + } + activity.startActivity(intent); + } + +} |
