coreapplicationuis/SysAp/Src/CenRepObservers/SysApCenRepSilentModeObserver.cpp
author hgs
Thu, 07 Oct 2010 06:25:45 +0300
changeset 77 b01c07dfcf84
parent 72 56a7be608841
permissions -rw-r--r--
201039
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
72
56a7be608841 201037_01
hgs
parents:
diff changeset
     1
/*
56a7be608841 201037_01
hgs
parents:
diff changeset
     2
* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). 
56a7be608841 201037_01
hgs
parents:
diff changeset
     3
* All rights reserved.
56a7be608841 201037_01
hgs
parents:
diff changeset
     4
* This component and the accompanying materials are made available
56a7be608841 201037_01
hgs
parents:
diff changeset
     5
* under the terms of "Eclipse Public License v1.0"
56a7be608841 201037_01
hgs
parents:
diff changeset
     6
* which accompanies this distribution, and is available
56a7be608841 201037_01
hgs
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
56a7be608841 201037_01
hgs
parents:
diff changeset
     8
*
56a7be608841 201037_01
hgs
parents:
diff changeset
     9
* Initial Contributors:
56a7be608841 201037_01
hgs
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
56a7be608841 201037_01
hgs
parents:
diff changeset
    11
*
56a7be608841 201037_01
hgs
parents:
diff changeset
    12
* Contributors:
56a7be608841 201037_01
hgs
parents:
diff changeset
    13
*
56a7be608841 201037_01
hgs
parents:
diff changeset
    14
* Description:  CSysApCenRepSilentModeObserver implementation.
56a7be608841 201037_01
hgs
parents:
diff changeset
    15
 *
56a7be608841 201037_01
hgs
parents:
diff changeset
    16
*/
56a7be608841 201037_01
hgs
parents:
diff changeset
    17
56a7be608841 201037_01
hgs
parents:
diff changeset
    18
56a7be608841 201037_01
hgs
parents:
diff changeset
    19
// INCLUDE FILES
56a7be608841 201037_01
hgs
parents:
diff changeset
    20
#include "SysApCenRepSilentModeObserver.h"
56a7be608841 201037_01
hgs
parents:
diff changeset
    21
#include "SysApAppUi.h"
56a7be608841 201037_01
hgs
parents:
diff changeset
    22
#include <hbindicatorsymbian.h>
56a7be608841 201037_01
hgs
parents:
diff changeset
    23
56a7be608841 201037_01
hgs
parents:
diff changeset
    24
// ========================== MEMBER FUNCTIONS ================================
56a7be608841 201037_01
hgs
parents:
diff changeset
    25
56a7be608841 201037_01
hgs
parents:
diff changeset
    26
// ----------------------------------------------------------------------------
56a7be608841 201037_01
hgs
parents:
diff changeset
    27
// ----------------------------------------------------------------------------
56a7be608841 201037_01
hgs
parents:
diff changeset
    28
56a7be608841 201037_01
hgs
parents:
diff changeset
    29
CSysApCenRepSilentModeObserver* CSysApCenRepSilentModeObserver::NewL( )
56a7be608841 201037_01
hgs
parents:
diff changeset
    30
    {       
56a7be608841 201037_01
hgs
parents:
diff changeset
    31
    TRACES( RDebug::Print( _L("CSysApCenRepSilentModeObserver::NewL" ) ) );
56a7be608841 201037_01
hgs
parents:
diff changeset
    32
    CSysApCenRepSilentModeObserver* self = new ( ELeave ) CSysApCenRepSilentModeObserver(  );
56a7be608841 201037_01
hgs
parents:
diff changeset
    33
    CleanupStack::PushL( self );
56a7be608841 201037_01
hgs
parents:
diff changeset
    34
    self->ConstructL();
56a7be608841 201037_01
hgs
parents:
diff changeset
    35
    CleanupStack::Pop(); //self
56a7be608841 201037_01
hgs
parents:
diff changeset
    36
    return self;
56a7be608841 201037_01
hgs
parents:
diff changeset
    37
    }
56a7be608841 201037_01
hgs
parents:
diff changeset
    38
56a7be608841 201037_01
hgs
parents:
diff changeset
    39
// ----------------------------------------------------------------------------
56a7be608841 201037_01
hgs
parents:
diff changeset
    40
// ----------------------------------------------------------------------------
56a7be608841 201037_01
hgs
parents:
diff changeset
    41
56a7be608841 201037_01
hgs
parents:
diff changeset
    42
