Merge. CompilerCompatibility
authorStefan Karlsson <stefan.karlsson@nokia.com>
Mon, 29 Mar 2010 12:25:49 +0100
branchCompilerCompatibility
changeset 12 bec8e016bb22
parent 9 be6847aef077 (current diff)
parent 7 dd441d7ce963 (diff)
Merge.
Binary file group/brandfile.bin.r47 has changed
Binary file group/r47.conversations.mif has changed
--- a/imstatuspaneindicatorplugin/rss/20026767.rss	Fri Mar 19 16:56:51 2010 -0700
+++ b/imstatuspaneindicatorplugin/rss/20026767.rss	Mon Mar 29 12:25:49 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of "Eclipse Public License v1.0"
@@ -11,13 +11,12 @@
 *
 * Contributors:
 *
-* Description:  This file contains all the resources to launch IM indicator plugin
-*
-*
+* Description:  constant declaration class
+ *                
+ *
 */
 
 
-
 #include "../inc/imstatuspaneindicatorpluginuids.h"
 #include <registryinfo.rh>
 
--- a/imstutils/imconversationview/imcvuiapp/group/imcvuiapp.mmp	Fri Mar 19 16:56:51 2010 -0700
+++ b/imstutils/imconversationview/imcvuiapp/group/imcvuiapp.mmp	Mon Mar 29 12:25:49 2010 +0100
@@ -126,7 +126,8 @@
 LIBRARY		charconv.lib
 
 LANG SC
-
+LIBRARY         		aiwdialdata.lib
+LIBRARY     			ServiceHandler.lib
 LIBRARY         		serviceprovidersettings.lib
 //CCA
 LIBRARY ccaclient.lib
--- a/imstutils/imconversationview/imcvuiapp/inc/cimcvappview.h	Fri Mar 19 16:56:51 2010 -0700
+++ b/imstutils/imconversationview/imcvuiapp/inc/cimcvappview.h	Mon Mar 29 12:25:49 2010 +0100
@@ -33,6 +33,7 @@
 //For KMaxPackedContactLinkLength
 #include "imcvuiparams.h"
 #include "mimcvngineservicechangeobserver.h"
+#include <AiwCommon.h>
 // FORWARD DECLARATIONS
 class CIMCVAppUi;
 class MIMCVEngineChatInterface;
@@ -45,6 +46,8 @@
 class MCCAParameter;
 class CIMCVMenuExtensionManager;
 class MIMCVEngineFactory;
+class CAiwServiceHandler;
+
 
 // CLASS DECLARATION
 
@@ -355,7 +358,9 @@
         
         // not owned , chat interface
          MIMCVEngineChatInterface* iActiveChatInterface;
-         
+              //owns. object of aiwservicehandler.
+       CAiwServiceHandler *iAiwServiceHandler;
+    
          //Keep track if Detail view is opened.
          TBool iDetailViewOpen;
          
--- a/imstutils/imconversationview/imcvuiapp/rss/imcvuiapp.hrh	Fri Mar 19 16:56:51 2010 -0700
+++ b/imstutils/imconversationview/imcvuiapp/rss/imcvuiapp.hrh	Mon Mar 29 12:25:49 2010 +0100
@@ -34,7 +34,8 @@
     EIMCVCmdExit,
     EIMCVCmdToolbarSend,
     EIMCVCmdToolbarInsertSmiley,
-    EIMCVCmdToolbarDetails
+    EIMCVCmdToolbarDetails,
+    EIMCVCmdInternetCall
     };
 
 // Size of Array used in launching context sensitive help
--- a/imstutils/imconversationview/imcvuiapp/rss/imcvuiapp.rss	Fri Mar 19 16:56:51 2010 -0700
+++ b/imstutils/imconversationview/imcvuiapp/rss/imcvuiapp.rss	Mon Mar 29 12:25:49 2010 +0100
@@ -34,6 +34,9 @@
 #include <aknsconstants.hrh>
 #include "imcvappsmileutility.hrh"
 #include "imcvappsmileutility.rh"
+#include <aiwcommon.rh>
+#include <aiwcommon.hrh>
+#include <aiwgenericparam.hrh>
 
 
 // ---------------------------------------------------------
@@ -202,7 +205,27 @@
               
     };
 }
-
+// ---------------------------------------------------------------------------
+// aiw_internetcall
+// AIW app interest for calling
+// ---------------------------------------------------------------------------
+//
+RESOURCE AIW_INTEREST aiw_internetcall
+    {
+    items=
+        {
+        // This application is interested in calling from menu.
+        AIW_CRITERIA_ITEM      
+            {
+            id              = KAiwCmdCall; 
+            serviceCmd      = KAiwCmdCall;
+            serviceClass    = KAiwClassMenu;
+            contentType     = "*";
+            defaultProvider = 0x101F868E;
+            maxProviders    = 1;
+            }
+        };   
+    }
 
 //----------------------------------------------------
 //
