voicerecorder/AppSrc/CVRAppUI.cpp
branchRCL_3
changeset 20 072a5fa0c63b
parent 19 2f5c9ee7098c
child 21 c6bafb5162d8
--- a/voicerecorder/AppSrc/CVRAppUI.cpp	Thu Aug 19 09:57:40 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,436 +0,0 @@
-/*
-* Copyright (c) 2002-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: 
- *     This class is a part of the standard application framework.
- *     It instantiates the application views.
- *     It also acts as the default command handler for the application.
- *
-*/
-
-
-
-#include <ErrorUI.h>
-#include <coeutils.h>
-
-#include <AknDef.h> // For layout change event definitions
-
-#include "CVRRecView.h"
-#include "MVRSelectionProvider.h"
-#include "CVRAppUi.h"
-#include <sysutil.h>
-#include <StringLoader.h>
-#include "CVRDocument.h"
-#include <featmgr.h>
-#include "VRConsts.h"
-
-#include <VoiceRecorderUID.h>
-#include <voicerecorder.rsg>
-#include "voicerecorder.hrh"
-#include "VRUtils.h"
-#include "CVRSettingsDialog.h"
-#include <hlplch.h>
-#include <AknsConstants.h>
-#include <aknnotewrappers.h>
-#include <csxhelp/vorec.hlp.hrh>
-#include <aknradiobuttonsettingpage.h>
-#include <CNewFileServiceBase.h>
-#include <e32property.h> 
-#include <UsbWatcherInternalPSKeys.h>
-#include <usbpersonalityids.h>
-#ifdef RD_MULTIPLE_DRIVE
-#include <driveinfo.h>
-#endif
-#include <AknWaitDialog.h>
-_LIT( KVRCommandRecord, "record" );
-
-// ---------------------------------------------------------------------------
-// CVRAppUi::CVRAppUi
-// 
-// ---------------------------------------------------------------------------
-//
-CVRAppUi::CVRAppUi()
-	{
-	}
-
-
-// ---------------------------------------------------------------------------
-// CVRAppUi::~CVRAppUi
-// 
-// ---------------------------------------------------------------------------
-//
-CVRAppUi::~CVRAppUi()
-    {
-    if (iActiveWait.IsStarted())
-        {
-        iActiveWait.AsyncStop();
-        }
-
-    if (iDoorObserver)
-        {
-        iDoorObserver->NotifyExit(MApaEmbeddedDocObserver::EEmpty);
-        }
-
-	delete iErrorUI;
-	FeatureManager::UnInitializeLib();
-	}
-
-// ---------------------------------------------------------------------------
-//CVRAppUi::ConstructL
-// 
-// ---------------------------------------------------------------------------
-//
-void CVRAppUi::ConstructL()
-    {
-    BaseConstructL( EAknEnableSkin | EAknEnableMSK 
-#ifdef SINGLE_CLICK_INCLUDED
-    | EAknSingleClickCompatible
-#endif
-	);
-
-	iErrorUI = CErrorUI::NewL();
-
-	// Exit if video or voip call is ongoing
-	if ( VRUtils::UnsupportedCallTypeOngoing( ETrue ) )
-		{
-		Exit();
-		}
-
-	FeatureManager::InitializeLibL();
-
-	if ( FeatureManager::FeatureSupported( KFeatureIdMmc ) )
-		{
-
-#ifndef RD_MULTIPLE_DRIVE
-		TVRDriveInfo mmcInfo;
-		VRUtils::GetMMCInfo( mmcInfo );
-		TVRMemoStore memoStore = VRUtils::MemoStoreL();
-
-		if ( memoStore == EMemoStoreMMC )
-			{
-            // check if USB is connected, if so, then need to switch to phone memory
-            if (CVRUSBStateHanlder::IsUsbActive())
-                {
-                HBufC* noteText = iCoeEnv->AllocReadResourceLC(
-                        R_QTN_MEMC_VOREC_NOTE1 );
-                CAknInformationNote* infoNote =
-                new( ELeave ) CAknInformationNote( ETrue );
-                infoNote->ExecuteLD( *noteText );
-                CleanupStack::PopAndDestroy( noteText );
-                VRUtils::SetMemoStoreL( EMemoStorePhoneMemory );
-                }
-
-			// MMC not available or locked
-			else if ( memoStore && ( mmcInfo.iDriveLocked || !mmcInfo.iDrivePresent ) )
-				{
-				HBufC* noteText = iCoeEnv->AllocReadResourceLC(
-														 R_QTN_MEMC_VOREC_NOTE1 );
-				CAknInformationNote* infoNote =
-									   new( ELeave ) CAknInformationNote( ETrue );
-				infoNote->ExecuteLD( *noteText );
-				CleanupStack::PopAndDestroy( noteText );
-				VRUtils::SetMemoStoreL( EMemoStorePhoneMemory );
-				}
-			else if ( mmcInfo.iDriveReadOnly )
-				{
-				HBufC* noteText = iCoeEnv->AllocReadResourceLC(
-														 R_QTN_MEMC_VOREC_NOTE2 );
-				CAknInformationNote* infoNote =
-									   new( ELeave ) CAknInformationNote( ETrue );
-				infoNote->ExecuteLD( *noteText );
-				CleanupStack::PopAndDestroy( noteText );				
-				VRUtils::SetMemoStoreL( EMemoStorePhoneMemory );
-				}
-			else if ( mmcInfo.iDriveCorrupted )
-				{
-				// MMC corrupted -> use phone memory
-				VRUtils::SetMemoStoreL( EMemoStorePhoneMemory );
-				}
-			
-			}
-// for multiple drives
-#else
-
-
-#endif
-		}
-
-    CVRRecView* view = CVRRecView::NewLC(R_VR_RECORDER_VIEW,
-            R_VR_RECVIEW_STATES);
-
-	AddViewL( view );
-	iLayoutChangeObserver = view;
-	CleanupStack::Pop( view );
-
-	SetDefaultViewL( *view );
-
-    // Activate view straight away, if started through new file service	
-    if (iEikonEnv->StartedAsServerApp())
-        {
-        ActivateLocalViewL(TUid::Uid(KVRRecorderViewUID), TUid::Uid(
-                EContextRecordNewForRemote), KNullDesC8);
-        }
-
-	}
-
-// ---------------------------------------------------------------------------
-// CVRAppUi::HandleCommandL
-// 
-// ---------------------------------------------------------------------------
-//
-void CVRAppUi::HandleCommandL( TInt aCommand )
-    {
-	switch ( aCommand )
-        {
-		case EAknSoftkeyExit:	// Fall through
-			{
-			if ( iView )
-				{
-				iView->HandleCommandL( ECmdCancelNote );				
-				}
-            Exit();
-			break;
-			}
-        case EEikCmdExit:
-		   	{
-			if ( iView )
-				{
-				iView->HandleCommandL( ECmdCancelNote );				
-				}
-
-            // The file service needs to abort if it's still going on
-            if (iEmbeddedObserver)
-                {
-                CNewFileServiceBase * iNewFileService = NULL;
-                iNewFileService
-                        = dynamic_cast<CNewFileServiceBase*> (iEmbeddedObserver);
-                if (iNewFileService != NULL)
-                    {
-                    iNewFileService->SetErrorCode(KErrAbort);
-                    }
-                iEmbeddedObserver->AbortL();
-                }
-
-            Exit();
-			break;
-            }
-		case EAknCmdExit:
-			{
-			if ( iView )
-				{
-				iView->HandleCommandL( ECmdCancelNote );				
-				}
-
-            // The file service needs to abort if it's still going on
-            if (iEmbeddedObserver)
-                {
-                CNewFileServiceBase * iNewFileService = NULL;
-                iNewFileService
-                        = dynamic_cast<CNewFileServiceBase*> (iEmbeddedObserver);
-                if (iNewFileService != NULL)
-                    {
-                    iNewFileService->SetErrorCode(KErrAbort);
-                    }
-                iEmbeddedObserver->AbortL();
-                }
-
-            Exit();
-            break;
-            }
-        case ECmdHelp:
-            {
-            if (FeatureManager::FeatureSupported(KFeatureIdHelp))
-                {
-                if (iIsSettingsOpen)
-                    {
-                    CArrayFix<TCoeHelpContext>* contexts = AppHelpContextL();
-                    contexts->At(0).iContext = KVOREC_HLP_SETTINGS;
-                    HlpLauncher::LaunchHelpApplicationL(
-                            iEikonEnv->WsSession(), contexts);
-                    }
-                else
-                    {
-                    HlpLauncher::LaunchHelpApplicationL(
-                            iEikonEnv->WsSession(), AppHelpContextL());
-                    }
-                }
-            break;
-            }
-        case ECmdSettings:
-            {
-            if (FeatureManager::FeatureSupported(KFeatureIdMmc)
-                    || VRUtils::FeatureEnabled(EVRFeatureShowQualitySetting))
-                {
-                iIsSettingsOpen = ETrue;
-                CVRSettingsDialog* settingsDlg = CVRSettingsDialog::NewL();
-                settingsDlg->ExecuteLD(R_VR_SETTINGS_DIALOG);
-                iIsSettingsOpen = EFalse;
-                }
-            break;
-            }
-        case ECmdNewFileServiceNotify:
-            {
-            if (iActiveWait.IsStarted())
-                {
-                iActiveWait.AsyncStop();
-                }
-            break;
-            }
-        case ECmdEmbeddedRecordingReady:
-            {
-            if (iEmbeddedObserver)
-                {
-                TBool canExit(ETrue);
-
-                TVRSelectionStyle selStyle;
-                TPtrC memoFile(SelectionProviderL()-> GetSelectedFilesLC(
-                        selStyle)-> MdcaPoint(0));
-                if (memoFile.Length() > 0)
-                    {
-                    TFileName myFilename(memoFile);
-                    canExit = iEmbeddedObserver->FileCompleteL(myFilename);
-                    }
-
-				// destroy array from GetSelectedFilesLC()
-				CleanupStack::PopAndDestroy();
-
-				if ( canExit )
-					{
-					HandleCommandL( EEikCmdExit );
-					}
-				else
-					{
-					// Wait until file service has completed
-					// transfering filename array back to client
-					if( !iActiveWait.IsStarted() )
-					    {
-					    iActiveWait.Start(); // CSI: 10 #
-					    }
-					}
-   				}
-			break;
-  			}
-       	
-        default:
-			{
-			break;
-			}
-        }
-    }
-
-// ---------------------------------------------------------------------------
-// CVRAppUi::SelectionProviderL
-// 
-// ---------------------------------------------------------------------------
-//
-MVRSelectionProvider* CVRAppUi::SelectionProviderL()
-	{
-    return reinterpret_cast< CVRRecView* >( iView );
-	}
-
-// ---------------------------------------------------------------------------
-// CVRAppUi::HandleResourceChangeL
-// 
-// ---------------------------------------------------------------------------
-//
-void CVRAppUi::HandleResourceChangeL( TInt aType )
-	{
-	CAknViewAppUi::HandleResourceChangeL( aType );
-
-    if (iLayoutChangeObserver != NULL && (aType == KEikDynamicLayoutVariantSwitch || aType
-            == KAknsMessageSkinChange))
-        {
-        iLayoutChangeObserver->LayoutChangedL(aType);
-        }
-    }
-
-// ---------------------------------------------------------------------------
-// CVRAppUi::RecordNewFileL
-// 
-// ---------------------------------------------------------------------------
-//
-void CVRAppUi::RecordNewFileL( RFile& aFile, MVREmbeddedObserver* aObserver )
-	{
-	if ( aObserver )
-		{
-		iEmbeddedObserver = aObserver;
-
-		if ( aFile.SubSessionHandle() != 0)
-			{
-			// Pass file handle to recview
-			SelectionProviderL()->SetFileHandle( aFile );
-			}				
-		}
-	}
-
-// ---------------------------------------------------------------------------
-// CVRAppUi::ProcessCommandParametersL
-// 
-// ---------------------------------------------------------------------------
-//
-TBool CVRAppUi::ProcessCommandParametersL( TApaCommand /*aCommand*/,
-    TFileName& aDocumentName, const TDesC8& aTail )
-    {
-
-    // Check if we got "-record" as command line parameter
-    // convert 8-bit descriptor to a 16-bit one without altering data.
-    const TUint16* ptr16 = reinterpret_cast<const TUint16*> (aTail.Ptr());
-    TPtrC16 tail(ptr16, aTail.Size() >> 1);
-
-    if (aDocumentName.Compare(KVRCommandRecord) == 0 || tail.Compare(
-            KVRCommandRecord) == 0)
-        {
-        // Enter recording context
-        ActivateLocalViewL(TUid::Uid(KVRRecorderViewUID), TUid::Uid(
-                EContextRecordNewNormal), KNullDesC8);
-        return EFalse;
-        }
-    else // No record parameter, start normally
-        {
-        ActivateLocalViewL(TUid::Uid(KVRRecorderViewUID), TUid::Uid(
-                EContextEmptyNormal), KNullDesC8);
-        }
-        
-	if ( !ConeUtils::FileExists( aDocumentName ) )
-		{
-		aDocumentName.Copy( aTail );
-		}		
-	return ConeUtils::FileExists( aDocumentName );
-    }
-
-// ---------------------------------------------------------------------------
-// CVRAppUi::HandleApplicationSpecificEventL
-// 
-// ---------------------------------------------------------------------------
-//
-void CVRAppUi::HandleApplicationSpecificEventL(TInt aType,
-        const TWsEvent& aEvent)
-    {
-    if( aType == EAknSoftkeyExit || aType == KAknShutOrHideApp)
-    	{
-    	Exit();
-    	}
-    	CEikAppUi::HandleApplicationSpecificEventL(aType, aEvent);
-    }
-
-// ---------------------------------------------------------------------------
-// CVRAppUi::SetEmbeddedObserver
-// 
-// ---------------------------------------------------------------------------
-//
-void CVRAppUi::SetEmbeddedObserver( MVREmbeddedObserver* aObserver )
-    {
-    iEmbeddedObserver = aObserver;
-    }
-
-// End of file