--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/phoneuis/easydialing/tsrc/edta/src/edta_createtestcontactbase.cpp Fri Feb 19 22:50:26 2010 +0200
@@ -0,0 +1,266 @@
+/*
+* Copyright (c) 2010 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: Easy dialing test application.
+*
+*/
+
+
+
+#include <cntdb.h>
+#include <cntitem.h>
+#include <cntfldst.h>
+#include <cpbkcontactitem.h>
+#include <cpbkcontactengine.h>
+#include "edta_debugprint.h"
+
+
+/*
+ * Number of contacts in contactdata array.
+ */
+const TInt nbr_of_contacts = 15;
+
+/*
+ * Contact data contains contact data as text strings.
+ * Each contact takes six line:
+ * - first name
+ * - last name
+ * - cell number
+ * - home number
+ * - company name
+ * - e-mail address
+ */
+const char* contactdata[] =
+{
+ "Dummy",
+ "Contact",
+ "+1056439939",
+ "035558756",
+ "Ericsson",
+ "dummy.contact@ericsson.sw",
+
+ "Jaakko",
+ "Helanti",
+ "+358405287761",
+ "034447611",
+ "Nokia",
+ "jaakko.helanti@nokia.com",
+
+ "Stan",
+ "Laurel",
+ "+0104438839992",
+ "+0104438839000",
+ "MGM",
+ "stan.laurel@heaven.com",
+
+ "Oliver",
+ "Hardy",
+ "+01078398927",
+ "+10364537882",
+ "MGM",
+ "oliver.hardy@heaven.com",
+
+ "Harold",
+ "Lloyd",
+ "+102843947",
+ "+10290503958",
+ "Universal",
+ "harold.lloyd@universal.com",
+
+ "Tauno",
+ "Palo",
+ "+358405557631",
+ "014445466",
+ "Suomi Filmi",
+ "tauno.palo@gmail.com",
+
+ "Tea",
+ "Ista",
+ "+358475554590",
+ "018723195",
+ "Helsingin Kaupungin Teatteri",
+ "tea.ista@cultureclub.com",
+
+ "Ansa",
+ "Ikonen",
+ "+358471134099",
+ "012388192",
+ "Suomi Filmi",
+ "ansa.ikonen@gmail.com",
+
+ "Bertil",
+ "Nystrom",
+ "+35866377334",
+ "074500998",
+ "Rovaniemen Viuluveistämö",
+ "bertil.nystrom@rvv.com",
+
+ "",
+ "Onlylastname",
+ "+3585556743",
+ "+35835552727",
+ "",
+ "",
+
+ "Onlyfirstname",
+ "",
+ "+358405559874",
+ "035553747",
+ "",
+ "",
+
+ "",
+ "Two-Part Lastname",
+ "+358405557432",
+ "",
+ "",
+ "",
+
+ "",
+ "",
+ "+35866377334",
+ "074500998",
+ "Just Companyname",
+ "john.doe@justcompanyname.com",
+
+ "One",
+ "Number",
+ "",
+ "075553266",
+ "Idaho",
+ "",
+
+ "No",
+ "Number",
+ "",
+ "",
+ "Ericsson",
+ "no.number@ericsson.com",
+};
+
+
+HBufC* CreateFieldStringL(TInt aIx)
+ {
+ const char* str = contactdata[aIx];
+ TInt len = 0;
+
+ while (str[len] != '\0')
+ {
+ len++;
+ }
+
+ if ( len == 0 )
+ {
+ return NULL;
+ }
+
+ HBufC *field = HBufC::NewL( len );
+ TPtr des = field->Des();
+ des.SetLength( len );
+
+ for (TInt i = 0; i < len; i++)
+ {
+ des[i] = (TChar) str[i];
+ }
+
+ return field;
+ }
+
+
+void AddFieldStringL( CPbkContactItem* aContact, TInt aIx, TInt aFieldId )
+ {
+ HBufC* fieldName = CreateFieldStringL( aIx );
+
+ if ( fieldName )
+ {
+ CleanupStack::PushL( fieldName );
+ aContact->FindField( aFieldId )->TextStorage()->SetTextL( *fieldName );
+ CleanupStack::PopAndDestroy(fieldName);
+ }
+ }
+
+
+void AddContactL(CPbkContactEngine* engine, TInt aIx)
+ {
+ CPbkContactItem* contact = engine->CreateEmptyContactL();
+ CleanupStack::PushL( contact );
+
+ AddFieldStringL( contact, aIx * 6 + 0, EPbkFieldIdFirstName );
+ AddFieldStringL( contact, aIx * 6 + 1, EPbkFieldIdLastName );
+ AddFieldStringL( contact, aIx * 6 + 2, EPbkFieldIdPhoneNumberMobile );
+ AddFieldStringL( contact, aIx * 6 + 3, EPbkFieldIdPhoneNumberGeneral );
+ AddFieldStringL( contact, aIx * 6 + 4, EPbkFieldIdCompanyName );
+ AddFieldStringL( contact, aIx * 6 + 5, EPbkFieldIdEmailAddress );
+
+ engine->AddNewContactL( *contact );
+
+ CleanupStack::PopAndDestroy( contact );
+ }
+
+
+
+// ---------------------------------------------------------
+// CreateTestContactDatabaseL
+//
+// Creates a test contact database if it hasn't been created yet.
+// The existence of test base is done through testing if there
+// is a contact matching with word "Dummy". Test data base has
+// a contact for Mr Dummy Contact.
+// This is the primary function of this file.
+// ---------------------------------------------------------
+//
+TInt CreateTestContactDatabaseL()
+ {
+ DebugPrintF(_L("CreateTestContactDatabaseL: Contacts creation started.."));
+
+ CPbkContactEngine* engine = CPbkContactEngine::NewL();
+ CleanupStack::PushL( engine );
+
+ _LIT(KDummyContact, "Dummy");
+
+ CContactIdArray* findings = engine->FindLC( KDummyContact );
+
+ // If dummy contact is found, the test database has already been created.
+ if (findings->Count() > 0)
+ {
+ CleanupStack::PopAndDestroy( findings );
+ CleanupStack::PopAndDestroy( engine );
+ DebugPrintF(_L("CreateTestContactDatabaseL: Database already set up"));
+ return 0;
+ }
+
+ CleanupStack::PopAndDestroy( findings );
+
+ for (TInt i = 0; i < nbr_of_contacts; i++ )
+ {
+ AddContactL( engine, i );
+ }
+
+ CleanupStack::PopAndDestroy(engine);
+
+ DebugPrintF(_L("CreateTestContactDatabaseL: Contacts creation completed, number of contacts: %d"), nbr_of_contacts );
+
+ return nbr_of_contacts;
+ }
+
+
+
+
+
+
+
+
+
+
+
+