satengine/satserver/Commands/DisplayTextCmd/src/CClearScreenHandler.cpp
author hgs
Fri, 15 Oct 2010 13:21:28 +0300
changeset 53 25b8d29b7c59
parent 33 8d5d7fcf9b59
permissions -rw-r--r--
201041
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
33
hgs
parents:
diff changeset
     1
/*
hgs
parents:
diff changeset
     2
* Copyright (c) 2002-2007 Nokia Corporation and/or its subsidiary(-ies). 
hgs
parents:
diff changeset
     3
* All rights reserved.
hgs
parents:
diff changeset
     4
* This component and the accompanying materials are made available
hgs
parents:
diff changeset
     5
* under the terms of "Eclipse Public License v1.0"
hgs
parents:
diff changeset
     6
* which accompanies this distribution, and is available
hgs
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
hgs
parents:
diff changeset
     8
*
hgs
parents:
diff changeset
     9
* Initial Contributors:
hgs
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
hgs
parents:
diff changeset
    11
*
hgs
parents:
diff changeset
    12
* Contributors:
hgs
parents:
diff changeset
    13
*
hgs
parents:
diff changeset
    14
* Description:  ClearScreen handler is responsible for clearing screen when
hgs
parents:
diff changeset
    15
*                DisplayText has sent immediate response and it is still active
hgs
parents:
diff changeset
    16
*                when any other command starts to execute.
hgs
parents:
diff changeset
    17
*
hgs
parents:
diff changeset
    18
*/
hgs
parents:
diff changeset
    19
hgs
parents:
diff changeset
    20
hgs
parents:
diff changeset
    21
hgs
parents:
diff changeset
    22
// INCLUDE FILES
hgs
parents:
diff changeset
    23
#include    "MSatUtils.h"
hgs
parents:
diff changeset
    24
#include    "SatSTypes.h"
hgs
parents:
diff changeset
    25
#include    "CClearScreenHandler.h"
hgs
parents:
diff changeset
    26
#include    "SatLog.h"
hgs
parents:
diff changeset
    27
hgs
parents:
diff changeset
    28
// ============================ MEMBER FUNCTIONS ===============================
hgs
parents:
diff changeset
    29
hgs
parents:
diff changeset
    30
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
    31
// CClearScreenHandler::CClearScreenHandler
hgs
parents:
diff changeset
    32
// C++ default constructor can NOT contain any code, that
hgs
parents:
diff changeset
    33
// might leave.
hgs
parents:
diff changeset
    34
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
    35
//
hgs
parents:
diff changeset
    36
CClearScreenHandler::CClearScreenHandler( MSatUtils& aUtils ) :
hgs
parents:
diff changeset
    37
    iUtils( aUtils )
