summaryrefslogtreecommitdiffstats
path: root/src/com/android/calendar/icalendar/VEvent.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/android/calendar/icalendar/VEvent.java')
-rw-r--r--src/com/android/calendar/icalendar/VEvent.java44
1 files changed, 44 insertions, 0 deletions
diff --git a/src/com/android/calendar/icalendar/VEvent.java b/src/com/android/calendar/icalendar/VEvent.java
index 1aff0bd4..672aa18b 100644
--- a/src/com/android/calendar/icalendar/VEvent.java
+++ b/src/com/android/calendar/icalendar/VEvent.java
@@ -6,6 +6,7 @@ package com.android.calendar.icalendar;
import java.util.HashMap;
import java.util.LinkedList;
+import java.util.ListIterator;
import java.util.UUID;
/**
@@ -173,4 +174,47 @@ public class VEvent {
return sb.toString();
}
+ public void populateFromEntries(ListIterator<String> iter) {
+ while (iter.hasNext()) {
+ String line = iter.next();
+ if (line.contains("BEGIN:VEVENT")) {
+ // Continue
+ } else if (line.startsWith("END:EVENT")) {
+ break;
+ } else if (line.startsWith("ORGANIZER")) {
+ String entry = parseTillNextAttribute(iter, line);
+ mOrganizer = Organizer.populateFromICalString(entry);
+ } else if (line.startsWith("ATTENDEE")) {
+ // Go one previous, so VEvent, parses current line
+ iter.previous();
+
+ // Offload to Attendee for parsing
+ Attendee attendee = new Attendee();
+ attendee.populateFromEntries(iter);
+ mAttendees.add(attendee);
+ } else if (line.contains(":")) {
+ String entry = parseTillNextAttribute(iter, line);
+ int indexOfFirstColon = entry.indexOf(":");
+ String key = entry.substring(0, indexOfFirstColon);
+ String value = entry.substring(indexOfFirstColon + 1);
+ mProperties.put(key, value);
+ }
+ }
+ }
+
+ public static String parseTillNextAttribute(ListIterator<String> iter, String currentLine) {
+ StringBuilder parse = new StringBuilder();
+ parse.append(currentLine);
+ while (iter.hasNext()) {
+ String line = iter.next();
+ if (line.startsWith(" ")) {
+ parse.append(line.replaceFirst(" ", ""));
+ } else {
+ iter.previous();
+ break;
+ }
+ }
+ return parse.toString();
+ }
+
}