# HG changeset patch # User Dremov Kirill (Nokia-D-MSW/Tampere) # Date 1265064274 -7200 # Node ID d5423fbb4f29c8addfe6ba473699a928683d143a # Parent 164170e6151a91793ca84e554b075adb23e2659b Revision: 201003 Kit: 201005 diff -r 164170e6151a -r d5423fbb4f29 gba/gbaapi/inc/GbaClientrequesthandler.h --- a/gba/gbaapi/inc/GbaClientrequesthandler.h Tue Jan 26 15:20:08 2010 +0200 +++ b/gba/gbaapi/inc/GbaClientrequesthandler.h Tue Feb 02 00:44:34 2010 +0200 @@ -20,7 +20,7 @@ #define GBACLIENTREQUESTHANDLER_H #include -#include "gbautility.h" +#include // CLASS DECLARATION class RGbaServerSession; diff -r 164170e6151a -r d5423fbb4f29 gba/gbaapi/inc/GbaServerSession.h --- a/gba/gbaapi/inc/GbaServerSession.h Tue Jan 26 15:20:08 2010 +0200 +++ b/gba/gbaapi/inc/GbaServerSession.h Tue Feb 02 00:44:34 2010 +0200 @@ -20,7 +20,7 @@ #define GBASERVERSESSION_H_ #include -#include +#include class RGbaServerSession : public RSessionBase { diff -r 164170e6151a -r d5423fbb4f29 gba/gbaapi/src/GbaUtility.cpp --- a/gba/gbaapi/src/GbaUtility.cpp Tue Jan 26 15:20:08 2010 +0200 +++ b/gba/gbaapi/src/GbaUtility.cpp Tue Feb 02 00:44:34 2010 +0200 @@ -15,7 +15,7 @@ * */ -#include +#include #include "GbaClientrequesthandler.h" #include "GBALogger.h" diff -r 164170e6151a -r d5423fbb4f29 gba/gbafilter/inc/HTTPFilterGBA.h --- a/gba/gbafilter/inc/HTTPFilterGBA.h Tue Jan 26 15:20:08 2010 +0200 +++ b/gba/gbafilter/inc/HTTPFilterGBA.h Tue Feb 02 00:44:34 2010 +0200 @@ -24,7 +24,7 @@ #include #include -#include +#include class RHTTPResponse; class RHTTPTransaction; diff -r 164170e6151a -r d5423fbb4f29 gba/gbaserver/inc/bootstrap.h --- a/gba/gbaserver/inc/bootstrap.h Tue Jan 26 15:20:08 2010 +0200 +++ b/gba/gbaserver/inc/bootstrap.h Tue Feb 02 00:44:34 2010 +0200 @@ -21,7 +21,7 @@ #include #include #include -#include +#include #include "M3GPPAuthenticationCallback.h" #include "gbauicc.h" diff -r 164170e6151a -r d5423fbb4f29 pkiutilities/CertmanUi/INC/Certmanuidialogs.h --- a/pkiutilities/CertmanUi/INC/Certmanuidialogs.h Tue Jan 26 15:20:08 2010 +0200 +++ b/pkiutilities/CertmanUi/INC/Certmanuidialogs.h Tue Feb 02 00:44:34 2010 +0200 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2003-2007 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2003-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" @@ -15,73 +15,48 @@ * */ - -#ifndef CERTMANUIDIALOGS_H -#define CERTMANUIDIALOGS_H +#ifndef CERTMANUIDIALOGS_H +#define CERTMANUIDIALOGS_H -// INCLUDES #include -// FORWARD DECLARATIONS - class CAknGlobalNote; class CAknGlobalConfirmationQuery; class CAknWaitDialog; -// CLASS DECLARATION - /** -* CCertManUIKeeper view control class. -* -* -*/ + * CCertManUIWaitDialog can be used to display deleting wait note, + * or progress wait note. + */ class CCertManUIWaitDialog: public CBase { public: // functions - /** - * Default Constructor - */ + * Default constructor. + */ CCertManUIWaitDialog(); /** - * Destructor - */ + * Destructor. + */ ~CCertManUIWaitDialog(); /** - * Display dialog - * @param selector for progress or delete dialog - */ - void StartWaitDialogL(TInt aDialogSelector); + * Display wait dialog. + * @param Selector for progress or delete dialog, must be either + * ECertmanUiDeleteDialog or ECertmanUiWaitDialog. + */ + void StartWaitDialogL( TInt aDialogSelector ); /** - * Close dialog. - */ - + * Closes dialog. + */ void CloseWaitDialogL(); - - private: // Functions - - - static void CleanupWaitDialog(TAny* aAny); - - private: // Data - - /** - * For wait note - */ - CAknWaitDialog* iDialog; - - /** - * Flag whether dialof is being displayed - */ - TBool iDisplayed; - + CAknWaitDialog* iDialog; + TInt iOpenCount; }; -#endif // CERTMANUIDIALOGS_H +#endif // CERTMANUIDIALOGS_H -// End of File \ No newline at end of file diff -r 164170e6151a -r d5423fbb4f29 pkiutilities/CertmanUi/SRC/Certmanuidialogs.cpp --- a/pkiutilities/CertmanUi/SRC/Certmanuidialogs.cpp Tue Jan 26 15:20:08 2010 +0200 +++ b/pkiutilities/CertmanUi/SRC/Certmanuidialogs.cpp Tue Feb 02 00:44:34 2010 +0200 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2003-2007 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2003-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" @@ -15,127 +15,98 @@ * */ - -// INCLUDE FILES - #include #include #include "Certmanuidialogs.h" #include "CertManUILogger.h" #include "CertmanuiCommon.h" - #ifdef _DEBUG _LIT( KDesCertmanUiFault, "CertmanUi" ); #endif + // ================= MEMBER FUNCTIONS ======================= // --------------------------------------------------------- // CCertManUiDialog::CCertManUiDialogs() -// Default c++ constructor // --------------------------------------------------------- +// CCertManUIWaitDialog::CCertManUIWaitDialog() { - iDialog = NULL; } // --------------------------------------------------------- // CCertManUiDialog::~CCertManUiDialogs() -// Destructor // --------------------------------------------------------- +// CCertManUIWaitDialog::~CCertManUIWaitDialog() { - if ( iDialog ) + if( iDialog ) { delete iDialog; + iDialog = NULL; } } //--------------------------------------------------------------- -// CCertManUiDialog::StartWaitDialogL -// Displays wait dialog +// CCertManUiDialog::StartWaitDialogL() //--------------------------------------------------------------- +// void CCertManUIWaitDialog::StartWaitDialogL( TInt aDialogSelector ) { CERTMANUILOGGER_ENTERFN( "CCertManUIWaitDialog::StartWaitDialogL" ); - TInt dialog = 0; - // If iDisplayed flag is true, but iDialog is NULL we have had leave. - // Reset iDisplayed to normalize situation - if(iDisplayed && iDialog == NULL) - { - iDisplayed = EFalse; - } - - if(!iDisplayed) + if( !iDialog ) { - if( !iDialog ) - { - iDialog = new ( ELeave )CAknWaitDialog( REINTERPRET_CAST(CEikDialog**, - &iDialog), ETrue ); - } + iDialog = new( ELeave ) CAknWaitDialog( reinterpret_cast< CEikDialog** >( &iDialog ) ); - - //CleanupStack::PushL(TCleanupItem(CleanupWaitDialog, (TAny**)&iDialog)); - - switch(aDialogSelector) + TInt dialog = 0; + switch( aDialogSelector ) { case ECertmanUiDeleteDialog: - LOG_WRITE("Show delete note"); + LOG_WRITE( "Show delete note" ); dialog = R_CERTMANUI_DELETE_WAIT_NOTE; break; case ECertmanUiWaitDialog: - LOG_WRITE("Show wait note"); + LOG_WRITE( "Show wait note" ); dialog = R_CERTMANUI_WAIT_NOTE; break; + default: - __ASSERT_DEBUG( EFalse, User::Panic(KDesCertmanUiFault, - EBadDialogSelector)); + __ASSERT_DEBUG( EFalse, User::Panic( KDesCertmanUiFault, EBadDialogSelector ) ); break; } - iDialog->ExecuteLD(dialog); - iDisplayed = ETrue; + iDialog->ExecuteLD( dialog ); } + ++iOpenCount; + CERTMANUILOGGER_LEAVEFN( "CCertManUIWaitDialog::StartWaitDialogL" ); } //--------------------------------------------------------------- // CCertManUiDialog::CloseWaitDialogL -// Close wait dialog //--------------------------------------------------------------- +// void CCertManUIWaitDialog::CloseWaitDialogL() { CERTMANUILOGGER_ENTERFN( "CCertManUIWaitDialog::CloseWaitDialogL" ); - if( iDialog ) + --iOpenCount; + + if( iDialog && !iOpenCount ) { - iDialog->ProcessFinishedL(); - //CleanupStack::PopAndDestroy(); + TRAPD( err, iDialog->ProcessFinishedL() ); + if( !err ) + { + delete iDialog; + iDialog = NULL; + } } - iDisplayed = EFalse; CERTMANUILOGGER_LEAVEFN( "CCertManUIWaitDialog::CloseWaitDialogL" ); } -// --------------------------------------------------------- -// CCertManUIWaitDialog::CleanupWaitDialog -// -// --------------------------------------------------------- -void CCertManUIWaitDialog::CleanupWaitDialog(TAny* aAny) - { - CERTMANUILOGGER_ENTERFN( "CCertManUIWaitDialog::CleanupWaitDialog" ); - - CAknWaitDialog** dialog = (CAknWaitDialog**) aAny; - if ( dialog && *dialog ) - { - delete *dialog; - } - CERTMANUILOGGER_LEAVEFN( "CCertManUIWaitDialog::CleanupWaitDialog" ); - } - - -// End of file diff -r 164170e6151a -r d5423fbb4f29 securitydialogs/Autolock/src/AutolockContainer.cpp --- a/securitydialogs/Autolock/src/AutolockContainer.cpp Tue Jan 26 15:20:08 2010 +0200 +++ b/securitydialogs/Autolock/src/AutolockContainer.cpp Tue Feb 02 00:44:34 2010 +0200 @@ -41,7 +41,7 @@ #include #include // Property values #include -#include +#include #include _LIT(BitmapName,"AutoLock.mbm"); diff -r 164170e6151a -r d5423fbb4f29 securitydialogs/SecUi/Data/SecUi.rss --- a/securitydialogs/SecUi/Data/SecUi.rss Tue Jan 26 15:20:08 2010 +0200 +++ b/securitydialogs/SecUi/Data/SecUi.rss Tue Feb 02 00:44:34 2010 +0200 @@ -22,7 +22,7 @@ NAME SECU #include -#include +#include #include #include diff -r 164170e6151a -r d5423fbb4f29 securitydialogs/SecUi/GSSimSecPlugin/Data/GSSimSecPluginRsc.rss --- a/securitydialogs/SecUi/GSSimSecPlugin/Data/GSSimSecPluginRsc.rss Tue Jan 26 15:20:08 2010 +0200 +++ b/securitydialogs/SecUi/GSSimSecPlugin/Data/GSSimSecPluginRsc.rss Tue Feb 02 00:44:34 2010 +0200 @@ -28,7 +28,7 @@ #include // Avkon localized strings #include #include -#include +#include #include #include #include diff -r 164170e6151a -r d5423fbb4f29 securitydialogs/SecUi/GSSimSecPlugin/Inc/GSSimSecPlugin.h --- a/securitydialogs/SecUi/GSSimSecPlugin/Inc/GSSimSecPlugin.h Tue Jan 26 15:20:08 2010 +0200 +++ b/securitydialogs/SecUi/GSSimSecPlugin/Inc/GSSimSecPlugin.h Tue Feb 02 00:44:34 2010 +0200 @@ -31,7 +31,7 @@ #include #include #include -#include +#include // CONSTANTS const TInt KMaxStringLength = 80; diff -r 164170e6151a -r d5423fbb4f29 securitydialogs/SecUi/GSSimSecPlugin/Src/GSSimSecPlugin.cpp --- a/securitydialogs/SecUi/GSSimSecPlugin/Src/GSSimSecPlugin.cpp Tue Jan 26 15:20:08 2010 +0200 +++ b/securitydialogs/SecUi/GSSimSecPlugin/Src/GSSimSecPlugin.cpp Tue Feb 02 00:44:34 2010 +0200 @@ -26,7 +26,7 @@ #include #include #include -#include +#include #include #include #include diff -r 164170e6151a -r d5423fbb4f29 securitydialogs/SecUi/GSSimSecPlugin/Src/GSSimSecPluginContainer.cpp --- a/securitydialogs/SecUi/GSSimSecPlugin/Src/GSSimSecPluginContainer.cpp Tue Jan 26 15:20:08 2010 +0200 +++ b/securitydialogs/SecUi/GSSimSecPlugin/Src/GSSimSecPluginContainer.cpp Tue Feb 02 00:44:34 2010 +0200 @@ -22,7 +22,7 @@ #include #include -#include +#include #include #include #include diff -r 164170e6151a -r d5423fbb4f29 securitydialogs/SecUi/Src/SecUiSecurityHandler.cpp --- a/securitydialogs/SecUi/Src/SecUiSecurityHandler.cpp Tue Jan 26 15:20:08 2010 +0200 +++ b/securitydialogs/SecUi/Src/SecUiSecurityHandler.cpp Tue Feb 02 00:44:34 2010 +0200 @@ -208,6 +208,28 @@ #if defined(_DEBUG) RDebug::Print(_L("(SECUI)CSecurityHandler::AskSecCodeL()")); #endif + + /* if code is still not initialized, then there's no need to ask it. This fixes the error when the RFS requests the code */ + const TUid KCRUidSCPLockCode = {0x2002677B}; + const TUint32 KSCPLockCodeDefaultLockCode = 0x00000001; + + CRepository* repository = CRepository::NewL(KCRUidSCPLockCode); + TInt currentLockStatus = -1; + TInt res=-1; + + res = repository->Get(KSCPLockCodeDefaultLockCode , currentLockStatus); + #if defined(_DEBUG) + RDebug::Printf( "%s %s (%u) res=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, res ); + RDebug::Printf( "%s %s (%u) currentLockStatus=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, currentLockStatus ); + #endif + delete repository; + if(res==0 && currentLockStatus==1) + { + // code is the default one; no need to request it. + return ETrue; + } + /* end check for default code */ + // Destructor sets thisDestroyed to ETrue TBool thisDestroyed( EFalse ); iDestroyedPtr = &thisDestroyed; diff -r 164170e6151a -r d5423fbb4f29 securitydialogs/group/bld.inf --- a/securitydialogs/group/bld.inf Tue Jan 26 15:20:08 2010 +0200 +++ b/securitydialogs/group/bld.inf Tue Feb 02 00:44:34 2010 +0200 @@ -30,6 +30,8 @@ #include "../Securityobserver/Group/bld.inf" #include "../lockclient/group/bld.inf" #include "../lockapp/group/bld.inf" +#include "../simlockui/group/bld.inf" + PRJ_TESTMMPFILES diff -r 164170e6151a -r d5423fbb4f29 securitydialogs/lockapp/src/lockappappui.cpp --- a/securitydialogs/lockapp/src/lockappappui.cpp Tue Jan 26 15:20:08 2010 +0200 +++ b/securitydialogs/lockapp/src/lockappappui.cpp Tue Feb 02 00:44:34 2010 +0200 @@ -22,7 +22,7 @@ #include "lockapptrace.h" #include #include -#include +#include #ifdef __SAP_TERMINAL_CONTROL_FW #include diff -r 164170e6151a -r d5423fbb4f29 securitydialogs/lockapp/src/lockappdevicelockcontrol.cpp --- a/securitydialogs/lockapp/src/lockappdevicelockcontrol.cpp Tue Jan 26 15:20:08 2010 +0200 +++ b/securitydialogs/lockapp/src/lockappdevicelockcontrol.cpp Tue Feb 02 00:44:34 2010 +0200 @@ -36,7 +36,7 @@ #include #include #include -#include +#include #include // KSettingsAutolockStatus #include diff -r 164170e6151a -r d5423fbb4f29 securitydialogs/simlockui/data/SimLockUI.rss --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/securitydialogs/simlockui/data/SimLockUI.rss Tue Feb 02 00:44:34 2010 +0200 @@ -0,0 +1,277 @@ +/* +* ============================================================================ +* Name : SimLockUI.rss +* Part of : SimLock UI Application / Resource Definitions +* Description : Resource definitions for SimLock UI +* Version : +* +* Copyright (c) 2005-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: Build info file for Ado domain appinstall +* ============================================================================ +*/ + +// Resource Name Identifier +NAME SLUI + +// Include Files +#include +#include +#include +#include +#include + +#include "SimLockUI.hrh" +#include "SimLockUI.loc" + +// Resource Identifiers +RESOURCE RSS_SIGNATURE { } +RESOURCE TBUF r_default_document_name { buf = "Document"; } + +// Constants +#define ESimLockUiQueryFlags (EGeneralQueryFlags) + +// ========================== RESOURCE DEFINITIONS =========================== + +// --------------------------------------------------------------------------- +// EIK_APP_INFO +// Define default menu and CBA key. +// --------------------------------------------------------------------------- +// +RESOURCE EIK_APP_INFO + { + cba = R_AVKON_SOFTKEYS_EMPTY; + menubar= R_AVKON_MENUPANE_EMPTY; + } + +// --------------------------------------------------------------------------- +// Text resources +// +// --------------------------------------------------------------------------- +// + +// Background text captions +RESOURCE TBUF r_simlock_ui_background_text_main {buf = qtn_sim_title_sim_unlock;} +RESOURCE TBUF r_simlock_ui_background_text_unlock_complete {buf = qtn_sim_title_unlock_complete;} +RESOURCE TBUF r_simlock_ui_codes_not_match {buf = qtn_sim_title_code_no_match;} +RESOURCE TBUF r_simlock_ui_background_text_unlock_incorrect {buf = qtn_sim_title_code_wrong;} +RESOURCE TBUF r_simlock_ui_background_text_unlock_failed {buf = qtn_sim_title_unlock_fail;} + +// Information notes +RESOURCE TBUF r_sim_unlock_message_sim_unlocked {buf = qtn_sim_info_prev_unlock;} +RESOURCE TBUF r_sim_unlock_message_cannot_unlock {buf = qtn_sim_info_perm_lock;} +RESOURCE TBUF r_sim_unlock_message_end_call {buf = qtn_sim_info_end_call;} +RESOURCE TBUF r_sim_phone_unlocked {buf = qtn_sim_info_phone_unlocked;} + +// Text for SIM popup text +RESOURCE TBUF r_sim_info_welcome_note_text{buf=qtn_sim_popup_intro_info;} + + +// --------------------------------------------------------------------------- +// r_sim_info_welcome_note +// Intro note displayed when Sim Lock UI Application starts +// --------------------------------------------------------------------------- +// + RESOURCE DIALOG r_sim_info_welcome_note + { + flags=ESimLockUiQueryFlags; + buttons=R_AVKON_SOFTKEYS_YES_NO__YES; + items= + { + DLG_LINE + { + type = EAknCtPopupHeadingPane; + id = EAknMessageQueryHeaderId; + control = AVKON_HEADING + { + headinglayout = R_AVKON_LIST_HEADING_PANE_POPUPS; + label = qtn_sim_title_sim_unlock; + }; + }, + DLG_LINE + { + type = EAknCtMessageQuery; + id = EAknMessageQueryContentId; + + control = AVKON_MESSAGE_QUERY + { + }; + } + }; + } + +// --------------------------------------------------------------------------- +// r_sim_unlock_final +// Indicates the final unlock attempt has been performed +// --------------------------------------------------------------------------- +// +RESOURCE DIALOG r_sim_unlock_final + { + flags=ESimLockUiQueryFlags; + buttons=R_AVKON_SOFTKEYS_OK_EMPTY; + items= + { + DLG_LINE + { + type = EAknCtPopupHeadingPane; + id = EAknMessageQueryHeaderId; + control = AVKON_HEADING + { + headinglayout = R_AVKON_LIST_HEADING_PANE_POPUPS; + label = qtn_sim_title_unlock_fail; + }; + }, + DLG_LINE + { + type=EAknCtMessageQuery; + id=EAknMessageQueryContentId; + control= AVKON_MESSAGE_QUERY + { + message = qtn_sim_info_code_wrong_final; + }; + } + }; + } + +// --------------------------------------------------------------------------- +// r_sim_info_codes_not_match +// Dialog that indicates two Sim lock codes do not match +// --------------------------------------------------------------------------- +// +RESOURCE DIALOG r_sim_info_codes_not_match + { + flags=ESimLockUiQueryFlags; + buttons=R_AVKON_SOFTKEYS_OK_CANCEL__OK; + items= + { + DLG_LINE + { + type = EAknCtPopupHeadingPane; + id = EAknMessageQueryHeaderId; + control = AVKON_HEADING + { + headinglayout = R_AVKON_LIST_HEADING_PANE_POPUPS; + label = qtn_sim_title_code_no_match; + }; + }, + + DLG_LINE + { + type=EAknCtMessageQuery; + id=EAknMessageQueryContentId; + control= AVKON_MESSAGE_QUERY + { + message = qtn_sim_info_code_no_match; + }; + } + }; + } + +// --------------------------------------------------------------------------- +// r_sim_info_code_incorrect +// Dialog that indicates an incorrect code was entered +// --------------------------------------------------------------------------- +// +RESOURCE DIALOG r_sim_info_code_incorrect + { + flags=ESimLockUiQueryFlags; + buttons=R_AVKON_SOFTKEYS_OK_CANCEL__OK; + items= + { + DLG_LINE + { + type = EAknCtPopupHeadingPane; + id = EAknMessageQueryHeaderId; + control = AVKON_HEADING + { + headinglayout = R_AVKON_LIST_HEADING_PANE_POPUPS; + label = qtn_sim_title_code_wrong; + }; + }, + + DLG_LINE + { + type=EAknCtMessageQuery; + id=EAknMessageQueryContentId; + control= AVKON_MESSAGE_QUERY + { + message = qtn_sim_urn_code_wrong; + }; + } + }; + } + +// --------------------------------------------------------------------------- +// r_sim_info_enter_password +// Password entry dialog +// --------------------------------------------------------------------------- +// +RESOURCE DIALOG r_sim_info_enter_password + + { + flags=ESimLockUiQueryFlags; + buttons=R_AVKON_SOFTKEYS_OK_CANCEL__OK; + items= + { + DLG_LINE + { + type=EAknCtQuery; + id=EGeneralQuery; + control= AVKON_DATA_QUERY + { + layout = EPhoneLayout; + label = qtn_sim_query_enter_code; + control = EDWIN + { + lines = 1; + width = SEC_ATT_PASSWORD_MAX_BUFFER; + default_input_mode = EAknEditorNumericInputMode; + allowed_input_modes = EAknEditorNumericInputMode; + }; + }; + } + }; + } + +// --------------------------------------------------------------------------- +// r_sim_info_test_password_reenter +// Password re-entry dialog +// --------------------------------------------------------------------------- +// +RESOURCE DIALOG r_sim_info_reenter_password + + { + flags=ESimLockUiQueryFlags; + buttons=R_AVKON_SOFTKEYS_OK_CANCEL__OK; + items= + { + + DLG_LINE + { + type=EAknCtQuery; + id=EGeneralQuery; + control= AVKON_DATA_QUERY + { + layout = EPhoneLayout; + label = qtn_sim_query_reenter_code; + control = EDWIN + { + lines = 1; + width = SEC_ATT_PASSWORD_MAX_BUFFER; + default_input_mode = EAknEditorNumericInputMode; + allowed_input_modes = EAknEditorNumericInputMode; + }; + }; + } + }; + } diff -r 164170e6151a -r d5423fbb4f29 securitydialogs/simlockui/data/SimLockUI_reg.rss --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/securitydialogs/simlockui/data/SimLockUI_reg.rss Tue Feb 02 00:44:34 2010 +0200 @@ -0,0 +1,45 @@ +/* +* ============================================================================ +* Name : SimLockUI_reg.rss +* Part of : SimLock UI +* Description : SimLock UI App Registration file file +* Version : +* +* Copyright (c) 2005-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: Build info file for Ado domain appinstall +* ============================================================================ +*/ + +//SimLockUI application's registration resource file + +#include +#include + +#include "SimLockUI.hrh" + +UID2 KUidAppRegistrationResourceFile +UID3 SIMLOCK_UI_UID3 + +RESOURCE APP_REGISTRATION_INFO + { + app_file="SimLockUI"; + + // Application is not in the menu + //hidden = KAppIsHidden; + // Uncomment and comment previous line to un-hide + hidden = KAppNotHidden; + localisable_resource_file="\\resource\\apps\\SimLockUI"; + embeddability = KAppNotEmbeddable; + newfile = KAppDoesNotSupportNewFile; + } diff -r 164170e6151a -r d5423fbb4f29 securitydialogs/simlockui/group/SimLockUI.mmp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/securitydialogs/simlockui/group/SimLockUI.mmp Tue Feb 02 00:44:34 2010 +0200 @@ -0,0 +1,87 @@ +/* +* ============================================================================ +* Name : simlockui.mmp +* Part of : SimLock UI +* Description : SimLock UI mmp file +* Version : +* +* Copyright (c) 2005-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: Build info file for Ado domain appinstall +* ============================================================================ +*/ + +#include "../inc/SimLockUI.hrh" +#include +#include +CAPABILITY ALL -TCB + +TARGETPATH /sys/bin +TARGET SimLockUI.exe +TARGETTYPE exe + +UID 0x00000000 SIMLOCK_UI_UID3 +VENDORID VID_DEFAULT + +LANG SC + +SOURCEPATH ../src +SOURCE SimLockUI.cpp +SOURCE SimLockUIApplication.cpp +SOURCE SimLockUIBackgroundControl.cpp +SOURCE SimLockUIAppUi.cpp +SOURCE SimLockUIDocument.cpp +SOURCE SimLockDataHandlingDelegate.cpp +SOURCE SimLockTelephonyProxy.cpp + +USERINCLUDE ../inc +SYSTEMINCLUDE /epoc32/include/internal + +APP_LAYER_SYSTEMINCLUDE +LIBRARY euser.lib +LIBRARY apparc.lib +LIBRARY cone.lib +LIBRARY eikcore.lib +LIBRARY avkon.lib +LIBRARY gdi.lib +LIBRARY etel.lib +LIBRARY etelmm.lib +LIBRARY customapi.lib +LIBRARY CommonEngine.lib +LIBRARY aknskins.lib +LIBRARY aknskinsrv.lib +LIBRARY aknswallpaperutils.lib +LIBRARY aknlayout2.lib +LIBRARY AknLayout2Scalable.lib +LIBRARY CdlEngine.lib +LIBRARY ws32.lib +LIBRARY etel3rdparty.lib +LIBRARY eikcoctl.lib + +SOURCEPATH ../data + +// Main resource file +START RESOURCE SimLockUI.RSS +HEADER +TARGETPATH /resource/apps +LANG SC +END + +// Resource registration file +START RESOURCE SimLockUI_reg.rss +TARGETPATH /private/10003a3f/apps +END + + +// End of file. + diff -r 164170e6151a -r d5423fbb4f29 securitydialogs/simlockui/group/bld.inf --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/securitydialogs/simlockui/group/bld.inf Tue Feb 02 00:44:34 2010 +0200 @@ -0,0 +1,42 @@ +/* +* ============================================================================ +* Name : bld.inf +* Part of : SimLockUI Build Information +* Description : Build information file for project simlockui +* Version : +* Copyright (c) 2005-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: Build info file for Ado domain appinstall +* +* ============================================================================ +*/ + + +#include + +PRJ_MMPFILES + +// Project File +SimLockUI.mmp + +// Icon File + +PRJ_EXPORTS +// Export IBY files +..\rom\simlockui.iby CORE_MW_LAYER_IBY_EXPORT_PATH( simlockui.iby) +..\rom\simlockui_resources.iby LANGUAGE_MW_LAYER_IBY_EXPORT_PATH(simlockui_resources.iby) + +// For EE texts +..\rom\simlockui_resources.iby CORE_APP_LAYER_IBY_EXPORT_PATH(simlockui_resources.iby) + +..\inc\simlockuikeys.h \epoc32\include\oem\simlockuikeys.h \ No newline at end of file diff -r 164170e6151a -r d5423fbb4f29 securitydialogs/simlockui/inc/SimLockDataHandlingDelegate.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/securitydialogs/simlockui/inc/SimLockDataHandlingDelegate.h Tue Feb 02 00:44:34 2010 +0200 @@ -0,0 +1,165 @@ +/* +* ============================================================================ +* Name : SimLockDataHandlingDelegate.h +* Part of : Sim Lock UI Application +* Description : Handles reading and writing of Sim Lock data including + unlocking the Sim Lock. +* Version : +* +* Copyright (c) 2005-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: Build info file for Ado domain appinstall +* ============================================================================ +*/ + +#ifndef SIMLOCKDATAHANDLINGDELEGATE_H +#define SIMLOCKDATAHANDLINGDELEGATE_H + +// System Includes +#include + +// Forward Declarations +class RMmCustomAPI; +struct TSimPathStr; +struct TSimLockHeadStr; +class CActiveSchedulerWait; +class TIsiReceiveC; +class CPeriodic; + +/** + * CSimLockDataHandlingDelegate + * + * Delegate class to handle communication with lower layers of S60 and Symbian, + * and also the native( ISA ) layer. + * + * @lib euser.lib + * @lib iscapi.lib + * @lib isimessage.lib + * @lib etel.lib + * @lib etelmm.lib + * @lib customapi.lib + */ +class CSimLockDataHandlingDelegate : public CActive + { +public: // Public Constructor / Destructor + + /** + * Two-phased constructor + * + */ + static CSimLockDataHandlingDelegate* NewL( RMmCustomAPI& aCustomAPI ); + + /** + * Destructor + * + */ + virtual ~CSimLockDataHandlingDelegate(); + +public: // Public API + + /** + * Open the Sim Lock( type 1 ) given a passcode. + * + * @param aPassword TDesC of the password to open lock + * @return Indicates the result of the Sim Lock open attempt + */ + TInt OpenSimLock( const TDesC& aPassword ); + + /** + * Determine if the Sim Lock is open. + * + * @return Indicates if Sim Lock is open + */ + TBool IsSimLockOpen() const; + + +private: // Private Constructors + + /** + * C++ constructor. + * + * @param aCustomAPI ETel custom API object + */ + CSimLockDataHandlingDelegate( RMmCustomAPI& aCustomAPI ); + + /** + * Symbian OS default constructor. + */ + void ConstructL(); + + +private: // From CActive + + /** + * Active object run method + * @see CActive + */ + virtual void RunL(); + + /** + * Active object cancel method + * @see CActive + */ + virtual void DoCancel(); + +private: // Local Member API + + /** + * CPeriodic Callback function for elapsed timer + * + * @param aUnused requred for interface + * @return required but unused + */ + static TInt TimerElapsed(TAny* aUnused); + + /** + * Pause execution and allow active scheduler to run until the current outstanding + * request complets + * + */ + void CompleteRequestWithTimeout(); + +private: // Member Data + /** + * Indicates if the Sim Lock is open per the last read from the Sim Lock + * server. + */ + TBool iLockIsOpen; + + /** + * Handle to ETel MultiMode Custom API server + */ + RMmCustomAPI& iCustomAPI; + + /** + * Help with asynchronous requests + */ + CActiveSchedulerWait* iSchedulerWait; + + /** + * Indicates that Sim Lock data has been read + */ + TBool iDataHasBeenRead; + + /** + * Timeout handling timer + * owns + */ + CPeriodic* iTimer; + + }; + +#endif //SIMLOCKDATAHANDLINGDELEGATE_H + +// End of File + diff -r 164170e6151a -r d5423fbb4f29 securitydialogs/simlockui/inc/SimLockISAServerDefinitions.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/securitydialogs/simlockui/inc/SimLockISAServerDefinitions.h Tue Feb 02 00:44:34 2010 +0200 @@ -0,0 +1,173 @@ +/* +* ============================================================================ +* Name : SimLockISAServerDefinitions.h +* Part of : Sim Lock UI Application +* Description : Definitions for Sim Lock ISA Server +* Version : +* +* Copyright (c) 2005-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: Build info file for Ado domain appinstall +* ============================================================================ +*/ + +#ifndef SimLockISAServerDefinitions_H +#define SimLockISAServerDefinitions_H + +// INCLUDES +#include + +// ============================================= +// Convert to little endian +// ============================================= + +// Macro to convert big endian to native type +// EPOC ARM is little endian +#define BE2INT16( x ) ( ( ( ( x ) & 0xFF00 ) >> 8 ) |( ( ( x ) & 0x00FF ) << 8 ) ) + + +// ============================================= +// From Simlock_lock.h in cellmo: ISA server +// ============================================= + +// MACROS + +#define SIMLOCK_PROFILE_SIZE 8 +#define SIMLOCK_CONFIG_SIZE 8 + +/* Block status */ +typedef TUint8 SL_BLOCK_STATUS; +#define SL_BLOCK_NOT_DISCARD 0x00 +#define SL_BLOCK_DISCARD 0x01 +#define SL_BLOCK_PERMANENT 0x02 +#define SL_BLOCK_MANDATORY 0x03 + +/* Requirement status */ +typedef TUint8 SL_LOCKTYPE; +#define SL_LOCKTYPE_AUTO 0x01 +#define SL_LOCKTYPE_CLOSED 0x02 +#define SL_LOCKTYPE_OPEN 0x03 + + +/* Criteria */ +typedef TUint8 SL_OPERATOR; +#define SL_OP_BYTEWISE_DISTINCT_EQ 0x01 +#define SL_OP_BYTEWISE_DISTINCT_GTE 0x02 +#define SL_OP_BYTEWISE_DISTINCT_LTE 0x03 +#define SL_OP_BYTEWISE_DISTINCT_NEQ 0x04 +#define SL_OP_NIBBLEWISE_DISTINCT_EQ 0x05 +#define SL_OP_NIBBLEWISE_DISTINCT_GTE 0x06 +#define SL_OP_NIBBLEWISE_DISTINCT_LTE 0x07 +#define SL_OP_NIBBLEWISE_DISTINCT_NEQ 0x08 +#define SL_OP_BITWISE_DISTINCT_NEQ 0x09 +#define SL_OP_BYTEWISE_UNIFIED_GTE 0x0A +#define SL_OP_BYTEWISE_UNIFIED_LTE 0x0B +#define SL_OP_BYTEWISE_UNIFIED_NEQ 0x0C +#define SL_OP_NIBBLEWISE_UNIFIED_GTE 0x0D +#define SL_OP_NIBBLEWISE_UNIFIED_LTE 0x0E +#define SL_OP_NIBBLEWISE_UNIFIED_NEQ 0x0F +#define SL_OP_BITWISE_DISTINCT_EQ 0x10 +#define CRITERIA_MAXIMUM 0x10 + + +/* No mask( all data counts ) */ +#define SIMLOCK_MASK_NOT_DEF 0x0000 + +// DATA TYPES + +// Sim Lock data structures +struct TSimLockConfigStr + { + TUint8 Byte[SIMLOCK_CONFIG_SIZE]; + }; + +struct TSimLockProfileStr + { + TUint8 Byte[SIMLOCK_PROFILE_SIZE]; + }; + +/* An aboslute path on SIM card */ +struct TSimPathStr + { + TUint8 ah; + TUint8 al; + TUint8 bh; + TUint8 bl; + TUint8 ch; + TUint8 cl; + TUint8 dh; + TUint8 dl; + }; /* sizeof( SIM_PATH_STR ) = 8 */ + +#define SIM_PATH_SIZE sizeof( TSimPathStr ) + +/* A match requirement */ +struct TSimLockMRStr + { + TUint32 ReadSpec; + TSimPathStr FileId; + TUint16 Mask; + TUint16 Offset; + TUint8 DataSize; + TUint8 UnitLength; + SL_OPERATOR Criterion; + SL_LOCKTYPE LockType; + }; /* sizeof( SL_MR_STR ) = 20 */ + +#define SL_MR_STR_SIZE sizeof( TSimLockMRStr ) + +/* A match block */ +struct TSimLockMBStr + { + TUint16 Offset; + TUint8 AccessClass; + SL_BLOCK_STATUS mbStatus; + TUint8 mrCount; + TUint8 Reserved1; + TUint8 Reserved2; + TUint8 Reserved3; + }; /* sizeof( SL_MB_STR ) = 8 */ + +#define SL_MB_STR_SIZE sizeof( TSimLockMBStr ) + +/* Sim Lock header */ +struct TSimLockHeadStr + { + // Use BB5 Head Str + TSimLockProfileStr Profile; // !!!! 8 TUint8s + TSimLockConfigStr ConfigData; // !!!! 8 TUint8s + + TUint16 Offset; + TUint8 mbCount; + TUint8 UnlockCount; + TUint8 Reserved1; + TUint8 Reserved2; + + TUint8 Reserved3; + TUint8 Reserved4; + }; /* sizeof( SL_HEAD_STR ) = 8 or 24 */ + +#define SL_HEAD_STR_SIZE ( ( TInt )sizeof( TSimLockHeadStr ) ) + +// CONSTANTS + +extern TInt KSimLockUnlockAttemptsAvailable; + +// FUNCTION PROTOTYPES + +// FORWARD DECLARATIONS + + +#endif // SimLockISAServerDefinitions_H + +// End of File diff -r 164170e6151a -r d5423fbb4f29 securitydialogs/simlockui/inc/SimLockTelephonyProxy.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/securitydialogs/simlockui/inc/SimLockTelephonyProxy.h Tue Feb 02 00:44:34 2010 +0200 @@ -0,0 +1,142 @@ +/* +* ============================================================================ +* Name : SimLockTelephonyProxy.h +* Part of : Sim Lock UI Telephony Proxy +* Description : Wrap asynchronous calls to Core Telephony +* Version : +* +* Copyright (c) 2005-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: Build info file for Ado domain appinstall +* ============================================================================ +*/ + +#ifndef SIMLOCK_TELEPHONY_PROXY_H +#define SIMLOCK_TELEPHONY_PROXY_H + +// System Includes +#include +#include // CTelephony members + +// Forward Declarations +class CPeriodic; + +/** + * CSimLockTelephonyProxy + * + * Act as proxy for asynchronous calls to CTelephony + * + * @lib euser.lib + * @lib etel3rdparty.lib + */ +class CSimLockTelephonyProxy : public CActive + { +public: // Public Constructor/Destructor + + /** + * NewL + * Construct a CSimLockTelephonyProxy + * using two phase construction, and return a pointer to the created object + * @return a pointer to the created instance of CSimLockTelephonyProxy + */ + static CSimLockTelephonyProxy* NewL(); + + /** + * Destructor + */ + ~CSimLockTelephonyProxy(); + +public: // Public API + + /** + * Find out if a call is in progress. + * + * @return Whether or not a call is in progress + */ + TBool IsCallInProgress(); + +private: // From CActive + + /** + * Active object run method + */ + virtual void RunL(); + + /** + * Active object cancel method + */ + virtual void DoCancel(); + + private: // Private Constructors + + /** + * C++ constructor. + * + */ + CSimLockTelephonyProxy(); + + /** + * Symbian OS default constructor. + */ + void ConstructL(); + +private: // Private Member Functions + + /** + * CPeriodic Callback function for elapsed timer + * + * @param aClientObject pointer to CSimLockTelephonyProxy client object + * @return required but unused + */ + static TInt TimerElapsed(TAny* aClientObject); + + /** + * Complete an asynchronous request synchronously with a hardcoded timeout + */ + void CompleteRequestWithTimeout(); + +private: // Member Data + + /** + * Telephony indicators( used to detect ongoing voice call ) + */ + CTelephony::TIndicatorV1 iIndicators; + + /** + * Telephony indicator package as received from CTelephony + */ + CTelephony::TIndicatorV1Pckg iIndicatorPackage; + + /** + * ETel 3rd Party API( used to detect ongoing voice call ) + * owns + */ + CTelephony* iTelephony; + + /** + * Active scheduler wait API + * owns + */ + CActiveSchedulerWait* iSchedulerWait; + + /** + * Request timeout timer + * owns + */ + CPeriodic* iTimer; + + }; + +#endif // SIMLOCK_TELEPHONY_PROXY_H + +// End of file. diff -r 164170e6151a -r d5423fbb4f29 securitydialogs/simlockui/inc/SimLockUI.hrh --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/securitydialogs/simlockui/inc/SimLockUI.hrh Tue Feb 02 00:44:34 2010 +0200 @@ -0,0 +1,32 @@ +/* +* ============================================================================ +* Name : SimLockUI.hrh +* Part of : Sim Lock UI Application +* Description : Resource compatible header file +* Version : +* +* Copyright (c) 2005-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: Build info file for Ado domain appinstall +* ============================================================================ +*/ + +#ifndef __SimLockUI_HRH__ +#define __SimLockUI_HRH__ + +#define SIMLOCK_UI_UID3 0x2000B0FA +#define SEC_ATT_PASSWORD_MAX_BUFFER 32 + +#endif // __SimLockUI_HRH__ + +// End of file. diff -r 164170e6151a -r d5423fbb4f29 securitydialogs/simlockui/inc/SimLockUI.loc --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/securitydialogs/simlockui/inc/SimLockUI.loc Tue Feb 02 00:44:34 2010 +0200 @@ -0,0 +1,142 @@ +/* +* ============================================================================ +* Name : SimLockUI.loc +* Part of : Sim Lock UI Application / Resource Definitions +* Description : Resource definitions for Sim Lock UI +* Version : +* +* Copyright (c) 2005-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: Build info file for Ado domain appinstall +* ============================================================================ +*/ + +// LOCALISATION STRINGS + +// NEW + +//d: SIM Unlock Process +//l: heading_pane_t1 +//r: 3.2 +// +#define qtn_sim_title_sim_unlock "SIM Unlock Process" + +//d: Intro message query giving high level description of the SIM Unlock process +//l: popup_info_list_pane_t1 +//r: 3.2 +// +#define qtn_sim_popup_intro_info "You have inserted an invalid SIM. Would you like to SIM unlock your phone? You have a limited number of unsuccessful attempts after which your phone will be permanently locked." + +//d: Header during unlock code query showing attempt number, where: 1 <= %0N <= 3; %1N = 3 +//l: main_pane_empty_t1/opt2 +//r: 3.2 +// +#define qtn_sim_title_unlock_attempt_no "Unlock Attempt %0N of %1N" + +//d: Unlock code query prompt +//l: popup_query_data_window_t3/opt2 +//r: 3.2 +// +#define qtn_sim_query_enter_code "Enter the unlock code" + +//d: Unlock code reentry query prompt +//l: popup_query_data_window_t3/opt2 +//r: 3.2 +// +#define qtn_sim_query_reenter_code "Reenter the unlock code" + +//d: Header indicating successful SIM unlock +//l: main_pane_empty_t1/opt2 +//r: 3.2 +// +#define qtn_sim_title_unlock_complete "Unlock Process Complete" + +//d: Info indicating successful SIM unlock. Forewarns that device will reboot. +//l: popup_note_window/opt2 +//r: 3.2 +// +#define qtn_sim_info_phone_unlocked "Your phone is unlocked. The phone will now restart." + +//d: Header indicating non-matching codes were entered. +//l: heading_pane_t1 +//r: 3.2 +// +#define qtn_sim_title_code_no_match "Codes not matched" + +//d: Info indicating that two entered unlock codes were not the same. +//l: popup_info_list_pane_t1 +//r: 3.2 +// +#define qtn_sim_info_code_no_match "The unlock codes entered do not match each other. The same unlock code must be entered twice. Try again?" + +//d: Header indicating that an incorrect SIM unlock code was entered. +//l: heading_pane_t1 +//r: 3.2 +// +#define qtn_sim_title_code_wrong "Incorrect Code Entered" + +//d: Info note indicating that the SIM unlock process failed. +//l: popup_info_list_pane_t1 +//r: 3.2 +// +#define qtn_sim_urn_code_wrong "The incorrect unlock code was entered. The phone was not unlocked. Try again?" + +//d: Header indicating that the SIM unlock process failed. +//l: heading_pane_t1 +//r: 3.2 +// +#define qtn_sim_title_unlock_fail "Unlock Process Failed" + +//d: Info note that the SIM unlock process failed. Three attempts remain. +//l: popup_info_list_pane_t1 +//r: 3.2 +// +#define qtn_sim_info_code_wrong_three "The incorrect unlock code was entered. Only three (3) unlock attempts remain before the phone is permanently locked." + +//d: Info note that the SIM unlock process failed. Two attempts remain. +//l: popup_info_list_pane_t1 +//r: 3.2 +// +#define qtn_sim_info_code_wrong_two "The incorrect unlock code was entered. Only two (2) unlock attempts remain before the phone is permanently locked." + +//d: Info note that the SIM unlock process failed. One attempt remains. +//l: popup_info_list_pane_t1 +//r: 3.2 +// +#define qtn_sim_info_code_wrong_one "The incorrect unlock code was entered. Only one (1) unlock attempt remains before the phone is permanently locked." + +//d: Info note that the SIM unlock process failed. No attempts remain. +//l: popup_info_list_pane_t1 +//r: 3.2 +// + +#define qtn_sim_info_code_wrong_final "The incorrect unlock code was entered on the final attempt. The phone is permanently locked and cannot be unlocked." + +//d: Info note that the SIM has previously been unlocked. +//l: popup_note_window/opt2 +//r: 3.2 +// +#define qtn_sim_info_prev_unlock "The SIM card is already unlocked." + +//d: Info note that the phone has previously been permanently locked. +//l: popup_note_window/opt2 +//r: 3.2 +// +#define qtn_sim_info_perm_lock "Phone is permanently locked and cannot be unlocked." + +//d: Note to end an ongoing call before entering SIM unlock code (as the phone will reboot upon successful unlock.) +//l: popup_note_window/opt2 +//r: 3.2 +// +#define qtn_sim_info_end_call "End call before entering unlock code." + diff -r 164170e6151a -r d5423fbb4f29 securitydialogs/simlockui/inc/SimLockUI.pan --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/securitydialogs/simlockui/inc/SimLockUI.pan Tue Feb 02 00:44:34 2010 +0200 @@ -0,0 +1,39 @@ + /* +* ============================================================================ +* Name : SimLockUI.pan +* Version : +* +* Copyright (c) 2005-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: Build info file for Ado domain appinstall +* ============================================================================ +*/ + +#ifndef __SIMLOCKUI_PAN__ +#define __SIMLOCKUI_PAN__ + +/** SimLockUI application panic codes */ +enum TSimLockUIPanics + { + ESimLockUIBasicUi = 1, + ESimLockUIUnableToReadSimLock + // add further panics here + }; + +inline void Panic(TSimLockUIPanics aReason) + { + _LIT(applicationName,"SimLockUI"); //lint !e1534 static variable OK + User::Panic(applicationName, aReason); + } + +#endif // __SIMLOCKUI_PAN__ diff -r 164170e6151a -r d5423fbb4f29 securitydialogs/simlockui/inc/SimLockUIApplication.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/securitydialogs/simlockui/inc/SimLockUIApplication.h Tue Feb 02 00:44:34 2010 +0200 @@ -0,0 +1,65 @@ +/* +* ============================================================================ +* Name : SimLockUIApplication.h +* Part of : Sim Lock UI Application +* Description : SimLock UI Application header +* Version : +* +* Copyright (c) 2005-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: Build info file for Ado domain appinstall +* ============================================================================ +*/ + +#ifndef __SIMLOCKUI_APPLICATION_H__ +#define __SIMLOCKUI_APPLICATION_H__ + +#include // CAknApplication + +/** + * CSimLockUIApplication + * Sim Lock UI Application class. + * + * An instance of CSimLockUIApplication is the application part of the AVKON + * application framework for the SimLockUI example application + * + * @lib avkon.lib + * @lib eikcore.lib + * @lib eiksrv.lib + */ +class CSimLockUIApplication : public CAknApplication + { +public: // from CAknApplication + + /** + * From CAknApplication + * Utility function to return the application's UID. + * + * @return Application's UID (KUidPDApplicationApp). + */ + TUid AppDllUid() const; + +protected: // from CAknApplication + + /** + * CreateDocumentL + * + * Create a CApaDocument object and return a pointer to it + * @return a pointer to the created document + */ + CApaDocument* CreateDocumentL(); + }; + +#endif // __SIMLOCKUI_APPLICATION_H__ + +// end of file. diff -r 164170e6151a -r d5423fbb4f29 securitydialogs/simlockui/inc/SimLockUIAppui.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/securitydialogs/simlockui/inc/SimLockUIAppui.h Tue Feb 02 00:44:34 2010 +0200 @@ -0,0 +1,231 @@ +/* +* ============================================================================ +* Name : SimLockUIAppUI.h +* Part of : Sim Lock UI Application +* Description : SimLock UI Application UI Header +* Version : +* +* Copyright (c) 2005-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: Build info file for Ado domain appinstall +* ============================================================================ +*/ + +#ifndef __SIMLOCKUI_APPUI_H__ +#define __SIMLOCKUI_APPUI_H__ + +// System includes +#include +#include // CAknNoteDialog::TTone +#include // RProperty. + + +// FORWARD DECLARATIONS +class RProperty; +// User includes +#include "SimLockUIBackgroundControl.h" // CSimLockUIBackgroundControl::TBackgroundText + +// Forward reference +class CSimLockUIBackgroundControl; +class CSimLockDataHandlingDelegate; +class CAknInformationNote; +class CSimLockTelephonyProxy; + +//const TUid KSimLockProperty={0x2000B0FC}; +/** + * CSimLockUIAppUi + * + * An instance of class CSimLockUIAppUi is the UserInterface part of the AVKON + * application framework for the SimLockUI example application + * + * @lib avkon.lib + * @lib eikcore.lib + * @lib eiksrv.lib + */ +class CSimLockUIAppUi : public CAknAppUi + { +public: // Constructor/Destructor + + /** + * CSimLockUIAppUi + * Perform the first phase of two phase construction. + * This needs to be public due to the way the framework constructs the AppUi + * + * @param aSimLockDelegate Sim Lock UI Delegate (ownership not transferred) + */ + CSimLockUIAppUi( CSimLockDataHandlingDelegate& aSimLockDelegate ); + + /** + * ConstructL + * Perform the second phase construction of a CSimLockUIAppUi object + * this needs to be public due to the way the framework constructs the AppUi + */ + void ConstructL(); + + /** + * ~CSimLockUIAppUi + * Destroy the object and release all memory objects + */ + virtual ~CSimLockUIAppUi(); + +private: // Private Data Type(s) + + /** + * Indicate which background text to use + */ + enum TBackgroundText + { + EBackgroundTextEmpty, + EBackgroundTextMain, + EBackgroundTextUnlockComplete, + EBackgroundTextUnlockFailed, + EBackgroundTextUnlockIncorrect + }; + +private: // from CAknAppUi + /** + * @see CAknAppUi::HandleCommandL + */ + virtual void HandleCommandL( TInt aCommand ); + + /** + * @see CAknAppUi::HandleForegroundEventL + */ + virtual void HandleForegroundEventL( TBool aForeground ); + +private: // Private Function Declarations + + /** + * ProcessSimUnlockDialogsL + * Process the series of dialogs that control the Sim Unlock process + * + * @return Indicates whether or not application flow should continue + */ + TBool ProcessSimUnlockDialogsL(); + + /** + * CreateBackgroundControlL + * Create the background control for SimLock UI. Background contains the default + * background image for the current skin and text indicating to the user the + * current stage in the unlock process. + * + */ + void CreateBackgroundControlL(); + + /** + * CheckLockStateL + * Check the state of the lock and display a dialog if it is either + * unlocked or there are no lock attempts remaining. + * + * @return Indicates whether or not application flow should continue + */ + TBool CheckLockStateL() const; + + /** + * DisplayIntroductionDialogL + * Display introduction dialog + * + * @return Indicates whether or not application flow should continue + */ + TBool DisplayIntroductionDialogL(); + + /** + * PromptForPasswordL + * Handle scenario where unlock attempt failed. Prompt user about whether or + * not to continue + * + * @param aPassword Descriptor to receive password + * @return Indicates whether or not application flow should continue + */ + TBool PromptForPasswordL( TDes& aPassword ); + + /** + * CompletePromptForPasswordL + * Ask for second password and check for call in progress + * + * @param aPassword original password entered + * @param aNewPassword Descriptor where 2nd password is to be inserted + * @return Indicates whether or not application flow should continue + */ + TBool CompletePromptForPasswordL( const TDesC& aPassword, TDes& aNewPassword ); + + /** + * AttemptToUnlockSimL + * Ask for second password and check for call in progress + * + * @param aPassword the Sim Lock password + * @return Indicates whether or not application flow should continue + */ + TBool AttemptToUnlockSimL( const TDesC& aPassword ); + + /** + * HandleUnlockFailedL + * Handle scenario where unlock attempt failed. Prompt user about whether or + * not to continue + * + * @return Indicates whether or not application flow should continue + */ + TBool HandleUnlockFailedL(); + + /** + /** + * ShowInformationNoteL + * Show an information note + * + * @param aResourceId indicates what resource is displayed + * @return Indicates whether or not application flow should continue + */ + TInt ShowInformationNoteL( TInt aResourceId ) const; + + /** + * SetBackgroundText + * Change text in background control + * + * @param aText indicates type of text + */ + void SetBackgroundTextL( TBackgroundText aText ); + +private: // Private Member Data + + /** + * Control that contains SimLock UI background + * owns + */ + CSimLockUIBackgroundControl* iBackgroundControl; + + /** + * Pointer to "delegate" class that is responsible for non-UI functions related + * to the phone and SimLock. + */ + CSimLockDataHandlingDelegate& iSimLockDelegate; + + /** + * For foreground event handling, indicate first time run + */ + TBool iFirstRun; + + /** + * Proxy used to talk to CTelephony in a synchronous fashion + * owns + */ + CSimLockTelephonyProxy* iTelephonyProxy; + + //RProperty for publish key + RProperty iProperty; + + }; + + +#endif // __SIMLOCKUI_APPUI_H__ + +// End of file. diff -r 164170e6151a -r d5423fbb4f29 securitydialogs/simlockui/inc/SimLockUIBackgroundControl.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/securitydialogs/simlockui/inc/SimLockUIBackgroundControl.h Tue Feb 02 00:44:34 2010 +0200 @@ -0,0 +1,147 @@ +/* +* ============================================================================ +* Name : SimLockUIBackgroundControl.h +* Part of : Sim Lock UI Application +* Description : SimLock UI Background Control Header +* Version : +* +* Copyright (c) 2005-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: Build info file for Ado domain appinstall +* ============================================================================ +*/ + +#ifndef __SIMLOCKUI_BACKGROUNDCONTROL_H__ +#define __SIMLOCKUI_BACKGROUNDCONTROL_H__ + +// System includes +#include +#include // CCoeControl + +// Forward declarations +class CAknsBasicBackgroundControlContext; +class CGraphicsContext; + +/** + * CSimLockUIBackgroundControl + * + * A CCoeControl object that represents the application background. + * + * @lib cone.lib + * @lib aknskins.lib + * @lib aknskinsrv.lib + * @lib aknswallpaperutils.lib + */ +class CSimLockUIBackgroundControl : public CCoeControl + { +public: // Public Constructors + + /** + * NewL + * Create a CSimLockUIBackgroundControl object, which will draw itself to aRect + * + * @param aRect the rectangle this view will be drawn to + * @return a pointer to the created instance of CSimLockUIBackgroundControl + */ + static CSimLockUIBackgroundControl* NewL( const TRect& aRect ); + + /** + * NewLC + * Create a CSimLockUIBackgroundControl object, which will draw itself to aRect + * + * @param aRect the rectangle this view will be drawn to + * @return a pointer to the created instance of CSimLockUIBackgroundControl + */ + static CSimLockUIBackgroundControl* NewLC( const TRect& aRect ); + + + /** + * ~CSimLockUIBackgroundControl + * Destroy the object and release all memory objects + */ + virtual ~CSimLockUIBackgroundControl(); + +public: // Public API + + /** + * SetBackgroundText + * Set the background text + * + * @param aText new background text( ownership passed ) + */ + void SetBackgroundText( HBufC* aText ); + +private: // Private Consructors + + /** + * ConstructL + * Perform the second phase construction of a CSimLockUIBackgroundControl object + * + * @param aRect the rectangle this view will be drawn to + */ + void ConstructL( const TRect& aRect ); + +private: // From CCoeControl + + /** + * SizeChanged + * Indicate that the control has been resized + */ + virtual void SizeChanged(); + + /** + * Draw + * Draw this CSimLockUIBackgroundControl to the screen + * + * @param aRect the rectangle of this view that needs updating + */ + virtual void Draw( const TRect& aRect ) const; + + /** + * MopSupplyObject + * Retrieves an object of the same type as that encapsulated in aId. + * + * @param aId type of object to retrieve + */ + virtual TTypeUid::Ptr MopSupplyObject( TTypeUid aId ); + +private: // Private Member API + + /** + * DisplayText + * Called by Draw() to display the appropriate background text + * + * @param aGc graphics context which draws the text + */ + void DisplayText( CGraphicsContext& aGc ) const; + +private: // Member data + + /** + * Control which represents the background image + * owns + */ + CAknsBasicBackgroundControlContext* iBackgroundSkinContext; + + /** + * Text to display on background pane + * owns + */ + HBufC* iDisplayText; + }; + + +#endif // __SIMLOCKUI_BACKGROUNDCONTROL_H__ + +// End of file. + diff -r 164170e6151a -r d5423fbb4f29 securitydialogs/simlockui/inc/SimLockUIDocument.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/securitydialogs/simlockui/inc/SimLockUIDocument.h Tue Feb 02 00:44:34 2010 +0200 @@ -0,0 +1,140 @@ +/* +* ============================================================================ +* Name : SimLockUIDocument.h +* Part of : Sim Lock UI Application +* Description : Create session to ETel and owns SimLock UI Delegate +* Version : +* +* Copyright (c) 2005-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: Build info file for Ado domain appinstall +* ============================================================================ +*/ + +#ifndef __SIMLOCKUI_DOCUMENT_H__ +#define __SIMLOCKUI_DOCUMENT_H__ + +// INCLUDES +#include +#include // RMmCustomAPI, RTelServer, RMobilePhone + +// CONSTANTS + +// MACROS + +// DATA TYPES + +// FUNCTION PROTOTYPES + +// FORWARD DECLARATIONS + +class CSimLockUIAppUi; +class CEikApplication; +class CSimLockDataHandlingDelegate; + + +/** + * CSimLockUIDocument + * An instance of class CSimLockUIDocument is the Document part of the AVKON + * application framework for the SimLockUI example application + * + * @lib avkon.lib + * @lib eikcore.lib + * @lib eiksrv.lib + */ +class CSimLockUIDocument : public CAknDocument + { +public: // Public Constructors/Destructor + + /** + * NewL + * Construct a CSimLockUIDocument for the AVKON application aApp + * using two phase construction, and return a pointer to the created object + * @param aApp application creating this document + * @return a pointer to the created instance of CSimLockUIDocument + */ + static CSimLockUIDocument* NewL( CEikApplication& aApp ); + + /** + * NewLC + * Construct a CSimLockUIDocument for the AVKON application aApp + * using two phase construction, and return a pointer to the created object, + * leaving an instance on the Cleanup Stack. + * + * @param aApp application creating this document + * @return a pointer to the created instance of CSimLockUIDocument + */ + static CSimLockUIDocument* NewLC( CEikApplication& aApp ); + + /** + * ~CSimLockUIDocument + * Destroy the object and release all memory objects + */ + virtual ~CSimLockUIDocument(); + +public: // from CAknDocument + + /** + * CreateAppUiL + * Create a CSimLockUIAppUi object and return a pointer to it + * + * @return a pointer to the created instance of the AppUi created + */ + virtual CEikAppUi* CreateAppUiL(); + +private: // Private Constructors + + /** + * ConstructL + * Perform the second phase construction of a CSimLockUIDocument object + */ + void ConstructL(); + + /** + * CSimLockUIDocument + * Perform the first phase of two phase construction + * + * @param aApp application creating this document + */ + CSimLockUIDocument( CEikApplication& aApp ); + + +private: // Member Data + + /** + * Handle to ETel Server + */ + RTelServer iServer; + + /** + * Handle to ETel Mobile Phone Object + */ + RMobilePhone iPhone; + + /** + * Handle to ETel Custom API Object + */ + RMmCustomAPI iCustomPhone; + + /** + * Handle to Sim Lock Delegate + * owns + */ + CSimLockDataHandlingDelegate* iSimLockDelegate; + }; + + +#endif // __SIMLOCKUI_DOCUMENT_H__ + +// end of file. + diff -r 164170e6151a -r d5423fbb4f29 securitydialogs/simlockui/inc/SimLockUiKeys.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/securitydialogs/simlockui/inc/SimLockUiKeys.h Tue Feb 02 00:44:34 2010 +0200 @@ -0,0 +1,52 @@ +/* +* ============================================================================ +* Name : SimLockUIKeys.h +* Part of : Sim Lock UI Application +* Description : SimLock P&S keys +* Version : +* +* Copyright (c) 2005-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: Build info file for Ado domain appinstall +* ============================================================================ +*/ + +#ifndef __SIMLOCKUI_KEYS_H__ +#define __SIMLOCKUI_KEYS_H__ + +// System includes +#include +#include // CAknNoteDialog::TTone +#include // RProperty. + + +// FORWARD DECLARATIONS +class RProperty; +const TUid KSimLockProperty={0x10003b21}; + + +enum TSimLockPropertyKeys { ESimLockProperty, ESimLockActiveStatus }; + +/** + *0: Default value + *1: Indicates that "function" is done +*/ +enum TSimLockActiveStatus + { + KSimLockStatusUnknown = 0, + KSimLockStatusDone + }; + +#endif // __SIMLOCKUI_KEYS_H__ + +// End of file. diff -r 164170e6151a -r d5423fbb4f29 securitydialogs/simlockui/rom/simlockui.iby --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/securitydialogs/simlockui/rom/simlockui.iby Tue Feb 02 00:44:34 2010 +0200 @@ -0,0 +1,37 @@ +/* +* ============================================================================ +* Name : simlockui.iby +* Part of : SimLock UI +* Description : SimLock UI iby file +* Version : +* +* Copyright (c) 2005-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: Build info file for Ado domain appinstall +* ============================================================================ +*/ + + + +#ifndef _SIMLOCKUI_IBY_ +#define _SIMLOCKUI_IBY_ + +#include +#ifdef FF_SIMLOCKD_UI +// Definitions for applications with a UI +S60_APP_EXE( SimLockUI ) +S60_APP_AIF_RSC( SimLockUI ) + +#endif // FF_SIMLOCK_UI + +#endif // _SIMLOCKUI_IBY_ diff -r 164170e6151a -r d5423fbb4f29 securitydialogs/simlockui/rom/simlockui_resources.iby --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/securitydialogs/simlockui/rom/simlockui_resources.iby Tue Feb 02 00:44:34 2010 +0200 @@ -0,0 +1,32 @@ +/* +* ============================================================================ +* Name : simlockui_resources.iby +* Part of : SimLock UI +* Description : SimLock UI resources iby file +* Version : +* +* Copyright (c) 2005-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: Build info file for Ado domain appinstall +* ============================================================================ +*/ + +#ifndef _SIMLOCKUI_RESOURCES_IBY_ +#define _SIMLOCKUI_RESOURCES_IBY_ + +#include +#ifdef FF_SIMLOCKD_UI +S60_APP_RESOURCE( SimLockUI ) +#endif // FF_SIMLOCK_UI + +#endif // _SIMLOCKUI_RESOURCES_IBY_ diff -r 164170e6151a -r d5423fbb4f29 securitydialogs/simlockui/src/SimLockDataHandlingDelegate.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/securitydialogs/simlockui/src/SimLockDataHandlingDelegate.cpp Tue Feb 02 00:44:34 2010 +0200 @@ -0,0 +1,175 @@ +/* +* ============================================================================ +* Name : SimLockDataHandlingDelegate.cpp +* Part of : Sim Lock UI Application +* Description : Implementation of Sim Lock UI Application +* Version : +* +* Copyright (c) 2005-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: Build info file for Ado domain appinstall +* ============================================================================ +*/ + +// System Include Files +#include // RMmCustomAPI, RMobilePhone + +// User Include Files +#include "SimLockDataHandlingDelegate.h" +#include "SimLockUI.pan" +#include "SimLockISAServerDefinitions.h" + + +TInt KSimLockTimeoutDelay = 5000000; // 5 seconds + +// =========================================================================== +// PUBLIC CONSTRUCTORS +// =========================================================================== + +// --------------------------------------------------------------------------- +// CSimLockDataHandlingDelegate::NewL +// --------------------------------------------------------------------------- +CSimLockDataHandlingDelegate* CSimLockDataHandlingDelegate::NewL( RMmCustomAPI& aCustomAPI ) + { + CSimLockDataHandlingDelegate* self = new ( ELeave ) CSimLockDataHandlingDelegate( aCustomAPI ); + CleanupStack::PushL( self ); + self->ConstructL(); + CleanupStack::Pop( self ); + return self; + } + +// --------------------------------------------------------------------------- +// CSimLockDataHandlingDelegate::~CSimLockDataHandlingDelegate +// --------------------------------------------------------------------------- +CSimLockDataHandlingDelegate::~CSimLockDataHandlingDelegate() + { + Cancel(); + delete iTimer; + delete iSchedulerWait; + } + +// =========================================================================== +// PUBLIC MEMBER FUNCTIONS +// =========================================================================== + +// --------------------------------------------------------------------------- +// CSimLockDataHandlingDelegate::OpenSimLock +// --------------------------------------------------------------------------- +TInt CSimLockDataHandlingDelegate::OpenSimLock( const TDesC& aPassword ) + { + // Use ETel custom API to deactive SimLock + return iCustomAPI.DeActivateSimLock( aPassword, RMmCustomAPI::EOperator ); + } + +// --------------------------------------------------------------------------- +// CSimLockDataHandlingDelegate::IsSimLockOpen +// --------------------------------------------------------------------------- +TBool CSimLockDataHandlingDelegate::IsSimLockOpen() const + { + + ASSERT( iDataHasBeenRead ); + + return iLockIsOpen; + } + + +// =========================================================================== +// PRIVATE CONSTRUCTORS +// =========================================================================== + +// --------------------------------------------------------------------------- +// CSimLockDataHandlingDelegate::CSimLockDataHandlingDelegate +// --------------------------------------------------------------------------- +CSimLockDataHandlingDelegate::CSimLockDataHandlingDelegate( RMmCustomAPI& aCustomAPI ) +: CActive( EPriorityStandard ), + iCustomAPI( aCustomAPI ) + { //lint !e1403 iIndicators initialized in CBase ctor + } + +// --------------------------------------------------------------------------- +// CSimLockDataHandlingDelegate::ConstructL +// --------------------------------------------------------------------------- +void CSimLockDataHandlingDelegate::ConstructL() + { + CActiveScheduler::Add(this); + iSchedulerWait = new ( ELeave ) CActiveSchedulerWait; + iTimer = CPeriodic::NewL(EPriorityHigh); + } + +// =========================================================================== +// PRIVATE MEMBER FUNCTIONS +// =========================================================================== + +// --------------------------------------------------------------------------- +// CSimLockDataHandlingDelegate::RunL +// --------------------------------------------------------------------------- +void CSimLockDataHandlingDelegate::RunL() + { + + // Stop the current run sequence + iSchedulerWait->AsyncStop(); + } + +// --------------------------------------------------------------------------- +// CSimLockDataHandlingDelegate::DoCancel +// --------------------------------------------------------------------------- +void CSimLockDataHandlingDelegate::DoCancel() + { + + // Cancel timer + iTimer->Cancel(); + + // Stop the current run sequence so we can continue execution in a + // synchronous fashion + iSchedulerWait->AsyncStop(); + } + +// --------------------------------------------------------------------------- +// CSimLockTelephonyProxy::TimerElapsed +// --------------------------------------------------------------------------- +TInt CSimLockDataHandlingDelegate::TimerElapsed(TAny* /*aUnused*/) + { + // Some request did not complete while reading Sim Lock data. + // This is not expected, so Panic. + Panic( ESimLockUIUnableToReadSimLock ); + + return 0; + } + +// --------------------------------------------------------------------------- +// CSimLockDataHandlingDelegate::CompleteRequestWithTimeout +// --------------------------------------------------------------------------- +void CSimLockDataHandlingDelegate::CompleteRequestWithTimeout() + { + + ASSERT( ! iTimer->IsActive() ); + + if ( ! iTimer->IsActive() ) + { + iTimer->Cancel(); + } + + // Start timer with KSimLockProxyTimeout to protect against requests that + // do not complete for some reason. + iTimer->Start(KSimLockTimeoutDelay,0,TCallBack(&TimerElapsed)); + + SetActive(); + + // Wait for request to complete. Response time is expected to be negligible. + iSchedulerWait->Start(); + iTimer->Cancel(); + } + + +// end of file. + diff -r 164170e6151a -r d5423fbb4f29 securitydialogs/simlockui/src/SimLockTelephonyProxy.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/securitydialogs/simlockui/src/SimLockTelephonyProxy.cpp Tue Feb 02 00:44:34 2010 +0200 @@ -0,0 +1,157 @@ +/* +* ============================================================================ +* Name : SimLockTelephonyProxy.cpp +* Part of : Sim Lock UI Telephony Proxy +* Description : Wrap asynchronous calls to Core Telephony +* Version : +* +* Copyright (c) 2005-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: Build info file for Ado domain appinstall +* ============================================================================ +*/ + +// System Includes +#include // CTelephony + +// User Includes +#include "SimLockTelephonyProxy.h" +#include "SimLockUi.pan" + + +TInt KSimLockProxyTimeout = 5000000; // 5 seconds + +// --------------------------------------------------------------------------- +// CSimLockDataHandlingDelegate::NewL +// --------------------------------------------------------------------------- +CSimLockTelephonyProxy* CSimLockTelephonyProxy::NewL() + { + CSimLockTelephonyProxy* self = new ( ELeave ) CSimLockTelephonyProxy(); + CleanupStack::PushL( self ); + self->ConstructL(); + CleanupStack::Pop( self ); + return self; + } + +// --------------------------------------------------------------------------- +// CSimLockTelephonyProxy::CSimLockTelephonyProxy +// --------------------------------------------------------------------------- +CSimLockTelephonyProxy::~CSimLockTelephonyProxy() + { + Cancel(); + delete iTelephony; + delete iSchedulerWait; + delete iTimer; + } + +// --------------------------------------------------------------------------- +// CSimLockTelephonyProxy::IsCallInProgress +// --------------------------------------------------------------------------- +TBool CSimLockTelephonyProxy::IsCallInProgress() + { + iTelephony->GetIndicator( iStatus, iIndicatorPackage ); + CompleteRequestWithTimeout(); + + if ( iStatus != KErrNone ) + { + // If there is an error obtaining status, assume no call in progress + } + else if ( iIndicators.iIndicator & CTelephony::KIndCallInProgress ) + { + return ETrue; + } + + return EFalse; + } + +// --------------------------------------------------------------------------- +// CSimLockTelephonyProxy::RunL +// --------------------------------------------------------------------------- +void CSimLockTelephonyProxy::RunL() + { + // Stop the current run sequence so we can continue execution in a + // synchronous fashion + iSchedulerWait->AsyncStop(); + } + +// --------------------------------------------------------------------------- +// CSimLockTelephonyProxy::DoCancel +// --------------------------------------------------------------------------- +void CSimLockTelephonyProxy::DoCancel() + { + // Cancel outstanding request + iTelephony->CancelAsync( CTelephony::EGetIndicatorCancel ); + iSchedulerWait->AsyncStop(); + } + +// --------------------------------------------------------------------------- +// CSimLockTelephonyProxy::CSimLockTelephonyProxy +// --------------------------------------------------------------------------- +CSimLockTelephonyProxy::CSimLockTelephonyProxy() + : CActive( EPriorityStandard ), + iIndicatorPackage( iIndicators ) + { + } + +// --------------------------------------------------------------------------- +// CSimLockTelephonyProxy::ConstructL +// --------------------------------------------------------------------------- +void CSimLockTelephonyProxy::ConstructL() + { + CActiveScheduler::Add( this ); + iSchedulerWait = new ( ELeave ) CActiveSchedulerWait; + iTelephony = CTelephony::NewL(); + iTimer = CPeriodic::NewL(EPriorityHigh); + } + +// --------------------------------------------------------------------------- +// CSimLockTelephonyProxy::TimerElapsed +// --------------------------------------------------------------------------- +TInt CSimLockTelephonyProxy::TimerElapsed(TAny* aClientObject) + { + CSimLockTelephonyProxy* clientObject = static_cast(aClientObject); + + // Timeout timer has elapsed. An asynchronous request timed out. + ASSERT(0); + + // Cancel original request + clientObject->Cancel(); + return 0; + } + +// --------------------------------------------------------------------------- +// CSimLockTelephonyProxy::CompleteRequestWithTimeout +// --------------------------------------------------------------------------- +void CSimLockTelephonyProxy::CompleteRequestWithTimeout() + { + + if ( iTimer->IsActive() ) + { + ASSERT(0); + iTimer->Cancel(); + } + + // Start timer with KSimLockProxyTimeout to protect against requests that + // do not complete for some reason. + iTimer->Start(KSimLockProxyTimeout,0,TCallBack(&TimerElapsed, this)); + + SetActive(); + + // Wait for request to complete. Response time is expected to be negligible. + iSchedulerWait->Start(); + + iTimer->Cancel(); + } + +// end of file + diff -r 164170e6151a -r d5423fbb4f29 securitydialogs/simlockui/src/SimLockUI.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/securitydialogs/simlockui/src/SimLockUI.cpp Tue Feb 02 00:44:34 2010 +0200 @@ -0,0 +1,49 @@ +/* +* ============================================================================ +* Name : SimLockUI.cpp +* Part of : Sim Lock UI Application +* Description : Sim Lock UI App framework code +* Version : +* +* Copyright (c) 2005-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: Build info file for Ado domain appinstall +* ============================================================================ +*/ + +// System Includes +#include + +// User Includes +#include "SimLockUIApplication.h" + +// --------------------------------------------------------------------------- +// NewApplication +// --------------------------------------------------------------------------- +CApaApplication* NewApplication() + { + // Create an application, and return a pointer to it + return new CSimLockUIApplication; + } + +// --------------------------------------------------------------------------- +// E32Main +// --------------------------------------------------------------------------- +TInt E32Main() + { + return EikStart::RunApplication( NewApplication ); + } + +// End of file + + diff -r 164170e6151a -r d5423fbb4f29 securitydialogs/simlockui/src/SimLockUIApplication.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/securitydialogs/simlockui/src/SimLockUIApplication.cpp Tue Feb 02 00:44:34 2010 +0200 @@ -0,0 +1,52 @@ +/* +* ============================================================================ +* Name : SimLockUIApplication.cpp +* Part of : Sim Lock UI Application +* Description : Implementation of Sim Lock UI Application UI Methods +* Version : +* +* Copyright (c) 2005-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: Build info file for Ado domain appinstall +* ============================================================================ +*/ + +// User include files +#include "SimLockUIDocument.h" +#include "SimLockUIApplication.h" +#include "SimLockUI.hrh" + +// UID for the application, this should correspond to the uid defined in the mmp file +static const TUid KUidSimLockUIApp = {SIMLOCK_UI_UID3}; + +// --------------------------------------------------------------------------- +// CSimLockUIApplication::CreateDocumentL +// --------------------------------------------------------------------------- +CApaDocument* CSimLockUIApplication::CreateDocumentL() + { + // Create an SimLockUI document, and return a pointer to it + CApaDocument* document = CSimLockUIDocument::NewL( *this ); + return document; + } + +// --------------------------------------------------------------------------- +// CSimLockUIApplication::AppDllUid +// --------------------------------------------------------------------------- +TUid CSimLockUIApplication::AppDllUid() const + { + // Return the UID for the SimLockUI application + return KUidSimLockUIApp; + } + +// End of file + diff -r 164170e6151a -r d5423fbb4f29 securitydialogs/simlockui/src/SimLockUIAppui.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/securitydialogs/simlockui/src/SimLockUIAppui.cpp Tue Feb 02 00:44:34 2010 +0200 @@ -0,0 +1,417 @@ +/* + * ============================================================================ + * Name : SimLockUIAppUi.cpp + * Part of : Sim Lock UI Application + * Description : Implementation of Sim Lock UI Application UI Methods + * Version : + * +* Copyright (c) 2005-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: Build info file for Ado domain appinstall +* ============================================================================ +*/ + +// Platform Includes +#include +#include // CAknNoteDialog +#include // StringLoader +#include // KErrGsm0707OperationNotAllowed +#include // CEikStatusPane +#include // CAknMessageQueryDialog +#include +#include //Rproperty +// Local Includes +#include "SimLockISAServerDefinitions.h" +#include "SimLockUI.pan" +#include "SimLockUIAppUi.h" +#include "SimLockUIBackgroundControl.h" +#include "SimLockUI.hrh" +#include "SimLockDataHandlingDelegate.h" +#include "SimLockTelephonyProxy.h" +#include "SimLockUiKeys.h" + +// Resource Includes +#include + +// --------------------------------------------------------------------------- +// CSimLockUIAppUi::CSimLockUIAppUi +// --------------------------------------------------------------------------- +CSimLockUIAppUi::CSimLockUIAppUi( + CSimLockDataHandlingDelegate& aSimLockDelegate) : + iSimLockDelegate(aSimLockDelegate), iFirstRun(ETrue) + { + // no implementation required + } + +// --------------------------------------------------------------------------- +// CSimLockUIAppUi::ConstructL +// --------------------------------------------------------------------------- +void CSimLockUIAppUi::ConstructL() + { + BaseConstructL(EAknEnableSkin | EAknEnableMSK); + + // Used to get status of phone call + iTelephonyProxy = CSimLockTelephonyProxy::NewL(); + //Define RProperty to Publish Keys for SimLockUi + TInt ret = RProperty::Define(KSimLockProperty, ESimLockActiveStatus, + RProperty::EInt); + } + +// --------------------------------------------------------------------------- +// CSimLockUIAppUi::~CSimLockUIAppUi +// --------------------------------------------------------------------------- +CSimLockUIAppUi::~CSimLockUIAppUi() + { + + delete iTelephonyProxy; + + if (iBackgroundControl) + { + RemoveFromStack(iBackgroundControl); + delete iBackgroundControl; + } + //Sets SimLock Ui P&S keys to show that SimLock Ui is exiting + RProperty::Set(KSimLockProperty, ESimLockActiveStatus, KSimLockStatusDone); + + } + +// --------------------------------------------------------------------------- +// CSimLockUIAppUi::HandleCommandL +// --------------------------------------------------------------------------- +void CSimLockUIAppUi::HandleCommandL(TInt aCommand) + { + switch (aCommand) + { + case EEikCmdExit: + case EAknSoftkeyExit: + Exit(); + break; + + default: + Panic(ESimLockUIBasicUi); + break; + } + } + +// --------------------------------------------------------------------------- +// CSimLockUIAppUi::HandleForegroundEventL +// --------------------------------------------------------------------------- +void CSimLockUIAppUi::HandleForegroundEventL(TBool aForeground) + { + CAknAppUi::HandleForegroundEventL(aForeground); + + // When the app switches to the foreground for the first time, display + // series of dialogs. + if (aForeground && iFirstRun) + { + iFirstRun = EFalse; + ProcessSimUnlockDialogsL(); + PrepareToExit(); + Exit(); + } + } + +// --------------------------------------------------------------------------- +// CSimLockUIAppUi::ProcessSimUnlockDialogsL +// --------------------------------------------------------------------------- +TBool CSimLockUIAppUi::ProcessSimUnlockDialogsL() + { + TBool keepLooping = ETrue; + + TBuf password; + + // Loop until flag is set + do + { + // Create background if not already there + if (!iBackgroundControl) + { + CreateBackgroundControlL(); + } + // Display Introduction Dialog/Prompt + if (!DisplayIntroductionDialogL()) + { + return EFalse; + } + // Prompt for password and attempt to unlock Sim + if (!PromptForPasswordL(password)) + { + // skip next iteration + continue; + } + // Set only if no dialogs are ever dismissed + keepLooping = AttemptToUnlockSimL(password); + + // Continue to loop while indicated to start over and dialog + // has not been dismissed + } + while (keepLooping); + + return keepLooping; + } + +// --------------------------------------------------------------------------- +// CSimLockUIAppUi::CreateBackgroundControlL +// --------------------------------------------------------------------------- +void CSimLockUIAppUi::CreateBackgroundControlL() + { + CEikStatusPane* statusPane = StatusPane(); + + // Remove status pane + // Crop background pane to reveal idle status pane + TRect background = ClientRect(); + statusPane->ReduceRect(background); + statusPane->SwitchLayoutL(R_AVKON_STATUS_PANE_LAYOUT_EMPTY); + + iBackgroundControl = CSimLockUIBackgroundControl::NewL(background); + AddToStackL(iBackgroundControl); + } + +// --------------------------------------------------------------------------- +// CSimLockUIAppUi::DisplayIntroductionDialogL +// --------------------------------------------------------------------------- +TBool CSimLockUIAppUi::DisplayIntroductionDialogL() + { + SetBackgroundTextL(EBackgroundTextEmpty); + + HBufC* displayText = StringLoader::LoadLC(R_SIM_INFO_WELCOME_NOTE_TEXT); + CAknMessageQueryDialog* query = new (ELeave) CAknMessageQueryDialog( + CAknMessageQueryDialog::ENoTone); + CleanupStack::PushL(query); + query->SetMessageTextL(*displayText); + TInt executeResult = query->ExecuteLD(R_SIM_INFO_WELCOME_NOTE); + CleanupStack::Pop(query); + CleanupStack::PopAndDestroy(displayText); + return executeResult; + + } + +// --------------------------------------------------------------------------- +// CSimLockUIAppUi::PromptForPasswordL +// --------------------------------------------------------------------------- +TBool CSimLockUIAppUi::PromptForPasswordL(TDes& aPassword) + { + TBuf newPassword; + + // Prompt for password twice. Loop until passwords match. + do + { + aPassword.Zero(); + + // Ask for password + CAknTextQueryDialog* dialog = CAknTextQueryDialog::NewL(aPassword); + // dialog->SetMaxLength(SEC_ATT_PASSWORD_MAX_LENGTH); + + if (!dialog->ExecuteLD(R_SIM_INFO_ENTER_PASSWORD)) + { + return EFalse; + } + + // Ask to re-enter password and verify there is no call in progress + if (!CompletePromptForPasswordL(aPassword, newPassword)) + { + return EFalse; + } + } + while (newPassword.Compare(aPassword)); + + return ETrue; + } + +// --------------------------------------------------------------------------- +// CSimLockUIAppUi::CompletePromptForPasswordL +// --------------------------------------------------------------------------- +TBool CSimLockUIAppUi::CompletePromptForPasswordL(const TDesC& aPassword, + TDes& aNewPassword) + { + TBool callInProgress = EFalse; + + aNewPassword.Zero(); + + do // Loop until no call in progress + { + // Display dialog to ask to re-enter password + CAknTextQueryDialog* dialog = CAknTextQueryDialog::NewL(aNewPassword); + if (!dialog->ExecuteLD(R_SIM_INFO_REENTER_PASSWORD)) + { + return EFalse; + } + + // Check to see if passwords match + if (aNewPassword.Compare(aPassword)) + { + // Create message query dialog to indicate that codes do not match + CAknMessageQueryDialog* query = + new (ELeave) CAknMessageQueryDialog( + CAknMessageQueryDialog::ENoTone); + return query->ExecuteLD(R_SIM_INFO_CODES_NOT_MATCH); + } + + // If there is a call in progress, show note and return to "re-enter password" prompt + if (!iTelephonyProxy->IsCallInProgress()) + { + return ETrue; + } + + // Do not allow Sim unlocking, return to password prompt + ShowInformationNoteL(R_SIM_UNLOCK_MESSAGE_END_CALL); + callInProgress = ETrue; + } + while (callInProgress); + + return ETrue; + } + +// --------------------------------------------------------------------------- +// CSimLockUIAppUi::AttemptToUnlockSimL +// --------------------------------------------------------------------------- +TBool CSimLockUIAppUi::AttemptToUnlockSimL(const TDesC& aPassword) + { + +const TDesC& password = aPassword; + +#ifdef __WINS__ + // In WINS (Emulator) builds, call to OpenSimLock will just time out + TInt unlockResult = KErrGsm0707IncorrectPassword; +#else + // Attempt to unlock SIM + TInt unlockResult = iSimLockDelegate.OpenSimLock( password ); +#endif + + CAknMessageQueryDialog* query = new (ELeave) CAknMessageQueryDialog( + CAknMessageQueryDialog::ENoTone); + + switch (unlockResult) + { + case KErrAlreadyExists: + // Should not happen! This indicates that the phone was already unlocked, + // which it shouldn't be if we got this far. + ASSERT( 0 ); + + // Fall Through + + case KErrNone: + SetBackgroundTextL(EBackgroundTextUnlockComplete); + ShowInformationNoteL(R_SIM_PHONE_UNLOCKED); + return EFalse; + + default: + // Oops, we missed one. + ASSERT( 0 ); + case KErrGsm0707OperationNotAllowed: + case KErrLocked: + // Permanently locked + SetBackgroundTextL(EBackgroundTextEmpty); + query->ExecuteLD(R_SIM_UNLOCK_FINAL); + return EFalse; + case KErrTimedOut: + case KErrGeneral: + case KErrArgument: + case KErrGsm0707IncorrectPassword: + // Not permanently locked + return HandleUnlockFailedL(); + + + }//switch + } +// --------------------------------------------------------------------------- +// CSimLockUIAppUi::HandleUnlockFailedL +// --------------------------------------------------------------------------- +TBool CSimLockUIAppUi::HandleUnlockFailedL() + { + TBuf password; + // Otherwise, prompt user to try again + SetBackgroundTextL(EBackgroundTextEmpty); + + // Show "Code Incorrect" and prompt user to continue or not + CAknMessageQueryDialog* query = new (ELeave) CAknMessageQueryDialog( + CAknMessageQueryDialog::ENoTone); + if (query->ExecuteLD(R_SIM_INFO_CODE_INCORRECT)) + { + if ( PromptForPasswordL(password) ) + { + return AttemptToUnlockSimL(password); + } + else + { + // Set flag indicating to keep looping + return ETrue; + } + } + else + { + // display intro popup + return ETrue; + } + } + +// --------------------------------------------------------------------------- +// CSimLockUIAppUi::ShowInformationNoteL +// --------------------------------------------------------------------------- +TInt CSimLockUIAppUi::ShowInformationNoteL(TInt aResourceId) const + { + TInt executeResult; + + // Show note with the provided resource id + HBufC* displayText = StringLoader::LoadLC(aResourceId); + + CAknInformationNote* dialog = new (ELeave) CAknInformationNote(ETrue); + executeResult = dialog->ExecuteLD(*displayText); + CleanupStack::PopAndDestroy(displayText); + return executeResult; + } + +// --------------------------------------------------------------------------- +// CSimLockUIAppUi::SetBackgroundTextL +// --------------------------------------------------------------------------- +void CSimLockUIAppUi::SetBackgroundTextL(TBackgroundText aText) + { + HBufC* displayText = NULL; + + // Load resource and set text in background control based on provided info + switch (aText) + { + case EBackgroundTextEmpty: + displayText = KNullDesC().AllocL(); + break; + + case EBackgroundTextMain: + displayText = StringLoader::LoadL( + R_SIMLOCK_UI_BACKGROUND_TEXT_MAIN); + break; + + case EBackgroundTextUnlockComplete: + displayText = StringLoader::LoadL( + R_SIMLOCK_UI_BACKGROUND_TEXT_UNLOCK_COMPLETE); + break; + + case EBackgroundTextUnlockFailed: + displayText = StringLoader::LoadL( + R_SIMLOCK_UI_BACKGROUND_TEXT_UNLOCK_FAILED); + break; + + case EBackgroundTextUnlockIncorrect: + displayText = StringLoader::LoadL( + R_SIMLOCK_UI_BACKGROUND_TEXT_UNLOCK_INCORRECT); + break; + + default: + ASSERT( 0 ); + break; + } + + // Transfer ownership to iBackgroundControl + iBackgroundControl->SetBackgroundText(displayText); + } + +// End of file. diff -r 164170e6151a -r d5423fbb4f29 securitydialogs/simlockui/src/SimLockUIBackgroundControl.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/securitydialogs/simlockui/src/SimLockUIBackgroundControl.cpp Tue Feb 02 00:44:34 2010 +0200 @@ -0,0 +1,178 @@ +/* +* ============================================================================ +* Name : SimLockUIBackgroundControl.cpp +* Part of : Sim Lock UI Application +* Description : Implementation of Sim Lock UI Background +* Version : +* +* Copyright (c) 2005-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: Build info file for Ado domain appinstall +* ============================================================================ +*/ + + +// System Includes +#include +#include // AknsDrawUtils +#include // MAknsSkinInstance +#include // MAknsControlContext +#include // CAknsBasicBackgroundControlContext +#include // AknLayoutScalable_Avkon +#include // AknsUtils + +// User Includes +#include "SimLockUIBackgroundControl.h" +#include "SimLockISAServerDefinitions.h" +#include + +static const TInt KSkinLayoutOption = 2; + +// --------------------------------------------------------------------------- +// CSimLockUIBackgroundControl::NewL +// --------------------------------------------------------------------------- +CSimLockUIBackgroundControl* CSimLockUIBackgroundControl::NewL( const TRect& aRect ) + { + CSimLockUIBackgroundControl* self = CSimLockUIBackgroundControl::NewLC( aRect ); + CleanupStack::Pop( self ); + return self; + } + +// --------------------------------------------------------------------------- +// CSimLockUIBackgroundControl::NewLC +// --------------------------------------------------------------------------- +CSimLockUIBackgroundControl* CSimLockUIBackgroundControl::NewLC( const TRect& aRect ) + { + CSimLockUIBackgroundControl* self = new ( ELeave ) CSimLockUIBackgroundControl; + CleanupStack::PushL( self ); + self->ConstructL( aRect ); + return self; + } + +// --------------------------------------------------------------------------- +// CSimLockUIBackgroundControl::~CSimLockUIBackgroundControl +// --------------------------------------------------------------------------- +CSimLockUIBackgroundControl::~CSimLockUIBackgroundControl() + { + delete iBackgroundSkinContext; + delete iDisplayText; + } + +// --------------------------------------------------------------------------- +// CSimLockUIBackgroundControl::SetBackgroundText +// --------------------------------------------------------------------------- +void CSimLockUIBackgroundControl::SetBackgroundText( HBufC* aText ) + { + delete iDisplayText; + + iDisplayText = aText; + + DrawDeferred(); + } + +// --------------------------------------------------------------------------- +// CSimLockUIBackgroundControl::ConstructL +// --------------------------------------------------------------------------- +void CSimLockUIBackgroundControl::ConstructL( const TRect& aRect ) + { + // Create a window for this application view + CreateWindowL(); + + iBackgroundSkinContext = CAknsBasicBackgroundControlContext::NewL( + KAknsIIDQsnBgAreaMain, aRect, EFalse ); + + // Set the windows size + SetRect( aRect ); + + // Activate the window, which makes it ready to be drawn + ActivateL(); + } + +// --------------------------------------------------------------------------- +// CSimLockUIBackgroundControl::SizeChanged +// --------------------------------------------------------------------------- +void CSimLockUIBackgroundControl::SizeChanged() + { + // Background skin. + iBackgroundSkinContext->SetRect( Rect() ); + } + + +// --------------------------------------------------------------------------- +// CSimLockUIBackgroundControl::Draw +// --------------------------------------------------------------------------- +void CSimLockUIBackgroundControl::Draw( const TRect& /*aRect*/ ) const + { + // Draw background skin + CWindowGc& graphicsContext = SystemGc(); + MAknsSkinInstance* skin = AknsUtils::SkinInstance(); + MAknsControlContext* controlContext = AknsDrawUtils::ControlContext( this ); + AknsDrawUtils::Background( skin, controlContext, this, graphicsContext, Rect() ); + + // Draw background text + DisplayText( graphicsContext ); + } + +// --------------------------------------------------------------------------- +// CSimLockUIBackgroundControl::MopSupplyObject +// --------------------------------------------------------------------------- +TTypeUid::Ptr CSimLockUIBackgroundControl::MopSupplyObject( TTypeUid aId ) + { + if ( aId.iUid == MAknsControlContext::ETypeId ) + { + // Return the background skin object + return MAknsControlContext::SupplyMopObject( aId, iBackgroundSkinContext ); + } + + return CCoeControl::MopSupplyObject( aId ); + } + +// --------------------------------------------------------------------------- +// CSimLockUIBackgroundControl::DisplayText +// --------------------------------------------------------------------------- +void CSimLockUIBackgroundControl::DisplayText( CGraphicsContext& aGc ) const + { + if ( iDisplayText ) + { + // Set up text and layout + TAknLayoutText line; + TAknTextLineLayout layout = AknLayoutScalable_Avkon::main_pane_empty_t1( KSkinLayoutOption ).LayoutLine(); + + line.LayoutText( Rect(), layout ); + + // Get color from skin instance. + TRgb color( line.Color() ); + + if ( AknsUtils::AvkonSkinEnabled() ) + { + TRgb skinColor; + + MAknsSkinInstance* skin = AknsUtils::SkinInstance(); + + TInt err = AknsUtils::GetCachedColor( skin, + skinColor, + KAknsIIDQsnTextColors, + EAknsCIQsnTextColorsCG6 ); + if ( err == KErrNone ) + { + color = skinColor; + } + } + + // Actually display the text + line.DrawText( aGc, *iDisplayText, ETrue, color ); + } + } + +// End of file. + diff -r 164170e6151a -r d5423fbb4f29 securitydialogs/simlockui/src/SimLockUIDocument.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/securitydialogs/simlockui/src/SimLockUIDocument.cpp Tue Feb 02 00:44:34 2010 +0200 @@ -0,0 +1,158 @@ +/* +* ============================================================================ +* Name : SimLockUIDocument.cpp +* Part of : Sim Lock UI Application +* Description : Implementation of Sim Lock UI Application +* Version : +* +* Copyright (c) 2005-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: Build info file for Ado domain appinstall +* +* ============================================================================ +*/ + +// System Include Files +#include // RMmCustomAPI, RMobilePhone +#include // KMmTsyModuleName +#include + +// User Include Files +#include "SimLockDataHandlingDelegate.h" +#include "SimLockISAServerDefinitions.h" +#include "SimLockUIAppUi.h" +#include "SimLockUIDocument.h" + +// Local Constants +const TInt KTriesToConnectServer( 2 ); +const TInt KTimeBeforeRetryingServerConnection( 50000 ); +static const TInt KPhoneInfoIndex( 0 ); + + +// --------------------------------------------------------------------------- +// CSimLockUIDocument::NewL +// --------------------------------------------------------------------------- +CSimLockUIDocument* CSimLockUIDocument::NewL( CEikApplication& aApp ) + { + CSimLockUIDocument* self = NewLC( aApp ); + CleanupStack::Pop( self ); + return self; + } + +// --------------------------------------------------------------------------- +// CSimLockUIDocument::NewLC +// --------------------------------------------------------------------------- +CSimLockUIDocument* CSimLockUIDocument::NewLC( CEikApplication& aApp ) + { + CSimLockUIDocument* self = new ( ELeave ) CSimLockUIDocument( aApp ); + CleanupStack::PushL( self ); + self->ConstructL(); + return self; + } + +// --------------------------------------------------------------------------- +// CSimLockUIDocument::~CSimLockUIDocument +// --------------------------------------------------------------------------- +CSimLockUIDocument::~CSimLockUIDocument() + { + // Close phone + if ( iPhone.SubSessionHandle() ) + { + iPhone.Close(); + } + + // Close custom phone + if ( iCustomPhone.SubSessionHandle() ) + { + iCustomPhone.Close(); + } + + // Close ETel connection + if ( iServer.Handle() ) + { + iServer.UnloadPhoneModule( KMmTsyModuleName ); + iServer.Close(); + } + + // Delete simlock delegate + delete iSimLockDelegate; + } + +// --------------------------------------------------------------------------- +// CSimLockUIDocument::CreateAppUiL +// --------------------------------------------------------------------------- +CEikAppUi* CSimLockUIDocument::CreateAppUiL() + { + // Create the application user interface, and return a pointer to it, + // the framework takes ownership of this object + CEikAppUi* appUi = new(ELeave)CSimLockUIAppUi( *iSimLockDelegate ); + return appUi; + } + +// --------------------------------------------------------------------------- +// CSimLockUIDocument::ConstructL +// --------------------------------------------------------------------------- +void CSimLockUIDocument::ConstructL() + { + RTelServer::TPhoneInfo phoneInfo; + + TInt error( KErrGeneral ); + + // Connect to ETel server + // All server connections are tried to be made KTriesToConnectServer times because occasional + // fails on connections are possible, at least on some servers. + for ( TInt thisTry=0; thisTry