We always build the static version of sqlite for now. Further improvements for signaling when icons has been generated so these can be used in the feedview
--- a/application/inc/PodcastFeedView.h Wed Mar 31 08:41:07 2010 +0200
+++ b/application/inc/PodcastFeedView.h Wed Mar 31 14:50:33 2010 +0200
@@ -95,7 +95,7 @@
void DialogDismissedL(TInt aButtonId);
// from MImageHandlerCallback
- void ImageOperationCompleteL(TInt aError, TUint aHandle);
+ void ImageOperationCompleteL(TInt aError, TUint aHandle, CPodcastModel& aPodcastModel);
void HandleLongTapEventL( const TPoint& aPenEventLocation, const TPoint& aPenEventScreenLocation);
--- a/application/inc/PodcastShowsView.h Wed Mar 31 08:41:07 2010 +0200
+++ b/application/inc/PodcastShowsView.h Wed Mar 31 14:50:33 2010 +0200
@@ -109,7 +109,7 @@
* @param aError Error code given by the CImageHandler or 0 (zero) if the
* image was loaded successfully.
*/
- virtual void ImageOperationCompleteL(TInt aError, TUint aHandle);
+ virtual void ImageOperationCompleteL(TInt aError, TUint aHandle, CPodcastModel& aPodcastModel);
void HandleSetShowPlayed(TBool aPlayed);
void HandleDeleteShow();
void UpdateViewTitleL();
--- a/application/src/PodcastFeedView.cpp Wed Mar 31 08:41:07 2010 +0200
+++ b/application/src/PodcastFeedView.cpp Wed Mar 31 14:50:33 2010 +0200
@@ -378,28 +378,26 @@
}
}
CArrayPtr<CGulIcon>* icons = iListContainer->Listbox()->ItemDrawer()->FormattedCellData()->IconArray();
-
- /*if (aFeedInfo.FeedIconIndex() != -1) {
- iconIndex = aFeedInfo.FeedIconIndex();
- } else*/ {
- if(aFeedInfo.FeedIcon() != NULL &&
- aFeedInfo.FeedIcon()->SizeInPixels().iHeight > 0 &&
- aFeedInfo.FeedIcon()->SizeInPixels().iWidth > 0)
- {
- // Hopefully temporary haxx to prevent double delete. I would prefer if
- // this could be solved with a little better design.
- CFbsBitmap* bmpCopy = new (ELeave) CFbsBitmap;
- CleanupStack::PushL(bmpCopy);
- bmpCopy->Duplicate(aFeedInfo.FeedIcon()->Handle());
- icons->AppendL( CGulIcon::NewL(bmpCopy, NULL));
- CleanupStack::Pop(bmpCopy);
- }
- else {
-
+
+ if(aFeedInfo.FeedIcon() != NULL &&
+ aFeedInfo.FeedIcon()->SizeInPixels().iHeight > 0 &&
+ aFeedInfo.FeedIcon()->SizeInPixels().iWidth > 0)
+ {
+ // Hopefully temporary haxx to prevent double delete. I would prefer if
+ // this could be solved with a little better design.
+ CFbsBitmap* bmpCopy = new (ELeave) CFbsBitmap;
+ CleanupStack::PushL(bmpCopy);
+ bmpCopy->Duplicate(aFeedInfo.FeedIcon()->Handle());
+ icons->AppendL( CGulIcon::NewL(bmpCopy, NULL));
+ CleanupStack::Pop(bmpCopy);
+ iconIndex = icons->Count()-1;
+ }
+ else
+ {
iconIndex = 0;
}
- }
-
+
+
if (unplayedShows.Length() > 0) {
unplayedShows.Insert(0,_L(", "));
}
@@ -407,11 +405,11 @@
iListboxFormatbuffer.Format(KFeedFormat(), iconIndex, &(aFeedInfo.Title()), &updatedDate, &unplayedShows);
}
-void CPodcastFeedView::ImageOperationCompleteL(TInt aError, TUint aHandle)
+void CPodcastFeedView::ImageOperationCompleteL(TInt aError, TUint aHandle, CPodcastModel& /*aPodcastModel*/)
{
if (aError == KErrNone) {
- UpdateFeedInfoStatusL(aHandle, EFalse);
- }
+ UpdateFeedInfoStatusL(aHandle, EFalse);
+ }
}
void CPodcastFeedView::UpdateFeedInfoDataL(CFeedInfo* aFeedInfo, TInt aIndex, TBool aIsUpdating )
--- a/application/src/PodcastShowsView.cpp Wed Mar 31 08:41:07 2010 +0200
+++ b/application/src/PodcastShowsView.cpp Wed Mar 31 14:50:33 2010 +0200
@@ -628,7 +628,7 @@
}
}
-void CPodcastShowsView::ImageOperationCompleteL(TInt aError, TUint /*aHandle*/)
+void CPodcastShowsView::ImageOperationCompleteL(TInt aError, TUint /*aHandle*/, CPodcastModel& /*aPodcastModel*/)
{
iLastImageHandlerError = aError;
if(iSetTitlebarImage)
--- a/engine/BWINS/podcastengineu.def Wed Mar 31 08:41:07 2010 +0200
+++ b/engine/BWINS/podcastengineu.def Wed Mar 31 14:50:33 2010 +0200
@@ -76,12 +76,12 @@
?MarkSelectionPlayed@CPodcastModel@@QAEXXZ @ 75 NONAME ; void CPodcastModel::MarkSelectionPlayed(void)
?MetaDataReader@CShowEngine@@QAEAAVCMetaDataReader@@XZ @ 76 NONAME ; class CMetaDataReader & CShowEngine::MetaDataReader(void)
?NewL@CFeedInfo@@SAPAV1@XZ @ 77 NONAME ; class CFeedInfo * CFeedInfo::NewL(void)
- ?NewL@CImageHandler@@SAPAV1@AAVRFs@@@Z @ 78 NONAME ; class CImageHandler * CImageHandler::NewL(class RFs &)
+ ?Url@CShowInfo@@QBEABVTDesC16@@XZ @ 78 NONAME ; class TDesC16 const & CShowInfo::Url(void) const
?NewL@CPodcastModel@@SAPAV1@XZ @ 79 NONAME ; class CPodcastModel * CPodcastModel::NewL(void)
?NewL@CShowEngine@@SAPAV1@AAVCPodcastModel@@@Z @ 80 NONAME ; class CShowEngine * CShowEngine::NewL(class CPodcastModel &)
?NewL@CShowInfo@@SAPAV1@I@Z @ 81 NONAME ; class CShowInfo * CShowInfo::NewL(unsigned int)
?NewLC@CFeedInfo@@SAPAV1@XZ @ 82 NONAME ; class CFeedInfo * CFeedInfo::NewLC(void)
- ?NewLC@CImageHandler@@SAPAV1@AAVRFs@@@Z @ 83 NONAME ; class CImageHandler * CImageHandler::NewLC(class RFs &)
+ ?XMLEncode@PodcastUtils@@SAXAAVTDes16@@@Z @ 83 NONAME ; void PodcastUtils::XMLEncode(class TDes16 &)
?NewLC@CShowInfo@@SAPAV1@I@Z @ 84 NONAME ; class CShowInfo * CShowInfo::NewLC(unsigned int)
?NotifyShowListUpdatedL@CShowEngine@@QAEXXZ @ 85 NONAME ; void CShowEngine::NotifyShowListUpdatedL(void)
?OpmlParsingComplete@CFeedEngine@@QAEXHI@Z @ 86 NONAME ; void CFeedEngine::OpmlParsingComplete(int, unsigned int)
@@ -170,6 +170,147 @@
?UpdateSNAPListL@CPodcastModel@@QAEXXZ @ 169 NONAME ; void CPodcastModel::UpdateSNAPListL(void)
?UpdateShow@CShowEngine@@QAEXAAVCShowInfo@@@Z @ 170 NONAME ; void CShowEngine::UpdateShow(class CShowInfo &)
?Url@CFeedInfo@@QBEABVTDesC16@@XZ @ 171 NONAME ; class TDesC16 const & CFeedInfo::Url(void) const
- ?Url@CShowInfo@@QBEABVTDesC16@@XZ @ 172 NONAME ; class TDesC16 const & CShowInfo::Url(void) const
- ?XMLEncode@PodcastUtils@@SAXAAVTDes16@@@Z @ 173 NONAME ; void PodcastUtils::XMLEncode(class TDes16 &)
+ ?NewL@CImageHandler@@SAPAV1@AAVRFs@@AAVCPodcastModel@@@Z @ 172 NONAME ; class CImageHandler * CImageHandler::NewL(class RFs &, class CPodcastModel &)
+ ?NewLC@CImageHandler@@SAPAV1@AAVRFs@@AAVCPodcastModel@@@Z @ 173 NONAME ; class CImageHandler * CImageHandler::NewLC(class RFs &, class CPodcastModel &)
+ sqlite3_aggregate_context @ 174 NONAME
+ sqlite3_aggregate_count @ 175 NONAME
+ sqlite3_auto_extension @ 176 NONAME
+ sqlite3_bind_blob @ 177 NONAME
+ sqlite3_bind_double @ 178 NONAME
+ sqlite3_bind_int @ 179 NONAME
+ sqlite3_bind_int64 @ 180 NONAME
+ sqlite3_bind_null @ 181 NONAME
+ sqlite3_bind_parameter_count @ 182 NONAME
+ sqlite3_bind_parameter_index @ 183 NONAME
+ sqlite3_bind_parameter_name @ 184 NONAME
+ sqlite3_bind_text @ 185 NONAME
+ sqlite3_bind_text16 @ 186 NONAME
+ sqlite3_bind_value @ 187 NONAME
+ sqlite3_bind_zeroblob @ 188 NONAME
+ sqlite3_blob_bytes @ 189 NONAME
+ sqlite3_blob_close @ 190 NONAME
+ sqlite3_blob_open @ 191 NONAME
+ sqlite3_blob_read @ 192 NONAME
+ sqlite3_blob_write @ 193 NONAME
+ sqlite3_busy_handler @ 194 NONAME
+ sqlite3_busy_timeout @ 195 NONAME
+ sqlite3_changes @ 196 NONAME
+ sqlite3_clear_bindings @ 197 NONAME
+ sqlite3_close @ 198 NONAME
+ sqlite3_collation_needed @ 199 NONAME
+ sqlite3_collation_needed16 @ 200 NONAME
+ sqlite3_column_blob @ 201 NONAME
+ sqlite3_column_bytes @ 202 NONAME
+ sqlite3_column_bytes16 @ 203 NONAME
+ sqlite3_column_count @ 204 NONAME
+ sqlite3_column_decltype @ 205 NONAME
+ sqlite3_column_decltype16 @ 206 NONAME
+ sqlite3_column_double @ 207 NONAME
+ sqlite3_column_int @ 208 NONAME
+ sqlite3_column_int64 @ 209 NONAME
+ sqlite3_column_name @ 210 NONAME
+ sqlite3_column_name16 @ 211 NONAME
+ sqlite3_column_text @ 212 NONAME
+ sqlite3_column_text16 @ 213 NONAME
+ sqlite3_column_type @ 214 NONAME
+ sqlite3_column_value @ 215 NONAME
+ sqlite3_commit_hook @ 216 NONAME
+ sqlite3_complete @ 217 NONAME
+ sqlite3_complete16 @ 218 NONAME
+ sqlite3_create_collation @ 219 NONAME
+ sqlite3_create_collation16 @ 220 NONAME
+ sqlite3_create_collation_v2 @ 221 NONAME
+ sqlite3_create_function @ 222 NONAME
+ sqlite3_create_function16 @ 223 NONAME
+ sqlite3_create_module @ 224 NONAME
+ sqlite3_create_module_v2 @ 225 NONAME
+ sqlite3_data_count @ 226 NONAME
+ sqlite3_db_handle @ 227 NONAME
+ sqlite3_declare_vtab @ 228 NONAME
+ sqlite3_enable_load_extension @ 229 NONAME
+ sqlite3_enable_shared_cache @ 230 NONAME
+ sqlite3_errcode @ 231 NONAME
+ sqlite3_errmsg @ 232 NONAME
+ sqlite3_errmsg16 @ 233 NONAME
+ sqlite3_exec @ 234 NONAME
+ sqlite3_expired @ 235 NONAME
+ sqlite3_extended_result_codes @ 236 NONAME
+ sqlite3_file_control @ 237 NONAME
+ sqlite3_finalize @ 238 NONAME
+ sqlite3_free @ 239 NONAME
+ sqlite3_free_table @ 240 NONAME
+ sqlite3_get_autocommit @ 241 NONAME
+ sqlite3_get_auxdata @ 242 NONAME
+ sqlite3_get_table @ 243 NONAME
+ sqlite3_global_recover @ 244 NONAME
+ sqlite3_interrupt @ 245 NONAME
+ sqlite3_last_insert_rowid @ 246 NONAME
+ sqlite3_libversion @ 247 NONAME
+ sqlite3_libversion_number @ 248 NONAME
+ sqlite3_load_extension @ 249 NONAME
+ sqlite3_malloc @ 250 NONAME
+ sqlite3_memory_alarm @ 251 NONAME
+ sqlite3_memory_highwater @ 252 NONAME
+ sqlite3_memory_used @ 253 NONAME
+ sqlite3_mprintf @ 254 NONAME
+ sqlite3_open @ 255 NONAME
+ sqlite3_open16 @ 256 NONAME
+ sqlite3_open_v2 @ 257 NONAME
+ sqlite3_overload_function @ 258 NONAME
+ sqlite3_prepare @ 259 NONAME
+ sqlite3_prepare16 @ 260 NONAME
+ sqlite3_prepare16_v2 @ 261 NONAME
+ sqlite3_prepare_v2 @ 262 NONAME
+ sqlite3_profile @ 263 NONAME
+ sqlite3_progress_handler @ 264 NONAME
+ sqlite3_realloc @ 265 NONAME
+ sqlite3_release_memory @ 266 NONAME
+ sqlite3_reset @ 267 NONAME
+ sqlite3_reset_auto_extension @ 268 NONAME
+ sqlite3_result_blob @ 269 NONAME
+ sqlite3_result_double @ 270 NONAME
+ sqlite3_result_error @ 271 NONAME
+ sqlite3_result_error16 @ 272 NONAME
+ sqlite3_result_error_nomem @ 273 NONAME
+ sqlite3_result_error_toobig @ 274 NONAME
+ sqlite3_result_int @ 275 NONAME
+ sqlite3_result_int64 @ 276 NONAME
+ sqlite3_result_null @ 277 NONAME
+ sqlite3_result_text @ 278 NONAME
+ sqlite3_result_text16 @ 279 NONAME
+ sqlite3_result_text16be @ 280 NONAME
+ sqlite3_result_text16le @ 281 NONAME
+ sqlite3_result_value @ 282 NONAME
+ sqlite3_result_zeroblob @ 283 NONAME
+ sqlite3_rollback_hook @ 284 NONAME
+ sqlite3_set_authorizer @ 285 NONAME
+ sqlite3_set_auxdata @ 286 NONAME
+ sqlite3_sleep @ 287 NONAME
+ sqlite3_snprintf @ 288 NONAME
+ sqlite3_soft_heap_limit @ 289 NONAME
+ sqlite3_sql @ 290 NONAME
+ sqlite3_step @ 291 NONAME
+ sqlite3_thread_cleanup @ 292 NONAME
+ sqlite3_threadsafe @ 293 NONAME
+ sqlite3_total_changes @ 294 NONAME
+ sqlite3_trace @ 295 NONAME
+ sqlite3_transfer_bindings @ 296 NONAME
+ sqlite3_update_hook @ 297 NONAME
+ sqlite3_user_data @ 298 NONAME
+ sqlite3_value_blob @ 299 NONAME
+ sqlite3_value_bytes @ 300 NONAME
+ sqlite3_value_bytes16 @ 301 NONAME
+ sqlite3_value_double @ 302 NONAME
+ sqlite3_value_int @ 303 NONAME
+ sqlite3_value_int64 @ 304 NONAME
+ sqlite3_value_numeric_type @ 305 NONAME
+ sqlite3_value_text @ 306 NONAME
+ sqlite3_value_text16 @ 307 NONAME
+ sqlite3_value_text16be @ 308 NONAME
+ sqlite3_value_text16le @ 309 NONAME
+ sqlite3_value_type @ 310 NONAME
+ sqlite3_vfs_find @ 311 NONAME
+ sqlite3_vfs_register @ 312 NONAME
+ sqlite3_vfs_unregister @ 313 NONAME
+ sqlite3_vmprintf @ 314 NONAME
--- a/engine/inc/FeedEngine.h Wed Mar 31 08:41:07 2010 +0200
+++ b/engine/inc/FeedEngine.h Wed Mar 31 14:50:33 2010 +0200
@@ -95,6 +95,7 @@
IMPORT_C const RFeedInfoArray& GetSearchResults();
IMPORT_C void OpmlParsingComplete(TInt aError, TUint aNumFeedsAdded);
+ void NotifyFeedUpdateComplete(TInt aFeedUid, TInt aError);
protected:
static TInt CompareFeedsByTitle(const CFeedInfo &a, const CFeedInfo &b);
@@ -117,7 +118,7 @@
void GetFeedImageL(CFeedInfo *aFeedInfo);
void UpdateNextFeedL();
- void NotifyFeedUpdateComplete(TInt aError);
+ void NotifyFeedUpdateComplete(TInt aError);
void NotifyOpmlParsingComplete(TInt aError, TUint aNumFeedsAdded);
--- a/engine/inc/FeedInfo.h Wed Mar 31 08:41:07 2010 +0200
+++ b/engine/inc/FeedInfo.h Wed Mar 31 14:50:33 2010 +0200
@@ -76,7 +76,7 @@
private:
CFeedInfo();
void ConstructL();
- void ImageOperationCompleteL(TInt aError, TUint aHandle);
+ void ImageOperationCompleteL(TInt aError, TUint aHandle, CPodcastModel& aPodcastModel);
private:
HBufC* iUrl;
HBufC* iTitle;
--- a/engine/inc/ImageHandler.h Wed Mar 31 08:41:07 2010 +0200
+++ b/engine/inc/ImageHandler.h Wed Mar 31 14:50:33 2010 +0200
@@ -22,6 +22,7 @@
#include <f32file.h>
#include <ImageConversion.h>
#include <BitmapTransforms.h>
+class CPodcastModel;
/**
* Listener interface that can be used to listen for image loading operation
@@ -42,8 +43,10 @@
* Called by CImageHandler when an image has been loaded.
* @param aError Error code given by the CImageHandler or 0 (zero) if the
* image was loaded successfully.
+ * @param image handle
+ * @param reference to podcast model
*/
- virtual void ImageOperationCompleteL(TInt aError, TUint aHandle) = 0;
+ virtual void ImageOperationCompleteL(TInt aError, TUint aHandle, CPodcastModel& aPodcastModel) = 0;
};
// ============================================================================
@@ -65,27 +68,22 @@
public: // Constructors and destructor
/**
* Factory method that constructs a CImageHandler by using the NewLC method
- * and then cleans the cleanup stack.
- * @param aBitmap Bitmap where the image data is loaded to.
- * @param aScaledBitmap Bitmap where the scaled image data is loaded to.
+ * and then cleans the cleanup stack.
* @param aFs File server reference that is used to load the image data.
- * @param aCallback Listener interface implementation that is notified
+ * @param Reference to podcast model
* when an image has been loaded.
* @return pointer to created CImageHandler-object
*/
- IMPORT_C static CImageHandler* NewL(RFs& aFs);
+ IMPORT_C static CImageHandler* NewL(RFs& aFs,CPodcastModel& aPodcastModel);
/**
* Factory method that constructs a CImageHandler and leaves it to the
* cleanup stack.
- * @param aBitmap Bitmap where the image data is loaded to.
- * @param aScaledBitmap Bitmap where the scaled image data is loaded to.
* @param aFs File server reference that is used to load the image data.
- * @param aCallback Listener interface implementation that is notified
- * when an image has been loaded.
+ * @param Reference to podcast model
* @return pointer to created CImageHandler-object
*/
- IMPORT_C static CImageHandler* NewLC(RFs& aFs);
+ IMPORT_C static CImageHandler* NewLC(RFs& aFs,CPodcastModel& aPodcastModel);
/**
* Desctructor. Destroys the CImageDecoder used by the image handler.
*/
@@ -142,13 +140,12 @@
protected:
/**
* C++ default constructor. Just stores the given parameters to
- * corresponding attributes.
- * @param aScaledBitmap Bitmap where the scaled image data is loaded to.
+ * corresponding attributes.
* @param aFs File server reference that is used to load the image data.
- * @param aCallback Listener interface implementation that is notified
+ * @param Reference to podcast model
* when an image has been loaded.
*/
- CImageHandler(RFs& aFs);
+ CImageHandler(RFs& aFs, CPodcastModel& aPodcastModel);
/**
* 2nd phase constructor. Adds this object to the active scheduler.
*/
@@ -182,6 +179,9 @@
/* Handle passed back to caller */
TUint iHandle;
+
+ /** Reference to the podcast model used for callbacks to be able to notify*/
+ CPodcastModel& iPodcastModel;
};
#endif
--- a/engine/inc/PodcastModel.h Wed Mar 31 08:41:07 2010 +0200
+++ b/engine/inc/PodcastModel.h Wed Mar 31 14:50:33 2010 +0200
@@ -102,7 +102,7 @@
CPodcastModel();
void ConstructL();
// From ImageHandler
- void ImageOperationCompleteL(TInt aError, TUint aHandle);
+ void ImageOperationCompleteL(TInt aError, TUint aHandle, CPodcastModel& aPodcastModel);
private:
CShowInfo* iPlayingPodcast;
--- a/engine/src/FeedEngine.cpp Wed Mar 31 08:41:07 2010 +0200
+++ b/engine/src/FeedEngine.cpp Wed Mar 31 14:50:33 2010 +0200
@@ -647,6 +647,15 @@
}
}
+void CFeedEngine::NotifyFeedUpdateComplete(TInt aFeedUid, TInt aError)
+ {
+ DP("CFeedEngine::NotifyFeedUpdateComplete");
+ for (TInt i=0;i<iObservers.Count();i++)
+ {
+ TRAP_IGNORE(iObservers[i]->FeedDownloadFinishedL(MFeedEngineObserver::EFeedAutoUpdate, aFeedUid, aError));
+ }
+ }
+
void CFeedEngine::Disconnected(CHttpClient* /*aClient*/)
{
}
--- a/engine/src/FeedInfo.cpp Wed Mar 31 08:41:07 2010 +0200
+++ b/engine/src/FeedInfo.cpp Wed Mar 31 14:50:33 2010 +0200
@@ -17,6 +17,8 @@
*/
#include "FeedInfo.h"
+#include "FeedEngine.h"
+#include "PodcastModel.h"
#include <e32hashtab.h>
#include <fbs.h>
#include <bautils.h>
@@ -209,7 +211,7 @@
{
iFeedIcon = CEikonEnv::Static()->CreateBitmapL(cacheFileName, 0);
}
- }
+ }
EXPORT_C TBool CFeedInfo::CustomTitle() const
{
@@ -241,9 +243,8 @@
iFeedIcon->Duplicate(aBitmapToClone->Handle());
}
-void CFeedInfo::ImageOperationCompleteL(TInt aError, TUint /*aHandle*/)
- {
-
+void CFeedInfo::ImageOperationCompleteL(TInt aError, TUint /*aHandle*/, CPodcastModel& aPodcastModel)
+ {
if (aError == KErrNone && iImageFileName && iFeedIcon)
{
TFileName cacheFileName;
@@ -253,5 +254,6 @@
cacheFileName.Append(parser.Name());
cacheFileName.Append(KMbmExtension());
iFeedIcon->Save(cacheFileName);
+ aPodcastModel.FeedEngine().NotifyFeedUpdateComplete(this->iUid, KErrNone);
}
}
--- a/engine/src/ImageHandler.cpp Wed Mar 31 08:41:07 2010 +0200
+++ b/engine/src/ImageHandler.cpp Wed Mar 31 14:50:33 2010 +0200
@@ -31,12 +31,13 @@
// might leave.
// -----------------------------------------------------------------------------
//
-CImageHandler::CImageHandler( RFs& aFs )
+CImageHandler::CImageHandler( RFs& aFs, CPodcastModel& aPodcastModel )
: CActive(CActive::EPriorityStandard)
, iDecoder(NULL)
, iScaler(NULL)
, iFs(aFs)
, iSize(0,0)
+ , iPodcastModel(aPodcastModel)
{
}
@@ -56,9 +57,9 @@
// Two-phased constructor.
// -----------------------------------------------------------------------------
//
-EXPORT_C CImageHandler* CImageHandler::NewL(RFs& aFs)
+EXPORT_C CImageHandler* CImageHandler::NewL(RFs& aFs, CPodcastModel& aPodcastModel)
{
- CImageHandler* self = NewLC(aFs);
+ CImageHandler* self = NewLC(aFs, aPodcastModel);
CleanupStack::Pop();
return self;
}
@@ -68,9 +69,9 @@
// Two-phased constructor.
// -----------------------------------------------------------------------------
//
-EXPORT_C CImageHandler* CImageHandler::NewLC(RFs& aFs)
+EXPORT_C CImageHandler* CImageHandler::NewLC(RFs& aFs, CPodcastModel& aPodcastModel)
{
- CImageHandler* self = new (ELeave) CImageHandler(aFs);
+ CImageHandler* self = new (ELeave) CImageHandler(aFs, aPodcastModel);
CleanupStack::PushL( self );
self->ConstructL();
@@ -202,7 +203,7 @@
else
{
// Invoke callback.
- iCallback->ImageOperationCompleteL(iStatus.Int(), iHandle);
+ iCallback->ImageOperationCompleteL(iStatus.Int(), iHandle, iPodcastModel);
if(iCallbackQue.Count())
{
TInt loaderror = KErrNotFound;
--- a/engine/src/PodcastModel.cpp Wed Mar 31 08:41:07 2010 +0200
+++ b/engine/src/PodcastModel.cpp Wed Mar 31 14:50:33 2010 +0200
@@ -78,7 +78,7 @@
iIapNameArray = new (ELeave) CDesCArrayFlat(KDefaultGranu);
iSNAPNameArray = new (ELeave) CDesCArrayFlat(KDefaultGranu);
iCmManager.OpenL();
- iImageHandler = CImageHandler::NewL(FsSession());
+ iImageHandler = CImageHandler::NewL(FsSession(), *this);
UpdateIAPListL();
UpdateSNAPListL();
@@ -437,7 +437,7 @@
}
-void CPodcastModel::ImageOperationCompleteL(TInt /*aError*/, TUint /*aHandle*/)
+void CPodcastModel::ImageOperationCompleteL(TInt /*aError*/, TUint /*aHandle*/, CPodcastModel& /*aPodcastModel*/)
{
}
--- a/group/bld.inf Wed Mar 31 08:41:07 2010 +0200
+++ b/group/bld.inf Wed Mar 31 14:50:33 2010 +0200
@@ -22,9 +22,9 @@
PRJ_MMPFILES
-#ifdef SQLITE_INCLUDED
+//#ifdef SQLITE_INCLUDED
..\engine\sqlite\group\sqlite.mmp
-#endif
+//#endif
PRJ_MMPFILES
..\engine\group\engine.mmp