Table Joins/Unions and ContentProviders: Reminderer

Ever since I wrote the new ContentProvider framework, Reminderer had this annoying bug where it wouldn’t auto-refresh the open tasks list whenever you added a new task. You added a task but the darn task wouldn’t show on the list until you rotated the phone.

The first approach was to force reload the Loader every time the fragment gets focus. While this hack works, its just that—a hack. This approach quickly becomes inefficient once the task list gets unduly large (as in hundreds of tasks). The second approach was to use a ContentObserver to listen for changes in the database. Fortunately, for some reason, as I’ll explain shortly, the content observer wouldn’t listen to changes in the table.

Continue reading


Off the Beaten Path: Reminderer

I’ve spent the past week fixing some persistent and annoying bugs. More on those later. Being a fan of the KISS principle, I think its better to polish what I have so far before adding more features rather than… adding a gazillion features that half work. So you can follow the latest progress in the dogFood branch.

The immediate goal is to make the “open tasks” activity more polished:

Continue reading


Rearrangeable List View Rows: Reminderer

Project View

I’ve been pretty busy at work, so I haven’t had as much time to work on Reminderer. The screenshot on the right shows the main page for Projects (aka categories)—you can now organize TODOs by project (1 project per TODO). Yes, the row height is too small to be user friendly but at this point I’m still working on the core functionality.

Rearrangeable List View Rows

One of the things that the UI will need is the ability to intuitively rearrange/reorder data, whether its projects or TODOs. Continue reading