131 */ |
131 */ |
132 void DoCancel(); |
132 void DoCancel(); |
133 |
133 |
134 /** |
134 /** |
135 * Error handling: ignore error. |
135 * Error handling: ignore error. |
136 * @param aErr Error code. |
136 * @param aError Error code. |
137 */ |
137 */ |
138 TInt RunError( TInt aError ); |
138 TInt RunError( TInt aError ); |
139 |
139 |
140 private: |
140 private: |
141 // from MApaAppListServObserver |
141 // from MApaAppListServObserver |
142 |
142 |
143 void HandleAppListEvent( TInt aEvent ); |
143 void HandleAppListEvent( TInt aEvent ); |
144 |
144 |
145 public: |
|
146 /** |
|
147 * Schedule appscanner run. |
|
148 * Self complete active object. |
|
149 */ |
|
150 void ScheduleScan(); |
|
151 |
|
152 private: |
145 private: |
153 // new methods |
146 // new methods |
154 |
147 |
155 /** |
148 /** |
156 * Gets collectionId of download collection |
149 * Gets collectionId of download collection. |
157 * @result id of download collection |
150 * @result id of download collection. |
158 */ |
151 */ |
159 TInt GetCollectionDownloadIdL(); |
152 TInt GetCollectionDownloadIdL(); |
160 |
153 |
161 /** |
154 /** |
162 * Gets collectionId of all collection |
155 * Gets collectionId of all collection. |
163 * @result id of all collection |
156 * @result id of all collection. |
164 */ |
157 */ |
165 TInt GetAllCollectionIdL(); |
158 TInt GetAllCollectionIdL(); |
166 |
159 |
167 /** |
160 /** |
168 * Adds application entry to downloaded collection |
161 * Adds application entry to downloaded collection. |
169 * @param aEntryId application entry id. |
162 * @param aEntryId application entry id. |
170 */ |
163 */ |
171 void AddEntryToDownloadedCollectionL( TInt aEntryId ); |
164 void AddEntryToDownloadedCollectionL( TInt aEntryId ); |
172 |
165 |
173 /** |
166 /** |
174 * Add application entry to predefined collection |
167 * Add application entry to predefined collection. |
175 * @param aEntry application entry. |
168 * @param aEntry application entry. |
176 * @param aUpdate is entry updated by a client |
169 * @param aUpdate is entry updated by a client. |
177 */ |
170 */ |
178 void AddEntryToPredefinedCollectionL( CCaInnerEntry* aEntry, |
171 void AddEntryToPredefinedCollectionL( CCaInnerEntry* aEntry, |
179 TBool aUpdate = EFalse ); |
172 TBool aUpdate = EFalse ); |
180 |
173 |
181 /** |
174 /** |
182 * Create predefined collection |
175 * Create predefined collection. |
183 * @param aGroupName group name. |
176 * @param aGroupName group name. |
184 * @result id of new created collection |
177 * @result id of a newly created collection. |
185 */ |
178 */ |
186 TInt CreatePredefinedCollectionL( const TDesC& aGroupName ); |
179 TInt CreatePredefinedCollectionL( const TDesC& aGroupName ); |
187 |
180 |
188 /** |
181 /** |
189 * Add collection to all collection. |
182 * Add collection to all collection. |
190 * @param aCollectionId collection id to add. |
183 * @param aCollectionId collection id to add. |
191 */ |
184 */ |
192 void AddCollectionToAllCollectionL( TInt aCollectionId ); |
185 void AddCollectionToAllCollectionL( TInt aCollectionId ); |
193 |
186 |
194 /** |
187 /** |
195 * Removes application entry from downloaded collection |
188 * Removes application entry from downloaded collection. |
196 * @param aEntryId application entry id. |
189 * @param aEntryId application entry id. |
197 */ |
190 */ |
198 void RemoveEntryFromDownloadedL( TInt aEntryId ); |
191 void RemoveEntryFromDownloadedL( TInt aEntryId ); |
199 |
192 |
200 TBool HandleLockDeleteFlagUpdateL( CCaInnerEntry* aItem ); |
193 /** |
|
194 * Updates application's removable and visible flags. |
|
195 * @param aItem menu item. |
|
196 * @return ETrue if flags were updated. |
|
197 */ |
|
198 TBool HandleRemovableVisibleFlagsUpdateL( CCaInnerEntry* aItem ); |
201 |
199 |
202 /** |
200 /** |
203 * Updates application's missing and visible flags. |
201 * Updates application's missing and visible flags. |
204 * Add new menu item referring to this application. |
|
205 * @param aItem menu item. |
202 * @param aItem menu item. |
206 * @return ETrue if flags were updated |
203 * @return ETrue if flags were updated. |
207 */ |
204 */ |
208 TBool HandleMissingVisibleFlagsUpdate( CCaInnerEntry* aItem ); |
205 TBool HandleMissingVisibleFlagsUpdate( CCaInnerEntry* aItem ); |
209 |
206 |
210 /** |
207 /** |
211 * Updates visible flag. |
208 * Updates visible flag. |
212 * @param aItem menu item. |
209 * @param aItem menu item. |
213 * @param aUid Application's uid. |
210 * @return ETrue if visible flag was updated. |
214 * @return ETrue if visible flag was updated |
|
215 */ |
211 */ |
216 TBool HandleVisibleFlagUpdate( CCaInnerEntry* aItem ); |
212 TBool HandleVisibleFlagUpdate( CCaInnerEntry* aItem ); |
217 |
213 |
218 /** |
214 /** |
219 * Updates used flag. |
215 * Updates used flag. |
220 * @param aItem menu item. |
216 * @param aItem menu item. |
221 * @param aUid Application's uid. |
217 * @return ETrue if used flag was updated. |
222 * @return ETrue if used flag was updated |
|
223 */ |
218 */ |
224 TBool HandleUsedFlagUpdate( CCaInnerEntry* aItem ); |
219 TBool HandleUsedFlagUpdate( CCaInnerEntry* aItem ); |
|
220 |
225 /** |
221 /** |
226 * Updates mmc attribute. |
222 * Updates mmc attribute. |
227 * @param aItem menu item. |
223 * @param aItem menu item. |
228 * @param aUid Application's uid. |
|
229 * @param aMmcId MMC ID of currently inserted MMC, or 0. |
224 * @param aMmcId MMC ID of currently inserted MMC, or 0. |
230 * @return ETrue if mmc attribute was updated |
225 * @return ETrue if mmc attribute was updated. |
231 */ |
226 */ |
232 TBool HandleMmcAttrUpdateL( CCaInnerEntry* aItem, TUint aMmcId ); |
227 TBool HandleMmcAttrUpdateL( CCaInnerEntry* aItem, TUint aMmcId ); |
233 |
228 |
234 /** |
229 /** |
235 * Check if application is in rom |
230 * Check if application is in rom. |
236 * Add new menu item referring to this application. |
231 * Add new menu item referring to this application. |
237 * @param aUid uid applications |
232 * @return ETrue if app is in rom. |
238 * @return ETrue if app is in rom |
|
239 */ |
233 */ |
240 TBool IsInRomL( TInt aUid ); |
234 TBool IsInRomL( TInt aUid ); |
241 |
235 |
242 /** |
236 /** |
243 * Get applications from AppArc |
237 * Get applications from AppArc. |
244 * @param aArray RArray with applications |
238 * @param aArray RArray with applications' uids. |
245 */ |
239 */ |
246 void GetApaItemsL( RArray<TCaAppAtributes>& aArray ); |
240 void GetApaItemsL( RArray<TUint>& aArray ); |
247 |
241 |
248 /** |
242 /** |
249 * Remove application from array (found in AppArc) |
243 * Remove application from array (found in AppArc). |
250 * @param aArray RArray with application |
244 * @param aArray RArray with applications' uids. |
251 * @param aUid uid of application to remove |
245 * @param aUid uid of application to remove. |
252 */ |
246 */ |
253 void RemoveApp( RArray<TCaAppAtributes>& aArray, TInt32 aUid ); |
247 void RemoveApp( RArray<TUint>& aArray, TInt32 aUid ); |
254 |
248 |
255 /** |
249 /** |
256 * Get applications from CaStorage |
250 * Get applications from CaStorage. |
|
251 * @param aArray RPointerArray with CCaInnerEntries. |
|
252 * contains applications. |
|
253 */ |
|
254 void GetCaAppEntriesL( RPointerArray<CCaInnerEntry>& aArray ); |
|
255 |
|
256 /** |
|
257 * Remove sat application from array(found in CaStorage). |
257 * @param aArray RPointerArray with CCaInnerEntries |
258 * @param aArray RPointerArray with CCaInnerEntries |
258 * contains applications |
259 * contains applications. |
259 */ |
|
260 void GetCaAppEntriesL( RPointerArray<CCaInnerEntry>& aArray ); |
|
261 |
|
262 /** |
|
263 * Remove sat application from array(found in CaStorage) |
|
264 * @param aArray RPointerArray with CCaInnerEntries |
|
265 * contains applications |
|
266 */ |
260 */ |
267 void RemoveSatAppL( RPointerArray<CCaInnerEntry>& aArray ); |
261 void RemoveSatAppL( RPointerArray<CCaInnerEntry>& aArray ); |
268 |
262 |
269 /** |
263 /** |
270 * Ensure that HsApplicaiton is not visible: Add HsApplication |
264 * Ensure that HsApplicaiton is not visible: Add HsApplication. |
271 * as hidden to CaStorage or remove HsApplication entry |
265 * as hidden to CaStorage or remove HsApplication entry |
272 * from array (found in CaStorage). |
266 * from array (found in CaStorage). |
273 * @param aArray RPointerArray with CCaInnerEntries |
267 * @param aArray RPointerArray with CCaInnerEntries |
274 * contains application |
268 * contains application. |
275 */ |
269 */ |
276 void HandleHsAppEntryL( RPointerArray<CCaInnerEntry>& aArray ); |
270 void HandleHsAppEntryL( RPointerArray<CCaInnerEntry>& aArray ); |
277 |
271 |
278 /** |
272 /** |
279 * Get application with specified uid from CaStorage |
273 * Get application with specified uid from CaStorage. |
280 * @param aUid RPointerArray with CCaInnerEntries |
274 * @param aUid RPointerArray with CCaInnerEntries. |
281 * @param aArray RPointerArray with CCaInnerEntries |
275 * @param aArray RPointerArray with CCaInnerEntries |
282 * contains application |
276 * contains application. |
283 */ |
277 */ |
284 void GetCaAppEntriesL( TInt aUid, RPointerArray<CCaInnerEntry>& aArray ); |
278 void GetCaAppEntriesL( TInt aUid, RPointerArray<CCaInnerEntry>& aArray ); |
285 |
279 |
286 /** |
280 /** |
287 * New application is found, no menu item refers to it. |
281 * New application is found, no menu item refers to it. |
291 */ |
285 */ |
292 void AddAppEntryL( TUint aUid, TUint aCurrentMmcId ); |
286 void AddAppEntryL( TUint aUid, TUint aCurrentMmcId ); |
293 |
287 |
294 /** |
288 /** |
295 * Removes given uid from iInstalledPackages. |
289 * Removes given uid from iInstalledPackages. |
296 * Add new menu item referring to this application. |
290 * @param aUid Application uid. |
297 * @param aUid Application capability. |
|
298 */ |
291 */ |
299 void RemoveFromInstalledPackages( TUint aUid ); |
292 void RemoveFromInstalledPackages( TUint aUid ); |
300 |
293 |
301 /** |
294 /** |
302 * Set information from TApaAppInfo to entry |
295 * Set information from TApaAppInfo to entry. |
303 * @param aEntry CCaInnerEntry with application. |
296 * @param aEntry CCaInnerEntry with application. |
304 * @return ETrue if app info was updatedd |
297 * @return ETrue if app info was updatedd |
305 */ |
298 */ |
306 TBool SetApaAppInfoL( CCaInnerEntry* aEntry ); |
299 TBool SetApaAppInfoL( CCaInnerEntry* aEntry ); |
307 |
300 |
308 /** |
301 /** |
309 * Find the default folder (folder having attribute 'default="1"'). |
302 * Handle items which are in the menu but no corresponding app is present: |
310 * If not found, return 0. |
303 * - Items that are on a recently used MMC get "missing" flag but kept. |
311 * @param aFolderId Dedault folder or 0. |
|
312 */ |
|
313 void DefaultFolderL( TInt& aFolderId ); |
|
314 |
|
315 /** |
|
316 * Handle items are in the menu but no corresponding app is present: |
|
317 * - Items that are on a recently used MMC are get "missing" flag but kept. |
|
318 * - Items that are not on MMC or the MMC is not recently used, are |
304 * - Items that are not on MMC or the MMC is not recently used, are |
319 * removed form the menu. |
305 * removed from the menu. |
320 * @param aItems Missing items. |
306 * @param aItems Missing items. |
321 */ |
307 */ |
322 void HandleMissingItemsL( RPointerArray<CCaInnerEntry>& aCaEnties ); |
308 void HandleMissingItemsL( RPointerArray<CCaInnerEntry>& aCaEnties ); |
323 |
309 |
324 /** |
310 /** |
345 */ |
331 */ |
346 TUint UpdateMmcHistoryL(); |
332 TUint UpdateMmcHistoryL(); |
347 |
333 |
348 /** |
334 /** |
349 * Get current MMC id. 0 if no MMC is inserted, or in case of any errors. |
335 * Get current MMC id. 0 if no MMC is inserted, or in case of any errors. |
350 * @return Current MMC id, or 0. |
336 * @return Current MMC id or 0. |
351 */ |
337 */ |
352 TUint CurrentMmcId() const; |
338 TUint CurrentMmcId() const; |
353 |
339 |
354 /** |
340 /** |
355 * Check if file is on given default drive type. |
341 * Check if file is on a given default drive type. |
356 * @param aFileName File name. |
342 * @param aFileName File name. |
357 * @return ETrue if aFileName is on given default drive type. |
343 * @param aDefaultDrive default drive type |
|
344 * @return ETrue if aFileName is on a given default drive type. |
358 */ |
345 */ |
359 TBool IsFileInDrive( const TDesC& aFileName, |
346 TBool IsFileInDrive( const TDesC& aFileName, |
360 const DriveInfo::TDefaultDrives& aDefaultDrive ) const; |
347 const DriveInfo::TDefaultDrives& aDefaultDrive ) const; |
361 |
348 |
362 /** |
349 /** |
363 * Check if application is installed on given drive type. |
350 * Check if application is installed on a given drive type. |
364 * @param aUid app uid. |
351 * @param aUid app uid. |
365 * @param aDefaultDrive drive type. |
352 * @param aDefaultDrive default drive type. |
366 * @return ETrue if app is installed on given drive type. |
353 * @return ETrue if app is installed on a given drive type. |
367 */ |
354 */ |
368 TBool IsAppInDriveL( const TUid aUid, |
355 TBool IsAppInDriveL( const TUid aUid, |
369 const DriveInfo::TDefaultDrives& aDefaultDrive ) const; |
356 const DriveInfo::TDefaultDrives& aDefaultDrive ) const; |
370 |
357 |
371 /** |
358 /** |
388 * @return ETrue if drive is in use. |
375 * @return ETrue if drive is in use. |
389 */ |
376 */ |
390 TBool IsDriveInUse( const DriveInfo::TDefaultDrives& aDefaultDrive ); |
377 TBool IsDriveInUse( const DriveInfo::TDefaultDrives& aDefaultDrive ); |
391 |
378 |
392 /** |
379 /** |
393 * Add application to storage or update entry if necessary |
380 * Add application to storage or update entry if necessary. |
394 * @param aCaEnties with applications from storage |
381 * @param aCaEnties with applications from storage. |
395 * @param aApaItem application item with uid and hidden flag on or off |
382 * @param aAppUid application uid. |
396 * @param aMmcId unique mmc id |
383 * @param aMmcId unique mmc id. |
397 */ |
384 */ |
398 void UpdateApplicationEntryL( RPointerArray<CCaInnerEntry>& aCaEnties, |
385 void UpdateApplicationEntryL( RPointerArray<CCaInnerEntry>& aCaEnties, |
399 const TCaAppAtributes& aApaItem, TUint aMmcId ); |
386 TUint aAppUid, TUint aMmcId ); |
400 |
387 |
401 /** |
388 /** |
402 * Update entry from storage |
389 * Update entry from storage. |
403 * @param aEntry application entry |
390 * @param aEntry application entry. |
404 * @param aMmcId unique mmc id |
391 * @param aMmcId unique mmc id. |
405 */ |
392 */ |
406 void UpdateAppEntryL( CCaInnerEntry* aEntry, TUint aMmcId ); |
393 void UpdateAppEntryL( CCaInnerEntry* aEntry, TUint aMmcId ); |
407 |
394 |
408 /** |
395 /** |
409 * Get all application from storage and visible from apparc |
396 * Get all applications from storage and visible from apparc |
410 * and update if necessary |
397 * and update if necessary. |
411 */ |
398 */ |
412 void UpdateApplicationEntriesL(); |
399 void UpdateApplicationEntriesL(); |
413 |
400 |
414 /** |
401 /** |
415 * Notifys storage abaut updated apps |
402 * Notifys storage about updated apps. |
416 */ |
403 */ |
417 void InstallationNotifyL(); |
404 void InstallationNotifyL(); |
418 |
405 |
419 /** |
406 /** |
420 * Make not empty collections with not hidden apps visible. |
407 * Make not empty collections with not hidden apps visible. |
421 */ |
408 */ |
422 void MakeNotEmptyCollectionsVisibleL(); |
409 void MakeNotEmptyCollectionsVisibleL(); |
423 |
410 |
424 /** |
411 /** |
425 * Make collection visible if has visible entry. |
412 * Make collection visible if has visible entry. |
426 * @param aEntry application entry |
413 * @param aEntry application entry. |
427 */ |
414 */ |
428 void MakeCollectionVisibleIfHasVisibleEntryL( CCaInnerEntry* aEntry ); |
415 void MakeCollectionVisibleIfHasVisibleEntryL( CCaInnerEntry* aEntry ); |
|
416 |
|
417 /** |
|
418 * Adds or updates component id attribute in entry based on SCR provided data |
|
419 * @param appInfo application data carrying full path name of application file. |
|
420 * @param aEntry entry being updated with component id attribute. |
|
421 * @return ETrue when component id attribute of the entry has been added or changed. |
|
422 */ |
|
423 TBool UpdateComponentIdL( TApaAppInfo& appInfo, |
|
424 CCaInnerEntry& aEntry ) const; |
|
425 |
|
426 /** |
|
427 * Schedule appscanner run. |
|
428 * Self complete active object. |
|
429 */ |
|
430 void ScheduleScan(); |
429 |
431 |
430 private: |
432 private: |
431 // data |
433 // data |
432 |
434 |
433 RApaLsSession iApaLsSession; ///< AppArc session. Own. |
435 RApaLsSession iApaLsSession; ///< AppArc session. Own. |
434 CApaAppListNotifier* iNotifier; ///< Change notifier. Own. |
436 CApaAppListNotifier* iNotifier; ///< Change notifier. Own. |
435 CCaInstallNotifier* iInstallNotifier;///< Install notifier. Own. |
437 CCaInstallNotifier* iInstallNotifier; ///< Install notifier. Own. |
436 CCaSrvMmcHistory* iMmcHistory; ///< MMC history. Own. |
438 CCaSrvMmcHistory* iMmcHistory; ///< MMC history. Own. |
437 RFs iFs; ///< File Server Session. Own. |
439 RFs iFs; ///< File Server Session. Own. |
438 |
440 Usif::RSoftwareComponentRegistry iSoftwareRegistry; |
439 CCaStorageProxy& iCaStorageProxy;///< not own |
441 |
440 CCaSrvEngUtils& iSrvEngUtils;//<not own |
442 CCaStorageProxy& iCaStorageProxy; ///< Not own |
441 RArray<TInt> iInstalledPackages; |
443 CCaSrvEngUtils& iSrvEngUtils; ///< Not own |
|
444 RArray<TInt> iInstalledPackages; ///< Own. |
442 |
445 |
443 TInt iCollectionDownloadId; |
446 TInt iCollectionDownloadId; |
444 TInt iAllCollectionId; |
447 TInt iAllCollectionId; |
445 CA_STORAGE_TEST_FRIEND_CLASS (T_casrvAppScaner) |
448 CA_STORAGE_TEST_FRIEND_CLASS (T_casrvAppScaner) |
446 |
449 |
447 }; |
450 }; |
448 |
451 |
449 /** |
|
450 * Application atributes. |
|
451 * Object contains uid and hidden flag |
|
452 */ |
|
453 class TCaAppAtributes |
|
454 { |
|
455 |
|
456 public: |
|
457 /** |
|
458 * Constructor. |
|
459 * @param aUid uid application. |
|
460 */ |
|
461 TCaAppAtributes( TUint aUid ); |
|
462 |
|
463 /* |
|
464 * Get uid |
|
465 * @return application uid |
|
466 */ |
|
467 TUint GetUid() const; |
|
468 |
|
469 /* |
|
470 * Match application items |
|
471 * @param item1 first item to matching. |
|
472 * @param item2 second item to matching. |
|
473 */ |
|
474 static TBool MatchItems( const TCaAppAtributes& item1, |
|
475 const TCaAppAtributes& item2 ); |
|
476 |
|
477 private: |
|
478 // data |
|
479 |
|
480 TUint iUid;///< uid application |
|
481 |
|
482 }; |
|
483 |
|
484 #endif /* CASRVAPPSCANNER_H_ */ |
452 #endif /* CASRVAPPSCANNER_H_ */ |