# HG changeset patch # User Dremov Kirill (Nokia-D-MSW/Tampere) # Date 1270060549 -10800 # Node ID 5c11946e75b332cbfda3e2dece6b813e0d1a14d1 # Parent 5dedbccec665ca283a846437dcac2e699572abde Revision: 201012 Kit: 201013 diff -r 5dedbccec665 -r 5c11946e75b3 browserplugins/browseraudiovideoplugin/inc/BavpControllerVideo.h --- a/browserplugins/browseraudiovideoplugin/inc/BavpControllerVideo.h Mon Mar 15 12:40:52 2010 +0200 +++ b/browserplugins/browseraudiovideoplugin/inc/BavpControllerVideo.h Wed Mar 31 21:35:49 2010 +0300 @@ -20,7 +20,13 @@ #define BAVPCONTROLLERVIDEO_H // INCLUDES +#include + +#ifdef BRDO_VIDEOPLAYER2_ENABLED_FF +#include +#else #include +#endif #include "BavpController.h" // FORWARD DECLARATIONS @@ -385,19 +391,39 @@ TBool NoScreenSaverMode(); void SetDefaultAspectRatioL(); +#ifdef BRDO_VIDEOPLAYER2_ENABLED_FF + /** + * Handles a window rect update timer event where the timer completes the KWindowChangeUpdateTimeout + * with the system clock + * @since S60 v5.2 + * @param none + * @return void + */ + void UpdateWindowSize(); +#endif private: // Data // Used to call MMF for video functionality - CVideoPlayerUtility* iVideoPlayer; - - // Active object for display update - CIdle* iDisplayUpdater; - - // The full screen view - CBavpViewFullScreen* iBavpViewFullScreen; - //heart beat progress - CHeartbeat* iBackLightUpdater; - TRect iNormalScreenRect; +#ifdef BRDO_VIDEOPLAYER2_ENABLED_FF + /** + * MMF Client API has updated with new methods to control video display + *windows and video picture positioning to produce a new version of the API, + *CVideoPlayerUtility2. The new API is the preferred way to play video on graphics + *surfaces, and will support new features such as more flexible window positioning. + */ + CVideoPlayerUtility2* iVideoPlayer; +#else + CVideoPlayerUtility* iVideoPlayer; +#endif + // Active object for display update + CIdle* iDisplayUpdater; + + // The full screen view + CBavpViewFullScreen* iBavpViewFullScreen; + //heart beat progress + CHeartbeat* iBackLightUpdater; + TRect iNormalScreenRect; + RWindow* iActiveWindow; }; #endif // CBAVPCONTROLLERVIDEO_H diff -r 5dedbccec665 -r 5c11946e75b3 browserplugins/browseraudiovideoplugin/src/BavpControllerVideo.cpp --- a/browserplugins/browseraudiovideoplugin/src/BavpControllerVideo.cpp Mon Mar 15 12:40:52 2010 +0200 +++ b/browserplugins/browseraudiovideoplugin/src/BavpControllerVideo.cpp Wed Mar 31 21:35:49 2010 +0300 @@ -74,6 +74,9 @@ if ( iVideoPlayer ) { iVideoPlayer->Close(); +#ifdef BRDO_VIDEOPLAYER2_ENABLED_FF + iVideoPlayer->RemoveDisplayWindow(iBavpView->WindowInst()); +#endif delete iVideoPlayer; } @@ -101,7 +104,7 @@ // might leave. // ----------------------------------------------------------------------------- CBavpControllerVideo::CBavpControllerVideo( MBavpView* aView, TUint aAccessPtId ) - : CBavpController( aView, aAccessPtId ) + : CBavpController( aView, aAccessPtId ), iActiveWindow(NULL) { } @@ -187,6 +190,27 @@ { iVideoPlayer->SetPositionL( iClipInfo->iPosition ); } +#ifdef BRDO_VIDEOPLAYER2_ENABLED_FF + TRect rect( iBavpView->CoeControl().Rect() ); + CEikonEnv* eikon = CEikonEnv::Static(); + RWsSession& ws = eikon->WsSession(); + CWsScreenDevice* screenDevice = eikon->ScreenDevice(); + // Clip rect manipulation. + // Calculate the rect for display, including title and status pane + TRect clipRect = GetClipRect( rect ); + TRAPD(errAdd, iVideoPlayer->AddDisplayWindowL(CCoeEnv::Static()->WsSession(), + *screenDevice, + iBavpView->WindowInst(), + rect, + clipRect)); + TRAPD(errScale, iVideoPlayer->SetAutoScaleL(iBavpView->WindowInst(), EAutoScaleBestFit)); + if( ( errAdd != KErrNone ) && (iActiveWindow != &iBavpView->WindowInst()) ) + { + iActiveWindow = &iBavpView->WindowInst(); + } + Log( EFalse, _L("CBavpControllerVideo::InitVideoPlayerL() AddDisplayWindowL %d"), errAdd ); + Log( EFalse, _L("CBavpControllerVideo::InitVideoPlayerL() SetAutoScaleL %d"), errScale ); +#endif } // ----------------------------------------------------------------------------- @@ -211,6 +235,9 @@ if ( iVideoPlayer ) { iVideoPlayer->Close(); +#ifdef BRDO_VIDEOPLAYER2_ENABLED_FF + iVideoPlayer->RemoveDisplayWindow(iBavpView->WindowInst()); +#endif delete iVideoPlayer; iVideoPlayer = NULL; } @@ -231,11 +258,16 @@ Log( EFalse, _L("InitVideoPlayerL() - calling CVideoPlayerUtility::NewL") ); // Initialize the videoplayer +#ifdef BRDO_VIDEOPLAYER2_ENABLED_FF + iVideoPlayer = CVideoPlayerUtility2::NewL( *this, EMdaPriorityNormal, + EMdaPriorityPreferenceNone); +#else iVideoPlayer = CVideoPlayerUtility::NewL( *this, EMdaPriorityNormal, EMdaPriorityPreferenceNone, ws, *screenDevice, iBavpView->WindowInst(), rect, clipRect); +#endif // Register for loading notification iVideoPlayer->RegisterForVideoLoadingNotification( *this ); @@ -276,6 +308,9 @@ if ( iVideoPlayer ) { iVideoPlayer->Close(); +#ifdef BRDO_VIDEOPLAYER2_ENABLED_FF + iVideoPlayer->RemoveDisplayWindow(iBavpView->WindowInst()); +#endif delete iVideoPlayer; iVideoPlayer = NULL; } @@ -297,7 +332,12 @@ // Rotate only if screen rect height is greater than its width if ( screenRect.Height() > screenRect.Width() ) { - TRAP_IGNORE( iVideoPlayer->SetRotationL( EVideoRotationClockwise90 ) ); +#ifdef BRDO_VIDEOPLAYER2_ENABLED_FF + TRAP_IGNORE( iVideoPlayer->SetRotationL(iBavpView->WindowInst(), EVideoRotationClockwise90 ) ); +#else + TRAP_IGNORE( iVideoPlayer->SetRotationL( EVideoRotationClockwise90 ) ); +#endif + } } @@ -310,8 +350,13 @@ Log( EFalse, _L("CBavpControllerVideo::RevertToFullScreenL()")); CBavpPluginEcomMain* npm = (CBavpPluginEcomMain*)Dll::Tls(); bool fullscreen = true; - - iVideoPlayer->StopDirectScreenAccessL(); + + //This method is not supported when using CVideoPlayerUtility2, and will + //always leave with KErrNotSupported. instead of variating for new player + //we are ignoring the Leave + TRAP_IGNORE( iVideoPlayer->StopDirectScreenAccessL() ); + + iClipInfo->iInFullScreenMode = ETrue; npm->Funcs()->setvalue(iBavpView->bavPlugin()->getNPP(), @@ -331,12 +376,21 @@ CCoeControl* parentView = iBavpView->CoeControl().Parent(); parentView->SetRect(screenRect); iBavpView->CoeControl().SetExtent(TPoint(0,0), screenRect.Size()); - - iVideoPlayer->SetDisplayWindowL( ws, *screenDevice, + +#ifdef BRDO_VIDEOPLAYER2_ENABLED_FF + + iVideoPlayer->RemoveDisplayWindow(iBavpView->WindowInst()); + TRAPD(errAdd, iVideoPlayer->AddDisplayWindowL(ws,*screenDevice,iBavpView->WindowInst(), screenRect, screenRect)); + TRAPD(errScale, iVideoPlayer->SetAutoScaleL(iBavpView->WindowInst(), EAutoScaleBestFit)); + Log( EFalse, _L("CBavpControllerVideo::RevertToFullScreenL() errAdd %d"), errAdd); + Log( EFalse, _L("CBavpControllerVideo::RevertToFullScreenL() errScale %d"), errScale); +#else + iVideoPlayer->SetDisplayWindowL( ws, *screenDevice, iBavpView->WindowInst(), screenRect, screenRect ); RotateScreen90(); +#endif } // ----------------------------------------------------------------------------- @@ -352,7 +406,10 @@ CBavpPluginEcomMain* npm = (CBavpPluginEcomMain*)Dll::Tls(); bool fullscreen = false; - iVideoPlayer->StopDirectScreenAccessL(); + //This method is not supported when using CVideoPlayerUtility2, and will + //always leave with KErrNotSupported. instead of variating for new player + //we are ignoring the Leave + TRAP_IGNORE( iVideoPlayer->StopDirectScreenAccessL() ); npm->Funcs()->setvalue(iBavpView->bavPlugin()->getNPP(), NPPVpluginFullScreenBool, @@ -364,7 +421,12 @@ iClipInfo->iInFullScreenMode = EFalse; RefreshRectCoordinatesL(); - iVideoPlayer->SetRotationL( EVideoRotationNone ); +#ifdef BRDO_VIDEOPLAYER2_ENABLED_FF + iVideoPlayer->SetRotationL(iBavpView->WindowInst(), EVideoRotationNone ); +#else + iVideoPlayer->SetRotationL( EVideoRotationNone ); +#endif + iBavpView->ControllerStateChangedL(); } @@ -397,21 +459,24 @@ } if ( iVideoPlayer ) { + +#ifdef BRDO_VIDEOPLAYER2_ENABLED_FF + UpdateWindowSize(); +#else TRect rect( iBavpView->CoeControl().Rect() ); TRect wr(iBavpView->WindowRect()); //can have negative coordinates //if video scrolled out of viewport - // Windows' absolute position, relative to the current screen + CEikonEnv* eikon = CEikonEnv::Static(); + RWsSession& ws = eikon->WsSession(); + CWsScreenDevice* screenDevice = eikon->ScreenDevice(); + + // Windows' absolute position, relative to the current screen TPoint pt = iBavpView->WindowInst().AbsPosition(); rect.Move( pt.iX, pt.iY ); wr.Move( pt.iX, pt.iY ); - - CEikonEnv* eikon = CEikonEnv::Static(); - RWsSession& ws = eikon->WsSession(); - CWsScreenDevice* screenDevice = eikon->ScreenDevice(); - - // Reset clipRect + // Reset clipRect TRect clipRect = rect; clipRect = GetClipRect( rect ); @@ -427,11 +492,14 @@ iBavpView->WindowInst(), wr, clipRect ); ); - if( iCurrentState == EBavpPaused || iCurrentState == EBavpStopped || iCurrentState == EBavpPlayComplete ) - { - iVideoPlayer->RefreshFrameL(); - } - } + +#endif + if( iCurrentState == EBavpPaused || iCurrentState == EBavpStopped || iCurrentState == EBavpPlayComplete ) + { + iVideoPlayer->RefreshFrameL(); + } + + } //end of iVideoPlayer } // ----------------------------------------------------------------------------- @@ -1373,4 +1441,47 @@ } return ret; } +#ifdef BRDO_VIDEOPLAYER2_ENABLED_FF +// ----------------------------------------------------------------------------- +// CBavpControllerVideo::UpdateWindowSize +// Refreshing the window co-ordinates. +// ----------------------------------------------------------------------------- +/* + * MMF Client API has updated with new methods to control video display + * Windows and video picture positioning to produce a new version of the API, + * CVideoPlayerUtility2. The new API is the preferred way to play video on graphics + * surfaces, and will support new features such as more flexible window positioning. + * Updatewindow has made in separate method so that in future, timer can be + * implemented for redusing the call to update window. + */ +void CBavpControllerVideo::UpdateWindowSize() + { + TRect rect( iBavpView->CoeControl().Rect() ); + TRect wr(iBavpView->WindowRect()); //can have negative coordinates + //if video scrolled out of viewport + CEikonEnv* eikon = CEikonEnv::Static(); + RWsSession& ws = eikon->WsSession(); + CWsScreenDevice* screenDevice = eikon->ScreenDevice(); + // Reset clipRect + TRect clipRect = rect; + clipRect = GetClipRect( rect ); + if( ( iActiveWindow != &iBavpView->WindowInst() ) && ( iActiveWindow != NULL ) ) + { + //Remove the active window and add the new window + iVideoPlayer->RemoveDisplayWindow(iBavpView->WindowInst()); + TRAPD(errAdd, iVideoPlayer->AddDisplayWindowL(ws,*screenDevice,iBavpView->WindowInst(), wr, clipRect)); + TRAP_IGNORE(iVideoPlayer->SetAutoScaleL(iBavpView->WindowInst(), EAutoScaleBestFit)); + if( errAdd == KErrNone ) + iActiveWindow = &iBavpView->WindowInst(); + } + else + { + //window is already active, only needs the window size changed or position change + TRAPD(err1,iVideoPlayer->SetVideoExtentL(iBavpView->WindowInst(),wr)); + TRAPD(err2,iVideoPlayer->SetWindowClipRectL(iBavpView->WindowInst(),clipRect)); + Log( EFalse, _L("SetVideoExtent err1 = %d"), err1 ); + Log( EFalse, _L("SetVideoExtent err2 = %d"), err2 ); + } + } +#endif // End of File diff -r 5dedbccec665 -r 5c11946e75b3 browserplugins/browseraudiovideoplugin/src/BavpPlugin.cpp --- a/browserplugins/browseraudiovideoplugin/src/BavpPlugin.cpp Mon Mar 15 12:40:52 2010 +0200 +++ b/browserplugins/browseraudiovideoplugin/src/BavpPlugin.cpp Wed Mar 31 21:35:49 2010 +0300 @@ -405,6 +405,11 @@ } } } + else if(iBavpController && iPauseState && (iBavpController->State() == EBavpPaused) && (iIsForeGround)) + { + iPauseState = EFalse; + iBavpController->PlayL(); + } break; default: // Not implemented diff -r 5dedbccec665 -r 5c11946e75b3 browserui/browser/BrowserAppInc/BrowserAppUi.h --- a/browserui/browser/BrowserAppInc/BrowserAppUi.h Mon Mar 15 12:40:52 2010 +0200 +++ b/browserui/browser/BrowserAppInc/BrowserAppUi.h Wed Mar 31 21:35:49 2010 +0300 @@ -33,7 +33,9 @@ #include #include "WindowInfoProvider.h" #include - +#ifdef BRDO_IAD_UPDATE_ENABLED_FF +#include +#endif // FORWARD DECLARATIONS class CBrowserViewBase; class MCommsModel; @@ -74,7 +76,10 @@ class CBrowserPushMtmObserver; - +#ifdef BRDO_IAD_UPDATE_ENABLED_FF +class CIAUpdate; +class CIAUpdateParameters; +#endif // CLASS DECLARATION /** @@ -88,6 +93,9 @@ public MConnectionStageObserver, public MDownloadedContentHandler, public MWindowInfoProvider + #ifdef BRDO_IAD_UPDATE_ENABLED_FF + ,public MIAUpdateObserver + #endif { public: // Constructors and destructor /** @@ -709,6 +717,12 @@ public: void StopConnectionObserving(); +#ifdef BRDO_OCC_ENABLED_FF + //Retry flags + void SetRetryFlag(TBool flag); + TBool GetRetryFlag(); +#endif + private: /** @@ -783,8 +797,85 @@ * @param none */ void StartFetchHomePageL(); + +#ifdef BRDO_OCC_ENABLED_FF + //For Call back for reconnectivity + static TInt RetryConnectivity(TAny* aCBrowserAppUi); + TInt RetryInternetConnection(); +#endif - +#ifdef BRDO_IAD_UPDATE_ENABLED_FF + /** + * Check updates + */ + void CheckUpdatesL(); + + /** + * Clean IAD update parameters + */ + void CleanUpdateParams(); + + /** + * This callback function is called when the update checking operation has completed. + * + * @param aErrorCode The error code of the observed update operation. + * KErrNone for successful completion, + * otherwise a system wide error code. + * @param aAvailableUpdates Number of the updates that were found available. + */ + void CheckUpdatesComplete( TInt aErrorCode, TInt aAvailableUpdates ); + + /** + * This callback function is called when an update operation has completed. + * + * @param aErrorCode The error code of the completed update operation. + * KErrNone for successful completion, + * otherwise a system wide error code. + * @param aResult Details about the completed update operation. + * Ownership is transferred. + */ + void UpdateComplete( TInt aErrorCode, CIAUpdateResult* aResultDetails ); + + /** + * This callback function is called when an update query operation has completed. + * + * @param aErrorCode The error code of the observed query operation. + * KErrNone for successful completion, + * otherwise a system wide error code. + * @param aUpdateNow ETrue informs that an update operation should be started. + * EFalse informs that there is no need to start an update + * operation. + */ + void UpdateQueryComplete( TInt aErrorCode, TBool aUpdateNow ){return;} + + /** + * This function is checking the existence of the file containing last update time + * @param None + * @return TBool. + */ + TBool CheckUpdateFileAvailable(); + + /** + * This function is deleting of the file(if exist) containing last update time + * @param None + * @return None. + */ + void DeleteUpdateFile(); + + /** + * This function is will write the current time in file + * @param None + * @return None. + */ + void WriteUpdateFile(); + + /** + * This function will read the content of the file if it exists + * @param None + * @return TBool. + */ + TInt64 ReadUpdateFile(); +#endif protected: /** @@ -984,6 +1075,17 @@ TBool iBrowserAlreadyRunning; +#ifdef BRDO_OCC_ENABLED_FF + CPeriodic *iRetryConnectivity; + TBool reConnectivityFlag; +#endif + +#ifdef BRDO_IAD_UPDATE_ENABLED_FF + CIAUpdate* iUpdate; + CIAUpdateParameters* iParameters; + RFs iFs; +#endif + protected: CBrowserCommsModel* iCommsModel; diff -r 5dedbccec665 -r 5c11946e75b3 browserui/browser/BrowserAppSrc/BrowserAppUi.cpp --- a/browserui/browser/BrowserAppSrc/BrowserAppUi.cpp Mon Mar 15 12:40:52 2010 +0200 +++ b/browserui/browser/BrowserAppSrc/BrowserAppUi.cpp Wed Mar 31 21:35:49 2010 +0300 @@ -107,6 +107,12 @@ #include "BrowserPushMtmObserver.h" +#ifdef BRDO_IAD_UPDATE_ENABLED_FF +#include +#include +#include +#endif + //CONSTANTS const TUint KBookmarkId = 1; const TUint KUrlId = 4; @@ -124,6 +130,14 @@ const TInt KMinimumCDriveDiskSpace = 512 * 1024; +const TInt KRetryConnectivityTimeout( 2*1000*1000 ); // 2 seconds + +#ifdef BRDO_IAD_UPDATE_ENABLED_FF +const TUint KBrowser8xUID = 0x200267CC; +_LIT( KUpdateFileName, "lastupdatechecked.txt" ); +const TInt64 KMaxTimeToPostponeUpdate = 604800000000; +#endif + // ================= MEMBER FUNCTIONS ======================= // ----------------------------------------------------------------------------- @@ -158,6 +172,10 @@ { LOG_ENTERFN("CBrowserAppUi::~CBrowserAppUi"); +#ifdef BRDO_IAD_UPDATE_ENABLED_FF + iFs.Close(); +#endif + SetExitInProgress( ETrue ); if(iBrowserAsyncExit) { @@ -234,6 +252,9 @@ iFavouritesSess.Close(); LOG_WRITE( " iFavouritesSess.Close() deleted" ); +#ifdef BRDO_IAD_UPDATE_ENABLED_FF + CleanUpdateParams(); +#endif } // ----------------------------------------------------------------------------- @@ -264,11 +285,159 @@ iStartedUp = EFalse; LOG_WRITE( "Browser started embedded" ); } - +#ifdef BRDO_IAD_UPDATE_ENABLED_FF + User::LeaveIfError(iFs.Connect()); + // Check updates from IAD, continue UI launching even if something fails there + TRAP_IGNORE( CheckUpdatesL() ); +#endif + PERFLOG_STOP_WRITE("BrowserUI::ConstructL"); } - +#ifdef BRDO_IAD_UPDATE_ENABLED_FF +// --------------------------------------------------------- +// CBrowserAppUi::CheckUpdatesL +// --------------------------------------------------------- +void CBrowserAppUi::CheckUpdatesL() + { + LOG_ENTERFN("CBrowserAppUi::CheckUpdatesL"); + LOG_WRITE( "CBrowserAppUi::CheckUpdatesL() entering" ); + if ( FeatureManager::FeatureSupported( KFeatureIdIAUpdate ) ) + { + LOG_WRITE( "CBrowserAppUi::CheckUpdatesL() IAD Update supported" ); + TRAP_IGNORE( iUpdate = CIAUpdate::NewL( *this ) ); + LOG_WRITE( "CBrowserAppUi::CheckUpdatesL() IAD Update Client Created" ); + if ( iUpdate ) + { + LOG_WRITE( "CBrowserAppUi::CheckUpdatesL() creating IAD Update paramentes" ); + iParameters = CIAUpdateParameters::NewL(); + // Search for updates using SIS package UID + iParameters->SetUid( TUid::Uid( KBrowser8xUID ) ); + //check the updates + iUpdate->CheckUpdates( *iParameters ); + } + } + LOG_WRITE( "CBrowserAppUi::CheckUpdatesL() exiting" ); + } + +// --------------------------------------------------------- +// CBrowserAppUi::CheckUpdatesComplete +// rest of the details commented in the header +// --------------------------------------------------------- +// +void CBrowserAppUi::CheckUpdatesComplete( TInt aErrorCode, TInt aAvailableUpdates ) + { + LOG_ENTERFN("CBrowserAppUi::CheckUpdatesComplete"); + LOG_WRITE( "CBrowserAppUi::CheckUpdatesComplete - Entry" ); + TInt err; + TBool result; + TBool showDialog = EFalse; + + if ( aErrorCode == KErrNone ) + { + if ( aAvailableUpdates > 0 ) + { + LOG_WRITE( "CBrowserAppUi::CheckUpdatesComplete - update available" ); + //Check if the file is available in folder or not + if(CheckUpdateFileAvailable()) + { + LOG_WRITE( "CBrowserAppUi::CheckUpdatesComplete - update file available" ); + TTime timenow; + timenow.HomeTime(); + TInt64 time = timenow.Int64(); + TInt64 dataValue = ReadUpdateFile(); + //If the diference of the current time and the Previous Check time is more than 1 Week + //then show the dialog + if((time - dataValue)>KMaxTimeToPostponeUpdate) + { + LOG_WRITE( "CBrowserAppUi::CheckUpdatesComplete - diference of the current time and the time available in th file is more than 7 days" ); + showDialog = ETrue; + } + } + else + { + LOG_WRITE( "CBrowserAppUi::CheckUpdatesComplete - update file is not available" ); + showDialog = ETrue; + } + + if(showDialog) + { + HBufC* message = StringLoader::LoadLC(R_INSTALL_ADDON_BROWSER); + HBufC* lsc_now = StringLoader::LoadLC(R_INSTALL_BROWSER_NOW); + HBufC* rsc_later = StringLoader::LoadLC(R_INSTALL_BROWSER_LATER); + + TRAPD(err, result = iDialogsProvider->DialogConfirmL(_L(""), + *message, + *lsc_now, + *rsc_later)); + + CleanupStack::PopAndDestroy(3); //message, lsc_now, rsc_later + + if (err != KErrNone) + { + return ; + } + if ( result ) // user selected NOW + { + LOG_WRITE( "CBrowserAppUi::CheckUpdatesComplete - if file exists, just delete it." ); + // if file exists, just delete it. + DeleteUpdateFile(); + iUpdate->ShowUpdates( *iParameters ); + } + if ( !result ) // user selected LATER + { + LOG_WRITE( "CBrowserAppUi::CheckUpdatesComplete - create the file and store the current time." ); + //create the file and store the current time. + WriteUpdateFile(); + } + } + LOG_WRITE( "CBrowserAppUi::CheckUpdatesComplete - update available" ); + } + else + { + LOG_WRITE( "CBrowserAppUi::CheckUpdatesComplete - no update available" ); + // The answer was 'Later'. CIAUpdate object could be deleted + CleanUpdateParams(); + } + } + LOG_WRITE( "CBrowserAppUi::CheckUpdatesComplete - Exit" ); + } + +// ----------------------------------------------------------------------------- +// CBrowserAppUi::CleanUpdateParams +// ----------------------------------------------------------------------------- +// +void CBrowserAppUi::CleanUpdateParams() + { + LOG_ENTERFN("CBrowserAppUi::CleanUpdateParams"); + LOG_WRITE( "CBrowserAppUi::CleanUpdateParams() entering" ); + if(iUpdate) + { + delete iUpdate; + iUpdate = NULL; + } + if(iParameters) + { + delete iParameters; + iParameters = NULL; + } + LOG_WRITE( "CBrowserAppUi::CleanUpdateParams() exiting" ); + } + +// --------------------------------------------------------- +// CBrowserAppUi::UpdateComplete +// rest of the details commented in the header +// --------------------------------------------------------- +// +void CBrowserAppUi::UpdateComplete( TInt aErrorCode, CIAUpdateResult* aResult ) + { + LOG_ENTERFN("CBrowserAppUi::UpdateComplete"); + LOG_WRITE( "CBrowserAppUi::UpdateComplete - Entry" ); + delete aResult; // Ownership was transferred, so this must be deleted by the client + CleanUpdateParams(); + LOG_WRITE( "CBrowserAppUi::UpdateComplete - Exit" ); + } +#endif // ----------------------------------------------------------------------------- // CBrowserAppUi::InitBrowser() // ----------------------------------------------------------------------------- @@ -362,6 +531,10 @@ PERFLOG_STOPWATCH_START; iConnStageNotifier = CConnectionStageNotifierWCB::NewL(); + + //this is required, browser's connection oberver should be hit first. (incase of netscape plgins, transactions will be closed.) + iConnStageNotifier->SetPriority(CActive::EPriorityHigh); + PERFLOG_STOP_WRITE("\t StageNotif NewL"); BROWSER_LOG( ( _L( "StageNofier up" ) ) ); @@ -483,6 +656,9 @@ iPushMtmObserver = CBrowserPushMtmObserver::NewL( this ); iPushMtmObserver->StartObserver(); +#ifdef BRDO_OCC_ENABLED_FF + iRetryConnectivity = CPeriodic::NewL(CActive::EPriorityStandard); +#endif } //if (iStartedUp) } @@ -1274,12 +1450,6 @@ (Preferences().AccessPointSelectionMode() == EAlwaysAsk) ) { iRequestedAp = Preferences().DefaultAccessPoint(); -#ifdef BRDO_OCC_ENABLED_FF //Setting ap should not be taken if OCC is enabled, instead bookmark ap should be taken -#ifndef __WINS__ - iRequestedAp = aAccessPoint.ApId(); - BROWSER_LOG( ( _L( "Bookmark Iap id : %d" ), iRequestedAp ) ); -#endif -#endif } else if ( Preferences().AccessPointSelectionMode() == EDestination ) { @@ -2375,6 +2545,8 @@ return; } + BROWSER_LOG( ( _L( " CBrowserAppUi::ConnNeededStatusL First Stop Connection Observer" ) ) ); + StopConnectionObserving(); //Need to stop the connection observer first if ( !iConnStageNotifier->IsActive() ) @@ -2382,8 +2554,9 @@ BROWSER_LOG( ( _L( " CBrowserAppUi::ConnNeededStatusL Starting Connection Observer" ) ) ); TName* connectionName = Connection().ConnectionNameL(); CleanupStack::PushL( connectionName ); - iConnStageNotifier->StartNotificationL( - connectionName, KConnectionUninitialised, this); + + iConnStageNotifier->StartNotificationL(connectionName, KLinkLayerClosed, this); + CleanupStack::PopAndDestroy(); //connectionName } } @@ -2432,7 +2605,88 @@ } return buf; } - + +#ifdef BRDO_OCC_ENABLED_FF +// ----------------------------------------------------------------------------- +// CBrowserContentView::SetRetryFlag +// ----------------------------------------------------------------------------- +// +void CBrowserAppUi::SetRetryFlag(TBool flag) + { + LOG_ENTERFN("CBrowserAppUi::SetRetryFlag"); + BROWSER_LOG( ( _L(" CBrowserAppUi::SetRetryFlag flag: %d"), flag ) ); + reConnectivityFlag = flag; + } + +// ----------------------------------------------------------------------------- +// CBrowserContentView::GetRetryFlag +// ----------------------------------------------------------------------------- +// + TBool CBrowserAppUi::GetRetryFlag() + { + LOG_ENTERFN("CBrowserAppUi::GetRetryFlag"); + BROWSER_LOG( ( _L(" CBrowserAppUi::GetRetryFlag flag: %d"), reConnectivityFlag ) ); + return reConnectivityFlag; + } + +// ----------------------------------------------------------------------------- +// CBrowserContentView::RetryConnectivity +// ----------------------------------------------------------------------------- +// +TInt CBrowserAppUi::RetryConnectivity(TAny* aCBrowserAppUi) + { + LOG_ENTERFN("CBrowserAppUi::RetryConnectivity"); + __ASSERT_DEBUG(aCBrowserAppUi, Util::Panic( Util::EUninitializedData )); + + TInt err = ((CBrowserAppUi*)aCBrowserAppUi)->RetryInternetConnection(); + + BROWSER_LOG( ( _L(" CBrowserAppUi::RetryConnectivity Error: %d"), err ) ); + return err; + } + +TInt CBrowserAppUi::RetryInternetConnection() + { + LOG_ENTERFN("CBrowserAppUi::RetryInternetConnection"); + //First cancel the timer + if ( iRetryConnectivity && iRetryConnectivity->IsActive() ) + { + iRetryConnectivity->Cancel(); + BROWSER_LOG( ( _L( "CBrowserAppUi::RetryInternetConnection Timer Cancelled successfully " ) ) ); + } + TInt err = KErrNone; + if ( !iConnection->Connected() ) + { + TRAP_IGNORE( err = iConnection->StartConnectionL( ETrue ) ); + } + if( err == KErrNone ) + { + BROWSER_LOG( ( _L( "CBrowserAppUi::RetryInternetConnection Connection restablished successfully " ) ) ); + + BROWSER_LOG( ( _L( "CBrowserAppUi::RetryInternetConnection UNSET retry flags " ) ) ); + TRAP_IGNORE( BrCtlInterface().HandleCommandL( (TInt)TBrCtlDefs::ECommandUnSetRetryConnectivityFlag + (TInt)TBrCtlDefs::ECommandIdBase ) ); + SetRetryFlag(EFalse); + + TRAP_IGNORE(ConnNeededStatusL(err)); //Start the observer again + TRAP_IGNORE( BrCtlInterface().HandleCommandL( (TInt)TBrCtlDefs::ECommandRetryTransactions + (TInt)TBrCtlDefs::ECommandIdBase ) ); + //Let download manager knows about this new connection + TRAP_IGNORE( BrCtlInterface().HandleCommandL( (TInt)TBrCtlDefs::ECommandConnToDownloadManager + (TInt)TBrCtlDefs::ECommandIdBase ) ); + } + else + { + BROWSER_LOG( ( _L( "CBrowserAppUi::RetryInternetConnection Connection failed " ) ) ); + BROWSER_LOG( ( _L( "CBrowserAppUi::RetryInternetConnection unset retry flags " ) ) ); + TRAP_IGNORE( BrCtlInterface().HandleCommandL( (TInt)TBrCtlDefs::ECommandUnSetRetryConnectivityFlag + (TInt)TBrCtlDefs::ECommandIdBase ) ); + SetRetryFlag(EFalse); + BROWSER_LOG( ( _L( "CBrowserAppUi::RetryInternetConnection clear queued transactions " ) ) ); + TRAP_IGNORE( BrCtlInterface().HandleCommandL( (TInt)TBrCtlDefs::ECommandClearQuedTransactions + (TInt)TBrCtlDefs::ECommandIdBase ) ); + Display().StopProgressAnimationL(); //Stop Progress animation + iDialogsProvider->UploadProgressNoteL(0, 0, ETrue, (MBrowserDialogsProviderObserver *)this ); //Close the uploading dialog. + iDialogsProvider->CancelAll(); //connection has been lost, so cancel the authentication dialog. + } + + return err; + } +#endif // ----------------------------------------------------------------------------- // CBrowserAppUi::ConnectionStageAchievedL() @@ -2440,6 +2694,24 @@ // void CBrowserAppUi::ConnectionStageAchievedL() { +#ifdef BRDO_OCC_ENABLED_FF + LOG_ENTERFN("CBrowserAppUi::ConnectionStageAchievedL"); + //Disconnect first + BROWSER_LOG( ( _L( "CBrowserAppUi::ConnectionStageAchievedL Disconnecting..." ) ) ); + iConnection->Disconnect(); + + BROWSER_LOG( ( _L( "CBrowserAppUi::ConnectionStageAchievedL Some transactions are on-going. Need to reconnect. " ) ) ); + BROWSER_LOG( ( _L( "CBrowserAppUi::ConnectionStageAchievedL Set retry flags " ) ) ); + TRAP_IGNORE( BrCtlInterface().HandleCommandL( (TInt)TBrCtlDefs::ECommandSetRetryConnectivityFlag + (TInt)TBrCtlDefs::ECommandIdBase ) ); + SetRetryFlag(ETrue); + + if( iRetryConnectivity && iRetryConnectivity->IsActive()) + { + iRetryConnectivity->Cancel(); + } + iRetryConnectivity->Start(KRetryConnectivityTimeout, 0,TCallBack(RetryConnectivity,this)); + +#else // this function is called only when network is lost // because we set notifier for KAgentUnconnected only Display().StopProgressAnimationL(); @@ -2456,6 +2728,7 @@ // not needed as by that point HTTPSession was already shutdown by executing disconnect menu option // will cause a crash when user tries to quickly reconnect right after disconnecting, as HTTP session // is starting to initialize, while this call is trying to close it. +#endif } @@ -4205,5 +4478,102 @@ CloseContentViewL(); } } - +#ifdef BRDO_IAD_UPDATE_ENABLED_FF +// --------------------------------------------------------- +// CBrowserAppUi::CheckUpdateFileAvailable +// --------------------------------------------------------- +TBool CBrowserAppUi::CheckUpdateFileAvailable() + { + TBuf privatePath; + TBuf updateFileName; + iFs.PrivatePath( privatePath ); + updateFileName.Copy( privatePath ); + updateFileName.Append( KUpdateFileName ); + RFile updatefile; + TInt err = updatefile.Open( iFs, updateFileName, EFileRead ); + if ( err == KErrNotFound ) + { + LOG_WRITE( "CBrowserAppUi::CheckUpdateFileAvailable - update file not available" ); + return EFalse; + } + else + { + LOG_WRITE( "CBrowserAppUi::CheckUpdateFileAvailable - update file available" ); + updatefile.Close(); + } + return ETrue; + } + +// --------------------------------------------------------- +// CBrowserAppUi::WriteUpdateFile +// --------------------------------------------------------- +void CBrowserAppUi::WriteUpdateFile() + { + TBuf privatePath; + TBuf updateFileName; + iFs.PrivatePath( privatePath ); + updateFileName.Copy( privatePath ); + updateFileName.Append( KUpdateFileName ); + RFile updatefile; + TInt err = updatefile.Open( iFs, updateFileName, EFileWrite | EFileShareExclusive ); + if(err == KErrNotFound) + { + LOG_WRITE( "CBrowserAppUi::WriteUpdateFile - update file not available so create it" ); + err = updatefile.Create( iFs, updateFileName, EFileWrite | EFileShareExclusive ); + } + //Get the current time + TTime timenow; + timenow.HomeTime(); + TInt64 time = timenow.Int64(); + TBuf8<50> data; + data.AppendNum(time); + LOG_WRITE( "CBrowserAppUi::WriteUpdateFile - write the current time in update file" ); + updatefile.Write(data); + updatefile.Close(); + } + +// --------------------------------------------------------- +// CBrowserAppUi::DeleteUpdateFile +// --------------------------------------------------------- +void CBrowserAppUi::DeleteUpdateFile() + { + TBuf privatePath; + TBuf updateFileName; + iFs.PrivatePath( privatePath ); + updateFileName.Copy( privatePath ); + updateFileName.Append( KUpdateFileName ); + iFs.Delete(updateFileName); + } + +// --------------------------------------------------------- +// CBrowserAppUi::ReadUpdateFile +// --------------------------------------------------------- +TInt64 CBrowserAppUi::ReadUpdateFile() + { + TBool returnvalue = ETrue; + TBuf privatePath; + TBuf updateFileName; + //Get the private path then append the filename + iFs.PrivatePath( privatePath ); + updateFileName.Copy( privatePath ); + updateFileName.Append( KUpdateFileName ); + RFile updatefile; + TInt err = updatefile.Open( iFs, updateFileName, EFileRead ); + TInt64 dataValue = 0; + //If file is found + if ( err != KErrNotFound ) + { + TBuf8<50> readBuf; + err = updatefile.Read(readBuf); + updatefile.Close(); + if((err == KErrNone) && (readBuf.Length()>NULL)) + { + //Convert from TBuf8 to TInt64 + TLex8 lex(readBuf); + lex.Val(dataValue); + } + } + return dataValue; + } +#endif // End of File diff -r 5dedbccec665 -r 5c11946e75b3 browserui/browser/BrowserAppSrc/BrowserGotoPane.cpp --- a/browserui/browser/BrowserAppSrc/BrowserGotoPane.cpp Mon Mar 15 12:40:52 2010 +0200 +++ b/browserui/browser/BrowserAppSrc/BrowserGotoPane.cpp Wed Mar 31 21:35:49 2010 +0300 @@ -110,10 +110,10 @@ SetSearchTextL( KNullDesC ); } } - + + SetPointerCapture(aVisible); if (AknLayoutUtils::PenEnabled() && ( !iSearchEditor ) ) - { - SetPointerCapture(aVisible); + { if (aVisible) { ActivateVKB(); diff -r 5dedbccec665 -r 5c11946e75b3 browserui/browser/BrowserAppSrc/BrowserPreferences.cpp --- a/browserui/browser/BrowserAppSrc/BrowserPreferences.cpp Mon Mar 15 12:40:52 2010 +0200 +++ b/browserui/browser/BrowserAppSrc/BrowserPreferences.cpp Wed Mar 31 21:35:49 2010 +0300 @@ -545,11 +545,8 @@ TInt ap; // Read Accesss point selection mode for advanced settings -#ifdef BRDO_OCC_ENABLED_FF - const TInt selectionMode = EBrowserCenRepApSelModeAlwaysAsk; -#else const TInt selectionMode = GetIntValue( KBrowserAccessPointSelectionMode ); -#endif + switch ( selectionMode ) { case EBrowserCenRepApSelModeUserDefined: diff -r 5dedbccec665 -r 5c11946e75b3 browserui/browser/BrowserAppSrc/BrowserSpecialLoadObserver.cpp --- a/browserui/browser/BrowserAppSrc/BrowserSpecialLoadObserver.cpp Mon Mar 15 12:40:52 2010 +0200 +++ b/browserui/browser/BrowserAppSrc/BrowserSpecialLoadObserver.cpp Wed Mar 31 21:35:49 2010 +0300 @@ -125,6 +125,15 @@ __ASSERT_DEBUG( (aNewConn != NULL), Util::Panic( Util::EUninitializedData ) ); __ASSERT_DEBUG( (aBearerType != NULL), Util::Panic( Util::EUninitializedData ) ); +#ifdef BRDO_OCC_ENABLED_FF + TBool retryFlag = CBrowserAppUi::Static()->GetRetryFlag(); + if( retryFlag ) + { + BROWSER_LOG((_L("Retry is in progress"))); + return; + } +#endif + iApiProvider->SetProgressShown( ETrue ); TBool query( EFalse ); if( iApiProvider->Connection().Connected() ) @@ -143,7 +152,7 @@ TBool isValid( EFalse ); TUint32 ap( 0 ); TInt err( KErrNone ); -#ifndef BRDO_OCC_ENABLED_FF + BROWSER_LOG((_L("AP selectionMode: %d."), iApiProvider->Preferences().AccessPointSelectionMode() )); @@ -259,9 +268,7 @@ BROWSER_LOG((_L("wrong type of connection"))); } } //switch -#else //BRDO_OCC_ENABLED_FF - isValid = ETrue; -#endif //BRDO_OCC_ENABLED_FF + BROWSER_LOG((_L("isValid 2: %d"), isValid)); if( isValid ) { diff -r 5dedbccec665 -r 5c11946e75b3 browserui/browser/FavouritesSrc/BrowserBookmarksView.cpp --- a/browserui/browser/FavouritesSrc/BrowserBookmarksView.cpp Mon Mar 15 12:40:52 2010 +0200 +++ b/browserui/browser/FavouritesSrc/BrowserBookmarksView.cpp Wed Mar 31 21:35:49 2010 +0300 @@ -1524,7 +1524,10 @@ { aMenuPane->SetItemDimmed( EWmlCmdMoveToFolder, ETrue ); } - const CFavouritesItem* item = TheContainer()->Listbox()->CurrentItem(); + const CFavouritesItem* item; + if(TheContainer() && TheContainer()->Listbox()) + item = TheContainer()->Listbox()->CurrentItem(); + if ( ( item ) && ( ( item->Uid() == KFavouritesAdaptiveItemsFolderUid ) || ( item->ContextId() != NULL ) ) @@ -2195,7 +2198,10 @@ { Toolbar()->SetItemDimmed( EWmlCmdAddBookmark, aDimButtons , ETrue ); Toolbar()->SetItemDimmed( EWmlCmdGoToAddress, aDimButtons , ETrue ); + Toolbar()->SetItemDimmed( EWmlCmdGoToAddressAndSearch, aDimButtons , ETrue ); +#ifndef BRDO_SINGLE_CLICK_ENABLED_FF Toolbar()->SetItemDimmed( EWmlCmdDelete, aDimButtons , ETrue ); +#endif if (!aDimButtons) { // when undimming buttons we may not want them all back on diff -r 5dedbccec665 -r 5c11946e75b3 browserui/browser/FeedsInc/FeedsEditFeedDialog.h --- a/browserui/browser/FeedsInc/FeedsEditFeedDialog.h Mon Mar 15 12:40:52 2010 +0200 +++ b/browserui/browser/FeedsInc/FeedsEditFeedDialog.h Wed Mar 31 21:35:49 2010 +0300 @@ -271,6 +271,8 @@ TInt iPreviousFreq; TInt iSelectedDlgLine; TBool iActionCancelled; + TBool iDrag; + TPointerEvent iPointerEvent; }; #endif // FEEDS_EDIT_FEED_DIALOG_H diff -r 5dedbccec665 -r 5c11946e75b3 browserui/browser/FeedsSrc/FeedsEditFeedDialog.cpp --- a/browserui/browser/FeedsSrc/FeedsEditFeedDialog.cpp Mon Mar 15 12:40:52 2010 +0200 +++ b/browserui/browser/FeedsSrc/FeedsEditFeedDialog.cpp Wed Mar 31 21:35:49 2010 +0300 @@ -40,6 +40,7 @@ #include #include "FeedsEditFeedDialog.h" +#define pixelOffset 36 //Constants const TInt KAutoUpdatingOff = 0; @@ -135,11 +136,30 @@ } else { - CAknForm::HandlePointerEventL(aPointerEvent); - if ((iSelectedDlgLine == EFeedsEditAutomaticUpdatingId) && (aPointerEvent.iType == TPointerEvent::EButton1Up)) + CAknForm::HandlePointerEventL(aPointerEvent); + if ( aPointerEvent.iType == TPointerEvent::EButton1Down) { - HandleFreqCmdL(); + iPointerEvent = aPointerEvent; } + else if ( aPointerEvent.iType == TPointerEvent::EDrag ) + { + if((Abs(iPointerEvent.iPosition.iX - aPointerEvent.iPosition.iX) > pixelOffset ) || + (Abs(iPointerEvent.iPosition.iY - aPointerEvent.iPosition.iY) > pixelOffset )) + { + iDrag = ETrue; + } + } + else if ((iSelectedDlgLine == EFeedsEditAutomaticUpdatingId) && (aPointerEvent.iType == TPointerEvent::EButton1Up)) + { + if(!iDrag) + { + HandleFreqCmdL(); + } + else + { + iDrag = EFalse; + } + } } } diff -r 5dedbccec665 -r 5c11946e75b3 browserui/browser/Group/BrowserNG.mmp --- a/browserui/browser/Group/BrowserNG.mmp Mon Mar 15 12:40:52 2010 +0200 +++ b/browserui/browser/Group/BrowserNG.mmp Wed Mar 31 21:35:49 2010 +0300 @@ -84,3 +84,6 @@ LIBRARY touchfeedback.lib #endif // RD_TACTILE_FEEDBACK LIBRARY AknLayout2Scalable.lib +#ifdef BRDO_IAD_UPDATE_ENABLED_FF +LIBRARY iaupdateapi.lib +#endif diff -r 5dedbccec665 -r 5c11946e75b3 browserui/browser/SettingsSrc/SettingsContainer.cpp --- a/browserui/browser/SettingsSrc/SettingsContainer.cpp Mon Mar 15 12:40:52 2010 +0200 +++ b/browserui/browser/SettingsSrc/SettingsContainer.cpp Wed Mar 31 21:35:49 2010 +0300 @@ -370,10 +370,8 @@ // Default Access Point if ( !ApiProvider().Preferences().CustomAccessPointDefined() ) { - #if !defined(BRDO_OCC_ENABLED_FF) //Access point setting is not required if OCC is enabled AppendDefaultAccessPointL( itemArray, itemText ); - #endif } // Home Page diff -r 5dedbccec665 -r 5c11946e75b3 browserui/browser/SrcData/Browser.rss --- a/browserui/browser/SrcData/Browser.rss Mon Mar 15 12:40:52 2010 +0200 +++ b/browserui/browser/SrcData/Browser.rss Wed Mar 31 21:35:49 2010 +0300 @@ -23,7 +23,7 @@ NAME SERV // for Services // INCLUDES - +#include #include "WmlBrowserBuild.h" #include #include @@ -39,6 +39,9 @@ #include #include #include +#ifdef BRDO_IAD_UPDATE_ENABLED_FF +#include +#endif RESOURCE RSS_SIGNATURE { } @@ -933,4 +936,8 @@ RESOURCE TBUF r_browsers_sett_web_search_provider { buf = qtn_browsers_sett_web_search_provider; } RESOURCE TBUF r_is_web_search { buf = qtn_is_web_search; } RESOURCE TBUF r_is_label_not_selected { buf = qtn_is_label_not_selected; } - +#ifdef BRDO_IAD_UPDATE_ENABLED_FF +RESOURCE TBUF r_install_addon_browser { buf = qtn_install_addon_browser; } +RESOURCE TBUF r_install_browser_now { buf = qtn_swupdate_now; } +RESOURCE TBUF r_install_browser_later { buf = qtn_swupdate_later ; } +#endif diff -r 5dedbccec665 -r 5c11946e75b3 browserui/browser/help/data/xhtml.zip Binary file browserui/browser/help/data/xhtml.zip has changed diff -r 5dedbccec665 -r 5c11946e75b3 browserui/browser/help/inc/browser.hlp.hrh --- a/browserui/browser/help/inc/browser.hlp.hrh Mon Mar 15 12:40:52 2010 +0200 +++ b/browserui/browser/help/inc/browser.hlp.hrh Wed Mar 31 21:35:49 2010 +0300 @@ -1,10 +1,23 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "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: +* +*/ + // -// browser.hlp.hrh -// - -// -// File generated by CSXHelp Utilities on 2009-05-26 -// +// browser.hlp.hrh generated by CSXHelp Utilities. +// #ifndef __BROWSER_HLP_HRH__ #define __BROWSER_HLP_HRH__ @@ -25,5 +38,6 @@ _LIT(KOSS_HLP_SETTINGS_FOLDERS, "OSS_HLP_SETTINGS_FOLDERS"); // _LIT(KOSS_HLP_RSS_MAIN, "OSS_HLP_RSS_MAIN"); // _LIT(KOSS_HLP_SHORTCUTS, "OSS_HLP_SHORTCUTS"); // +_LIT(KOSS_HLP_KEYPAD, "OSS_HLP_KEYPAD"); // #endif \ No newline at end of file diff -r 5dedbccec665 -r 5c11946e75b3 browserui/browser/loc/WmlBrowser.loc --- a/browserui/browser/loc/WmlBrowser.loc Mon Mar 15 12:40:52 2010 +0200 +++ b/browserui/browser/loc/WmlBrowser.loc Wed Mar 31 21:35:49 2010 +0300 @@ -3221,4 +3221,9 @@ //r: 5.0 // #define qtn_is_recommendations "Here and Now" + +//d: Confirmation to install add-on browser +//l: popup_note_window +//r: 7.2 +#define qtn_install_addon_browser "A new browser is available. Would you like to install it?" // End of File diff -r 5dedbccec665 -r 5c11946e75b3 package_definition.xml --- a/package_definition.xml Mon Mar 15 12:40:52 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,43 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff -r 5dedbccec665 -r 5c11946e75b3 pushmtm/Group/PushMtmUi.mmp --- a/pushmtm/Group/PushMtmUi.mmp Mon Mar 15 12:40:52 2010 +0200 +++ b/pushmtm/Group/PushMtmUi.mmp Wed Mar 31 21:35:49 2010 +0300 @@ -100,6 +100,7 @@ LIBRARY PushMtmUtil.lib LIBRARY PushMsgEntry.lib LIBRARY SISLPushMsgUtils.lib +LIBRARY CENTRALREPOSITORY.lib #ifdef __SERIES60_HELP LIBRARY hlplch.lib // for "Help" options menu diff -r 5dedbccec665 -r 5c11946e75b3 pushmtm/MtmUiInc/PushMessageInfoDialog.h --- a/pushmtm/MtmUiInc/PushMessageInfoDialog.h Mon Mar 15 12:40:52 2010 +0200 +++ b/pushmtm/MtmUiInc/PushMessageInfoDialog.h Wed Mar 31 21:35:49 2010 +0300 @@ -118,6 +118,8 @@ // The following members help wrapping text. const CFont* iSecondColumnFont; ///< Reference to the font. Not owned. TInt iSecondColumnWidth; + TInt iPushSLEnabled; +; }; #endif // PUSHMESSAGEINFODIALOG_H diff -r 5dedbccec665 -r 5c11946e75b3 pushmtm/MtmUiInc/PushMtmUi.h --- a/pushmtm/MtmUiInc/PushMtmUi.h Mon Mar 15 12:40:52 2010 +0200 +++ b/pushmtm/MtmUiInc/PushMtmUi.h Wed Mar 31 21:35:49 2010 +0300 @@ -360,6 +360,8 @@ * Get the resource file name for this MTM UI. */ void GetResourceFileName( TFileName& aFileName ) const; + private: + TInt iPushSLEnabled; }; #endif // PUSHMTMUI_H diff -r 5dedbccec665 -r 5c11946e75b3 pushmtm/MtmUiInc/PushSettingsDialog.h --- a/pushmtm/MtmUiInc/PushSettingsDialog.h Mon Mar 15 12:40:52 2010 +0200 +++ b/pushmtm/MtmUiInc/PushSettingsDialog.h Wed Mar 31 21:35:49 2010 +0300 @@ -263,6 +263,7 @@ HBufC* iPreviousTitleText; ///< Restore it on termination. Has. TBool iRestoreSP; /**< EFalse, if it is not necessary * to restore status pane. */ + TInt iPushSLEnabled; }; #endif // PUSHSETTINGSDIALOG_H diff -r 5dedbccec665 -r 5c11946e75b3 pushmtm/MtmUiSrc/PushMessageInfoDialog.cpp --- a/pushmtm/MtmUiSrc/PushMessageInfoDialog.cpp Mon Mar 15 12:40:52 2010 +0200 +++ b/pushmtm/MtmUiSrc/PushMessageInfoDialog.cpp Wed Mar 31 21:35:49 2010 +0300 @@ -39,9 +39,9 @@ #include #include #include - +#include "PushMtmPrivateCRKeys.h" +#include // CONSTANTS - LOCAL_D const TInt KNoResource = 0; LOCAL_D const TInt KArrayGranularity = 16; LOCAL_D const TReal KReal1024 = 1024.0; @@ -91,12 +91,17 @@ void CPushMessageInfoDialog::ConstructL( CMsvSession& aMsvSession, TMsvId aId ) { PUSHLOG_ENTERFN("CPushMessageInfoDialog::ConstructL"); - __ASSERT_DEBUG( !iListBox && !iListBoxModel, UiPanic( EPushMtmUiPanAlreadyInitialized ) ); FeatureManager::InitializeLibL(); + + CRepository* PushSL = CRepository::NewL( KCRUidPushMtm ); + CleanupStack::PushL( PushSL ); + User::LeaveIfError( PushSL->Get( KPushMtmServiceEnabled , iPushSLEnabled ) ); + PUSHLOG_WRITE_FORMAT(" iPushSLEnabled: <%d>",iPushSLEnabled); + CleanupStack::PopAndDestroy( PushSL ); // Add resource file. TParse* fileParser = new (ELeave) TParse; @@ -299,13 +304,11 @@ msg = CSIPushMsgEntry::NewL(); PUSHLOG_WRITE(" SI"); } -#ifdef __SERIES60_PUSH_SL - else if ( bioType == KUidWapPushMsgSL.iUid ) + else if(iPushSLEnabled && bioType == KUidWapPushMsgSL.iUid) { msg = CSLPushMsgEntry::NewL(); PUSHLOG_WRITE(" SL"); } -#endif // __SERIES60_PUSH_SL #ifdef __SERIES60_PUSH_SP else if ( bioType == KUidWapPushMsgUnknown.iUid ) { @@ -365,8 +368,7 @@ CleanupStack::PopAndDestroy( convertedUrl ); } } -#ifdef __SERIES60_PUSH_SL - else if ( msg->PushMsgType() == KUidWapPushMsgSL.iUid ) + else if ( iPushSLEnabled && msg->PushMsgType() == KUidWapPushMsgSL.iUid ) { CSLPushMsgEntry* sl = STATIC_CAST( CSLPushMsgEntry*, msg ); const TPtrC url = sl->Url(); @@ -383,7 +385,6 @@ CleanupStack::PopAndDestroy( convertedUrl ); } } -#endif // __SERIES60_PUSH_SL // ************************************************************************ // Information item: Message body/text (SI specific). @@ -496,13 +497,11 @@ CSIPushMsgEntry* si = STATIC_CAST( CSIPushMsgEntry*, msg ); messageSize = (TReal)si->Text().Size() / KReal1024; } -#ifdef __SERIES60_PUSH_SL - else if ( msg->PushMsgType() == KUidWapPushMsgSL.iUid ) + else if ( iPushSLEnabled && msg->PushMsgType() == KUidWapPushMsgSL.iUid ) { CSLPushMsgEntry* sl = STATIC_CAST( CSLPushMsgEntry*, msg ); messageSize = (TReal)sl->Url().Size() / KReal1024; } -#endif // __SERIES60_PUSH_SL #ifdef __SERIES60_PUSH_SP else if ( msg->PushMsgType() == KUidWapPushMsgUnknown.iUid ) { diff -r 5dedbccec665 -r 5c11946e75b3 pushmtm/MtmUiSrc/PushMtmUi.cpp --- a/pushmtm/MtmUiSrc/PushMtmUi.cpp Mon Mar 15 12:40:52 2010 +0200 +++ b/pushmtm/MtmUiSrc/PushMtmUi.cpp Wed Mar 31 21:35:49 2010 +0300 @@ -44,6 +44,8 @@ #include #include #include +#include "PushMtmPrivateCRKeys.h" +#include // ================= MEMBER FUNCTIONS ======================= @@ -77,6 +79,10 @@ CRegisteredMtmDll& aRegisteredMtmDll ) : CBaseMtmUi( aBaseMtm, aRegisteredMtmDll ) { + CRepository* PushSL = CRepository::NewL( KCRUidPushMtm ); + CleanupStack::PushL( PushSL ); + User::LeaveIfError( PushSL->Get( KPushMtmServiceEnabled , iPushSLEnabled ) ); + CleanupStack::PopAndDestroy( PushSL ); } // --------------------------------------------------------- @@ -248,10 +254,7 @@ CMsvOperation* operation = NULL; if ( - tEntry.iBioType == KUidWapPushMsgSI.iUid -#ifdef __SERIES60_PUSH_SL - || tEntry.iBioType == KUidWapPushMsgSL.iUid -#endif // __SERIES60_PUSH_SL + tEntry.iBioType == KUidWapPushMsgSI.iUid || (iPushSLEnabled && tEntry.iBioType == KUidWapPushMsgSL.iUid) ) { TEditorParameters editorParameters; diff -r 5dedbccec665 -r 5c11946e75b3 pushmtm/MtmUiSrc/PushSettingsDialog.cpp --- a/pushmtm/MtmUiSrc/PushSettingsDialog.cpp Mon Mar 15 12:40:52 2010 +0200 +++ b/pushmtm/MtmUiSrc/PushSettingsDialog.cpp Wed Mar 31 21:35:49 2010 +0300 @@ -39,7 +39,8 @@ #include #include #include - +#include "PushMtmPrivateCRKeys.h" +#include // ================= MEMBER FUNCTIONS ======================= // --------------------------------------------------------- @@ -75,6 +76,11 @@ void CPushSettingsDialog::ConstructL() { // Add resource file. + CRepository* PushSL = CRepository::NewL( KCRUidPushMtm ); + CleanupStack::PushL( PushSL ); + User::LeaveIfError( PushSL->Get( KPushMtmServiceEnabled , iPushSLEnabled ) ); + CleanupStack::PopAndDestroy( PushSL ); + TParse* fileParser = new (ELeave) TParse; // Unnecessary to call CleanupStack::PushL( fileParser ); fileParser->Set( KPushMtmUiResourceFileAndDrive, &KDC_MTM_RESOURCE_DIR, NULL ); @@ -192,15 +198,15 @@ ( EServiceReception, R_PUSHSD_RECEPT, iModel->ServiceReception() ? R_PUSHSD_RECEP_ON : R_PUSHSD_RECEP_OFF ); -#ifdef __SERIES60_PUSH_SL +if(iPushSLEnabled) + { // Service loading (SL specific). ConstructAndAppendItemTextL ( EServiceLoadingType, R_PUSHSD_LOADING, ( iModel->ServiceLoadingType() == CPushMtmSettings::EAutomatic ) ? R_PUSHSD_LOAD_AUTOM : R_PUSHSD_LOAD_MAN ); - -#endif //__SERIES60_PUSH_SL + } } // --------------------------------------------------------- @@ -288,10 +294,9 @@ break; } -#ifdef __SERIES60_PUSH_SL - case EServiceLoadingType: { + if(iPushSLEnabled){ if ( iModel->ServiceLoadingType() == CPushMtmSettings::EManual ) { // Display a confirmation dialog first. @@ -306,10 +311,10 @@ // Do not show confirmation dialog. iModel->SetServiceLoadingType( CPushMtmSettings::EManual ); } + }//End iPushSLEnabled break; } -#endif //__SERIES60_PUSH_SL default: { @@ -383,13 +388,21 @@ HBufC* CPushSettingsDialog::ConstructSettingTitleL ( const TSettingType aSettingType ) const { - const TInt titleResId = - aSettingType == EServiceReception ? R_PUSHSD_RECEPT : -#ifdef __SERIES60_PUSH_SL - aSettingType == EServiceLoadingType ? R_PUSHSD_LOADING : -#endif //__SERIES60_PUSH_SL - KErrNotFound; + TInt titleResId = 0; + if(aSettingType == EServiceReception ) + titleResId = R_PUSHSD_RECEPT; + + else if (aSettingType == EServiceLoadingType) + { + if(iPushSLEnabled ) + titleResId = R_PUSHSD_LOADING; + } + + else + titleResId = KErrNotFound; + + __ASSERT_DEBUG( titleResId != KErrNotFound, UiPanic( EPushMtmUiPanNotInitialized ) ); @@ -407,20 +420,25 @@ TInt& aVal2ResId ) const { - aVal1ResId = - aSettingType == EServiceReception ? R_PUSHSD_RECEP_ON : -#ifdef __SERIES60_PUSH_SL - aSettingType == EServiceLoadingType ? R_PUSHSD_LOAD_AUTOM : -#endif //__SERIES60_PUSH_SL - KErrNotFound; - - aVal2ResId = - aSettingType == EServiceReception ? R_PUSHSD_RECEP_OFF : -#ifdef __SERIES60_PUSH_SL - aSettingType == EServiceLoadingType ? R_PUSHSD_LOAD_MAN : -#endif //__SERIES60_PUSH_SL - KErrNotFound; - + if( aSettingType == EServiceReception) + aVal1ResId = R_PUSHSD_RECEP_ON; + + else if((aSettingType == EServiceLoadingType) && iPushSLEnabled ) + { + aVal1ResId = R_PUSHSD_LOAD_AUTOM; + } + else + aVal1ResId = KErrNotFound; + + + if( aSettingType == EServiceReception ) + aVal2ResId = R_PUSHSD_RECEP_OFF; + else if( aSettingType == EServiceLoadingType && iPushSLEnabled) + aVal2ResId = R_PUSHSD_LOAD_MAN; + else + aVal2ResId = KErrNotFound; + + __ASSERT_DEBUG( aVal1ResId != KErrNotFound && aVal2ResId != KErrNotFound, UiPanic( EPushMtmUiPanNotInitialized ) ); @@ -437,14 +455,20 @@ TInt val2ResId( KErrNotFound ); ConstructSettingValueArray( aSettingType, val1ResId, val2ResId ); - const TBool firstSelected = - aSettingType == EServiceReception ? iModel->ServiceReception() : -#ifdef __SERIES60_PUSH_SL - aSettingType == EServiceLoadingType ? iModel->ServiceLoadingType() == - CPushMtmSettings::EAutomatic : -#endif //__SERIES60_PUSH_SL - EFalse; - + TBool firstSelected; + + if(aSettingType == EServiceReception ) + firstSelected = iModel->ServiceReception(); + + else if( aSettingType == EServiceLoadingType && iPushSLEnabled ) + { + firstSelected = (iModel->ServiceLoadingType() == CPushMtmSettings::EAutomatic); + } + else + firstSelected = EFalse; + + + aIndex = firstSelected ? 0 : 1; return firstSelected ? val1ResId : val2ResId; } @@ -490,30 +514,29 @@ break; } -#ifdef __SERIES60_PUSH_SL - case EServiceLoadingType: { - if ( aIndex == 0 ) - // iModel->ServiceLoadingType() == CPushMtmSettings::EManual + if(iPushSLEnabled) { - // Display a confirmation dialog first. - if ( ShowServiceLoadingTypeConfirmationL() ) + if ( aIndex == 0 ) + // iModel->ServiceLoadingType() == CPushMtmSettings::EManual { - iModel->SetServiceLoadingType - ( CPushMtmSettings::EAutomatic ); + // Display a confirmation dialog first. + if ( ShowServiceLoadingTypeConfirmationL() ) + { + iModel->SetServiceLoadingType + ( CPushMtmSettings::EAutomatic ); + } } - } - else - { - // Do not show confirmation dialog. - iModel->SetServiceLoadingType( CPushMtmSettings::EManual ); + else + { + // Do not show confirmation dialog. + iModel->SetServiceLoadingType( CPushMtmSettings::EManual ); + } } break; } -#endif //__SERIES60_PUSH_SL - default: { __ASSERT_DEBUG( EFalse, diff -r 5dedbccec665 -r 5c11946e75b3 pushmtm/MtmUtilInc/PushMtmPrivateCRKeys.h --- a/pushmtm/MtmUtilInc/PushMtmPrivateCRKeys.h Mon Mar 15 12:40:52 2010 +0200 +++ b/pushmtm/MtmUtilInc/PushMtmPrivateCRKeys.h Wed Mar 31 21:35:49 2010 +0300 @@ -28,4 +28,7 @@ // Read only White List const TUint32 KPushMtmWhiteList = 0x0000003; +//To Enable to Disable PUSH_SL Service in Run-time +const TUint32 KPushMtmServiceEnabled = 0x0000004; + #endif // PUSHMTMPRIVATECRKEYS_H \ No newline at end of file diff -r 5dedbccec665 -r 5c11946e75b3 pushmtm/Plugins/Group/Bld.inf --- a/pushmtm/Plugins/Group/Bld.inf Mon Mar 15 12:40:52 2010 +0200 +++ b/pushmtm/Plugins/Group/Bld.inf Wed Mar 31 21:35:49 2010 +0300 @@ -15,7 +15,8 @@ * */ - +#include +#include "../../../../../mw/web/web_plat/browser_platform_api/inc/browser_platform_variant.hrh" PRJ_PLATFORMS @@ -26,7 +27,7 @@ PRJ_MMPFILES -#if defined( __S60_32__) || defined( __S60_50__) +#if defined( __S60_32__) || defined( __PLATFORM_VERSION_S60_50__) || defined( __PLATFORM_VERSION_5250__) // Remove Symbian Push Content Handler gnumakefile PushContentHandlerClean.mk #endif diff -r 5dedbccec665 -r 5c11946e75b3 pushmtm/Plugins/Group/PushContentHandlerClean.mk --- a/pushmtm/Plugins/Group/PushContentHandlerClean.mk Mon Mar 15 12:40:52 2010 +0200 +++ b/pushmtm/Plugins/Group/PushContentHandlerClean.mk Wed Mar 31 21:35:49 2010 +0300 @@ -75,7 +75,6 @@ if exist "$(TARGETMTMDIRDLL)\$(TARGETMTMDLL)" del "$(TARGETMTMDIRDLL)\$(TARGETMTMDLL)" do_nothing: - rem do nothing # # The targets invoked by abld diff -r 5dedbccec665 -r 5c11946e75b3 pushmtm/Plugins/Group/PushMtmPushContentHandler.mmp --- a/pushmtm/Plugins/Group/PushMtmPushContentHandler.mmp Mon Mar 15 12:40:52 2010 +0200 +++ b/pushmtm/Plugins/Group/PushMtmPushContentHandler.mmp Wed Mar 31 21:35:49 2010 +0300 @@ -65,12 +65,10 @@ SOURCE PushContentHandlerGroupProxy.cpp SOURCE PushContentHandlerPanic.cpp SOURCE PushContentHandlerUtils.cpp -#ifdef __SERIES60_PUSH_SL SOURCE PushMtmAutoFetchOperation.cpp SOURCE PushMtmFetchOperation.cpp SOURCE PushMtmCacheSupply.cpp SOURCE PushMtmCacheDataSupplier.cpp -#endif // __SERIES60_PUSH_SL SOURCE si_dict.c SOURCE sl_dict.c SOURCE StringResourceReader.cpp @@ -84,14 +82,10 @@ MACRO __TEST_LOG__ #endif -#ifdef __SERIES60_PUSH_SL LIBRARY apengine.lib -#endif // __SERIES60_PUSH_SL -#if defined(__SERIES60_PUSH_SP) || defined(__SERIES60_PUSH_SL) LIBRARY apgrfx.lib LIBRARY apmime.lib -#endif // __SERIES60_PUSH_SP || __SERIES60_PUSH_SL LIBRARY bafl.lib @@ -102,9 +96,7 @@ LIBRARY CharConv.lib -#ifdef __SERIES60_PUSH_SL LIBRARY commdb.lib -#endif // __SERIES60_PUSH_SL #ifdef __SERIES60_PUSH_SP LIBRARY commonui.lib @@ -113,16 +105,13 @@ LIBRARY ECom.lib LIBRARY efsrv.lib -#ifdef __SERIES60_PUSH_SL LIBRARY esock.lib -#endif // __SERIES60_PUSH_SL #ifdef __SERIES60_PUSH_SP LIBRARY etext.lib #endif // __SERIES60_PUSH_SP LIBRARY euser.lib - #ifdef __TEST_LOG_MMP DEBUGLIBRARY flogger.lib #endif @@ -131,12 +120,10 @@ LIBRARY gsmu.lib #endif // __SERIES60_PUSH_SP -#ifdef __SERIES60_PUSH_SL LIBRARY http.lib LIBRARY BrowserCache.lib LIBRARY HttpFilterCommon.lib LIBRARY inetprotutil.lib -#endif // __SERIES60_PUSH_SL #ifdef __SERIES60_PUSH_SP LIBRARY MiscPushMsgUtils.lib @@ -153,9 +140,7 @@ LIBRARY WapPushUtils.lib -#ifdef __SERIES60_PUSH_SL LIBRARY ws32.lib -#endif // __SERIES60_PUSH_SL LIBRARY cXmlParser.lib LIBRARY CENTRALREPOSITORY.lib diff -r 5dedbccec665 -r 5c11946e75b3 pushmtm/Plugins/PushContentHandler/CSLContentHandler.cpp --- a/pushmtm/Plugins/PushContentHandler/CSLContentHandler.cpp Mon Mar 15 12:40:52 2010 +0200 +++ b/pushmtm/Plugins/PushContentHandler/CSLContentHandler.cpp Wed Mar 31 21:35:49 2010 +0300 @@ -42,6 +42,8 @@ #include #include #include +#include "PushMtmPrivateCRKeys.h" +#include // CONSTANTS @@ -119,10 +121,14 @@ void CSLContentHandler::ConstructL() { PUSHLOG_ENTERFN("CSLContentHandler::ConstructL") - + + CRepository* PushSL = CRepository::NewL( KCRUidPushMtm ); + CleanupStack::PushL( PushSL ); + User::LeaveIfError( PushSL->Get( KPushMtmServiceEnabled , iPushSLEnabled ) ); + CleanupStack::PopAndDestroy( PushSL ); + CPushContentHandlerBase::ConstructL(); // Added to Active Scheduler. - PUSHLOG_LEAVEFN("CSLContentHandler::ConstructL") } @@ -136,18 +142,16 @@ DoCollectGarbageL(); -#ifdef __SERIES60_PUSH_SL - iState = EFilteringAndParsing; -#else // __SERIES60_PUSH_SL - // Do nothing - message is discarded. - iState = EDone; -#endif // __SERIES60_PUSH_SL + if(iPushSLEnabled) + iState = EFilteringAndParsing; + else + iState = EDone; + IdleComplete(); PUSHLOG_LEAVEFN("CSLContentHandler::CollectGarbageL") } -#ifdef __SERIES60_PUSH_SL // --------------------------------------------------------- // CSLContentHandler::ParsePushMsgL @@ -1015,7 +1019,6 @@ PUSHLOG_LEAVEFN("CSLContentHandler::StoreSLMessageL") } -#endif // __SERIES60_PUSH_SL // --------------------------------------------------------- // CSLContentHandler::HandleMessageL @@ -1127,58 +1130,63 @@ break; } -#ifdef __SERIES60_PUSH_SL case EFilteringAndParsing: { - if ( !FilterPushMsgL() ) - { - // It did not pass the filter. Done. - iState = EDone; - IdleComplete(); - } - else + if(iPushSLEnabled) { - // Continue. - TInt ret = KErrNone; - PUSHLOG_WRITE("CSLContentHandler::RunL : before trapping parsing.") - TRAP(ret, ParsePushMsgL()); - PUSHLOG_WRITE_FORMAT("CSLContentHandler::RunL : after trapping parsing. ret = %d", ret) - if ( ret != KErrNone) - { - PUSHLOG_WRITE("CSLContentHandler::RunL : Parsing failed. discarding message.") - iState = EDone; - IdleComplete(); - } + if ( !FilterPushMsgL() ) + { + // It did not pass the filter. Done. + iState = EDone; + IdleComplete(); + } + else + { + // Continue. + TInt ret = KErrNone; + PUSHLOG_WRITE("CSLContentHandler::RunL : before trapping parsing.") + TRAP(ret, ParsePushMsgL()); + PUSHLOG_WRITE_FORMAT("CSLContentHandler::RunL : after trapping parsing. ret = %d", ret) + if ( ret != KErrNone) + { + PUSHLOG_WRITE("CSLContentHandler::RunL : Parsing failed. discarding message.") + iState = EDone; + IdleComplete(); + } + } } break; } case EProcessing: { + if(iPushSLEnabled) ProcessingPushMsgEntryL(); break; } case EFetching: { + if(iPushSLEnabled) FetchPushMsgEntryL(); break; } case EFetchCompleted: { + if(iPushSLEnabled) FetchCompletedL(); break; } case ESavePushMsgEntry: { + if(iPushSLEnabled) SavePushMsgEntryL(); break; } -#endif // __SERIES60_PUSH_SL case EDone: { diff -r 5dedbccec665 -r 5c11946e75b3 pushmtm/Plugins/PushContentHandler/CSLContentHandler.h --- a/pushmtm/Plugins/PushContentHandler/CSLContentHandler.h Mon Mar 15 12:40:52 2010 +0200 +++ b/pushmtm/Plugins/PushContentHandler/CSLContentHandler.h Wed Mar 31 21:35:49 2010 +0300 @@ -88,7 +88,6 @@ */ void CollectGarbageL(); -#ifdef __SERIES60_PUSH_SL /** * Parse the Push SL message using XML parser. @@ -208,7 +207,6 @@ */ inline TBool HrefFlag() const; -#endif // __SERIES60_PUSH_SL private: // Methods from CPushHandlerBase @@ -296,6 +294,7 @@ NW_Uint32 iCharEncoding; ///< Char encoding of the current msg. TBool iSaveAsRead; ///< Mark the message 'read' after saving. + TInt iPushSLEnabled; }; #include "CSLContentHandler.inl" diff -r 5dedbccec665 -r 5c11946e75b3 pushmtm/Plugins/PushContentHandler/CSLContentHandler.inl --- a/pushmtm/Plugins/PushContentHandler/CSLContentHandler.inl Mon Mar 15 12:40:52 2010 +0200 +++ b/pushmtm/Plugins/PushContentHandler/CSLContentHandler.inl Wed Mar 31 21:35:49 2010 +0300 @@ -17,7 +17,6 @@ -#ifdef __SERIES60_PUSH_SL inline void CSLContentHandler::SetActionFlag( TBool aAction ) { @@ -53,5 +52,4 @@ return iAttributes & EHref; } -#endif // __SERIES60_PUSH_SL diff -r 5dedbccec665 -r 5c11946e75b3 pushmtm/conf/pushmtm.confml Binary file pushmtm/conf/pushmtm.confml has changed diff -r 5dedbccec665 -r 5c11946e75b3 pushmtm/conf/pushmtm_10008D42.crml Binary file pushmtm/conf/pushmtm_10008D42.crml has changed