gssettingsuis/Gs/GSDisplayPlugin/Src/GSDisplayPlugin.cpp
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) 2005-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 Display sub-folder
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
// INCLUDE FILES
hgs
parents:
diff changeset
    20
#include "GSDisplayPlugin.h"
hgs
parents:
diff changeset
    21
hgs
parents:
diff changeset
    22
#ifdef FF_POWER_SAVE
hgs
parents:
diff changeset
    23
    #include "GSDisplayPluginAO.h"
hgs
parents:
diff changeset
    24
#endif // FF_POWER_SAVE
hgs
parents:
diff changeset
    25
hgs
parents:
diff changeset
    26
#include "GSDisplayPluginModel.h"
hgs
parents:
diff changeset
    27
#include "GSDisplayPluginContainer.h"
hgs
parents:
diff changeset
    28
#include "GsDisplayPlugin.hrh"
hgs
parents:
diff changeset
    29
#include "GsLogger.h"
hgs
parents:
diff changeset
    30
hgs
parents:
diff changeset
    31
#include <coeaui.h>
hgs
parents:
diff changeset
    32
#include <hlplch.h>             // For HlpLauncher
hgs
parents:
diff changeset
    33
#include <gulicon.h>
hgs
parents:
diff changeset
    34
#include <bautils.h>
hgs
parents:
diff changeset
    35
#include <featmgr.h>
hgs
parents:
diff changeset
    36
#include <StringLoader.h>
hgs
parents:
diff changeset
    37
#include <aknnotedialog.h>
hgs
parents:
diff changeset
    38
#include <AknWaitDialog.h>
hgs
parents:
diff changeset
    39
#include <aknslider.h>
hgs
parents:
diff changeset
    40
#include <aknradiobuttonsettingpage.h>
hgs
parents:
diff changeset
    41
#include <aknslidersettingpage.h>
hgs
parents:
diff changeset
    42
#include <aknnotewrappers.h>
hgs
parents:
diff changeset
    43
#include <aknViewAppUi.h>
hgs
parents:
diff changeset
    44
#include <AknsWallpaperUtils.h>
hgs
parents:
diff changeset
    45
#include <AknWaitDialog.h>
hgs
parents:
diff changeset
    46
#include <akntextsettingpage.h>
hgs
parents:
diff changeset
    47
#include <telephonydomainpskeys.h>
hgs
parents:
diff changeset
    48
#include <imageconversion.h>
hgs
parents:
diff changeset
    49
hgs
parents:
diff changeset
    50
#include <MGFetch.h>            // Image selection
hgs
parents:
diff changeset
    51
#include <DRMCommon.h>
hgs
parents:
diff changeset
    52
#include <gsdisplaypluginrsc.rsg>
hgs
parents:
diff changeset
    53
#include <gsprivatepluginproviderids.h>
hgs
parents:
diff changeset
    54
#include <gsmainview.h>
hgs
parents:
diff changeset
    55
#include <gsbasecontainer.h>
hgs
parents:
diff changeset
    56
#include <gscommon.hrh>
hgs
parents:
diff changeset
    57
#include <gsdisplayplugin.mbg> // Icons
hgs
parents:
diff changeset
    58
hgs
parents:
diff changeset
    59
// EXTERNAL DATA STRUCTURES
hgs
parents:
diff changeset
    60
hgs
parents:
diff changeset
    61
// EXTERNAL FUNCTION PROTOTYPES
hgs
parents:
diff changeset
    62
hgs
parents:
diff changeset
    63
// CONSTANTS
hgs
parents:
diff changeset
    64
const TInt KGSImageWelcomeNote = 2;
hgs
parents:
diff changeset
    65
// MACROS
hgs
parents:
diff changeset
    66
hgs
parents:
diff changeset
    67
// LOCAL CONSTANTS AND MACROS
hgs
parents:
diff changeset
    68
//_LIT( KGSWelcomeNoteTextValue, "" );
hgs
parents:
diff changeset
    69
//_LIT( KGSScreenSaverTextValue, "" );
hgs
parents:
diff changeset
    70
hgs
parents:
diff changeset
    71
_LIT( KGSDisplayPluginResourceFileName, "z:gsdisplaypluginrsc.rsc" );
hgs
parents:
diff changeset
    72
hgs
parents:
diff changeset
    73
// MODULE DATA STRUCTURES
hgs
parents:
diff changeset
    74
hgs
parents:
diff changeset
    75
// LOCAL FUNCTION PROTOTYPES
hgs
parents:
diff changeset
    76
hgs
parents:
diff changeset
    77
// FORWARD DECLARATIONS
hgs
parents:
diff changeset
    78
hgs
parents:
diff changeset
    79
// ============================= LOCAL FUNCTIONS ==============================
hgs
parents:
diff changeset
    80
hgs
parents:
diff changeset
    81
// ========================= MEMBER FUNCTIONS =================================
hgs
parents:
diff changeset
    82
hgs
parents:
diff changeset
    83
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
    84
// CGSDisplayPlugin::CGSDisplayPlugin()
hgs
parents:
diff changeset
    85
//
hgs
parents:
diff changeset
    86
// Constructor
hgs
parents:
diff changeset
    87
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
    88
//
hgs
parents:
diff changeset
    89
CGSDisplayPlugin::CGSDisplayPlugin()
hgs
parents:
diff changeset
    90
  : iUpdateSSText( EFalse ),
hgs
parents:
diff changeset
    91
    iUpdateWNote( ETrue ),
hgs
parents:
diff changeset
    92
    iReshowOprtSetPage( EFalse ),
hgs
parents:
diff changeset
    93
    iResourceLoader( *iCoeEnv )
hgs
parents:
diff changeset
    94
    {
hgs
parents:
diff changeset
    95
    }
hgs
parents:
diff changeset
    96
hgs
parents:
diff changeset
    97
hgs
parents:
diff changeset
    98
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
    99
// CGSDisplayPlugin::NewL()
hgs
parents:
diff changeset
   100
//
hgs
parents:
diff changeset
   101
// Symbian OS default constructor
hgs
parents:
diff changeset
   102
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
   103
CGSDisplayPlugin* CGSDisplayPlugin::NewL( TAny* /*aInitParams*/ )
hgs
parents:
diff changeset
   104
    {
hgs
parents:
diff changeset
   105
    CGSDisplayPlugin* self = new( ELeave ) CGSDisplayPlugin();
hgs
parents:
diff changeset
   106
hgs
parents:
diff changeset
   107
    CleanupStack::PushL( self );
hgs
parents:
diff changeset
   108
    self->ConstructL();
hgs
parents:
diff changeset
   109
    CleanupStack::Pop( self );
hgs
parents:
diff changeset
   110
hgs
parents:
diff changeset
   111
    return self;
hgs
parents:
diff changeset
   112
    }
hgs
parents:
diff changeset
   113
hgs
parents:
diff changeset
   114
hgs
parents:
diff changeset
   115
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
   116
// CGSDisplayPlugin::ConstructL()
hgs
parents:
diff changeset
   117
//
hgs
parents:
diff changeset
   118
// Symbian OS two-phased constructor
hgs
parents:
diff changeset
   119
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
   120
void CGSDisplayPlugin::ConstructL()
hgs
parents:
diff changeset
   121
    {
hgs
parents:
diff changeset
   122
    FeatureManager::InitializeLibL();
hgs
parents:
diff changeset
   123
hgs
parents:
diff changeset
   124
    // Find the resource file
hgs
parents:
diff changeset
   125
    TParse parse;
hgs
parents:
diff changeset
   126
    parse.Set( KGSDisplayPluginResourceFileName,
hgs
parents:
diff changeset
   127
               &KDC_RESOURCE_FILES_DIR, NULL );
hgs
parents:
diff changeset
   128
    TFileName fileName( parse.FullName() );
hgs
parents:
diff changeset
   129
hgs
parents:
diff changeset
   130
    // Get language of resource file
hgs
parents:
diff changeset
   131
    BaflUtils::NearestLanguageFile( iCoeEnv->FsSession(), fileName );
hgs
parents:
diff changeset
   132
hgs
parents:
diff changeset
   133
    // Open resource file
hgs
parents:
diff changeset
   134
    iResourceLoader.OpenL( fileName );
hgs
parents:
diff changeset
   135
hgs
parents:
diff changeset
   136
    BaseConstructL( R_GS_DISPL_VIEW );
hgs
parents:
diff changeset
   137
hgs
parents:
diff changeset
   138
#ifdef FF_POWER_SAVE    
hgs
parents:
diff changeset
   139
    iPsmActive = CGSDisplayPluginAO::NewL();
hgs
parents:
diff changeset
   140
    iPsmActive->SetView( this );
hgs
parents:
diff changeset
   141
#endif // FF_POWER_SAVE    
hgs
parents:
diff changeset
   142
    }
hgs
parents:
diff changeset
   143
hgs
parents:
diff changeset
   144
hgs
parents:
diff changeset
   145
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
   146
// CGSDisplayPlugin::~CGSDisplayPlugin
hgs
parents:
diff changeset
   147
//
hgs
parents:
diff changeset
   148
// Destructor
hgs
parents:
diff changeset
   149
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
   150
CGSDisplayPlugin::~CGSDisplayPlugin()
hgs
parents:
diff changeset
   151
    {
hgs
parents:
diff changeset
   152
    CloseDialog();
hgs
parents:
diff changeset
   153
    FeatureManager::UnInitializeLib();
hgs
parents:
diff changeset
   154
    iResourceLoader.Close();
hgs
parents:
diff changeset
   155
hgs
parents:
diff changeset
   156
#ifdef FF_POWER_SAVE
hgs
parents:
diff changeset
   157
    delete iPsmActive;
hgs
parents:
diff changeset
   158
#endif // FF_POWER_SAVE
hgs
parents:
diff changeset
   159
    
hgs
parents:
diff changeset
   160
    if ( iImageHandler )
hgs
parents:
diff changeset
   161
        {
hgs
parents:
diff changeset
   162
        delete iImageHandler;
hgs
parents:
diff changeset
   163
        }
hgs
parents:
diff changeset
   164
hgs
parents:
diff changeset
   165
    if ( iModel )
hgs
parents:
diff changeset
   166
        {
hgs
parents:
diff changeset
   167
        iModel = NULL;
hgs
parents:
diff changeset
   168
        }
hgs
parents:
diff changeset
   169
    }
hgs
parents:
diff changeset
   170
hgs
parents:
diff changeset
   171
hgs
parents:
diff changeset
   172
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
   173
// TUid CGSDisplayPlugin::Id()
hgs
parents:
diff changeset
   174
//
hgs
parents:
diff changeset
   175
// Returns plug-in's ID.
hgs
parents:
diff changeset
   176
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
   177
TUid CGSDisplayPlugin::Id() const
hgs
parents:
diff changeset
   178
    {
hgs
parents:
diff changeset
   179
    return KGSDisplayPluginUid;
hgs
parents:
diff changeset
   180
    }
hgs
parents:
diff changeset
   181
hgs
parents:
diff changeset
   182
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
   183
// CGSDisplayPlugin::HandleCommandL
hgs
parents:
diff changeset
   184
//
hgs
parents:
diff changeset
   185
// Handles commands directed to this class.
hgs
parents:
diff changeset
   186
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
   187
