×
Namespaces

Variants
Actions
Revision as of 09:12, 4 October 2012 by hamishwillee (Talk | contribs)

Archived:Organising contacts in Flash Lite

From Nokia Developer Wiki
Jump to: navigation, search

This code snippet demonstrates how to organise contacts in the phonebook using the Contact Service API in a Flash Lite 3.0 (supported from S60 5th Edition onwards).

Article Metadata
Code ExampleTested with
Devices(s): Nokia 5800 XpressMusic
Compatibility
Platform(s): S60 5th Edition
S60 5th Edition
Article
Keywords: Service.Contact, contact.Organise(), contact.GetList(), contact.Add()
Created: User:Nokia Developer KB (15 Dec 2008)
Last edited: hamishwillee (04 Oct 2012)

Contents

Preconditions

Note.pngNote: The test device must have at least two contacts at the phonebook.

Source

// Import the Platform Service Interface
import com.nokia.lib.Service;
// Heading of the application
heading_txt.text = "Group Contacts";
 
// Create a new Service object which has Calendar data
var contact = new Service("Service.Contact", "IDataSource");
 
// At the first, create a new Group called "FirstTwo"
// Define input parameters for the group
var group = {GroupLabel:"FirstTwo"}
var inAddParams = {Type:"Group", Data:group};
 
// Define the result data
var outAddParams = contact.Add(inAddParams);
 
// Check if adding the group was a success
if (outAddParams.ErrorCode == 0) {
outAddParams.ReturnValue
text_txt.text = "Group added!\r";
} else {
var errorId = outAddParams.ErrorCode;
text_txt.text += "Error while adding group: "+errorId+"\r";
}
 
// At the second, get a list of contacts
var inListParams = {Type:"Contact"};
// Define result value for the list
var outListParams = contact.GetList(inListParams);
if (outListParams.ErrorCode == 0) {
var outList = outListParams.ReturnValue;
var outputEntry = null;
var contactIdList:Array = new Array();
var nameList:Array = new Array();
do {
outputEntry = outList.next();
if (null != outputEntry) {
// Get the lists of IDs and firstname to Arrays
contactIdList.push(outputEntry.id);
nameList.push(outputEntry.FirstName["Value"]);
} else {
break;
}
} while (true);
} else {
// if errors, copy them to the textfield
var errorId2 = outListParams.ErrorCode;
text_txt.text += "Error while listing contacts: "+errorId2+"\r";
}
 
// At the third, get a list of groups and pick the ID of the group called
// "FirstTwo"
var inListGroupsParams = {Type:"Group"};
 
// Define the result value for the list of groups
var outListGroupsParams = contact.GetList(inListGroupsParams);
if (outListGroupsParams.ErrorCode == 0) {
var groupOutList = outListGroupsParams.ReturnValue;
var groupOutputEntry = null;
text_txt.text += "Groups: \r";
do {
groupOutputEntry = groupOutList.next();
if (null != groupOutputEntry) {
text_txt.text += "- "+groupOutputEntry.GroupLabel+"\r";
if(groupOutputEntry.GroupLabel == "FirstTwo") {
var groupId = groupOutputEntry.id;
}
} else {
break;
}
} while (true);
} else {
// if errors, copy them to the textfield
var errorId2 = outListParams.ErrorCode;
text_txt.text += "Error while listing groups: "+errorId2+"\r";
}
 
// Take the first two contacts from the phonebook to the group called "FirstTwo"
var idList = [contactIdList[0],contactIdList[1]];
text_txt.text += "Organized contacts: \r"+nameList[0]+", "+nameList[1]+"\r";
 
// Define the input parameters
var inputData = {id:groupId, IdList:idList};
var inParams = {Type:"Group", Data:inputData, OperationType:"Associate"};
 
// Define the result value
var outParams = contact.Organise(inParams);
// Check if organise success
if (outParams.ErrorCode == 0) {
text_txt.text += "Success!";
} else {
var errorId3 = outParams.ErrorCode
text_txt.text += "Error while grouping: "+errorId3;
}

Postconditions

All groups in the phonebook, and organized contacts, are displayed. A new group called "FirstTwo" can be found from the phonebook and the group contacts two contacts which are the first two in the default phonebook.

Example application

The following sample application has been tested in Nokia 5800 XpressMusic (S60 5th edition, Flash Lite 3.0).
File:FlashLite Organise Contacts.zip

See also

81 page views in the last 30 days.