mmappcomponents/audiofetcher/src/audiofetcherfilehandler.cpp
branchRCL_3
changeset 63 91d5ad76f5c6
parent 0 a2952bb97e68
child 67 16db3449d7ba
--- a/mmappcomponents/audiofetcher/src/audiofetcherfilehandler.cpp	Tue Sep 14 22:17:30 2010 +0300
+++ b/mmappcomponents/audiofetcher/src/audiofetcherfilehandler.cpp	Wed Sep 15 12:45:22 2010 +0300
@@ -376,6 +376,7 @@
     iQuery->AddPropertyFilterL( &fileTypePropertyDef );
    
     CMdELogicCondition& conditions = iQuery->Conditions();
+    MimeFilterL( conditions );
     ExcludeRomFilesL( conditions );
    
     iQuery->SetResultMode( EQueryResultModeItem );
@@ -414,6 +415,7 @@
     iQuery->AddPropertyFilterL( &fileTypePropertyDef );
    
     CMdELogicCondition& conditions = iQuery->Conditions();
+    MimeFilterL( conditions );
     ExcludeRomFilesL( conditions );
     
     // define sort order
@@ -455,6 +457,7 @@
     iQuery->AddPropertyFilterL( &fileTypePropertyDef );
    
     CMdELogicCondition& conditions = iQuery->Conditions();
+    MimeFilterL( conditions );
     ExcludeRomFilesL( conditions );
    
     iQuery->SetResultMode( EQueryResultModeItem );
@@ -700,6 +703,45 @@
     cond.SetNegate( ETrue );
     }
 
+// -----------------------------------------------------------------------------
+// CAudioFetcherFileHandler::MimeFilterL
+// 
+// -----------------------------------------------------------------------------
+//
+void CAudioFetcherFileHandler::MimeFilterL( CMdELogicCondition& aCondition )
+    {
+    WLOG("CAudioFetcherFileHandler::MimeFilterL");
+
+    if( iMimeTypeArray )
+        {
+		if ( iMimeTypeArray->MdcaCount() > 0 )
+			{
+			CMdELogicCondition& cond =
+					aCondition.AddLogicConditionL( ELogicConditionOperatorOr );
+			for ( TInt i = 0; i < iMimeTypeArray->MdcaCount(); i++ )
+				{
+				TPtrC ptr = iMimeTypeArray->MdcaPoint(i);
+							
+				cond.AddPropertyConditionL( 
+                    iSession->GetDefaultNamespaceDefL().GetObjectDefL(
+                    MdeConstants::Image::KImageObject ).GetPropertyDefL( 
+                    MdeConstants::Object::KItemTypeProperty ),
+                    ETextPropertyConditionCompareEquals, ptr  );
+				}
+			}
+    	}
+    }
+
+// -----------------------------------------------------------------------------
+// CAudioFetcherFileHandler::SetMimeType
+// 
+// -----------------------------------------------------------------------------
+//
+void CAudioFetcherFileHandler::SetMimeType( const MDesCArray& aMimeTypeArray )
+    {
+    WLOG("CAudioFetcherFileHandler::SetMimeType");
+    iMimeTypeArray = &aMimeTypeArray;
+    }
 
 // -------------------------------------------------------------------------------
 // CAudioFetcherFileHandler::StrCopy