backward compatibility: check.
UPDATE 2: Fixed. Now you shouldn’t see sync or QuickContactBadges before Eclair, and should see them on Eclair or later.

10 files changed, 82 insertions(+), 57 deletions(-)
UPDATE 1: Posted too soon. This is so backward-compatible it’s disabled on phones that should support it. Fixed build will be posted shortly. In the meantime I’m removing the package.
Anybody who’s itching to install a fork that adds features you can’t use anyway: you’re good to go now!

This required a fair amount of hoop-jumping, as you can see in the commit diff. The reflection ended up not being too terrible, but it’s not exactly elegant either. The worst part is the SometimesQuickContactBadge, which is just an ImageView that exposes the AttributeSet with which it was constructed. I couldn’t find a cleaner way to conditionally convert an ImageView into a QuickContactBadge.
I did get the project pulled into IntelliJ IDEA with very little effort, so at least I didn’t have to use Eclipse to go through all of that. The only thing that didn’t work was exporting the signed APK, but I just chalked that up to using an EAP build.
16 files changed, 353 insertions(+), 243 deletions(-)