diff -r 4538abb763e4 -r 9c4fd008e20f application/src/PodcastShowsView.cpp --- a/application/src/PodcastShowsView.cpp Mon Nov 15 13:59:40 2010 +0000 +++ b/application/src/PodcastShowsView.cpp Mon Nov 15 17:25:39 2010 +0000 @@ -44,45 +44,85 @@ const TUint KShowIconArrayIds[] = { - EMbmPodcastAudio, - EMbmPodcastAudio_mask, - EMbmPodcastAudio_new, - EMbmPodcastAudio_new_mask, - EMbmPodcastAudio_queued, - EMbmPodcastAudio_queued_mask, - EMbmPodcastAudio_downloading, - EMbmPodcastAudio_downloading_mask, - EMbmPodcastAudio_downloaded, - EMbmPodcastAudio_downloaded_mask, - EMbmPodcastAudio_downloaded_new, - EMbmPodcastAudio_downloaded_new_mask, - EMbmPodcastAudio_failed, - EMbmPodcastAudio_failed_mask, - EMbmPodcastAudio_suspended, - EMbmPodcastAudio_suspended_mask, - EMbmPodcastVideo, - EMbmPodcastVideo_mask, - EMbmPodcastVideo_new, - EMbmPodcastVideo_new_mask, - EMbmPodcastVideo_queued, - EMbmPodcastVideo_queued_mask, - EMbmPodcastVideo_downloading, - EMbmPodcastVideo_downloading_mask, - EMbmPodcastVideo_downloaded, - EMbmPodcastVideo_downloaded_mask, - EMbmPodcastVideo_downloaded_new, - EMbmPodcastVideo_downloaded_new_mask, - EMbmPodcastVideo_failed, - EMbmPodcastVideo_failed_mask, - EMbmPodcastVideo_suspended, - EMbmPodcastVideo_suspended_mask, - EMbmPodcastFeed, - EMbmPodcastFeed_mask, - 0, - 0 + // EShowIcon = 0, + EMbmPodcastAudio, + EMbmPodcastAudio_mask, + // EShowIconNew, + EMbmPodcastAudio_new, + EMbmPodcastAudio_new_mask, + // EQuedShowIcon, + EMbmPodcastAudio_dl_queued, + EMbmPodcastAudio_dl_queued_mask, + // EQuedShowIconNew, + EMbmPodcastAudio_dl_queued_new, + EMbmPodcastAudio_dl_queued_new_mask, + // EDownloadingShowIcon, + EMbmPodcastAudio_dl_active, + EMbmPodcastAudio_dl_active_mask, + // EDownloadingShowIconNew, + EMbmPodcastAudio_dl_active_new, + EMbmPodcastAudio_dl_active_new_mask, + // EDownloadedShowIcon, + EMbmPodcastAudio_dl, + EMbmPodcastAudio_dl_mask, + // EDownloadedShowIconNew, + EMbmPodcastAudio_dl_new, + EMbmPodcastAudio_dl_new_mask, + // EFailedShowIcon, + EMbmPodcastAudio_dl_failed, + EMbmPodcastAudio_dl_failed_mask, + // EFailedShowIconNew, + EMbmPodcastAudio_dl_failed_new, + EMbmPodcastAudio_dl_failed_new_mask, + // ESuspendedShowIcon, + EMbmPodcastAudio_dl_suspended, + EMbmPodcastAudio_dl_suspended_mask, + // ESuspendedShowIconNew + EMbmPodcastAudio_dl_suspended_new, + EMbmPodcastAudio_dl_suspended_new_mask, + // EShowIcon = 0, + EMbmPodcastVideo, + EMbmPodcastVideo_mask, + // EShowIconNew, + EMbmPodcastVideo_new, + EMbmPodcastVideo_new_mask, + // EQuedShowIcon, + EMbmPodcastVideo_dl_queued, + EMbmPodcastVideo_dl_queued_mask, + // EQuedShowIconNew, + EMbmPodcastVideo_dl_queued_new, + EMbmPodcastVideo_dl_queued_new_mask, + // EDownloadingShowIcon, + EMbmPodcastVideo_dl_active, + EMbmPodcastVideo_dl_active_mask, + // EDownloadingShowIconNew, + EMbmPodcastVideo_dl_active_new, + EMbmPodcastVideo_dl_active_new_mask, + // EDownloadedShowIcon, + EMbmPodcastVideo_dl, + EMbmPodcastVideo_dl_mask, + // EDownloadedShowIconNew, + EMbmPodcastVideo_dl_new, + EMbmPodcastVideo_dl_new_mask, + // EFailedShowIcon, + EMbmPodcastVideo_dl_failed, + EMbmPodcastVideo_dl_failed_mask, + // EFailedShowIconNew, + EMbmPodcastVideo_dl_failed_new, + EMbmPodcastVideo_dl_failed_new_mask, + // ESuspendedShowIcon, + EMbmPodcastVideo_dl_suspended, + EMbmPodcastVideo_dl_suspended_mask, + // ESuspendedShowIconNew + EMbmPodcastVideo_dl_suspended_new, + EMbmPodcastVideo_dl_suspended_new_mask, + EMbmPodcastFeed, + EMbmPodcastFeed_mask, + 0, + 0 }; -const TInt KVideoIconOffset = 8; +const TInt KVideoIconOffset = 12; CPodcastShowsView* CPodcastShowsView::NewL(CPodcastModel& aPodcastModel) { @@ -374,31 +414,27 @@ void CPodcastShowsView::GetShowIcons(CShowInfo* aShowInfo, TInt& aIconIndex) { TBool dlStop = iPodcastModel.SettingsEngine().DownloadSuspended(); - + TBool isNew = aShowInfo->PlayState() == ENeverPlayed; + DP1("downloadstate=%d", aShowInfo->DownloadState()); switch (aShowInfo->DownloadState()) { case EDownloaded: - if (aShowInfo->PlayState() == ENeverPlayed) { - aIconIndex = EDownloadedNewShowIcon; - } else { - aIconIndex = EDownloadedShowIcon; - } + aIconIndex = isNew ? EDownloadedShowIconNew : EDownloadedShowIcon; break; case ENotDownloaded: - if (aShowInfo->PlayState() == ENeverPlayed) { - aIconIndex = ENewShowIcon; - } else { - aIconIndex = EShowIcon; - } + aIconIndex = isNew ? EShowIconNew : EShowIcon; break; case EQueued: - aIconIndex = dlStop ? ESuspendedShowIcon : EQuedShowIcon; + aIconIndex = dlStop ? (isNew ? ESuspendedShowIconNew : ESuspendedShowIcon) : + (isNew ? EQuedShowIconNew : EQuedShowIcon); break; case EDownloading: - aIconIndex = dlStop ? ESuspendedShowIcon : EDownloadingShowIcon; + aIconIndex = dlStop ? (isNew ? ESuspendedShowIconNew : ESuspendedShowIcon) : + (isNew ? EDownloadingShowIconNew : EDownloadingShowIcon); break; case EFailedDownload: - aIconIndex = EFailedShowIcon; + aIconIndex = dlStop ? (isNew ? ESuspendedShowIconNew : ESuspendedShowIcon) : + (isNew ? EFailedShowIconNew : EFailedShowIconNew); break; } @@ -406,6 +442,8 @@ { aIconIndex += KVideoIconOffset; } + + DP3("dlStop=%d, isNew=%d, aIconIndex=%d", dlStop, isNew, aIconIndex); } @@ -623,6 +661,9 @@ case EPodcastDeleteShow: HandleDeleteShowL(); break; + case EPodcastDownloadAll: + HandleDownloadAllL(); + break; case EPodcastDownloadShow: { TInt index = iListContainer->Listbox()->CurrentItemIndex(); @@ -712,6 +753,27 @@ } } +void CPodcastShowsView::HandleDownloadAllL() + { + + TBuf msg; + iEikonEnv->ReadResourceL(msg, R_DOWNLOAD_ALL_QUERY); + if (!ShowQueryMessageL(msg)) + { + return; + } + + for (int i=0;iDownloadState() == ENotDownloaded) + { + TRAP_IGNORE(iPodcastModel.ShowEngine().AddDownloadL(*info)); + } + } + } + void CPodcastShowsView::UpdateToolbar(TBool aVisible) { CAknToolbar* toolbar = Toolbar(); @@ -737,7 +799,25 @@ } toolbar->HideItem(EPodcastCancelUpdateAllFeeds, !updatingState, ETrue ); + toolbar->HideItem(EPodcastDownloadAll, !iShowNewShows, ETrue); + if (iShowNewShows) + { + toolbar->HideItem(EPodcastDownloadShow, ETrue, ETrue ); + + TBool showDownloadAll = EFalse; + for (int i=0;iDownloadState() == ENotDownloaded) + { + showDownloadAll = ETrue; + } + } + + toolbar->SetItemDimmed(EPodcastDownloadAll, !showDownloadAll, ETrue); + } + RShowInfoArray &fItems = iPodcastModel.ActiveShowList(); TInt itemCnt = fItems.Count(); @@ -745,43 +825,43 @@ TBool dimDownloadShowCmd = EFalse; TBool hideSetPlayed = EFalse; - if(iListContainer->Listbox() != NULL) - { - TInt index = iListContainer->Listbox()->CurrentItemIndex(); - - if(index>= 0 && index < itemCnt) + if(iListContainer->Listbox() != NULL) { - switch(fItems[index]->DownloadState()) - { - case ENotDownloaded: - case EFailedDownload: - hideDownloadShowCmd = EFalse; - dimDownloadShowCmd = EFalse; - break; - case EQueued: - case EDownloading: - hideDownloadShowCmd = EFalse; - dimDownloadShowCmd = ETrue; - break; - case EDownloaded: - hideDownloadShowCmd = ETrue; - break; + TInt index = iListContainer->Listbox()->CurrentItemIndex(); + + if(index>= 0 && index < itemCnt) + { + switch(fItems[index]->DownloadState()) + { + case ENotDownloaded: + case EFailedDownload: + hideDownloadShowCmd = EFalse; + dimDownloadShowCmd = EFalse; + break; + case EQueued: + case EDownloading: + hideDownloadShowCmd = EFalse; + dimDownloadShowCmd = ETrue; + break; + case EDownloaded: + hideDownloadShowCmd = ETrue; + break; + } + + if(fItems[index]->PlayState() == EPlayed) { + hideSetPlayed = ETrue; } - - if(fItems[index]->PlayState() == EPlayed) { - hideSetPlayed = ETrue; } - } - } + } if (hideDownloadShowCmd) { toolbar->HideItem(EPodcastDownloadShow, ETrue, ETrue ); toolbar->HideItem(EPodcastDeleteShow, EFalse, ETrue); - toolbar->SetItemDimmed(EPodcastDeleteShow, updatingState, ETrue); + toolbar->SetItemDimmed(EPodcastDeleteShow, updatingState , ETrue); } else { toolbar->HideItem(EPodcastDownloadShow, EFalse, ETrue ); toolbar->HideItem(EPodcastDeleteShow, ETrue, ETrue); - toolbar->SetItemDimmed(EPodcastDownloadShow, updatingState || dimDownloadShowCmd, ETrue); + toolbar->SetItemDimmed(EPodcastDownloadShow, updatingState || dimDownloadShowCmd || !itemCnt, ETrue); } if (hideSetPlayed) { @@ -791,7 +871,7 @@ } else { toolbar->HideItem(EPodcastMarkAsPlayed, EFalse, ETrue ); toolbar->HideItem(EPodcastMarkAsUnplayed, ETrue, ETrue ); - toolbar->SetItemDimmed(EPodcastMarkAsPlayed, updatingState, ETrue); + toolbar->SetItemDimmed(EPodcastMarkAsPlayed, updatingState|| !itemCnt, ETrue); } } }