--- 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 <e32base.h>
-#include "gbautility.h"
+#include <GbaUtility.h>
// CLASS DECLARATION
class RGbaServerSession;
--- 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 <e32base.h>
-#include <gbautility.h>
+#include <GbaUtility.h>
class RGbaServerSession : public RSessionBase
{
--- 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 <gbautility.h>
+#include <GbaUtility.h>
#include "GbaClientrequesthandler.h"
#include "GBALogger.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 <http/cecomfilter.h>
#include <http/framework/httplogger.h>
-#include <gbautility.h>
+#include <GbaUtility.h>
class RHTTPResponse;
class RHTTPTransaction;
--- 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 <e32base.h>
#include <stringpool.h>
#include <http.h>
-#include <gbautility.h>
+#include <GbaUtility.h>
#include "M3GPPAuthenticationCallback.h"
#include "gbauicc.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 <e32base.h>
-// 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
--- 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 <AknWaitDialog.h>
#include <certmanui.rsg>
#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
--- 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 <e32property.h>
#include <PSVariables.h> // Property values
#include <coreapplicationuisdomainpskeys.h>
-#include <StartupDomainPSKeys.h>
+#include <startupdomainpskeys.h>
#include <ctsydomainpskeys.h>
_LIT(BitmapName,"AutoLock.mbm");
--- 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 <eikon.rh>
-#include <eikcore.rsg>
+#include <EIKCORE.rsg>
#include <avkon.loc>
#include <secui.loc>
--- 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.loc> // Avkon localized strings
#include <avkon.mbg>
#include <avkon.rsg>
-#include <eikcore.rsg>
+#include <EIKCORE.rsg>
#include <uikon.rh>
#include <eikon.rh>
#include <avkon.rh>
--- 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 <gsfwviewuids.h>
#include <gsbaseview.h>
#include <secuisecuritysettings.h>
-#include <RSSSettings.h>
+#include <rsssettings.h>
// CONSTANTS
const TInt KMaxStringLength = 80;
--- 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 <aknradiobuttonsettingpage.h>
#include <aknPopup.h>
#include <aknlists.h>
-#include <RSSSettings.h>
+#include <rsssettings.h>
#include <AknQueryDialog.h>
#include <aknnotedialog.h>
#include <aknViewAppUi.h>
--- 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 <aknlists.h>
#include <etelmm.h>
-#include <RSSSettings.h>
+#include <rsssettings.h>
#include <StringLoader.h>
#include <featmgr.h>
#include <csxhelp/cp.hlp.hrh>
--- 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;
--- 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
--- 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 <lockappclientserver.h>
#include <aknglobalpopupprioritycontroller.h>
-#include <APGCLI.h>
+#include <apgcli.h>
#ifdef __SAP_TERMINAL_CONTROL_FW
#include <SCPClient.h>
--- 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 <mmtsy_names.h>
#include <featmgr.h>
#include <secui.h>
-#include <SecUiSecurityHandler.h>
+#include <secuisecurityhandler.h>
#include <settingsinternalcrkeys.h> // KSettingsAutolockStatus
#include <coreapplicationuisdomainpskeys.h>
--- /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 <eikon.rh>
+#include <eikon.rsg>
+#include <avkon.rh>
+#include <avkon.rsg>
+#include <appinfo.rh>
+
+#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;
+ };
+ };
+ }
+ };
+ }
--- /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 <appinfo.rh>
+#include <SimLockUI.rsg>
+
+#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;
+ }
--- /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 <data_caging_paths.hrh>
+#include <platform_paths.hrh>
+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.
+
--- /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 <platform_paths.hrh>
+
+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
--- /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 <e32base.h>
+
+// 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
+
--- /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 <e32base.h>
+
+// =============================================
+// 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
--- /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 <e32base.h>
+#include <Etel3rdParty.h> // 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.
--- /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.
--- /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."
+
--- /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__
--- /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 <aknapp.h> // 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.
--- /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 <aknappui.h>
+#include <aknnotedialog.h> // CAknNoteDialog::TTone
+#include <e32property.h> // 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.
--- /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 <e32base.h>
+#include <coecntrl.h> // 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.
+
--- /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 <akndoc.h>
+#include <RMmCustomAPI.h> // 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.
+
--- /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 <aknappui.h>
+#include <aknnotedialog.h> // CAknNoteDialog::TTone
+#include <e32property.h> // 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.
--- /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 <data_caging_paths_for_iby.hrh>
+#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_
--- /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 <data_caging_paths_for_iby.hrh>
+#ifdef FF_SIMLOCKD_UI
+S60_APP_RESOURCE( SimLockUI )
+#endif // FF_SIMLOCK_UI
+
+#endif // _SIMLOCKUI_RESOURCES_IBY_
--- /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.h> // 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.
+
--- /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 <Etel3rdParty.h> // 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<CSimLockTelephonyProxy*>(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
+
--- /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 <eikstart.h>
+
+// 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
+
+
--- /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
+
--- /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 <avkon.hrh>
+#include <aknnotewrappers.h> // CAknNoteDialog
+#include <stringloader.h> // StringLoader
+#include <exterror.h> // KErrGsm0707OperationNotAllowed
+#include <eikspane.h> // CEikStatusPane
+#include <aknmessagequerydialog.h> // CAknMessageQueryDialog
+#include <e32base.h>
+#include <e32property.h> //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 <SimLockUI.rsg>
+
+// ---------------------------------------------------------------------------
+// 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<SEC_ATT_PASSWORD_MAX_BUFFER> 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<SEC_ATT_PASSWORD_MAX_BUFFER> 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<SEC_ATT_PASSWORD_MAX_BUFFER> 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.
--- /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 <coemain.h>
+#include <aknsdrawutils.h> // AknsDrawUtils
+#include <aknsskininstance.h> // MAknsSkinInstance
+#include <aknscontrolcontext.h> // MAknsControlContext
+#include <aknsbasicbackgroundcontrolcontext.h> // CAknsBasicBackgroundControlContext
+#include <AknLayoutScalable_Avkon.cdl.h> // AknLayoutScalable_Avkon
+#include <aknutils.h> // AknsUtils
+
+// User Includes
+#include "SimLockUIBackgroundControl.h"
+#include "SimLockISAServerDefinitions.h"
+#include <SimLockUI.rsg>
+
+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.
+
--- /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.h> // RMmCustomAPI, RMobilePhone
+#include <MmTsy_names.h> // KMmTsyModuleName
+#include <RMmCustomAPI.h>
+
+// 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<KTriesToConnectServer; thisTry++ )
+ {
+ error = iServer.Connect();
+ if ( error == KErrNone )
+ {
+ break;
+ }
+
+ // Very small delay. Does not have negative impact on UI. Justifiable as workaround
+ // for potential failure.
+ User::After( KTimeBeforeRetryingServerConnection );
+ }
+ User::LeaveIfError( error );
+
+ // load TSY module
+ error = iServer.LoadPhoneModule( KMmTsyModuleName );
+ if ( error != KErrAlreadyExists )
+ {
+ // May also return KErrAlreadyExists if something else
+ // has already loaded the TSY module. And that is
+ // not an error.
+ User::LeaveIfError( error );
+ }
+
+ // Set TSY paramaters and open RPhone handle, then RMobilePhone handle
+ User::LeaveIfError( iServer.SetExtendedErrorGranularity( RTelServer::EErrorExtended ) );
+ User::LeaveIfError( iServer.GetPhoneInfo( KPhoneInfoIndex, phoneInfo ) );
+ User::LeaveIfError( iPhone.Open( iServer, phoneInfo.iName ) );
+ User::LeaveIfError( iCustomPhone.Open( iPhone ) );
+
+ // Create SimLock Data Handling Delegate
+ iSimLockDelegate = CSimLockDataHandlingDelegate::NewL( iCustomPhone );
+ }
+
+// ---------------------------------------------------------------------------
+// CSimLockUIDocument::CSimLockUIDocument
+// ---------------------------------------------------------------------------
+CSimLockUIDocument::CSimLockUIDocument( CEikApplication& aApp )
+ : CAknDocument( aApp )
+ {
+ // no implementation required
+ }
+
+// end of file.
+
--- a/wim/WimServer/inc/WimCleanup.h Tue Jan 26 15:20:08 2010 +0200
+++ b/wim/WimServer/inc/WimCleanup.h Tue Feb 02 00:44:34 2010 +0200
@@ -18,7 +18,7 @@
#ifndef WIMCLEANUP_H
#define WIMCLEANUP_H
-#include "wimi.h"
+#include "Wimi.h"
//