changeset 126 | c2f1ea38ec70 |
parent 122 | dd31cab34e27 |
child 134 | 46baf9a7cadd |
125:70749e2f572d | 126:c2f1ea38ec70 |
---|---|
24 #include "SettingsEngine.h" |
24 #include "SettingsEngine.h" |
25 #include <e32hashtab.h> |
25 #include <e32hashtab.h> |
26 #include <httperr.h> |
26 #include <httperr.h> |
27 #include "debug.h" |
27 #include "debug.h" |
28 #include "PodcastUtils.h" |
28 #include "PodcastUtils.h" |
29 |
29 #include <mpxcollectionhelperfactory.h> |
30 //#include <mpxmedia.h> |
|
31 //#include <mpxattribute.h> |
|
32 //#include <mpxmediageneraldefs.h> |
|
33 |
30 |
34 const TUint KMaxDownloadErrors = 3; |
31 const TUint KMaxDownloadErrors = 3; |
35 const TInt KMimeBufLength = 100; |
32 const TInt KMimeBufLength = 100; |
36 |
33 |
37 CShowEngine::CShowEngine(CPodcastModel& aPodcastModel) : |
34 CShowEngine::CShowEngine(CPodcastModel& aPodcastModel) : |
45 delete iShowClient; |
42 delete iShowClient; |
46 iObservers.Close(); |
43 iObservers.Close(); |
47 delete iShowDownloading; |
44 delete iShowDownloading; |
48 delete iMetaDataReader; |
45 delete iMetaDataReader; |
49 iApaSession.Close(); |
46 iApaSession.Close(); |
47 |
|
48 if (iCollectionHelper) |
|
49 delete iCollectionHelper; |
|
50 } |
50 } |
51 |
51 |
52 EXPORT_C CShowEngine* CShowEngine::NewL(CPodcastModel& aPodcastModel) |
52 EXPORT_C CShowEngine* CShowEngine::NewL(CPodcastModel& aPodcastModel) |
53 { |
53 { |
54 CShowEngine* self = new (ELeave) CShowEngine(aPodcastModel); |
54 CShowEngine* self = new (ELeave) CShowEngine(aPodcastModel); |
237 { |
237 { |
238 iObservers.Remove(index); |
238 iObservers.Remove(index); |
239 } |
239 } |
240 } |
240 } |
241 |
241 |
242 void CShowEngine::AddShowToMpxCollection(CShowInfo &/*aShowInfo*/) |
242 void CShowEngine::AddShowToMpxCollection(CShowInfo &aShowInfo) |
243 { |
243 { |
244 /* RArray<TInt> contentIDs; |
244 if (!iCollectionHelper) |
245 contentIDs.AppendL( KMPXMediaIdGeneral ); |
245 iCollectionHelper = CMPXCollectionHelperFactory::NewCollectionHelperL(); |
246 |
246 |
247 CMPXMedia* media = CMPXMedia::NewL( contentIDs.Array() ); |
247 // if this leaves, not much we can do anyway |
248 CleanupStack::PushL( media ); |
248 TRAP_IGNORE(iCollectionHelper->AddL(aShowInfo.FileName(), this)); |
249 contentIDs.Close(); |
249 |
250 CleanupStack::PopAndDestroy(media); */ |
|
251 } |
250 } |
252 |
251 |
253 void CShowEngine::CompleteL(CHttpClient* /*aHttpClient*/, TInt aError) |
252 void CShowEngine::CompleteL(CHttpClient* /*aHttpClient*/, TInt aError) |
254 { |
253 { |
255 if (iShowDownloading != NULL) |
254 if (iShowDownloading != NULL) |
681 // what we do: |
680 // what we do: |
682 // 1. sort shows by pubdate |
681 // 1. sort shows by pubdate |
683 // 2. select the first MaxListItems shows |
682 // 2. select the first MaxListItems shows |
684 // 3. delete the rest if downloadstate is ENotDownloaded |
683 // 3. delete the rest if downloadstate is ENotDownloaded |
685 |
684 |
686 _LIT(KSqlStatement,"delete from shows where feeduid=%u and downloadstate=0 and uid not in " \ |
685 _LIT(KSqlStatement,"delete from shows where feeduid=%u and downloadstate=0 and uid not in (select uid from shows where feeduid=%u order by pubdate desc limit %u)"); |
687 "(select uid from shows where feeduid=%u order by pubdate desc limit %u)"); |
|
688 iSqlBuffer.Format(KSqlStatement, aFeedUid, aFeedUid, iPodcastModel.SettingsEngine().MaxListItems()); |
686 iSqlBuffer.Format(KSqlStatement, aFeedUid, aFeedUid, iPodcastModel.SettingsEngine().MaxListItems()); |
689 |
687 |
690 sqlite3_stmt *st; |
688 sqlite3_stmt *st; |
691 |
689 |
692 int rc = sqlite3_prepare16_v2(&iDB, (const void*) iSqlBuffer.PtrZ(), -1, |
690 int rc = sqlite3_prepare16_v2(&iDB, (const void*) iSqlBuffer.PtrZ(), -1, |
784 HBufC* descBuf = HBufC::NewLC(KMaxLineLength); |
782 HBufC* descBuf = HBufC::NewLC(KMaxLineLength); |
785 TPtr descPtr(descBuf->Des()); |
783 TPtr descPtr(descBuf->Des()); |
786 descPtr.Copy(aItem.Description()); |
784 descPtr.Copy(aItem.Description()); |
787 PodcastUtils::SQLEncode(descPtr); |
785 PodcastUtils::SQLEncode(descPtr); |
788 |
786 |
789 _LIT(KSqlStatement, "insert into shows (url, title, description, filename, position, playtime, playstate, downloadstate, feeduid, uid, showsize, trackno, pubdate, showtype)" |
787 _LIT(KSqlStatement, "insert into shows (url, title, description, filename, position, playtime, playstate, downloadstate, feeduid, uid, showsize, trackno, pubdate, showtype) values (\"%S\",\"%S\", \"%S\", \"%S\", \"%Lu\", \"%u\", \"%u\", \"%u\", \"%u\", \"%u\", \"%u\", \"%u\", \"%Lu\", \"%d\")"); |
790 " values (\"%S\",\"%S\", \"%S\", \"%S\", \"%Lu\", \"%u\", \"%u\", \"%u\", \"%u\", \"%u\", \"%u\", \"%u\", \"%Lu\", \"%d\")"); |
|
791 |
788 |
792 iSqlBuffer.Format(KSqlStatement, &aItem.Url(), &titlePtr, &descPtr, |
789 iSqlBuffer.Format(KSqlStatement, &aItem.Url(), &titlePtr, &descPtr, |
793 &aItem.FileName(), aItem.Position().Int64(), aItem.PlayTime(), |
790 &aItem.FileName(), aItem.Position().Int64(), aItem.PlayTime(), |
794 aItem.PlayState(), aItem.DownloadState(), aItem.FeedUid(), |
791 aItem.PlayState(), aItem.DownloadState(), aItem.FeedUid(), |
795 aItem.Uid(), aItem.ShowSize(), aItem.TrackNo(), |
792 aItem.Uid(), aItem.ShowSize(), aItem.TrackNo(), |
858 HBufC* descBuf = HBufC::NewLC(KMaxLineLength); |
855 HBufC* descBuf = HBufC::NewLC(KMaxLineLength); |
859 TPtr descPtr(descBuf->Des()); |
856 TPtr descPtr(descBuf->Des()); |
860 descPtr.Copy(aItem.Description()); |
857 descPtr.Copy(aItem.Description()); |
861 PodcastUtils::SQLEncode(descPtr); |
858 PodcastUtils::SQLEncode(descPtr); |
862 |
859 |
863 _LIT(KSqlStatement, "update shows set url=\"%S\", title=\"%S\", description=\"%S\", filename=\"%S\", position=\"%Lu\"," |
860 _LIT(KSqlStatement, "update shows set url=\"%S\", title=\"%S\", description=\"%S\", filename=\"%S\", position=\"%Lu\" playtime=\"%u\", playstate=\"%u\", downloadstate=\"%u\", feeduid=\"%u\", showsize=\"%u\", trackno=\"%u\",pubdate=\"%Lu\", showtype=\"%d\", lasterror=\"%d\" where uid=\"%u\""); |
864 "playtime=\"%u\", playstate=\"%u\", downloadstate=\"%u\", feeduid=\"%u\", showsize=\"%u\", trackno=\"%u\"," |
|
865 "pubdate=\"%Lu\", showtype=\"%d\", lasterror=\"%d\" where uid=\"%u\""); |
|
866 iSqlBuffer.Format(KSqlStatement, &aItem.Url(), &titlePtr, &descPtr, |
861 iSqlBuffer.Format(KSqlStatement, &aItem.Url(), &titlePtr, &descPtr, |
867 &aItem.FileName(), aItem.Position().Int64(), aItem.PlayTime(), |
862 &aItem.FileName(), aItem.Position().Int64(), aItem.PlayTime(), |
868 aItem.PlayState(), aItem.DownloadState(), aItem.FeedUid(), |
863 aItem.PlayState(), aItem.DownloadState(), aItem.FeedUid(), |
869 aItem.ShowSize(), aItem.TrackNo(), aItem.PubDate().Int64(), |
864 aItem.ShowSize(), aItem.TrackNo(), aItem.PubDate().Int64(), |
870 aItem.ShowType(), aItem.LastError(), aItem.Uid()); |
865 aItem.ShowType(), aItem.LastError(), aItem.Uid()); |