branch | symbian1 |
changeset 340 | 37610dda6102 |
parent 336 | 3d6c1417e8bd |
child 349 | 4538abb763e4 |
338:cfd0b92a31b5 | 340:37610dda6102 |
---|---|
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; |
728 { |
729 { |
729 } |
730 } |
730 |
731 |
731 void CFeedEngine::DownloadInfo(CHttpClient* /*aHttpClient */, int /*aTotalBytes*/) |
732 void CFeedEngine::DownloadInfo(CHttpClient* /*aHttpClient */, int /*aTotalBytes*/) |
732 { |
733 { |
734 |
|
735 } |
|
736 |
|
737 void CFeedEngine::DBEnsureFileSizeFieldExists() |
|
738 { |
|
739 DP("DBEnsureFileSizeFieldExists BEGIN"); |
|
740 sqlite3_stmt *st; |
|
741 int rc = sqlite3_prepare_v2(&iDB,"alter table feeds add column filesize int" , -1, &st, (const char**) NULL); |
|
742 DP1(" rc=%d", rc); |
|
743 |
|
744 if( rc==SQLITE_OK ) |
|
745 { |
|
746 Cleanup_sqlite3_finalize_PushL(st); |
|
747 rc = sqlite3_step(st); |
|
748 DP1(" rc=%d", rc); |
|
749 CleanupStack::PopAndDestroy(); // st |
|
750 } |
|
751 |
|
752 DP("DBEnsureFileSizeFieldExists END"); |
|
733 } |
753 } |
734 |
754 |
735 EXPORT_C void CFeedEngine::ImportFeedsL(const TDesC& aFile) |
755 EXPORT_C void CFeedEngine::ImportFeedsL(const TDesC& aFile) |
736 { |
756 { |
737 TFileName opmlPath; |
757 TFileName opmlPath; |
946 { |
966 { |
947 DP("DBLoadFeeds BEGIN"); |
967 DP("DBLoadFeeds BEGIN"); |
948 iSortedFeeds.Reset(); |
968 iSortedFeeds.Reset(); |
949 CFeedInfo *feedInfo = NULL; |
969 CFeedInfo *feedInfo = NULL; |
950 |
970 |
951 _LIT(KSqlStatement, "select url, title, description, imageurl, imagefile, link, built, lastupdated, uid, feedtype, customtitle, lasterror from feeds"); |
971 _LIT(KSqlStatement, "select url, title, description, imageurl, imagefile, link, built, lastupdated, uid, feedtype, customtitle, lasterror, filesize from feeds"); |
952 iSqlBuffer.Format(KSqlStatement); |
972 iSqlBuffer.Format(KSqlStatement); |
953 |
973 |
954 sqlite3_stmt *st; |
974 sqlite3_stmt *st; |
955 |
975 |
956 TLinearOrder<CFeedInfo> sortOrder( CFeedEngine::CompareFeedsByTitle); |
976 TLinearOrder<CFeedInfo> sortOrder( CFeedEngine::CompareFeedsByTitle); |
1006 feedInfo->SetCustomTitle(); |
1026 feedInfo->SetCustomTitle(); |
1007 } |
1027 } |
1008 |
1028 |
1009 sqlite3_int64 lasterror = sqlite3_column_int(st, 11); |
1029 sqlite3_int64 lasterror = sqlite3_column_int(st, 11); |
1010 feedInfo->SetLastError(lasterror); |
1030 feedInfo->SetLastError(lasterror); |
1011 |
1031 |
1032 TInt filesize = sqlite3_column_int(st, 12); |
|
1033 feedInfo->SetFeedFileSize(filesize); |
|
1034 |
|
1012 TLinearOrder<CFeedInfo> sortOrder( CFeedEngine::CompareFeedsByTitle); |
1035 TLinearOrder<CFeedInfo> sortOrder( CFeedEngine::CompareFeedsByTitle); |
1013 |
1036 |
1014 iSortedFeeds.InsertInOrder(feedInfo, sortOrder); |
1037 iSortedFeeds.InsertInOrder(feedInfo, sortOrder); |
1015 |
1038 |
1016 CleanupStack::Pop(feedInfo); |
1039 CleanupStack::Pop(feedInfo); |
1029 |
1052 |
1030 CFeedInfo* CFeedEngine::DBGetFeedInfoByUidL(TUint aFeedUid) |
1053 CFeedInfo* CFeedEngine::DBGetFeedInfoByUidL(TUint aFeedUid) |
1031 { |
1054 { |
1032 DP("CFeedEngine::DBGetFeedInfoByUid BEGIN"); |
1055 DP("CFeedEngine::DBGetFeedInfoByUid BEGIN"); |
1033 CFeedInfo *feedInfo = NULL; |
1056 CFeedInfo *feedInfo = NULL; |
1034 _LIT(KSqlStatement, "select url, title, description, imageurl, imagefile, link, built, lastupdated, uid, feedtype, customtitle, lasterror from feeds where uid=%u"); |
1057 _LIT(KSqlStatement, "select url, title, description, imageurl, imagefile, link, built, lastupdated, uid, feedtype, customtitle, lasterror, filesize from feeds where uid=%u"); |
1035 iSqlBuffer.Format(KSqlStatement, aFeedUid); |
1058 iSqlBuffer.Format(KSqlStatement, aFeedUid); |
1036 |
1059 |
1037 sqlite3_stmt *st; |
1060 sqlite3_stmt *st; |
1038 |
1061 |
1039 int rc = sqlite3_prepare16_v2(&iDB, (const void*)iSqlBuffer.PtrZ() , -1, &st, (const void**) NULL); |
1062 int rc = sqlite3_prepare16_v2(&iDB, (const void*)iSqlBuffer.PtrZ() , -1, &st, (const void**) NULL); |
1083 feedInfo->SetCustomTitle(); |
1106 feedInfo->SetCustomTitle(); |
1084 } |
1107 } |
1085 |
1108 |
1086 TInt lasterror = sqlite3_column_int(st, 11); |
1109 TInt lasterror = sqlite3_column_int(st, 11); |
1087 feedInfo->SetLastError(lasterror); |
1110 feedInfo->SetLastError(lasterror); |
1088 |
1111 |
1112 TInt filesize = sqlite3_column_int(st, 12); |
|
1113 feedInfo->SetFeedFileSize(filesize); |
|
1114 |
|
1089 CleanupStack::Pop(feedInfo); |
1115 CleanupStack::Pop(feedInfo); |
1090 } |
1116 } |
1091 else |
1117 else |
1092 { |
1118 { |
1093 User::Leave(KErrNotFound); |
1119 User::Leave(KErrNotFound); |