diff -r a5a39a295112 -r 8baec10861af menucontentsrv/srvinc/menusrvappscanner.h --- a/menucontentsrv/srvinc/menusrvappscanner.h Wed Sep 01 12:22:09 2010 +0100 +++ b/menucontentsrv/srvinc/menusrvappscanner.h Tue Sep 14 21:55:16 2010 +0300 @@ -21,6 +21,7 @@ #include #include #include +#include #include #include "menuengoperation.h" #include "mcssatnotifier.h" @@ -28,7 +29,8 @@ #include "mcsfreespaceobserver.h" #include "mcsmenuitem.h" #include "mcsmenunotifier.h" -#include +#include "mcsinstallnotifier.h" + // FORWARD DECLARATION @@ -64,7 +66,7 @@ NONSHARABLE_CLASS( CMenuSrvAppScanner ) : public CActive, public MMenuEngOperation, public MApaAppListServObserver, public MCenRepNotifyHandlerCallback, public MMcsSATNotifierCallback, - MMcsFreeSpaceObserver + MMcsFreeSpaceObserver, MMcsInstallListener { public: // Constructor @@ -82,6 +84,13 @@ CMenuEng& aEng, CMenuSrvEngUtils& aSrvEngUtils ); +public: + /** + * Schedule appscanner run. + * Self complete active object. + */ + void ScheduleScan(); + private: // Constructors and destructor /** @@ -135,14 +144,18 @@ private: // from MApaAppListServObserver + /** + * Application list event. + * @param aEvent only one type event exists. + */ void HandleAppListEvent( TInt aEvent ); private: // from MCenRepNotifyHandlerCallback /** * Called if one of CR keys has changed - * @param aId Id of the key that has changed. - * @param aNewValue The new value of the key. + * @param aKey Id of the key that has changed. + * @param aNewValue The new value of the key. */ void HandleNotifyString( TUint32 aKey, const TDesC16& aNewValue ); @@ -156,12 +169,15 @@ */ void SATChangeL(); -public: - /** - * Schedule appscanner run. - * Self complete active object. - */ - void ScheduleScan(); +private: // from MMcsInstallListener + + /** + * Called application is installed. + * @param aUid uid of an application. + * @param aOperation operation type. + */ + void HandleInstallNotifyL( TUid aUid, + CMcsInstallNotifier::TNotificationType aNotificationType ); private: // new methods @@ -175,7 +191,28 @@ * Add new menu item referring to this application. * @param aItem menu item. */ - void HandleMissingFlagUpdateL( const TMenuItem& aItem ); + void HandleMissingFlagUpdateL( + const TMenuItem& aItem, const CMenuSrvAppAttributes& aApaItem ); + + /** + * Notifies engine abaut application installation. + */ + void InstallationNotifyL(); + + /** + * Removes uid from installed packages array. + * @param aUid application uid. + */ + void RemoveFromInstalledPackages( TUid aUid ); + + /** + * Removes uid from installed packages array. + * @param aUid application uid. + * @param aId Item ID. + * @param aEvent event for engine to append. + */ + CMenuEngObject& ModifiableObjectL( TUid aUid, TInt aId, + TInt aEvent = RMenuNotifier::EItemAttributeChanged ); /** * Updates hidden flag. @@ -453,6 +490,12 @@ CMcsFreeSpaceObserver* iFreeSpaceObserver; TBool iOpStatus; + + RArray iInstalledPackages; ///< Own. + + CMcsInstallNotifier* iSisInstallNotifier; ///< Native app notifier. Own. + CMcsInstallNotifier* iJavaInstallNotifier; ///< Java app notifier. Own. + }; #endif // __MENUSRVAPPSCANNER_H__