--- a/cbs/cbsui/UiInc/CCbsUiAddFromIndexDialog.h Thu Jul 15 19:16:18 2010 +0300
+++ b/cbs/cbsui/UiInc/CCbsUiAddFromIndexDialog.h Thu Aug 19 10:28:14 2010 +0300
@@ -23,7 +23,7 @@
#define __CCBSADDFROMINDEXDIALOG_H
// INCLUDES
-#include <akndialog.h>
+#include <AknDialog.h>
#include <CbsCommon.h>
#include "CbsUiConstants.h"
--- a/cellular/PsetNotesUi/Src/PsuiQueryDialog.cpp Thu Jul 15 19:16:18 2010 +0300
+++ b/cellular/PsetNotesUi/Src/PsuiQueryDialog.cpp Thu Aug 19 10:28:14 2010 +0300
@@ -53,11 +53,18 @@
TKeyResponse CPsuiQueryDialog::OfferKeyEventL( const TKeyEvent& aKeyEvent,
TEventCode aType )
{
- if ( ( aKeyEvent.iScanCode == EStdKeyNo || aKeyEvent.iCode == EKeyNo ) &&
- aType == EEventKeyUp )
+ const TBool noKeyReleased =
+ ( aKeyEvent.iScanCode == EStdKeyNo || aKeyEvent.iCode == EKeyNo ) &&
+ aType == EEventKeyUp;
+ const TBool escPressed = aKeyEvent.iCode == EKeyEscape;
+
+ // AknDialogShutter sends esc keys so dismiss dialog
+ if ( noKeyReleased || escPressed )
{
// End -key was pressed, so exit this query dialog
- TryExitL( EKeyNo );
+ TryExitL( EKeyNo );
+ RDebug::Printf("PSETNOTESUI: exiting dialog");
+ return EKeyWasConsumed;
}
return EKeyWasNotConsumed;
--- a/cellular/SSSettings/inc/CSSSettingsRefreshHandler.h Thu Jul 15 19:16:18 2010 +0300
+++ b/cellular/SSSettings/inc/CSSSettingsRefreshHandler.h Thu Aug 19 10:28:14 2010 +0300
@@ -27,8 +27,8 @@
#include <MSSSettingsRefreshObserver.h>
#include <RSSSettings.h>
#include <RCustomerServiceProfileCache.h>
-#include <RSatRefresh.h>
-#include <RSatSession.h>
+#include <rsatrefresh.h>
+#include <rsatsession.h>
#include <cenrepnotifyhandler.h>
#include "CSSSettingsActiveObject.h"
--- a/cellular/SSSettings/src/CSSSettingsRefreshHandler.cpp Thu Jul 15 19:16:18 2010 +0300
+++ b/cellular/SSSettings/src/CSSSettingsRefreshHandler.cpp Thu Aug 19 10:28:14 2010 +0300
@@ -19,7 +19,7 @@
// INCLUDE FILES
#include <centralrepository.h>
-#include <RSatRefresh.h>
+#include <rsatrefresh.h>
#include <BTSapDomainPSKeys.h> // BT SAP Central Repository key.
#include <featmgr.h>
--- a/cellular/telephonysettings/src/PsetNetwork.cpp Thu Jul 15 19:16:18 2010 +0300
+++ b/cellular/telephonysettings/src/PsetNetwork.cpp Thu Aug 19 10:28:14 2010 +0300
@@ -340,6 +340,12 @@
{
iTempNetInfo.iAccess = ENetNetworkGSM;
}
+
+ /** Implementation of forbidden operator icon begins */
+ // Set network status for displaying forbidden operator icon
+ iTempNetInfo.iStatus = static_cast<MPsetNetworkSelect::TNetworkStatus>( nwNames.iStatus );
+ /** Implementation of forbidden operator icon ends */
+
array->AppendL( iTempNetInfo );
i++;
}
--- a/convergedcallengine/csplugin/src/cspcall.cpp Thu Jul 15 19:16:18 2010 +0300
+++ b/convergedcallengine/csplugin/src/cspcall.cpp Thu Aug 19 10:28:14 2010 +0300
@@ -216,6 +216,8 @@
case RMobileCall::EStatusDialling:
CSPLOGSTRING(CSPINT, "CSPCall callstate Dialling");
{
+ // Start streams also for MO video call to prevent audio routing problems
+ // with other applications.
if ( iAudioHandler
&& ( iParams->CallType() == CCPCall::ECallTypeCSVoice
|| iParams->CallType() == CCPCall::ECallTypeVideo ) )
@@ -283,6 +285,17 @@
// Agreement with TSY is that the
// COLP number is available in connected state.
NotifyRemotePartyNumberChanged();
+
+ // Stop streams for MO video call so that Video Telephony can
+ // receive RemCon commands instead of Phone.
+ if ( iMobileOriginated
+ && iAudioHandler
+ && iAudioStatus == ECSPCallAudioStatusActive
+ && iParams->CallType() == CCPCall::ECallTypeVideo )
+ {
+ iAudioStatus = ECSPCallAudioStatusInactive;
+ iAudioHandler->Stop();
+ }
break;
}
// Indicates that call is disconnecting. (Same as RCall::HangingUp)
--- a/phoneclientserver/EnPolicy/Src/SosEnPolicy/CSosEnPolicySatRefresh.cpp Thu Jul 15 19:16:18 2010 +0300
+++ b/phoneclientserver/EnPolicy/Src/SosEnPolicy/CSosEnPolicySatRefresh.cpp Thu Aug 19 10:28:14 2010 +0300
@@ -23,8 +23,8 @@
#include "CSOSEmergencyNumberPolicyHandler.h"
#include "CSosEnPolicySatRefresh.h"
-#include <RSatRefresh.h>
-#include <RSatSession.h>
+#include <rsatrefresh.h>
+#include <rsatsession.h>
#include <startupdomainpskeys.h> // Property values
--- a/phoneclientserver/phoneserver/Group/PhoneServer.mmp Thu Jul 15 19:16:18 2010 +0300
+++ b/phoneclientserver/phoneserver/Group/PhoneServer.mmp Thu Aug 19 10:28:14 2010 +0300
@@ -135,5 +135,6 @@
LIBRARY centralrepository.lib
LIBRARY imageconversion.lib
LIBRARY bitmaptransforms.lib
+LIBRARY ecom.lib
// End of File
--- a/phoneclientserver/phoneserver/Group/bld.inf Thu Jul 15 19:16:18 2010 +0300
+++ b/phoneclientserver/phoneserver/Group/bld.inf Thu Aug 19 10:28:14 2010 +0300
@@ -21,7 +21,9 @@
DEFAULT
PRJ_EXPORTS
-
+..\inc\ussd\ussdinterfaceconstants.hrh MW_LAYER_PLATFORM_EXPORT_PATH(ussdinterfaceconstants.hrh)
+..\inc\ussd\CUssdExtensionInterface.h MW_LAYER_PLATFORM_EXPORT_PATH(CUssdExtensionInterface.h)
+..\inc\ussd\CUssdExtensionInterface.inl MW_LAYER_PLATFORM_EXPORT_PATH(CUssdExtensionInterface.inl)
backup_registration.xml z:/private/10000850/backup_registration.xml
--- a/phoneclientserver/phoneserver/Inc/Ussd/CPhSrvUssdManager.h Thu Jul 15 19:16:18 2010 +0300
+++ b/phoneclientserver/phoneserver/Inc/Ussd/CPhSrvUssdManager.h Thu Aug 19 10:28:14 2010 +0300
@@ -38,6 +38,8 @@
class CAknGlobalMsgQuery;
class CPhSrvUssdSessionCancelWaiter;
class CPhSrvUssdNotifyNWRelease;
+// RM-RIM 417-66528
+class CUssdExtensionInterface;
// CLASS DECLARATION
@@ -214,6 +216,18 @@
const TDes8& aMsgData,
const RMobileUssdMessaging::TMobileUssdAttributesV1&
aMsgAttributes);
+
+ // RM-RIM 417-66528
+ /** Third stage handler for received messages meant for extension
+ */
+ void PorcessReceivedMessageInExtesnionL(const TDes8& aMsgData,
+ const RMobileUssdMessaging::TMobileUssdAttributesV1&
+ aMsgAttributes);
+ /** Third stage handler for received messages
+ */
+ void ProcessReceivedMessageL(const TDes8& aMsgData,
+ const RMobileUssdMessaging::TMobileUssdAttributesV1&
+ aMsgAttributes);
// Restart the reply timer
void RestartReplyTimerL();
@@ -223,6 +237,11 @@
// Set timer and activate it if there are notifications available
void SetActiveIfPendingNotificationsExist();
+ // RM-RIM 417-66528
+ // Create and Initialize the global message query
+ void CreateGlobalMessageQueryL(
+ const RMobileUssdMessaging::TMobileUssdAttributesV1&
+ aMsgAttributes);
// Launch the global message query (used from RunL)
void LaunchGlobalMessageQueryL();
@@ -418,6 +437,10 @@
// An asynchronous callback for sending MO ACK messages
CAsyncCallBack* iMoAckCallback;
+
+ // RM-RIM 417-66528
+ // Pointer to the UssdExtension
+ CUssdExtensionInterface* iUssdExtnInterface;
};
#endif // CPHSRVUSSDMANAGER_H
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/phoneclientserver/phoneserver/Inc/Ussd/CUssdExtensionInterface.h Thu Aug 19 10:28:14 2010 +0300
@@ -0,0 +1,137 @@
+/*
+ * Copyright (c) 2002-2005 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: Extends the ussd functionality.
+ *
+ */
+#ifndef __CUSSDEXTENSIONINTERFACE_H__
+#define __CUSSDEXTENSIONINTERFACE_H__
+
+// INCLUDES
+
+#include<ecom\ecom.h>
+#include<etelmm.h>
+#include<ussdinterfaceconstants.hrh>
+// FORWARD DECLARATIONS
+
+// CONSTANTS
+const TUid KUssdExtensionInterfaceUid =
+ {
+ KUssdExtensionInterfaceUidValue
+ };
+
+// CLASS DECLARATION
+
+/**
+ * Base class for Ussd Extension Plugin.
+ *
+ * This API allows customizing the USSD sending feature of the S60 Telephony
+ * applications at runtime.
+ *
+ * The API defines two roles:
+ * 1) Validates the USSD string while sending. if it is unauthorized
+ * in the context shall terminate the request.
+ * 2) Validates the USSD string while receiving, the extension will get the first chance to consume the reply if needed
+ *
+ *
+ * Note:
+ * The customizer needs only one plug-in implementation for a variant, and so supports only rom-only plug-in.
+ */
+class CUssdExtensionInterface : public CBase
+ {
+public:
+ // Constructors and destructor
+ /**
+ * NewL
+ * Wraps ECom object instantitation. Will return the
+ * default interface implementation, which matches to
+ * given aOperationName.
+ */
+ static CUssdExtensionInterface* NewL();
+
+ /**
+ * NewL
+ * Wraps ECom object instantitation. Will search for
+ * interface implementation, which matches to given
+ * aOperationName.
+ * @param aOperationName name of requested implementation.
+ * Implementations advertise their "name" as specified
+ * in their resource file field
+ * IMPLEMENTATION_INFO::default_data.
+ */
+ static CUssdExtensionInterface* NewL(const TDesC8& aMatch);
+
+public:
+ // API to be implemented by ECOM plug-in
+
+ /**
+ * Validate/Authenticate the Ussd string Before Sending from
+ * the USSD Send handler
+ * When Ussd Extention plugin return true, then ussd manager will continue sending of the ussd
+ * Otherwise the transaction will be terminated with KErrAccessDenined
+ *
+ * @param aMessageData
+ * @param aMessageAttributes .
+ */
+ virtual TBool
+ ValidateUssdMsgSending(
+ const TDesC8& aMessageData,
+ const RMobileUssdMessaging::TMobileUssdAttributesV1& aMsgAttribute) = 0;
+ /**
+ * Validate/Authenticate the Ussd response received by the
+ * USSD receive handler
+ *
+ * @param aMessageData
+ * @return true implies that the ussd response is valid for the extension.
+ * otherwise pass it to the observer. .
+ */
+ virtual TBool ValidateUssdResponse(const TDesC8& aMessage) = 0;
+ /**
+ * if ValidateUssdResponse returns true, then the extension plugin is waiting for the response
+ * so invoke the interface to deligate to the plugin.
+ * Example:
+ * ...
+ * TBool isValidForExtension = iUssdExtnInterface->ValidateUssdResponse(aMsgData);
+ * TInt errfromextension = KErrNone;
+ * if (isValidForExtension)
+ * {
+ * TRAPD(err, iUssdExtnInterface->ProcessReceivedUssdL(iDecodedMessage, errfromextension));
+ * ...
+ *
+ * @param aMessageData
+ * @return error code
+ * @leave On typical leave level problems.
+ */
+ virtual void
+ ProcessReceivedUssdL(const TDesC& aMessageData, TInt aError) = 0;
+
+ /**
+ * Notify the any network error to the extension, so that it can handle the internal states if required
+ * @param aError
+ */
+ virtual void NotifyNWError(TInt aError)=0;
+
+public:
+ /**
+ * ~CUssdExtensionInterface
+ *
+ * Cleans up resources, specifically notify ECOM server that this
+ * instance is being deleted.
+ */
+ virtual ~CUssdExtensionInterface();
+
+private:
+ TUid iDtor_ID_Key; // Identification on cleanup
+ };
+#include "CUssdExtensionInterface.inl"
+#endif // __CUSSDEXTENSIONINTERFACE_H__
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/phoneclientserver/phoneserver/Inc/Ussd/CUssdExtensionInterface.inl Thu Aug 19 10:28:14 2010 +0300
@@ -0,0 +1,67 @@
+/*
+* Copyright (c) 2002-2005 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: Interface's (abstract base class's) static factory method implementation.
+*
+*/
+
+#include <e32def.h>
+#include <ecom\ecom.h>
+
+// ---------------------------------------------------------------------------
+// CUssdExtensionInterface::NewL
+// Interface's (abstract base class's) static factory method implementation.
+// Asks ECOM plugin framework to instantiate appropriate concret plugin
+// implementation.
+// ---------------------------------------------------------------------------
+//
+inline CUssdExtensionInterface* CUssdExtensionInterface::NewL()
+ {
+ TEComResolverParams resolutionParameters;
+ resolutionParameters.SetGenericMatch(ETrue);
+ TAny* interface = REComSession::CreateImplementationL (
+ KUssdExtensionInterfaceUid, _FOFF (CUssdExtensionInterface, iDtor_ID_Key), resolutionParameters, KRomOnlyResolverUid);
+
+ return reinterpret_cast <CUssdExtensionInterface*> (interface);
+ }
+
+// ---------------------------------------------------------------------------
+// CUssdExtensionInterface::NewL
+// Interface's (abstract base class's) static factory method implementation.
+// Asks ECOM plugin framework to instantiate appropriate concret plugin
+// implementation.
+// ---------------------------------------------------------------------------
+//
+inline CUssdExtensionInterface* CUssdExtensionInterface::NewL(const TDesC8& aOperationName)
+ {
+ TEComResolverParams resolverParams;
+ resolverParams.SetDataType (aOperationName);
+ resolverParams.SetWildcardMatch (ETrue);
+
+ TAny* interface = REComSession::CreateImplementationL (KUssdExtensionInterfaceUid,
+ _FOFF (CUssdExtensionInterface, iDtor_ID_Key), resolverParams, KRomOnlyResolverUid);
+
+ return reinterpret_cast <CUssdExtensionInterface*> (interface);
+ }
+
+// ---------------------------------------------------------------------------
+// CUssdExtensionInterface::~CUssdExtensionInterface
+// Interface's (abstract base class's) destructor
+// ---------------------------------------------------------------------------
+//
+inline CUssdExtensionInterface::~CUssdExtensionInterface()
+ {
+ REComSession::DestroyedImplementation (iDtor_ID_Key);
+ }
+
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/phoneclientserver/phoneserver/Inc/Ussd/ussdinterfaceconstants.hrh Thu Aug 19 10:28:14 2010 +0300
@@ -0,0 +1,24 @@
+/*
+* Copyright (c) 2002-2005 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: common definitions of the ussd extension.
+*
+*/
+#ifndef T_USSDINTERFACECONSTANTS_HRH
+#define T_USSDINTERFACECONSTANTS_HRH
+
+
+const TInt KUssdExtensionInterfaceUidValue = 0x200315D0;
+
+
+#endif // T_USSDINTERFACECONSTANTS_HRH
--- a/phoneclientserver/phoneserver/Src/Ussd/CPhSrvUssdManager.cpp Thu Jul 15 19:16:18 2010 +0300
+++ b/phoneclientserver/phoneserver/Src/Ussd/CPhSrvUssdManager.cpp Thu Aug 19 10:28:14 2010 +0300
@@ -56,6 +56,8 @@
#include <telservicesinternalcrkeys.h>
#include <coreapplicationuisdomainpskeys.h>
+//RM-RIM 417-66528
+#include <CUssdExtensionInterface.h>
// CONSTANTS
const TInt KPhSrvDefaultValue = 0x00000000;
@@ -436,6 +438,10 @@
delete iMoAckCallback;
+ // RM-RIM 417-66528
+ delete iUssdExtnInterface;
+ iUssdExtnInterface = NULL;
+
_DPRINT( 4, "PhSrv.~CPhSrvUssdManager.end" ); // debug print
}
@@ -492,6 +498,10 @@
_DDPRINT( 4, "PhSrv.ConstructL.iSatCanceled ", iSatCanceled );
_DDPRINT( 4, "PhSrv.ConstructL.iShowDone ", iShowDone );
iNotifyArray = new( ELeave ) CDesCArrayFlat( KPhrUssdNotifyArraySize );
+
+ // RM-RIM 417-66528
+ TRAP_IGNORE(iUssdExtnInterface = CUssdExtensionInterface::NewL());
+ _DPRINT( 4, "PhSrv.ConstructL.iUssdExtnInterface Created");
_DPRINT( 4, "PhSrv.ConstructL.End" ); // debug print
}
@@ -550,6 +560,16 @@
_DPRINT( 4, "PhSrv.SendUssdL.Start ######" ); // debug print
_DPRINT_FLAGS();
+ //417-66528
+ if (iUssdExtnInterface)
+ {
+ if(!iUssdExtnInterface->ValidateUssdMsgSending(aMsgData,aMsgAttribute))
+ {
+ // invalid attempt to send USSD message. Show the note
+ User::Leave( KErrAccessDenied );
+ }
+ }
+
if ( iObserver && iNetworkReleased )
{
// Network has been released but the previous send request is still alive.
@@ -810,6 +830,14 @@
{
iReceivedMessage = iDecodedMessage;
}
+ // 4. Invoke UssdExtensionPlugin
+ // 417-66528
+ TBool isResponseValidated = EFalse;
+ if (iUssdExtnInterface)
+ {
+ _DPRINT( 4, "PhSrv.UssdHandleReceivedEventL.InvokeExtension" );
+ isResponseValidated = iUssdExtnInterface->ValidateUssdResponse(aMsgData);
+ }
// 5. Show note.
// debug print
_DPRINT( 4, "PhSrv.UssdHandleReceivedEventL.Note" );
@@ -824,109 +852,155 @@
return;
}
}
-
+ //6. Check if the response is valid for the extension
+ //RM-RIM 417-66528
+ if (iUssdExtnInterface && isResponseValidated)
+ PorcessReceivedMessageInExtesnionL(aMsgData, aMsgAttributes);
+ else
+ ProcessReceivedMessageL(aMsgData, aMsgAttributes);
+
+ _DPRINT( 4, "PhSrv.UssdHandleReceivedEventL.Editor" );
+ if (aMsgAttributes.iType == RMobileUssdMessaging::EUssdMTRequest
+ && UssdAppTaskExistsL())
+ {
+ iEmptyEditor = ETrue;
+ } _DPRINT( 4, "PhSrv.UssdHandleReceivedEventL.End" );
+ }
+// -----------------------------------------------------------------------------
+// CPhSrvUssdManager::ProcessReceivedMessageL
+//
+//
+//
+// -----------------------------------------------------------------------------
+//
+void CPhSrvUssdManager::ProcessReceivedMessageL(const TDes8& /*aMsgData*/,
+ const RMobileUssdMessaging::TMobileUssdAttributesV1& aMsgAttributes)
+ {
// empty string is handled as ok message
- if ( !iDecodedMessage.Length() )
+ if (!iDecodedMessage.Length())
{
TurnLightsOn(); //Ensure lights on
- // debug print
- _DPRINT( 4,
- "PhSrv.UssdHandleReceivedEventL.EmptyString" );
-
- ShowDoneNoteL();
// debug print
_DPRINT( 4,
- "PhSrv.UssdHandleReceivedEventL.EmptyString.OK" );
+ "PhSrv.UssdHandleReceivedEventL.EmptyString" );
+ ShowDoneNoteL();
+ // debug print
+ _DPRINT( 4,
+ "PhSrv.UssdHandleReceivedEventL.EmptyString.OK" );
}
else
{
- _DPRINT( 4, "PhSrv.UssdHandleReceivedEventL.String" );
- iNotifyMessage = ( aMsgAttributes.iType == RMobileUssdMessaging::EUssdMTNotify );
- _DDPRINT( 4, "PhSrv.UssdHandleReceivedEventL.iNotifyMessage: ", iNotifyMessage );
+ _DPRINT( 4, "PhSrv.UssdHandleReceivedEventL.String" );
+ iNotifyMessage = (aMsgAttributes.iType
+ == RMobileUssdMessaging::EUssdMTNotify);
+ _DDPRINT( 4, "PhSrv.UssdHandleReceivedEventL.iNotifyMessage: ", iNotifyMessage );
_DDPRINT( 4, "PhSrv.UssdNOHREventL.iNotifyMessage: ", iNotifyMessage );
- iMsgTypeReply = ( aMsgAttributes.iType == RMobileUssdMessaging::EUssdMTReply );
+ iMsgTypeReply = (aMsgAttributes.iType
+ == RMobileUssdMessaging::EUssdMTReply);
_DDPRINT( 4, "PhSrv.UssdHandleReceivedEventL.iMsgTypeReply: ", iMsgTypeReply );
-
- if ( iNotifyMessage )
+
+ if (iNotifyMessage)
{
// need to send an MO ack
- iAcksToBeSent ++;
- }
-
- if ( iNotifyMessage || iMsgTypeReply )
- {
- //This is for reply message in notifyarray
- iNotifyMessage = ETrue;
- _DDPRINT( 4, "PhSrv.UssdHandleReceivedEventL.iNotifyMessage: ", iNotifyMessage );
-
- //Notify added to array
- iNotifyArray->AppendL( iReceivedMessage );
-
- _DPRINT( 4, "PhSrv.UssdHandleReceivedEventL.AppendL" ); // debug print
- UpdateNotifyMessage();
-
- if ( !iSendRelease && NotifyCount() <= 1 )
- {
- _DPRINT( 4, "PhSrv.UssdHandleReceivedEventL.!SendRelease.Cancel" ); // debug print
- Cancel();
- }
- }
- else
- {
- // New message deletes old message, i.e. Cancel existing query.
- Cancel();
- _DPRINT( 4, "PhSrv.UssdHandleReceivedEventL.NewAnswerable" ); // debug print
- }
-
- if ( !iGlobalMsgQuery )
- {
- iGlobalMsgQuery = CAknGlobalMsgQuery::NewL();
+ iAcksToBeSent++;
}
- // Delay after message query so that application execution order will
- // be correct.
- iGlobalMsgQuery->SetExitDelay( KPhSrvUssdNoteExitPeriod );
+ if (iNotifyMessage || iMsgTypeReply)
+ {
+ //This is for reply message in notifyarray
+ iNotifyMessage = ETrue;
+ _DDPRINT( 4, "PhSrv.UssdHandleReceivedEventL.iNotifyMessage: ", iNotifyMessage );
+
+ //Notify added to array
+ iNotifyArray->AppendL(iReceivedMessage);
+
+ _DPRINT( 4, "PhSrv.UssdHandleReceivedEventL.AppendL" ); // debug print
+ UpdateNotifyMessage();
- TInt softkeys = R_AVKON_SOFTKEYS_USSD_ANSWER_EXIT__ANSWER;
- if( !( aMsgAttributes.iFlags & RMobileUssdMessaging::KUssdMessageType )
- || aMsgAttributes.iType != RMobileUssdMessaging::EUssdMTRequest )
+ if (!iSendRelease && NotifyCount() <= 1)
+ {
+ _DPRINT( 4, "PhSrv.UssdHandleReceivedEventL.!SendRelease.Cancel" ); // debug print
+ Cancel();
+ }
+ }
+ else
{
- softkeys = R_AVKON_SOFTKEYS_EXIT;
+ // New message deletes old message, i.e. Cancel existing query.
+ Cancel();
+ _DPRINT( 4, "PhSrv.UssdHandleReceivedEventL.NewAnswerable" ); // debug print
}
+ CreateGlobalMessageQueryL(aMsgAttributes);
+ AsyncProcessMoAcks();
+ }
+ _DPRINT( 4, "PhSrv.ProcesdReceivedMessageL.End" );
+ }
- // Set timer that lauches Global MessageQuery after time interval.
- iSoftkeys = softkeys;
-
+// -----------------------------------------------------------------------------
+// CPhSrvUssdManager::PorcessReceivedMessageInExtesnionL
+//
+//
+//
+// -----------------------------------------------------------------------------
+//
+void CPhSrvUssdManager::PorcessReceivedMessageInExtesnionL(
+ const TDes8& /*aMsgData*/,
+ const RMobileUssdMessaging::TMobileUssdAttributesV1& aMsgAttributes)
+ {
+ TInt errfromextension = KErrNone;
+ // empty string is handled as ok message
+ if (!iDecodedMessage.Length())
+ {
// debug print
_DPRINT( 4,
- "PhSrv.UssdHandleReceivedEventL.String.Middle" );
+ "PhSrv.UssdHandleReceivedEventL.EmptyString" );
+ //RM-RIM 417-66528
+ TRAP_IGNORE(iUssdExtnInterface->ProcessReceivedUssdL(iDecodedMessage, errfromextension));
+ // debug print
+ _DPRINT( 4,
+ "PhSrv.UssdHandleReceivedEventL.EmptyString.OK" );
+ }
+ else
+ {
+ _DPRINT( 4, "PhSrv.UssdHandleReceivedEventL.String" );
+ iNotifyMessage = (aMsgAttributes.iType
+ == RMobileUssdMessaging::EUssdMTNotify);
+ _DDPRINT( 4, "PhSrv.UssdHandleReceivedEventL.iNotifyMessage: ", iNotifyMessage );
+ _DDPRINT( 4, "PhSrv.UssdNOHREventL.iNotifyMessage: ", iNotifyMessage );
+ iMsgTypeReply = (aMsgAttributes.iType
+ == RMobileUssdMessaging::EUssdMTReply);
+ _DDPRINT( 4, "PhSrv.UssdHandleReceivedEventL.iMsgTypeReply: ", iMsgTypeReply );
- // Play the USSD tone if needed. Logically should be in RunL, but here
- // to give better balancing with voice and visible message.
- if ( IsTelephonyFeatureSupported( KTelSrvLVFlagUssdTone ) )
+ if (iNotifyMessage)
{
- _DPRINT( 4, "PhSrv.UssdHandleReceivedEventL.PlayTone" );
- PlayUssdTone();
+ // need to send an MO ack
+ iAcksToBeSent++;
}
- // Launch the new message query
- if ( !IsActive() )
+ if (iNotifyMessage || iMsgTypeReply)
{
- iLaunchGMQ = ETrue;
- iTimer.After( iStatus , KPhSrvUssdMessageQueryInterval );
- SetActive();
+ //This is for reply message in notifyarray
+ iNotifyMessage = ETrue;
+ _DDPRINT( 4, "PhSrv.UssdHandleReceivedEventL.iNotifyMessage: ", iNotifyMessage );
+ if (!iSendRelease && NotifyCount() <= 1)
+ {
+ _DPRINT( 4, "PhSrv.UssdHandleReceivedEventL.!SendRelease.Cancel" ); // debug print
+ Cancel();
+ }
}
- AsyncProcessMoAcks();
+ else
+ {
+ // New message deletes old message, i.e. Cancel existing query.
+ Cancel();
+ _DPRINT( 4, "PhSrv.UssdHandleReceivedEventL.NewAnswerable" ); // debug print
+ }
+ TInt errfromextension = KErrNone;
+ ProcessMoAcksL();
+ iLaunchGMQ = EFalse;
+ TRAP_IGNORE(iUssdExtnInterface->ProcessReceivedUssdL(iDecodedMessage, errfromextension));
+ _DDPRINT( 4, "PhSrv.UssdHandleReceivedEventL.Extn.ProcessReceivedUssdL.ErrCode", errfromextension);
}
- _DPRINT( 4, "PhSrv.UssdHandleReceivedEventL.Editor" );
- if( aMsgAttributes.iType == RMobileUssdMessaging::EUssdMTRequest && UssdAppTaskExistsL() )
- {
- iEmptyEditor = ETrue;
- }
- _DPRINT( 4, "PhSrv.UssdHandleReceivedEventL.End" );
}
-
// -----------------------------------------------------------------------------
// CPhSrvUssdManager::RestartReplyTimerL
//
@@ -996,7 +1070,12 @@
// if we are sending ack, it can be canceled.
iUssdSendHandler->Cancel();
}
-
+ //417-66528
+ //Notify Extension on NWRelease
+ if(iUssdExtnInterface)
+ {
+ iUssdExtnInterface->NotifyNWError(aError);
+ }
iSatCanceled = EFalse;
_DPRINT( 4, "PhSrv.UssdNetworkObserverHandleNotifyNWReleaseL.iSatCanceled.EFalse" );
iShowDone = EFalse;
@@ -1341,7 +1420,52 @@
_DPRINT( 4, "PhSrv.RunL.End" ); // debug print
}
}
+// RM-RIM 417-66528
+// -----------------------------------------------------------------------------
+// CPhSrvUssdManager::CreateGlobalMessageQueryL
+// -----------------------------------------------------------------------------
+//
+void CPhSrvUssdManager::CreateGlobalMessageQueryL(
+ const RMobileUssdMessaging::TMobileUssdAttributesV1& aMsgAttributes)
+ {
+ if (!iGlobalMsgQuery)
+ {
+ iGlobalMsgQuery = CAknGlobalMsgQuery::NewL();
+ }
+ // Delay after message query so that application execution order will
+ // be correct.
+ iGlobalMsgQuery->SetExitDelay(KPhSrvUssdNoteExitPeriod);
+
+ TInt softkeys = R_AVKON_SOFTKEYS_USSD_ANSWER_EXIT__ANSWER;
+ if (!(aMsgAttributes.iFlags & RMobileUssdMessaging::KUssdMessageType)
+ || aMsgAttributes.iType != RMobileUssdMessaging::EUssdMTRequest)
+ {
+ softkeys = R_AVKON_SOFTKEYS_EXIT;
+ }
+
+ // Set timer that lauches Global MessageQuery after time interval.
+ iSoftkeys = softkeys;
+
+ // debug print
+ _DPRINT( 4,
+ "PhSrv.UssdHandleReceivedEventL.String.Middle" );
+
+ // Play the USSD tone if needed. Logically should be in RunL, but here
+ // to give better balancing with voice and visible message.
+ if (IsTelephonyFeatureSupported(KTelSrvLVFlagUssdTone))
+ {
+ _DPRINT( 4, "PhSrv.UssdHandleReceivedEventL.PlayTone" );
+ PlayUssdTone();
+ }
+ // Launch the new message query
+ if (!IsActive())
+ {
+ iLaunchGMQ = ETrue;
+ iTimer.After(iStatus, KPhSrvUssdMessageQueryInterval);
+ SetActive();
+ }
+ }
// -----------------------------------------------------------------------------
// CPhSrvUssdManager::LaunchGlobalMessageQueryL
// -----------------------------------------------------------------------------
--- a/phonecmdhandler/phonecmdhnlr/src/PhoneHandlerCallArray.cpp Thu Jul 15 19:16:18 2010 +0300
+++ b/phonecmdhandler/phonecmdhnlr/src/PhoneHandlerCallArray.cpp Thu Aug 19 10:28:14 2010 +0300
@@ -16,7 +16,7 @@
*/
#include <callinformation.h>
-#include "phonehandlercallarray.h"
+#include "PhoneHandlerCallArray.h"
// ---------------------------------------------------------------------------
// CPhoneHandlerCallArray::NewL.
--- a/phonesrv_plat/call_information_api/tsrc/run_auto_tests.bat Thu Jul 15 19:16:18 2010 +0300
+++ b/phonesrv_plat/call_information_api/tsrc/run_auto_tests.bat Thu Aug 19 10:28:14 2010 +0300
@@ -148,7 +148,7 @@
call sbs --config winscw_udeb.test --keepgoing clean
call sbs --config winscw_udeb.test --keepgoing reallyclean
if [%INSTRUMENT%] EQU [TRUE] (
-call ctcwrap -2comp -n %PATH_TO_COVERAGE_DATA%\%1 -i d -C "EXCLUDE=*" -C "NO_EXCLUDE=%TESTED_SRC%" "%SBS_CALL%"
+call ctcwrap -n %PATH_TO_COVERAGE_DATA%\%1 -i d -C "EXCLUDE=*" -C "NO_EXCLUDE=%TESTED_SRC%" "%SBS_CALL%"
) else (
call %SBS_CALL%
)
@@ -188,7 +188,7 @@
::::::::::::::::::::::::::::::::::::::::::::::::::::::
:CALCULATECOVERAGE
echo Calculating coverage
-ctcpost %PATH_TO_COVERAGE_DATA%\*.sym | ctcmerge -i - -o profile.txt
+ctcpost -p - %PATH_TO_COVERAGE_DATA%\*.sym | ctcmerge -i - -o profile.txt
call ctc2html -t 70 -i profile.txt -o \coverage_result -nsb
goto end
--- a/phonesrv_plat/converged_call_engine_api/inc/ccce.h Thu Jul 15 19:16:18 2010 +0300
+++ b/phonesrv_plat/converged_call_engine_api/inc/ccce.h Thu Aug 19 10:28:14 2010 +0300
@@ -58,7 +58,7 @@
#ifndef RMMCUSTOMAPI_H
/** defenition for OG, most likely will be deprecated later on */
///_LIT(KTerminateAllCalls,"ALL_CALLS");
-#include <RMmCustomAPI.h> // Add reference there, cs classes need that too
+#include <rmmcustomapi.h> // Add reference there, cs classes need that too
#endif
/**
--- a/phonesrv_plat/voice_mailbox_number_api/inc/vmnumber.h Thu Jul 15 19:16:18 2010 +0300
+++ b/phonesrv_plat/voice_mailbox_number_api/inc/vmnumber.h Thu Aug 19 10:28:14 2010 +0300
@@ -37,7 +37,7 @@
#include <rsatsession.h>
#include <rsatrefresh.h>
#include <centralrepository.h>
-#include <CenRepNotifyHandler.h>
+#include <cenrepnotifyhandler.h>
#include <aknappui.h>
#include <AknQueryDialog.h>
#include <CPhCltEmergencyCall.h> // CPhCltEmergencyCall
--- a/satengine/SatServer/Commands/RefreshRequiredCmd/inc/CRefreshRequiredHandler.h Thu Jul 15 19:16:18 2010 +0300
+++ b/satengine/SatServer/Commands/RefreshRequiredCmd/inc/CRefreshRequiredHandler.h Thu Aug 19 10:28:14 2010 +0300
@@ -1,5 +1,5 @@
/*
-* Copyright (c) 2002-2008 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2002-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"
@@ -102,29 +102,6 @@
private:
/**
- * The indicated AID may be of four states.
- * We treat it as the Active AID case if the indicated AID is NULL.
- */
- enum TAidState
- {
- EAidInvalid,
- EAidActive,
- EAidNotActive,
- EAidNull
- };
- /**
- * The header of AID from etelsat is A0 in hex equaled to 160 in decemal.
- * The second, third and fourth byte of AID is 0.
- */
- enum TAidBytes
- {
- EAid0,
- EAidA0 = 160
- };
-
- private:
-
- /**
* C++ default constructor.
*/
CRefreshRequiredHandler();
@@ -178,19 +155,6 @@
*/
void RefreshAllowed( const TDesC8& aRsp );
- /**
- * Get the indicated AID state according to
- * the current application's AID.
- * @return TAidstate indicating the state of the indicated AID.
- */
- TAidState AidState() const;
-
- /**
- * Check whether the current application's AID is valid.
- * @return TBool indicating whether the indicated AID is valid.
- * @param aAid RefreshRequired AID data from etelsat.
- */
- TBool IsValidAid( const RSat::TAid& aAid ) const;
private: // Data
// Refresh command data.
@@ -222,7 +186,7 @@
// Response of refresh query.
TBool iAllowRefresh;
-
+
};
#endif // CREFRESHREQUIREDHANDLER_H
--- a/satengine/SatServer/Commands/RefreshRequiredCmd/src/CRefreshRequiredHandler.cpp Thu Jul 15 19:16:18 2010 +0300
+++ b/satengine/SatServer/Commands/RefreshRequiredCmd/src/CRefreshRequiredHandler.cpp Thu Aug 19 10:28:14 2010 +0300
@@ -1,5 +1,5 @@
/*
-* Copyright (c) 2002-2008 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2002-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"
@@ -30,12 +30,8 @@
#include "MSatUiSession.h"
#include "SatSOpcodes.h"
#include "MSatRefreshSubSession.h"
-#include "msatmultimodeapi.h"
#include "SatLog.h"
-// CONSTANTS
-const TInt KAidMinSize( 12 );
-
// ============================ MEMBER FUNCTIONS ===============================
@@ -367,38 +363,6 @@
iRefreshRequiredRsp.iAdditionalInfo[0] = RSat::KMeBusyOnCall;
commandAllowed = EFalse;
}
- //Check the AidState.
- else
- {
- const TAidState aidState = AidState();
- LOG2( NORMAL, "REFRESHREQ: AID state: %i", aidState )
- switch ( aidState )
- {
- case EAidNotActive:
- {
- iRefreshRequiredRsp.iGeneralResult =
- RSat::KRefreshUSIMNotActive;
- iRefreshRequiredRsp.iInfoType = RSat::KNoAdditionalInfo;
- commandAllowed = EFalse;
- break;
- }
-
- case EAidInvalid:
- {
- iRefreshRequiredRsp.iGeneralResult =
- RSat::KCmdDataNotUnderstood;
- iRefreshRequiredRsp.iInfoType = RSat::KNoAdditionalInfo;
- commandAllowed = EFalse;
- break;
- }
-
- default:
- {
- LOG( NORMAL, "REFRESHREQ: Refresh allowed" )
- break;
- }
- }
- }
// When refresh is not allowed, send terminal response to sim.
if ( !commandAllowed )
@@ -761,87 +725,5 @@
LOG( SIMPLE, "REFRESHREQ: CRefreshRequiredHandler::RefreshAllowed exiting" )
}
-
-// -----------------------------------------------------------------------------
-// CRefreshHandler::CheckIndicatedAid
-// Check the state of the indicated Aid.
-// -----------------------------------------------------------------------------
-//
-CRefreshRequiredHandler::TAidState
-CRefreshRequiredHandler::AidState() const
- {
- LOG( SIMPLE, "REFRESHREQ: CRefreshRequiredHandler::AidState calling" )
-
- TAidState aidState( EAidNotActive );
- if ( !iRefreshRequiredData.iAid.Length() )
- {
- aidState = EAidNull;
- LOG( SIMPLE, "REFRESHREQ: Indicated AID Null" )
- }
- else if ( !IsValidAid( iRefreshRequiredData.iAid ) )
- {
- aidState = EAidInvalid;
- LOG( SIMPLE, "REFRESHREQ: Indicated AID Invalid" )
- }
- else
- {
- RSat::TAid aid;
- MSatAsyncToSync* wrapper = iUtils->CreateAsyncToSyncHelper();
- if ( wrapper )
- {
- iUtils->MultiModeApi().GetCurrentActiveUSimApplication(
- wrapper->RequestStatus() , aid );
- // wait until GetCurrentActiveUSimApplication return aid
- TInt err = wrapper->SetActiveAndWait();
- LOG2( NORMAL, "REFRESHREQ: CRefreshHandler::TAidState err %d",err )
- wrapper->Release();
-
- if ( KErrNone == err )
- {
- #ifdef ENABLE_SAT_LOGGING
- for ( TInt i=0; i < aid.Length(); i++ )
- {
- LOG2( DETAILED, "REFRESHREQ: AID from TSY: %x", aid[i] )
- }
- #endif
- if ( aid == iRefreshRequiredData.iAid )
- {
- aidState = EAidActive;
- }
- }
- else if ( KErrNotSupported == err )
- {
- aidState = EAidActive;
- }
- }
- LOG( SIMPLE, "REFRESHREQ: CRefreshRequiredHandler::AidState exit" )
- }
- return aidState;
- }
-
-// -----------------------------------------------------------------------------
-// Check whether the given AID is valid.
-// According to TS 110 220
-// -----------------------------------------------------------------------------
-TBool CRefreshRequiredHandler::IsValidAid( const RSat::TAid& aAid ) const
- {
- LOG( SIMPLE, "REFRESHREQ: CRefreshRequiredHandler::\
- IsValidAid calling-exiting" )
- TInt result ( EFalse );
- // Check the length of AID, it should be between 12 to 16 bytes
- // ETSI: A0,00,00,00,09;
- // 3GPP: A0,00,00,00,87
- // the fifth byte is not sure in other situations.
- //compare the first to fourth byte
- if ( KAidMinSize <= aAid.Length() && RSat::KAidMaxSize >= aAid.Length() )
- {
- if ( EAidA0 == aAid[0]&& EAid0 == aAid[1] &&
- EAid0 == aAid[2]&& EAid0 == aAid[3] )
- {
- result = ETrue;
- }
- }
- return result;
- }
// End of File
--- a/satengine/SatServer/Commands/SendUSSDCmd/group/SendUssdCmd.mmp Thu Jul 15 19:16:18 2010 +0300
+++ b/satengine/SatServer/Commands/SendUSSDCmd/group/SendUssdCmd.mmp Thu Aug 19 10:28:14 2010 +0300
@@ -48,6 +48,7 @@
LIBRARY SatEngine.lib
LIBRARY phoneclient.lib // Ussd sender
LIBRARY aknnotify.lib
+LIBRARY centralrepository.lib // CRepository
#ifdef ENABLE_SAT_LOGGING
LIBRARY flogger.lib
--- a/satengine/SatServer/Commands/SendUSSDCmd/inc/CSendUssdHandler.h Thu Jul 15 19:16:18 2010 +0300
+++ b/satengine/SatServer/Commands/SendUSSDCmd/inc/CSendUssdHandler.h Thu Aug 19 10:28:14 2010 +0300
@@ -289,6 +289,10 @@
*/
TBool iIconCommand;
+ /**
+ * Indicates whether the result of sending USSD is displayed
+ */
+ TBool iIsSatDisplayUssdResult;
};
#endif // CSENDUSSDHANDLER_H
--- a/satengine/SatServer/Commands/SendUSSDCmd/src/CSendUssdHandler.cpp Thu Jul 15 19:16:18 2010 +0300
+++ b/satengine/SatServer/Commands/SendUSSDCmd/src/CSendUssdHandler.cpp Thu Aug 19 10:28:14 2010 +0300
@@ -21,6 +21,8 @@
#include <AknGlobalNote.h>
#include <exterror.h>
#include <avkon.rsg>
+#include <centralrepository.h>
+#include <SATPrivateCRKeys.h>
#include "MSatSystemState.h"
#include "MSatApi.h"
@@ -566,10 +568,40 @@
iNotificationRsp(),
iNotificationRspPckg( iNotificationRsp ),
// To be removed when icons are allowed in this command
- iIconCommand( EFalse )
+ iIconCommand( EFalse ),
+ iIsSatDisplayUssdResult( EFalse )
{
LOG( SIMPLE,
- "SENDUSSD: CSendUssdHandler::CSendUssdHandler calling - exiting" )
+ "SENDUSSD: CSendUssdHandler::CSendUssdHandler calling" )
+ CRepository* repository = NULL;
+
+ TRAPD( result, repository = CRepository::NewL( KCRUidSatServer ); );
+ LOG2( NORMAL, "SENDUSSD: CSendUssdHandler::CSendUssdHandler \
+ open CRepository result: %d", result )
+
+ if ( repository && ( KErrNone == result ) )
+ {
+ result = repository->Get( KSatDisplayUssdResult,
+ iIsSatDisplayUssdResult );
+ LOG2( NORMAL,
+ "SENDUSSD: CSendUssdHandler::CSendUssdHandler \
+ get CRepository key iIsSatDisplayUssdResult: %d",
+ iIsSatDisplayUssdResult )
+
+ if ( KErrNone != result )
+ {
+ LOG2( NORMAL,
+ "SENDUSSD: CSendUssdHandler::CSendUssdHandler \
+ get CRepository key error result: %d",
+ result )
+ }
+ }
+
+ delete repository;
+ repository = NULL;
+
+ LOG( SIMPLE,
+ "SENDUSSD: CSendUssdHandler::CSendUssdHandler exiting" )
}
@@ -597,12 +629,15 @@
iSendUssdRsp.iUssdString.iUssdString.Copy( receiveMessage );
- if ( RSat::EAlphaIdProvided != iSendUssdData.iAlphaId.iStatus )
+ if ( ( RSat::EAlphaIdProvided != iSendUssdData.iAlphaId.iStatus )
+ && iIsSatDisplayUssdResult )
{
// if no Alpha ID provided, show the text note.
- LOG( SIMPLE, "SENDUSSD: CSendUssdHandler::SendUssdString Show Note" )
+ LOG( SIMPLE, "SENDUSSD: CSendUssdHandler::SendUssdString \
+ Show USSD result Note" )
TRAP_IGNORE(
- ShowUssdResponseNoteL( iSendUssdRsp.iUssdString.iUssdString ) );
+ ShowUssdResponseNoteL(
+ iSendUssdRsp.iUssdString.iUssdString ) );
}
HandleSendUssdResult( error );
--- a/satengine/SatServer/Engine/inc/CSatApnHandler.h Thu Jul 15 19:16:18 2010 +0300
+++ b/satengine/SatServer/Engine/inc/CSatApnHandler.h Thu Aug 19 10:28:14 2010 +0300
@@ -25,6 +25,8 @@
#include "MSatApnHandler.h"
class MSatUtils;
+class RCmConnectionMethod;
+class RCmManager;
/**
* Handles the Access point operations with CMManager. Searches, inserts and
@@ -123,6 +125,15 @@
*/
HBufC* FormatAPN( const RSat::TAccessName& aReqApn ) const;
+ /**
+ * Get default connection method.
+ *
+ * @param aCmManager Input Connection method manager.
+ * @param aDefCm Output reference to RCmConnectionMethod.
+ * @return None
+ */
+ void GetDefConnMethodL( RCmManager& aCmManager,
+ RCmConnectionMethod& aDefCm );
private: // Data
// Reference to command container
--- a/satengine/SatServer/Engine/inc/csatmultimodeapi.h Thu Jul 15 19:16:18 2010 +0300
+++ b/satengine/SatServer/Engine/inc/csatmultimodeapi.h Thu Aug 19 10:28:14 2010 +0300
@@ -1,5 +1,5 @@
/*
-* Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies).
+* 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"
@@ -143,13 +143,6 @@
void DialCancel();
/**
- * Access RMobilePhone::GetCurrentActiveUSimApplication
- */
- void GetCurrentActiveUSimApplication( TRequestStatus& aReqStatus,
- RMobilePhone::TAID& aAID );
-
-
- /**
* Check if there is an incoming call
* @return ETrue if there is an incoming call
*/
--- a/satengine/SatServer/Engine/src/CSatApnHandler.cpp Thu Jul 15 19:16:18 2010 +0300
+++ b/satengine/SatServer/Engine/src/CSatApnHandler.cpp Thu Aug 19 10:28:14 2010 +0300
@@ -397,59 +397,33 @@
{
LOG( SIMPLE, "SATENGINE: CSatApnHandler::FindDefaultApL calling" );
TUint32 defaultIap( 0 );
- TInt pdpType;
- TBool isFound( EFalse );
+ TInt pdpType( 0 );
- // create a network destination
- RCmDestination des;
- RCmConnectionMethod cm;
-
- // Create CMManager Session
+ // create CMManager Session
RCmManager cmManager;
cmManager.OpenL();
CleanupClosePushL( cmManager );
- // Get the Connection Method list from the open CMManager session
- RArray<TUint32> array = RArray<TUint32>( KSatCMGranularity );
- CleanupClosePushL( array );
-
- // list all available destinations' id
- cmManager.AllDestinationsL( array );
- for( TInt i = 0; ( i < array.Count() ) && !isFound; ++i )
- {
- des = cmManager.DestinationL( array[i] );
- CleanupClosePushL( des );
+ // create a network connection method
+ RCmConnectionMethod cm;
+ CleanupClosePushL( cm );
+ // get a default connection method
+ GetDefConnMethodL( cmManager, cm );
- if ( CMManager::ESnapPurposeInternet ==
- des.MetadataL( CMManager::ESnapMetadataPurpose ) )
- {
- LOG( SIMPLE, "SATENGINE: CSatApnHandler::FindDefaultApL \
- the fixed destination is identified as 'Internet'" );
- for( TInt j = 0; ( j < des.ConnectionMethodCount() ) &&
- !isFound; ++j )
- {
- cm = des.ConnectionMethodL( j );
- CleanupClosePushL( cm );
- pdpType = cm.GetIntAttributeL(
- CMManager::EPacketDataPDPType );
- LOG2( SIMPLE, "SATENGINE: CSatApnHandler::FindDefaultApL \
- current protocol type is %d", pdpType )
- if ( pdpType == aPdpType )
- {
- defaultIap = cm.GetIntAttributeL( CMManager::ECmIapId );
- isFound = ETrue;
- LOG2( SIMPLE, "SATENGINE: CSatApnHandler::FindDefaultApL \
- default iap had been found %d", defaultIap )
- }
- CleanupStack::PopAndDestroy( &cm );
- }
- }
- CleanupStack::PopAndDestroy( &des );
+ // get pdp type
+ pdpType = cm.GetIntAttributeL( CMManager::EPacketDataPDPType );
+ if ( pdpType == aPdpType )
+ {
+ // get a default iap id
+ defaultIap = cm.GetIntAttributeL( CMManager::ECmIapId );
+ LOG2( SIMPLE, "SATENGINE: CSatApnHandler::FindDefaultApL \
+ default iap had been found defaultIap = %d", defaultIap )
}
- CleanupStack::PopAndDestroy( &array );
+
+ CleanupStack::PopAndDestroy( &cm );
CleanupStack::PopAndDestroy( &cmManager );
- if ( !isFound )
+ if ( !defaultIap )
{
LOG( SIMPLE, "SATENGINE: CSatApnHandler: default AP not found" );
User::Leave( KErrNotFound );
@@ -458,4 +432,48 @@
LOG( SIMPLE, "SATENGINE: CSatApnHandler::FindDefaultApL exit" )
return defaultIap;
}
+
+// --------------------------------------------------------------------------
+// CSatApnHandler::GetDefConnMethodL
+// --------------------------------------------------------------------------
+void CSatApnHandler::GetDefConnMethodL( RCmManager& aCmManager,
+ RCmConnectionMethod& aDefCm )
+ {
+ LOG( SIMPLE, "SATENGINE: CSatApnHandler::GetDefConnMethodL calling" )
+
+ // Go through the default connection methods to find
+ // the one valid method
+ TCmDefConnValue defConn;
+ aCmManager.ReadDefConnL( defConn );
+
+ LOG3( SIMPLE, "SATENGINE: CSatApnHandler::\
+ GetDefConnMethodL DefConn type=%d, id=%d",
+ defConn.iType, defConn.iId )
+
+ // Default setting is a connection method
+ if ( ECmDefConnConnectionMethod == defConn.iType )
+ {
+ LOG( SIMPLE, "SATENGINE: CSatApnHandler::\
+ GetDefConnMethodL ECmDefConnConnectionMethod" )
+ // get a default connection method
+ aDefCm = aCmManager.ConnectionMethodL( defConn.iId );
+ }
+ // Default setting is a destination method
+ else if ( ECmDefConnDestination == defConn.iType )
+ {
+ RCmDestination defDes;
+ CleanupClosePushL( defDes );
+
+ LOG( SIMPLE, "SATENGINE: CSatApnHandler::\
+ GetDefConnMethodL ECmDefConnDestination" )
+ // get a default destination
+ defDes = aCmManager.DestinationL( defConn.iId );
+ // get the first default connection method from destination
+ aDefCm = defDes.ConnectionMethodL( 0 );
+
+ CleanupStack::PopAndDestroy( &defDes );
+ }
+
+ LOG( SIMPLE, "SATENGINE: CSatApnHandler::GetDefConnMethodL exit" )
+ }
// End of File
--- a/satengine/SatServer/Engine/src/csatmultimodeapi.cpp Thu Jul 15 19:16:18 2010 +0300
+++ b/satengine/SatServer/Engine/src/csatmultimodeapi.cpp Thu Aug 19 10:28:14 2010 +0300
@@ -1,5 +1,5 @@
/*
-* Copyright (c) 2007-2008 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2007-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"
@@ -290,21 +290,6 @@
}
// -----------------------------------------------------------------------------
-// CSatMultiModeApi::GetCurrentActiveUSimApplication
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CSatMultiModeApi::GetCurrentActiveUSimApplication(
- TRequestStatus& aReqStatus, RMobilePhone::TAID& aAID )
- {
- LOG( SIMPLE, "SATENGINE: CSatMultiModeApi::\
- GetCurrentActiveUSimApplication calling" )
- iPhone.GetCurrentActiveUSimApplication( aReqStatus,aAID );
- LOG( SIMPLE, "SATENGINE: CSatMultiModeApi::\
- GetCurrentActiveUSimApplication exiting" )
- }
-
-// -----------------------------------------------------------------------------
// CSatMultiModeApi::IsCallIncoming
// (other items were commented in a header).
// -----------------------------------------------------------------------------
Binary file satengine/SatServer/conf/sat.confml has changed
Binary file satengine/SatServer/conf/sat_102078E1.crml has changed
--- a/satengine/SatServer/inc/SATPrivateCRKeys.h Thu Jul 15 19:16:18 2010 +0300
+++ b/satengine/SatServer/inc/SATPrivateCRKeys.h Thu Aug 19 10:28:14 2010 +0300
@@ -1,5 +1,5 @@
/*
-* Copyright (c) 2005 Nokia Corporation and/or its subsidiary(-ies).
+* 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"
@@ -60,6 +60,14 @@
* Default value: N/A
*/
const TUint32 KSatHomeZoneIconVisible( 0x00000032 );
+
+// Defines whether USSD sending result is shown if no alpha id
+/**
+* Support is disabled if value is 0
+*
+* Default value: N/A
+*/
+const TUint32 KSatDisplayUssdResult( 0x00000064 );
#endif // SATPRIVATECRKEYS_H
// End of File
--- a/satengine/SatServer/inc/msatmultimodeapi.h Thu Jul 15 19:16:18 2010 +0300
+++ b/satengine/SatServer/inc/msatmultimodeapi.h Thu Aug 19 10:28:14 2010 +0300
@@ -1,5 +1,5 @@
/*
-* Copyright (c) 2007-2008 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2007-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"
@@ -126,12 +126,6 @@
* Access RMobileCall::DialCancel
*/
virtual void DialCancel() = 0;
- /**
- * Access RMobilePhone::GetCurrentActiveUSimApplication
- * for the paramter information please see the etelmm.h
- */
- virtual void GetCurrentActiveUSimApplication( TRequestStatus& aReqStatus,
- RMobilePhone::TAID& aAID ) = 0;
/**
* Check if there is an incoming call
--- a/satui/satapp/SATUIInc/CSatUiViewAppUi.h Thu Jul 15 19:16:18 2010 +0300
+++ b/satui/satapp/SATUIInc/CSatUiViewAppUi.h Thu Aug 19 10:28:14 2010 +0300
@@ -1,5 +1,5 @@
/*
-* Copyright (c) 2002-2008 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2002-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"
@@ -623,6 +623,13 @@
*/
void StopPlayToneL();
+ /**
+ * Check if foreground control is alive when HandleForegroundEventL is
+ * called.
+ * @return ETrue if the foreground control is alive.
+ */
+ TBool CSatUiViewAppUi::ForegroundAlive() const;
+
private: //Data
// Own: use timer repeat
--- a/satui/satapp/SATUISrc/CSatUiViewAppUi.cpp Thu Jul 15 19:16:18 2010 +0300
+++ b/satui/satapp/SATUISrc/CSatUiViewAppUi.cpp Thu Aug 19 10:28:14 2010 +0300
@@ -1268,7 +1268,7 @@
{
TFLOGSTRING( "CSatUiViewAppUi::HandleForegroundEventL \
need to display a dialog" )
- if ( iForegroundControl )
+ if ( iForegroundControl && ForegroundAlive() )
{
iForegroundControl->SetFocus( ETrue, EDrawNow );
}
@@ -3530,5 +3530,34 @@
}
TFLOGSTRING( "CSatUiViewAppUi::StopPlayToneL exiting" )
}
+
+// -----------------------------------------------------------------------------
+// CSatUiViewAppUi::ForegroundAlive
+// Check if foreground control is alive when HandleForegroundEventL is called.
+// -----------------------------------------------------------------------------
+//
+TBool CSatUiViewAppUi::ForegroundAlive() const
+ {
+ TFLOGSTRING( "CSatUiViewAppUi::ForegroundAlive called" )
+
+ // Only if value of iForegroundControl equals to one of the following 8
+ // pointers, the alive value will be set to true. This will check if
+ // the foreground control is alive.
+ TBool alive =
+ iForegroundControl == static_cast<CCoeControl*>( iWaitNote )
+ || iForegroundControl == static_cast<CCoeControl*>(
+ iDisplayTextIconDialog )
+ || iForegroundControl == static_cast<CCoeControl*>(
+ iDisplayTextDialog )
+ || iForegroundControl == static_cast<CCoeControl*>( iGetInputDialog )
+ || iForegroundControl == static_cast<CCoeControl*>( iPermanentNote )
+ || iForegroundControl == static_cast<CCoeControl*>( iNoteDialog )
+ || iForegroundControl == static_cast<CCoeControl*>( iBipWaitNote )
+ || iForegroundControl == static_cast<CCoeControl*>( iQueryDialog );
+
+ TFLOGSTRING2( "CSatUiViewAppUi::ForegroundAlive exiting alive=%d", alive )
+
+ return alive;
+ }
// End of File
--- a/satui/satplugin/aisatplugininc/caisatengine.h Thu Jul 15 19:16:18 2010 +0300
+++ b/satui/satplugin/aisatplugininc/caisatengine.h Thu Aug 19 10:28:14 2010 +0300
@@ -23,7 +23,7 @@
#include <e32property.h>
#include <SATInternalPSKeys.h>
-#include <RSatSession.h> // For idle mode text and icon
+#include <rsatsession.h> // For idle mode text and icon
#include <rsatservice.h> // For idle mode text and icon
#include <tsaticoninfo.h>
--- a/satui/satplugin/aisatpluginsrc/caisatnotifier.cpp Thu Jul 15 19:16:18 2010 +0300
+++ b/satui/satplugin/aisatpluginsrc/caisatnotifier.cpp Thu Aug 19 10:28:14 2010 +0300
@@ -20,7 +20,7 @@
// INCLUDE FILES
#include <e32base.h>
#include <etelsat.h>
-#include <RSatSession.h>
+#include <rsatsession.h>
#include <rsatservice.h>
#include "caisatnotifier.h"