/lib/titanium/mobile/android/GeneralCalendar.hx

http://github.com/visup/haxe-titanium-api · Haxe · 248 lines · 28 code · 6 blank · 214 comment · 0 complexity · 3c0ababd132b65e77e2157ac3842093b MD5 · raw file

  1. package titanium.mobile.android;
  2. import titanium.mobile.core.Dispatcher;
  3. import titanium.mobile.android.calendar.Alert;
  4. import titanium.mobile.android.calendar.Calendar;
  5. /**
  6. GeneralCalendar class
  7. Documentation available at:
  8. http://developer.appcelerator.com/apidoc/mobile/latest/Titanium.Android.Calendar-module
  9. - namespace
  10. Titanium.Android.Calendar
  11. - type
  12. module
  13. - returns
  14. object
  15. - description
  16. The Android.Calendar module provides proxies and methods for accessing the native Android calendar functionality.
  17. - since
  18. 1.5
  19. - platforms
  20. android
  21. - properties
  22. METHOD_ALERT[int]: constant for the `Titanium.Android.Calendar.Reminder` method property.
  23. METHOD_DEFAULT[int]: constant for the `Titanium.Android.Calendar.Reminder` method property.
  24. METHOD_EMAIL[int]: constant for the `Titanium.Android.Calendar.Reminder` method property.
  25. METHOD_SMS[int]: constant for the `Titanium.Android.Calendar.Reminder` method property.
  26. STATE_DISMISSED[int]: constant for the `Titanium.Android.Calendar.Alert` state property.
  27. STATE_FIRED[int]: constant for the `Titanium.Android.Calendar.Alert` state property.
  28. STATE_SCHEDULED[int]: constant for the `Titanium.Android.Calendar.Alert` state property.
  29. STATUS_TENTATIVE[int]: constant for the `Titanium.Android.Calendar.Event` status property.
  30. STATUS_CONFIRMED[int]: constant for the `Titanium.Android.Calendar.Event` status property.
  31. STATUS_CANCELED[int]: constant for the `Titanium.Android.Calendar.Event` status property.
  32. VISIBILITY_DEFAULT[int]: constant for the `Titanium.Android.Calendar.Event` visibility property.
  33. VISIBILITY_CONFIDENTIAL[int]: constant for the `Titanium.Android.Calendar.Event` visibility property.
  34. VISIBILITY_PRIVATE[int]: constant for the `Titanium.Android.Calendar.Event` visibility property.
  35. VISIBILITY_PUBLIC[int]: constant for the `Titanium.Android.Calendar.Event` visibility property.
  36. allAlerts[array]: Array of `Titanium.Android.Calendar.Alert` objects representing all alerts.
  37. allCalendars[array]: Array of `Titanium.Android.Calendar.Calendar` objects representing all the calendars known to the native calendar app.
  38. selectableCalendars[array]: Array of `Titanium.Android.Calendar.Calendar` objects representing calendars selected within the native calendar app. This may be a subset of allCalendars; for example, the native calendar application may know -- via your Gooogle account -- about calendars that you have access to but have not selected to be displayed in the native calendar app.
  39. - methods
  40. getCalendarById: Returns the `Titanium.Android.Calendar.Calendar` object specified by the given integer id.
  41. - method : getCalendarById, object
  42. id[int]: The system id of the calendar to be retrieved.
  43. - notes
  44. The API supports retrieving information about existing events and creating new events. However, modifying or deleting existing events is not yet supported. Additionally, recurring events are not yet supported.
  45. - example : All Calendars vs Selectable Calendars
  46. Prints the names of all of your calendars known to Android, then prints the names of calendars that you have selected in the native Android calendar application. The latter could be a subset, because (for example) Android -- via your Google account -- may know about more calendars that you have access to but that you have not selected inside the calendar app.
  47. ~~~
  48. function showCalendars(calendars) {
  49. for (var i = 0; i < calendars.length; i++) {
  50. Ti.API.info(calendars[i].name);
  51. }
  52. }
  53. Ti.API.info('ALL CALENDARS:');
  54. showCalendars(Ti.Android.Calendar.allCalendars);
  55. Ti.API.info('SELECTABLE CALENDARS:');
  56. showCalendars(Ti.Android.Calendar.selectableCalendars);
  57. ~~~
  58. - example : Events in a year
  59. This example will look at each event in a year for a given calendar. Just set the desired calendar's id and the desired year to see it in action. You can see calendar ids by running the example above.
  60. ~~~
  61. var win = Ti.UI.currentWindow;
  62. var sv = Ti.UI.createScrollView();
  63. win.add(sv);
  64. var console = Ti.UI.createLabel({
  65. backgroundColor: 'white', color: 'black', text: 'generating info...'
  66. });
  67. sv.add(console);
  68. var consoleString = '';
  69. function print(s) {
  70. Ti.API.info(s);
  71. if (consoleString.length > 0) {
  72. consoleString = consoleString + '\n';
  73. }
  74. consoleString = consoleString + s;
  75. }
  76. // SHOW ALL EVENTS FOR 2010 FOR ONE CALENDAR
  77. var YEAR = 2010;
  78. var TEST_WITH_THIS_CAL_ID = 3;
  79. var calendar = Ti.Android.Calendar.getCalendarById(TEST_WITH_THIS_CAL_ID);
  80. function printReminder(r) {
  81. var typetext = '[method unknown]';
  82. if (r.method == Ti.Android.Calendar.METHOD_EMAIL) {
  83. typetext = 'Email';
  84. } else if (r.method == Ti.Android.Calendar.METHOD_SMS) {
  85. typetext = 'SMS';
  86. } else if (r.method == Ti.Android.Calendar.METHOD_ALERT) {
  87. typetext = 'Alert';
  88. } else if (r.method == Ti.Android.Calendar.METHOD_DEFAULT) {
  89. typetext = '[default reminder method]';
  90. }
  91. print(typetext + ' reminder to be sent ' + r.minutes + ' minutes before the event');
  92. }
  93. function printAlert(a) {
  94. print('Alert id ' + a.id + ' begin ' + a.begin + '; end ' + a.end + '; alarmTime ' + a.alarmTime + '; minutes ' + a.minutes);
  95. }
  96. function printEvent(event) {
  97. if (event.allDay) {
  98. print('Event: ' + event.title + '; ' + event.begin.toLocaleDateString() + ' (all day)');
  99. } else {
  100. print('Event: ' + event.title + '; ' + event.begin.toLocaleDateString() + ' ' + event.begin.toLocaleTimeString()+ '-' + event.end.toLocaleTimeString());
  101. }
  102. var reminders = event.reminders;
  103. if (reminders && reminders.length) {
  104. print('There is/are ' + reminders.length + ' reminder(s)');
  105. for (var i = 0; i < reminders.length; i++) {
  106. printReminder(reminders[i]);
  107. }
  108. }
  109. print('hasAlarm? ' + event.hasAlarm);
  110. var alerts = event.alerts;
  111. if (alerts && alerts.length) {
  112. for (i = 0; i < alerts.length; i++) {
  113. printAlert(alerts[i]);
  114. }
  115. }
  116. var status = event.status;
  117. if (status == Ti.Android.Calendar.STATUS_TENTATIVE) {
  118. print('This event is tentative');
  119. }
  120. if (status == Ti.Android.Calendar.STATUS_CONFIRMED) {
  121. print('This event is confirmed');
  122. }
  123. if (status == Ti.Android.Calendar.STATUS_CANCELED) {
  124. print('This event was canceled');
  125. }
  126. }
  127. var events = calendar.getEventsInYear(YEAR);
  128. if (events && events.length) {
  129. print(events.length + ' event(s) in ' + YEAR);
  130. print('');
  131. for (var i = 0; i < events.length; i++) {
  132. printEvent(events[i]);
  133. print('');
  134. }
  135. } else {
  136. print('No events on 2010-12-6');
  137. }
  138. console.text = consoleString;
  139. ~~~
  140. - example : Create an Event and Reminder
  141. This example creates an event and adds an e-mail reminder for 10 minutes before the event.
  142. ~~~
  143. var CALENDAR_TO_USE = 3;
  144. var calendar = Ti.Android.Calendar.getCalendarById(CALENDAR_TO_USE);
  145. // Create the event
  146. var eventBegins = new Date(2010, 11, 26, 12, 0, 0);
  147. var eventEnds = new Date(2010, 11, 26, 14, 0, 0);
  148. var details = {
  149. title: 'Do some stuff',
  150. description: "I'm going to do some stuff at this time.",
  151. begin: eventBegins,
  152. end: eventEnds
  153. };
  154. var event = calendar.createEvent(details);
  155. // Now add a reminder via e-mail for 10 minutes before the event.
  156. var reminderDetails = {
  157. minutes: 10,
  158. method: Ti.Android.Calendar.METHOD_EMAIL
  159. };
  160. event.createReminder(reminderDetails);
  161. ~~~
  162. **/
  163. #if androidos
  164. @:native("Titanium.Android.Calendar")
  165. extern class GeneralCalendar extends Dispatcher
  166. {
  167. // constants
  168. public static var METHOD_ALERT:Int;
  169. public static var METHOD_DEFAULT:Int;
  170. public static var METHOD_EMAIL:Int;
  171. public static var METHOD_SMS:Int;
  172. public static var STATE_DISMISSED:Int;
  173. public static var STATE_FIRED:Int;
  174. public static var STATE_SCHEDULED:Int;
  175. public static var STATUS_TENTATIVE:Int;
  176. public static var STATUS_CONFIRMED:Int;
  177. public static var STATUS_CANCELED:Int;
  178. public static var VISIBILITY_DEFAULT:Int;
  179. public static var VISIBILITY_CONFIDENTIAL:Int;
  180. public static var VISIBILITY_PRIVATE:Int;
  181. public static var VISIBILITY_PUBLIC:Int;
  182. // static properties
  183. public static var allAlerts:Array<Alert>;
  184. public static var allCalendars:Array<Calendar>;
  185. public static var selectableCalendars:Array<Calendar>;
  186. // static methods
  187. public static function getCalendarById(id:Int):Calendar;
  188. }
  189. #end