Revision: 201015 RCL_3 PDK_3.0.i
authorDremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Tue, 27 Apr 2010 16:24:22 +0300
branchRCL_3
changeset 16 d20aea8a18b6
parent 14 9fdee5e1da30
child 18 36d367c62acb
Revision: 201015 Kit: 201017
imstutils/imconnectionprovider/group/bld.inf
imstutils/imconversationview/imcvuiapp/src/cimcvappsmileicondialog.cpp
imstutils/imconversationview/imcvuiapp/src/cimcvappsmileicongrid.cpp
imstutils/imconversationview/imcvuiapp/src/cimcvappsmileiconutility.cpp
imstutils/xmppadapter/group/bld.inf
uiservicetab/vimpstui/inc/cvimpstuidoublelistboxtabviewcontrol.h
uiservicetab/vimpstui/inc/cvimpstuisinglelistboxtabviewcontrol.h
uiservicetab/vimpstui/inc/mvimpstuitabbedviewcontrol.h
uiservicetab/vimpstui/src/cvimpstuidoublelistboxtabviewcontrol.cpp
uiservicetab/vimpstui/src/cvimpstuisinglelistboxtabviewcontrol.cpp
uiservicetab/vimpstui/src/cvimpstuitabbedview.cpp
--- a/imstutils/imconnectionprovider/group/bld.inf	Wed Apr 14 15:46:18 2010 +0300
+++ b/imstutils/imconnectionprovider/group/bld.inf	Tue Apr 27 16:24:22 2010 +0300
@@ -22,8 +22,11 @@
 DEFAULT
 
 PRJ_EXPORTS
+
+#ifdef FF_MECO_XMPP
 ../rom/imconnectionprovider.iby						 	CORE_APP_LAYER_IBY_EXPORT_PATH(imconnectionprovider.iby)
 10282CE5.txt                	/epoc32/data/z/private/10202BE9/10282CE5.txt				
+#endif
 
 PRJ_MMPFILES
 
