logsui/logsengine/src/logsmessage.cpp
changeset 0 4a5361db8937
child 8 6c9acdc6adc0
equal deleted inserted replaced
-1:000000000000 0:4a5361db8937
       
     1 /*
       
     2 * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
       
     3 * All rights reserved.
       
     4 * This component and the accompanying materials are made available
       
     5 * under the terms of "Eclipse Public License v1.0"
       
     6 * which accompanies this distribution, and is available
       
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     8 *
       
     9 * Initial Contributors:
       
    10 * Nokia Corporation - initial contribution.
       
    11 *
       
    12 * Contributors:
       
    13 *
       
    14 * Description:
       
    15 *
       
    16 */
       
    17 
       
    18 //USER
       
    19 #include "logsmessage.h"
       
    20 #include "logslogger.h"
       
    21 #include "logseventdata.h"
       
    22 #include <xqservicerequest.h>
       
    23 
       
    24 //SYSTEM
       
    25 
       
    26 // -----------------------------------------------------------------------------
       
    27 //
       
    28 // -----------------------------------------------------------------------------
       
    29 //
       
    30 LogsMessage::LogsMessage(LogsEvent& event)
       
    31     :QObject(), mIsAllowed( false ), mContactId( 0 ), mService( 0 )
       
    32 {
       
    33     if ( event.logsEventData() && !event.logsEventData()->isCsCompatible() ){
       
    34         LOGS_QDEBUG( "logs [ENG]    LogsMessage::LogsMessage, not CS compatible" )
       
    35         mIsAllowed = false;
       
    36     } else {
       
    37         mIsAllowed = true;
       
    38         mNumber = event.getNumberForCalling();
       
    39         mContactId = event.contactLocalId();
       
    40         mDisplayName = event.remoteParty();
       
    41     }
       
    42     
       
    43 }
       
    44 
       
    45 // -----------------------------------------------------------------------------
       
    46 //
       
    47 // -----------------------------------------------------------------------------
       
    48 //
       
    49 LogsMessage::LogsMessage(unsigned int contactId, const QString& number,
       
    50 	 const QString& displayName)
       
    51     :QObject(), mIsAllowed( false ), mContactId( 0 ), mService( 0 )
       
    52 {
       
    53     if ( number.length() == 0 ){
       
    54         LOGS_QDEBUG( "logs [ENG]    LogsMessage::LogsMessage, not CS compatible" )
       
    55         mIsAllowed = false;
       
    56     } else {
       
    57         mIsAllowed = true;
       
    58         mNumber = number;
       
    59         mContactId = contactId;
       
    60         mDisplayName = displayName;
       
    61     }
       
    62 }
       
    63 
       
    64 // -----------------------------------------------------------------------------
       
    65 // 
       
    66 // -----------------------------------------------------------------------------
       
    67 //
       
    68 LogsMessage::~LogsMessage()
       
    69 {
       
    70     LOGS_QDEBUG( "logs [ENG] <-> LogsMessage::~LogsMessage()" )
       
    71     delete mService;
       
    72 }
       
    73     
       
    74 // ----------------------------------------------------------------------------
       
    75 // 
       
    76 // ----------------------------------------------------------------------------
       
    77 //
       
    78 bool LogsMessage::isMessagingAllowed()
       
    79 {
       
    80     return mIsAllowed;
       
    81 }    
       
    82 
       
    83 // ----------------------------------------------------------------------------
       
    84 //
       
    85 // ----------------------------------------------------------------------------
       
    86 //
       
    87 bool LogsMessage::sendMessage()
       
    88 {
       
    89     LOGS_QDEBUG( "logs [ENG] -> LogsMessage::sendMessage()" )
       
    90     
       
    91     delete mService;
       
    92     mService = 0;
       
    93     mService = new XQServiceRequest("com.nokia.services.hbserviceprovider.conversationview", 
       
    94                                     "send(QString,qint32,QString)", false);
       
    95     bool sending = doSendMessageToNumber(*mService, mNumber, mDisplayName, mContactId);
       
    96     connect(mService, SIGNAL(requestCompleted(QVariant)), this, SLOT(requestCompleted(QVariant)));
       
    97     connect(mService, SIGNAL(requestError(int)), this, SLOT(requestError(int)));
       
    98     return sending;
       
    99 }
       
   100 
       
   101 // ----------------------------------------------------------------------------
       
   102 //
       
   103 // ----------------------------------------------------------------------------
       
   104 //
       
   105 bool LogsMessage::sendMessageToNumber(
       
   106         const QString& number, const QString& displayName, unsigned int contactId)
       
   107 {
       
   108     LOGS_QDEBUG( "logs [ENG] -> LogsMessage::sendMessageToNumber()" )
       
   109     
       
   110     XQServiceRequest req("com.nokia.services.hbserviceprovider.conversationview", 
       
   111                          "send(QString,qint32,QString)", false);
       
   112     return doSendMessageToNumber(req, number, displayName, contactId);
       
   113 }
       
   114 
       
   115 // ----------------------------------------------------------------------------
       
   116 //
       
   117 // ----------------------------------------------------------------------------
       
   118 //
       
   119 void LogsMessage::requestCompleted(const QVariant& /*value*/)
       
   120 {
       
   121     LOGS_QDEBUG( "logs [ENG] -> LogsMessage::requestCompleted()" )
       
   122 }
       
   123 
       
   124 // ----------------------------------------------------------------------------
       
   125 //
       
   126 // ----------------------------------------------------------------------------
       
   127 //
       
   128 void LogsMessage::requestError(int /*err*/)
       
   129 {
       
   130     LOGS_QDEBUG( "logs [ENG] -> LogsMessage::requestError()" )
       
   131 }
       
   132 
       
   133 // ----------------------------------------------------------------------------
       
   134 //
       
   135 // ----------------------------------------------------------------------------
       
   136 //
       
   137 bool LogsMessage::doSendMessageToNumber(
       
   138         XQServiceRequest& request, const QString& number, 
       
   139         const QString& displayName, unsigned int contactId)
       
   140 {
       
   141     LOGS_QDEBUG_4( "logs [ENG] -> LogsMessage::doSendMessageToNumber(), (num, name, id)", 
       
   142             number, displayName, contactId )
       
   143 
       
   144     QList<QVariant> arguments;
       
   145     arguments.append(QVariant(number));
       
   146     arguments.append(QVariant(contactId));
       
   147     arguments.append(QVariant(displayName));
       
   148     request.setArguments(arguments);
       
   149     QVariant retValue;
       
   150     bool ret = request.send(retValue);
       
   151     LOGS_QDEBUG_2( "logs [ENG] <- LogsMessage::doSendMessageToNumber()", ret )
       
   152     
       
   153     return ret;
       
   154 }
       
   155 
       
   156 // End of file
       
   157