@@ -218,8 +241,15 @@
 		MENU_ITEM { command = EIMCVCmdSend; txt = qtn_im_ibox_om_send; },
 		MENU_ITEM { command = EIMCVCmdSmiley; txt = qtn_chat_conv_insert_smiley; } ,
 		MENU_ITEM { command = EIMCVCmdFindMenuPlaceHolder;txt = ""; },
-		MENU_ITEM { command = EIMCVCmdCloseConversation; txt = qtn_servtab_close_conversation; } 
- 
+		MENU_ITEM { command = EIMCVCmdCloseConversation; txt = qtn_servtab_close_conversation; },
+		MENU_ITEM
+		            { 
+		            command = KAiwCmdCall; // The same ID than in interest.
+		            txt = ""; // Will be replaced by AIW (plugin).
+		            cascade=AIW_CASCADE_ID;            
+		            cascade = AIW_INTELLIGENT_CASCADE_ID;            
+		            }
+		
      };
 
 }
--- a/imstutils/imconversationview/imcvuiapp/src/cimcvappui.cpp	Fri Mar 19 16:56:51 2010 -0700
+++ b/imstutils/imconversationview/imcvuiapp/src/cimcvappui.cpp	Mon Mar 29 12:25:49 2010 +0100
@@ -63,7 +63,7 @@
     iDestructingFlag = EFalse;
     
     BaseConstructL( EAknEnableSkin | ENoAppResourceFile |
-                    EAppOrientationAutomatic | EAknEnableMSK );
+                    EAppOrientationAutomatic | EAknEnableMSK | EAknSingleClickCompatible );
     //Message extension handler. This must be created before views.
     
     iChatMbmFullPath = Application()->BitmapStoreName();
--- a/imstutils/imconversationview/imcvuiapp/src/cimcvappview.cpp	Fri Mar 19 16:56:51 2010 -0700
+++ b/imstutils/imconversationview/imcvuiapp/src/cimcvappview.cpp	Mon Mar 29 12:25:49 2010 +0100
@@ -70,6 +70,16 @@
 #include <imconnectionproviderconsts.h>
 #include <e32property.h>
 
+// AIW Include Files 
+#include <aiwgenericparam.h>            
+#include <aiwcontactassigndatatypes.h>
+#include <aiwdialdataext.h>
+#include <aiwcommon.hrh>
+#include <aiwservicehandler.h>
+#include <aiwdialdata.h>
+#include <CommonPhoneParser.h>
+
+
 // Dll Uid of vimpstui, to maintain uniqueness of help uid
 const TUid KHelpUid = { 0x2001FDC2 } ;  
 // ============================ MEMBER FUNCTIONS ===============================
@@ -131,7 +141,10 @@
 
     //Creates manager for menu extension
     iMenuExtManager = CIMCVMenuExtensionManager::NewL();
-    
+        iAiwServiceHandler = CAiwServiceHandler::NewL();    
+    iAiwServiceHandler->AttachL( AIW_INTERNETCALL);
+    iAiwServiceHandler->AttachMenuL( R_CONVERSATIONVIEW_VIEW_MENU,AIW_INTERNETCALL );  
+
     iConvViewDel = EFalse;
     iDetailViewOpen = EFalse;
 	IM_CV_LOGS(TXT("CIMCVAppView::ConstructL() end") );	
@@ -192,6 +205,12 @@
         {
         delete iMenuExtManager;
         }
+    if (iAiwServiceHandler)
+        {
+        iAiwServiceHandler->Reset();
+        delete iAiwServiceHandler; 
+        iAiwServiceHandler = NULL;
+        }
     }
 
 
