aboutsummaryrefslogtreecommitdiffstats
path: root/cgeo-calendar/src/cgeo/calendar/AddEntry.java
blob: b1f97b96145fbe70273f35d81fa94a9a449ed008 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
package cgeo.calendar;

import android.content.ContentValues;
import android.net.Uri;
import android.text.Html;

import java.util.Date;

class AddEntry extends AbstractAddEntry {

    private int calendarId;

    /**
     * @param entry
     * @param calendarId
     *            The selected calendar
     */
    public AddEntry(CalendarEntry entry, CalendarActivity activity, int calendarId) {
        super(entry, activity);
        this.calendarId = calendarId;
    }

    @Override
    protected void addEntryToCalendarInternal() {
        final Uri calendarProvider = Compatibility.getCalendarEventsProviderURI();

        final Date eventDate = entry.parseDate();
        final String description = entry.parseDescription();
        final String eventLocation = entry.parseLocation();

        // values
        final ContentValues event = new ContentValues();
        event.put("calendar_id", calendarId);
        if (entry.getStartTimeMinutes() >= 0) {
            event.put("dtstart", eventDate.getTime() + entry.getStartTimeMinutes() * 60000L);
        }
        else {
            event.put("dtstart", eventDate.getTime() + 43200000); // noon
            event.put("dtend", eventDate.getTime() + 43200000 + 3600000); // + one hour
            event.put("allDay", 1);
        }
        event.put("eventTimezone", "UTC");
        event.put("title", Html.fromHtml(entry.getName()).toString());
        event.put("description", description);

        if (eventLocation.length() > 0) {
            event.put("eventLocation", eventLocation);
        }
        event.put("hasAlarm", 0);

        activity.getContentResolver().insert(calendarProvider, event);
    }

}