contributing recurrence rule iterator

115 views
Skip to first unread message

Marten Gajda

unread,
Apr 25, 2014, 8:52:11 AM4/25/14
to android...@googlegroups.com
Hi all,

during the last months we've developed a new recurrence rule parser &
iterator for one of our own projects, see https://github.com/dmfs/lib-recur

I'd like to contribute the code to replace the current recurrence
processor in Android. The current code has a few bugs like this one
http://code.google.com/p/android/issues/detail?id=65594 (caused by this
one: http://code.google.com/p/android/issues/detail?id=37653) and this
one http://code.google.com/p/android/issues/detail?id=46546 and a couple
of limitations like support for BYSETPOS for certain rules only.

The key features of our library are:

* in general much faster than the current implementation (up to 5x and more)
* constant memory use (doesn't use more memory when iterating more
instances)
* year 2038 safe
* true iterator, you can stop recurrence processing at any time
* parser modes for RFC 2445 and RFC 5445 (each with strict & relaxed mode)
* supports less common (but still valid) rules that the current
implementation doesn't support
* prepared to support other calendar scales (though that's not complete yet)

The library is under Apache 2 license so there shouldn't be any
licensing issues.

Would you be interested in this? If so, how should we proceed?

cheers

Marten

--
Marten Gajda
Schandauer Straße 34
01309 Dresden
Germany

tel: +49 177 4427167
email: mar...@dmfs.org
twitter: twitter.com/dmfs_org

VAT Reg. No.: DE269072391

Marten Gajda

unread,
Apr 25, 2014, 2:07:25 PM4/25/14
to android...@googlegroups.com
--
*Marten Gajda*
Schandauer Straße 34
01309 Dresden
Germany

tel: +49 177 4427167
email: marten...@googlemail.com

enh

unread,
May 1, 2014, 2:38:15 PM5/1/14
to android...@googlegroups.com
sounds like it's basically unmaintained on our side (assuming you mean
frameworks/opt/calendar/src/com/android/calendarcommon2/RecurrenceProcessor.java?).
as long as your new implementation passes any existing tests (plus new
tests for the bugs you're fixing) we should be able to find someone to
review your patches...

conley might be able to comment on whether this should be imported
there or in external/lib-recur.
> --
>
> --- You received this message because you are subscribed to the Google
> Groups "Android Contributors" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to android-contr...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.



--
Elliott Hughes - http://who/enh - http://jessies.org/~enh/
Java i18n/JNI/NIO, or bionic questions? Mail me/drop by/add me as a reviewer.

Conley Owens

unread,
May 1, 2014, 5:17:39 PM5/1/14
to android...@googlegroups.com
Yes, if we want to proceed with this, we should import it as a new
external project.

As far as the review process goes, I would recommend creating a local
manifest (See one sony has here
https://github.com/sonyxperiadev/device-sony-c6603) to import your
project from github and then uploading the changes to other projects
necessary needed to use it. That way we won't have to add the project
on our side just yet before testing.

Marten Gajda

unread,
May 5, 2014, 5:03:02 AM5/5/14
to android...@googlegroups.com
Great! I'll prepare the patches and get back to you.

cheers

Marten

Marten Gajda

unread,
Jan 29, 2015, 12:28:06 PM1/29/15
to android...@googlegroups.com
Hi,

I know it's been a long time, but I'd like to follow up with this. I didn't have much time to work on this last year, but I finally finished an initial version. That is, I removed all references to the current recurrence processor and implemented support for our code. The CalendarProvider builds successfully, but that brings me to my first question:

How can I install the new CalendarProvider in the emulator? I get a "Failure [INSTALL_FAILED_DEXOPT]" when I try to install it like any other app.

My second question is: How do I run the CalendarProvider tests?

thanks

Marten
Reply all
Reply to author
Forward
0 new messages