diff -r 95243422089a -r 491b3ed49290 filemanager/App/src/CFileManagerSchBackupHandler.cpp --- a/filemanager/App/src/CFileManagerSchBackupHandler.cpp Thu Aug 19 09:42:45 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,423 +0,0 @@ -/* -* Copyright (c) 2006 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: Handler for scheduled backup -* -*/ - - - #define FILE_MANAGER_POWER_SAVING_MODE - -// INCLUDE FILES -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#ifdef FILE_MANAGER_POWER_SAVING_MODE - #include -#endif // FILE_MANAGER_POWER_SAVING_MODE -#include "CFileManagerSchBackupHandler.h" -#include "MFileManagerSchBackupObserver.h" - - -// ======== MEMBER FUNCTIONS ======== - -// ---------------------------------------------------------------------------- -// CFileManagerSchBackupHandler::CFileManagerSchBackupHandler -// ---------------------------------------------------------------------------- -// -CFileManagerSchBackupHandler::CFileManagerSchBackupHandler( - CFileManagerEngine& aEngine ) : - iEngine( aEngine ) - { - } - -// ---------------------------------------------------------------------------- -// CFileManagerSchBackupHandler::NewL -// ---------------------------------------------------------------------------- -// -CFileManagerSchBackupHandler* CFileManagerSchBackupHandler::NewL( - CFileManagerEngine& aEngine ) - { - CFileManagerSchBackupHandler* self = - new( ELeave ) CFileManagerSchBackupHandler( aEngine ); - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop( self ); - return self; - } - -// ---------------------------------------------------------------------------- -// CFileManagerSchBackupHandler::ConstructL -// ---------------------------------------------------------------------------- -// -void CFileManagerSchBackupHandler::ConstructL() - { - FUNC_LOG - - iGlobalDlg = CFileManagerGlobalDlg::NewL(); - iGlobalDlg->SetObserver( this ); - - iCenRep = CRepository::NewL( KCRUidFileManagerSettings ); - } - -// ---------------------------------------------------------------------------- -// CFileManagerSchBackupHandler::~CFileManagerSchBackupHandler -// ---------------------------------------------------------------------------- -// -CFileManagerSchBackupHandler::~CFileManagerSchBackupHandler() - { - FUNC_LOG - - delete iGlobalDlg; - delete iCenRep; - } - -// ---------------------------------------------------------------------------- -// CFileManagerSchBackupHandler::HandleGlobalDlgResult -// ---------------------------------------------------------------------------- -// -void CFileManagerSchBackupHandler::HandleGlobalDlgResult( - TInt aDlgType, - TInt aDlgResult ) - { - INFO_LOG2( - "CFileManagerSchBackupHandler::HandleGlobalDlgResult-aDlgType=%d,aDlgResult=%d", - aDlgType, aDlgResult ) - TInt err( KErrNone ); - switch ( aDlgType ) - { - case CFileManagerGlobalDlg::ECountdownQuery: - { - if ( aDlgResult == EAknSoftkeyYes ) - { - // Backup was accepted - StartBackup(); - - err = iCenRep->Set( - KFileManagerLastSchBackupStatus, - EFileManagerSchBackupStatusInProgress ); - } - else - { - // Backup was rejected - InformObserver( KErrCancel ); - CancelBackupStarter(); - } - break; - } - case CFileManagerGlobalDlg::EProgressDialog: - { - // Backup was canceled - iEngine.CancelProcess( - MFileManagerProcessObserver::ESchBackupProcess ); - InformObserver( KErrCancel ); - CancelBackupStarter(); - break; - } - default: - { - InformObserver( aDlgResult ); - break; - } - } - - LOG_IF_ERROR1( err, - "CFileManagerSchBackupHandler::HandleGlobalDlgResult-err=%d", err ) - - } - -// ---------------------------------------------------------------------------- -// CFileManagerSchBackupHandler::StartBackupWithConfirmL -// ---------------------------------------------------------------------------- -// -void CFileManagerSchBackupHandler::StartBackupWithConfirmL() - { - TBool psmOn( EFalse ); - TRAPD( err, psmOn = IsPowerSavingModeOnL() ); - if ( psmOn && err == KErrNone ) - { - iGlobalDlg->ShowDialogL( - CFileManagerGlobalDlg::EQueryWithInfoIcon, - R_QTN_FMGR_SCHEDULED_BACKUP_CANCELLED_PS, - R_AVKON_SOFTKEYS_OK_EMPTY ); - CancelBackupStarter(); - return; - } - - // Show cancelable global confirm countdown before starting backup. - // Backup is started only if accepted or countdown has expired. - iGlobalDlg->ShowDialogL( - CFileManagerGlobalDlg::ECountdownQuery, - R_QTN_FMGR_SCHEDULED_BACKUP_QUERY ); - } - -// ---------------------------------------------------------------------------- -// CFileManagerSchBackupHandler::StartBackupL -// ---------------------------------------------------------------------------- -// -void CFileManagerSchBackupHandler::StartBackupL() - { - CFileManagerBackupSettings& settings( iEngine.BackupSettingsL() ); - TFileManagerDriveInfo drvInfo; - iEngine.GetDriveInfoL( settings.TargetDrive(), drvInfo ); - TBool drvAvailable( EFalse ); - - if( !IsTargetDriveAvailableL(drvInfo ) ) - { - for( TInt i ( EDriveA ); i <= EDriveZ; i++ ) - { - iEngine.GetDriveInfoL( i , drvInfo ); - if( ( IsTargetDriveAvailableL( drvInfo ) ) && ( drvInfo.iState & TFileManagerDriveInfo::EDriveEjectable ) ) - { - settings.SetTargetDrive( i ); - settings.SaveL(); - drvAvailable = ETrue; - break; - } - } - } - else - { - drvAvailable = ETrue; - } - if ( !drvAvailable ) - { - iGlobalDlg->ShowDialogL( - CFileManagerGlobalDlg::EQueryWithWarningIcon, - R_QTN_FMGR_SCHEDULED_BACKUP_ERROR, - R_AVKON_SOFTKEYS_OK_EMPTY ); - CancelBackupStarter(); - return; - } - - HBufC* text = StringLoader::LoadLC( - R_QTN_FMGR_SCHEDULED_BACKUP_PROGRESS, - iEngine.DriveName( settings.TargetDrive() ) ); - - iGlobalDlg->ShowDialogL( - CFileManagerGlobalDlg::EProgressDialog, - *text ); - - CleanupStack::PopAndDestroy( text ); - - iEngine.StartBackupProcessL( - MFileManagerProcessObserver::ESchBackupProcess ); - } - -// ---------------------------------------------------------------------------- -// CFileManagerSchBackupHandler::SetObserver -// ---------------------------------------------------------------------------- -// -void CFileManagerSchBackupHandler::SetObserver( - MFileManagerSchBackupObserver* aObserver ) - { - iObserver = aObserver; - } - -// ---------------------------------------------------------------------------- -// CFileManagerSchBackupHandler::StartBackupWithConfirm -// ---------------------------------------------------------------------------- -// -void CFileManagerSchBackupHandler::StartBackupWithConfirm() - { - FUNC_LOG - - if ( iBackupOngoing ) - { - return; - } - - iBackupOngoing = ETrue; - - TRAPD( err, StartBackupWithConfirmL() ); - if ( err != KErrNone ) - { - InformObserver( err ); - } - else - { - // Confirm scheduled backup start state - TInt err( iCenRep->Set( - KFileManagerLastSchBackupStatus, - EFileManagerSchBackupStatusInProgress ) ); - - LOG_IF_ERROR1( err, - "CFileManagerSchBackupHandler::StartBackupWithConfirm-err=%d", err ) - - } - } - -// ---------------------------------------------------------------------------- -// CFileManagerSchBackupHandler::StartBackup -// ---------------------------------------------------------------------------- -// -void CFileManagerSchBackupHandler::StartBackup() - { - FUNC_LOG - - TRAPD( err, StartBackupL() ); - if ( err != KErrNone ) - { - InformObserver( err ); - } - } - -// ---------------------------------------------------------------------------- -// CFileManagerSchBackupHandler::InformObserver -// ---------------------------------------------------------------------------- -// -void CFileManagerSchBackupHandler::InformObserver( const TInt aValue ) - { - INFO_LOG1( "CFileManagerSchBackupHandler::InformObserver-aValue=%d", aValue ) - - iBackupOngoing = EFalse; - if ( iObserver ) - { - TRAP_IGNORE( iObserver->SchBackupFinishedL( aValue ) ); - } - } - -// ---------------------------------------------------------------------------- -// CFileManagerSchBackupHandler::ProcessFinishedL -// ---------------------------------------------------------------------------- -// -void CFileManagerSchBackupHandler::ProcessFinishedL( - TInt aError, const TDesC& /*aName*/ ) - { - INFO_LOG1( "CFileManagerSchBackupHandler::ProcessFinishedL-aError=%d", - aError ) - - iGlobalDlg->CancelDialog(); - TInt err( KErrNone ); - if ( aError == KErrCancel ) - { - CancelBackupStarter(); - } - else if ( aError != KErrNone ) - { - iGlobalDlg->ShowDialogL( - CFileManagerGlobalDlg::EErrorNote, - R_QTN_CRITICAL_ERROR ); - - err = iCenRep->Set( - KFileManagerLastSchBackupStatus, - EFileManagerSchBackupStatusFailed ); - } - else - { - iGlobalDlg->ShowDialogL( - CFileManagerGlobalDlg::EInfoNote, - R_QTN_BACKUP_COMPLETED ); - - err = iCenRep->Set( - KFileManagerLastSchBackupStatus, - EFileManagerSchBackupStatusOk ); - } - - LOG_IF_ERROR1( err, - "CFileManagerSchBackupHandler::ProcessFinishedL-err=%d", err ) - - InformObserver( aError ); - - } - -// ---------------------------------------------------------------------------- -// CFileManagerSchBackupHandler::ProcessAdvanceL -// ---------------------------------------------------------------------------- -// -void CFileManagerSchBackupHandler::ProcessAdvanceL( TInt aValue ) - { - iGlobalDlg->UpdateProgressDialog( aValue ); - } - -// ---------------------------------------------------------------------------- -// CFileManagerSchBackupHandler::ProcessStartedL -// ---------------------------------------------------------------------------- -// -void CFileManagerSchBackupHandler::ProcessStartedL( TInt aFinalValue ) - { - FUNC_LOG - - iGlobalDlg->UpdateProgressDialog( 0, aFinalValue ); - } - -// ---------------------------------------------------------------------------- -// CFileManagerSchBackupHandler::CancelBackupStarter -// ---------------------------------------------------------------------------- -// -void CFileManagerSchBackupHandler::CancelBackupStarter() - { - TInt err( iCenRep->Set( - KFileManagerLastSchBackupStatus, - EFileManagerSchBackupStatusCanceled ) ); - LOG_IF_ERROR1( err, - "CFileManagerSchBackupHandler::CancelBackupStarter-err=%d", err ) - } - -// ---------------------------------------------------------------------------- -// CFileManagerSchBackupHandler::IsPowerSavingModeOnL -// ---------------------------------------------------------------------------- -// -TBool CFileManagerSchBackupHandler::IsPowerSavingModeOnL() - { - TBool ret( EFalse ); -#ifdef FILE_MANAGER_POWER_SAVING_MODE - // Check power saving mode before start - CRepository* psmCenRep = CRepository::NewLC( KCRUidPowerSaveMode ); - TInt psmMode( 0 ); - User::LeaveIfError( psmCenRep->Get( KPsmCurrentMode, psmMode ) ); - if ( psmMode ) - { - ERROR_LOG1( - "CFileManagerSchBackupHandler::IsPowerSavingModeOnL-PsmMode=%d", - psmMode ) - ret = ETrue; - } - CleanupStack::PopAndDestroy( psmCenRep ); -#endif // FILE_MANAGER_POWER_SAVING_MODE - return ret; - } - -// ---------------------------------------------------------------------------- -// CFileManagerSchBackupHandler::IsTargetDriveAvailableL -// ---------------------------------------------------------------------------- -// -TBool CFileManagerSchBackupHandler::IsTargetDriveAvailableL( const TFileManagerDriveInfo& aDrvInfo ) - { - // Start backup with cancelable global progress dialog - - // Check is target drive available - TBool ret( ETrue ); - if ( !( aDrvInfo.iState & TFileManagerDriveInfo::EDrivePresent ) || - ( aDrvInfo.iState & - ( TFileManagerDriveInfo::EDriveLocked | - TFileManagerDriveInfo::EDriveCorrupted | - TFileManagerDriveInfo::EDriveWriteProtected ) ) ) - { - ERROR_LOG1( - "CFileManagerSchBackupHandler::IsTargetDriveAvailableL-DrvState=%d", - aDrvInfo.iState ) - ret = EFalse; - } - return ret; - } - -// End of File