mypackage_wrt/preview/script/lib/sapi/Contact.js
author victorp@symbian.org
Fri, 30 Apr 2010 15:01:03 +0100
changeset 42 20be4dd42b12
permissions -rwxr-xr-x
My package widget code
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
42
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
     1
/**
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
     2
 * Contact.js
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
     3
 * 
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
     4
 * Nokia Web Runtime Service API emulation 
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
     5
 * WRT v1.1
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
     6
 * 
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
     7
 * Copyright 2009 Nokia Corporation. All rights reserved.
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
     8
*/
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
     9
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
    10
 
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
    11
(function(){
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
    12
	
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
    13
	var provider = 'Service.Contact' ,
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
    14
		Interface = 'IDataSource';
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
    15
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
    16
	/**
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
    17
	 * Contact service
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
    18
	 */
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
    19
	var ContactService = function(){
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
    20
		this.GetList 	= __GetList;
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
    21
		this.Add 		= __Add;
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
    22
		this.Delete 	= __Delete;
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
    23
		this.Import 	= __Import;
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
    24
		this.Export 	= __Export;
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
    25
		this.Organise	= __Organise;
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
    26
		this.Cancel 	= __Cancel;
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
    27
	}
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
    28
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
    29
	device.implementation.extend(provider, Interface, new ContactService() );
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
    30
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
    31
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
    32
	/******************************************************/	
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
    33
	/******************************************************/	
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
    34
	/******************************************************/	
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
    35
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
    36
	var	context = device.implementation.context,
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
    37
		_t = context._t,
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
    38
		method = '',
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
    39
		result = false,
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
    40
		DBase = null;
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
    41
	
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
    42
	/**
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
    43
	 * Contact: GetList
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
    44
	 * @param {Object} criteria
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
    45
	 * @param {Function} [callback] function for async call (optional)
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
    46
	 */
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
    47
	function __GetList(criteria, callback){
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
    48
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
    49
		if ((result = validator.apply('GetList', arguments)) !== false)
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
    50
			return result; 
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
    51
	
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
    52
		if (!/^(Contact|Group|Database)$/i.test(criteria.Type))
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
    53
			return error(device.implementation.ERR_BAD_ARGUMENT_TYPE, msg.badType);
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
    54
	
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
    55
		if (typeof callback == 'function') {
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
    56
			return context.callAsync(this, arguments.callee, criteria, callback);
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
    57
		}
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
    58
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
    59
		var returnValue = [], 
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
    60
			match = null,
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
    61
			filter = criteria.Filter || null;
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
    62
 
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
    63
		DBase = context.getData(provider);
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
    64
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
    65
		// Type = Database
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
    66
		if (/Database/i.test(criteria.Type)){
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
    67
			returnValue = DBase.Database;
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
    68
		} 
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
    69
		// Type = Group
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
    70
		else if (/Group/i.test(criteria.Type)){
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
    71
			// filter by id
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
    72
			if (filter && filter.id) {
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
    73
				returnValue = findById(DBase.Group, filter.id);
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
    74
				if (returnValue.length == 0)
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
    75
					return error(device.implementation.ERR_NOT_FOUND);
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
    76
			}
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
    77
			// return all groups 
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
    78
			else {
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
    79
				returnValue = DBase.Group;
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
    80
			}
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
    81
		}				
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
    82
		// Type = Contact
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
    83
		else if (/Contact/i.test(criteria.Type)){
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
    84
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
    85
			// filter by id
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
    86
			if (filter && filter.id) {
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
    87
				returnValue = findById(DBase.Contact, filter.id); 
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
    88
				if (returnValue.length == 0)
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
    89
					return error(device.implementation.ERR_NOT_FOUND);
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
    90
			}
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
    91
			// return all contacts 
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
    92
			else {
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
    93
				returnValue = DBase.Contact;
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
    94
			}
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
    95
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
    96
			// unsupported filters 
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
    97
			if (filter 
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
    98
				&& (match = context.keys(filter).join().match(/SearchVal|DBUri/ig)) ) {
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
    99
				context.notify(_t('%s:: GetList : filter %s not implemented in preview').arg(provider, match.join()));
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   100
			}
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   101
			// unsupported sort			
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   102
			if (criteria.Sort) { 
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   103
				context.notify(_t('%s:: GetList : sort not implemented in preview').arg(provider));
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   104
			}
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   105
		}
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   106
		return context.Result(context.Iterator(returnValue));
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   107
	}
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   108
			
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   109
	/**
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   110
	 * Contact: Add
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   111
	 * @param {Object} criteria
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   112
	 * @param {Function} [callback] function for async call (optional)
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   113
	 */
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   114
	function __Add(criteria, callback){
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   115
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   116
		if ((result = validator.apply('Add', arguments)) !== false)
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   117
			return result; 
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   118
		
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   119
		if (!/^(Contact|Group)$/i.test(criteria.Type))
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   120
			return error(device.implementation.ERR_BAD_ARGUMENT_TYPE, msg.badType2);
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   121
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   122
		if (typeof callback == 'function') {
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   123
			return context.callAsync(this, arguments.callee, criteria, callback);
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   124
		}
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   125
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   126
		DBase = context.getData(provider);
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   127
		var Data = criteria.Data,
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   128
			item;
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   129
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   130
		// unsupported!			
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   131
		if (Data.DBUri) {
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   132
			context.notify(_t('%s:: Add : Data.DBUri not implemented in preview').arg(provider));
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   133
		}
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   134
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   135
		// Type = Group
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   136
		if (/Group/i.test(criteria.Type)){
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   137
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   138
			if (!Data.GroupLabel)
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   139
				return error(device.implementation.ERR_BAD_ARGUMENT_TYPE, msg.missingGroupLabel);
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   140
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   141
			// update
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   142
			if (Data.id) {
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   143
				returnValue = findById(DBase.Group, Data.id); 
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   144
				if (returnValue.length == 0)
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   145
					return error(device.implementation.ERR_BAD_ARGUMENT_TYPE);
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   146
				
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   147
				returnValue[0].GroupLabel = Data.GroupLabel;
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   148
				//@todo: group contents!?
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   149
			}
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   150
			// new
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   151
			else {
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   152
				item = context.extend({}, Data); 
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   153
				item.id = String(context.getUniqueID());
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   154
				DBase.Group.push(item);
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   155
			}
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   156
		} 
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   157
		// Type = Contact
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   158
		else {
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   159
			// update
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   160
			if (Data.id) {
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   161
				returnValue = findById(DBase.Contact, Data.id); 
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   162
				if (returnValue.length == 0)
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   163
					return error(device.implementation.ERR_BAD_ARGUMENT_TYPE);
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   164
				
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   165
				context.extend(returnValue[0], Data); 
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   166
			}
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   167
			// new
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   168
			else {
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   169
				item = context.extend({}, Data); 
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   170
				item.id = String(context.getUniqueID());
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   171
				DBase.Contact.push(item);
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   172
			}
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   173
		} 
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   174
		// return success
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   175
		return error(device.implementation.ERR_SUCCESS);
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   176
	}
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   177
			
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   178
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   179
	/**
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   180
	 * Contact: Delete
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   181
	 * @param {Object} criteria
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   182
	 * @param {Function} [callback] function for async call (optional)
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   183
	 */
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   184
	function __Delete(criteria, callback){
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   185
		
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   186
		if ((result = validator.apply('Delete', arguments)) !== false)
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   187
			return result; 
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   188
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   189
		if (!/^(Contact|Group)$/i.test(criteria.Type))
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   190
			return error(device.implementation.ERR_BAD_ARGUMENT_TYPE, msg.badType2);
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   191
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   192
		var Data = criteria.Data;
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   193
		if (!Data.IdList)
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   194
			return error(device.implementation.ERR_MISSING_ARGUMENT, msg.missingIdList);
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   195
		if (typeof Data.IdList != 'object')
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   196
			return error(device.implementation.ERR_BAD_ARGUMENT_TYPE, msg.badIdList);
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   197
		
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   198
		DBase = context.getData(provider);
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   199
		var type = criteria.Type;
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   200
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   201
		// unsupported!			
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   202
		if (Data.DBUri) {
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   203
			context.notify(_t('%s:: Delete : Data.DBUri not implemented in preview').arg(provider));
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   204
		}
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   205
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   206
		if (typeof callback == 'function') {
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   207
			return context.callAsync(this, arguments.callee, criteria, callback);
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   208
		}
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   209
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   210
		// for both Group & Contact:
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   211
		var i,j,id,item;
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   212
		for (j in Data.IdList) {
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   213
			id = Data.IdList[j];
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   214
			for (i in DBase[type]) {
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   215
				item = DBase[type][i];
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   216
				if (id == item.id) {
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   217
					DBase[type].splice(i, 1);
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   218
				}
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   219
			}
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   220
		}
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   221
		// return success
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   222
		return error(device.implementation.ERR_SUCCESS);				
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   223
	}
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   224
			
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   225
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   226
	/**
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   227
	 * Contact: Import
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   228
	 * @param {Object} criteria
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   229
	 * @param {Function} [callback] function for async call (optional)
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   230
	 */
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   231
	function __Import(criteria, callback){
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   232
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   233
		if ((result = validator.apply('Import', arguments)) !== false)
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   234
			return result; 
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   235
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   236
		if (!/^(Contact)$/i.test(criteria.Type))
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   237
			return error(device.implementation.ERR_BAD_ARGUMENT_TYPE, msg.badType3);
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   238
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   239
		var Data = criteria.Data;
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   240
		if (!Data.SourceFile)
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   241
			return error(device.implementation.ERR_MISSING_ARGUMENT, msg.missingSourceFile);
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   242
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   243
		if (typeof callback == 'function') {
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   244
			return context.callAsync(this, arguments.callee, criteria, callback);
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   245
		}
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   246
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   247
		context.notify(_t('%s:: Import : not implemented in preview.').arg(provider));
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   248
		return error(device.implementation.ERR_SUCCESS);		
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   249
	}
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   250
			
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   251
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   252
	/**
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   253
	 * Contact: Export
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   254
	 * @param {Object} criteria
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   255
	 * @param {Function} [callback] function for async call (optional)
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   256
	 */
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   257
	function __Export(criteria, callback){
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   258
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   259
		if ((result = validator.apply('Export', arguments)) !== false)
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   260
			return result; 
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   261
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   262
		if (!/^(Contact)$/i.test(criteria.Type))
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   263
			return error(device.implementation.ERR_BAD_ARGUMENT_TYPE, msg.badType4);
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   264
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   265
		var Data = criteria.Data;
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   266
		if (!Data.DestinationFile)
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   267
			return error(device.implementation.ERR_MISSING_ARGUMENT, msg.missingDestinationFile);
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   268
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   269
		if (!Data.id)
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   270
			return error(device.implementation.ERR_MISSING_ARGUMENT, msg.missingId);
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   271
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   272
		if (typeof callback == 'function') {
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   273
			return context.callAsync(this, arguments.callee, criteria, callback);
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   274
		}
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   275
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   276
		context.notify(_t('%s:: Export : not implemented in preview.').arg(provider));
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   277
		return error(device.implementation.ERR_SUCCESS);		
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   278
	}
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   279
			
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   280
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   281
	/**
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   282
	 * Contact: Organise
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   283
	 * @param {Object} criteria
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   284
	 * @param {Function} [callback] function for async call (optional)
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   285
	 */
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   286
	function __Organise(criteria, callback){
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   287
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   288
		if ((result = validator.apply('Organise', arguments)) !== false)
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   289
			return result; 
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   290
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   291
		if (!/^(Group)$/i.test(criteria.Type))
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   292
			return error(device.implementation.ERR_MISSING_ARGUMENT, msg.badType5);
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   293
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   294
		var Data = criteria.Data;
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   295
		if (!Data.id)
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   296
			return error(device.implementation.ERR_MISSING_ARGUMENT, msg.missingId2);
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   297
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   298
		if (!Data.IdList)
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   299
			return error(device.implementation.ERR_MISSING_ARGUMENT, msg.missingIdList);
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   300
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   301
		if (typeof Data.IdList != 'object')
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   302
			return error(device.implementation.ERR_BAD_ARGUMENT_TYPE, msg.badIdList);
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   303
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   304
		if (!/^(Associate|Disassociate)$/i.test(criteria.OperationType))
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   305
			return error(device.implementation.ERR_BAD_ARGUMENT_TYPE, msg.badOperationType);
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   306
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   307
		if (typeof callback == 'function') {
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   308
			return context.callAsync(this, arguments.callee, criteria, callback);
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   309
		}
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   310
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   311
		context.notify(_t('%s:: Organise : not implemented in preview.').arg(provider));
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   312
		return error(device.implementation.ERR_SUCCESS);		
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   313
	}
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   314
			
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   315
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   316
	/**
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   317
	 * Contact: Cancel
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   318
	 * @param {Object} criteria
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   319
	 */
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   320
	function __Cancel(criteria){
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   321
		method = 'Cancel';
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   322
		if (!criteria || !criteria.TransactionID)
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   323
			return error(device.implementation.ERR_INVALID_SERVICE_ARGUMENT, msg.missingTID);
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   324
		
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   325
		clearTimeout(criteria.TransactionID);
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   326
		return context.ErrorResult(device.implementation.ERR_SUCCESS);
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   327
	}
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   328
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   329
	
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   330
	/*******************************
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   331
	 * helper functions
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   332
	 *******************************/
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   333
	
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   334
	function error(code, msg /*, args...*/){
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   335
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   336
		var args = ['Contacts',method].concat([].slice.call(arguments,2));
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   337
		msg = msg ? _t().arg.apply(msg,args) : undefined;
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   338
		return context.ErrorResult(code, msg);
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   339
	}
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   340
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   341
	/**
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   342
	 * validate common input arguments
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   343
	 * 'this' is string (object) name of calling function
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   344
	 * 
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   345
	 * @param {arguments} arguments of calling function
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   346
	 * @return {Result} Result object if error, false if no error.
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   347
	 */
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   348
	function validator() {
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   349
		method = ''+this;
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   350
		var	failed = false,
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   351
			criteria = arguments[0] || false;
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   352
			
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   353
		if (!criteria || typeof criteria != 'object' || typeof criteria.Type == 'undefined')
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   354
			return error(device.implementation.ERR_MISSING_ARGUMENT, msg.missingType, method);
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   355
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   356
		if (method == 'GetList') return failed;
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   357
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   358
		var Data = criteria.Data || false; 
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   359
		if (!Data)
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   360
			return error(device.implementation.ERR_MISSING_ARGUMENT, msg.missingData, method);
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   361
		if (typeof Data != 'object')
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   362
			return error(device.implementation.ERR_MISSING_ARGUMENT, msg.badData);
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   363
		 
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   364
		return failed;
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   365
	}
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   366
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   367
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   368
	function findById(dbase, id){
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   369
		var result = [];
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   370
		for (var i in dbase) {
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   371
			if (id == dbase[i]['id']) {
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   372
				result.push(dbase[i]);
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   373
			}
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   374
		}
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   375
		return result;
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   376
	}
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   377
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   378
	/** 
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   379
	 * error messages
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   380
	 * order of %s args: Service name, method name, parameter name 
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   381
	 */
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   382
	var msg = {
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   383
		missingType		: '%s : %s : Type is Missing',
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   384
		badType			: '%s: %s : Invalid value for Type, Must be Contact/Group/Database',
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   385
		badType2		: '%s : %s : Invalid Type, must be Contact/Group',
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   386
		badType3		: '%s : %s : Invalid Type,it must be Contact',
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   387
		badType4		: '%s : %s : Invalid Type, it must be Contact',
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   388
		badType5		: '%s : %s : Invalid Content Type, It must be Group',
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   389
		badOperationType: '%s : %s : Invalid Operation Type',
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   390
		missingGroupLabel: '%s : %s : Group Label is Missing',
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   391
		missingTID 		: 'Contact : Cancel : TransactionID is missing',	// not 'Contacts'!!
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   392
		badAsync		: '%s : %s : Invalid async parameters',
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   393
		missingData		: '%s : %s : %s data Missing',
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   394
		badData			: '%s : %s : Invalid Type of Data , Map is required',
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   395
		missingIdList	: '%s : %s : List of Ids is missing',
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   396
		badIdList		: '%s : %s : Type of IdList is wrong, List is required',
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   397
		missingSourceFile: '%s : %s : Import Source Filename is Missing',
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   398
		missingDestinationFile: '%s : %s : Export Destination Filename is Missing',
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   399
		missingId		: '%s : %s : Contact Id to be exported is missing',
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   400
		missingId2		: '%s : %s : GroupId is missing',
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   401
		is_missing		: '%s : %s : %s is missing',
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   402
		is_invalid		: '%s : %s : %s is invalid'
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   403
	};
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   404
		
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   405
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   406
}) ()
20be4dd42b12 My package widget code
victorp@symbian.org
parents:
diff changeset
   407