syncmlfw/syncmlnotifier/src/SyncMLAppLaunchNotifier.cpp
changeset 44 39aa16f3fdc2
parent 43 c8e5c3d81b42
child 53 b3a7d8e28262
child 57 f5b689a4f7a2
--- a/syncmlfw/syncmlnotifier/src/SyncMLAppLaunchNotifier.cpp	Wed Jun 23 19:10:17 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,772 +0,0 @@
-/*
-* Copyright (c) 2005 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:  Methods to parse the server alert messages for data sync and device
-*                Management frameworks. Launches respective application 
-*                in appropriate conditions
-*
-*/
-
-
-
-// INCLUDE FILES
-#include <eikenv.h>          // Eikon environment
-#include <AknQueryDialog.h>
-#include <StringLoader.h>    // Localisation stringloader
-#include <SyncMLClientDS.h>
-#include <SyncMLClientDM.h>
-#include <SyncMLClient.h>
-#include <rconnmon.h>
-#include <centralrepository.h>
-#include <SyncMLNotifierDomainCRKeys.h>
-#include <SyncMLNotifier.rsg>           // Own resources
-#include "SyncMLAppLaunchNotifier.h"    // Class declaration
-#include "SyncMLTimedMessageQuery.h"
-#include "SyncMLTimedQueryDialog.h"
-#include "SyncMLNotifDebug.h"
-#include <aknnotewrappers.h>
-#include <DevManInternalCRKeys.h>
-#include "nsmlconstantdefs.h"
-
-
-// CONSTANTS
-_LIT( KSmlNPanicCategory, "SyncMLNotifier");
-
-// medium type uids
-//const TUid KUidNSmlMediumTypeInternet  = { 0x101F99F0 };
-const TUid KUidNSmlMediumTypeBluetooth = { 0x101F99F1 };
-const TUid KUidNSmlMediumTypeUSB       = { 0x101F99F2 };
-const TUid KUidNSmlMediumTypeIrDA      = { 0x101F99F3 };
-
-
-enum TASpBearerType
-    {
-    EAspBearerInternet = 0,
-    EAspBearerUsb = 1,
-    EAspBearerBlueTooth = 2,
-    EAspBearerIrda = 3,
-    EAspBearerWsp = 4,
-    EAspBearerSmlUsb = 5,
-    EAspBearerLast = 6
-    };
-
-// ============================ MEMBER FUNCTIONS ===============================
-
-// -----------------------------------------------------------------------------
-// CSyncMLAppLaunchNotifier::CSyncMLAppLaunchNotifier
-// C++ default constructor can NOT contain any code, that
-// might leave.
-// -----------------------------------------------------------------------------
-//
-CSyncMLAppLaunchNotifier::CSyncMLAppLaunchNotifier() :
-    iAlwaysAsk( EFalse )
-    {
-    iBearerType = KErrNotFound;
-    }
-
-// -----------------------------------------------------------------------------
-// CSyncMLDSNotifier::NewL
-// Two-phased constructor.
-// -----------------------------------------------------------------------------
-//
-CSyncMLAppLaunchNotifier* CSyncMLAppLaunchNotifier::NewL()
-    {
-    FLOG(_L("[SmlNotif]\t CSyncMLAppLaunchNotifier::NewL()"));
-    CSyncMLAppLaunchNotifier* self = new (ELeave) CSyncMLAppLaunchNotifier();
-    CleanupStack::PushL( self );
-    self->ConstructL();
-    CleanupStack::Pop( self );
-    FLOG(_L("[SmlNotif]\t CSyncMLAppLaunchNotifier::NewL() completed"));
-    return self;
-    }
-
-    
-// -----------------------------------------------------------------------------
-// Destructor
-// -----------------------------------------------------------------------------
-//
-CSyncMLAppLaunchNotifier::~CSyncMLAppLaunchNotifier()
-    {
-    delete iDMSyncService;
-    delete iDSSyncService;
-    Cancel();   // Free own resources
-    }
-
-// -----------------------------------------------------------------------------
-// CSyncMLAppLaunchNotifier::RetrieveSyncParams
-// Leaves if the job identifier is not found.
-// -----------------------------------------------------------------------------
-//
-void CSyncMLAppLaunchNotifier::RetrieveSyncParamsL(
-    TSyncServiceParam& aParam,
-    TDes& aServerName,
-    TSmlServerAlertedAction& aUserInteraction )
-    {
-    FLOG(_L("[SmlNotif]\t CSyncMLAppLaunchNotifier::RetrieveSyncParamsL()"));
-    TSmlJobId currentJobId;
-    TSmlUsageType usageType;
-    
-    // sync session
-    RSyncMLSession syncSession;
-    syncSession.OpenL();
-    CleanupClosePushL( syncSession );
-    syncSession.CurrentJobL( currentJobId, usageType );
-
-    if ( currentJobId == iJobId &&
-         usageType == ESmlDataSync )
-        {
-        RSyncMLDataSyncProfile syncProfile;
-        syncProfile.OpenL( syncSession, iProfileId, ESmlOpenRead );
-        CleanupClosePushL( syncProfile );
-        
-        aParam.iProfileId = iProfileId;
-        aParam.iJobId = iJobId;
-        aServerName = syncProfile.DisplayName();
-        aUserInteraction = syncProfile.SanUserInteraction();
-        
-        // Check if always ask is selected as accesspoint
-        RSyncMLConnection connection;
-        TRAPD( iapError, connection.OpenL( syncProfile, KUidNSmlMediumTypeInternet.iUid ) );
-        CleanupClosePushL( connection );
-
-        if ( !iapError )
-            {
-            const TDesC8& iap = connection.GetPropertyL( KNSmlIAPId );
-            if ( iap.Compare( KNSmlAlwaysAsk() ) == 0 )
-                {
-                iAlwaysAsk = ETrue;
-                }            
-            
-            TInt id = connection.Identifier();
-            if (id == KUidNSmlMediumTypeInternet.iUid)
-                {
-                iBearerType = EAspBearerInternet;
-                }
-            else if (id == KUidNSmlMediumTypeBluetooth.iUid)
-                {
-                iBearerType = EAspBearerBlueTooth;
-                }
-            else if (id == KUidNSmlMediumTypeUSB.iUid)
-                {
-                iBearerType = EAspBearerUsb;
-                }
-            else if (id == KUidNSmlMediumTypeIrDA.iUid)
-                {
-                iBearerType = EAspBearerIrda;
-                }
-            else
-                {
-                iBearerType = KErrNotFound;
-                }            
-            }
-
-        connection.Close();
-        CleanupStack::Pop( &connection );
-        
-        syncProfile.Close();
-        CleanupStack::Pop( &syncProfile );
-        }
-    else
-        {
-        FTRACE( FPrint(
-            _L("[SmlNotif]\t CSyncMLAppLaunchNotifier::RetrieveSyncParamsL() Could not find job %d"),
-            iJobId ) );
-        User::Leave( KErrNotFound );
-        }
-    
-    syncSession.Close();
-    CleanupStack::Pop( &syncSession );
-
-    FTRACE( FPrint(
-        _L("[SmlNotif]\t CSyncMLAppLaunchNotifier::RetrieveSyncParamsL() completed, aServerName = \"%S\""),
-        &aServerName ) );
-    }
-
-// -----------------------------------------------------------------------------
-// CSyncMLAppLaunchNotifier::RetrieveMgmtParamsL
-// Leaves if the job identifier is not found.
-// -----------------------------------------------------------------------------
-//
-void CSyncMLAppLaunchNotifier::RetrieveMgmtParamsL(
-    TSyncServiceParam& aParam,
-    TDes& aServerName,
-    TSmlServerAlertedAction& aUserInteraction )
-    {
-    FLOG(_L("[SmlNotif]\t CSyncMLAppLaunchNotifier::RetrieveMgmtParamsL()"));
-
-    TSmlJobId currentJobId;
-    TSmlUsageType usageType;
-    
-    RSyncMLSession syncSession;
-    
-    syncSession.OpenL();
-    CleanupClosePushL( syncSession );
-    
-    syncSession.CurrentJobL( currentJobId, usageType );
-    
-    if ( currentJobId == iJobId &&
-         usageType == ESmlDevMan )
-        {
-        RSyncMLDevManProfile syncProfile;
-        syncProfile.OpenL( syncSession, iProfileId, ESmlOpenRead );
-        CleanupClosePushL( syncProfile );
-        
-        aParam.iProfileId = iProfileId;
-        aParam.iJobId = iJobId;
-        aServerName = syncProfile.DisplayName();
-        aUserInteraction = syncProfile.SanUserInteraction();
-        
-        // Check if always ask is selected as accesspoint
-        RSyncMLConnection connection;
-        TRAPD( iapError, connection.OpenL( syncProfile, KUidNSmlMediumTypeInternet.iUid ) );
-        CleanupClosePushL( connection );
-
-        if ( !iapError )
-            {
-            const TDesC8& iap = connection.GetPropertyL( KNSmlIAPId );
-            if ( iap.Compare( KNSmlAlwaysAsk() ) == 0 )
-                {
-                iAlwaysAsk = ETrue;
-                }            
-            }
-
-        connection.Close();
-        CleanupStack::Pop( &connection );
-        
-        syncProfile.Close();
-        CleanupStack::Pop( &syncProfile );
-        }
-    else
-        {
-        FTRACE( FPrint(
-            _L("[SmlNotif]\t CSyncMLAppLaunchNotifier::RetrieveMgmtParamsL() Could not find job %d"),
-            iJobId ) );
-        User::Leave( KErrNotFound );
-        }
-    
-    syncSession.Close();
-    CleanupStack::Pop( &syncSession );
-
-    FTRACE( FPrint(
-        _L("[SmlNotif]\t CSyncMLAppLaunchNotifier::RetrieveMgmtParamsL() completed, aServerName = \"%S\""),
-        &aServerName ) );
-    }
-
-// -----------------------------------------------------------------------------
-// CSyncMLAppLaunchNotifier::IsSilent
-// Only automatic acception from the profile is checked, since notifier has no
-// information about the preferences included in the server alert.
-// -----------------------------------------------------------------------------
-//
-TBool CSyncMLAppLaunchNotifier::IsSilent(
-    TSmlServerAlertedAction& aUserInteraction )
-    {
-    TBool retval = EFalse;
-    if ( aUserInteraction == ESmlEnableSync )
-        {
-        retval = ETrue;
-        }
-    return retval;
-    }
-    
-// -----------------------------------------------------------------------------
-// CSyncMLAppLaunchNotifier::RegisterL
-// -----------------------------------------------------------------------------
-//
-CSyncMLAppLaunchNotifier::TNotifierInfo CSyncMLAppLaunchNotifier::RegisterL()
-    {
-    FLOG(_L("[SmlNotif]\t CSyncMLAppLaunchNotifier::RegisterL()"));
-    iInfo.iUid = KSyncMLAppLaunchNotifierUid;
-    iInfo.iChannel = KSmlAppLaunchChannel;
-    iInfo.iPriority = ENotifierPriorityVHigh;
-    FLOG(_L("[SmlNotif]\t CSyncMLAppLaunchNotifier::RegisterL() completed"));
-    return iInfo;
-    }
-
-// -----------------------------------------------------------------------------
-// CSyncMLAppLaunchNotifier::Cancel
-// Release all own resources (member variables)
-// -----------------------------------------------------------------------------
-//
-void CSyncMLAppLaunchNotifier::Cancel()
-    {
-    FLOG(_L("[SmlNotif]\t CSyncMLAppLaunchNotifier::Cancel()"));
-
-    CSyncMLNotifierBase::Cancel();
-
-    FLOG(_L("[SmlNotif]\t CSyncMLAppLaunchNotifier::Cancel() completed"));
-    }
-
-// -----------------------------------------------------------------------------
-// CSyncMLAppLaunchNotifier::GetParamsL
-// Initialize parameters and check if device is already
-// in registry. Jump to RunL as soon as possible.
-// -----------------------------------------------------------------------------
-//
-void CSyncMLAppLaunchNotifier::GetParamsL( const TDesC8& aBuffer,
-                                                 TInt aReplySlot,
-                                           const RMessagePtr2& aMessage )
-    {
-    FLOG(_L("[SmlNotif]\t CSyncMLAppLaunchNotifier::GetParamsL()"));
-
-    if( iReplySlot != NULL || iNeedToCompleteMessage )
-        {
-        User::Leave( KErrInUse );
-        }
-    
-    iMessage = aMessage;
-    iNeedToCompleteMessage = ETrue;
-    iReplySlot = aReplySlot;
-    iAlwaysAsk = EFalse;
-
-	TSyncMLAppLaunchNotifParams param;
- 	TPckgC<TSyncMLAppLaunchNotifParams> pckg( param );
- 	pckg.Set(aBuffer);
-
-    iSmlProtocol = pckg().iSessionType;
-    iJobId = pckg().iJobId;
-    iProfileId = pckg().iProfileId;
- TInt SanSupport( KErrNone );
-CRepository* centrep = NULL;
-    TRAPD( err, centrep = CRepository::NewL( KCRUidDeviceManagementInternalKeys) );    
-    User::LeaveIfError( err );
-    centrep->Get( KDevManSANUIBitVariation, SanSupport );
-    delete centrep;
-	if( SanSupport == EON )
-   	{
-     iUimode = pckg().iUimode;
-   	}    
-    // Call SetActive() so RunL() will be called by the active scheduler
-    //
-    SetActive();
-    iStatus = KRequestPending;
-    TRequestStatus* stat = &iStatus;
-    User::RequestComplete( stat, KErrNone );
-
-    FTRACE( FPrint(
-        _L("[SmlNotif]\t CSyncMLAppLaunchNotifier::GetParamsL() completed, iSmlProtocol = %d, iJobId = %d, iProfileId = %d"),
-        iSmlProtocol, iJobId, iProfileId ) );
-    }
-
-// -----------------------------------------------------------------------------
-// CAspSyncHandler::ReadRepositoryL
-//
-// -----------------------------------------------------------------------------
-//
-void CSyncMLAppLaunchNotifier::ReadRepositoryL(TInt aKey, TInt& aValue)
-    {
-    CRepository* rep = CRepository::NewLC(KCRUidNSmlDSApp);
-    TInt err = rep->Get(aKey, aValue);
-    User::LeaveIfError(err);
-    
-    CleanupStack::PopAndDestroy(rep);
-    }
-
-// -----------------------------------------------------------------------------
-// CSyncMLAppLaunchNotifier::RunL
-// Ask user response and return it to caller.
-// -----------------------------------------------------------------------------
-//
-void CSyncMLAppLaunchNotifier::RunL()
-    {
-    FLOG(_L("[SmlNotif]\t CSyncMLAppLaunchNotifier::RunL()"));
-		stringholder =NULL;
-		centrep = NULL;
-    TRAPD( err, centrep = CRepository::NewL( KCRUidDeviceManagementInternalKeys) );    
-    if(err)
-    {
-    	centrep = NULL;
-    }
-
-    TLanguage language = User::Language();  
-    // Load the parameters and set the query text according to the session type.
-    switch( iSmlProtocol )
-        {
-        case ESyncMLSyncSession:
-            {
-            FLOG( _L("[SmlNotif]\t CSyncMLAppLaunchNotifier::RunL() Synchronisation session") );
-
-            TBuf<KSyncMLMaxProfileNameLength> serverName;
-            RetrieveSyncParamsL( param, serverName, uiAction );
-            stringholder = StringLoader::LoadL( R_SML_INIT_DS_SERVER_PROMPT,
-                                                serverName );
-            }
-			break;
-        case ESyncMLMgmtSession:
-            {
-            	TBool status = HandleDMSessionL();
-            	if( !status )
-            		return;
-            }
-            break;
-        default: // Unknown value
-            {
-            FLOG(_L("[SmlNotif]\t CSyncMLAppLaunchNotifier::RunL() unknown protocol value"));
-            User::Leave( KErrArgument ); // Leave handling completes the message
-            return;
-            }
-        }
-
-    CleanupStack::PushL( stringholder );
-
-    TInt keypress( 0 );
-    TBool  silent = EFalse;
-		TInt SanSupport( KErrNone ),Timeout( KErrNone),CustomNotes(KErrNone);;
-    if(centrep)
-    {centrep->Get( KDevManSANUIBitVariation, SanSupport );
-     centrep->Get( KDevManServerAlertTimeout, Timeout );
-     centrep->Get( KDevManUINotesCustomization, CustomNotes);	
-    }
-    else
-    {
-    	  SanSupport = KErrNone;
-        Timeout = KDefaultTimeoutforNotes; 
-        CustomNotes = KErrNone ;
-    }   
-    Timeout = Timeout * 60 ;// converting to mins
-    delete centrep;
-		if(( SanSupport == EON )&& ( iSmlProtocol == ESyncMLMgmtSession))
-   	{
-    if( iUimode > ESANUserInteractive && iUimode < ESANNotSpecified )
-    	{
-    	iUimode = ESANNotSpecified;
-    	}
-    switch( iUimode ) 	
-    	{
-    		case ESANNotSpecified://not specified
-    		case ESANUserInteractive://user interactive session
-    		      silent = EFalse;    		      
-    		      break;
-    		case ESANSilent://Background
-    		case ESANUserInformative://Informative session
-    		      silent =  ETrue;//IsSilent( uiAction );     		      
-    		      break;  
-    	}
-   }
-   else
-       {
-       	silent =  IsSilent( uiAction );
-       }
-    if ( iAlwaysAsk && iSmlProtocol == ESyncMLMgmtSession )	//check with synergy    
-    	{
-    	silent = EFalse;
-    	}
-    if ( !silent || iAlwaysAsk )
-        {
-        // Turn lights on and deactivate apps -key
-        TurnLightsOn();  
-        SuppressAppSwitching( ETrue );
-
-        CSyncMLTimedQueryDialog* dlg =
-                CSyncMLTimedQueryDialog::NewL( *stringholder,
-                                               Timeout );    
-            
-        // Pushed dialog is popped inside RunLD
-        dlg->PrepareLC( R_SML_CONFIRMATION_QUERY );
-        
-        	dlg->ButtonGroupContainer().SetCommandSetL(
-        	        					R_AVKON_SOFTKEYS_YES_NO__YES );
-        keypress = dlg->RunLD();
-        dlg = NULL;
-        // Activate apps -key again
-        //
-        SuppressAppSwitching( EFalse );
-        }
-
-    CleanupStack::PopAndDestroy( stringholder );
-    
-    if ( iNeedToCompleteMessage ) // Notifier is not cancelled
-        {
-        	HandleCompleteMessageL(keypress, silent, SanSupport, Timeout, CustomNotes);
-        }
-
-    iNeedToCompleteMessage = EFalse;
-    iReplySlot = NULL;
-
-    iSmlProtocol = ESyncMLUnknownSession;
-    iJobId = 0;
-
-    FLOG(_L("[SmlNotif]\t CSyncMLAppLaunchNotifier::RunL() completed"));
-    }
-
-// -----------------------------------------------------------------------------
-// CSyncMLNotifierBase::SyncServiceL
-// -----------------------------------------------------------------------------
-//
-CSyncService* CSyncMLAppLaunchNotifier::SyncServiceL( TUint aServiceId )
-    {
-    FLOG(_L("[SmlNotif]\t CSyncMLAppLaunchNotifier::SyncService"));
-
-    if ( aServiceId == KDevManServiceStart )
-        {
-        if ( !iDMSyncService )
-            {
-            FLOG(_L("[SmlNotif]\t CSyncMLAppLaunchNotifier::SyncServiceL() DM NewL"));
-            iDMSyncService = CSyncService::NewL( NULL, KDevManServiceStart );
-            }
-        return iDMSyncService;
-        }
-    else
-        {
-        if ( !iDSSyncService )
-            {
-            FLOG(_L("[SmlNotif]\t CSyncMLAppLaunchNotifier::SyncServiceL() DS NewL"));
-            iDSSyncService = CSyncService::NewL( NULL, KDataSyncServiceStart );
-            }
-        return iDSSyncService;
-        }
-    }
-//------------------------------------------------------------------------------
-//CSyncMLAppLaunchNotifier::IsRoaming(TBool& ret)
-//Returns true if roaming otherwise returns false
- 
-//------------------------------------------------------------------------------
-
-void CSyncMLAppLaunchNotifier::IsRoamingL(TBool &ret)
-	{
-	  FLOG(_L("[SmlNotif]\t CSyncMLAppLaunchNotifier::IsRoaming() Begin"));
-		RConnectionMonitor monitor;
-	  TRequestStatus status;
-		// open RConnectionMonitor object
-		monitor.ConnectL();
-		CleanupClosePushL( monitor );
-		TInt netwStatus(0);
-		monitor.GetIntAttribute( EBearerIdGPRS, // See bearer ids from TConnMonBearerId
-	                         0, 
-	                         KNetworkRegistration,
-	                         netwStatus, 
-	                         status );
-	  User::WaitForRequest( status );
-	  if ( status.Int() == KErrNone )
-	 	   {
-				switch(netwStatus)
-				{
-					case ENetworkRegistrationRoaming :
-					{
-						FLOG(_L("[SmlNotif]\t CSyncMLAppLaunchNotifier::IsRoaming() ENetworkRegistrationRoaming"));
-						ret=true;
-						break;
-					}
-		   		default:
-			 		{
-			 			FLOG(_L("[SmlNotif]\t CSyncMLAppLaunchNotifier::IsRoaming() Roaming status "));
-			 			FTRACE( FPrint(
-					  _L("[SmlNotif]\t CSyncMLAppLaunchNotifier::IsRoamingL() cell is not in roaming, network status is  %d"), netwStatus ) );
-			 			break;	
-			 		}
-			}
-			CleanupStack::PopAndDestroy();
-		}
-		else
-			{
-				FTRACE( FPrint(
-			  _L("[SmlNotif]\t CSyncMLAppLaunchNotifier::IsRoamingL() RConnectinMonitor status.Int() returned error %d"), status.Int() ) );
-			}
-	}
-//------------------------------------------------------------------------------
-//CSyncMLAppLaunchNotifier::HandleDMSessionL()
-//Handles the DM Session 
-//------------------------------------------------------------------------------
-
-TBool CSyncMLAppLaunchNotifier::HandleDMSessionL()
-{
-		FLOG(_L("[SmlNotif]\t CSyncMLAppLaunchNotifier::HandleDMSessionL begins"));
-		TBool ret(ETrue);
-		TInt dmroamingBlock = 0;
-    TBool roaming = EFalse;
-    TLanguage language = User::Language();
-	  FLOG( _L("[SmlNotif]\t CSyncMLAppLaunchNotifier::RunL() Management session") );
-		CRepository* cRepository=NULL;
-		TRAPD ( error, cRepository = CRepository::NewL ( KCRUidNSmlNotifierDomainKeys ) );
-		if ( error == KErrNone )
-		{
-			CleanupStack::PushL( cRepository );
-			cRepository->Get ( KNSmlDMBlockedInRoaming, dmroamingBlock );
-			if(dmroamingBlock==1)
-			{
-				FLOG( _L("[SmlNotif]\t CSyncMLAppLaunchNotifier::RunL() roaming feature is enabled") );
-				TRAPD(rError,IsRoamingL(roaming));
-				if( (rError==KErrNone) && roaming )
-				{
-					FLOG( _L("[SmlNotif]\t CSyncMLAppLaunchNotifier::RunL() phone is in roaming, DM session is blocked ") );
-					CleanupStack::PopAndDestroy( cRepository );//cRepository
-					iNeedToCompleteMessage=EFalse;
-					iReplySlot = NULL;
-					ret = EFalse;
-					return ret;
-				}
-				else
-				{
-					FTRACE( FPrint(
-								_L("[SmlNotif]\t CSyncMLAppLaunchNotifier::RunL() error in getting Network status  %d"), rError ) );
-          FTRACE( FPrint(
-          			_L("[SmlNotif]\t CSyncMLAppLaunchNotifier::RunL() error in getting Network status  %d"),roaming ) );
-									}
-				}
-				else
-				{
-					FLOG( _L("[SmlNotif]\t CSyncMLAppLaunchNotifier::RunL() DM blocking feature disabled ") );
-				}
-				CleanupStack::PopAndDestroy( cRepository );//cRepository
-			}
-			else
-			{
-				FTRACE( FPrint(
-            _L("[SmlNotif]\t CSyncMLAppLaunchNotifier::RunL() cenrep creation error code  %d"),
-            error ) );
-			}
-      TBuf<KSyncMLMaxProfileNameLength> serverName;
-      RetrieveMgmtParamsL( param, DMSyncServerName, uiAction );            
-      TInt CustomNotes(KErrNone), SanSupport( KErrNone );  
-      CRepository* centrep = NULL;  
-      TRAPD(err1, centrep = CRepository::NewL ( KCRUidDeviceManagementInternalKeys ) );
-      if((centrep) && (err1 == KErrNone))
-      {
-      	centrep->Get( KDevManUINotesCustomization, CustomNotes);
-        centrep->Get( KDevManSANUIBitVariation, SanSupport );
-      }
-      else
-      {
-      	CustomNotes = 0;
-        SanSupport  = 0;	
-      }
-      delete centrep;             
-                                                        
-      if(CustomNotes && SanSupport && IsLanguageSupportedL())
-      {
-      	stringholder = StringLoader::LoadL( R_QTN_DM_QUERY_ACCEPT_POSTSALE);	//This note will be shown in chinese variant itself 
-      }
-      else
-      { 
-      	stringholder = StringLoader::LoadL( R_SML_INIT_DM_SERVER_PROMPT,DMSyncServerName );
-      }      
-      FLOG(_L("[SmlNotif]\t CSyncMLAppLaunchNotifier::HandleDMSessionL ends"));
-      return ret;
-}
-
-//------------------------------------------------------------------------------
-//CSyncMLAppLaunchNotifier::HandleCompleteMessageL(TInt &keypress, TBool &silent, TInt &SanSupport, TInt &Timeout, TInt &CustomNotes)
-// Handle the complete message
-//------------------------------------------------------------------------------
-	
-void CSyncMLAppLaunchNotifier::HandleCompleteMessageL(TInt &keypress, TBool &silent, TInt &SanSupport, TInt &Timeout, TInt &CustomNotes)
-{
-	TLanguage language = User::Language();
-	if( keypress == EAknSoftkeyYes || keypress == EAknSoftkeyOk || silent ) // User has accepted the dialog
-  {
-		TInt retval = 1; // Default for ESyncMLSyncSession or silent
-    if ( iSmlProtocol == ESyncMLMgmtSession && !silent )
-    {
-    	CRepository* cRepository=NULL;
-			TRAPD ( error, cRepository = CRepository::NewL ( KCRUidNSmlNotifierDomainKeys ) );
-		 	if ( error == KErrNone )
-			{
-				CleanupStack::PushL( cRepository );
-				TInt dmChargingNote(1);
-				cRepository->Get ( KNSmlDMChargingNote, dmChargingNote );
-				if(dmChargingNote==1)
-				{
-			    	stringholder = StringLoader::LoadLC( R_FOTA_CONF_QUERY_CONNECTION_IS_NEEDED );
-			    	CSyncMLTimedQueryDialog* dlg = CSyncMLTimedQueryDialog::NewL( *stringholder, Timeout );			    
-			    	dlg->PrepareLC( R_SML_CONFIRMATION_QUERY );
-        		dlg->ButtonGroupContainer().SetCommandSetL( R_AVKON_SOFTKEYS_YES_NO );
-       			keypress = dlg->RunLD();
-         		if( keypress == EAknSoftkeyYes ||	keypress == EAknSoftkeyOk ) 
-         			retval = 1;
-         		else retval = 0;   
-			    	dlg = NULL;
-			    	CleanupStack::PopAndDestroy( stringholder );
-        }
-        CleanupStack::PopAndDestroy( cRepository );//cRepository
-      }
-    }
-	if( iSmlProtocol == ESyncMLMgmtSession && SanSupport == EON && silent && iUimode == ESANUserInformative )
-	{
-		// Turn lights on and deactivate apps -key
-  	TurnLightsOn(); 	  
-   	if(CustomNotes && IsLanguageSupportedL()) 
-   	{
-   		FLOG(_L("[SmlNotif]\t CSyncMLAppLaunchNotifier::informative session inside if "));
-  		stringholder = StringLoader::LoadLC(R_QTN_DM_INFO_NOTE_POSTSALE);	 //This note will be shown in chinese variant only
-   	}
-   	else
-   	{
-    	stringholder = StringLoader::LoadLC(R_QTN_DM_INFO_NOTE_UPDATING , DMSyncServerName );
-    }   
-		CAknInformationNote* informationNote = new (ELeave) CAknInformationNote ();
-		informationNote->ExecuteLD ( stringholder->Des() );
-		informationNote = NULL;
-		CleanupStack::PopAndDestroy( stringholder );	
-   }
-
-	if ( retval )
-	{
-		const TUid KUidFakeUID = { 0 };
-	  TSyncMLAppLaunchNotifRetVal pckg;
-	  pckg.iSecureId = KUidFakeUID;
-	           
-	  switch( iSmlProtocol )
-	  {
-	  	case ESyncMLSyncSession:
-	    					param.iServiceId = KDataSyncServiceStart;
-	             	break;
-	    case ESyncMLMgmtSession:
-	              param.iServiceId = KDevManServiceStart;
-								if( SanSupport == EON )
-								{													
-	              	param.iSilent = iUimode;	                    	                               
-								}
-			          pckg.iSecureId = SyncServiceL( param.iServiceId )->StartSyncL( param );
-	              break;
-	    default:
-	              // This branch should never be reached, since the option
-	              // is handled in the previous switch statement.
-	              User::Panic( KSmlNPanicCategory, KErrCorrupt );
-	              break;
-	  }	
-	                
-	  iMessage.WriteL( iReplySlot, TPckgBuf<TSyncMLAppLaunchNotifRetVal>(pckg) );
-	  iMessage.Complete( KErrNone );
-	 }
-	 else
-	 {
-	  	// Complete the message with result code indicating that
-		  // the user cancelled the query.
-	    iMessage.Complete( KErrCancel );
-	 }
-  }
-  else
-  {
-  	// Complete the message with result code indicating that
-    // the user cancelled the query.
-    iMessage.Complete( KErrCancel );
-  }
-}
-
-// -----------------------------------------------------------------------------
-// CSyncMLAppLaunchNotifier::IsLanguageSupportedL
-// Returns True if the specified language is supported.
-// -----------------------------------------------------------------------------
-//
-TBool CSyncMLAppLaunchNotifier::IsLanguageSupportedL()
-{
-	FLOG(_L("[SmlNotif]\t CSyncMLAppLaunchNotifier::IsLanguageSupportedL begins"));
-	TBool retVal(EFalse);
-	TLanguage language = User::Language();
-	if(language == ELangEnglish || language == ELangInternationalEnglish ||
- 		   language == ELangTaiwanChinese ||language == ELangHongKongChinese || language == ELangPrcChinese)
- 		   retVal = ETrue;
- 	FLOG(_L("[SmlNotif]\t CSyncMLAppLaunchNotifier::IsLanguageSupportedL ends"));
- 	return retVal;
-}
-//  End of File