aboutsummaryrefslogtreecommitdiffstats
path: root/cgeo-calendar/src/cgeo/calendar/AddEntry.java
blob: 30af34615b9f9de1ea5c5c94da871917221f8064 (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
55
package cgeo.calendar;

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

import java.util.Date;

class AddEntry extends AbstractAddEntry {

    private final int calendarId;

    /**
     * @param entry
     *         new entry to be stored
     * @param calendarId
     *         The selected calendar
     */
    public AddEntry(final CalendarEntry entry, final CalendarActivity activity, final 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();

        // values
        final ContentValues event = new ContentValues();
        event.put("calendar_id", calendarId);
        final long eventTime = eventDate.getTime();
        final int entryStartTimeMinutes = entry.getStartTimeMinutes();
        if (entryStartTimeMinutes >= 0) {
            event.put("dtstart", eventTime + entryStartTimeMinutes * 60000L);
        } else {
            event.put("dtstart", eventTime); // midnight
            event.put("dtend", eventTime + 86400000); // + one day
            event.put("allDay", 1);
        }
        event.put("eventTimezone", "UTC");
        event.put("title", Html.fromHtml(entry.getName()).toString());
        event.put("description", description);

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

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

}