43 { |
44 { |
44 delete mClient; |
45 delete mClient; |
45 mAppArcSession.Close(); |
46 mAppArcSession.Close(); |
46 } |
47 } |
47 |
48 |
48 bool AfStorageProxyPrivate::addActivity(int applicationId, const QString &activityId, const QString &customActivityName, const QVariant &activityData, const QVariantHash &metadata, const QPixmap &screenshot) |
|
49 { |
|
50 int screenshotHandle(-1); |
|
51 CFbsBitmap* bitmap(screenshot.toSymbianCFbsBitmap()); |
|
52 if (bitmap) { |
|
53 screenshotHandle = bitmap->Handle(); |
|
54 } |
|
55 |
|
56 CAfEntry *entry = createSaveEntry(applicationId, activityId, customActivityName, activityData, metadata); |
|
57 int result = mClient->addActivity(*entry, screenshotHandle); |
|
58 delete entry; |
|
59 delete bitmap; |
|
60 |
|
61 return KErrNone == result; |
|
62 } |
|
63 |
|
64 bool AfStorageProxyPrivate::updateActivity(int applicationId, const QString &activityId, const QString &customActivityName, const QVariant &activityData, const QVariantHash &metadata, const QPixmap &screenshot) |
|
65 { |
|
66 int screenshotHandle(-1); |
|
67 CFbsBitmap* bitmap(screenshot.toSymbianCFbsBitmap()); |
|
68 if (bitmap) { |
|
69 screenshotHandle = bitmap->Handle(); |
|
70 } |
|
71 |
|
72 CAfEntry *entry = createSaveEntry(applicationId, activityId, customActivityName, activityData, metadata); |
|
73 int result = mClient->updateActivity(*entry, screenshotHandle); |
|
74 delete entry; |
|
75 delete bitmap; |
|
76 |
|
77 return KErrNone == result; |
|
78 } |
|
79 |
|
80 bool AfStorageProxyPrivate::saveActivity(int applicationId, const QString &activityId, const QString &customActivityName, const QVariant &activityData, const QVariantHash &metadata, const QPixmap &screenshot) |
49 bool AfStorageProxyPrivate::saveActivity(int applicationId, const QString &activityId, const QString &customActivityName, const QVariant &activityData, const QVariantHash &metadata, const QPixmap &screenshot) |
81 { |
50 { |
82 int screenshotHandle(-1); |
51 int screenshotHandle(-1); |
83 CFbsBitmap* bitmap(screenshot.toSymbianCFbsBitmap()); |
52 CFbsBitmap* bitmap(screenshot.toSymbianCFbsBitmap()); |
84 if (bitmap) { |
53 if (bitmap) { |
179 int result = mClient->launchActivity(*entry); |
148 int result = mClient->launchActivity(*entry); |
180 delete entry; |
149 delete entry; |
181 return KErrNone == result; |
150 return KErrNone == result; |
182 } |
151 } |
183 |
152 |
184 bool AfStorageProxyPrivate::getThumbnail(const QSize &size, const QString &imagePath, void *userData) |
153 bool AfStorageProxyPrivate::getThumbnail(const QString &imagePath, void *userData) |
185 { |
154 { |
186 HBufC *source = XQConversions::qStringToS60Desc(imagePath); |
155 HBufC *source = XQConversions::qStringToS60Desc(imagePath); |
187 int result = mClient->getThumbnail(TSize(size.width(), size.height()), *source, userData); |
156 int result = mClient->getThumbnail(*source, userData); |
188 delete source; |
157 delete source; |
189 return KErrNone == result; |
158 return KErrNone == result; |
190 } |
159 } |
191 |
160 |
192 bool AfStorageProxyPrivate::notifyDataChange() |
161 bool AfStorageProxyPrivate::notifyDataChange() |
227 } |
196 } |
228 |
197 |
229 CAfEntry *AfStorageProxyPrivate::createFilterEntry(int applicationId, const QString &activityId) |
198 CAfEntry *AfStorageProxyPrivate::createFilterEntry(int applicationId, const QString &activityId) |
230 { |
199 { |
231 CAfEntry *entry(0); |
200 CAfEntry *entry(0); |
232 QT_TRAP_THROWING(entry = CAfEntry::NewL(0, applicationId, TPtrC(static_cast<const TUint16*>(activityId.utf16())), KNullDesC(), KNullDesC(), KNullDesC8(), KNullDesC8())); |
201 QT_TRAP_THROWING(entry = CAfEntry::NewL(0, applicationId, TPtrC(static_cast<const TUint16*>(activityId.utf16())), KNullDesC(), KNullDesC(), KNullDesC8(), KNullDesC8(), TTime())); |
233 return entry; |
202 return entry; |
234 } |
203 } |
235 |
204 |
236 CAfEntry *AfStorageProxyPrivate::createSaveEntry(int applicationId, const QString &activityId, const QString &customActivityName, const QVariant &activityData, const QVariantHash &metadata) |
205 CAfEntry *AfStorageProxyPrivate::createSaveEntry(int applicationId, const QString &activityId, const QString &customActivityName, const QVariant &activityData, const QVariantHash &metadata) |
237 { |
206 { |
302 metadata.insert(ActivityActivityKeyword, XQConversions::s60DescToQString(entry->ActivityId())); |
272 metadata.insert(ActivityActivityKeyword, XQConversions::s60DescToQString(entry->ActivityId())); |
303 metadata.insert(ActivityApplicationName, activityDisplayText(entry)); |
273 metadata.insert(ActivityApplicationName, activityDisplayText(entry)); |
304 metadata.insert(ActivityScreenshotKeyword, XQConversions::s60DescToQString(entry->ImageSrc())); |
274 metadata.insert(ActivityScreenshotKeyword, XQConversions::s60DescToQString(entry->ImageSrc())); |
305 metadata.insert(ActivityPersistence, (entry->Flags() & CAfEntry::Persistent) ? true : false); |
275 metadata.insert(ActivityPersistence, (entry->Flags() & CAfEntry::Persistent) ? true : false); |
306 metadata.insert(ActivityVisibility, (entry->Flags() & CAfEntry::Invisible) ? false : true); |
276 metadata.insert(ActivityVisibility, (entry->Flags() & CAfEntry::Invisible) ? false : true); |
|
277 metadata.insert(ActivityTimestamp, convertTTimeToQDateTime(entry->Timestamp())); |
307 return metadata; |
278 return metadata; |
308 } |
279 } |
309 |
280 |
310 QString AfStorageProxyPrivate::activityDisplayText(CAfEntry *entry) |
281 QString AfStorageProxyPrivate::activityDisplayText(CAfEntry *entry) |
311 { |
282 { |
315 return QString::fromUtf16(info.iShortCaption.Ptr(), info.iShortCaption.Length()); |
286 return QString::fromUtf16(info.iShortCaption.Ptr(), info.iShortCaption.Length()); |
316 } else { |
287 } else { |
317 return XQConversions::s60DescToQString(entry->CustomActivityName()); |
288 return XQConversions::s60DescToQString(entry->CustomActivityName()); |
318 } |
289 } |
319 } |
290 } |
|
291 |
|
292 // ----------------------------------------------------------------------------- |
|
293 TTime AfStorageProxyPrivate::convertQDateTimeToTTime(const QDateTime ×tamp) const |
|
294 { |
|
295 return TTime( _L( "19700000:" ) ) + TTimeIntervalSeconds( timestamp.toTime_t() ) + |
|
296 TTimeIntervalMicroSeconds( timestamp.time().msec() * 1000 ); |
|
297 } |
|
298 |
|
299 // ----------------------------------------------------------------------------- |
|
300 QDateTime AfStorageProxyPrivate::convertTTimeToQDateTime(const TTime &s60Time) const |
|
301 { |
|
302 TTime posixEpoch(_L("19700000:")); |
|
303 TTimeIntervalSeconds secondsFrom; |
|
304 TTimeIntervalMicroSeconds microSecondsFrom; |
|
305 s60Time.SecondsFrom(posixEpoch, secondsFrom); |
|
306 microSecondsFrom = s60Time.MicroSecondsFrom(posixEpoch); |
|
307 QDateTime retVal = QDateTime::fromTime_t(secondsFrom.Int()); |
|
308 retVal = retVal.addMSecs((microSecondsFrom.Int64() % TInt64(1000000) ) / TInt64(1000)); |
|
309 return retVal; |
|
310 } |