@@ -226,6 +245,24 @@
 	    {
 	    case R_CONVERSATIONVIEW_VIEW_MENU:
 		    {
+		    if(iActiveEngine->IsVoipServiceL())// internet call
+		        {
+		        aMenuPane->SetItemDimmed(KAiwCmdCall, EFalse);
+		        CAiwDialDataExt* dialDataExt = CAiwDialDataExt::NewL();
+		        CleanupStack::PushL( dialDataExt );
+		        dialDataExt->SetServiceId( iServiceId );
+		        CAiwGenericParamList& paramList = iAiwServiceHandler->InParamListL();
+		        dialDataExt->FillInParamListL( paramList );                          
+		        TAiwGenericParam param (EGenericParamSIPAddress);
+		        paramList.AppendL( param );
+		        iAiwServiceHandler->InitializeMenuPaneL( *aMenuPane, 
+		                R_CONVERSATIONVIEW_VIEW_MENU,EIMCVCmdInternetCall,paramList );
+		        CleanupStack::PopAndDestroy( dialDataExt ); 
+		        }
+		    else
+		        {
+		        aMenuPane->SetItemDimmed(KAiwCmdCall, ETrue);
+		        }
 		    if( iContainer->Editor().Editor().TextLength() > 0 )
 			    {
 			    aMenuPane->SetItemDimmed(EIMCVCmdSend, EFalse);	
@@ -344,9 +381,36 @@
         }
     
     switch ( aCommand )
-    	{
-    	
-    	case EIMCVCmdToolbarDetails:
+        {
+        case EIMCVCmdInternetCall:
+            {
+            // Truncating till ':' if exists - Extracting Userid from "ServiceName:Userid".
+            TInt indexposition = iRecipientUserId->Locate(':');
+            HBufC* phonenumber = NULL; // Phonenumber = Userid    
+            if ( KErrNotFound != indexposition )
+                {
+                phonenumber = iRecipientUserId->Right(iRecipientUserId->Length() - (indexposition+1)).AllocLC();
+                }
+            else
+                {
+                phonenumber = iRecipientUserId->AllocLC(); // does't contain ':'
+                }
+            TPtr phonenumberptr( phonenumber->Des ());
+            CommonPhoneParser::ParsePhoneNumber ( phonenumberptr,CommonPhoneParser::EPhoneClientNumber); 
+            CAiwDialDataExt* dialDataExt = CAiwDialDataExt::NewLC();
+            dialDataExt->SetPhoneNumberL ( phonenumber->Des ());
+            dialDataExt->SetServiceId(iServiceId);
+            dialDataExt->SetCallType( CAiwDialData::EAIWVoiP);
+            dialDataExt->SetWindowGroup ( CCoeEnv::Static()->RootWin().Identifier() );
+            CAiwGenericParamList& paramList = iAiwServiceHandler->InParamListL();
+            dialDataExt->FillInParamListL ( paramList);
+            iAiwServiceHandler->ExecuteServiceCmdL ( KAiwCmdCall,paramList,
+                    iAiwServiceHandler->OutParamListL(),0,NULL);
+            CleanupStack::PopAndDestroy(dialDataExt);
+            CleanupStack::PopAndDestroy(phonenumber);
+            break;
+            }
+        case EIMCVCmdToolbarDetails:
     	    //Launch the cca
     	    LaunchCcaL();
     	    break;
--- a/imstutils/imconversationview/imcvuiengine/bwins/imcvengineu.def	Fri Mar 19 16:56:51 2010 -0700
+++ b/imstutils/imconversationview/imcvuiengine/bwins/imcvengineu.def	Mon Mar 29 12:25:49 2010 +0100
@@ -18,4 +18,5 @@
 	?IsLoggedIn@CIMCVEngine@@QBEHXZ @ 17 NONAME ; int CIMCVEngine::IsLoggedIn(void) const
 	?ReleaseConnectionL@CIMCVEngine@@QAEXXZ @ 18 NONAME ; void CIMCVEngine::ReleaseConnectionL(void)
 	?GetBrandId@CIMCVEngine@@QAEABVTDesC8@@XZ @ 19 NONAME ; class TDesC8 const & CIMCVEngine::GetBrandId(void)
+	?IsVoipServiceL@CIMCVEngine@@QAEHXZ @ 20 NONAME ; int CIMCVEngine::IsVoipServiceL(void)
 
--- a/imstutils/imconversationview/imcvuiengine/eabi/imcvengineu.def	Fri Mar 19 16:56:51 2010 -0700
+++ b/imstutils/imconversationview/imcvuiengine/eabi/imcvengineu.def	Mon Mar 29 12:25:49 2010 +0100
@@ -40,4 +40,5 @@
 	_ZTV26CIMCVEngineContextObserver @ 39 NONAME
 	_ZTV26CIMCVEngineStorageListener @ 40 NONAME
 	_ZTV27CIMCVEngineMessageContainer @ 41 NONAME
+	_ZN11CIMCVEngine14IsVoipServiceLEv @ 42 NONAME
 
--- a/imstutils/imconversationview/imcvuiengine/inc/cimcvengine.h	Fri Mar 19 16:56:51 2010 -0700
+++ b/imstutils/imconversationview/imcvuiengine/inc/cimcvengine.h	Mon Mar 29 12:25:49 2010 +0100
@@ -210,6 +210,14 @@
 		 */
 		void CloseAllOpenChatsL();
 		
+	    /**
+	         * Check whether the service is VOIP Enabled Service
+	         *
+	         * @since S60 5.0
+	         * @return ETrue/EFalse
+	         */
+		IMPORT_C TBool IsVoipServiceL();
+		
 	private:
 
         /**
--- a/imstutils/imconversationview/imcvuiengine/src/cimcvengine.cpp	Fri Mar 19 16:56:51 2010 -0700
+++ b/imstutils/imconversationview/imcvuiengine/src/cimcvengine.cpp	Mon Mar 29 12:25:49 2010 +0100
@@ -547,7 +547,23 @@
     
     CleanupStack::PopAndDestroy( 2 );    
     }
-    
+// ---------------------------------------------------------------------------
+// CIMCVEngine::IsVoipServiceL()
+// ---------------------------------------------------------------------------
+//
+EXPORT_C TBool CIMCVEngine::IsVoipServiceL()
+    {
+    TBool isvoipservice = EFalse;
+    CSPSettings* settings = CSPSettings::NewLC();
+    CSPProperty* property = CSPProperty::NewLC();
+    settings->FindPropertyL(iServiceId, ESubPropertyVoIPEnabled, *property);
+    if (property)
+        {
+        isvoipservice = ETrue; 
+        }
+    CleanupStack::PopAndDestroy(2); //property,settings 
+    return isvoipservice;
+    }    
     
 
 
--- a/imstutils/imconversationview/imcvuiengine/src/cimcvenginecchhandler.cpp	Fri Mar 19 16:56:51 2010 -0700
+++ b/imstutils/imconversationview/imcvuiengine/src/cimcvenginecchhandler.cpp	Mon Mar 29 12:25:49 2010 +0100
@@ -280,8 +280,19 @@
 	{
 	
     IM_CV_LOGS(TXT("CVEngineCCHHnadler::DoHandleServiceStatusChangedL ") );   
-	
-	if (aType == ECCHIMSub)
+
+	if (aType == ECCHPresenceSub)
+		{
+		/* SIP Adaptation -- sends error in Network Lost. This is added so that once we get it, we will unbindL and delete the context
+		 * This happens only in case of SIP as it does not send the event in IM Subservice.
+		 */
+		if (aServiceStatus.Error() && ECCHDisabled != aServiceStatus.State())
+			{
+				iEngine.ReleaseConnectionL ();
+				iEngine.DeleteContextL ();
+			}
+		} 
+	else if (aType == ECCHIMSub)
 		{
 		MIMCVEngineCCHObserver::TServiceState notifyEvent = 
 									MIMCVEngineCCHObserver::ENotLoggedIn;
--- a/imstutils/xmppadapter/data/wpgeneralxmppsettingsadapter.rss	Fri Mar 19 16:56:51 2010 -0700
+++ b/imstutils/xmppadapter/data/wpgeneralxmppsettingsadapter.rss	Mon Mar 29 12:25:49 2010 +0100
@@ -27,7 +27,7 @@
 #include <eikon.rh>
 #include <avkon.rh>
 
-#include <eikcore.rsg>
+#include <EIKCORE.rsg>
 #include <eikon.rsg>
 #include <avkon.hrh>
 #include <avkon.rsg>
--- a/instantmessagesalert/tsrc/testinstantmsgalert/group/testinstantmsgalert_DoxyFile.txt	Fri Mar 19 16:56:51 2010 -0700
+++ b/instantmessagesalert/tsrc/testinstantmsgalert/group/testinstantmsgalert_DoxyFile.txt	Mon Mar 29 12:25:49 2010 +0100
@@ -2,7 +2,7 @@
 # Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). 
 # All rights reserved.
 # This component and the accompanying materials are made available
-# under the terms of "Eclipse Public License v1.0"
+# under the terms of the License "Eclipse Public License v1.0"
 # which accompanies this distribution, and is available
 # at the URL "http://www.eclipse.org/legal/epl-v10.html".
 #
--- a/servicewidget/servicewidgetdatapublisher/rss/servicewidgetpluginres.rss	Fri Mar 19 16:56:51 2010 -0700
+++ b/servicewidget/servicewidgetdatapublisher/rss/servicewidgetpluginres.rss	Mon Mar 29 12:25:49 2010 +0100
@@ -20,7 +20,7 @@
 #include <avkon.rsg>
 #include <avkon.rh>
 #include <avkon.mbg>
-#include <eikcore.rsg>
+#include <EIKCORE.rsg>
 #include <eikon.rsg>
 
 #include <meco.loc>
--- a/uiservicetab/vimpstdetailsviewplugin/data/vimpstdetailfields.rss	Fri Mar 19 16:56:51 2010 -0700
+++ b/uiservicetab/vimpstdetailsviewplugin/data/vimpstdetailfields.rss	Mon Mar 29 12:25:49 2010 +0100
@@ -224,11 +224,3 @@
             }
         };
     }
-
- 
- // end of file
-
-
-
- 
- 
\ No newline at end of file
--- a/uiservicetab/vimpstdetailsviewplugin/group/vimpstdetailsviewplugin.mmp	Fri Mar 19 16:56:51 2010 -0700
+++ b/uiservicetab/vimpstdetailsviewplugin/group/vimpstdetailsviewplugin.mmp	Mon Mar 29 12:25:49 2010 +0100
@@ -111,6 +111,7 @@
 LIBRARY         vimpstutils.lib
 //help library
 LIBRARY			hlplch.lib
+LIBRARY         bitmaptransforms.lib 
 
 LIBRARY                 flogger.lib
 LIBRARY			edbms.lib
--- a/uiservicetab/vimpstdetailsviewplugin/inc/cvimpstdetailsheadercontrol.h	Fri Mar 19 16:56:51 2010 -0700
+++ b/uiservicetab/vimpstdetailsviewplugin/inc/cvimpstdetailsheadercontrol.h	Mon Mar 29 12:25:49 2010 +0100
@@ -190,6 +190,8 @@
      */  
 	CVIMPSTDetailsImageDecoder* iImageDecoder;
 	
+	TSize iContactImageSize;
+	
 
     };
 
