homesync/contentmanager/mediaservant/src/msmaincontainer.cpp
branchIOP_Improvements
changeset 40 08b5eae9f9ff
parent 39 6369bfd1b60d
child 41 b4d83ea1d6e2
--- a/homesync/contentmanager/mediaservant/src/msmaincontainer.cpp	Mon Nov 01 13:44:24 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1453 +0,0 @@
-/*
-* 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:  CMSMainContainer class implementation
-*
-*/
-
-
-
-#include <AknIconArray.h>
-#include <mediaservant.rsg>
-#include <mediaservant.mbg>
-#include <StringLoader.h>
-#include <aknnotewrappers.h>
-
-#include "mserv.hlp.hrh"
-#include "cmfillrule.h"
-#include "msappui.h"
-#include "msmainview.h"
-#include "mediaservantuid.h"
-#include "msmaincontainer.h"
-#include "msengine.h"
-#include "msconstants.h"
-#include "msdebug.h"
-
-// Constants
-const TInt KTimerInterval = 60000000; // 1 min
-const TInt KNaviTimerInterval = 2000000; // 2 sec
-
-
-// --------------------------------------------------------------------------
-// CMSMainContainer::CMSMainContainer()
-// --------------------------------------------------------------------------
-//
-CMSMainContainer::CMSMainContainer( CMSAppUi& aAppUi,
-                                    CMSMainView& aView )
-    {
-    LOG(_L("[MediaServant]\t CMSMainContainer::CMSMainContainer"));
-
-    iAppUi = &aAppUi;
-    iView = &aView;
-    iAppWizardRun = EFalse;
-    }
-
-// --------------------------------------------------------------------------
-// CMSMainContainer::~CMSMainContainer()
-// --------------------------------------------------------------------------
-//
-CMSMainContainer::~CMSMainContainer()
-    {
-    LOG(_L("[MediaServant]\t CMSMainContainer::~CMSMainContainer"));
-
-    if( iPeriodic )
-        {
-        iPeriodic->Cancel();
-        }
-    delete iPeriodic;
-
-    if( iNaviTimer )
-        {
-        iNaviTimer->Cancel();
-        }    
-    delete iNaviTimer;
-    
-    if( iUpdateList )
-        {
-        iUpdateList->Cancel();
-        }
-    delete iUpdateList;
-
-    if( iMSPropertyWatcher )
-        {
-        iMSPropertyWatcher->Stop();
-        }
-    delete iMSPropertyWatcher;
-
-    if( iMemoryCardMonitor )
-        {
-        iMemoryCardMonitor->Cancel();
-        }
-    delete iMemoryCardMonitor;
-
-    delete iListBox; // Deletes listbox object.
-    }
-
-
-// --------------------------------------------------------------------------
-// CMSMainContainer::ConstructL()
-// --------------------------------------------------------------------------
-//
-void CMSMainContainer::ConstructL( TRect aRect )
-    {
-    LOG(_L("[MediaServant]\t CMSMainContainer::ConstructL"));
-
-    // Create property watcher for progress info
-    iMSPropertyWatcher = CMSPropertyWatcher::NewL();
-    // view will observe changes in property
-    iMSPropertyWatcher->SetObserver(this);
-
-    //create a mmc monitor to capture mmc event
-    RFs& systemFs = CEikonEnv::Static()->FsSession();
-    iMemoryCardMonitor = CMSMemoryCardMonitor::NewL( this, systemFs );
-    iMemoryCardMonitor->StartMonitor();
-
-    CreateWindowL();
-
-    iListBox = new (ELeave) CAknDoubleLargeStyleListBox;
-
-    SetListBoxFromResourceL(iListBox, R_MAIN_VIEW_LISTBOX);
-
-    // Create icons
-    CAknIconArray* icons = new (ELeave) CAknIconArray( EIconCount );
-    CleanupStack::PushL( icons );
-    MAknsSkinInstance* skin = AknsUtils::SkinInstance();
-    TFileName iconsPath( AknIconUtils::AvkonIconFileName() );
-
-    AppendIconToArrayL( icons, skin,
-                        KMSMifFileName,
-                        KAknsIIDDefault,
-                        EMbmMediaservantQgn_mserv_sync,
-                        EMbmMediaservantQgn_mserv_sync_mask );
-
-    AppendIconToArrayL( icons, skin,
-                        KMSMifFileName,
-                        KAknsIIDDefault,
-                        EMbmMediaservantQgn_mserv_sync_stop,
-                        EMbmMediaservantQgn_mserv_sync_stop_mask );
-
-    AppendIconToArrayL( icons, skin,
-                        KMSMifFileName,
-                        KAknsIIDDefault,
-                        EMbmMediaservantQgn_mserv_to_home,
-                        EMbmMediaservantQgn_mserv_to_home_mask );
-
-    AppendIconToArrayL( icons, skin,
-                        KMSMifFileName,
-                        KAknsIIDDefault,
-                        EMbmMediaservantQgn_mserv_to_home_inactive,
-                        EMbmMediaservantQgn_mserv_to_home_inactive_mask );
-
-    AppendIconToArrayL( icons, skin,
-                        KMSMifFileName,
-                        KAknsIIDDefault,
-                        EMbmMediaservantQgn_mserv_from_home,
-                        EMbmMediaservantQgn_mserv_from_home_mask );
-
-    AppendIconToArrayL( icons, skin,
-                        KMSMifFileName,
-                        KAknsIIDDefault,
-                        EMbmMediaservantQgn_mserv_from_home_inactive,
-                        EMbmMediaservantQgn_mserv_from_home_inactive_mask );
-
-    iListBox->ItemDrawer()->FormattedCellData()->SetIconArray(icons);
-
-    CleanupStack::Pop(icons);
-
-    // Container is listbox observer
-    iListBox->SetListBoxObserver( this );
-    // Set engine observer
-    iAppUi->MSEngine()->SetObserver( this );
-
-    SetRect(aRect);
-
-    // Check if automatic sync/harvest is ongoing
-    TCmServerState state;
-    iAppUi->MSEngine()->ServerState( state );
-    if ( state == ECmServerStateStoring ||
-         state == ECmServerStateFilling ||
-         state == ECmServerStateSearchingForServers )
-        {
-        iSyncRunning = ESyncRunning;
-         }
-
-    if ( state == ECmServerStateHarvesting )
-        {
-        iRefreshRunning = ETrue;
-        }
-
-    // From home secondary item text depends list selections
-    iFillListSelected = CheckIfFillListSelected();
-    
-    // Add data to listbox
-    UpdateListBoxDataL();
-
-    if ( iSyncRunning != ESyncRunning &&
-         iRefreshRunning == EFalse &&
-         state != ECmServerStateDeleting )
-        {
-        // Set last sync time to navi pane
-        SetNaviTextLastSyncL();
-        }
-
-    // Delete may be in progress so we have to inform user
-    if ( state == ECmServerStateDeleting )
-        {
-        HBufC* naviText = StringLoader::LoadLC( R_MS_PREPROCESSING_TEXT );
-        iView->SetNavigationPaneTextL( *naviText );
-        CleanupStack::PopAndDestroy( naviText );
-        }
-
-    // start listening property
-    iMSPropertyWatcher->StartL();
-
-    //Set current item
-    iListBox->SetCurrentItemIndex(
-                        iAppUi->ParameterAgent()->MainViewFocusIndex() );
-    
-    // Start timer for last sync time reading
-    iPeriodic = CPeriodic::NewL(CActive::EPriorityIdle);
-    iPeriodic->Start( 0, KTimerInterval, TCallBack(TimerCallbackL,this) );
-
-    // create navi text timer - don't start
-    iNaviTimer = CPeriodic::NewL( CActive::EPriorityIdle );
-    
-    iUpdateList = CIdle::NewL( CActive::EPriorityIdle );
-    
-    ActivateL(); // Activates window. ( Ready to draw )
-    }
-
-// --------------------------------------------------------------------------
-// CMSMainContainer::CountComponentControls()
-// Returns number of components.
-// --------------------------------------------------------------------------
-//
-TInt CMSMainContainer::CountComponentControls() const
-    {
-    return 1; // return number of controls inside this container
-    }
-
-
-// --------------------------------------------------------------------------
-// CMSMainContainer::ComponentControl()
-// Returns pointer to particular component.
-// --------------------------------------------------------------------------
-//
-CCoeControl* CMSMainContainer::ComponentControl( TInt aIndex ) const
-
-    {
-    CCoeControl* retval = NULL;
-    switch ( aIndex )
-        {
-        case 0:
-            {
-            retval = iListBox; // return a pointer to the listbox
-            break;
-            }
-        default:
-            {
-            retval = NULL;
-            break;
-            }
-        }
-    return retval;
-    }
-
-// --------------------------------------------------------------------------
-// CMSMainContainer::OfferKeyEventL()
-// Handles the key events.
-// --------------------------------------------------------------------------
-//
-TKeyResponse CMSMainContainer::OfferKeyEventL(
-    const TKeyEvent& aKeyEvent,
-    TEventCode aType )
-    {
-    LOG(_L("[MediaServant]\t CMSMainContainer::OfferKeyEventL"));
-
-    TKeyResponse response = EKeyWasNotConsumed;
-
-    if ( aType != EEventKey )
-        {
-        response =  EKeyWasNotConsumed;
-        }
-
-    if ( iListBox )
-        {
-        response = iListBox->OfferKeyEventL( aKeyEvent, aType );
-        }
-
-    iView->SetCbaL( iListBox->CurrentItemIndex() );
-
-    return response;
-    }
-
-
-// --------------------------------------------------------------------------
-// CMSMainContainer::OpenSelectedListboxItemL
-// --------------------------------------------------------------------------
-//
-void CMSMainContainer::OpenSelectedListboxItemL()
-    {
-    LOG(_L("[MediaServant]\t CMSMainContainer::OpenSelectedListboxItemL"));
-    
-    HandleListBoxEventL( NULL, EEventEnterKeyPressed );
-    }
-
-
-// --------------------------------------------------------------------------
-// CMSMainContainer::HandleListBoxEventL()
-// Handles listbox event.
-// --------------------------------------------------------------------------
-void CMSMainContainer::HandleListBoxEventL(
-    CEikListBox* /*aListBox*/,
-    TListBoxEvent aEventType )
-    {
-    LOG(_L("[MediaServant]\t CMSMainContainer::HandleListBoxEventL"));
-
-    if ( ( aEventType == MEikListBoxObserver::EEventEnterKeyPressed ) ||
-         ( aEventType == MEikListBoxObserver::EEventItemClicked ) )
-        {
-        TInt selected = iListBox->CurrentItemIndex();
-
-        switch ( selected )
-            {
-            case EStoreAndFill:
-                {
-                // refresh is not active
-                if ( !iRefreshRunning )
-                    {
-                    if ( iSyncRunning == ESyncNotRunning )
-                        {
-                        StartSyncL();
-                        }
-                    else
-                        {
-                        // Cancel current asyncronous operation
-                        iAppUi->MSEngine()->StopOperation();
-                        iSyncRunning = ESyncNotRunning;
-                        iView->ClearCurrentNaviPaneText();
-                        UpdateListBoxDataL();
-                        }
-                    }
-                 // refresh is ongoing
-                 else
-                    {
-                    if ( iSyncRunning == ESyncWaiting )
-                        {
-                        iSyncRunning = ESyncNotRunning;
-                        }
-                    else
-                        {
-                        iSyncRunning = ESyncWaiting;
-                        }
-                    UpdateListBoxDataL();
-                    }
-
-                break;
-                }
-            case EStoreToNetwork:
-                {
-                if ( !iRefreshRunning && 
-                     !iSyncRunning && 
-                     !iPreprocessRunning )
-                    {
-                    iAppUi->ChangeViewL( KMSMainViewId,
-                                         KMSStoreListViewId );
-                    }
-                else
-                    {
-                    TInt noteId = ( iRefreshRunning || iPreprocessRunning ?
-                                    R_MS_ACCESS_ERROR_NOTE : 
-                                    R_MS_ACCESS_ERROR_NOTE_SYNC );
-                    ShowErrorNoteL( noteId );
-                    }
-                break;
-                }
-            case EFillToPhone:
-                {
-                if ( iAppUi->DriveSelectedL() )
-                    {
-                    if ( !iRefreshRunning &&
-                         !iSyncRunning &&
-                         !iPreprocessRunning )
-                        {
-                        iAppUi->ChangeViewL( KMSMainViewId, KMSFillViewId );
-                        }
-                    else
-                        {
-                        TInt noteId = ( iRefreshRunning ||
-                                        iPreprocessRunning ?
-                                        R_MS_ACCESS_ERROR_NOTE : 
-                                        R_MS_ACCESS_ERROR_NOTE_SYNC );
-                        ShowErrorNoteL( noteId );
-                        }
-                    }
-                else
-                    {
-                    ShowErrorNoteL( R_MS_INSERT_MEMORY_CARD_TEXT );
-                    }
-                break;
-                }
-            default:
-                {
-                LOG(_L("[MediaServant]\t CMSMainContainer::\
-                HandleListBoxEventL no item selected"));
-                }
-            }
-        }
-    }
-
-// --------------------------------------------------------------------------
-// CMSMainContainer::UpdateListBoxDataL()
-// Updates listbox texts
-// --------------------------------------------------------------------------
-//
-void CMSMainContainer::UpdateListBoxDataL()
-    {
-    LOG(_L("[MediaServant]\t CMSMainContainer::UpdateListBoxDataL"));
-
-    TCmServerState state;
-    iAppUi->MSEngine()->ServerState( state );
-
-    CDesCArray* itemArray = static_cast<CDesCArray*>
-                                        (iListBox->Model()->ItemTextArray());
-
-    if ( itemArray->Count() )
-        {
-        // delete all listbox items
-        itemArray->Reset();
-        }
-
-
-    // Get file counts and sync time
-    TInt itemsToBeStored( 0 );
-    TInt itemsToBeFilled( 0 );
-    TInt syncTime( 0 );
-    TInt syncTimeStore( 0 );
-    TInt syncTimeFill( 0 );
-
-    iAppUi->MSEngine()->GetTransferInfo( ECmServiceStore,
-                                         itemsToBeStored,
-                                         syncTimeStore );
-
-    iAppUi->MSEngine()->GetTransferInfo( ECmServiceFill,
-                                         itemsToBeFilled,
-                                         syncTimeFill );
-
-    syncTime = syncTimeStore + syncTimeFill;
-
-    // Create item strings
-    HBufC* primaryText = NULL;
-    HBufC* secondaryText = NULL;
-    TInt icon = EIconSync;
-
-    switch ( iSyncRunning )
-        {
-        default:
-        // fall trough
-        case ESyncNotRunning:
-            {
-            primaryText = StringLoader::LoadLC( R_MAIN_SYNC_NOW_TEXT );
-
-            if ( itemsToBeStored > 0 || itemsToBeFilled > 0)
-                {
-                if ( syncTime/60 > 1 ) // 1 minute
-                    {
-                    secondaryText = StringLoader::LoadLC(
-                                                    R_MS_SYNC_TIME_TEXT,
-                                                    syncTime/60 );
-                    // do number conversion
-                    TPtr ptr = secondaryText->Des();
-                    AknTextUtils::
-                        DisplayTextLanguageSpecificNumberConversion( ptr );
-                    }
-                else
-                    {
-                    secondaryText = StringLoader::LoadLC(
-                                               R_MS_SYNC_TIME_ONE_MIN_TEXT );
-                    }
-
-                }
-            break;
-            }
-        case ESyncRunning:
-            {
-            primaryText = StringLoader::LoadLC( R_MAIN_STOP_SYNC_TEXT );
-            icon = EIconSyncStop;
-            break;
-            }
-        case ESyncWaiting:
-            {
-            primaryText = StringLoader::LoadLC( R_MAIN_STOP_SYNC_TEXT );
-            secondaryText = StringLoader::LoadLC( R_MS_SYNC_WAITING_TEXT );
-            icon = EIconSyncStop;
-            break;
-            }
-        }
-
-    AppendItemToListBoxArrayL( iListBox,
-                               iListBox->Model(),
-                               icon,
-                               *primaryText,
-                               *secondaryText );
-
-    if ( secondaryText )
-        {
-        CleanupStack::PopAndDestroy( secondaryText );
-        secondaryText = NULL;
-        }
-
-    if ( primaryText )
-        {
-        CleanupStack::PopAndDestroy( primaryText );
-        primaryText = NULL;
-        }
-
-
-    // From Home -item
-    primaryText = StringLoader::LoadLC( R_MAIN_FROM_HOME_TEXT );
-
-    TBool driveSelected = iAppUi->DriveSelectedL();
-
-    if ( driveSelected == EFalse )
-        {
-        secondaryText = StringLoader::LoadLC( R_MS_MEMORY_CARD_NEEDED_TEXT );
-        }
-    else if ( !iFillListSelected )
-        {
-        secondaryText = StringLoader::LoadLC( R_MS_LIST_NOTHING_SELECTED );
-        }        
-    else if ( itemsToBeFilled <= 0 )
-        {
-        secondaryText = StringLoader::LoadLC( R_MS_ALL_IN_SYNC_TEXT );
-        }
-
-    if ( iRefreshRunning ||
-         iPreprocessRunning ||
-         iSyncRunning == ESyncRunning ||
-         driveSelected == EFalse )
-        {
-        AppendItemToListBoxArrayL( iListBox,
-                                   iListBox->Model(),
-                                   EIconFromHomeInactive,
-                                   *primaryText,
-                                   *secondaryText );
-        }
-    else
-        {
-        AppendItemToListBoxArrayL( iListBox,
-                                   iListBox->Model(),
-                                   EIconFromHome,
-                                   *primaryText,
-                                   *secondaryText );
-        }
-
-    if ( secondaryText )
-        {
-        CleanupStack::PopAndDestroy( secondaryText );
-        secondaryText = NULL;
-        }
-
-    CleanupStack::PopAndDestroy( primaryText );
-    primaryText = NULL;
-
-    // To Home -item
-    primaryText = StringLoader::LoadLC( R_MAIN_TO_HOME_TEXT );
-
-    if ( itemsToBeStored < 1 )
-        {
-        secondaryText = StringLoader::LoadLC( R_MS_ALL_IN_SYNC_TEXT );
-        }
-    else if ( itemsToBeStored == 1 )
-        {
-        secondaryText = StringLoader::LoadLC( R_MS_SYNC_ONE_NEW_ITEM_TEXT );
-        }
-    else // > 1      
-        {
-        secondaryText = StringLoader::LoadLC( R_MS_SYNC_NEW_ITEMS_TEXT,
-                                              itemsToBeStored );
-        // do number conversion
-        TPtr ptr = secondaryText->Des();
-        AknTextUtils::DisplayTextLanguageSpecificNumberConversion( ptr );
-        }
-
-    if ( iRefreshRunning ||
-         iPreprocessRunning ||
-         iSyncRunning == ESyncRunning )
-        {
-        AppendItemToListBoxArrayL( iListBox,
-                                   iListBox->Model(),
-                                   EIconToHomeInactive,
-                                   *primaryText,
-                                   *secondaryText );
-        }
-    else
-        {
-        AppendItemToListBoxArrayL( iListBox,
-                                   iListBox->Model(),
-                                   EIconToHome,
-                                   *primaryText,
-                                   *secondaryText );
-        }
-
-    if ( secondaryText )
-        {
-        CleanupStack::PopAndDestroy( secondaryText );
-        secondaryText = NULL;
-        }
-
-    CleanupStack::PopAndDestroy( primaryText );
-    primaryText = NULL;
-
-
-    iListBox->DrawNow();
-    }
-
-// --------------------------------------------------------------------------
-// CMSMainContainer::ReadyL()
-// engine observer callback
-// --------------------------------------------------------------------------
-//
-void CMSMainContainer::ReadyL( TCmService aService, TInt aError )
-    {
-    LOG(_L("[MediaServant]\t CMSMainContainer::ReadyL"));
-
-    // Clears navi pane
-    iView->ClearCurrentNaviPaneText();
-
-    if( aError == KErrNotFound )
-        {
-        ShowErrorNoteL( R_MS_ERROR_DEVICES_NOT_FOUND );
-        }
-    else if( aError == KErrGeneral )
-        {
-        ShowErrorNoteL( R_MS_ERROR_SYNC_INTERRUPTED );
-        }
-    else if( aError == KErrDiskFull )
-        {
-        ShowErrorNoteL( R_MS_ERROR_MEMORY_FULL );
-        }		
-    else if ( aError && aError != KErrCancel )
-        {
-#ifdef __DEBUG
-        ShowNoteL( R_ACTIVE_ERROR_NOTE_TEXT, aError );
-#endif        
-        iRefreshRunning = EFalse;
-        iSyncRunning = ESyncNotRunning;
-        }
-
-    switch ( aService )
-        {
-        case ECmServiceDeleteMetadata:
-            {
-            iAppUi->MSEngine()->DeleteDeletedMediaserversL();
-            // start harvest
-            iAppUi->MSEngine()->ScanMediaServersL();
-            break;
-            }
-        case ECmServiceHarvest:
-            {
-            if( iAppWizardRun )
-                {
-                LOG(_L("[MediaServant]\t CMSMainContainer::\
-                ReadyL, HARVEST (Wizard)"));
-
-                // refreshes also fill rules
-                iAppUi->RefreshListsL();
-                
-                // "From home" secondary item text depends list selections
-                // must be read here again because list selections change
-                // after wizard run
-                iFillListSelected = CheckIfFillListSelected();
-                
-                if ( iRefreshRunning && iSyncRunning == ESyncWaiting )
-                    {
-                    StartSyncL();
-                    iRefreshRunning = EFalse;
-                    }
-
-                iRefreshRunning = EFalse;
-                iAppWizardRun = EFalse;
-                LOG(_L("[MediaServant]\t CMSMainContainer::ReadyL, \
-                START PRE PRO"));
-                
-                // show navi pane text for 2 seconds
-                ShowRefreshCompleteTextL();
-                iNaviTimer->Start( KNaviTimerInterval,
-                                  KNaviTimerInterval,
-                                  TCallBack( NaviTimerCallbackL, this ) );
-                break;
-                }
-            else
-                {
-                if ( iRefreshRunning && iSyncRunning == ESyncWaiting )
-                    {
-                    StartSyncL();
-                    iRefreshRunning = EFalse;
-                    }
-                else
-                    {
-                    iRefreshRunning = EFalse;
-                    // refreshes also fill rules and store item
-                    iAppUi->RefreshListsL();
-                    
-                    // show navi pane text for 2 seconds
-                    ShowRefreshCompleteTextL();
-                    iNaviTimer->Start( KNaviTimerInterval,
-                                     KNaviTimerInterval,
-                                     TCallBack( NaviTimerCallbackL, this ) );
-                    }
-                }
-            break;
-            }
-
-        case ECmServiceFill:
-        // fall trough
-        case ECmServiceStore:
-            {
-            iSyncRunning = ESyncNotRunning;
-            SetNaviTextLastSyncL();
-            iAppUi->RefreshListsL();
-            break;
-            }
-
-        case ECmServicePreProcessingStore:
-            {
-            LOG(_L("[MediaServant]\t CMSMainContainer::ReadyL, \
-            PRE PRO STORE"));
-
-            if ( iSyncRunning == ESyncWaiting )
-                {
-                StartSyncL();
-                }
-
-            iPreprocessRunning = EFalse;
-            iAppUi->RefreshListsL();
-            break;
-            }
-        case ECmServicePreProcessingFill:
-            {
-            LOG(_L("[MediaServant]\t CMSMainContainer::ReadyL, \
-            PRE PRO FILL"));
-
-            // Set last sync time to navi pane
-            SetNaviTextLastSyncL();
-
-            iPreprocessRunning = EFalse;
-            break;
-            }
-
-        case ECmServiceDeleteFilledFiles:
-            {
-            // Set last sync time to navi pane
-            SetNaviTextLastSyncL();
-            break;
-            }
-
-        default:
-            {
-            LOG(_L("[MediaServant]\t CMSMainContainer::ReadyL \
-            service not found"));
-            break;
-            }
-        }
-
-    UpdateListBoxDataL();
-    }
-
-// --------------------------------------------------------------------------
-// CMSMainContainer::PropertyChangedL
-// --------------------------------------------------------------------------
-//
-void CMSMainContainer::PropertyChangedL( TCmService aService,
-                                    TInt aTotalItems,
-                                    TInt aProcessedItems,
-                                    TInt /*aItemsToBeProcessed*/ )
-    {
-    LOG(_L("[MediaServant]\t CMSMainContainer::PropertyChangedL"));
-
-    switch ( aService )
-        {
-        case ECmServiceHarvest:
-            {
-            // Launching propertywatcher causes unwanted call of observer
-            // (server previous state is returned
-            // We want to show progress only when refresh is truly running
-            if ( iRefreshRunning )
-                {
-                TInt value( 0 );
-                if ( aTotalItems > 0 )
-                    {
-                    value = (TReal(aProcessedItems)/TReal(aTotalItems))*100;
-                    }
-
-                HBufC* progress = StringLoader::LoadLC(
-                                   R_MS_NAVI_REFRESHING_TEXT, value );
-
-                // do number conversion
-                TPtr ptr = progress->Des();
-                AknTextUtils::
-                    DisplayTextLanguageSpecificNumberConversion( ptr );
-
-                // update navi pane
-                iView->SetNavigationPaneTextL( *progress );
-                CleanupStack::PopAndDestroy( progress );
-                }
-            break;
-            }
-        case ECmServiceStore:
-        // fall through
-        case ECmServiceFill:
-            {
-            if ( aTotalItems > 0 && aProcessedItems > 0 )
-                {
-                // calculate procentual value
-                TInt value = (TReal(aProcessedItems)/TReal(aTotalItems))*100;
-                HBufC* progress = StringLoader::LoadLC(
-                                   R_MS_NAVI_SYNC_TEXT, value );
-
-                // do number conversion
-                TPtr ptr = progress->Des();
-                AknTextUtils::
-                    DisplayTextLanguageSpecificNumberConversion( ptr );
-
-                // update navi pane
-                iView->SetNavigationPaneTextL( *progress );
-                CleanupStack::PopAndDestroy( progress );
-                }
-            break;
-            }
-        case ECmServiceNone:
-            {
-            iSyncRunning = ESyncNotRunning;
-            iRefreshRunning = EFalse;
-            if ( iNaviTimer && !iNaviTimer->IsActive() )
-                {
-                SetNaviTextLastSyncL();    
-                }
-            
-            break;
-            }
-        default:
-            {
-            LOG(_L("[MediaServant]\t CMSMainContainer::PropertyChangedL \
-            service not found"));
-            }
-        }
-    
-    if ( iUpdateList && !iUpdateList->IsActive() )
-        {
-        iCurStep = EFirstStep;
-        iRequestCt = 1;
-        iUpdateList->Start( TCallBack( BackgroundUpdateListL, this ) );
-        }
-    else
-        {
-        iRequestCt++;
-        LOG(_L("[MediaServant]\t S.L add to queue"));
-        }
-    }
-
-// --------------------------------------------------------------------------
-// CMSMainContainer::SetManualWizardInfo
-// --------------------------------------------------------------------------
-//
-void CMSMainContainer::SetManualWizardInfo( TBool aAppWizardRun )
-    {
-    iAppWizardRun = aAppWizardRun;
-    }
-
-
-// --------------------------------------------------------------------------
-// CMSMainContainer::ShowRefreshIndicationL
-// --------------------------------------------------------------------------
-//
-void CMSMainContainer::ShowRefreshIndicationL()
-    {
-    LOG(_L("[MediaServant]\t CMSMainContainer::ShowRefreshIndicationL"));
-
-    iRefreshRunning = ETrue;
-    // Start 0 %
-    HBufC* naviText = StringLoader::LoadLC(
-                                  R_MS_NAVI_REFRESHING_TEXT, 0 );
-
-    // do number conversion
-    TPtr ptr = naviText->Des();
-    AknTextUtils::DisplayTextLanguageSpecificNumberConversion( ptr );
-
-    iView->SetNavigationPaneTextL( *naviText );
-    CleanupStack::PopAndDestroy( naviText );
-
-    UpdateListBoxDataL();
-    }
-
-// --------------------------------------------------------------------------
-// CMSMainContainer::StopRefreshL
-// --------------------------------------------------------------------------
-//
-void CMSMainContainer::StopRefreshL()
-    {
-    LOG(_L("[MediaServant]\t CMSMainContainer::StopRefreshL"));
-
-    iRefreshRunning = EFalse;
-    iSyncRunning = ESyncNotRunning;
-    iAppUi->FillRuleController()->UpdateArrayL();
-    UpdateListBoxDataL();
-    }
-
-// --------------------------------------------------------------------------
-// CMSMainContainer::StartSyncL
-// --------------------------------------------------------------------------
-//
-void CMSMainContainer::StartSyncL()
-    {
-    LOG(_L("[MediaServant]\t CMSMainContainer::StartSync"));
-
-    iSyncRunning = ESyncRunning;
-    TInt error = iAppUi->MSEngine()->ExecuteSyncL();
-
-    if ( !error )
-        {
-        UpdateListBoxDataL();
-
-        // set progress to 0%
-        HBufC* progress = StringLoader::LoadLC(
-                                       R_MS_NAVI_SYNC_TEXT, 0 );
-
-        // do number conversion
-        TPtr ptr = progress->Des();
-        AknTextUtils::DisplayTextLanguageSpecificNumberConversion( ptr );
-
-        iView->SetNavigationPaneTextL( *progress );
-        CleanupStack::PopAndDestroy( progress );
-        }
-    else
-        {
-        iSyncRunning = ESyncNotRunning;
-        }
-    }
-
-// --------------------------------------------------------------------------
-// CMSMainContainer::StartMetadataDeleteL
-// --------------------------------------------------------------------------
-//
-void CMSMainContainer::StartMetadataDeleteL()
-    {
-    LOG(_L("[MediaServant]\t CMSMainContainer::StartMetadataDeleteL"));
-
-    iAppUi->MSEngine()->DeleteMetadataL();
-    }
-
-// --------------------------------------------------------------------------
-// CMSMainContainer::SelectedItemIndex
-// returns current item index
-// --------------------------------------------------------------------------
-//
-TInt CMSMainContainer::SelectedItemIndex()
-    {
-    return iListBox->CurrentItemIndex();
-    }
-
-// --------------------------------------------------------------------------
-// CMSMainContainer::ShowErrorNoteL
-// Shows error note
-// --------------------------------------------------------------------------
-//
-void CMSMainContainer::ShowErrorNoteL( TInt aTextResource )
-    {
-    LOG(_L("[MediaServant]\t CMSMainContainer::ShowErrorNoteL"));
-    
-    HBufC* errorText = StringLoader::LoadLC( aTextResource );
-    CAknErrorNote* dlg = new ( ELeave ) CAknErrorNote();
-    dlg->ExecuteLD( *errorText );
-    CleanupStack::PopAndDestroy( errorText );
-    }
-
-// --------------------------------------------------------------------------
-// CMSMainContainer::SetNaviTextLastSyncL
-// Sets last synchronization time to navi pane
-// --------------------------------------------------------------------------
-//
-void CMSMainContainer::SetNaviTextLastSyncL()
-    {
-    LOG(_L("[MediaServant]\t CMSMainContainer::SetNaviTextLastSyncL"));
-    
-    TTimeIntervalMinutes syncMinutes;
-    TTimeIntervalHours syncHours;
-    TTimeIntervalDays syncDays;
-
-    TTime lastSync = iAppUi->MSEngine()->LastSyncTime();
-
-    if ( lastSync.Int64() > 0 )
-        {
-        // Get current time
-        TTime time;
-        time.HomeTime();
-
-        time.MinutesFrom( lastSync, syncMinutes );
-        time.HoursFrom( lastSync, syncHours );
-        syncDays = time.DaysFrom( lastSync );
-
-
-        HBufC* naviText = NULL;
-
-        TInt days = syncDays.Int();
-        TInt hours = syncHours.Int();            
-        TInt mins = syncMinutes.Int();            
-        if ( days > 0 )
-            {
-            naviText = ( days == 1 ? StringLoader::LoadLC(
-                                    R_MS_LAST_SYNC_DAY ) :
-                                     StringLoader::LoadLC(
-                                    R_MS_LAST_SYNC_DAYS, days ));
-            }        
-        else if ( hours > 0 )
-            {
-            naviText = ( hours == 1 ? StringLoader::LoadLC(
-                                    R_MS_LAST_SYNC_HOUR ) :
-                                     StringLoader::LoadLC(
-                                    R_MS_LAST_SYNC_HOURS, hours ));
-            }          
-        else if ( mins > 0 )
-            {
-            naviText = ( mins == 1 ? StringLoader::LoadLC(
-                                   R_MS_LAST_SYNC_MIN ) :
-                                     StringLoader::LoadLC(
-                                   R_MS_LAST_SYNC_MINS, mins ));
-            }
-        else
-            {
-            // do nothing - leave navi pane empty
-            }
-
-        if ( naviText )
-            {
-            // do number conversion
-            TPtr ptr = naviText->Des();
-            AknTextUtils::DisplayTextLanguageSpecificNumberConversion( ptr );
-
-            iView->SetNavigationPaneTextL( *naviText );
-            CleanupStack::PopAndDestroy( naviText );
-            }
-        }
-    }
-
-// --------------------------------------------------------------------------
-// CMSMainContainer::SizeChanged()
-// Called by framework when the view size is changed.
-// --------------------------------------------------------------------------
-//
-void CMSMainContainer::SizeChanged()
-    {
-    // container control resize code.
-    if ( iListBox )
-        {
-        iListBox->SetRect( Rect() ); // Set rectangle of listbox.
-        }
-    }
-
-// --------------------------------------------------------------------------
-// CMSMainContainer::HandleResourceChange
-// Handles layout change
-// --------------------------------------------------------------------------
-//
-void CMSMainContainer::HandleResourceChange( TInt aType )
-    {
-    if ( aType == KEikDynamicLayoutVariantSwitch )
-        {
-        SetRect( iView->ClientRect() );
-        }
-
-    CCoeControl::HandleResourceChange( aType );
-    }
-
-// --------------------------------------------------------------------------
-// CMSMainContainer::TimerCallbackL()
-// Periodic timer callback
-// --------------------------------------------------------------------------
-//
-TInt CMSMainContainer::TimerCallbackL(TAny* aObject)
-    {        
-    CMSMainContainer* mainContainer =
-                            static_cast<CMSMainContainer*>(aObject);
-    TCmServerState state;
-    mainContainer->iAppUi->MSEngine()->ServerState( state );
-    if ( state == ECmServerStateIdle )
-        {
-        mainContainer->SetNaviTextLastSyncL();
-        }
-    return 0;
-    }
-
-// --------------------------------------------------------------------------
-// CMSMainContainer::NaviTimerCallbackL()
-// --------------------------------------------------------------------------
-//
-TInt CMSMainContainer::NaviTimerCallbackL(TAny* aObject)
-    {        
-    CMSMainContainer* mainContainer =
-                            static_cast<CMSMainContainer*>(aObject);
-    TCmServerState state;
-    mainContainer->iAppUi->MSEngine()->ServerState( state );
-    
-    // Clear old text
-    mainContainer->iView->ClearCurrentNaviPaneText();
-    
-    if ( state == ECmServerStateIdle )
-        {
-        mainContainer->SetNaviTextLastSyncL();
-        }
-    
-    mainContainer->iNaviTimer->Cancel();
-    
-    return 0;
-    }
-    
-// --------------------------------------------------------------------------
-// CMSMainContainer::BackgroundUpdateListL
-// Static callback method for update list box data
-// --------------------------------------------------------------------------
-//
-TInt CMSMainContainer::BackgroundUpdateListL( TAny* aObject )
-    {
-    LOG(_L("[MediaServant]\t CMSMainContainer::BackgroundUpdateListL"));
-    TInt reslt = ( ( CMSMainContainer* )aObject )->UpdateListByStepL();
-    return reslt;
-    }
-
-// --------------------------------------------------------------------------
-// CMSMainContainer::UpdateListByStepL
-// Update list box data steps
-// --------------------------------------------------------------------------
-//
-TInt CMSMainContainer::UpdateListByStepL()
-    {
-    TRACE(Print(_L("[MediaServant]\t CMSMainContainer:UpdateListByStepL \
-        step: %d %d"), iCurStep, iUpdateList->IsActive()));
-
-    // Get file counts and sync time
-    static TInt staItemsToBeStored( 0 );
-    static TInt staItemsToBeFilled( 0 );
-    static TInt staSyncTime( 0 );
-    static TInt staSyncTimeStore( 0 );
-    static TInt staSyncTimeFill( 0 );
-    static TBool staDriveSelected( ETrue );
-
-    switch ( iCurStep )
-        {
-        case EFirstStep:
-            {
-            iAppUi->MSEngine()->GetTransferInfo( ECmServiceStore,
-                                                 staItemsToBeStored,
-                                                 staSyncTimeStore );
-            break;
-            }
-        case ESecondStep:
-            {
-            iAppUi->MSEngine()->GetTransferInfo( ECmServiceFill,
-                                                 staItemsToBeFilled,
-                                                 staSyncTimeFill );
-            break;
-            }
-        case EThirdStep:
-            {
-            staDriveSelected = iAppUi->DriveSelectedL();
-            break;
-            }
-        case EForthStep:
-        //fall through
-        default:
-            {
-            TInt icon = EIconSync;
-            // Create item strings
-            HBufC* primaryText = NULL;
-            HBufC* secondaryText = NULL;
-            
-            CDesCArray* itemArray = static_cast<CDesCArray*>
-                                        (iListBox->Model()->ItemTextArray());
-            if ( itemArray->Count() )
-                {
-                // delete all listbox items
-               itemArray->Reset();
-                }
-            staSyncTime = staSyncTimeStore + staSyncTimeFill;
-            //home-sync item
-            switch ( iSyncRunning )
-                {
-                default:
-                // fall trough
-                case ESyncNotRunning:
-                    {
-                    primaryText = StringLoader::LoadLC(
-                                      R_MAIN_SYNC_NOW_TEXT );
-                    if ( staItemsToBeStored > 0 || staItemsToBeFilled > 0 )
-                        {
-                        if ( staSyncTime/60 > 1 ) // 1 minute
-                            {
-                            secondaryText = StringLoader::LoadLC(
-                                                R_MS_SYNC_TIME_TEXT,
-                                                staSyncTime/60 );
-                            // do number conversion
-                            TPtr ptr = secondaryText->Des();
-                            AknTextUtils::
-                               DisplayTextLanguageSpecificNumberConversion( ptr );
-                            }
-                        else
-                            {
-                            secondaryText = StringLoader::LoadLC(
-                                                R_MS_SYNC_TIME_ONE_MIN_TEXT );
-                            }
-                        }
-                    break;
-                    }
-                case ESyncRunning:
-                    {
-                    primaryText = StringLoader::LoadLC(
-                                      R_MAIN_STOP_SYNC_TEXT );
-                    icon = EIconSyncStop;
-                    break;
-                    }
-                case ESyncWaiting:
-                    {
-                    primaryText = StringLoader::LoadLC( 
-                                      R_MAIN_STOP_SYNC_TEXT );
-                    secondaryText = StringLoader::LoadLC(
-                                        R_MS_SYNC_WAITING_TEXT );
-                    icon = EIconSyncStop;
-                    break;
-                    }
-                }
-            AppendItemToListBoxArrayL( iListBox,
-                                       iListBox->Model(),
-                                       icon,
-                                       *primaryText,
-                                       *secondaryText );
-
-            if ( secondaryText )
-                {
-                CleanupStack::PopAndDestroy( secondaryText );
-                secondaryText = NULL;
-                }
-
-            if ( primaryText )
-                {
-                CleanupStack::PopAndDestroy( primaryText );
-                primaryText = NULL;
-                }
-            
-            // From Home -item
-            primaryText = StringLoader::LoadLC( R_MAIN_FROM_HOME_TEXT );
-            
-            if ( staDriveSelected == EFalse )
-                {
-                secondaryText = StringLoader::LoadLC( 
-                                    R_MS_MEMORY_CARD_NEEDED_TEXT );
-                }
-            else if ( !iFillListSelected )
-                {
-                secondaryText = StringLoader::LoadLC( 
-                                    R_MS_LIST_NOTHING_SELECTED );
-                }
-            else if ( staItemsToBeFilled <= 0 )
-                {
-                secondaryText = StringLoader::LoadLC( 
-                                    R_MS_ALL_IN_SYNC_TEXT );
-                }
-
-            if ( iRefreshRunning ||
-                 iPreprocessRunning ||
-                 iSyncRunning == ESyncRunning ||
-                 staDriveSelected == EFalse )
-                {
-                AppendItemToListBoxArrayL( iListBox,
-                                           iListBox->Model(),
-                                           EIconFromHomeInactive,
-                                           *primaryText,
-                                           *secondaryText );
-                }
-            else
-                {
-                AppendItemToListBoxArrayL( iListBox,
-                                           iListBox->Model(),
-                                           EIconFromHome,
-                                           *primaryText,
-                                           *secondaryText );
-                }
-
-            if ( secondaryText )
-                {
-                CleanupStack::PopAndDestroy( secondaryText );
-                secondaryText = NULL;
-                }
-
-            CleanupStack::PopAndDestroy( primaryText );
-            primaryText = NULL;
-
-            // To Home -item
-            primaryText = StringLoader::LoadLC( R_MAIN_TO_HOME_TEXT );
-          
-
-            if ( staItemsToBeStored < 1 )
-                {
-                secondaryText = StringLoader::LoadLC(
-                                            R_MS_ALL_IN_SYNC_TEXT );
-                }
-            else if ( staItemsToBeStored == 1 )
-                {
-                secondaryText = StringLoader::LoadLC(
-                                            R_MS_SYNC_ONE_NEW_ITEM_TEXT );
-                }
-            else // > 1      
-                {
-                secondaryText = StringLoader::LoadLC(
-                                            R_MS_SYNC_NEW_ITEMS_TEXT,
-                                            staItemsToBeStored );
-                // do number conversion
-                TPtr ptr = secondaryText->Des();
-                AknTextUtils::
-                    DisplayTextLanguageSpecificNumberConversion( ptr );
-                }
-
-            if ( iRefreshRunning ||
-                 iPreprocessRunning ||
-                 iSyncRunning == ESyncRunning )
-                {
-                AppendItemToListBoxArrayL( iListBox,
-                                           iListBox->Model(),
-                                           EIconToHomeInactive,
-                                           *primaryText,
-                                           *secondaryText );
-                }
-            else
-                {
-                AppendItemToListBoxArrayL( iListBox,
-                                           iListBox->Model(),
-                                           EIconToHome,
-                                           *primaryText,
-                                           *secondaryText );
-                }
-
-            if ( secondaryText )
-                {
-                CleanupStack::PopAndDestroy( secondaryText );
-                secondaryText = NULL;
-                }
-            CleanupStack::PopAndDestroy( primaryText );
-            primaryText = NULL;
-            iListBox->DrawNow();
-            break;
-            }
-        }
-    TInt theValue = ( TInt )iCurStep;
-    theValue++;
-    iCurStep = ( TMSUpdateStep )theValue;
-    
-    //complete one refresh request
-    TInt reslt( 0 );
-    if( iCurStep == EEndStep )
-        {
-        iRequestCt--;
-        if( iRequestCt )
-            {
-            iCurStep = EFirstStep;
-            }
-        //if still have request,continue
-        reslt = iRequestCt;
-        }
-    //not the last step, contiue
-    else
-        {
-        reslt = ETrue;
-        }
-    return reslt;
-    }
-
-// ---------------------------------------------------------------------------
-// CMSMainContainer::GetHelpContext
-// ---------------------------------------------------------------------------
-//
-void CMSMainContainer::GetHelpContext( TCoeHelpContext& aContext ) const
-    {
-    LOG(_L("[MediaServant]\t CMSMainContainer::GetHelpContext"));
-
-    aContext.iMajor = TUid::Uid(KMediaServantUID3);
-    aContext.iContext = KMSERV_HLP_MAIN_VIEW;
-    }
-
-// --------------------------------------------------------------------------
-// CMSMainContainer::MemoryCardChangedL
-// Callback to handle mmc insert
-// --------------------------------------------------------------------------
-//
-void CMSMainContainer::MemoryCardChangedL( TMemoryCardEvent aEvent )
-    {
-    LOG(_L("[MediaServant]\t CMSMainContainer::MemoryCardChangedL start"));
-    switch ( aEvent )
-        {
-        case EMemoryCardInsert:
-            {
-            if( !iAppUi->DriveSelectedL() )
-                {
-                iView->CheckMemoryCardL();
-                }
-            UpdateListBoxDataL();
-            break;
-            }
-        default:
-            {
-            LOG(_L("[MediaServant]\t CMSMainContainer::MemoryCardChangedL \
-            event not found"));
-            break;
-            }
-        }
-    LOG(_L("[MediaServant]\t CMSMainContainer::MemoryCardChangedL end"));
-    }
-
-// --------------------------------------------------------------------------
-// CMSMainContainer::CheckIfFillListSelected
-// --------------------------------------------------------------------------
-//
-TBool CMSMainContainer::CheckIfFillListSelected()
-    {
-    LOG(_L("[MediaServant]\t CMSMainContainer::CheckIfFillListSelected"));
-    
-    TBool listSelected( EFalse );
-    RPointerArray<CMSFillList>* listArray =
-                        iAppUi->FillRuleController()->FillListArray();
-    
-    for ( TInt i = 0; i < listArray->Count(); i++  )
-        {
-        CCmFillRule* list = (*listArray)[i]->List();
-        if ( list->Selected() == ECmSelected )
-            {
-            listSelected = ETrue;
-            i = listArray->Count(); // break loop
-            }
-        }
-    return listSelected;
-    }
-
-// --------------------------------------------------------------------------
-// CMSMainContainer::ShowRefreshCompleteTextL
-// --------------------------------------------------------------------------
-//
-void CMSMainContainer::ShowRefreshCompleteTextL()
-    {
-    LOG(_L("[MediaServant]\t CMSMainContainer::ShowRefreshCompleteTextL"));
-    
-    HBufC* naviText = StringLoader::LoadLC( R_MS_NAVI_CONTENT_REFRESHED );
-    iView->SetNavigationPaneTextL( *naviText );
-    CleanupStack::PopAndDestroy( naviText );    
-    }
-// End of File
-