iaupdate/IAD/updater/src/iaupdaterdialog.cpp
branchRCL_3
changeset 66 8b7f4e561641
parent 65 7333d7932ef7
--- a/iaupdate/IAD/updater/src/iaupdaterdialog.cpp	Tue Aug 31 15:21:33 2010 +0300
+++ b/iaupdate/IAD/updater/src/iaupdaterdialog.cpp	Wed Sep 01 12:22:02 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2007-2008 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"
@@ -17,17 +17,19 @@
 
 
 
+#include <AknGlobalNote.h>
+#include <avkon.rsg>
+#include <bautils.h>
+#include <data_caging_path_literals.hrh> 
+#include <iaupdater.rsg>
+#include <StringLoader.h>
+#include <AknUtils.h>   //For AknTextUtils
+
 #include "iaupdaterdialog.h"
 #include "iaupdaterdefs.h"
 #include "iaupdatercancelobserver.h"
 #include "iaupdatedebug.h"
 
-#include <hbtextresolversymbian.h>
-
-
-_LIT(KFilename, "iaupdate.ts");
-_LIT(KPath, "z://data");
-_LIT(KInstalling, "txt_software_info_installing_1"); 
 
 // ======== LOCAL FUNCTIONS ========
 
@@ -39,23 +41,26 @@
 // C++ default constructor 
 // -----------------------------------------------------------------------------
 //
-CIAUpdaterDialog::CIAUpdaterDialog( MIAUpdaterCancelObserver& aObserver )
-: iObserver ( &aObserver ) 
+CIAUpdaterDialog::CIAUpdaterDialog( RFs& aFs, 
+                                    MIAUpdaterCancelObserver& aObserver )
+: CActive( CActive::EPriorityStandard ),
+  iFs( aFs ),
+  iObserver ( &aObserver ) 
     {
-
+    CActiveScheduler::Add( this );
     }
 
 
-
 // -----------------------------------------------------------------------------
 // CIAUpdaterDialog::NewL
 // Two-phased constructor.
 // -----------------------------------------------------------------------------
 //
-CIAUpdaterDialog* CIAUpdaterDialog::NewL( MIAUpdaterCancelObserver& aObserver )
+CIAUpdaterDialog* CIAUpdaterDialog::NewL( RFs& aFs, 
+                                          MIAUpdaterCancelObserver& aObserver )
     {
     CIAUpdaterDialog* self =
-        CIAUpdaterDialog::NewLC( aObserver );
+        CIAUpdaterDialog::NewLC( aFs, aObserver );
     CleanupStack::Pop( self );
     return self;    
     }
@@ -66,10 +71,11 @@
 // Two-phased constructor.
 // -----------------------------------------------------------------------------
 //
-CIAUpdaterDialog* CIAUpdaterDialog::NewLC( MIAUpdaterCancelObserver& aObserver )
+CIAUpdaterDialog* CIAUpdaterDialog::NewLC( RFs& aFs, 
+                                           MIAUpdaterCancelObserver& aObserver )
     {
     CIAUpdaterDialog* self = 
-        new( ELeave ) CIAUpdaterDialog( aObserver );
+        new( ELeave ) CIAUpdaterDialog( aFs, aObserver );
     CleanupStack::PushL( self );
     self->ConstructL();
     return self;    
@@ -86,8 +92,18 @@
     IAUPDATE_TRACE("[IAUpdater] CIAUpdaterDialog::ConstructL begin");
     
     // Get resource file path
-    iIsResolverSuccess = HbTextResolverSymbian::Init(KFilename, KPath);
+    TFileName fileName;
+    fileName.Copy( TParsePtrC( RProcess().FileName() ).Drive() );
+    fileName.Append( KDC_APP_RESOURCE_DIR );
+    fileName.Append( IAUpdaterDefs::KIAUpdaterResourceFile );
     
+    // Get language of resource file        
+    BaflUtils::NearestLanguageFile( iFs, fileName );
+
+    // Open resource file
+    iResourceFile.OpenL( iFs, fileName );
+    iResourceFile.ConfirmSignatureL();    
+
     IAUPDATE_TRACE("[IAUpdater] CIAUpdaterDialog::ConstructL end");
     }
 
@@ -99,7 +115,9 @@
 //
 CIAUpdaterDialog::~CIAUpdaterDialog()
     {
-    DestroyGlobalWaitNote();
+    Cancel();
+    delete iNote;
+    iResourceFile.Close();    
     }
 
 
@@ -108,30 +126,54 @@
 // Show global waiting note during installing.
 // -----------------------------------------------------------------------------
 // 
