emailuis/emailui/inc/FreestyleEmailUiMailListVisualiser.h
branchRCL_3
changeset 20 efd4f1afd43e
parent 17 67369d1b217f
child 23 dcf0eedfc1a3
--- a/emailuis/emailui/inc/FreestyleEmailUiMailListVisualiser.h	Wed Jun 09 09:22:57 2010 +0300
+++ b/emailuis/emailui/inc/FreestyleEmailUiMailListVisualiser.h	Mon Jun 21 15:20:54 2010 +0300
@@ -82,6 +82,7 @@
 class CEUiEmailListTouchManager;
 class MFSMailIterator;
 class CAknStylusPopUpMenu;
+class CFSEmailUiGenericTimer;
 template <class T> struct TDeleteTask;
 
 /**
@@ -141,6 +142,10 @@
         };
 
 public:
+    /**
+     * 
+     */
+    static CMailListModelUpdater* NewL();
 
     /**
      * Constructor
@@ -162,7 +167,7 @@
     /**
      * Update model.
      */
-    void UpdateModelL(MObserver& aObserver, MFSMailIterator* aIterator);
+    void UpdateModelL(MObserver& aObserver, MFSMailIterator* aIterator, TInt aBlockSize);
 
     /**
      * Returns ETrue if updating.
@@ -180,6 +185,10 @@
      * @see CActive::DoCancel
      */
     void DoCancel();
+    /**
+     * @see CActive::RunError
+     */
+    TInt RunError(TInt aError);
 
 private:
 
@@ -207,6 +216,8 @@
      * Reset to uninitialized state.
      */
     void Reset();
+private:
+    void ConstructL();
 
 private:
 
@@ -218,6 +229,7 @@
     MFSMailIterator* iIterator;
     TFsTreeItemId iParentId;
     TInt iBlockSize;
+    RTimer iTimer;
     };
 
 struct SMailListItem
@@ -264,7 +276,8 @@
 									 public MFsTreeListObserver,
 									 public MFSEmailUiContactHandlerObserver,
 									 public CMailListModelUpdater::MObserver,
-									 public MEmailMailboxState
+                                     public MEmailMailboxState,
+                                     public MFSEmailUiGenericTimerCallback
 // </cmail>
 	{
 friend class CMailListUpdater;
@@ -449,6 +462,15 @@
     // check from settings if manual or auto sync
     TBool CheckAutoSyncSettingL();
     
+public: // from MFSEmailUiGenericTimerCallback
+
+    /**
+     * From MFSEmailUiGenericTimerCallback.
+     * Generic timer event callback.
+     * Handles insertion of new mails into mail list.
+     */
+    void TimerEventL( CFSEmailUiGenericTimer* aTriggeredTimer );
+
 private: // from
 
     /**
@@ -522,9 +544,11 @@
     void UpdateCancelled(const TBool aForceRefresh);
 
 	// Mail model update
-    void UpdateMailListModelAsyncL();
+    void SortMailListModelAsyncL();
+    TBool UpdateMailListModelAsyncL(TInt aBlockSize);
 	void UpdateMailListModelL();
 	void CreateModelItemsL( RPointerArray<CFSMailMessage>& aMessages );
+	void DeleteSortWaitNote();
 
 	// Create title divider model item for the given message. Separator text depends on active sorting mode.
 	CFSEmailUiMailListModelItem* CreateSeparatorModelItemLC( CFSMailMessage& aMessage ) const;
@@ -912,7 +936,17 @@
 	TPoint iMarkingModeTextPos;
 	TSize iMarkingModeTextSize;
 	TRect iMarkingModeTextRect;
-  	};
+    CAknWaitDialog* iSortWaitNote;
+    // timer generates events for inserting new mails into mail list
+    CFSEmailUiGenericTimer* iNewMailTimer;
+    // array keeps IDs of new mails which should be added into mail list 
+    RArray<TFSMailMsgId> iNewMailIds;
+
+    // skin text colors for the list items
+    TRgb iFocusedTextColor;
+    TRgb iNormalTextColor;
+    TRgb iNodeTextColor;
+    };
 
 
 // Definition of the mail updater timer. This timer is used for