iaupdate/IAD/ui/src/iaupdateuicontroller.cpp
changeset 42 d17dc5398051
parent 33 8110bf1194d1
child 44 329d304c1aa1
child 52 92f864ef0288
--- a/iaupdate/IAD/ui/src/iaupdateuicontroller.cpp	Thu May 27 12:58:35 2010 +0300
+++ b/iaupdate/IAD/ui/src/iaupdateuicontroller.cpp	Fri Jun 11 13:45:18 2010 +0300
@@ -24,7 +24,6 @@
 #include <featurecontrol.h>
 #include <cmmanager.h>
 #include <qapplication.h>
-#include <hbmessagebox.h>
 #include <hbaction.h>
 #include <hbprogressdialog.h>
 #include <iaupdateparameters.h>
@@ -59,6 +58,7 @@
 #include "iaupdaterefreshhandler.h"
 #include "iaupdatenodeid.h"
 #include "iaupdatewaitdialog.h"
+#include "iaupdatedialogutil.h"
 #include "iaupdatedebug.h"
 
 
@@ -262,6 +262,7 @@
     delete iRoamingHandler;
     delete iParams;
     delete iRefreshHandler;
+    delete mDialogUtil;
 
     // If dialogs have not been released yet, release them now.
     // ProcessFinishedL() should normally be used for dialogs but
@@ -309,7 +310,7 @@
 void CIAUpdateUiController::CheckUpdatesL()
     {
     IAUPDATE_TRACE("[IAUPDATE] CIAUpdateUiController::CheckUpdatesL() begin");
-
+    
     iCountOfAvailableUpdates = 0;
     
     if ( iParams )
@@ -318,7 +319,7 @@
     	iParams = NULL;
         }
      
-    TBool agreementAccepted( EFalse ); 
+    TBool agreementAccepted( EFalse );
     if ( !ForcedRefresh() )
         {
         CIAUpdateAgreement* agreement = CIAUpdateAgreement::NewLC();
@@ -330,10 +331,45 @@
             // Refresh from network is allowed when first time case 
             iRefreshFromNetworkDenied = EFalse;
             agreementAccepted = agreement->AcceptAgreementL();  
+            if (!agreementAccepted)
+                {
+                if ( !mDialogUtil )
+                    {
+                    mDialogUtil = new IAUpdateDialogUtil(NULL, this);
+                    }
+                if ( mDialogUtil )
+                    {
+                    mPrimaryAction = NULL;
+                    mPrimaryAction = new HbAction("Accept");
+                    HbAction *secondaryAction = NULL;
+                    secondaryAction = new HbAction("Decline");
+                    mDialogUtil->showAgreement(mPrimaryAction,secondaryAction);
+                    iDialogState = EAgreement;
+                    }
+                }
             }
         CleanupStack::PopAndDestroy( agreement );
         }
-  	             
+    if ( iDialogState != EAgreement )
+        {
+        AgreementHandledL();
+        }
+    IAUPDATE_TRACE("[IAUPDATE] CIAUpdateUiController::CheckUpdatesL() end");
+    return;
+    }
+
+// ---------------------------------------------------------------------------
+// CIAUpdateUiController:: AgreementHandledL
+// Updates the update item list.
+// ---------------------------------------------------------------------------
+//
+void CIAUpdateUiController::AgreementHandledL()
+    {
+    IAUPDATE_TRACE("[IAUPDATE] CIAUpdateUiController::AgreementHandledL() begin");
+    TBool agreementAccepted( EFalse );
+    CIAUpdateAgreement* agreement = CIAUpdateAgreement::NewLC();
+    agreementAccepted = agreement->AgreementAcceptedL();
+    CleanupStack::PopAndDestroy( agreement );        
     if ( !agreementAccepted && !ForcedRefresh() )
         {
         if ( iRequestType == IAUpdateUiDefines::ECheckUpdates )
@@ -395,7 +431,7 @@
             }	
         }
 
-    IAUPDATE_TRACE("[IAUPDATE] CIAUpdateUiController::CheckUpdatesL() end");
+    IAUPDATE_TRACE("[IAUPDATE] CIAUpdateUiController::AgreementHandledL() end");
     }
 
 
@@ -417,13 +453,17 @@
                 
     if ( !IAUpdateUtils::SpaceAvailableInInternalDrivesL( iSelectedNodesArray ) )
         {
-            HbMessageBox messageBox(HbMessageBox::MessageTypeInformation); 
-            messageBox.setText(QString("Insufficient memory. Free some memory and try again."));
-            HbAction action("OK");
-            messageBox.setPrimaryAction(&action);
-            messageBox.setTimeout(HbPopup::NoTimeout);
-            messageBox.show();
-            //messageBox.exec();
+        if ( !mDialogUtil )
+            {
+            mDialogUtil = new IAUpdateDialogUtil(NULL, this);
+            }
+        if ( mDialogUtil )
+            {
+            mPrimaryAction = NULL;
+            mPrimaryAction = new HbAction("OK");
+            mDialogUtil->showInformation(QString("Insufficient memory. Free some memory and try again."), mPrimaryAction);
+            iDialogState = EInsufficientMemory;
+            }
         }
     else
         {
@@ -1549,6 +1589,35 @@
     }
 
 // -----------------------------------------------------------------------------
+// CIAUpdateUiController::dialogFinished
+// Called when dialog is finished.
+// -----------------------------------------------------------------------------
+//
+void CIAUpdateUiController::dialogFinished(HbAction *action)
+    {
+    TDialogState dialogState = iDialogState;
+    iDialogState = ENoDialog;
+    
+    switch ( dialogState )
+        {
+        case EAgreement:
+            if ( action == mPrimaryAction )
+                 {
+                CIAUpdateAgreement* agreement = CIAUpdateAgreement::NewLC();
+                agreement->SetAgreementAcceptedL();
+
+                CleanupStack::PopAndDestroy(agreement);
+                }
+            AgreementHandledL();        
+            break;
+        case EInsufficientMemory:    
+            break;
+        default: 
+            break;
+        }
+    }
+
+// -----------------------------------------------------------------------------
 // CIAUpdateUiController::HandleUiRefreshL
 // 
 // -----------------------------------------------------------------------------
@@ -2085,7 +2154,8 @@
 // 
 // ---------------------------------------------------------------------------
 //
-void CIAUpdateUiController::ShowUpdatingDialogL( TInt /*aTextResourceId*/,
+/*
+void CIAUpdateUiController::ShowUpdatingDialogL( TInt aTextResourceId,
                                                  const TDesC& aName,
                                                  TInt aNumber,
                                                  TInt aTotalCount )   
@@ -2124,7 +2194,7 @@
     CleanupStack::PopAndDestroy( stringArray );
 
     IAUPDATE_TRACE("[IAUPDATE] CIAUpdateUiController::ShowUpdatingDialogL() end");
-    }
+    }*/
  
 
 // ---------------------------------------------------------------------------