diff -r fcbbe021d614 -r 9c97ad6591ae connectionutilities/ConnectionDialogs/ConnectionUiUtilities/src/connectionstatuspopup.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/connectionutilities/ConnectionDialogs/ConnectionUiUtilities/src/connectionstatuspopup.cpp Mon May 03 12:53:07 2010 +0300 @@ -0,0 +1,647 @@ +/* +* Copyright (c) 2009 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: +* Implementation of class CConnectionStatusPopup. +* +* +*/ + +#include "connectionstatuspopup.h" + +#include +#include +#include +#include +#include +#include + +#include + +#include "OstTraceDefinitions.h" +#ifdef OST_TRACE_COMPILER_IN_USE +#include "connectionstatuspopupTraces.h" +#endif + +// Error code definitions are from these headers +#include // WLAN-specific error code definitions +#include +#include // GPRS-specific causes for Session Managemeei saant +#include // NetDial errors +#include // IPv6 error constants +#include + +// Errors in UI spec not found elsewhere +const TInt KErrPDPMaxContextsReached = -6000; +const TInt KErrDndNameNotFound = -5120; +const TInt KErrGeneralConnection = -50000; +const TInt KErrGenConnNoGPRSNetwork = -3609; + +// Icons representing bearer +_LIT( KIconCellular, "pri_small_wlan.svg" ); +_LIT( KIconWlan, "pri_small_gprs.svg" ); +_LIT( KIconVpn, "pri_small_vpn.svg" ); +_LIT( KIconNone, "" ); + +// Empty text +_LIT( KTextNone, "" ); + +// Programs to fire at tap +_LIT( KWlanViewExeFile, "wlansniffer.exe" ); +_LIT( KConnViewExeFile, "connview.exe" ); +// Command line +_LIT( KExeFileCmd, "" ); + +// Localization files and texts +_LIT(KTrFile, "connectionstatuspopups_"); +_LIT(KTrFilePath, "z:\\resource\\qt\\translations"); + +_LIT(Ktxt_occ_dpophead_connecting, + "txt_occ_dpophead_connecting"); +_LIT(Ktxt_occ_dpophead_connection_failed, + "txt_occ_dpophead_connection_failed"); +_LIT(Ktxt_occ_dpopinfo_internal_error, + "txt_occ_dpopinfo_internal_error"); +_LIT(Ktxt_occ_dpopinfo_wlan_network_not_found, + "txt_occ_dpopinfo_wlan_network_not_found"); +_LIT(Ktxt_occ_dpopinfo_authentication_unsuccessful, + "txt_occ_dpopinfo_authentication_unsuccessful"); +_LIT(Ktxt_occ_dpopinfo_check_security_key, + "txt_occ_dpopinfo_check_security_key"); +_LIT(Ktxt_occ_dpopinfo_check_connection_settings, + "txt_occ_dpopinfo_check_connection_settings"); +_LIT(Ktxt_occ_dpopinfo_sim_card_missing, + "txt_occ_dpopinfo_sim_card_missing"); +_LIT(Ktxt_occ_dpopinfo_service_unreachable, + "txt_occ_dpopinfo_service_unreachable"); +_LIT(Ktxt_occ_dpopinfo_permission_denied, + "txt_occ_dpopinfo_permission_denied"); +_LIT(Ktxt_occ_dpopinfo_connection_already_active, + "txt_occ_dpopinfo_connection_already_active"); +_LIT(Ktxt_occ_dpopinfo_signal_too_weak, + "txt_occ_dpopinfo_signal_too_weak"); +_LIT(Ktxt_occ_dpopinfo_please_try_again, + "txt_occ_dpopinfo_please_try_again"); +_LIT(Ktxt_occ_dpopinfo_connection_unavailable, + "txt_occ_dpopinfo_connection_unavailable"); +_LIT(Ktxt_occ_dpophead_configuration_failed, + "txt_occ_dpophead_configuration_failed"); + + +//----------------------------------------------------------------------------- +// CConnectionStatusPopup::CConnectionStatusPopup() +//----------------------------------------------------------------------------- +// +CConnectionStatusPopup::CConnectionStatusPopup() +:iPopup( NULL ), iPopupState( EPopupClosed ) + { + } + +//----------------------------------------------------------------------------- +// CConnectionStatusPopup::NewL() +//----------------------------------------------------------------------------- +// +CConnectionStatusPopup* CConnectionStatusPopup::NewL() + { + OstTraceFunctionEntry0( CCONNECTIONSTATUSPOPUP_NEWL_ENTRY ); + + CConnectionStatusPopup* popup = new ( ELeave ) CConnectionStatusPopup(); + CleanupStack::PushL( popup ); + popup->ConstructL(); + CleanupStack::Pop( popup ); + + OstTraceFunctionExit0( CCONNECTIONSTATUSPOPUP_NEWL_EXIT ); + return popup; + } + +//----------------------------------------------------------------------------- +// CConnectionStatusPopup::ConstructL() +//----------------------------------------------------------------------------- +// +void CConnectionStatusPopup::ConstructL() + { + OstTraceFunctionEntry0( CCONNECTIONSTATUSPOPUP_CONSTRUCTL_ENTRY ); + + iPopup = CHbDeviceNotificationDialogSymbian::NewL( this ); + + TBool result = HbTextResolverSymbian::Init( KTrFile, KTrFilePath ); + if (!result) + { + OstTrace0( TRACE_FLOW, CCONNECTIONSTATUSPOPUP_CONSTRUCTL,"CConnectionStatusPopup::ConstructL; Loading of localization failed!" ); + } + + OstTraceFunctionExit0( CCONNECTIONSTATUSPOPUP_CONSTRUCTL_EXIT ); + } + +//----------------------------------------------------------------------------- +// CConnectionStatusPopup::~CConnectionStatusPopup() +//----------------------------------------------------------------------------- +// +CConnectionStatusPopup::~CConnectionStatusPopup() + { + OstTraceFunctionEntry0( CCONNECTIONSTATUSPOPUP_CCONNECTIONSTATUSPOPUP_ENTRY ); + + if (iPopup) + { + iPopup->Close(); + delete iPopup; + } + + OstTraceFunctionExit0( CCONNECTIONSTATUSPOPUP_CCONNECTIONSTATUSPOPUP_EXIT ); + } + +//----------------------------------------------------------------------------- +// CConnectionStatusPopup::ConnectingDiscreetPopup() +//----------------------------------------------------------------------------- +// +void CConnectionStatusPopup::ConnectingViaDiscreetPopup( ) + { + OstTraceFunctionEntry0( CCONNECTIONSTATUSPOPUP_CONNECTINGVIADISCREETPOPUP_ENTRY ); + + TRAP_IGNORE( + HBufC* title = HbTextResolverSymbian::LoadLC( + Ktxt_occ_dpophead_connecting ); + iPopup->SetTitleL( title->Des() ); + CleanupStack::PopAndDestroy( title ); + iPopup->SetTextL( KTextNone ); + iPopup->SetIconNameL( KIconNone ); + ); + + SetState( EPopupConnecting ); + + OstTraceFunctionExit0( CCONNECTIONSTATUSPOPUP_CONNECTINGVIADISCREETPOPUP_EXIT ); + } + + +//----------------------------------------------------------------------------- +// CConnectionStatusPopup::ConnectingViaDiscreetPopup() +//----------------------------------------------------------------------------- +// +void CConnectionStatusPopup::ConnectingViaDiscreetPopup( + TUint32 aIapId, + TBool aConnectionAlreadyActive ) + { + OstTraceFunctionEntry0( DUP1_CCONNECTIONSTATUSPOPUP_CONNECTINGVIADISCREETPOPUP_ENTRY ); + OstTraceExt2( TRACE_FLOW, CCONNECTIONSTATUSPOPUP_CONNECTINGVIADISCREETPOPUP, "CConnectionStatusPopup::ConnectingViaDiscreetPopup;aIapId=%u;aConnectionAlreadyActive=%u", aIapId, aConnectionAlreadyActive ); + + // Grab iap info even if we do not need it yet (when sharing), + // because icon may be used later if general error happens. + TRAP_IGNORE( FormatIapInfoL( aIapId ); ); + + if (aConnectionAlreadyActive) + { + // If sharing a connection, do not show the popup. + SetState( EPopupClosed ); + } + else + { + SetState( EPopupConnectingIap ); + } + + OstTraceFunctionExit0( DUP1_CCONNECTIONSTATUSPOPUP_CONNECTINGVIADISCREETPOPUP_EXIT ); + } + +//----------------------------------------------------------------------------- +// CConnectionStatusPopup::CancelConnectingViaDiscreetPopup() +//----------------------------------------------------------------------------- +// +void CConnectionStatusPopup::CancelConnectingViaDiscreetPopup() + { + OstTraceFunctionEntry0( CCONNECTIONSTATUSPOPUP_CANCELCONNECTINGVIADISCREETPOPUP_ENTRY ); + + SetState( EPopupClosed ); + + OstTraceFunctionExit0( CCONNECTIONSTATUSPOPUP_CANCELCONNECTINGVIADISCREETPOPUP_EXIT ); + } + +//----------------------------------------------------------------------------- +// CConnectionStatusPopup::ConnectionErrorDiscreetPopup() +//----------------------------------------------------------------------------- +// +void CConnectionStatusPopup::ConnectionErrorDiscreetPopup( TInt aErrorCode ) + { + OstTraceFunctionEntry0( CCONNECTIONSTATUSPOPUP_CONNECTIONERRORDISCREETPOPUP_ENTRY ); + + TBool showPopup( EFalse ); + TRAP_IGNORE( showPopup = ResolveErrorCodeL( aErrorCode ); ); + + OstTraceExt2( TRACE_FLOW, CCONNECTIONSTATUSPOPUP_CONNECTIONERRORDISCREETPOPUP, "CConnectionStatusPopup::ConnectionErrorDiscreetPopup;aErrorCode=%d;showPopup=%u", aErrorCode, showPopup ); + + if (showPopup) + { + SetState( EPopupError ); + } + + OstTraceFunctionExit0( CCONNECTIONSTATUSPOPUP_CONNECTIONERRORDISCREETPOPUP_EXIT ); + } + +//----------------------------------------------------------------------------- +// CConnectionStatusPopup::SetState() +//----------------------------------------------------------------------------- +// +void CConnectionStatusPopup::SetState( TPopupState aNewState ) + { + OstTraceExt2( TRACE_FLOW, CCONNECTIONSTATUSPOPUP_SETSTATE, "CConnectionStatusPopup::SetState;iPopupState=%u;aNewState=%u", iPopupState, aNewState ); + + switch (aNewState) + { + + case EPopupClosed: + // Close popup if it's not already closing or closed + if (iPopupState != EPopupClosed && iPopupState != EPopupError) + { + iPopup->Close(); + } + break; + + case EPopupConnecting: + iPopup->EnableTouchActivation( EFalse ); + iPopup->SetTimeout( KForeverTimeout ); + break; + + case EPopupConnectingIap: + iPopup->EnableTouchActivation( ETrue ); + iPopup->SetTimeout( KForeverTimeout ); + break; + + default: // EPopupError + __ASSERT_DEBUG( aNewState == EPopupError, User::Invariant() ); + iPopup->EnableTouchActivation( EFalse ); + iPopup->SetTimeout( KHbLongNotificationDialogTimeout ); + break; + } + + if (aNewState != EPopupClosed) + { + // Show or update popup + if (iPopupState == EPopupClosed) + { + TRAP_IGNORE( iPopup->ShowL() ); + } + else + { + TRAP_IGNORE( iPopup->UpdateL() ); + } + } + + iPopupState = aNewState; + } + +//----------------------------------------------------------------------------- +// CConnectionStatusPopup::FormatIapInfoL() +//----------------------------------------------------------------------------- +// +void CConnectionStatusPopup::FormatIapInfoL( TUint32 aIapId ) + { + OstTraceFunctionEntry0( CCONNECTIONSTATUSPOPUP_FORMATIAPINFOL_ENTRY ); + + // Title + HBufC* title = HbTextResolverSymbian::LoadLC( + Ktxt_occ_dpophead_connecting ); + iPopup->SetTitleL( title->Des() ); + CleanupStack::PopAndDestroy( title ); + + // Load iap info from cmmanager + HBufC* connectionName( NULL ); + TUint bearerType( 0 ); + + RCmManager cmMgr; + CleanupClosePushL( cmMgr ); + RCmConnectionMethod plugin; + CleanupClosePushL( plugin ); + cmMgr.OpenL(); + plugin = cmMgr.ConnectionMethodL( aIapId ); + bearerType = plugin.GetIntAttributeL( CMManager::ECmBearerType ); + connectionName = plugin.GetStringAttributeL( CMManager::ECmName ); + CleanupStack::PopAndDestroy( &plugin ); + CleanupStack::PopAndDestroy( &cmMgr ); + + // Text + CleanupStack::PushL( connectionName ); + if (connectionName) + { + iPopup->SetTextL( connectionName->Des() ); + } + else + { + iPopup->SetTextL( KTextNone ); + } + CleanupStack::PopAndDestroy( connectionName ); + + // Icon + switch (bearerType) + { + case KUidWlanBearerType: + iPopup->SetIconNameL( KIconWlan ); + break; + case KPluginVPNBearerTypeUid: + iPopup->SetIconNameL( KIconVpn ); + break; + default: + iPopup->SetIconNameL( KIconCellular ); + } + + OstTraceFunctionExit0( CCONNECTIONSTATUSPOPUP_FORMATIAPINFOL_EXIT ); + } + +//----------------------------------------------------------------------------- +// CConnectionStatusPopup::ResolveErrorCodeL() +//----------------------------------------------------------------------------- +// +TBool CConnectionStatusPopup::ResolveErrorCodeL( TInt aErrorCode ) + { + OstTraceFunctionEntry0( CCONNECTIONSTATUSPOPUP_RESOLVEERRORCODEL_ENTRY ); + + // Icons, which are resolved at the end + enum TIconType + { + EIconWlan, EIconCellular, EIconNone + }; + TIconType icon = EIconWlan; + + TPtrC titlePtr; + titlePtr.Set( Ktxt_occ_dpophead_connection_failed ); + TPtrC textPtr; + + // Resolve title, text and icon of error code. + // Groups are from OCC UI spec 1.0 + switch (aErrorCode) + { + + // Skipped errors, for which the popup is not shown. + case KErrNone: + case KErrConnectionTerminated: + case KErrDisconnected: + case KErrCancel: + return EFalse; + + // Group 1 + case KErrIfChangingPassword: + icon = EIconCellular; + // These were GPRS; fall through + case KErrWlanInternalError: + textPtr.Set( Ktxt_occ_dpopinfo_internal_error ); + break; + + // Group 2 + case KErrWlanNetworkNotFound: + textPtr.Set( Ktxt_occ_dpopinfo_wlan_network_not_found ); + break; + + // Group 3 + case KErrGprsUserAuthenticationFailure: + icon = EIconCellular; + // These were GPRS; fall through + case KErrWlanOpenAuthFailed: + case KErrWlanSharedKeyAuthRequired: + case KErrWlanWpaAuthRequired: + case KErrWlanWpaAuthFailed: + case KErrWlan802dot1xAuthFailed: + case KErrWlanWpaCounterMeasuresActive: + case KErrWlanPskModeRequired: + case KErrWlanEapModeRequired: + case KErrWlanEapSimFailed: + case KErrWlanEapTlsFailed: + case KErrWlanEapPeapFailed: + case KErrWlanEapMsChapv2: // Is the same as KErrWlanEapMsChaPFailed + case KErrWlanEapAkaFailed: + case KErrWlanEapTtlsFailed: + case KErrWlanLeapFailed: + case KErrWlanEapGtcFailed: + case KErrWlanWpa2OnlyModeNotSupported: + case KErrWlanEapFastTunnelCompromiseError: + case KErrWlanEapFastUnexpextedTlvExhanged: + case KErrWlanEapFastNoPacNorCertsToAuthenticateWithProvDisabled: + case KErrWlanEapFastNoMatchingPacForAid: + case KErrWlanEapFastAuthFailed: + case KErrWlanEapFastPacStoreCorrupted: + textPtr.Set( Ktxt_occ_dpopinfo_authentication_unsuccessful ); + break; + + // Group 4 + case KErrWlanSharedKeyAuthFailed: + case KErrWlanIllegalWpaPskKey: + case KErrWlanIllegalEncryptionKeys: + textPtr.Set( Ktxt_occ_dpopinfo_check_security_key ); + break; + + // Group 5 + case KErrExitModemError: + case KErrExitLoginFail: + case KErrExitScriptTimeOut: + case KErrExitScriptError: + case KErrIfAuthenticationFailure: + case KErrIfAuthNotSecure: + case KErrIfAccountDisabled: + case KErrIfRestrictedLogonHours: + case KErrIfPasswdExpired: + case KErrIfNoDialInPermission: + case KErrGprsMissingorUnknownAPN: + icon = EIconCellular; + textPtr.Set( Ktxt_occ_dpopinfo_check_connection_settings ); + break; + + // Group 6 + case KErrWlanSimNotInstalled: + textPtr.Set( Ktxt_occ_dpopinfo_sim_card_missing ); + break; + + // Group 7 + case KErrWlanNotSubscribed: + case KErrWlanAccessBarred: + textPtr.Set( Ktxt_occ_dpopinfo_service_unreachable ); + break; + + // Group 8 + case KErrPermissionDenied: + case KErrWlanPasswordExpired: + case KErrWlanNoDialinPermissions: + case KErrWlanAccountDisabled: + case KErrWlanRestrictedLogonHours: + case KErrWlanServerCertificateExpired: + case KErrWlanCerficateVerifyFailed: + case KErrWlanNoUserCertificate: + case KErrWlanNoCipherSuite: + case KErrWlanUserRejected: + case KErrWlanUserCertificateExpired: + textPtr.Set( Ktxt_occ_dpopinfo_permission_denied ); + break; + + // Group 9 + case KErrPDPMaxContextsReached: + icon = EIconCellular; + // These were GPRS; fall through + case KErrWlanConnAlreadyActive: + textPtr.Set( Ktxt_occ_dpopinfo_connection_already_active ); + break; + + // Group 10 + case KErrWlanSignalTooWeak: + textPtr.Set( Ktxt_occ_dpopinfo_signal_too_weak ); + break; + + // Group 11 + case KErrIfCallbackNotAcceptable: + case KErrIfDNSNotFound: + case KErrIfLRDBadLine: + case KErrNetUnreach: + case KErrHostUnreach: + case KErrNoProtocolOpt: + case KErrUrgentData: + case KErrInet6NoRoute: + case KErrDndNameNotFound: + case KErrGeneralConnection: + case KErrGprsMSCTemporarilyNotReachable: + case KErrGprsLlcOrSndcpFailure: + case KErrGprsInsufficientResources: + case KErrGprsActivationRejectedByGGSN: + case KErrPacketDataTsyInvalidAPN: + icon = EIconCellular; + // These were GPRS; fall through + case KErrWlanRoamingFailed: + textPtr.Set( Ktxt_occ_dpopinfo_please_try_again ); + break; + + // Group 12 + case KErrGenConnNoGPRSNetwork: + case KErrGprsServicesNotAllowed: + case KErrGprsAndNonGprsServicesNotAllowed: + case KErrGprsMSIdentityCannotBeDerivedByTheNetwork: + case KErrGprsMSImplicitlyDetached: + case KErrGsmMMNetworkFailure: + case KErrGprsUnknownPDPAddress: + case KErrGprsActivationRejected: + case KErrGsmMMServiceOptionNotSubscribed: + case KErrGsmMMServiceOptionTemporaryOutOfOrder: + case KErrGprsNSAPIAlreadyUsed: + case KErrGprsQoSNotAccepted: + case KErrGprsReactivationRequested: + icon = EIconCellular; + textPtr.Set( Ktxt_occ_dpopinfo_connection_unavailable ); + break; + + // Group 13 + case KErrWlanProtectedSetupDevicePasswordAuthFailure: + case KErrWlanProtectedSetupPINMethodNotSupported: + case KErrWlanProtectedSetupPBMethodNotSupported: + titlePtr.Set( Ktxt_occ_dpophead_configuration_failed ); + textPtr.Set( Ktxt_occ_dpopinfo_authentication_unsuccessful ); + break; + + // Group 14 + case KErrWlanProtectedSetupOOBInterfaceReadError: + case KErrWlanProtectedSetupDecryptionCRCFailure: + case KErrWlanProtectedSetup2_4ChannelNotSupported: + case KErrWlanProtectedSetup5_0ChannelNotSupported: + case KErrWlanProtectedSetupNetworkAuthFailure: + case KErrWlanProtectedSetupNoDHCPResponse: + case KErrWlanProtectedSetupFailedDHCPConfig: + case KErrWlanProtectedSetupIPAddressConflict: + case KErrWlanProtectedSetupCouldNotConnectToRegistrar: + case KErrWlanProtectedSetupMultiplePBCSessionsDetected: + case KErrWlanProtectedSetupRogueActivitySuspected: + case KErrWlanProtectedSetupDeviceBusy: + case KErrWlanProtectedSetupSetupLocked: + case KErrWlanProtectedSetupMessageTimeout: + case KErrWlanProtectedSetupRegistrationSessionTimeout: + titlePtr.Set( Ktxt_occ_dpophead_configuration_failed ); + textPtr.Set( Ktxt_occ_dpopinfo_please_try_again ); + break; + + // For error values not specifically mapped to any error message + // the discreet pop-up #12 is used. + default: + icon = EIconNone; + textPtr.Set( Ktxt_occ_dpopinfo_connection_unavailable ); + break; + } + + // Load and set title, text and icon + HBufC* titleBuf = HbTextResolverSymbian::LoadLC( titlePtr ); + iPopup->SetTitleL( titleBuf->Des() ); + HBufC* textBuf = HbTextResolverSymbian::LoadLC( textPtr ); + iPopup->SetTextL( textBuf->Des() ); + CleanupStack::PopAndDestroy( 2, titleBuf ); + + switch (icon) + { + case EIconWlan: + iPopup->SetIconNameL( KIconWlan ); + break; + case EIconCellular: + iPopup->SetIconNameL( KIconCellular ); + break; + default: + __ASSERT_DEBUG( icon == EIconNone, User::Invariant()); + // Leave icon as-is, either set by ConnectingViaDiscreetPopup + // or undefined. + break; + } + + OstTraceFunctionExit0( CCONNECTIONSTATUSPOPUP_RESOLVEERRORCODEL_EXIT ); + return ETrue; + } + + +//----------------------------------------------------------------------------- +// CConnectionStatusPopup::NotificationDialogActivated() +//----------------------------------------------------------------------------- +// +void CConnectionStatusPopup::NotificationDialogActivated( + const CHbDeviceNotificationDialogSymbian* /*aDialog*/ ) + { + OstTraceFunctionEntry0( CCONNECTIONSTATUSPOPUP_NOTIFICATIONDIALOGACTIVATED_ENTRY ); + + // Launch wlan view or connection view depending of bearer + TPtrC procName; + if (iPopup->IconName().Compare( KIconWlan ) == 0) + { + procName.Set( KWlanViewExeFile ); + } + else if (iPopup->IconName().Compare( KIconCellular ) == 0) + { + procName.Set( KConnViewExeFile ); + } + else + { + OstTraceFunctionExit0( CCONNECTIONSTATUSPOPUP_NOTIFICATIONDIALOGACTIVATED_EXIT ); + + return; + } + + RProcess proc; + TInt procError = proc.Create( procName, KExeFileCmd ); + OstTrace1( TRACE_FLOW, CCONNECTIONSTATUSPOPUP_NOTIFICATIONDIALOGACTIVATED, "CConnectionStatusPopup::NotificationDialogActivated;procError=%d", procError ); + if (!procError) + { + proc.Resume(); + proc.Close(); // Closes the handle, not the process. + } + + OstTraceFunctionExit0( DUP1_CCONNECTIONSTATUSPOPUP_NOTIFICATIONDIALOGACTIVATED_EXIT ); + } + +//----------------------------------------------------------------------------- +// CConnectionStatusPopup::NotificationDialogClosed() +//----------------------------------------------------------------------------- +// +void CConnectionStatusPopup::NotificationDialogClosed( + const CHbDeviceNotificationDialogSymbian* /*aDialog*/, + TInt /*aCompletionCode*/ ) + { + OstTraceFunctionEntry0( CCONNECTIONSTATUSPOPUP_NOTIFICATIONDIALOGCLOSED_ENTRY ); + + SetState( EPopupClosed ); + + OstTraceFunctionExit0( CCONNECTIONSTATUSPOPUP_NOTIFICATIONDIALOGCLOSED_EXIT ); + }