void CGSDisplayPlugin::HandleCommandL( TInt aCommand )
hgs
parents:
diff changeset
   188
    {
hgs
parents:
diff changeset
   189
    switch ( aCommand )
hgs
parents:
diff changeset
   190
        {
hgs
parents:
diff changeset
   191
        case EGSMSKCmdAppChange:
hgs
parents:
diff changeset
   192
            if ( EGSSettIdOperatorLogo == Container()->CurrentFeatureId() )
hgs
parents:
diff changeset
   193
                {
hgs
parents:
diff changeset
   194
                ChangeOperatorLogoSettingL( EFalse );
hgs
parents:
diff changeset
   195
                break;
hgs
parents:
diff changeset
   196
                }
hgs
parents:
diff changeset
   197
        case EGSCmdAppChange:
hgs
parents:
diff changeset
   198
            HandleListBoxSelectionL();
hgs
parents:
diff changeset
   199
            break;
hgs
parents:
diff changeset
   200
        case EAknSoftkeyBack:
hgs
parents:
diff changeset
   201
            #ifdef RD_CONTROL_PANEL
hgs
parents:
diff changeset
   202
                iAppUi->ActivateLocalViewL( KGSGenPluginUid );
hgs
parents:
diff changeset
   203
            #else //RD_CONTROL_PANEL
hgs
parents:
diff changeset
   204
                iAppUi->ActivateLocalViewL( KGSPrslnPluginUid );
hgs
parents:
diff changeset
   205
            #endif //RD_CONTROL_PANEL
hgs
parents:
diff changeset
   206
            break;
hgs
parents:
diff changeset
   207
        case EGSCmdShowPowerSaveLedSettingPage:
hgs
parents:
diff changeset
   208
            ShowPowerSaveLedSettingPageL( ETrue );
hgs
parents:
diff changeset
   209
            break;
hgs
parents:
diff changeset
   210
        case EAknCmdHelp:
hgs
parents:
diff changeset
   211
            {
hgs
parents:
diff changeset
   212
            if( FeatureManager::FeatureSupported( KFeatureIdHelp ) )
hgs
parents:
diff changeset
   213
                {
hgs
parents:
diff changeset
   214
                HlpLauncher::LaunchHelpApplicationL(
hgs
parents:
diff changeset
   215
                    iEikonEnv->WsSession(), iAppUi->AppHelpContextL() );
hgs
parents:
diff changeset
   216
                }
hgs
parents:
diff changeset
   217
            break;
hgs
parents:
diff changeset
   218
            }
hgs
parents:
diff changeset
   219
        default:
hgs
parents:
diff changeset
   220
            iAppUi->HandleCommandL( aCommand );
hgs
parents:
diff changeset
   221
            break;
hgs
parents:
diff changeset
   222
        }
hgs
parents:
diff changeset
   223
    }
hgs
parents:
diff changeset
   224
hgs
parents:
diff changeset
   225
hgs
parents:
diff changeset
   226
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
   227
// CGSDisplayPlugin::UpdateListBoxL
hgs
parents:
diff changeset
   228
//
hgs
parents:
diff changeset
   229
//
hgs
parents:
diff changeset
   230
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
   231
//
hgs
parents:
diff changeset
   232
void CGSDisplayPlugin::UpdateListBoxL( TInt aItemId )
hgs
parents:
diff changeset
   233
    {
hgs
parents:
diff changeset
   234
    if( Container() )
hgs
parents:
diff changeset
   235
        {
hgs
parents:
diff changeset
   236
        Container()->UpdateListBoxL( aItemId );
hgs
parents:
diff changeset
   237
        }
hgs
parents:
diff changeset
   238
    }
hgs
parents:
diff changeset
   239
hgs
parents:
diff changeset
   240
hgs
parents:
diff changeset
   241
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
   242
// CGSDisplayPlugin::Container
hgs
parents:
diff changeset
   243
//
hgs
parents:
diff changeset
   244
// Return handle to container class.
hgs
parents:
diff changeset
   245
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
   246
//
hgs
parents:
diff changeset
   247
CGSDisplayPluginContainer* CGSDisplayPlugin::Container()
hgs
parents:
diff changeset
   248
    {
hgs
parents:
diff changeset
   249
    return static_cast<CGSDisplayPluginContainer*>( iContainer );
hgs
parents:
diff changeset
   250
    }
hgs
parents:
diff changeset
   251
hgs
parents:
diff changeset
   252
hgs
parents:
diff changeset
   253
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
   254
// CGSDisplayPlugin::NewContainerL()
hgs
parents:
diff changeset
   255
// Creates new iContainer.
hgs
parents:
diff changeset
   256
//
hgs
parents:
diff changeset
   257
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
   258
//
hgs
parents:
diff changeset
   259
void CGSDisplayPlugin::NewContainerL()
hgs
parents:
diff changeset
   260
    {
hgs
parents:
diff changeset
   261
    // container takes a CAknView pointer
hgs
parents:
diff changeset
   262
    iContainer = new( ELeave ) CGSDisplayPluginContainer( /* *this*/ );
hgs
parents:
diff changeset
   263
    }
hgs
parents:
diff changeset
   264
hgs
parents:
diff changeset
   265
hgs
parents:
diff changeset
   266
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
   267
// CGSDisplayPlugin::DoActivateL
hgs
parents:
diff changeset
   268
//
hgs
parents:
diff changeset
   269
// First method called by the Avkon framwork to invoke a view.
hgs
parents:
diff changeset
   270
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
   271
//
hgs
parents:
diff changeset
   272
void CGSDisplayPlugin::DoActivateL( const TVwsViewId& aPrevViewId,
hgs
parents:
diff changeset
   273
                                    TUid aCustomMessageId,
hgs
parents:
diff changeset
   274
                                    const TDesC8& aCustomMessage )
hgs
parents:
diff changeset
   275
    {
hgs
parents:
diff changeset
   276
    CGSBaseView::DoActivateL( aPrevViewId, aCustomMessageId, aCustomMessage );
hgs
parents:
diff changeset
   277
    iModel = Container()->Model();
hgs
parents:
diff changeset
   278
    }
hgs
parents:
diff changeset
   279
hgs
parents:
diff changeset
   280
hgs
parents:
diff changeset
   281
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
   282
// CGSDisplayPlugin::DoDeactivate
hgs
parents:
diff changeset
   283
//
hgs
parents:
diff changeset
   284
// Called by the Avkon view framework when closing.
hgs
parents:
diff changeset
   285
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
   286
//
hgs
parents:
diff changeset
   287
void CGSDisplayPlugin::DoDeactivate()
hgs
parents:
diff changeset
   288
    {
hgs
parents:
diff changeset
   289
    CGSBaseView::DoDeactivate();
hgs
parents:
diff changeset
   290
    }
hgs
parents:
diff changeset
   291
hgs
parents:
diff changeset
   292
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
   293
// CGSDisplayPlugin::HandleListBoxSelectionL()
hgs
parents:
diff changeset
   294
//
hgs
parents:
diff changeset
   295
// Handles events raised through a rocker key
hgs
parents:
diff changeset
   296
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
   297