hgs
parents:
diff changeset
    38
    {
hgs
parents:
diff changeset
    39
    LOG( SIMPLE, "DISPLAYTEXT: \
hgs
parents:
diff changeset
    40
        CClearScreenHandler::CClearScreenHandler calling - exiting" )
hgs
parents:
diff changeset
    41
    }
hgs
parents:
diff changeset
    42
hgs
parents:
diff changeset
    43
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
    44
// CClearScreenHandler::ConstructL
hgs
parents:
diff changeset
    45
// Symbian 2nd phase constructor can leave.
hgs
parents:
diff changeset
    46
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
    47
//
hgs
parents:
diff changeset
    48
void CClearScreenHandler::ConstructL()
hgs
parents:
diff changeset
    49
    {
hgs
parents:
diff changeset
    50
    LOG( SIMPLE, "DISPLAYTEXT: CClearScreenHandler::ConstructL calling" )
hgs
parents:
diff changeset
    51
hgs
parents:
diff changeset
    52
    // Set immediate response to false.
hgs
parents:
diff changeset
    53
    iImmediateResponse = EFalse;
hgs
parents:
diff changeset
    54
hgs
parents:
diff changeset
    55
    // List all events we should listen.
hgs
parents:
diff changeset
    56
    iUtils.RegisterL( this, MSatUtils::ESetUpMenuExecuting );
hgs
parents:
diff changeset
    57
    iUtils.RegisterL( this, MSatUtils::ESelectItemExecuting );
hgs
parents:
diff changeset
    58
    iUtils.RegisterL( this, MSatUtils::ESetUpCallExecuting );
hgs
parents:
diff changeset
    59
    iUtils.RegisterL( this, MSatUtils::EDisplayTextExecuting );
hgs
parents:
diff changeset
    60
    iUtils.RegisterL( this, MSatUtils::ELaunchBrowserExecuting );
hgs
parents:
diff changeset
    61
    iUtils.RegisterL( this, MSatUtils::EGetInputExecuting );
hgs
parents:
diff changeset
    62
    iUtils.RegisterL( this, MSatUtils::EGetInkeyExecuting );
hgs
parents:
diff changeset
    63
    iUtils.RegisterL( this, MSatUtils::ESendDtmfExecuting );
hgs
parents:
diff changeset
    64
    iUtils.RegisterL( this, MSatUtils::ESendSsExecuting );
hgs
parents:
diff changeset
    65
    iUtils.RegisterL( this, MSatUtils::ESendUssdExecuting );
hgs
parents:
diff changeset
    66
    iUtils.RegisterL( this, MSatUtils::EPlayToneExecuting );
hgs
parents:
diff changeset
    67
    iUtils.RegisterL( this, MSatUtils::ERefreshExecuting );
hgs
parents:
diff changeset
    68
    iUtils.RegisterL( this, MSatUtils::ECallControlExecuting );
hgs
parents:
diff changeset
    69
    iUtils.RegisterL( this, MSatUtils::ESendSmExecuting );
hgs
parents:
diff changeset
    70
    iUtils.RegisterL( this, MSatUtils::EMoSmControlExecuting );
hgs
parents:
diff changeset
    71
hgs
parents:
diff changeset
    72
    LOG( SIMPLE, "DISPLAYTEXT: CClearScreenHandler::ConstructL exiting" )
hgs
parents:
diff changeset
    73
    }
hgs
parents:
diff changeset
    74
hgs
parents:
diff changeset
    75
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
    76
// CClearScreenHandler::NewL
hgs
parents:
diff changeset
    77
// Two-phased constructor.
hgs
parents:
diff changeset
    78
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
    79
//
hgs
parents:
diff changeset
    80
CClearScreenHandler* CClearScreenHandler::NewL( MSatUtils& aUtils )
hgs
parents:
diff changeset
    81
    {
hgs
parents:
diff changeset
    82
    LOG( SIMPLE, "DISPLAYTEXT: CClearScreenHandler::NewL calling" )
hgs
parents:
diff changeset
    83
hgs
parents:
diff changeset
    84
    CClearScreenHandler* self =
hgs
parents:
diff changeset
    85
        new ( ELeave ) CClearScreenHandler( aUtils );
hgs
parents:
diff changeset
    86
hgs
parents:
diff changeset
    87
    CleanupStack::PushL( self );
hgs
parents:
diff changeset
    88
    self->ConstructL();
hgs
parents:
diff changeset
    89
    CleanupStack::Pop( self );
hgs
parents:
diff changeset
    90
hgs
parents:
diff changeset
    91
    LOG( SIMPLE, "DISPLAYTEXT: CClearScreenHandler::NewL exiting" )
hgs
parents:
diff changeset
    92
    return self;
hgs
parents:
diff changeset
    93
    }
hgs
parents:
diff changeset
    94
hgs
parents:
diff changeset
    95
hgs
parents:
diff changeset
    96
// Destructor
hgs
parents:
diff changeset
    97
CClearScreenHandler::~CClearScreenHandler()
hgs
parents:
diff changeset
    98
    {
hgs
parents:
diff changeset
    99
    LOG( SIMPLE,
hgs
parents:
diff changeset
   100
        "DISPLAYTEXT: CClearScreenHandler::~CClearScreenHandler calling" )
hgs
parents:
diff changeset
   101
hgs
parents:
diff changeset
   102
    // Unregister this as an event observer
hgs
parents:
diff changeset
   103
    iUtils.UnregisterEventObserver( this );
hgs
parents:
diff changeset
   104
hgs
parents:
diff changeset
   105
    LOG( SIMPLE,
hgs
parents:
diff changeset
   106
        "DISPLAYTEXT: CClearScreenHandler::~CClearScreenHandler exiting" )
hgs
parents:
diff changeset
   107
    }
hgs
parents:
diff changeset
   108
hgs
parents:
diff changeset
   109
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
   110
// CClearScreenHandler::UpdateImmediateState
hgs
parents:
diff changeset
   111
// Updates immediate response state.
hgs
parents:
diff changeset
   112
// (other items were commented in a header).
hgs
parents:
diff changeset
   113
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
   114
//
hgs
parents:
diff changeset
   115
void CClearScreenHandler::UpdateImmediateState( TBool aState )
hgs
parents:
diff changeset
   116
    {
hgs
parents:
diff changeset
   117
    LOG( SIMPLE,
hgs
parents:
diff changeset
   118
        "DISPLAYTEXT: CClearScreenHandler::UpdateImmediateState calling" )
hgs
parents:
diff changeset
   119
hgs
parents:
diff changeset
   120
    iImmediateResponse = aState;
hgs
parents:
diff changeset
   121
hgs
parents:
diff changeset
   122
    LOG( SIMPLE,
hgs
parents:
diff changeset
   123
        "DISPLAYTEXT: CClearScreenHandler::UpdateImmediateState exiting" )
hgs
parents:
diff changeset
   124
    }
hgs
parents:
diff changeset
   125
hgs
parents:
diff changeset
   126
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
   127
// CClearScreenHandler::Event
hgs
parents:
diff changeset
   128
// Notification of an event.
hgs
parents:
diff changeset
   129
// (other items were commented in a header).
hgs
parents:
diff changeset
   130
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
   131
//
hgs
parents:
diff changeset
   132
void CClearScreenHandler::Event( TInt aEvent )
hgs
parents:
diff changeset
   133
    {
hgs
parents:
diff changeset
   134
    LOG2( SIMPLE, "DISPLAYTEXT: CClearScreenHandler::Event calling, \
hgs
parents:
diff changeset
   135
          aEvent: %d", aEvent )
hgs
parents:
diff changeset
   136
    LOG2( SIMPLE, "DISPLAYTEXT: CClearScreenHandler::Event, \
hgs
parents:
diff changeset
   137
          iImmediateResponse: %d", iImmediateResponse )
hgs
parents:
diff changeset
   138
    // We don't have to do anything if immediate response is not active.
hgs
parents:
diff changeset
   139
    if ( iImmediateResponse )
hgs
parents:
diff changeset
   140
        {
hgs
parents:
diff changeset
   141
        switch ( aEvent )
hgs
parents:
diff changeset
   142
            {
hgs
parents:
diff changeset
   143
            case MSatUtils::ESetUpMenuExecuting:
hgs
parents:
diff changeset
   144
            case MSatUtils::ESelectItemExecuting:
hgs
parents:
diff changeset
   145
            case MSatUtils::ESetUpCallExecuting:
hgs
parents:
diff changeset
   146
            case MSatUtils::EDisplayTextExecuting:
hgs
parents:
diff changeset
   147
            case MSatUtils::ELaunchBrowserExecuting:
hgs
parents:
diff changeset
   148
            case MSatUtils::EGetInputExecuting:
hgs
parents:
diff changeset
   149
            case MSatUtils::EGetInkeyExecuting:
hgs
parents:
diff changeset
   150
            case MSatUtils::ESendDtmfExecuting:
hgs
parents:
diff changeset
   151
            case MSatUtils::ESendSsExecuting:
hgs
parents:
diff changeset
   152
            case MSatUtils::ESendUssdExecuting:
hgs
parents:
diff changeset
   153
            case MSatUtils::EPlayToneExecuting:
hgs
parents:
diff changeset
   154
            case MSatUtils::ERefreshExecuting:
hgs
parents:
diff changeset
   155
            case MSatUtils::ECallControlExecuting:
hgs
parents:
diff changeset
   156
            case MSatUtils::ESendSmExecuting:
hgs
parents:
diff changeset
   157
            case MSatUtils::EMoSmControlExecuting:
hgs
parents:
diff changeset
   158
                {
hgs
parents:
diff changeset
   159
                ClearScreen();
hgs
parents:
diff changeset
   160
                break;
hgs
parents:
diff changeset
   161
                }
hgs
parents:
diff changeset
   162
hgs
parents:
diff changeset
   163
            default:
hgs
parents:
diff changeset
   164
                {
hgs
parents:
diff changeset
   165
                // Do nothing.
hgs
parents:
diff changeset
   166
                break;
hgs
parents:
diff changeset
   167
                }
hgs
parents:
diff changeset
   168
            }
hgs
parents:
diff changeset
   169
        }
hgs
parents:
diff changeset
   170
hgs
parents:
diff changeset
   171
    LOG( SIMPLE, "DISPLAYTEXT: CClearScreenHandler::Event exiting" )
hgs
parents:
diff changeset
   172
    }
hgs
parents:
diff changeset
   173
hgs
parents:
diff changeset
   174
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
   175
// CClearScreenHandler::ClearScreen
hgs
parents:
diff changeset
   176
// (other items were commented in a header).
hgs
parents:
diff changeset
   177
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
   178
//
hgs
parents:
diff changeset
   179
void CClearScreenHandler::ClearScreen()
hgs
parents:
diff changeset
   180
    {
hgs
parents:
diff changeset
   181
    LOG( SIMPLE, "DISPLAYTEXT: CClearScreenHandler::ClearScreen calling" )
hgs
parents:
diff changeset
   182
    LOG2( SIMPLE, "DISPLAYTEXT: CClearScreenHandler::ClearScreen, \
hgs
parents:
diff changeset
   183
          iImmediateResponse: %d", iImmediateResponse )
hgs
parents:
diff changeset
   184
    // Clear the screen if immediate response is active.
hgs
parents:
diff changeset
   185
    //lint -e{961} Else block meaningless
hgs
parents:
diff changeset
   186
    if ( iImmediateResponse )
hgs
parents:
diff changeset
   187
        {
hgs
parents:
diff changeset
   188
        iUtils.NotifyUiEvent(
hgs
parents:
diff changeset
   189
            ESatSClearScreenEvent, ESatEventNone, KErrNone );
hgs
parents:
diff changeset
   190
        iImmediateResponse = EFalse;
hgs
parents:
diff changeset
   191
hgs
parents:
diff changeset
   192
        iUtils.NotifyEvent( MSatUtils::ESustainedTextRemoved );
hgs
parents:
diff changeset
   193
        }
hgs
parents:
diff changeset
   194
hgs
parents:
diff changeset
   195
    LOG( SIMPLE, "DISPLAYTEXT: CClearScreenHandler::ClearScreen exiting" )
hgs
parents:
diff changeset
   196
    }
hgs
parents:
diff changeset
   197
hgs
parents:
diff changeset
   198
//  End of File