31 const QString hsIconFileName ("icon:filename");//to display specific icon from file |
35 const QString hsIconFileName ("icon:filename");//to display specific icon from file |
32 const QString hsIconName ("icon:name");// HbIcon |
36 const QString hsIconName ("icon:name");// HbIcon |
33 const QString hsIconApplicationId ("icon:applicationid"); // icon from associated application |
37 const QString hsIconApplicationId ("icon:applicationid"); // icon from associated application |
34 |
38 |
35 //Custom for nmHsWidgets |
39 //Custom for nmHsWidgets |
36 //NmHsWidgetParam is used to identify what email account will be monitored by |
40 //NmHsWidgetParamAccountId is used to identify what email account will be monitored by |
37 //the registered hs widget |
41 //the registered hs widget |
38 const QString NmHsWidgetParam ("widgetparam:accountId"); |
42 const QString NmHsWidgetParamAccountId ("widgetparam:accountId"); |
39 //same as above but for pushing the widget to homescreen |
43 //same as above but for pushing the widget to homescreen |
40 const QString NmHsAccountId ("accountId"); |
44 const QString NmHsAccountId ("accountId"); |
|
45 //NmHsWidgetParamAccountIconName is used to identify mailbox icon in application library |
|
46 const QString NmHsWidgetParamAccountIconName ("widgetparam:accountIconName"); |
|
47 //same as above but for pushing the widget to homescreen |
|
48 const QString NmHsAccountIconName ("accountIconName"); |
41 //This is used to identify nmhswidget in homescreen |
49 //This is used to identify nmhswidget in homescreen |
42 const QString NmHsWidget ("nmhswidget"); |
50 const QString NmHsWidget ("nmhswidget"); |
43 |
51 |
44 //parameter values |
52 //parameter values |
45 const QString NmPublisherName ("NmMailboxRegisterInterface"); |
53 const QString NmPublisherName ("NmMailboxRegisterInterface"); |
46 const QString NmLaunchUri ("application://0x2002DD17"); |
54 const QString NmLaunchUri ("appto://0x200255BA?activityname=EmailInboxView&accountId="); |
47 //URI for the defined service |
55 //URI for the defined service |
48 const QLatin1String interfaceUri("com.nokia.symbian.IEmailRegisterAccount"); |
56 const QLatin1String interfaceUri("com.nokia.symbian.IEmailRegisterAccount"); |
49 |
57 |
50 |
58 /** Localization file name*/ |
|
59 const QString KNmRegisterLocFileName = "nmregister_"; |
|
60 /** Localization file location*/ |
|
61 const QString KNmRegisterLocLocation = "z:/resource/qt/translations/"; |
51 |
62 |
52 /*! |
63 /*! |
53 Constructor |
64 Constructor |
54 */ |
65 */ |
55 NmMailboxRegisterInterface::NmMailboxRegisterInterface(QObject *parent) : |
66 NmMailboxRegisterInterface::NmMailboxRegisterInterface(QObject *parent) : |
100 Constructor |
111 Constructor |
101 */ |
112 */ |
102 NmMailboxRegisterInterfacePrivate::NmMailboxRegisterInterfacePrivate(QObject *parent) : |
113 NmMailboxRegisterInterfacePrivate::NmMailboxRegisterInterfacePrivate(QObject *parent) : |
103 XQServiceProvider(interfaceUri, parent ), |
114 XQServiceProvider(interfaceUri, parent ), |
104 mManager(0), |
115 mManager(0), |
105 mService(0) |
116 mService(0), |
106 { |
117 mTranslator(0) |
|
118 { |
|
119 //commented out until MCL has nmregister files in place here: epoc32/include/platform/qt/translations/ |
|
120 /*mTranslator = new QTranslator(); |
|
121 QString lang = QLocale::system().name(); |
|
122 bool loadSucceed = mTranslator->load(KNmRegisterLocFileName + lang, KNmRegisterLocLocation); |
|
123 qDebug() << "NmMailboxRegisterInterfacePrivate mTranslator->load loadSucceed:"<<loadSucceed; |
|
124 QCoreApplication::installTranslator(mTranslator);*/ |
|
125 |
107 mManager = new QServiceManager(); |
126 mManager = new QServiceManager(); |
108 QServiceFilter filter("com.nokia.symbian.IMenuClient"); |
127 QServiceFilter filter("com.nokia.symbian.IMenuClient"); |
109 QList<QServiceInterfaceDescriptor> interfaces = mManager->findInterfaces(filter); |
128 QList<QServiceInterfaceDescriptor> interfaces = mManager->findInterfaces(filter); |
110 mService = mManager->loadInterface(interfaces.first()); |
129 mService = mManager->loadInterface(interfaces.first()); |
111 } |
130 } |
127 |
150 |
128 |
151 |
129 bool NmMailboxRegisterInterfacePrivate::registerNewMailbox(quint64 accountId, |
152 bool NmMailboxRegisterInterfacePrivate::registerNewMailbox(quint64 accountId, |
130 QString accountName, QString accountIconName) |
153 QString accountName, QString accountIconName) |
131 { |
154 { |
|
155 //check that accountIconName is valid otherwise pass default mailbox icon |
|
156 HbIcon mailBoxIcon(accountIconName); |
|
157 if(mailBoxIcon.pixmap().height() == 0){ |
|
158 mailBoxIcon = NmIcons::getIcon(NmIcons::NmIconDefaultMailbox); |
|
159 accountIconName = mailBoxIcon.iconName(); |
|
160 } |
|
161 |
132 QMap<QString, QVariant> map; |
162 QMap<QString, QVariant> map; |
133 //------------------------------ |
163 //------------------------------ |
134 map[hsItemName] = accountName; |
164 map[hsItemName] = accountName; |
135 map[hsitemLaunchUri] = NmLaunchUri; |
165 map[hsitemLaunchUri] = formLaunchUri(accountId); |
136 map[hsitemPublisherId] = NmPublisherName; |
166 map[hsitemPublisherId] = NmPublisherName; |
137 map[hsItemWidgetUri] = NmHsWidget; |
167 map[hsItemWidgetUri] = NmHsWidget; |
138 map[hsItemDescription] = "test description for widget"; //TODO: Localization |
168 //commented out until MCL has nmregister files in place here: epoc32/include/platform/qt/translations/ |
|
169 //map[hsItemDescription] = hbTrId("txt_mail_widget_dblist_preview_of_recent_mail"); |
|
170 map[hsItemDescription] = "test description for widget"; |
139 map[hsIconFileName] = accountIconName; |
171 map[hsIconFileName] = accountIconName; |
140 // to add widget params that are mapped to widgets properties |
172 // to add widget params that are mapped to widgets properties |
141 map[NmHsWidgetParam] = QString::number(accountId); |
173 map[NmHsWidgetParamAccountId] = QString::number(accountId); |
|
174 map[NmHsWidgetParamAccountIconName] = accountIconName; |
142 //------------------------------ |
175 //------------------------------ |
143 |
176 |
144 bool retVal(false); |
177 bool retVal(false); |
145 |
178 |
146 bool ret = QMetaObject::invokeMethod( mService,"add", |
179 bool ret = QMetaObject::invokeMethod( mService,"add", |
147 Qt::DirectConnection, |
180 Qt::DirectConnection, |
148 Q_RETURN_ARG(bool, retVal), |
181 Q_RETURN_ARG(bool, retVal), |
149 Q_ARG(QVariantMap, map)); |
182 Q_ARG(QVariantMap, map)); |
150 |
183 |
151 //Push the registered widget also to homescreen right away |
184 //Push the registered widget also to homescreen right away |
152 bool pushRetVal = pushWidgetToHomescreen(accountId); |
185 bool pushRetVal = pushWidgetToHomescreen(accountId, accountIconName); |
153 |
186 |
154 return (retVal && ret && pushRetVal); |
187 return (retVal && ret && pushRetVal); |
155 } |
188 } |
156 |
189 |
157 bool NmMailboxRegisterInterfacePrivate::updateMailboxName(quint64 accountId, |
190 bool NmMailboxRegisterInterfacePrivate::updateMailboxName(quint64 accountId, |
158 QString newName) |
191 QString newName) |
159 { |
192 { |
160 QMap<QString, QVariant> map; |
193 QMap<QString, QVariant> map; |
161 //------------------------------ |
194 //------------------------------ |
162 map[hsitemLaunchUri] = NmLaunchUri; |
195 map[hsitemLaunchUri] = formLaunchUri(accountId); |
163 map[hsitemPublisherId] = NmPublisherName; |
196 map[hsitemPublisherId] = NmPublisherName; |
164 map[hsItemWidgetUri] = NmHsWidget; |
197 map[hsItemWidgetUri] = NmHsWidget; |
165 map[NmHsWidgetParam] = QString::number(accountId); |
198 map[NmHsWidgetParamAccountId] = QString::number(accountId); |
166 //------------------------------ |
199 //------------------------------ |
167 |
200 |
168 QList<QVariantMap> list; //list of items that mach the query |
201 QList<QVariantMap> list; //list of items that mach the query |
169 bool retVal(false); |
202 bool retVal(false); |
170 bool ret = QMetaObject::invokeMethod( mService,"getList", |
203 bool ret = QMetaObject::invokeMethod( mService,"getList", |
192 bool NmMailboxRegisterInterfacePrivate::unregisterMailbox(quint64 accountId) |
225 bool NmMailboxRegisterInterfacePrivate::unregisterMailbox(quint64 accountId) |
193 { |
226 { |
194 |
227 |
195 QMap<QString, QVariant> map; |
228 QMap<QString, QVariant> map; |
196 //------------------------------ |
229 //------------------------------ |
197 map[hsitemLaunchUri] = NmLaunchUri; |
230 map[hsitemLaunchUri] = formLaunchUri(accountId); |
198 map[hsitemPublisherId] = NmPublisherName; |
231 map[hsitemPublisherId] = NmPublisherName; |
199 map[hsItemWidgetUri] = NmHsWidget; |
232 map[hsItemWidgetUri] = NmHsWidget; |
200 map[NmHsWidgetParam] = QString::number(accountId); |
233 map[NmHsWidgetParamAccountId] = QString::number(accountId); |
201 //------------------------------ |
234 //------------------------------ |
202 |
235 |
203 QList<QVariantMap> list; //list of items that mach the query |
236 QList<QVariantMap> list; //list of items that mach the query |
204 bool retVal(false); |
237 bool retVal(false); |
205 bool ret = QMetaObject::invokeMethod( mService,"getList", |
238 bool ret = QMetaObject::invokeMethod( mService,"getList", |