/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
- package titanium.mobile.android;
- import titanium.mobile.core.Dispatcher;
- import titanium.mobile.android.calendar.Alert;
- import titanium.mobile.android.calendar.Calendar;
- /**
- GeneralCalendar class
- Documentation available at:
- http://developer.appcelerator.com/apidoc/mobile/latest/Titanium.Android.Calendar-module
- - namespace
- Titanium.Android.Calendar
- - type
- module
- - returns
- object
- - description
- The Android.Calendar module provides proxies and methods for accessing the native Android calendar functionality.
- - since
- 1.5
- - platforms
- android
- - properties
- METHOD_ALERT[int]: constant for the `Titanium.Android.Calendar.Reminder` method property.
- METHOD_DEFAULT[int]: constant for the `Titanium.Android.Calendar.Reminder` method property.
- METHOD_EMAIL[int]: constant for the `Titanium.Android.Calendar.Reminder` method property.
- METHOD_SMS[int]: constant for the `Titanium.Android.Calendar.Reminder` method property.
- STATE_DISMISSED[int]: constant for the `Titanium.Android.Calendar.Alert` state property.
- STATE_FIRED[int]: constant for the `Titanium.Android.Calendar.Alert` state property.
- STATE_SCHEDULED[int]: constant for the `Titanium.Android.Calendar.Alert` state property.
- STATUS_TENTATIVE[int]: constant for the `Titanium.Android.Calendar.Event` status property.
- STATUS_CONFIRMED[int]: constant for the `Titanium.Android.Calendar.Event` status property.
- STATUS_CANCELED[int]: constant for the `Titanium.Android.Calendar.Event` status property.
- VISIBILITY_DEFAULT[int]: constant for the `Titanium.Android.Calendar.Event` visibility property.
- VISIBILITY_CONFIDENTIAL[int]: constant for the `Titanium.Android.Calendar.Event` visibility property.
- VISIBILITY_PRIVATE[int]: constant for the `Titanium.Android.Calendar.Event` visibility property.
- VISIBILITY_PUBLIC[int]: constant for the `Titanium.Android.Calendar.Event` visibility property.
- allAlerts[array]: Array of `Titanium.Android.Calendar.Alert` objects representing all alerts.
- allCalendars[array]: Array of `Titanium.Android.Calendar.Calendar` objects representing all the calendars known to the native calendar app.
- 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.
- - methods
- getCalendarById: Returns the `Titanium.Android.Calendar.Calendar` object specified by the given integer id.
- - method : getCalendarById, object
- id[int]: The system id of the calendar to be retrieved.
- - notes
- 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.
- - example : All Calendars vs Selectable Calendars
- 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.
- ~~~
- function showCalendars(calendars) {
- for (var i = 0; i < calendars.length; i++) {
- Ti.API.info(calendars[i].name);
- }
- }
- Ti.API.info('ALL CALENDARS:');
- showCalendars(Ti.Android.Calendar.allCalendars);
- Ti.API.info('SELECTABLE CALENDARS:');
- showCalendars(Ti.Android.Calendar.selectableCalendars);
- ~~~
- - example : Events in a year
- 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.
- ~~~
- var win = Ti.UI.currentWindow;
- var sv = Ti.UI.createScrollView();
- win.add(sv);
- var console = Ti.UI.createLabel({
- backgroundColor: 'white', color: 'black', text: 'generating info...'
- });
- sv.add(console);
- var consoleString = '';
- function print(s) {
- Ti.API.info(s);
- if (consoleString.length > 0) {
- consoleString = consoleString + '\n';
- }
- consoleString = consoleString + s;
- }
- // SHOW ALL EVENTS FOR 2010 FOR ONE CALENDAR
- var YEAR = 2010;
- var TEST_WITH_THIS_CAL_ID = 3;
- var calendar = Ti.Android.Calendar.getCalendarById(TEST_WITH_THIS_CAL_ID);
- function printReminder(r) {
- var typetext = '[method unknown]';
- if (r.method == Ti.Android.Calendar.METHOD_EMAIL) {
- typetext = 'Email';
- } else if (r.method == Ti.Android.Calendar.METHOD_SMS) {
- typetext = 'SMS';
- } else if (r.method == Ti.Android.Calendar.METHOD_ALERT) {
- typetext = 'Alert';
- } else if (r.method == Ti.Android.Calendar.METHOD_DEFAULT) {
- typetext = '[default reminder method]';
- }
- print(typetext + ' reminder to be sent ' + r.minutes + ' minutes before the event');
- }
- function printAlert(a) {
- print('Alert id ' + a.id + ' begin ' + a.begin + '; end ' + a.end + '; alarmTime ' + a.alarmTime + '; minutes ' + a.minutes);
- }
- function printEvent(event) {
- if (event.allDay) {
- print('Event: ' + event.title + '; ' + event.begin.toLocaleDateString() + ' (all day)');
- } else {
- print('Event: ' + event.title + '; ' + event.begin.toLocaleDateString() + ' ' + event.begin.toLocaleTimeString()+ '-' + event.end.toLocaleTimeString());
- }
- var reminders = event.reminders;
- if (reminders && reminders.length) {
- print('There is/are ' + reminders.length + ' reminder(s)');
- for (var i = 0; i < reminders.length; i++) {
- printReminder(reminders[i]);
- }
- }
- print('hasAlarm? ' + event.hasAlarm);
- var alerts = event.alerts;
- if (alerts && alerts.length) {
- for (i = 0; i < alerts.length; i++) {
- printAlert(alerts[i]);
- }
- }
- var status = event.status;
- if (status == Ti.Android.Calendar.STATUS_TENTATIVE) {
- print('This event is tentative');
- }
- if (status == Ti.Android.Calendar.STATUS_CONFIRMED) {
- print('This event is confirmed');
- }
- if (status == Ti.Android.Calendar.STATUS_CANCELED) {
- print('This event was canceled');
- }
- }
- var events = calendar.getEventsInYear(YEAR);
- if (events && events.length) {
- print(events.length + ' event(s) in ' + YEAR);
- print('');
- for (var i = 0; i < events.length; i++) {
- printEvent(events[i]);
- print('');
- }
- } else {
- print('No events on 2010-12-6');
- }
- console.text = consoleString;
- ~~~
- - example : Create an Event and Reminder
- This example creates an event and adds an e-mail reminder for 10 minutes before the event.
- ~~~
- var CALENDAR_TO_USE = 3;
- var calendar = Ti.Android.Calendar.getCalendarById(CALENDAR_TO_USE);
- // Create the event
- var eventBegins = new Date(2010, 11, 26, 12, 0, 0);
- var eventEnds = new Date(2010, 11, 26, 14, 0, 0);
- var details = {
- title: 'Do some stuff',
- description: "I'm going to do some stuff at this time.",
- begin: eventBegins,
- end: eventEnds
- };
- var event = calendar.createEvent(details);
- // Now add a reminder via e-mail for 10 minutes before the event.
- var reminderDetails = {
- minutes: 10,
- method: Ti.Android.Calendar.METHOD_EMAIL
- };
- event.createReminder(reminderDetails);
- ~~~
- **/
- #if androidos
- @:native("Titanium.Android.Calendar")
- extern class GeneralCalendar extends Dispatcher
- {
- // constants
- public static var METHOD_ALERT:Int;
- public static var METHOD_DEFAULT:Int;
- public static var METHOD_EMAIL:Int;
- public static var METHOD_SMS:Int;
- public static var STATE_DISMISSED:Int;
- public static var STATE_FIRED:Int;
- public static var STATE_SCHEDULED:Int;
- public static var STATUS_TENTATIVE:Int;
- public static var STATUS_CONFIRMED:Int;
- public static var STATUS_CANCELED:Int;
- public static var VISIBILITY_DEFAULT:Int;
- public static var VISIBILITY_CONFIDENTIAL:Int;
- public static var VISIBILITY_PRIVATE:Int;
- public static var VISIBILITY_PUBLIC:Int;
-
- // static properties
- public static var allAlerts:Array<Alert>;
- public static var allCalendars:Array<Calendar>;
- public static var selectableCalendars:Array<Calendar>;
- // static methods
- public static function getCalendarById(id:Int):Calendar;
- }
- #end