--- a/browserui/operatormenu/src/OperatorMenuAppUi.cpp Thu Aug 19 09:57:56 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,406 +0,0 @@
-/*
-* Copyright (c) 2003 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of the License "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: COperatorMenuAppUi implementation
-*
-*/
-
-
-// INCLUDE FILES
-#include "OperatorMenuAppUi.h"
-
-#include <featmgr.h>
-#include <bldvariant.hrh>
-#include <FeatMgr.h>
-
-#include <centralrepository.h>
-#include <menu2internalCRkeys.h>
-// CONSTANTS
-_LIT(KUrlLaunchParameter, "4 ");
-_LIT(KLongZeroLaunchParameter, "5");
-const TInt KUrlLaunchParamLength = 2;
-
-const TInt KCenRepBufferSize = 255;
-const TText KStrComma = ',';
-#define KOperatorMenuUID 0x10008D5E
-
-// ================= LOCAL FUNCTIONS ========================
-
-// ----------------------------------------------------------------------------
-// OperatorMenuUIDText
-//
-// @param aOperatorMenuUid buffer to set OperatorMenu UID as text
-// ----------------------------------------------------------------------------
-//
-void OperatorMenuUIDText( TDes& aOperatorMenuUid )
- {
- // TUid method name return UID in format [UID], but we need only UID part.
- TUidName uidName( TUid::Uid( KOperatorMenuUID ).Name() );
- aOperatorMenuUid.Copy( uidName.Mid( 1, KMaxUidName - 2 ) );
- aOperatorMenuUid.UpperCase();
- }
-
-// ----------------------------------------------------------------------------
-// SetOperatorMenuHiddenInAppShellL
-//
-// @param aHidden Whether OperatorMenu should be hidden
-// ----------------------------------------------------------------------------
-//
-void SetOperatorMenuHiddenInAppShellL( TBool aHidden )
- {
- CRepository* appShellRepository = CRepository::NewL( KCRUidMenu );
- CleanupStack::PushL( appShellRepository );
-
- // Read current value of the app shell hidden apps key
- TBuf<KCenRepBufferSize> keyContent;
- TInt err = appShellRepository->Get( KMenuHideApplication, keyContent );
- if ( err != KErrNone )
- {
- User::Leave( err );
- }
-
- TBool updated( EFalse );
-
- TBuf<8> OperatorMenuUid;
- OperatorMenuUIDText( OperatorMenuUid );
-
- // Search for PoC uid in the content (ignore case)
- TInt offset = keyContent.FindC( OperatorMenuUid );
- if ( offset == KErrNotFound && aHidden )
- {
- // PoC is not in the list but should be
- //
- __ASSERT_ALWAYS( keyContent.Length() + 9 < KCenRepBufferSize,
- User::Leave( KErrOverflow ) );
- if ( keyContent.Length() > 0 )
- {
- keyContent.Append( KStrComma );
- }
- keyContent.Append( OperatorMenuUid );
- updated = ETrue;
- }
- else if ( offset != KErrNotFound && !aHidden )
- {
- // PoC is in the list but shouldn't be
- //
- if ( offset == 0 )
- {
- // Delete PoC uid and following comma (if any)
- keyContent.Delete( 0, Min( 9, keyContent.Length() ) );
- updated = ETrue;
- }
- else if ( keyContent[offset - 1] == ',' )
- {
- // Delete PoC uid and preceding comma
- keyContent.Delete( offset - 1, 9 );
- updated = ETrue;
- }
- else
- {
- User::Leave( KErrCorrupt );
- }
- }
-
- if ( updated )
- {
- err = appShellRepository->Set( KMenuHideApplication, keyContent );
- if ( err != KErrNone )
- {
- User::Leave( err );
- }
- }
-
- CleanupStack::PopAndDestroy( appShellRepository );
- }
-
-// ----------------------------------------------------------
-// COperatorDelayedStarter::COperatorDelayedStarter(COperatorMenuAppUi* aOperatorMenuAppUi)
-// ----------------------------------------------------------
-//
-COperatorDelayedStarter::COperatorDelayedStarter(COperatorMenuAppUi* aOperatorMenuAppUi)
-: CActive( EPriorityLow )
- {
- CActiveScheduler::Add( this );
- iOperatorMenuAppUi = aOperatorMenuAppUi;
- }
-
-// ----------------------------------------------------------
-// COperatorDelayedStarter::~COperatorDelayedStarter()
-// ----------------------------------------------------------
-//
-COperatorDelayedStarter::~COperatorDelayedStarter()
- {
- Cancel();
- Deque();
- }
-
-// ----------------------------------------------------------
-// COperatorDelayedStarter::Start()
-// ----------------------------------------------------------
-//
-void COperatorDelayedStarter::Start()
- {
- SetActive();
- TRequestStatus* reqStat= &iStatus;
- User::RequestComplete( reqStat, KErrNone );
- }
-
-// ----------------------------------------------------------
-// COperatorDelayedStarter::RunL()
-// ----------------------------------------------------------
-//
-void COperatorDelayedStarter::RunL()
- {
- iOperatorMenuAppUi->LaunchBrowserL();
- }
-
-// ----------------------------------------------------------
-// COperatorDelayedStarter::
-// ----------------------------------------------------------
-//
-void COperatorDelayedStarter::DoCancel()
- {
- }
-
-// ================= MEMBER FUNCTIONS =======================
-//
-
-// ----------------------------------------------------------
-// COperatorMenuAppUi::COperatorMenuAppUi()
-// ----------------------------------------------------------
-//
-COperatorMenuAppUi::COperatorMenuAppUi()
- {
- }
-
-// ----------------------------------------------------------
-// COperatorMenuAppUi::ConstructL()
-// ----------------------------------------------------------
-//
-void COperatorMenuAppUi::ConstructL()
- {
- BaseConstructL(/* ENoScreenFurniture |*/ ENonStandardResourceFile /*| ENoAppResourceFile | EAknEnableSkin*/ );
-
- // Connect to HttpCacheManager central repository
- iRepository = CRepository::NewL( KCRUidCacheManager );
- // Connect to OperatorMenu central repository
- iRepositoryOp = CRepository::NewL( KCrUidOperatorMenu );
-
- //Launch the browser with the Operator specific Url
- //or with default AP's homepage if Operator domain url not available
- //LaunchBrowserL();
- iLaunched = EFalse;
-
- TBool OperatorMenuSupport = FeatureManager::FeatureSupported( KFeatureIdOperatorMenu );
- if ( OperatorMenuSupport )
- {
- iDelayedStarter = new (ELeave) COperatorDelayedStarter( this );
- iDelayedStarter->Start();
- }
- else
- {
- SetOperatorMenuHiddenInAppShellL( ETrue );
- Exit();
- }
- }
-// ----------------------------------------------------
-// COperatorMenuAppUi::~COperatorMenuAppUi()
-// ----------------------------------------------------
-//
-COperatorMenuAppUi::~COperatorMenuAppUi()
- {
- delete iRepository;
- delete iRepositoryOp;
-
- if( iOverriddenSettings )
- {
- delete iOverriddenSettings;
- iOverriddenSettings = NULL;
- }
- if( iDelayedStarter )
- {
- delete iDelayedStarter;
- iDelayedStarter = NULL;
- }
- }
-
-
-// ----------------------------------------------------
-// COperatorMenuAppUi::HandleKeyEventL(
-// ----------------------------------------------------
-//
-TKeyResponse COperatorMenuAppUi::HandleKeyEventL(
- const TKeyEvent& /*aKeyEvent*/,TEventCode /*aType*/ )
- {
- return EKeyWasNotConsumed;
- }
-
-// ----------------------------------------------------
-// COperatorMenuAppUi::HandleCommandL(TInt aCommand)
-// ----------------------------------------------------
-//
-void COperatorMenuAppUi::HandleCommandL( TInt aCommand )
- {
- switch ( aCommand )
- {
- case EAknSoftkeyBack:
- case EAknSoftkeyExit:
- case EEikCmdExit:
- case EAknCmdExit:
- {
- Exit();
- break;
- }
- default:
- break;
- }
- }
-
-// ----------------------------------------------------
-// COperatorMenuAppUi::HandleContentL
-// Handles the content coming from the embedded browser.
-// Returns EFalse: content will be passed on to framework
-// ----------------------------------------------------
-//
-TBool COperatorMenuAppUi::HandleContentL( const TDesC& /*aFileName*/, const CAiwGenericParamList& /*aParamList*/, TBool& aContinue )
- {
- aContinue = EFalse;
- return EFalse;
- }
-
-// ----------------------------------------------------
-// COperatorMenuAppUi::DownloadedContentHandlerReserved1
-// ( Reserved for future use )
-// ----------------------------------------------------
-//
-TAny* COperatorMenuAppUi::DownloadedContentHandlerReserved1( TAny* /*aAnyParam*/ )
- {
- // Empty implementation.
- return NULL;
- }
-
-// ----------------------------------------------------
-// COperatorMenuAppUi::LaunchBrowserL()
-// ----------------------------------------------------
-//
-void COperatorMenuAppUi::LaunchBrowserL()
- {
- TBool LaunchWithUrl( EFalse );
- TInt value;
-
- if( !iLaunched )
- {
- iLaunched = ETrue;
-
- //If centralrepository of HttpCahemanager is available...
- if ( iRepository )
- {
- // Read the URL from CacheManager central repository
- if ( KErrNone == iRepository->Get( KOperatorDomainUrl, iUrl ) )
- {
- LaunchWithUrl = ETrue;
- }
- }
-
- //If centralrepository of OperatorMenu is available...
- if ( iRepositoryOp )
- {
- delete iOverriddenSettings;
- iOverriddenSettings = NULL;
-
- iOverriddenSettings = new (ELeave) TBrowserOverriddenSettings;
-
- //Read the values to override
- if ( KErrNone == iRepositoryOp->Get( KOpMenuVerticalLayoutEnabled, value ) )
- {
- iOverriddenSettings->SetBrowserSetting( EBrowserOverSettingsSmallScreen, (TUint) value);
- }
- if ( KErrNone == iRepositoryOp->Get( KOpMenuAutoLoadImages, value ) )
- {
- iOverriddenSettings->SetBrowserSetting( EBrowserOverSettingsAutoLoadImages, (TUint) value);
- }
- if ( KErrNone == iRepositoryOp->Get( KOpMenuFontSize, value ) )
- {
- iOverriddenSettings->SetBrowserSetting( EBrowserOverSettingsFontSize, (TUint) value);
- }
- if ( KErrNone == iRepositoryOp->Get( KOpMenuFullScreen, value ) )
- {
- iOverriddenSettings->SetBrowserSetting( EBrowserOverSettingsFullScreen, (TUint) value);
- }
- if ( KErrNone == iRepositoryOp->Get( KOpMenuDefAp, value ) )
- {
- iOverriddenSettings->SetBrowserSetting( EBrowserOverSettingsCustomAp, (TUint) value);
- }
- }
- }
-
- // Launch browser according to the given launch type
- if( LaunchWithUrl && iUrl.Length() )
- {
- LaunchBrowserEmbeddedWithOperatorUrlL();
- }
- else
- {
- LaunchBrowserEmbeddedWithDefaultAPHomepageL();
- }
- Exit();
- }
-
-// ----------------------------------------------------
-// COperatorMenuAppUi::LaunchBrowserEmbeddedWithUrlL
-// ----------------------------------------------------
-//
-void COperatorMenuAppUi::LaunchBrowserEmbeddedWithOperatorUrlL()
- {
- //Pass the operator specific url to browser
- //(read from cachemanager ini file in LaunchBrowserL)
- HBufC* url = NULL;
- url = HBufC::NewLC( iUrl.Length() + KUrlLaunchParamLength );
- url->Des().Append( KUrlLaunchParameter );
- url->Des().Append( iUrl );
-
- CBrowserLauncher* launcher = CBrowserLauncher::NewLC();
-
- launcher->LaunchBrowserSyncEmbeddedL( url->Des(), this, iOverriddenSettings );
-
- CleanupStack::PopAndDestroy(); //Launcher
- CleanupStack::PopAndDestroy(); // url HBufC
- }
-
-// ----------------------------------------------------
-// COperatorMenuAppUi::NotifyExit
-// ----------------------------------------------------
-//
-void COperatorMenuAppUi::NotifyExit(TExitMode /*aMode*/)
- {
- }
-
-void COperatorMenuAppUi::LaunchBrowserEmbeddedWithDefaultAPHomepageL()
- {
- //Start the browser with parameter "5" to launch to default AP homepage
- CBrowserLauncher* launcher = CBrowserLauncher::NewLC();
-
- launcher->LaunchBrowserSyncEmbeddedL( KLongZeroLaunchParameter, this, iOverriddenSettings );
-
- CleanupStack::PopAndDestroy();
- }
-
-// ----------------------------------------------------
-// COperatorMenuAppUi::HandleStatusPaneSizeChange
-// ----------------------------------------------------
-//
-void COperatorMenuAppUi::HandleStatusPaneSizeChange()
- {
- }
-// End of File
-