-void CIAUpdaterDialog::ShowWaitingNoteL( const TDesC& aName, TInt /*aIndex*/, TInt /*aTotalCount*/ )
+void CIAUpdaterDialog::ShowWaitingNoteL( const TDesC& aName, TInt aIndex, TInt aTotalCount )
 	{	
 	IAUPDATE_TRACE("[IAUpdater] CIAUpdaterDialog::ShowWaitingNoteL begin");
+	if ( iNoteId == 0 )
+		{ 		                             
+	    IAUPDATE_TRACE("[IAUpdater] Creating global waiting note.");
 	
-	DestroyGlobalWaitNote();
-    
-    iGlobalWaitNote = CHbDeviceProgressDialogSymbian::NewL(
-            CHbDeviceProgressDialogSymbian::EWaitDialog );
-    
-    // loc: Load string 
-    iGlobalResource = HbTextResolverSymbian::LoadL( KInstalling, aName );
-    if ( iGlobalResource )
-        iGlobalWaitNote->SetTextL( iGlobalResource->Des() );
-
-    // Icon ?
-    //iGlobalWaitNote->SetIconNameL(const TDesC& aIconName);
-    
-    // Button ?
-    iGlobalWaitNote->SetButton(ETrue);
-    
-    iGlobalWaitNote->SetObserver( this );
-    iGlobalWaitNote->SetAutoClose(EFalse);
-    iGlobalWaitNote->ShowL();
-    
+        // Get localiced string from resc. file. 
+        HBufC* string = ReadResourceLC( R_IAUPDATER_INSTALLING ); 
+                                          
+        HBufC* temp1 = HBufC::NewLC( string->Length() + aName.Length() );          
+        TPtr temp1Ptr = temp1->Des();
+        
+        // Add pkg's name to string (U0).
+        StringLoader::Format( temp1Ptr, *string, 0, aName );
+                                        
+        // Increase buffer length for the number.        
+        HBufC* temp2 = 
+            HBufC::NewLC( temp1->Length() + IAUpdaterDefs::KIAUpdaterParamLen );        
+        TPtr temp2Ptr = temp2->Des();
+         
+        // Add index number to string (N1) 
+        StringLoader::Format( temp2Ptr, *temp1, 1, aIndex );
+                        
+        // Increase buffer length for the number.  
+        HBufC* finalString = 
+            HBufC::NewLC( temp2->Length() + IAUpdaterDefs::KIAUpdaterParamLen );        
+        TPtr finalPtr = finalString->Des();
+        
+        // Add max count number to string (N2) 
+        StringLoader::Format( finalPtr, *temp2, 2, aTotalCount );
+        
+        AknTextUtils::DisplayTextLanguageSpecificNumberConversion( finalPtr );         
+        if ( !iNote )
+            {
+        	iNote = CAknGlobalNote::NewL();   
+    	    iNote->SetSoftkeys( R_AVKON_SOFTKEYS_CANCEL );
+            }
+     	
+	    IAUPDATE_TRACE("[IAUpdater] Showing global waiting note.");
+    	iNoteId = iNote->ShowNoteL( iStatus, EAknGlobalWaitNote, *finalString );
+    	SetActive();    	    	
+     
+    	CleanupStack::PopAndDestroy( finalString );
+    	CleanupStack::PopAndDestroy( temp2 );
+    	CleanupStack::PopAndDestroy( temp1 );
+    	CleanupStack::PopAndDestroy( string );
+		}
 	IAUPDATE_TRACE("[IAUpdater] CIAUpdaterDialog::ShowWaitingNoteL end");
 	}
 
@@ -144,39 +186,65 @@
 void CIAUpdaterDialog::CancelWaitingNoteL()
 	{
     IAUPDATE_TRACE("[IAUpdater] CIAUpdaterDialog::CancelWaitingNoteL begin");
-    
-    DestroyGlobalWaitNote();
-    
+	
+	if ( iNoteId != 0 )
+		{
+        IAUPDATE_TRACE("[IAUpdater] Cancel waiting note.");
+	    iNote->CancelNoteL( iNoteId );
+	    iNoteId = 0;
+		}
+
     IAUPDATE_TRACE("[IAUpdater] CIAUpdaterDialog::CancelWaitingNoteL end");
 	}
 
-void CIAUpdaterDialog::ProgressDialogCancelled(
-    const CHbDeviceProgressDialogSymbian* /*aProgressDialog*/ )
+	
+// -----------------------------------------------------------------------------	
+// CIAUpdaterDialog::LoadResourceLC
+// Read resource string.
+// -----------------------------------------------------------------------------
+// 
+HBufC* CIAUpdaterDialog::ReadResourceLC( TInt aResourceId )
     {
-    
-    iObserver->UserCancel();
+    TResourceReader reader;
+    HBufC8* buff = iResourceFile.AllocReadLC( aResourceId );    
+    reader.SetBuffer( buff );
+    HBufC* text = reader.ReadHBufCL();
+    CleanupStack::PopAndDestroy( buff );
+    CleanupStack::PushL( text );
+
+    return text;
+    }
     
-    }
-
-void CIAUpdaterDialog::ProgressDialogClosed(
-    const CHbDeviceProgressDialogSymbian* /*aProgressDialog*/ )
+    
+// ---------------------------------------------------------------------------
+// CIAUpdaterDialog:::DoCancel
+// 
+// ---------------------------------------------------------------------------
+// 
+void CIAUpdaterDialog::DoCancel()
     {
-    
+    TRAP_IGNORE( CancelWaitingNoteL() );
     }
 
-// -----------------------------------------------------------------------------
-// CIAUpdaterDialog::DestroyGlobalWaitNote
-// -----------------------------------------------------------------------------
-void CIAUpdaterDialog::DestroyGlobalWaitNote()
+// ---------------------------------------------------------------------------
+// CIAUpdateNetworkRegistration::RunL()
+// 
+// ---------------------------------------------------------------------------
+//
+void CIAUpdaterDialog::RunL()
     {
-    if ( iGlobalWaitNote )
+    IAUPDATE_TRACE_1("[IAUpdater] CIAUpdaterDialog::RunL() iStatus : %d", iStatus.Int() );
+    iNoteId = 0;
+    if ( iStatus.Int() == EAknSoftkeyCancel )
         {
-        iGlobalWaitNote->Close();
-        delete iGlobalWaitNote;
-        iGlobalWaitNote = NULL;
-        delete iGlobalResource;
-        iGlobalResource = NULL;
+    	iObserver->UserCancel();
+        }
+    else
+        {
+        iObserver->UserExit();	
         }
     }
-    
+
+// ======== GLOBAL FUNCTIONS ========
+
 //  EOF