mmsharing/mmshui/src/musuigeneralview.cpp
branchRCL_3
changeset 22 73a1feb507fb
parent 21 33a5d2bbf6fc
child 23 bc78a40cd63c
--- a/mmsharing/mmshui/src/musuigeneralview.cpp	Thu Aug 19 09:51:39 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,930 +0,0 @@
-/*
-* Copyright (c) 2005 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:  Mus Applications Event Observer Interface
-*
-*/
-
-
-
-#include "musuigeneralview.h"     
-#include "musui.hrh"
-#include "musuiappui.h"         // Application UI class
-#include "musuistatuspanehandler.h"
-#include "musuieventcontroller.h"
-#include "musuiviewcontainer.h"
-#include "musuidefinitions.h"
-#include "mussettings.h"
-#include "mussettingskeys.h"
-#include "muslogger.h" // debug logging
-#include "musuiactivetimer.h"
-#include "musuibackgroundviewcontainer.h"
-#include <musui.rsg>
-#include <musui.mbg>
-
-#include <eikenv.h>               // Eikon enviroment
-#include <aknViewAppUi.h>
-#include <avkon.hrh>
-#include <eikmenup.h>
-#include <akntoolbar.h>
-#include <aknbutton.h>
-#include <AknIncallBubbleNotify.h>
-#include <featmgr.h>
-
-const TInt KBackgroundIntervalForClose = 10 * 1000 * 1000; // 10s
-const TInt KMusFgBgEventFiltering = 200 * 1000; // 200 ms
-
-// -----------------------------------------------------------------------------
-// EPOC two-phased constructor
-// -----------------------------------------------------------------------------
-//
-void CMusUiGeneralView::ConstructL()
-    {
-    MUS_LOG( "mus: [MUSUI ]  -> CMusUiGeneralView::ConstructL" );
-
-    BaseConstructL( R_MUSUI_VIEW );
-    TInt toolbarId = R_MUS_TOOLBAR;
-    if (!AknLayoutUtils::PenEnabled())
-	    {
-	    toolbarId = R_MUS_TOOLBAR_NONTOUCH;
-	    }
-    CreateAndSetToolbarL(toolbarId);    
-    
-    // check if operator specific functionality is needed  
-    iOperatorSpecificFunctionality = 
-        ( MultimediaSharingSettings::OperatorVariantSettingL() == 
-                                        MusSettingsKeys::EOperatorSpecific );
-    
-    iIncallBubble = CAknIncallBubble::NewL();
-    iSessionEndTimer = CMusUiActiveTimer::NewL( this );
-    
-    iFgBgTimer = CMusUiActiveTimer::NewL( this );
-                                                    
-    if( MUS_NO_TOOLBAR )
-        {
-        MUS_LOG( "mus: [MUSUI ] Operator variant hides toolbar!" );
-        Toolbar()->SetToolbarVisibility( EFalse );
-        Toolbar()->MakeVisible(EFalse);
-        }
-        
-    MUS_LOG( "mus: [MUSUI ]  <- CMusUiGeneralView::ConstructL" );
-    }
-
-
-// -----------------------------------------------------------------------------
-// Destructor
-// -----------------------------------------------------------------------------
-//
-CMusUiGeneralView::~CMusUiGeneralView()
-    {
-    MUS_LOG( "mus: [MUSUI ]  -> CMusUiGeneralView::~CMusUiGeneralView" );
-            
-    delete iSessionEndTimer; 
-    
-    delete iFgBgTimer;          
-    
-    if ( iIncallBubble )
-        {
-        TRAP_IGNORE( iIncallBubble->SetIncallBubbleAllowedInUsualL( ETrue ) )    
-        }
-    delete iIncallBubble; 
-    
-    /* Remove and delete background container */
-    if ( iBackgroundContainer )
-      {
-      AppUi()->RemoveFromViewStack( *this, iBackgroundContainer );
-      }
-    delete iBackgroundContainer;
-    
-    MUS_LOG( "mus: [MUSUI ]  <- CMusUiGeneralView::~CMusUiGeneralView" );
-    }
-
-
-// -----------------------------------------------------------------------------
-// Fetches a pointer to the application's AppUi class ( CMusUiAppUi )
-// -----------------------------------------------------------------------------
-//
-CMusUiAppUi* CMusUiGeneralView::MusAppUi() const
-    {
-    MUS_LOG( "mus: [MUSUI ]     CMusUiGeneralView::MusAppUi()" );
-    return static_cast<CMusUiAppUi*>( iEikonEnv->AppUi() );
-    }
-
-
-
-// -----------------------------------------------------------------------------
-// To be overridden in subclasses
-// -----------------------------------------------------------------------------
-//
-void CMusUiGeneralView::HandleKeyUpEvent( TInt /*aKeyCode*/ )
-    {
-    // NOP
-    }
-
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-//
-void CMusUiGeneralView::SetToolbarVisibility( TBool aVisible )
-    {
-    MUS_LOG1( "mus: [MUSUI ]  -> CMusUiGeneralView::SetToolbarVisibility: %d",
-                            aVisible );
-    
-    if( MUS_NO_TOOLBAR )
-        {
-        MUS_LOG( "mus: [MUSUI ] Operator variant hides toolbar!" );
-        Toolbar()->SetToolbarVisibility( EFalse );
-        Toolbar()->MakeVisible(EFalse);
-        return;
-        }
-    
-    // Show toolbar only after established session and before of exit procedure 
-    if ( aVisible &&
-         EventController() &&
-         !EventController()->ExitOccured() &&
-         EventController()->ConnectionEstablished() )
-        {
-        MUS_LOG( "mus: [MUSUI ] setting toolbar visible" );
-        
-        if ( SharingContainer().WaitDialogShown() )
-            {
-            // Cannot show toolbar at the moment as it would go over the dialog.
-            // Instead, request container to set visibility once dialog
-            // is dismissed.
-            SharingContainer().RequestToolbarVisibilityOnceDialogDismissed( this );
-            }
-        else
-            {
-            Toolbar()->SetToolbarVisibility( ETrue );
-			Toolbar()->MakeVisible(ETrue);
-            }
-        }
-    else if ( !aVisible && EventController()->ExitOccured() )
-        {
-        Toolbar()->SetToolbarVisibility( EFalse );
-		Toolbar()->MakeVisible(EFalse);
-        }
-    else
-        {
-        MUS_LOG( "mus: [MUSUI ] We do not set fixed toolbar invisible" );
-        if (!AknLayoutUtils::PenEnabled())
-        	{
-        	Toolbar()->SetToolbarVisibility( EFalse );
-			Toolbar()->MakeVisible(EFalse);
-        	}
-        
-        SharingContainer().RequestToolbarVisibilityOnceDialogDismissed( NULL );
-        }
-        
-    MUS_LOG( "mus: [MUSUI ]  <- CMusUiGeneralView::SetToolbarVisibility" );
-    }
-    
-
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-//
-void CMusUiGeneralView::AsyncQueryDialogAcceptedL( TBool aAccepted )
-    {
-    MUS_LOG( "mus: [MUSUI ]  -> CMusUiGeneralView::AsyncQueryDialogAcceptedL" );
-    
-    EventControllerL().AsyncQueryDialogAcceptedL( aAccepted );
-    
-    MUS_LOG( "mus: [MUSUI ]  <- CMusUiGeneralView::AsyncQueryDialogAcceptedL" );
-    }
-
-
-// -----------------------------------------------------------------------------
-// 
-// -----------------------------------------------------------------------------
-//
-TInt CMusUiGeneralView::FocusedToolbarItem() const
-    {
-    MUS_LOG( "mus: [MUSUI ]  <-> CMusUiGeneralView::FocusedToolbarItem" );
-    return Toolbar()->FocusedItem();
-    }
-
-
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-//
-void CMusUiGeneralView::DynInitToolbarL( TInt /*aResourceId*/,
-                                         CAknToolbar* /*aToolbar*/ )
-    {
-    MUS_LOG( "mus: [MUSUI ]  -> CMusUiGeneralView::DynInitToolbarL" );
-
-    Toolbar()->SetWithSliding( EFalse );
-
-    // Hide items according to states of speaker and microphone:
-    
-    Toolbar()->HideItem( EventControllerL().IsMicMutedL() ?
-                            EMusuiCmdToolbarMute :
-                            EMusuiCmdToolbarUnmute,
-                        ETrue,
-                        ETrue );
-    
-    TBool loudSpeakerEnabled( EventControllerL().IsLoudSpeakerEnabled() );
-      
-    Toolbar()->HideItem( loudSpeakerEnabled ?
-                                EMusuiCmdToolbarSpeakerOn :
-                                EMusuiCmdToolbarSpeakerOff,
-                         ETrue,
-                         ETrue );
-    
-    // Dim audio routing button if audio routing cannot be changed
-    // or when some button is selected
-    TBool dimAudioRouting( iToolbarItemSelected || 
-                           !EventControllerL().AudioRoutingCanBeChanged() );
-                                                 
-    Toolbar()->SetItemDimmed( loudSpeakerEnabled ?
-                                    EMusuiCmdToolbarSpeakerOff :
-                                    EMusuiCmdToolbarSpeakerOn,
-                              dimAudioRouting,
-                              ETrue );                 
-    
-    
-    MUS_LOG( "mus: [MUSUI ]  <- CMusUiGeneralView::DynInitToolbarL" );
-    }
-
-
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-//
-void CMusUiGeneralView::OfferToolbarEventL( TInt aCommand )
-    {
-    MUS_LOG1( "mus: [MUSUI ]  -> CMusUiGeneralView::OfferToolbarEventL: %d",
-                            aCommand );
-    EventControllerL().OfferToolbarEventL( aCommand );
-    MUS_LOG( "mus: [MUSUI ]  <- CMusUiGeneralView::OfferToolbarEventL" );
-    }
-
-
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-//
-TBool CMusUiGeneralView::ShowWaitDialogL( const TDesC& aPrompt, 
-                                       TInt aTimerInSeconds,
-                                       TInt aExpirationMessageResourceId )
-    {
-    MUS_LOG_TDESC( "mus: [MUSUI ]    -> CMusUiGeneralView::ShowWaitDialogL: ",
-                            aPrompt );
-                            
-    TBool retVal = SharingContainer().RunWaitDialogL( 
-                                                aPrompt, 
-                                                aTimerInSeconds,
-                                                aExpirationMessageResourceId );
-    
-    MUS_LOG1( "mus: [MUSUI ]  <- CMusUiGeneralView::ShowWaitDialogL: retVal = %d",
-              retVal )
-    
-    return retVal;
-    }
-    
-
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-//
-void CMusUiGeneralView::DismissWaitDialogL( TBool aReturnValue )
-    {
-    MUS_LOG( "mus: [MUSUI ]  -> CMusUiGeneralView::DismissWaitDialogL" );
- 
-    SharingContainer().DismissWaitDialogL( aReturnValue );       
-        
-    MUS_LOG( "mus: [MUSUI ]  <- CMusUiGeneralView::DismissWaitDialogL" );
-    }
-
-
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-//
-void CMusUiGeneralView::SetWaitDialogCallbackL( MProgressDialogCallback* aCallback )
-    {
-    SharingContainer().SetWaitDialogCallbackL( aCallback );
-    }
-    
-
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-//
-void CMusUiGeneralView::ShowStatusPaneTitleL()
-    {
-    MUS_LOG( "mus: [MUSUI ]  -> CMusUiGeneralView::ShowStatusPaneTitleL" );
-
-    MusAppUi()->MusStatusPane()->ActivateNaviPaneMediaL();
-
-    // Status Pane Title:
-    if ( EventControllerL().MusContactName().Length() > 0 )
-        {
-        MusAppUi()->MusStatusPane()->SetTitleL( 
-                                        EventControllerL().MusContactName() );
-        }
-    else if ( EventControllerL().MusTelNumberValue().Length() > 0 )
-        {
-        MusAppUi()->MusStatusPane()->SetTitleL(
-                                    EventControllerL().MusTelNumberValue() );
-        }
-    else
-        {
-        MusAppUi()->MusStatusPane()->SetTitleFromResourceL(
-                                R_MUS_LIVE_SHARING_VIEW_TITLE );
-        }
-
-    MUS_LOG( "mus: [MUSUI ]  <- CMusUiGeneralView::ShowStatusPaneTitleL" );
-    }
-        
-
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-//
-void CMusUiGeneralView::EnableMiddleSoftkeyL( TInt aResourceId )
-    {
-    // Update Middle softkey
-    CEikButtonGroupContainer* cba = Cba();
-    if ( cba )
-        {
-        cba->SetCommandL( CEikButtonGroupContainer::EMiddleSoftkeyPosition,
-                          aResourceId );
-        cba->DrawDeferred();
-        }
-    }
-
-
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-//
-void CMusUiGeneralView::ActivateVolumeControlL( TInt aValue, TBool aOnlyIfVisible )
-    {
-    MUS_LOG( "mus: [MUSUI ]  -> CMusUiGeneralView::ActivateVolumeControlL" );
-    MusAppUi()->MusStatusPane()->ActivateVolumeControlL( aValue, aOnlyIfVisible );
-    
-    MUS_LOG( "mus: [MUSUI ]  <- CMusUiGeneralView::ActivateVolumeControlL" );
-    }
-    
-
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-//
-void CMusUiGeneralView::HighlightSelectedToolbarItem( TInt aCommand )
-    {
-    MUS_LOG( "mus: [MUSUI ]  -> CMusUiGeneralView::HightlightSelectedToolbarItem" );
-    iToolbarItemSelected = !iToolbarItemSelected;
-    CAknButton* button = static_cast<CAknButton*>( Toolbar()->ControlOrNull(
-                                                                aCommand ) );
-    button->SetCurrentState( iToolbarItemSelected ? 1 : 0, ETrue );
-
-    TBool dimAudioRouting( iToolbarItemSelected || 
-                           !( EventController() &&
-                              EventController()->AudioRoutingCanBeChanged() ) );
-                           
-    for ( TInt i = EMusuiCmdToolbarVolume; i < EMusUiCmdToolbarLastIndex; i++ )
-        {
-        // Undim audio routing buttons only if changing the routing is allowed                  
-        if ( i == EMusuiCmdToolbarSpeakerOn )
-            {
-            Toolbar()->SetItemDimmed( 
-                                EMusuiCmdToolbarSpeakerOn,
-                                dimAudioRouting,
-                                ETrue );  
-            }
-        else if ( i == EMusuiCmdToolbarSpeakerOff )
-            {
-            Toolbar()->SetItemDimmed( 
-                                EMusuiCmdToolbarSpeakerOff,
-                                dimAudioRouting,
-                                ETrue );  
-            }
-        else if ( i != aCommand )
-            {
-            Toolbar()->SetItemDimmed( i, iToolbarItemSelected, ETrue );
-            }
-        else
-            {
-            // NOP
-            }
-        }
-
-    MUS_LOG( "mus: [MUSUI ]  <- CMusUiGeneralView::HightlightSelectedToolbarItem" );
-    }
-
-
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-//
-void CMusUiGeneralView::ReplaceToolbarCommand( TInt aOldCommand,
-                                               TInt aNewCommand,
-                                               TBool aSetNewCommandFocused )
-    {
-    MUS_LOG1( "mus: [MUSUI ]  -> CMusUiGeneralView::ReplaceToolbarCommand: %d",
-                            aNewCommand );  
-    
-    // Hide the old item:
-    Toolbar()->HideItem( aOldCommand, ETrue, EFalse );
-    // Show new item:
-    Toolbar()->HideItem( aNewCommand, EFalse, ETrue );
-    
-    TBool dimAudioRouting( iToolbarItemSelected || 
-                           !( EventController() &&
-                              EventController()->AudioRoutingCanBeChanged() ) );
-    
-    if ( aNewCommand == EMusuiCmdToolbarSpeakerOn ||
-         aNewCommand == EMusuiCmdToolbarSpeakerOff )
-        {
-        // Dim audio routing button if audio routing cannot be changed                     
-        Toolbar()->SetItemDimmed( aNewCommand,
-                                  dimAudioRouting,
-                                  ETrue );    
-        }
-        
-    if ( aSetNewCommandFocused &&
-         !AknLayoutUtils::PenEnabled() )
-        {
-        TRAP_IGNORE( Toolbar()->SetFocusedItemL( aNewCommand ) );
-        }
-        
-    MUS_LOG1( "mus: [MUSUI ]  <- CMusUiGeneralView::ReplaceToolbarCommand: %d",
-                            aNewCommand );    
-    }   
-
-
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-//
-void CMusUiGeneralView::DismissMenuBar()
-	{
-	 MUS_LOG( "mus: [MUSUI ]  -> CMusUiGeneralView::DismissMenuBar" );
-	 StopDisplayingMenuBar();
-	 MUS_LOG( "mus: [MUSUI ]  <- CMusUiGeneralView::DismissMenuBar" );
-	}
-
-
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-//
-void CMusUiGeneralView::RefreshAudioRoutingToolbarButton()
-    {
-    MUS_LOG( "mus: [MUSUI ]  -> CMusUiGeneralView::RefreshAudioRoutingToolbarButton" )
-    TBool loudSpeakerEnabled( EventController() &&
-                          EventController()->IsLoudSpeakerEnabled() );
-    if ( MUS_NO_TOOLBAR )
-        {
-        TRAP_IGNORE( EnableMiddleSoftkeyL( loudSpeakerEnabled ?
-                                               R_MUSUI_VIEW_OPS_MSK_IHF_OFF :
-                                               R_MUSUI_VIEW_OPS_MSK_IHF_ON ) );
-        } 
-    else if ( Toolbar()->IsShown() )
-        {
-        // If toolbar is not shown, it will be refreshed automatically when shown.
-        TInt focusedItem( Toolbar()->FocusedItem() );
-        TBool focusInAudioRouting( focusedItem == EMusuiCmdToolbarSpeakerOff ||
-                                   focusedItem == EMusuiCmdToolbarSpeakerOn );
-                                   
-        TBool loudSpeakerEnabled( EventController() &&
-                                  EventController()->IsLoudSpeakerEnabled() );
-        
-        // Hide old audio routing buttton
-        Toolbar()->HideItem( loudSpeakerEnabled ?
-                                EMusuiCmdToolbarSpeakerOn :
-                                EMusuiCmdToolbarSpeakerOff,
-                             ETrue,
-                             EFalse );
-                                  
-        // Show new audio routing button                              
-        Toolbar()->HideItem( loudSpeakerEnabled ?
-                                    EMusuiCmdToolbarSpeakerOff :
-                                    EMusuiCmdToolbarSpeakerOn,
-                             EFalse,
-                             ETrue );                     
-        
-        // Dim new audio routing button if audio routing cannot be changed
-        // or when some button is selected        
-        TBool dimAudioRouting( iToolbarItemSelected || 
-                               !( EventController() &&
-                               EventController()->AudioRoutingCanBeChanged() ) );
-                                                     
-        Toolbar()->SetItemDimmed( loudSpeakerEnabled ?
-                                        EMusuiCmdToolbarSpeakerOff :
-                                        EMusuiCmdToolbarSpeakerOn,
-                                  dimAudioRouting,
-                                  ETrue );
-        
-        // If audio routing button has been focused, focus also the new button
-        // if it is not dimmed
-        if ( focusInAudioRouting && 
-             !dimAudioRouting && 
-             !AknLayoutUtils::PenEnabled() )
-            {
-            TRAP_IGNORE( Toolbar()->SetFocusedItemL( loudSpeakerEnabled ?
-                                                EMusuiCmdToolbarSpeakerOff :
-                                                EMusuiCmdToolbarSpeakerOn ) )
-            }  
-        
-         
-        }
-    
-    MUS_LOG( "mus: [MUSUI ]  <- CMusUiGeneralView::RefreshAudioRoutingToolbarButton" )
-    }
-
-
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-//
-void CMusUiGeneralView::UpdateSessionTime( const TDesC& aSessionTime )
-    {
-    MUS_LOG_TDESC( "mus: [MUSUI ]  -> CMusUiGeneralView::UpdateSessionTime: ",
-                   aSessionTime );
-    
-    TRAPD( err, MusAppUi()->MusStatusPane()->SetLeftLabelL( aSessionTime ) );
-    if ( err != KErrNone )
-        {
-        EventController()->HandleError( err );
-        }
-        
-    MUS_LOG( "mus: [MUSUI ]  <- CMusUiGeneralView::UpdateSessionTime" );
-    }
-        
-
-// -----------------------------------------------------------------------------
-// takes care of view command handling
-// -----------------------------------------------------------------------------
-//
-void CMusUiGeneralView::HandleCommandL( TInt aCommand )
-    {
-    MUS_LOG( "mus: [MUSUI ]  -> CMusUiGeneralView::HandleCommandL" );
-    
-    EventControllerL().HandleCommandL( aCommand );
-    
-    MUS_LOG( "mus: [MUSUI ]  <- CMusUiGeneralView::HandleCommandL" );
-    }
-
-
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-//
-CMusUiEventController& CMusUiGeneralView::EventControllerL() const
-    {
-    __ASSERT_ALWAYS( EventController(), User::Leave( KErrNotFound ) );
-    
-    return *EventController();
-    }
-
-
-// -----------------------------------------------------------------------------
-// Called when focus event occurs. Timer is started once coming to foreground
-// as often in such case we receive burst of foreground/background events.
-// Timer is used to filter that burst and to determine the final condition.
-// -----------------------------------------------------------------------------
-//
-void CMusUiGeneralView::HandleForegroundEventL( TBool aForeground, TBool aExit )
-    {
-    MUS_LOG1( "mus: [MUSUI ]  -> CMusUiGeneralView::HandleForegroundEventL: %d",
-                            aForeground );
-    
-    SetCurrentFgBgEvent( ( aForeground ? EMusFgEvent : EMusBgEvent ) );
-    iCurrentExitSetting = aExit;
-        
-    if ( !iFgBgTimer->IsActive() )
-        {
-        if ( aForeground )
-            {
-            MUS_LOG( "mus: [MUSUI ] delayed to fg" );
-            }
-        else
-            {
-            DoBackgroundEventL( iCurrentExitSetting );
-            MUS_LOG( "mus: [MUSUI ]  <- CMusUiGeneralView::HandleForegroundEventL,\
-immediately to bg" );
-            return;
-            }
-        }
-
-    iFgBgTimer->After( KMusFgBgEventFiltering );    
-
-    MUS_LOG( "mus: [MUSUI ]  <- CMusUiGeneralView::HandleForegroundEventL" );
-    }
- 
- 
-// -----------------------------------------------------------------------------
-// From MMusUiActiveTimerObserver
-// -----------------------------------------------------------------------------
-//    
-void CMusUiGeneralView::TimerComplete( CMusUiActiveTimer* aTimer )
-    {
-    MUS_LOG( "mus: [MUSUI ]  -> CMusUiGeneralView::TimerComplete" );
-                          
-    if ( aTimer == iSessionEndTimer )
-        {
-        MUS_LOG( "mus: [MUSUI ]     Close application because of going \
-in background" );
-                  
-        TRAP_IGNORE( EventControllerL().HandleExitL() )
-        }
-    else
-        {        
-        TRAP_IGNORE( CompleteForegroundEventL() )
-        }
-        
-    MUS_LOG( "mus: [MUSUI ]  <- CMusUiGeneralView::TimerComplete" );
-    }
-
-
-// -----------------------------------------------------------------------------
-// From MEikMenuObserver, Called by framework before constructing menupane.
-// Initializes menu items common to all sharing types.
-// -----------------------------------------------------------------------------
-//
-void CMusUiGeneralView::DynInitMenuPaneL( TInt aResourceId,
-                                          CEikMenuPane* aMenuPane )
-    {
-    MUS_LOG1( "mus: [MUSUI ]  -> CMusUiGeneralView::DynInitMenuPaneL [%d]",
-                            aResourceId );
-
-    if ( aResourceId == R_MUSUI_VIEW_MENU )
-        {
-
-        // Delete Single session items:
-        aMenuPane->DeleteMenuItem( EMusuiCmdViewShareVideo );
-        aMenuPane->DeleteMenuItem( EMusuiCmdViewShareImage );
-        aMenuPane->DeleteMenuItem( EMusuiCmdViewShareLive );        
-        if ( MUS_NO_TOOLBAR )
-            {
-            aMenuPane->DeleteMenuItem( EventControllerL().IsMicMutedL() ?
-                                           EMusuiCmdViewMicrophoneMute :
-                                           EMusuiCmdViewMicrophoneUnmute );
-            }
-        else
-            {
-            aMenuPane->DeleteMenuItem( EMusuiCmdViewMicrophoneMute );
-            aMenuPane->DeleteMenuItem( EMusuiCmdViewMicrophoneUnmute );
-            }
-        
-        if ( !FeatureManager::FeatureSupported( KFeatureIdHelp ) )
-            {
-            aMenuPane->DeleteMenuItem( EAknCmdHelp );
-            }
-        }
-        
-    MUS_LOG( "mus: [MUSUI ]  <- CMusUiGeneralView::DynInitMenuPaneL" );
-    }
-
-
-// -----------------------------------------------------------------------------
-// CMusUiGeneralView::DoActivateL
-// From CAknView, Gets called from framework when activating this view
-// -----------------------------------------------------------------------------
-void CMusUiGeneralView::DoActivateL( const TVwsViewId& /*aPrevViewId*/,
-                                     TUid /*aCustomMessageId*/,
-                                     const TDesC8& /*aCustomMessage*/ )
-    {
-    MUS_LOG( "mus: [MUSUI ] -> CMusUiGeneralView::DoActivateL()" )
-    
-    
-    MusAppUi()->MusStatusPane()->ClearNaviPaneL();
-    MusAppUi()->MusStatusPane()->SetTitleFromResourceL(
-        R_MUS_LIVE_SHARING_VIEW_TITLE );
-    
-    iIncallBubble->SetIncallBubbleAllowedInUsualL( EFalse );
-    
-    /* Draw the skin background in the client rectangle area.*/
-    if ( !iBackgroundContainer )
-       {
-       /* Construct background container with clientrect area and
-        * Ordinal position of 0 ie highest so that it draws the initial 
-        * skin background first.
-        */       
-       iBackgroundContainer = 
-           CMusUiBackgroundViewContainer::NewL( ClientRect(), 0 );
-       /* Add container to view stack so that it get view events */
-       AppUi()->AddToViewStackL( *this, iBackgroundContainer );
-       }
-    else
-       {
-       /* Set the windows ordinal position to highest ie 0,
-        * so that background gets priority and drawn first.        
-        */
-       iBackgroundContainer->SetOrdinalPosition( 0 );       
-       }
-    /* Draw the skin background now */
-    iBackgroundContainer->DrawNow();
-                            
-    MUS_LOG( "mus: [MUSUI ] <- CMusUiGeneralView::DoActivateL()" )
-    }
-
-
-// -----------------------------------------------------------------------------
-// CMusUiGeneralView::DoDeactivate
-// From AknView, Gets called from framework when deactivating this view
-// -----------------------------------------------------------------------------
-void CMusUiGeneralView::DoDeactivate()
-    {
-    MUS_LOG( "mus: [MUSUI ] -> CMusUiGeneralView::DoDeactivate()" )
-    if ( iBackgroundContainer )
-        {
-        AppUi()->RemoveFromViewStack( *this, iBackgroundContainer );
-        delete iBackgroundContainer;
-        iBackgroundContainer = NULL;
-        }
-    MUS_LOG( "mus: [MUSUI ] <- CMusUiGeneralView::DoDeactivate()" )
-    }
-
-
-// -----------------------------------------------------------------------------
-// Asynchronous completion of last fg/bg condition.
-// -----------------------------------------------------------------------------
-// 
-void CMusUiGeneralView::CompleteForegroundEventL()
-    {
-    MUS_LOG( "mus: [MUSUI ] -> CMusUiGeneralView::CompleteForegroundEventL()" )
-    
-    if ( iCurrentFgBgEvent == EMusFgEvent )
-        {
-        DoForegroundEventL();
-        }
-    else if ( iCurrentFgBgEvent == EMusBgEvent && EventControllerL().IsForeground() )
-        {
-        // Bg handling when already at bg would cause problems in state
-        // restoring phase when coming back to fg. Easiest to deal with that
-        // at this level.
-        DoBackgroundEventL( iCurrentExitSetting );
-        }
-
-    SetCurrentFgBgEvent( EMusFgBgEventNone );   
-    
-    MUS_LOG( "mus: [MUSUI ] <- CMusUiGeneralView::CompleteForegroundEventL()" )
-    }
-
-
-// -----------------------------------------------------------------------------
-// Complete foreground event.
-// -----------------------------------------------------------------------------
-// 
-void CMusUiGeneralView::DoForegroundEventL()
-    {
-    MUS_LOG( "mus: [MUSUI ] -> CMusUiGeneralView::DoForegroundEventL()" )
-    
-    RefreshView();
-    
-    iSessionEndTimer->Cancel();    
-        
-    EventControllerL().HandleForegroundEventL( ETrue );
-    iIncallBubble->SetIncallBubbleAllowedInUsualL( EFalse );
-    
-    MUS_LOG( "mus: [MUSUI ] <- CMusUiGeneralView::DoForegroundEventL()" )
-    }
-
-    
-// -----------------------------------------------------------------------------
-// Complete background event.
-// -----------------------------------------------------------------------------
-//
-void CMusUiGeneralView::DoBackgroundEventL( TBool aExit )
-    {
-    MUS_LOG( "mus: [MUSUI ] -> CMusUiGeneralView::DoBackgroundEventL()" )
-    
-    if ( aExit )
-        {
-        MUS_LOG( "mus: [MUSUI ]     Go to background, \
-                  wait some seconds before closing..." );
-        iSessionEndTimer->After( KBackgroundIntervalForClose );
-        }
-    if ( !MusAppUi()->ExitValue() )
-        {
-        MUS_LOG( "mus: [MUSUI ]     Calling EventControllerL()" );
-        EventControllerL().HandleForegroundEventL( EFalse );
-        // If exiting, next will be called by destructor    
-    	iIncallBubble->SetIncallBubbleAllowedInUsualL( ETrue );  
-        } 
-        
-    SetCurrentFgBgEvent( EMusFgBgEventNone );
-    
-    MUS_LOG( "mus: [MUSUI ] <- CMusUiGeneralView::DoBackgroundEventL()" )
-    }
-
-// -----------------------------------------------------------------------------
-// Set current fg/bg condition.
-// -----------------------------------------------------------------------------
-//
-void CMusUiGeneralView::SetCurrentFgBgEvent( TMusFgBgEventType aEventType )
-    {
-    MUS_LOG1( "mus: [MUSUI ] -> CMusUiGeneralView::SetCurrentFgBgEvent() event:%d",
-              aEventType )
-             
-    iCurrentFgBgEvent = aEventType;         
-    }
-
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-//
-TBool CMusUiGeneralView::OperatorSpecificFunctionality() const
-    {
-    return iOperatorSpecificFunctionality;
-    }
-
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-//
-TInt CMusUiGeneralView::ToolbarPlaceHolderHeight() const
-    {
-    TInt toolbarPlaceHolderHeight( 0 );
-    CAknAppUiBase::TAppUiOrientation orientation = MusAppUi()->AppOrientation();
-    if ( !Toolbar()->IsShown() && 
-         orientation == CAknAppUiBase::EAppUiOrientationPortrait &&                        
-         AknLayoutUtils::PenEnabled() )
-        {
-        // In touch UI in portrait mode the toolbar 
-        // fills the whole lower part of the screen
-        toolbarPlaceHolderHeight = Toolbar()->Size().iHeight;
-        }
-    return toolbarPlaceHolderHeight;       
-    }
-
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-//
-TInt CMusUiGeneralView::ToolbarPlaceHolderWidth() const 
-    { 
-    TInt toolbarPlaceHolderWidth( 0 ); 
-    CAknAppUiBase::TAppUiOrientation orientation = MusAppUi()->AppOrientation(); 
-    if ( !Toolbar()->IsShown() && 
-         orientation == CAknAppUiBase::EAppUiOrientationLandscape &&                        
-         AknLayoutUtils::PenEnabled() ) 
-        { 
-        // In touch UI in EAppUiOrientationLandscape mode the toolbar 
-        // fills the whole lower part of the screen 
-        toolbarPlaceHolderWidth = Toolbar()->Size().iWidth; 
-        } 
-    return toolbarPlaceHolderWidth;       
-    } 
-
-// -----------------------------------------------------------------------------
-// Increase/Decrease background container ordinal so that other controls
-// can preceed background
-// -----------------------------------------------------------------------------
-//
-void CMusUiGeneralView::UpdateBackgroundOrdinalPosition( TBool aUp )
-    {
-    // If there is no background container then do not care
-    if ( iBackgroundContainer )
-        {
-        iBackgroundContainer->UpdateOrdinalPositionValue( aUp );              
-        }
-    }
-
-// -----------------------------------------------------------------------------
-// Do refresh for background container only if display is disabled.
-// Refreshing if display is enabled would cause bg container
-// to draw itself on top of display area, making it invisible.
-// -----------------------------------------------------------------------------
-//
-void CMusUiGeneralView::RefreshBackgroundContainer()
-    {
-    if ( !iBackgroundContainer )
-        {
-        return;
-        }  
-    TBool displayEnabled( EFalse );
-    if ( EventController() )
-        {
-        TRAP_IGNORE( displayEnabled = EventController()->IsDisplayEnabledL() )
-        }
-
-    if ( !displayEnabled )
-        {
-        MUS_LOG( "mus: [MUSUI ] <-> CMusUiGeneralView::RefreshBackgroundContainer()" )
-        iBackgroundContainer->SetRect( ClientRect() );
-        }
-    }
-
-// end of file
-
-
-
-
-
-