photosgallery/contentharvesterplugin/src/glxcontentharvesterpluginall.cpp
changeset 2 7d9067c6fcb1
parent 1 9ba538e329bd
--- a/photosgallery/contentharvesterplugin/src/glxcontentharvesterpluginall.cpp	Thu Jan 07 12:46:23 2010 +0200
+++ b/photosgallery/contentharvesterplugin/src/glxcontentharvesterpluginall.cpp	Mon Jan 18 20:19:20 2010 +0200
@@ -40,14 +40,6 @@
 #include "glxmapconstants.h"
 
 
-// ============================ MEMBER FUNCTIONS ==============================
-LOCAL_C TInt TimerCallbackL( TAny* aPtr )
-    {
-    TRACER( "CGlxContentHarvesterPluginAll::TimerCallbackL" );
-    static_cast<CGlxContentHarvesterPluginAll*>(aPtr)->UpdateDataL();
-    return KErrNone;
-    }
-
 // ----------------------------------------------------------------------------
 // Constructor
 // ----------------------------------------------------------------------------
@@ -71,9 +63,7 @@
     
     //Call the base class ConstructL,to create the default thumbnail
     CGlxContentHarvesterPluginBase::ConstructL(EMbmGlxiconsQgn_prop_image_notcreated);
-    
-    iPeriodic = CPeriodic::NewL( CActive::EPriorityLow );
-    
+
     iUriAttributeContext = new (ELeave) CGlxAttributeContext(&iThumbnailIterator); 
     iThumbnailAttributeContext = new (ELeave) CGlxAttributeContext(&iThumbnailIterator); 
 
@@ -108,12 +98,6 @@
     TRACER( "CGlxContentHarvesterPluginAll::~CGlxContentHarvesterPluginAll" );
 
     DestroyMedialist();
-
-    if ( iPeriodic )
-        {
-        iPeriodic->Cancel();
-        }
-    delete iPeriodic;
     }
 
 // ----------------------------------------------------------------------------
@@ -123,30 +107,31 @@
 void CGlxContentHarvesterPluginAll::UpdateDataL() 
     {
     TRACER( "CGlxContentHarvesterPluginAll::UpdateDataL" );
-    if(iMediaList && iMediaList->Count() && iPreviewItemCount.Count() )
+
+    if (!iMediaList)
         {
-        GLX_LOG_INFO1("CGlxContentHarvesterPluginAll::UpdateDataL(),iProgressIndex=%d",iProgressIndex);
-        TInt ret = UpdateItem(iPreviewItemCount[iProgressIndex]);
-        if(ret != KErrNotFound)
+        return;
+        }
+
+    if (iMediaList->Count())
+        {
+        TInt ret = UpdateItem(KPreviewItemIndex);
+        if (ret != KErrNotFound)
             {
             //Updates the thumbnail in the collection 
             UpdateDataInCPSL(ret);
             }
-        else
-            {
-            UpdateDataInCPSL(GetBitmapHandle());
-            }
         }
     else
         {
         // Show previous thumbnail until the new thumbnail is
         // fecthed.Added this check to avoid flicker
-		if(iMediaList->Count() == 0)
-			{
-			//Don't Show the Thumbnail/Show nothing
-			GLX_LOG_INFO("CGlxContentHarvesterPluginAll::UpdateDataL() --O");
-			UpdateDataInCPSL(GetBitmapHandle());
-			}
+        if (iMediaList->Count() == 0)
+            {
+            //Don't Show the Thumbnail/Show nothing
+            GLX_LOG_INFO("CGlxContentHarvesterPluginAll::UpdateDataL() --O");
+            UpdateDataInCPSL(GetBitmapHandle());
+            }
         }
     }
 
@@ -173,52 +158,6 @@
     }
 
 // ----------------------------------------------------------------------------
