satengine/satserver/SystemState/src/CSatSystemState.cpp
author hgs
Mon, 04 Oct 2010 15:57:13 +0300
changeset 51 12bc758d6a02
parent 33 8d5d7fcf9b59
permissions -rw-r--r--
201039
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
33
hgs
parents:
diff changeset
     1
/*
hgs
parents:
diff changeset
     2
* Copyright (c) 2002-2008 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:  Provides system state information to SAT Server
hgs
parents:
diff changeset
    15
*
hgs
parents:
diff changeset
    16
*/
hgs
parents:
diff changeset
    17
hgs
parents:
diff changeset
    18
hgs
parents:
diff changeset
    19
hgs
parents:
diff changeset
    20
#include    <mtclreg.h>
hgs
parents:
diff changeset
    21
#include    <smsclnt.h>
hgs
parents:
diff changeset
    22
#include    <smutset.h>
hgs
parents:
diff changeset
    23
#include    <PSVariables.h>             // Publish & Suscribe keys
hgs
parents:
diff changeset
    24
#include    <centralrepository.h>       // CRepository
hgs
parents:
diff changeset
    25
#include    <CommonEngineDomainCRKeys.h>
hgs
parents:
diff changeset
    26
#include    <ProfileEngineSDKCRKeys.h>
hgs
parents:
diff changeset
    27
#include    <settingsinternalcrkeys.h>
hgs
parents:
diff changeset
    28
#include    <satdomainpskeys.h>
hgs
parents:
diff changeset
    29
#define Q_OS_SYMBIAN // needed to activate homescreendomainpskeys.h
hgs
parents:
diff changeset
    30
#include    <homescreendomainpskeys.h>
hgs
parents:
diff changeset
    31
hgs
parents:
diff changeset
    32
// ******************************************************************
hgs
parents:
diff changeset
    33
// TODO: ScreensaverInternalPSKeys.h does no longer exist.
hgs
parents:
diff changeset
    34
// Must find an alternative way to check screen locked state.
hgs
parents:
diff changeset
    35
// #include    <ScreensaverInternalPSKeys.h>
hgs
parents:
diff changeset
    36
// ******************************************************************
hgs
parents:
diff changeset
    37
#include    <ctsydomainpskeys.h>
hgs
parents:
diff changeset
    38
#include    <sbdefs.h>
hgs
parents:
diff changeset
    39
#include    <BTSapDomainPSKeys.h>
hgs
parents:
diff changeset
    40
hgs
parents:
diff changeset
    41
#include    "SATInternalPSKeys.h"
hgs
parents:
diff changeset
    42
#include    "CSatSystemState.h"
hgs
parents:
diff changeset
    43
#include    "msatmultimodeapi.h"
hgs
parents:
diff changeset
    44
#include    "SatLog.h"
hgs
parents:
diff changeset
    45
51
hgs
parents: 33
diff changeset
    46
hgs
parents: 33
diff changeset
    47
// -----------------------------------------------------------------------------
hgs
parents: 33
diff changeset
    48
// Helper function to define a property and log result
hgs
parents: 33
diff changeset
    49
// -----------------------------------------------------------------------------
hgs
parents: 33
diff changeset
    50
//
hgs
parents: 33
diff changeset
    51
TInt DefineProperty(TUid aCategory, TUint aKey, TInt aAttr,
hgs
parents: 33
diff changeset
    52
    const TSecurityPolicy & aReadPolicy, const TSecurityPolicy& aWritePolicy)
hgs
parents: 33
diff changeset
    53
    {
hgs
parents: 33
diff changeset
    54
    TInt err = RProperty::Define( aCategory, aKey, aAttr, aReadPolicy, aWritePolicy );
hgs
parents: 33
diff changeset
    55
    LOG3( SIMPLE, 
hgs
parents: 33
diff changeset
    56
        "SATSYSTEMSTATE: CSatSystemState::ConstructL: property %d defined, err=%d",
hgs
parents: 33
diff changeset
    57
        aKey, err);
hgs
parents: 33
diff changeset
    58
    return err;
hgs
parents: 33
diff changeset
    59
    }
hgs
parents: 33
diff changeset
    60
33
hgs
parents:
diff changeset
    61
// ============================ MEMBER FUNCTIONS ===============================
hgs
parents:
diff changeset
    62
hgs
parents:
diff changeset
    63
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
    64
// C++ default constructor can NOT contain any code, that
hgs
parents:
diff changeset
    65
// might leave.
hgs
parents:
diff changeset
    66
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
    67
//
hgs
parents:
diff changeset
    68
CSatSystemState::CSatSystemState( MSatMultiModeApi& aPhone ) : iPhone( aPhone )
hgs
parents:
diff changeset
    69
    {
hgs
parents:
diff changeset
    70
    LOG( SIMPLE,
hgs
parents:
diff changeset
    71
        "SATSYSTEMSTATE: CSatSystemState::CSatSystemState calling-exiting" )
hgs
parents:
diff changeset
    72
    }
hgs
parents:
diff changeset
    73
51
hgs
parents: 33
diff changeset
    74
33
hgs
parents:
diff changeset
    75
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
    76
// Symbian 2nd phase constructor can leave.
hgs
parents:
diff changeset
    77
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
    78
//
hgs
parents:
diff changeset
    79
void CSatSystemState::ConstructL( MSatMultiModeApi& aPhone )
hgs
parents:
diff changeset
    80
    {
hgs
parents:
diff changeset
    81
    LOG( SIMPLE, "SATSYSTEMSTATE: CSatSystemState::ConstructL calling" )
hgs
parents:
diff changeset
    82
hgs
parents:
diff changeset
    83
    // Define policies
hgs
parents:
diff changeset
    84
    TSecurityPolicy readPolicy( ECapabilityReadUserData );
hgs
parents:
diff changeset
    85
    TSecurityPolicy writePolicy( ECapabilityWriteUserData );
hgs
parents:
diff changeset
    86
51
hgs
parents: 33
diff changeset
    87
    DefineProperty( KPSUidSatServerInternal, 
hgs
parents: 33
diff changeset
    88
        KSatIdleModeText,
hgs
parents: 33
diff changeset
    89
        RProperty::ELargeText, 
hgs
parents: 33
diff changeset
    90
        readPolicy, 
hgs
parents: 33
diff changeset
    91
        writePolicy );
33
hgs
parents:
diff changeset
    92
51
hgs
parents: 33
diff changeset
    93
    DefineProperty( KPSUidSatServerInternal, 
hgs
parents: 33
diff changeset
    94
        KSatIdleModeTextIconId,
hgs
parents: 33
diff changeset
    95
        RProperty::EInt, 
hgs
parents: 33
diff changeset
    96
        readPolicy, 
hgs
parents: 33
diff changeset
    97
        writePolicy );
33
hgs
parents:
diff changeset
    98
51
hgs
parents: 33
diff changeset
    99
    DefineProperty( KPSUidSatServerInternal, 
hgs
parents: 33
diff changeset
   100
        KSatIdleModeTextIconQualifier,
hgs
parents: 33
diff changeset
   101
        RProperty::EInt, 
hgs
parents: 33
diff changeset
   102
        readPolicy, 
hgs
parents: 33
diff changeset
   103
        writePolicy );
33
hgs
parents:
diff changeset
   104
hgs
parents:
diff changeset
   105
    // Set default (empty) values
hgs
parents:
diff changeset
   106
    WriteSetIdleModeText( KNullDesC, KErrNotFound, RSat::ENoIconId );
hgs
parents:
diff changeset
   107
51
hgs
parents: 33
diff changeset
   108
    DefineProperty( KPSUidSatServer, 
hgs
parents: 33
diff changeset
   109
        KSatLanguageSelectionTimeBeforeReboot,
hgs
parents: 33
diff changeset
   110
        RProperty::EInt, 
hgs
parents: 33
diff changeset
   111
        readPolicy, 
hgs
parents: 33
diff changeset
   112
        writePolicy );
hgs
parents: 33
diff changeset
   113
    
33
hgs
parents:
diff changeset
   114
    // Create Network Registration Status Monitor.
hgs
parents:
diff changeset
   115
    iNetworkRegStatusMonitor = CSatNetworkRegStatusMonitor::NewL( aPhone );
hgs
parents:
diff changeset
   116
hgs
parents:
diff changeset
   117
    // Start Network Registration Status Monitor.
hgs
parents:
diff changeset
   118
    iNetworkRegStatusMonitor->Start();
hgs
parents:
diff changeset
   119
hgs
parents:
diff changeset
   120
    LOG( SIMPLE, "SATSYSTEMSTATE: CSatSystemState::ConstructL exiting" )
hgs
parents:
diff changeset
   121
    }
