--- a/syncmlfw/syncmlnotifier/src/SyncMLFwUpdNotifier.cpp Tue Jul 13 09:16:46 2010 +0530
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,1000 +0,0 @@
-/*
-* Copyright (c) 2005-2006 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: The firmware update result notifier.
-*
-*/
-
-
-
-// INCLUDE FILES
-#include <eikenv.h> // Eikon environment
-#include <uikon/eiksrvui.h>
-#include <AknQueryDialog.h>
-#include <aknmessagequerydialog.h>
-#include <aknstaticnotedialog.h>
-#include <centralrepository.h>
-#include <StringLoader.h> // Localisation stringloader
-#include <SyncMLClient.h>
-#include <SyncMLClientDS.h>
-#include <SyncMLClientDM.h>
-#include <centralrepository.h>
-#include <DevManInternalCRKeys.h>
-#include <SyncMLNotifierDomainCRKeys.h>
-#include <SyncMLNotifier.rsg> // Own resources
-#include <aknnotewrappers.h>
-#include <e32property.h>
-
-#include "SyncMLFwUpdNotifier.h" // Class declaration
-#include "SyncMLNotifDebug.h"
-
-#include "SyncMLQueryDialog.h"
-#include "SyncMLMessageQueryDialog.h"
-#include "SyncMLNotifPrivateCRKeys.h"
-
-// ============================ MEMBER FUNCTIONS ===============================
-
-// -----------------------------------------------------------------------------
-// CSyncMLFwUpdNotifier::CSyncMLFwUpdNotifier
-// C++ default constructor can NOT contain any code, that
-// might leave.
-// -----------------------------------------------------------------------------
-//
-CSyncMLFwUpdNotifier::CSyncMLFwUpdNotifier()
- {
- iRunLhang = EFalse;
- iDlg = NULL;
- iFotaEncryptReq = EFalse;
- }
-
-// -----------------------------------------------------------------------------
-// CSyncMLDSNotifier::NewL
-// Two-phased constructor.
-// -----------------------------------------------------------------------------
-//
-CSyncMLFwUpdNotifier* CSyncMLFwUpdNotifier::NewL()
- {
- CSyncMLFwUpdNotifier* self = new (ELeave) CSyncMLFwUpdNotifier();
- CleanupStack::PushL( self );
- self->ConstructL();
- CleanupStack::Pop();
- return self;
- }
-
-
-// -----------------------------------------------------------------------------
-// Destructor
-// -----------------------------------------------------------------------------
-//
-CSyncMLFwUpdNotifier::~CSyncMLFwUpdNotifier()
- {
- Cancel(); // Free own resources
- }
-
-
-// -----------------------------------------------------------------------------
-// CSyncMLFwUpdNotifier::RegisterL
-// -----------------------------------------------------------------------------
-//
-CSyncMLFwUpdNotifier::TNotifierInfo CSyncMLFwUpdNotifier::RegisterL()
- {
- FLOG(_L("[SmlNotif]\t CSyncMLFwUpdNotifier::RegisterL()"));
- iInfo.iUid = KSyncMLFwUpdNotifierUid;
- iInfo.iChannel = KSmlFwUpdChannel;
- iInfo.iPriority = ENotifierPriorityHigh;
- FLOG(_L("[SmlNotif]\t CSyncMLFwUpdNotifier::RegisterL() completed"));
- return iInfo;
- }
-
-// -----------------------------------------------------------------------------
-// CSyncMLFwUpdNotifier::GetParamsL
-// Initialize parameters and check if device is already
-// in registry. Jump to RunL as soon as possible.
-// -----------------------------------------------------------------------------
-//
-void CSyncMLFwUpdNotifier::GetParamsL( const TDesC8& aBuffer,
- TInt aReplySlot,
- const RMessagePtr2& aMessage )
- {
- FLOG(_L("[SmlNotif]\t CSyncMLFwUpdNotifier::GetParamsL()"));
-
- if( iReplySlot != NULL || iNeedToCompleteMessage )
- {
- User::Leave( KErrInUse );
- }
- iMessage = aMessage;
- iNeedToCompleteMessage = ETrue;
- iReplySlot = aReplySlot;
-
- TSyncMLFwUpdNotifParams param;
- TPckgC<TSyncMLFwUpdNotifParams> pckg( param );
- pckg.Set( aBuffer );
-
- iNoteType = pckg().iNoteType;
- iNoteInfo = pckg().iIntParam;
- iFotaMemoryNeeded = pckg().iMemoryNeeded;
- iFotaEncryptReq = pckg().iEncryptReq;
-
- // Call SetActive() so RunL() will be called by the active scheduler
- //
- SetActive();
- iStatus = KRequestPending;
- TRequestStatus* stat = &iStatus;
- User::RequestComplete( stat, KErrNone );
-
- FLOG(_L("[SmlNotif]\t CSyncMLFwUpdNotifier::GetParamsL() completed"));
- }
-
-// -----------------------------------------------------------------------------
-// CSyncMLFwUpdNotifier::RunL
-// Ask user response and return it to caller.
-// -----------------------------------------------------------------------------
-//
-void CSyncMLFwUpdNotifier::RunL()
- {
- FLOG(_L("[SmlNotif]\t CSyncMLFwUpdNotifier::RunL()"));
-
- TInt result( KErrNone );
-
- // Turn lights on and deactivate apps -key
- //
- TurnLightsOn();
- SuppressAppSwitching( ETrue );
-
- switch( iNoteType )
- {
- case ESyncMLFwUpdErrorNote:
- {
- result = ShowUpdateErrorNoteL();
- break;
- }
-
- case ESyncMLFwUpdResultNote:
- {
- if (iFotaEncryptReq)
- {
- result = ShowUpdateResultWithEncryptionNoteL();
- }
- else
- {
- result = ShowUpdateResultNoteL();
- }
- break;
- }
-
- case ESyncMLFwUpdStartQuery:
- {
- result = ShowUpdateStartQueryL();
- break;
- }
- case ESyncMLFwUpdRebootNote:
- {
- CAknStaticNoteDialog* dlg = new ( ELeave ) CAknStaticNoteDialog;
- dlg->PrepareLC( R_SML_FOTA_RESTART_NOTE );
-
- HBufC* stringHolder = StringLoader::LoadLC( R_FOTA_REBOOT_NOTE );
- dlg->SetTextL( *stringHolder );
- CleanupStack::PopAndDestroy( stringHolder );
-
- result = dlg->RunLD();
- if ( result == KErrNone )
- {
- result = EAknSoftkeyOk;
- };
-
- break;
- }
- case ESyncMLFwUpdNoReminder:
- {
- result = ShowNoReminderQueryL();
- break;
- }
- case ESyncMLFwUpdLargeNotEnoughMemory:
- {
- result = ShowNotEnoughMemoryL( iFotaMemoryNeeded , EFalse );
- break;
- }
- case ESyncMLFwUpdOmaDLNotEnoughMemory:
- {
- result = ShowNotEnoughMemoryL( iFotaMemoryNeeded , ETrue );
- break;
- }
- case ESyncMLFwUpdOmaDLUserCancel:
- {
- result = ShowDownloadUserCancelL();
- break;
- }
- case ESyncMLFwUpdOmaDLPostponed:
- {
- result = ShowDownloadPostponedL();
- break;
- }
- case ESyncMLFwUpdOmaDLCancelled:
- {
- result = ShowDownloadCancelledL();
- break;
- }
- case ESyncMLFwUpdOmaDLResume:
- {
- result = ShowDownloadResumeL();
- break;
- }
- case ESyncMLFwUpdStartQueryEnc:
- {
- result = ShowUpdateStartQueryEncryptionL();
- break;
- }
- default: // Unhandled note type
- {
- FLOG(_L("[SMLNOTIF]\t CSyncMLDlgNotifier::RunL() Note type not handled"));
- User::Leave( KErrArgument );
- break;
- }
- }
-
- // Activate apps -key again
- //
- SuppressAppSwitching( EFalse );
-
- if ( iNeedToCompleteMessage )
- {
- // Translate the user key presses to message completion response
- FTRACE( FPrint( _L("[SmlNotif]\t User Key-Press for dialog = %d" ), result ) );
- switch( result )
- {
- case ESyncMLDlgRespKeyOk://all LSK press will fall here.
- iMessage.Complete( KErrNone );
- break;
- case ESyncMLDlgRespKeyCancel://all RSK press will fall here.
- iMessage.Complete (KErrCancel);
- break;
- case ESyncMLDlgRespKeyOthers: //all call-termination key press fall here.
- iMessage.Complete (KErrNotFound);
- break;
- default://rest of the cases and errors
- iMessage.Complete (KErrNone);
- break;
- }
- }
-
-
- // Complete message and free resources
- //
- iNeedToCompleteMessage = EFalse;
- iReplySlot = NULL;
-
- iNoteType = ESyncMLFwUpdUnknown;
-
- FLOG(_L("[SmlNotif]\t CSyncMLFwUpdNotifier::RunL() completed"));
- }
-
-// -----------------------------------------------------------------------------
-// CSyncMLFwUpdNotifier::Cancel
-// Release all own resources (member variables)
-// -----------------------------------------------------------------------------
-//
-void CSyncMLFwUpdNotifier::Cancel()
- {
- FLOG(_L("[SmlNotif]\t CSyncMLFwUpdNotifier::Cancel()"));
- if(iRunLhang)
- {
- FLOG(_L("[SmlNotif]\t CSyncMLFwUpdNotifier::Cancel() inside Runlhang"));
- if(iDlg)
- {
- FLOG(_L("[SmlNotif]\t CSyncMLFwUpdNotifier::Cancel()before exit"));
- TRAP_IGNORE(iDlg->ExitL());
- if(iDlg)
- {
- FLOG(_L("[SmlNotif]\t CSyncMLFwUpdNotifier::Cancel()before delete"));
- delete iDlg;
- iDlg = NULL;
- FLOG(_L("[SmlNotif]\t CSyncMLFwUpdNotifier::Cancel()after delete"));
- }
- }
- }
- CSyncMLNotifierBase::Cancel();
-
- FLOG(_L("[SmlNotif]\t CSyncMLFwUpdNotifier::Cancel() completed"));
- }
-
-// -----------------------------------------------------------------------------
-// CSyncMLFwUpdNotifier::ShowUpdateErrorNoteL
-// -----------------------------------------------------------------------------
-//
-TInt CSyncMLFwUpdNotifier::ShowUpdateErrorNoteL()
- {
- FTRACE( FPrint( _L(
- "[SmlNotif]\t CSyncMLFwUpdNotifier::ShowUpdateErrorNoteL() error = %d" ),
- iNoteInfo ) );
-
- HBufC* stringHolder( NULL );
-
- switch ( iNoteInfo )
- {
- case KErrDiskFull:
- {
- stringHolder = StringLoader::LoadLC( R_FOTA_NOT_PERMITTED );
- break;
- }
- case KErrCommsLineFail:
- {
- stringHolder = StringLoader::LoadLC( R_FOTA_LOST_CONNECTION );
- break;
- }
- case KErrCouldNotConnect:
- {
- stringHolder = StringLoader::LoadLC( R_FOTA_SERVER_ERROR );
- break;
- }
- case KErrBadPower:
- {
- stringHolder = StringLoader::LoadLC( R_FOTA_BATTERY_LOW );
- break;
- }
- case KErrBadUsbPower:
- {
- stringHolder = StringLoader::LoadLC( R_FOTA_USB_BATTERY_LOW );
- break;
- }
- case KErrCommsLineFail2:
- {
- stringHolder = StringLoader::LoadLC( R_FOTA_CONNECTION_FAIL2 );
- break;
- }
- case KErrGeneralResume:
- {
- stringHolder = StringLoader::LoadLC( R_FOTA_DOWNLOAD_GENERAL_RESUME );
- break;
- }
- case KErrGeneralNoResume:
- {
- stringHolder = StringLoader::LoadLC( R_FOTA_DOWNLOAD_NO_RESUME );
- break;
- }
- case KErrBadPowerForEnc:
- {
- stringHolder = StringLoader::LoadLC( R_FOTA_UPDATE_ENC_BATTERY_LOW );
- break;
- }
- case KErrDeviceMemoryBusy:
- {
- stringHolder = StringLoader::LoadLC( R_FOTA_DEVICE_MEMORY_BUSY );
- break;
- }
- default:
- {
- return KErrArgument; // Will be converted to KErrNone when completing
- // message, since this is not actually an error.
- }
- }
-
-
- TBool keypress(EFalse);
- CSyncMLMessageQueryDialog* msgDlg = CSyncMLMessageQueryDialog::NewL(keypress);
- msgDlg->SetMessageTextL(*stringHolder);
-
- CleanupStack::PopAndDestroy( stringHolder );
-
- msgDlg->PrepareLC( R_SML_MESSAGE_QUERY ); // Pushed dialog is popped inside RunLD
-
- stringHolder = StringLoader::LoadLC( R_FOTA_TITLE_PHONE_UPDATES );
- msgDlg->SetHeaderTextL( stringHolder->Des() );
- CleanupStack::PopAndDestroy( stringHolder );
- stringHolder = NULL;
-
- msgDlg->ButtonGroupContainer().SetCommandSetL(
- R_AVKON_SOFTKEYS_OK_EMPTY__OK );
-
- TInt retval (ESyncMLDlgRespKeyNone);
- iRunLhang = ETrue;
- iDlg = msgDlg;
- retval = msgDlg->RunLD();
- iRunLhang = EFalse;
- msgDlg = NULL;
- iDlg = NULL;
-
- //call-termination key press is handled here.
- if (keypress)
- retval = ESyncMLDlgRespKeyOthers;
-
- FTRACE( FPrint( _L(
- "[SmlNotif]\t CSyncMLFwUpdNotifier::ShowUpdateErrorNoteL() completed: retval = %d" ),
- retval ) );
-
- return retval;
- }
-
-// -----------------------------------------------------------------------------
-// CSyncMLFwUpdNotifier::ShowUpdateResultNoteL
-// -----------------------------------------------------------------------------
-//
-TInt CSyncMLFwUpdNotifier::ShowUpdateResultNoteL()
- {
- FTRACE( FPrint( _L(
- "[SmlNotif]\t CSyncMLFwUpdNotifier::ShowUpdateResultNoteL() result = %d" ),
- iNoteInfo ) );
-
- HBufC* stringHolder( NULL );
-
- switch ( iNoteInfo ) // It is easier to add cases to switch structure
- {
- case KErrNone:
- {
- stringHolder = StringLoader::LoadLC( R_FOTA_NOTIF_COMPLETE );
- break;
- }
- default:
- {
- stringHolder = StringLoader::LoadLC( R_FOTA_MSG_QUERY_NOT_UPDATED );
- break;
- }
- }
-
- TBool keypress(EFalse);
- CSyncMLMessageQueryDialog* msgDlg = CSyncMLMessageQueryDialog::NewL(keypress);
- msgDlg->SetMessageTextL(*stringHolder);
-
- CleanupStack::PopAndDestroy( stringHolder );
-
- msgDlg->PrepareLC( R_SML_MESSAGE_QUERY ); // Pushed dialog is popped inside RunLD
-
- stringHolder = StringLoader::LoadLC( R_FOTA_TITLE_PHONE_UPDATES );
- msgDlg->SetHeaderTextL( stringHolder->Des() );
- CleanupStack::PopAndDestroy( stringHolder );
- stringHolder = NULL;
-
- msgDlg->ButtonGroupContainer().SetCommandSetL(
- R_AVKON_SOFTKEYS_OK_EMPTY__OK );
- TInt retval(ESyncMLDlgRespKeyNone);
- iRunLhang = ETrue;
- iDlg = msgDlg;
- retval = msgDlg->RunLD();
- iRunLhang = EFalse;
- msgDlg = NULL;
- iDlg = NULL;
- //call-termination key press has to be suppressed here. so keypress has no significance here!
- /*if (keypress)
- retval = EKeyOthers;*/
-
- FTRACE( FPrint( _L(
- "[SmlNotif]\t CSyncMLFwUpdNotifier::ShowUpdateResultNoteL() completed: retval = %d" ),
- retval ) );
-
- return retval;
- }
-
-// -----------------------------------------------------------------------------
-// CSyncMLFwUpdNotifier::ShowUpdateStartQueryL
-// -----------------------------------------------------------------------------
-//
-TInt CSyncMLFwUpdNotifier::ShowUpdateStartQueryL()
- {
- FTRACE( FPrint( _L(
- "[SmlNotif]\t CSyncMLFwUpdNotifier::ShowUpdateStartQueryL() profileId = %d" ),
- iNoteInfo ) );
-
- HBufC* headerText = StringLoader::LoadLC( R_FOTA_TITLE_PHONE_UPDATES );
- TInt retval (ESyncMLDlgRespKeyNone);
- TInt CustomNotes(KErrNone);
- CRepository* centrep = NULL;
- TRAPD( err, centrep = CRepository::NewL( KCRUidDeviceManagementInternalKeys) );
- if(!err && centrep)
- {
- TInt err= centrep->Get( KDevManUINotesCustomization, CustomNotes);
- if (err)
- CustomNotes = 0;
- }
- else
- {
- CustomNotes = 0;
- }
- TBool keypress(EFalse);
- CSyncMLQueryDialog* dlg = CSyncMLQueryDialog::NewL(keypress);
- TLanguage language = User::Language();
- if((CustomNotes) && IsLanguageSupportedL())
- { //This note will be shown in chinese and english variant only and localisation is not done
- CSyncMLMessageQueryDialog* msgDlg = CSyncMLMessageQueryDialog::NewL(keypress);
- HBufC* stringHolder = StringLoader::LoadLC (R_QTN_FOTA_MSG_QUERY_UPDATE_CUSTOM_WARNING);
- msgDlg->SetMessageTextL(*stringHolder);
- CleanupStack::PopAndDestroy( stringHolder );
- stringHolder = NULL;
- msgDlg->PrepareLC( R_SML_MESSAGE_QUERY ); // Pushed dialog is popped inside RunLD
- msgDlg->SetHeaderTextL( headerText->Des() );
- msgDlg->ButtonGroupContainer().SetCommandSetL( R_FOTA_INSTALL_QUERY_SOFTKEYS_NOW_LATER__NOW );
- retval = ESyncMLDlgRespKeyNone;
- retval = msgDlg->RunLD();
- msgDlg = NULL;
- FLOG(_L("[SmlNotif]\t CSyncMLFwUpdNotifier::ShowUpdateStartQueryL() after new changes in phone updates"));
- }
- else
- {
- TBuf< KSyncMLMaxProfileNameLength > profileName;
- RetrieveProfileNameL( profileName );
-
- HBufC* stringHolder = NULL;
- retval = ESyncMLDlgRespKeyOk;
- TBool bShowInstallQuery = ETrue;
- TInt fotaUpdateAppName (EFotaUpdateDM);
- TInt errAppName = RProperty::Get( KPSUidNSmlDMSyncApp, KNSmlCurrentFotaUpdateAppName, fotaUpdateAppName );
- TInt errShowInstall = RProperty::Get( KPSUidNSmlDMSyncApp, KDevManShowInstallNowQuery, bShowInstallQuery );
-
- FTRACE( FPrint(
- _L("CSyncMLFwUpdNotifier::ShowUpdateStartQueryL found key Show install query = %d"),
- bShowInstallQuery ) );
-
-
- if ( !errAppName && !errShowInstall && fotaUpdateAppName == EFotaUpdateNSC && !bShowInstallQuery )
- {
- FLOG(_L("[SmlNotif]\t CSyncMLFwUpdNotifier::ShowUpdateStartQueryL() do not show install now query "));
- bShowInstallQuery = EFalse;
- }
-
- if ( !bShowInstallQuery )
- {
-
- FLOG(_L("[SmlNotif]\t CSyncMLFwUpdNotifier::ShowUpdateStartQueryL() should not query "));
-
- }
-
- else
-
- {
- FLOG(_L("[SmlNotif]\t CSyncMLFwUpdNotifier::ShowUpdateStartQueryL() will query for Install now? "));
- stringHolder = StringLoader::LoadLC( R_FOTA_QUERY_INSTALL_NOW, profileName );
- dlg->SetPromptL( *stringHolder );
- CleanupStack::PopAndDestroy( stringHolder );
- stringHolder = NULL;
- retval = ESyncMLDlgRespKeyNone;
-
-
- retval = dlg->ExecuteLD( R_FOTA_INSTALL_CONFIRMATION_QUERY );
- dlg = NULL;
- }
- // set KDevManShowInstallNowQuery key back to value that it should show query
- TInt err = RProperty::Set(KPSUidNSmlDMSyncApp,KDevManShowInstallNowQuery,1 );
- FTRACE( FPrint(
- _L("Install query is set back to be shown, err = %d"),
- err ) );
-
- if ( !keypress && retval )
- {
- stringHolder = StringLoader::LoadLC( R_FOTA_UPDATE_1_WARNING );
-
- //keypress is EFalse here
- CSyncMLMessageQueryDialog* msgDlg = CSyncMLMessageQueryDialog::NewL(keypress);
-
- msgDlg->SetMessageTextL(*stringHolder);
- CleanupStack::PopAndDestroy( stringHolder );
- stringHolder = NULL;
-
- msgDlg->PrepareLC( R_SML_MESSAGE_QUERY ); // Pushed dialog is popped inside RunLD
- msgDlg->SetHeaderTextL( headerText->Des() );
-
- msgDlg->ButtonGroupContainer().SetCommandSetL( R_SML_SOFTKEYS_ACCEPT_CANCEL__ACCEPT );
-
- retval = ESyncMLDlgRespKeyNone;;
- retval = msgDlg->RunLD();
- msgDlg = NULL;
-
-
- if ( !keypress && retval )
- {
- stringHolder = StringLoader::LoadLC( R_FOTA_UPDATE_2_WARNING );
-
- //keypress is EFalse here
- msgDlg = CSyncMLMessageQueryDialog::NewL(keypress);
- msgDlg->SetMessageTextL( *stringHolder );
-
- CleanupStack::PopAndDestroy( stringHolder );
- stringHolder = NULL;
-
- msgDlg->PrepareLC( R_SML_MESSAGE_QUERY ); // Pushed dialog is popped inside RunLD
- msgDlg->SetHeaderTextL( headerText->Des() );
-
- msgDlg->ButtonGroupContainer().SetCommandSetL(
- R_SML_SOFTKEYS_ACCEPT_CANCEL__ACCEPT );
-
- retval = ESyncMLDlgRespKeyNone;
- retval = msgDlg->RunLD();
- msgDlg = NULL;
- }
- }
- }
-
-
- CleanupStack::PopAndDestroy( headerText );
-
- FTRACE( FPrint( _L(
- "[SmlNotif]\t CSyncMLFwUpdNotifier::ShowUpdateStartQueryL() completed: retval = %d, keypress = %d" ),
- retval,keypress ) );
-
- //call-termination key press is handled here.
- if (keypress)
- retval = ESyncMLDlgRespKeyOthers;
-
- return retval;
- }
-
-
-// -----------------------------------------------------------------------------
-// CSyncMLFwUpdNotifier::ShowUpdateStartQueryEncryptionL
-// -----------------------------------------------------------------------------
-//
-TInt CSyncMLFwUpdNotifier::ShowUpdateStartQueryEncryptionL()
- {
- FTRACE( FPrint( _L(
- "[SmlNotif]\t CSyncMLFwUpdNotifier::ShowUpdateStartQueryEncryptionL() profileId = %d" ),
- iNoteInfo ) );
-
- HBufC* headerText = StringLoader::LoadLC( R_FOTA_TITLE_PHONE_UPDATES );
- TInt retval (ESyncMLDlgRespKeyNone);
- TBool keypress(EFalse);
-
- CSyncMLMessageQueryDialog* msgDlg = CSyncMLMessageQueryDialog::NewL(keypress);
- HBufC* stringHolder = StringLoader::LoadLC (R_FOTA_UPDATE_DEC_WARNING);
- msgDlg->SetMessageTextL(*stringHolder);
- CleanupStack::PopAndDestroy( stringHolder );
-
- msgDlg->PrepareLC( R_SML_MESSAGE_QUERY ); // Pushed dialog is popped inside RunLD
- msgDlg->SetHeaderTextL( headerText->Des() );
- msgDlg->ButtonGroupContainer().SetCommandSetL( R_SML_SOFTKEYS_ACCEPT_CANCEL__ACCEPT );
- retval = ESyncMLDlgRespKeyNone;
- retval = msgDlg->RunLD();
- msgDlg = NULL;
-
- CleanupStack::PopAndDestroy(headerText);
- FLOG(_L("[SmlNotif]\t CSyncMLFwUpdNotifier::ShowUpdateStartQueryL() after new changes in phone updates"));
- return retval;
- }
-
-// -----------------------------------------------------------------------------
-// CSyncMLFwUpdNotifier::ShowUpdateResultNoteL
-// -----------------------------------------------------------------------------
-//
-TInt CSyncMLFwUpdNotifier::ShowUpdateResultWithEncryptionNoteL()
- {
- FTRACE( FPrint( _L(
- "[SmlNotif]\t CSyncMLFwUpdNotifier::ShowUpdateResultWithEncryptionNoteL() result = %d" ),
- iNoteInfo ) );
-
- HBufC* firstStr( NULL );
-
- switch ( iNoteInfo ) // It is easier to add cases to switch structure
- {
- case KErrNone:
- {
- firstStr = StringLoader::LoadLC( R_FOTA_NOTIF_COMPLETE );
- break;
- }
- default:
- {
- firstStr = StringLoader::LoadLC( R_FOTA_MSG_QUERY_NOT_UPDATED );
- break;
- }
- }
-
- HBufC* secStr = StringLoader::LoadLC(R_FOTA_UPDATE_ENC);
-
- HBufC* stringHolder = HBufC::NewLC(firstStr->Length() + secStr->Length());
- TPtr ptr (stringHolder->Des());
- ptr.Append(firstStr->Des());
- ptr.Append(secStr->Des());
-
- TBool keypress(EFalse);
- CSyncMLMessageQueryDialog* msgDlg = CSyncMLMessageQueryDialog::NewL(keypress);
- msgDlg->SetMessageTextL(*stringHolder);
- CleanupStack::PopAndDestroy( stringHolder );
- CleanupStack::PopAndDestroy(secStr);
- CleanupStack::PopAndDestroy(firstStr);
-
-
- msgDlg->PrepareLC( R_SML_MESSAGE_QUERY ); // Pushed dialog is popped inside RunLD
-
- stringHolder = StringLoader::LoadLC( R_FOTA_TITLE_PHONE_UPDATES );
- msgDlg->SetHeaderTextL( stringHolder->Des() );
- CleanupStack::PopAndDestroy( stringHolder );
- stringHolder = NULL;
-
- msgDlg->ButtonGroupContainer().SetCommandSetL( R_SML_SOFTKEYS_ACCEPT_CANCEL__ACCEPT );
- TInt retval(ESyncMLDlgRespKeyNone);
- iRunLhang = ETrue;
- iDlg = msgDlg;
- retval = msgDlg->RunLD();
- iRunLhang = EFalse;
- msgDlg = NULL;
- iDlg = NULL;
- //call-termination key press has to be suppressed here. so keypress has no significance here!
- /*if (keypress)
- retval = EKeyOthers;*/
-
- FTRACE( FPrint( _L(
- "[SmlNotif]\t CSyncMLFwUpdNotifier::ShowUpdateResultWithEncryptionNoteL() completed: retval = %d" ),
- retval ) );
-
- return retval;
- }
-
-
-// -----------------------------------------------------------------------------
-// CSyncMLFwUpdNotifier::RetrieveProfileNameL
-// -----------------------------------------------------------------------------
-//
-void CSyncMLFwUpdNotifier::RetrieveProfileNameL( TDes& aServerName )
- {
- FLOG(_L("[SmlNotif]\t CSyncMLFwUpdNotifier::RetrieveProfileNameL()"));
-
- RSyncMLSession syncSession;
- RSyncMLDevManProfile syncProfile;
-
- syncSession.OpenL();
- CleanupClosePushL( syncSession );
-
- syncProfile.OpenL( syncSession, iNoteInfo, ESmlOpenRead );
- CleanupClosePushL( syncProfile );
-
- aServerName = syncProfile.DisplayName();
-
- CleanupStack::PopAndDestroy( &syncProfile );
- CleanupStack::PopAndDestroy( &syncSession );
-
- FTRACE( FPrint( _L(
- "[SmlNotif]\t CSyncMLFwUpdNotifier::RetrieveProfileNameL() completed: aServerName = %S" ),
- &aServerName ) );
- }
-
-// -----------------------------------------------------------------------------
-// CSyncMLFwUpdNotifier::ShowNoReminderQuery
-// -----------------------------------------------------------------------------
-//
-
-TInt CSyncMLFwUpdNotifier::ShowNoReminderQueryL()
- {
-
- FLOG( _L(
- "[SmlNotif]\t CSyncMLFwUpdNotifier::ShowNoReminderQueryL() begin "));
-
- TInt configFlags( 0 );
- CRepository* cenrep = NULL;
- cenrep = CRepository::NewL( KCRUidNSmlDMSyncApp );
- cenrep->Get( KNSmlDMFotaConfigurationKey, configFlags );
- delete cenrep;
- cenrep = NULL;
- TInt retval (KErrNone);
-
- // Show note if fota is not hidden
- if ( configFlags & KNSmlDMFotaEnableFotaViewFlag )
- {
- HBufC* headerText = StringLoader::LoadLC( R_FOTA_TITLE_PHONE_UPDATES );
- HBufC* stringHolder = StringLoader::LoadLC( R_FOTA_UPDATE_REMINDER );
-
- TBool keypress(EFalse);
- CSyncMLMessageQueryDialog* msgDlg = CSyncMLMessageQueryDialog::NewL(keypress);
- msgDlg->SetMessageTextL(*stringHolder);
- CleanupStack::PopAndDestroy( stringHolder );
- stringHolder = NULL;
-
- msgDlg->PrepareLC( R_SML_MESSAGE_QUERY ); // Pushed dialog is popped inside RunLD
- msgDlg->SetHeaderTextL( headerText->Des() );
-
- msgDlg->ButtonGroupContainer().SetCommandSetL( R_AVKON_SOFTKEYS_OK_EMPTY__OK );
- retval = msgDlg->RunLD();
- msgDlg = NULL;
-
- //call-termination key press is handled here.
- if (keypress)
- retval = ESyncMLDlgRespKeyOthers;
-
- CleanupStack::PopAndDestroy( headerText );
- }
-
- FLOG( _L(
- "[SmlNotif]\t CSyncMLFwUpdNotifier::ShowNoReminderQueryL() Completed "));
-
- return retval;
- }
-
-// -----------------------------------------------------------------------------
-// CSyncMLFwUpdNotifier::ShowNotEnoughMemory
-// -----------------------------------------------------------------------------
-//
-TInt CSyncMLFwUpdNotifier::ShowNotEnoughMemoryL( TInt &aMemoryNeeded , TBool aOmaDL)
-{
- FLOG( _L(
- "[SmlNotif]\t CSyncMLFwUpdNotifier::ShowNotEnoughMemoryL() begin "));
-
- HBufC* headerText = StringLoader::LoadLC( R_FOTA_TITLE_PHONE_UPDATES );
-
- HBufC* stringHolder;
-
- if( aOmaDL )
- stringHolder = StringLoader::LoadLC( R_FOTA_OMADL_NO_FLEXIBLE_MEMORY , aMemoryNeeded );
- else
- stringHolder = StringLoader::LoadLC( R_FOTA_LARGE_NO_FLEXIBLE_MEMORY , aMemoryNeeded );
-
- TBool keypress(EFalse);
- CSyncMLMessageQueryDialog* msgDlg = CSyncMLMessageQueryDialog::NewL(keypress);
- msgDlg->SetMessageTextL(*stringHolder);
- CleanupStack::PopAndDestroy( stringHolder );
- stringHolder = NULL;
-
- msgDlg->PrepareLC( R_SML_MESSAGE_QUERY ); // Pushed dialog is popped inside RunLD
- msgDlg->SetHeaderTextL( headerText->Des() );
-
- msgDlg->ButtonGroupContainer().SetCommandSetL( R_AVKON_SOFTKEYS_OK_EMPTY__OK );
- TInt retval (ESyncMLDlgRespKeyNone);
- retval = msgDlg->RunLD();
- msgDlg = NULL;
- CleanupStack::PopAndDestroy( headerText );
-
- FLOG( _L(
- "[SmlNotif]\t CSyncMLFwUpdNotifier::ShowNotEnoughMemoryL() Completed "));
-
- //call-termination key press is handled here.
- if (keypress)
- retval = ESyncMLDlgRespKeyOthers;
-
- return retval;
-}
-// -----------------------------------------------------------------------------
-// CSyncMLFwUpdNotifier::ShowDownloadUserCancelL
-// Shows the notification when the user cancels the download.
-// And inform the user the download is suspended.
-// -----------------------------------------------------------------------------
-//
-TInt CSyncMLFwUpdNotifier::ShowDownloadUserCancelL()
-{
-
- FLOG( _L(
- "[SmlNotif]\t CSyncMLFwUpdNotifier::ShowDownloadUserCancelL() begin "));
-
- TInt retval (KErrNone);
-
- HBufC* headerText = StringLoader::LoadLC( R_FOTA_TITLE_PHONE_UPDATES );
- HBufC* stringHolder = StringLoader::LoadLC( R_FOTA_USER_CANCEL );
-
- TBool endKeyPress(EFalse);
- CSyncMLMessageQueryDialog* msgDlg = CSyncMLMessageQueryDialog::NewL(endKeyPress);
- msgDlg->SetMessageTextL(*stringHolder);
- CleanupStack::PopAndDestroy( stringHolder );
- stringHolder = NULL;
-
- msgDlg->PrepareLC( R_SML_MESSAGE_QUERY ); // Pushed dialog is popped inside RunLD
- msgDlg->SetHeaderTextL( headerText->Des() );
-
- msgDlg->ButtonGroupContainer().SetCommandSetL( R_AVKON_SOFTKEYS_YES_NO__YES );
- iRunLhang = ETrue;
- iDlg = msgDlg;
- retval = msgDlg->RunLD();
- iRunLhang = EFalse;
- msgDlg = NULL;
- iDlg = NULL;
- //call-termination key press is handled here.
- if (endKeyPress)
- retval = ESyncMLDlgRespKeyOthers;
-
- CleanupStack::PopAndDestroy( headerText );
-
- FLOG( _L(
- "[SmlNotif]\t CSyncMLFwUpdNotifier::ShowDownloadUserCancelL() Completed "));
-
- return retval;
-}
-// -----------------------------------------------------------------------------
-// CSyncMLFwUpdNotifier::ShowDownloadPostponedL
-// Shows the notification that the download is postponed.
-// -----------------------------------------------------------------------------
-//
-TInt CSyncMLFwUpdNotifier::ShowDownloadPostponedL()
-{
-
- FLOG( _L(
- "[SmlNotif]\t CSyncMLFwUpdNotifier::ShowDownloadPostponedL() begin "));
-
- TInt retval (KErrNone);
-
- HBufC* stringHolder = StringLoader::LoadLC( R_FOTA_DOWNLOAD_POSTPONED );
- CAknInformationNote* infoNote = new (ELeave) CAknInformationNote;
-
- infoNote->ExecuteLD( *stringHolder );
- CleanupStack::PopAndDestroy( stringHolder );
-
- FLOG( _L(
- "[SmlNotif]\t CSyncMLFwUpdNotifier::ShowDownloadPostponedL() Completed "));
-
- return retval;
-}
-// -----------------------------------------------------------------------------
-// CSyncMLFwUpdNotifier::ShowDownloadCancelledL
-// Shows the notification that the download is cancelled.
-// -----------------------------------------------------------------------------
-//
-TInt CSyncMLFwUpdNotifier::ShowDownloadCancelledL()
-{
-
- FLOG( _L(
- "[SmlNotif]\t CSyncMLFwUpdNotifier::ShowDownloadCancelledL() begin "));
-
- TInt retval (KErrNone);
-
- HBufC* stringHolder = StringLoader::LoadLC( R_FOTA_DOWNLOAD_CANCELLED );
- CAknInformationNote* infoNote = new (ELeave) CAknInformationNote;
-
- infoNote->ExecuteLD( *stringHolder );
- CleanupStack::PopAndDestroy( stringHolder );
-
- FLOG( _L(
- "[SmlNotif]\t CSyncMLFwUpdNotifier::ShowDownloadCancelledL() Completed "));
-
- return retval;
-}
-// -----------------------------------------------------------------------------
-// CSyncMLFwUpdNotifier::ShowDownloadResumeL
-// Shows the notification to the user for resuming the download.
-// -----------------------------------------------------------------------------
-//
-TInt CSyncMLFwUpdNotifier::ShowDownloadResumeL()
-{
-
- FLOG( _L(
- "[SmlNotif]\t CSyncMLFwUpdNotifier::ShowDownloadResumeL() begin "));
-
- TInt retval (KErrNone);
-
- HBufC* headerText = StringLoader::LoadLC( R_FOTA_TITLE_PHONE_UPDATES );
- HBufC* stringHolder = StringLoader::LoadLC( R_FOTA_DOWNLOAD_RESUME );
-
- TBool endKeyPress(EFalse);
- CSyncMLMessageQueryDialog* msgDlg = CSyncMLMessageQueryDialog::NewL(endKeyPress);
- msgDlg->SetMessageTextL(*stringHolder);
- CleanupStack::PopAndDestroy( stringHolder );
- stringHolder = NULL;
-
- msgDlg->PrepareLC( R_SML_MESSAGE_QUERY ); // Pushed dialog is popped inside RunLD
- msgDlg->SetHeaderTextL( headerText->Des() );
-
- msgDlg->ButtonGroupContainer().SetCommandSetL( R_AVKON_SOFTKEYS_YES_NO__YES );
- iRunLhang = ETrue;
- iDlg = msgDlg;
- retval = msgDlg->RunLD();
- iRunLhang = EFalse;
- iDlg = NULL;
- msgDlg = NULL;
-
- //call-termination key press is handled here.
- if (endKeyPress)
- retval = ESyncMLDlgRespKeyOthers;
-
- CleanupStack::PopAndDestroy( headerText );
-
- FLOG( _L(
- "[SmlNotif]\t CSyncMLFwUpdNotifier::ShowDownloadResumeL() Completed "));
-
- return retval;
-}
-
-// -----------------------------------------------------------------------------
-// CSyncMLFwUpdNotifier::ShowDownloadResumeL
-// Shows the notification to the user for resuming the download.
-// -----------------------------------------------------------------------------
-//
-TBool CSyncMLFwUpdNotifier::IsLanguageSupportedL()
-{
- TBool retVal(EFalse);
- TLanguage language = User::Language();
- if(language == ELangEnglish || language == ELangInternationalEnglish ||
- language == ELangTaiwanChinese ||language == ELangHongKongChinese || language == ELangPrcChinese)
- retVal = ETrue;
- return retVal;
-}
-
-// End of File