diff -r fc7b30ed2058 -r 05bc53fe583b connectionutilities/ConnectionDialogs/ConnectionUiUtilities/NotifSrc/connectionerrordiscreetpopup.cpp --- a/connectionutilities/ConnectionDialogs/ConnectionUiUtilities/NotifSrc/connectionerrordiscreetpopup.cpp Thu Aug 19 10:18:49 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,432 +0,0 @@ -/* - * 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 CConnectionErrorDiscreetPopup. - * - */ - -// INCLUDE FILES -#include "connectionerrordiscreetpopup.h" -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#ifdef _DEBUG -#include -#endif - -// Error code definitions are from these headers -#include // WLAN-specific error code definitions -#include -#include // GPRS-specific causes for Session Management -#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; - -// No discreet popup => Uid 0 -const TUid KDiscreetPopupUidNone = - { - 0x0 - }; -// Path of the app's iconfile -_LIT( KIconFileName, "\\resource\\apps\\connectionuiutilities.mif" ); - -// ================= MEMBER FUNCTIONS ======================= - -// --------------------------------------------------------- -// CConnectionErrorDiscreetPopup::CConnectionErrorDiscreetPopup -// --------------------------------------------------------- -// -CConnectionErrorDiscreetPopup::CConnectionErrorDiscreetPopup( - CConnectionErrorDiscreetPopupNotif* aNotif) : - CActive(EPriorityUserInput), // Standard priority - iNotif(aNotif), iErrorCode(KErrNone) - { - } - -// --------------------------------------------------------- -// CConnectionErrorDiscreetPopup::NewLC -// --------------------------------------------------------- -// -CConnectionErrorDiscreetPopup* CConnectionErrorDiscreetPopup::NewLC( - CConnectionErrorDiscreetPopupNotif* aNotif) - { - CConnectionErrorDiscreetPopup* self = - new (ELeave) CConnectionErrorDiscreetPopup(aNotif); - CleanupStack::PushL(self); - self->ConstructL(); - return self; - } - -// --------------------------------------------------------- -// CConnectionErrorDiscreetPopup::NewL -// --------------------------------------------------------- -// -CConnectionErrorDiscreetPopup* CConnectionErrorDiscreetPopup::NewL( - CConnectionErrorDiscreetPopupNotif* aNotif) - { - CConnectionErrorDiscreetPopup* self = - CConnectionErrorDiscreetPopup::NewLC(aNotif); - CleanupStack::Pop(self); - return self; - } - -// --------------------------------------------------------- -// CConnectionErrorDiscreetPopup::ConstructL -// --------------------------------------------------------- -// -void CConnectionErrorDiscreetPopup::ConstructL() - { - CActiveScheduler::Add(this); // Add to scheduler - icmManager.OpenL(); - } - -// --------------------------------------------------------- -// CConnectionErrorDiscreetPopup::~CConnectionErrorDiscreetPopup -// --------------------------------------------------------- -// -CConnectionErrorDiscreetPopup::~CConnectionErrorDiscreetPopup() - { - Cancel(); // Cancel any request, if outstanding - icmManager.Close(); - // Delete instance variables if any - } - -// --------------------------------------------------------- -// CConnectionErrorDiscreetPopup::DoCancel -// --------------------------------------------------------- -// -void CConnectionErrorDiscreetPopup::DoCancel() - { - } - -// --------------------------------------------------------- -// CConnectionErrorDiscreetPopup::StartL -// --------------------------------------------------------- -// -void CConnectionErrorDiscreetPopup::StartL(TUint32 aErrCode) - { - Cancel(); // Cancel any request, just to be sure - - iErrorCode = aErrCode; - - SetActive(); // Tell scheduler a request is active - iClientStatus = &iStatus; - User::RequestComplete(iClientStatus, KErrNone); - - // Complete the note so client can continue its tasks - // immediately - iNotif->SetCancelledFlag(ETrue); - iNotif->CompleteL(KErrNone); - } - -// --------------------------------------------------------- -// CConnectionErrorDiscreetPopup::RunL -// --------------------------------------------------------- -// -void CConnectionErrorDiscreetPopup::RunL() - { - if (iStatus == KErrNone) - { - TInt text1 = 0; - TInt text2 = 0; - TInt bitmapId = 0; - TInt maskId = 0; - // Show only if error code can be resolved - if (ResolveErrorCode(text1, text2, bitmapId, maskId)) - { - // Load strings from resources - HBufC* stringText1 = StringLoader::LoadLC(text1); - HBufC* stringText2 = StringLoader::LoadLC(text2); - CAknDiscreetPopup::ShowGlobalPopupL(*stringText1, // 1st text row - *stringText2, // second text row - KAknsIIDDefault, // icon skin id - KIconFileName, // bitmap file path - bitmapId, // bitmap id - maskId, // mask id - KAknDiscreetPopupDurationLong, // flags - 0, // command id - NULL, // command observer - KDiscreetPopupUidNone, // application to be launched - KDiscreetPopupUidNone); // view to be activated - - CleanupStack::PopAndDestroy(2, stringText1); - } - } - - // Cleanup - iNotif->Cancel(); - } - -// --------------------------------------------------------- -// CConnectionErrorDiscreetPopup::RunError -// --------------------------------------------------------- -// -TInt CConnectionErrorDiscreetPopup::RunError(TInt aError) - { - return aError; - } - -// --------------------------------------------------------- -// CConnectionErrorDiscreetPopup::ResolveErrorCode -// --------------------------------------------------------- -// -TInt CConnectionErrorDiscreetPopup::ResolveErrorCode(TInt& aText1, - TInt& aText2, TInt& aBitmap, TInt& aMask) - { - -#ifdef _DEBUG - RDebug::Print( _L("CConnectionErrorDiscreetPopup::ResolveErrorCode - code %d"), - iErrorCode ); -#endif - - // Icons, which are resolved at the end - enum TIconType - { - EIconWlan, EIconCellular, EIconNone - }; - - // For most cases, icon is WLAN - TIconType icon = EIconWlan; - - // For most cases, aText1 = "Connection failed" - aText1 = R_QTN_OCC_CONNECTION_FAILED_DISCREET_POPUP_TEXT1; - - // Resolve aText1, aText2 and icon of error code. - // Groups are from OCC GUI spec 1.0 - switch (iErrorCode) - { - - // Group 1 - case KErrIfChangingPassword: - icon = EIconCellular; - // These were GPRS; fall through - case KErrWlanInternalError: - aText2 = R_QTN_OCC_INTERNAL_ERROR_DISCREET_POPUP_TEXT2; - break; - - // Group 2 - case KErrWlanNetworkNotFound: - aText2 = R_QTN_OCC_WLAN_NOT_FOUND_DISCREET_POPUP_TEXT2; - 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: - aText2 = R_QTN_OCC_AUTH_ERROR_DISCREET_POPUP_TEXT2; - break; - - // Group 4 - case KErrWlanSharedKeyAuthFailed: - case KErrWlanIllegalWpaPskKey: - case KErrWlanIllegalEncryptionKeys: - aText2 = R_QTN_OCC_CHECK_KEY_DISCREET_POPUP_TEXT2; - 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; - aText2 = R_QTN_OCC_CHECK_SETTINGS_DISCREET_POPUP_TEXT2; - break; - - // Group 6 - case KErrWlanSimNotInstalled: - aText2 = R_QTN_OCC_SIM_ERROR_DISCREET_POPUP_TEXT2; - break; - - // Group 7 - case KErrWlanNotSubscribed: - case KErrWlanAccessBarred: - aText2 = R_QTN_OCC_SERVICE_ERROR_DISCREET_POPUP_TEXT2; - break; - - // Group 8 - case KErrPermissionDenied: - icon = EIconNone; // Permission denied may come with any bearer. - // Fall through - case KErrWlanPasswordExpired: - case KErrWlanNoDialinPermissions: - case KErrWlanAccountDisabled: - case KErrWlanRestrictedLogonHours: - case KErrWlanServerCertificateExpired: - case KErrWlanCerficateVerifyFailed: - case KErrWlanNoUserCertificate: - case KErrWlanNoCipherSuite: - case KErrWlanUserRejected: - case KErrWlanUserCertificateExpired: - aText2 = R_QTN_OCC_ACCESS_ERROR_DISCREET_POPUP_TEXT2; - break; - - // Group 9 - case KErrPDPMaxContextsReached: - icon = EIconCellular; - // These were GPRS; fall through - case KErrWlanConnAlreadyActive: - aText2 = R_QTN_OCC_ALREADY_ACT_DISCREET_POPUP_TEXT2; - break; - - // Group 10 - case KErrWlanSignalTooWeak: - aText2 = R_QTN_OCC_WLAN_WEAK_DISCREET_POPUP_TEXT2; - 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: - aText2 = R_QTN_OCC_TRY_AGAIN_DISCREET_POPUP_TEXT2; - 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; - aText2 = R_QTN_OCC_CONN_UNAVAILABLE_DISCREET_POPUP_TEXT2; - break; - - // Group 13 - case KErrWlanProtectedSetupDevicePasswordAuthFailure: - case KErrWlanProtectedSetupPINMethodNotSupported: - case KErrWlanProtectedSetupPBMethodNotSupported: - aText1 = R_QTN_OCC_CONFIG_FAILED_DISCREET_POPUP_TEXT1; - aText2 = R_QTN_OCC_AUTH_ERROR_DISCREET_POPUP_TEXT2; - 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: - aText1 = R_QTN_OCC_CONFIG_FAILED_DISCREET_POPUP_TEXT1; - aText2 = R_QTN_OCC_TRY_AGAIN_DISCREET_POPUP_TEXT2; - break; - - // Skipped errors, for which popup is not shown. - case KErrNone: - case KErrConnectionTerminated: - case KErrDisconnected: - case KErrCancel: - return EFalse; - - // For error values not specifically mapped to any error message - // the discreet pop-up #12 is used. - default: - aText2 = R_QTN_OCC_CONN_UNAVAILABLE_DISCREET_POPUP_TEXT2; - icon = EIconNone; - break; - } - - // Resolve icon to aBitmap & aMask - switch (icon) - { - case EIconWlan: - aBitmap = EMbmConnectionuiutilitiesQgn_prop_wlan_bearer; - aMask = EMbmConnectionuiutilitiesQgn_prop_wlan_bearer_mask; - break; - case EIconCellular: - aBitmap = EMbmConnectionuiutilitiesQgn_prop_wml_gprs; - aMask = EMbmConnectionuiutilitiesQgn_prop_wml_gprs_mask; - break; - default: - ASSERT(icon == EIconNone); - aBitmap = -1; - aMask = -1; - break; - } - - return ETrue; - }