hgs
parents:
diff changeset
   122
hgs
parents:
diff changeset
   123
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
   124
// Two-phased constructor.
hgs
parents:
diff changeset
   125
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
   126
//
hgs
parents:
diff changeset
   127
MSatSystemState* CSatSystemState::NewL( MSatMultiModeApi& aPhone )
hgs
parents:
diff changeset
   128
    {
hgs
parents:
diff changeset
   129
    LOG( SIMPLE, "SATSYSTEMSTATE: CSatSystemState::NewL calling" )
hgs
parents:
diff changeset
   130
hgs
parents:
diff changeset
   131
    CSatSystemState* self = new( ELeave ) CSatSystemState( aPhone );
hgs
parents:
diff changeset
   132
    CleanupStack::PushL( self );
hgs
parents:
diff changeset
   133
    self->ConstructL( aPhone );
hgs
parents:
diff changeset
   134
    CleanupStack::Pop( self );
hgs
parents:
diff changeset
   135
hgs
parents:
diff changeset
   136
    LOG( SIMPLE, "SATSYSTEMSTATE: CSatSystemState::NewL exiting" )
hgs
parents:
diff changeset
   137
    return self;
hgs
parents:
diff changeset
   138
    }
hgs
parents:
diff changeset
   139
hgs
parents:
diff changeset
   140
hgs
parents:
diff changeset
   141
// Destructor
hgs
parents:
diff changeset
   142
CSatSystemState::~CSatSystemState()
hgs
parents:
diff changeset
   143
    {
hgs
parents:
diff changeset
   144
    LOG( SIMPLE, "SATSYSTEMSTATE: CSatSystemState::~CSatSystemState calling" )
hgs
parents:
diff changeset
   145
hgs
parents:
diff changeset
   146
    delete iNetworkRegStatusMonitor;
hgs
parents:
diff changeset
   147
    iNetworkRegStatusMonitor = NULL;
hgs
parents:
diff changeset
   148
hgs
parents:
diff changeset
   149
    LOG( SIMPLE, "SATSYSTEMSTATE: CSatSystemState::~CSatSystemState exiting" )
hgs
parents:
diff changeset
   150
    }
hgs
parents:
diff changeset
   151
hgs
parents:
diff changeset
   152
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
   153
// Returns network registration status.
hgs
parents:
diff changeset
   154
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
   155
//
hgs
parents:
diff changeset
   156
RMobilePhone::TMobilePhoneRegistrationStatus
hgs
parents:
diff changeset
   157
    CSatSystemState::GetNetworkRegistrationStatus()