-// CGlxContentHarvesterPluginAll::HandleItemChanged()
-// ----------------------------------------------------------------------------
-//
-void CGlxContentHarvesterPluginAll::HandleItemChanged()
-    {
-    TRACER("CGlxContentHarvesterPluginAll::HandleItemChanged");
-
-    iProgressIndex = 0;
-    iPreviewItemCount.Reset();
-
-    TSize gridIconSize = GetGridIconSize();
-    TMPXAttribute thumbnailAttribute(KGlxMediaIdThumbnail, 
-            GlxFullThumbnailAttributeId( ETrue,  gridIconSize.iWidth, gridIconSize.iHeight ) );
-    if(iMediaList)  
-        {
-        TInt count = iMediaList->Count();
-        GLX_LOG_INFO1("CGlxContentHarvesterPluginAll:: HandleItemChanged ,count=%d",count);
-
-        TBool inFocus = IsFocused();
-        for(TInt aItemIndex = 0; aItemIndex < count; aItemIndex++)
-            {
-            const TGlxMedia& item = iMediaList->Item( aItemIndex );
-            const CGlxThumbnailAttribute* value = item.ThumbnailAttribute( thumbnailAttribute );
-            if (value)
-                {
-                iPreviewItemCount.InsertInOrder(aItemIndex);
-                if(!inFocus)
-                    {
-                    //if the collection is NOT in Focus,retrive only one thumbnail and break
-                    GLX_LOG_INFO1("CGlxContentHarvesterPluginAll::HandleItemChanged,Range=1,aItemIndex=%d",aItemIndex);
-                    break;
-                    }
-                else if(iPreviewItemCount.Count() == KPreviewThumbnailFetchCount ||
-                        iPreviewItemCount.Count() == count )
-                    {
-                    //if the collection is not in Focus,retrive 15 thumbnail and break
-                    GLX_LOG_INFO1("CGlxContentHarvesterPluginAll::HandleItemChanged,Range=15,aItemIndex=%d",aItemIndex);
-                    break;
-                    }
-
-                }
-            }
-        }
-    }
-
-// ----------------------------------------------------------------------------
 // CGlxContentHarvesterPluginAll::UpdateDataInCPSL()
 // ----------------------------------------------------------------------------
 //  
@@ -260,14 +199,6 @@
     const CGlxThumbnailAttribute* value = item.ThumbnailAttribute( thumbnailAttribute );
     if (value)
         {
-        GLX_LOG_INFO1("CGlxContentHarvesterPluginAll::UpdateItem,iProgressIndex=%d ",iProgressIndex);
-        iProgressIndex++;
-        if (iProgressIndex >= KPreviewThumbnailFetchCount || 
-                iProgressIndex >= iPreviewItemCount.Count() ||
-                iProgressIndex >= iMediaList->Count())
-            {
-            iProgressIndex = 0;
-            }
         return value->iBitmap->Handle();
         }
     return KErrNotFound;
@@ -284,7 +215,7 @@
     GLX_LOG_INFO1("CGlxContentHarvesterPluginAll::ActivateL aOn =%d",aOn);
     SetFocus(aOn);
 
-    if (IsMatrixMenuInForegroundL() && aOn && !iPeriodic->IsActive() )
+    if (IsMatrixMenuInForegroundL() && aOn )
         {
         if(GetCHPlugin()->IsRefreshNeeded())
             {
@@ -297,10 +228,6 @@
             //to update the thumbnails on the focus , need to call the below function
             UpdatePreviewThumbnailListL();
             }
-
-        iPeriodic->Start( KTimerInterval, 
-                KTimerInterval, 
-                TCallBack( TimerCallbackL, this ) );
         }
     else if ( !aOn )
         {
@@ -311,7 +238,6 @@
             GLX_LOG_INFO1("CGlxContentHarvesterPluginAll::ActivateL !aOn =%d and matrix not in foreground",aOn);
             GetCHPlugin()->UpdatePlugins(aOn);
             }
-        iPeriodic->Cancel();
         }
     }
 