--- a/uiservicetab/vimpstdetailsviewplugin/inc/cvimpstdetailsimagedecoder.h	Fri Mar 19 16:56:51 2010 -0700
+++ b/uiservicetab/vimpstdetailsviewplugin/inc/cvimpstdetailsimagedecoder.h	Mon Mar 29 12:25:49 2010 +0100
@@ -25,6 +25,7 @@
 class CVIMPSTDetailsHeaderControl;
 class CImageDecoder;
 class CFbsBitmap;
+class CBitmapScaler;
 
 /**
  * Utility class for asynchronously decoding the header thumbnail image
@@ -56,7 +57,7 @@
      * @since S60 v5.0 
      *
      */
-    void Start();
+    void StartL(TSize aBitmapSize);
     
     /**
      * From CActive
@@ -85,7 +86,23 @@
      * @param aBitmapData Descriptor containing the bitmap data stream
      */
     void ConstructL(const TDesC8& aBitmapData);
-  
+    /**
+     * Scales bitmap
+     *
+     */
+    void ScaleBitmapL();
+
+    enum TCcaImageDecoderState
+        {
+        ECcaConvertThumbnailImage = 1,
+        ECcaScaleThumbnail,       
+        };
+    
+    /**
+     * Create bitmap
+     *
+     */
+    void CreateBitmapL();
  private : // data  
     
   
