gssettingsuis/Gs/GSNetworkPlugin/Inc/GSNetworkPlugin.h
author hgs
Thu, 04 Nov 2010 13:38:47 +0800
changeset 68 13e71d907dc3
permissions -rw-r--r--
201044
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
68
hgs
parents:
diff changeset
     1
/*
hgs
parents:
diff changeset
     2
* Copyright (c) 2006-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:  View for Network settings.
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
#ifndef GSNETWORKPLUGIN_H
hgs
parents:
diff changeset
    20
#define GSNETWORKPLUGIN_H
hgs
parents:
diff changeset
    21
hgs
parents:
diff changeset
    22
// INCLUDES
hgs
parents:
diff changeset
    23
#include <aknsettingpage.h>
hgs
parents:
diff changeset
    24
#include <ConeResLoader.h>
hgs
parents:
diff changeset
    25
#include <gsplugininterface.h>
hgs
parents:
diff changeset
    26
#include <gsfwviewuids.h>
hgs
parents:
diff changeset
    27
#include <gsbaseview.h>
hgs
parents:
diff changeset
    28
#include <MSSSettingsRefreshObserver.h>
hgs
parents:
diff changeset
    29
#include <MPsetNetworkInfoObs.h>//for base class
hgs
parents:
diff changeset
    30
#include <etelmm.h>
hgs
parents:
diff changeset
    31
#include <msatrefreshobserver.h>
hgs
parents:
diff changeset
    32
//For listening BT SAP events
hgs
parents:
diff changeset
    33
#include <gspubsubslistener.h>
hgs
parents:
diff changeset
    34
#include <mgssettingpsobserver.h>
hgs
parents:
diff changeset
    35
#include <eikmenup.h>
hgs
parents:
diff changeset
    36
hgs
parents:
diff changeset
    37
#include "GSPhoneSettingConstants.h"
hgs
parents:
diff changeset
    38
#include "GSNetworkPluginContainer.h"
hgs
parents:
diff changeset
    39
#include "GsNetworkPlugin.hrh"
hgs
parents:
diff changeset
    40
#include "MGsFWMSKLabelObserver.h"
hgs
parents:
diff changeset
    41
hgs
parents:
diff changeset
    42
#include <etelmm.h>
hgs
parents:
diff changeset
    43
#include <e32base.h>
hgs
parents:
diff changeset
    44
hgs
parents:
diff changeset
    45
#include <NWHandlingEngine.h>
hgs
parents:
diff changeset
    46
hgs
parents:
diff changeset
    47
// CONSTANTS
hgs
parents:
diff changeset
    48
const TUid KGSNetworkPluginUid = { 0x102824A8 };
hgs
parents:
diff changeset
    49
// Resource file name
hgs
parents:
diff changeset
    50
_LIT( KGSNetworkPluginResourceFileName, "z:gsnetworkpluginrsc.rsc" );
hgs
parents:
diff changeset
    51
// Icon file name
hgs
parents:
diff changeset
    52
_LIT( KGSNetworkPluginIconDirAndName, "z:GSNetworkPlugin.mbm");
hgs
parents:
diff changeset
    53
hgs
parents:
diff changeset
    54
// MACROS
hgs
parents:
diff changeset
    55
hgs
parents:
diff changeset
    56
// DATA TYPES
hgs
parents:
diff changeset
    57
hgs
parents:
diff changeset
    58
// FUNCTION PROTOTYPES
hgs
parents:
diff changeset
    59
hgs
parents:
diff changeset
    60
// FORWARD CLASS DECLARATION
hgs
parents:
diff changeset
    61
class CAknViewAppUi;
hgs
parents:
diff changeset
    62
class CGSNetworkPluginContainer;
hgs
parents:
diff changeset
    63
class CPsetNetwork;
hgs
parents:
diff changeset
    64
class CAknWaitDialog;
hgs
parents:
diff changeset
    65
class CPsetContainer;
hgs
parents:
diff changeset
    66
class CAknRadioButtonSettingPage;
hgs
parents:
diff changeset
    67
class CAknPopupList;
hgs
parents:
diff changeset
    68
class MSSSettingsRefreshObserver;
hgs
parents:
diff changeset
    69
class CPSetRefreshHandler;
hgs
parents:
diff changeset
    70
hgs
parents:
diff changeset
    71
class CNWSession;
hgs
parents:
diff changeset
    72
class TNWInfo;
hgs
parents:
diff changeset
    73
class CGSParentPlugin;
hgs
parents:
diff changeset
    74
hgs
parents:
diff changeset
    75
// CLASS DECLARATION
hgs
parents:
diff changeset
    76
/**
hgs
parents:
diff changeset
    77
*  CGSNetworkPlugin view class
hgs
parents:
diff changeset
    78
*
hgs
parents:
diff changeset
    79
*  Plugin implementation for Network settings
hgs
parents:
diff changeset
    80
*  @lib GSNetworkPlugin.lib
hgs
parents:
diff changeset
    81
*  @since Series 60_3.1
hgs
parents:
diff changeset
    82
*/
hgs
parents:
diff changeset
    83
