qtmobility/plugins/contacts/symbian/src/transform/cnttransformonlineaccount.cpp
changeset 4 90517678cc4f
parent 1 2b40d63a9c3d
child 11 06b8e2af4411
equal deleted inserted replaced
1:2b40d63a9c3d 4:90517678cc4f
    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