m-i-n-a-r/birday

Ignore "zero" birthdays

Closed this issue · 3 comments

yaronf commented

Thank you @m-i-n-a-r for a great application!

I have a large number of contacts that accumulated over a long time. For dozens of these contacts, when I display them in Google Contacts (desktop) the birthday field shows an empty string:
Bad BDay

After manually editing the contact and finally removing the birthday, the same contact correctly shows an "Add Birthday" link:

Add BDay

Birday imports contacts of the first type as a Unix "zero" date, i.e. Jan. 1, 1970. It would be great if it just ignored those contacts during import, as it does when the birthday is absent.

Mhh I didn't know such a case could even exist, thanks for letting me know. I have to find a way to ignore those contacts safely, I can't just ignore any event on January 1 1970 obviously. I'll look into it!

yaronf commented

Did some poking around. Unfortunately the relevant line:

val birthday: String = eventCursor.getString(0)

comes back with "1970-01-01".

The only hint I found (I don't know anything about Android databases): when I export these values to vCard, correct birthdays are:

BDAY:19671114

and corrupted ones are all

BDAY;VALUE=text:

yaronf commented

I believe the conversion to 1970-01-01 happens when contacts are read into Android, because:

  • On the Android Contacts app, they look just like any other contact, and
  • I went through the entire raw associated with the event, and I see no column that correlates with corrupted events.

If this is true, then this cannot be fixed in the app.

I will take care of the contacts manually and I suggest to close the issue.