Revision: 201003 default PDK_3.0.g
authorDremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Tue, 02 Feb 2010 00:44:34 +0200
changeset 1 d5423fbb4f29
parent 0 164170e6151a
child 5 3b17fc5c9564
Revision: 201003 Kit: 201005
gba/gbaapi/inc/GbaClientrequesthandler.h
gba/gbaapi/inc/GbaServerSession.h
gba/gbaapi/src/GbaUtility.cpp
gba/gbafilter/inc/HTTPFilterGBA.h
gba/gbaserver/inc/bootstrap.h
pkiutilities/CertmanUi/INC/Certmanuidialogs.h
pkiutilities/CertmanUi/SRC/Certmanuidialogs.cpp
securitydialogs/Autolock/src/AutolockContainer.cpp
securitydialogs/SecUi/Data/SecUi.rss
securitydialogs/SecUi/GSSimSecPlugin/Data/GSSimSecPluginRsc.rss
securitydialogs/SecUi/GSSimSecPlugin/Inc/GSSimSecPlugin.h
securitydialogs/SecUi/GSSimSecPlugin/Src/GSSimSecPlugin.cpp
securitydialogs/SecUi/GSSimSecPlugin/Src/GSSimSecPluginContainer.cpp
securitydialogs/SecUi/Src/SecUiSecurityHandler.cpp
securitydialogs/group/bld.inf
securitydialogs/lockapp/src/lockappappui.cpp
securitydialogs/lockapp/src/lockappdevicelockcontrol.cpp
securitydialogs/simlockui/data/SimLockUI.rss
securitydialogs/simlockui/data/SimLockUI_reg.rss
securitydialogs/simlockui/group/SimLockUI.mmp
securitydialogs/simlockui/group/bld.inf
securitydialogs/simlockui/inc/SimLockDataHandlingDelegate.h
securitydialogs/simlockui/inc/SimLockISAServerDefinitions.h
securitydialogs/simlockui/inc/SimLockTelephonyProxy.h
securitydialogs/simlockui/inc/SimLockUI.hrh
securitydialogs/simlockui/inc/SimLockUI.loc
securitydialogs/simlockui/inc/SimLockUI.pan
securitydialogs/simlockui/inc/SimLockUIApplication.h
securitydialogs/simlockui/inc/SimLockUIAppui.h
securitydialogs/simlockui/inc/SimLockUIBackgroundControl.h
securitydialogs/simlockui/inc/SimLockUIDocument.h
securitydialogs/simlockui/inc/SimLockUiKeys.h
securitydialogs/simlockui/rom/simlockui.iby
securitydialogs/simlockui/rom/simlockui_resources.iby
securitydialogs/simlockui/src/SimLockDataHandlingDelegate.cpp
securitydialogs/simlockui/src/SimLockTelephonyProxy.cpp
securitydialogs/simlockui/src/SimLockUI.cpp
securitydialogs/simlockui/src/SimLockUIApplication.cpp
securitydialogs/simlockui/src/SimLockUIAppui.cpp
securitydialogs/simlockui/src/SimLockUIBackgroundControl.cpp
securitydialogs/simlockui/src/SimLockUIDocument.cpp
wim/WimServer/inc/WimCleanup.h
--- a/gba/gbaapi/inc/GbaClientrequesthandler.h	Tue Jan 26 15:20:08 2010 +0200
+++ b/gba/gbaapi/inc/GbaClientrequesthandler.h	Tue Feb 02 00:44:34 2010 +0200
@@ -20,7 +20,7 @@
 #define GBACLIENTREQUESTHANDLER_H
 
 #include <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"
 
 
 //