appinstaller/AppinstUi/Daemon/Src/uninstaller.cpp
changeset 37 6e7b00453237
parent 29 26b6f0522fd8
equal deleted inserted replaced
33:8110bf1194d1 37:6e7b00453237
   279                  if ( iUidArrayIndex < iPkgUidArray.Count() )
   279                  if ( iUidArrayIndex < iPkgUidArray.Count() )
   280                      { 
   280                      { 
   281                      // Display installing note for user.
   281                      // Display installing note for user.
   282                      iDialogs->ShowWaitingNoteForUninstallerL(); 
   282                      iDialogs->ShowWaitingNoteForUninstallerL(); 
   283                      
   283                      
       
   284                      if ( iUidArrayIndex == 0 )
       
   285                          {
       
   286                          // Set uninstall mode for universal indicator and
       
   287                          // set percent value to 0%.
       
   288                          iDialogs->SetModeToIndicatorL( KSWIDaemonUninstallerMode );
       
   289                          }
       
   290                      else
       
   291                          {
       
   292                          // Calculate current percent value to iPercentValue. 
       
   293                          CalcPercentValue();
       
   294                          // Activate new value to universal indicator.
       
   295                          iDialogs->ActivateIndicatorL( iPercentValue );
       
   296                          }
       
   297                      
   284                      FLOG_1( _L("[SISUninstaller] Run uninstall index = %d"), 
   298                      FLOG_1( _L("[SISUninstaller] Run uninstall index = %d"), 
   285                              iUidArrayIndex ); 
   299                              iUidArrayIndex ); 
   286                      
   300                      
   287                      // Get next UID. 
   301                      // Get next UID. 
   288                      iUID = iPkgUidArray[ iUidArrayIndex ];
   302                      iUID = iPkgUidArray[ iUidArrayIndex ];
   345 // -----------------------------------------------------------------------
   359 // -----------------------------------------------------------------------
   346 //
   360 //
   347 void CSisPkgUninstaller::UninstallationCompleted( TInt /*aResult*/ )
   361 void CSisPkgUninstaller::UninstallationCompleted( TInt /*aResult*/ )
   348     {
   362     {
   349     FLOG( _L("[SISUninstaller] UninstallationCompleted") );
   363     FLOG( _L("[SISUninstaller] UninstallationCompleted") );
       
   364     // Update indicator value last time and show 100% to user.
       
   365     iDialogs->ActivateIndicatorL( 100 );
   350     
   366     
   351     if ( EStateUninstalling == iProgramStatus->GetProgramStatus() )
   367     if ( EStateUninstalling == iProgramStatus->GetProgramStatus() )
   352          {   
   368          {   
   353          FLOG( _L("[SISUninstaller] Set status to idle"));
   369          FLOG( _L("[SISUninstaller] Set status to idle"));
   354          iProgramStatus->SetProgramStatusToIdle();
   370          iProgramStatus->SetProgramStatusToIdle();
   356  
   372  
   357     iUidArrayIndex = 0;    
   373     iUidArrayIndex = 0;    
   358     iState = EUninstallerStateIdle; 
   374     iState = EUninstallerStateIdle; 
   359           
   375           
   360     // Cancel waiting note.
   376     // Cancel waiting note.
   361     TRAP_IGNORE( iDialogs->CancelWaitingNoteL() );       
   377     TRAP_IGNORE( iDialogs->CancelWaitingNoteForUninstaller());
       
   378     // Close indicator.
       
   379     iDialogs->CancelIndicatorL();
   362     }  
   380     }  
   363 
   381 
   364 
   382 
   365 // -----------------------------------------------------------------------
   383 // -----------------------------------------------------------------------
   366 // This is for self exit.
   384 // This is for self exit.
   372     // Uninstall is completed and we do not need uninstaller anymore.
   390     // Uninstall is completed and we do not need uninstaller anymore.
   373     // Call revisor's destructor.
   391     // Call revisor's destructor.
   374     iRevisor->Exit();
   392     iRevisor->Exit();
   375     }
   393     }
   376 
   394 
       
   395 // -----------------------------------------------------------------------
       
   396 // CSisInstaller::CalcPrecentValue
       
   397 // -----------------------------------------------------------------------
       
   398 //
       
   399 void CSisPkgUninstaller::CalcPercentValue()
       
   400     {     
       
   401     FLOG( _L("[SISUninstaller] CalcPercentValue") );
       
   402     FLOG_1( _L("[SISUninstaller] iUidArrayIndex = %d"), iUidArrayIndex ); 
       
   403     // Let's calculate indicator value for UI now.
       
   404     TInt packageUidCount = iPkgUidArray.Count();
       
   405     FLOG_1( _L("[SISUninstaller] pkg UID count = %d"), packageUidCount ); 
       
   406     
       
   407     iPercentValue = 0;
       
   408 
       
   409     if ( iUidArrayIndex && packageUidCount )
       
   410         {
       
   411         // Let's calculate new precent value.     
       
   412         if ( iUidArrayIndex <= packageUidCount )
       
   413             {
       
   414             TReal32 realArrayIndex = iUidArrayIndex;
       
   415             TReal32 realPkgCount = packageUidCount;
       
   416             iPercentValue = (realArrayIndex/realPkgCount)*100;                                   
       
   417             }
       
   418         else
       
   419             {
       
   420             // Most probably all is uninstalled if index is bigger then
       
   421             // filen count. Let's not show over 100% to user.           
       
   422             iPercentValue = 100;
       
   423             }
       
   424         }
       
   425             
       
   426     FLOG_1( _L("[SISUninstaller] percent value = %d"), (TInt)iPercentValue );
       
   427     }
       
   428 
   377 //EOF
   429 //EOF