# HG changeset patch # User Dremov Kirill (Nokia-D-MSW/Tampere) # Date 1271251004 -10800 # Node ID a0713522ab97f3773da2bf6dd478ee680638509b # Parent 15e4dd19031c281327899a56afa10ddc02201953 Revision: 201013 Kit: 201015 diff -r 15e4dd19031c -r a0713522ab97 contentcontrolsrv/ccsrv/inc/ccsrv.h --- a/contentcontrolsrv/ccsrv/inc/ccsrv.h Wed Mar 31 22:04:35 2010 +0300 +++ b/contentcontrolsrv/ccsrv/inc/ccsrv.h Wed Apr 14 16:16:44 2010 +0300 @@ -156,6 +156,16 @@ }; RArray iProviders; + /** + * Observer list + */ + struct TCcObserver + { + TUint32 iProviderId; + TUint32 iObserver; + }; + RArray iObservers; + }; diff -r 15e4dd19031c -r a0713522ab97 contentcontrolsrv/ccsrv/src/ccsrv.cpp --- a/contentcontrolsrv/ccsrv/src/ccsrv.cpp Wed Mar 31 22:04:35 2010 +0300 +++ b/contentcontrolsrv/ccsrv/src/ccsrv.cpp Wed Apr 14 16:16:44 2010 +0300 @@ -138,6 +138,7 @@ { iSessions.Close(); iProviders.Close(); + iObservers.Close(); } // ----------------------------------------------------------------------------- @@ -185,6 +186,37 @@ // void CCcSrv::DropSession( CCcSrvSession* aSession ) { + // Remove possible provider + for ( TUint32 i = 0; i < iProviders.Count(); i++ ) + { + if ( iProviders[ i ].iSession->Id() == aSession->Id() ) + { + iProviders.Remove( i ); + break; + } + } + // Unregister possible observations and remove observer + for ( TUint32 i = 0; i < iObservers.Count(); ) + { + if ( iObservers[ i ].iObserver == aSession->Id() ) + { + for ( TUint32 j = 0; j < iProviders.Count(); j++ ) + { + if ( iObservers[ i ].iProviderId == iProviders[ j ].iId ) + { + TRAP_IGNORE( iProviders[ j ].iSession-> + UnregisterObserverSessionL( aSession->Id() ) ); + } + } + iObservers.Remove( i ); + } + else + { + // Get next observer + i++; + } + } + // Remove session for ( TUint32 i = 0; i < iSessions.Count(); i++ ) { if ( iSessions[ i ]->Id() == aSession->Id() ) @@ -193,22 +225,7 @@ break; } } - // Unregister possible observations - for ( TUint32 i = 0; i < iProviders.Count(); i++ ) - { - TRAP_IGNORE( iProviders[ i ].iSession-> - UnregisterObserverSessionL( aSession->Id() ) ); - } - // Remove possible provider - for ( TUint32 i = 0; i < iProviders.Count(); i++ ) - { - if ( iProviders[ i ].iId == aSession->Id() ) - { - iProviders.Remove( i ); - break; - } - } if ( iSessions.Count() == 0 ) { // Last session dropped -> stop server @@ -236,6 +253,15 @@ provider.iSession = aSession; iProviders.Append( provider ); + // Register possible active observers + for ( TUint32 i = 0; i < iObservers.Count(); i++ ) + { + if ( iObservers[ i ].iProviderId == aProvider ) + { + provider.iSession->RegisterObserverSessionL( iObservers[ i ].iObserver ); + } + } + } // ----------------------------------------------------------------------------- @@ -246,19 +272,18 @@ TUint32 aProvider, CCcSrvSession* aSession ) { - TBool found( EFalse ); - for ( TUint32 i = 0; i < iProviders.Count() && !found; i++ ) + for ( TUint32 i = 0; i < iProviders.Count(); i++ ) { if ( iProviders[ i ].iId == aProvider ) { - iProviders[ i ].iSession->RegisterObserverSessionL( aSession->Id() ); - found = ETrue; + iProviders[ i ].iSession->RegisterObserverSessionL( aSession->Id() ); + break; } } - if ( !found ) - { - User::Leave( KErrNotFound ); - } + CCcSrv::TCcObserver observer; + observer.iProviderId = aProvider; + observer.iObserver = aSession->Id(); + iObservers.Append( observer ); } // ----------------------------------------------------------------------------- diff -r 15e4dd19031c -r a0713522ab97 contentcontrolsrv/hsccclient/hsccproviderclient/src/hsccproviderclient.cpp --- a/contentcontrolsrv/hsccclient/hsccproviderclient/src/hsccproviderclient.cpp Wed Mar 31 22:04:35 2010 +0300 +++ b/contentcontrolsrv/hsccclient/hsccproviderclient/src/hsccproviderclient.cpp Wed Apr 14 16:16:44 2010 +0300 @@ -275,12 +275,11 @@ // ----------------------------------------------------------------------------- // void CHsCcProviderClient::HandleRegisterObserverNtfL( - TUint32 /* aSender */, + TUint32 aSender, TUint32 /* aReceiver */, CCcSrvMsg& /* aMessage */ ) { - TUint32 observer = iPckgSender(); - iObservers.AppendL( observer ); + iObservers.AppendL( aSender ); } // ----------------------------------------------------------------------------- @@ -288,14 +287,13 @@ // ----------------------------------------------------------------------------- // void CHsCcProviderClient::HandleUnregisterObserverNtfL( - TUint32 /* aSender */, + TUint32 aSender, TUint32 /* aReceiver */, CCcSrvMsg& /* aMessage */ ) { - TUint32 observer = iPckgSender(); for ( TInt i = 0; i < iObservers.Count(); i++ ) { - if ( iObservers[ i ] == observer ) + if ( iObservers[ i ] == aSender ) { iObservers.Remove( i ); break; diff -r 15e4dd19031c -r a0713522ab97 contentcontrolsrv/hscontentinfo/bwins/hscontentinfo.def --- a/contentcontrolsrv/hscontentinfo/bwins/hscontentinfo.def Wed Mar 31 22:04:35 2010 +0300 +++ b/contentcontrolsrv/hscontentinfo/bwins/hscontentinfo.def Wed Apr 14 16:16:44 2010 +0300 @@ -14,33 +14,35 @@ ?SetNameL@CHsContentInfo@@QAEXABVTDesC16@@@Z @ 13 NONAME ; void CHsContentInfo::SetNameL(class TDesC16 const &) ?InternalizeL@CHsContentInfoArray@@QAEXAAVRReadStream@@@Z @ 14 NONAME ; void CHsContentInfoArray::InternalizeL(class RReadStream &) ?Size@CHsContentInfoArray@@QAEHXZ @ 15 NONAME ; int CHsContentInfoArray::Size(void) - ?PublisherId@CHsContentInfo@@QBEABVTDesC16@@XZ @ 16 NONAME ; class TDesC16 const & CHsContentInfo::PublisherId(void) const - ?SetInstallationTime@CHsContentInfo@@QAEXAAVTTime@@@Z @ 17 NONAME ; void CHsContentInfo::SetInstallationTime(class TTime &) - ?SetIsWrt@CHsContentInfo@@QAEXH@Z @ 18 NONAME ; void CHsContentInfo::SetIsWrt(int) - ?SetPublisherUidL@CHsContentInfo@@QAEXABVTDesC8@@@Z @ 19 NONAME ; void CHsContentInfo::SetPublisherUidL(class TDesC8 const &) - ?NewL@CHsContentInfoArray@@SAPAV1@XZ @ 20 NONAME ; class CHsContentInfoArray * CHsContentInfoArray::NewL(void) - ?SetNameL@CHsContentInfo@@QAEXABVTDesC8@@@Z @ 21 NONAME ; void CHsContentInfo::SetNameL(class TDesC8 const &) - ?Name@CHsContentInfo@@QBEABVTDesC16@@XZ @ 22 NONAME ; class TDesC16 const & CHsContentInfo::Name(void) const - ?Type@CHsContentInfo@@QBEABVTDesC8@@XZ @ 23 NONAME ; class TDesC8 const & CHsContentInfo::Type(void) const - ?NewLC@CHsContentInfo@@SAPAV1@XZ @ 24 NONAME ; class CHsContentInfo * CHsContentInfo::NewLC(void) - ?InstallationTime@CHsContentInfo@@QBE?AVTTime@@XZ @ 25 NONAME ; class TTime CHsContentInfo::InstallationTime(void) const - ?NewL@CHsContentInfo@@SAPAV1@AAVRReadStream@@@Z @ 26 NONAME ; class CHsContentInfo * CHsContentInfo::NewL(class RReadStream &) - ?CloneL@CHsContentInfo@@QAEPAV1@XZ @ 27 NONAME ; class CHsContentInfo * CHsContentInfo::CloneL(void) - ?SetCanBeAdded@CHsContentInfo@@QAEXH@Z @ 28 NONAME ; void CHsContentInfo::SetCanBeAdded(int) - ?ExternalizeL@CHsContentInfoArray@@QAEXAAVRWriteStream@@@Z @ 29 NONAME ; void CHsContentInfoArray::ExternalizeL(class RWriteStream &) - ?SetUidL@CHsContentInfo@@QAEXABVTDesC8@@@Z @ 30 NONAME ; void CHsContentInfo::SetUidL(class TDesC8 const &) - ?MaxWidgets@CHsContentInfo@@QBEHXZ @ 31 NONAME ; int CHsContentInfo::MaxWidgets(void) const - ?Uid@CHsContentInfo@@QBEABVTDesC8@@XZ @ 32 NONAME ; class TDesC8 const & CHsContentInfo::Uid(void) const - ?MarshalL@CHsContentInfoArray@@QAEPAVHBufC8@@XZ @ 33 NONAME ; class HBufC8 * CHsContentInfoArray::MarshalL(void) - ?SetPublisherIdL@CHsContentInfo@@QAEXABVTDesC16@@@Z @ 34 NONAME ; void CHsContentInfo::SetPublisherIdL(class TDesC16 const &) - ?InternalizeL@CHsContentInfo@@QAEXAAVRReadStream@@@Z @ 35 NONAME ; void CHsContentInfo::InternalizeL(class RReadStream &) - ?CanBeRemoved@CHsContentInfo@@QBEHXZ @ 36 NONAME ; int CHsContentInfo::CanBeRemoved(void) const - ?SetCanBeRemoved@CHsContentInfo@@QAEXH@Z @ 37 NONAME ; void CHsContentInfo::SetCanBeRemoved(int) - ?SetIconPathL@CHsContentInfo@@QAEXABVTDesC16@@@Z @ 38 NONAME ; void CHsContentInfo::SetIconPathL(class TDesC16 const &) - ?Description@CHsContentInfo@@QBEABVTDesC16@@XZ @ 39 NONAME ; class TDesC16 const & CHsContentInfo::Description(void) const - ?NewL@CHsContentInfo@@SAPAV1@XZ @ 40 NONAME ; class CHsContentInfo * CHsContentInfo::NewL(void) - ?PublisherUid@CHsContentInfo@@QBEABVTDesC8@@XZ @ 41 NONAME ; class TDesC8 const & CHsContentInfo::PublisherUid(void) const - ?NameAs8BitLC@CHsContentInfo@@QBEPAVHBufC8@@XZ @ 42 NONAME ; class HBufC8 * CHsContentInfo::NameAs8BitLC(void) const - ?PluginId@CHsContentInfo@@QBEABVTDesC8@@XZ @ 43 NONAME ; class TDesC8 const & CHsContentInfo::PluginId(void) const - ?NewL@CHsContentInfoArray@@SAPAV1@AAVRReadStream@@@Z @ 44 NONAME ; class CHsContentInfoArray * CHsContentInfoArray::NewL(class RReadStream &) + ?SetIsFull@CHsContentInfo@@QAEXH@Z @ 16 NONAME ; void CHsContentInfo::SetIsFull(int) + ?PublisherId@CHsContentInfo@@QBEABVTDesC16@@XZ @ 17 NONAME ; class TDesC16 const & CHsContentInfo::PublisherId(void) const + ?IsFull@CHsContentInfo@@QBEHXZ @ 18 NONAME ; int CHsContentInfo::IsFull(void) const + ?SetInstallationTime@CHsContentInfo@@QAEXAAVTTime@@@Z @ 19 NONAME ; void CHsContentInfo::SetInstallationTime(class TTime &) + ?SetIsWrt@CHsContentInfo@@QAEXH@Z @ 20 NONAME ; void CHsContentInfo::SetIsWrt(int) + ?SetPublisherUidL@CHsContentInfo@@QAEXABVTDesC8@@@Z @ 21 NONAME ; void CHsContentInfo::SetPublisherUidL(class TDesC8 const &) + ?NewL@CHsContentInfoArray@@SAPAV1@XZ @ 22 NONAME ; class CHsContentInfoArray * CHsContentInfoArray::NewL(void) + ?SetNameL@CHsContentInfo@@QAEXABVTDesC8@@@Z @ 23 NONAME ; void CHsContentInfo::SetNameL(class TDesC8 const &) + ?Name@CHsContentInfo@@QBEABVTDesC16@@XZ @ 24 NONAME ; class TDesC16 const & CHsContentInfo::Name(void) const + ?Type@CHsContentInfo@@QBEABVTDesC8@@XZ @ 25 NONAME ; class TDesC8 const & CHsContentInfo::Type(void) const + ?NewLC@CHsContentInfo@@SAPAV1@XZ @ 26 NONAME ; class CHsContentInfo * CHsContentInfo::NewLC(void) + ?InstallationTime@CHsContentInfo@@QBE?AVTTime@@XZ @ 27 NONAME ; class TTime CHsContentInfo::InstallationTime(void) const + ?NewL@CHsContentInfo@@SAPAV1@AAVRReadStream@@@Z @ 28 NONAME ; class CHsContentInfo * CHsContentInfo::NewL(class RReadStream &) + ?CloneL@CHsContentInfo@@QAEPAV1@XZ @ 29 NONAME ; class CHsContentInfo * CHsContentInfo::CloneL(void) + ?SetCanBeAdded@CHsContentInfo@@QAEXH@Z @ 30 NONAME ; void CHsContentInfo::SetCanBeAdded(int) + ?ExternalizeL@CHsContentInfoArray@@QAEXAAVRWriteStream@@@Z @ 31 NONAME ; void CHsContentInfoArray::ExternalizeL(class RWriteStream &) + ?SetUidL@CHsContentInfo@@QAEXABVTDesC8@@@Z @ 32 NONAME ; void CHsContentInfo::SetUidL(class TDesC8 const &) + ?MaxWidgets@CHsContentInfo@@QBEHXZ @ 33 NONAME ; int CHsContentInfo::MaxWidgets(void) const + ?Uid@CHsContentInfo@@QBEABVTDesC8@@XZ @ 34 NONAME ; class TDesC8 const & CHsContentInfo::Uid(void) const + ?MarshalL@CHsContentInfoArray@@QAEPAVHBufC8@@XZ @ 35 NONAME ; class HBufC8 * CHsContentInfoArray::MarshalL(void) + ?SetPublisherIdL@CHsContentInfo@@QAEXABVTDesC16@@@Z @ 36 NONAME ; void CHsContentInfo::SetPublisherIdL(class TDesC16 const &) + ?InternalizeL@CHsContentInfo@@QAEXAAVRReadStream@@@Z @ 37 NONAME ; void CHsContentInfo::InternalizeL(class RReadStream &) + ?CanBeRemoved@CHsContentInfo@@QBEHXZ @ 38 NONAME ; int CHsContentInfo::CanBeRemoved(void) const + ?SetCanBeRemoved@CHsContentInfo@@QAEXH@Z @ 39 NONAME ; void CHsContentInfo::SetCanBeRemoved(int) + ?SetIconPathL@CHsContentInfo@@QAEXABVTDesC16@@@Z @ 40 NONAME ; void CHsContentInfo::SetIconPathL(class TDesC16 const &) + ?Description@CHsContentInfo@@QBEABVTDesC16@@XZ @ 41 NONAME ; class TDesC16 const & CHsContentInfo::Description(void) const + ?NewL@CHsContentInfo@@SAPAV1@XZ @ 42 NONAME ; class CHsContentInfo * CHsContentInfo::NewL(void) + ?PublisherUid@CHsContentInfo@@QBEABVTDesC8@@XZ @ 43 NONAME ; class TDesC8 const & CHsContentInfo::PublisherUid(void) const + ?NameAs8BitLC@CHsContentInfo@@QBEPAVHBufC8@@XZ @ 44 NONAME ; class HBufC8 * CHsContentInfo::NameAs8BitLC(void) const + ?PluginId@CHsContentInfo@@QBEABVTDesC8@@XZ @ 45 NONAME ; class TDesC8 const & CHsContentInfo::PluginId(void) const + ?NewL@CHsContentInfoArray@@SAPAV1@AAVRReadStream@@@Z @ 46 NONAME ; class CHsContentInfoArray * CHsContentInfoArray::NewL(class RReadStream &) diff -r 15e4dd19031c -r a0713522ab97 contentcontrolsrv/hscontentinfo/eabi/hscontentinfo.def --- a/contentcontrolsrv/hscontentinfo/eabi/hscontentinfo.def Wed Mar 31 22:04:35 2010 +0300 +++ b/contentcontrolsrv/hscontentinfo/eabi/hscontentinfo.def Wed Apr 14 16:16:44 2010 +0300 @@ -22,27 +22,29 @@ _ZN14CHsContentInfo8SetNameLERK6TDesC8 @ 21 NONAME _ZN14CHsContentInfo8SetNameLERK7TDesC16 @ 22 NONAME _ZN14CHsContentInfo8SetTypeLERK6TDesC8 @ 23 NONAME - _ZN19CHsContentInfoArray12ExternalizeLER12RWriteStream @ 24 NONAME - _ZN19CHsContentInfoArray12InternalizeLER11RReadStream @ 25 NONAME - _ZN19CHsContentInfoArray4NewLER11RReadStream @ 26 NONAME - _ZN19CHsContentInfoArray4NewLEv @ 27 NONAME - _ZN19CHsContentInfoArray4SizeEv @ 28 NONAME - _ZN19CHsContentInfoArray5ArrayEv @ 29 NONAME - _ZN19CHsContentInfoArray8MarshalLEv @ 30 NONAME - _ZNK14CHsContentInfo10CanBeAddedEv @ 31 NONAME - _ZNK14CHsContentInfo10MaxWidgetsEv @ 32 NONAME - _ZNK14CHsContentInfo11DescriptionEv @ 33 NONAME - _ZNK14CHsContentInfo11PublisherIdEv @ 34 NONAME - _ZNK14CHsContentInfo12CanBeRemovedEv @ 35 NONAME - _ZNK14CHsContentInfo12NameAs8BitLCEv @ 36 NONAME - _ZNK14CHsContentInfo12PublisherUidEv @ 37 NONAME - _ZNK14CHsContentInfo16InstallationTimeEv @ 38 NONAME - _ZNK14CHsContentInfo3UidEv @ 39 NONAME - _ZNK14CHsContentInfo4NameEv @ 40 NONAME - _ZNK14CHsContentInfo4TypeEv @ 41 NONAME - _ZNK14CHsContentInfo5IsWrtEv @ 42 NONAME - _ZNK14CHsContentInfo8IconPathEv @ 43 NONAME - _ZNK14CHsContentInfo8PluginIdEv @ 44 NONAME - _ZTI19CHsContentInfoArray @ 45 NONAME - _ZTV19CHsContentInfoArray @ 46 NONAME + _ZN14CHsContentInfo9SetIsFullEi @ 24 NONAME + _ZN19CHsContentInfoArray12ExternalizeLER12RWriteStream @ 25 NONAME + _ZN19CHsContentInfoArray12InternalizeLER11RReadStream @ 26 NONAME + _ZN19CHsContentInfoArray4NewLER11RReadStream @ 27 NONAME + _ZN19CHsContentInfoArray4NewLEv @ 28 NONAME + _ZN19CHsContentInfoArray4SizeEv @ 29 NONAME + _ZN19CHsContentInfoArray5ArrayEv @ 30 NONAME + _ZN19CHsContentInfoArray8MarshalLEv @ 31 NONAME + _ZNK14CHsContentInfo10CanBeAddedEv @ 32 NONAME + _ZNK14CHsContentInfo10MaxWidgetsEv @ 33 NONAME + _ZNK14CHsContentInfo11DescriptionEv @ 34 NONAME + _ZNK14CHsContentInfo11PublisherIdEv @ 35 NONAME + _ZNK14CHsContentInfo12CanBeRemovedEv @ 36 NONAME + _ZNK14CHsContentInfo12NameAs8BitLCEv @ 37 NONAME + _ZNK14CHsContentInfo12PublisherUidEv @ 38 NONAME + _ZNK14CHsContentInfo16InstallationTimeEv @ 39 NONAME + _ZNK14CHsContentInfo3UidEv @ 40 NONAME + _ZNK14CHsContentInfo4NameEv @ 41 NONAME + _ZNK14CHsContentInfo4TypeEv @ 42 NONAME + _ZNK14CHsContentInfo5IsWrtEv @ 43 NONAME + _ZNK14CHsContentInfo6IsFullEv @ 44 NONAME + _ZNK14CHsContentInfo8IconPathEv @ 45 NONAME + _ZNK14CHsContentInfo8PluginIdEv @ 46 NONAME + _ZTI19CHsContentInfoArray @ 47 NONAME + _ZTV19CHsContentInfoArray @ 48 NONAME diff -r 15e4dd19031c -r a0713522ab97 contentcontrolsrv/hscontentinfo/src/hscontentinfo.cpp --- a/contentcontrolsrv/hscontentinfo/src/hscontentinfo.cpp Wed Mar 31 22:04:35 2010 +0300 +++ b/contentcontrolsrv/hscontentinfo/src/hscontentinfo.cpp Wed Apr 14 16:16:44 2010 +0300 @@ -320,6 +320,9 @@ // externalise iIsWrt aStream.WriteInt16L( iIsWrt ); + + // externalise iIsFull + aStream.WriteInt16L( iIsFull ); } // ----------------------------------------------------------------------- @@ -498,6 +501,9 @@ // internalize iIsWrt iIsWrt = aStream.ReadInt16L(); + + // internalize iIsFull + iIsFull = aStream.ReadInt16L(); } // ----------------------------------------------------------------------- @@ -521,6 +527,7 @@ size = size + sizeof( TUint32 ); // installation time high size = size + PublisherUid().Size();// publisher uid size = size + sizeof( TInt16 ); // is wrt + size = size + sizeof( TInt16 ); // is full return size; } @@ -556,6 +563,24 @@ } // ----------------------------------------------------------------------- +// CHsContentInfo::IsFull() +// ----------------------------------------------------------------------- +// +EXPORT_C TBool CHsContentInfo::IsFull() const + { + return iIsFull; + } + +// ----------------------------------------------------------------------- +// CHsContentInfo::SetIsFull() +// ----------------------------------------------------------------------- +// +EXPORT_C void CHsContentInfo::SetIsFull( TBool aIsFull ) + { + iIsFull = aIsFull; + } + +// ----------------------------------------------------------------------- // CHsContentInfo::IsWrt() // ----------------------------------------------------------------------- // diff -r 15e4dd19031c -r a0713522ab97 contentpublishingsrv/contentpublishingserver/cpserver/src/cpactiondatacache.cpp --- a/contentpublishingsrv/contentpublishingserver/cpserver/src/cpactiondatacache.cpp Wed Mar 31 22:04:35 2010 +0300 +++ b/contentpublishingsrv/contentpublishingserver/cpserver/src/cpactiondatacache.cpp Wed Apr 14 16:16:44 2010 +0300 @@ -80,7 +80,10 @@ // CCPActionDataCache::~CCPActionDataCache() { - iInternalList->Close(); + if (iInternalList) + { + iInternalList->Close(); + } } // --------------------------------------------------------------------------- diff -r 15e4dd19031c -r a0713522ab97 contentpublishingsrv/contentpublishingserver/cpserver/src/cpserverdatamanager.cpp --- a/contentpublishingsrv/contentpublishingserver/cpserver/src/cpserverdatamanager.cpp Wed Mar 31 22:04:35 2010 +0300 +++ b/contentpublishingsrv/contentpublishingserver/cpserver/src/cpserverdatamanager.cpp Wed Apr 14 16:16:44 2010 +0300 @@ -491,11 +491,11 @@ CLiwDefaultList* aChangeInfoList ) { TLiwVariant resultVar = aParam->Value(); + resultVar.PushL(); if ( resultVar.TypeId() == EVariantTypeMap ) { for ( TInt i = 0; iCount(); i++ ) { - resultVar.PushL(); CLiwDefaultMap* changeInfoMap = CLiwDefaultMap::NewLC(); CopyVariantL(KId, resultVar.AsMap(), changeInfoMap ); @@ -516,9 +516,9 @@ aChangeInfoList->AppendL( TLiwVariant( changeInfoMap ) ); CleanupStack::PopAndDestroy( changeInfoMap ); - CleanupStack::PopAndDestroy( &resultVar ); } } + CleanupStack::PopAndDestroy( &resultVar ); } diff -r 15e4dd19031c -r a0713522ab97 contentpublishingsrv/contentpublishingserver/cpserver/src/cpserversession.cpp --- a/contentpublishingsrv/contentpublishingserver/cpserver/src/cpserversession.cpp Wed Mar 31 22:04:35 2010 +0300 +++ b/contentpublishingsrv/contentpublishingserver/cpserver/src/cpserversession.cpp Wed Apr 14 16:16:44 2010 +0300 @@ -340,7 +340,7 @@ cpMaps->AtL(i, mapVariant); const CCPLiwMap* map = static_cast (mapVariant.AsMap()); - ExecuteActionL(map, ETrue, options); + TRAP_IGNORE(ExecuteActionL(map, ETrue, options)); CleanupStack::PopAndDestroy(&mapVariant); } diff -r 15e4dd19031c -r a0713522ab97 homescreenpluginsrv/hspsmanager/inc/hspsinstallationhandler.h --- a/homescreenpluginsrv/hspsmanager/inc/hspsinstallationhandler.h Wed Mar 31 22:04:35 2010 +0300 +++ b/homescreenpluginsrv/hspsmanager/inc/hspsinstallationhandler.h Wed Apr 14 16:16:44 2010 +0300 @@ -604,18 +604,20 @@ const TDesC& aPath, const TLanguage aLanguage ); + /** + * Finds all language specific folders and resources + * under the interface path in ROM or UDA drive. + * @since S60 5.0 + * @path aPath Xuikon path + */ void AddInterfaceResourcesV2L( const TDesC& aPath ); - - void AddLocalizedResourcesV2L( - const TDesC& aPath, - const TLanguage aLanguage ); /** * Validates manifest contents and installs files into the Plug-in Repository. * @since S60 5.0 */ - void ValidateL(); + void FinalizeParsingL(); /** * Validates provided UID value. diff -r 15e4dd19031c -r a0713522ab97 homescreenpluginsrv/hspsmanager/inc/hspsrominstaller.h --- a/homescreenpluginsrv/hspsmanager/inc/hspsrominstaller.h Wed Mar 31 22:04:35 2010 +0300 +++ b/homescreenpluginsrv/hspsmanager/inc/hspsrominstaller.h Wed Apr 14 16:16:44 2010 +0300 @@ -78,9 +78,15 @@ public: // New functions + /** - * InstallTheme - * Synchronous service for installing configurations from provided manifest files. + * Installs all plugin configurations which can be found from ROM and C drives (UDA). + * @since S60 5.2 + */ + void InstallL(); + + /** + * Installs a plugin configuration from the provided manifest file (synchronous). * @since S60 5.0 * @param aFileName is name of the manifest file to be installed. * @return ThspsServiceCompletedMessage error code @@ -89,26 +95,16 @@ const TDesC& aFileName ); /** - * ReinstallThemeL. - * Synchronous service for re-installing corrupted application configurations - * from an import (imports\app_*.dat file). + * Re-installs an application plugin configuration (synchronous). * @since S60 5.0 * @param aAppUid is UID of an application - * @param aConfigurationUid is UID of a HSPS configuration + * @param aConfigurationUid is UID of an application plugin configuration * @return ThspsServiceCompletedMessage error code */ ThspsServiceCompletedMessage ReinstallThemeL( const TInt aAppUid, const TInt aConfigurationUid ); - - /** - * Retrieves manifest files from both Z and C drives located in - * \\private\200159C0\install\ paths. - * @since S60 5.0 - */ - void FindInstallationFilesL( - RPointerArray& aFolders ); - + #ifdef HSPS_LOG_ACTIVE /** * Set log bus. @@ -161,6 +157,14 @@ */ void ConstructL(); + /** + * Retrieves manifest files from both Z and C drives located in + * \\private\200159C0\install\ paths. + * @since S60 5.0 + */ + void FindInstallationFilesL( + RPointerArray& aFolders ); + void DoFindInstallationFilesL( RPointerArray& aFolders, const TDesC& aPath ); diff -r 15e4dd19031c -r a0713522ab97 homescreenpluginsrv/hspsmanager/inc/hspsserverutil.h --- a/homescreenpluginsrv/hspsmanager/inc/hspsserverutil.h Wed Mar 31 22:04:35 2010 +0300 +++ b/homescreenpluginsrv/hspsmanager/inc/hspsserverutil.h Wed Apr 14 16:16:44 2010 +0300 @@ -557,13 +557,29 @@ * @param aSourcePath Empty or location of the source file * @param aUpdatedDeclaration Empty or declaration which points to the target location */ - static void hspsServerUtil::PopulateLogoPathsL( + static void PopulateLogoPathsL( const TDesC& aLogoDeclaration, const TUint aAppUid, RBuf& aTargetPath, RBuf& aSourcePath, RBuf& aUpdatedDeclaration ); + /** + * Finds ecplised files from the provided path in given drive order. + * @since S60 5.2 + * @param aFs is a reference to open file server session handle + * @param aDriveArray An array of drives in search order + * @param aPath Relative path to be found + * @param aFolders Search results or empty + * @param aRecursive True if files should be found from any sudirectories + */ + static void FindFilesRecursivelyL( + RFs& aFs, + const RArray& aDriveArray, + const TDesC& aPath, + RPointerArray& aFolders, + TBool aRecursive = EFalse ); + private: /** * Internal method. Do not call directly! diff -r 15e4dd19031c -r a0713522ab97 homescreenpluginsrv/hspsmanager/src/hspsinstallationhandler.cpp --- a/homescreenpluginsrv/hspsmanager/src/hspsinstallationhandler.cpp Wed Mar 31 22:04:35 2010 +0300 +++ b/homescreenpluginsrv/hspsmanager/src/hspsinstallationhandler.cpp Wed Apr 14 16:16:44 2010 +0300 @@ -58,7 +58,7 @@ _LIT(KPathDelim, "\\"); _LIT(KPrivateInstall, "\\private\\200159c0\\install\\"); _LIT(KHsps, "\\hsps\\" ); -_LIT(KXuikon, "xuikon\\" ); +_LIT(KXuikon, "xuikon" ); const TInt KMaxMediaTypeLength = 100; @@ -462,7 +462,7 @@ } // Check the parsed input - ValidateL(); + FinalizeParsingL(); } // ----------------------------------------------------------------------------- @@ -482,7 +482,8 @@ { pathParser.PopDir(); // pop "hsps" folder path.Copy( pathParser.FullName() ); - path.Append( KXuikon ); + path.Append( KXuikon ); + path.Append( KPathDelim ); } return path; } @@ -491,7 +492,7 @@ // ChspsInstallationHandler::ValidateL() // ----------------------------------------------------------------------------- // -void ChspsInstallationHandler::ValidateL() +void ChspsInstallationHandler::FinalizeParsingL() { // Check resources TFileName interfacePath( GetInterfacePath() ); @@ -2273,105 +2274,114 @@ CleanupStack::PopAndDestroy( dtdPath ); } +// ----------------------------------------------------------------------------- +// ChspsInstallationHandler::AddInterfaceResourcesV2L +// ----------------------------------------------------------------------------- +// void ChspsInstallationHandler::AddInterfaceResourcesV2L( const TDesC& aPath ) - { - // Find all locale specific subfolders - TFindFile fileFinder( iFsSession ); - _LIT( KFilter, "*" ); - CDir* fileList( NULL ); - fileFinder.FindWildByDir( KFilter, aPath, fileList ); - if ( fileList ) - { - CleanupStack::PushL( fileList ); - TFileName localePath; - for( TInt i = 0; i < fileList->Count(); i++ ) + { + RArray driveArray; + CleanupClosePushL( driveArray ); + + // Set search order for eclipsing, only the ROM and UDA drives should be scanned + driveArray.Append( EDriveC ); + driveArray.Append( EDriveZ ); + + // Find all unique locale entries under the Xuikon folders in either drive + RPointerArray locales; + CleanupClosePushL( locales ); + hspsServerUtil::FindFilesRecursivelyL( + iFsSession, + driveArray, + aPath, + locales, + EFalse ); + + // Find all file entries under the Xuikon folders in either drive + RPointerArray folders; + CleanupClosePushL( folders ); + hspsServerUtil::FindFilesRecursivelyL( + iFsSession, + driveArray, + aPath, + folders, + ETrue ); + + // Loop language folders + for(TInt localeIndex=0; localeIndex < locales.Count(); localeIndex++ ) + { + TParsePtrC localeParser( locales[ localeIndex ]->Des() ); + TPath localePath = localeParser.Path(); + + TPath tempPath = locales[ localeIndex ]->Des(); + if( tempPath.Right( KPathDelim().Length() ).Compare( KPathDelim() ) == 0 ) { - const TEntry& entry = (*fileList)[i]; - if ( entry.IsDir() ) + tempPath.Delete( tempPath.Length() - KPathDelim().Length(), KPathDelim().Length() ); + } + TParsePtrC tempParser( tempPath ); + TFileName localeName = tempParser.Name(); + TInt languageIndex = 0; + TLex lex( localeName ); + if( lex.Val( languageIndex ) != KErrNone ) + { + continue; + } + if( languageIndex < ELangTest ) + { + User::Leave( KErrIllegalInstallation ); + } + + // If we found the first language specification + if ( !iDefaultSpecificationSet ) + { + // Assume this is the default language shown when device language is not supported + iDefaultSpecification = (TLanguage)languageIndex; + iDefaultSpecificationSet = ETrue; + } + + // Loop file resources which should be found from either drive + ChspsResource* resource = NULL; + for( TInt resourceIndex=0; resourceIndex < iTempLocalizedResourceList->Count(); resourceIndex++ ) + { + resource = iTempLocalizedResourceList->At( resourceIndex ); + TFileName file; + + for( TInt folderIndex=0; folderIndex < folders.Count(); folderIndex++ ) { - TInt languageIndex = 0; - TLex lex( entry.iName ); - TInt error = lex.Val( languageIndex ); - - // See enumarations from e32lang.h - if( !error && languageIndex >= ELangTest ) - { - // If we found the first language specification - if ( !iDefaultSpecificationSet ) + TParsePtrC folderParser( folders[ folderIndex ]->Des() ); + TPath folderPath = folderParser.Path(); + TFileName name = folderParser.Name(); + + if( localePath.CompareF( folderPath ) == 0 ) + { + TFileName fixedName = hspsServerUtil::GetFixedOdtName( folderParser.NameAndExt() ); + if( fixedName.CompareF( resource->FileName() ) == 0 ) { - // Assume this is the default language shown incase - // there is no locale for the active UI language - iDefaultSpecification = (TLanguage)languageIndex; - iDefaultSpecificationSet = ETrue; + file = folders[ folderIndex ]->Des(); + break; } - - // Setup a path to the subdirectory - localePath.Copy( aPath ); - localePath.Append( entry.iName ); - localePath.Append( KPathDelim ); - - // Find localized resources - AddLocalizedResourcesV2L( - localePath, - (TLanguage)languageIndex ); - } + } } - - } - CleanupStack::PopAndDestroy( fileList ); - fileList = NULL; - } - - // If no DTD files were found - if ( iDefaultSpecification != ELangTest || !iDefaultSpecificationSet ) - { - // Halt installation, test language was not found - User::Leave( KErrNotFound ); - } - } - -void ChspsInstallationHandler::AddLocalizedResourcesV2L( - const TDesC& aPath, - const TLanguage aLanguage ) - { - TFindFile fileFinder( iFsSession ); - _LIT( KFilter, "*" ); - CDir* fileList( NULL ); - fileFinder.FindWildByDir( KFilter, aPath, fileList ); - if ( fileList ) - { - CleanupStack::PushL( fileList ); - - TFileName localePath; - ChspsResource* resource = NULL; - for( TInt i = 0; i < fileList->Count(); i++ ) - { - const TEntry& entry = (*fileList)[i]; - if ( !entry.IsDir() ) - { - TParsePtrC parserPtr( entry.iName ); - TFileName modName = hspsServerUtil::GetFixedOdtName( entry.iName ); - - TBool addingOk = EFalse; - for( TInt resourceIndex=0; resourceIndex < iTempLocalizedResourceList->Count(); resourceIndex++ ) - { - resource = iTempLocalizedResourceList->At( resourceIndex ); - if( modName.CompareF( resource->FileName() ) == 0 ) + + if( file.Length() ) + { + TBool duplicate = EFalse; + for( TInt i=0; i< iResourceList->Count(); i++ ) + { + ChspsResource* r = iResourceList->At(i); + if( r->Language() == languageIndex + && r->FileName().CompareF( file ) == 0 ) { - addingOk = ETrue; + duplicate = ETrue; break; } } - if ( addingOk ) - { - HBufC* resourcePath = HBufC::NewLC( aPath.Length() + entry.iName.Length() ); - resourcePath->Des().Copy( aPath ); - resourcePath->Des().Append( entry.iName ); - + if( !duplicate ) + { + TPtrC8 mimeType; - TPtrC8 tag; - + TPtrC8 tag; HBufC8* tagBuf8 = NULL; if ( resource->Tags().Length() ) { @@ -2379,12 +2389,12 @@ tagBuf8->Des().Copy( resource->Tags() ); tag.Set( tagBuf8->Des() ); } - + // Add localized files into the resource array AddResourceL( *iResourceList, - *resourcePath, - aLanguage, + file, + (TLanguage)languageIndex, EResourceOther, mimeType, tag ); @@ -2393,16 +2403,24 @@ { CleanupStack::PopAndDestroy( tagBuf8 ); } - CleanupStack::PopAndDestroy( resourcePath ); - } + + } } } - - CleanupStack::PopAndDestroy( fileList ); - fileList = NULL; - } - } + } + + folders.ResetAndDestroy(); + locales.ResetAndDestroy(); + CleanupStack::PopAndDestroy( 3, &driveArray ); // driveArray, locales, folders, + + if ( iDefaultSpecification != ELangTest || !iDefaultSpecificationSet ) + { + // Halt installation, test language was not found + User::Leave( KErrNotFound ); + } + } + // ----------------------------------------------------------------------------- // Finds locale specific subdirectories and resources and appends those // into the resource array diff -r 15e4dd19031c -r a0713522ab97 homescreenpluginsrv/hspsmanager/src/hspsmaintenancehandler.cpp --- a/homescreenpluginsrv/hspsmanager/src/hspsmaintenancehandler.cpp Wed Mar 31 22:04:35 2010 +0300 +++ b/homescreenpluginsrv/hspsmanager/src/hspsmaintenancehandler.cpp Wed Apr 14 16:16:44 2010 +0300 @@ -1042,7 +1042,7 @@ CleanupStack::PushL( pluginIter ); ChspsDomNode* pluginNode = pluginIter->First(); TBool steppingtoConfNode(EFalse); - while(pluginNode && !steppingtoConfNode) + while( pluginNode && !steppingtoConfNode ) { const TDesC8& pluginNodeName = pluginNode->Name(); @@ -1057,10 +1057,18 @@ } CleanupStack::PopAndDestroy( pluginIter ); - // Copy the plugin configuration to the main document. - ChspsDomNode* rootCopy = pluginNode->CloneL( node->StringPool()); - rootCopy->SetParent( node ); - node->AddChildL( rootCopy ); + if ( pluginNode ) + { + // Copy the plugin configuration to the main document. + ChspsDomNode* rootCopy = pluginNode->CloneL( node->StringPool()); + rootCopy->SetParent( node ); + node->AddChildL( rootCopy ); + } + else + { + // configuration is corrupted + User::Leave( KErrCorrupt ); + } } CleanupStack::PopAndDestroy( pluginOdt ); diff -r 15e4dd19031c -r a0713522ab97 homescreenpluginsrv/hspsmanager/src/hspsrominstaller.cpp --- a/homescreenpluginsrv/hspsmanager/src/hspsrominstaller.cpp Wed Mar 31 22:04:35 2010 +0300 +++ b/homescreenpluginsrv/hspsmanager/src/hspsrominstaller.cpp Wed Apr 14 16:16:44 2010 +0300 @@ -105,6 +105,43 @@ } // ----------------------------------------------------------------------------- +// ChspsRomInstaller::InstallL() +// ----------------------------------------------------------------------------- +// +void ChspsRomInstaller::InstallL() + { + RPointerArray pluginFolders; + CleanupClosePushL( pluginFolders ); + + // Find UDA and ROM widgets to be installed + FindInstallationFilesL( pluginFolders ); + + // Install the manifest files + for( TInt index=0; index < pluginFolders.Count(); index++ ) + { + TPtrC namePtr( pluginFolders[index]->Des() ); + + // Synchronous method + ThspsServiceCompletedMessage ret = EhspsInstallThemeFailed; + TRAP_IGNORE( ret = InstallThemeL( namePtr ) ); + if ( ret != EhspsInstallThemeSuccess ) + { +// User::Leave( KErrAbort ); + } + } + + if ( pluginFolders.Count() == 0 ) + { + // Mandatory plugins were missing + User::Leave( KErrCorrupt ); + } + + pluginFolders.ResetAndDestroy(); + CleanupStack::PopAndDestroy( 1, &pluginFolders ); + } + + +// ----------------------------------------------------------------------------- // ChspsRomInstaller::FindInstallationFilesL() // ----------------------------------------------------------------------------- // @@ -160,6 +197,11 @@ manifest.Append( KBackslash ); manifest.Append( KManifest ); + if( !BaflUtils::FileExists( iFsSession, manifest ) ) + { + continue; + } + // Check for duplicates TBool isShadowed = EFalse; TParsePtrC manifestPtr( manifest ); @@ -254,7 +296,9 @@ // Start installation by reading the manifest file iRet = iInstallationHandler->hspsInstallTheme( aFileName, iHeaderData ); if ( iRet == EhspsInstallThemeSuccess && !IsActive() ) - { + { + iRet = EhspsInstallThemeFailed; + // Continue with remaining installation phases SetActive(); iInstallationHandler->hspsInstallNextPhaseL( iHeaderData, iStatus ); @@ -332,6 +376,7 @@ // TInt ChspsRomInstaller::RunError( TInt /*aError*/ ) { + iRet = EhspsInstallThemeFailed; // Called when error occurred in asynchronous request CActiveScheduler::Stop(); return KErrNone; diff -r 15e4dd19031c -r a0713522ab97 homescreenpluginsrv/hspsmanager/src/hspsserverutil.cpp --- a/homescreenpluginsrv/hspsmanager/src/hspsserverutil.cpp Wed Mar 31 22:04:35 2010 +0300 +++ b/homescreenpluginsrv/hspsmanager/src/hspsserverutil.cpp Wed Apr 14 16:16:44 2010 +0300 @@ -1944,6 +1944,76 @@ } // ----------------------------------------------------------------------------- +// hspsServerUtil::FindFilesRecursivelyL +// ----------------------------------------------------------------------------- +void hspsServerUtil::FindFilesRecursivelyL( + RFs& aFs, + const RArray& aDriveArray, + const TDesC& aPath, + RPointerArray& aFolders, + TBool aRecursive ) + { + TParsePtrC parser( aPath ); + + TFindFile fileFinder( aFs ); + fileFinder.SetFindMask( KDriveAttExclude|KDriveAttRemovable|KDriveAttRemote|KDriveAttSubsted ); + + _LIT(KMaskFile, "*"); + for( TInt driveIndex=0; driveIndex < aDriveArray.Count(); driveIndex++ ) + { + TChar driveChar; + User::LeaveIfError( RFs::DriveToChar( aDriveArray[driveIndex], driveChar ) ); + TBuf16<2> driveBuf(2); + driveBuf[0] = TUint( driveChar ); + driveBuf[1] = TUint( TChar(':') ); + + TPath path; + path.Copy( driveBuf ); + path.Append( parser.Path() ); + + CDir* dirList( NULL ); + fileFinder.FindWildByDir( KMaskFile, path, dirList ); + if ( dirList ) + { + CleanupStack::PushL( dirList ); + + const TInt count = dirList->Count(); + for( TInt entryIndex = 0; entryIndex < count; entryIndex++ ) + { + const TEntry& entry = (*dirList)[ entryIndex ]; + + TFileName file( path ); + file.Append( entry.iName ); + if( entry.IsDir() ) + { + file.Append( KDoubleBackSlash ); + } + + if( !BaflUtils::FileExists( aFs, file ) ) + { + continue; + } + if( entry.IsDir() && aRecursive ) + { + FindFilesRecursivelyL( aFs, aDriveArray, file, aFolders ); + } + else + { + HBufC* nameBuf = file.AllocLC(); + aFolders.AppendL( nameBuf ); + CleanupStack::Pop( nameBuf ); + } + } + + CleanupStack::PopAndDestroy( dirList ); + dirList = 0; + } // dirlist + + } // driveIndex + } + + +// ----------------------------------------------------------------------------- // hspsServerUtil::hspsServerUtil // ----------------------------------------------------------------------------- // diff -r 15e4dd19031c -r a0713522ab97 homescreenpluginsrv/hspsmanager/src/hspsthemeserver.cpp --- a/homescreenpluginsrv/hspsmanager/src/hspsthemeserver.cpp Wed Mar 31 22:04:35 2010 +0300 +++ b/homescreenpluginsrv/hspsmanager/src/hspsthemeserver.cpp Wed Apr 14 16:16:44 2010 +0300 @@ -2778,44 +2778,8 @@ iRomInstaller->SetLogBus( iLogBus ); #endif - RPointerArray pluginFolders; - CleanupClosePushL( pluginFolders ); - - // Find UDA and ROM widgets to be installed - iRomInstaller->FindInstallationFilesL( pluginFolders ); - - // Install the manifest files - for( TInt index=0; index < pluginFolders.Count(); index++ ) - { - TPtrC namePtr( pluginFolders[index]->Des() ); -#ifdef HSPS_LOG_ACTIVE - iLogBus->LogText( _L( "ChspsThemeServer::InstallWidgetsL(): - installing configuration: %S" ), &namePtr ); -#endif - - // Synchronous method - ThspsServiceCompletedMessage ret = iRomInstaller->InstallThemeL( namePtr ); - if ( ret != EhspsInstallThemeSuccess ) - { -#ifdef HSPS_LOG_ACTIVE - iLogBus->LogText( _L( "ChspsThemeServer::InstallWidgetsL(): - installation failed: %S" ), &namePtr ); -#endif -// User::Leave( KErrAbort ); - } - } - - if ( pluginFolders.Count() == 0 ) - { -#ifdef HSPS_LOG_ACTIVE - iLogBus->LogText( _L( "ChspsThemeServer::InstallWidgetsL(): - mandatory plugins were not found!" ) ); -#endif - // Mandatory plugins were missing - User::Leave( KErrCorrupt ); - } - - pluginFolders.ResetAndDestroy(); - CleanupStack::PopAndDestroy( 1, &pluginFolders ); - - // The ROM installer is not needed anymore and therefore it can be released + iRomInstaller->InstallL(); + delete iRomInstaller; iRomInstaller = 0; diff -r 15e4dd19031c -r a0713522ab97 homescreensrv_plat/ai_content_model_api/group/bld.inf --- a/homescreensrv_plat/ai_content_model_api/group/bld.inf Wed Mar 31 22:04:35 2010 +0300 +++ b/homescreensrv_plat/ai_content_model_api/group/bld.inf Wed Apr 14 16:16:44 2010 +0300 @@ -28,8 +28,3 @@ ../inc/aicontentobserver.h MW_LAYER_PLATFORM_EXPORT_PATH(aicontentobserver.h) ../inc/aicontentmodel.h MW_LAYER_PLATFORM_EXPORT_PATH(aicontentmodel.h) ../inc/aicontentrequest.h MW_LAYER_PLATFORM_EXPORT_PATH(aicontentrequest.h) - -// Deprecated -../inc/aipropertyextension.h MW_LAYER_PLATFORM_EXPORT_PATH(aipropertyextension.h) -../inc/aipropertyextension.inl MW_LAYER_PLATFORM_EXPORT_PATH(aipropertyextension.inl) -../inc/aieventhandlerextension.h MW_LAYER_PLATFORM_EXPORT_PATH(aieventhandlerextension.h) diff -r 15e4dd19031c -r a0713522ab97 homescreensrv_plat/ai_content_model_api/inc/aieventhandlerextension.h --- a/homescreensrv_plat/ai_content_model_api/inc/aieventhandlerextension.h Wed Mar 31 22:04:35 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,75 +0,0 @@ -/* -* Copyright (c) 2005-2006 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: Event handling extension for the CAiContentPublisher interface. -* -*/ - - -#ifndef M_AIEVENTHANDLEREXTENSION_H -#define M_AIEVENTHANDLEREXTENSION_H - -#include - -/** - * Extension of the CAiContentPublisher interface, which allows Active Idle - * Framework to notify their plug-ins that they must to handle event. - * Plug-ins must provide implementation of interface only if they are - * supporting event model (e.g. provides possibility to manipulate engine - * properties via UI). - * - * @since S60 3.2 - */ -class MAiEventHandlerExtension - { -public: - /** - * Invoked by the framework when plug-in must handle an event. - * - * @param aEvent - unique identifier of event from plug-in content model. - * @param aParam - parameters associated with event. Each UI Definition - * declares events in the format: (), - * where is mapped by the framework to unique - * identifier supplied in aEvent, are provided to - * plug-in as-is in the descriptor. - */ - virtual void HandleEvent(TInt aEvent, const TDesC& aParam) = 0; - - /** - * Invoked by the framework when plug-in must handle an event. - * - * @param aEventName - name of the event from plug-in content model. - * @param aParam - parameters associated with event. Each UI Definition - * declares events in the format: (), - * where mapping to unique identifier supplied by event - * is failed by the frame work then the and - * are provied to plug-in as-is in the descriptor. - */ - virtual void HandleEvent(const TDesC& /*aEventName*/, const TDesC& /*aParam*/) { }; - - /** - * Invoked by the framework for querying if plugin has menu item - * - * @param aMenuItem menu item name - * @return ETrue if plugin has specific menu item, EFalse otherwise - */ - virtual TBool HasMenuItem(const TDesC& /*aMenuItem*/) { return EFalse; } - -protected: - /** - * Protected destructor prevents deletion through this interface. - */ - ~MAiEventHandlerExtension() { } - }; - -#endif // M_AIEVENTHANDLEREXTENSION_H diff -r 15e4dd19031c -r a0713522ab97 homescreensrv_plat/ai_content_model_api/inc/aipropertyextension.h --- a/homescreensrv_plat/ai_content_model_api/inc/aipropertyextension.h Wed Mar 31 22:04:35 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,219 +0,0 @@ -/* -* Copyright (c) 2005-2006 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: -* -*/ - - -#ifndef M_AIPROPERTYEXTENSION_H -#define M_AIPROPERTYEXTENSION_H - -#include - -/** - * Maximum length for Content publisher name - */ -const TInt KAiPublisherNameMaxLength = 128; - -/** - * Maximum length for Content publisher namespace - */ -const TInt KAiPublisherNamespaceMaxLength = 32; - -/** - * Content publisher name buffer - */ -typedef TBuf TAiPublisherName; - -/** - * Content publisher namespace buffer - */ -typedef TBuf8 TAiPublisherNamespace; - -/** - * Contains information about Content publisher plug-in. - */ -struct TAiPublisherInfo - { - TAiPublisherInfo() - : iUid( TUid::Null() ), - iName( KNullDesC ), - iNamespace( KNullDesC8 ) - { - } - - inline TAiPublisherInfo& operator= (const TAiPublisherInfo& aInfo) - { - iUid = TUid::Uid( aInfo.iUid.iUid ); - iName.Copy( aInfo.iName ); - iNamespace.Copy( aInfo.iNamespace ); - return *this; - } - - inline TBool operator== (const TAiPublisherInfo& aInfo) const - { - if( iUid == aInfo.iUid && - iName == aInfo.iName && - iNamespace == aInfo.iNamespace ) - { - return ETrue; - } - - return EFalse; - } - - TUid iUid; - TAiPublisherName iName; - TAiPublisherNamespace iNamespace; - }; - -/** - * Defines set of properties supported by plug-in. - * - * Example how to provide and set the properties. - * @code - * void CMyAiPlugin::ConstructL() - * { - * iInfo = new (ELeave) TAiPublisherInfo; - * iContent = AiUtility::CreateContentItemArrayIteratorL( KMyAiPluginContent ); - * iResources = AiUtility::CreateContentItemArrayIteratorL( KMyAiPluginResources ); - * iEvents = AiUtility::CreateContentItemArrayIteratorL( KMyAiPluginEvents ); - * } - * - * void CMyAiPlugin::SetPropertyL( TInt aProperty, TAny* aValue ) - * { - * if( !aValue ) return; - * - * switch( aProperty ) - * { - * case EAiPublisherInfo: - * { - * const TAiPublisherInfo* info = - * static_cast(aValue); - * iInfo->iUid.iUid = info->iUid.iUid; - * iInfo->iName.Copy( info->iName ); - * break; - * } - * } - * } - * - * TAny* CMyAiPlugin::GetPropertyL( TInt aProperty ) - * { - * switch( aProperty ) - * { - * case EAiPublisherInfo: - * return iInfo; - * - * case EAiPublisherContent: - * return iContent; - * - * case EAiPublisherResources: - * return iResources; - * - * case EAiPublisherEvents: - * return iEvents; - * } - * return NULL; - * } - * @endcode - */ -enum TAiPublisherProperty - { - /** - * Enables read-only access to Plug-in information. GetProperty MUST return - * instance of struct TAiPublisherInfo via TAny* . - */ - EAiPublisherInfo = 0x0001, - - /** - * Enables read-only access to iterator of content selectors. GetProperty - * MUST return instance of MAiContentItemIterator for content selectors. - */ - EAiPublisherContent, - - /** - * Enables read-only access to iterator of content references. GetProperty - * MUST return instance of MAiContentItemIterator for content references. - */ - EAiPublisherResources, - - /** - * Enables read-only access to iterator of events supported by plug-in. - * GetProperty MUST return instance of MAiContentItemIterator for events. - */ - EAiPublisherEvents, - - /** - * Provides access to MAiContentRequest interface for refreshing a content - * item. - * @see EAiPublisherContent - */ - EAiContentRequest, - - /** - * Provides access to MAiContentRequest interface for refreshing a resource - * item. - * @see EAiPublisherResources - */ - EAiResourceRequest, - - /** - * Provides access to localized plugin name if supported. HBufC* - * @see EAiPublisherResources - */ - EAiPluginName - }; - - -/** - * Property extension interface for CAiContentPublisher. - * - * @see CAiContentPublisher::Extension - * @since S60 3.2 - */ -class MAiPropertyExtension - { -public: // New functions - - /** - * Read property of publisher plug-in. - * - * @param aProperty - identification of property. - * @return Pointer to property value. - */ - virtual TAny* GetPropertyL(TInt aProperty) = 0; - - /** - * Helper function for accessing the Publisher Info Property. - */ - inline const TAiPublisherInfo* PublisherInfoL(); - - /** - * Write property value. - * - * @param aProperty - identification of property. - * @param aValue - contains pointer to property value. - */ - virtual void SetPropertyL(TInt aProperty, TAny* aValue) = 0; - -protected: - /** - * Protected destructor prevents deletion through this interface. - */ - ~MAiPropertyExtension() { } - }; - -#include - -#endif // M_AIPROPERTYEXTENSION_H diff -r 15e4dd19031c -r a0713522ab97 homescreensrv_plat/ai_content_model_api/inc/aipropertyextension.inl --- a/homescreensrv_plat/ai_content_model_api/inc/aipropertyextension.inl Wed Mar 31 22:04:35 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,22 +0,0 @@ -/* -* Copyright (c) 2005-2005 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: Inline function implementations for MAiPropertyExtension -* -*/ - - -inline const TAiPublisherInfo* MAiPropertyExtension::PublisherInfoL() - { - return static_cast(this->GetPropertyL(EAiPublisherInfo)); - } diff -r 15e4dd19031c -r a0713522ab97 homescreensrv_plat/ai_plugin_information_api/group/bld.inf --- a/homescreensrv_plat/ai_plugin_information_api/group/bld.inf Wed Mar 31 22:04:35 2010 +0300 +++ b/homescreensrv_plat/ai_plugin_information_api/group/bld.inf Wed Apr 14 16:16:44 2010 +0300 @@ -25,4 +25,3 @@ PRJ_EXPORTS ../inc/activeidle2domainpskeys.h MW_LAYER_PLATFORM_EXPORT_PATH(activeidle2domainpskeys.h) -../inc/activeidle2internalpskeys.h MW_LAYER_PLATFORM_EXPORT_PATH(activeidle2internalpskeys.h) diff -r 15e4dd19031c -r a0713522ab97 homescreensrv_plat/ai_plugin_information_api/inc/activeidle2domainpskeys.h --- a/homescreensrv_plat/ai_plugin_information_api/inc/activeidle2domainpskeys.h Wed Mar 31 22:04:35 2010 +0300 +++ b/homescreensrv_plat/ai_plugin_information_api/inc/activeidle2domainpskeys.h Wed Apr 14 16:16:44 2010 +0300 @@ -68,10 +68,6 @@ const TUint KActiveIdleActOnSendKey = 0x00000004; // Contains 0 if we are to ignore the send or > 0 if we need to react to it -const TUint KActiveIdleTouchToolbarWidth = 0x00000005; - -const TUint KActiveIdleTouchToolbarHeight = 0x00000006; - const TUint KActiveIdleSimRegFailedReceived = 0x00000007; // Contains 1 if we have received sim reg failed message, 0 if not. enum EPSActiveIdleSimRegReceiveStatus @@ -85,33 +81,6 @@ EPSSimRegFailedMessageReceived }; -const TUint KActiveIdleThemeSupportsXsp = 0x00000008; // Contains one value from following enumeration - -enum EPSActiveIdleThemeSupportsXsp -{ - // Value indicates that xSP feature is not supported in currently active theme - EPSAiXspNotSupported, - - // Value indicates that the current theme supports the xSP feature - EPSAiXspIsSupported -}; - -const TUint KActiveIdleLaunch = 0x00000009; // Contains information if shortcut launching is ongoing or not - -enum EPSActiveIdleIdleLaunch -{ - - // Value indicates that no shortcut is in launching state and new launch tapping can be handled - EPSAiLaunchNotActive = 0, - - // Value indicates that active idle shortcut is launching - EPSAiLaunchIsActive -}; - - -// Indicates that Active Idle 2 should be restarted. -const TUint KActiveIdleRestartAI2 = 0x0000000B; - // Indicates that all the CPS Harvester plugins have been updated const TUint KActiveIdleCpsPluginsUpdated = 0x0000000C; @@ -150,21 +119,6 @@ */ const TUid KPSUidActiveIdle2 = {0x102750F0}; // ActiveIdle2 SID -/** -* -* First iterate Active plugin UID range to find all -* active plugin UID's. Use that UID as a key to find the plugins name -* from the name range. -* -*/ - -/** -* Active plugin count -* -* Possible integer values: -* 0x000000000 - 0xFFFFFFFF : Active plugin count -*/ -const TUint KAIActivePluginCount = 0x00000000; /** * Active plugin UID range @@ -175,13 +129,4 @@ const TUint KAIActivePluginRangeStart = 0x00000001; const TUint KAIActivePluginRangeEnd = 0x0FFFFFFF; -/** -* Active plugin name range -* -* Possible string values: -* Plugin name -*/ -const TUint KAIPluginNameRangeStart = 0x10000000; -const TUint KAIPluginNameRangeEnd = 0xFFFFFFFF; - #endif // ACTIVEIDLE2_DOMAIN_PS_KEYS_H diff -r 15e4dd19031c -r a0713522ab97 homescreensrv_plat/ai_plugin_information_api/inc/activeidle2internalpskeys.h --- a/homescreensrv_plat/ai_plugin_information_api/inc/activeidle2internalpskeys.h Wed Mar 31 22:04:35 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,82 +0,0 @@ -/* -* Copyright (c) 2002 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: Internal Publish & Subscribe keys for Active Idle 2 -* -*/ - - -#ifndef __ACTIVEIDLE2INTERNALPSKEYS_H__ -#define __ACTIVEIDLE2INTERNALPSKEYS_H__ - -/** - * Gives possibility to execute shortcuts defined by localapp URL. - * This UID is used as a key id under KUidSystemCategory. - * Clients must supply string in localapp URL format defined by RFC 2396. - * - * @type RProperty::EText - */ -const TUint32 KPSUidShortcutCmd = 0x102750FF; - -/** - * Shortcut Plug-in command for enabling keylock. - */ -_LIT( KAiPSEnableKeyLock, "localapp:keylock?on"); - -/** - * Shortcut Plug-in command for canceling keylock. - */ -_LIT( KAiPSSkipKeyLock, "localapp:keylock?skip"); - -/** - * Shortcut Plug-in command for timeoutting keylock. - */ -_LIT( KAiPSKeyLockTimeout, "localapp:keylock?timeout"); - -/** - * Shortcut Plug-in command for launching Logs to dialed calls view. - */ -_LIT( KAiPSLaunchLogs, "localapp:logs?view=dialled"); - -/** - * Shortcut Plug-in command for launching Voice Dial UI. - */ -_LIT( KAiPSLaunchNameDialer, "localapp:voicedial"); - -/** - * Shortcut Plug-in command for canceling voice dial ui. - */ -_LIT( KAiPSSkipNameDialer, "localapp:voicedial?skip"); - - -// Restart code for category KPSUidAiInformation = 0x101FD657 key KActiveIdleRestartAI2 0xA -const TInt KActiveIdleRestartCode = 0xFA93BAD2; - - - -/** - * Publish and Subscribe key for data plugin states in KPSUidActiveIdle2 category (AI plug-in registry API) - */ -const TUint KPSAiDataPluginState = 0x0000000F; // Contains one value from following emuneration - -/** - * States for the KPSAiDataPluginState key - */ -enum EPSAiDataPluginState -{ - EPSAiDataPluginsNotLoaded, - EPSAiDataPluginsLoaded -}; - - -#endif // __ACTIVEIDLE2INTERNALPSKEYS_H__ diff -r 15e4dd19031c -r a0713522ab97 homescreensrv_plat/ai_plugin_management_api/group/bld.inf --- a/homescreensrv_plat/ai_plugin_management_api/group/bld.inf Wed Mar 31 22:04:35 2010 +0300 +++ b/homescreensrv_plat/ai_plugin_management_api/group/bld.inf Wed Apr 14 16:16:44 2010 +0300 @@ -33,7 +33,3 @@ ../inc/hscontentpublisher.inl MW_LAYER_PLATFORM_EXPORT_PATH(hscontentpublisher.inl) ../inc/hspublisherinfo.h MW_LAYER_PLATFORM_EXPORT_PATH(hspublisherinfo.h) ../inc/hspublisherinfo.inl MW_LAYER_PLATFORM_EXPORT_PATH(hspublisherinfo.inl) - -// Deprecated -../inc/aicontentpublisheruid.hrh MW_LAYER_PLATFORM_EXPORT_PATH(aicontentpublisheruid.hrh) -../inc/aicontentpublisher.h MW_LAYER_PLATFORM_EXPORT_PATH(aicontentpublisher.h) diff -r 15e4dd19031c -r a0713522ab97 homescreensrv_plat/ai_plugin_management_api/inc/aicontentpublisher.h --- a/homescreensrv_plat/ai_plugin_management_api/inc/aicontentpublisher.h Wed Mar 31 22:04:35 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,398 +0,0 @@ -/* -* Copyright (c) 2005-2006 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: Interface for Active Idle content publisher plug-ins. -* -*/ - - -#ifndef C_AICONTENTPUBLISHER_H -#define C_AICONTENTPUBLISHER_H - -#include -#include - -/** - * ECom plugin interface UID - */ -const TUid KInterfaceUidContentPlugin = { AI_UID_ECOM_INTERFACE_CONTENTPUBLISHER }; - -/** - * API Extension UID for MAiPropertyExtension. - * - * @see CAiContentPublisher::Extension - * @see MAiPropertyExtension - */ -const TUid KExtensionUidProperty = { 0x1 }; - -/** - * API Extension UID for MAiEventExtension. - * - * @see CAiContentPublisher::Extension - * @see MAiEventExtension - */ -const TUid KExtensionUidEventHandler = { 0x2 }; - -/** - * Defines set of reasons for plug-in state change. - */ -enum TAiTransitionReason - { - - /** - * Unknown transition reason. - */ - EAiUnknownTransitionReason = 0, - - /** - * System has started up. - */ - EAiSystemStartup, - - /** - * System is shutting down. - */ - EAiSystemShutdown, - - /** - * Backlight on. - */ - EAiBacklightOn, - - /** - * Backlight off. - */ - EAiBacklightOff, - - /** - * Backup or restore has been initiated. - */ - EAiBackupRestoreStarted, - - /** - * Backup or restore has ended. - */ - EAiBackupRestoreEnded, - - /** - * Call started. - */ - EAiPhoneCallStarted, - - /** - * Call ended. - */ - EAiPhoneCallEnded, - - /** - * Active Idle UI Definition change has started. - */ - EAiUiDefinitionChangeStarted, - - /** - * Active Idle UI Definition change has ended. - */ - EAiUiDefinitionChangeEnded, - - /** - * Phone general theme has changed. - */ - EAiGeneralThemeChanged, - - /** - * Screen layout has changed. - */ - EAiScreenLayoutChanged, - - /** - * System clock crossed midnight. - */ - EAiMidnightPassed, - - /** - * Language has been changed. - */ - EAiLanguageChanged, - - /** - * System time has been changed by user. - */ - EAiTimeChanged, - - /** - * Idle changes to background. - */ - EAiIdleBackground, - - /** - * Idle changes to foreground. - */ - EAiIdleForeground, - - /** - * Suspending plugins. - */ - EAiSuspendPlugins, - - /** - * Keylock enabled. - */ - EAiKeylockEnabled, - - /** - * Keylock disabled. - */ - EAiKeylockDisabled, - - /** - * Plugins can go online - */ - EAiIdleOnLine, - - /** - * Plugins must go offline - */ - EAiIdleOffLine, - - /** - * Page changed - */ - EAiIdlePageSwitch - }; - -class MAiContentObserver; -class MAiPluginSettings; -typedef RPointerArray< MAiPluginSettings > RAiSettingsItemArray; - -/** - * ECom plug-in interface that Active Idle plug-ins must implement. - * It is used to control plug-in life cycle: load/destroy plug-ins; - * suspend/resume plug-in execution. - * - * @since S60 3.2 - */ -class CAiContentPublisher : public CBase - { -public: // Constructors and destructor - - /** - * Creates a new plug-in instance based on implementation UID. - * - * @param aImpUid implementation UID of plug-in to instantiate. - * @return pointer to the instantiated interface implementation. - * @pre Interface implementation exists by uid aImpUid. - */ - inline static CAiContentPublisher* NewL(TUid aImpUid); - - /** - * Creates a new plug-in instance based on mime type. - * - * @param aMime MIME type of plug-in to instantiate. - * @return pointer to the instantiated interface implementation. - */ - inline static CAiContentPublisher* NewL(const TDesC8& aMime); - - /** - * Destroys instance of the plug-in. Called by the framework during plug-in - * unloading phase. - */ - inline virtual ~CAiContentPublisher(); - -public: // New functions - /** - * This method transit the plugin to "Alive" state. - * The method is called by the framework to instruct plug-in that it is - * allowed to actively publish its data to its observers. This means the plugin - * is allowed to consume memory and CPU resources, e.g plug-in is able load - * engines, run timers, perform asynchronous operations, etc. The method - * transits the plug-in to "Alive" state. There can be many concurrent - * calls to resume, with different or the same reason code, this allows - * the plugin to properly respond to enviroment change that raise the - * need to re-publish content (changes like date/time change etc). - * - * @param aReason reason for state change, see TAiTransitionChange. - * @pre None - * @post Plugin is in resumed state and actively publishes its data. - * - * Short example what a typical resume implementation does. - * @code - * if( !MyEngineCreated() ) - * { - * CreateEngine(); - * } - * StartEngine(); - * @endcode - */ - virtual void Resume(TAiTransitionReason aReason) = 0; - - /** - * This method transits the plug-in to "Suspendend" state. - * The method is called by the framework to instruct plug-in that it is - * not allowed to consume CPU resources, e.g plug-in MUST stop each - * timer, cancel outstanding asynchronous operations, etc. - * - * @param aReason reason for state change, see TAiTransitionChange. - * @pre None - * @post Plugin suspends publishing data and free resources (timers etc). - * - * Short example what a typical suspend implementation does. - * @code - * DisableEngine(); - * @endcode - */ - virtual void Suspend(TAiTransitionReason aReason) = 0; - - /** - * This method transits the plug-in to "Idle" state. - * The method is called by the framework to request the plug-in free all - * memory and CPU resources and close all its open files, the plug-in - * should unload its engines during backup operation. - * - * @param aReason reason for state change, see TAiTransitionChange. - * @pre None - * @post Plugin stops publishing data and frees all possible resources. - * - * Short example what a typical stop implementation does. - * @code - * DestroyEngine(); - * @endcode - */ - virtual void Stop(TAiTransitionReason aReason) = 0; - - /** - * Adds the content observer / subscriber to plug-in. The plug-in MUST - * maintain a registry of subscribers and send notification to all them - * whenever the plug-in changes state or new content available. - * - * @param aObserver content observer to register. - * @pre None - * @post Plugin publishes its data to the subscribed observer. - * - * Short example what a typical subscribe implementation does and - * one alternative how observers are used. - * @code - * if( !ObserverAlreadyAdded( aObserver ) ) - * { - * iMyContentObservers.AppendL( aObserver ); - * } - * - * ... - * - * // Engine reports data changed - * - * const TDesC& data = iEngine->LatestData(); - * for( TInt i = 0; i < iMyContentObservers.Count(); ++i ) - * { - * iMyContentObservers[i].Publish( data ); - * } - * @endcode - */ - virtual void SubscribeL(MAiContentObserver& aObserver) = 0; - - /** - * Configures the plug-in. - * - * @param aSettings setting items defined in the UI definition. - * This plugin takes ownership of the - * MAiPluginSettings objects in the array. - * If this method leaves the caller will handle the cleanup. - * @pre None - * @post Plugin has set its state according to relevant settings. - * - * Short example how to read plugin settings. - * @code - * for( TInt i = 0; i < aSettings.Count(); ++i ) - * { - * MAiPluginSettingsItem& item = (aSettings[i])->AiPluginSettingsItem(); - * TInt32 value = 0; - * if( ParseInt( value, item.Value() ) != KErrNone ) - * { - * continue; - * } - * if( value < 0 ) - * { - * continue; // All our settings are counts, skip bad settings - * } - * if( item.Key() == EMySettingMaxUsers ) - * { - * iEngine->SetMaxUsers( value ); - * continue; - * } - * else if( item.Key() == EMySettingNumItems ) - * { - * iNumItems = value; - * continue; - * } - * } - * // We own the array so destroy it - * aSettings.ResetAndDestroy(); - * @endcode - */ - virtual void ConfigureL( RAiSettingsItemArray& aSettings) = 0; - - /** - * Returns interface extension. In S60 3.2 only event & property - * extensions are supported. See MAiEventHandlerExtension & MAiPropertyExtension - * interfaces. - * - * @param aUid - UID of the extension interface to access. - * @see MAiEventExtension - * @see MAiPropertyExtension - * @return the extension interface. Actual type depends on the passed aUid - * argument. - * - * Example on how to properly return an extension. - * @code - * if (aUid == KExtensionUidProperty) - * { - * return static_cast(this); - * } - * else if (aUid == KExtensionUidEventHandler) - * { - * return static_cast(this); - * } - * return NULL; // Requested extension not supported - * @endcode - */ - virtual TAny* Extension(TUid aUid) = 0; - -private: // data - /** An identifier used during destruction. */ - TUid iDestructKey; - }; - -inline CAiContentPublisher* CAiContentPublisher::NewL(TUid aImplUid) - { - TAny* ptr = REComSession::CreateImplementationL(aImplUid, - _FOFF(CAiContentPublisher, iDestructKey)); - - return reinterpret_cast (ptr); - } - -inline CAiContentPublisher* CAiContentPublisher::NewL(const TDesC8& aMime) - { - TEComResolverParams params; - params.SetDataType(aMime); - - TAny* ptr = REComSession::CreateImplementationL(KInterfaceUidContentPlugin, - _FOFF(CAiContentPublisher, iDestructKey), params); - - return reinterpret_cast (ptr); - } - -inline CAiContentPublisher::~CAiContentPublisher() - { - REComSession::DestroyedImplementation(iDestructKey); - } - -#endif // C_AICONTENTPUBLISHER_H diff -r 15e4dd19031c -r a0713522ab97 homescreensrv_plat/ai_plugin_management_api/inc/aicontentpublisheruid.hrh --- a/homescreensrv_plat/ai_plugin_management_api/inc/aicontentpublisheruid.hrh Wed Mar 31 22:04:35 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,62 +0,0 @@ -/* -* Copyright (c) 2005-2006 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: Resource headers for aicontentpublisher -* -*/ - - -#ifndef AICONTENTPUBLISHERUID_HRH -#define AICONTENTPUBLISHERUID_HRH - -/** - * Ecom interface uid for CAiContentPublisher. - * - * Example resource of a plugin that implements content publisher interface. - * @code - * #include - * #include - * - * #define MY_DLL_UID 0xFFEEDDCC - * #define MY_PLUGIN_IMPLEMENTATION_UID 0xBBAA9988 - * - * RESOURCE REGISTRY_INFO registry_info - * { - * resource_format_version = RESOURCE_FORMAT_VERSION_2; - * dll_uid = MY_DLL_UID; - * - * // Interface info array - * interfaces = - * { - * INTERFACE_INFO - * { - * // UID of the implemented interface - * interface_uid = AI_UID_ECOM_INTERFACE_CONTENTPUBLISHER; - * - * implementations = - * { - * IMPLEMENTATION_INFO - * { - * implementation_uid = MY_PLUGIN_IMPLEMENTATION_UID; - * version_no = 1; - * display_name = "My plugin"; - * } - * }; - * } - * }; - * } - * @endcode - */ -#define AI_UID_ECOM_INTERFACE_CONTENTPUBLISHER 0x102750ED - -#endif // AICONTENTPUBLISHERUID_HRH diff -r 15e4dd19031c -r a0713522ab97 homescreensrv_plat/ai_utilities_api/group/bld.inf --- a/homescreensrv_plat/ai_utilities_api/group/bld.inf Wed Mar 31 22:04:35 2010 +0300 +++ b/homescreensrv_plat/ai_utilities_api/group/bld.inf Wed Apr 14 16:16:44 2010 +0300 @@ -32,7 +32,3 @@ ../inc/aistrcnv.h MW_LAYER_PLATFORM_EXPORT_PATH(aistrcnv.h) ../inc/contentprioritymap.h MW_LAYER_PLATFORM_EXPORT_PATH(contentprioritymap.h) ../inc/aicpscommandbuffer.h MW_LAYER_PLATFORM_EXPORT_PATH(aicpscommandbuffer.h) - -#ifdef __COVER_DISPLAY -../inc/aisecondarydisplayapi.h MW_LAYER_PLATFORM_EXPORT_PATH(secondarydisplay/aisecondarydisplayapi.h) -#endif diff -r 15e4dd19031c -r a0713522ab97 homescreensrv_plat/ai_utilities_api/inc/aisecondarydisplayapi.h --- a/homescreensrv_plat/ai_utilities_api/inc/aisecondarydisplayapi.h Wed Mar 31 22:04:35 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,37 +0,0 @@ -/* -* Copyright (c) 2005 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 file contains note definitions for Cover UI sync -* -*/ - - -#ifndef AISECONDARYDISPLAYAPI_HRH -#define AISECONDARYDISPLAYAPI_HRH - -// CONSTANTS -const TUid KAICategory = { 0x102750F3 }; - -// DATA TYPES - -// Enumerates dialogs -enum TAiDialogIndex - { - EAiNoNote = 0, - EAiSimRegistrationFailed - }; - -#endif // AISECONDARYDISPLAYAPI_HRH - -// End of File - diff -r 15e4dd19031c -r a0713522ab97 homescreensrv_plat/hs_content_control_api/inc/hscontentinfo.h --- a/homescreensrv_plat/hs_content_control_api/inc/hscontentinfo.h Wed Mar 31 22:04:35 2010 +0300 +++ b/homescreensrv_plat/hs_content_control_api/inc/hscontentinfo.h Wed Apr 14 16:16:44 2010 +0300 @@ -333,6 +333,23 @@ IMPORT_C TBool IsWrt() const; /** + * Sets whether an application confguration or a view is full + * + * @since S60 5.0 + * @param aIsFull, ETrue if application configuration or a view is full + */ + IMPORT_C void SetIsFull( TBool aIsFull ); + + /** + * Returns whether an application configuration or a view is full + * + * @since S60 5.0 + * @return ETrue if application configuration or view is full, + * EFalse otherwise + */ + IMPORT_C TBool IsFull() const; + + /** * Marshals Content Info data to a descriptor * * @since S60 5.0 @@ -407,6 +424,11 @@ * Flag to indicate whether this is a WRT widget */ TBool iIsWrt; + + /** + * Flag to indicate wheter an application configuration or a view is full + */ + TBool iIsFull; }; #endif // HSCONTENTINFO_H diff -r 15e4dd19031c -r a0713522ab97 homescreensrv_plat/sapi_actionhandler/actionhandlerplugins/group/ahplugins.mmp --- a/homescreensrv_plat/sapi_actionhandler/actionhandlerplugins/group/ahplugins.mmp Wed Mar 31 22:04:35 2010 +0300 +++ b/homescreensrv_plat/sapi_actionhandler/actionhandlerplugins/group/ahplugins.mmp Wed Apr 14 16:16:44 2010 +0300 @@ -56,7 +56,8 @@ LIBRARY apparc.lib LIBRARY sendui.lib LIBRARY hlplch.lib -LIBRARY ws32.lib +LIBRARY ws32.lib +LIBRARY gfxtrans.lib // End of File diff -r 15e4dd19031c -r a0713522ab97 homescreensrv_plat/sapi_actionhandler/actionhandlerplugins/src/ahpapplauncher.cpp --- a/homescreensrv_plat/sapi_actionhandler/actionhandlerplugins/src/ahpapplauncher.cpp Wed Mar 31 22:04:35 2010 +0300 +++ b/homescreensrv_plat/sapi_actionhandler/actionhandlerplugins/src/ahpapplauncher.cpp Wed Apr 14 16:16:44 2010 +0300 @@ -23,6 +23,8 @@ #include #include #include +#include +#include #include "ahproperties.hrh" #include "ahpapplauncher.h" @@ -110,6 +112,13 @@ TApaTask task = taskList.FindApp( appUid ); if ( task.Exists( ) ) { + GfxTransEffect::BeginFullScreen( + AknTransEffect::EApplicationStart, + TRect(), + AknTransEffect::EParameterType, + AknTransEffect::GfxTransParam( appUid, + AknTransEffect::TParameter::EActivateExplicitContinue )); + errCode = KErrNone; task.BringToForeground(); } diff -r 15e4dd19031c -r a0713522ab97 idlefw/inc/framework/aicpsexecuteparam.h --- a/idlefw/inc/framework/aicpsexecuteparam.h Wed Mar 31 22:04:35 2010 +0300 +++ b/idlefw/inc/framework/aicpsexecuteparam.h Wed Apr 14 16:16:44 2010 +0300 @@ -80,13 +80,13 @@ const TDesC& PluginId() const; /** - * Returns the input parameter list for Execute command - * it will leave the CLiwGenericParamList object in the stack + * Returns the input parameter map for Execute command + * it will leave the CLiwDefaultMap object in the stack * * @since S60 5.2 - * @return generic parameter list + * @return in param map */ - CLiwGenericParamList* InParamListLC(); + CLiwDefaultMap* InParamMapLC(); /** * Adds a actions to the action list diff -r 15e4dd19031c -r a0713522ab97 idlefw/inc/framework/aifw.h --- a/idlefw/inc/framework/aifw.h Wed Mar 31 22:04:35 2010 +0300 +++ b/idlefw/inc/framework/aifw.h Wed Apr 14 16:16:44 2010 +0300 @@ -33,7 +33,6 @@ class CAiPluginFactory; class CAiEventHandler; class CAiWsPluginManager; -class MAiPSPropertyObserver; class THsPublisherInfo; // Class declaration @@ -174,8 +173,7 @@ private: // new functions - - static TInt HandleRestartEvent( TAny* aSelf ); + void SwapUiControllerL( TBool aToExtHS ); private: @@ -199,8 +197,6 @@ CCenRepNotifyHandler* iNotifyHandlerESS; /** Idle repository, Owned. */ CRepository* iRepository; - /** Idle restart PS observer, Owned. */ - MAiPSPropertyObserver* iIdleRestartObserver; TBool iLibrariesLoaded; diff -r 15e4dd19031c -r a0713522ab97 idlefw/inc/framework/aistatemanager.h --- a/idlefw/inc/framework/aistatemanager.h Wed Mar 31 22:04:35 2010 +0300 +++ b/idlefw/inc/framework/aistatemanager.h Wed Apr 14 16:16:44 2010 +0300 @@ -22,7 +22,6 @@ // System includes #include #include -#include // for MProgressDialogCallback // User includes #include @@ -33,7 +32,6 @@ class CAiCpsCommandBuffer; class CHsContentPublisher; class THsPublisherInfo; -class CAknWaitDialog; /** * State Manager @@ -43,8 +41,7 @@ * @since S60 5.0 */ NONSHARABLE_CLASS( CAiStateManager ) : public CBase, - public MAiStateObserver, - public MProgressDialogCallback + public MAiStateObserver { private: // Data types @@ -192,24 +189,7 @@ * @since S60 5.2 */ void DestroyPlugins(); - - /** - * Starts wait dialog with progress bar. - */ - void StartWaitDialogL(); - - /** - * Stops wait dialog with progress bar. - */ - void StopWaitDialogL(); - - /** - * Callback method from MProgressDialogCallback interface. - * Gets called when a dialog is dismissed. - * @param aButtonId Id of the pushed button. - */ - void DialogDismissedL( TInt aButtonId ); - + /** * Flushes cps command buffer * @@ -229,13 +209,7 @@ /** Flags */ TBitFlags32 iFlags; /** Halted flag */ - TBool iHalt; - /** - * Own. - * Pointer to wait dialog. - */ - CAknWaitDialog* iWaitDialog; - + TBool iHalt; /** List of plugins which should be reloaded */ RArray iReloadPlugins; diff -r 15e4dd19031c -r a0713522ab97 idlefw/inc/framework/aiuicontrollermanager.h --- a/idlefw/inc/framework/aiuicontrollermanager.h Wed Mar 31 22:04:35 2010 +0300 +++ b/idlefw/inc/framework/aiuicontrollermanager.h Wed Apr 14 16:16:44 2010 +0300 @@ -26,7 +26,6 @@ // Forward declarations class CAiUiController; -class CAiContentPublisher; class MAiMainUiController; class CRepository; class CCoeEnv; diff -r 15e4dd19031c -r a0713522ab97 idlefw/loc/aifw.loc --- a/idlefw/loc/aifw.loc Wed Mar 31 22:04:35 2010 +0300 +++ b/idlefw/loc/aifw.loc Wed Apr 14 16:16:44 2010 +0300 @@ -39,9 +39,3 @@ // r: 3.2 // #define qtn_idle_theme_error_notloaded "Error in theme." - -// d: Wait/progress note text that is shown when backup or restore process is ongoing. -// l: popup_note_wait_window -// w: -// r: TB9.2 -#define qtn_hs_backup_use_prevented "Home screen is not in use during backup or restore operation. Wait to finish." diff -r 15e4dd19031c -r a0713522ab97 idlefw/plugins/devicestatus/src/aioperatornamepublisher.cpp --- a/idlefw/plugins/devicestatus/src/aioperatornamepublisher.cpp Wed Mar 31 22:04:35 2010 +0300 +++ b/idlefw/plugins/devicestatus/src/aioperatornamepublisher.cpp Wed Apr 14 16:16:44 2010 +0300 @@ -23,7 +23,7 @@ #include #include #include -#include +#include #include #include diff -r 15e4dd19031c -r a0713522ab97 idlefw/plugins/mcsplugin/help/data/xhtml.zip Binary file idlefw/plugins/mcsplugin/help/data/xhtml.zip has changed diff -r 15e4dd19031c -r a0713522ab97 idlefw/plugins/sapidataplugin/inc/sapidata.h --- a/idlefw/plugins/sapidataplugin/inc/sapidata.h Wed Mar 31 22:04:35 2010 +0300 +++ b/idlefw/plugins/sapidataplugin/inc/sapidata.h Wed Apr 14 16:16:44 2010 +0300 @@ -132,16 +132,6 @@ */ void ConstructL(CSapiDataPlugin* aPlugin); - // new functions - - /** - * Gets the menu item from the publisher - * - * @param none - * @return void - */ - void GetMenuItemsL(); - public: // new functions @@ -154,14 +144,6 @@ void ChangePublisherStatusL(const TDesC8& aStatus); /** - * Change the publisher status with list of actions - * - * @param aActionsList new list of status for the publisher - * @return void - */ - void ChangePublisherStatusL(CLiwDefaultList* aActionsList); - - /** * Triggers active event with KNoNotification option. * Notification is not send to observer, action handler * plug-ins are executed @@ -365,6 +347,25 @@ * @param aAny - contains pointer to command buffer. */ void SetCommandBuffer(TAny* aAny); + +private: + // new functions + + /** + * Gets the menu item from the publisher + * + * @param none + * @return void + */ + void GetMenuItemsL(); + + /** + * Change the publisher status with list of actions + * + * @param aActionsList new list of status for the publisher + * @return void + */ + void ChangePublisherStatusL(CLiwDefaultList* aActionsList); private: // data diff -r 15e4dd19031c -r a0713522ab97 idlefw/plugins/sapidataplugin/inc/sapidatapluginconst.h --- a/idlefw/plugins/sapidataplugin/inc/sapidatapluginconst.h Wed Mar 31 22:04:35 2010 +0300 +++ b/idlefw/plugins/sapidataplugin/inc/sapidatapluginconst.h Wed Apr 14 16:16:44 2010 +0300 @@ -48,7 +48,6 @@ _LIT( KPubData, "publisher" ); _LIT( KCpData_PubData, "cp_data:publisher"); -_LIT8( KPluginId, "plugin_id"); _LIT8( KFilter, "filter" ); _LIT8( KDataMap, "data_map"); _LIT8( KActionTrigger, "action_trigger" ); @@ -76,7 +75,7 @@ _LIT( KOperationDelete, "delete" ); _LIT( KOperationExecute, "execute" ); _LIT( KAddUpdateDelete, "add:update:delete" ); -_LIT( KUpdate, "update" ); +_LIT( KAddUpdate, "add:update" ); _LIT(KWidget, "hswidget"); _LIT8( KDeActive, "deactive"); @@ -91,7 +90,7 @@ _LIT8( KPluginShutdown, "pluginshutdown"); _LIT8( KOnLine, "online"); _LIT8( KOffLine, "offline"); -_LIT8( KInActive, "inactive"); + // reserved extension for retrieving mask handle _LIT8( KMask, "_mask"); diff -r 15e4dd19031c -r a0713522ab97 idlefw/plugins/sapidataplugin/src/sapidata.cpp --- a/idlefw/plugins/sapidataplugin/src/sapidata.cpp Wed Mar 31 22:04:35 2010 +0300 +++ b/idlefw/plugins/sapidataplugin/src/sapidata.cpp Wed Apr 14 16:16:44 2010 +0300 @@ -122,18 +122,17 @@ if(iPubObserver) { - TRAP_IGNORE(iPubObserver->ReleaseL() ); delete iPubObserver; iPubObserver = NULL; } if(iContentObserver) { - TRAP_IGNORE(iContentObserver->ReleaseL() ); delete iContentObserver; iContentObserver = NULL; } if( iInterface ) { + // This will also release all the registered observers iInterface->Close(); iInterface = NULL; } @@ -674,7 +673,7 @@ if ( iItemCount > 0) { CLiwDefaultMap* pubRegFilter = CreateFilterLC( KAll(), KAll() ); - pubRegFilter->InsertL( KOperation, TLiwVariant( KUpdate ) ); + pubRegFilter->InsertL( KOperation, TLiwVariant( KAddUpdate ) ); iPubObserver->RegisterL( pubRegFilter, KPubData() ); CleanupStack::PopAndDestroy( pubRegFilter ); } @@ -757,8 +756,6 @@ CLiwGenericParamList* inParamList = &iServiceHandler->InParamListL(); CLiwGenericParamList* outParamList = &iServiceHandler->OutParamListL(); - TLiwGenericParam pluginId( KPluginId, TLiwVariant( iContentId ) ); - inParamList->AppendL( pluginId ); TLiwGenericParam type( KType, TLiwVariant( KPubData ) ); inParamList->AppendL( type ); diff -r 15e4dd19031c -r a0713522ab97 idlefw/plugins/sapidataplugin/src/sapidataobserver.cpp --- a/idlefw/plugins/sapidataplugin/src/sapidataobserver.cpp Wed Mar 31 22:04:35 2010 +0300 +++ b/idlefw/plugins/sapidataplugin/src/sapidataobserver.cpp Wed Apr 14 16:16:44 2010 +0300 @@ -68,30 +68,6 @@ } // --------------------------------------------------------------------------- -// Sing off to notification -// --------------------------------------------------------------------------- -// -void CSapiDataObserver ::ReleaseL() - { - if( iInterface ) - { - CLiwGenericParamList* inParamList = CLiwGenericParamList::NewL(); - CleanupStack::PushL( inParamList ); - CLiwGenericParamList* outParamList = CLiwGenericParamList::NewL(); - CleanupStack::PushL( outParamList ); - - TRAP_IGNORE( iInterface->ExecuteCmdL( KRequestNotification, - *inParamList, - *outParamList, - KLiwOptCancel, - this )); - - CleanupStack::PopAndDestroy( outParamList ); - CleanupStack::PopAndDestroy( inParamList ); - } - } - -// --------------------------------------------------------------------------- // Factory method construction // --------------------------------------------------------------------------- // diff -r 15e4dd19031c -r a0713522ab97 idlefw/plugins/sapidataplugin/src/sapidataplugin.cpp --- a/idlefw/plugins/sapidataplugin/src/sapidataplugin.cpp Wed Mar 31 22:04:35 2010 +0300 +++ b/idlefw/plugins/sapidataplugin/src/sapidataplugin.cpp Wed Apr 14 16:16:44 2010 +0300 @@ -433,6 +433,9 @@ TRAP_IGNORE( PublishL() ); TRAP_IGNORE( iData->SetStartupReasonL( KPluginStartup)); } + + // Listen for publisher registration to resend the events + TRAP_IGNORE( iData->RegisterPublisherObserverL() ); } // ---------------------------------------------------------------------------- @@ -616,17 +619,15 @@ iData->ConfigureL( configurationItemsArr ); iPluginState = ESuspend; + + // Listen the publisher content update + iData->RegisterContentObserverL(); // Activate the publisher iData->ChangePublisherStatusL( KActive ); - // Register for notifications - iData->RegisterPublisherObserverL(); // Execute the active trigger iData->TriggerActiveL(); - // There must be at least 1 milli second delay - // to register the second observer as both are using the - // same MLiwInterface object - iData->RegisterContentObserverL(); + } contentItemsArr.Reset(); diff -r 15e4dd19031c -r a0713522ab97 idlefw/plugins/wrtdataplugin/inc/wrtdata.h --- a/idlefw/plugins/wrtdataplugin/inc/wrtdata.h Wed Mar 31 22:04:35 2010 +0300 +++ b/idlefw/plugins/wrtdataplugin/inc/wrtdata.h Wed Apr 14 16:16:44 2010 +0300 @@ -32,6 +32,7 @@ class CLiwServiceHandler; class CWrtDataObserver; class CWrtDataPlugin; +class MAiCpsCommandBuffer; /** * @ingroup group_wrtdataplugin @@ -43,221 +44,203 @@ NONSHARABLE_CLASS( CWrtData ) : public CBase { public: - // constructor and destructor - - static CWrtData* NewL( CWrtDataPlugin* aPlugin ); - - ~CWrtData(); - - public : - /** - * Configures the subscriber and data to subscribe. - * - * @param aConfigurations Information about the subscriber - * and the data to subscribe. - * @return void - */ - void ConfigureL(RAiSettingsItemArray& aConfigurations); - - /** - * Checks is this menu item is supported by the publisher - * - * @param aMenuItem menu item name. - * @return boolean (ETrue/EFalse) - */ - TBool HasMenuItem(const TDesC16& aMenuItem ); + /** + * Part of the two phased constuction + * + * @param none + * @return none + */ + static CWrtData* NewL( CWrtDataPlugin* aPlugin ); + + /* + * Destructor + */ + ~CWrtData(); + +private : - /** - * Register to CPS for all (add/delete/update/execute) action - * - * @param none - * @return void - */ - void RegisterL(); - - /** - * Update the publisher status - * - * @param None - * @return void - */ - void UpdatePublisherStatusL(); - - /** - * Publish updated data for all the items in the widget - * - * @param aObserver to publish data - * @return void - */ - void PublishDefaultImageL( MAiContentObserver* aObserver ); - - /** - * Publish the updated data - * - * @param aObserver to publish data - * @param aDataMap data map - * @return void - */ - void PublishL( MAiContentObserver* aObserver, CLiwDefaultMap* aDataMap ); - - /** - * Called by the observer to refresh the changed content - * - * @param aContentId content Id. - * @param aOperation operation (add/delete/update/execute). - * @param aDataMap data map. - * @return void - */ - void RefreshL( TDesC& aContentId, TDesC& aOperation, CLiwDefaultMap* aDataMap ); - - /** - * Tigger for execution of a action for a specific content id. - * - * @param aObjectId object Id. - * @param aTrigger name of the trigger. - * @return void - */ - void ExecuteActionL(const TDesC& aObjectId, const TDesC& aTrigger); - - /** - * Is the pugin is active to publish the data. - * - * @param None - * @return boolean (ETrue/EFalse). - */ - TBool IsPluginActive(); + /** + * Default Constructor + * + */ + CWrtData(); + + /** + * Part of the two phased construction + * + * @param aPlugin reference of the plugin + * @return void + */ + void ConstructL(CWrtDataPlugin* aPlugin); + +public : + // new functions + + /** + * Configures the subscriber and data to subscribe. + * + * @param aConfigurations Information about the subscriber + * and the data to subscribe. + * @return void + */ + void ConfigureL(RAiSettingsItemArray& aConfigurations); + + /** + * Checks is this menu item is supported by the publisher + * + * @param aMenuItem menu item name. + * @return boolean (ETrue/EFalse) + */ + TBool HasMenuItem(const TDesC16& aMenuItem ); - /** - * Activate the publisher - * - * @param None - * @return void - */ - void ActivateL(); - - /** - * Resume the publisher - * - * @param None - * @return void - */ - void ResumeL(); - - /** - * Suspend the publisher - * - * @param None - * @return void - */ - void SuspendL(); - - /** - * Deactivate the publisher - * - * @param None - * @return void - */ - void DeActivateL(); - - /** - * OnLineL - * - * @param None - * @return void - */ - void OnLineL(); - - /** - * OffLineL - * - * @param None - * @return void - */ - void OffLineL(); + /** + * Register to CPS for all (add/delete/update/execute) action + * + * @param none + * @return void + */ + void RegisterL(); + + /** + * Update the publisher status + * + * @param None + * @return void + */ + void UpdatePublisherStatusL(); + + /** + * Publish updated data for all the items in the widget + * + * @param aObserver to publish data + * @return void + */ + void PublishDefaultImageL( MAiContentObserver* aObserver ); + + /** + * Publish the updated data + * + * @param aObserver to publish data + * @param aDataMap data map + * @return void + */ + void PublishL( MAiContentObserver* aObserver, CLiwDefaultMap* aDataMap ); + + /** + * Called by the observer to refresh the changed content + * + * @param aContentId content Id. + * @param aOperation operation (add/delete/update/execute). + * @param aDataMap data map. + * @return void + */ + void RefreshL( TDesC& aContentId, TDesC& aOperation, CLiwDefaultMap* aDataMap ); + + /** + * Tigger for execution of a action for a specific content id. + * + * @param aObjectId object Id. + * @param aTrigger name of the trigger. + * @return void + */ + void ExecuteActionL(const TDesC& aObjectId, const TDesC& aTrigger); - private : + /** + * Is the pugin is active to publish the data. + * + * @param None + * @return boolean (ETrue/EFalse). + */ + TBool IsPluginActive(); + + /** + * Notify the status to the publisher + * + * @param aStatus new status of the publisher + * @return void + */ + void NotifyPublisherL(const TDesC8& aStatus); - /** - * Default Constructor - * - */ - CWrtData(); - - /** - * Part of the two phased construction - * - * @param aPlugin reference of the plugin - * @return void - */ - void ConstructL(CWrtDataPlugin* aPlugin); - - /** - * Createts the filter map - * - * @return filter map - */ - CLiwDefaultMap* CreateFilterLC( ); - - /** - * Execute the command to get the data from CPS - * - * @param aInFilter input filter for the command - * @param aOutDataMap output data map - * @param aRegistry type of registry (publisher/cp_data) - * @return void - */ - void ExecuteCommandL(CLiwDefaultMap* aInFilter, - CLiwDefaultMap* aOutDataMap, const TDesC16& aRegistry ); - + /** + * Sets property value. + * + * @since S60 5.2 + * @param aAny - contains pointer to command buffer. + * @param aNameSpace - plugin name space id + */ + void SetCommandBuffer(TAny* aAny, const TDesC8& aNameSpace); + +private: + // new functions + + /** + * Createts the filter map + * + * @return filter map + */ + CLiwDefaultMap* CreateFilterLC( ); + + /** + * Execute the command to get the data from CPS + * + * @param aInFilter input filter for the command + * @param aOutDataMap output data map + * @param aRegistry type of registry (publisher/cp_data) + * @return void + */ + void ExecuteCommandL(CLiwDefaultMap* aInFilter, + CLiwDefaultMap* aOutDataMap, const TDesC16& aRegistry ); + + /** + * Gets the menu item from the publisher + * + * @param none + * @return void + */ + void GetMenuItemsL(); + + /** + * Gets the widgent name and uid + * + * @param aName - widget name + * @param aAppUID - widget uid + * @return void + */ + void GetWidgetNameAndUidL(TDes& aName, TDes& aAppUID ); + + /** + * Resolves the Uid from the string + * + * @param aUidDes - uid in string + * @param aUid - uid + * @return ETure/EFalse + */ + TBool ResolveUid(const TDesC& aUidDes, TUid& aUid ); + + /** + * Creates icon from the uid + * + * @param aHandle - icon handle + * @param aMaskHandle - mask handle + * @param aAppUid - application uid + * @return ETure/EFalse + */ + void CreateIconFromUidL(TInt& aHandle, TInt& aMaskHandle, const TUid& aAppUid ); - /** - * Change the publisher status - * - * @param aStatus new status of the publisher - * @return void - */ - void ChangePublisherStatusL(const TDesC& aStatus); - - /** - * Gets the menu item from the publisher - * - * @param none - * @return void - */ - void GetMenuItemsL(); - - /** - * Gets the widgent name and uid - * - * @param aName - widget name - * @param aAppUID - widget uid - * @return void - */ - void GetWidgetNameAndUidL(TDes& aName, TDes& aAppUID ); - - /** - * Resolves the Uid from the string - * - * @param aUidDes - uid in string - * @param aUid - uid - * @return ETure/EFalse - */ - TBool ResolveUid(const TDesC& aUidDes, TUid& aUid ); - - /** - * Creates icon from the uid - * - * @param aHandle - icon handle - * @param aMaskHandle - mask handle - * @param aAppUid - application uid - * @return ETure/EFalse - */ - void CreateIconFromUidL(TInt& aHandle, TInt& aMaskHandle, const TUid& aAppUid ); - - private : + /** + * Resend the the current plugin status to publisher + * + * @param aActionsList new list of status for the publisher + * @return void + */ + void ReSendNotificationL(CLiwDefaultList* aActionsList); + +private : // data - + TBuf iPluginId; + /** CPS Command Buffer Interface, Not Owned */ + MAiCpsCommandBuffer* iCpsExecute; /** Subscriber interface, owned */ MLiwInterface* iInterface; /** Data Observer to CPS, owned */ diff -r 15e4dd19031c -r a0713522ab97 idlefw/plugins/wrtdataplugin/inc/wrtdataobserver.h --- a/idlefw/plugins/wrtdataplugin/inc/wrtdataobserver.h Wed Mar 31 22:04:35 2010 +0300 +++ b/idlefw/plugins/wrtdataplugin/inc/wrtdataobserver.h Wed Apr 14 16:16:44 2010 +0300 @@ -107,12 +107,6 @@ * @return void. */ void RegisterL( CLiwDefaultMap* aFilter ); - - /** - * Cancel all the registered notifications. - * @return void. - */ - void ReleaseL(); private: // data diff -r 15e4dd19031c -r a0713522ab97 idlefw/plugins/wrtdataplugin/inc/wrtdataplugin.h --- a/idlefw/plugins/wrtdataplugin/inc/wrtdataplugin.h Wed Mar 31 22:04:35 2010 +0300 +++ b/idlefw/plugins/wrtdataplugin/inc/wrtdataplugin.h Wed Apr 14 16:16:44 2010 +0300 @@ -139,6 +139,11 @@ /** * @see CHsContentPublisher + */ + void SetProperty( TProperty aProperty, TAny* aAny ); + + /** + * @see CHsContentPublisher */ TAny* GetProperty( TProperty aProperty ); diff -r 15e4dd19031c -r a0713522ab97 idlefw/plugins/wrtdataplugin/inc/wrtdatapluginconst.h --- a/idlefw/plugins/wrtdataplugin/inc/wrtdatapluginconst.h Wed Mar 31 22:04:35 2010 +0300 +++ b/idlefw/plugins/wrtdataplugin/inc/wrtdatapluginconst.h Wed Apr 14 16:16:44 2010 +0300 @@ -73,13 +73,12 @@ _LIT( KOperationExecute, "execute" ); _LIT( KAddUpdateDelete, "add:update:delete" ); -_LIT( KDeActive, "deactive"); -_LIT( KActive, "active"); -_LIT( KSuspend , "suspend"); -_LIT( KResume, "resume"); -_LIT( KOnLine, "online"); -_LIT( KOffLine, "offline"); -_LIT( KInActive, "inactive"); +_LIT8( KDeActive, "deactive"); +_LIT8( KActive, "active"); +_LIT8( KSuspend , "suspend"); +_LIT8( KResume, "resume"); +_LIT8( KOnLine, "online"); +_LIT8( KOffLine, "offline"); // reserved extension for retrieving mask handle _LIT8( KImageMask, "image1_mask"); diff -r 15e4dd19031c -r a0713522ab97 idlefw/plugins/wrtdataplugin/src/wrtdata.cpp --- a/idlefw/plugins/wrtdataplugin/src/wrtdata.cpp Wed Mar 31 22:04:35 2010 +0300 +++ b/idlefw/plugins/wrtdataplugin/src/wrtdata.cpp Wed Apr 14 16:16:44 2010 +0300 @@ -24,6 +24,7 @@ #include #include #include +#include #include "wrtdata.h" #include "wrtdatapluginconst.h" @@ -77,12 +78,12 @@ } if(iObserver) { - TRAP_IGNORE(iObserver->ReleaseL() ); delete iObserver; iObserver = NULL; } if( iInterface ) { + // This will also release all the registered observers iInterface->Close(); iInterface = NULL; } @@ -100,6 +101,7 @@ iMenuItems.ResetAndDestroy(); iMenuTriggers.ResetAndDestroy(); // not owned + iCpsExecute = NULL; iPlugin = NULL; } @@ -232,24 +234,28 @@ void CWrtData::UpdatePublisherStatusL() { // Resent the plugin status to publisher - ActivateL(); + CLiwDefaultList* actions= CLiwDefaultList::NewLC(); + actions->AppendL( TLiwVariant( KActive )); if ( iPlugin->IsActive() ) { - ResumeL(); + actions->AppendL( TLiwVariant( KResume ) ); } else { - SuspendL(); + actions->AppendL( TLiwVariant( KSuspend )); } // forward the network status if it uses. if ( iPlugin->NetworkStatus() == CWrtDataPlugin::EOnline ) { - OnLineL(); + actions->AppendL( TLiwVariant( KOnLine )); } else if ( iPlugin->NetworkStatus() == CWrtDataPlugin::EOffline ) { - OffLineL(); + actions->AppendL( TLiwVariant( KOffLine)); } + + ReSendNotificationL( actions ); + CleanupStack::PopAndDestroy( actions ); } // --------------------------------------------------------------------------- @@ -454,60 +460,6 @@ } // --------------------------------------------------------------------------- -// CWrtData::ActivateL -// --------------------------------------------------------------------------- -// -void CWrtData::ActivateL() - { - ChangePublisherStatusL( KActive ); - } - -// --------------------------------------------------------------------------- -// CWrtData::ResumeL -// --------------------------------------------------------------------------- -// -void CWrtData::ResumeL() - { - ChangePublisherStatusL( KResume ); - } - -// --------------------------------------------------------------------------- -// CWrtData::SuspendL -// --------------------------------------------------------------------------- -// -void CWrtData::SuspendL() - { - ChangePublisherStatusL( KSuspend ); - } - -// --------------------------------------------------------------------------- -// CWrtData::DeActivateL -// --------------------------------------------------------------------------- -// -void CWrtData::DeActivateL() - { - ChangePublisherStatusL( KDeActive ); - } - -// --------------------------------------------------------------------------- -// CWrtData::OnLineL -// --------------------------------------------------------------------------- -// -void CWrtData::OnLineL() - { - ChangePublisherStatusL( KOnLine ); - } - -// --------------------------------------------------------------------------- -// CWrtData::offLineL -// --------------------------------------------------------------------------- -// -void CWrtData::OffLineL() - { - ChangePublisherStatusL( KOffLine ); - } - -// --------------------------------------------------------------------------- // CWrtData::CreateFilterL // --------------------------------------------------------------------------- // @@ -579,44 +531,21 @@ } // --------------------------------------------------------------------------- -// CWrtData::PublisherStatusL +// NotifyPublisherL // --------------------------------------------------------------------------- // -void CWrtData::ChangePublisherStatusL(const TDesC& aStatus) +void CWrtData::NotifyPublisherL(const TDesC8& aStatus) { - if( iContentId == NULL ) - { - return; - } - HBufC8* triggerName = HBufC8::NewLC(KWRTContentNameMaxLength); - triggerName->Des().Copy(aStatus); - - CLiwGenericParamList* inParamList = &iServiceHandler->InParamListL(); - CLiwGenericParamList* outParamList = &iServiceHandler->OutParamListL(); - - TLiwGenericParam type( KType, TLiwVariant( KPubData ) ); - inParamList->AppendL( type ); - - CLiwDefaultMap* filter = CreateFilterLC(); - filter->InsertL(KActionTrigger, TLiwVariant(triggerName->Des()) ); - - TLiwGenericParam item( KFilter, TLiwVariant( filter )); - inParamList->AppendL( item ); - - if(iInterface) - { - iInterface->ExecuteCmdL( KExecuteAction, *inParamList, *outParamList); - } - else - { - User::Leave( KErrNotSupported ); - } - CleanupStack::PopAndDestroy( filter ); - - inParamList->Reset(); - outParamList->Reset(); - CleanupStack::PopAndDestroy( triggerName ); - } + if( iCpsExecute == NULL ) + { + User::Leave( KErrNotSupported ); + } + + CLiwDefaultMap* filter = CreateFilterLC(); + // Add execute command triggers. Idle framework will execute + iCpsExecute->AddCommand( iPluginId, KPubData, filter, aStatus ); + CleanupStack::PopAndDestroy( filter ); + } // --------------------------------------------------------------------------- // CWrtData::GetMenuItemsL @@ -786,3 +715,46 @@ CleanupStack::PopAndDestroy( &lsSession ); } + +// --------------------------------------------------------------------------- +// ReSendNotificationL +// --------------------------------------------------------------------------- +// +void CWrtData::ReSendNotificationL(CLiwDefaultList* aActionsList) + { + if( iInterface == NULL ) + { + User::Leave( KErrNotSupported ); + } + + CLiwGenericParamList* inParamList = &iServiceHandler->InParamListL(); + CLiwGenericParamList* outParamList = &iServiceHandler->OutParamListL(); + + TLiwGenericParam type( KType, TLiwVariant( KPubData ) ); + inParamList->AppendL( type ); + + CLiwDefaultMap* filter = CreateFilterLC(); + // add list of action triggers to execute + filter->InsertL(KActionTrigger, TLiwVariant(aActionsList) ); + + TLiwGenericParam item( KFilter, TLiwVariant( filter )); + inParamList->AppendL( item ); + iInterface->ExecuteCmdL( KExecuteAction, *inParamList, *outParamList); + CleanupStack::PopAndDestroy( filter ); + outParamList->Reset(); + inParamList->Reset(); + + } + +// --------------------------------------------------------------------------- +// SetCommandBuffer +// --------------------------------------------------------------------------- +// +void CWrtData::SetCommandBuffer(TAny* aAny, const TDesC8& aNameSpace ) + { + iPluginId.Copy(aNameSpace); + iCpsExecute = reinterpret_cast ( aAny ); + } + +// End of file + diff -r 15e4dd19031c -r a0713522ab97 idlefw/plugins/wrtdataplugin/src/wrtdataobserver.cpp --- a/idlefw/plugins/wrtdataplugin/src/wrtdataobserver.cpp Wed Mar 31 22:04:35 2010 +0300 +++ b/idlefw/plugins/wrtdataplugin/src/wrtdataobserver.cpp Wed Apr 14 16:16:44 2010 +0300 @@ -65,7 +65,6 @@ // CWrtDataObserver ::~CWrtDataObserver () { - TRAP_IGNORE( ReleaseL()); iInterface = NULL; iData = NULL; } @@ -186,29 +185,5 @@ CleanupStack::PopAndDestroy( inParamList ); } -// --------------------------------------------------------------------------- -// CWrtDataObserver ::ReleaseL -// Sing off to notification -// --------------------------------------------------------------------------- -// -void CWrtDataObserver ::ReleaseL() - { - if( iInterface ) - { - CLiwGenericParamList* inParamList = CLiwGenericParamList::NewL(); - CleanupStack::PushL( inParamList ); - CLiwGenericParamList* outParamList = CLiwGenericParamList::NewL(); - CleanupStack::PushL( outParamList ); - - TInt err(KErrNone); - TRAP(err, iInterface->ExecuteCmdL( - KRequestNotification, - *inParamList, - *outParamList, - KLiwOptCancel, - this )); - - CleanupStack::PopAndDestroy( outParamList ); - CleanupStack::PopAndDestroy( inParamList ); - } - } +// End of file + diff -r 15e4dd19031c -r a0713522ab97 idlefw/plugins/wrtdataplugin/src/wrtdataplugin.cpp --- a/idlefw/plugins/wrtdataplugin/src/wrtdataplugin.cpp Wed Mar 31 22:04:35 2010 +0300 +++ b/idlefw/plugins/wrtdataplugin/src/wrtdataplugin.cpp Wed Apr 14 16:16:44 2010 +0300 @@ -148,7 +148,7 @@ if( aReason == EPluginShutdown || aReason == ESystemShutdown ) { - TRAP_IGNORE(iData->DeActivateL()); + TRAP_IGNORE(iData->NotifyPublisherL( KDeActive )); } } @@ -163,7 +163,7 @@ { iPluginState = EResume; - TRAP_IGNORE( iData->ResumeL() ); + TRAP_IGNORE( iData->NotifyPublisherL( KResume )); } } @@ -178,7 +178,7 @@ { iPluginState = ESuspend; - TRAP_IGNORE ( iData->SuspendL() ); + TRAP_IGNORE ( iData->NotifyPublisherL( KSuspend )); } } @@ -189,12 +189,8 @@ // void CWrtDataPlugin::SetOnline() { - if ( iNetworkStatus != EOnline ) - { - iNetworkStatus = EOnline; - - TRAP_IGNORE( iData->OnLineL() ); - } + iNetworkStatus = EOnline; + TRAP_IGNORE( iData->NotifyPublisherL( KOnLine )); } // ---------------------------------------------------------------------------- @@ -204,12 +200,8 @@ // void CWrtDataPlugin::SetOffline() { - if ( iNetworkStatus != EOffline ) - { - iNetworkStatus = EOffline; - - TRAP_IGNORE( iData->OffLineL() ); - } + iNetworkStatus = EOffline; + TRAP_IGNORE( iData->NotifyPublisherL( KOffLine )); } // ---------------------------------------------------------------------------- @@ -316,7 +308,7 @@ iData->RegisterL(); // Activate the publisher - iData->ActivateL(); + iData->NotifyPublisherL( KActive ); } settingItemsArr.Reset(); @@ -328,6 +320,19 @@ } // ---------------------------------------------------------------------------- +// CWrtDataPlugin::SetProperty +// +// ---------------------------------------------------------------------------- +// +void CWrtDataPlugin::SetProperty( TProperty aProperty, TAny* aAny ) + { + if (aProperty == ECpsCmdBuffer ) + { + iData->SetCommandBuffer( aAny, PublisherInfo().Namespace() ); + } + } + +// ---------------------------------------------------------------------------- // CWrtDataPlugin::GetProperty // // ---------------------------------------------------------------------------- diff -r 15e4dd19031c -r a0713522ab97 idlefw/src/framework/aicpscommandbuffer.cpp --- a/idlefw/src/framework/aicpscommandbuffer.cpp Wed Mar 31 22:04:35 2010 +0300 +++ b/idlefw/src/framework/aicpscommandbuffer.cpp Wed Apr 14 16:16:44 2010 +0300 @@ -31,7 +31,8 @@ _LIT8( KCPSConfigurationIf, "IContentPublishing" ); _LIT8( KCPS, "Service.ContentPublishing" ); _LIT8( KExecuteAction, "ExecuteAction" ); - +_LIT8( KExecuteMultipleActions, "ExecuteMultipleActions" ); +_LIT8( KFilters, "filters" ); // ======== LOCAL FUNCTIONS ======== // ======== MEMBER FUNCTIONS ======== @@ -235,17 +236,27 @@ if(iCpsInterface) { + __PRINTS( "CAiCpsCommandBuffer::DoFlush : Execute" ); TInt pluginCount = iPlugins.Count(); + CLiwDefaultList* pluginCmdList = CLiwDefaultList::NewLC(); + for (TInt i=0; i < pluginCount; i++ ) { - CLiwGenericParamList* inParamList = iPlugins[i]->InParamListLC(); - CLiwGenericParamList* outParamList = CLiwGenericParamList::NewLC(); - __PRINTS( "CAiCpsCommandBuffer::DoFlush : Execute" ); - iCpsInterface->ExecuteCmdL( KExecuteAction, *inParamList, *outParamList); - - CleanupStack::PopAndDestroy( outParamList ); - CleanupStack::PopAndDestroy( inParamList ); + CLiwDefaultMap* inParamMap = iPlugins[i]->InParamMapLC(); + pluginCmdList->AppendL( inParamMap ); + CleanupStack::PopAndDestroy( inParamMap ); } + CLiwGenericParamList* inParamList = CLiwGenericParamList::NewLC(); + CLiwGenericParamList* outParamList = CLiwGenericParamList::NewLC(); + + TLiwGenericParam item( KFilters, TLiwVariant ( pluginCmdList)); + inParamList->AppendL( item ); + + iCpsInterface->ExecuteCmdL( KExecuteMultipleActions, *inParamList, *outParamList); + + CleanupStack::PopAndDestroy( outParamList ); + CleanupStack::PopAndDestroy( inParamList ); + CleanupStack::PopAndDestroy( pluginCmdList ); } else { diff -r 15e4dd19031c -r a0713522ab97 idlefw/src/framework/aicpsexecuteparam.cpp --- a/idlefw/src/framework/aicpsexecuteparam.cpp Wed Mar 31 22:04:35 2010 +0300 +++ b/idlefw/src/framework/aicpsexecuteparam.cpp Wed Apr 14 16:16:44 2010 +0300 @@ -105,18 +105,14 @@ } // --------------------------------------------------------------------------- -// CAiCpsExecuteParam::InParamListLC +// CAiCpsExecuteParam::InParamMapLC // // --------------------------------------------------------------------------- // -CLiwGenericParamList* CAiCpsExecuteParam::InParamListLC() +CLiwDefaultMap* CAiCpsExecuteParam::InParamMapLC() { - CLiwGenericParamList* paramList = CLiwGenericParamList::NewLC(); - - TLiwGenericParam pluginId( KPluginId, TLiwVariant( iPluginId ) ); - paramList->AppendL( pluginId ); - TLiwGenericParam type( KType, TLiwVariant( iRegistryType ) ); - paramList->AppendL( type ); + CLiwDefaultMap* inParamMap = CLiwDefaultMap::NewLC(); + inParamMap->InsertL( KType, TLiwVariant( *iRegistryType )); CLiwDefaultMap* filter = CLiwDefaultMap::NewLC(); filter->InsertL( KPublisherId, TLiwVariant(iPublisher )); @@ -129,12 +125,11 @@ actionsToLaunch->AppendL( TLiwVariant( *iActions[i])); } filter->InsertL(KActionTrigger, TLiwVariant(actionsToLaunch) ); - - TLiwGenericParam item( KFilter, TLiwVariant( filter )); - paramList->AppendL( item ); + inParamMap->InsertL( KFilter, TLiwVariant( filter )); + CleanupStack::PopAndDestroy( actionsToLaunch ); CleanupStack::PopAndDestroy( filter ); - return paramList; + return inParamMap; } // --------------------------------------------------------------------------- diff -r 15e4dd19031c -r a0713522ab97 idlefw/src/framework/aifw.cpp --- a/idlefw/src/framework/aifw.cpp Wed Mar 31 22:04:35 2010 +0300 +++ b/idlefw/src/framework/aifw.cpp Wed Apr 14 16:16:44 2010 +0300 @@ -32,7 +32,6 @@ #include #include -#include #include #include @@ -155,9 +154,6 @@ delete iNotifyHandlerESS; iNotifyHandlerESS = NULL; - - Release( iIdleRestartObserver ); - iIdleRestartObserver = NULL; delete iWsPluginManager; iWsPluginManager = NULL; @@ -243,10 +239,6 @@ CCenRepNotifyHandler::EIntKey, KAIExternalStatusScreen ); iNotifyHandlerESS->StartListeningL(); - - iIdleRestartObserver = AiUtility::CreatePSPropertyObserverL( - TCallBack( HandleRestartEvent, this ), - KPSUidAiInformation, KActiveIdleRestartAI2 ); __PRINTS( "*** CAiFw::AppEnvReadyL - done" ); } @@ -342,9 +334,6 @@ delete iWsPluginManager; iWsPluginManager = NULL; - Release( iIdleRestartObserver ); - iIdleRestartObserver = NULL; - iStateProvider->Stop(); } } @@ -498,30 +487,6 @@ } // ---------------------------------------------------------------------------- -// CAiFw::HandleRestartEvent() -// -// ---------------------------------------------------------------------------- -// -TInt CAiFw::HandleRestartEvent( TAny* aSelf ) - { - CAiFw* self = static_cast( aSelf ); - - TInt value( 0 ); - - if ( self->iIdleRestartObserver ) - { - TInt err( self->iIdleRestartObserver->Get( value ) ); - - if ( err == KErrNone && value == KActiveIdleRestartCode ) - { - self->iUiControllerManager->ExitMainController(); - } - } - - return KErrNone; - } - -// ---------------------------------------------------------------------------- // CAiFw::Repository() // // ---------------------------------------------------------------------------- diff -r 15e4dd19031c -r a0713522ab97 idlefw/src/framework/aipluginfactory.cpp --- a/idlefw/src/framework/aipluginfactory.cpp Wed Mar 31 22:04:35 2010 +0300 +++ b/idlefw/src/framework/aipluginfactory.cpp Wed Apr 14 16:16:44 2010 +0300 @@ -143,34 +143,43 @@ // ---------------------------------------------------------------------------- // TInt CAiPluginFactory::CreatePlugin( - const THsPublisherInfo& aPublisherInfo ) - { + const THsPublisherInfo& aPublisherInfo ) + { __PRINTS( "*** CAiPluginFactory::CreatePlugin: Start ***" ); - + if ( IsRecyclable( aPublisherInfo ) ) { CHsContentPublisher* plugin( PluginByUid( aPublisherInfo.Uid() ) ); - + if ( plugin ) { + if ( aPublisherInfo.Namespace() == KNullDesC8 ) + { + // No namespace available + __PRINTS( "*** CAiPluginFactory::CreatePlugin: Done -\ + Failed to Load Plug-in: KErrNotSupported ***" ); + return KErrNotSupported; + } + // Plugin already exists, update its namespace THsPublisherInfo& info( const_cast< THsPublisherInfo& >( plugin->PublisherInfo() ) ); - + info.iNamespace.Copy( aPublisherInfo.Namespace() ); - - __PRINTS( "*** CAiPluginFactory::CreatePlugin: Done - Plugin recycled ***" ); - + + __PRINTS( "*** CAiPluginFactory::CreatePlugin: Done -\ + Plugin recycled ***" ); + return KErrNone; } } - + TBool implFound( EFalse ); - + for( TInt i = 0; i < iEComPlugins.Count(); i++ ) { CImplementationInformation* information( iEComPlugins[i] ); - + if( information->ImplementationUid().iUid == aPublisherInfo.Uid().iUid ) { implFound = ETrue; @@ -181,29 +190,31 @@ if( aPublisherInfo.Namespace() == KNullDesC8 || !implFound ) { // No namespace available or no ecom implementation available - __PRINTS( "*** CAiPluginFactory::CreatePlugin: Done - Failed to Load Plug-in: KErrNotSupported ***" ); + __PRINTS( "*** CAiPluginFactory::CreatePlugin: Done -\ + Failed to Load Plug-in: KErrNotSupported ***" ); return KErrNotSupported; } CHsContentPublisher* plugin( PluginByInfo( aPublisherInfo ) ); - + if( plugin ) - { - __PRINTS( "*** CAiPluginFactory::CreatePlugin: Done - Failed to Load Plug-in: KErrAlreadyExists ***" ); + { + __PRINTS( "*** CAiPluginFactory::CreatePlugin: Done -\ + Failed to Load Plug-in: KErrAlreadyExists ***" ); return KErrAlreadyExists; } - + TInt err( KErrNone ); - + TRAP( err, CreatePluginL( aPublisherInfo ) ); __PRINTS( "*** CAiPluginFactory::CreatePlugin: Done - Load Plug-in ***" ); - - return err; + + return err; } - + // ---------------------------------------------------------------------------- // CAiPluginFactory::DestroyPlugin() // diff -r 15e4dd19031c -r a0713522ab97 idlefw/src/framework/aistatemanager.cpp --- a/idlefw/src/framework/aistatemanager.cpp Wed Mar 31 22:04:35 2010 +0300 +++ b/idlefw/src/framework/aistatemanager.cpp Wed Apr 14 16:16:44 2010 +0300 @@ -30,12 +30,6 @@ #include "aistatemanager.h" -#include - -_LIT( KResourceDrive, "Z:" ); -_LIT( KResourceFile, "homescreen.rsc" ); -_LIT( KResourcePath, "\\resource\\apps\\" ); - // ======== LOCAL FUNCTIONS ======== // ---------------------------------------------------------------------------- // StartReason @@ -120,10 +114,6 @@ // CAiStateManager::~CAiStateManager() { - if( iWaitDialog ) - { - delete iWaitDialog; - } delete iCommandBuffer; iReloadPlugins.Close(); } @@ -442,15 +432,6 @@ iHalt = aStart; - if ( aStart ) - { - TRAP_IGNORE( StartWaitDialogL() ); - } - else - { - TRAP_IGNORE( StopWaitDialogL() ); - } - RPointerArray< CHsContentPublisher >& plugins( iFactory.Publishers() ); for( TInt i = 0; i < plugins.Count(); i++ ) @@ -649,59 +630,4 @@ __PRINTS( "CAiStateManager::NotifyReleasePlugins: return void" ); } -// ---------------------------------------------------------------------------- -// CAiStateManager::StartWaitDialogL() -// -// ---------------------------------------------------------------------------- -// -void CAiStateManager::StartWaitDialogL() - { - RConeResourceLoader resourceLoader( *CCoeEnv::Static() ); - TFullName fileName( KResourceDrive ); - fileName.Append( KResourcePath ); - fileName.Append( KResourceFile ); - - // Get language of resource file. - BaflUtils::NearestLanguageFile( CCoeEnv::Static()->FsSession(), fileName ); - - // Open resource file. - resourceLoader.OpenL( fileName ); - - if( iWaitDialog ) - { - delete iWaitDialog; - iWaitDialog = NULL; - } - - // For the wait dialog - iWaitDialog = new (ELeave) CAknWaitDialog( - REINTERPRET_CAST( CEikDialog**, &iWaitDialog ) ); - iWaitDialog->SetCallback( this ); - iWaitDialog->ExecuteLD( R_HOMESCREEN_WAIT_DIALOG ); - resourceLoader.Close(); - } - -// ---------------------------------------------------------------------------- -// CAiStateManager::StopWaitDialogL() -// -// ---------------------------------------------------------------------------- -// -void CAiStateManager::StopWaitDialogL() - { - if( iWaitDialog ) - { - iWaitDialog->ProcessFinishedL(); - } - } - -// ---------------------------------------------------------------------------- -// CAiStateManager::DialogDismissedL() -// -// ---------------------------------------------------------------------------- -// -void CAiStateManager::DialogDismissedL(TInt /*aButtonId*/) - { - // No implementation required. - } - // End of file diff -r 15e4dd19031c -r a0713522ab97 idlefw/src/framework/homescreen.rss --- a/idlefw/src/framework/homescreen.rss Wed Mar 31 22:04:35 2010 +0300 +++ b/idlefw/src/framework/homescreen.rss Wed Apr 14 16:16:44 2010 +0300 @@ -60,24 +60,3 @@ #endif // __SCALABLE_ICONS }; } - -RESOURCE DIALOG r_homescreen_wait_dialog - { - flags = EAknWaitNoteFlags; - buttons = R_AVKON_SOFTKEYS_EMPTY; - items = - { - DLG_LINE - { - type = EAknCtNote; - id = EGeneralNote; - control= AVKON_NOTE - { - layout = EWaitLayout; - singular_label = qtn_hs_backup_use_prevented; - animation = R_QGN_GRAF_WAIT_BAR_ANIM; - }; - } - }; - } - diff -r 15e4dd19031c -r a0713522ab97 idlefw/src/idleint/aiidleappregister.cpp --- a/idlefw/src/idleint/aiidleappregister.cpp Wed Mar 31 22:04:35 2010 +0300 +++ b/idlefw/src/idleint/aiidleappregister.cpp Wed Apr 14 16:16:44 2010 +0300 @@ -89,33 +89,6 @@ KTelephonyInformationReadPolicy, KTelephonyInformationWritePolicy ); } - - TInt DefineIdleAI2RestartPS() - { - return RProperty::Define( - KPSUidAiInformation, - KActiveIdleRestartAI2, - RProperty::EInt, - KTelephonyInformationReadPolicy, - KTelephonyInformationWritePolicy ); - } - TInt SetIdleAI2RestartPS() - { - return RProperty::Set( - KPSUidAiInformation, - KActiveIdleRestartAI2, - 0 ); - } - - TInt DefineIdleLaunchPS() - { - return RProperty::Define( - KPSUidAiInformation, - KActiveIdleLaunch, - RProperty::EInt, - ECapabilityReadDeviceData, - ECapabilityWriteDeviceData ); - } TInt DefineIdleSendNumKeysToPhonePS() { @@ -166,8 +139,6 @@ DefineIdleSimRegFailedReceivedPS(); - DefineIdleLaunchPS(); - // Set the default value to 1 so the send key press is reacted SetIdleSendKeyPS(); @@ -177,10 +148,6 @@ // Define idle state key DefineIdleStatePS(); - DefineIdleAI2RestartPS(); - - SetIdleAI2RestartPS(); - DefineIdleSendNumKeysToPhonePS(); SetIdleSendNumKeysToPhonePS();