diff -r 000000000000 -r 4e91876724a2 photosgallery/collectionframework/plugins/glxcollectionpluginmonths/src/glxcollectionpluginmonths.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/photosgallery/collectionframework/plugins/glxcollectionpluginmonths/src/glxcollectionpluginmonths.cpp Thu Dec 17 08:45:44 2009 +0200 @@ -0,0 +1,856 @@ +/* +* Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: This class browses file system +* +*/ + + + + +// INCLUDE FILES + +#include "glxcollectionpluginmonths.h" + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "glxcollectionpluginmonths.hrh" +/** + * @internal reviewed 14/06/2007 by Alex Birkett + */ +// CONSTANTS + +// Constants introduced to solve Codescanner warnings +// about magic number usage +const TInt KYearBufferSize = 8; +const TInt KDateBufferPaddingMin = 10; +const TInt KDateBufferPaddingMax = 20; +const TInt KDateFormat1 = 1; +const TInt KDateFormat2 = 2; +const TInt KDateFormat3 = 3; + +// ============================ LOCAL FUNCTIONS ============================== + +// ============================ MEMBER FUNCTIONS ============================== +// ---------------------------------------------------------------------------- +// Two-phased constructor. +// ---------------------------------------------------------------------------- +// +CGlxCollectionPluginMonths* CGlxCollectionPluginMonths::NewL(TAny* aObs) + { + CGlxCollectionPluginMonths* self = new (ELeave) CGlxCollectionPluginMonths( + static_cast(aObs)); + CleanupStack::PushL(self); + self->ConstructL(); + CleanupStack::Pop(self); + return self; + } + +// ---------------------------------------------------------------------------- +// Destructor +// ---------------------------------------------------------------------------- +// +CGlxCollectionPluginMonths::~CGlxCollectionPluginMonths() + { + } + +// ---------------------------------------------------------------------------- +// Constructor +// ---------------------------------------------------------------------------- +// +CGlxCollectionPluginMonths::CGlxCollectionPluginMonths( + MMPXCollectionPluginObserver* aObs) + { + iObs = aObs; + } + +// ---------------------------------------------------------------------------- +// ConstructL +// ---------------------------------------------------------------------------- +// +void CGlxCollectionPluginMonths::ConstructL() + { + iDataSource = MGlxDataSource::OpenDataSourceL(KGlxDefaultDataSourceUid, *this); + } + + +// ---------------------------------------------------------------------------- +// CpiAttributeAdditionalAttributes +// ---------------------------------------------------------------------------- +// +void CGlxCollectionPluginMonths::CpiAttributeAdditionalAttributes( + const TMPXAttribute& aCpiAttribute, RArray& aAttributeArray) + { + TRACER("CGlxCollectionPluginMonths::CpiAttributeAdditionalAttributes"); + // Only need to process KGlxMediaCollectionPluginSpecificSubTitle here as all the others are reading straight from resource files + // KGlxMediaCollectionPluginSpecificSubTitle requires a usage count + if (aCpiAttribute == KGlxMediaCollectionPluginSpecificSubTitle) + { + // need to add the usage count. but check first if it is already present + TInt attrCount = aAttributeArray.Count(); + TBool found = EFalse; + TBool startfound = EFalse; + +#ifdef GLX_SUB_TITLE_REL8 + + TBool videofound = EFalse; + TBool imagefound = EFalse; + + for ( TInt index = 0 ; index < attrCount ; index++) + { + if (aAttributeArray[index] == KMPXMediaGeneralCount) + { + found = ETrue; + } + else if ( aAttributeArray[index] == KGlxMediaCollectionInternalStartDate ) + { + startfound = ETrue; + } + + else if (aAttributeArray[index] == KGlxMediaItemTypeVideo) + { + videofound = ETrue; + } + else if(aAttributeArray[index] == KGlxMediaItemTypeImage) + { + imagefound = ETrue; + } + } + + if (!found) + { + aAttributeArray.Append(KGlxMediaCollectionInternalUsageCount); + } + + if (!startfound) + { + aAttributeArray.Append(KGlxMediaCollectionInternalStartDate); + } + // end date will be returned when start date is requested. + + if (!videofound) + { + aAttributeArray.Append(KGlxMediaItemTypeVideo); + } + + if (!imagefound) + { + aAttributeArray.Append(KGlxMediaItemTypeImage); + } +#else + + for ( TInt index = 0 ; index < attrCount ; index++) + { + if (aAttributeArray[index] == KMPXMediaGeneralCount) + { + found = ETrue; + } + else if ( aAttributeArray[index] == KGlxMediaCollectionInternalStartDate ) + { + startfound = ETrue; + } + } + + if (!found) + { + aAttributeArray.Append(KGlxMediaCollectionInternalUsageCount); + } + if (!startfound) + { + aAttributeArray.Append(KGlxMediaCollectionInternalStartDate); + } +#endif + // end date will be returned when start date is requested. + } + } + +// ---------------------------------------------------------------------------- +// HandleCpiAttributeResponseL +// ---------------------------------------------------------------------------- +// +void CGlxCollectionPluginMonths::HandleCpiAttributeResponseL(CMPXMedia* aResponse, + TArray aCpiAttributes, TArray aMediaIds) + { + TRACER("CGlxCollectionPluginMonths::HandleCpiAttributeResponseL"); + + const TInt mediaIdCount = aMediaIds.Count(); + + switch (mediaIdCount) + { + case 0: + User::Leave(KErrNotSupported); + break; + + case 1: + HandleCpiAttributeResponseL(aResponse, aCpiAttributes, aMediaIds[0]); + break; + + + default: + { + // We have an array of CMPXMedia items + + if (TGlxMediaId(KGlxCollectionRootId) == aMediaIds[0]) + { + User::Leave(KErrNotSupported); + } + + CMPXMediaArray* mediaArray = + aResponse->ValueCObjectL(KMPXMediaArrayContents); + CleanupStack::PushL(mediaArray); + + const TInt arrayCount = mediaArray->Count(); + + // Sanity check + if (arrayCount != mediaIdCount) + { + User::Leave(KErrArgument); + } + + for (TInt index = 0; index < arrayCount; index++) + { + HandleCpiAttributeResponseL((*mediaArray)[index], + aCpiAttributes, aMediaIds[index]); + } + + aResponse->SetCObjectValueL(KMPXMediaArrayContents, mediaArray); + CleanupStack::PopAndDestroy(mediaArray); + } + break; + } + } + + +// ---------------------------------------------------------------------------- +// HandleCpiAttributeResponseL +// ---------------------------------------------------------------------------- +// +void CGlxCollectionPluginMonths::HandleCpiAttributeResponseL(CMPXMedia* aResponse, + TArray aCpiAttributes, TGlxMediaId aMediaId) + { + TRACER("CGlxCollectionPluginMonths::HandleCpiAttributeResponseL"); + + _LIT(KResourceFile, "z:glxpluginmonths.rsc"); + + TInt count = aCpiAttributes.Count(); + TLanguage lang; + lang = User::Language(); + + for (TInt index = 0; index < count ; index++) + { + const TMPXAttribute attr = aCpiAttributes[index]; + + if (attr == KGlxMediaCollectionPluginSpecificSubTitle) + { + GLX_LOG_INFO("Attribute : SubTitle"); + + if (TGlxMediaId(KGlxCollectionRootId) == aMediaId) + { + GLX_LOG_INFO("Attribute : SubTitle-RootId"); + +#ifdef GLX_SUB_TITLE_REL8 + + //The usage Count is required for the subtitle in the main list view + if (!aResponse->IsSupported(KGlxMediaCollectionInternalUsageCount)) + { + User::Leave(KErrNotSupported); + } + else + { + TInt usageCount = aResponse->ValueTObjectL(KGlxMediaCollectionInternalUsageCount); + + // Get the format string + HBufC* tempTitle = NULL; + + if(0 == usageCount) + { + GLX_LOG_INFO("SubTitle:0 Items"); + + tempTitle = LoadLocalizedStringLC(KResourceFile, R_MONTHS_SUB_TITLE_NO_IMAGE_NO_VIDEO); + aResponse->SetTextValueL(attr, *tempTitle); + } + + // Get the format string + else if (1 == usageCount) + { + GLX_LOG_INFO("SubTitle:1 Item"); + + tempTitle = LoadLocalizedStringLC(KResourceFile, R_MONTHS_SUB_TITLE_SINGLE_BY_MONTH); + aResponse->SetTextValueL(attr, *tempTitle); + } + else + { + GLX_LOG_INFO1("SubTitle: %d Items",usageCount); + + tempTitle = LoadLocalizedStringLC(KResourceFile, R_MONTHS_SUB_TITLE_MULTI_BY_MONTH); + TPtr formatString = tempTitle->Des(); + + // Now create a buffer that will contain the result. needs to be length of format string plus a few extra for the number + HBufC* title = HBufC::NewLC(formatString.Length() + KDateBufferPaddingMin); + TPtr ptr = title->Des(); + StringLoader::Format(ptr, formatString, -1, usageCount); + + // Set the title in the response. + aResponse->SetTextValueL(attr, *title); + CleanupStack::PopAndDestroy(title); + } + CleanupStack::PopAndDestroy(tempTitle); + } +#else + if (!aResponse->IsSupported(KGlxMediaCollectionInternalStartDate)) + { + User::Leave(KErrNotSupported); + } + if (!aResponse->IsSupported(KGlxMediaCollectionInternalEndDate)) + { + User::Leave(KErrNotSupported); + } + TTime start = aResponse->ValueTObjectL(KGlxMediaCollectionInternalStartDate); + TTime end = aResponse->ValueTObjectL(KGlxMediaCollectionInternalEndDate); + HBufC* tempTitle = NULL; + if( TTime(0) == start ) + { + tempTitle = LoadLocalizedStringLC(KResourceFile, R_MONTHS_SUB_TITLE_NO_IMAGE_NO_VIDEO); + aResponse->SetTextValueL(attr, *tempTitle); + CleanupStack::PopAndDestroy(tempTitle); + continue; + } + _LIT(KGlxTempMonthYearTitleFormat, "%F%Y"); + + tempTitle = LoadLocalizedStringLC(KResourceFile, R_MONTHS_SUB_TITLE); + TPtr formatString = tempTitle->Des(); + TBuf yearTitle; + start.FormatL(yearTitle, KGlxTempMonthYearTitleFormat); + + // Ensure that the number conversion takes place only for Arabic + if (lang == ELangArabic) + { + AknTextUtils::DisplayTextLanguageSpecificNumberConversion(yearTitle); + } + + HBufC* monthTitle = NULL; + switch(start.DateTime().Month()) + { + case EJanuary: + { + monthTitle = LoadLocalizedStringLC(KResourceFile, R_MONTHS_SUB_TITLE_JAN); + break; + } + case EFebruary: + { + monthTitle = LoadLocalizedStringLC(KResourceFile, R_MONTHS_SUB_TITLE_FEB); + break; + } + case EMarch: + { + monthTitle = LoadLocalizedStringLC(KResourceFile, R_MONTHS_SUB_TITLE_MAR); + break; + } + case EApril: + { + monthTitle = LoadLocalizedStringLC(KResourceFile, R_MONTHS_SUB_TITLE_APR); + break; + } + case EMay: + { + monthTitle = LoadLocalizedStringLC(KResourceFile, R_MONTHS_SUB_TITLE_MAY); + break; + } + case EJune: + { + monthTitle = LoadLocalizedStringLC(KResourceFile, R_MONTHS_SUB_TITLE_JUN); + break; + } + case EJuly: + { + monthTitle = LoadLocalizedStringLC(KResourceFile, R_MONTHS_SUB_TITLE_JUL); + break; + } + case EAugust: + { + monthTitle = LoadLocalizedStringLC(KResourceFile, R_MONTHS_SUB_TITLE_AUG); + break; + } + case ESeptember: + { + monthTitle = LoadLocalizedStringLC(KResourceFile, R_MONTHS_SUB_TITLE_SEP); + break; + } + case EOctober: + { + monthTitle = LoadLocalizedStringLC(KResourceFile, R_MONTHS_SUB_TITLE_OCT); + break; + } + case ENovember: + { + monthTitle = LoadLocalizedStringLC(KResourceFile, R_MONTHS_SUB_TITLE_NOV); + break; + } + case EDecember: + { + monthTitle = LoadLocalizedStringLC(KResourceFile, R_MONTHS_SUB_TITLE_DEC); + break; + } + } + TBuf yearTitle2; + end.FormatL(yearTitle2, KGlxTempMonthYearTitleFormat); + + // Ensure that the number conversion takes place only for Arabic + if (lang == ELangArabic) + { + AknTextUtils::DisplayTextLanguageSpecificNumberConversion(yearTitle2); + } + + HBufC* monthTitle2 = NULL; + switch(end.DateTime().Month()) + { + case EJanuary: + { + monthTitle2 = LoadLocalizedStringLC(KResourceFile, R_MONTHS_SUB_TITLE_JAN); + break; + } + case EFebruary: + { + monthTitle2 = LoadLocalizedStringLC(KResourceFile, R_MONTHS_SUB_TITLE_FEB); + break; + } + case EMarch: + { + monthTitle2 = LoadLocalizedStringLC(KResourceFile, R_MONTHS_SUB_TITLE_MAR); + break; + } + case EApril: + { + monthTitle2 = LoadLocalizedStringLC(KResourceFile, R_MONTHS_SUB_TITLE_APR); + break; + } + case EMay: + { + monthTitle2 = LoadLocalizedStringLC(KResourceFile, R_MONTHS_SUB_TITLE_MAY); + break; + } + case EJune: + { + monthTitle2 = LoadLocalizedStringLC(KResourceFile, R_MONTHS_SUB_TITLE_JUN); + break; + } + case EJuly: + { + monthTitle2 = LoadLocalizedStringLC(KResourceFile, R_MONTHS_SUB_TITLE_JUL); + break; + } + case EAugust: + { + monthTitle2 = LoadLocalizedStringLC(KResourceFile, R_MONTHS_SUB_TITLE_AUG); + break; + } + case ESeptember: + { + monthTitle2 = LoadLocalizedStringLC(KResourceFile, R_MONTHS_SUB_TITLE_SEP); + break; + } + case EOctober: + { + monthTitle2 = LoadLocalizedStringLC(KResourceFile, R_MONTHS_SUB_TITLE_OCT); + break; + } + case ENovember: + { + monthTitle2 = LoadLocalizedStringLC(KResourceFile, R_MONTHS_SUB_TITLE_NOV); + break; + } + case EDecember: + { + monthTitle2 = LoadLocalizedStringLC(KResourceFile, R_MONTHS_SUB_TITLE_DEC); + break; + } + } + + HBufC* title1 = HBufC::NewLC(formatString.Length() + KDateBufferPaddingMax); + TPtr ptr1 = title1->Des(); + HBufC* title2 = HBufC::NewLC(formatString.Length() + KDateBufferPaddingMax); + TPtr ptr2 = title2->Des(); + HBufC* title3 = HBufC::NewLC(formatString.Length() + KDateBufferPaddingMax); + TPtr ptr3 = title3->Des(); + HBufC* title4 = HBufC::NewLC(formatString.Length() + KDateBufferPaddingMax); + TPtr ptr4 = title4->Des(); + TPtr monthPtr = monthTitle->Des(); + TPtr monthPtr2 = monthTitle2->Des(); + StringLoader::Format(ptr1, formatString, 0, monthPtr); + StringLoader::Format(ptr2, ptr1, KDateFormat1, yearTitle); + StringLoader::Format(ptr3, ptr2, KDateFormat2, monthPtr2); + StringLoader::Format(ptr4, ptr3, KDateFormat3, yearTitle2); + + + aResponse->SetTextValueL(attr, *title4); + CleanupStack::PopAndDestroy(title4); + CleanupStack::PopAndDestroy(title3); + CleanupStack::PopAndDestroy(title2); + CleanupStack::PopAndDestroy(title1); + CleanupStack::PopAndDestroy(monthTitle2); + CleanupStack::PopAndDestroy(monthTitle); + CleanupStack::PopAndDestroy(tempTitle); +#endif + } + else + { + +#ifdef GLX_SUB_TITLE_REL8 + + HBufC* tempTitle = NULL; + + TInt videoCount = aResponse->ValueTObjectL(KGlxMediaItemTypeVideo); + + TInt imageCount = aResponse->ValueTObjectL(KGlxMediaItemTypeImage); + + //No Images or Videos + if ((0 == videoCount) && (0 == imageCount )) + { + GLX_LOG_INFO("VideoCount:0,ImageCount:0"); + + tempTitle = LoadLocalizedStringLC(KResourceFile, + R_MONTHS_SUB_TITLE_NO_IMAGE_NO_VIDEO); + aResponse->SetTextValueL(attr, *tempTitle); + } + else + { + // 1 Image and multi/0 Videos + if (1 == imageCount) + { + GLX_LOG_INFO1("ImageCount:1,VideoCount:%d",videoCount); + + tempTitle = LoadLocalizedStringLC(KResourceFile, + R_MONTHS_SUB_TITLE_ONE_IMAGE_MULTI_VIDEO); + + TPtr formatString = tempTitle->Des(); + + // Now create a buffer that will contain the result. needs to be length of format string plus a few extra for the number + HBufC* title = HBufC::NewLC(formatString.Length() + KDateBufferPaddingMin); + TPtr ptr = title->Des(); + + StringLoader::Format(ptr, formatString, -1, videoCount); + + // Set the title in the response. + aResponse->SetTextValueL(attr, *title); + + CleanupStack::PopAndDestroy(title); + } + + // Multi/0 Image and 1 Video + else if (1 == videoCount) + { + GLX_LOG_INFO1("ImageCount: %d,VideoCount:1",imageCount); + + tempTitle = LoadLocalizedStringLC(KResourceFile, + R_MONTHS_SUB_TITLE_MULTI_IMAGE_ONE_VIDEO); + + TPtr formatString = tempTitle->Des(); + + // Now create a buffer that will contain the result. needs to be length of format string plus a few extra for the number + HBufC* title = HBufC::NewLC(formatString.Length() + KDateBufferPaddingMin); + TPtr ptr = title->Des(); + + StringLoader::Format(ptr, formatString, -1, imageCount); + + // Set the title in the response. + aResponse->SetTextValueL(attr, *title); + + CleanupStack::PopAndDestroy(title); + } + + // Multi Image and Multi Video + else + { + GLX_LOG_INFO2("ImageCount %d,VideoCount %d",imageCount,videoCount); + + tempTitle = LoadLocalizedStringLC(KResourceFile, + R_MONTHS_SUB_TITLE_MULTI_IMAGE_MULTI_VIDEO); + + TPtr formatString = tempTitle->Des(); + + HBufC* title = HBufC::NewLC(formatString.Length() + KDateBufferPaddingMin); + TPtr ptr = title->Des(); + + HBufC* title1 = HBufC::NewLC(formatString.Length() + KDateBufferPaddingMin); + TPtr ptr1 = title1->Des(); + + StringLoader::Format(ptr, formatString, 0, imageCount); + StringLoader::Format(ptr1, ptr, KDateFormat1, videoCount); + + // Set the title in the response. + aResponse->SetTextValueL(attr, *title1); + + CleanupStack::PopAndDestroy(title1); + CleanupStack::PopAndDestroy(title); + } + } + CleanupStack::PopAndDestroy(tempTitle); +#else + + TInt usageCount = 0; + + if ( aResponse->IsSupported(KMPXMediaGeneralCount) ) + { + usageCount = aResponse->ValueTObjectL(KMPXMediaGeneralCount); + } + else if ( aResponse->IsSupported(KGlxMediaCollectionInternalUsageCount) ) + { + usageCount = + aResponse->ValueTObjectL(KGlxMediaCollectionInternalUsageCount); + } + else + { + User::Leave(KErrNotSupported); + } + HBufC* tempTitle = NULL; + + if(0 == usageCount) + { + tempTitle = LoadLocalizedStringLC(KResourceFile, + R_MONTHS_SUB_TITLE_NO_IMAGE_NO_VIDEO); + + // Set the title in the response. + aResponse->SetTextValueL(attr, *tempTitle); + CleanupStack::PopAndDestroy(tempTitle); + continue; + } + + else if (1 == usageCount) + { + tempTitle = LoadLocalizedStringLC(KResourceFile, + R_MONTHS_SUB_TITLE_SINGLE); + + aResponse->SetTextValueL(attr, *tempTitle); + CleanupStack::PopAndDestroy(tempTitle); + continue; + } + else + { + tempTitle = LoadLocalizedStringLC(KResourceFile, + R_MONTHS_SUB_TITLE_MULTI); + } + + TPtr formatString = tempTitle->Des(); + + // Now create a buffer that will contain the result. needs to be length of format string plus a few extra for the number + HBufC* title = HBufC::NewLC(formatString.Length() + KDateBufferPaddingMin); + TPtr ptr = title->Des(); + StringLoader::Format(ptr, formatString, -1, usageCount); + + // Set the title in the response. + aResponse->SetTextValueL(attr, *title); + + CleanupStack::PopAndDestroy(title); + CleanupStack::PopAndDestroy(tempTitle); +#endif + } + } + else if (attr == KGlxMediaCollectionPluginSpecificSelectMediaPopupTitle) + { + GLX_LOG_INFO("Attribute : MediaPopupTitle"); + + User::Leave(KErrNotSupported); + } + else if (attr == KGlxMediaCollectionPluginSpecificNewMediaItemTitle) + { + GLX_LOG_INFO("Attribute : NewMediaItemTitle"); + + User::Leave(KErrNotSupported); + } + else if (attr == KGlxMediaCollectionPluginSpecificDefaultMediaTitle) + { + GLX_LOG_INFO("Attribute : DefaultMediaTitle"); + + User::Leave(KErrNotSupported); + } + else if (attr == KMPXMediaGeneralTitle) + { + GLX_LOG_INFO("Attribute : GeneralTitle"); + + if( TGlxMediaId(KGlxCollectionRootId) == aMediaId ) + { + GLX_LOG_INFO("Attribute : GeneralTitle:RootId"); + + HBufC* title = LoadLocalizedStringLC(KResourceFile, + R_MONTHS_GENERAL_TITLE); + aResponse->SetTextValueL(attr, *title); + CleanupStack::PopAndDestroy(title); + } + else + { + if( aResponse->IsSupported(KGlxMediaCollectionInternalStartDate) ) + { + HBufC* tempTitle = LoadLocalizedStringLC(KResourceFile, + R_MONTHS_ITEM_TITLE); + TPtr formatString = tempTitle->Des(); + TTime month = + aResponse->ValueTObjectL(KGlxMediaCollectionInternalStartDate); + _LIT(KGlxTempMonthYearTitleFormat, "%F%Y"); + TBuf yearTitle; + month.FormatL(yearTitle, KGlxTempMonthYearTitleFormat); + + // Ensure that the number conversion takes place only for Arabic + if (lang == ELangArabic) + { + AknTextUtils::DisplayTextLanguageSpecificNumberConversion(yearTitle); + } + + HBufC* monthTitle = NULL; + switch(month.DateTime().Month()) + { + case EJanuary: + { + monthTitle = LoadLocalizedStringLC(KResourceFile, R_MONTHS_TITLE_JAN); + break; + } + case EFebruary: + { + monthTitle = LoadLocalizedStringLC(KResourceFile, R_MONTHS_TITLE_FEB); + break; + } + case EMarch: + { + monthTitle = LoadLocalizedStringLC(KResourceFile, R_MONTHS_TITLE_MAR); + break; + } + case EApril: + { + monthTitle = LoadLocalizedStringLC(KResourceFile, R_MONTHS_TITLE_APR); + break; + } + case EMay: + { + monthTitle = LoadLocalizedStringLC(KResourceFile, R_MONTHS_TITLE_MAY); + break; + } + case EJune: + { + monthTitle = LoadLocalizedStringLC(KResourceFile, R_MONTHS_TITLE_JUN); + break; + } + case EJuly: + { + monthTitle = LoadLocalizedStringLC(KResourceFile, R_MONTHS_TITLE_JUL); + break; + } + case EAugust: + { + monthTitle = LoadLocalizedStringLC(KResourceFile, R_MONTHS_TITLE_AUG); + break; + } + case ESeptember: + { + monthTitle = LoadLocalizedStringLC(KResourceFile, R_MONTHS_TITLE_SEP); + break; + } + case EOctober: + { + monthTitle = LoadLocalizedStringLC(KResourceFile, R_MONTHS_TITLE_OCT); + break; + } + case ENovember: + { + monthTitle = LoadLocalizedStringLC(KResourceFile, R_MONTHS_TITLE_NOV); + break; + } + case EDecember: + { + monthTitle = LoadLocalizedStringLC(KResourceFile, R_MONTHS_TITLE_DEC); + break; + } + } + + HBufC* title1 = HBufC::NewLC(formatString.Length() + KDateBufferPaddingMax); + TPtr ptr = title1->Des(); + HBufC* title = HBufC::NewLC(formatString.Length() + KDateBufferPaddingMax); + TPtr ptr2 = title->Des(); + TPtr monthPtr = monthTitle->Des(); + StringLoader::Format(ptr, formatString, 0, monthPtr); + StringLoader::Format(ptr2, ptr, KDateFormat1, yearTitle); + + + aResponse->SetTextValueL(attr, *title); + CleanupStack::PopAndDestroy(title); + CleanupStack::PopAndDestroy(title1); + CleanupStack::PopAndDestroy(monthTitle); + CleanupStack::PopAndDestroy(tempTitle); + } + } + } + } + aResponse->Delete(KGlxMediaCollectionInternalUsageCount); + aResponse->Delete(KGlxMediaCollectionInternalStartDate); + aResponse->Delete(KGlxMediaCollectionInternalEndDate); + aResponse->Delete(KGlxMediaItemTypeImage); + aResponse->Delete(KGlxMediaItemTypeVideo); + } + +// ---------------------------------------------------------------------------- +// IsUpdateMessageIgnored +// ---------------------------------------------------------------------------- +// + +TBool CGlxCollectionPluginMonths::IsUpdateMessageIgnored(CMPXMessage& /*aMessage*/) + { + TBool ignore = EFalse; + return ignore; + } + +// ---------------------------------------------------------------------------- +// DefaultFilter +// ---------------------------------------------------------------------------- +// +TGlxFilterProperties CGlxCollectionPluginMonths::DefaultFilter(TInt aLevel) + { + __ASSERT_DEBUG(( (aLevel == KGlxCollectionRootLevel) || + (aLevel == KGlxCollectionMonthsLevel) || (aLevel == KGlxCollectionMonthContentsLevel) + || (aLevel == KGlxCollectionMonthFSLevel)), Panic(EGlxPanicInvalidPathLevel)); + TGlxFilterProperties filterProperties; + filterProperties.iSortOrder = EGlxFilterSortOrderCaptureDate; + filterProperties.iSortDirection = EGlxFilterSortDirectionDescending; + filterProperties.iOrigin = EGlxFilterOriginAll; + switch(aLevel) + { + case KGlxCollectionRootLevel: + case KGlxCollectionMonthsLevel: + case KGlxCollectionMonthFSLevel: + { + filterProperties.iSortDirection = EGlxFilterSortDirectionDescending; + filterProperties.iItemType = EGlxFilterMonth; + break; + } + } + return filterProperties; + } + + + // End of file