diff -r f72a12da539e -r 5315654608de idlehomescreen/hscontentcontrol/inc/hscontentcontrolfactory.h --- a/idlehomescreen/hscontentcontrol/inc/hscontentcontrolfactory.h Thu Dec 17 08:40:49 2009 +0200 +++ b/idlehomescreen/hscontentcontrol/inc/hscontentcontrolfactory.h Thu Jan 07 12:39:41 2010 +0200 @@ -20,9 +20,14 @@ // System includes #include +#include + +// User includes +#include "hscontentcontrolecomobserver.h" // Forward declarations -#include +class CHsContentControlEComListener; + /** * Content control UI base class * @@ -34,7 +39,8 @@ * @lib hscontentcontrol.lib * @since S60 v5.0 */ -NONSHARABLE_CLASS( CHsContentControlFactory ) : public CBase +NONSHARABLE_CLASS( CHsContentControlFactory ) : public CBase, + public MHsContentControlEComObserver { public: // Constructor and destructor /** @@ -47,6 +53,13 @@ */ IMPORT_C ~CHsContentControlFactory(); +public: // from MHsContentControlEComObserver + + /** + * Notification of Ecom registry change. + */ + void HandleEComChangeEvent(); + private: // Constructors /** * Constructor @@ -65,20 +78,49 @@ const TDesC8& aControllerType ); private: - /** - * + /** + * Finds and returns loaded ContentControlUi object from array. */ MHsContentControlUi* FindHsContentController( const TDesC8& aControllerType ); + /** + * Checks if a plugin is removed/upgraded/downgraded. + */ + void CheckPluginChangesL(); + /** + * Finds plugin implementation info in the ECOM registry. + * @param aUid The plugin UID which is to be checked. + * @param aPluginArray The array of plugins which have been implemented. + * @return ImplementationInfo of plugin. + */ + CImplementationInformation* FindPluginImplInfo( + const TUid& aUid, const RImplInfoPtrArray& aPlugInArray ); + + /** + * Checks if an upgrade or downgrade of the existing plugins happened. + * @param aPluginImplInfo ImplInfo of plugin to be checked for upgrade/downgrade. + * @return ETrue if upgrade/downgrade, EFalse otherwise. + */ + TBool PluginUpgradeDowngrade( const CImplementationInformation& aPluginImplInfo ); + private: // Data /** - * + * An array of type CHsContentControlUi ( Owned ). */ RPointerArray< CHsContentControlUi > iHsContentControlUis; + + /** + * An array of type CImplementationInformation ( Owned ). + */ + RImplInfoPtrArray iImplArray; + /** + * An object of type CHsContentControlEComListener ( Owned ). + */ + CHsContentControlEComListener* iHsContentControlEComListener; };