Remerge fixes for bugs 1726 and 1960.
--- a/contentcontrolsrv/ccsrv/inc/ccsrv.h Fri Apr 23 14:24:36 2010 +0100
+++ b/contentcontrolsrv/ccsrv/inc/ccsrv.h Fri Apr 23 14:32:53 2010 +0100
@@ -156,6 +156,16 @@
};
RArray<TCcProvider> iProviders;
+ /**
+ * Observer list
+ */
+ struct TCcObserver
+ {
+ TUint32 iProviderId;
+ TUint32 iObserver;
+ };
+ RArray<TCcObserver> iObservers;
+
};
--- a/contentcontrolsrv/ccsrv/src/ccsrv.cpp Fri Apr 23 14:24:36 2010 +0100
+++ b/contentcontrolsrv/ccsrv/src/ccsrv.cpp Fri Apr 23 14:32:53 2010 +0100
@@ -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 );
}
// -----------------------------------------------------------------------------
--- a/contentcontrolsrv/hsccclient/hsccproviderclient/src/hsccproviderclient.cpp Fri Apr 23 14:24:36 2010 +0100
+++ b/contentcontrolsrv/hsccclient/hsccproviderclient/src/hsccproviderclient.cpp Fri Apr 23 14:32:53 2010 +0100
@@ -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;
--- a/contentcontrolsrv/hscontentinfo/bwins/hscontentinfo.def Fri Apr 23 14:24:36 2010 +0100
+++ b/contentcontrolsrv/hscontentinfo/bwins/hscontentinfo.def Fri Apr 23 14:32:53 2010 +0100
@@ -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 &)
--- a/contentcontrolsrv/hscontentinfo/eabi/hscontentinfo.def Fri Apr 23 14:24:36 2010 +0100
+++ b/contentcontrolsrv/hscontentinfo/eabi/hscontentinfo.def Fri Apr 23 14:32:53 2010 +0100
@@ -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
--- a/contentcontrolsrv/hscontentinfo/src/hscontentinfo.cpp Fri Apr 23 14:24:36 2010 +0100
+++ b/contentcontrolsrv/hscontentinfo/src/hscontentinfo.cpp Fri Apr 23 14:32:53 2010 +0100
@@ -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()
// -----------------------------------------------------------------------
//
--- a/contentpublishingsrv/contentpublishingserver/cpserver/src/cpactiondatacache.cpp Fri Apr 23 14:24:36 2010 +0100
+++ b/contentpublishingsrv/contentpublishingserver/cpserver/src/cpactiondatacache.cpp Fri Apr 23 14:32:53 2010 +0100
@@ -80,7 +80,10 @@
//
CCPActionDataCache::~CCPActionDataCache()
{
- iInternalList->Close();
+ if (iInternalList)
+ {
+ iInternalList->Close();
+ }
}
// ---------------------------------------------------------------------------
--- a/contentpublishingsrv/contentpublishingserver/cpserver/src/cpserverdatamanager.cpp Fri Apr 23 14:24:36 2010 +0100
+++ b/contentpublishingsrv/contentpublishingserver/cpserver/src/cpserverdatamanager.cpp Fri Apr 23 14:32:53 2010 +0100
@@ -491,11 +491,11 @@
CLiwDefaultList* aChangeInfoList )
{
TLiwVariant resultVar = aParam->Value();
+ resultVar.PushL();
if ( resultVar.TypeId() == EVariantTypeMap )
{
for ( TInt i = 0; i<aActionTriggers->Count(); 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 );
}
--- a/contentpublishingsrv/contentpublishingserver/cpserver/src/cpserversession.cpp Fri Apr 23 14:24:36 2010 +0100
+++ b/contentpublishingsrv/contentpublishingserver/cpserver/src/cpserversession.cpp Fri Apr 23 14:32:53 2010 +0100
@@ -340,7 +340,7 @@
cpMaps->AtL(i, mapVariant);
const CCPLiwMap* map =
static_cast<const CCPLiwMap*> (mapVariant.AsMap());
- ExecuteActionL(map, ETrue, options);
+ TRAP_IGNORE(ExecuteActionL(map, ETrue, options));
CleanupStack::PopAndDestroy(&mapVariant);
}
--- a/homescreenpluginsrv/hspsmanager/inc/hspsinstallationhandler.h Fri Apr 23 14:24:36 2010 +0100
+++ b/homescreenpluginsrv/hspsmanager/inc/hspsinstallationhandler.h Fri Apr 23 14:32:53 2010 +0100
@@ -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.
--- a/homescreenpluginsrv/hspsmanager/inc/hspsrominstaller.h Fri Apr 23 14:24:36 2010 +0100
+++ b/homescreenpluginsrv/hspsmanager/inc/hspsrominstaller.h Fri Apr 23 14:32:53 2010 +0100
@@ -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<HBufC>& 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<HBufC>& aFolders );
+
void DoFindInstallationFilesL(
RPointerArray<HBufC>& aFolders,
const TDesC& aPath );
--- a/homescreenpluginsrv/hspsmanager/inc/hspsserverutil.h Fri Apr 23 14:24:36 2010 +0100
+++ b/homescreenpluginsrv/hspsmanager/inc/hspsserverutil.h Fri Apr 23 14:32:53 2010 +0100
@@ -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<TInt>& aDriveArray,
+ const TDesC& aPath,
+ RPointerArray<HBufC>& aFolders,
+ TBool aRecursive = EFalse );
+
private:
/**
* Internal method. Do not call directly!
--- a/homescreenpluginsrv/hspsmanager/src/hspsinstallationhandler.cpp Fri Apr 23 14:24:36 2010 +0100
+++ b/homescreenpluginsrv/hspsmanager/src/hspsinstallationhandler.cpp Fri Apr 23 14:32:53 2010 +0100
@@ -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<TInt> 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<HBufC> locales;
+ CleanupClosePushL( locales );
+ hspsServerUtil::FindFilesRecursivelyL(
+ iFsSession,
+ driveArray,
+ aPath,
+ locales,
+ EFalse );
+
+ // Find all file entries under the Xuikon folders in either drive
+ RPointerArray<HBufC> 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
--- a/homescreenpluginsrv/hspsmanager/src/hspsmaintenancehandler.cpp Fri Apr 23 14:24:36 2010 +0100
+++ b/homescreenpluginsrv/hspsmanager/src/hspsmaintenancehandler.cpp Fri Apr 23 14:32:53 2010 +0100
@@ -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 );
--- a/homescreenpluginsrv/hspsmanager/src/hspsrominstaller.cpp Fri Apr 23 14:24:36 2010 +0100
+++ b/homescreenpluginsrv/hspsmanager/src/hspsrominstaller.cpp Fri Apr 23 14:32:53 2010 +0100
@@ -105,6 +105,43 @@
}
// -----------------------------------------------------------------------------
+// ChspsRomInstaller::InstallL()
+// -----------------------------------------------------------------------------
+//
+void ChspsRomInstaller::InstallL()
+ {
+ RPointerArray<HBufC> 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;
--- a/homescreenpluginsrv/hspsmanager/src/hspsserverutil.cpp Fri Apr 23 14:24:36 2010 +0100
+++ b/homescreenpluginsrv/hspsmanager/src/hspsserverutil.cpp Fri Apr 23 14:32:53 2010 +0100
@@ -1944,6 +1944,76 @@
}
// -----------------------------------------------------------------------------
+// hspsServerUtil::FindFilesRecursivelyL
+// -----------------------------------------------------------------------------
+void hspsServerUtil::FindFilesRecursivelyL(
+ RFs& aFs,
+ const RArray<TInt>& aDriveArray,
+ const TDesC& aPath,
+ RPointerArray<HBufC>& 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
// -----------------------------------------------------------------------------
//
--- a/homescreenpluginsrv/hspsmanager/src/hspsthemeserver.cpp Fri Apr 23 14:24:36 2010 +0100
+++ b/homescreenpluginsrv/hspsmanager/src/hspsthemeserver.cpp Fri Apr 23 14:32:53 2010 +0100
@@ -2778,44 +2778,8 @@
iRomInstaller->SetLogBus( iLogBus );
#endif
- RPointerArray<HBufC> 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;
--- a/homescreensrv_plat/ai_content_model_api/group/bld.inf Fri Apr 23 14:24:36 2010 +0100
+++ b/homescreensrv_plat/ai_content_model_api/group/bld.inf Fri Apr 23 14:32:53 2010 +0100
@@ -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)
--- a/homescreensrv_plat/ai_content_model_api/inc/aieventhandlerextension.h Fri Apr 23 14:24:36 2010 +0100
+++ /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 <e32std.h>
-
-/**
- * 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: <event name>(<event params>),
- * where <event name> is mapped by the framework to unique
- * identifier supplied in aEvent, <event params> 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: <event name>(<event params>),
- * where <event name> mapping to unique identifier supplied by event
- * is failed by the frame work then the <event name> and
- * <event params> 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
--- a/homescreensrv_plat/ai_content_model_api/inc/aipropertyextension.h Fri Apr 23 14:24:36 2010 +0100
+++ /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 <e32std.h>
-
-/**
- * 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<KAiPublisherNameMaxLength> TAiPublisherName;
-
-/**
- * Content publisher namespace buffer
- */
-typedef TBuf8<KAiPublisherNamespaceMaxLength> 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<const TAiPublisherInfo*>(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 <aipropertyextension.inl>
-
-#endif // M_AIPROPERTYEXTENSION_H
--- a/homescreensrv_plat/ai_content_model_api/inc/aipropertyextension.inl Fri Apr 23 14:24:36 2010 +0100
+++ /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<TAiPublisherInfo*>(this->GetPropertyL(EAiPublisherInfo));
- }
--- a/homescreensrv_plat/ai_plugin_information_api/group/bld.inf Fri Apr 23 14:24:36 2010 +0100
+++ b/homescreensrv_plat/ai_plugin_information_api/group/bld.inf Fri Apr 23 14:32:53 2010 +0100
@@ -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)
--- a/homescreensrv_plat/ai_plugin_information_api/inc/activeidle2domainpskeys.h Fri Apr 23 14:24:36 2010 +0100
+++ b/homescreensrv_plat/ai_plugin_information_api/inc/activeidle2domainpskeys.h Fri Apr 23 14:32:53 2010 +0100
@@ -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
--- a/homescreensrv_plat/ai_plugin_information_api/inc/activeidle2internalpskeys.h Fri Apr 23 14:24:36 2010 +0100
+++ /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__
--- a/homescreensrv_plat/ai_plugin_management_api/group/bld.inf Fri Apr 23 14:24:36 2010 +0100
+++ b/homescreensrv_plat/ai_plugin_management_api/group/bld.inf Fri Apr 23 14:32:53 2010 +0100
@@ -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)
--- a/homescreensrv_plat/ai_plugin_management_api/inc/aicontentpublisher.h Fri Apr 23 14:24:36 2010 +0100
+++ /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 <ecom/ecom.h>
-#include <aicontentpublisheruid.hrh>
-
-/**
- * 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<MAiPropertyExtension*>(this);
- * }
- * else if (aUid == KExtensionUidEventHandler)
- * {
- * return static_cast<MAiEventHandlerExtension*>(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<CAiContentPublisher*> (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<CAiContentPublisher*> (ptr);
- }
-
-inline CAiContentPublisher::~CAiContentPublisher()
- {
- REComSession::DestroyedImplementation(iDestructKey);
- }
-
-#endif // C_AICONTENTPUBLISHER_H
--- a/homescreensrv_plat/ai_plugin_management_api/inc/aicontentpublisheruid.hrh Fri Apr 23 14:24:36 2010 +0100
+++ /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 <aicontentpublisheruid.hrh>
- * #include <ecom/registryinfov2.rh>
- *
- * #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
--- a/homescreensrv_plat/ai_utilities_api/group/bld.inf Fri Apr 23 14:24:36 2010 +0100
+++ b/homescreensrv_plat/ai_utilities_api/group/bld.inf Fri Apr 23 14:32:53 2010 +0100
@@ -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
--- a/homescreensrv_plat/ai_utilities_api/inc/aisecondarydisplayapi.h Fri Apr 23 14:24:36 2010 +0100
+++ /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
-
--- a/homescreensrv_plat/hs_content_control_api/inc/hscontentinfo.h Fri Apr 23 14:24:36 2010 +0100
+++ b/homescreensrv_plat/hs_content_control_api/inc/hscontentinfo.h Fri Apr 23 14:32:53 2010 +0100
@@ -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
--- a/homescreensrv_plat/sapi_actionhandler/actionhandlerplugins/group/ahplugins.mmp Fri Apr 23 14:24:36 2010 +0100
+++ b/homescreensrv_plat/sapi_actionhandler/actionhandlerplugins/group/ahplugins.mmp Fri Apr 23 14:32:53 2010 +0100
@@ -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
--- a/homescreensrv_plat/sapi_actionhandler/actionhandlerplugins/src/ahpapplauncher.cpp Fri Apr 23 14:24:36 2010 +0100
+++ b/homescreensrv_plat/sapi_actionhandler/actionhandlerplugins/src/ahpapplauncher.cpp Fri Apr 23 14:32:53 2010 +0100
@@ -23,6 +23,8 @@
#include <eikenv.h>
#include <eikappui.h>
#include <liwvariant.h>
+#include <gfxtranseffect/gfxtranseffect.h>
+#include <akntranseffect.h>
#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();
}
--- a/idlefw/inc/framework/aicpsexecuteparam.h Fri Apr 23 14:24:36 2010 +0100
+++ b/idlefw/inc/framework/aicpsexecuteparam.h Fri Apr 23 14:32:53 2010 +0100
@@ -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
--- a/idlefw/inc/framework/aifw.h Fri Apr 23 14:24:36 2010 +0100
+++ b/idlefw/inc/framework/aifw.h Fri Apr 23 14:32:53 2010 +0100
@@ -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;
--- a/idlefw/inc/framework/aistatemanager.h Fri Apr 23 14:24:36 2010 +0100
+++ b/idlefw/inc/framework/aistatemanager.h Fri Apr 23 14:32:53 2010 +0100
@@ -22,7 +22,6 @@
// System includes
#include <e32base.h>
#include <babitflags.h>
-#include <AknProgressDialog.h> // for MProgressDialogCallback
// User includes
#include <aifwdefs.h>
@@ -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<THsPublisherInfo> iReloadPlugins;
--- a/idlefw/inc/framework/aiuicontrollermanager.h Fri Apr 23 14:24:36 2010 +0100
+++ b/idlefw/inc/framework/aiuicontrollermanager.h Fri Apr 23 14:32:53 2010 +0100
@@ -26,7 +26,6 @@
// Forward declarations
class CAiUiController;
-class CAiContentPublisher;
class MAiMainUiController;
class CRepository;
class CCoeEnv;
--- a/idlefw/loc/aifw.loc Fri Apr 23 14:24:36 2010 +0100
+++ b/idlefw/loc/aifw.loc Fri Apr 23 14:32:53 2010 +0100
@@ -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."
--- a/idlefw/plugins/devicestatus/src/aioperatornamepublisher.cpp Fri Apr 23 14:24:36 2010 +0100
+++ b/idlefw/plugins/devicestatus/src/aioperatornamepublisher.cpp Fri Apr 23 14:32:53 2010 +0100
@@ -23,7 +23,7 @@
#include <ProEngFactory.h>
#include <MProfileEngine.h>
#include <MProfile.h>
-#include <MProfilename.h>
+#include <MProfileName.h>
#include <MProEngNotifyHandler.h>
#include <aidevstaplgres.rsg>
Binary file idlefw/plugins/mcsplugin/help/data/xhtml.zip has changed
--- a/idlefw/plugins/sapidataplugin/inc/sapidata.h Fri Apr 23 14:24:36 2010 +0100
+++ b/idlefw/plugins/sapidataplugin/inc/sapidata.h Fri Apr 23 14:32:53 2010 +0100
@@ -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
--- a/idlefw/plugins/sapidataplugin/inc/sapidatapluginconst.h Fri Apr 23 14:24:36 2010 +0100
+++ b/idlefw/plugins/sapidataplugin/inc/sapidatapluginconst.h Fri Apr 23 14:32:53 2010 +0100
@@ -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");
--- a/idlefw/plugins/sapidataplugin/src/sapidata.cpp Fri Apr 23 14:24:36 2010 +0100
+++ b/idlefw/plugins/sapidataplugin/src/sapidata.cpp Fri Apr 23 14:32:53 2010 +0100
@@ -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 );
--- a/idlefw/plugins/sapidataplugin/src/sapidataobserver.cpp Fri Apr 23 14:24:36 2010 +0100
+++ b/idlefw/plugins/sapidataplugin/src/sapidataobserver.cpp Fri Apr 23 14:32:53 2010 +0100
@@ -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
// ---------------------------------------------------------------------------
//
--- a/idlefw/plugins/sapidataplugin/src/sapidataplugin.cpp Fri Apr 23 14:24:36 2010 +0100
+++ b/idlefw/plugins/sapidataplugin/src/sapidataplugin.cpp Fri Apr 23 14:32:53 2010 +0100
@@ -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();
--- a/idlefw/plugins/wrtdataplugin/inc/wrtdata.h Fri Apr 23 14:24:36 2010 +0100
+++ b/idlefw/plugins/wrtdataplugin/inc/wrtdata.h Fri Apr 23 14:32:53 2010 +0100
@@ -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<KHsPublisherNamespaceMaxLength> iPluginId;
+ /** CPS Command Buffer Interface, Not Owned */
+ MAiCpsCommandBuffer* iCpsExecute;
/** Subscriber interface, owned */
MLiwInterface* iInterface;
/** Data Observer to CPS, owned */
--- a/idlefw/plugins/wrtdataplugin/inc/wrtdataobserver.h Fri Apr 23 14:24:36 2010 +0100
+++ b/idlefw/plugins/wrtdataplugin/inc/wrtdataobserver.h Fri Apr 23 14:32:53 2010 +0100
@@ -107,12 +107,6 @@
* @return void.
*/
void RegisterL( CLiwDefaultMap* aFilter );
-
- /**
- * Cancel all the registered notifications.
- * @return void.
- */
- void ReleaseL();
private:
// data
--- a/idlefw/plugins/wrtdataplugin/inc/wrtdataplugin.h Fri Apr 23 14:24:36 2010 +0100
+++ b/idlefw/plugins/wrtdataplugin/inc/wrtdataplugin.h Fri Apr 23 14:32:53 2010 +0100
@@ -139,6 +139,11 @@
/**
* @see CHsContentPublisher
+ */
+ void SetProperty( TProperty aProperty, TAny* aAny );
+
+ /**
+ * @see CHsContentPublisher
*/
TAny* GetProperty( TProperty aProperty );
--- a/idlefw/plugins/wrtdataplugin/inc/wrtdatapluginconst.h Fri Apr 23 14:24:36 2010 +0100
+++ b/idlefw/plugins/wrtdataplugin/inc/wrtdatapluginconst.h Fri Apr 23 14:32:53 2010 +0100
@@ -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");
--- a/idlefw/plugins/wrtdataplugin/src/wrtdata.cpp Fri Apr 23 14:24:36 2010 +0100
+++ b/idlefw/plugins/wrtdataplugin/src/wrtdata.cpp Fri Apr 23 14:32:53 2010 +0100
@@ -24,6 +24,7 @@
#include <apgcli.h>
#include <apgicnfl.h>
#include <bautils.h>
+#include <aicpscommandbuffer.h>
#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 <MAiCpsCommandBuffer* > ( aAny );
+ }
+
+// End of file
+
--- a/idlefw/plugins/wrtdataplugin/src/wrtdataobserver.cpp Fri Apr 23 14:24:36 2010 +0100
+++ b/idlefw/plugins/wrtdataplugin/src/wrtdataobserver.cpp Fri Apr 23 14:32:53 2010 +0100
@@ -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
+
--- a/idlefw/plugins/wrtdataplugin/src/wrtdataplugin.cpp Fri Apr 23 14:24:36 2010 +0100
+++ b/idlefw/plugins/wrtdataplugin/src/wrtdataplugin.cpp Fri Apr 23 14:32:53 2010 +0100
@@ -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
//
// ----------------------------------------------------------------------------
--- a/idlefw/src/framework/aicpscommandbuffer.cpp Fri Apr 23 14:24:36 2010 +0100
+++ b/idlefw/src/framework/aicpscommandbuffer.cpp Fri Apr 23 14:32:53 2010 +0100
@@ -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
{
--- a/idlefw/src/framework/aicpsexecuteparam.cpp Fri Apr 23 14:24:36 2010 +0100
+++ b/idlefw/src/framework/aicpsexecuteparam.cpp Fri Apr 23 14:32:53 2010 +0100
@@ -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;
}
// ---------------------------------------------------------------------------
--- a/idlefw/src/framework/aifw.cpp Fri Apr 23 14:24:36 2010 +0100
+++ b/idlefw/src/framework/aifw.cpp Fri Apr 23 14:32:53 2010 +0100
@@ -32,7 +32,6 @@
#include <activeidle2domaincrkeys.h>
#include <activeidle2domainpskeys.h>
-#include <activeidle2internalpskeys.h>
#include <aipspropertyobserver.h>
#include <aisystemuids.hrh>
@@ -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<CAiFw*>( 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()
//
// ----------------------------------------------------------------------------
--- a/idlefw/src/framework/aipluginfactory.cpp Fri Apr 23 14:24:36 2010 +0100
+++ b/idlefw/src/framework/aipluginfactory.cpp Fri Apr 23 14:32:53 2010 +0100
@@ -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()
//
--- a/idlefw/src/framework/aistatemanager.cpp Fri Apr 23 14:24:36 2010 +0100
+++ b/idlefw/src/framework/aistatemanager.cpp Fri Apr 23 14:32:53 2010 +0100
@@ -30,12 +30,6 @@
#include "aistatemanager.h"
-#include <homescreen.rsg>
-
-_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
--- a/idlefw/src/framework/homescreen.rss Fri Apr 23 14:24:36 2010 +0100
+++ b/idlefw/src/framework/homescreen.rss Fri Apr 23 14:32:53 2010 +0100
@@ -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;
- };
- }
- };
- }
-
--- a/idlefw/src/idleint/aiidleappregister.cpp Fri Apr 23 14:24:36 2010 +0100
+++ b/idlefw/src/idleint/aiidleappregister.cpp Fri Apr 23 14:32:53 2010 +0100
@@ -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();