hgs
parents:
diff changeset
   158
    {
hgs
parents:
diff changeset
   159
    LOG( SIMPLE, "SATSYSTEMSTATE: CSatSystemState::\
hgs
parents:
diff changeset
   160
        GetNetworkRegistrationStatus calling-exiting" )
hgs
parents:
diff changeset
   161
    return iNetworkRegStatusMonitor->CurrentValue();
hgs
parents:
diff changeset
   162
    }
hgs
parents:
diff changeset
   163
hgs
parents:
diff changeset
   164
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
   165
// Checks current call status and returns true only if cuurent call status is
hgs
parents:
diff changeset
   166
// voice call active.
hgs
parents:
diff changeset
   167
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
   168
//
hgs
parents:
diff changeset
   169
TBool CSatSystemState::IsCallActive()
hgs
parents:
diff changeset
   170
    {
hgs
parents:
diff changeset
   171
    LOG( SIMPLE, "SATSYSTEMSTATE: CSatSystemState::IsCallActive calling" )
hgs
parents:
diff changeset
   172
    TInt callActiveState = EPSCTsyCallTypeNone;
hgs
parents:
diff changeset
   173
hgs
parents:
diff changeset
   174
    // Get current call status from P&S
hgs
parents:
diff changeset
   175
    const TInt errCode( RProperty::Get(
hgs
parents:
diff changeset
   176
        KPSUidCtsyCallInformation,
hgs
parents:
diff changeset
   177
        KCTsyCallType,
hgs
parents:
diff changeset
   178
        callActiveState ) );
hgs
parents:
diff changeset
   179
hgs
parents:
diff changeset
   180
    // Check current call type
hgs
parents:
diff changeset
   181
    TBool result(
hgs
parents:
diff changeset
   182
        ( EPSCTsyCallTypeCSVoice == callActiveState ) &&
hgs
parents:
diff changeset
   183
        ( KErrNone == errCode ) );
hgs
parents:
diff changeset
   184
hgs
parents:
diff changeset
   185
    LOG2(
hgs
parents:
diff changeset
   186
        SIMPLE,
hgs
parents:
diff changeset
   187
        "SATSYSTEMSTATE: CSatSystemState::IsCallActive exiting with value: %d",
hgs
parents:
diff changeset
   188
        result )
hgs
parents:
diff changeset
   189
    return result;
hgs
parents:
diff changeset
   190
    }
hgs
parents:
diff changeset
   191
hgs
parents:
diff changeset
   192
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
   193
// Checks current call state and returns true if phone is alerting or ringing.
hgs
parents:
diff changeset
   194
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
   195
//
hgs
parents:
diff changeset
   196
TBool CSatSystemState::IsCallIncoming()
hgs
parents:
diff changeset
   197
    {
hgs
parents:
diff changeset
   198
    LOG( SIMPLE, "SATSYSTEMSTATE: CSatSystemState::IsCallIncoming calling" )
hgs
parents:
diff changeset
   199
hgs
parents:
diff changeset
   200
    // Using MSatMultiModeApi::IsCallIncoming to check call status instead of
hgs
parents:
diff changeset
   201
    // checking P&S key so that we can get the status on time
hgs
parents:
diff changeset
   202
    TBool result( iPhone.IsCallIncoming() );
hgs
parents:
diff changeset
   203
hgs
parents:
diff changeset
   204
    LOG2( SIMPLE, "SATSYSTEMSTATE: CSatSystemState::IsCallIncoming exiting \
hgs
parents:
diff changeset
   205
        with value: %d", result )
hgs
parents:
diff changeset
   206
    return result;
hgs
parents:
diff changeset
   207
    }
hgs
parents:
diff changeset
   208
hgs
parents:
diff changeset
   209
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
   210
// Gets the SMS Service center number and returns it.
hgs
parents:
diff changeset
   211
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
   212
//
hgs
parents:
diff changeset
   213
const TDesC& CSatSystemState::SCANumber()
hgs
parents:
diff changeset
   214
    {
hgs
parents:
diff changeset
   215
    LOG( SIMPLE, "SATSYSTEMSTATE: CSatSystemState::SCANumber calling" )
hgs
parents:
diff changeset
   216
hgs
parents:
diff changeset
   217
    // Null possible previous SCA number
hgs
parents:
diff changeset
   218
    iScaAddress = KNullDesC;
hgs
parents:
diff changeset
   219
    TBuf<KMaxSCANumberSize> address;
hgs
parents:
diff changeset
   220
hgs
parents:
diff changeset
   221
    TRAPD( err, ReadCurrentSMSCL( address ) );
hgs
parents:
diff changeset
   222
    LOG2( SIMPLE,
hgs
parents:
diff changeset
   223
    "SATSYSTEMSTATE: CSatSystemState::SCANumber err: %d", err )
hgs
parents:
diff changeset
   224
    // If any error occurs, return null string.
hgs
parents:
diff changeset
   225
    if ( KErrNone != err )
hgs
parents:
diff changeset
   226
        {
hgs
parents:
diff changeset
   227
        address = KNullDesC;
hgs
parents:
diff changeset
   228
        }
hgs
parents:
diff changeset
   229
hgs
parents:
diff changeset
   230
    iScaAddress = address;
hgs
parents:
diff changeset
   231
hgs
parents:
diff changeset
   232
    LOG( SIMPLE, "SATSYSTEMSTATE: CSatSystemState::SCANumber exiting" )
hgs
parents:
diff changeset
   233
    return iScaAddress;
hgs
parents:
diff changeset
   234
    }
hgs
parents:
diff changeset
   235
hgs
parents:
diff changeset
   236
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
   237
// Method is used when the information of phones silent mode is needed.
hgs
parents:
diff changeset
   238
// Returns true if silent mode is on and false otherwise.
hgs
parents:
diff changeset
   239
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
   240
//
hgs
parents:
diff changeset
   241
TBool CSatSystemState::IsSilentMode()
hgs
parents:
diff changeset
   242
    {
hgs
parents:
diff changeset
   243
    LOG( SIMPLE, "SATSYSTEMSTATE: CSatSystemState::IsSilentMode calling" )
hgs
parents:
diff changeset
   244
    TBool result( EFalse );
hgs
parents:
diff changeset
   245
    TInt silenceMode( -1 );
hgs
parents:
diff changeset
   246
    CRepository* centRep( NULL );
hgs
parents:
diff changeset
   247
hgs
parents:
diff changeset
   248
    TRAPD( err, centRep = CRepository::NewL( KCRUidProfileEngine ) );
hgs
parents:
diff changeset
   249
    LOG2( SIMPLE, "SATSYSTEMSTATE:CSatSystemState::IsSilentMode\
hgs
parents:
diff changeset
   250
                   CRepository::NewL result: %i", err )
hgs
parents:
diff changeset
   251
    if ( ( KErrNone == err ) && centRep )
hgs
parents:
diff changeset
   252
        {
hgs
parents:
diff changeset
   253
        // Get the needed information from CentRep
hgs
parents:
diff changeset
   254
        centRep->Get( KProEngActiveMessageAlert, silenceMode );
hgs
parents:
diff changeset
   255
hgs
parents:
diff changeset
   256
        // Delete CentRep
hgs
parents:
diff changeset
   257
        delete centRep;
hgs
parents:
diff changeset
   258
hgs
parents:
diff changeset
   259
        if ( 0 == silenceMode )
hgs
parents:
diff changeset
   260
            {
hgs
parents:
diff changeset
   261
            LOG( SIMPLE, "SATSYSTEMSTATE:CSatSystemState::IsSilentMode\
hgs
parents:
diff changeset
   262
                          Silent mode" )
hgs
parents:
diff changeset
   263
            result = ETrue;
hgs
parents:
diff changeset
   264
            }
hgs
parents:
diff changeset
   265
        }
hgs
parents:
diff changeset
   266
    
hgs
parents:
diff changeset
   267
    LOG2(
hgs
parents:
diff changeset
   268
        SIMPLE,
hgs
parents:
diff changeset
   269
        "SATSYSTEMSTATE: CSatSystemState::IsSilentMode exiting with value: %d",
hgs
parents:
diff changeset
   270
        result )
hgs
parents:
diff changeset
   271
    return result;
hgs
parents:
diff changeset
   272
    }
hgs
parents:
diff changeset
   273
hgs
parents:
diff changeset
   274
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
   275
// Checks is phone in idle state.
hgs
parents:
diff changeset
   276
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
   277
//
hgs
parents:
diff changeset
   278
TBool CSatSystemState::IsPhoneInIdleStateL()
hgs
parents:
diff changeset
   279
    {
hgs
parents:
diff changeset
   280
    LOG( SIMPLE, "SATSYSTEMSTATE: CSatSystemState::IsPhoneInIdleState calling" )
51
hgs
parents: 33
diff changeset
   281
    TInt idleStatus( EHomeScreenWidgetViewForeground );
33
hgs
parents:
diff changeset
   282
hgs
parents:
diff changeset
   283
    // Get the idle status from P&S
hgs
parents:
diff changeset
   284
    User::LeaveIfError( RProperty::Get(
hgs
parents:
diff changeset
   285
        KHsCategoryUid, 
hgs
parents:
diff changeset
   286
        KHsCategoryStateKey, 
hgs
parents:
diff changeset
   287
        idleStatus));
hgs
parents:
diff changeset
   288
    // Returns true if phone in idle state. 
51
hgs
parents: 33
diff changeset
   289
    const TBool result( EHomeScreenWidgetViewForeground == idleStatus );
33
hgs
parents:
diff changeset
   290
hgs
parents:
diff changeset
   291
    LOG2( SIMPLE, "SATSYSTEMSTATE: CSatSystemState::IsPhoneInIdleState exiting \
hgs
parents:
diff changeset
   292
        with value: %d", result )
hgs
parents:
diff changeset
   293
    return result;
hgs
parents:
diff changeset
   294
    }
hgs
parents:
diff changeset
   295
    
hgs
parents:
diff changeset
   296
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
   297
// Checks is screen saver actived from idle.
hgs
parents:
diff changeset
   298
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
   299
//
hgs
parents:
diff changeset
   300
TBool CSatSystemState::IsScreenSaverActivedFromIdle()
hgs
parents:
diff changeset
   301
    {
hgs
parents:
diff changeset
   302
    LOG( SIMPLE, 
hgs
parents:
diff changeset
   303
    "SATSYSTEMSTATE: CSatSystemState::IsScreenSaverActivedFromIdle calling" )
hgs
parents:
diff changeset
   304
    TBool result( EFalse );
hgs
parents:
diff changeset
   305
hgs
parents:
diff changeset
   306
    /*
hgs
parents:
diff changeset
   307
    // TODO: This method can no longer be used for checking screen saver status.
hgs
parents:
diff changeset
   308
    // Must find an alternative method.
hgs
parents:
diff changeset
   309
hgs
parents:
diff changeset
   310
    TInt screenSaverActive( -1 );
hgs
parents:
diff changeset
   311
hgs
parents:
diff changeset
   312
    // Get the idle status from P&S
hgs
parents:
diff changeset
   313
    TInt err = RProperty::Get( KPSUidScreenSaver, 
hgs
parents:
diff changeset
   314
        KScreenSaverActivatedFromIdle, screenSaverActive );
hgs
parents:
diff changeset
   315
        
hgs
parents:
diff changeset
   316
    if ( KErrNone == err )
hgs
parents:
diff changeset
   317
        {
hgs
parents:
diff changeset
   318
        // Returns true if screen saver is actived from idle.    
hgs
parents:
diff changeset
   319
        if ( screenSaverActive )
hgs
parents:
diff changeset
   320
            {
hgs
parents:
diff changeset
   321
            result = ETrue;
hgs
parents:
diff changeset
   322
            }
hgs
parents:
diff changeset
   323
        }
hgs
parents:
diff changeset
   324
hgs
parents:
diff changeset
   325
    LOG2( SIMPLE, 
hgs
parents:
diff changeset
   326
        "SATSYSTEMSTATE: CSatSystemState:: IsScreenSaverActivedFromIdle \
hgs
parents:
diff changeset
   327
         err: %d", err )
hgs
parents:
diff changeset
   328
    */
hgs
parents:
diff changeset
   329
hgs
parents:
diff changeset
   330
    LOG2( SIMPLE, 
hgs
parents:
diff changeset
   331
        "SATSYSTEMSTATE: CSatSystemState:: \
hgs
parents:
diff changeset
   332
        IsScreenSaverActivedFromIdle exiting with value: %d", result )
hgs
parents:
diff changeset
   333
    return result;    
hgs
parents:
diff changeset
   334
    }
hgs
parents:
diff changeset
   335
hgs
parents:
diff changeset
   336
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
   337
// Sets time between language selection and reboot.
hgs
parents:
diff changeset
   338
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
   339
//
hgs
parents:
diff changeset
   340
TInt CSatSystemState::WriteLanguageSelectionTime(
hgs
parents:
diff changeset
   341
    TInt aTime )
hgs
parents:
diff changeset
   342
    {
hgs
parents:
diff changeset
   343
    LOG2( NORMAL,
hgs
parents:
diff changeset
   344
    "SATSYSTEMSTATE: CSatSystemState::WriteLanguageSelectionTime calling, \
hgs
parents:
diff changeset
   345
    aTime: %d", aTime )
hgs
parents:
diff changeset
   346
    TInt errorCode( KErrNone );
hgs
parents:
diff changeset
   347
hgs
parents:
diff changeset
   348
    // Set SetUpIdleModeText string
hgs
parents:
diff changeset
   349
    errorCode = RProperty::Set(
hgs
parents:
diff changeset
   350
        KPSUidSatServer,
hgs
parents:
diff changeset
   351
        KSatLanguageSelectionTimeBeforeReboot,
hgs
parents:
diff changeset
   352
        aTime );
hgs
parents:
diff changeset
   353
    LOG2( NORMAL,
hgs
parents:
diff changeset
   354
    "SATSYSTEMSTATE: CSatSystemState::WriteLanguageSelectionTime exiting, \
hgs
parents:
diff changeset
   355
    errorCode: %d", errorCode )
hgs
parents:
diff changeset
   356
    return errorCode;
hgs
parents:
diff changeset
   357
    }
hgs
parents:
diff changeset
   358
hgs
parents:
diff changeset
   359
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
   360
// Writes idle mode text and icon ID to P&S.
hgs
parents:
diff changeset
   361
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
   362
//
hgs
parents:
diff changeset
   363
TInt CSatSystemState::WriteSetIdleModeText(
hgs
parents:
diff changeset
   364
    const TDesC& aString,
hgs
parents:
diff changeset
   365
    TInt aIconId,
hgs
parents:
diff changeset
   366
    RSat::TIconQualifier aIconQualifier )
hgs
parents:
diff changeset
   367
    {
hgs
parents:
diff changeset
   368
    LOG( SIMPLE,
hgs
parents:
diff changeset
   369
        "SATSYSTEMSTATE: CSatSystemState::WriteSetIdleModeText calling" )
hgs
parents:
diff changeset
   370
    LOG2(
hgs
parents:
diff changeset
   371
        NORMAL,
hgs
parents:
diff changeset
   372
        "SATSYSTEMSTATE: CSatSystemState::WriteSetIdleModeText ID: %d",
hgs
parents:
diff changeset
   373
        aIconId )
hgs
parents:
diff changeset
   374
    TInt errorCode( KErrNone );
hgs
parents:
diff changeset
   375
hgs
parents:
diff changeset
   376
    // Set SetUpIdleModeText string
hgs
parents:
diff changeset
   377
    errorCode = RProperty::Set(
hgs
parents:
diff changeset
   378
        KPSUidSatServerInternal,
hgs
parents:
diff changeset
   379
        KSatIdleModeText,
hgs
parents:
diff changeset
   380
        aString );
hgs
parents:
diff changeset
   381
    LOG2( NORMAL,
hgs
parents:
diff changeset
   382
    "SATSYSTEMSTATE: CSatSystemState::WriteSetIdleModeText errorCode: %d",
hgs
parents:
diff changeset
   383
     errorCode )
hgs
parents:
diff changeset
   384
    if ( KErrNone == errorCode )
hgs
parents:
diff changeset
   385
        {
hgs
parents:
diff changeset
   386
        // Set SetUpIdleModeText icon
hgs
parents:
diff changeset
   387
        errorCode = RProperty::Set(
hgs
parents:
diff changeset
   388
            KPSUidSatServerInternal,
hgs
parents:
diff changeset
   389
            KSatIdleModeTextIconId,
hgs
parents:
diff changeset
   390
            aIconId );
hgs
parents:
diff changeset
   391
        if ( KErrNone == errorCode )
hgs
parents:
diff changeset
   392
            {
hgs
parents:
diff changeset
   393
            // Select qualifier value for icon.
hgs
parents:
diff changeset
   394
            TSatIdleModeTextIconQualifierValue qualifier( KSatIdleIconQInit );
hgs
parents:
diff changeset
   395
            LOG2( NORMAL,
hgs
parents:
diff changeset
   396
            "SATSYSTEMSTATE: CSatSystemState::WriteSetIdleModeText \
hgs
parents:
diff changeset
   397
            aIconQualifier: %d", aIconQualifier )
hgs
parents:
diff changeset
   398
            switch ( aIconQualifier )
hgs
parents:
diff changeset
   399
                {
hgs
parents:
diff changeset
   400
                // Icon not present.
hgs
parents:
diff changeset
   401
                case RSat::ENoIconId:
hgs
parents:
diff changeset
   402
                    {
hgs
parents:
diff changeset
   403
                    qualifier = KSatIdleIconQNoIcon;
hgs
parents:
diff changeset
   404
                    break;
hgs
parents:
diff changeset
   405
                    }
hgs
parents:
diff changeset
   406
                // Icon is self explanatory. Displayed instead text string.
hgs
parents:
diff changeset
   407
                case RSat::ESelfExplanatory:
hgs
parents:
diff changeset
   408
                    {
hgs
parents:
diff changeset
   409
                    qualifier = KSatIdleIconQSelfExplanatory;
hgs
parents:
diff changeset
   410
                    break;
hgs
parents:
diff changeset
   411
                    }
hgs
parents:
diff changeset
   412
                // Icon is not self explanatory. Displayed with text string.
hgs
parents:
diff changeset
   413
                case RSat::ENotSelfExplanatory:
hgs
parents:
diff changeset
   414
                    {
hgs
parents:
diff changeset
   415
                    qualifier = KSatIdleIconQNotSelfExplanatory;
hgs
parents:
diff changeset
   416
                    break;
hgs
parents:
diff changeset
   417
                    }
hgs
parents:
diff changeset
   418
                // Icon qualifier is not set.
hgs
parents:
diff changeset
   419
                case RSat::EIconQualifierNotSet:
hgs
parents:
diff changeset
   420
                default:
hgs
parents:
diff changeset
   421
                    {
hgs
parents:
diff changeset
   422
                    qualifier = KSatIdleIconQInit;
hgs
parents:
diff changeset
   423
                    break;
hgs
parents:
diff changeset
   424
                    }
hgs
parents:
diff changeset
   425
                }
hgs
parents:
diff changeset
   426
hgs
parents:
diff changeset
   427
                LOG2( NORMAL,
hgs
parents:
diff changeset
   428
                "SATSYSTEMSTATE: CSatSystemState::WriteSetIdleModeText \
hgs
parents:
diff changeset
   429
                IconQualifier: %d", qualifier )
hgs
parents:
diff changeset
   430
hgs
parents:
diff changeset
   431
            // Set qualifier for icon.
hgs
parents:
diff changeset
   432
            errorCode = RProperty::Set(
hgs
parents:
diff changeset
   433
                KPSUidSatServerInternal,
hgs
parents:
diff changeset
   434
                KSatIdleModeTextIconQualifier,
hgs
parents:
diff changeset
   435
                qualifier );
hgs
parents:
diff changeset
   436
            }
hgs
parents:
diff changeset
   437
        }
hgs
parents:
diff changeset
   438
hgs
parents:
diff changeset
   439
    LOG2( SIMPLE, "SATSYSTEMSTATE: CSatSystemState::WriteSetIdleModeText \
hgs
parents:
diff changeset
   440
        exiting with value: %d", errorCode )
hgs
parents:
diff changeset
   441
    return errorCode;
hgs
parents:
diff changeset
   442
    }
hgs
parents:
diff changeset
   443
hgs
parents:
diff changeset
   444
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
   445
// Checks is backup process ongoing.
hgs
parents:
diff changeset
   446
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
   447
//
hgs
parents:
diff changeset
   448
TBool CSatSystemState::IsBackupProcessOngoing()
hgs
parents:
diff changeset
   449
    {
hgs
parents:
diff changeset
   450
    LOG( SIMPLE,
hgs
parents:
diff changeset
   451
        "SATSYSTEMSTATE: CSatSystemState::IsBackupProcessOngoing calling" )
hgs
parents:
diff changeset
   452
    TInt backupState( conn::ENoBackup );
hgs
parents:
diff changeset
   453
hgs
parents:
diff changeset
   454
    // Get the backup state from P&S
hgs
parents:
diff changeset
   455
    const TInt errCode( RProperty::Get(
hgs
parents:
diff changeset
   456
        KUidSystemCategory,
hgs
parents:
diff changeset
   457
        conn::KUidBackupRestoreKey,
hgs
parents:
diff changeset
   458
        backupState ) );
hgs
parents:
diff changeset
   459
hgs
parents:
diff changeset
   460
    TBool result(
hgs
parents:
diff changeset
   461
        ( conn::ENoBackup != ( backupState & conn::KBackupIncTypeMask ) )
hgs
parents:
diff changeset
   462
        && ( KErrNone == errCode ) );
hgs
parents:
diff changeset
   463
hgs
parents:
diff changeset
   464
    LOG2( SIMPLE,
hgs
parents:
diff changeset
   465
        "SATSYSTEMSTATE: CSatSystemState::IsBackupProcessOngoing exiting \
hgs
parents:
diff changeset
   466
        with value: %d", result )
hgs
parents:
diff changeset
   467
    return result;
hgs
parents:
diff changeset
   468
    }
hgs
parents:
diff changeset
   469
hgs
parents:
diff changeset
   470
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
   471
// CSatSystemState::IsConfirmSatOperationsOn
hgs
parents:
diff changeset
   472
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
   473
//
hgs
parents:
diff changeset
   474
TBool CSatSystemState::IsConfirmSatOperationsOn()
hgs
parents:
diff changeset
   475
    {
hgs
parents:
diff changeset
   476
    LOG( SIMPLE,
hgs
parents:
diff changeset
   477
        "SATSYSTEMSTATE: CSatSystemState::IsConfirmSatOperationsOn calling" )
hgs
parents:
diff changeset
   478
    TBool result( EFalse );
hgs
parents:
diff changeset
   479
    TInt confirmSatOperations( 0 );
hgs
parents:
diff changeset
   480
    CRepository* centRep( NULL );
hgs
parents:
diff changeset
   481
hgs
parents:
diff changeset
   482
    TRAPD( err, centRep = CRepository::NewL( KCRUidPersonalizationSettings ) );
hgs
parents:
diff changeset
   483
    LOG2( SIMPLE, "SATSYSTEMSTATE:   CentRep failed: %i", err )
hgs
parents:
diff changeset
   484
    if ( ( KErrNone == err ) && centRep )
hgs
parents:
diff changeset
   485
        {
hgs
parents:
diff changeset
   486
        // Get the needed information from CentRep
hgs
parents:
diff changeset
   487
        centRep->Get( KSettingsConfirmSatOperations, confirmSatOperations );
hgs
parents:
diff changeset
   488
hgs
parents:
diff changeset
   489
        // Delete CentRep
hgs
parents:
diff changeset
   490
        delete centRep;
hgs
parents:
diff changeset
   491
hgs
parents:
diff changeset
   492
        if ( 1 == confirmSatOperations )
hgs
parents:
diff changeset
   493
            {
hgs
parents:
diff changeset
   494
            LOG( SIMPLE,
hgs
parents:
diff changeset
   495
            "SATSYSTEMSTATE: CSatSystemState::IsConfirmSatOperationsOn \
hgs
parents:
diff changeset
   496
            1 == confirmSatOperations" )
hgs
parents:
diff changeset
   497
            result = ETrue;
hgs
parents:
diff changeset
   498
            }
hgs
parents:
diff changeset
   499
        }
hgs
parents:
diff changeset
   500
    
hgs
parents:
diff changeset
   501
    LOG2( SIMPLE, "SATSYSTEMSTATE: CSatSystemState::IsConfirmSatOperationsOn \
hgs
parents:
diff changeset
   502
        exiting with value: %d", result )
hgs
parents:
diff changeset
   503
    return result;
hgs
parents:
diff changeset
   504
    }
hgs
parents:
diff changeset
   505
hgs
parents:
diff changeset
   506
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
   507
// CSatSystemState::DisplayTextLanguage
hgs
parents:
diff changeset
   508
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
   509
//
hgs
parents:
diff changeset
   510
TBool CSatSystemState::DisplayTextLanguage()
hgs
parents:
diff changeset
   511
    {
hgs
parents:
diff changeset
   512
    LOG( SIMPLE,
hgs
parents:
diff changeset
   513
        "SATSYSTEMSTATE: CSatSystemState::DisplayTextLanguage calling" )
hgs
parents:
diff changeset
   514
    TInt selLanguage( 0 );
hgs
parents:
diff changeset
   515
    CRepository* centRep( NULL );
hgs
parents:
diff changeset
   516
hgs
parents:
diff changeset
   517
    // Create instance to CentRep
hgs
parents:
diff changeset
   518
    TRAPD( err, centRep = CRepository::NewL( KCRUidCommonEngineKeys ) );
hgs
parents:
diff changeset
   519
    LOG2( SIMPLE, "SATSYSTEMSTATE:   CentRep failed: %i", err )
hgs
parents:
diff changeset
   520
    if ( ( KErrNone == err ) && centRep )
hgs
parents:
diff changeset
   521
        {
hgs
parents:
diff changeset
   522
        // Get the needed information from CentRep
hgs
parents:
diff changeset
   523
        centRep->Get( KGSDisplayTxtLang, selLanguage );
hgs
parents:
diff changeset
   524
hgs
parents:
diff changeset
   525
        // Delete CentRep
hgs
parents:
diff changeset
   526
        delete centRep;
hgs
parents:
diff changeset
   527
        }
hgs
parents:
diff changeset
   528
    
hgs
parents:
diff changeset
   529
    LOG2( SIMPLE, "SATSYSTEMSTATE: CSatSystemState::DisplayTextLanguage \
hgs
parents:
diff changeset
   530
        exiting with value: %d", selLanguage )
hgs
parents:
diff changeset
   531
    return selLanguage;
hgs
parents:
diff changeset
   532
    }
hgs
parents:
diff changeset
   533
hgs
parents:
diff changeset
   534
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
   535
// Checks is BT SAP active
hgs
parents:
diff changeset
   536
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
   537
//
hgs
parents:
diff changeset
   538
TBool CSatSystemState::IsBtSapActive()
hgs
parents:
diff changeset
   539
    {
hgs
parents:
diff changeset
   540
    LOG( SIMPLE,
hgs
parents:
diff changeset
   541
        "SATSYSTEMSTATE: CSatSystemState::IsBtSapActive calling" )
hgs
parents:
diff changeset
   542
    TInt sapActive( EBTSapNotConnected );
hgs
parents:
diff changeset
   543
hgs
parents:
diff changeset
   544
    // Get the backup state from P&S
hgs
parents:
diff changeset
   545
    const TInt errCode( RProperty::Get(
hgs
parents:
diff changeset
   546
        KPSUidBluetoothSapConnectionState,
hgs
parents:
diff changeset
   547
        KBTSapConnectionState,
hgs
parents:
diff changeset
   548
        sapActive ) );
hgs
parents:
diff changeset
   549
hgs
parents:
diff changeset
   550
    LOG2(
hgs
parents:
diff changeset
   551
        SIMPLE,
hgs
parents:
diff changeset
   552
        "SATSYSTEMSTATE:   RProperty::Get returned value: %i", errCode )
hgs
parents:
diff changeset
   553
hgs
parents:
diff changeset
   554
    TBool result( ( ( EBTSapConnecting == sapActive ) ||
hgs
parents:
diff changeset
   555
                    ( EBTSapConnected == sapActive ) ) &&
hgs
parents:
diff changeset
   556
                    ( KErrNone == errCode ) );
hgs
parents:
diff changeset
   557
hgs
parents:
diff changeset
   558
    LOG2(
hgs
parents:
diff changeset
   559
        SIMPLE,
hgs
parents:
diff changeset
   560
        "SATSYSTEMSTATE: CSatSystemState::IsBtSapActive exiting with value: %i",
hgs
parents:
diff changeset
   561
        result )
hgs
parents:
diff changeset
   562
    return result;
hgs
parents:
diff changeset
   563
    }
hgs
parents:
diff changeset
   564
hgs
parents:
diff changeset
   565
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
   566
// Reads current SMS Center number.
hgs
parents:
diff changeset
   567
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
   568
//
hgs
parents:
diff changeset
   569
void CSatSystemState::ReadCurrentSMSCL( TDes& aAddress )
hgs
parents:
diff changeset
   570
    {
hgs
parents:
diff changeset
   571
    LOG( SIMPLE, "SATSYSTEMSTATE: CSatSystemState::ReadCurrentSMSCL calling" )
hgs
parents:
diff changeset
   572
hgs
parents:
diff changeset
   573
    aAddress = KNullDesC;
hgs
parents:
diff changeset
   574
    TInt status( KErrNone );
hgs
parents:
diff changeset
   575
hgs
parents:
diff changeset
   576
    // Open message server connection.
hgs
parents:
diff changeset
   577
    CMsvSession* msvSession = CMsvSession::OpenSyncL( *this );
hgs
parents:
diff changeset
   578
    CleanupStack::PushL( msvSession );
hgs
parents:
diff changeset
   579
hgs
parents:
diff changeset
   580
    CClientMtmRegistry* clientRegistry =
hgs
parents:
diff changeset
   581
        CClientMtmRegistry::NewL( *msvSession );
hgs
parents:
diff changeset
   582
hgs
parents:
diff changeset
   583
    CleanupStack::PushL( clientRegistry );
hgs
parents:
diff changeset
   584
hgs
parents:
diff changeset
   585
    // Get the account.
hgs
parents:
diff changeset
   586
    TInt serviceId( ServiceForMTML( *msvSession, KUidMsgTypeSMS ) );
hgs
parents:
diff changeset
   587
    if ( KMsvUnknownServiceIndexEntryId != serviceId )
hgs
parents:
diff changeset
   588
        {
hgs
parents:
diff changeset
   589
        LOG( SIMPLE, 
hgs
parents:
diff changeset
   590
        "SATSYSTEMSTATE: CSatSystemState::ReadCurrentSMSCL \
hgs
parents:
diff changeset
   591
        KMsvUnknownServiceIndexEntryId != serviceId" )
hgs
parents:
diff changeset
   592
        // Read the setting.
hgs
parents:
diff changeset
   593
        CSmsClientMtm* mtm =
hgs
parents:
diff changeset
   594
            static_cast<CSmsClientMtm*>( clientRegistry->NewMtmL( KUidMsgTypeSMS ) );
hgs
parents:
diff changeset
   595
        CleanupStack::PushL( mtm );
hgs
parents:
diff changeset
   596
        mtm->SwitchCurrentEntryL( serviceId );
hgs
parents:
diff changeset
   597
        mtm->LoadMessageL();
hgs
parents:
diff changeset
   598
        // Findout the number.
hgs
parents:
diff changeset
   599
        const CSmsSettings& settings = mtm->ServiceSettings();
hgs
parents:
diff changeset
   600
hgs
parents:
diff changeset
   601
#ifndef __HIDE_MESSAGING_API_V1__
hgs
parents:
diff changeset
   602
        if ( settings.NumSCAddresses() != 0 )
hgs
parents:
diff changeset
   603
            {
hgs
parents:
diff changeset
   604
            if ( settings.DefaultSC() < settings.NumSCAddresses() )
hgs
parents:
diff changeset
   605
                {
hgs
parents:
diff changeset
   606
                LOG( SIMPLE, 
hgs
parents:
diff changeset
   607
                "SATSYSTEMSTATE: CSatSystemState::ReadCurrentSMSCL \
hgs
parents:
diff changeset
   608
                settings.DefaultSC() < settings.NumSCAddresses()" )
hgs
parents:
diff changeset
   609
                TPtrC addr = settings.SCAddress( settings.DefaultSC() ).Address();
hgs
parents:
diff changeset
   610
                aAddress = addr;
hgs
parents:
diff changeset
   611
                }
hgs
parents:
diff changeset
   612
            else
hgs
parents:
diff changeset
   613
                {
hgs
parents:
diff changeset
   614
                LOG( SIMPLE, 
hgs
parents:
diff changeset
   615
                "SATSYSTEMSTATE: CSatSystemState::ReadCurrentSMSCL \
hgs
parents:
diff changeset
   616
                others" )
hgs
parents:
diff changeset
   617
                status = KErrOverflow;
hgs
parents:
diff changeset
   618
                }
hgs
parents:
diff changeset
   619
            }
hgs
parents:
diff changeset
   620
#else
hgs
parents:
diff changeset
   621
hgs
parents:
diff changeset
   622
        if ( settings.ServiceCenterCount() != 0 )
hgs
parents:
diff changeset
   623
            {
hgs
parents:
diff changeset
   624
            LOG( SIMPLE, 
hgs
parents:
diff changeset
   625
            "SATSYSTEMSTATE: CSatSystemState::ReadCurrentSMSCL \
hgs
parents:
diff changeset
   626
            settings.ServiceCenterCount() != 0" )
hgs
parents:
diff changeset
   627
            if ( settings.DefaultServiceCenter() < settings.ServiceCenterCount() )
hgs
parents:
diff changeset
   628
                {
hgs
parents:
diff changeset
   629
                LOG( SIMPLE, 
hgs
parents:
diff changeset
   630
                "SATSYSTEMSTATE: CSatSystemState::ReadCurrentSMSCL \
hgs
parents:
diff changeset
   631
                settings.DefaultServiceCenter() < \
hgs
parents:
diff changeset
   632
                settings.ServiceCenterCount()" )
hgs
parents:
diff changeset
   633
                TPtrC addr = settings.GetServiceCenter(
hgs
parents:
diff changeset
   634
                    settings.DefaultServiceCenter() ).Address();
hgs
parents:
diff changeset
   635
                aAddress = addr;
hgs
parents:
diff changeset
   636
                }
hgs
parents:
diff changeset
   637
            else
hgs
parents:
diff changeset
   638
                {
hgs
parents:
diff changeset
   639
                status = KErrOverflow;
hgs
parents:
diff changeset
   640
                }
hgs
parents:
diff changeset
   641
            }
hgs
parents:
diff changeset
   642
hgs
parents:
diff changeset
   643
#endif
hgs
parents:
diff changeset
   644
        else
hgs
parents:
diff changeset
   645
            {
hgs
parents:
diff changeset
   646
            LOG( SIMPLE, 
hgs
parents:
diff changeset
   647
            "SATSYSTEMSTATE: CSatSystemState::ReadCurrentSMSCL \
hgs
parents:
diff changeset
   648
            settings.ServiceCenterCount() == 0" )
hgs
parents:
diff changeset
   649
            status = KErrNotFound;
hgs
parents:
diff changeset
   650
            }
hgs
parents:
diff changeset
   651
hgs
parents:
diff changeset
   652
        // Cleanup.
hgs
parents:
diff changeset
   653
        CleanupStack::PopAndDestroy( mtm );
hgs
parents:
diff changeset
   654
        }
hgs
parents:
diff changeset
   655
    else
hgs
parents:
diff changeset
   656
        {
hgs
parents:
diff changeset
   657
        LOG( SIMPLE, 
hgs
parents:
diff changeset
   658
        "SATSYSTEMSTATE: CSatSystemState::ReadCurrentSMSCL \
hgs
parents:
diff changeset
   659
        KMsvUnknownServiceIndexEntryId == serviceId" )
hgs
parents:
diff changeset
   660
        status = KErrNotFound;
hgs
parents:
diff changeset
   661
        }
hgs
parents:
diff changeset
   662
hgs
parents:
diff changeset
   663
    CleanupStack::PopAndDestroy( clientRegistry );
hgs
parents:
diff changeset
   664
    CleanupStack::PopAndDestroy( msvSession );
hgs
parents:
diff changeset
   665
hgs
parents:
diff changeset
   666
    if ( KErrNone != status )
hgs
parents:
diff changeset
   667
        {
hgs
parents:
diff changeset
   668
        LOG2( NORMAL,
hgs
parents:
diff changeset
   669
            "SATSYSTEMSTATE: CSatSystemState::ReadCurrentSMSCL leave: %d",
hgs
parents:
diff changeset
   670
            status )
hgs
parents:
diff changeset
   671
        User::Leave( status );
hgs
parents:
diff changeset
   672
        }
hgs
parents:
diff changeset
   673
hgs
parents:
diff changeset
   674
    LOG( NORMAL, "SATSYSTEMSTATE: CSatSystemState::ReadCurrentSMSCL exiting" )
hgs
parents:
diff changeset
   675
    }
hgs
parents:
diff changeset
   676
hgs
parents:
diff changeset
   677
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
   678
// Specifies an entry in the Message Server index.
hgs
parents:
diff changeset
   679
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
   680
//
hgs
parents:
diff changeset
   681
TMsvId CSatSystemState::ServiceForMTML(
hgs
parents:
diff changeset
   682
    CMsvSession& aSession,
hgs
parents:
diff changeset
   683
    const TUid& aMtm ) const
hgs
parents:
diff changeset
   684
    {
hgs
parents:
diff changeset
   685
    LOG( SIMPLE, "SATSYSTEMSTATE: CSatSystemState::ServiceForMTML calling" )
hgs
parents:
diff changeset
   686
hgs
parents:
diff changeset
   687
    CMsvEntry* entry = aSession.GetEntryL( KMsvRootIndexEntryIdValue );
hgs
parents:
diff changeset
   688
    CleanupStack::PushL( entry );
hgs
parents:
diff changeset
   689
    TMsvId serviceId = KMsvUnknownServiceIndexEntryId;
hgs
parents:
diff changeset
   690
    LOG2( SIMPLE, 
hgs
parents:
diff changeset
   691
    "SATSYSTEMSTATE: CSatSystemState::ServiceForMTML count: %d",
hgs
parents:
diff changeset
   692
     entry->Count() )
hgs
parents:
diff changeset
   693
    // Check are there any entries
hgs
parents:
diff changeset
   694
    if ( entry->Count() != 0 )
hgs
parents:
diff changeset
   695
        {        
hgs
parents:
diff changeset
   696
        entry->SetSortTypeL(
hgs
parents:
diff changeset
   697
            TMsvSelectionOrdering( KMsvGroupByType | KMsvGroupByStandardFolders,
hgs
parents:
diff changeset
   698
            EMsvSortByDetailsReverse,
hgs
parents:
diff changeset
   699
            ETrue ) );
hgs
parents:
diff changeset
   700
hgs
parents:
diff changeset
   701
        const TMsvEntry* tentry;
hgs
parents:
diff changeset
   702
        for ( TInt cc( entry->Count() ); --cc >= 0; )
hgs
parents:
diff changeset
   703
            {
hgs
parents:
diff changeset
   704
            tentry = &( *entry )[cc];
hgs
parents:
diff changeset
   705
            if ( tentry->iMtm == aMtm )
hgs
parents:
diff changeset
   706
                {
hgs
parents:
diff changeset
   707
                LOG( SIMPLE, 
hgs
parents:
diff changeset
   708
                "SATSYSTEMSTATE: CSatSystemState::ServiceForMTML \
hgs
parents:
diff changeset
   709
                tentry->iMtm == aMtm" )
hgs
parents:
diff changeset
   710
                if ( ( tentry->iType.iUid == KUidMsvServiceEntryValue ) &&
hgs
parents:
diff changeset
   711
                     ( tentry->Id() != KMsvLocalServiceIndexEntryIdValue ) )
hgs
parents:
diff changeset
   712
                    {
hgs
parents:
diff changeset
   713
                    LOG( SIMPLE, 
hgs
parents:
diff changeset
   714
                    "SATSYSTEMSTATE: CSatSystemState::ServiceForMTML \
hgs
parents:
diff changeset
   715
                    exit loop" )
hgs
parents:
diff changeset
   716
                    serviceId = tentry->Id();
hgs
parents:
diff changeset
   717
                    cc = 0; // To exit for-loop. Replaces break.
hgs
parents:
diff changeset
   718
                    }
hgs
parents:
diff changeset
   719
                }
hgs
parents:
diff changeset
   720
            }
hgs
parents:
diff changeset
   721
        }
hgs
parents:
diff changeset
   722
hgs
parents:
diff changeset
   723
    CleanupStack::PopAndDestroy( entry );
hgs
parents:
diff changeset
   724
hgs
parents:
diff changeset
   725
    LOG2( SIMPLE,
hgs
parents:
diff changeset
   726
    "SATSYSTEMSTATE: CSatSystemState::ServiceForMTML exiting with value: %d",
hgs
parents:
diff changeset
   727
    serviceId )
hgs
parents:
diff changeset
   728
    return serviceId;
hgs
parents:
diff changeset
   729
    }
hgs
parents:
diff changeset
   730
hgs
parents:
diff changeset
   731
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
   732
// Method is used when the information of phones warnings and game tone
hgs
parents:
diff changeset
   733
// mode is needed.
hgs
parents:
diff changeset
   734
// Returns true if silent mode is on and false otherwise.
hgs
parents:
diff changeset
   735
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
   736
//
hgs
parents:
diff changeset
   737
TBool CSatSystemState::IsWarningAndGameTonesOn()
hgs
parents:
diff changeset
   738
    {
hgs
parents:
diff changeset
   739
    LOG( SIMPLE, "SATSYSTEMSTATE: \
hgs
parents:
diff changeset
   740
        CSatSystemState::IsWarningAndGameTonesOn calling" )
hgs
parents:
diff changeset
   741
hgs
parents:
diff changeset
   742
    TBool modeOn( ETrue );
hgs
parents:
diff changeset
   743
    CRepository* centRep( NULL );
hgs
parents:
diff changeset
   744
hgs
parents:
diff changeset
   745
    TRAPD( err, centRep = CRepository::NewL( KCRUidProfileEngine ) );
hgs
parents:
diff changeset
   746
    LOG2( SIMPLE, "SATSYSTEMSTATE:   CentRep failed: %i", err )
hgs
parents:
diff changeset
   747
    if ( ( KErrNone == err ) && centRep )
hgs
parents:
diff changeset
   748
        {
hgs
parents:
diff changeset
   749
        // Get the needed information from CentRep
hgs
parents:
diff changeset
   750
        centRep->Get( KProEngActiveWarningTones, modeOn );
hgs
parents:
diff changeset
   751
hgs
parents:
diff changeset
   752
        // Delete CentRep
hgs
parents:
diff changeset
   753
        delete centRep;
hgs
parents:
diff changeset
   754
hgs
parents:
diff changeset
   755
        }
hgs
parents:
diff changeset
   756
   
hgs
parents:
diff changeset
   757
    LOG2(
hgs
parents:
diff changeset
   758
        SIMPLE,
hgs
parents:
diff changeset
   759
        "SATSYSTEMSTATE: \
hgs
parents:
diff changeset
   760
        CSatSystemState::IsWarningAndGameTonesOn exiting with value: %d",
hgs
parents:
diff changeset
   761
        modeOn )
hgs
parents:
diff changeset
   762
hgs
parents:
diff changeset
   763
    return modeOn;
hgs
parents:
diff changeset
   764
    }