CSysApCenRepSilentModeObserver::CSysApCenRepSilentModeObserver(  )
56a7be608841 201037_01
hgs
parents:
diff changeset
    43
    {
56a7be608841 201037_01
hgs
parents:
diff changeset
    44
    TRACES( RDebug::Print( _L("CSysApCenRepSilentModeObserver::CSysApCenRepSilentModeObserver" ) ) );
56a7be608841 201037_01
hgs
parents:
diff changeset
    45
    }
56a7be608841 201037_01
hgs
parents:
diff changeset
    46
56a7be608841 201037_01
hgs
parents:
diff changeset
    47
// ----------------------------------------------------------------------------
56a7be608841 201037_01
hgs
parents:
diff changeset
    48
// ----------------------------------------------------------------------------
56a7be608841 201037_01
hgs
parents:
diff changeset
    49
56a7be608841 201037_01
hgs
parents:
diff changeset
    50
CSysApCenRepSilentModeObserver::~CSysApCenRepSilentModeObserver()
56a7be608841 201037_01
hgs
parents:
diff changeset
    51
    {
56a7be608841 201037_01
hgs
parents:
diff changeset
    52
    TRACES( RDebug::Print( _L("~CSysApCenRepSilentModeObserver") ) );
56a7be608841 201037_01
hgs
parents:
diff changeset
    53
    if ( iSilentModeHandler )
56a7be608841 201037_01
hgs
parents:
diff changeset
    54
        {
56a7be608841 201037_01
hgs
parents:
diff changeset
    55
        iSilentModeHandler->StopListening();
56a7be608841 201037_01
hgs
parents:
diff changeset
    56
        }
56a7be608841 201037_01
hgs
parents:
diff changeset
    57
    delete iSilentModeHandler;
56a7be608841 201037_01
hgs
parents:
diff changeset
    58
    delete iSession;
56a7be608841 201037_01
hgs
parents:
diff changeset
    59
    }
56a7be608841 201037_01
hgs
parents:
diff changeset
    60
56a7be608841 201037_01
hgs
parents:
diff changeset
    61
// ----------------------------------------------------------------------------
56a7be608841 201037_01
hgs
parents:
diff changeset
    62
// ----------------------------------------------------------------------------
56a7be608841 201037_01
hgs
parents:
diff changeset
    63
56a7be608841 201037_01
hgs
parents:
diff changeset
    64
void CSysApCenRepSilentModeObserver::ConstructL()
56a7be608841 201037_01
hgs
parents:
diff changeset
    65
    {
56a7be608841 201037_01
hgs
parents:
diff changeset
    66
    TRACES( RDebug::Print( _L("CSysApCenRepSilentModeObserver::ConstructL: trying CRepository::NewL( KCRUidBluetoothPowerState )") ) );
56a7be608841 201037_01
hgs
parents:
diff changeset
    67
    iSession = CRepository::NewL( KCRUidProfileEngine );
56a7be608841 201037_01
hgs
parents:
diff changeset
    68
    
56a7be608841 201037_01
hgs
parents:
diff changeset
    69
    iSilentModeHandler = 
56a7be608841 201037_01
hgs
parents:
diff changeset
    70
        CCenRepNotifyHandler::NewL( *this, 
56a7be608841 201037_01
hgs
parents:
diff changeset
    71
                                    *iSession, 
56a7be608841 201037_01
hgs
parents:
diff changeset
    72
                                    CCenRepNotifyHandler::EIntKey, 
56a7be608841 201037_01
hgs
parents:
diff changeset
    73
                                    KProEngSilenceMode );
56a7be608841 201037_01
hgs
parents:
diff changeset
    74
    iSilentModeHandler->StartListeningL();
56a7be608841 201037_01
hgs
parents:
diff changeset
    75
    }
56a7be608841 201037_01
hgs
parents:
diff changeset
    76
56a7be608841 201037_01
hgs
parents:
diff changeset
    77
// ----------------------------------------------------------------------------
56a7be608841 201037_01
hgs
parents:
diff changeset
    78
// ----------------------------------------------------------------------------
56a7be608841 201037_01
hgs
parents:
diff changeset
    79
56a7be608841 201037_01
hgs
parents:
diff changeset
    80
void CSysApCenRepSilentModeObserver::HandleNotifyInt( TUint32 aId, TInt aNewValue  )
56a7be608841 201037_01
hgs
parents:
diff changeset
    81
    {
56a7be608841 201037_01
hgs
parents:
diff changeset
    82
    TRACES( RDebug::Print( _L("CSysApCenRepSilentModeObserver::HandleNotifyInt(), aId=0x%x, aNewValue=%d" ), aId, aNewValue ) );
56a7be608841 201037_01
hgs
parents:
diff changeset
    83
     
56a7be608841 201037_01
hgs
parents:
diff changeset
    84
    SilenceIndicatorL(aNewValue);
56a7be608841 201037_01
hgs
parents:
diff changeset
    85
        
56a7be608841 201037_01
hgs
parents:
diff changeset
    86
    }
