2 // Tizen Web Device API
3 // Copyright (c) 2013 Samsung Electronics Co., Ltd.
5 // Licensed under the Apache License, Version 2.0 (the License);
6 // you may not use this file except in compliance with the License.
7 // You may obtain a copy of the License at
9 // http://www.apache.org/licenses/LICENSE-2.0
11 // Unless required by applicable law or agreed to in writing, software
12 // distributed under the License is distributed on an "AS IS" BASIS,
13 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 // See the License for the specific language governing permissions and
15 // limitations under the License.
18 // Please send two emails with subject containing "Alaska"
19 // 1. subject "Alaska Good" and body containing "hack"
20 // 2. subject "Alaska Bad" and body NOT containing "hack"
22 // Only 1. should printed in JS console.
25 * @file addFoldersChangeListener_01.js
30 * Attribute | Attribute filter| Attribute range filter
31 * | supported | supported
32 * ----------------+-----------------+------------------------
35 * serviceId | Yes | No
36 * contentType | No | No
40 * synchronizable | No | No
43 var prefferedEmailService = "a.jacak.testmail";
45 function containCaseInsensitive(string, searchString) {
46 var lcString = string.toLowerCase();
47 var lcSearchString = searchString.toLowerCase();
48 return lcString.indexOf(lcSearchString)>=0;
51 var currentService = null;
53 function listFolders(prefix, folders) {
54 for (var i=0; i<folders.length; i++) {
55 var folder = folders[i];
56 console.log(prefix + " FOLDER[" + i + "] id: "
58 + " name:" + folder.name
59 + " serviceid: " + folder.serviceId);
63 var folderChangeCB = {
64 foldersupdated: function(folders) {
65 console.log(folders.length + " folder(s) updated");
66 listFolders("foldersupdated",folders);
68 foldersadded: function(folders) {
69 console.log(folders.length + " folder(s) added");
70 listFolders("foldersadded",folders);
72 foldersremoved: function(folders) {
73 console.log(folders.length + " folder(s) removed");
74 listFolders("foldersremoved",folders);
78 function serviceSyncSuccessCB() {
79 console.log("Synced!");
82 function serviceSyncFailCB() {
83 console.log("Sync failed!");
86 function servicesListSuccessCB(services) {
87 console.log("servicesListSuccessCB: received:" + services.length + " services");
89 if(services.length > 0) {
90 var chosenServiceIndex = 0;
91 for(var i = 0; i < services.length; i++) {
92 if(containCaseInsensitive(services[i].name, prefferedEmailService)) {
93 chosenServiceIndex = i;
94 console.log("servicesListSuccessCB: " +
95 "found service which name contains: " +
96 prefferedEmailService);
100 currentService = services[chosenServiceIndex];
101 console.log("servicesListSuccessCB: testing service:" + currentService.name);
103 var filter = new tizen.AttributeFilter("serviceId", "EXACTLY", currentService.id);
105 currentService.messageStorage.addFoldersChangeListener(folderChangeCB, filter);
106 currentService.sync(serviceSyncSuccessCB, serviceSyncFailCB, 30);
108 console.log("servicesListSuccessCB: ERROR: could not find any email service!");
112 tizen.messaging.getMessageServices("messaging.email", servicesListSuccessCB);