@@ -115,6 +132,19 @@
      * Owns : Copy of the bitmap data stream
      */
     HBufC8* iBitmapData;
+    
+    /**
+     * The image scaler whose service is called to scale the image
+     * Own.
+     */
+    CBitmapScaler* iBitmapScaler;
+
+    TSize iBitmapSize;
+
+    /** 
+     * Decoder internal state
+     */ 
+    TInt iDecoderState;
     };
 
 #endif /*CVIMPSTDETAILSIMAGEDECODER_H_*/
--- a/uiservicetab/vimpstdetailsviewplugin/src/cvimpstdetailsheadercontrol.cpp	Fri Mar 19 16:56:51 2010 -0700
+++ b/uiservicetab/vimpstdetailsviewplugin/src/cvimpstdetailsheadercontrol.cpp	Mon Mar 29 12:25:49 2010 +0100
@@ -42,6 +42,9 @@
 // constants declaration
 const TInt KLabelLineCount = 3;
 
+// Size of thumbnail images stored to contacts
+#define KPbkPersonalImageSize TSize(80,96)
+
 // ---------------------------------------------------------------------------
 // NewL, two-phase construction
 // ---------------------------------------------------------------------------
@@ -89,6 +92,7 @@
         iLabels.AppendL(label);
         CleanupStack::Pop(label);
         }
+    iContactImageSize = KPbkPersonalImageSize;
    	}
 
 // ---------------------------------------------------------------------------
@@ -169,6 +173,29 @@
     
     AknLayoutUtils::LayoutImage(
             iImage, Rect(), AknLayoutScalable_Apps::cl_header_pane_g1(isLandscape));
+   
+    TPoint position = iImage->Position();
+    TSize size = iImage->Size();
+    
+    const TPoint newImagePosition = TPoint( position.iX/2, position.iY/2 );
+    iImage->SetPosition( newImagePosition );
+    
+    const TSize newImageSize = TSize( size.iWidth + 2*( position.iX - newImagePosition.iX ) ,
+            size.iHeight + 2*( position.iY - newImagePosition.iY ) );
+    
+    iImage->SetSize( newImageSize );
+    
+    iContactImageSize = newImageSize;
+    
+    if ( iImageDecoder )
+        {
+        // if bitmap was set resize it
+        if (iImageDecoder->IsActive())
+            {
+            iImageDecoder->Cancel();
+            }
+        TRAP_IGNORE( iImageDecoder->StartL( iContactImageSize ) );
+        }
     
     TAknLayoutRect labelsRect;
     labelsRect.LayoutRect(Rect(), AknLayoutScalable_Apps::cl_header_name_pane(isLandscape));
