appinstaller/AppinstUi/sisxsifplugin/src/sisxsifpluginuihandlersilent.cpp
changeset 72 a0dc14075813
parent 60 245df5276b97
--- a/appinstaller/AppinstUi/sisxsifplugin/src/sisxsifpluginuihandlersilent.cpp	Thu Sep 02 20:34:03 2010 +0300
+++ b/appinstaller/AppinstUi/sisxsifplugin/src/sisxsifpluginuihandlersilent.cpp	Fri Sep 17 08:30:26 2010 +0300
@@ -228,7 +228,7 @@
         const CApaMaskedBitmap* /*aLogo*/,
         const RPointerArray<Swi::CCertificateInfo>& /*aCertificates*/ )
     {
-    iOperationPhase = EInstalling;
+    ASSERT( iOperationPhase == EInstalling );
     return ETrue;
     }
 
@@ -271,13 +271,16 @@
 	TInt languageCount = aLanguages.Count();
 	if( iInstallParams )
 		{
-		TLanguage lang = iInstallParams->Language();
-		TInt index = aLanguages.Find( lang );
-		if( index >= 0 && index < languageCount )
-			{
-			languageIndex = index;
-			found = ETrue;
-			}
+		const RArray<TLanguage>& preferredLanguages = iInstallParams->Languages();
+		for( TInt prefIndex = 0; prefIndex < preferredLanguages.Count() && !found; prefIndex++ )
+		    {
+	        TInt selectedIndex = aLanguages.Find( preferredLanguages[ prefIndex ] );
+	        if( selectedIndex >= 0 && selectedIndex < languageCount )
+	            {
+	            languageIndex = selectedIndex;
+	            found = ETrue;
+	            }
+		    }
 		}
 	if( !found )
 		{
@@ -304,22 +307,26 @@
 	TInt driveCount = aDriveLetters.Count();
 	if( iInstallParams )
 		{
+	    const RArray<TUint>& preferredDrives = iInstallParams->Drives();
 		TChar driveLetter = 0;
-		RFs::DriveToChar( iInstallParams->Drive(), driveLetter );
-		TInt index = aDriveLetters.Find( driveLetter );
-		if( index >= 0 && index < driveCount )
-			{
-			if( aDriveSpaces[ index ] > aSize )
-				{
-				driveIndex = index;
-				found = ETrue;
-				}
-			}
+		TIdentityRelation<TChar> relation(CompareDriveLetters);
+		for( TInt prefIndex = 0; prefIndex < preferredDrives.Count() && !found; prefIndex++ )
+		    {
+		    RFs::DriveToChar( preferredDrives[ prefIndex ], driveLetter );
+		    TInt index = aDriveLetters.Find( driveLetter, relation );
+            if( index >= 0 && index < driveCount )
+                {
+                if( aDriveSpaces[ index ] > aSize )
+                    {
+                    driveIndex = index;
+                    found = ETrue;
+                    }
+                }
+		    }
 		}
-	// TODO: should there be some default drive?
 	if( !found )
 		{
-		User::Leave( KErrNoMemory );
+		driveIndex = KErrNotFound;
 		}
     return driveIndex;
     }
@@ -342,6 +349,7 @@
 			case EUserConfirm:
 			case ENotAllowed:
 			default:
+			    // TODO: SetError
 				break;
 			}
 		}
@@ -366,6 +374,7 @@
 			case EUserConfirm:
 			case ENotAllowed:
 			default:
+			    // TODO: SetError
 				break;
 			}
 		}
@@ -468,6 +477,7 @@
 					case EUserConfirm:
 					case ENotAllowed:
 					default:
+					    // TODO: SetError
 						break;
 					}
                 }
@@ -502,6 +512,7 @@
                 case EUserConfirm:
                 case ENotAllowed:
                 default:
+                    // TODO: SetError
                     break;
                 }
 	        }
@@ -548,6 +559,7 @@
 			case EUserConfirm:
 			case ENotAllowed:
 			default:
+			    // TODO: SetError
 				break;
 			}
 		}
@@ -566,7 +578,7 @@
 //
 TBool CSisxSifPluginUiHandlerSilent::DisplayUninstallL( const Swi::CAppInfo& /*aAppInfo*/ )
     {
-    iOperationPhase = EUninstalling;
+    ASSERT( iOperationPhase == EUninstalling );
     return ETrue;
     }
 
@@ -599,6 +611,15 @@
     }
 
 // ---------------------------------------------------------------------------
+// CSisxSifPluginUiHandlerSilent::CancelDialogs()
+// ---------------------------------------------------------------------------
+//
+void CSisxSifPluginUiHandlerSilent::CancelDialogs()
+    {
+    // nothing to do
+    }
+
+// ---------------------------------------------------------------------------
 // CSisxSifPluginUiHandlerSilent::CSisxSifPluginUiHandlerSilent()
 // ---------------------------------------------------------------------------
 //