#ifdef FF_POWER_SAVE
hgs
parents:
diff changeset
    84
    class CGSNetworkPluginAO;
hgs
parents:
diff changeset
    85
#endif // FF_POWER_SAVE
hgs
parents:
diff changeset
    86
hgs
parents:
diff changeset
    87
class CGSNetworkPlugin : public CGSBaseView,
hgs
parents:
diff changeset
    88
                         public MPsetNetworkInfoObserver,
hgs
parents:
diff changeset
    89
                         public MSSSettingsRefreshObserver,
hgs
parents:
diff changeset
    90
                         public MGsFWMSKObserver,
hgs
parents:
diff changeset
    91
                         public MGSSettingPSObserver,
hgs
parents:
diff changeset
    92
                         public MNWMessageObserver
hgs
parents:
diff changeset
    93
    {
hgs
parents:
diff changeset
    94
    public: // Constructors and destructor
hgs
parents:
diff changeset
    95
hgs
parents:
diff changeset
    96
        /** C++ Constructor */
hgs
parents:
diff changeset
    97
        CGSNetworkPlugin();
hgs
parents:
diff changeset
    98
hgs
parents:
diff changeset
    99
        /**
hgs
parents:
diff changeset
   100
        * Symbian OS two-phased constructor
hgs
parents:
diff changeset
   101
        * @return GS connection view.
hgs
parents:
diff changeset
   102
        */
hgs
parents:
diff changeset
   103
        static CGSNetworkPlugin* NewL( TAny* aInitParams );
hgs
parents:
diff changeset
   104
hgs
parents:
diff changeset
   105
        static CGSNetworkPlugin* NewLC();
hgs
parents:
diff changeset
   106
hgs
parents:
diff changeset
   107
        /**
hgs
parents:
diff changeset
   108
        * Destructor.
hgs
parents:
diff changeset
   109
        */
hgs
parents:
diff changeset
   110
        ~CGSNetworkPlugin();
hgs
parents:
diff changeset
   111
hgs
parents:
diff changeset
   112
    public: // from base classes
hgs
parents:
diff changeset
   113
hgs
parents:
diff changeset
   114
        /**
hgs
parents:
diff changeset
   115
        * Returns view id.
hgs
parents:
diff changeset
   116
        * @return TUid
hgs
parents:
diff changeset
   117
        */
hgs
parents:
diff changeset
   118
        TUid Id() const;
hgs
parents:
diff changeset
   119
hgs
parents:
diff changeset
   120
        /**
hgs
parents:
diff changeset
   121
        * Handles commands.
hgs
parents:
diff changeset
   122
        * @param aCommand Command to be handled.
hgs
parents:
diff changeset
   123
        *
hgs
parents:
diff changeset
   124
        */
hgs
parents:
diff changeset
   125
        void HandleCommandL( TInt aCommand );
hgs
parents:
diff changeset
   126
hgs
parents:
diff changeset
   127
        /**
hgs
parents:
diff changeset
   128
        * From MEikCommandObserver, handles the commands.
hgs
parents:
diff changeset
   129
        *
hgs
parents:
diff changeset
   130
        * @param aCommand identifies the command given.
hgs
parents:
diff changeset
   131
        */
hgs
parents:
diff changeset
   132
        void ProcessCommandL( TInt aCommand );
hgs
parents:
diff changeset
   133
hgs
parents:
diff changeset
   134
    public: // From CGSPluginInterface
hgs
parents:
diff changeset
   135
hgs
parents:
diff changeset
   136
        /**
hgs
parents:
diff changeset
   137
        * @see CGSPluginInterface header file.
hgs
parents:
diff changeset
   138
        */
hgs
parents:
diff changeset
   139
        void GetCaptionL( TDes& aCaption ) const;
hgs
parents:
diff changeset
   140
hgs
parents:
diff changeset
   141
        /**
hgs
parents:
diff changeset
   142
         * @see CGSPluginInterface header file.
hgs
parents:
diff changeset
   143
         */
hgs
parents:
diff changeset
   144
         void GetValue( const TGSPluginValueKeys aKey,
hgs
parents:
diff changeset
   145
                        TDes& aValue );
hgs
parents:
diff changeset
   146
hgs
parents:
diff changeset
   147
        /**
hgs
parents:
diff changeset
   148
        * @see CGSPluginInterface header file.
hgs
parents:
diff changeset
   149
        */
hgs
parents:
diff changeset
   150
        TInt PluginProviderCategory() const;
hgs
parents:
diff changeset
   151
hgs
parents:
diff changeset
   152
        /**
hgs
parents:
diff changeset
   153
        * See base class.
hgs
parents:
diff changeset
   154
        */
hgs
parents:
diff changeset
   155
        CGulIcon* CreateIconL( const TUid aIconType );
hgs
parents:
diff changeset
   156
hgs
parents:
diff changeset
   157
        /**
hgs
parents:
diff changeset
   158
        * @see CGSPluginInterface header file.
hgs
parents:
diff changeset
   159
        */
hgs
parents:
diff changeset
   160
        TBool Visible() const;
hgs
parents:
diff changeset
   161
hgs
parents:
diff changeset
   162
    public: //new
hgs
parents:
diff changeset
   163
hgs
parents:
diff changeset
   164
        /**
hgs
parents:
diff changeset
   165
        * Get CGSNetworkPlugin's ccontainer.
hgs
parents:
diff changeset
   166
        */
hgs
parents:
diff changeset
   167
        CGSNetworkPluginContainer* Container();
hgs
parents:
diff changeset
   168
hgs
parents:
diff changeset
   169
        /**
hgs
parents:
diff changeset
   170
        * Checks if the MSK label needs to be adjusted.
hgs
parents:
diff changeset
   171
        */
hgs
parents:
diff changeset
   172
        void CheckMiddleSoftkeyLabelL();
hgs
parents:
diff changeset
   173
hgs
parents:
diff changeset
   174
                /**
hgs
parents:
diff changeset
   175
        * Remove command and label from MSK.
hgs
parents:
diff changeset
   176
        */
hgs
parents:
diff changeset
   177
        void RemoveCommandFromMSK( const TBool flag);
hgs
parents:
diff changeset
   178
hgs
parents:
diff changeset
   179
        /**
hgs
parents:
diff changeset
   180
        * Adds given resource text as MSK to CBA.
hgs
parents:
diff changeset
   181
        *
hgs
parents:
diff changeset
   182
        * @param aResourceId middle softkey label.
hgs
parents:
diff changeset
   183
        * @param aCommandId command that should be performed when MSK
hgs
parents:
diff changeset
   184
        *        is pressed.
hgs
parents:
diff changeset
   185
        * @since S60 v3.1
hgs
parents:
diff changeset
   186
        */
hgs
parents:
diff changeset
   187
        void SetMiddleSoftKeyLabelL( const TInt aResourceId,const TInt aCommandId );
hgs
parents:
diff changeset
   188
hgs
parents:
diff changeset
   189
        /**
hgs
parents:
diff changeset
   190
        * Shows a requested note.
hgs
parents:
diff changeset
   191
        * @param aResourceId reource ID for note text
hgs
parents:
diff changeset
   192
        * @param aType type of note
hgs
parents:
diff changeset
   193
        */
hgs
parents:
diff changeset
   194
        void ShowNoteL( TInt aResourceId, TInt aType );
hgs
parents:
diff changeset
   195
hgs
parents:
diff changeset
   196
    public: // from base class MPsetNetworkInfoObserver
hgs
parents:
diff changeset
   197
hgs
parents:
diff changeset
   198
        /**
hgs
parents:
diff changeset
   199
        * @@see MPsetNetworkInfoObserver::HandleNetworkInfoReceivedL
hgs
parents:
diff changeset
   200
        */
hgs
parents:
diff changeset
   201
        void HandleNetworkInfoReceivedL(
hgs
parents:
diff changeset
   202
            const CNetworkInfoArray* aInfoArray, const TInt aResult );
hgs
parents:
diff changeset
   203
hgs
parents:
diff changeset
   204
        /**
hgs
parents:
diff changeset
   205
        * @@see MPsetNetworkInfoObserver::HandleCurrentNetworkInfoL - not used
hgs
parents:
diff changeset
   206
        */
hgs
parents:
diff changeset
   207
        inline void HandleCurrentNetworkInfoL(
hgs
parents:
diff changeset
   208
            const MPsetNetworkSelect::TCurrentNetworkInfo& /* aCurrentInfo */,
hgs
parents:
diff changeset
   209
            const TInt /* aResult */ ) {}
hgs
parents:
diff changeset
   210
hgs
parents:
diff changeset
   211
        /**
hgs
parents:
diff changeset
   212
        * DEPRECATED in MPsetNetworkInfoObserver.
hgs
parents:
diff changeset
   213
        *
hgs
parents:
diff changeset
   214
        * @@see MPsetNetworkInfoObserver::HandleNetworkChangedL
hgs
parents:
diff changeset
   215
        */
hgs
parents:
diff changeset
   216
        void HandleNetworkChangedL(
hgs
parents:
diff changeset
   217
            const MPsetNetworkSelect::TNetworkInfo& aCurrentInfo,
hgs
parents:
diff changeset
   218
            const MPsetNetworkSelect::TCurrentNetworkStatus aStatus,
hgs
parents:
diff changeset
   219
            const TInt aResult );
hgs
parents:
diff changeset
   220
hgs
parents:
diff changeset
   221
        /**
hgs
parents:
diff changeset
   222
        * @@see MPsetNetworkInfoObserver::HandleNetworkChangedL
hgs
parents:
diff changeset
   223
        */
hgs
parents:
diff changeset
   224
        void HandleNetworkChangedL(
hgs
parents:
diff changeset
   225
            const MPsetNetworkSelect::TNetworkInfo& aCurrentInfo,
hgs
parents:
diff changeset
   226
            const RMobilePhone::TMobilePhoneRegistrationStatus& aStatus,
hgs
parents:
diff changeset
   227
            const TInt aResult );
hgs
parents:
diff changeset
   228
hgs
parents:
diff changeset
   229
hgs
parents:
diff changeset
   230
        /**
hgs
parents:
diff changeset
   231
        * @@see MPsetNetworkInfoObserver::HandleSearchingNetworksL
hgs
parents:
diff changeset
   232
        */
hgs
parents:
diff changeset
   233
        void HandleSearchingNetworksL( TServiceRequest aRequest );
hgs
parents:
diff changeset
   234
hgs
parents:
diff changeset
   235
        /**
hgs
parents:
diff changeset
   236
        * @@see MPsetNetworkInfoObserver::HandleRequestingSelectedNetworkL
hgs
parents:
diff changeset
   237
        */
hgs
parents:
diff changeset
   238
        void HandleRequestingSelectedNetworkL( TBool aOngoing );
hgs
parents:
diff changeset
   239
hgs
parents:
diff changeset
   240
        /**
hgs
parents:
diff changeset
   241
        * @@see MPsetNetworkInfoObserver::HandleCallActivatedL
hgs
parents:
diff changeset
   242
        */
hgs
parents:
diff changeset
   243
        void HandleCallActivatedL();
hgs
parents:
diff changeset
   244
hgs
parents:
diff changeset
   245
        /**
hgs
parents:
diff changeset
   246
        * @@see MPsetNetworkInfoObserver::HandleNetworkErrorL
hgs
parents:
diff changeset
   247
        */
hgs
parents:
diff changeset
   248
        void HandleNetworkErrorL( const TServiceRequest aRequest,
hgs
parents:
diff changeset
   249
            const TInt aError );
hgs
parents:
diff changeset
   250
hgs
parents:
diff changeset
   251
    public: //from base class MSSSettingsRefreshObserver
hgs
parents:
diff changeset
   252
        /**
hgs
parents:
diff changeset
   253
        * @@see MSSSettingsRefreshObserver::AllowRefresh
hgs
parents:
diff changeset
   254
        */
hgs
parents:
diff changeset
   255
        TBool AllowRefresh(
hgs
parents:
diff changeset
   256
            const TSatRefreshType aType,
hgs
parents:
diff changeset
   257
            const TSatElementaryFiles aFiles );
hgs
parents:
diff changeset
   258
hgs
parents:
diff changeset
   259
        /**
hgs
parents:
diff changeset
   260
        * @@see MSSSettingsRefreshObserver::Refresh
hgs
parents:
diff changeset
   261
        */
hgs
parents:
diff changeset
   262
        void Refresh(
hgs
parents:
diff changeset
   263
            const TSatRefreshType aType,
hgs
parents:
diff changeset
   264
            const TSatElementaryFiles aFiles );
hgs
parents:
diff changeset
   265
hgs
parents:
diff changeset
   266
    public: // From MNWMessageObserver
hgs
parents:
diff changeset
   267
hgs
parents:
diff changeset
   268
        /**
hgs
parents:
diff changeset
   269
        * Offers message interface to the client
hgs
parents:
diff changeset
   270
        * @param aMessage
hgs
parents:
diff changeset
   271
        * This methods execute time must be short,since code
hgs
parents:
diff changeset
   272
        * starting to run from RunL.
hgs
parents:
diff changeset
   273
        *
hgs
parents:
diff changeset
   274
        * Function updates data into iNWInfo.
hgs
parents:
diff changeset
   275
        */
hgs
parents:
diff changeset
   276
        void HandleNetworkMessage( const TNWMessages aMessage );
hgs
parents:
diff changeset
   277
hgs
parents:
diff changeset
   278
        /**
hgs
parents:
diff changeset
   279
        * Offers error message interface to the client
hgs
parents:
diff changeset
   280
        * @param aOperation operation which failed
hgs
parents:
diff changeset
   281
        * @param aErrorCode returned Symbian OS error code
hgs
parents:
diff changeset
   282
        *
hgs
parents:
diff changeset
   283
        */
hgs
parents:
diff changeset
   284
        void HandleNetworkError( const TNWOperation aOperation, TInt aErrorCode );
hgs
parents:
diff changeset
   285
hgs
parents:
diff changeset
   286
        /**
hgs
parents:
diff changeset
   287
        * Updates network setting page in case it is visible. This is needed in
hgs
parents:
diff changeset
   288
        * case network mode is change while setting page is oppen.
hgs
parents:
diff changeset
   289
        */
hgs
parents:
diff changeset
   290
        void UpdateNetworkSettingPageL();
hgs
parents:
diff changeset
   291
    public:
hgs
parents:
diff changeset
   292
#ifdef FF_POWER_SAVE
hgs
parents:
diff changeset
   293
        /*
hgs
parents:
diff changeset
   294
         * Update network plugin view when PSM mode has changed
hgs
parents:
diff changeset
   295
         */
hgs
parents:
diff changeset
   296
        void UpdateOnPsmChangedL();
hgs
parents:
diff changeset
   297
#endif
hgs
parents:
diff changeset
   298
        
hgs
parents:
diff changeset
   299
    protected: // From CAknView
hgs
parents:
diff changeset
   300
        void DoActivateL( const TVwsViewId& aPrevViewId,
hgs
parents:
diff changeset
   301
                          TUid aCustomMessageId,
hgs
parents:
diff changeset
   302
                          const TDesC8& aCustomMessage );
hgs
parents:
diff changeset
   303
        void DoDeactivate();
hgs
parents:
diff changeset
   304
hgs
parents:
diff changeset
   305
    protected: // From MEikMenuObserver
hgs
parents:
diff changeset
   306
hgs
parents:
diff changeset
   307
        void DynInitMenuPaneL( TInt aResourceId, CEikMenuPane* aMenuPane );
hgs
parents:
diff changeset
   308
hgs
parents:
diff changeset
   309
    protected:
hgs
parents:
diff changeset
   310
hgs
parents:
diff changeset
   311
        /**
hgs
parents:
diff changeset
   312
        * C++ default constructor.
hgs
parents:
diff changeset
   313
        */
hgs
parents:
diff changeset
   314
/*        CGSNetworkPlugin();*/
hgs
parents:
diff changeset
   315
hgs
parents:
diff changeset
   316
        /**
hgs
parents:
diff changeset
   317
        * Symbian OS default constructor.
hgs
parents:
diff changeset
   318
        *
hgs
parents:
diff changeset
   319
        */
hgs
parents:
diff changeset
   320
        void ConstructL();
hgs
parents:
diff changeset
   321
hgs
parents:
diff changeset
   322
        void HandleClientRectChange();
hgs
parents:
diff changeset
   323
hgs
parents:
diff changeset
   324
    private: // from CGSBaseView
hgs
parents:
diff changeset
   325
hgs
parents:
diff changeset
   326
        void NewContainerL();
hgs
parents:
diff changeset
   327
        void HandleListBoxSelectionL();
hgs
parents:
diff changeset
   328
hgs
parents:
diff changeset
   329
    private: // From MGSSettingPSObserver
hgs
parents:
diff changeset
   330
        /**
hgs
parents:
diff changeset
   331
        * Callback from MGSSettingPSObserver
hgs
parents:
diff changeset
   332
        */
hgs
parents:
diff changeset
   333
        void HandleNotifyPSL( const TUid aUid, const TInt& aKey,
hgs
parents:
diff changeset
   334
                              const TRequestStatus& aStatus );
hgs
parents:
diff changeset
   335
hgs
parents:
diff changeset
   336
    private: //new methods
hgs
parents:
diff changeset
   337
hgs
parents:
diff changeset
   338
        /**
hgs
parents:
diff changeset
   339
        * Check if calls are active. Show note if Nw-menu is tried to open.
hgs
parents:
diff changeset
   340
        * @param aItemId list item ID in network view
hgs
parents:
diff changeset
   341
        */
hgs
parents:
diff changeset
   342
        void CheckCallActiveL( TGSNetworkItemIds aItemId );
hgs
parents:
diff changeset
   343
hgs
parents:
diff changeset
   344
        /**
hgs
parents:
diff changeset
   345
        * Provides the network operator list.
hgs
parents:
diff changeset
   346
        */
hgs
parents:
diff changeset
   347
        void NetworkListL();
hgs
parents:
diff changeset
   348
hgs
parents:
diff changeset
   349
        /**
hgs
parents:
diff changeset
   350
        * Displays setting page for highlighted setting.
hgs
parents:
diff changeset
   351
        *
hgs
parents:
diff changeset
   352
        * @param aPage identifies the page that will be displayed.
hgs
parents:
diff changeset
   353
        */
hgs
parents:
diff changeset
   354
        void ShowSettingPageL( TGSNetworkItemIds aPage );
hgs
parents:
diff changeset
   355
hgs
parents:
diff changeset
   356
        /**
hgs
parents:
diff changeset
   357
        * Sets title to a popup list.
hgs
parents:
diff changeset
   358
        * @param aList pointer to list
hgs
parents:
diff changeset
   359
        * @param aTitleID resource ID of the title
hgs
parents:
diff changeset
   360
        */
hgs
parents:
diff changeset
   361
        void SetTitleToPopupL( CAknPopupList& aList, TInt aTitleID );
hgs
parents:
diff changeset
   362
hgs
parents:
diff changeset
   363
        /**
hgs
parents:
diff changeset
   364
        * Adds item to a list.
hgs
parents:
diff changeset
   365
        * @param aList pointer to a list
hgs
parents:
diff changeset
   366
        * @param aItem resource ID of the item to be added
hgs
parents:
diff changeset
   367
        */
hgs
parents:
diff changeset
   368
        void AppendItemL( CDesCArrayFlat& aList, TInt aItem );
hgs
parents:
diff changeset
   369
hgs
parents:
diff changeset
   370
        /**
hgs
parents:
diff changeset
   371
        * Sets title to a settings page.
hgs
parents:
diff changeset
   372
        * @param aDlg setting page
hgs
parents:
diff changeset
   373
        * @param aTitleID resource ID of the title
hgs
parents:
diff changeset
   374
        */
hgs
parents:
diff changeset
   375
        void SetTitleToSettingsL( CAknRadioButtonSettingPage& aDlg,
hgs
parents:
diff changeset
   376
            TInt aTitleID );
hgs
parents:
diff changeset
   377
hgs
parents:
diff changeset
   378
        /**
hgs
parents:
diff changeset
   379
        * Shows a note if GPRS is active, when MCN is turned on.
hgs
parents:
diff changeset
   380
        * @param aCurrentItem value of setting currently
hgs
parents:
diff changeset
   381
        */
hgs
parents:
diff changeset
   382
        void CheckGPRSConnectionL( TInt aCurrentItem );
hgs
parents:
diff changeset
   383
hgs
parents:
diff changeset
   384
        /**
hgs
parents:
diff changeset
   385
        * Switches between shared data and setting page values (0 > 1, 1 > 0).
hgs
parents:
diff changeset
   386
        * @param aValue value to switch
hgs
parents:
diff changeset
   387
        */
hgs
parents:
diff changeset
   388
        void SwitchOnOffValue( TInt& aValue );
hgs
parents:
diff changeset
   389
hgs
parents:
diff changeset
   390
        /**
hgs
parents:
diff changeset
   391
        * Makes a Network/MCN Ss operation.
hgs
parents:
diff changeset
   392
        * @param aIndex currently active list item.
hgs
parents:
diff changeset
   393
        * @param aPage which setting page is open
hgs
parents:
diff changeset
   394
        */
hgs
parents:
diff changeset
   395
        void CreateNetworkSsCallL( TInt aIndex, TGSNetworkItemIds aPage );
hgs
parents:
diff changeset
   396
hgs
parents:
diff changeset
   397
        /**
hgs
parents:
diff changeset
   398
        * Creates a waiting note (member variable).
hgs
parents:
diff changeset
   399
        * @param aDelayOff is the note shown immediately or not
hgs
parents:
diff changeset
   400
        */
hgs
parents:
diff changeset
   401
        void CheckAndCreateDlgL( TBool aDelayOff );
hgs
parents:
diff changeset
   402
hgs
parents:
diff changeset
   403
        /**
hgs
parents:
diff changeset
   404
        * Empties fetched network provider's list.
hgs
parents:
diff changeset
   405
        */
hgs
parents:
diff changeset
   406
        void PurgeNetworkList();
hgs
parents:
diff changeset
   407
hgs
parents:
diff changeset
   408
        /**
hgs
parents:
diff changeset
   409
        * Updates listbox in container
hgs
parents:
diff changeset
   410
        */
hgs
parents:
diff changeset
   411
        void UpdateListBoxL( const TInt& aListItem, const TInt aValue = -1 );
hgs
parents:
diff changeset
   412
hgs
parents:
diff changeset
   413
        /**
hgs
parents:
diff changeset
   414
        * Activate the Phone Idle view.
hgs
parents:
diff changeset
   415
        */
hgs
parents:
diff changeset
   416
        void PhoneIdle();
hgs
parents:
diff changeset
   417
hgs
parents:
diff changeset
   418
        /**
hgs
parents:
diff changeset
   419
        * To verify if the phone is in the offline mode. (or mostly if mode is supported???)
hgs
parents:
diff changeset
   420
        */
hgs
parents:
diff changeset
   421
        TBool IsPhoneOfflineL() const;
hgs
parents:
diff changeset
   422
hgs
parents:
diff changeset
   423
        /**
hgs
parents:
diff changeset
   424
        * Actually checks from telephone server cached data (iNWInfo) if phone
hgs
parents:
diff changeset
   425
        * is online.
hgs
parents:
diff changeset
   426
        *
hgs
parents:
diff changeset
   427
        * @return ETrue if phone is online.
hgs
parents:
diff changeset
   428
        */
hgs
parents:
diff changeset
   429
        TBool PhoneOnline();
hgs
parents:
diff changeset
   430
hgs
parents:
diff changeset
   431
        /**
hgs
parents:
diff changeset
   432
        * Updates iNetworkText from the iNWInfo values.
hgs
parents:
diff changeset
   433
        */
hgs
parents:
diff changeset
   434
        void UpdateNetworkTextL();
hgs
parents:
diff changeset
   435
hgs
parents:
diff changeset
   436
        /**
hgs
parents:
diff changeset
   437
        * Easy access to parent plugin. Casts view from AppUI.
hgs
parents:
diff changeset
   438
        */
hgs
parents:
diff changeset
   439
        CGSParentPlugin* Parent();
hgs
parents:
diff changeset
   440
hgs
parents:
diff changeset
   441
        /**
hgs
parents:
diff changeset
   442
        *  Convert TInt to TGSNetworkModeItems.
hgs
parents:
diff changeset
   443
        *  Will panic in case TInt is of wrong value.
hgs
parents:
diff changeset
   444
        */
hgs
parents:
diff changeset
   445
        TGSNetworkModeItems CGSNetworkPlugin::IntToEnumL( TInt aFeatureId );
hgs
parents:
diff changeset
   446
hgs
parents:
diff changeset
   447
        /**
hgs
parents:
diff changeset
   448
        * Closes dialog (iSettingDlg) if it is open. 
hgs
parents:
diff changeset
   449
        */
hgs
parents:
diff changeset
   450
        void CloseDialog();
hgs
parents:
diff changeset
   451
        
hgs
parents:
diff changeset
   452
#ifdef FF_POWER_SAVE    
hgs
parents:
diff changeset
   453
        /**
hgs
parents:
diff changeset
   454
         *  Displays blocking note. Used if PSM is on.
hgs
parents:
diff changeset
   455
         */
hgs
parents:
diff changeset
   456
        void DisplayBlockNoteL();
hgs
parents:
diff changeset
   457
#endif // FF_POWER_SAVE
hgs
parents:
diff changeset
   458
        
hgs
parents:
diff changeset
   459
    public: //enumerations
hgs
parents:
diff changeset
   460
hgs
parents:
diff changeset
   461
        enum TGSNetworkList
hgs
parents:
diff changeset
   462
            {
hgs
parents:
diff changeset
   463
            EAutomaticMode,
hgs
parents:
diff changeset
   464
            EManualMode
hgs
parents:
diff changeset
   465
            };
hgs
parents:
diff changeset
   466
hgs
parents:
diff changeset
   467
    protected:
hgs
parents:
diff changeset
   468
hgs
parents:
diff changeset
   469
        // for load wait dialog
hgs
parents:
diff changeset
   470
        CAknWaitDialog* iWaitDialog;
hgs
parents:
diff changeset
   471
hgs
parents:
diff changeset
   472
    private:
hgs
parents:
diff changeset
   473
hgs
parents:
diff changeset
   474
        //Requesting note
hgs
parents:
diff changeset
   475
        CAknWaitDialog*         iDlg;
hgs
parents:
diff changeset
   476
        //PhoneSettings container
hgs
parents:
diff changeset
   477
        CPsetContainer*         iSettingsContainer;
hgs
parents:
diff changeset
   478
        //PhoneSettings engine object
hgs
parents:
diff changeset
   479
        CPsetNetwork*           iPhoneSettingsEngine;
hgs
parents:
diff changeset
   480
        //Array of networks
hgs
parents:
diff changeset
   481
        CNetworkInfoArray*      iNetworkArray;
hgs
parents:
diff changeset
   482
        //Network selection list
hgs
parents:
diff changeset
   483
        CAknPopupList*          iNetworkPopupList;
hgs
parents:
diff changeset
   484
        //Setting page
hgs
parents:
diff changeset
   485
        CAknRadioButtonSettingPage* iSettingDlg;
hgs
parents:
diff changeset
   486
        //Value of MCN setting item
hgs
parents:
diff changeset
   487
        TInt                    iMCN;
hgs
parents:
diff changeset
   488
        //Has the user selected a valid network
hgs
parents:
diff changeset
   489
        TBool                   iApprovedNetwork;
hgs
parents:
diff changeset
   490
        //PhoneSettings refresh handler
hgs
parents:
diff changeset
   491
        CPSetRefreshHandler*    iPSRefreshHandler;
hgs
parents:
diff changeset
   492
        //Previous network selection state
hgs
parents:
diff changeset
   493
        TBool                   iPreviousState;
hgs
parents:
diff changeset
   494
        // check if which command MSK is set during destruction
hgs
parents:
diff changeset
   495
        TBool                   iMskCommandFlag;
hgs
parents:
diff changeset
   496
        //PubSub object for BT SAP state
hgs
parents:
diff changeset
   497
        CGSPubSubsListener*     iBtSapListener;
hgs
parents:
diff changeset
   498
        TBool                   iSearchForNetworksActive;
hgs
parents:
diff changeset
   499
hgs
parents:
diff changeset
   500
        // Session to network handling engine. Owned.
hgs
parents:
diff changeset
   501
        CNWSession* iNWSession;
hgs
parents:
diff changeset
   502
hgs
parents:
diff changeset
   503
        // Cached network info structure. Will be updated by iNWSession in a
hgs
parents:
diff changeset
   504
        // callback.
hgs
parents:
diff changeset
   505
        TNWInfo iNWInfo;
hgs
parents:
diff changeset
   506
hgs
parents:
diff changeset
   507
        // Cached network text read by GetValue(). When network handling engine
hgs
parents:
diff changeset
   508
        // updates data, this buffer is re-created accordingly.
hgs
parents:
diff changeset
   509
        HBufC* iNetworkText;
hgs
parents:
diff changeset
   510
#ifdef FF_POWER_SAVE
hgs
parents:
diff changeset
   511
        // Active object for handling PSM realted CenRep events.
hgs
parents:
diff changeset
   512
        CGSNetworkPluginAO* iPsmActive;
hgs
parents:
diff changeset
   513
#endif // FF_POWER_SAVE
hgs
parents:
diff changeset
   514
hgs
parents:
diff changeset
   515
    };
hgs
parents:
diff changeset
   516
hgs
parents:
diff changeset
   517
#endif // GSNETWORKPLUGIN_H
hgs
parents:
diff changeset
   518
hgs
parents:
diff changeset
   519
//End of File