S60 Platform: Calendar Interim API Example v1.1
--------------------------------------------------
This C++ application demonstrates the usage of the Calendar Interim API (also known as the CalInterim API) by adding and modifying anniversary entries. The example has been updated to be compatible with S60 5th Edition and Touch UI.
--------------------------------------------------------------------------------
PREREQUISITES
Symbian C++ basics
--------------------------------------------------------------------------------
IMPORTANT FILES/CLASSES
CCalendarAPIexampleEngine class contains the logic of the application for
creating, modifying, and deleting calendar entries (in this case, anniversaries).
Important Symbian OS classes: CCalEntry, CCalEntryView, CCalInstance, CCalInstanceView, CCalAlarm, CCalSession,
MCalProgressCallBack.
--------------------------------------------------------------------------------
KNOWN ISSUES
Note that you cannot save the event if either the anniversary itself or the alarm
is marked to occur in the past.
If the gap between the anniversary in the future and the alarm is more than one
month, the alarm is not played (this applies to the preinstalled calendar, too).
Alarms do not work properly in the emulator.
--------------------------------------------------------------------------------
TOUCH UI SUPPORT
The EEventItemDoubleClicked pointer event must be handled in the
MEikListBoxObserver::HandleListBoxEventL() method. In this example application, the event listening has been added into the CCalendarAPIexampleSearchContainer::HandleListBoxEventL() and CCalendarAPIexampleEntriesContainer::HandleListBoxEventL() methods. Note that you can also keep the EEventEnterKeyPressed event listening to support devices with a keypad.
CAknSettingItemList handles its listbox events in
CAknSettingItemList::HandleListBoxEventL() and you should not override it.
Note that while no S60 5th Edition-specific APIs are used, the same build of the application installs and runs in S60 3rd Edition and S60 5th Edition devices. The installation package delivered in this example package has been created with S60 3d Edition, MR SDK.
--------------------------------------------------------------------------------
RUNNING THE EXAMPLE
When the application is started, choose the time frame for which you want to search
anniversaries. If you want to add an anniversary, choose it from the Options menu.
The alarm must be after the current time
(check your emulator date/time settings) and
before the actual anniversary (during the same day or before).
When changing the date of the anniversary, the alarm offset will not be recalculated
so the time between the alarm and the anniversary remains the same.
--------------------------------------------------------------------------------
BUILD & INSTALLATION INSTRUCTIONS
Steps for building and installing the application to a device depend on the S60 platform version:
--Mobile device (S60 3rd Edition)
cd to /CalendarExample/group
bldmake bldfiles
abld build gcce urel
cd to /CalendarExample/sis
--- (S60 3rd Edition)
Edit CalendarExample_3_0_v1_1.pkg's paths to match those on your system.
makesis CalendarExample_3_0_v1_1.pkg
--- (S60 3rd Edition)
Edit CalendarExample_S60_5_2_v_1_2.pkg's paths to match those on your system.
makesis CalendarExample_S60_5_2_v_1_2.pkg CalendarExample_S60_5_2_v_1_2.sis.
Sign the SIS package
- See the SDK Help for information about self-signed .sis packages, or
www.symbiansigned.com for information about Developer Certificates.
Install the signed .sis file to an S60 3rd Edition or S60 5.2 edition device.
If you get a "Certificate error" during the installation of a self-signed
package, check that App.Manager -> Settings -> Software Installation is
set to "All".
--Emulator (WINSCW)
cd to /CalendarExample/group
bldmake bldfiles
abld build winscw udeb
Start the emulator.
--------------------------------------------------------------------------------
COMPATIBILITY
S60 5.2 Edition
S60 5th Edition
S60 3rd Edition, Feature Pack 2
S60 3rd Edition, Feature Pack 1
S60 3rd Edition
TESTED WITH Nokia 5800 XpressMusic, Nokia E61i, Nokia E90 Communicator, and Nokia N95.
Created / tested with S60 3rd Edition MR SDK and S60 5th Edition SDK.
--------------------------------------------------------------------------------
IMPROVEMENT IDEAS
The example’s flow of execution may be a bit hard to follow. It would be a good idea
to fully split the engine from the GUI codes. Also to better demonstrate the Calendar Interim API,
the helper class (CCalHelperEntry) should be removed and the CCalEntry and
CCalInstance classes should be used directly.
--------------------------------------------------------------------------------
VERSION HISTORY
1.2 Supoort single click feature added.
1.1 Support for S60 5th Edition and Touch UI added.
1.0 First release. The functionality of the S60 1st/2nd Edition: Calendar API Example published
earlier is recoded to S60 3rd Edition using the Calendar Interim API.
Note that a separate example on the usage of the Agenda Model for S60 1st and 2nd Edition
(S60 1st/2nd Edition: Agenda Model API Example) is also available at www.forum.nokia.com.
--------------------------------------------------------------------------------
ADDITIONAL DOCUMENTATION
Further information on the usage of Calendar Interim API is provided in the document Migration Guide for
Symbian OS v9.1 Group Scheduling Interim APIs. It is available in the S60 3rd Edition MR SDK
(...\S60Doc\symbianos_interim_api_migration.pdf).
--------------------------------------------------------------------------------
EVALUATE THIS RESOURCE
Please spare a moment to help us improve documentation quality and recognize the examples you find most valuable, by rating this resource.