phoneuis/easydialing/tsrc/edta/src/edta_createtestcontactbase.cpp
branchRCL_3
changeset 3 8871b09be73b
--- /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;
+    }
+
+
+
+
+
+
+
+
+
+
+
+