phonebookengines/cntmaptileservice/src/cntmaptileservice.cpp
changeset 61 d30183af6ca6
parent 56 d508aa856878
child 66 554fe4dbbb59
--- a/phonebookengines/cntmaptileservice/src/cntmaptileservice.cpp	Wed Aug 11 09:06:35 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,315 +0,0 @@
-/*
-* 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: 
-*     Maptile service implementation
-*
-*/
-
-
-#include <centralrepository.h> 
-#include <locationservicedefines.h>
-#include <qvaluespacepublisher.h>
-#include <qvaluespacesubscriber.h>
-#include <qfile.h>
-#include "cntmaptileservice.h"
-#include "cntmaptiledblookuptable.h"
-
-// CONSTANTS
-// Maptile interface uid
-const TUid KUidMapTileInterface = { 0x2002C3A8 };
-// Central Repository Key IDs
-const TInt KEnableLocationFeature           = 0x1;
-
-const char *CNT_MAPTILE_STATUS_RECEIVER = "/maptilestatuspublisher/name";
-const char *CNT_MAPTILE_STATUS_PUBLISHER = "/cntmaptilepublisher";
-
-const char*  CNT_PORTRAIT_MAPTILE_IMAGE = "_Vertical";
-const char*  CNT_LANDSCAPE_MAPTILE_IMAGE = "_Contact_Horizontal";
-
-// -----------------------------------------------------------------------------
-// CntMapTileService::CntMapTileService()
-// Default constructor
-// -----------------------------------------------------------------------------
-//
-CntMapTileService::CntMapTileService()
-{
-    //publisher
-    mPublisher = NULL;
-    
-    //subscriber
-    mSubscriber = new QValueSpaceSubscriber( CNT_MAPTILE_STATUS_RECEIVER );
-    //Connect for maptile status change key
-    QObject::connect(mSubscriber, SIGNAL(contentsChanged()), this, SLOT(setMaptileStatus()));
-
-}
-
-
-// -----------------------------------------------------------------------------
-// CntMapTileService::~CntMapTileService()
-// Destructor
-// -----------------------------------------------------------------------------
-//
-CntMapTileService::~CntMapTileService()
-{
-    if( mSubscriber )
-    {
-        delete mSubscriber;
-        mSubscriber = NULL;
-    }
-    
-    if( mPublisher )
-    {
-        delete mPublisher;
-        mPublisher = NULL;
-    }
-}
-// -----------------------------------------------------------------------------
-// CntMapTileService::isLocationFeatureEnabled()
-// Checks whether location feature is enabled or disabled
-// -----------------------------------------------------------------------------
-//
-bool CntMapTileService::isLocationFeatureEnabled()
-{ 
-    //Create the centrep with uid 0x2002C3A8
-    bool enableLocationFeature = false;
-    
-    CRepository* centralRepository = NULL;  
-
-    TRAPD( err, centralRepository = CRepository::NewL( KUidMapTileInterface ) );
-
-    if ( KErrNone == err )
-    {
-        TInt repValue;
-      
-        //Get the Location feature flag 
-        TInt ret = centralRepository->Get( KEnableLocationFeature , repValue );
-      
-        if ( ret == KErrNone && repValue == 1 )
-        {
-            enableLocationFeature  = true;
-        }
-           
-         delete centralRepository;
-    }
-           
-    return   enableLocationFeature;
-    
-}
-
-
-// -----------------------------------------------------------------------------
-// CntMapTileService::getMapTileImage()
-// Gets the maptile image path associated with a contact.
-// -----------------------------------------------------------------------------
-//
-int CntMapTileService::getMapTileImage( 
-                                 int contactId , 
-                                 ContactAddressType sourceType, 
-                                 QString& imagePath,
-                                 Qt::Orientations orientation )    
-{
-    
-    TLookupItem lookupItem;
-    
-    int addressCount = 0;
-    int maptileStatus = MapTileFetchingUnknownError;
-    
-    //Read the entry from maptile database
-    int error = readEntryFromMaptileDataBase( contactId, sourceType, lookupItem, addressCount );
-    
-    //if entry available returns the file path otherwise NULL. 
-    if ( KErrNone == error  )
-    {
-        maptileStatus = lookupItem.iFetchingStatus;
-        
-        if( maptileStatus == MapTileFetchingCompleted )
-        {
-            //Get the image path
-            QString imageFile((QChar*)lookupItem.iFilePath.Ptr(),
-                    lookupItem.iFilePath.Length());
-            if( orientation == Qt::Vertical )
-            {
-                imageFile.append( CNT_PORTRAIT_MAPTILE_IMAGE );
-            }
-            else
-            { 
-                imageFile.append( CNT_LANDSCAPE_MAPTILE_IMAGE );
-            }
-            imagePath = imageFile;
-            
-            //Check if File exists
-            if ( !QFile::exists( imagePath ) )
-            {
-                imagePath.clear();
-                maptileStatus = MapTileFetchingUnknownError;
-            }
-        }
-        else if( maptileStatus == MapTileFetchingNetworkError ||
-                    maptileStatus == MapTileFetchingInProgress )
-        {
-            //Publish the contact id for maptile processing
-           	publishValue( contactId, sourceType, addressCount );
-        }
-
-    }
-    else if ( KErrNotFound == error )
-    {
-        //If entry is not found , it will be a newly added entry.
-        publishValue( contactId, sourceType, addressCount );
-        maptileStatus = MapTileFetchingInProgress;
-    }
-   
-    //Return the maptile status
-    return maptileStatus;
-}
-
-
-// -----------------------------------------------------------------------------
-// CntMapTileService::setMaptileStatus()
-// Emits the maptile status changed event to contact application
-// -----------------------------------------------------------------------------
-//
-void CntMapTileService::setMaptileStatus()
-{
-    QString imagePath;
-    ContactAddressType addressType = AddressPreference;
-    
-    QStringList subPath = mSubscriber->subPaths();
-    QVariant value = mSubscriber->value(subPath.at(0));
-    
-    //Subscriber Protocol : [contactid-addresstype-maptilestatus]
-    QStringList text = value.toString().split("-");
-    int id = text.at(0).toInt();
-    int status = text.at(2).toInt();
-    
-    switch( text.at(1).toInt() )
-    {
-        case ESourceContactsPref:
-            addressType = AddressPreference;
-            break;
-        case ESourceContactsWork:
-            addressType = AddressWork;
-            break;        
-        case ESourceContactsHome:
-            addressType = AddressHome;
-            break;
-        default:
-            break;
-    }
-  
-    //Emit the maptile status signal 
-    int type = addressType;
-    if( mLastViewedContactId == id )
-    {
-        emit maptileFetchingStatusUpdate( mLastViewedContactId, type , status );
-    }
-}
-
-
-// -----------------------------------------------------------------------------
-// CntMapTileService::publishValue()
-// Publish the the contact id and address for which maptile to be processed.
-// -----------------------------------------------------------------------------
-//
-void CntMapTileService::publishValue( int id, ContactAddressType sourceType, int addressCount )
-{
-    
-    mLastViewedContactId = id;
-    int addressType = ESourceInvalid;
-    
-    switch( sourceType )
-    {
-        case AddressPreference:
-            addressType = ESourceContactsPref;
-            break;
-        case AddressWork:
-            addressType = ESourceContactsWork;
-            break;
-        case AddressHome:
-            addressType = ESourceContactsHome;
-            break;
-    }
-    
-    if ( !mPublisher )
-    {
-        /* Constructs a QValueSpacePublisher that publishes values under path /mypublisher*/
-        mPublisher = new QValueSpacePublisher( CNT_MAPTILE_STATUS_PUBLISHER, this);
-    }
-       
-    /* Publisher protocol [appid-addresstype-count] */
-    mContactEntryInfo.clear();
-    mContactEntryInfo.append( QVariant(id).toString());
-    mContactEntryInfo.append( QChar('-') );
-    mContactEntryInfo.append( QVariant(addressType).toString());
-    mContactEntryInfo.append( QChar('-') );
-    mContactEntryInfo.append( QVariant(addressCount).toString() );
-    
-    mPublisher->setValue("name", mContactEntryInfo.toAscii() );
-    mPublisher->sync();
-    
-}
-
-// -----------------------------------------------------------------------------
-// CntMapTileService::readEntryFromMaptileDataBase()
-// Read the entry from maptile database
-// -----------------------------------------------------------------------------
-//
-int CntMapTileService::readEntryFromMaptileDataBase( 
-            int id, ContactAddressType sourceType, TLookupItem& aLookupItem, int& aNoOfAddress )
-{
-    
-    //Maptile database  instance
-    CLookupMapTileDatabase* mapTileDatabase = NULL;
-
-    TRAPD( err, mapTileDatabase = CLookupMapTileDatabase::NewL(
-            KMapTileLookupDatabaseName ) );
-
-    if ( KErrNone == err )
-    {
-        int appId = id;
-        TRAP( err, aNoOfAddress = mapTileDatabase->FindNumberOfAddressL(appId) );
-       
-        if( err != KErrNone )
-        {
-            aNoOfAddress = 0;
-        }
-            
-        aLookupItem.iUid = id;
-        switch( sourceType )
-        {
-           case AddressPreference:
-               aLookupItem.iSource = ESourceContactsPref;
-               break;
-           case AddressWork:
-               aLookupItem.iSource = ESourceContactsWork;
-               break;
-           case AddressHome:
-               aLookupItem.iSource = ESourceContactsHome;
-               break;
-           default: 
-               break;
-        }
-   
-        TRAP( err , mapTileDatabase->FindEntryL( aLookupItem ) );
-        
-        //delet the database instance
-        delete mapTileDatabase;
-           
-    }
-    
-    return err;
-}
-
-// End of file
-