void CGSDisplayPlugin::HandleListBoxSelectionL()
hgs
parents:
diff changeset
   298
    {
hgs
parents:
diff changeset
   299
    const TInt currentFeatureId = Container()->CurrentFeatureId();
hgs
parents:
diff changeset
   300
    
hgs
parents:
diff changeset
   301
    switch ( currentFeatureId )
hgs
parents:
diff changeset
   302
        {
hgs
parents:
diff changeset
   303
        case EGSSettIdContrast:
hgs
parents:
diff changeset
   304
            if( iModel->ContrastL() != KErrNotSupported )
hgs
parents:
diff changeset
   305
                {
hgs
parents:
diff changeset
   306
#ifdef FF_POWER_SAVE                    
hgs
parents:
diff changeset
   307
                if ( iPsmActive->Mode() == EPsmsrvModePowerSave )
hgs
parents:
diff changeset
   308
                    {
hgs
parents:
diff changeset
   309
                    // If PSM is on, block setting:
hgs
parents:
diff changeset
   310
                    DisplayBlockNoteL();
hgs
parents:
diff changeset
   311
                    }
hgs
parents:
diff changeset
   312
                else
hgs
parents:
diff changeset
   313
                    {
hgs
parents:
diff changeset
   314
#endif // FF_POWER_SAVE                    
hgs
parents:
diff changeset
   315
                    ShowContrastSettingPageL();
hgs
parents:
diff changeset
   316
#ifdef FF_POWER_SAVE
hgs
parents:
diff changeset
   317
                    }
hgs
parents:
diff changeset
   318
#endif // FF_POWER_SAVE
hgs
parents:
diff changeset
   319
                }
hgs
parents:
diff changeset
   320
hgs
parents:
diff changeset
   321
            
hgs
parents:
diff changeset
   322
            break;
hgs
parents:
diff changeset
   323
        case EGSSettIdBrightness:
hgs
parents:
diff changeset
   324
            if( FeatureManager::FeatureSupported( KFeatureIdBrightnessControl) )
hgs
parents:
diff changeset
   325
                {
hgs
parents:
diff changeset
   326
#ifdef FF_POWER_SAVE            
hgs
parents:
diff changeset
   327
                if ( iPsmActive->Mode() == EPsmsrvModePowerSave )
hgs
parents:
diff changeset
   328
                    {
hgs
parents:
diff changeset
   329
                    // If PSM is on, block setting:
hgs
parents:
diff changeset
   330
                    DisplayBlockNoteL();
hgs
parents:
diff changeset
   331
                    }
hgs
parents:
diff changeset
   332
                else
hgs
parents:
diff changeset
   333
                    {
hgs
parents:
diff changeset
   334
#endif // FF_POWER_SAVE                    
hgs
parents:
diff changeset
   335
                    ShowBrightnessSettingPageL();
hgs
parents:
diff changeset
   336
#ifdef FF_POWER_SAVE
hgs
parents:
diff changeset
   337
                    }
hgs
parents:
diff changeset
   338
#endif // FF_POWER_SAVE              
hgs
parents:
diff changeset
   339
                }
hgs
parents:
diff changeset
   340
            break;
hgs
parents:
diff changeset
   341
        case EGSSettIdSSP:
hgs
parents:
diff changeset
   342
#ifdef FF_POWER_SAVE            
hgs
parents:
diff changeset
   343
            if ( iPsmActive->Mode() == EPsmsrvModePowerSave )
hgs
parents:
diff changeset
   344
                {
hgs
parents:
diff changeset
   345
                // If PSM is on, block setting:
hgs
parents:
diff changeset
   346
                DisplayBlockNoteL();
hgs
parents:
diff changeset
   347
                }
hgs
parents:
diff changeset
   348
            else
hgs
parents:
diff changeset
   349
                {
hgs
parents:
diff changeset
   350
#endif // FF_POWER_SAVE 
hgs
parents:
diff changeset
   351
                ShowScreenSaverPeriodSettingPageL();
hgs
parents:
diff changeset
   352
#ifdef FF_POWER_SAVE
hgs
parents:
diff changeset
   353
                }
hgs
parents:
diff changeset
   354
#endif // FF_POWER_SAVE      
hgs
parents:
diff changeset
   355
            break;
hgs
parents:
diff changeset
   356
        case EGSSettIdBacklight:
hgs
parents:
diff changeset
   357
#ifdef FF_POWER_SAVE            
hgs
parents:
diff changeset
   358
            if ( iPsmActive->Mode() == EPsmsrvModePowerSave )
hgs
parents:
diff changeset
   359
                {
hgs
parents:
diff changeset
   360
                // If PSM is on, block setting:
hgs
parents:
diff changeset
   361
                DisplayBlockNoteL();
hgs
parents:
diff changeset
   362
                }
hgs
parents:
diff changeset
   363
            else
hgs
parents:
diff changeset
   364
                {
hgs
parents:
diff changeset
   365
#endif // FF_POWER_SAVE                
hgs
parents:
diff changeset
   366
                ShowBacklightSettingPageL ( );
hgs
parents:
diff changeset
   367
#ifdef FF_POWER_SAVE
hgs
parents:
diff changeset
   368
                }
hgs
parents:
diff changeset
   369
#endif // FF_POWER_SAVE            
hgs
parents:
diff changeset
   370
            break;
hgs
parents:
diff changeset
   371
        case EGSSettIdAmbientLightSensor:
hgs
parents:
diff changeset
   372
            {
hgs
parents:
diff changeset
   373
#ifdef FF_POWER_SAVE            
hgs
parents:
diff changeset
   374
            if ( iPsmActive->Mode() == EPsmsrvModePowerSave )
hgs
parents:
diff changeset
   375
                {
hgs
parents:
diff changeset
   376
                // If PSM is on, block setting:
hgs
parents:
diff changeset
   377
                DisplayBlockNoteL();
hgs
parents:
diff changeset
   378
                }
hgs
parents:
diff changeset
   379
            else
hgs
parents:
diff changeset
   380
                {
hgs
parents:
diff changeset
   381
#endif // FF_POWER_SAVE                    
hgs
parents:
diff changeset
   382
                ShowAmbientLightSensorSettingPageL();
hgs
parents:
diff changeset
   383
#ifdef FF_POWER_SAVE
hgs
parents:
diff changeset
   384
                }
hgs
parents:
diff changeset
   385
#endif // FF_POWER_SAVE      
hgs
parents:
diff changeset
   386
            }
hgs
parents:
diff changeset
   387
            break;
hgs
parents:
diff changeset
   388
        case EGSSettIdWNI:
hgs
parents:
diff changeset
   389
            ShowWelcomeNoteSettingPageL();
hgs
parents:
diff changeset
   390
            break;
hgs
parents:
diff changeset
   391
        case EGSSettIdDisplayTextSize:
hgs
parents:
diff changeset
   392
            if ( FeatureManager::FeatureSupported ( KFeatureIdUiZoom ) )
hgs
parents:
diff changeset
   393
                {
hgs
parents:
diff changeset
   394
                ShowDisplayTextSizeSettingPageL();
hgs
parents:
diff changeset
   395
                }
hgs
parents:
diff changeset
   396
            break;
hgs
parents:
diff changeset
   397
        case EGSSettIdPowerSaveLed:
hgs
parents:
diff changeset
   398
            {
hgs
parents:
diff changeset
   399
#ifdef FF_POWER_SAVE            
hgs
parents:
diff changeset
   400
            if ( iPsmActive->Mode() == EPsmsrvModePowerSave )
hgs
parents:
diff changeset
   401
                {
hgs
parents:
diff changeset
   402
                // If PSM is on, block setting:
hgs
parents:
diff changeset
   403
                DisplayBlockNoteL();
hgs
parents:
diff changeset
   404
                }
hgs
parents:
diff changeset
   405
            else
hgs
parents:
diff changeset
   406
                {
hgs
parents:
diff changeset
   407
#endif // FF_POWER_SAVE                    
hgs
parents:
diff changeset
   408
                ShowPowerSaveLedSettingPageL( EFalse );
hgs
parents:
diff changeset
   409
#ifdef FF_POWER_SAVE
hgs
parents:
diff changeset
   410
                }
hgs
parents:
diff changeset
   411
#endif // FF_POWER_SAVE 
hgs
parents:
diff changeset
   412
            }
hgs
parents:
diff changeset
   413
            break;
hgs
parents:
diff changeset
   414
        case EGSSettIdOperatorLogo:
hgs
parents:
diff changeset
   415
        	do
hgs
parents:
diff changeset
   416
        		{
hgs
parents:
diff changeset
   417
        		iReshowOprtSetPage = EFalse;
hgs
parents:
diff changeset
   418
        		ChangeOperatorLogoSettingL( ETrue );
hgs
parents:
diff changeset
   419
        		}
hgs
parents:
diff changeset
   420
        	while ( iReshowOprtSetPage );
hgs
parents:
diff changeset
   421
            break;
hgs
parents:
diff changeset
   422
        default:
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
// ========================= From CGSPluginInterface ==================
hgs
parents:
diff changeset
   428
hgs
parents:
diff changeset
   429
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
   430
// CGSDisplayPlugin::GetCaption
hgs
parents:
diff changeset
   431
//
hgs
parents:
diff changeset
   432
// Return application/view caption.
hgs
parents:
diff changeset
   433
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
   434
//
hgs
parents:
diff changeset
   435
void CGSDisplayPlugin::GetCaptionL( TDes& aCaption ) const
hgs
parents:
diff changeset
   436
    {
hgs
parents:
diff changeset
   437
    // the resource file is already opened.
hgs
parents:
diff changeset
   438
    HBufC* result = StringLoader::LoadL( R_GS_DISPLAY_VIEW_CAPTION );
hgs
parents:
diff changeset
   439
hgs
parents:
diff changeset
   440
    aCaption.Copy( *result );
hgs
parents:
diff changeset
   441
    delete result;
hgs
parents:
diff changeset
   442
    }
hgs
parents:
diff changeset
   443
hgs
parents:
diff changeset
   444
hgs
parents:
diff changeset
   445
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
   446
// CGSDisplayPlugin::PluginProviderCategory
hgs
parents:
diff changeset
   447
//
hgs
parents:
diff changeset
   448
// A means to identify the location of this plug-in in the framework.
hgs
parents:
diff changeset
   449
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
   450
//
hgs
parents:
diff changeset
   451
TInt CGSDisplayPlugin::PluginProviderCategory() const
hgs
parents:
diff changeset
   452
    {
hgs
parents:
diff changeset
   453
    //To identify internal plug-ins.
hgs
parents:
diff changeset
   454
    return KGSPluginProviderInternal;
hgs
parents:
diff changeset
   455
    }
hgs
parents:
diff changeset
   456
hgs
parents:
diff changeset
   457
hgs
parents:
diff changeset
   458
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   459
// CGSDisplayPlugin::ShowContrastSettingPageL()
hgs
parents:
diff changeset
   460
//
hgs
parents:
diff changeset
   461
// Display the contrast setting page.
hgs
parents:
diff changeset
   462
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   463
//
hgs
parents:
diff changeset
   464
void CGSDisplayPlugin::ShowContrastSettingPageL()
hgs
parents:
diff changeset
   465
    {
hgs
parents:
diff changeset
   466
    TInt currentValue;
hgs
parents:
diff changeset
   467
    TInt oldValue;
hgs
parents:
diff changeset
   468
    oldValue = iModel->ContrastL();
hgs
parents:
diff changeset
   469
hgs
parents:
diff changeset
   470
    currentValue = oldValue;
hgs
parents:
diff changeset
   471
hgs
parents:
diff changeset
   472
    CAknSliderSettingPage* dlg = new( ELeave ) CAknSliderSettingPage(
hgs
parents:
diff changeset
   473
                                 R_CONTRAST_SETTING_PAGE, currentValue );
hgs
parents:
diff changeset
   474
hgs
parents:
diff changeset
   475
    dlg->SetSettingId( KGSContrastSettingId );
hgs
parents:
diff changeset
   476
    dlg->SetSettingPageObserver( this );
hgs
parents:
diff changeset
   477
hgs
parents:
diff changeset
   478
    if ( !dlg->ExecuteLD( CAknSettingPage::EUpdateWhenChanged ) )
hgs
parents:
diff changeset
   479
        {
hgs
parents:
diff changeset
   480
#ifdef FF_POWER_SAVE
hgs
parents:
diff changeset
   481
        if ( iPsmActive->Mode() != EPsmsrvModePowerSave )
hgs
parents:
diff changeset
   482
            {
hgs
parents:
diff changeset
   483
#endif //FF_POWER_SAVE
hgs
parents:
diff changeset
   484
            iModel->SetContrastL( oldValue );
hgs
parents:
diff changeset
   485
#ifdef FF_POWER_SAVE 
hgs
parents:
diff changeset
   486
            }
hgs
parents:
diff changeset
   487
#endif //FF_POWER_SAVE
hgs
parents:
diff changeset
   488
        }
hgs
parents:
diff changeset
   489
    UpdateListBoxL( EGSSettIdContrast );
hgs
parents:
diff changeset
   490
    }
hgs
parents:
diff changeset
   491
hgs
parents:
diff changeset
   492
hgs
parents:
diff changeset
   493
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   494
// CGSDisplayPlugin::ShowBrightnessSettingPageL()
hgs
parents:
diff changeset
   495
//
hgs
parents:
diff changeset
   496
// Display the brightness setting page.
hgs
parents:
diff changeset
   497
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   498
//
hgs
parents:
diff changeset
   499
void CGSDisplayPlugin::ShowBrightnessSettingPageL()
hgs
parents:
diff changeset
   500
    {
hgs
parents:
diff changeset
   501
    TInt currentValue;
hgs
parents:
diff changeset
   502
    TInt oldValue = iModel->BrightnessL();
hgs
parents:
diff changeset
   503
hgs
parents:
diff changeset
   504
    currentValue = oldValue;
hgs
parents:
diff changeset
   505
hgs
parents:
diff changeset
   506
    CAknSliderSettingPage* dlg = new( ELeave ) CAknSliderSettingPage(
hgs
parents:
diff changeset
   507
                                 R_BRIGHTNESS_SETTING_PAGE, currentValue );
hgs
parents:
diff changeset
   508
hgs
parents:
diff changeset
   509
    dlg->SetSettingId( KGSBrightnessSettingId );
hgs
parents:
diff changeset
   510
    dlg->SetSettingPageObserver( this );
hgs
parents:
diff changeset
   511
hgs
parents:
diff changeset
   512
    if ( !dlg->ExecuteLD(CAknSettingPage::EUpdateWhenChanged ) )
hgs
parents:
diff changeset
   513
        {
hgs
parents:
diff changeset
   514
#ifdef FF_POWER_SAVE
hgs
parents:
diff changeset
   515
        if ( iPsmActive->Mode() != EPsmsrvModePowerSave )
hgs
parents:
diff changeset
   516
            {
hgs
parents:
diff changeset
   517
#endif //FF_POWER_SAVE
hgs
parents:
diff changeset
   518
            iModel->SetBrightnessL( oldValue );
hgs
parents:
diff changeset
   519
#ifdef FF_POWER_SAVE 
hgs
parents:
diff changeset
   520
            }
hgs
parents:
diff changeset
   521
#endif //FF_POWER_SAVE
hgs
parents:
diff changeset
   522
        }
hgs
parents:
diff changeset
   523
    UpdateListBoxL( EGSSettIdBrightness );
hgs
parents:
diff changeset
   524
    }
hgs
parents:
diff changeset
   525
hgs
parents:
diff changeset
   526
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   527
// CGSDisplayPlugin::ShowAmbientLightSensorSettingPageL()
hgs
parents:
diff changeset
   528
//
hgs
parents:
diff changeset
   529
// Display the ambient light sensor setting page.
hgs
parents:
diff changeset
   530
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   531
//
hgs
parents:
diff changeset
   532
void CGSDisplayPlugin::ShowAmbientLightSensorSettingPageL()
hgs
parents:
diff changeset
   533
    {
hgs
parents:
diff changeset
   534
    TInt currentValue;
hgs
parents:
diff changeset
   535
    TInt oldValue = iModel->AmbientLightSensorL();
hgs
parents:
diff changeset
   536
hgs
parents:
diff changeset
   537
    currentValue = oldValue;
hgs
parents:
diff changeset
   538
hgs
parents:
diff changeset
   539
    CAknSliderSettingPage* dlg = new( ELeave ) CAknSliderSettingPage(
hgs
parents:
diff changeset
   540
        R_AMBIENT_LIGHT_SENSOR_SETTING_PAGE, currentValue );
hgs
parents:
diff changeset
   541
hgs
parents:
diff changeset
   542
    dlg->SetSettingId( KGSAmbientLightSensorId );
hgs
parents:
diff changeset
   543
    dlg->SetSettingPageObserver( this );
hgs
parents:
diff changeset
   544
hgs
parents:
diff changeset
   545
    if ( !dlg->ExecuteLD( CAknSettingPage::EUpdateWhenChanged ) )
hgs
parents:
diff changeset
   546
        {
hgs
parents:
diff changeset
   547
#ifdef FF_POWER_SAVE
hgs
parents:
diff changeset
   548
        if ( iPsmActive->Mode() != EPsmsrvModePowerSave )
hgs
parents:
diff changeset
   549
            {
hgs
parents:
diff changeset
   550
#endif //FF_POWER_SAVE
hgs
parents:
diff changeset
   551
            iModel->SetAmbientLightSensorL( oldValue );
hgs
parents:
diff changeset
   552
#ifdef FF_POWER_SAVE 
hgs
parents:
diff changeset
   553
            }
hgs
parents:
diff changeset
   554
#endif //FF_POWER_SAVE
hgs
parents:
diff changeset
   555
        }
hgs
parents:
diff changeset
   556
    UpdateListBoxL( EGSSettIdAmbientLightSensor );
hgs
parents:
diff changeset
   557
    }
hgs
parents:
diff changeset
   558
hgs
parents:
diff changeset
   559
hgs
parents:
diff changeset
   560
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   561
// CGSDisplayPlugin::ShowScreenSaverPeriodSettingPageL()
hgs
parents:
diff changeset
   562
//
hgs
parents:
diff changeset
   563
// Display the screen saver period (time out) setting page.
hgs
parents:
diff changeset
   564
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   565
//
hgs
parents:
diff changeset
   566
void CGSDisplayPlugin::ShowScreenSaverPeriodSettingPageL()
hgs
parents:
diff changeset
   567
    {
hgs
parents:
diff changeset
   568
    TInt sliderValue = iModel->ScreenSaverAndKeyguardPeriodL();
hgs
parents:
diff changeset
   569
hgs
parents:
diff changeset
   570
    CAknSettingPage* dlg = new( ELeave ) CAknSliderSettingPage(
hgs
parents:
diff changeset
   571
                           R_SCREEN_SAVER_PERIOD_SETTING_PAGE, sliderValue );
hgs
parents:
diff changeset
   572
hgs
parents:
diff changeset
   573
    if ( dlg->ExecuteLD( CAknSettingPage::EUpdateWhenChanged ) )
hgs
parents:
diff changeset
   574
        {
hgs
parents:
diff changeset
   575
#ifdef FF_POWER_SAVE         
hgs
parents:
diff changeset
   576
        if ( iPsmActive->Mode() == EPsmsrvModePowerSave )
hgs
parents:
diff changeset
   577
            {
hgs
parents:
diff changeset
   578
            DisplayBlockNoteL();
hgs
parents:
diff changeset
   579
            }
hgs
parents:
diff changeset
   580
        else
hgs
parents:
diff changeset
   581
            {
hgs
parents:
diff changeset
   582
#endif //FF_POWER_SAVE
hgs
parents:
diff changeset
   583
            iModel->SetScreenSaverAndKeyguardPeriodL( sliderValue );
hgs
parents:
diff changeset
   584
#ifdef FF_POWER_SAVE 
hgs
parents:
diff changeset
   585
            }
hgs
parents:
diff changeset
   586
#endif //FF_POWER_SAVE
hgs
parents:
diff changeset
   587
        UpdateListBoxL( EGSSettIdSSP );
hgs
parents:
diff changeset
   588
        }
hgs
parents:
diff changeset
   589
    }
hgs
parents:
diff changeset
   590
hgs
parents:
diff changeset
   591
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   592
// CGSDisplayPlugin::ShowBacklightSettingPageL()
hgs
parents:
diff changeset
   593
//
hgs
parents:
diff changeset
   594
// Display the backlight time-out setting page.
hgs
parents:
diff changeset
   595
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   596
//
hgs
parents:
diff changeset
   597
void CGSDisplayPlugin::ShowBacklightSettingPageL()
hgs
parents:
diff changeset
   598
    {
hgs
parents:
diff changeset
   599
    TInt sliderValue = iModel->BacklightPeriodL();
hgs
parents:
diff changeset
   600
hgs
parents:
diff changeset
   601
    CAknSettingPage* dlg = new( ELeave ) CAknSliderSettingPage(
hgs
parents:
diff changeset
   602
                           R_BACKLIGHT_PERIOD_SETTING_PAGE, sliderValue );
hgs
parents:
diff changeset
   603
hgs
parents:
diff changeset
   604
    if ( dlg->ExecuteLD( CAknSettingPage::EUpdateWhenChanged ) )
hgs
parents:
diff changeset
   605
        {
hgs
parents:
diff changeset
   606
#ifdef FF_POWER_SAVE 
hgs
parents:
diff changeset
   607
        if ( iPsmActive->Mode() == EPsmsrvModePowerSave )
hgs
parents:
diff changeset
   608
            {
hgs
parents:
diff changeset
   609
            DisplayBlockNoteL();
hgs
parents:
diff changeset
   610
            }
hgs
parents:
diff changeset
   611
        else
hgs
parents:
diff changeset
   612
            {
hgs
parents:
diff changeset
   613
#endif //FF_POWER_SAVE
hgs
parents:
diff changeset
   614
            iModel->SetBacklightPeriodL( sliderValue );
hgs
parents:
diff changeset
   615
#ifdef FF_POWER_SAVE 
hgs
parents:
diff changeset
   616
            }
hgs
parents:
diff changeset
   617
#endif //FF_POWER_SAVE
hgs
parents:
diff changeset
   618
        UpdateListBoxL( EGSSettIdBacklight );
hgs
parents:
diff changeset
   619
        }
hgs
parents:
diff changeset
   620
    }
hgs
parents:
diff changeset
   621
hgs
parents:
diff changeset
   622
hgs
parents:
diff changeset
   623
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   624
// CGSDisplayPlugin::HandleSettingPageEventL
hgs
parents:
diff changeset
   625
//
hgs
parents:
diff changeset
   626
// Handle any setting page related events
hgs
parents:
diff changeset
   627
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   628
//
hgs
parents:
diff changeset
   629
void CGSDisplayPlugin::HandleSettingPageEventL( CAknSettingPage* aSettingPage,
hgs
parents:
diff changeset
   630
                                     TAknSettingPageEvent aEventType )
hgs
parents:
diff changeset
   631
    {
hgs
parents:
diff changeset
   632
    TInt id = aSettingPage->SettingId();
hgs
parents:
diff changeset
   633
hgs
parents:
diff changeset
   634
    if ( aEventType == EEventSettingChanged )
hgs
parents:
diff changeset
   635
        {
hgs
parents:
diff changeset
   636
        switch ( id )
hgs
parents:
diff changeset
   637
            {
hgs
parents:
diff changeset
   638
            case KGSContrastSettingId:
hgs
parents:
diff changeset
   639
                if( iModel->ContrastL() != KErrNotSupported )
hgs
parents:
diff changeset
   640
                    {
hgs
parents:
diff changeset
   641
#ifdef FF_POWER_SAVE 
hgs
parents:
diff changeset
   642
                    if ( iPsmActive->Mode() == EPsmsrvModePowerSave )
hgs
parents:
diff changeset
   643
                        {
hgs
parents:
diff changeset
   644
                        DisplayBlockNoteL();
hgs
parents:
diff changeset
   645
                        static_cast<CAknSliderSettingPage*>( aSettingPage )->
hgs
parents:
diff changeset
   646
                            SliderControl()->SetValueL( iModel->ContrastL() );
hgs
parents:
diff changeset
   647
                        }
hgs
parents:
diff changeset
   648
                    else
hgs
parents:
diff changeset
   649
                        {
hgs
parents:
diff changeset
   650
#endif //FF_POWER_SAVE
hgs
parents:
diff changeset
   651
                        iModel->SetContrastL( static_cast<CAknSliderSettingPage*>
hgs
parents:
diff changeset
   652
                            ( aSettingPage )->SliderControl()->Value() );
hgs
parents:
diff changeset
   653
#ifdef FF_POWER_SAVE 
hgs
parents:
diff changeset
   654
                        }
hgs
parents:
diff changeset
   655
#endif //FF_POWER_SAVE
hgs
parents:
diff changeset
   656
                    }
hgs
parents:
diff changeset
   657
                break;
hgs
parents:
diff changeset
   658
            case KGSBrightnessSettingId:
hgs
parents:
diff changeset
   659
                if( FeatureManager::FeatureSupported(
hgs
parents:
diff changeset
   660
                                    KFeatureIdBrightnessControl) )
hgs
parents:
diff changeset
   661
                    {
hgs
parents:
diff changeset
   662
#ifdef FF_POWER_SAVE 
hgs
parents:
diff changeset
   663
                    if ( iPsmActive->Mode() == EPsmsrvModePowerSave )
hgs
parents:
diff changeset
   664
                        {
hgs
parents:
diff changeset
   665
                        DisplayBlockNoteL();
hgs
parents:
diff changeset
   666
                        static_cast<CAknSliderSettingPage*>( aSettingPage )->
hgs
parents:
diff changeset
   667
                            SliderControl()->SetValueL( iModel->BrightnessL() );
hgs
parents:
diff changeset
   668
                        }
hgs
parents:
diff changeset
   669
                    else
hgs
parents:
diff changeset
   670
                        {
hgs
parents:
diff changeset
   671
#endif //FF_POWER_SAVE
hgs
parents:
diff changeset
   672
                        iModel->SetBrightnessL( static_cast<CAknSliderSettingPage*>
hgs
parents:
diff changeset
   673
                            ( aSettingPage )->SliderControl()->Value() );
hgs
parents:
diff changeset
   674
#ifdef FF_POWER_SAVE 
hgs
parents:
diff changeset
   675
                        }
hgs
parents:
diff changeset
   676
#endif //FF_POWER_SAVE
hgs
parents:
diff changeset
   677
                    }
hgs
parents:
diff changeset
   678
                break;
hgs
parents:
diff changeset
   679
            case KGSAmbientLightSensorId:
hgs
parents:
diff changeset
   680
#ifdef FF_POWER_SAVE
hgs
parents:
diff changeset
   681
                if ( iPsmActive->Mode() == EPsmsrvModePowerSave )
hgs
parents:
diff changeset
   682
                    {
hgs
parents:
diff changeset
   683
                    DisplayBlockNoteL();
hgs
parents:
diff changeset
   684
                    static_cast<CAknSliderSettingPage*>( aSettingPage )->
hgs
parents:
diff changeset
   685
                        SliderControl()->SetValueL( iModel->AmbientLightSensorL() );
hgs
parents:
diff changeset
   686
                    }
hgs
parents:
diff changeset
   687
                else
hgs
parents:
diff changeset
   688
                    {
hgs
parents:
diff changeset
   689
#endif //FF_POWER_SAVE
hgs
parents:
diff changeset
   690
                    iModel->SetAmbientLightSensorL( static_cast<CAknSliderSettingPage*>
hgs
parents:
diff changeset
   691
                         ( aSettingPage )->SliderControl()->Value() );
hgs
parents:
diff changeset
   692
#ifdef FF_POWER_SAVE 
hgs
parents:
diff changeset
   693
                    }
hgs
parents:
diff changeset
   694
#endif //FF_POWER_SAVE
hgs
parents:
diff changeset
   695
                break;
hgs
parents:
diff changeset
   696
            default:
hgs
parents:
diff changeset
   697
                break;
hgs
parents:
diff changeset
   698
            }
hgs
parents:
diff changeset
   699
        }
hgs
parents:
diff changeset
   700
hgs
parents:
diff changeset
   701
    if ( aEventType == EEventSettingOked )
hgs
parents:
diff changeset
   702
        {
hgs
parents:
diff changeset
   703
        TInt current;
hgs
parents:
diff changeset
   704
hgs
parents:
diff changeset
   705
        switch ( id )
hgs
parents:
diff changeset
   706
            {
hgs
parents:
diff changeset
   707
            case KGSWelcomeNoteSettingId:
hgs
parents:
diff changeset
   708
                current =
hgs
parents:
diff changeset
   709
                   static_cast<CAknRadioButtonSettingPage*> ( aSettingPage )->
hgs
parents:
diff changeset
   710
                   ListBoxControl()->CurrentItemIndex();
hgs
parents:
diff changeset
   711
                if ( current == KGSWNTextIndex )
hgs
parents:
diff changeset
   712
                    {
hgs
parents:
diff changeset
   713
                    ShowWelcomeNoteTextQueryL();
hgs
parents:
diff changeset
   714
                    }
hgs
parents:
diff changeset
   715
                else if ( current == KGSWNImageIndex )
hgs
parents:
diff changeset
   716
                    {
hgs
parents:
diff changeset
   717
                    aSettingPage->MakeVisible(EFalse); 
hgs
parents:
diff changeset
   718
                    ShowWelcomeNoteImageListL();
hgs
parents:
diff changeset
   719
                    }
hgs
parents:
diff changeset
   720
                break;
hgs
parents:
diff changeset
   721
            default:
hgs
parents:
diff changeset
   722
                break;
hgs
parents:
diff changeset
   723
            }
hgs
parents:
diff changeset
   724
        }
hgs
parents:
diff changeset
   725
    }
hgs
parents:
diff changeset
   726
hgs
parents:
diff changeset
   727
hgs
parents:
diff changeset
   728
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   729
// CGSDisplayPlugin::VerifySelectionL()
hgs
parents:
diff changeset
   730
//
hgs
parents:
diff changeset
   731
// An overloaded method from MMGFetchVerifier interface class
hgs
parents:
diff changeset
   732
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   733
//
hgs
parents:
diff changeset
   734
TBool CGSDisplayPlugin::VerifySelectionL( const MDesCArray* aSelectedFiles )
hgs
parents:
diff changeset
   735
    {
hgs
parents:
diff changeset
   736
    const TBool KGSDrmProtectedContent = ETrue;
hgs
parents:
diff changeset
   737
hgs
parents:
diff changeset
   738
    TBool ret = ETrue;
hgs
parents:
diff changeset
   739
    //
hgs
parents:
diff changeset
   740
    if ( aSelectedFiles->MdcaCount() == 1 )
hgs
parents:
diff changeset
   741
        {
hgs
parents:
diff changeset
   742
        const TPtrC fileName( aSelectedFiles->MdcaPoint( 0 ) );
hgs
parents:
diff changeset
   743
hgs
parents:
diff changeset
   744
        // First, check if the selected file is DRM protected
hgs
parents:
diff changeset
   745
        if  ( ret && CheckDRMProtectionL( fileName ) ==
hgs
parents:
diff changeset
   746
                    KGSDrmProtectedContent )
hgs
parents:
diff changeset
   747
            {
hgs
parents:
diff changeset
   748
            // display the note to user
hgs
parents:
diff changeset
   749
            // Show information note
hgs
parents:
diff changeset
   750
            HBufC* prompt = iCoeEnv->AllocReadResourceLC(
hgs
parents:
diff changeset
   751
                                          R_GS_DRM_NOT_ALLOWED );
hgs
parents:
diff changeset
   752
hgs
parents:
diff changeset
   753
            CAknInformationNote* note =
hgs
parents:
diff changeset
   754
                new( ELeave ) CAknInformationNote( ETrue );
hgs
parents:
diff changeset
   755
            note->ExecuteLD( *prompt );
hgs
parents:
diff changeset
   756
hgs
parents:
diff changeset
   757
            CleanupStack::PopAndDestroy( prompt );
hgs
parents:
diff changeset
   758
            ret = EFalse;
hgs
parents:
diff changeset
   759
            }
hgs
parents:
diff changeset
   760
hgs
parents:
diff changeset
   761
        // Next, check whether the image header is valid
hgs
parents:
diff changeset
   762
        if  ( ret )
hgs
parents:
diff changeset
   763
            {
hgs
parents:
diff changeset
   764
            CImageDecoder* imageDecoder = NULL;
hgs
parents:
diff changeset
   765
            TRAPD( err, imageDecoder = CImageDecoder::FileNewL(
hgs
parents:
diff changeset
   766
                  iCoeEnv->FsSession(), fileName, ContentAccess::EPeek ) );
hgs
parents:
diff changeset
   767
hgs
parents:
diff changeset
   768
            if  ( err != KErrNone )
hgs
parents:
diff changeset
   769
                {
hgs
parents:
diff changeset
   770
                // Show information note
hgs
parents:
diff changeset
   771
                HBufC* prompt = iCoeEnv->AllocReadResourceLC(
hgs
parents:
diff changeset
   772
                                                  R_GS_IMAGE_CORRUPTED );
hgs
parents:
diff changeset
   773
                CAknInformationNote* note =
hgs
parents:
diff changeset
   774
                    new( ELeave ) CAknInformationNote( ETrue );
hgs
parents:
diff changeset
   775
                note->ExecuteLD(*prompt);
hgs
parents:
diff changeset
   776
                CleanupStack::PopAndDestroy( prompt );
hgs
parents:
diff changeset
   777
hgs
parents:
diff changeset
   778
                ret = EFalse;
hgs
parents:
diff changeset
   779
                }
hgs
parents:
diff changeset
   780
            delete imageDecoder;
hgs
parents:
diff changeset
   781
            }
hgs
parents:
diff changeset
   782
        }
hgs
parents:
diff changeset
   783
hgs
parents:
diff changeset
   784
    return ret;
hgs
parents:
diff changeset
   785
    }
hgs
parents:
diff changeset
   786
hgs
parents:
diff changeset
   787
hgs
parents:
diff changeset
   788
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   789
// CGSDisplayPlugin::ShowWelcomeNoteSettingPageL()
hgs
parents:
diff changeset
   790
//
hgs
parents:
diff changeset
   791
// Display welcome note setting page
hgs
parents:
diff changeset
   792
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   793
//
hgs
parents:
diff changeset
   794
void CGSDisplayPlugin::ShowWelcomeNoteSettingPageL()
hgs
parents:
diff changeset
   795
    {
hgs
parents:
diff changeset
   796
    iUpdateWNote = ETrue;
hgs
parents:
diff changeset
   797
hgs
parents:
diff changeset
   798
    CDesCArrayFlat* items = iCoeEnv->ReadDesC16ArrayResourceL(
hgs
parents:
diff changeset
   799
                                        R_WELCOME_NOTE_SETTING_PAGE_LBX );
hgs
parents:
diff changeset
   800
    CleanupStack::PushL( items );
hgs
parents:
diff changeset
   801
hgs
parents:
diff changeset
   802
    TInt currentItem = iModel->WelcomeNoteTypeL();
hgs
parents:
diff changeset
   803
    iWelcomeNoteType = currentItem;
hgs
parents:
diff changeset
   804
hgs
parents:
diff changeset
   805
    CAknSettingPage* dlg = new( ELeave ) CAknRadioButtonSettingPage(
hgs
parents:
diff changeset
   806
                                  R_WELCOME_NOTE_SETTING_PAGE,
hgs
parents:
diff changeset
   807
                                  currentItem, items );
hgs
parents:
diff changeset
   808
hgs
parents:
diff changeset
   809
    dlg->SetSettingId( KGSWelcomeNoteSettingId );
hgs
parents:
diff changeset
   810
    dlg->SetSettingPageObserver(this);
hgs
parents:
diff changeset
   811
    if ( dlg->ExecuteLD( CAknSettingPage::EUpdateWhenChanged )
hgs
parents:
diff changeset
   812
         && iUpdateWNote && currentItem != KGSImageWelcomeNote
hgs
parents:
diff changeset
   813
         )
hgs
parents:
diff changeset
   814
        {
hgs
parents:
diff changeset
   815
        iModel->SetWelcomeNoteTypeL( currentItem );
hgs
parents:
diff changeset
   816
        UpdateListBoxL( EGSSettIdWNI );
hgs
parents:
diff changeset
   817
        }
hgs
parents:
diff changeset
   818
hgs
parents:
diff changeset
   819
    CleanupStack::PopAndDestroy( items );
hgs
parents:
diff changeset
   820
    }
hgs
parents:
diff changeset
   821
hgs
parents:
diff changeset
   822
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   823
// CGSDisplayPlugin::ShowWelcomeNoteTextQueryL()
hgs
parents:
diff changeset
   824
//
hgs
parents:
diff changeset
   825
// Display welcome note text input dialog
hgs
parents:
diff changeset
   826
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   827
//
hgs
parents:
diff changeset
   828
void CGSDisplayPlugin::ShowWelcomeNoteTextQueryL()
hgs
parents:
diff changeset
   829
    {
hgs
parents:
diff changeset
   830
    TBuf<KGSMaxWNText> note;
hgs
parents:
diff changeset
   831
    iModel->WelcomeNoteTextL( note );
hgs
parents:
diff changeset
   832
hgs
parents:
diff changeset
   833
    CAknTextQueryDialog* dlg = new ( ELeave ) CAknTextQueryDialog( note );
hgs
parents:
diff changeset
   834
    if( dlg->ExecuteLD( R_WELCOME_NOTE_TEXT_QUERY ) )
hgs
parents:
diff changeset
   835
        {
hgs
parents:
diff changeset
   836
        iModel->SetWelcomeNoteTextL( note );
hgs
parents:
diff changeset
   837
        iUpdateWNote = ETrue;
hgs
parents:
diff changeset
   838
        }
hgs
parents:
diff changeset
   839
    else
hgs
parents:
diff changeset
   840
        {
hgs
parents:
diff changeset
   841
        iUpdateWNote = EFalse;
hgs
parents:
diff changeset
   842
        }
hgs
parents:
diff changeset
   843
   }
hgs
parents:
diff changeset
   844
hgs
parents:
diff changeset
   845
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   846
// CGSDisplayPlugin::ShowWelcomeNoteImageListL()
hgs
parents:
diff changeset
   847
//
hgs
parents:
diff changeset
   848
// Display welcome note image list from media gallery
hgs
parents:
diff changeset
   849
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   850
//
hgs
parents:
diff changeset
   851
void CGSDisplayPlugin::ShowWelcomeNoteImageListL()
hgs
parents:
diff changeset
   852
    {
hgs
parents:
diff changeset
   853
    // If the MGFetch already launched, return.
hgs
parents:
diff changeset
   854
    if ( iLaunchedImageFetch )
hgs
parents:
diff changeset
   855
        {
hgs
parents:
diff changeset
   856
        return;
hgs
parents:
diff changeset
   857
        }
hgs
parents:
diff changeset
   858
    CDesCArray* selectedFiles = new ( ELeave ) CDesCArrayFlat( 1 );
hgs
parents:
diff changeset
   859
    CleanupStack::PushL( selectedFiles );
hgs
parents:
diff changeset
   860
hgs
parents:
diff changeset
   861
    iLaunchedImageFetch = ETrue;
hgs
parents:
diff changeset
   862
    TBool ret = MGFetch::RunL( *selectedFiles, EImageFile, EFalse, this );
hgs
parents:
diff changeset
   863
    iLaunchedImageFetch = EFalse;
hgs
parents:
diff changeset
   864
hgs
parents:
diff changeset
   865
    if ( ret && selectedFiles->MdcaCount() == 1 )
hgs
parents:
diff changeset
   866
        {
hgs
parents:
diff changeset
   867
        iImageHandler = CGSAsyncImageHandling::NewL( iCoeEnv->FsSession(),
hgs
parents:
diff changeset
   868
                                               this, KGSWelcomeNoteImgPath );
hgs
parents:
diff changeset
   869
hgs
parents:
diff changeset
   870
        TPtrC imagePath = selectedFiles->MdcaPoint( 0 );
hgs
parents:
diff changeset
   871
hgs
parents:
diff changeset
   872
        //attempting to create private directory
hgs
parents:
diff changeset
   873
        RFs fs;
hgs
parents:
diff changeset
   874
        User::LeaveIfError( fs.Connect() );
hgs
parents:
diff changeset
   875
        CleanupClosePushL( fs );
hgs
parents:
diff changeset
   876
        TInt ret = fs.CreatePrivatePath( 2 );
hgs
parents:
diff changeset
   877
        CleanupStack::PopAndDestroy(); //fs
hgs
parents:
diff changeset
   878
hgs
parents:
diff changeset
   879
        TRAPD( error,
hgs
parents:
diff changeset
   880
               iModel->BackgroundImage()->SetWelcomeNoteImageL( imagePath, *iImageHandler )
hgs
parents:
diff changeset
   881
             );
hgs
parents:
diff changeset
   882
hgs
parents:
diff changeset
   883
        if ( error == KErrNone )
hgs
parents:
diff changeset
   884
            {
hgs
parents:
diff changeset
   885
            // Show wait note
hgs
parents:
diff changeset
   886
            ShowImageLoadWaitNoteL();
hgs
parents:
diff changeset
   887
            }
hgs
parents:
diff changeset
   888
        else
hgs
parents:
diff changeset
   889
            {
hgs
parents:
diff changeset
   890
            HandleImageErrorsL( error );
hgs
parents:
diff changeset
   891
            }
hgs
parents:
diff changeset
   892
        }
hgs
parents:
diff changeset
   893
    else
hgs
parents:
diff changeset
   894
        {
hgs
parents:
diff changeset
   895
        iUpdateWNote = EFalse;
hgs
parents:
diff changeset
   896
        }
hgs
parents:
diff changeset
   897
hgs
parents:
diff changeset
   898
    CleanupStack::PopAndDestroy( selectedFiles );
hgs
parents:
diff changeset
   899
    }
hgs
parents:
diff changeset
   900
hgs
parents:
diff changeset
   901
hgs
parents:
diff changeset
   902
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   903
// CGSDisplayPlugin::ShowDisplayTextSizeSettingPageL()
hgs
parents:
diff changeset
   904
//
hgs
parents:
diff changeset
   905
// Display display text size setting page
hgs
parents:
diff changeset
   906
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   907
//
hgs
parents:
diff changeset
   908
void CGSDisplayPlugin::ShowDisplayTextSizeSettingPageL()
hgs
parents:
diff changeset
   909
    {
hgs
parents:
diff changeset
   910
    CDesCArrayFlat* items = iCoeEnv->ReadDesC16ArrayResourceL(
hgs
parents:
diff changeset
   911
                                     R_DISPLAY_TEXT_SIZE_SETTING_PAGE_LBX );
hgs
parents:
diff changeset
   912
    CleanupStack::PushL( items );
hgs
parents:
diff changeset
   913
hgs
parents:
diff changeset
   914
    TInt currentItem = iModel->DisplayTextSizeL();
hgs
parents:
diff changeset
   915
    // get the UI index from container
hgs
parents:
diff changeset
   916
    Container()->MapZoomLevelToUi( currentItem );
hgs
parents:
diff changeset
   917
    // store the current value for comparison
hgs
parents:
diff changeset
   918
    TInt oldItem = currentItem;
hgs
parents:
diff changeset
   919
hgs
parents:
diff changeset
   920
    CAknSettingPage* dlg = new( ELeave ) CAknRadioButtonSettingPage(
hgs
parents:
diff changeset
   921
                                  R_DISPLAY_TEXT_SIZE_SETTING_PAGE,
hgs
parents:
diff changeset
   922
                                  currentItem, items );
hgs
parents:
diff changeset
   923
hgs
parents:
diff changeset
   924
    if ( dlg->ExecuteLD( CAknSettingPage::EUpdateWhenChanged ) )
hgs
parents:
diff changeset
   925
        {
hgs
parents:
diff changeset
   926
        if( currentItem != oldItem )
hgs
parents:
diff changeset
   927
            {
hgs
parents:
diff changeset
   928
            // get the Avkon value from UI index
hgs
parents:
diff changeset
   929
            Container()->MapZoomLevelFromUi( currentItem );
hgs
parents:
diff changeset
   930
            // set Avkon value to CenRep. As an additional check, confirm
hgs
parents:
diff changeset
   931
            // from feature manager that zooming is supported.
hgs
parents:
diff changeset
   932
            if ( FeatureManager::FeatureSupported ( KFeatureIdUiZoom ) )
hgs
parents:
diff changeset
   933
                {
hgs
parents:
diff changeset
   934
                iModel->SetDisplayTextSizeL( currentItem );
hgs
parents:
diff changeset
   935
                }
hgs
parents:
diff changeset
   936
             // now inform all open apps of the switch
hgs
parents:
diff changeset
   937
             // note that app needs software event capability to call this API
hgs
parents:
diff changeset
   938
            TWsEvent event;
hgs
parents:
diff changeset
   939
            event.SetType( KEikDynamicLayoutVariantSwitch );
hgs
parents:
diff changeset
   940
            iEikonEnv->WsSession().SendEventToAllWindowGroups( event );
hgs
parents:
diff changeset
   941
            }
hgs
parents:
diff changeset
   942
hgs
parents:
diff changeset
   943
        UpdateListBoxL( EGSSettIdDisplayTextSize );
hgs
parents:
diff changeset
   944
        }
hgs
parents:
diff changeset
   945
hgs
parents:
diff changeset
   946
    CleanupStack::PopAndDestroy( items );
hgs
parents:
diff changeset
   947
    }
hgs
parents:
diff changeset
   948
hgs
parents:
diff changeset
   949
hgs
parents:
diff changeset
   950
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   951
// CGSDisplayPlugin::ShowPowerSaveLedSettingPageL()
hgs
parents:
diff changeset
   952
//
hgs
parents:
diff changeset
   953
// Display the screen saver object setting page.
hgs
parents:
diff changeset
   954
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   955
//
hgs
parents:
diff changeset
   956
void CGSDisplayPlugin::ShowPowerSaveLedSettingPageL( TBool aSettingPage )
hgs
parents:
diff changeset
   957
    {
hgs
parents:
diff changeset
   958
hgs
parents:
diff changeset
   959
    CDesCArrayFlat* items =
hgs
parents:
diff changeset
   960
        iCoeEnv->ReadDesC16ArrayResourceL( R_POWER_SAVE_LED_SETTING_PAGE_LBX );
hgs
parents:
diff changeset
   961
    CleanupStack::PushL( items );
hgs
parents:
diff changeset
   962
hgs
parents:
diff changeset
   963
    TInt currentItem = iModel->PowerSaveLedL();
hgs
parents:
diff changeset
   964
hgs
parents:
diff changeset
   965
    if( aSettingPage )
hgs
parents:
diff changeset
   966
        {
hgs
parents:
diff changeset
   967
        CAknRadioButtonSettingPage* dlg =
hgs
parents:
diff changeset
   968
            new ( ELeave ) CAknRadioButtonSettingPage(
hgs
parents:
diff changeset
   969
                                   R_POWER_SAVE_LED_SETTING_PAGE,
hgs
parents:
diff changeset
   970
                                   currentItem, items );
hgs
parents:
diff changeset
   971
hgs
parents:
diff changeset
   972
        if ( dlg->ExecuteLD( CAknSettingPage::EUpdateWhenChanged ) )
hgs
parents:
diff changeset
   973
            {
hgs
parents:
diff changeset
   974
            iModel->SetPowerSaveLedL( currentItem );
hgs
parents:
diff changeset
   975
            UpdateListBoxL( EGSSettIdPowerSaveLed );
hgs
parents:
diff changeset
   976
            }
hgs
parents:
diff changeset
   977
        }
hgs
parents:
diff changeset
   978
    else
hgs
parents:
diff changeset
   979
        {
hgs
parents:
diff changeset
   980
        iModel->SetPowerSaveLedL( !currentItem );
hgs
parents:
diff changeset
   981
        UpdateListBoxL( EGSSettIdPowerSaveLed );
hgs
parents:
diff changeset
   982
        }
hgs
parents:
diff changeset
   983
    CleanupStack::PopAndDestroy( items );
hgs
parents:
diff changeset
   984
    }
hgs
parents:
diff changeset
   985
hgs
parents:
diff changeset
   986
hgs
parents:
diff changeset
   987
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   988
// CGSDisplayPlugin::ImageHandlingComplete()
hgs
parents:
diff changeset
   989
//
hgs
parents:
diff changeset
   990
// Method derived from MGSSyncImageHandlingObserver
hgs
parents:
diff changeset
   991
// Run when the asynchronous image converting is complete
hgs
parents:
diff changeset
   992
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   993
//
hgs
parents:
diff changeset
   994
void CGSDisplayPlugin::ImageHandlingCompleteL( TInt aError )
hgs
parents:
diff changeset
   995
    {
hgs
parents:
diff changeset
   996
    if ( aError != KErrNone )
hgs
parents:
diff changeset
   997
        {
hgs
parents:
diff changeset
   998
        HandleImageErrorsL( aError );
hgs
parents:
diff changeset
   999
        }
hgs
parents:
diff changeset
  1000
    else
hgs
parents:
diff changeset
  1001
        {
hgs
parents:
diff changeset
  1002
        iModel->SetWelcomeNoteTypeL( KGSImageWelcomeNote );
hgs
parents:
diff changeset
  1003
        UpdateListBoxL( EGSSettIdWNI );
hgs
parents:
diff changeset
  1004
        }
hgs
parents:
diff changeset
  1005
    HideImageLoadWaitNoteL();
hgs
parents:
diff changeset
  1006
hgs
parents:
diff changeset
  1007
    if( iImageHandler )
hgs
parents:
diff changeset
  1008
        {
hgs
parents:
diff changeset
  1009
        delete iImageHandler;
hgs
parents:
diff changeset
  1010
        iImageHandler = NULL;
hgs
parents:
diff changeset
  1011
        }
hgs
parents:
diff changeset
  1012
    }
hgs
parents:
diff changeset
  1013
hgs
parents:
diff changeset
  1014
hgs
parents:
diff changeset
  1015
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
  1016
// CGSDisplayPlugin::ShowImageLoadWaitNoteL()
hgs
parents:
diff changeset
  1017
//
hgs
parents:
diff changeset
  1018
// Display image load wait note dialog.
hgs
parents:
diff changeset
  1019
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
  1020
//
hgs
parents:
diff changeset
  1021
void CGSDisplayPlugin::ShowImageLoadWaitNoteL()
hgs
parents:
diff changeset
  1022
    {
hgs
parents:
diff changeset
  1023
    if ( !iWaitDialog )
hgs
parents:
diff changeset
  1024
        {
hgs
parents:
diff changeset
  1025
        iWaitDialog = new( ELeave ) CAknWaitDialog(
hgs
parents:
diff changeset
  1026
                      ( REINTERPRET_CAST(CEikDialog**,
hgs
parents:
diff changeset
  1027
                      &iWaitDialog ) ), ETrue );
hgs
parents:
diff changeset
  1028
hgs
parents:
diff changeset
  1029
        iWaitDialog->ExecuteDlgLD( CAknNoteDialog::ENoTone,
hgs
parents:
diff changeset
  1030
                                   R_IMAGE_LOAD_WAIT_NOTE );
hgs
parents:
diff changeset
  1031
        }
hgs
parents:
diff changeset
  1032
    }
hgs
parents:
diff changeset
  1033
hgs
parents:
diff changeset
  1034
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
  1035
// CGSDisplayPlugin::HideImageLoadWaitNoteL()
hgs
parents:
diff changeset
  1036
//
hgs
parents:
diff changeset
  1037
// Hide image load wait note dialog.
hgs
parents:
diff changeset
  1038
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
  1039
//
hgs
parents:
diff changeset
  1040
void CGSDisplayPlugin::HideImageLoadWaitNoteL()
hgs
parents:
diff changeset
  1041
    {
hgs
parents:
diff changeset
  1042
    if ( iWaitDialog )
hgs
parents:
diff changeset
  1043
        {
hgs
parents:
diff changeset
  1044
        iWaitDialog->ProcessFinishedL(); // deletes the dialog
hgs
parents:
diff changeset
  1045
        iWaitDialog = NULL;
hgs
parents:
diff changeset
  1046
        }
hgs
parents:
diff changeset
  1047
    }
hgs
parents:
diff changeset
  1048
hgs
parents:
diff changeset
  1049
hgs
parents:
diff changeset
  1050
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
  1051
// CGSDisplayPlugin::CheckDRMProtectionL
hgs
parents:
diff changeset
  1052
//
hgs
parents:
diff changeset
  1053
// Check if the selected image file is DRM protected.
hgs
parents:
diff changeset
  1054
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
  1055
//
hgs
parents:
diff changeset
  1056
TBool CGSDisplayPlugin::CheckDRMProtectionL( const TDesC& aOriginalFileName )
hgs
parents:
diff changeset
  1057
    {
hgs
parents:
diff changeset
  1058
    TBool isProtected( EFalse );
hgs
parents:
diff changeset
  1059
    DRMCommon* drmClient = DRMCommon::NewL();
hgs
parents:
diff changeset
  1060
    CleanupStack::PushL( drmClient );
hgs
parents:
diff changeset
  1061
    TInt error = drmClient->Connect();
hgs
parents:
diff changeset
  1062
    if ( error != DRMCommon::EOk )
hgs
parents:
diff changeset
  1063
        {
hgs
parents:
diff changeset
  1064
        User::Leave( KErrCorrupt );
hgs
parents:
diff changeset
  1065
        }
hgs
parents:
diff changeset
  1066
hgs
parents:
diff changeset
  1067
    if ( aOriginalFileName != KNullDesC )
hgs
parents:
diff changeset
  1068
        {
hgs
parents:
diff changeset
  1069
        error = drmClient->IsProtectedFile( aOriginalFileName, isProtected );
hgs
parents:
diff changeset
  1070
        if ( error != DRMCommon::EOk )
hgs
parents:
diff changeset
  1071
            {
hgs
parents:
diff changeset
  1072
            User::Leave( KErrCorrupt );
hgs
parents:
diff changeset
  1073
            }
hgs
parents:
diff changeset
  1074
        }
hgs
parents:
diff changeset
  1075
hgs
parents:
diff changeset
  1076
    CleanupStack::PopAndDestroy( drmClient );
hgs
parents:
diff changeset
  1077
    return isProtected;
hgs
parents:
diff changeset
  1078
    }
hgs
parents:
diff changeset
  1079
hgs
parents:
diff changeset
  1080
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
  1081
// CGSDisplayPlugin::HandleImageErrorsL
hgs
parents:
diff changeset
  1082
//
hgs
parents:
diff changeset
  1083
// Prompt image related errors to the user
hgs
parents:
diff changeset
  1084
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
  1085
//
hgs
parents:
diff changeset
  1086
void CGSDisplayPlugin::HandleImageErrorsL( TInt aError )
hgs
parents:
diff changeset
  1087
    {
hgs
parents:
diff changeset
  1088
    if ( aError )
hgs
parents:
diff changeset
  1089
        {
hgs
parents:
diff changeset
  1090
        TInt resourceId;
hgs
parents:
diff changeset
  1091
        switch( aError )
hgs
parents:
diff changeset
  1092
            {
hgs
parents:
diff changeset
  1093
            case KErrNotSupported:
hgs
parents:
diff changeset
  1094
            case KErrUnderflow:
hgs
parents:
diff changeset
  1095
                // Image is corrupted or in wrong format
hgs
parents:
diff changeset
  1096
                resourceId = R_GS_IMAGE_CORRUPTED;
hgs
parents:
diff changeset
  1097
                break;
hgs
parents:
diff changeset
  1098
            case KErrDiskFull:
hgs
parents:
diff changeset
  1099
            case KErrNoMemory:
hgs
parents:
diff changeset
  1100
                // Image is too large
hgs
parents:
diff changeset
  1101
                resourceId = R_GS_IMAGE_TOO_LARGE;
hgs
parents:
diff changeset
  1102
                break;
hgs
parents:
diff changeset
  1103
            default:
hgs
parents:
diff changeset
  1104
                // Better to give some error message than result in CONE5 panic:
hgs
parents:
diff changeset
  1105
                resourceId = R_GS_IMAGE_CORRUPTED;
hgs
parents:
diff changeset
  1106
                //User::LeaveIfError( aError );
hgs
parents:
diff changeset
  1107
                break;
hgs
parents:
diff changeset
  1108
            }
hgs
parents:
diff changeset
  1109
hgs
parents:
diff changeset
  1110
        // Show information note
hgs
parents:
diff changeset
  1111
        HBufC* prompt = iCoeEnv->AllocReadResourceLC( resourceId );
hgs
parents:
diff changeset
  1112
        CAknInformationNote* note = new( ELeave ) CAknInformationNote( ETrue );
hgs
parents:
diff changeset
  1113
        note->ExecuteLD( *prompt );
hgs
parents:
diff changeset
  1114
hgs
parents:
diff changeset
  1115
        // Restoring previous welcome note value
hgs
parents:
diff changeset
  1116
        iModel->SetWelcomeNoteTypeL( iWelcomeNoteType );
hgs
parents:
diff changeset
  1117
        UpdateListBoxL( EGSSettIdWNI );
hgs
parents:
diff changeset
  1118
        CleanupStack::PopAndDestroy( prompt );
hgs
parents:
diff changeset
  1119
        }
hgs
parents:
diff changeset
  1120
    }
hgs
parents:
diff changeset
  1121
hgs
parents:
diff changeset
  1122
hgs
parents:
diff changeset
  1123
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
  1124
// CGSDisplayPlugin::DynInitMenuPaneL()
hgs
parents:
diff changeset
  1125
//
hgs
parents:
diff changeset
  1126
// Display the dynamic menu
hgs
parents:
diff changeset
  1127
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
  1128
void CGSDisplayPlugin::DynInitMenuPaneL( TInt aResourceId,
hgs
parents:
diff changeset
  1129
                                         CEikMenuPane* aMenuPane )
hgs
parents:
diff changeset
  1130
    {
hgs
parents:
diff changeset
  1131
    // show or hide the 'help' menu item when supported
hgs
parents:
diff changeset
  1132
    if( aResourceId == R_GS_MENU_ITEM_HELP )
hgs
parents:
diff changeset
  1133
        {
hgs
parents:
diff changeset
  1134
        User::LeaveIfNull( aMenuPane );
hgs
parents:
diff changeset
  1135
hgs
parents:
diff changeset
  1136
        if ( FeatureManager::FeatureSupported( KFeatureIdHelp ) )
hgs
parents:
diff changeset
  1137
            {
hgs
parents:
diff changeset
  1138
            aMenuPane->SetItemDimmed( EAknCmdHelp, EFalse );
hgs
parents:
diff changeset
  1139
            }
hgs
parents:
diff changeset
  1140
        else
hgs
parents:
diff changeset
  1141
            {
hgs
parents:
diff changeset
  1142
            aMenuPane->SetItemDimmed( EAknCmdHelp, ETrue );
hgs
parents:
diff changeset
  1143
            }
hgs
parents:
diff changeset
  1144
        }
hgs
parents:
diff changeset
  1145
    }
hgs
parents:
diff changeset
  1146
hgs
parents:
diff changeset
  1147
// ========================== OTHER EXPORTED FUNCTIONS =========================
hgs
parents:
diff changeset
  1148
hgs
parents:
diff changeset
  1149
//
hgs
parents:
diff changeset
  1150
// ----------------------------------------------------------------------------------
hgs
parents:
diff changeset
  1151
// CGSDisplayPlugin::UpdateViewL()
hgs
parents:
diff changeset
  1152
// ----------------------------------------------------------------------------------
hgs
parents:
diff changeset
  1153
//
hgs
parents:
diff changeset
  1154
void CGSDisplayPlugin::UpdateViewL()
hgs
parents:
diff changeset
  1155
    {
hgs
parents:
diff changeset
  1156
    // Check what view is active, update if needed.
hgs
parents:
diff changeset
  1157
    // If displaying main view, update all PSM changed items.
hgs
parents:
diff changeset
  1158
    TVwsViewId activeView;
hgs
parents:
diff changeset
  1159
    CEikonEnv::Static()->EikAppUi()->GetActiveViewId( activeView );
hgs
parents:
diff changeset
  1160
//    if( activeView.iViewUid == Id() )
hgs
parents:
diff changeset
  1161
        {
hgs
parents:
diff changeset
  1162
        __GSLOGSTRING( "[CGSDisplayPlugin] I am active!!!" );        
hgs
parents:
diff changeset
  1163
        // Not too elegant - update only items that are affected by PSM
hgs
parents:
diff changeset
  1164
        UpdateListBoxL( EGSSettIdContrast );
hgs
parents:
diff changeset
  1165
        UpdateListBoxL( EGSSettIdBrightness );
hgs
parents:
diff changeset
  1166
        UpdateListBoxL( EGSSettIdAmbientLightSensor );
hgs
parents:
diff changeset
  1167
//        UpdateListBoxL( EGSSettIdDisplayTextSize );
hgs
parents:
diff changeset
  1168
        UpdateListBoxL( EGSSettIdSSP );
hgs
parents:
diff changeset
  1169
//        UpdateListBoxL( EGSSettIdSSO );
hgs
parents:
diff changeset
  1170
//        UpdateListBoxL( EGSSettIdWNI );
hgs
parents:
diff changeset
  1171
        UpdateListBoxL( EGSSettIdBacklight );
hgs
parents:
diff changeset
  1172
//        UpdateListBoxL( EGSSettIdPowerSaveLed );
hgs
parents:
diff changeset
  1173
        UpdateListBoxL( EGSSettIdOperatorLogo );
hgs
parents:
diff changeset
  1174
        }
hgs
parents:
diff changeset
  1175
    }
hgs
parents:
diff changeset
  1176
hgs
parents:
diff changeset
  1177
#ifdef FF_POWER_SAVE
hgs
parents:
diff changeset
  1178
// ----------------------------------------------------------------------------------
hgs
parents:
diff changeset
  1179
// CGSDisplayPlugin::DisplayBlockNoteL()
hgs
parents:
diff changeset
  1180
// ----------------------------------------------------------------------------------
hgs
parents:
diff changeset
  1181
void CGSDisplayPlugin::DisplayBlockNoteL()
hgs
parents:
diff changeset
  1182
    {
hgs
parents:
diff changeset
  1183
    HBufC* prompt = iCoeEnv->AllocReadResourceLC(
hgs
parents:
diff changeset
  1184
            R_GS_POWER_SAVING_PROTECTED_SETTINGS_INFONOTE );
hgs
parents:
diff changeset
  1185
    CAknInformationNote* note = new ( ELeave ) CAknInformationNote( ETrue );
hgs
parents:
diff changeset
  1186
    note->ExecuteLD( *prompt );
hgs
parents:
diff changeset
  1187
    CleanupStack::PopAndDestroy( prompt );
hgs
parents:
diff changeset
  1188
    }
hgs
parents:
diff changeset
  1189
#endif // FF_POWER_SAVE
hgs
parents:
diff changeset
  1190
hgs
parents:
diff changeset
  1191
hgs
parents:
diff changeset
  1192
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
  1193
// CGSDisplayPlugin::CreateIconL()
hgs
parents:
diff changeset
  1194
//
hgs
parents:
diff changeset
  1195
//
hgs
parents:
diff changeset
  1196
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
  1197
//
hgs
parents:
diff changeset
  1198
CGulIcon* CGSDisplayPlugin::CreateIconL( const TUid aIconType )
hgs
parents:
diff changeset
  1199
    {
hgs
parents:
diff changeset
  1200
    //EMbm<Mbm_file_name><Bitmap_name>
hgs
parents:
diff changeset
  1201
    CGulIcon* icon;
hgs
parents:
diff changeset
  1202
hgs
parents:
diff changeset
  1203
    if( aIconType == KGSIconTypeLbxItem )
hgs
parents:
diff changeset
  1204
        {
hgs
parents:
diff changeset
  1205
        icon = AknsUtils::CreateGulIconL(
hgs
parents:
diff changeset
  1206
        AknsUtils::SkinInstance(),
hgs
parents:
diff changeset
  1207
        KAknsIIDQgnPropCpDevDisp,
hgs
parents:
diff changeset
  1208
        KGSDefaultDisplayIconFileName,
hgs
parents:
diff changeset
  1209
        EMbmGsdisplaypluginQgn_prop_cp_dev_disp,
hgs
parents:
diff changeset
  1210
        EMbmGsdisplaypluginQgn_prop_cp_dev_disp_mask );
hgs
parents:
diff changeset
  1211
        }
hgs
parents:
diff changeset
  1212
       else
hgs
parents:
diff changeset
  1213
        {
hgs
parents:
diff changeset
  1214
        icon = CGSPluginInterface::CreateIconL( aIconType );
hgs
parents:
diff changeset
  1215
        }
hgs
parents:
diff changeset
  1216
hgs
parents:
diff changeset
  1217
    return icon;
hgs
parents:
diff changeset
  1218
    }
hgs
parents:
diff changeset
  1219
    
hgs
parents:
diff changeset
  1220
hgs
parents:
diff changeset
  1221
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
  1222
// CGSDisplayPlugin::ChangeOperatorLogoSettingL()
hgs
parents:
diff changeset
  1223
//
hgs
parents:
diff changeset
  1224
//
hgs
parents:
diff changeset
  1225
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
  1226
//
hgs
parents:
diff changeset
  1227
void CGSDisplayPlugin::ChangeOperatorLogoSettingL( TBool aUseSettingPage )
hgs
parents:
diff changeset
  1228
    {
hgs
parents:
diff changeset
  1229
    TInt currentValue = iModel->OperatorLogoL();
hgs
parents:
diff changeset
  1230
    TBool isValueUpdated = EFalse;
hgs
parents:
diff changeset
  1231
hgs
parents:
diff changeset
  1232
    if ( aUseSettingPage )
hgs
parents:
diff changeset
  1233
        {
hgs
parents:
diff changeset
  1234
        isValueUpdated = ShowOperatorLogoSettingPageL( currentValue );
hgs
parents:
diff changeset
  1235
        }
hgs
parents:
diff changeset
  1236
    else
hgs
parents:
diff changeset
  1237
        {
hgs
parents:
diff changeset
  1238
        if( currentValue == KGSSettingOff )
hgs
parents:
diff changeset
  1239
            {
hgs
parents:
diff changeset
  1240
            currentValue = KGSSettingOn;
hgs
parents:
diff changeset
  1241
            }
hgs
parents:
diff changeset
  1242
        else
hgs
parents:
diff changeset
  1243
            {
hgs
parents:
diff changeset
  1244
            currentValue = KGSSettingOff;
hgs
parents:
diff changeset
  1245
            }
hgs
parents:
diff changeset
  1246
        isValueUpdated = ETrue;
hgs
parents:
diff changeset
  1247
        }
hgs
parents:
diff changeset
  1248
    // Value has been changed -> store it:
hgs
parents:
diff changeset
  1249
    if ( isValueUpdated )
hgs
parents:
diff changeset
  1250
        {
hgs
parents:
diff changeset
  1251
        iModel->SetOperatorLogoL( currentValue );
hgs
parents:
diff changeset
  1252
hgs
parents:
diff changeset
  1253
        UpdateListBoxL( EGSSettIdOperatorLogo );
hgs
parents:
diff changeset
  1254
        }
hgs
parents:
diff changeset
  1255
    }
hgs
parents:
diff changeset
  1256
hgs
parents:
diff changeset
  1257
hgs
parents:
diff changeset
  1258
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
  1259
// CGSDisplayPlugin::ShowOperatorLogoSettingPageL()
hgs
parents:
diff changeset
  1260
//
hgs
parents:
diff changeset
  1261
// Note: Lbx index of each value is only internal to this function. The
hgs
parents:
diff changeset
  1262
// parameter given and modified is the actual operator logo value.
hgs
parents:
diff changeset
  1263
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
  1264
//
hgs
parents:
diff changeset
  1265
TBool CGSDisplayPlugin::ShowOperatorLogoSettingPageL(
hgs
parents:
diff changeset
  1266
    TInt& aOperatorLogoValue )
hgs
parents:
diff changeset
  1267
    {
hgs
parents:
diff changeset
  1268
    TBool isValueUpdated = EFalse;
hgs
parents:
diff changeset
  1269
    TInt previousValue = aOperatorLogoValue;
hgs
parents:
diff changeset
  1270
    TInt selectedIndex;
hgs
parents:
diff changeset
  1271
hgs
parents:
diff changeset
  1272
    // Match aOperatorLogoValue value to lbx item index:
hgs
parents:
diff changeset
  1273
    switch( aOperatorLogoValue )
hgs
parents:
diff changeset
  1274
        {
hgs
parents:
diff changeset
  1275
        case KGSSettingOn:
hgs
parents:
diff changeset
  1276
            selectedIndex = KGSOpLogoLbxIndexOn;
hgs
parents:
diff changeset
  1277
            break;
hgs
parents:
diff changeset
  1278
        case KGSSettingOff:
hgs
parents:
diff changeset
  1279
            selectedIndex = KGSOpLogoLbxIndexOff;
hgs
parents:
diff changeset
  1280
            break;
hgs
parents:
diff changeset
  1281
        }
hgs
parents:
diff changeset
  1282
hgs
parents:
diff changeset
  1283
    CDesCArrayFlat* items =
hgs
parents:
diff changeset
  1284
        iCoeEnv->ReadDesC16ArrayResourceL( R_OPLOGO_ON_OFF_SETTING_PAGE_LBX );
hgs
parents:
diff changeset
  1285
    CleanupStack::PushL( items );
hgs
parents:
diff changeset
  1286
hgs
parents:
diff changeset
  1287
    if ( !iOprtLogoSettingPage )
hgs
parents:
diff changeset
  1288
    	{
hgs
parents:
diff changeset
  1289
    	iOprtLogoSettingPage = new (ELeave) CAknRadioButtonSettingPage(
hgs
parents:
diff changeset
  1290
            R_OPERATOR_LOGO_SETTING_PAGE,
hgs
parents:
diff changeset
  1291
            selectedIndex,
hgs
parents:
diff changeset
  1292
            items );
hgs
parents:
diff changeset
  1293
    	}
hgs
parents:
diff changeset
  1294
hgs
parents:
diff changeset
  1295
    TBool ret = iOprtLogoSettingPage->ExecuteLD( CAknSettingPage::EUpdateWhenChanged );
hgs
parents:
diff changeset
  1296
    iOprtLogoSettingPage = NULL;
hgs
parents:
diff changeset
  1297
    CleanupStack::PopAndDestroy( items );
hgs
parents:
diff changeset
  1298
hgs
parents:
diff changeset
  1299
     // Match selected lbx item index to aOperatorLogoValue:
hgs
parents:
diff changeset
  1300
    switch( selectedIndex )
hgs
parents:
diff changeset
  1301
        {
hgs
parents:
diff changeset
  1302
        case KGSOpLogoLbxIndexOn:
hgs
parents:
diff changeset
  1303
            aOperatorLogoValue = KGSSettingOn;
hgs
parents:
diff changeset
  1304
            break;
hgs
parents:
diff changeset
  1305
        case KGSOpLogoLbxIndexOff:
hgs
parents:
diff changeset
  1306
            aOperatorLogoValue = KGSSettingOff;
hgs
parents:
diff changeset
  1307
            break;
hgs
parents:
diff changeset
  1308
        }
hgs
parents:
diff changeset
  1309
hgs
parents:
diff changeset
  1310
    if( aOperatorLogoValue != previousValue )
hgs
parents:
diff changeset
  1311
        {
hgs
parents:
diff changeset
  1312
        isValueUpdated = ETrue;
hgs
parents:
diff changeset
  1313
        }
hgs
parents:
diff changeset
  1314
    return isValueUpdated;
hgs
parents:
diff changeset
  1315
    }
hgs
parents:
diff changeset
  1316
hgs
parents:
diff changeset
  1317
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
  1318
// CGSDisplayPlugin::CloseDialog
hgs
parents:
diff changeset
  1319
//
hgs
parents:
diff changeset
  1320
//
hgs
parents:
diff changeset
  1321
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
  1322
//
hgs
parents:
diff changeset
  1323
void CGSDisplayPlugin::CloseDialog()
hgs
parents:
diff changeset
  1324
    {
hgs
parents:
diff changeset
  1325
    //Send ESC key sequence to setting dialog, so that it closes itself.
hgs
parents:
diff changeset
  1326
    if ( iOprtLogoSettingPage )
hgs
parents:
diff changeset
  1327
        {
hgs
parents:
diff changeset
  1328
        iReshowOprtSetPage = ETrue;
hgs
parents:
diff changeset
  1329
        TKeyEvent event;
hgs
parents:
diff changeset
  1330
        event.iCode = EKeyEscape;
hgs
parents:
diff changeset
  1331
        event.iScanCode = EStdKeyEscape;
hgs
parents:
diff changeset
  1332
        event.iRepeats = 0;
hgs
parents:
diff changeset
  1333
        TRAP_IGNORE( iCoeEnv->SimulateKeyEventL( event, EEventKeyDown );
hgs
parents:
diff changeset
  1334
                     iCoeEnv->SimulateKeyEventL( event, EEventKey );
hgs
parents:
diff changeset
  1335
                     iCoeEnv->SimulateKeyEventL( event, EEventKeyUp ); );
hgs
parents:
diff changeset
  1336
        }
hgs
parents:
diff changeset
  1337
    }
hgs
parents:
diff changeset
  1338
// End of File
hgs
parents:
diff changeset
  1339
hgs
parents:
diff changeset
  1340