branch | RCL_3 |
changeset 342 | 9441fb8fd60d |
parent 334 | a7cb97979427 |
child 367 | 4b75876aa85a |
341:a648d7ca5e27 | 342:9441fb8fd60d |
---|---|
51 iFeedTimer.ConstructL(); |
51 iFeedTimer.ConstructL(); |
52 |
52 |
53 TInt err = KErrNone; |
53 TInt err = KErrNone; |
54 TInt feedCount = 0; |
54 TInt feedCount = 0; |
55 |
55 |
56 DBEnsureFileSizeFieldExists(); |
|
57 |
|
56 TRAP(err, feedCount = DBGetFeedCountL()); |
58 TRAP(err, feedCount = DBGetFeedCountL()); |
57 if (err == KErrNone && feedCount > 0) |
59 if (err == KErrNone && feedCount > 0) |
58 { |
60 { |
59 DP("Loading feeds from DB"); |
61 DP("Loading feeds from DB"); |
60 TRAP(err, DBLoadFeedsL()); |
62 TRAP(err, DBLoadFeedsL()); |
408 HBufC* descBuf = HBufC::NewLC(KMaxLineLength); |
410 HBufC* descBuf = HBufC::NewLC(KMaxLineLength); |
409 TPtr descPtr(descBuf->Des()); |
411 TPtr descPtr(descBuf->Des()); |
410 descPtr.Copy(aItem.Description()); |
412 descPtr.Copy(aItem.Description()); |
411 PodcastUtils::SQLEncode(descPtr); |
413 PodcastUtils::SQLEncode(descPtr); |
412 |
414 |
413 _LIT(KSqlStatement, "insert into feeds (url, title, description, imageurl, imagefile, link, built, lastupdated, uid, feedtype, customtitle, lasterror) values (\"%S\",\"%S\", \"%S\", \"%S\", \"%S\", \"%S\", \"%Ld\", \"%Ld\", \"%u\", \"%u\", \"%u\", \"%d\")"); |
415 _LIT(KSqlStatement, "insert into feeds (url, title, description, imageurl, imagefile, link, built, lastupdated, uid, feedtype, customtitle, lasterror, filesize) values (\"%S\",\"%S\", \"%S\", \"%S\", \"%S\", \"%S\", \"%Ld\", \"%Ld\", \"%u\", \"%u\", \"%u\", \"%d\", \"%d\")"); |
414 iSqlBuffer.Format(KSqlStatement, |
416 iSqlBuffer.Format(KSqlStatement, |
415 &aItem.Url(), titleBuf, descBuf, &aItem.ImageUrl(), &aItem.ImageFileName(), &aItem.Link(), |
417 &aItem.Url(), titleBuf, descBuf, &aItem.ImageUrl(), &aItem.ImageFileName(), &aItem.Link(), |
416 aItem.BuildDate().Int64(), aItem.LastUpdated().Int64(), aItem.Uid(), EAudioPodcast, aItem.CustomTitle(), aItem.LastError()); |
418 aItem.BuildDate().Int64(), aItem.LastUpdated().Int64(), aItem.Uid(), EAudioPodcast, aItem.CustomTitle(), aItem.LastError(), aItem.FeedFileSize()); |
417 |
419 |
418 CleanupStack::PopAndDestroy(descBuf); |
420 CleanupStack::PopAndDestroy(descBuf); |
419 CleanupStack::PopAndDestroy(titleBuf); |
421 CleanupStack::PopAndDestroy(titleBuf); |
420 |
422 |
421 sqlite3_stmt *st; |
423 sqlite3_stmt *st; |
521 |
523 |
522 HBufC* descBuf = HBufC::NewLC(KMaxLineLength); |
524 HBufC* descBuf = HBufC::NewLC(KMaxLineLength); |
523 TPtr descPtr(descBuf->Des()); |
525 TPtr descPtr(descBuf->Des()); |
524 descPtr.Copy(aItem.Description()); |
526 descPtr.Copy(aItem.Description()); |
525 PodcastUtils::SQLEncode(descPtr); |
527 PodcastUtils::SQLEncode(descPtr); |
526 |
528 _LIT(KSqlStatement, "update feeds set url=\"%S\", title=\"%S\", description=\"%S\", imageurl=\"%S\", imagefile=\"%S\", link=\"%S\", built=\"%Lu\", lastupdated=\"%Lu\", feedtype=\"%u\", customtitle=\"%u\", lasterror=\"%d\", filesize=\"%d\" where uid=\"%u\""); |
527 _LIT(KSqlStatement, "update feeds set url=\"%S\", title=\"%S\", description=\"%S\", imageurl=\"%S\", imagefile=\"%S\", link=\"%S\", built=\"%Lu\", lastupdated=\"%Lu\", feedtype=\"%u\", customtitle=\"%u\", lasterror=\"%d\" where uid=\"%u\""); |
|
528 iSqlBuffer.Format(KSqlStatement, |
529 iSqlBuffer.Format(KSqlStatement, |
529 &aItem.Url(), titleBuf, descBuf, &aItem.ImageUrl(), &aItem.ImageFileName(), &aItem.Link(), |
530 &aItem.Url(), titleBuf, descBuf, &aItem.ImageUrl(), &aItem.ImageFileName(), &aItem.Link(), |
530 aItem.BuildDate().Int64(), aItem.LastUpdated().Int64(), EAudioPodcast, aItem.CustomTitle(), aItem.LastError(), aItem.Uid()); |
531 aItem.BuildDate().Int64(), aItem.LastUpdated().Int64(), EAudioPodcast, aItem.CustomTitle(), aItem.LastError(), aItem.FeedFileSize(), aItem.Uid()); |
531 |
532 |
532 CleanupStack::PopAndDestroy(descBuf); |
533 CleanupStack::PopAndDestroy(descBuf); |
533 CleanupStack::PopAndDestroy(titleBuf); |
534 CleanupStack::PopAndDestroy(titleBuf); |
534 |
535 |
535 sqlite3_stmt *st; |
536 sqlite3_stmt *st; |
729 { |
730 { |
730 } |
731 } |
731 |
732 |
732 void CFeedEngine::DownloadInfo(CHttpClient* /*aHttpClient */, int /*aTotalBytes*/) |
733 void CFeedEngine::DownloadInfo(CHttpClient* /*aHttpClient */, int /*aTotalBytes*/) |
733 { |
734 { |
735 |
|
736 } |
|
737 |
|
738 void CFeedEngine::DBEnsureFileSizeFieldExists() |
|
739 { |
|
740 DP("DBEnsureFileSizeFieldExists BEGIN"); |
|
741 sqlite3_stmt *st; |
|
742 int rc = sqlite3_prepare_v2(&iDB,"alter table feeds add column filesize int" , -1, &st, (const char**) NULL); |
|
743 DP1(" rc=%d", rc); |
|
744 |
|
745 if( rc==SQLITE_OK ) |
|
746 { |
|
747 Cleanup_sqlite3_finalize_PushL(st); |
|
748 rc = sqlite3_step(st); |
|
749 DP1(" rc=%d", rc); |
|
750 CleanupStack::PopAndDestroy(); // st |
|
751 } |
|
752 |
|
753 DP("DBEnsureFileSizeFieldExists END"); |
|
734 } |
754 } |
735 |
755 |
736 EXPORT_C void CFeedEngine::ImportFeedsL(const TDesC& aFile) |
756 EXPORT_C void CFeedEngine::ImportFeedsL(const TDesC& aFile) |
737 { |
757 { |
738 TFileName opmlPath; |
758 TFileName opmlPath; |
947 { |
967 { |
948 DP("DBLoadFeeds BEGIN"); |
968 DP("DBLoadFeeds BEGIN"); |
949 iSortedFeeds.Reset(); |
969 iSortedFeeds.Reset(); |
950 CFeedInfo *feedInfo = NULL; |
970 CFeedInfo *feedInfo = NULL; |
951 |
971 |
952 _LIT(KSqlStatement, "select url, title, description, imageurl, imagefile, link, built, lastupdated, uid, feedtype, customtitle, lasterror from feeds"); |
972 _LIT(KSqlStatement, "select url, title, description, imageurl, imagefile, link, built, lastupdated, uid, feedtype, customtitle, lasterror, filesize from feeds"); |
953 iSqlBuffer.Format(KSqlStatement); |
973 iSqlBuffer.Format(KSqlStatement); |
954 |
974 |
955 sqlite3_stmt *st; |
975 sqlite3_stmt *st; |
956 |
976 |
957 TLinearOrder<CFeedInfo> sortOrder( CFeedEngine::CompareFeedsByTitle); |
977 TLinearOrder<CFeedInfo> sortOrder( CFeedEngine::CompareFeedsByTitle); |
1007 feedInfo->SetCustomTitle(); |
1027 feedInfo->SetCustomTitle(); |
1008 } |
1028 } |
1009 |
1029 |
1010 sqlite3_int64 lasterror = sqlite3_column_int(st, 11); |
1030 sqlite3_int64 lasterror = sqlite3_column_int(st, 11); |
1011 feedInfo->SetLastError(lasterror); |
1031 feedInfo->SetLastError(lasterror); |
1012 |
1032 |
1033 TInt filesize = sqlite3_column_int(st, 12); |
|
1034 feedInfo->SetFeedFileSize(filesize); |
|
1035 |
|
1013 TLinearOrder<CFeedInfo> sortOrder( CFeedEngine::CompareFeedsByTitle); |
1036 TLinearOrder<CFeedInfo> sortOrder( CFeedEngine::CompareFeedsByTitle); |
1014 |
1037 |
1015 iSortedFeeds.InsertInOrder(feedInfo, sortOrder); |
1038 iSortedFeeds.InsertInOrder(feedInfo, sortOrder); |
1016 |
1039 |
1017 CleanupStack::Pop(feedInfo); |
1040 CleanupStack::Pop(feedInfo); |
1030 |
1053 |
1031 CFeedInfo* CFeedEngine::DBGetFeedInfoByUidL(TUint aFeedUid) |
1054 CFeedInfo* CFeedEngine::DBGetFeedInfoByUidL(TUint aFeedUid) |
1032 { |
1055 { |
1033 DP("CFeedEngine::DBGetFeedInfoByUid BEGIN"); |
1056 DP("CFeedEngine::DBGetFeedInfoByUid BEGIN"); |
1034 CFeedInfo *feedInfo = NULL; |
1057 CFeedInfo *feedInfo = NULL; |
1035 _LIT(KSqlStatement, "select url, title, description, imageurl, imagefile, link, built, lastupdated, uid, feedtype, customtitle, lasterror from feeds where uid=%u"); |
1058 _LIT(KSqlStatement, "select url, title, description, imageurl, imagefile, link, built, lastupdated, uid, feedtype, customtitle, lasterror, filesize from feeds where uid=%u"); |
1036 iSqlBuffer.Format(KSqlStatement, aFeedUid); |
1059 iSqlBuffer.Format(KSqlStatement, aFeedUid); |
1037 |
1060 |
1038 sqlite3_stmt *st; |
1061 sqlite3_stmt *st; |
1039 |
1062 |
1040 int rc = sqlite3_prepare16_v2(&iDB, (const void*)iSqlBuffer.PtrZ() , -1, &st, (const void**) NULL); |
1063 int rc = sqlite3_prepare16_v2(&iDB, (const void*)iSqlBuffer.PtrZ() , -1, &st, (const void**) NULL); |
1084 feedInfo->SetCustomTitle(); |
1107 feedInfo->SetCustomTitle(); |
1085 } |
1108 } |
1086 |
1109 |
1087 TInt lasterror = sqlite3_column_int(st, 11); |
1110 TInt lasterror = sqlite3_column_int(st, 11); |
1088 feedInfo->SetLastError(lasterror); |
1111 feedInfo->SetLastError(lasterror); |
1089 |
1112 |
1113 TInt filesize = sqlite3_column_int(st, 12); |
|
1114 feedInfo->SetFeedFileSize(filesize); |
|
1115 |
|
1090 CleanupStack::Pop(feedInfo); |
1116 CleanupStack::Pop(feedInfo); |
1091 } |
1117 } |
1092 else |
1118 else |
1093 { |
1119 { |
1094 User::Leave(KErrNotFound); |
1120 User::Leave(KErrNotFound); |