@@ -344,7 +371,7 @@
 	            iImageDecoder = NULL;
 	            }
 	        iImageDecoder = CVIMPSTDetailsImageDecoder::NewL(*this, data );
-	        iImageDecoder->Start();
+	        iImageDecoder->StartL(iContactImageSize);
 			}
 		}
 	
--- a/uiservicetab/vimpstdetailsviewplugin/src/cvimpstdetailsimagedecoder.cpp	Fri Mar 19 16:56:51 2010 -0700
+++ b/uiservicetab/vimpstdetailsviewplugin/src/cvimpstdetailsimagedecoder.cpp	Mon Mar 29 12:25:49 2010 +0100
@@ -22,6 +22,7 @@
 
 #include <cbsbitmap.h>
 #include <imageconversion.h> 
+#include <bitmaptransforms.h>
 
 // ---------------------------------------------------------------------------
 // CVIMPSTDetailsImageDecoder::NewL
@@ -56,11 +57,7 @@
 void CVIMPSTDetailsImageDecoder::ConstructL(const TDesC8& aBitmapData)
     {
     iBitmapData = aBitmapData.AllocL();
-    User::LeaveIfError( iFs.Connect() );
-    iImgDecoder = CImageDecoder::DataNewL( iFs, *iBitmapData );
-    TFrameInfo info = iImgDecoder->FrameInfo();
-    iBitmap = new ( ELeave ) CFbsBitmap;
-    User::LeaveIfError( iBitmap->Create( info.iOverallSizeInPixels, info.iFrameDisplayMode ));
+    User::LeaveIfError( iFs.Connect() );   
     }
 
 // ---------------------------------------------------------------------------
@@ -85,6 +82,12 @@
         delete iBitmapData;
         iBitmapData = NULL;
         }
+    if (iBitmapScaler)
+        {
+        delete iBitmapScaler;
+        iBitmapScaler = NULL;
+        }
+
     iFs.Close();
     }
 
@@ -93,11 +96,11 @@
 // Starts the decoding process
 // ---------------------------------------------------------------------------
 //
-void CVIMPSTDetailsImageDecoder::Start()
+void CVIMPSTDetailsImageDecoder::StartL(TSize aBitmapSize)
     {
-    iStatus = KRequestPending;
-    iImgDecoder->Convert( &iStatus, *iBitmap );
-    SetActive();
+    iDecoderState = ECcaConvertThumbnailImage;
+    iBitmapSize = aBitmapSize;
+    CreateBitmapL();
     }
 
 // ---------------------------------------------------------------------------
@@ -109,9 +112,25 @@
 void CVIMPSTDetailsImageDecoder::RunL() 
 	{
 	User::LeaveIfError( iStatus.Int() );
-	// Ownership of the bitmap is transferred
-	iHeader.SetBitmap(iBitmap, NULL );
-	iBitmap = NULL;
+	switch ( iDecoderState )
+	    {
+	    case ECcaConvertThumbnailImage:
+	        {
+	        iDecoderState = ECcaScaleThumbnail;
+	        ScaleBitmapL();
+	        break;
+	        }
+	    case ECcaScaleThumbnail:
+	        {
+	        // don't delete
+	        // Ownership of the bitmap is transferred   
+	        iHeader.SetBitmap(iBitmap, NULL );
+	        iBitmap = NULL;
+	        }
+	    default:
+	        break;
+	    }	
+	
    }
 
 // ---------------------------------------------------------------------------
@@ -124,4 +143,38 @@
     iImgDecoder->Cancel(); 
     }
 
