Page 1 of 1
Contact info
Posted: 19 Nov 2016 14:22
by jurkov
Hello there.
I want to make a custom widget with info about how many days remain to day when someone celebrate a birthday. It is possible to find out this info from Contacts?
Thanks. Juraj.
Re: Contact info
Posted: 20 Nov 2016 13:40
by Martin
Hi,
There's no built-in action to query this information in a comfortable way so you have to use action
Query Content Provider:
Content URI:
content://comn.android.contacts/data
Projection:
data1
Selection:
display_name like 'NameXYZ%' and mimetype like '%event'
Result Type:
Single value
Variable:
birthdate
The date is provided as a text in format yyyy-MM-dd so you have to use a script to calculate the number of days to go. Following should work in an action
Script:
Code: Select all
// adjust text to reflect birthday in current year, otherwise leap year might have negative effect
birthdate = "{trigertime,dateformat,yyyy}-"+substring(birthdate, 5);
// convert from text to a proper date object
date = getDate(birthdate, "yyyy-MM-dd");
// calculate the day number of birthday in this year
day_of_year = "{date,dateformat,D}";
// calculate todays day number
day_of_year_today = "{triggertime,dateformat,D}";
// calculate the day difference
diff = day_of_year - day_of_year_today;
Alternatively querying the contacts-calendar with condition
Calendar Event could also work:
Starting:
30d before
Calendars:
Google:Contacts
Event Type:
All day events
Multiple events:
Prefer the first
The start of the event will become available in variable
event_start, title in variable
event_title.
You still have to calculate the days to go using a script like the one shown above.
Regards,
Martin