mmsharing/mmshui/src/musuisendcontroller.cpp
branchRCL_3
changeset 22 73a1feb507fb
parent 21 33a5d2bbf6fc
child 23 bc78a40cd63c
--- a/mmsharing/mmshui/src/musuisendcontroller.cpp	Thu Aug 19 09:51:39 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1077 +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:  
-*
-*/
-
-
-
-#include "musuisendcontroller.h"
-#include "musuieventobserver.h"
-#include "musuisharingobserver.h"
-#include "musuisendobserver.h"
-#include "musuidialogutil.h"
-#include "musuicallbackservice.h"
-#include "musuifileutil.h"
-#include "mussettings.h"
-#include "musuipropertywatch.h"
-#include "mussessionproperties.h"
-#include "mussettingskeys.h"
-#include "musuiresourcehandler.h"
-#include "muslogger.h" // debug logging
-
-#include "musengmceoutsession.h"
-#include "musenguriparser.h"
-#include <musui.rsg>
-
-#include <StringLoader.h>
-#include <pathinfo.h>
-#include <CDirectoryLocalizer.h>
-
-
-using namespace NMusSessionApi;
-
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-//
-CMusUiSendController::~CMusUiSendController()
-    {
-    MUS_LOG( "mus: [MUSUI ]  -> CMusUiSendController::~CMusUiSendController" );
-    
-    delete iAddress;
-    delete iRemoteSipAddress;
-    delete iRemoteSipAddressProposal;
-    TRAP_IGNORE( DeleteFileL() );  
-    delete iVideoFileName;
-    delete iLocalizer;
-    
-    MUS_LOG( "mus: [MUSUI ]  <- CMusUiSendController::~CMusUiSendController" );
-    }
-    
-    
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-//
-CMusEngMceSession* CMusUiSendController::EngineSession()
-    {
-    return EngineOutSession(); // Engine out session is CMusEngMceSession
-    }
-
-
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-//
-void CMusUiSendController::DeleteEngineSession()
-    {
-    // Cancel invite
-    if ( EngineOutSession() && !ConnectionEstablished() )
-        {
-        MUS_LOG( "mus: [MUSUI ]     CMusUiSendController::DeleteEngineSession:\
-                            Canceling inviting..." );
-        TRAP_IGNORE( EngineOutSession()->CancelInviteL() );
-        }
-    }     
-        
-
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-//
-void CMusUiSendController::HandlePropertyError( const TInt aReason )
-    {
-    MUS_LOG1( "mus: [MUSUI ]     -> CMusUiEventController::HandleError [%d]",
-                            aReason );
-    TRAP_IGNORE( DeleteVideoL() );
-    
-    CMusUiEventController::HandlePropertyError( aReason ); // For the base class
-    
-    MUS_LOG( "mus: [MUSUI ]  <- CMusUiEventController::HandleError" );
-    }
-    
-
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-//
-void CMusUiSendController::HandleAsyncEventL( TMusUiAsyncEvent aEventId )
-    {
-    MUS_LOG( "mus: [MUSUI ]  -> CMusUiSendController::HandleAsyncEventL" );
-    switch ( aEventId )
-        {
-        case EMusUiAsyncInviteCancel:
-            {
-            MUS_LOG( "mus: [MUSUI ]     CMusUiSendController::\
-                     HandleAsyncEventL: EMusUiAsyncInviteCancel" );
-            HandleExitL();
-            break;
-            }
-        case EMusUiAsyncManualAddressEntry:
-            {
-            iResourceHandler->RequestKeypadL( ETrue ); // Exits on fail                    
-            iSendObserver.ManualAddressEntryL( *iRemoteSipAddressProposal );
-            break;
-            }
-        case EMusUiAsyncStartInvitation:
-            {
-            MUS_LOG( "mus: [MUSUI ]     CMusUiSendController::\
-                     HandleAsyncEventL: EMusUiAsyncStartInvitation" );
-            InviteL();	            
-            break;
-            }
-        default:
-            {
-            // Not send specific, let the base class handle
-            CMusUiEventController::HandleAsyncEventL( aEventId );
-            }
-        }
-    MUS_LOG( "mus: [MUSUI ]  <- CMusUiSendController::HandleAsyncEventL" );
-    
-    }
-
-
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-//
-const TDesC& CMusUiSendController::TypedAddress() const
-    {
-    return *iAddress;
-    }
-    
-
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-//
-TBool CMusUiSendController::ManualAddressTyped() const
-    {
-    return iManualAddressTyped;
-    }
-
-
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-//
-void CMusUiSendController::StartInvitationL()
-    {
-    MUS_LOG( "mus: [MUSUI ]  -> CMusUiSendController::StartInvitationL" );
-    
-    iCallbackService->AsyncEventL( EMusUiAsyncStartInvitation );
-        
-    MUS_LOG( "mus: [MUSUI ]  <- CMusUiSendController::StartInvitationL" );
-    }
-    
-
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-//
-void CMusUiSendController::InviteL()
-    {
-    MUS_LOG( "mus: [MUSUI ]  -> CMusUiSendController::InviteL" );
-    
-    if ( !iSipRegistrationPending )
-        {
-        TRAPD( error, 
-               iRemoteSipAddress = CMusUiPropertyWatch::ReadDescPropertyL(
-                                                    KRemoteSipAddress ) );
-        if ( error != KErrNone )
-            {
-            iRemoteSipAddress = KNullDesC().AllocL();
-            }
-
-        TRAP( error, iRemoteSipAddressProposal =
-                                CMusUiPropertyWatch::ReadDescPropertyL(
-                                                    KRemoteSipAddressProposal ) );
-        if ( error != KErrNone )
-            {
-            iRemoteSipAddressProposal = KNullDesC().AllocL();
-            }
-        
-        if ( iRemoteSipAddress->Length() > 0 )
-            {
-            if ( iRemoteSipAddress->Find( KMusCommaSymbol ) == KErrNotFound )
-                {
-                InviteL( *iRemoteSipAddress );
-                }
-            else
-                {
-                // Split the addresses using KMusCommaSymbol as a separator
-                CDesCArray* addressArray =
-                            new ( ELeave ) CDesCArrayFlat(
-                                                    KMusSipAddressesMaxAmount );
-                SplitL( *iRemoteSipAddress, KMusCommaSymbol, addressArray );
-                // Show List Query Dialog
-                TBuf<KMusSipAddressMaxLength> selectedAddress;
-                if ( MusUiDialogUtil::SelectAddressDialogL( addressArray, 
-                                                            selectedAddress ) )
-                    {
-                    // Invite with the chosen address                    
-                    InviteL( selectedAddress );
-                    }
-                else
-                    {
-                    HandleExitL();
-                    }
-                }
-            }
-        else
-            {
-            iResourceHandler->RequestKeypadL( ETrue ); // Exits on failure
-            iManualAddressTyped = ETrue;
-            iSendObserver.ManualAddressEntryL( *iRemoteSipAddressProposal );
-            }
-        }
-    else
-        {
-        // Show waiting dialog
-        delete iDialogPrompt;
-        iDialogPrompt = NULL;
-        iDialogPrompt = StringLoader::LoadL(
-                                R_MUS_REGISTRATION_PENDING_WAIT_NOTE_TXT );
-                       
-        if ( !iSharingObserver.ShowWaitDialogL( 
-                                    *iDialogPrompt, 
-                                    KMusInviteExpireTimeout, //Reuse 1 min timer
-                                    R_MUS_LIVE_SHARING_VIEW_NOTE_NO_REG ) )
-            {
-            iEventObserver.HandleExit();
-            }
-            
-        }
-        
-    MUS_LOG( "mus: [MUSUI ]  <- CMusUiSendController::InviteL" );
-    }    
-
-
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-//
-void CMusUiSendController::CancelInvitationL()
-    {
-    MUS_LOG( "mus: [MUSUI ]  -> CMusUiSendController::CancelInvitationL" );
-    
-    if ( EngineOutSession() && !ConnectionEstablished() )
-        {
-        TRAP_IGNORE( EngineOutSession()->CancelInviteL() );
-        }
-        
-    HandleExitL();
-    
-    MUS_LOG( "mus: [MUSUI ]  <- CMusUiSendController::CancelInvitationL" );
-    }
-    
-
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-//
-void CMusUiSendController::HandleForegroundEventL( TBool aForeground )
-    {
-    MUS_LOG( "mus: [MUSUI ]  -> CMusUiSendController::HandleForegroundEventL" );
-    
-    CMusUiEventController::HandleForegroundEventL( aForeground );
-    
-    if ( ConnectionEstablished() &&  !ExitOccured() )
-        {
-        if ( aForeground )
-            { 
-            if ( iContinuePlayingWhenForeground )
-                {
-                MUS_LOG( "mus: [MUSUI ]     Resume playing" );
-                PlayL();
-                }
-            }
-        else
-            {
-            MUS_LOG( "mus: [MUSUI ]     Pause playing" );
-            if ( EngineOutSession() )
-                {
-                iContinuePlayingWhenForeground = IsPlayingL(); 
-                }
-            PauseL();
-            }
-        }
-    
-    MUS_LOG( "mus: [MUSUI ]  <- CMusUiSendController::HandleForegroundEventL" );
-    }
-
-
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-//
-void CMusUiSendController::PlayL()
-    {
-    MUS_LOG( "mus: [MUSUI ]  -> CMusUiSendController::PlayL" );
-    if ( EngineOutSession() )
-        {
-        EngineOutSession()->PlayL();
-        }
-    MUS_LOG( "mus: [MUSUI ]  <- CMusUiSendController::PlayL" );
-    }
-
-
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-//
-void CMusUiSendController::PauseL()
-    {
-    MUS_LOG( "mus: [MUSUI ]  -> CMusUiSendController::PauseL" );
-    if ( EngineOutSession() )
-        {
-        EngineOutSession()->PauseL();
-        }
-    MUS_LOG( "mus: [MUSUI ]  <- CMusUiSendController::PauseL" );
-    }
-
-
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-//
-TBool CMusUiSendController::IsPlayingL()
-    {
-    TBool isPlaying( EFalse );
-    
-    if ( EngineOutSession() )
-        {
-        isPlaying = EngineOutSession()->IsPlayingL();
-        }
-    
-    return isPlaying;
-    }
-
-
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-//
-void CMusUiSendController::SessionEstablished()
-    {
-    MUS_LOG( "mus: [MUSUI ]  -> CMusUiSendController::SessionEstablished" );
-    
-    // Common handling first
-    CMusUiEventController::SessionEstablished();
-    
-    iConnectionEstablished = ETrue;
-    DismissWaitDialog();
-    
-    if ( iForeground )
-        {
-        MUS_LOG( "mus: [MUSUI ]     Enable display and start playing" );
-        TRAP_IGNORE( PlayL(); 
-                     EnableDisplayL( ETrue ); )
-                     
-        iEventObserver.SetToolbarVisibility( ETrue );
-        
-        }
-    else
-        {
-        MUS_LOG( "mus: [MUSUI ]     In background, don't start playing yet" );
-        iContinuePlayingWhenForeground = ETrue;
-        }
-        
-    MUS_LOG( "mus: [MUSUI ]  <- CMusUiSendController::SessionEstablished" );
-    }
-
-
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-//
-void CMusUiSendController::SessionRejected()
-    {
-    MUS_LOG( "mus: [MUSUI ]  -> CMusUiSendController::SessionRejected" );
-    DismissWaitDialog();
-    TRAP_IGNORE (
-            MusUiDialogUtil::ShowInformationDialogL( 
-                        R_MUS_LIVE_SHARING_VIEW_NOTE_CONNECTION_REJECTED ) );
-    
-    TRAP_IGNORE( iCallbackService->AsyncEventL( EMusUiAsyncHandleExit ) );
-       
-    MUS_LOG( "mus: [MUSUI ]  <- CMusUiSendController::SessionRejected" );
-    }
-
-
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-//
-void CMusUiSendController::SessionBadRequest()
-    {
-    MUS_LOG( "mus: [MUSUI ]  -> CMusUiSendController::SessionBadRequest" );
-    
-    DismissWaitDialog();
-    TRAP_IGNORE( iCallbackService->AsyncEventL( EMusUiAsyncHandleExit ) );
-    
-    MUS_LOG( "mus: [MUSUI ]  <- CMusUiSendController::SessionBadRequest" );
-    }
-
-
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-//
-void CMusUiSendController::SessionUnauthorized()
-    {
-    MUS_LOG( "mus: [MUSUI ]  -> CMusUiSendController::SessionUnauthorized" );
-    
-    DismissWaitDialog();
-    TRAP_IGNORE( iCallbackService->AsyncEventL( EMusUiAsyncHandleExit ) );
-    
-    MUS_LOG( "mus: [MUSUI ]  <- CMusUiSendController::SessionUnauthorized" );
-    }
-
-
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-//
-void CMusUiSendController::SessionPaymentRequired()
-    {
-    MUS_LOG( "mus: [MUSUI ]  -> CMusUiSendController::SessionPaymentRequired" );
-    
-    DismissWaitDialog();
-    TRAP_IGNORE( iCallbackService->AsyncEventL( EMusUiAsyncHandleExit ) );
-    
-    MUS_LOG( "mus: [MUSUI ]  <- CMusUiSendController::SessionPaymentRequired" );
-    }
-
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-//
-void CMusUiSendController::SessionRecipientNotFound()
-    {
-    MUS_LOG1( "mus: [MUSUI ]     -> CMusUiSendController::SessionRecipientNotFound [%d]",
-                            iTriedInvitations );
-    DismissWaitDialog();
-    if ( ExitOccured() )
-        {
-        return;
-        }
-    if ( ++iTriedInvitations > 1 )
-        {
-        TRAP_IGNORE( MusUiDialogUtil::ShowInformationDialogL(
-                                R_MUS_LIVE_SHARING_VIEW_NOTE_WRONG_ADDRESS ) );
-        
-        TRAP_IGNORE( iCallbackService->AsyncEventL( EMusUiAsyncInviteCancel ) );
-           
-        }
-    else
-        {
-        TRAP_IGNORE( MusUiDialogUtil::ShowInformationDialogL(
-                                R_MUS_LIVE_SHARING_VIEW_NOTE_WRONG_ADDRESS ) );
-        iManualAddressTyped = ETrue;
-        
-        TRAP_IGNORE(
-            iCallbackService->AsyncEventL( EMusUiAsyncManualAddressEntry ) );
-            
-        }
-    MUS_LOG( "mus: [MUSUI ]  <- CMusUiSendController::SessionRecipientNotFound" );
-    }
-
-
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-//
-void CMusUiSendController::SessionProxyAuthenticationRequired()
-    {
-    MUS_LOG( "mus: [MUSUI ]  -> CMusUiSendController::SessionProxyAuthenticationRequired" );
-    
-    DismissWaitDialog();
-    TRAP_IGNORE( iCallbackService->AsyncEventL( EMusUiAsyncHandleExit ) );
-    
-    MUS_LOG( "mus: [MUSUI ]  <- CMusUiSendController::SessionProxyAuthenticationRequired" );
-    }
-
-
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-//
-void CMusUiSendController::SessionRequestTimeOut()
-    {
-    MUS_LOG( "mus: [MUSUI ]  -> CMusUiSendController::SessionRequestTimeOut" );
-    DismissWaitDialog();    
-    TRAP_IGNORE( MusUiDialogUtil::ShowInformationDialogL( 
-                            R_MUS_LIVE_SHARING_VIEW_NOTE_NO_RESPONSE ) );
-    
-    TRAP_IGNORE( iCallbackService->AsyncEventL( EMusUiAsyncHandleExit ) );
-        
-    MUS_LOG( "mus: [MUSUI ]  <- CMusUiSendController::SessionRequestTimeOut" );
-    }
-
-
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-//
-void CMusUiSendController::SessionUnsupportedMediaType()
-    {
-    MUS_LOG( "mus: [MUSUI ]  -> CMusUiSendController::SessionUnsupportedMediaType" );
-    DismissWaitDialog();
-    if ( !ExitOccured() )
-        {
-        TRAP_IGNORE( MusUiDialogUtil::ShowGlobalErrorDialogL( 
-                                    R_MUS_LIVE_SHARING_VIEW_NOTE_APP_N_A ) );
-        }
-    
-    TRAP_IGNORE( iCallbackService->AsyncEventL( EMusUiAsyncHandleExit ) );
-    
-    MUS_LOG( "mus: [MUSUI ]  <- CMusUiSendController::SessionUnsupportedMediaType" );
-    }
-
-
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-//
-void CMusUiSendController::SessionBusyHere()
-    {
-    MUS_LOG( "mus: [MUSUI ]  -> CMusUiSendController::SessionBusyHere" );
-    DismissWaitDialog();
-    TRAP_IGNORE( 
-            MusUiDialogUtil::ShowInformationDialogL( 
-                               R_MUS_LIVE_SHARING_VIEW_NOTE_RECIPIENT_N_A ) );
-    
-    TRAP_IGNORE( iCallbackService->AsyncEventL( EMusUiAsyncHandleExit ) );
-        
-    MUS_LOG( "mus: [MUSUI ]  <- CMusUiSendController::SessionBusyHere" );
-    }
-
-
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-//
-void CMusUiSendController::SessionRequestCancelled()
-    {
-    MUS_LOG( "mus: [MUSUI ]  -> CMusUiSendController::SessionRequestCancelled" );
-    DismissWaitDialog();
-    TRAP_IGNORE( 
-          MusUiDialogUtil::ShowInformationDialogL( 
-                        R_MUS_LIVE_SHARING_VIEW_NOTE_INVITATION_CANCELLED ) );
-    
-    TRAP_IGNORE( iCallbackService->AsyncEventL( EMusUiAsyncHandleExit ) );
-        
-    MUS_LOG( "mus: [MUSUI ]  <- CMusUiSendController::SessionRequestCancelled" );
-    }
-
-
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-//
-void CMusUiSendController::SessionTemporarilyNotAvailable()
-    {
-    MUS_LOG( "mus: [MUSUI ]  -> CMusUiSendController::SessionRequestCancelled" );
-    DismissWaitDialog();
-    if ( !ExitOccured() )
-        {
-        TRAP_IGNORE( MusUiDialogUtil::ShowGlobalErrorDialogL( 
-                            R_MUS_LIVE_SHARING_VIEW_NOTE_SERVICE_N_A ) );
-        }
-    
-    TRAP_IGNORE( iCallbackService->AsyncEventL( EMusUiAsyncHandleExit ) );
-    
-    MUS_LOG( "mus: [MUSUI ]  <- CMusUiSendController::SessionRequestCancelled" );
-    }
-
-
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-//
-void CMusUiSendController::ConstructL()
-    {
-    MUS_LOG( "mus: [MUSUI ]  -> CMusUiSendController::ConstructL" );
-    
-    CMusUiEventController::ConstructL(); // Base class construction
-    iLocalizer = CDirectoryLocalizer::NewL();
-     
-    MUS_LOG( "mus: [MUSUI ]  <- CMusUiSendController::ConstructL" );   
-    }
-    
-
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-//
-CMusUiSendController::CMusUiSendController(
-                                    MMusUiEventObserver& aEventObserver,
-                                    MMusUiSharingObserver& aSharingObserver, 
-	                                MMusUiSendObserver& aSendObserver )
-	: CMusUiEventController( aEventObserver, aSharingObserver ),
-	  iSendObserver( aSendObserver ),
-	  iTriedInvitations( 0 ),
-	  iContinuePlayingWhenForeground( ETrue ),
-	  iWaitDialogCallback( *this )
-    {
-    
-    }
-
-
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-//
-void CMusUiSendController::ExitProcedureL( TBool aUserAcceptance )
-    {
-    MUS_LOG( "mus: [MUSUI ]  -> CMusUiSendController::ExitProcedureL" );
-    
-    DismissWaitDialog();
-    
-    switch ( iShutdownState )
-        {
-        case EMusUiShutdownStarted:
-            {
-            MUS_LOG( "mus: [MUSUI ]     ExitProcedureL: EMusuiShutdownStarted" );
-        
-            if ( iVideoToBeSaved && 
-                 iVideoFileName &&
-                 MusUiFileUtil::FileExists( *iVideoFileName ) )
-                {
-                iShutdownState = EMusUiShutdownVideoSaved;
-                ShowVideoSavedDialogL();
-                ExitProcedureL( ETrue ); // Accept saving
-                }
-            else
-                {
-                CMusUiEventController::ExitProcedureL( aUserAcceptance );
-                }
-            break;
-            }
-            
-        case EMusUiShutdownVideoSaved:
-            {
-            MUS_LOG( "mus: [MUSUI ]     ExitProcedureL: EMusuiShutdownVideoSaved" );
-            
-            // Check if our address is valid sip or tel uri. If not, there is no
-            // point to query user about permission to save it to contacts.
-            
-            TInt error = KErrNotFound;
-            if ( iAddress )
-                {
-                TMusEngUriParser parser( *iAddress );
-                TRAP( error, parser.ParseUriL() )                
-                }
-   
-            // Save Address to Contacts query if manually entered
-            // and if is the standard variant.
-            // NOTE: KErrNotSupported means there is more than one contact id.
-            if ( !iOperatorSpecificFunctionality && ManualAddressTyped() && 
-                 iContactId != KErrNotSupported &&
-                 error == KErrNone )
-                {
-                iShutdownState = EMusUiShutdownContactSavingQueried;
-                SaveContactQueryL();
-                }
-            else
-                {
-                // Nothing send specific, let the base class handle
-                CMusUiEventController::ExitProcedureL( aUserAcceptance );
-                }
-            break;
-            }
-
-        default:
-            {
-            // Nothing send specific, let the base class handle
-            CMusUiEventController::ExitProcedureL( aUserAcceptance );
-            break;
-            }
-        }
-    
-    MUS_LOG( "mus: [MUSUI ]  <- CMusUiSendController::ExitProcedureL" );
-    }
-    
-    
-// -----------------------------------------------------------------------------
-// Handles status changes specific to sending sharing types.
-// Calls base class version for status changes that are not sending specific. 
-// -----------------------------------------------------------------------------
-//
-void CMusUiSendController::HandleChangedStatusL(
-                        TMusAvailabilityStatus aStatus )
-    {
-    MUS_LOG( "mus: [MUSUI ]  -> CMusUiSendController::HandleChangedStatusL" )
-    switch( aStatus )
-        {
-        case ESipRegistrationPending:
-            {
-            MUS_LOG( "mus: [MUSUI ]     ESipRegistrationPending" );
-            iSipRegistrationPending = ETrue;
-            break;
-            }
-        case ESipOptionsNotSent:    // FALLTHROUGH
-        case ESipOptionsSent:       // FALLTHROUGH
-        	{
-        	break;	
-        	}
-        case EManualActivation:     // FALLTHROUGH
-        case EMultimediaSharingAvailable:
-            {
-            MUS_LOG( "mus: [MUSUI ]     EManualActivation or EMultimediaSharingAvailable" )
-      
-            if( iSipRegistrationPending )
-                {
-                iSipRegistrationPending = EFalse;
-                // Set callback service, Call StartInvitationL when wait dialog dismissed
-                TRAPD( err, iSharingObserver.SetWaitDialogCallbackL( 
-                            &iWaitDialogCallback ) );
-                // Dismiss pending wait note
-                iSharingObserver.DismissWaitDialogL();
-                if ( err == KErrNotReady )
-                    {
-                    StartInvitationL(); 
-                    }
-                }
-            break;
-            }
-
-        default:
-            {
-            // Not sending specific, let the base class handle
-            CMusUiEventController::HandleChangedStatusL( aStatus );
-            break;
-            }
-        }
-    MUS_LOG( "mus: [MUSUI ]  <- CMusUiSendController::HandleChangedStatusL" )
-    }
-    
-
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-//
-const TDesC& CMusUiSendController::VideoFileNameL()
-    {
-    MUS_LOG( "mus: [MUSUI ]  -> CMusUiSendController::VideoFileNameL" );
-    
-    TParse parse;
-    TPtrC rootPath;
-    
-    SetVideoPathValueL();//sets video rootpath according to setting value.
-   
-    if ( parse.Set( iVideoFilePath,NULL,NULL) != KErrBadName )
-        {
-         
-         if(parse.Drive().Compare( PathInfo::MemoryCardRootPath()))
-            {
-            TRAPD(error,MusUiFileUtil::VideoFilePathExistsL(iVideoFilePath));
-            
-            switch(error)
-                {
-                case KErrNotReady:
-                case KErrCorrupt:
-                case KErrLocked:
-                    {
-                    MusUiDialogUtil::ShowGlobalInformationDialogL(
-                                           R_MUS_VIEW_NOTE_MEMORYCARD_PROBLEM);
-                    
-                    MUS_LOG( "mus: [MUSUI ]  -> Changing to Phone Memory " );
-    		        rootPath.Set(PathInfo::PhoneMemoryRootPath());
-    		        TParsePtrC pathPtr(rootPath);
-    	            iVideoFilePath  = rootPath;
-    	            iVideoFilePath  += PathInfo::VideosPath();
-    	            // Make sure the new path exists
-    	            TRAP_IGNORE( MusUiFileUtil::VideoFilePathExistsL(iVideoFilePath) )
-                    break;
-                    }
-                case KErrAlreadyExists:
-                case KErrNone:
-                    {
-                    MUS_LOG( "mus: [MUSUI ]  -> Using MMC " );
-                    rootPath.Set(PathInfo::MemoryCardRootPath());
-                    break;
-                    }
-                default:
-                    {
-                    delete iVideoFileName;
-                    iVideoFileNamePlain = KNullDesC;
-        	    	iVideoFileName = iVideoFileNamePlain.AllocL(); 
-                    HandleError( error);
-                    break;
-                    }
-                }
-            }
-        else//Phone memory is being used.
-            {
-            TRAPD(error,MusUiFileUtil::VideoFilePathExistsL(iVideoFilePath));
-               
-            switch(error)
-                {
-                case KErrAlreadyExists:
-                case KErrNone:
-                    {
-                    MUS_LOG( "mus: [MUSUI ] -> Using Phone memory" );
-                    rootPath.Set(PathInfo::PhoneMemoryRootPath());
-                    break;
-                    }
-                default:
-                    {
-                    delete iVideoFileName;
-                    iVideoFileNamePlain = KNullDesC;
-        	    	iVideoFileName = iVideoFileNamePlain.AllocL(); 
-                    HandleError( error);
-                    break;
-                    }
-                }
-             }
-        
-        }
-        else
-            {
-            delete iVideoFileName;
-            iVideoFileNamePlain = KNullDesC;
-	    	iVideoFileName = iVideoFileNamePlain.AllocL(); 
-            HandleError(KErrBadName);
-            }
-        
-    TParsePtrC pathPtr(rootPath);
-	iVideoFilePath  += pathPtr.NameAndExt();
-	MusUiFileUtil::CreateVideoFileNameL(iVideoFilePath,
-	                                    iVideoFileNamePlain);
-
-    delete iVideoFileName;
-    TFileName videoFileName;
-    videoFileName += iVideoFilePath;
-    videoFileName += iVideoFileNamePlain;
-    videoFileName += KMusVideoFileNameExtension;
-    iVideoFileName = videoFileName.AllocL();
-   
-    MUS_LOG_TDESC( "mus: [MUSUI ]    <- CMusUiSendController::VideoFileNameL:",
-                            iVideoFileName->Des() );
-    return *iVideoFileName;
-    }
-
-
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-//
-void CMusUiSendController::ShowInvitingWaitDialogL()
-    {
-    MUS_LOG( "mus: [MUSUI ]  -> CMusUiSendController::ShowWaitDialogL" );
-    delete iDialogPrompt;
-    iDialogPrompt = NULL;
-    iDialogPrompt = StringLoader::LoadL(
-                            R_MUS_LIVE_SHARING_VIEW_INVITING_WAIT_NOTE_TXT,
-                            MusContactName().Length() > 0 ?
-                            MusContactName() : iOperatorSpecificFunctionality ?
-                            MusTelNumberValue() : *iAddress );
-                   
-    if ( !iSharingObserver.ShowWaitDialogL( 
-                                *iDialogPrompt, 
-                                KMusInviteExpireTimeout,
-                                R_MUS_LIVE_SHARING_VIEW_NOTE_NO_RESPONSE ) )
-        {
-        CancelInvitationL();
-        }
-            
-    
-    MUS_LOG( "mus: [MUSUI ]  <- CMusUiSendController::ShowWaitDialogL" );
-    }
-        
-    
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-//
-void CMusUiSendController::DismissWaitDialog()
-    {
-    MUS_LOG( "mus: [MUSUI ]  -> CMusUiSendController::DismissWaitDialog" );
-    TRAPD( err, iSharingObserver.DismissWaitDialogL(); );
-    if ( err != KErrNone )
-        {
-        HandleError( err );
-        }
-    MUS_LOG( "mus: [MUSUI ]  <- CMusUiSendController::DismissWaitDialog" );
-    }
-    
-    
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-//
-void CMusUiSendController::SplitL( const TDesC& aDes,
-                                   const TDesC& aChar,
-                                   CDesCArray* aArray )
-    {
-    TInt charPos( 0 );
-    TPtrC ptr( aDes );
-    TBool found = EFalse;
-    while( ( charPos = ptr.Find( aChar ) ) > 0 )
-        {
-        found = ETrue;
-        TPtrC str = ptr.Left( charPos );
-        aArray->AppendL( str );
-        ptr.Set( ptr.Right( ptr.Length() - str.Length() - 1 ) );
-        }
-    if ( found && ptr.Length() > 0 )
-        {
-        aArray->AppendL( ptr );
-        }
-    }
-
-
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-//
-void CMusUiSendController::SetVideoPathValueL()
-    {
-    MUS_LOG( "mus: [MUSUI ]  -> CMusUiSendController::SetVideoPathValueL" );
-    TInt drive = MultimediaSharingSettings::VideoLocationSettingL();                
-
-    TFileName rootPath;
-    User::LeaveIfError( PathInfo::GetRootPath( rootPath, drive ) );
-
-	TParsePtrC pathPtr(rootPath);
-	iVideoFilePath  = rootPath;
-	iVideoFilePath  += PathInfo::VideosPath();
-    MUS_LOG_TDESC( "mus: [MUSUI ]  <- CMusUiSendController::SetVideoPathValueL: ",
-                   iVideoFilePath ); 
-    iLocalizer->SetFullPath( iVideoFilePath );
-    if ( iLocalizer->IsLocalized() )
-        {
-        iLocalizedVideoFilePath =iLocalizer->LocalizedName();
-        }
-    }
-
-
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-//
-void CMusUiSendController::ShowVideoSavedDialogL()
-    {
-    MUS_LOG( "mus: [MUSUI ]  -> CMusUiSendController::ShowVideoSavedDialogL" );
-    //MUS_LOG_TDESC( "mus: [MUSUI ]      ", iVideoFileNamePlain );
-    //MUS_LOG_TDESC( "mus: [MUSUI ]      ", iVideoFilePath );
-    
-    delete iDialogPrompt;
-    iDialogPrompt = NULL;
-    
-    TBuf<KMusFileNameMaxLength> buf;
-    TFileName videoFileName;
-    videoFileName += iVideoFileNamePlain;
-    videoFileName += KMusVideoFileNameExtension;
-    buf = videoFileName;
-    
-    CDesCArrayFlat* savingTextsArray = 
-            new ( ELeave ) CDesCArrayFlat( KMusStringSubstArrayGranularity );
-    CleanupStack::PushL( savingTextsArray );
-    //"File %0U saved to folder %1U"
-    //%0U = iVideoFileName
-    //%1U = iVideoFilePath
-    savingTextsArray->InsertL( 0, videoFileName );
-
-    if ( MultimediaSharingSettings::OperatorVariantSettingL() ==
-    	 MusSettingsKeys::EOperatorSpecific ) // For AT&T products
-        {
-    	HBufC* folder = StringLoader::LoadLC( R_MUS_VIDEO_SAVE_FOLDER_NAME );
-    	savingTextsArray->InsertL( 1, *folder );
-		CleanupStack::PopAndDestroy( folder );
-        }
-    else // Standard products
-        {
-	    if ( iLocalizer->IsLocalized() )
-	        {
-	        savingTextsArray->InsertL( 1, iLocalizedVideoFilePath );
-	        }
-	    else
-	        {
-	        savingTextsArray->InsertL( 1, iVideoFilePath );
-	        }
-	    }
-
-    MUS_LOG_TDESC( "mus: [MUSUI ]      filename:", savingTextsArray->MdcaPoint( 0 ) );
-    MUS_LOG_TDESC( "mus: [MUSUI ]      path:", savingTextsArray->MdcaPoint( 1 ) );
-
-    iDialogPrompt = StringLoader::LoadL( R_MUS_VIEW_NOTE_VIDEO_SAVED,
-                                         *savingTextsArray );        
-    CleanupStack::Pop( savingTextsArray );
-                                         
-    MUS_LOG_TDESC( "mus: [MUSUI ]      ", iDialogPrompt->Des() );
-
-    MusUiDialogUtil::ShowGlobalInformationDialogL( *iDialogPrompt );
-    MUS_LOG( "mus: [MUSUI ]  <- CMusUiSendController::ShowVideoSavedDialogL" );
-    }
-
-
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-//
-void CMusUiSendController::DeleteVideoL()
-    {
-    MUS_LOG( "mus: [MUSUI ]  -> CMusUiSendController::DeleteVideoL" );
-    if ( iVideoFileName )
-        {
-        MusUiFileUtil::DeleteFileL( *iVideoFileName );
-        }
-    MUS_LOG( "mus: [MUSUI ]  <- CMusUiSendController::DeleteVideoL" );
-    }   
-
-
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-//
-void CMusUiSendController::DeleteFileL()
-    {
-    MUS_LOG( "mus: [MUSUI ]  -> CMusUiSendController::DeleteFileL" );
-    if ( iVideoFileName && 
-    		MusUiFileUtil::FileExists( *iVideoFileName ) && !iVideoToBeSaved ) 
-		{
-        DeleteVideoL();
-		}
-    MUS_LOG( "mus: [MUSUI ]  <- CMusUiSendController::DeleteFileL" );
-    }   
-
-
-
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-//
-CMusUiSendController::
-TWaitDialogCallback::TWaitDialogCallback( CMusUiSendController& aController )
-    : iController( aController )
-    {       
-    }
-    
-    
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-//
-void CMusUiSendController::
-TWaitDialogCallback::DialogDismissedL( TInt /*aButtonId*/ )
-    {
-    iController.StartInvitationL();
-    }
-    
-// End of file
-