--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/phonebookui/Phonebook2/NamesListExtension/inc/cpbk2mycard.h Tue Feb 02 10:12:17 2010 +0200
@@ -0,0 +1,164 @@
+/*
+* Copyright (c) 2005-2007 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: MyCard class observes the state of MyCard, whether its created
+* or not. Also responsible for linking the data to MyCard.
+*
+*/
+
+
+#ifndef CPBK2MYCARD_H_
+#define CPBK2MYCARD_H_
+
+// INCLUDES
+#include <e32base.h>
+#include <MVPbkSingleContactLinkOperationObserver.h>
+#include <MVPbkContactStoreObserver.h>
+#include <MPbk2ImageOperationObservers.h>
+#include <MVPbkSingleContactOperationObserver.h>
+#include "mpbk2mycardobserver.h"
+#include <TPbk2IconId.h>
+
+class MPbk2CmdItemVisibilityObserver;
+class MVPbkContactOperationBase;
+class MVPbkContactStore;
+class MPbk2MyCardObserver;
+class CPbk2ImageManager;
+class MPbk2ImageOperation;
+class CVPbkContactManager;
+class CPbk2ApplicationServices;
+class MVPbkBaseContact;
+class CFbsBitmap;
+
+/**
+ *
+ */
+NONSHARABLE_CLASS( CPbk2MyCard ) : public CBase,
+ public MVPbkSingleContactLinkOperationObserver,
+ public MVPbkContactStoreObserver,
+ public MVPbkSingleContactOperationObserver,
+ public MPbk2ImageGetObserver
+ {
+ public: // Construction & destruction
+
+ static CPbk2MyCard* NewL( MVPbkContactStore& aPhoneStore );
+ ~CPbk2MyCard();
+
+ void SetObserverL(MPbk2MyCardObserver& aObserver);
+ void RemoveObserver(MPbk2MyCardObserver& aObserver);
+
+ enum{ EUnkown = 0x0,
+ EExisting,
+ ENonExisting };
+ inline TInt MyCardState() {return iMyCardState;}
+
+ public:
+ /*
+ * Returns my card link, NULL if it doesn't exist
+ */
+ MVPbkContactLink* MyCardLink() const;
+
+ /*
+ * Returns my card thumbnail bitmap, NULL if it doesn't exist.
+ *
+ */
+ CFbsBitmap* MyCardBitmap() const;
+
+ /*
+ * Returns MyCard icon id if created, otherwise empty TPbk2IconId
+ */
+ const TPbk2IconId& MyCardIconId() const;
+
+ /*
+ * Returns MVPbkStoreContact if available, NULL otherwise
+ */
+ MVPbkStoreContact* MyCardStoreContact() const;
+
+
+ private: // From MVPbkSingleContactLinkOperationObserver
+ void VPbkSingleContactLinkOperationComplete(
+ MVPbkContactOperationBase& aOperation,
+ MVPbkContactLink* aLink );
+
+ void VPbkSingleContactLinkOperationFailed(
+ MVPbkContactOperationBase& aOperation,
+ TInt aError );
+
+ private: // From MVPbkContactStoreObserver
+ void StoreReady( MVPbkContactStore& aContactStore );
+ void StoreUnavailable(
+ MVPbkContactStore& aContactStore,
+ TInt aReason );
+ void HandleStoreEventL(
+ MVPbkContactStore& aContactStore,
+ TVPbkContactStoreEvent aStoreEvent );
+
+ private: // From MVPbkSingleContactOperationObserver
+ void VPbkSingleContactOperationComplete(
+ MVPbkContactOperationBase& aOperation,
+ MVPbkStoreContact* aContact );
+
+ void VPbkSingleContactOperationFailed(
+ MVPbkContactOperationBase& aOperation,
+ TInt aError );
+
+ private: // From MPbk2ImageGetObserver
+ virtual void Pbk2ImageGetComplete(
+ MPbk2ImageOperation& aOperation,
+ CFbsBitmap* aBitmap );
+ virtual void Pbk2ImageGetFailed(
+ MPbk2ImageOperation& aOperation,
+ TInt aError );
+
+ private:
+ CPbk2MyCard( MVPbkContactStore& aPhoneStore );
+ void ConstructL();
+
+ void NotifyObservers( MPbk2MyCardObserver::TMyCardStatusEvent aEvent );
+
+ /*
+ * Starts loading thumbnail for the mycard contact if there is one
+ */
+ void LoadThumbnailL( MVPbkBaseContact& aContact );
+
+ private: // data
+ TInt iMyCardState;
+ /// Own
+ MVPbkContactOperationBase* iOperation;
+ /// Ref
+ MVPbkContactStore* iPhoneStore;
+ /// Own
+ MVPbkContactLink* iMyCardLink;
+ ///
+ RPointerArray<MPbk2MyCardObserver> iObserverArray;
+ /// Own. Phonebook image manager
+ CPbk2ImageManager* iImageManager;
+ /// Own. Image operation
+ MPbk2ImageOperation* iImageOperation;
+ /// Own. for the store contact fetching
+ MVPbkContactOperationBase* iRetrieveOperation;
+ // Ref. contact manager
+ CVPbkContactManager* iContactManager;
+ // Own. instance
+ CPbk2ApplicationServices* iAppServices;
+ // Own. MycardStoreContact
+ MVPbkStoreContact* iMyCardStoreContact;
+ /// Ref. Thumbnail bitmap
+ CFbsBitmap* iThumbBitmap;
+ /// default ID for the mycard icon
+ TPbk2IconId iIconId;
+ /// Empty id
+ TPbk2IconId iEmptyId;
+ };
+
+#endif /*CPBK2MYCARD_H_*/