--- a/imstutils/imconversationview/imcvuiapp/src/cimcvappsmileicondialog.cpp	Wed Apr 14 15:46:18 2010 +0300
+++ b/imstutils/imconversationview/imcvuiapp/src/cimcvappsmileicondialog.cpp	Tue Apr 27 16:24:22 2010 +0300
@@ -206,9 +206,6 @@
 TInt CIMCVAppSmileIconDialog::CalculatePopupVariety()
     {
     IM_CV_LOGS(TXT("CIMCVAppSmileIconDialog::CalculatePopupVariety() start") );
-	CIMCVAppSmileIconGrid* grid =
-			static_cast< CIMCVAppSmileIconGrid*>(
-			Control( EIMIdSelectSmileGrid ) );   
 
     TAknLayoutScalableParameterLimits smileyDialogVariety = 
     	AknLayoutScalable_Avkon::popup_grid_graphic_window_ParamLimits();
@@ -251,123 +248,118 @@
 // ---------------------------------------------------------
 //
 void CIMCVAppSmileIconDialog::SetLayout()
-	{   
-	IM_CV_LOGS(TXT("CIMCVAppSmileIconDialog::SetLayout() start") );
-	iIsMirrored = AknLayoutUtils::LayoutMirrored() ;
-	TRect clientRect = iAvkonAppUi->ApplicationRect();
+    {
+    IM_CV_LOGS(TXT("CIMCVAppSmileIconDialog::SetLayout() start"));
+    iIsMirrored = AknLayoutUtils::LayoutMirrored();
+    TRect clientRect; 
     //check LAF docs for constants
-    TAknLayoutRect mainPane;
-    mainPane.LayoutRect( clientRect, AknLayoutScalable_Avkon::main_pane( 6 ) );
-	
-	CIMCVAppSmileIconGrid* grid =
+    //AknLayoutUtils::LayoutMetricsRect
+    AknLayoutUtils::LayoutMetricsRect(AknLayoutUtils::EApplicationWindow,
+            clientRect);
+    CIMCVAppSmileIconGrid* grid =
 
-			static_cast< CIMCVAppSmileIconGrid*>(
+    static_cast<CIMCVAppSmileIconGrid*> (
 
-			Control( EIMIdSelectSmileGrid ) ); 	
-			
+    Control(EIMIdSelectSmileGrid));
+
     // Select correct popup layout
 
     TInt varietyNumber = CalculatePopupVariety();
     TRect rect = grid->GetFirstCellRect();
+
     TInt iconCount = iIconArray.Count();
     // calculating the number of rows required by the icon grid.
-    TInt rowCount = 1 + ( iconCount/4 );
+
+    TInt viewableWidth = 0;
     
-    // 4 * rowCount denotes the maximum number of icons accomodated
-    // in the row.
-    TInt areaOfIcon = 4 * rowCount * rect.Width() * rect.Height();
-	TInt viewableWidth=0;
-	    
-    for (TInt i=varietyNumber; i>0; i--)
-	    {    
+    for (TInt i = varietyNumber; i >= 0; i--)
+        {
 
-    TAknWindowLineLayout popupGridDialogLayout( 
-	        AknLayoutScalable_Avkon::popup_grid_graphic_window( i ) );
+        TAknWindowLineLayout popupGridDialogLayout(
+                AknLayoutScalable_Avkon::popup_grid_graphic_window(i)); 
 
-
-	    TAknLayoutRect dialogRect;
+        TAknLayoutRect dialogRect;
 
-	    dialogRect.LayoutRect(
-	        mainPane.Rect(), popupGridDialogLayout );
-		    
-		viewableWidth = CheckDialog(dialogRect,rect);    
-	    if(viewableWidth)
-		    {
-		    varietyNumber = i;
-		    break;
-		    }
-	    }
-    
-	if(viewableWidth)
-		{
-	    TAknWindowLineLayout popupGridDialogLayout( 
-        AknLayoutScalable_Avkon::popup_grid_graphic_window( varietyNumber ) );
-    TAknLayoutRect dialogRect;
-    dialogRect.LayoutRect(
-        mainPane.Rect(), popupGridDialogLayout );
-		grid->SetViewableWindowWidth(viewableWidth);
-    SetRect( dialogRect.Rect() );
-	    }
-	// If there is no suitable solution for the smiley dialog layout
-	else 
-	    {
-	    // Use the max variety number
-	    varietyNumber = CalculatePopupVariety();
+        dialogRect.LayoutRect(clientRect, popupGridDialogLayout);
+        
+        viewableWidth = CheckDialog(dialogRect, rect);
+        if (viewableWidth)
+            {
+            varietyNumber = i;
+            break;
+            }
+        }
+    if (viewableWidth)
+        {
+        TAknWindowLineLayout popupGridDialogLayout(
+                AknLayoutScalable_Avkon::popup_grid_graphic_window(
+                        varietyNumber));
+        TAknLayoutRect dialogRect;
+        dialogRect.LayoutRect(clientRect, popupGridDialogLayout);
+        grid->SetViewableWindowWidth(viewableWidth);
+        SetRect(dialogRect.Rect());
+        }
+    // If there is no suitable solution for the smiley dialog layout
+    else
+        {
+        // No variety of the popup_grid_graphic_window has provided sufficient area
+        // for the grid display. Hence selecting 0 variety for displaying the grid
+        // because it has the greatest area.
+        varietyNumber = 0;
+        TAknWindowLineLayout popupGridDialogLayout(
+                AknLayoutScalable_Avkon::popup_grid_graphic_window(
+                        varietyNumber));
 
-	    TAknWindowLineLayout popupGridDialogLayout( 
-	            AknLayoutScalable_Avkon::popup_grid_graphic_window( varietyNumber ) );
+        TAknLayoutRect dialogRect;
 
-	    TAknLayoutRect dialogRect;
+        dialogRect.LayoutRect(clientRect, popupGridDialogLayout);
 
-	    dialogRect.LayoutRect(
-	            mainPane.Rect(), popupGridDialogLayout );
-
-	  
-
-	    if ( !iIsMirrored )
-	        {
-	        // Right Margin of the top left (top right) icon's X
-	        TInt leftMargin = rect.iTl.iX;
+        if (!iIsMirrored)
+            {
+            // Right Margin of the top left (top right) icon's X
+            TInt leftMargin = rect.iTl.iX;
 
-	        // Use the max viewable width
-	        viewableWidth = dialogRect.Rect().iBr.iX - dialogRect.Rect().iTl.iX - leftMargin;
-	        }
-	    else 
-	        {
-	        // Left Margin of the top left (top right) icon's X
-	        TInt rightMargin = rect.iBr.iX;
+            // Use the max viewable width
+            viewableWidth = dialogRect.Rect().iBr.iX
+                    - dialogRect.Rect().iTl.iX - leftMargin;
+            }
+        else
+            {
+            // Left Margin of the top left (top right) icon's X
+            TInt rightMargin = rect.iBr.iX;
 
-	        // Use the max viewable width
-	        viewableWidth = dialogRect.Rect().iBr.iX - dialogRect.Rect().iTl.iX + rightMargin;
-	        }
+            // Use the max viewable width
+            viewableWidth = dialogRect.Rect().iBr.iX
+                    - dialogRect.Rect().iTl.iX + rightMargin;
+            }
 
-	    grid->SetViewableWindowWidth( viewableWidth );
+        grid->SetViewableWindowWidth(viewableWidth);
 
-	    if ( !iIsMirrored )
-	        SetRect( dialogRect.Rect() );
-	    // When the Hebrew is the language as well as the Arb languages
-	    // The align is not right
-	    else 
-	        {
-	        TRect mirroredDialogRect;
+        if (!iIsMirrored)
+            SetRect(dialogRect.Rect());
+        // When the Hebrew is the language as well as the Arb languages
+        // The align is not right
+        else
+            {
+            TRect mirroredDialogRect;
 
-	        // Align to right.
-	        mirroredDialogRect = dialogRect.Rect();
+            // Align to right.
+            mirroredDialogRect = dialogRect.Rect();
 
-	        // Get the rect of the cba pane.
-	        TRect controlPaneRect;
-	        AknLayoutUtils::LayoutMetricsRect(
-	                AknLayoutUtils::EControlPane, controlPaneRect);
+            // Get the rect of the cba pane.
+            TRect controlPaneRect;
+            AknLayoutUtils::LayoutMetricsRect(AknLayoutUtils::EControlPane,
+                    controlPaneRect);
 
-	        TInt cbaWidth = controlPaneRect.iBr.iX - controlPaneRect.iTl.iX;
+            TInt cbaWidth = controlPaneRect.iBr.iX - controlPaneRect.iTl.iX;
 
-	        mirroredDialogRect.iTl.iX -= cbaWidth;
-	        mirroredDialogRect.iBr.iX -= cbaWidth;
+            mirroredDialogRect.iTl.iX -= cbaWidth;
+            mirroredDialogRect.iBr.iX -= cbaWidth;
 
-	        SetRect( mirroredDialogRect );
-	        }
-	    }
-	}
+            SetRect(mirroredDialogRect);
+            }
+        }
+    }
 
 
 
@@ -383,42 +375,37 @@
 
 TInt CIMCVAppSmileIconDialog::CheckDialog(TAknLayoutRect aDialogRect,TRect aRect)
 		{
-        TInt topMargin = aRect.iTl.iY;
+        // topMargin is the height of the margin which the smiley grid has 
+        // above its top horizontal line and bottom horizontal line.
+        TInt topMargin = aRect.Height();
         
-        TInt viewableWidth = 0;
+        TRect dialogRect = aDialogRect.Rect();
         
+        TInt vWidth = 0;
+        TInt vheight = 0;
+        TInt vArea = 0;
+        vheight = dialogRect.iBr.iY - dialogRect.iTl.iY - 2*topMargin;
         if ( !iIsMirrored )
             {
-            TInt leftMargin = aRect.iTl.iX;
-                    
-            viewableWidth = aDialogRect.Rect().iBr.iX - aDialogRect.Rect().iTl.iX - 2*leftMargin;
+            vWidth = dialogRect.iBr.iX - dialogRect.iTl.iX - 2*aRect.iTl.iX;;
             }
         else 
             {
-            TInt rightMargin = aRect.iBr.iX;
-                                
-            viewableWidth = aDialogRect.Rect().iBr.iX - aDialogRect.Rect().iTl.iX + 2*rightMargin;
+            vWidth = dialogRect.iBr.iX - dialogRect.iTl.iX + 2*aRect.iBr.iX;
             }
-        TInt viewableHight = aDialogRect.Rect().iBr.iY -aDialogRect.Rect().iTl.iY - topMargin;
-		
-		TInt viewableArea = viewableWidth*viewableHight;
+		vArea = vWidth*vheight;
 		
 	    TInt iconCount = iIconArray.Count();
 
-	    // calculating the number of rows required by the icon grid.
-	    TInt rowCount = 1 + ( iconCount/4 );
+	    TInt areaOfIcon = iconCount * aRect.Width() * aRect.Height();
 	    
-	    // 4 * rowCount denotes the maximum number of icons accomodated
-	    // in the row.
-	    TInt areaOfIcon = 4 * rowCount * aRect.Width() * aRect.Height();
-	    
-	    if(areaOfIcon > viewableArea)
+	    if(areaOfIcon > vArea)
 		    {
 			return 0;
 		    }
 		else
 			{
-			return viewableWidth;
+			return vWidth;
 			}
 		}
 
--- a/imstutils/imconversationview/imcvuiapp/src/cimcvappsmileicongrid.cpp	Wed Apr 14 15:46:18 2010 +0300
+++ b/imstutils/imconversationview/imcvuiapp/src/cimcvappsmileicongrid.cpp	Tue Apr 27 16:24:22 2010 +0300
@@ -34,6 +34,16 @@
 #include "mimcvtapeventobserver.h"
 
 // CONSTANTS
+
+    // -- The (KTopLeft_x,KTopLeft_y) and (KBottomRight_x,KBottomRight_y) are the co ordinates of the 
+    // topleft and bottomright points of the first cell in the grid.
+    // These co-ordinates to draw the grid lines and the logic to draw the grid lines is based on the topleft 
+    //and bottomright points of the first cell in the grid
+#define KTopLeft_x 56
+#define KTopLeft_y 55
+#define KBottomRight_x 105
+#define KBottomRight_y 104
+
 // ================= MEMBER FUNCTIONS =======================
 
 // -----------------------------------------------------------------------------
@@ -225,40 +235,35 @@
 //
 void CIMCVAppSmileIconGrid::SetLayout()
     {
-    IM_CV_LOGS(TXT("CIMCVAppSmileIconGrid::SetLayout() start") );
- 	iIsMirrored = AknLayoutUtils::LayoutMirrored() ;
-    
+    IM_CV_LOGS(TXT("CIMCVAppSmileIconGrid::SetLayout() start"));
+    iIsMirrored = AknLayoutUtils::LayoutMirrored();
+
     // popup_grid_graphic_window (Parent)
-    TRect parentRect( iParent->Rect() );
-   
+    TRect parentRect(iParent->Rect());
+
     // listscroll_popup_graphic_pane (this compoment)
     TAknLayoutRect listLayoutRect;
-    listLayoutRect.LayoutRect( 
-        parentRect, 
-        AknLayoutScalable_Avkon::listscroll_popup_graphic_pane() );
-    
+    listLayoutRect.LayoutRect(parentRect,
+            AknLayoutScalable_Avkon::listscroll_popup_graphic_pane(0));
+
     // grid_graphic_popup_pane
     TAknLayoutRect gridLayoutRect;
-    gridLayoutRect.LayoutRect( 
-        listLayoutRect.Rect(), 
-        AknLayoutScalable_Avkon::grid_graphic_popup_pane( 0 ) );
-  
-	// cell_graphic_popup_pane (upper left cell)
-	TAknLayoutRect oneCellRect;
-	oneCellRect.LayoutRect( 
-        gridLayoutRect.Rect(), 
-        AknLayoutScalable_Avkon::cell_graphic_popup_pane( 0, 0, 0 ) );
-   
+    gridLayoutRect.LayoutRect(listLayoutRect.Rect(),
+            AknLayoutScalable_Avkon::grid_graphic_popup_pane(0));
+
+    // cell_graphic_popup_pane (upper left cell)
+    TAknLayoutRect oneCellRect;
+    oneCellRect.LayoutRect(gridLayoutRect.Rect(),
+            AknLayoutScalable_Avkon::cell_graphic_popup_pane(0, 0, 0));
+
     iFirstCell = oneCellRect.Rect();
     iCellWidth = iFirstCell.Width();
     iCellHeight = iFirstCell.Height();
 
     // cell_graphic_popup_pane_g1 (icon size)
     TAknLayoutRect myIconRect;
-    myIconRect.LayoutRect( 
-        iFirstCell, 
-        AknLayoutScalable_Avkon::cell_graphic2_pane_g5(0) );
-    
+    myIconRect.LayoutRect(iFirstCell,
+            AknLayoutScalable_Avkon::cell_graphic_popup_pane_g1(0));
     iIconSize = myIconRect.Rect().Size();
     IM_CV_LOGS(TXT("CIMCVAppSmileIconGrid::SetLayout() end") );
     }
@@ -330,7 +335,6 @@
 	{
 	IM_CV_LOGS(TXT("CIMCVAppSmileIconGrid::Draw() start") );
 	CWindowGc& gc = SystemGc();
-
 	MAknsSkinInstance* skin = AknsUtils::SkinInstance();
 	MAknsControlContext* cc = AknsDrawUtils::ControlContext( this );
 
@@ -368,14 +372,15 @@
 			}
 
 		TInt i( 0 );
-
+		TPoint cellLeftTop( KTopLeft_x,KTopLeft_y );
+		TPoint cellBottomRight( KBottomRight_x,KBottomRight_y );
 		if(!iIsMirrored)	
 			{
 			//draw horizontal lines
 			for( i = 0; i <= iRowCount; ++i )
 				{
-				TPoint startPoint( iFirstCell.iTl );
-				TPoint endPoint( iFirstCell.iTl );
+				TPoint startPoint( cellLeftTop );
+				TPoint endPoint( cellLeftTop );
 				startPoint.iY += i * iCellHeight;
 				endPoint.iY += i * iCellHeight;
 				endPoint.iX += ( ( i == iRowCount ) || ( i == 0 && iRowCount == 1 )
@@ -389,8 +394,8 @@
 			//draw vertical lines
     	for( i = 0; i <= iMaxColumns; ++i )
 				{
-				TPoint startPoint( iFirstCell.iTl );
-				TPoint endPoint( iFirstCell.iTl );
+        TPoint startPoint( cellLeftTop );
+        TPoint endPoint( cellLeftTop );
 				startPoint.iX += i * iCellWidth;
 				endPoint.iX += i * iCellWidth;
 				endPoint.iY += ( i <= lastRowIconsCount ? 
@@ -403,8 +408,8 @@
 			//draw horizontal lines
 			for( i = 0; i <= iRowCount; ++i )
 				{
-				TPoint startPoint( iFirstCell.iBr.iX, iFirstCell.iTl.iY);
-				TPoint endPoint( iFirstCell.iBr.iX, iFirstCell.iTl.iY );
+				TPoint startPoint( cellBottomRight.iX, cellLeftTop.iY);
+				TPoint endPoint( cellBottomRight.iX, cellLeftTop.iY );
 				startPoint.iY += i * iCellHeight;
 				endPoint.iY += i * iCellHeight;
 				endPoint.iX -= ( ( i == iRowCount ) || ( i == 0 && iRowCount == 1 )
@@ -418,8 +423,8 @@
 			//draw vertical lines
     	for( i = 0; i <= iMaxColumns; ++i )
 				{
-				TPoint startPoint( iFirstCell.iBr.iX, iFirstCell.iTl.iY );
-				TPoint endPoint( iFirstCell.iBr.iX, iFirstCell.iTl.iY);
+				TPoint startPoint( cellBottomRight.iX, cellLeftTop.iY );
+				TPoint endPoint( cellBottomRight.iX, cellLeftTop.iY);
 				startPoint.iX -= i * iCellWidth;
 				endPoint.iX -= i * iCellWidth;
 				endPoint.iY += ( i <= lastRowIconsCount ? 
@@ -457,7 +462,11 @@
     {
     IM_CV_LOGS(TXT("CIMCVAppSmileIconGrid::DrawItem() start") );
     //lets count currect cell
-    TRect myRect  = iFirstCell;
+    TPoint cellLeftTop( KTopLeft_x,KTopLeft_y );
+    TPoint cellBottomRight( KBottomRight_x,KBottomRight_y );
+
+    TRect myRect;
+    myRect.SetRect( cellLeftTop, cellBottomRight );
     TPoint offset;
     
     if(!iIsMirrored)
@@ -508,8 +517,9 @@
             }
         }
     
-    TAknWindowLineLayout myIconLayout( AknLayoutScalable_Avkon::cell_graphic2_pane_g5(0) );
 
+    TAknWindowLineLayout myIconLayout( AknLayoutScalable_Avkon::cell_graphic_popup_pane_g1(0) );
+    
     TAknLayoutRect myIconRect;
     myIconRect.LayoutRect( myRect, myIconLayout );
 
--- a/imstutils/imconversationview/imcvuiapp/src/cimcvappsmileiconutility.cpp	Wed Apr 14 15:46:18 2010 +0300
+++ b/imstutils/imconversationview/imcvuiapp/src/cimcvappsmileiconutility.cpp	Tue Apr 27 16:24:22 2010 +0300
@@ -213,6 +213,8 @@
 void CIMCVAppSmileIconUtility::SearchSmilesL( const TDesC& aStr, TDes& aFixedStr,
 										 RArray<TInt>* aArray )
 	{
+	CleanupClosePushL(*aArray);
+	
 	IM_CV_LOGS(TXT("CIMCVAppSmileIconUtility::SearchSmilesL() start") );
 	TInt i;
     iSmileArray.ResetAndDestroy();
@@ -227,6 +229,9 @@
 		}
     
 	iSmileArray.ResetAndDestroy();
+	
+	CleanupStack::Pop(aArray);
+	
 	IM_CV_LOGS(TXT("CIMCVAppSmileIconUtility::SearchSmilesL() end") );
 	}
 
@@ -240,6 +245,8 @@
                          TDes* aFixedStr /*= NULL */,
                          TInt aStartPos /* = 0 */) const
     {
+	CleanupClosePushL(aSmileyInfoArray);
+	
 	IM_CV_LOGS(TXT("CIMCVAppSmileIconUtility::SearchSmilesL() start") );
 	HBufC* text = HBufC::NewMaxLC( aStr.Length() );
 	TPtr fixedText( text->Des() );
@@ -298,6 +305,8 @@
         }
         
     CleanupStack::PopAndDestroy( 2, text ); // replaceString, text
+    CleanupStack::Pop(&aSmileyInfoArray);
+    
 	IM_CV_LOGS(TXT("CIMCVAppSmileIconUtility::SearchSmilesL() end") );
     }
 
--- a/imstutils/xmppadapter/group/bld.inf	Wed Apr 14 15:46:18 2010 +0300
+++ b/imstutils/xmppadapter/group/bld.inf	Tue Apr 27 16:24:22 2010 +0300
@@ -22,11 +22,14 @@
 DEFAULT
 
 PRJ_EXPORTS
+
+#ifdef FF_MECO_XMPP
 ../rom/xmppadapter.iby						 				CORE_APP_LAYER_IBY_EXPORT_PATH(xmppadapter.iby)
 ../rom/xmppadapterresources.iby						 				LANGUAGE_APP_LAYER_IBY_EXPORT_PATH(xmppadapterresources.iby)
 
 // ROM SIS stubs
 //../sis/xmppadapterstub.sis	             /epoc32/data/Z/System/Install/xmppadapterstub.sis
+#endif
 
 PRJ_MMPFILES
 xmppadapter.mmp
--- a/uiservicetab/vimpstui/inc/cvimpstuidoublelistboxtabviewcontrol.h	Wed Apr 14 15:46:18 2010 +0300
+++ b/uiservicetab/vimpstui/inc/cvimpstuidoublelistboxtabviewcontrol.h	Tue Apr 27 16:24:22 2010 +0300
@@ -172,7 +172,9 @@
      	/**
      	 * @see MVIMPSTUiTabbedViewControl.
      	 */
-		void HandleAvatarDeleteL( const TDesC& aUserId );
+		void HandleAvatarRefreshL( const TDesC& aUserId,TBool aBlock);
+
+		
 
         /**
 	     * LoadsBitmap array.
--- a/uiservicetab/vimpstui/inc/cvimpstuisinglelistboxtabviewcontrol.h	Wed Apr 14 15:46:18 2010 +0300
+++ b/uiservicetab/vimpstui/inc/cvimpstuisinglelistboxtabviewcontrol.h	Tue Apr 27 16:24:22 2010 +0300
@@ -167,8 +167,8 @@
 		/**
 		* @see MVIMPSTUiTabbedViewControl.
 		*/
-		void HandleAvatarDeleteL( const TDesC& aUserId );
-	
+		void HandleAvatarRefreshL( const TDesC& aUserId,TBool aBlock );
+		
         
         /**
 	     * LoadsBitmap array.
--- a/uiservicetab/vimpstui/inc/mvimpstuitabbedviewcontrol.h	Wed Apr 14 15:46:18 2010 +0300
+++ b/uiservicetab/vimpstui/inc/mvimpstuitabbedviewcontrol.h	Tue Apr 27 16:24:22 2010 +0300
@@ -122,9 +122,9 @@
     virtual void HandleItemAdditionL()= 0;
     
     /**
-    *Handle the avatar deletion in UI
+    *Handle the avatar deletion,updation in UI
     */
-	virtual void HandleAvatarDeleteL( const TDesC& aUserId )= 0;
+	virtual void HandleAvatarRefreshL( const TDesC& aUserId,TBool aBlock)= 0;
 	
 	/**
     *Handle the avatar deletion in UI
--- a/uiservicetab/vimpstui/src/cvimpstuidoublelistboxtabviewcontrol.cpp	Wed Apr 14 15:46:18 2010 +0300
+++ b/uiservicetab/vimpstui/src/cvimpstuidoublelistboxtabviewcontrol.cpp	Tue Apr 27 16:24:22 2010 +0300
@@ -1389,12 +1389,15 @@
     }
 
 // ---------------------------------------------------------
-// CVIMPSTUiDoubleListBoxTabViewControl::HandleAvatarDeleteL()
+// CVIMPSTUiDoubleListBoxTabViewControl::HandleAvatarRefreshL()
 // Saves the Contact ID in iFocussedID
 // ---------------------------------------------------------
-void CVIMPSTUiDoubleListBoxTabViewControl::HandleAvatarDeleteL( const TDesC& aUserId )
+void CVIMPSTUiDoubleListBoxTabViewControl::HandleAvatarRefreshL( const TDesC& aUserId,TBool aBlock )
 	{
 	TRACER_AUTO;
+	if(aBlock)
+	{
+      TRACE("inside blocking");		   
 	TInt index = iArrayProcess.GetSelectedItemIndex(aUserId );//Get the index from storage.
 	if(index >= 0)
 		{
@@ -1420,4 +1423,13 @@
 		}
 	}
 
+	else
+	{
+          TRACE("inside unblocking calling handleavatarchangel");
+	   HandleAvatarChangeL(aUserId);
+	}
+
+	}
+
+
 // End of File
--- a/uiservicetab/vimpstui/src/cvimpstuisinglelistboxtabviewcontrol.cpp	Wed Apr 14 15:46:18 2010 +0300
+++ b/uiservicetab/vimpstui/src/cvimpstuisinglelistboxtabviewcontrol.cpp	Tue Apr 27 16:24:22 2010 +0300
@@ -1177,9 +1177,9 @@
     }
     
 // ---------------------------------------------------------
-// CVIMPSTUiSingleListBoxTabViewControl::HandleAvatarDeleteL()
+// CVIMPSTUiSingleListBoxTabViewControl::HandleAvatarRefreshL()
 // ---------------------------------------------------------
-void CVIMPSTUiSingleListBoxTabViewControl::HandleAvatarDeleteL( const TDesC&/* aUserId */)
+void CVIMPSTUiSingleListBoxTabViewControl::HandleAvatarRefreshL( const TDesC&/* aUserId */,TBool /*aBlock*/)
 	{
 	//no avatar implementation for single list box.
 	}
--- a/uiservicetab/vimpstui/src/cvimpstuitabbedview.cpp	Wed Apr 14 15:46:18 2010 +0300
+++ b/uiservicetab/vimpstui/src/cvimpstuitabbedview.cpp	Tue Apr 27 16:24:22 2010 +0300
@@ -1251,7 +1251,7 @@
 void CVIMPSTUiTabbedView::CommandFinishedL(
         const MVIMPSTCmd& aCommand )
     {
-
+      TRACER_AUTO;
     //handle the observer for commands issues thro HandleCommandL()
 
     switch (aCommand.CommandId())
@@ -1427,6 +1427,7 @@
             }
         case ECmdBlockContact:
            {
+		TRACE("block finished enter");
            //blockcontact command is complete
            //use aCommand.Result() to get the data 
            //Ownership is not given to the caller  
@@ -1438,8 +1439,10 @@
                }
            if(aCommand.Result() != KErrNone) 
                {
+		   TRACE( "aCommand result = %d ", aCommand.Result() );
                HBufC* prompt = NULL;
                prompt = StringLoader::LoadLC( R_QTN_CHAT_BLOCKING_FAILED  );
+		   TRACE("blocking error prompt displaying");	
                TInt ret( VIMPSTUtilsDialog::DisplayErrorNoteL( *prompt ) );
                CleanupStack::PopAndDestroy(prompt);
                }
@@ -1447,6 +1450,8 @@
            } 
         case ECmdUnBlockContact:
            {
+		TRACE("unblock finished enter");
+
            if(iWaitNote)
                {
                delete iWaitNote;
@@ -1458,11 +1463,34 @@
            //some error occured.
            if(aCommand.Result() != KErrNone) 
                {
+                TRACE( "aCommand result = %d ", aCommand.Result() );
                HBufC* prompt = NULL;
                prompt = StringLoader::LoadLC( R_QTN_CHAT_UNBLOCKING_FAILED  );
+		   TRACE("unblocking error prompt displaying");	
                TInt ret( VIMPSTUtilsDialog::DisplayErrorNoteL( *prompt ) );
                CleanupStack::PopAndDestroy(prompt);
                }
+           else
+        	   {
+			TRACE("unblocking successful");	
+
+		         if(iContainer)
+		          {
+		            TInt index = CurrentItemIndex();
+			        if( index > 0 )
+                         {
+	                      MVIMPSTProcessArray& arrayprocess = iCommandHandler.GetProcessInterface();
+	                      HBufC* contactId =  arrayprocess.GetItemUserId(index).AllocLC();
+	              	      if( contactId->Length() )
+	                          {									   
+						TRACE("HandleAvatarRefreshl calling for unblock");		   
+				    iContainer->HandleAvatarRefreshL(*contactId,EFalse);
+		      
+			          }					
+	                      }
+	               CleanupStack::PopAndDestroy();
+                    }   
+        	   }
            break;
            } 
         default:
@@ -3593,8 +3621,9 @@
             
         	if(iContainer)
                 {
+                     TRACE("HandleAvatarRefreshl calling for blocking");		   
                 
-		iContainer->HandleAvatarDeleteL(*contactId);
+		iContainer->HandleAvatarRefreshL(*contactId, ETrue);
                 }
             }
         else