cbs/cbsui/UiSrc/CCbsUiappAppUi.cpp
branchRCL_3
changeset 20 987c9837762f
parent 0 ff3b6d0fd310
equal deleted inserted replaced
19:7d48bed6ce0c 20:987c9837762f
       
     1 /*
       
     2 * Copyright (c) 2002-2009 Nokia Corporation and/or its subsidiary(-ies). 
       
     3 * All rights reserved.
       
     4 * This component and the accompanying materials are made available
       
     5 * under the terms of "Eclipse Public License v1.0"
       
     6 * which accompanies this distribution, and is available
       
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     8 *
       
     9 * Initial Contributors:
       
    10 * Nokia Corporation - initial contribution.
       
    11 *
       
    12 * Contributors:
       
    13 *
       
    14 * Description: 
       
    15 *  Implements the User Interface class.
       
    16 *
       
    17 *
       
    18 */
       
    19 
       
    20 
       
    21 // INCLUDES
       
    22 #include <bldvariant.hrh>       // KFeatureIdBtSap
       
    23 #include <e32property.h>        // RProperty
       
    24 #include <PSVariables.h>        // Property values
       
    25 #include <featmgr.h>            // FeatureManager
       
    26 #include <AknsConstants.h>      // KAknsMessageSkinChange
       
    27 #include <AknsUtils.h>          // CreateIconL, SkinInstance
       
    28 #include <cbsuiapp.mbg>         // TMbmCbsuiapp
       
    29 #include <avkon.hrh>
       
    30 #include <aknnotedialog.h>      // ELongTimeout
       
    31 #include <aknnotewrappers.h>
       
    32 #include <akntitle.h> 
       
    33 #include <hlplch.h>
       
    34 #include <BTSapDomainPSKeys.h>  // KPSUidBluetoothSapConnectionState, KBTSapConnectionState
       
    35 #include <data_caging_path_literals.hrh> // KDC_RESOURCE_FILES_DIR
       
    36 #include <cbsuiApp.rsg>                  // R_QTN_OFFLINE_NOT_POSSIBLE_SAP
       
    37 #include "CCbsUiappAppUi.h"
       
    38 #include "CCbsUiTopicListMonitor.h"
       
    39 #include "CbsUiPanic.h"
       
    40 #include "CCbsUiViewFactory.h"
       
    41 #include "MCbs.h"
       
    42 
       
    43 
       
    44 // CONSTANTS
       
    45 _LIT(KDirAndCbsUiAppMbmFile,"z:cbsuiapp.mbm");
       
    46 
       
    47 
       
    48 
       
    49 // ================= MEMBER FUNCTIONS =======================
       
    50 
       
    51 // C++ default constructor can NOT contain any code, that
       
    52 // might leave.
       
    53 
       
    54 CCbsUiappAppUi::CCbsUiappAppUi( MCbs& aServer ) : iServer( aServer )
       
    55     {
       
    56     }
       
    57 
       
    58 // Destructor
       
    59 CCbsUiappAppUi::~CCbsUiappAppUi()
       
    60     {
       
    61     delete iTopicListMonitor;
       
    62     FeatureManager::UnInitializeLib();
       
    63     }
       
    64 
       
    65 // ----------------------------------------------------
       
    66 // CCbsUiappAppUi::HandleResourceChangeL
       
    67 //
       
    68 //
       
    69 // ----------------------------------------------------
       
    70 void CCbsUiappAppUi::HandleResourceChangeL( TInt aType )
       
    71     {
       
    72     CAknViewAppUi::HandleResourceChangeL( aType );
       
    73 
       
    74     if( aType == KAknsMessageSkinChange )
       
    75         {
       
    76         // change application icon dynamically
       
    77         TBool reception;
       
    78         CEikStatusPane *sp = ( (CAknAppUi*)CEikonEnv::Static()->EikAppUi() )->StatusPane();
       
    79 		CAknTitlePane* title = STATIC_CAST(CAknTitlePane*, sp->
       
    80 	        ControlL( TUid::Uid(EEikStatusPaneUidTitle) ));
       
    81         MAknsSkinInstance* skin = AknsUtils::SkinInstance();
       
    82         iServer.GetReceptionStatus( reception );
       
    83 
       
    84         TParse parse; 
       
    85         parse.Set( KDirAndCbsUiAppMbmFile, &KDC_APP_BITMAP_DIR, NULL ); 
       
    86         TFileName mbmFileAndPathName(parse.FullName());
       
    87         
       
    88         if (reception)
       
    89             {
       
    90             
       
    91             CFbsBitmap* bmp = NULL;
       
    92             CFbsBitmap* maskbmp = NULL;
       
    93 #ifdef __SCALABLE_ICONS
       
    94             AknsUtils::CreateIconL( skin, KAknsIIDQgnMenuCbCxt, bmp,
       
    95                 maskbmp, mbmFileAndPathName, EMbmCbsuiappQgn_menu_cb,
       
    96                 EMbmCbsuiappQgn_menu_cb_mask );
       
    97 #else
       
    98             AknsUtils::CreateIconL( skin, KAknsIIDQgnMenuCbCxt, bmp,
       
    99                 maskbmp, mbmFileAndPathName, EMbmCbsuiappQgn_menu_cb_cxt,
       
   100                 EMbmCbsuiappQgn_menu_cb_cxt_mask );
       
   101 #endif    //__SCALABLE_ICONS
       
   102             title->SetSmallPicture(bmp, maskbmp, ETrue);
       
   103             }
       
   104         else
       
   105             {
       
   106             CFbsBitmap* bmp = NULL;
       
   107             CFbsBitmap* maskbmp = NULL;
       
   108 #ifdef __SCALABLE_ICONS
       
   109             AknsUtils::CreateIconL( skin, KAknsIIDQgnMenuCb2Cxt, bmp,
       
   110                 maskbmp, mbmFileAndPathName, EMbmCbsuiappQgn_menu_cb_2,
       
   111                 EMbmCbsuiappQgn_menu_cb_2_mask);
       
   112 #else
       
   113             AknsUtils::CreateIconL( skin, KAknsIIDQgnMenuCb2Cxt, bmp,
       
   114                 maskbmp, mbmFileAndPathName, EMbmCbsuiappQgn_menu_cb_2_cxt,
       
   115                 EMbmCbsuiappQgn_menu_cb_2_cxt_mask);
       
   116 #endif    //__SCALABLE_ICONS
       
   117             title->SetSmallPicture(bmp, maskbmp, ETrue);
       
   118             }
       
   119         }    
       
   120     }
       
   121 
       
   122 
       
   123 
       
   124 // Symbian OS default constructor can leave.
       
   125 void CCbsUiappAppUi::ConstructL()
       
   126     {
       
   127     BaseConstructL( EAknEnableSkin | EAknEnableMSK | EAknSingleClickCompatible );
       
   128 
       
   129     FeatureManager::InitializeLibL();
       
   130     if ( FeatureManager::FeatureSupported( KFeatureIdBtSap ) )
       
   131         {
       
   132         TInt simStatus;
       
   133         simStatus = CheckSimStateL();
       
   134         if ( EBTSapNotConnected != simStatus )
       
   135             {
       
   136             HBufC* text = iCoeEnv->AllocReadResourceLC( R_QTN_OFFLINE_NOT_POSSIBLE_SAP );
       
   137             CAknInformationNote* note = new( ELeave ) CAknInformationNote( ETrue );
       
   138             note->SetTimeout( CAknNoteDialog::ELongTimeout );
       
   139             note->ExecuteLD( *text );
       
   140             CleanupStack::PopAndDestroy( ); //text
       
   141             User::Leave( KErrGeneral );
       
   142             }
       
   143         }
       
   144     
       
   145     __ASSERT_DEBUG( &iServer, CbsUiPanic(EServerCreationFailedError) );
       
   146     __ASSERT_DEBUG( iServer.Connected(), CbsUiPanic(EErrServerDisconnected) );
       
   147     
       
   148     iTopicListMonitor = CCbsUiTopicListMonitor::NewL(iServer);
       
   149     
       
   150     CCbsUiViewFactory* viewFactory = new (ELeave) CCbsUiViewFactory(
       
   151         iServer, *iTopicListMonitor);
       
   152     CleanupStack::PushL(viewFactory);
       
   153     
       
   154     AddViewL( viewFactory->CreateTopicListViewLC() );
       
   155     CleanupStack::Pop(); // view
       
   156     
       
   157     AddViewL( viewFactory->CreateTopicViewLC() );
       
   158     CleanupStack::Pop(); // view
       
   159     
       
   160     AddViewL( viewFactory->CreateMsgViewLC() );
       
   161     CleanupStack::Pop(); // view
       
   162     
       
   163     AddViewL( viewFactory->CreateSettingsViewLC() );
       
   164     CleanupStack::Pop(); // view
       
   165     
       
   166     CleanupStack::PopAndDestroy(); // viewFactory
       
   167     }
       
   168 
       
   169 // ---------------------------------------------------------
       
   170 // CCbsUiappAppUi::HandleCommandL
       
   171 // 
       
   172 // 
       
   173 // ---------------------------------------------------------
       
   174 //
       
   175 void CCbsUiappAppUi::HandleCommandL( TInt aCommand )
       
   176     {
       
   177     switch ( aCommand )
       
   178         {
       
   179         case EAknCmdHelp:
       
   180             {
       
   181             HlpLauncher::LaunchHelpApplicationL(iEikonEnv->WsSession(), AppHelpContextL());
       
   182             break;
       
   183             }
       
   184         case EAknCmdExit:
       
   185         case EEikCmdExit:
       
   186             Exit();
       
   187             break;
       
   188         default:
       
   189             break;
       
   190         }
       
   191     }
       
   192 
       
   193 
       
   194 // ---------------------------------------------------------
       
   195 // CCbsUiappAppUi::CheckSimStateL
       
   196 //
       
   197 //
       
   198 // ---------------------------------------------------------
       
   199 TInt CCbsUiappAppUi::CheckSimStateL()
       
   200     {
       
   201     TInt btSapState( EBTSapNotConnected );
       
   202     TInt err = RProperty::Get( KPSUidBluetoothSapConnectionState, 
       
   203                                KBTSapConnectionState, 
       
   204                                btSapState );
       
   205     if ( err )
       
   206         {
       
   207         btSapState = EBTSapNotConnected;
       
   208         }
       
   209     return btSapState;
       
   210     }
       
   211 
       
   212 //  End of File