@@ -378,25 +304,12 @@
         if (value)
             {
             GLX_LOG_INFO("CGlxContentHarvesterPluginAll::HandleAttributesAvailableL Thumbnail is present ");
-            iPreviewItemCount.InsertInOrder(aItemIndex);
 
-            //if the collection on the matrix menu is not focused,then show only one thumbnail
-            if(!IsFocused())
-                {
-                //if one thumbnail is fetched,it is sufficent when the collection is not in focus.
-                //remove the observer as client need not listen to the callbacks 
-                GLX_LOG_INFO("CGlxContentHarvesterPluginAll::HandleAttributesAvailableL,one thumbnail fetched");
-                UpdateDataInCPSL( value->iBitmap->Handle());           
-                iMediaList->RemoveMediaListObserver( this );
-                }
-            else if (iPreviewItemCount.Count()  == KPreviewThumbnailFetchCount ||
-                    iPreviewItemCount.Count() == aList->Count() )
-                {
-                //if the PreviewItemCount  equals 15 or if it is eqaul to the total count
-                //remove the observer as client need not listen to the callbacks 
-                GLX_LOG_INFO1("CGlxContentHarvesterPluginAll::HandleAttributesAvailableL,media list count=%d",aList->Count());
-                iMediaList->RemoveMediaListObserver( this );
-                }
+			// Update the preview thumbnail
+			//remove the observer as client need not listen to the callbacks
+			GLX_LOG_INFO("CGlxContentHarvesterPluginAll::HandleAttributesAvailableL,one thumbnail fetched");
+			UpdateDataInCPSL( value->iBitmap->Handle());
+			iMediaList->RemoveMediaListObserver( this );
             }//end of  check against value 
         }//end of  attribute match
     }
@@ -468,21 +381,12 @@
     TRACER( "CGlxContentHarvesterPluginAll::CreateMedialistL" );
     if(!iMediaList)
         {
-        //if the collection is in focus then , create media list with context of 15 items else
-        // with context of single item.
-        if(IsFocused())
-            {
-            iThumbnailIterator.SetRange( KPreviewThumbnailFetchCount ); 
-            }
-        else
-            {
-            iThumbnailIterator.SetRange( KSinglePreviewThumbnail );
-            }
+        iThumbnailIterator.SetRange( KSinglePreviewThumbnail );
 
         iMediaList = CreateMedialistAndAttributeContextL( TGlxMediaId( 
                 KGlxCollectionPluginAllImplementationUid ),
                 iUriAttributeContext,iThumbnailAttributeContext);         
-        
+
         AddContextAndObserverL();
         }
     }
@@ -501,35 +405,10 @@
         {
         //medis list is not created yet,create it.
         CreateMedialistL( );
-        //This is called to show the preview thumbnails. If no thumbnails are
-        //present, display nothing 
         UpdateDataL();
         }
-    else if(IsFocused())
-        {
-        //1.This loop is executed,when the collection gets focus
-        //2.This loop is executed,when the contents are added/deleted for this collection
-        //and this collection has focus,so 15 thumbnails are fetched.
-        //say for example
-        //1.focus is on "All" collection/view and you insert MMC
-        //2.capture in burst mode and return quickly to photos suite and focus on "All"
-        HandleItemChanged();
-        iThumbnailIterator.SetRange( KPreviewThumbnailFetchCount );
-        RemoveContextAndObserver();
-        AddContextAndObserverL();
-        }
     else
         {
-        //1.This loop is executed,when the contents are updated for this collection
-        //and this collection doesn't have the focus,so only one thumbnail is fetched.
-
-        //here we need to fetch only one item 
-        //1.if the content is deleted,then creating a context doesn't fetch the attributes
-        //2.if the content is added and the content is not the latest as per the sorted order of the
-        // media list,then the thumbnails are not fetched.
-        // so show the first available thumbnail in the media list.
-
-        HandleItemChanged();
         UpdateDataL();
 
         //Adding the context doesn't gaurantee we get a call back for