40 ****************************************************************************/ |
40 ****************************************************************************/ |
41 #ifdef SYMBIAN_BACKEND_USE_SQLITE |
41 #ifdef SYMBIAN_BACKEND_USE_SQLITE |
42 |
42 |
43 #include "cnttransformonlineaccount.h" |
43 #include "cnttransformonlineaccount.h" |
44 #include "cntmodelextuids.h" |
44 #include "cntmodelextuids.h" |
|
45 #include "qcontactpresence.h" |
45 |
46 |
46 QList<CContactItemField *> CntTransformOnlineAccount::transformDetailL(const QContactDetail &detail) |
47 QList<CContactItemField *> CntTransformOnlineAccount::transformDetailL(const QContactDetail &detail) |
47 { |
48 { |
48 if(detail.definitionName() != QContactOnlineAccount::DefinitionName) |
49 if(detail.definitionName() != QContactOnlineAccount::DefinitionName) |
49 User::Leave(KErrArgument); |
50 User::Leave(KErrArgument); |
118 serviceProviderField->AddFieldTypeL(KUidContactFieldServiceProvider); |
119 serviceProviderField->AddFieldTypeL(KUidContactFieldServiceProvider); |
119 fieldList.append(serviceProviderField); |
120 fieldList.append(serviceProviderField); |
120 CleanupStack::Pop(serviceProviderField); |
121 CleanupStack::Pop(serviceProviderField); |
121 } |
122 } |
122 |
123 |
123 // Transform presence informaiton |
124 //FIXME:no presence in onlineaccount anymore.. |
124 TPtrC presenceText(reinterpret_cast<const TUint16*>(onlineAccount.presence().utf16())); |
125 // // Transform presence informaiton |
125 if(presenceText.Length()) { |
126 // TPtrC presenceText(reinterpret_cast<const TUint16*>(onlineAccount.presence().utf16())); |
126 QString presence = QString::number(encodePresence(onlineAccount.presence())); |
127 // if(presenceText.Length()) { |
127 CContactItemField* presenceField = CContactItemField::NewLC(KStorageTypeText); |
128 // QString presence = QString::number(encodePresence(onlineAccount.presence())); |
128 TPtrC presenceEncodedText(reinterpret_cast<const TUint16*>(presence.utf16())); |
129 // CContactItemField* presenceField = CContactItemField::NewLC(KStorageTypeText); |
129 presenceField->TextStorage()->SetTextL(presenceEncodedText); |
130 // TPtrC presenceEncodedText(reinterpret_cast<const TUint16*>(presence.utf16())); |
130 presenceField->AddFieldTypeL(KUidContactFieldPresence); |
131 // presenceField->TextStorage()->SetTextL(presenceEncodedText); |
131 fieldList.append(presenceField); |
132 // presenceField->AddFieldTypeL(KUidContactFieldPresence); |
132 CleanupStack::Pop(presenceField); |
133 // fieldList.append(presenceField); |
133 } |
134 // CleanupStack::Pop(presenceField); |
|
135 // } |
134 |
136 |
135 // Transform statusMessage |
137 // // Transform statusMessage |
136 TPtrC statusMsgText(reinterpret_cast<const TUint16*>(onlineAccount.statusMessage().utf16())); |
138 // TPtrC statusMsgText(reinterpret_cast<const TUint16*>(onlineAccount.statusMessage().utf16())); |
137 if(statusMsgText.Length()) { |
139 // if(statusMsgText.Length()) { |
138 CContactItemField* statusMsgField = CContactItemField::NewLC(KStorageTypeText); |
140 // CContactItemField* statusMsgField = CContactItemField::NewLC(KStorageTypeText); |
139 statusMsgField->TextStorage()->SetTextL(statusMsgText); |
141 // statusMsgField->TextStorage()->SetTextL(statusMsgText); |
140 statusMsgField->AddFieldTypeL(KUidContactFieldStatusMsg); |
142 // statusMsgField->AddFieldTypeL(KUidContactFieldStatusMsg); |
141 fieldList.append(statusMsgField); |
143 // fieldList.append(statusMsgField); |
142 CleanupStack::Pop(statusMsgField); |
144 // CleanupStack::Pop(statusMsgField); |
143 } |
145 // } |
144 } |
146 } |
145 |
147 |
146 return fieldList; |
148 return fieldList; |
147 } |
149 } |
148 |
150 |
149 QContactDetail *CntTransformOnlineAccount::transformItemField(const CContactItemField& field, const QContact &contact) |
151 QContactDetail *CntTransformOnlineAccount::transformItemField(const CContactItemField& field, const QContact &contact) |
150 { |
152 { |
151 QContactOnlineAccount *onlineAccount = new QContactOnlineAccount(contact.detail<QContactOnlineAccount>()); |
153 Q_UNUSED(contact); |
|
154 |
|
155 QContactOnlineAccount *onlineAccount = new QContactOnlineAccount(); |
152 CContactTextField* storage = field.TextStorage(); |
156 CContactTextField* storage = field.TextStorage(); |
153 QString onlineAccountString = QString::fromUtf16(storage->Text().Ptr(), storage->Text().Length()); |
157 QString onlineAccountString = QString::fromUtf16(storage->Text().Ptr(), storage->Text().Length()); |
154 |
158 |
155 // Adding Online Account Detail. |
159 // Adding Online Account Detail. |
156 for (int i = 0; i < field.ContentType().FieldTypeCount(); i++) { |
160 for (int i = 0; i < field.ContentType().FieldTypeCount(); i++) { |
177 onlineAccount->setServiceProvider(onlineAccountString); |
181 onlineAccount->setServiceProvider(onlineAccountString); |
178 } |
182 } |
179 //Presence |
183 //Presence |
180 else if (field.ContentType().FieldType(i) == KUidContactFieldPresence) { |
184 else if (field.ContentType().FieldType(i) == KUidContactFieldPresence) { |
181 QString presenceInfo = decodePresence(onlineAccountString.toInt()); |
185 QString presenceInfo = decodePresence(onlineAccountString.toInt()); |
182 onlineAccount->setPresence(presenceInfo); |
186 // onlineAccount->setPresence(presenceInfo); |
183 } |
187 } |
184 //Status Message |
188 //Status Message |
185 else if (field.ContentType().FieldType(i) == KUidContactFieldStatusMsg) { |
189 else if (field.ContentType().FieldType(i) == KUidContactFieldStatusMsg) { |
186 onlineAccount->setStatusMessage(onlineAccountString); |
190 // onlineAccount->setStatusMessage(onlineAccountString); |
187 } |
191 } |
188 } |
192 } |
189 |
193 |
190 // set context |
194 // set context |
191 for (int i = 0; i < field.ContentType().FieldTypeCount(); i++) { |
195 for (int i = 0; i < field.ContentType().FieldTypeCount(); i++) { |
300 * Encode the presence information. |
304 * Encode the presence information. |
301 * \a aPresence |
305 * \a aPresence |
302 */ |
306 */ |
303 quint32 CntTransformOnlineAccount::encodePresence(QString aPresence) |
307 quint32 CntTransformOnlineAccount::encodePresence(QString aPresence) |
304 { |
308 { |
305 if (QContactOnlineAccount::PresenceAvailable == aPresence) |
309 //FIXME:presence |
306 return CntTransformOnlineAccount::EPresenceAvailable; |
310 // if (QContactPresence::PresenceAvailable == aPresence) |
307 else if (QContactOnlineAccount::PresenceHidden == aPresence) |
311 // return CntTransformOnlineAccount::EPresenceAvailable; |
308 return CntTransformOnlineAccount::EPresenceHidden; |
312 // else if (QContactPresence::PresenceHidden == aPresence) |
309 else if (QContactOnlineAccount::PresenceBusy == aPresence) |
313 // return CntTransformOnlineAccount::EPresenceHidden; |
310 return CntTransformOnlineAccount::EPresenceBusy; |
314 // else if (QContactPresence::PresenceBusy == aPresence) |
311 else if (QContactOnlineAccount::PresenceAway == aPresence) |
315 // return CntTransformOnlineAccount::EPresenceBusy; |
312 return CntTransformOnlineAccount::EPresenceAway; |
316 // else if (QContactPresence::PresenceAway == aPresence) |
313 else if (QContactOnlineAccount::PresenceExtendedAway == aPresence) |
317 // return CntTransformOnlineAccount::EPresenceAway; |
314 return CntTransformOnlineAccount::EPresenceExtendedAway; |
318 // else if (QContactPresence::PresenceExtendedAway == aPresence) |
315 else if (QContactOnlineAccount::PresenceUnknown == aPresence) |
319 // return CntTransformOnlineAccount::EPresenceExtendedAway; |
316 return CntTransformOnlineAccount::EPresenceUnknown; |
320 // else if (QContactPresence::PresenceUnknown == aPresence) |
317 else |
321 // return CntTransformOnlineAccount::EPresenceUnknown; |
|
322 // else |
318 return CntTransformOnlineAccount::EPresenceOffline; |
323 return CntTransformOnlineAccount::EPresenceOffline; |
319 } |
324 } |
320 |
325 |
321 |
326 |
322 |
327 |
324 * Decode the presence information. |
329 * Decode the presence information. |
325 * \a aPresence |
330 * \a aPresence |
326 */ |
331 */ |
327 QString CntTransformOnlineAccount::decodePresence(quint32 aPresence) |
332 QString CntTransformOnlineAccount::decodePresence(quint32 aPresence) |
328 { |
333 { |
329 if (CntTransformOnlineAccount::EPresenceAvailable == aPresence) |
334 //FIXME:presence |
330 return QContactOnlineAccount::PresenceAvailable; |
335 // if (CntTransformOnlineAccount::EPresenceAvailable == aPresence) |
331 else if (CntTransformOnlineAccount::EPresenceHidden == aPresence) |
336 // return QContactPresence::PresenceAvailable; |
332 return QContactOnlineAccount::PresenceHidden; |
337 // else if (CntTransformOnlineAccount::EPresenceHidden == aPresence) |
333 else if (CntTransformOnlineAccount::EPresenceBusy == aPresence) |
338 // return QContactPresence::PresenceHidden; |
334 return QContactOnlineAccount::PresenceBusy; |
339 // else if (CntTransformOnlineAccount::EPresenceBusy == aPresence) |
335 else if ( CntTransformOnlineAccount::EPresenceAway == aPresence) |
340 // return QContactPresence::PresenceBusy; |
336 return QContactOnlineAccount::PresenceAway; |
341 // else if ( CntTransformOnlineAccount::EPresenceAway == aPresence) |
337 else if ( CntTransformOnlineAccount::EPresenceExtendedAway == aPresence) |
342 // return QContactPresence::PresenceAway; |
338 return QContactOnlineAccount::PresenceExtendedAway; |
343 // else if ( CntTransformOnlineAccount::EPresenceExtendedAway == aPresence) |
339 else if ( CntTransformOnlineAccount::EPresenceUnknown == aPresence) |
344 // return QContactPresence::PresenceExtendedAway; |
340 return QContactOnlineAccount::PresenceUnknown; |
345 // else if ( CntTransformOnlineAccount::EPresenceUnknown == aPresence) |
341 else |
346 // return QContactPresence::PresenceUnknown; |
342 return QContactOnlineAccount::PresenceOffline; |
347 // else |
|
348 // return QContactPresence::PresenceOffline; |
|
349 return QString(); |
343 } |
350 } |
344 |
351 |
345 #endif // SYMBIAN_BACKEND_USE_SQLITE |
352 #endif // SYMBIAN_BACKEND_USE_SQLITE |
346 |
353 |
347 // End of file |
354 // End of file |