56a7be608841 201037_01
hgs
parents:
diff changeset
    87
56a7be608841 201037_01
hgs
parents:
diff changeset
    88
// ----------------------------------------------------------------------------
56a7be608841 201037_01
hgs
parents:
diff changeset
    89
// ----------------------------------------------------------------------------
56a7be608841 201037_01
hgs
parents:
diff changeset
    90
56a7be608841 201037_01
hgs
parents:
diff changeset
    91
void CSysApCenRepSilentModeObserver::HandleNotifyError( TUint32 /* aId */, TInt /* error */, CCenRepNotifyHandler* /* aHandler */ )
56a7be608841 201037_01
hgs
parents:
diff changeset
    92
    {
56a7be608841 201037_01
hgs
parents:
diff changeset
    93
    TRACES( RDebug::Print( _L("CSysApCenRepSilentModeObserver::HandleNotifyError()" ) ) );
56a7be608841 201037_01
hgs
parents:
diff changeset
    94
    }
56a7be608841 201037_01
hgs
parents:
diff changeset
    95
56a7be608841 201037_01
hgs
parents:
diff changeset
    96
// ----------------------------------------------------------------------------
56a7be608841 201037_01
hgs
parents:
diff changeset
    97
// ----------------------------------------------------------------------------
56a7be608841 201037_01
hgs
parents:
diff changeset
    98
56a7be608841 201037_01
hgs
parents:
diff changeset
    99
void CSysApCenRepSilentModeObserver::SilenceIndicatorL(TInt aValue)
56a7be608841 201037_01
hgs
parents:
diff changeset
   100
    {
56a7be608841 201037_01
hgs
parents:
diff changeset
   101
    TRACES( RDebug::Print( _L(" CSysApCenRepSilentModeObserver::SilenceIndicatorL" )));
56a7be608841 201037_01
hgs
parents:
diff changeset
   102
    CHbIndicatorSymbian* indicator = CHbIndicatorSymbian::NewL();
56a7be608841 201037_01
hgs
parents:
diff changeset
   103
    CleanupStack::PushL(indicator);
56a7be608841 201037_01
hgs
parents:
diff changeset
   104
    _LIT(KSilentmodeindicator,"com.nokia.hb.indicator.controlpanel.cpsilenceindicatorplugin/1.0");
56a7be608841 201037_01
hgs
parents:
diff changeset
   105
    
56a7be608841 201037_01
hgs
parents:
diff changeset
   106
    
56a7be608841 201037_01
hgs
parents:
diff changeset
   107
    if (aValue) 
56a7be608841 201037_01
hgs
parents:
diff changeset
   108
       {
56a7be608841 201037_01
hgs
parents:
diff changeset
   109
       TRACES( RDebug::Print( _L("CSysApCenRepSilentModeObserver::HandleNotifyInt() activate silence indicator" )));
56a7be608841 201037_01
hgs
parents:
diff changeset
   110
       // activate the indicator plugin to display the icon in status bar        
56a7be608841 201037_01
hgs
parents:
diff changeset
   111
       indicator->Activate(KSilentmodeindicator); 
56a7be608841 201037_01
hgs
parents:
diff changeset
   112
       } 
56a7be608841 201037_01
hgs
parents:
diff changeset
   113
    else
56a7be608841 201037_01
hgs
parents:
diff changeset
   114
       {
56a7be608841 201037_01
hgs
parents:
diff changeset
   115
       TRACES( RDebug::Print( _L("CSysApCenRepSilentModeObserver::HandleNotifyInt() Deactivate silence indicator" )));
56a7be608841 201037_01
hgs
parents:
diff changeset
   116
       // deactivate the indicator plugin to remove the icon in the status bar  
56a7be608841 201037_01
hgs
parents:
diff changeset
   117
       indicator->Deactivate(KSilentmodeindicator);
56a7be608841 201037_01
hgs
parents:
diff changeset
   118
       }
56a7be608841 201037_01
hgs
parents:
diff changeset
   119
    CleanupStack::PopAndDestroy(indicator); // indicator
56a7be608841 201037_01
hgs
parents:
diff changeset
   120
    }
56a7be608841 201037_01
hgs
parents:
diff changeset
   121
    
56a7be608841 201037_01
hgs
parents:
diff changeset
   122
56a7be608841 201037_01
hgs
parents:
diff changeset
   123
// End of File
56a7be608841 201037_01
hgs
parents:
diff changeset
   124