--- 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