diff -r 6369bfd1b60d -r 08b5eae9f9ff homesync/contentmanager/mediaservant/src/msappui.cpp --- a/homesync/contentmanager/mediaservant/src/msappui.cpp Mon Nov 01 13:44:24 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,543 +0,0 @@ -/* -* Copyright (c) 2007 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: CMediaServantAppUi class implementation -* -*/ - - -#include -#include -#include -#include - -#include "cmsettingsfactory.h" -#include "cmsettings.h" -#include "cmdriveinfo.h" -#include "msappui.h" -#include "msstorelistcontroller.h" -#include "msmainview.h" -#include "msfillview.h" -#include "msfillruleeditview.h" -#include "msstorelistview.h" -#include "msstoresettingsview.h" -#include "msbrowseview.h" -#include "msfillbrowseview.h" -#include "msconstants.h" -#include "msengine.h" -#include "msparameteragent.h" -#include "cmsappwizard.h" -#include "msgsinterface.h" -#include "msgspluginuids.h" - -#include "msdebug.h" - -// -------------------------------------------------------------------------- -// CMSAppUi::ConstructL() -// -------------------------------------------------------------------------- -// -void CMSAppUi::ConstructL() - { - LOG(_L("[MediaServant]\t CMSAppUi::ConstructL")); - -#ifndef __SERIES60_31__ - BaseConstructL( EAknEnableSkin | EAknEnableMSK ); -#else - BaseConstructL( EAknEnableSkin ); -#endif - - // Create engine - iMSEngine = CMSEngine::NewL(); - - // Create parameter agent for message passing between views - iParameterAgent = new ( ELeave ) CMSParameterAgent(); - - // Create fill list controller - iFillRuleController = CMSFillRuleController::NewL( *iMSEngine ); - - // Create store list controller - iStoreListController = CMSStoreListController::NewL( *iMSEngine ); - - LoadSettingsPluginL(); // loads gs plugin - - // main view is created - CMSMainView* mainView = new ( ELeave )CMSMainView( *this ); - CleanupStack::PushL( mainView ); - mainView->ConstructL(); - AddViewL( mainView ); // transfer ownership to CAknViewAppUi - CleanupStack::Pop( mainView); - - CMSFillView* fillView = new ( ELeave ) CMSFillView( *this ); - CleanupStack::PushL( fillView ); - fillView->ConstructL(); - AddViewL( fillView ); // transfer ownership to CAknViewAppUi - CleanupStack::Pop( fillView ); - - CMSFillRuleEditView* ruleEditView = new ( ELeave ) - CMSFillRuleEditView( *this ); - CleanupStack::PushL( ruleEditView ); - ruleEditView->ConstructL(); - AddViewL( ruleEditView ); // transfer ownership to CAknViewAppUi - CleanupStack::Pop( ruleEditView ); - - CMSStoreListView* storelistView = new ( ELeave ) - CMSStoreListView( *this ); - CleanupStack::PushL( storelistView ); - storelistView->ConstructL(); - AddViewL( storelistView ); // transfer ownership to CAknViewAppUi - CleanupStack::Pop( storelistView); - - CMSStoreSettingsView* storesettingView = new ( ELeave ) - CMSStoreSettingsView( *this ); - CleanupStack::PushL( storesettingView ); - storesettingView->ConstructL(); - AddViewL( storesettingView ); // transfer ownership to CAknViewAppUi - CleanupStack::Pop( storesettingView ); - - CMSBrowseView* browseView = new ( ELeave ) - CMSBrowseView( *this ); - CleanupStack::PushL( browseView ); - browseView->ConstructL(); - AddViewL( browseView ); // transfer ownership to CAknViewAppUi - CleanupStack::Pop( browseView ); - - CMSFillBrowseView* fillBrowseView = - new ( ELeave ) CMSFillBrowseView( *this ); - CleanupStack::PushL( fillBrowseView ); - fillBrowseView->ConstructL(); - AddViewL( fillBrowseView ); // transfer ownership to CAknViewAppUi - CleanupStack::Pop( fillBrowseView ); - - - // default view is now main view - SetDefaultViewL( *mainView ); - } - -// -------------------------------------------------------------------------- -// CMSAppUi::~CMSAppUi() -// -------------------------------------------------------------------------- -// -CMSAppUi::~CMSAppUi() - { - LOG(_L("[MediaServant]\t CMSAppUi::~CMSAppUi")); - - if( iPlugin ) - { - // Destroy Ecom plugin - iPlugin->DestroyPlugin(); - } - - delete iMSEngine; - delete iParameterAgent; - delete iFillRuleController; - delete iStoreListController; - } - -// -------------------------------------------------------------------------- -// CMSAppUi::HandleCommandL(TInt aCommand) -// -------------------------------------------------------------------------- -// -void CMSAppUi::HandleCommandL(TInt aCommand) - { - LOG(_L("[MediaServant]\t CMSAppUi::HandleCommandL")); - - switch ( aCommand ) - { - case EAknSoftkeyBack: - // fall trough - case EEikCmdExit: - { - // program is exited - Exit(); - break; - } - default: - { - LOG(_L("[MediaServant]\t CMSAppUi::HandleCommandL \ - invalid command")); - break; - } - } - } - -// -------------------------------------------------------------------------- -// CMSAppUi::ChangeViewL() -// -// Changes active view according to input parameter. -// -------------------------------------------------------------------------- -// -void CMSAppUi::ChangeViewL(const TUid& aOldView, const TUid& aNewView) - { - LOG(_L("[MediaServant]\t CMSAppUi::ChangeViewL")); - - iParameterAgent->SetPreviousViewId( aOldView ); - - if ( aOldView.iUid == KMSMainViewId.iUid ) - { - // store focus index of main view - iParameterAgent->SetMainViewFocusIndex( - static_cast (iView)->FocusIndex()); - - } - else if ( aOldView.iUid == KMSFillViewId.iUid ) - { - // store focus index of main view - iParameterAgent->SetFillViewFocusIndex( - static_cast (iView)->FocusIndex()); - - } - else if ( aOldView.iUid == KMSStoreListViewId.iUid ) - { - // store focus index of fill view - iParameterAgent->SetStoreViewFocusIndex( - static_cast (iView)->FocusIndex()); - } - else - { - // no need to change view - } - - // new view is activated - ActivateViewL(TVwsViewId(KUidMediaServant, aNewView)); - } - -// -------------------------------------------------------------------------- -// CMSAppUi::StoreListController() -// Returns fill rule container -// -------------------------------------------------------------------------- -// -CMSStoreListController* CMSAppUi::StoreListController() - { - LOG(_L("[MediaServant]\t CMSAppUi::StoreListController")); - - return iStoreListController; - } - -// -------------------------------------------------------------------------- -// CMSAppUi::MSEngine() -// Returns msengine pointer -// -------------------------------------------------------------------------- -// -CMSEngine* CMSAppUi::MSEngine() - { - return iMSEngine; - } - -// -------------------------------------------------------------------------- -// CMSAppUi::RefreshListsL() -// Refresh store and fill lists -// -------------------------------------------------------------------------- -// -void CMSAppUi::RefreshListsL() - { - LOG(_L("[MediaServant]\t CMSAppUi::RefreshListsL")); - - iStoreListController->UpdateListsL(); - iFillRuleController->UpdateArrayL(); - } - -// -------------------------------------------------------------------------- -// CMSFillView::ReadMMCInfoL -// Reads mmc capasity -// -------------------------------------------------------------------------- -// -TInt CMSAppUi::ReadMMCInfoL( TInt64& aCapasity, TInt64& aFreeSpace ) - { - LOG(_L("[MediaServant]\t CMSAppUi::ReadMMCInfoL")); - RFs& sysFs = FsSession(); - RPointerArray storedDrives; - RPointerArray driveArray; - TInt error = KErrNone; - aCapasity = 0; - aFreeSpace = 0; - MCmSettings* settings = CCmSettingsFactory::NewCmSettingsEngineLC(); - - // read stored info of stored drives - MSEngine()->GetDrivesL( storedDrives ); - // get system drive info - settings->DriveListL( sysFs, driveArray ); - - TInt count = storedDrives.Count(); - - for ( TInt i = 0; i < count; i++ ) - { - TIdentityRelation relation( CMSAppUi::CompareIds ); - TInt index = driveArray.Find( storedDrives[i], relation ); - if ( index != KErrNotFound ) - { - TVolumeInfo volInfo; - error = sysFs.Volume( volInfo, storedDrives[i]->DriveNumber() ); - if ( error == KErrNone ) - { - TRACE(Print(_L("[MediaServant]\t CMSAppUi::ReadMMCInfoL %ld\n"), - volInfo.iSize )); - aCapasity += volInfo.iSize; - aFreeSpace += volInfo.iFree; - } - } - } - - storedDrives.ResetAndDestroy(); - storedDrives.Close(); - - driveArray.ResetAndDestroy(); - driveArray.Close(); - - settings->Close(); - CleanupStack::Pop(); // settings - return error; - } - -// -------------------------------------------------------------------------- -// CMSAppUi::GetFilledFilesSize -// Get filled files size -// -------------------------------------------------------------------------- -// -void CMSAppUi::GetFilledFilesSize( TInt64& aSize, const TInt aID ) - { - iMSEngine->GetFilledFilesSize( aSize, aID ); - } - - -// CMSAppUi::ParameterAgent -// returns pointer to parameter agent -// -------------------------------------------------------------------------- -// -CMSParameterAgent* CMSAppUi::ParameterAgent() - { - return iParameterAgent; - } - -// -------------------------------------------------------------------------- -// CMSAppUi::FillRuleController -// returns pointer to rule controller -// -------------------------------------------------------------------------- -// -CMSFillRuleController* CMSAppUi::FillRuleController() - { - return iFillRuleController; - } - -// -------------------------------------------------------------------------- -// CMSAppUi::FsSession -// returns file server session -// -------------------------------------------------------------------------- -// -RFs& CMSAppUi::FsSession() - { - return iEikonEnv->FsSession(); - } - -// -------------------------------------------------------------------------- -// CMSAppUi::DriveSelectedL -// returns drive selection status -// -------------------------------------------------------------------------- -// -TBool CMSAppUi::DriveSelectedL() - { - TBool status( EFalse ); - - if ( iMSEngine->DriveSelectionStatus() && MemoryAttachedL() ) - { - status = ETrue; - } - return status; - } - - -// -------------------------------------------------------------------------- -// CMSAppUi::MemoryAttachedL -// Returns ETrue if selected memory is on the device -// -------------------------------------------------------------------------- -// -TBool CMSAppUi::MemoryAttachedL() - { - LOG(_L("[MediaServant]\t CMSAppUi::MemoryAttachedL")); - - TBool status( EFalse ); - RFs& fileServer = FsSession(); - RPointerArray storedDrives; - RPointerArray driveArray; - MCmSettings* settings = CCmSettingsFactory::NewCmSettingsEngineLC(); - - // read stored info of stored drives - MSEngine()->GetDrivesL( storedDrives ); - // get system drive info - settings->DriveListL( fileServer, driveArray ); - - TInt count = storedDrives.Count(); - - for ( TInt i = 0; i < count; i++ ) - { - TIdentityRelation relation(CMSAppUi::CompareIds ); - TInt index = driveArray.Find( storedDrives[i], relation ); - if ( index != KErrNotFound ) - { - status = ETrue; - i = count; // break loop - } - } - - storedDrives.ResetAndDestroy(); - storedDrives.Close(); - - driveArray.ResetAndDestroy(); - driveArray.Close(); - - settings->Close(); - CleanupStack::Pop(); // settings - - return status; - } - -// -------------------------------------------------------------------------- -// CMSAppUi::CompareIds -// Compares drive ids -// -------------------------------------------------------------------------- -// -TBool CMSAppUi::CompareIds( const CCmDriveInfo& aStoredDrive, - const CCmDriveInfo& aDrive ) - { - TBool retval = EFalse; - if ( aStoredDrive.DriveId() == aDrive.DriveId() ) - { - retval = ETrue; - } - - return retval; - } - -// --------------------------------------------------------------------------- -// CMSAppUi::LoadSettingsPluginL -// --------------------------------------------------------------------------- -// -void CMSAppUi::LoadSettingsPluginL() - { - LOG(_L("[MediaServant]\t CMSAppUi::LoadSettingsPluginL start")); - - TRAPD( error, iPlugin = CMSGSInterface::NewL( KMSGSImplementationUid ) ); - if ( !error ) - { - AddViewL( iPlugin ); // transfer ownership to CAknViewAppUi - } - - LOG(_L("[MediaServant]\t CMSAppUi::LoadSettingsPluginL end")); - } - -// --------------------------------------------------------------------------- -// CMSAppUi::SettingsPlugin -// --------------------------------------------------------------------------- -// -CMSGSInterface* CMSAppUi::SettingsPlugin() - { - return iPlugin; - } - -// --------------------------------------------------------------------------- -// CMSAppUi::CheckDrivesSelectedL -// --------------------------------------------------------------------------- -// -void CMSAppUi::CheckDrivesSelectedL() - { - LOG(_L("[MediaServant]\t CMSAppUi::CheckDrivesSelectedL")); - - TBool status( EFalse ); - RFs& fileServer = FsSession(); - MCmSettings* settings = CCmSettingsFactory::NewCmSettingsEngineLC(); - RPointerArray storedDrives; - RPointerArray driveArray; - CleanupClosePushL( storedDrives ); - CleanupClosePushL( driveArray ); - - // read stored info of stored drives - MSEngine()->GetDrivesL( storedDrives ); - // get system drive info - settings->DriveListL( fileServer, driveArray ); - - TInt count = storedDrives.Count(); - - for ( TInt i = 0; i < count; i++ ) - { - TIdentityRelation relation(CMSAppUi::CompareIds ); - TInt index = driveArray.Find( storedDrives[i], relation ); - if ( index != KErrNotFound ) - { - status = ETrue; - i = count; // break loop - } - } - - // none of drives have been selected - if( !status ) - { - for ( TInt j = 0; j < driveArray.Count(); j++ ) - { - // mass memory - if ( driveArray[j]->DriveType() != DriveInfo::EDriveRemovable ) - { - RPointerArray massDrives; - CleanupClosePushL( massDrives ); - TInt64 quota = - ( driveArray[j]->DriveSize() * KHDDefaultQuota ) / 100; - driveArray[j]->SetDriveQuota( quota ); - driveArray[j]->SetStatus( ETrue ); - - massDrives.AppendL( driveArray[j] ); - MSEngine()->SetDrivesL( massDrives ); - CleanupStack::PopAndDestroy( );// &massDrives - //break, for only one mass memory exist - j = driveArray.Count(); - } - } - } - storedDrives.ResetAndDestroy(); - driveArray.ResetAndDestroy(); - - CleanupStack::PopAndDestroy( 2 ); // &storedDrives, &driveArray - settings->Close(); - CleanupStack::Pop(); // settings - } - -// --------------------------------------------------------------------------- -// CMSAppUi::RunWizard -// --------------------------------------------------------------------------- -// -TInt CMSAppUi::RunWizardL() - { - LOG(_L("[MediaServant]\t CMSAppUi::RunWizardL Launch Wizard")); - - TInt wizRetVal(KErrNone); - - // Check drives selection status - CheckDrivesSelectedL(); - - CMSAppWizard* appWizard = CMSAppWizard::NewL( *iMSEngine ); - CleanupStack::PushL( appWizard ); - wizRetVal = appWizard->StartL(); - CleanupStack::PopAndDestroy( appWizard ); - - if( wizRetVal != KErrNone) - { - LOG(_L("[MediaServant]\t CMSAppUi::RunWizardL Wizard Run OK")); - } - else - { - TRACE(Print(_L("[MediaServant]\t RunWizardL::\ - wizard return value: %d"), wizRetVal)); - RefreshListsL(); - } - iMSEngine->SetAppWizardState(); - - return wizRetVal; - } -// End of File