engine/collectionframework/datasource/plugins/glxdatasourcemde2.5/src/glxdatasourcetaskmdsidlist.cpp
changeset 58 383b67fbdb11
parent 43 72396548277c
child 71 27f2d7aec52a
--- a/engine/collectionframework/datasource/plugins/glxdatasourcemde2.5/src/glxdatasourcetaskmdsidlist.cpp	Fri Aug 06 20:44:25 2010 +0530
+++ b/engine/collectionframework/datasource/plugins/glxdatasourcemde2.5/src/glxdatasourcetaskmdsidlist.cpp	Mon Aug 23 18:06:16 2010 +0530
@@ -67,6 +67,9 @@
 #include "glxdatasourcemds.hrh"
 #include "glxdatasourcemdsutility.h"
 
+// CONSTANTS
+const TInt KGlxCameraAlbumPromotionPosition = 0;
+const TInt KGlxfavoritesAlbumPromotionPosition = 1;
 
 _LIT(KPropertyDefNameCreationDate, "CreationDate");
 
@@ -307,14 +310,39 @@
 	if( aFilterProperties.iPromoteSystemItems )
 		{
 		RArray<TGlxMediaId> list = aFilteredList;
-		/*
-		TInt favoritesIndex = list.Find(DataSource()->FavoritesId());
-		if( KErrNotFound != favoritesIndex )
+		// Here we don't have to push list in cleanup stack as caller function,
+		// CGlxDataSourceTaskMdeIdList::DoHandleListQueryCompletedL is already
+		// doing that.
+		TInt cameraAlbumIndex = list.Find(DataSource()->CameraAlbumId());
+		
+		// If Camera Index is not KErrNotFound, 1st Album should be Captured and 
+		// 2nd should be Favourites(In Albums List View)		
+		
+		if( KErrNotFound != cameraAlbumIndex )
+			{	
+			list.Remove(cameraAlbumIndex);	
+			list.InsertL(DataSource()->CameraAlbumId(), KGlxCameraAlbumPromotionPosition);    			
+
+			TInt favoritesIndex = list.Find(DataSource()->FavoritesId());			
+			if( KErrNotFound != favoritesIndex )
+				{
+				list.Remove(favoritesIndex);
+				list.InsertL(DataSource()->FavoritesId(),KGlxfavoritesAlbumPromotionPosition);		
+				} 
+			}
+		else
 			{
-			list.Remove(favoritesIndex);
-			list.Insert(DataSource()->FavoritesId(), KGlxAlbumPromotionPosition);
+			// In Selection popup, 1st item should be Favourites(from grid view/fullscreen view
+			// and Camera post captured mode) 
+			
+			TInt favoritesIndex = list.Find(DataSource()->FavoritesId());
+			if( KErrNotFound != favoritesIndex )
+				{
+				list.Remove(favoritesIndex);
+				list.InsertL(DataSource()->FavoritesId(),KGlxfavoritesAlbumPromotionPosition - 1);		
+				} 			
 			}
-		*/			
+					
 		DoPostFilterComplete(list, KErrNone);
 		}
 	else