browserutilities/downloadmgr/DownloadMgrUiLib/Src/CDownloadMgrUiUserInteractions.cpp
--- a/browserutilities/downloadmgr/DownloadMgrUiLib/Src/CDownloadMgrUiUserInteractions.cpp Tue Aug 31 16:17:46 2010 +0300
+++ b/browserutilities/downloadmgr/DownloadMgrUiLib/Src/CDownloadMgrUiUserInteractions.cpp Wed Sep 01 12:28:30 2010 +0100
@@ -15,13 +15,11 @@
*
*/
-
-
// INCLUDE FILES
-#include "CDownloadMgrUiUserInteractions.h"
+#include <cdownloadmgruiuserinteractions.h>
#include "CUserInteractionsUtils.h"
-#include "CDownloadMgrUiDownloadsList.h"
-#include "CDownloadMgrUiLibRegistry.h"
+#include <cdownloadmgruidownloadslist.h>
+#include <cdownloadmgruilibregistry.h>
#include "UserInteractionsEventHandler.h"
#include "AsyncEventHandlerArray.h"
#include "UiLibLogger.h"
@@ -356,7 +354,6 @@
THttpDownloadState state;
THttpProgressState progState;
TBool isHiddenDel = EFalse;
- TBool isCodDownload( EFalse );
TBool isProg (EFalse);
// check if progressive download, if yes, will NOT delete from the list, otherwise will
const CDownloadArray& downloadsDel = iRegistryModel.DownloadMgr().CurrentDownloads();
@@ -457,15 +454,14 @@
downloadCnt = iRegistryModel.DownloadCount();
- TBool isProgressive (EFalse);
+
if ( resp == EAknSoftkeyYes || resp == EAknSoftkeyOk )
{
for ( TInt i = downloadCnt - 1; i >=0; --i )
{
RHttpDownload* dl = downloads.At(i); //current download
- dl->GetBoolAttribute( EDlAttrProgressive, isProgressive );
dl->GetBoolAttribute( EDlAttrPausable , isPausable );
- if (!( isProgressive || isPausable ) ) // delete only no-PDL downloads and Non pausable Downloads
+ if (!( isPausable ) ) // delete only Non pausable Downloads
{
// Delete not attached downloads.
dl->Delete(); // Return value ignored.
@@ -912,6 +908,10 @@
for( TInt i = 0; i < downloadCnt; ++i )
{
RHttpDownload* dl = downloads.At(i); // current download
+ // we do not have to show the download in case of invalid descriptor
+ HBufC* name = HBufC::NewLC( KMaxUrlLength );
+ TPtr tempPtr = name->Des();
+ dl->GetStringAttribute( EDlAttrName, tempPtr );
err = dl->GetBoolAttribute( EDlAttrPausable, isPausable );
if ( !err )
{
@@ -938,10 +938,11 @@
err = dl->GetBoolAttribute( EDlAttrNoMedia, isNoMedia );
}
CLOG_WRITE_FORMAT(" err: %d",err);
- if ( !err && ( !isPausable || isHidden ||isNoMedia || state == EHttpDlMultipleMOCompleted ) )
+ if ( !err && ( !isPausable || isHidden ||isNoMedia || state == EHttpDlMultipleMOCompleted || !tempPtr.Length() ) )
{
++ignoredDownloads;
}
+ CleanupStack::PopAndDestroy( name ); // name
}
CLOG_WRITE_FORMAT(" downloadCnt: %d",downloadCnt);
CLOG_WRITE_FORMAT(" ignoredDownloads: %d",ignoredDownloads);
@@ -1042,8 +1043,8 @@
// found one.
if ( handlerI->DownloadConfirmationShown() )
{
+ iEventHandlerArray->Remove( handlerI );
delete handlerI;
- iEventHandlerArray->Remove( handlerI );
--i;
--handlerCount;
}