aboutsummaryrefslogtreecommitdiffstats
path: root/cgeo-calendar/src/cgeo/calendar/AddEntryLevel14.java
diff options
context:
space:
mode:
authorBananeweizen <bananeweizen@gmx.de>2012-08-12 14:31:15 +0200
committerBananeweizen <bananeweizen@gmx.de>2012-08-12 14:31:15 +0200
commit48708e5195aa4d95b547a6104f903c97b0a0a9c6 (patch)
treeb56bb141e00500c783aca11503fb876229e33a4e /cgeo-calendar/src/cgeo/calendar/AddEntryLevel14.java
parent1a68a9a5fd0d5456806a1fa1cb4a695b5326d019 (diff)
downloadcgeo-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.java47
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);
+ }
+
+}