+// ---------------------------------------------------------------------------
+// CVIMPSTDetailsImageDecoder::ScaleBitmapL
+// scaling it to fit to the screen
+// ---------------------------------------------------------------------------
+//
+void CVIMPSTDetailsImageDecoder::ScaleBitmapL()
+    {   
+    iBitmapScaler = CBitmapScaler::NewL();
+    iBitmapScaler->Scale( &iStatus, *iBitmap, iBitmapSize );
+    SetActive();
+    }
+
+// ---------------------------------------------------------------------------
+// CVIMPSTDetailsImageDecoder::CreateBitmapL
+// creates the bitmap
+// ---------------------------------------------------------------------------
+//
+
+void CVIMPSTDetailsImageDecoder::CreateBitmapL()
+    {
+    if ( iDecoderState == ECcaConvertThumbnailImage )
+        {
+        iImgDecoder = CImageDecoder::DataNewL( iFs, *iBitmapData, CImageDecoder::EOptionAlwaysThread );
+        }   
+   if ( !iBitmap )
+       {
+       TFrameInfo info = iImgDecoder->FrameInfo();
+       iBitmap = new ( ELeave ) CFbsBitmap;
+       User::LeaveIfError( iBitmap->Create( info.iOverallSizeInPixels, info.iFrameDisplayMode ));
+       } 
+    iStatus = KRequestPending;
+    iImgDecoder->Convert( &iStatus, *iBitmap );
+    SetActive();
+    }
 // end of file
--- a/uiservicetab/vimpstengine/inc/mvimpstengineserviceconnectioneventobserver.h	Fri Mar 19 16:56:51 2010 -0700
+++ b/uiservicetab/vimpstengine/inc/mvimpstengineserviceconnectioneventobserver.h	Mon Mar 29 12:25:49 2010 +0100
@@ -1,8 +1,8 @@
 /*
-* Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2002 - 2007 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
+* under the terms of the License "Eclipse Public License v1.0"
 * which accompanies this distribution, and is available
 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
 *
@@ -11,7 +11,7 @@
 *
 * Contributors:
 *
-* Description:  MVIMPSTEngineServiceConnectionEventObserver
+* Description:  MVIMPSTENGINESERVICECONNECTIONEVENTOBSERVER.h
 *
 */
 
--- a/uiservicetab/vimpststorage/tsrc/vimpststorage_ut/cvimpststoragecontact_ut/group/CVIMPSTStorageContact_UT_DoxyFile.txt	Fri Mar 19 16:56:51 2010 -0700
+++ b/uiservicetab/vimpststorage/tsrc/vimpststorage_ut/cvimpststoragecontact_ut/group/CVIMPSTStorageContact_UT_DoxyFile.txt	Mon Mar 29 12:25:49 2010 +0100
@@ -2,7 +2,7 @@
 # Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). 
 # All rights reserved.
 # This component and the accompanying materials are made available
-# under the terms of "Eclipse Public License v1.0"
+# under the terms of the License "Eclipse Public License v1.0"
 # which accompanies this distribution, and is available
 # at the URL "http://www.eclipse.org/legal/epl-v10.html".
 #
--- a/uiservicetab/vimpststorage/tsrc/vimpststorage_ut/cvimpststoragecontactlist_ut/group/CVIMPSTStorageContactList_UT_DoxyFile.txt	Fri Mar 19 16:56:51 2010 -0700
+++ b/uiservicetab/vimpststorage/tsrc/vimpststorage_ut/cvimpststoragecontactlist_ut/group/CVIMPSTStorageContactList_UT_DoxyFile.txt	Mon Mar 29 12:25:49 2010 +0100
@@ -2,7 +2,7 @@
 # Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). 
 # All rights reserved.
 # This component and the accompanying materials are made available
-# under the terms of "Eclipse Public License v1.0"
+# under the terms of the License "Eclipse Public License v1.0"
 # which accompanies this distribution, and is available
 # at the URL "http://www.eclipse.org/legal/epl-v10.html".
 #
--- a/uiservicetab/vimpststorage/tsrc/vimpststorage_ut/cvimpststoragecontactsorter_ut/group/CVIMPSTStorageContactSorter_UT_DoxyFile.txt	Fri Mar 19 16:56:51 2010 -0700
+++ b/uiservicetab/vimpststorage/tsrc/vimpststorage_ut/cvimpststoragecontactsorter_ut/group/CVIMPSTStorageContactSorter_UT_DoxyFile.txt	Mon Mar 29 12:25:49 2010 +0100
@@ -2,7 +2,7 @@
 # Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). 
 # All rights reserved.
 # This component and the accompanying materials are made available
-# under the terms of "Eclipse Public License v1.0"
+# under the terms of the License "Eclipse Public License v1.0"
 # which accompanies this distribution, and is available
 # at the URL "http://www.eclipse.org/legal/epl-v10.html".
 #
--- a/uiservicetab/vimpstui/rss/vimpstuires.rss	Fri Mar 19 16:56:51 2010 -0700
+++ b/uiservicetab/vimpstui/rss/vimpstuires.rss	Mon Mar 29 12:25:49 2010 +0100
@@ -141,6 +141,7 @@
            {
            command = ECmdContactAddAsFriend;
            txt = qtn_servtab_add_as_friend;
+           flags = EEikMenuItemSpecific;
            },        
 
         MENU_ITEM
