173 void CPodcastFeedView::DoActivateL(const TVwsViewId& aPrevViewId, |
173 void CPodcastFeedView::DoActivateL(const TVwsViewId& aPrevViewId, |
174 TUid aCustomMessageId, |
174 TUid aCustomMessageId, |
175 const TDesC8& aCustomMessage) |
175 const TDesC8& aCustomMessage) |
176 { |
176 { |
177 CPodcastListView::DoActivateL(aPrevViewId, aCustomMessageId, aCustomMessage); |
177 CPodcastListView::DoActivateL(aPrevViewId, aCustomMessageId, aCustomMessage); |
178 if (iFirstActivateAfterLaunch) |
|
179 { |
|
180 iFirstActivateAfterLaunch = EFalse; |
|
181 } |
|
182 |
178 |
183 if (aPrevViewId.iViewUid == KUidPodcastShowsViewID) |
179 if (aPrevViewId.iViewUid == KUidPodcastShowsViewID) |
184 { |
180 { |
185 // back key from shows view |
181 // back key from shows view |
186 iViewingShows = EFalse; |
182 iViewingShows = EFalse; |
187 } |
183 } |
188 |
184 |
189 UpdateListboxItemsL(); |
185 UpdateListboxItemsL(); |
190 UpdateToolbar(); |
186 UpdateToolbar(); |
|
187 |
|
188 if (iFirstActivateAfterLaunch) |
|
189 { |
|
190 iFirstActivateAfterLaunch = EFalse; |
|
191 } |
191 } |
192 } |
192 |
193 |
193 void CPodcastFeedView::DoDeactivate() |
194 void CPodcastFeedView::DoDeactivate() |
194 { |
195 { |
195 iUpdater->StopUpdate(); |
196 iUpdater->StopUpdate(); |
258 { |
259 { |
259 if(aState == MFeedEngineObserver::EFeedManualUpdate) |
260 if(aState == MFeedEngineObserver::EFeedManualUpdate) |
260 { |
261 { |
261 TBuf<KMaxMessageLength> message; |
262 TBuf<KMaxMessageLength> message; |
262 iEikonEnv->ReadResourceL(message, R_PODCAST_CONNECTION_ERROR); |
263 iEikonEnv->ReadResourceL(message, R_PODCAST_CONNECTION_ERROR); |
263 ShowErrorMessage(message); |
264 ShowErrorMessageL(message); |
264 } |
265 } |
265 } |
266 } |
266 break; |
267 break; |
267 default: // Do nothing |
268 default: // Do nothing |
268 break; |
269 break; |
541 |
542 |
542 if (queueCount > 0 && !iPodcastModel.SettingsEngine().DownloadSuspended()) |
543 if (queueCount > 0 && !iPodcastModel.SettingsEngine().DownloadSuspended()) |
543 { |
544 { |
544 TBuf<KMaxMessageLength> message; |
545 TBuf<KMaxMessageLength> message; |
545 iEikonEnv->ReadResourceL(message, R_EXIT_SHOWS_DOWNLOADING); |
546 iEikonEnv->ReadResourceL(message, R_EXIT_SHOWS_DOWNLOADING); |
546 if(ShowQueryMessage(message)) |
547 if(ShowQueryMessageL(message)) |
547 { |
548 { |
548 // pass it on to AppUi, which will exit for us |
549 // pass it on to AppUi, which will exit for us |
549 CPodcastListView::HandleCommandL(aCommand); |
550 CPodcastListView::HandleCommandL(aCommand); |
550 } |
551 } |
551 } |
552 } |
620 UpdateListboxItemsL(); |
621 UpdateListboxItemsL(); |
621 |
622 |
622 // ask if users wants to update it now |
623 // ask if users wants to update it now |
623 TBuf<KMaxMessageLength> message; |
624 TBuf<KMaxMessageLength> message; |
624 iEikonEnv->ReadResourceL(message, R_ADD_FEED_SUCCESS); |
625 iEikonEnv->ReadResourceL(message, R_ADD_FEED_SUCCESS); |
625 if(ShowQueryMessage(message)) |
626 if(ShowQueryMessageL(message)) |
626 { |
627 { |
627 CFeedInfo *info = iPodcastModel.FeedEngine().GetFeedInfoByUid(newFeedInfo->Uid()); |
628 CFeedInfo *info = iPodcastModel.FeedEngine().GetFeedInfoByUid(newFeedInfo->Uid()); |
628 |
629 |
629 iPodcastModel.ActiveShowList().Reset(); |
630 iPodcastModel.ActiveShowList().Reset(); |
630 iPodcastModel.SetActiveFeedInfo(info); |
631 iPodcastModel.SetActiveFeedInfo(info); |
665 { |
666 { |
666 TBuf<KMaxMessageLength> dlgMessage; |
667 TBuf<KMaxMessageLength> dlgMessage; |
667 iEikonEnv->ReadResourceL(dlgMessage, R_ADD_FEED_REPLACE); |
668 iEikonEnv->ReadResourceL(dlgMessage, R_ADD_FEED_REPLACE); |
668 |
669 |
669 // Ask the user if it is OK to remove all shows |
670 // Ask the user if it is OK to remove all shows |
670 if ( ShowQueryMessage(dlgMessage)) |
671 if ( ShowQueryMessageL(dlgMessage)) |
671 { |
672 { |
672 PodcastUtils::FixProtocolsL(url); |
673 PodcastUtils::FixProtocolsL(url); |
673 |
674 |
674 //----- HACK ---- // |
675 //----- HACK ---- // |
675 CFeedInfo* temp = CFeedInfo::NewLC(); |
676 CFeedInfo* temp = CFeedInfo::NewLC(); |
692 UpdateListboxItemsL(); |
693 UpdateListboxItemsL(); |
693 } else { |
694 } else { |
694 // the feed existed. Object deleted in AddFeed. |
695 // the feed existed. Object deleted in AddFeed. |
695 TBuf<KMaxMessageLength> dlgMessage; |
696 TBuf<KMaxMessageLength> dlgMessage; |
696 iEikonEnv->ReadResourceL(dlgMessage, R_ADD_FEED_EXISTS); |
697 iEikonEnv->ReadResourceL(dlgMessage, R_ADD_FEED_EXISTS); |
697 ShowErrorMessage(dlgMessage); |
698 ShowErrorMessageL(dlgMessage); |
698 } |
699 } |
699 CleanupStack::PopAndDestroy(temp); |
700 CleanupStack::PopAndDestroy(temp); |
700 } |
701 } |
701 } else { // no url change, maybe title? |
702 } else { // no url change, maybe title? |
702 // Update the title |
703 // Update the title |
703 if (info->Title().Compare(title) != 0) |
704 if (info->Title().Compare(title) != 0) |
704 { |
705 { |
705 info->SetTitleL(title); |
706 info->SetTitleL(title); |
706 info->SetCustomTitle(); |
707 info->SetCustomTitle(); |
707 iPodcastModel.FeedEngine().UpdateFeed(info); |
708 iPodcastModel.FeedEngine().UpdateFeedL(info); |
708 UpdateListboxItemsL(); |
709 UpdateListboxItemsL(); |
709 } |
710 } |
710 } |
711 } |
711 } |
712 } |
712 } |
713 } |
723 CFeedInfo *info = iPodcastModel.FeedEngine().GetFeedInfoByUid(iItemIdArray[index]); |
724 CFeedInfo *info = iPodcastModel.FeedEngine().GetFeedInfoByUid(iItemIdArray[index]); |
724 TBuf<KMaxMessageLength> templ; |
725 TBuf<KMaxMessageLength> templ; |
725 TBuf<KMaxMessageLength> message; |
726 TBuf<KMaxMessageLength> message; |
726 iEikonEnv->ReadResourceL(templ, R_PODCAST_REMOVE_FEED_PROMPT); |
727 iEikonEnv->ReadResourceL(templ, R_PODCAST_REMOVE_FEED_PROMPT); |
727 message.Format(templ, &info->Title()); |
728 message.Format(templ, &info->Title()); |
728 if(ShowQueryMessage(message)) |
729 if(ShowQueryMessageL(message)) |
729 { |
730 { |
730 iPodcastModel.FeedEngine().RemoveFeedL(iItemIdArray[index]); |
731 iPodcastModel.FeedEngine().RemoveFeedL(iItemIdArray[index]); |
731 iItemArray->Delete(index); |
732 iItemArray->Delete(index); |
732 iItemIdArray.Remove(index); |
733 iItemIdArray.Remove(index); |
733 iListContainer->Listbox()->HandleItemRemovalL(); |
734 iListContainer->Listbox()->HandleItemRemovalL(); |
787 TRAPD(err, iPodcastModel.FeedEngine().ImportFeedsL(importName)); |
788 TRAPD(err, iPodcastModel.FeedEngine().ImportFeedsL(importName)); |
788 |
789 |
789 if (err != KErrNone) { |
790 if (err != KErrNone) { |
790 TBuf<KMaxMessageLength> message; |
791 TBuf<KMaxMessageLength> message; |
791 iEikonEnv->ReadResourceL(message, R_IMPORT_FEED_FAILURE); |
792 iEikonEnv->ReadResourceL(message, R_IMPORT_FEED_FAILURE); |
792 ShowErrorMessage(message); |
793 ShowErrorMessageL(message); |
793 } |
794 } |
794 } |
795 } |
795 |
796 |
796 } |
797 } |
797 CleanupStack::PopAndDestroy(dlg); |
798 CleanupStack::PopAndDestroy(dlg); |
843 |
844 |
844 TBuf<KMaxMessageLength> message; |
845 TBuf<KMaxMessageLength> message; |
845 TBuf<KMaxMessageLength> templ; |
846 TBuf<KMaxMessageLength> templ; |
846 iEikonEnv->ReadResourceL(templ, R_EXPORT_FEED_SUCCESS); |
847 iEikonEnv->ReadResourceL(templ, R_EXPORT_FEED_SUCCESS); |
847 message.Format(templ, numFeeds); |
848 message.Format(templ, numFeeds); |
848 ShowOkMessage(message); |
849 ShowOkMessageL(message); |
849 } |
850 } |
850 else |
851 else |
851 { |
852 { |
852 TBuf<KMaxMessageLength> message; |
853 TBuf<KMaxMessageLength> message; |
853 iEikonEnv->ReadResourceL(message, R_EXPORT_FEED_FAILURE); |
854 iEikonEnv->ReadResourceL(message, R_EXPORT_FEED_FAILURE); |
854 ShowErrorMessage(message); |
855 ShowErrorMessageL(message); |
855 } |
856 } |
856 } |
857 } |
857 CleanupStack::PopAndDestroy(fileDlg); |
858 CleanupStack::PopAndDestroy(fileDlg); |
858 } |
859 } |
859 CleanupStack::PopAndDestroy(dlg); |
860 CleanupStack::PopAndDestroy(dlg); |
860 } |
861 } |
861 CleanupStack::PopAndDestroy(memDlg); |
862 CleanupStack::PopAndDestroy(memDlg); |
862 } |
863 } |
863 |
864 |
864 void CPodcastFeedView::CheckResumeDownload() |
865 void CPodcastFeedView::CheckResumeDownloadL() |
865 { |
866 { |
866 // if there are shows queued for downloading, ask if we should resume now |
867 // if there are shows queued for downloading, ask if we should resume now |
867 RShowInfoArray showsDownloading; |
868 RShowInfoArray showsDownloading; |
868 iPodcastModel.ShowEngine().GetShowsDownloadingL(showsDownloading); |
869 iPodcastModel.ShowEngine().GetShowsDownloadingL(showsDownloading); |
869 |
870 |
870 if (showsDownloading.Count() > 0) |
871 if (showsDownloading.Count() > 0) |
871 { |
872 { |
872 TBuf<KMaxMessageLength> msg; |
873 TBuf<KMaxMessageLength> msg; |
873 iEikonEnv->ReadResourceL(msg, R_PODCAST_ENABLE_DOWNLOADS_PROMPT); |
874 iEikonEnv->ReadResourceL(msg, R_PODCAST_ENABLE_DOWNLOADS_PROMPT); |
874 |
875 |
875 if (ShowQueryMessage(msg)) |
876 if (ShowQueryMessageL(msg)) |
876 { |
877 { |
877 // need to suspend downloads before ResumeDownloadL will work :) |
878 // need to suspend downloads before ResumeDownloadL will work :) |
878 iPodcastModel.SettingsEngine().SetDownloadSuspended(ETrue); |
879 iPodcastModel.SettingsEngine().SetDownloadSuspended(ETrue); |
879 // resume downloading if user says yes |
880 // resume downloading if user says yes |
880 iPodcastModel.ShowEngine().ResumeDownloadsL(); |
881 iPodcastModel.ShowEngine().ResumeDownloadsL(); |
898 { |
899 { |
899 case KErrCouldNotConnect: |
900 case KErrCouldNotConnect: |
900 { |
901 { |
901 TBuf<KMaxMessageLength> message; |
902 TBuf<KMaxMessageLength> message; |
902 iEikonEnv->ReadResourceL(message, R_PODCAST_CONNECTION_ERROR); |
903 iEikonEnv->ReadResourceL(message, R_PODCAST_CONNECTION_ERROR); |
903 ShowErrorMessage(message); |
904 ShowErrorMessageL(message); |
904 } |
905 } |
905 break; |
906 break; |
906 case KErrNone: |
907 case KErrNone: |
907 default: // we don't do more error handling here, just show 0 imported feeds |
908 default: // we don't do more error handling here, just show 0 imported feeds |
908 switch (iOpmlState) |
909 switch (iOpmlState) |
918 TBuf<KMaxMessageLength> message; |
919 TBuf<KMaxMessageLength> message; |
919 TBuf<KMaxMessageLength> templ; |
920 TBuf<KMaxMessageLength> templ; |
920 iEikonEnv->ReadResourceL(templ, R_IMPORT_FEED_SUCCESS); |
921 iEikonEnv->ReadResourceL(templ, R_IMPORT_FEED_SUCCESS); |
921 message.Format(templ, aNumFeedsImported); |
922 message.Format(templ, aNumFeedsImported); |
922 |
923 |
923 if(ShowQueryMessage(message)) |
924 if(ShowQueryMessageL(message)) |
924 { |
925 { |
925 HandleCommandL(EPodcastUpdateAllFeeds); |
926 HandleCommandL(EPodcastUpdateAllFeeds); |
926 } |
927 } |
927 } |
928 } |
928 break; |
929 break; |
929 case EOpmlSearching: |
930 case EOpmlSearching: |
930 delete iWaitDialog; |
931 delete iWaitDialog; |
|
932 iWaitDialog = NULL; |
931 if (iPodcastModel.FeedEngine().GetSearchResults().Count() == 0) |
933 if (iPodcastModel.FeedEngine().GetSearchResults().Count() == 0) |
932 { |
934 { |
933 TBuf<KMaxMessageLength> message; |
935 TBuf<KMaxMessageLength> message; |
934 iEikonEnv->ReadResourceL(message, R_SEARCH_NORESULTS); |
936 iEikonEnv->ReadResourceL(message, R_SEARCH_NORESULTS); |
935 ShowErrorMessage(message); |
937 ShowErrorMessageL(message); |
936 } |
938 } |
937 else |
939 else |
938 { |
940 { |
939 AppUi()->ActivateLocalViewL(KUidPodcastSearchViewID, TUid::Uid(0), KNullDesC8()); |
941 AppUi()->ActivateLocalViewL(KUidPodcastSearchViewID, TUid::Uid(0), KNullDesC8()); |
940 } |
942 } |
964 |
966 |
965 if (iUpdatingAllRunning) { |
967 if (iUpdatingAllRunning) { |
966 return; // we don't allow feed manipulation while update is running |
968 return; // we don't allow feed manipulation while update is running |
967 } |
969 } |
968 |
970 |
969 iListContainer->SetLongTapDetected(ETrue); |
971 iListContainer->SetLongTapDetectedL(ETrue); |
970 |
972 |
971 const TInt KListboxDefaultHeight = 19; // for some reason it returns 19 for an empty listbox in S^1 |
973 const TInt KListboxDefaultHeight = 19; // for some reason it returns 19 for an empty listbox in S^1 |
972 TInt lbHeight = iListContainer->Listbox()->CalcHeightBasedOnNumOfItems( |
974 TInt lbHeight = iListContainer->Listbox()->CalcHeightBasedOnNumOfItems( |
973 iListContainer->Listbox()->Model()->NumberOfItems()) - KListboxDefaultHeight; |
975 iListContainer->Listbox()->Model()->NumberOfItems()) - KListboxDefaultHeight; |
974 |
976 |