vtuis/videotelui/src/commands/cvtuiprimarycmdpolicy.cpp
changeset 18 d9b6a8729acd
parent 4 6dc066157ed4
child 23 c378a0498b84
child 27 dcbddbbaf8fd
--- a/vtuis/videotelui/src/commands/cvtuiprimarycmdpolicy.cpp	Tue Jan 26 12:01:21 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,532 +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:  Primary policy class.
-*
-*/
-
-
-#include <featmgr.h>
-#include <avkon.hrh>
-#include <cvtlogger.h>
-#include <videotelui.rsg>
-#include <avkon.rsg>
-
-#include "cvtuiprimarycmdpolicy.h"
-#include "cvtuicmdvalidationactionbase.h"
-#include "cvtuicmdcustomvalidationactionbase.h"
-#include "tvtuicmdvalidatorcallback.h"
-#include "tvtuistates.h"
-#include "videotelui.hrh"
-#include "tVtuifeaturevariation.h"
-#include "CVtUiAppUi.h"
-
-// ======== MEMBER FUNCTIONS ========
-
-// ---------------------------------------------------------------------------
-// CVtUiPrimaryCmdPolicy::NewL
-// ---------------------------------------------------------------------------
-//
-CVtUiPrimaryCmdPolicy* CVtUiPrimaryCmdPolicy::NewL(
-    const TVtUiStates& aUiStates, const CVtUiAppUi& aAppUi )
-    {
-    __VTPRINTENTER( "PrimaryCmdPolicy.NewL" )
-    CVtUiPrimaryCmdPolicy* self =
-        new ( ELeave ) CVtUiPrimaryCmdPolicy( aUiStates, aAppUi );
-    CleanupStack::PushL( self );
-    self->ConstructL();
-    CleanupStack::Pop(); // self
-    __VTPRINTEXIT( "PrimaryCmdPolicy.NewL" )
-    return self;
-    }
-
-// ---------------------------------------------------------------------------
-// CVtUiPrimaryCmdPolicy::~CVtUiPrimaryCmdPolicy
-// ---------------------------------------------------------------------------
-//
-CVtUiPrimaryCmdPolicy::~CVtUiPrimaryCmdPolicy()
-    {
-    __VTPRINTENTER( "PrimaryCmdPolicy.~" )
-    __VTPRINTEXIT( "PrimaryCmdPolicy.~" )
-    }
-
-// ---------------------------------------------------------------------------
-// CVtUiPrimaryCmdPolicy::ValidateMenuItemsL
-// ---------------------------------------------------------------------------
-//
-void CVtUiPrimaryCmdPolicy::ValidateMenuItemsL(
-    CVtUiCmdValidationActionBase& aAction, TInt )
-    {
-    __VTPRINTENTER( "PrimaryCmdPolicy.ValidateMenuItemsL" )
-    aAction.ProcessL(
-        TVtUiCmdValidatorCallBack< CVtUiPrimaryCmdPolicy >( *this,
-            ValidateMenuCommand ) );
-    __VTPRINTEXIT( "PrimaryCmdPolicy.ValidateMenuItemsL" )
-    }
-
-// ---------------------------------------------------------------------------
-// CVtUiPrimaryCmdPolicy::ValidateSoftkeyItemsL
-// ---------------------------------------------------------------------------
-//
-void CVtUiPrimaryCmdPolicy::ValidateSoftkeyItemsL(
-    CVtUiCmdValidationActionBase& aAction, TInt )
-    {
-    __VTPRINTENTER( "PrimaryCmdPolicy.ValidateSoftkeyItemsL" )
-    aAction.ProcessL(
-        TVtUiCmdValidatorCallBack< CVtUiPrimaryCmdPolicy >( *this,
-            ValidateSoftkey ) );
-    __VTPRINTEXIT( "PrimaryCmdPolicy.ValidateSoftkeyItemsL" )
-    }
-
-// ---------------------------------------------------------------------------
-// CVtUiPrimaryCmdPolicy::ValidateSoftkeyItemsL
-// ---------------------------------------------------------------------------
-//
-void CVtUiPrimaryCmdPolicy::ValidateToolbarItemsL(
-    CVtUiCmdValidationActionBase& aAction, TInt )
-    {
-    __VTPRINTENTER( "PrimaryCmdPolicy.ValidateToolbarItemsL" )
-    aAction.ProcessL(
-        TVtUiCmdValidatorCallBack< CVtUiPrimaryCmdPolicy >( *this,
-            ValidateToolbarCommand ) );
-    __VTPRINTEXIT( "PrimaryCmdPolicy.ValidateToolbarItemsL" )
-    }
-
-// ---------------------------------------------------------------------------
-// CVtUiPrimaryCmdPolicy::CustomValidationL
-// ---------------------------------------------------------------------------
-//
-void CVtUiPrimaryCmdPolicy::CustomValidationL(
-    CVtUiCmdCustomValidationActionBase& aAction, TInt )
-    {
-    __VTPRINTENTER( "PrimaryCmdPolicy.CustomValidationL" )
-    switch ( aAction.CustomTypeId() )
-        {
-    // Command state validation
-    case EVtUiCmdContextTypeExecution:
-        aAction.ProcessL( TVtUiCmdValidatorCallBack< CVtUiPrimaryCmdPolicy >(
-            *this, ValidateCommandState ) );
-        break;
-
-    default:
-        __VTPRINT2( DEBUG_GEN,
-            "PrimaryCmdPolicy.CustomValidationL unknown typeId = %d",
-            aAction.CustomTypeId() );
-        break;
-        }
-    __VTPRINTEXIT( "PrimaryCmdPolicy.CustomValidationL" )
-    }
-
-// ---------------------------------------------------------------------------
-// CVtUiPrimaryCmdPolicy::ValidatesContext
-// ---------------------------------------------------------------------------
-//
-TBool CVtUiPrimaryCmdPolicy::ValidatesContext(
-    const TVtUiCmdContextType& aCtxType ) const
-    {
-    __VTPRINTENTER( "PrimaryCmdPolicy.ValidatesContext" )
-
-    TBool result( EFalse );
-
-    switch ( aCtxType )
-        {
-    case EVtUiCmdContextTypeMenu:
-    case EVtUiCmdContextTypeSoftkey:
-    case EVtUiCmdContextTypeToolbar:
-    case EVtUiCmdContextTypeExecution:
-        result = ETrue;
-        break;
-
-    default:
-        break;
-        }
-
-    __VTPRINTEXITR( "PrimaryCmdPolicy.ValidatesContext %d", result )
-
-    return result;
-    }
-
-// ---------------------------------------------------------------------------
-// CVtUiPrimaryCmdPolicy::CVtUiPrimaryCmdPolicy
-// ---------------------------------------------------------------------------
-//
-CVtUiPrimaryCmdPolicy::CVtUiPrimaryCmdPolicy( const TVtUiStates& aUiStates,
-    const  CVtUiAppUi& aAppUi )
-    : CVtUiCmdValidatorBase( EVtUiCmdPolicyPriorityPrimary ),
-      iUiStates( aUiStates ), iAppUi( aAppUi )
-    {
-    }
-
-// ---------------------------------------------------------------------------
-// CVtUiPrimaryCmdPolicy::ConstructL
-// ---------------------------------------------------------------------------
-//
-void CVtUiPrimaryCmdPolicy::ConstructL()
-    {
-    TVtUiActiveIdleVariation activeIdleVariation;
-    iAIEnabled = activeIdleVariation.IsActiveIdleEnabled();
-    }
-
-// ---------------------------------------------------------------------------
-// CVtUiPrimaryCmdPolicy::ValidateMenuCommand
-// ---------------------------------------------------------------------------
-//
-TBool CVtUiPrimaryCmdPolicy::ValidateMenuCommand( TInt aCommandId ) const
-    {
-    TBool handled;
-    return ValidateCommand( aCommandId, handled );
-    }
-
-// ---------------------------------------------------------------------------
-// CVtUiPrimaryCmdPolicy::ValidateSoftkey
-// ---------------------------------------------------------------------------
-//
-TBool CVtUiPrimaryCmdPolicy::ValidateSoftkey( TInt aResourceId ) const
-    {
-    __VTPRINTENTER( "PrimaryCmdPolicy.ValidateSoftkey" )
-    TBool result( EFalse );
-    switch ( aResourceId )
-        {
-    case R_VIDEOTELUI_SOFTKEYS_EMPTY_ACTIVE_COMMAND:
-        result = iUiStates.IsCommandActivating();
-        break;
-
-    case R_VIDEOTELUI_SOFTKEYS_EMPTY_DIALEREXIT:
-        result = iUiStates.IsDialerActivating();
-        break;
-
-    case R_VIDEOTELUI_SOFTKEYS_SHARE_OBJECT_IMAGE:
-        result = iUiStates.MediaState().IsSharing();
-        break;
-
-    case R_VIDEOTELUI_SOFTKEYS_CAPTURE_VIDEO:
-        result = iUiStates.IsCaptureModeOn();
-        break;
-
-    case R_VIDEOTELUI_SOFTKEYS_ENABLE_AUDIO:
-        result = !iUiStates.AudioState().IsAudio();
-        break;
-
-    case R_VIDEOTELUI_SOFTKEYS_ENABLE_VIDEO:
-        result = !iUiStates.MediaState().IsVideo() &&
-            iUiStates.MediaState().HasCamera() &&
-            ( iUiStates.ExecState() == TVtUiStates::EExecStateRunning );
-        break;
-
-    case R_VIDEOTELUI_SOFTKEYS_DIALER:
-    case R_VIDEOTELUI_SOFTKEYS_BT_HANDSFREE:
-    case R_VIDEOTELUI_SOFTKEYS_LOUDSPEAKER:
-    case R_VIDEOTELUI_SOFTKEYS_HANDSET_B:
-        {
-        if ( FeatureManager::FeatureSupported( KFeatureIdOnScreenDialer ) &&
-             ( iUiStates.ExecState() == TVtUiStates::EExecStateRunning ) )
-            {
-            switch ( aResourceId )
-                {
-            case R_VIDEOTELUI_SOFTKEYS_DIALER:
-                result = ETrue;
-                break;
-                }
-            }
-        else
-            {
-            switch ( aResourceId )
-                {
-            case R_VIDEOTELUI_SOFTKEYS_BT_HANDSFREE:
-                result = iUiStates.AudioState().CanActivateBtHf();
-                break;
-
-            case R_VIDEOTELUI_SOFTKEYS_LOUDSPEAKER:
-                result = iUiStates.AudioState().CanActivateLoudspeaker();
-                break;
-
-            case R_VIDEOTELUI_SOFTKEYS_HANDSET_B:
-                result = iUiStates.AudioState().CanDeactivateLoudspeaker();
-                break;
-                }
-            }
-        }
-        break;
-
-    case R_VIDEOTELUI_SOFTKEYS_END_CALL:
-        result = ETrue;
-        break;
-        }
-    __VTPRINTEXITR( "PrimaryCmdPolicy.ValidateSoftkey %d", result )
-    return result;
-    }
-
-// ---------------------------------------------------------------------------
-// CVtUiPrimaryCmdPolicy::ValidateToolbarCommand
-// ---------------------------------------------------------------------------
-//
-TBool CVtUiPrimaryCmdPolicy::ValidateToolbarCommand( TInt aCommandId ) const
-    {
-     __VTPRINTENTER( "PrimaryCmdPolicy.ValidateToolbarCommand" )
-    __VTPRINT2( DEBUG_GEN, "cmdId = %d", aCommandId )
-    TBool result( ETrue );
-    switch( aCommandId )
-        {
-        case EVtUiCmdZoom:
-        case EVtUiCmdShareObjectImage:
-        case EVtUiCmdSwapImagesPlaces:
-        //case EVtUiCmdSnapshot:
-
-            result = EFalse;
-            break;
-
-        default:
-            result = ValidateMenuCommand( aCommandId );
-            break;
-        }
-    __VTPRINTEXITR( "PrimaryCmdPolicy.ValidateToolbarCommand %d", result )
-    return result;
-    }
-
-// ---------------------------------------------------------------------------
-// CVtUiPrimaryCmdPolicy::ValidateCommandState
-// ---------------------------------------------------------------------------
-//
-TBool CVtUiPrimaryCmdPolicy::ValidateCommandState( TInt aCommandId ) const
-    {
-     __VTPRINTENTER( "PrimaryCmdPolicy.ValidateCommandState" )
-    TBool handled;
-    TBool allowed( !ValidateCommand( aCommandId, handled ) );
-    if ( !handled )
-        {
-        switch ( aCommandId )
-            {
-        case EVtUiCmdCapture:
-        case EVtUiCmdCancelCapture:
-            allowed = iUiStates.IsCaptureModeOn();
-            break;
-
-        case EVtUiCmdStopSharingObjectImage:
-            allowed = iUiStates.MediaState().IsSharing() &&
-                !iUiStates.MediaState().IsVideoPermanentlyStopped();
-            break;
-
-        default:
-            allowed = ETrue;
-            break;
-            }
-        }
-    __VTPRINTEXITR( "PrimaryCmdPolicy.ValidateCommandState %d", allowed )
-    return allowed;
-    }
-
-// ---------------------------------------------------------------------------
-// CVtUiPrimaryCmdPolicy::ValidateCommand
-// ---------------------------------------------------------------------------
-//
-TBool CVtUiPrimaryCmdPolicy::ValidateCommand( TInt aCommandId,
-    TBool& aHandled ) const
-    {
-    __VTPRINTENTER( "PrimaryCmdPolicy.ValidateCommand" )
-
-    __VTPRINT2( DEBUG_GEN, "    cmdId = %d", aCommandId )
-
-    TBool result( ETrue );
-
-    aHandled = ETrue;
-
-    const TVtUiMediaState& mediaState( iUiStates.MediaState() );
-    const TVtUiAudioState& audioState( iUiStates.AudioState() );
-    const TBool disabledVideo( !mediaState.IsVideo() ||
-        mediaState.IsSharing() );
-    const TBool disabledAudio( !audioState.IsAudio() );
-    const TBool disableVideoOptions( !mediaState.HasCamera() );
-    const TBool freezeSupported( mediaState.IsFreezeSupported() );
-    const TBool frozen( mediaState.IsFrozen() );
-
-    const TBool videoPermStopped( mediaState.IsVideoPermanentlyStopped() );
-    const TBool audioPermStopped( audioState.IsAudioPermanentlyStopped() );
-
-    switch( aCommandId )
-        {
-    case EVtUiCmdSnapshot:
-        result = ( disabledVideo && !frozen ) ||
-                   disableVideoOptions ||
-                   !freezeSupported;
-        break;
-
-    case EVtUiCmdUsePrimaryCamera:
-        result = mediaState.IsPrimaryCameraInUse() || frozen ||
-            !mediaState.HasPrimaryCamera() || mediaState.IsSharing() ||
-            videoPermStopped;
-        break;
-
-    case EVtUiCmdUseSecondaryCamera:
-        result = mediaState.IsSecondaryCameraInUse() || frozen ||
-            !mediaState.HasSecondaryCamera() || mediaState.IsSharing() ||
-            videoPermStopped;
-        break;
-
-    case EVtUiCmdDeactivateBT:
-        result = !audioState.CanDeactivateBtHf();
-        break;
-
-    case EVtUiCmdSwitchFromBTToIHF:
-        result = !audioState.CanDeactivateBtHf() ||
-            !audioState.CanActivateLoudspeaker();
-        break;
-
-    case EVtUiCmdActivateBT:
-        result = !audioState.CanActivateBtHf();
-        break;
-
-    case EVtUiCmdDeactivateLoudspeaker:
-        result = !audioState.CanDeactivateLoudspeaker();
-        break;
-
-    case EVtUiCmdActivateLoudspeaker:
-        result = !audioState.CanActivateLoudspeaker();
-        break;
-
-    case EVtUiCmdSwapImagesPlaces:
-        // Swap image places is always shown in menu.
-        result = EFalse;
-        break;
-
-    case EVtUiCmdAdjustVideo:
-        // Adjust video is always shown in menu.
-        result = EFalse;
-        break;
-
-    case EVtUiCmdAdjustVideoVideoQuality:
-        result = EFalse;
-        break;
-
-    case EVtUiCmdAdjustVideoWhiteBalance:
-        result = !iUiStates.IsWhiteBalanceSettingAvailable() || frozen;
-        break;
-
-    case EVtUiCmdAdjustVideoBrightness:
-          result =!iUiStates.IsBrightnessSettingAvailable() || frozen;
-        break;
-
-    case EVtUiCmdAdjustVideoContrast:
-        result =!iUiStates.IsContrastSettingAvailable() || frozen;
-        break;
-
-    case EVtUiCmdAdjustVideoColourTone:
-        result = !iUiStates.IsColorToneSettingAvailable() || frozen;
-
-        break;
-    case EVtUiCmdZoom:
-        result = frozen || disableVideoOptions || disabledVideo;
-        break;
-
-    case EVtUiCmdCreateVoice:
-        // Downgrading to voice call is not possible if remote end MSISDN
-        // is unavailable or there is waiting call.
-        result = !iUiStates.IsCLIReceived() || iUiStates.IsWaitingCall();
-        break;
-
-    case EVtUiCmdGoToIdle:
-#ifndef RD_BOOT_CUSTOMIZABLE_AI
-        result = !iAIEnabled;
-#else
-        // When RD_BOOT_CUSTOMIZABLE_AI is defined, active idle is always
-        // shown in menu
-        result = EFalse;
-#endif //RD_BOOT_CUSTOMIZABLE_AI
-        break;
-
-    case EAknCmdHelp:
-    	{
-    	TVtUiHelpVariation hlpvariation;
-        result = !hlpvariation.IsHelpSupported();
-        }
-        break;
-
-    case EAknCmdExit:
-        // Exit option is disabled by default. Change ETrue to EFalse
-        // and it is in the menu.
-        break;
-
-    case EVtUiCmdEndActiveCall:
-        // End active call always shown in menu.
-        result = EFalse;
-        break;
-
-    case EVtUiCmdShareObjectImage:
-        result = frozen || mediaState.IsNotAbleToShare() ||
-            mediaState.IsInitializingShare() || videoPermStopped ||
-            iAppUi.IsActiveCommand( EVtUiCmdShareObjectImage );
-        break;
-
-    case EVtUiCmdEnableMain:
-        result = (  iAppUi.IsActiveCommand( EVtUiCmdEnableVideo ) ||
-                    iAppUi.IsActiveCommand( EVtUiCmdDisableVideo ) ||
-                 !disabledVideo || disableVideoOptions || videoPermStopped )
-                  && ( iAppUi.IsActiveCommand ( EVtUiCmdEnableAudio ) ||
-                  !disabledAudio || audioPermStopped );
-        break;
-
-    case EVtUiCmdEnableVideo:
-        result = !disabledVideo || disableVideoOptions ||
-            videoPermStopped;
-        break;
-
-    case EVtUiCmdEnableAudio:
-        result = !disabledAudio || audioPermStopped;
-        break;
-
-    case EVtUiCmdEnableBoth:
-        result = !disabledVideo || !disabledAudio || disableVideoOptions ||
-            videoPermStopped || audioPermStopped;
-        break;
-
-    case EVtUiCmdDisableMain:
-        result = ( iAppUi.IsActiveCommand( EVtUiCmdDisableVideo ) ||
-                   iAppUi.IsActiveCommand( EVtUiCmdEnableVideo ) ||
-                 disabledVideo || disableVideoOptions || videoPermStopped ) &&
-                ( iAppUi.IsActiveCommand( EVtUiCmdDisableAudio ) ||
-                disabledAudio || audioPermStopped );
-        break;
-
-    case EVtUiCmdDisableVideo:
-        result = disabledVideo || disableVideoOptions || videoPermStopped;
-        break;
-
-    case EVtUiCmdDisableAudio:
-        result = disabledAudio || audioPermStopped;
-        break;
-
-    case EVtUiCmdDisableBoth:
-        result = disableVideoOptions || disabledVideo || disabledAudio ||
-            videoPermStopped || audioPermStopped;
-        break;
-
-    case EVtUiCmdSendDTMF:
-        if ( FeatureManager::FeatureSupported( KFeatureIdOnScreenDialer ) )
-            {
-            result = EFalse;
-            }
-        else
-            {
-            result = ETrue;
-            }
-        break;
-
-    default:
-        aHandled = EFalse;
-        break;
-        }
-
-    __VTPRINTEXITR( "PrimaryCmdPolicy.ValidateCommand %d", result )
-
-    return result;
-    }
-