504 // HandleUnmount |
504 // HandleUnmount |
505 // --------------------------------------------------------------------------- |
505 // --------------------------------------------------------------------------- |
506 // |
506 // |
507 void CHarvesterAO::HandleUnmount( TUint32 aMediaId ) |
507 void CHarvesterAO::HandleUnmount( TUint32 aMediaId ) |
508 { |
508 { |
509 WRITELOG1( "CHarvesterAO::HandleUnmount(%d)", aMediaId ); |
509 WRITELOG1( "CHarvesterAO::HandleUnmount(%u)", aMediaId ); |
510 OstTrace1( TRACE_NORMAL, CHARVESTERAO_HANDLEUNMOUNT, "CHarvesterAO::HandleUnmount;aMediaId=%d", aMediaId ); |
510 OstTrace1( TRACE_NORMAL, CHARVESTERAO_HANDLEUNMOUNT, "CHarvesterAO::HandleUnmount;aMediaId=%d", aMediaId ); |
511 |
511 |
512 iUnmountDetected = ETrue; |
512 iUnmountDetected = ETrue; |
513 iUnmountHandlingOngoing = ETrue; |
513 iUnmountHandlingOngoing = ETrue; |
514 |
514 |
3124 |
3124 |
3125 #if defined(__WINSCW__) || defined(FF_PLATFORM_SIMULATOR) |
3125 #if defined(__WINSCW__) || defined(FF_PLATFORM_SIMULATOR) |
3126 partialRestore = ETrue; |
3126 partialRestore = ETrue; |
3127 #endif |
3127 #endif |
3128 |
3128 |
3129 if ( !partialRestore ) |
|
3130 { |
|
3131 return; |
|
3132 } |
|
3133 |
|
3134 if( !iMdeSessionInitialized ) |
3129 if( !iMdeSessionInitialized ) |
3135 { |
3130 { |
3136 return; |
3131 return; |
3137 } |
3132 } |
3138 |
3133 |
3139 iMdEHarvesterSession->ChangeCDriveMediaId(); |
3134 if( partialRestore ) |
3140 |
3135 { |
3141 WRITELOG("CHarvesterAO::BootPartialRestoreScanL() - partial restore"); |
3136 iMdEHarvesterSession->ChangeCDriveMediaId(); |
3142 OstTrace0( TRACE_NORMAL, CHARVESTERAO_BOOTPARTIALRESTORESCANL, "CHarvesterAO::BootPartialRestoreScanL - partial restore" ); |
3137 |
|
3138 WRITELOG("CHarvesterAO::BootPartialRestoreScanL() - partial restore"); |
|
3139 } |
|
3140 else |
|
3141 { |
|
3142 WRITELOG("CHarvesterAO::BootPartialRestoreScanL() - preinstalled content bootup scan"); |
|
3143 } |
|
3144 OstTrace0( TRACE_NORMAL, CHARVESTERAO_BOOTPARTIALRESTORESCANL, "CHarvesterAO::BootPartialRestoreScanL - prepare bootup scan" ); |
3143 |
3145 |
3144 RPointerArray<TScanItem> scanItems; |
3146 RPointerArray<TScanItem> scanItems; |
3145 TCleanupItem cleanupItem( MdsUtils::CleanupPtrArray<TScanItem>, &scanItems ); |
3147 TCleanupItem cleanupItem( MdsUtils::CleanupPtrArray<TScanItem>, &scanItems ); |
3146 CleanupStack::PushL( cleanupItem ); |
3148 CleanupStack::PushL( cleanupItem ); |
3147 |
3149 |
3148 CHarvesterCenRepUtil::GetPartialRestorePathsL( scanItems ); |
3150 if( partialRestore ) |
|
3151 { |
|
3152 CHarvesterCenRepUtil::GetPartialRestorePathsL( scanItems ); |
|
3153 } |
|
3154 |
|
3155 RPointerArray<TScanItem> preinstalledItems; |
|
3156 TCleanupItem cleanupItem2( MdsUtils::CleanupPtrArray<TScanItem>, &preinstalledItems ); |
|
3157 CleanupStack::PushL( cleanupItem2 ); |
|
3158 |
|
3159 // Scan for preinstalled content anyways |
|
3160 CHarvesterCenRepUtil::GetAlwaysScanOnBootPathsL( preinstalledItems ); |
|
3161 |
|
3162 for( TInt i = preinstalledItems.Count() - 1; i >=0; i-- ) |
|
3163 { |
|
3164 TScanItem* preinstalledLocation = preinstalledItems[i]; |
|
3165 preinstalledLocation->iPreinstalled = MdeConstants::MediaObject::EPreinstalled; |
|
3166 scanItems.Append( preinstalledLocation ); |
|
3167 } |
|
3168 preinstalledItems.Reset(); |
3149 |
3169 |
3150 RPointerArray<HBufC> ignorePaths; |
3170 RPointerArray<HBufC> ignorePaths; |
3151 TCleanupItem cleanupItem2( MdsUtils::CleanupPtrArray<HBufC>, &ignorePaths ); |
3171 TCleanupItem cleanupItem3( MdsUtils::CleanupPtrArray<HBufC>, &ignorePaths ); |
3152 CleanupStack::PushL( cleanupItem2 ); |
3172 CleanupStack::PushL( cleanupItem3 ); |
3153 |
3173 |
3154 CHarvesterCenRepUtil::GetIgnoredPartialRestorePathsL( ignorePaths ); |
3174 CHarvesterCenRepUtil::GetIgnoredPartialRestorePathsL( ignorePaths ); |
3155 |
3175 |
3156 BootScanL( scanItems, ignorePaths, EFalse ); |
3176 BootScanL( scanItems, ignorePaths, EFalse ); |
3157 |
3177 |
3159 OstTrace0( TRACE_NORMAL, DUP1_CHARVESTERAO_BOOTPARTIALRESTORESCANL, "CHarvesterAO::BootPartialRestoreScanL - iRestoreWatcher->UnregisterL()" ); |
3179 OstTrace0( TRACE_NORMAL, DUP1_CHARVESTERAO_BOOTPARTIALRESTORESCANL, "CHarvesterAO::BootPartialRestoreScanL - iRestoreWatcher->UnregisterL()" ); |
3160 |
3180 |
3161 iRestoreWatcher->UnregisterL(); |
3181 iRestoreWatcher->UnregisterL(); |
3162 |
3182 |
3163 CleanupStack::PopAndDestroy( &ignorePaths ); |
3183 CleanupStack::PopAndDestroy( &ignorePaths ); |
|
3184 CleanupStack::PopAndDestroy( &preinstalledItems ); |
3164 CleanupStack::PopAndDestroy( &scanItems ); |
3185 CleanupStack::PopAndDestroy( &scanItems ); |
3165 } |
3186 } |
3166 |
3187 |
3167 TBool CHarvesterAO::IsDescInArray(const TPtrC& aSearch, const RPointerArray<HBufC>& aArray) |
3188 TBool CHarvesterAO::IsDescInArray(const TPtrC& aSearch, const RPointerArray<HBufC>& aArray) |
3168 { |
3189 { |
3268 WRITELOG("CHarvesterAO::BootScanL() - scanFolders.AppendL"); |
3289 WRITELOG("CHarvesterAO::BootScanL() - scanFolders.AppendL"); |
3269 OstTrace0( TRACE_NORMAL, DUP2_CHARVESTERAO_BOOTSCANL, "CHarvesterAO::BootScanL - scanFolders.AppendL" ); |
3290 OstTrace0( TRACE_NORMAL, DUP2_CHARVESTERAO_BOOTSCANL, "CHarvesterAO::BootScanL - scanFolders.AppendL" ); |
3270 TScanItem* item = new (ELeave) TScanItem(); |
3291 TScanItem* item = new (ELeave) TScanItem(); |
3271 CleanupStack::PushL( item ); |
3292 CleanupStack::PushL( item ); |
3272 item->iPath = name->AllocL(); |
3293 item->iPath = name->AllocL(); |
3273 item->iPreinstalled = MdeConstants::MediaObject::ENotPreinstalled; |
3294 item->iPreinstalled = preinstalled; |
3274 CleanupStack::Pop( item ); |
3295 CleanupStack::Pop( item ); |
3275 aScanItems.AppendL( item ); // ownership is transferred |
3296 aScanItems.AppendL( item ); // ownership is transferred |
3276 } |
3297 } |
3277 } |
3298 } |
3278 else |
3299 else |