homesync/contentmanager/mediaservant/inc/msmaincontainer.h
changeset 0 7f85d04be362
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/homesync/contentmanager/mediaservant/inc/msmaincontainer.h	Thu Dec 17 08:52:00 2009 +0200
@@ -0,0 +1,374 @@
+/*
+* Copyright (c) 2008 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:  Definition for MediaServant main container class
+*
+*/
+
+
+#ifndef C_MSMAINCONTAINER_H
+#define C_MSMAINCONTAINER_H
+
+// INCLUDES
+#include <aknlists.h>
+#include <eiklbo.h>             // listbox observer
+#include "cmcommon.h"           // service types
+#include "msengineobserver.h"
+#include "msbasecontainer.h"
+#include "mspropertywatcher.h"
+#include "msmemorycardmonitor.h" //mmc event observer
+
+// FORWARD DECLARATIONS
+class CAknIconArray;
+class CMSAppUi;
+class CMSEngine;
+class MMSEngineObserver;
+class CMSMainView;
+
+
+/**
+ * CMSMainContainer class
+ *  @since S60 5.1
+ */
+NONSHARABLE_CLASS( CMSMainContainer ): public CMSBaseContainer,
+                         public MEikListBoxObserver,
+                         public MMSEngineObserver,
+                         public MMSPropertyObserver,
+                         public MMSMemoryCardObserver
+    {
+    // Icon enumerations
+    enum TMSListBoxIcons
+        {
+        EIconSync = 0,
+        EIconSyncStop,
+        EIconToHome,
+        EIconToHomeInactive,
+        EIconFromHome,
+        EIconFromHomeInactive,
+        EIconCount
+        };
+    // Synchronization states
+    enum TMSSyncState
+        {
+        ESyncNotRunning = 0,
+        ESyncRunning,
+        ESyncWaiting
+        };
+    
+    // Update steps
+    enum TMSUpdateStep
+        {
+        EFirstStep = 0,
+        ESecondStep,
+        EThirdStep,
+        EForthStep,
+        EEndStep
+        };
+        
+    public:
+        /**
+         * Constructor.
+         */
+        CMSMainContainer( CMSAppUi& aAppUi,
+                          CMSMainView& aView );
+
+        /**
+         * Symbian default constructor.
+         */
+        void ConstructL( TRect aRect );
+
+        /**
+         * Destructor.
+         */
+        virtual ~CMSMainContainer();    
+
+        /**
+         * sets manual wizard execution info
+         * @param appWizardRun, wizard executed
+         * @since S60 5.1
+         */
+        void SetManualWizardInfo( TBool aAppWizardRun );
+
+        /**
+         * Shows refresh indiction on navi pane
+         * @since S60 5.1
+         */
+        void ShowRefreshIndicationL();
+
+        /**
+         * sets refresh state
+         * @since S60 5.1
+         */
+        void StopRefreshL();
+
+        /**
+         * return highlighted item index
+         * @since S60 5.1
+         */
+        TInt SelectedItemIndex();
+
+        /**
+         * Opens the selected listbox item
+         * @since S60 5.1
+         */
+        void OpenSelectedListboxItemL();
+
+        /**
+         * Starts asynchronous metadata delete
+         * @since S60 5.1
+         */
+        void StartMetadataDeleteL();
+    
+        void RunHarvest();
+        // From base class MMSMemoryCardObserver
+                
+                /**
+                 * From MMSMemoryCardObserver
+                 * See base class definition
+                 */
+                 void MemoryCardChangedL( TMemoryCardEvent aEvent );        
+    protected:
+    
+// From base class CCoeControl    
+
+        /**
+         * From CCoeControl
+         * See base class definition
+         */
+        void GetHelpContext(TCoeHelpContext& aContext) const;    
+
+        /**
+         * From CCoeControl
+         * See base class definition
+         */
+        CCoeControl* ComponentControl(TInt aIndex) const;
+
+        /**
+         * From CCoeControl
+         * See base class definition
+         */
+        TInt CountComponentControls() const;
+
+        /**
+         * From CCoeControl
+         * See base class definition
+         */
+        void SizeChanged();
+
+        /**
+         * From CCoeControl
+         * See base class definition
+         */
+        TKeyResponse OfferKeyEventL( const TKeyEvent& aKeyEvent,
+                                     TEventCode aType );
+
+        /**
+         * From CCoeControl
+         * See base class definition
+         */
+        void HandleResourceChange( TInt aType );
+
+// From base class MEikListBoxObserver
+
+        /**
+         * From MEikListBoxObserver
+         * See base class definition
+         */
+        void HandleListBoxEventL( CEikListBox* aListBox,
+                                  TListBoxEvent aEventType );
+
+// From base class MMSEngineObserver
+
+        /**
+         * From MMSEngineObserver
+         * See base class definition
+         */
+        void ReadyL( TCmService aService, TInt aError );
+
+// From base class MMSPropertyObserver
+
+        /**
+         * From MMSPropertyObserver
+         * See base class definition
+         */
+        void PropertyChangedL( TCmService aService,
+                               TInt aTotalItems,
+                               TInt aProcessedItems,
+                               TInt /*aItemsToBeProcessed*/ );
+                               
+         
+    private:
+
+        /**
+         * Updates listbox data
+         * @since S60 5.1
+         */
+        void UpdateListBoxDataL();
+
+        /**
+         * Starts sync operation
+         * @since S60 5.1
+         */
+        void StartSyncL();
+
+        /**
+         * Shows error note
+         * @since S60 5.1
+         * @param aTextResource, error text resource
+         */
+        void ShowErrorNoteL( TInt aTextResource );
+
+        /**
+         * Shows last synchronization time on navi pane
+         * @since S60 5.1
+         */
+        void SetNaviTextLastSyncL();
+
+        /**
+         * Callback for periodic timer
+         * @since S60 5.1
+         * @param TAny, callback observer
+         */
+        static TInt TimerCallbackL(TAny* aObject);
+
+        /**
+         * Callback for navi pane timer
+         * @since S60 5.1
+         * @param TAny, callback observer
+         */
+        static TInt NaviTimerCallbackL(TAny* aObject);        
+        
+        /**
+         * Static callback method for update list box data
+         * @since S60 5.1
+         * @param TAny, callback observer
+         * @return
+         */
+        static TInt BackgroundUpdateListL( TAny* aObject );
+        
+        /**
+         * Supdate list box data step by step
+         * @since S60 5.1
+         * @return
+         */
+        TInt UpdateListByStepL();
+        
+        /**
+         * Checks if fill list is selected
+         *
+         * @since S60 5.1
+         * @param None
+         * @return TBool, ETrue if list is selected, EFalse otherwise
+         */
+        TBool CheckIfFillListSelected();
+
+        /**
+         * Shows 'refresh completed' text in navi pane
+         *
+         * @since S60 5.1
+         * @param None
+         * @return None
+         */        
+        void ShowRefreshCompleteTextL();
+
+    private:
+
+        /**
+         * Listbox control
+         */
+        CEikFormattedCellListBox*               iListBox;       // owned
+
+        /**
+         * pointer to AppUi object
+         */
+        CMSAppUi*                               iAppUi;         // not owned
+
+        /**
+         * active refresh operation indicator
+         */
+        TBool                                   iRefreshRunning;
+
+        /**
+         * active sync operation indicator
+         */
+        TMSSyncState                            iSyncRunning;
+
+        /**
+         * active preprocess operation indicator
+         */
+        TBool                                   iPreprocessRunning;
+
+        /**
+         * containers view
+         */
+        CMSMainView*                            iView;           // not owned
+
+        /**
+         * Transfer time
+         */
+        TInt                                    iTransferTime;
+        /**
+         * Count of items to be stored
+         */
+        TInt                                    iItemsToBeStored;
+        /**
+         * Count of items to be filled
+         */
+        TInt                                    iItemsToBeFilled;
+        /**
+         * Progress watcher
+         */
+        CMSPropertyWatcher*                     iMSPropertyWatcher; // owned
+        
+        /**
+         * MemoryCard monitor
+         */
+        CMSMemoryCardMonitor*                   iMemoryCardMonitor; // owned
+
+        /**
+         * Wizard execution flag
+         */
+        TBool                                   iAppWizardRun;
+        
+        /**
+         * Last sync timer
+         */
+        CPeriodic*                              iPeriodic;          // Owned
+        
+        /**
+         * Navi pane text timer
+         */
+        CPeriodic*                              iNaviTimer;         // Owned        
+        
+        /**
+         * Idle time active object, Owend
+         */
+        CIdle*                                  iUpdateList;        // Owned
+        
+        /**
+         *  the count of requests for refresh UI
+         */
+        TInt                                    iRequestCt;
+        
+        /**
+         * current step of update list box
+         */
+        TMSUpdateStep                           iCurStep;
+        
+        /**
+         * Fill list selection status
+         */
+        TBool                                   iFillListSelected;
+    };
+
+#endif // C_MSMAINCONTAINER_H