@@ -1100,7 +1101,7 @@
     buttons = 
         {
         CBA_BUTTON {id= EAknSoftkeyOptions; txt=text_softkey_option;}, // left softkey
-        CBA_BUTTON {id=EAknSoftkeyExit; txt=qtn_options_exit; }, // right
+        CBA_BUTTON {id=EAknSoftkeyExit; txt=text_softkey_exit; }, // right
         CBA_BUTTON {id=ECmdLogin; txt= qtn_msk_login;} // MSK
         };
     }
@@ -1111,7 +1112,7 @@
     buttons = 
         {
         CBA_BUTTON {id= EAknSoftkeyOptions; txt=text_softkey_option;}, // left softkey
-        CBA_BUTTON {id=EAknSoftkeyExit; txt=qtn_options_exit; }, // right
+        CBA_BUTTON {id=EAknSoftkeyExit; txt=text_softkey_exit; }, // right
         CBA_BUTTON {id=ECmdChangeConnectioninWaitingState; txt= qtn_msk_change_conn;} // MSK
         };
     }
@@ -1122,8 +1123,8 @@
     buttons = 
         {
         CBA_BUTTON {id= EAknSoftkeyOptions; txt=text_softkey_option;}, // left softkey
-        CBA_BUTTON {id=EAknSoftkeyExit; txt=qtn_options_exit; }, // right
-        CBA_BUTTON {id=ECmdCancelLogin; txt= qtn_msk_cancel;} // MSK
+        CBA_BUTTON {id=EAknSoftkeyExit; txt=text_softkey_exit; }, // right
+        CBA_BUTTON {id=ECmdCancelLogin; txt= text_softkey_cancel;} // MSK
         };
     }
     
@@ -1165,7 +1166,7 @@
     buttons = 
         {
         CBA_BUTTON {id= EAknSoftkeyOptions; txt=text_softkey_option;}, // left softkey
-        CBA_BUTTON {id=EAknSoftkeyExit; txt=qtn_options_exit; }, // right
+        CBA_BUTTON {id=EAknSoftkeyExit; txt=text_softkey_exit; }, // right
         CBA_BUTTON {id=ECmdOpenConversation; txt= qtn_msk_chat;} // MSK
         };
     } 
@@ -1176,8 +1177,8 @@
     buttons = 
         {
         CBA_BUTTON {id= EAknSoftkeyOptions; txt=text_softkey_option;}, // left softkey
-        CBA_BUTTON {id=EAknSoftkeyExit; txt=qtn_options_exit; }, // right
-        CBA_BUTTON {id=ECmdOpenFriendRequest; txt= qtn_msk_open;} // MSK
+        CBA_BUTTON {id=EAknSoftkeyExit; txt=text_softkey_exit; }, // right
+        CBA_BUTTON {id=ECmdOpenFriendRequest; txt= text_softkey_open;} // MSK
         };
     }
 //----------------------------------------------------------
@@ -1192,8 +1193,8 @@
     buttons = 
         {
         CBA_BUTTON { id= EAknSoftkeyOptions; txt=text_softkey_option; },
-        CBA_BUTTON { id= EAknSoftkeyExit; txt=qtn_options_exit; },
-        CBA_BUTTON { id = ECmdContactDetails; txt = qtn_msk_open; }
+        CBA_BUTTON { id= EAknSoftkeyExit; txt=text_softkey_exit; },
+        CBA_BUTTON { id = ECmdContactDetails; txt = text_softkey_open; }
         };
     }
 //----------------------------------------------------------
--- a/uiservicetab/vimpstui/rss/vimpstuisearchdlg.rss	Fri Mar 19 16:56:51 2010 -0700
+++ b/uiservicetab/vimpstui/rss/vimpstuisearchdlg.rss	Mon Mar 29 12:25:49 2010 +0100
@@ -106,7 +106,7 @@
         {
         CBA_BUTTON { id = EBasicSearch; txt = qtn_servtab_basic_search; },
         CBA_BUTTON { id = EAknSoftkeyCancel; txt = text_softkey_cancel; },
-        CBA_BUTTON { id = EAknSoftkeyEdit; txt = qtn_msk_edit; }
+        CBA_BUTTON { id = EAknSoftkeyEdit; txt = text_softkey_edit; }
         };
     }
     
@@ -123,7 +123,7 @@
         {
         CBA_BUTTON { id = EAdvancedSearch; txt = qtn_servtab_advanced_search; },
         CBA_BUTTON { id = EAknSoftkeyCancel; txt = text_softkey_cancel; },
-        CBA_BUTTON { id = EAknSoftkeyEdit; txt = qtn_msk_edit; }
+        CBA_BUTTON { id = EAknSoftkeyEdit; txt = text_softkey_edit; }
         };
     }