--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/phonebookui/Phonebook2/USIMExtension/inc/CPsu2ContactCopyPolicy.h Tue Feb 02 10:12:17 2010 +0200
@@ -0,0 +1,188 @@
+/*
+* Copyright (c) 2002-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: A copy policy for copying to sim store
+*
+*/
+
+
+#ifndef CPSU2CONTACTCOPYPOLICY_H
+#define CPSU2CONTACTCOPYPOLICY_H
+
+// INCLUDES
+#include <CVPbkContactCopyPolicy.h>
+
+// FORWARD DECLARATIONS
+class CPbk2FieldPropertyArray;
+class CPsu2CopyToSimFieldInfoArray;
+class CPsu2SimContactProcessor;
+class CPbk2SortOrderManager;
+class MPbk2ContactNameFormatter;
+
+// CLASS DECLARATION
+
+/**
+* A copy policy for copying to sim store
+*
+*/
+class CPsu2ContactCopyPolicy : public CVPbkContactCopyPolicy
+ {
+ public: // Constructors and destructor
+ /**
+ * Two-phased constructor.
+ * @param aParam parameters defined in virtual phonebook
+ * @return a new instance of this class
+ */
+ static CPsu2ContactCopyPolicy* NewL(TParam* aParam);
+
+ /**
+ * Destructor.
+ */
+ ~CPsu2ContactCopyPolicy();
+
+ public: // New functions
+
+ /**
+ * Returns the phonebook2 field properties
+ * @return the phonebook2 field properties
+ */
+ inline CPbk2FieldPropertyArray& FieldProperties() const;
+
+ /**
+ * Returns the copy to sim field information
+ * @return the copy to sim field information
+ */
+ inline CPsu2CopyToSimFieldInfoArray& SimFieldInfos() const;
+
+ /**
+ * Returns the sim contact processor
+ * @return the sim contact processor
+ */
+ inline CPsu2SimContactProcessor& SimContactProcessor() const;
+
+ public: // Functions from base classes
+
+ /**
+ * From MVPbkContactCopyPolicy
+ */
+ MVPbkContactOperationBase* AddFieldToContactL(
+ MVPbkStoreContact& aContact,
+ const MVPbkFieldType& aFieldType,
+ const TDateTime& aFieldData,
+ const TDesC* aFieldLabel,
+ const MVPbkContactAttribute* aContactAttribute,
+ MVPbkContactFieldCopyObserver& aCopyObserver);
+
+ /**
+ * From MVPbkContactCopyPolicy
+ */
+ MVPbkContactOperationBase* AddFieldToContactL(
+ MVPbkStoreContact& aContact,
+ const MVPbkFieldType& aFieldType,
+ const TDesC& aFieldData,
+ const TDesC* aFieldLabel,
+ const MVPbkContactAttribute* aContactAttribute,
+ MVPbkContactFieldCopyObserver& aCopyObserver);
+
+ /**
+ * From MVPbkContactCopyPolicy
+ */
+ MVPbkContactOperationBase* AddFieldToContactL(
+ MVPbkStoreContact& aContact,
+ const MVPbkFieldType& aFieldType,
+ const TDesC8& aFieldData,
+ const TDesC* aFieldLabel,
+ const MVPbkContactAttribute* aContactAttribute,
+ MVPbkContactFieldCopyObserver& aCopyObserver);
+
+ /**
+ * From MVPbkContactCopyPolicy
+ */
+ MVPbkContactOperationBase* CopyTitleFieldsL(
+ const MVPbkStoreContact& aSourceContact,
+ MVPbkStoreContact& aTargetContact,
+ MVPbkContactFieldsCopyObserver& aCopyObserver);
+
+ /**
+ * From MVPbkContactCopyPolicy
+ */
+ MVPbkContactOperationBase* CommitContactL(
+ MVPbkStoreContact* aContact,
+ MVPbkContactCopyObserver& aCopyObserver);
+
+ /**
+ * From MVPbkContactCopyPolicy
+ */
+ MVPbkContactOperationBase* CopyContactL(
+ MVPbkStoreContact& aContact,
+ MVPbkContactStore& aTargetStore,
+ MVPbkContactCopyObserver& aCopyObserver);
+
+ /**
+ * From MVPbkContactCopyPolicy
+ */
+ TBool SupportsContactMerge() const;
+
+ /**
+ * From MVPbkContactCopyPolicy
+ */
+ MVPbkContactOperationBase* MergeAndSaveContactsL(
+ RPointerArray<MVPbkStoreContact>& aSourceContacts,
+ MVPbkStoreContact& aTarget,
+ MVPbkContactCopyObserver& aCopyObserver );
+
+ private: // Construction
+
+ /**
+ * C++ constructor.
+ */
+ CPsu2ContactCopyPolicy(CVPbkContactManager& aContactManager);
+
+ /**
+ * By default Symbian 2nd phase constructor is private.
+ */
+ void ConstructL();
+
+ private: // New functions
+ void ReplaceSimContactProcessorL(MVPbkContactStore& aTargetStore);
+
+ private: // Data
+ /// Ref: Contact manager
+ CVPbkContactManager& iContactManager;
+ /// Own: UI field properties
+ CPbk2FieldPropertyArray* iPropertyArray;
+ /// Own: an array of field information about copying rules
+ CPsu2CopyToSimFieldInfoArray* iSimFieldInfos;
+ /// Own: a class that handles sim contact splitting
+ CPsu2SimContactProcessor* iSimContactProcessor;
+ /// Own: sort order manager for createing name formatter
+ CPbk2SortOrderManager* iSortOrderManager;
+ /// Own: the name formatter for setting name field for sim contact
+ MPbk2ContactNameFormatter* iNameFormatter;
+ };
+
+// INLINE FUNCTIONS
+inline CPbk2FieldPropertyArray& CPsu2ContactCopyPolicy::FieldProperties() const
+ {
+ return *iPropertyArray;
+ }
+
+inline CPsu2CopyToSimFieldInfoArray&
+ CPsu2ContactCopyPolicy::SimFieldInfos() const
+ {
+ return *iSimFieldInfos;
+ }
+
+#endif // CPSU2CONTACTCOPYPOLICY_H
+
+// End of File