--- a/boottimeintegritycheck/TrkDummy/group/TrkDummy.mmp Tue Aug 31 16:04:40 2010 +0300
+++ b/boottimeintegritycheck/TrkDummy/group/TrkDummy.mmp Wed Sep 01 12:19:59 2010 +0100
@@ -12,7 +12,7 @@
* Contributors:
*
* Description: Dummy exe to prevent installing too liberal TrkApp
-* Version : %version: tr1sido#10 %
+* Version : %version: tr1sido#9 %
*
*/
@@ -26,9 +26,9 @@
// This component is built-in'.
-
-#include <platform_paths.hrh>
-
+#if(!defined __SERIES60_30__ && !defined __SERIES60_31__)
+ #include <platform_paths.hrh>
+#endif
CAPABILITY None
@@ -45,9 +45,13 @@
SOURCE TrkDummy.cpp
SOURCE TrkDummyApplication.cpp
-USERINCLUDE ../inc
+USERINCLUDE ../inc
+#if defined (__SERIES60_30__) || defined(__SERIES60_31__)
+ SYSTEMINCLUDE /epoc32/include
+#else
+ MW_LAYER_SYSTEMINCLUDE
+#endif
-MW_LAYER_SYSTEMINCLUDE
LIBRARY euser.lib
LIBRARY apparc.lib
--- a/boottimeintegritycheck/TrkDummy/group/TrkDummy1.mmp Tue Aug 31 16:04:40 2010 +0300
+++ b/boottimeintegritycheck/TrkDummy/group/TrkDummy1.mmp Wed Sep 01 12:19:59 2010 +0100
@@ -12,7 +12,7 @@
* Contributors:
*
* Description: Dummy exe to prevent installing too liberal TrkApp
-* Version : %version: 8 %
+* Version : %version: 7 %
*
*/
@@ -26,9 +26,9 @@
// This component is built-in'.
-
-#include <platform_paths.hrh>
-
+#if(!defined __SERIES60_30__ && !defined __SERIES60_31__)
+ #include <platform_paths.hrh>
+#endif
CAPABILITY None
@@ -45,9 +45,12 @@
SOURCE TrkDummy.cpp
SOURCE TrkDummyApplication.cpp
-USERINCLUDE ../inc
-
-MW_LAYER_SYSTEMINCLUDE
+USERINCLUDE ../inc
+#if defined (__SERIES60_30__) || defined(__SERIES60_31__)
+ SYSTEMINCLUDE /epoc32/include
+#else
+ MW_LAYER_SYSTEMINCLUDE
+#endif
LIBRARY euser.lib
LIBRARY apparc.lib
--- a/boottimeintegritycheck/TrkDummy/group/TrkDummy2.mmp Tue Aug 31 16:04:40 2010 +0300
+++ b/boottimeintegritycheck/TrkDummy/group/TrkDummy2.mmp Wed Sep 01 12:19:59 2010 +0100
@@ -12,7 +12,7 @@
* Contributors:
*
* Description: Dummy exe to prevent installing too liberal TrkApp
-* Version : %version: 8 %
+* Version : %version: 7 %
*
*/
@@ -26,8 +26,9 @@
// This component is built-in'.
-
-#include <platform_paths.hrh>
+#if(!defined __SERIES60_30__ && !defined __SERIES60_31__)
+ #include <platform_paths.hrh>
+#endif
CAPABILITY None
@@ -45,9 +46,13 @@
SOURCE TrkDummy.cpp
SOURCE TrkDummyApplication.cpp
-USERINCLUDE ../inc
+USERINCLUDE ../inc
+#if defined (__SERIES60_30__) || defined(__SERIES60_31__)
+ SYSTEMINCLUDE /epoc32/include
+#else
+ MW_LAYER_SYSTEMINCLUDE
+#endif
-MW_LAYER_SYSTEMINCLUDE
LIBRARY euser.lib
LIBRARY apparc.lib
--- a/cpsecplugins/common.pri Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,66 +0,0 @@
-#
-# Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-# All rights reserved.
-# This component and the accompanying materials are made available
-# under the terms of "Eclipse Public License v1.0"
-# which accompanies this distribution, and is available
-# at the URL "http://www.eclipse.org/legal/epl-v10.html".
-#
-# Initial Contributors:
-# Nokia Corporation - initial contribution.
-#
-# Contributors:
-#
-# Description: controlpanel project - common qmake settings
-#
-
-CONFIG += debug_and_release
-
-# On win32 and mac, debug and release libraries are named differently.
-# We must follow the debug and release settings Qt was compiled with:
-# build debug iff Qt built debug, build release iff Qt built release.
-
-win32|mac {
- !contains(QT_CONFIG,debug)|!contains(QT_CONFIG,release) {
- CONFIG -= debug_and_release debug release
- contains(QT_CONFIG,debug): CONFIG+=debug
- contains(QT_CONFIG,release):CONFIG+=release
- }
-}
-
-CONFIG(debug, debug|release) {
- SUBDIRPART = debug
-} else {
- SUBDIRPART = release
-}
-
-win32 {
- DESTDIR = C:/ControlPanel/$$SUBDIRPART/bin
- OBJECTS_DIR = $$PWD/../$$SUBDIRPART/tmp/$$TARGET
-}
-
-# Add the output dirs to the link path too
-LIBS += -L$$DESTDIR
-
-MOC_DIR = moc
-OBJECT_DIR = obj
-RCC_DIR = rcc
-
-#For some reason the default include path doesn't include MOC_DIR on symbian
-symbian {
- INCLUDEPATH += $$MW_LAYER_SYSTEMINCLUDE
- INCLUDEPATH += $$MW_LAYER_PLATFORM_EXPORT_PATH(cplogger)
- INCLUDEPATH += $$APP_LAYER_SYSTEMINCLUDE
- INCLUDEPATH += $$MOC_DIR
- TARGET.CAPABILITY = ALL -TCB
- TARGET.EPOCALLOWDLLDATA = 1
-}
-
-INCLUDEPATH += $$PWD/inc
-win32 {
- # add platfrom API for windows
- INCLUDEPATH += $$PWD/../../controlpanel/controlpanel_plat/inc
-}
-
-
-
--- a/cpsecplugins/cpadvancedsecplugin/group/advancedsecplugin.pri Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,39 +0,0 @@
-# Copyright (c) 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: advancedsecplugin source files
-
-# Input
-HEADERS += ../inc/cpcertdatacontainer.h \
- ../inc/cpcertdetailview.h \
- ../inc/cpcertmanuisyncwrapper.h \
- ../inc/cpcerttrustview.h \
- ../inc/cpcertview.h \
- ../inc/cpcertpluginloader.h \
- ../inc/cpsecurityview.h \
- ../inc/cpuitrustids.h \
- ../inc/cpsecmodview.h \
- ../inc/cpsecmodmodel.h \
- ../inc/cpsecmodsyncwrapper.h \
- ../inc/cpmoduleview.h \
- ../inc/cpsecmoduleinfoview.h
-
-SOURCES += ../src/cpcertdatacontainer.cpp \
- ../src/cpcertdetailview.cpp \
- ../src/cpcertmanuisyncwrapper.cpp \
- ../src/cpcerttrustview.cpp \
- ../src/cpcertview.cpp \
- ../src/cpcertpluginloader.cpp \
- ../src/cpsecurityview.cpp \
- ../src/cpsecmodview.cpp \
- ../src/cpsecmodsyncwrapper.cpp \
- ../src/cpsecmodmodel.cpp \
- ../src/cpmoduleview.cpp \
- ../src/cpsecmoduleinfoview.cpp
-
--- a/cpsecplugins/cpadvancedsecplugin/group/advancedsecplugin.pro Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,58 +0,0 @@
-
-#
-# Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-# All rights reserved.
-# This component and the accompanying materials are made available
-# under the terms of "Eclipse Public License v1.0"
-# which accompanies this distribution, and is available
-# at the URL "http://www.eclipse.org/legal/epl-v10.html".
-#
-# Initial Contributors:
-# Nokia Corporation - initial contribution.
-#
-# Contributors:
-#
-# Description:
-#
-
-TEMPLATE = lib
-TARGET = cpadvancedsecplugin
-
-CONFIG += hb plugin
-
-LIBS += -lcpframework
-
-include ( advancedsecplugin.pri )
-include ( ../rom/cpsecplugins_rom.pri )
-
-symbian: {
- TARGET.CAPABILITY = CAP_ECOM_PLUGIN
- TARGET.UID3 = 0X2002E684
- INCLUDEPATH += $$MW_LAYER_SYSTEMINCLUDE
- INCLUDEPATH += ../inc
- TARGET.EPOCALLOWDLLDATA = 1
- LIBS += -lcertstore
- LIBS += -lCTFramework
- LIBS += -lX509
- LIBS += -lpkixcert
- LIBS += -lx509certnameparser
- LIBS += -lhash
- LIBS += -lcryptography
- LIBS += -lDevTokenClient
- LIBS += -lcrypto
- LIBS += -lefsrv
-
- PLUGIN_STUB_PATH = /resource/qt/plugins/controlpanel
-
- deploy.path = C:
- pluginstub.sources = $${TARGET}.dll
- pluginstub.path = $$PLUGIN_STUB_PATH
- DEPLOYMENT += pluginstub
-
- qtplugins.path = $$PLUGIN_STUB_PATH
- qtplugins.sources += qmakepluginstubs/$${TARGET}.qtplugin
-
- for(qtplugin, qtplugins.sources):BLD_INF_RULES.prj_exports += "./$$qtplugin $$deploy.path$$qtplugins.path/$$basename(qtplugin)"
- }
-
-TRANSLATIONS= certificate_manager.ts
--- a/cpsecplugins/cpadvancedsecplugin/inc/cpcertdatacontainer.h Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,216 +0,0 @@
-/*
-* Copyright (c) 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: Declaration of the CCertManUIKeeper class
-*
-*/
-
-#ifndef CPCERTDATACONTAINER_H
-#define CPCERTDATACONTAINER_H
-
-// INCLUDES
-#include <unifiedcertstore.h>
-#include <mctwritablecertstore.h>
-#include <unifiedkeystore.h>
-
-// FORWARD DECLARATIONS
-class CpCertManUISyncWrapper;
-class CpCertManUICertData;
-
-// CONSTANTS
-const TUid KCMDeviceCertStoreTokenUid = { 0x101FB668 };
-const TUid KCMDeviceKeyStoreTokenUid = { 0x101FB66A };
-const TUid KCMTrustedServerTokenUid = { 0x101FB66F };
-const TUid KCMFileKeyStoreTokenUid = { 0x101F7333 };
-const TUid KCMFileCertStoreTokenUid = { 0x101F501A };
-
-
-// CLASS DECLARATION
-
-/**
-* CpCertDataContainer retrieves and holds certificates.
-*
-*/
-class CpCertDataContainer : public CBase
- {
- public: // functions
-
- /**
- * Default constructor
- */
- CpCertDataContainer();
-
- /**
- * Destructor.
- */
- ~CpCertDataContainer();
-
- /**
- * NewL
- */
- static class CpCertDataContainer* NewL();
-
- /**
- * NewLC
- */
- static class CpCertDataContainer* NewLC();
-
- CUnifiedCertStore*& CertManager();
-
- CUnifiedKeyStore*& KeyManager();
-
- /**
- * Checks that cacerts.dat file is not corrupt
- * and returns CA certificates from it.
- */
- void RefreshCAEntriesL();
-
- /**
- * Checks that cacerts.dat file is not corrupt
- * and returns user certificates from it.
- */
- void RefreshUserCertEntriesL();
-
- /**
- * Returns peer certificates.
- */
- void RefreshPeerCertEntriesL();
-
- /**
- * Returns peer certificates.
- */
- void RefreshDeviceCertEntriesL();
-
- /**
- * Shows error note
- */
- void ShowErrorNoteL(TInt aError);
-
- public: //data
-
- /**
- * To store CA certificate entries for Authority and Trust view
- * Includes label from x509certnameparser.
- */
- RMPointerArray<CpCertManUICertData> iCALabelEntries;
-
- /**
- * To store CA certificate entries for Authority and Trust view
- * Includes label from x509certnameparser.
- */
- RMPointerArray<CpCertManUICertData> iUserLabelEntries;
-
- /**
- * To store Peer certificate entries for Trusted Site view
- * Includes label from x509certnameparser.
- */
- RMPointerArray<CpCertManUICertData> iPeerLabelEntries;
-
- /**
- * To store Peer certificate entries for Device certificate view
- * Includes label from x509certnameparser.
- */
- RMPointerArray<CpCertManUICertData> iDeviceLabelEntries;
-
- /**
- * Used to wrap asynchronous calls
- */
- CpCertManUISyncWrapper* iWrapper;
-
- /**
- * File session handle.
- */
- RFs iRfs;
-
- private: // functions
-
- void ConstructL();
-
- private: //data
-
- /**
- * To list certificates with criteria.
- */
- CCertAttributeFilter* iFilter;
-
- /**
- * To list keys with criteria.
- */
-
- TCTKeyAttributeFilter* iKeyFilter;
-
- /**
- * UnifiedCertStore
- */
- CUnifiedCertStore* iStore;
-
- /**
- * UnifiedKeyStore
- */
- CUnifiedKeyStore* iKeyStore;
-
- /**
- * To store CA certificate entries.
- */
- RMPointerArray<CCTCertInfo> iCAEntries;
-
- /**
- * To store User certificate entries.
- */
- RMPointerArray<CCTCertInfo> iUserEntries;
-
- /**
- * To store Peer certificate entries.
- */
- RMPointerArray<CCTCertInfo> iPeerEntries;
-
- /**
- * To store Device certificate entries.
- */
- RMPointerArray<CCTCertInfo> iDeviceEntries;
-
- /**
- * To store Key entries
- */
- RMPointerArray<CCTKeyInfo> iKeyEntries;
-
- };
-
-/**
-* Small helper class to put label and certificate in same class.
-*
-*/
-class CpCertManUICertData : public CBase
- {
- public:
-
- CpCertManUICertData();
-
- void Release();
-
- HBufC* iCAEntryLabel;
- HBufC* iUserEntryLabel;
- HBufC* iPeerEntryLabel;
- HBufC* iDeviceEntryLabel;
- CCTCertInfo* iCAEntry;
- CCTCertInfo* iUserEntry;
- CCTCertInfo* iPeerEntry;
- CCTCertInfo* iDeviceEntry;
-
- private:
- ~CpCertManUICertData();
-
- };
-
-
-#endif // CPCERTDATACONTAINER_H
--- a/cpsecplugins/cpadvancedsecplugin/inc/cpcertdetailview.h Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,77 +0,0 @@
-/*
-* Copyright (c) 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:
-*
-*/
-
-#ifndef CPCERTDETAILVIEW_H
-#define CPCERTDETAILVIEW_H
-
-#include <cpbasesettingview.h>
-#include <cpcertview.h>
-#include <pkixcertchain.h>
-#include <cctcertinfo.h>
-
-class CpCertDataContainer;
-class CX509Certificate;
-class CCertificate;
-class HbListWidget;
-class HbAbstractViewItem;
-class CCTCertInfo;
-
-class QString;
-class QSizeF;
-
-class CpCertDetailView : public CpBaseSettingView
-{
- Q_OBJECT
-public:
- explicit CpCertDetailView( CpCertView::TCertificateViews currentView, TInt pos,
- CpCertDataContainer& certDataContainer,
- QGraphicsItem *parent = 0 );
- virtual ~CpCertDetailView();
-
-private:
- void viewCertificateDetailsL( TInt index, CpCertView::TCertificateViews type );
- void validateCertificateL(TInt index, const CCertificate& certDetails, const CCTCertInfo& certInfo, CpCertView::TCertificateViews type );
- CArrayFixFlat<TValidationError>* validateX509CertificateL( const CX509Certificate& certDetails );
- TKeyUsagePKCS15 keyUsageAndLocationL( const CCTCertInfo& certEntry, TUid* keyLocation );
- void setLocationInfo( TBool certificate, TUid locUid, HbListWidget& certDisplayDetails );
- void divideIntoBlocks( const TDesC8& input, TPtr& output );
-
- void addToListWidget( HbListWidget& certDisplayDetails, const QString& data );
- void addToListWidget( HbListWidget& certDisplayDetails,
- const QString& displayString, const QString& displayDetails );
-
- const CCTCertInfo* certInfo( TInt index, CpCertView::TCertificateViews certView );
- void addTrustedSitesL( const CCertificate& certDetails, HbListWidget& certDisplayDetails);
- void addLabel( const CCTCertInfo& certInfo, HbListWidget& certDisplayDetails);
- void addIssuerL( const CCertificate& certDetails, HbListWidget& certDisplayDetails );
- void addSubjectL( const CCertificate& certDetails, HbListWidget& certDisplayDetails );
- void addCertUsage( TKeyUsagePKCS15 usage, HbListWidget& certDisplayDetails );
- void addValidityPeriod( const CCertificate& certDetails, HbListWidget& certDisplayDetails);
- void setURLLocation( HBufC8& urlDetails, HbListWidget& certDisplayDetails );
- void addCertFormat( TCertificateFormat certFormat, HbListWidget& certDisplayDetails );
- void addAlgoDetails( const CCertificate& certificate, HbListWidget& certDisplayDetails );
- void addSerialNo( const CCertificate& certificate, HbListWidget& certDisplayDetails );
- void addFingerprint( const CCertificate& certificate, HbListWidget& certDisplayDetails );
- void addPublicKeyDetailsL( const CCertificate& certificate, HbListWidget& certDisplayDetails );
- QString asymmetricAlgoId( const CCertificate& certificate );
-
-private:
- CpCertDataContainer& mCertDataContainer;
-
-};
-
-#endif // CPCERTDETAILVIEW_H
--- a/cpsecplugins/cpadvancedsecplugin/inc/cpcertmanuisyncwrapper.h Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,319 +0,0 @@
-/*
-* Copyright (c) 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: Wrapper class for Symbian's Security Framework's calls
-*
-*/
-
-
-#ifndef CPCERTMANUISYNCWRAPPER_H
-#define CPCERTMANUISYNCWRAPPER_H
-
-
-// INCLUDES
-#include <e32base.h>
-
-// FORWARD DECLERATIONS
-class CCertificate;
-class CPKIXValidationResult;
-class CPKIXCertChain;
-class CUnifiedCertStore;
-
-// CLASS DECLARATION
-
-/**
-* Wrapper class for Symbian's Security Framework's calls.
-* Shows error notes if an error happenes.
-*
-* @lib certmanui.dll
-* @since S60 2.0
-*/
-class CpCertManUISyncWrapper : public CActive
- {
- public:
-
- /**
- * Two-phased constructor.
- */
- static CpCertManUISyncWrapper* NewLC();
-
- /**
- * Two-phased constructor.
- */
- static CpCertManUISyncWrapper* NewL();
-
- /**
- * Destructor.
- */
- ~CpCertManUISyncWrapper();
-
- public: // New functions
-
- /**
- * TInt ListL
- * @param aStore reference to store where operation is done.
- * @param aArray Keys are stored here.
- * @param aFilter Information on what kind keys are looked.
- */
-
- void ListL( CUnifiedKeyStore*& aStore,
- RMPointerArray<CCTKeyInfo>* aArray,
- const TCTKeyAttributeFilter& aFilter );
-
- /**
- * TInt ListL
- * @param aStore reference to store where operation is done.
- * @param aArray Keys are stored here.
- * @param aFilter Information on what kind keys are looked.
- * @param aTokenUid Token UID of key store
- */
-
- void ListL( CUnifiedKeyStore*& aStore,
- RMPointerArray<CCTKeyInfo>* aArray,
- const TCTKeyAttributeFilter& aFilter,
- const TUid aTokenUid );
-
- /**
- * TInt ListL
- * @param aStore reference to store where operation is done.
- * @param aArray certificates are stored here.
- * @param aFilter Information on what kind certificates are looked.
- */
- void ListL( CUnifiedCertStore*& aStore,
- RMPointerArray<CCTCertInfo>* aArray,
- const CCertAttributeFilter& aFilter );
-
- /**
- * TInt ListL
- * @param aStore reference to store where operation is done.
- * @param aArray certificates are stored here.
- * @param aFilter Information on what kind certificates are looked.
- * @param aTokenUid Token UID of certificate store
- */
- void ListL( CUnifiedCertStore*& aStore,
- RMPointerArray<CCTCertInfo>* aArray,
- const CCertAttributeFilter& aFilter,
- const TUid aTokenUid );
-
-
- /**
- * TInt GetCertificateL
- * @param aStore reference to store where operation is done.
- * @param aCertInfo Certificate that's detailed information is fetched.
- * @param aCert Fetched certificate.
- */
- void GetCertificateL( CUnifiedCertStore*& aStore,
- const CCTCertInfo& aCertInfo, CCertificate*& aCert );
-
- /**
- * TInt GetCertificateL
- * @param aStore reference to store where operation is done.
- * @param aCertInfo Certificate that's detailed information is fetched.
- * @param aCert Fetched certificate.
- */
- void GetCertificateL( CUnifiedCertStore*& aStore,
- const CCTCertInfo& aCertInfo, CCertificate*& aCert, TUid aTokenUid );
-
-
- /**
- * TInt GetUrlCertificateL
- * @param aStore reference to store where operation is done.
- * @param aCertInfo Certificate that's detailed information is fetched.
- * @param aUrl Fetched URL.
- */
- void GetUrlCertificateL(
- CUnifiedCertStore*& aStore,
- const CCTCertInfo& aCertInfo,
- TDes8& aUrl) ;
-
- /**
- * TInt GetApplicationsL
- * @param aStore reference to store where operation is done.
- * @param aCertInfo Certificate that applications are fetched.
- * @param Certificates applications are stoted here.
- */
- void GetApplicationsL( CUnifiedCertStore*& aStore,
- const CCTCertInfo& aCertInfo, RArray<TUid>& aApps );
-
- /**
- * TInt ValidateX509RootCertificateL
- * @param aValidationResult Result of validation.
- * @param aValidationTime Time of validation.
- * @param aChain Chain to be validated.
- */
- void ValidateX509RootCertificateL(
- CPKIXValidationResult*& aValidationResult,
- const TTime& aValidationTime, CPKIXCertChain*& aChain );
-
- /**
- * TInt InitStoreL
- * @param aStore reference to store to be initialized.
- */
- void InitStoreL( CUnifiedCertStore*& aStore );
-
- /**
- * void InitStoreL
- * @param aStore reference to store to be initialized.
- */
- void InitStoreL( CUnifiedKeyStore*& aStore );
-
- /**
- * TInt DeleteCertL
- * @param aStore reference to store where operation is done.
- * @param aCertInfo Certificate to be deleted.
- */
- void DeleteCertL( CUnifiedCertStore*& aStore,
- const CCTCertInfo& aCertInfo );
-
- /**
- * TInt DeleteCertL
- * @param aStore reference to store where operation is done.
- * @param aCertInfo Certificate to be deleted.
- */
- void DeleteCertL( CUnifiedCertStore*& aStore,
- const CCTCertInfo& aCertInfo,
- TUid aTokenUid );
-
- /**
- * TInt IsApplicableL
- * @since S60 2.0
- * @param aStore reference to store where operation is done.
- * @param aCertInfo Certificate thats applicability is queried.
- * @param aApplication Application that's status is queried.
- * @param aIsApplicable ETrue if applcable.
- * @return TInt Status Symbian's API's call.
- */
- TInt IsApplicableL( CUnifiedCertStore*& aStore,
- const CCTCertInfo& aCertInfo, TUid aApplication,
- TBool& aIsApplicable );
-
- /**
- * TInt IsTrustedL
- * @since S60 2.0
- * @param aStore reference to store where operation is done.
- * @param aCertInfo Certificate that's trust status is queried.
- * @param aTrusted ETrue if trusted.
- * @return TInt Status Symbian's API's call.
- */
- TInt IsTrustedL( CUnifiedCertStore*& aStore,
- const CCTCertInfo& aCertInfo, TBool& aTrusted );
-
- /**
- * TInt SetApplicabilityL
- * @param aStore reference to store where operation is done.
- * @param aCertInfo Certificate thats applicability is set.
- * @param aApplications New applicability settings.
- */
- void SetApplicabilityL( CUnifiedCertStore*& aStore,
- const CCTCertInfo& aCertInfo,
- RArray<TUid>& aApplications );
-
- /**
- * void MoveCertL
- * @since S60 3.2
- * @param aStore reference to store where operation is done
- * @param aCertInfo Certificate info
- * @param aSourceStore UID of source certificate store
- * @param aTargetStore UID of source certificate store
- * @return TInt Number of moved certificates
- */
- TInt MoveCertL( CUnifiedCertStore*& aStore,
- const CCTCertInfo& aCertInfo,
- const TUid aSourceTokenId,
- const TUid aTargetTokenId );
-
- /**
- * void MoveKeyL
- * @param aStore reference to store where operation is done
- * @param CCTKeyInfo Key info
- * @param aSourceStore UID of source key store
- * @param aTargetStore UID of source key store
- */
- void MoveKeyL( CUnifiedKeyStore*& aStore,
- const TCTKeyAttributeFilter& aFilter,
- const TUid aSourceTokenId,
- const TUid aTargetTokenId );
-
- /**
- * TInt GetInterface
- * @since S60 3.0
- * @param aToken reference to token
- * @param aTokenInterface Pointer to returned interface
- * @return TInt Status Symbian's API's call.
- */
- TInt GetInterface( TUid aRequiredInterface,
- MCTToken& aToken,
- MCTTokenInterface*& aReturnedInterface );
-
- protected:
-
- void DoCancel();
- void RunL();
-
- private:
-
- CpCertManUISyncWrapper();
- void ConstructL();
-
- void HandleErrorL();
-
- private: //Data
-
- // Internal operation states.
- enum TOperation
- {
- EOperationNone,
- EOperationInit,
- EOperationList,
- EGetCertificate,
- EAddCertificate,
- ERetriveURLCertificate,
- EOperationDelete,
- EOperationGetApps,
- EOperationIsApplicable,
- EOperationIsTrusted,
- EOperationSetApplicability,
- EOperationSetToTrusted,
- EOperationValidateX509Root,
- EShowErrorNote,
- EOperationInitKeyStore,
- EOperationKeyList,
- EOperationGetInterface,
- EOperationExportKey,
- EOperationImportKey,
- EOperationDeleteKey
- };
-
- // For wrapping asynchronous calls.
- CActiveSchedulerWait iWait;
-
- // Internal state of operation.
- TOperation iOperation;
-
- // Just for cancelling a operation. Does not own.
- CUnifiedCertStore* iStore;
-
- // Just for cancelling a operation. Does not own.
- CUnifiedKeyStore* iKeyStore;
-
- // Just for cancelling a operation. Does not own.
- CPKIXCertChain* iChain;
-
- // For retrieving a certificate.
- TPtr8 iCertPtr;
-
- };
-
-#endif // CPCERTMANUISYNCWRAPPER_H
-
-// End of File
--- a/cpsecplugins/cpadvancedsecplugin/inc/cpcertpluginloader.h Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,35 +0,0 @@
-/*
- * Copyright (c) 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:
- *
- */
-#ifndef CPCERTPLUGINLOADER_H
-#define CPCERTPLUGINLOADER_H
-
-#include <qobject.h>
-#include <cpplugininterface.h>
-#include <QTranslator>
-class CpCertPluginLoader : public QObject, public CpPluginInterface
-{
- Q_OBJECT
- Q_INTERFACES(CpPluginInterface)
-public:
- CpCertPluginLoader();
- virtual ~CpCertPluginLoader();
- virtual QList<CpSettingFormItemData*>createSettingFormItemData(CpItemDataHelper &itemDataHelper) const;
-private:
- QTranslator* mTranslator;
-};
-
-#endif //CPCERTPLUGINLOADER_H
--- a/cpsecplugins/cpadvancedsecplugin/inc/cpcerttrustview.h Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,100 +0,0 @@
-/*
-* Copyright (c) 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: Declaration of the CCertManUIContainerTrust class
-* Maintains correct list of trusted clients depending
-* on the certificate that was in focus in Authority
-* certificates view when Trust Settings view was entered.
-* Shows and changes correct Yes/No text for the Trusted client.
-*
-*/
-
-
-#ifndef CPCERTTRUSTVIEW_H
-#define CPCERTTRUSTVIEW_H
-
-// INCLUDES
-#include <cpbasesettingview.h>
-#include <QList>
-
-// CONSTANTS
-const TInt KTrustSettingsResourceIndexWAP = 0;
-const TInt KTrustSettingsResourceIndexMailAndImageConn = 1;
-const TInt KTrustSettingsResourceIndexAppCtrl = 2;
-const TInt KTrustSettingsResourceIndexJavaInstall = 3;
-const TInt KTrustSettingsResourceIndexOCSPCheck = 4;
-const TInt KTrustSettingsResourceIndexVPN = 5;
-const TInt KTrustSettingsResourceIndexWidget = 6;
-const TInt KTrustSettingsResourceIndexValueYes = 0;
-const TInt KTrustSettingsResourceIndexValueNo = 1;
-
-// FORWARD DECLARATIONS
-class CCertificateAppInfoManager;
-class CpCertDataContainer;
-class TCertificateAppInfo;
-class CCTCertInfo;
-
-class QString;
-
-class HbDataFormModel;
-
-// CLASS DECLARATION
-class CpCertTrustView : public CpBaseSettingView
- {
- Q_OBJECT
-
- public:
- explicit CpCertTrustView( TInt certificateIndex,
- CpCertDataContainer& certDataContainer,
- QGraphicsItem *parent = 0 );
- virtual ~CpCertTrustView();
- void saveTrustSettings();
-
- private:
- void viewTrustSettings();
- void updateListBoxL();
- TInt trustIdIndex( TUid aTrusterUid ) const;
- TBool checkCertificateClientTrustL( const TUid clientUid, const CCTCertInfo& entry ) const;
- TUid trusterId(const QString& clientDescription) const;
-
- private:
- CpCertDataContainer& mCertDataContainer;
- /**
- * Application manager class, used to get applications in system.
- */
- CCertificateAppInfoManager* mAppInfoManager;
-
- /**
- * Client Uids of the certstore
- */
- RArray<TUid> mClientUids;
-
- /**
- * To get the names of the trusted clients from the resources
- */
- QList<QString> mTrustedClients;
-
- /**
- * To get the yes/no trust texts from the resources
- */
- QList<QString> mTrustValues;
-
- TInt mCertificateIndex;
-
- HbDataFormModel* mFormModel;
-
- };
-
-#endif // CPCERTTRUSTVIEW_H
-
-// End of File
--- a/cpsecplugins/cpadvancedsecplugin/inc/cpcertview.h Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,96 +0,0 @@
-/*
-* Copyright (c) 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:
-*
-*/
-
-#ifndef CPCERTVIEW_H
-#define CPCERTVIEW_H
-
-#include <cpbasesettingview.h>
-
-class HbAbstractViewItem;
-class CpCertDataContainer;
-class CCTCertInfo;
-class HbListView;
-class HbAction;
-class HbDialog;
-class HbMessageBox;
-class CpCertView : public CpBaseSettingView
- {
- Q_OBJECT
-
- public:
- explicit CpCertView(const QModelIndex& index, QGraphicsItem *parent = 0);
- virtual ~CpCertView();
-
- public:
- enum TCertificateViews
- {
- EAuthorityView=0,
- ETrustedView,
- EPersonalView,
- EDeviceView
- };
-
- public slots:
- void displayPreviousView();
-
- private slots:
- void openCertificate();
- void openCertFromList(const QModelIndex& modelIndex);
- void showTrustSettings();
- void saveTrustSettings();
- void indicateLongPress(HbAbstractViewItem*, QPointF);
-
- void deleteCertificate();
- TInt refreshListL();
- void refreshView( TInt aCount );
-
- void moveSelectedCert();
- void deleteList();
- void selectAll();
- void moveCert();
- void viewDone();
- void handleMultipleDelete(HbAction* action);
- void handleMoveDialog(HbAction* action);
- void handleDeleteDialog(HbAction* action);
- void handleMoveCertDialog(HbAction* action);
- private:
- const CCTCertInfo* certAt(TInt index) const;
- QString certLabel(TInt index) const;
- void deleteCertsL( RArray<TInt>& indexList );
- void setDetails(CpCertView::TCertificateViews currentView);
- void moveCertList( RArray<TInt>& indexList );
-
- private:
- CpCertView::TCertificateViews mCertView;
- TInt mPos;
- CpCertDataContainer* mCertDataContainer;
- TBool mSelectAll;
- RArray<TInt> mSelectionIndex;
- RArray<TInt> mIndexList;
-
- HbDialog* mPopup;
- HbView* mPrevView;
- HbView* mCurrentView;
- CpBaseSettingView* mRefreshedView;
- HbListView* mListView;
- HbListView* mSelectAllView;
- HbView* mOriginalView;
- HbMessageBox* mNote;
- HbMenu* mContextMenu;
- };
-
-#endif /* CPCERTVIEW_H */
--- a/cpsecplugins/cpadvancedsecplugin/inc/cpmoduleview.h Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,75 +0,0 @@
-/*
-* Copyright (c) 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:
-*
-*/
-
-#ifndef CPMODULEVIEW_H
-#define CPMODULEVIEW_H
-
-#include <cpbasesettingview.h>
-#include "cpsecmodview.h"
-
-class HbAbstractViewItem;
-class CpItemDataHelper;
-class CSecModUIModel;
-class CpSecModView;
-
-class CpModuleView : public CpBaseSettingView
-{
- Q_OBJECT
-public:
- explicit CpModuleView( CpSecModView::TSecModViews currentView,
- CSecModUIModel& secModUIModel,
- QGraphicsItem *parent = 0 );
- virtual ~CpModuleView();
-
-private slots:
- void handleAccessView( const QModelIndex& modelIndex );
- void handleAccessView();
- void handleSigView();
- void handleSigViewCommand();
- void indicateLongPress(HbAbstractViewItem *item,QPointF coords);
-
-private:
- void showAccessView();
- void showSignatureView(TBool showBlockedNote);
-
-private:
- enum TSecModAccessCodeCommandIds
- {
- EIndexCodeLabel = 0,
- EIndexCodeRequest,
- EIndexCodeStatus
- };
-
- enum TSecModSignatureCommandIds
- {
- ESecModUICmdOpen = 0,
- ESecModUICmdModuleInfo,
- ESecModUICmdDelKeyStore,
- ESecModUICmdChange,
- ESecModUICmdUnblock,
- ESecModUICmdClose,
- ESecModUICmdAppTest
- };
-
-private:
- CpSecModView::TSecModViews mCurrentView;
- CSecModUIModel& mSecModUIModel;
- TInt mPos;
- HbMenu* mContextMenu;
-};
-
-#endif /* CPMODULEVIEW_H */
--- a/cpsecplugins/cpadvancedsecplugin/inc/cpsecmodmodel.h Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,341 +0,0 @@
-/*
-* Copyright (c) 2002-2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: Declaration of the CSecModUIModel class
-*
-*/
-
-
-#ifndef CSECMODUIMODEL_H
-#define CSECMODUIMODEL_H
-
-// INCLUDES
-#include <e32base.h>
-#include <bamdesca.h>
-#include <ct/rmpointerarray.h>
-#include <f32file.h>
-
-#include <qlist.h>
-#include <qlabel.h>
-#include <qvector.h>
-#include <qpair.h>
-
-class QString;
-class HbListWidget;
-
-// CONSTANTS
-const TInt KMaxSettItemSize = 200;
-
-const TInt KPinGSettIndex = 0;
-const TInt KPinNrSettIndex = 1;
-
-const TUid KUidSecMod = { 0x101F8668 };
-
-// Panic strings
-_LIT(KPanicNullPointer, "SecModUI: invalid pointer");
-_LIT(KPanicIndexOutOfRange, "SecModUI: array indexed out of range");
-
-// FORWARD DECLARATIONS
-class CUnifiedKeyStore;
-class MCTAuthenticationObject;
-class MCTAuthenticationObjectList;
-class CSecModUISyncWrapper;
-class MCTKeyStore;
-class MCTToken;
-
-class QString;
-
-// FUNCTION PROTOTYPES
-GLREF_C void Panic( TInt aPanic );
-
-// CLASS DECLARATION
-
-/**
-* class CSecModUIModel
-* Model of the application
-*
-* @lib SecModUI.lib
-* @since Series 60 3.0
-*/
-class CSecModUIModel : public CBase
- {
- public: // Constructors and destructLoadTokenLabelsLor
-
- /**
- * Two-phased constructor.
- */
- static CSecModUIModel* NewL();
-
- /**
- * Destructor.
- */
- virtual ~CSecModUIModel();
-
- public: // New functions
- /**
- * Initializes unified keystore
- */
- void InitializeKeyStoreL();
-
- /**
- * Retrieves the description and location of all tokens.
- * @return Map containing the label and the appripriate location.
- */
- QMap<QString,QString> LoadTokenLabelsL();
-
- /**
- * Shows error note if needed.
- * @param aError
- * @return void
- */
- void ShowErrorNote(TInt aError) const;
-
- /**
- * Retrieves the appropriate token based on the index.
- * @param aTokenIndex Index of the token to be opened.
- * @return void
- */
- void OpenTokenL(TInt aTokenIndex);
-
- /**
- * Initialize the auth objects and return the total count.
- * @param aItemArray contains localised stings
- * @return void
- */
- TInt CheckCodeViewStringsL();
-
- /**
- * Retrieves description of the token based on UID of the current active keystore.
- * @return Description
- */
- QString TokenLabelForTitle() const;
-
- /**
- * Returns status of the selected auth object.
- * @param index
- * @return status
- */
- TUint32 AuthStatus(TInt aIndex) const;
-
- /**
- * Returns status of the auth object based on its persistent properties set
- * by security module implementation.
- * @param aIndex Index of the authentication object
- * @param aShowBlockedNote If ETrue, shows code blocked if code is blocked.
- * @return status of the pin.
- */
- QString PINStatus( TInt aIndex, TBool aShowBlockedNote ) const;
-
- /**
- * Checks whether the Pin is still available.
- * @param aIndex Index of the authentication object.
- * @return status
- */
- TBool PinOpen(TInt aIndex) const;
-
- /**
- * Based on the property of auth object the pin can be
- * changed or unblocked.
- * @param aIndex Index of the auth object
- * @return ?description
- */
- void ChangeOrUnblockPinL(TInt aIndex);
-
- /**
- * Changes the value of the PIN.
- * @param aIndex Index of the AO
- * @return void
- */
- void ChangePinL(TInt aIndex);
-
- /**
- * Toggles the value of auth object if possible.
- * @param ?arg1 ?description
- * @return ?description
- */
- TInt ChangeCodeRequest(TInt aIndex);
-
- /**
- * If the auth object is open then closes it.
- * @param aIndex Index of the AO to be closed.
- * @return void
- */
- void CloseAuthObjL(TInt aIndex);
-
- /**
- * Unblocks PIN
- * @param aIndex Index of the AO
- * @return void
- */
- void UnblockPinL(TInt aIndex);
-
- /**
- * Deletes key from the appropriate keystore.
- * @param aTokenIndex Index of the token to be deleted.
- * @return ETrue if keystore was deleted.
- */
- void DeleteKeysL(TInt aTokenIndex);
-
- /**
- * Returns ETrue if PIN is changeable.
- * @param aIndex Index of the AO
- * @return ETrue / EFalse
- */
- TBool PinChangeable(TInt aIndex) const;
-
- /**
- * Displays security module details dialog.
- * @param aTokenIndex Index of the token, which details are shown.
- * @return void
- */
- QVector< QPair<QString,QString> > SecModDetailsL(TInt aTokenIndex);
-
- /**
- * Displays details dialog of the active security module .
- * @return void
- */
- QVector< QPair<QString,QString> > GetSecModDetailsL();
-
- /**
- * Appends the location of the keystore.
- * @return void
- */
- void AppendLocation( QVector< QPair<QString,QString> >& aSecModDetails,
- TUid aLocUid,
- QString aCertDisplayDetails );
-
- /**
- * Appends the value of a label if present otherwise appends empty descriotion.
- * @return void
- */
- void AppendItem( QVector< QPair<QString,QString> >& aSecModDetails,
- QString aLabel,
- const TDesC& aValue,
- QString aNullDescription );
-
- /**
- * Generate details of signing security module.
- * @return void
- */
- void AppendPinNRs(QVector< QPair<QString,QString> >& aSecModDetails);
-
- QVector< QPair<QString, TUint32> > AuthDetails();
-
- /**
- * Changes PIN-NR
- * @param aIndex Index of the AO
- * @return void
- */
- void ChangePinNrL(TInt aIndex);
-
- /**
- * Unblocks PIN-NR
- * @param aIndex Index of the AO
- * @return void
- */
- void UnblockPinNrL(TInt aIndex);
-
- /**
- * Retrieves the UID of the current active keystore.
- * @return uid
- */
- TInt KeyStoreUID();
-
- /**
- * Retrieves the auth object at the speficied index.
- * @return auth object
- */
- const MCTAuthenticationObject& AuthObj(TInt aIndex);
-
- /**
- * Returns ETrue if PIN is unblockable.
- * @param aIndex Index of the AO
- * @return ETrue / EFalse
- */
- TBool PinUnblockable(TInt aIndex) const;
-
-
- /**
- * Returns ETrue if PIN request can be disabled / enabled.
- * @param aIndex Index of the AO
- * @return ETrue / EFalse
- */
- TBool PinRequestChangeable(TInt aIndex) const;
-
- /**
- * Returns ETrue if token is deletable.
- * @param aTokenIndex Index of the token to be deleted.
- * @return ETrue / EFalse
- */
- TBool IsTokenDeletable(TInt aTokenIndex);
-
-
- private:
-
- /**
- * C++ default constructor.
- */
- CSecModUIModel();
-
- /**
- * By default Symbian 2nd phase constructor is private.
- */
- void ConstructL();
-
- void ResetAndDestroyCTObjects();
-
- void ResetAndDestroyAOs();
-
- void InitAuthObjectsL();
-
- void ListAuthObjectsL();
-
- void CreateSettingItem(const TDesC& aTitle,
- const TDesC& aValue,
- TDes& aItem) const;
-
- QString Location( TUid aUid ) const;
-
- void AppendPinNRsL( TDes& aMessage ) const;
-
- private:
- // DATA TYPES
- enum TSecModPanicCode
- {
- EPanicNullPointer,
- EPanicIndexOutOfRange
- };
-
- private: // Data
- // Resource file offsets
- TInt iResourceFileOffset;
- TInt iResourceFileOffset2;
- TInt iResourceFileOffset3;
-
- CSecModUISyncWrapper* iWrapper; // owned
- RFs iRfs;
-
- /**
- * Crypto Token objects
- */
- CUnifiedKeyStore* iUnifiedKeyStore; // owned
- MCTKeyStore* iKeyStore; // not owned
- MCTAuthenticationObjectList* iAOList; // owned, items not owned
- RMPointerArray<MCTAuthenticationObject> iAOArray; // items not owned
-
- RMPointerArray<MCTKeyStore> iAOKeyStores; // items not owned
- };
-
-#endif // CSECMODUIMODEL_H
-
-// End of File
--- a/cpsecplugins/cpadvancedsecplugin/inc/cpsecmodsyncwrapper.h Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,125 +0,0 @@
-/*
-* 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: Wrapper class for Symbian's Security Framework's calls.
-*
-*/
-
-#ifndef CPSECMODUISYNCWRAPPER_H
-#define CPSECMODUISYNCWRAPPER_H
-
-#include <e32base.h>
-#include <f32file.h>
-#include <ct/rcpointerarray.h>
-#include <ct/rmpointerarray.h>
-#include <mctkeystore.h>
-
-class MCTToken;
-class MCTAuthenticationObject;
-class MCTAuthenticationObjectList;
-class CUnifiedKeyStore;
-class MCTTokenInterface;
-class TCTTokenObjectHandle;
-
-
-
-/**
-* class CSecModUISyncWrapper
-* Wrapper class for Symbian's Security Framework's calls.
-*
-* @lib wimmanui.dll
-* @since Series 60 2.0
-*/
-class CSecModUISyncWrapper : public CActive
- {
- public: // Constructors and destructor
-
- static CSecModUISyncWrapper* NewLC();
- static CSecModUISyncWrapper* NewL();
- virtual ~CSecModUISyncWrapper();
-
- public: // New functions
-
- TInt Initialize(CUnifiedKeyStore& aKeyStore );
-
- TInt OpenWIM();
-
- TInt GetAuthObjectInterface(
- MCTToken& aToken,
- MCTTokenInterface*& aTokenInterface);
-
- TInt ListAuthObjects(
- MCTAuthenticationObjectList& aAuthObjList,
- RMPointerArray<MCTAuthenticationObject>& aAuthObjects );
-
- TInt ListKeys(
- MCTKeyStore& aKeyStore,
- RMPointerArray<CCTKeyInfo>& aKeysInfos,
- const TCTKeyAttributeFilter& aFilter);
-
- TInt DeleteKey(
- CUnifiedKeyStore& aKeyStore,
- TCTTokenObjectHandle aHandle);
-
- TInt ChangeReferenceData( MCTAuthenticationObject& aAuthObject );
-
- TInt UnblockAuthObject( MCTAuthenticationObject& aAuthObject );
-
- TInt EnableAuthObject( MCTAuthenticationObject& aAuthObject );
-
- TInt DisableAuthObject( MCTAuthenticationObject& aAuthObject );
-
- TInt CloseAuthObject( MCTAuthenticationObject& aAuthObject );
-
- TInt TimeRemaining( MCTAuthenticationObject& aAuthObject, TInt& aStime );
-
- protected: // From CActive
-
- void DoCancel();
- void RunL();
-
- private: // New functions
-
- CSecModUISyncWrapper();
-
- private: // Data
-
- // Internal operation states.
- enum TOperation
- {
- EOperationInit,
- EOperationGetAOInterface,
- EOperationListAOs,
- EOperationListKeys,
- EOperationDelKey,
- EOperationChangeReferenceData,
- EOperationUnblockAO,
- EOperationEnableAO,
- EOperationDisableAO,
- EOperationCloseAO,
- EOperationTimeRemAO,
- EOperationNone
- };
-
- // For wrapping asynchronous calls.
- CActiveSchedulerWait iWait;
-
- // Internal state of operation.
- TOperation iOperation;
-
- // CT objects
- TAny* iObject;
- };
-
-
-#endif // CPSECMODUISYNCWRAPPER_H
--- a/cpsecplugins/cpadvancedsecplugin/inc/cpsecmoduleinfoview.h Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,40 +0,0 @@
-/*
-* Copyright (c) 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:
-*
-*/
-
-#ifndef CPSECMODULEINFOIEW_H
-#define CPSECMODULEINFOIEW_H
-
-#include <cpbasesettingview.h>
-
-
-
-class CpSecmoduleInfoView : public CpBaseSettingView
-{
- Q_OBJECT
-public:
- explicit CpSecmoduleInfoView(const QVector< QPair<QString,QString> >& securityDetails,QGraphicsItem *parent = 0);
- virtual ~CpSecmoduleInfoView();
-
-public slots:
-
-
-private:
-
-
-};
-
-#endif // CPSECMODULEINFOIEW_H
--- a/cpsecplugins/cpadvancedsecplugin/inc/cpsecmodview.h Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,55 +0,0 @@
-/*
-* Copyright (c) 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:
-*
-*/
-
-#ifndef CPSECMODVIEW_H
-#define CPSECMODVIEW_H
-
-#include <cpbasesettingview.h>
-
-class HbAbstractViewItem;
-class CpItemDataHelper;
-class CSecModUIModel;
-
-class CpSecModView : public CpBaseSettingView
-{
- Q_OBJECT
-public:
- explicit CpSecModView(TInt aCurrentPos, CSecModUIModel& aSecModUIModel, QGraphicsItem *parent = 0);
- virtual ~CpSecModView();
-
-private slots:
- void displayPrevious();
- void showNextView( const QModelIndex& modelIndex );
-
-public:
- enum TSecModViews
- {
- EAccessView=0,
- ESignatureView
- };
-
-
-private:
- CSecModUIModel& mSecModUIModel;
- TInt mPos;
- TSecModViews mCurrentView;
- HbView* mAccessView;
- HbView* mPrevView;
-
-};
-
-#endif /* CPPLACEHOLDERENTRYITEMDATA_H */
--- a/cpsecplugins/cpadvancedsecplugin/inc/cpsecurityview.h Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,63 +0,0 @@
-/*
-* Copyright (c) 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:
-*
-*/
-
-#ifndef CPSECURITYVIEW_H
-#define CPSECURITYVIEW_H
-
-#include <cpbasesettingview.h>
-
-class HbAbstractViewItem;
-class CpItemDataHelper;
-class CpSecModView;
-class CpCertView;
-class CSecModUIModel;
-class QModelIndex;
-class CpSecmoduleInfoView;
-class HbMessageBox;
-class CpSecurityView : public CpBaseSettingView
-{
- Q_OBJECT
-public:
- explicit CpSecurityView(QGraphicsItem *parent = 0);
- virtual ~CpSecurityView();
-
-public slots:
- void viewDone();
- void showWIMview();
- void displayCert(const QModelIndex& modelIndex);
- void displayPrevious();
- void showCodeView();
- void showCodeView( const QModelIndex& modelIndex);
- void indicateLongPress(HbAbstractViewItem *item,QPointF coords);
- void deleteModule();
- void moduleDetails();
- void displayPreviousFromModInfo();
- void dialogClosed(HbAction* action);
-private:
- CSecModUIModel* mSecModUIModel;
- CpSecModView* mSecModView;
- HbView* mPreView;
- CpCertView* mCertView;
- CpSecmoduleInfoView* mModuleinfoView;
- HbView* mCurrentView;
- TInt mPos;
- HbMessageBox* mNote;
- HbMenu* mContextMenu;
-
-};
-
-#endif // CPSECURITYVIEW_H
--- a/cpsecplugins/cpadvancedsecplugin/inc/cpuitrustids.h Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,34 +0,0 @@
-/*
-* Copyright (c) 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: Contains the TUids of supported clients for certificate's Trust Setting View
-*
-*/
-
-
-#ifndef CPUITRUSTIDS_H
-#define CPUITRUSTIDS_H
-
-// CONSTANTS
-const TUid KCertManUINullId = {0};
-const TUid KCertManUIViewTrustWapConnectionId = {268479059};
-const TUid KCertManUIViewTrustApplicationControllerId = {268452523};
-const TUid KCertManUIViewTrustMailAndImageConnId = {268441661};
-const TUid KCertManUIViewTrustJavaInstallingId = {270506792};
-const TUid KCertManUIViewOCSPCheckInstallingId = {268478646};
-const TUid KCertManUIViewTrustVPNId = {270498195};
-const TUid KCertManUIViewTrustWidgetInstallId = {537028562};
-
-#endif // CPUITRUSTIDS_H
-
-// End of File
--- a/cpsecplugins/cpadvancedsecplugin/rom/advancedsecurity_resources.iby Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,21 +0,0 @@
-/*
-* Copyright (c) 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: Translation string details
-*
-*/
-
-
-#include <data_caging_paths_for_iby.hrh>
-
-data=DATAZ_\QT_TRANSLATIONS_DIR\certificate_management.qm QT_TRANSLATIONS_DIR\certificate_management.qm
\ No newline at end of file
--- a/cpsecplugins/cpadvancedsecplugin/rom/cpsecplugins.iby Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,25 +0,0 @@
-/*
-* Copyright (c) 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:
-*
-*/
-
-#ifndef CPSECPLUGINS_IBY
-#define CPSECPLUGINS_IBY
-
-file=ABI_DIR\BUILD_DIR\cpadvancedsecplugin.dll SHARED_LIB_DIR\cpadvancedsecplugin.dll
-
-data=\epoc32\data\c\resource\qt\plugins\controlpanel\cpadvancedsecplugin.qtplugin resource\qt\plugins\controlpanel\cpadvancedsecplugin.qtplugin
-
-#endif
--- a/cpsecplugins/cpadvancedsecplugin/rom/cpsecplugins_rom.pri Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,21 +0,0 @@
-#
-# Copyright (c) 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:
-#
-
-
-symbian {
-BLD_INF_RULES.prj_exports += "../rom/cpsecplugins.iby CORE_APP_LAYER_IBY_EXPORT_PATH(cpsecplugins.iby)"
-BLD_INF_RULES.prj_exports += "../rom/advancedsecurity_resources.iby LANGUAGE_APP_LAYER_IBY_EXPORT_PATH(advancedsecurity_resources.iby )"
-}
\ No newline at end of file
--- a/cpsecplugins/cpadvancedsecplugin/src/cpcertdatacontainer.cpp Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,757 +0,0 @@
-/*
-* Copyright (c) 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: Implementation of class CCertManUIKeeper
-* Creates and destroys all the views CertManUI uses.
-* Handles changing CertManUI views.
-*
-*/
-
-
-// INCLUDE FILES
-#include <unifiedcertstore.h>
-#include <unifiedkeystore.h>
-#include <mctwritablecertstore.h>
-#include <X509CertNameParser.h>
-
-#include <HbMessageBox>
-
-#include <QErrorMessage>
-#include <../../inc/cpsecplugins.h>
-#include "cpcertdatacontainer.h"
-#include "cpcertmanuisyncwrapper.h"
-
-// CONSTANTS
-_LIT( KNameSeparator, " " );
-
-// ============================= LOCAL FUNCTIONS ===============================
-
-// -----------------------------------------------------------------------------
-// TInt CompareCALabels( const CCTCertInfo& cert1, const CCTCertInfo& cert2 )
-// Compares two labels.
-// -----------------------------------------------------------------------------
-//
-TInt CompareCALabels(
- const CpCertManUICertData& cert1,
- const CpCertManUICertData& cert2 )
- {
- return ( (cert1.iCAEntryLabel->Des()).
- CompareF( cert2.iCAEntryLabel->Des() ) );
- }
-
-// -----------------------------------------------------------------------------
-// TInt CompareUserLabels( const CCTCertInfo& cert1, const CCTCertInfo& cert2 )
-// Compares two labels.
-// -----------------------------------------------------------------------------
-//
-TInt CompareUserLabels(
- const CpCertManUICertData& cert1,
- const CpCertManUICertData& cert2 )
- {
- return ( (cert1.iUserEntryLabel->Des()).
- CompareF( cert2.iUserEntryLabel->Des() ) );
- }
-
-// -----------------------------------------------------------------------------
-// TInt ComparePeerLabels( const CCTCertInfo& cert1, const CCTCertInfo& cert2 )
-// Compares two labels.
-// -----------------------------------------------------------------------------
-//
-TInt ComparePeerLabels(
- const CpCertManUICertData& cert1,
- const CpCertManUICertData& cert2 )
- {
- return ( (cert1.iPeerEntryLabel->Des()).
- CompareF( cert2.iPeerEntryLabel->Des() ) );
- }
-
-// -----------------------------------------------------------------------------
-// TInt CompareDeviceLabels( const CCTCertInfo& cert1, const CCTCertInfo& cert2 )
-// Compares two labels.
-// -----------------------------------------------------------------------------
-//
-TInt CompareDeviceLabels(
- const CpCertManUICertData& cert1,
- const CpCertManUICertData& cert2 )
- {
- return ( (cert1.iDeviceEntryLabel->Des()).
- CompareF( cert2.iDeviceEntryLabel->Des() ) );
- }
-
-
-// ================= HELPER CLASS ===========================
-
-// Constructor.
-CpCertManUICertData::CpCertManUICertData()
- {
- }
-
-// Destructor.
-CpCertManUICertData::~CpCertManUICertData()
- {
- delete iCAEntryLabel;
- delete iUserEntryLabel;
- delete iPeerEntryLabel;
- delete iDeviceEntryLabel;
- }
-
-// Releases Certificate entries.
-void CpCertManUICertData::Release()
- {
- RDEBUG("0", 0);
- if ( iCAEntry )
- {
- iCAEntry->Release();
- }
-
- if ( iUserEntry )
- {
- iUserEntry->Release();
- }
-
- if ( iPeerEntry )
- {
- iPeerEntry->Release();
- }
-
- if ( iDeviceEntry )
- {
- iDeviceEntry->Release();
- }
-
- delete this;
- }
-
-// ================= MEMBER FUNCTIONS =======================
-
-// ---------------------------------------------------------
-// CCertManUIKeeper::CCertManUIKeeper()
-// Constructor with parent
-// ---------------------------------------------------------
-//
-CpCertDataContainer::CpCertDataContainer()
- {
- }
-
-// ---------------------------------------------------------
-// CCertManUIKeeper::~CCertManUIKeeper()
-// Destructor
-// ---------------------------------------------------------
-//
-CpCertDataContainer::~CpCertDataContainer()
- {
- iCALabelEntries.Close();
- iUserLabelEntries.Close();
- iPeerLabelEntries.Close();
- iDeviceLabelEntries.Close();
-
- if ( iWrapper )
- {
- iWrapper->Cancel();
- }
- delete iWrapper;
-
- delete iFilter;
- delete iKeyFilter;
- delete iStore;
- delete iKeyStore;
-
- iCAEntries.Close();
- iUserEntries.Close();
- iPeerEntries.Close();
- iDeviceEntries.Close();
- iKeyEntries.Close();
-
- iRfs.Close();
- }
-
-// ---------------------------------------------------------
-// CCertManUIKeeper* CCertManUIKeeper::NewL(const TRect& aRect, TUid aViewId)
-// ---------------------------------------------------------
-//
-
-CpCertDataContainer* CpCertDataContainer::NewL()
- {
- CpCertDataContainer* self = new ( ELeave ) CpCertDataContainer;
- CleanupStack::PushL( self );
- self->ConstructL();
- CleanupStack::Pop(self);
- return self;
- }
-
-// ---------------------------------------------------------
-// CCertManUIKeeper* CCertManUIKeeper::NewLC(
-// const TRect& aRect, TUid aViewId)
-// ---------------------------------------------------------
-//
-CpCertDataContainer* CpCertDataContainer::NewLC()
- {
- CpCertDataContainer* self = new ( ELeave ) CpCertDataContainer;
- CleanupStack::PushL( self );
- self->ConstructL();
- return self;
- }
-
-
-// ---------------------------------------------------------
-// CCertManUIKeeper::ConstructL(
- // const TRect& aRect, TUid aViewId
-//
-// ---------------------------------------------------------
-//
-void CpCertDataContainer::ConstructL()
- {
- RDEBUG("0", 0);
- // Ensure that file server session is succesfully created
- User::LeaveIfError( iRfs.Connect() );
-
- TRAPD ( error, iStore = CUnifiedCertStore::NewL( iRfs, ETrue ) );
-
- if ( error == KErrNotSupported || error == KErrNotReady
- || error == KErrArgument || error == KErrNotFound )
- {
- // Something may be wrong with the databases
- ShowErrorNoteL( error );
- }
-
- User::LeaveIfError( error );
-
- iWrapper = CpCertManUISyncWrapper::NewL();
- iWrapper->InitStoreL( iStore );
-
- iFilter = CCertAttributeFilter::NewL();
-
- TRAP( error, iKeyStore = CUnifiedKeyStore::NewL( iRfs ) );
-
- if (error == KErrNotSupported || error == KErrNotReady
- || error == KErrArgument || error == KErrNotFound)
- {
- // Something is wrong with key stores
- ShowErrorNoteL( error );
- }
-
- User::LeaveIfError( error );
-
- iWrapper->InitStoreL( iKeyStore );
- iKeyEntries.Close();
-
- }
-
-
-// ---------------------------------------------------------
-// CCertManUIKeeper::CertManager()
-// ---------------------------------------------------------
-//
-CUnifiedCertStore*& CpCertDataContainer::CertManager()
- {
- return iStore;
- }
-
-// ---------------------------------------------------------
-// CCertManUIKeeper::KeyManager()
-// ---------------------------------------------------------
-//
-CUnifiedKeyStore*& CpCertDataContainer::KeyManager()
- {
- return iKeyStore;
- }
-
-// ---------------------------------------------------------
-// CCertManUIKeeper::RefreshCAEntriesL()
-// Checks that cacerts.dat file is not corrupted and
-// returns CA certificates from it
-// ---------------------------------------------------------
-//
-void CpCertDataContainer::RefreshCAEntriesL()
- {
- RDEBUG("0", 0);
- iFilter->SetOwnerType( ECACertificate );
- iCAEntries.Close();
- CUnifiedCertStore*& store = CertManager();
- iWrapper->ListL( store, &iCAEntries, *iFilter );
-
- iCALabelEntries.Close();
- for ( TInt ii = 0; ii < iCAEntries.Count(); ii++ )
- {
- switch ( iCAEntries[ii]->CertificateFormat() )
- {
- case EX509Certificate:
- {
- CpCertManUICertData* data = new ( ELeave ) CpCertManUICertData();
- CleanupStack::PushL( data );
- data->iCAEntry = CCTCertInfo::NewL( *iCAEntries[ii] );
-
- HBufC* pri = NULL;
- HBufC* sec = NULL;
-
- CCertificate* cert;
-
- TRAPD(err, iWrapper->GetCertificateL( CertManager(), *iCAEntries[ii], cert ));
- if (( err == KErrArgument ) || ( err == KErrCorrupt ))
- {
- // This indicates that certificate is not according to X509
- // specification or it is corrupted. Ignore certificate
- if(data->iCAEntry)
- {
- data->iCAEntry->Release();
- }
- CleanupStack::PopAndDestroy( data ); // data
- continue;
- }
- else
- {
- User::LeaveIfError( err );
- }
-
- CleanupStack::PushL( cert );
-
- X509CertNameParser::PrimaryAndSecondaryNameL
- ( *((CX509Certificate*)cert), pri, sec, iCAEntries[ii]->Label());
-
- CleanupStack::PushL( pri );
- CleanupStack::PushL( sec );
-
- TInt lenght = 0;
-
- lenght += iCAEntries[ii]->Label().Length();
-
- if ( pri )
- {
- lenght += pri->Length();
- }
- if ( sec && !(iCAEntries[ii]->Label().Length()) )
- {
- lenght += sec->Length();
- }
- lenght += KNameSeparator.iTypeLength;
-
- HBufC* label = HBufC::NewL( lenght );
- label->Des().Append( iCAEntries[ii]->Label() );
-
- if ( pri )
- {
- label->Des().Append( KNameSeparator );
- label->Des().Append( pri->Des() );
- }
- if ( sec && !(iCAEntries[ii]->Label().Length()) )
- {
- label->Des().Append( sec->Des() );
- }
-
- data->iCAEntryLabel = label;
- iCALabelEntries.Append( data );
-
- CleanupStack::PopAndDestroy( 3, cert ); // pri, sec
- CleanupStack::Pop( data );
- break;
- } // EX509Certificate
-
- case EWTLSCertificate:
- // Do nothing for wtls certificates
- break;
- default:
- {
- User::Leave( KErrNotSupported );
- }
- } // switch
-
- } // for
-
- // Sort the certificates.
- TLinearOrder<CpCertManUICertData> order( CompareCALabels );
- iCALabelEntries.Sort( order );
-
- }
-
-// ---------------------------------------------------------
-// CCertManUIKeeper::RefreshPeerCertEntriesL()
-// Checks that Trusted site certificate store is
-// not corrupted and returns Peer certificates from it
-// ---------------------------------------------------------
-//
-void CpCertDataContainer::RefreshPeerCertEntriesL()
- {
- RDEBUG("0", 0);
- iFilter->SetOwnerType( EPeerCertificate );
- iPeerEntries.Close();
- CUnifiedCertStore*& store = CertManager();
-
- iWrapper->ListL( store, &iPeerEntries, *iFilter, KCMTrustedServerTokenUid );
-
- iPeerLabelEntries.Close();
-
- for ( TInt ii = 0; ii < iPeerEntries.Count(); ii++ )
- {
- switch ( iPeerEntries[ii]->CertificateFormat() )
- {
- case EX509Certificate:
- {
- CpCertManUICertData* data = new (ELeave) CpCertManUICertData();
- CleanupStack::PushL( data );
- data->iPeerEntry = CCTCertInfo::NewL( *iPeerEntries[ii] );
-
- CCertificate* cert;
-
- TRAPD( err, iWrapper->GetCertificateL( CertManager(), *iPeerEntries[ii], cert, KCMTrustedServerTokenUid ));
- if (( err == KErrArgument ) || ( err == KErrCorrupt ))
- {
- // This indicates that certificate is not according to X509
- // specification or it is corrupted. Ignore certificate
- if( data->iPeerEntry )
- {
- data->iPeerEntry->Release();
- }
- CleanupStack::PopAndDestroy( data ); // data
- continue;
- }
- else
- {
- User::LeaveIfError( err );
- }
-
- CleanupStack::PushL( cert );
-
- TInt lenght = 0;
-
- lenght += iPeerEntries[ii]->Label().Length();
-
- HBufC* label = HBufC::NewL( lenght );
- label->Des().Append( iPeerEntries[ii]->Label() );
-
- data->iPeerEntryLabel = label;
- iPeerLabelEntries.Append( data );
-
- CleanupStack::PopAndDestroy( cert ); // cert
- CleanupStack::Pop( data ); // data
- break;
- } // EX509Certificate
-
- case EWTLSCertificate:
- // Do nothing for wtls certificates
- break;
- default:
- {
- User::Leave( KErrNotSupported );
- }
- } // switch
-
- } // for
-
- // Sort the certificates.
- TLinearOrder<CpCertManUICertData> order( ComparePeerLabels );
- iPeerLabelEntries.Sort( order );
-
- }
-
-
-// ---------------------------------------------------------
-// CCertManUIKeeper::RefreshUserCertEntriesL()
-// Checks that cacerts.dat file is not corrupted and
-// returns User certificates from it
-// ---------------------------------------------------------
-//
-void CpCertDataContainer::RefreshUserCertEntriesL()
- {
- RDEBUG("0", 0);
- iFilter->SetOwnerType( EUserCertificate );
- iUserEntries.Close();
- CUnifiedCertStore*& store = CertManager();
- iWrapper->ListL( store, &iUserEntries, *iFilter );
-
- iUserLabelEntries.Close();
-
- for ( TInt i = 0; i < iUserEntries.Count(); i++ )
- {
-
- if ( iUserEntries[i]->Handle().iTokenHandle.iTokenTypeUid == KCMDeviceCertStoreTokenUid )
- {
- // User certificates from DeviceCertStore are not
- // shown in Personal certificate view. Ignore this certificate.
- break;
- }
-
- switch ( iUserEntries[i]->CertificateFormat() )
- {
- case EX509Certificate:
- {
- CpCertManUICertData* data = new (ELeave) CpCertManUICertData();
- CleanupStack::PushL( data );
- data->iUserEntry = CCTCertInfo::NewL( *iUserEntries[i] );
-
- HBufC* pri = NULL;
- HBufC* sec = NULL;
-
- CCertificate* cert = NULL;
- TRAPD(error, iWrapper->GetCertificateL( CertManager(), *iUserEntries[i], cert ));
-
- if( error == KErrArgument)
- {
- CleanupStack::PopAndDestroy( data );
- break;
- }
- else if ( error != KErrNone )
- {
- User::Leave( error );
- }
- else
- {
- CleanupStack::PushL( cert );
- }
-
- X509CertNameParser::PrimaryAndSecondaryNameL
- ( *((CX509Certificate*)cert), pri, sec, iUserEntries[i]->Label());
-
- CleanupStack::PushL( pri );
- CleanupStack::PushL( sec );
-
- TInt lenght = 0;
-
- lenght += iUserEntries[i]->Label().Length();
-
- if ( pri )
- {
- lenght += pri->Length();
- }
- if ( sec && !(iUserEntries[i]->Label().Length()) )
- {
- lenght += sec->Length();
- }
- lenght += KNameSeparator.iTypeLength;
-
- HBufC* label = HBufC::NewL( lenght );
- label->Des().Append( iUserEntries[i]->Label() );
-
- if ( pri )
- {
- label->Des().Append( KNameSeparator );
- label->Des().Append( pri->Des() );
- }
- if ( sec && !(iUserEntries[i]->Label().Length()) )
- {
- label->Des().Append( sec->Des() );
- }
-
- data->iUserEntryLabel = label;
- iUserLabelEntries.Append( data );
-
- CleanupStack::PopAndDestroy( 3, cert ); // pri, sec
- CleanupStack::Pop( data ); // data
- break;
- } // EX509Certificate
-
- case EX509CertificateUrl:
- {
- CpCertManUICertData* urlCertData = new (ELeave) CpCertManUICertData();
- CleanupStack::PushL( urlCertData );
- urlCertData->iUserEntry = CCTCertInfo::NewL( *iUserEntries[i] );
-
- CCertificate* cert = NULL;
- TRAPD(error, iWrapper->GetCertificateL( CertManager(), *iUserEntries[i], cert ));
- if( error == KErrArgument )
- {
- CleanupStack::PopAndDestroy( urlCertData ); // urlCertData
- break;
- }
- else if ( error != KErrNone )
- {
- User::Leave(error);
- }
- else
- {
- CleanupStack::PushL( cert );
- }
-
- _LIT(KUrlUserCert, "URL UserCert");
- HBufC* UrlLabel = HBufC::NewL( KUrlUserCert().Length() );
- UrlLabel->Des().Append( KUrlUserCert());
-
- urlCertData->iUserEntryLabel = UrlLabel;
- iUserLabelEntries.Append( urlCertData );
-
- CleanupStack::PopAndDestroy( cert ); // cert
- CleanupStack::Pop( urlCertData ); // data
- break;
- }
- } // switch
-
- } // for
-
- // Sort the certificates.
- TLinearOrder<CpCertManUICertData> order( CompareUserLabels );
- iUserLabelEntries.Sort( order );
-
- }
-
-// ---------------------------------------------------------
-// CCertManUIKeeper::RefreshDeviceCertEntriesL()
-// returns device certificates
-// ---------------------------------------------------------
-//
-void CpCertDataContainer::RefreshDeviceCertEntriesL()
- {
- RDEBUG("0", 0);
- iFilter->SetOwnerType( EUserCertificate );
- iDeviceEntries.Close();
- CUnifiedCertStore*& store = CertManager();
-
- iWrapper->ListL( store, &iDeviceEntries, *iFilter, KCMDeviceCertStoreTokenUid );
-
- iDeviceLabelEntries.Close();
- for ( TInt i = 0; i < iDeviceEntries.Count(); i++ )
- {
- switch ( iDeviceEntries[i]->CertificateFormat() )
- {
- case EX509Certificate:
- {
- CpCertManUICertData* data = new (ELeave) CpCertManUICertData();
- CleanupStack::PushL( data );
- data->iDeviceEntry = CCTCertInfo::NewL( *iDeviceEntries[i] );
-
- HBufC* pri = NULL;
- HBufC* sec = NULL;
-
- CCertificate* cert = NULL;
- TRAPD(error, iWrapper->GetCertificateL( CertManager(), *iDeviceEntries[i], cert, KCMDeviceCertStoreTokenUid ));
-
- if( error == KErrArgument)
- {
- CleanupStack::PopAndDestroy( data );
- break;
- }
- else if ( error != KErrNone )
- {
- User::Leave( error );
- }
- else
- {
- CleanupStack::PushL( cert );
- }
-
- X509CertNameParser::PrimaryAndSecondaryNameL
- ( *((CX509Certificate*)cert), pri, sec, iDeviceEntries[i]->Label());
-
- CleanupStack::PushL( pri );
- CleanupStack::PushL( sec );
-
- TInt lenght = 0;
-
- lenght += iDeviceEntries[i]->Label().Length();
-
- if ( pri )
- {
- lenght += pri->Length();
- }
- if ( sec && !(iDeviceEntries[i]->Label().Length()) )
- {
- lenght += sec->Length();
- }
- lenght += KNameSeparator.iTypeLength;
-
- HBufC* label = HBufC::NewL( lenght );
- label->Des().Append( iDeviceEntries[i]->Label() );
-
- if ( pri )
- {
- label->Des().Append( KNameSeparator );
- label->Des().Append( pri->Des() );
- }
- if ( sec && !(iDeviceEntries[i]->Label().Length()) )
- {
- label->Des().Append( sec->Des() );
- }
-
- data->iDeviceEntryLabel = label;
- iDeviceLabelEntries.Append( data );
-
- CleanupStack::PopAndDestroy( 3, cert ); // pri, sec
- CleanupStack::Pop( data ); // data
- break;
- } // EX509Certificate
-
- case EX509CertificateUrl:
- {
- CpCertManUICertData* urlCertData = new (ELeave) CpCertManUICertData();
- CleanupStack::PushL( urlCertData );
- urlCertData->iDeviceEntry = CCTCertInfo::NewL( *iDeviceEntries[i] );
-
- CCertificate* cert = NULL;
- TRAPD(error, iWrapper->GetCertificateL( CertManager(), *iDeviceEntries[i], cert, KCMDeviceCertStoreTokenUid ));
- if( error == KErrArgument)
- {
- CleanupStack::PopAndDestroy( urlCertData ); // urlCertData
- break;
- }
- else if ( error != KErrNone )
- {
- User::Leave(error);
- }
- else
- {
- CleanupStack::PushL( cert );
- }
-
- _LIT(KUrlUserCert, "URL UserCert");
- HBufC* UrlLabel = HBufC::NewL( KUrlUserCert().Length() );
- UrlLabel->Des().Append( KUrlUserCert());
-
-
- urlCertData->iDeviceEntryLabel = UrlLabel;
- iDeviceLabelEntries.Append( urlCertData );
-
- CleanupStack::PopAndDestroy( cert ); // cert
- CleanupStack::Pop( urlCertData ); // data
- break;
- }
- } // switch
-
- } // for
-
- // Sort the certificates.
- TLinearOrder<CpCertManUICertData> order( CompareDeviceLabels );
- iDeviceLabelEntries.Sort( order );
-
- }
-
-// ---------------------------------------------------------
-// CCertManUIKeeper::ShowErrorNoteL( TInt aError )
-// Shows error note
-// ---------------------------------------------------------
-//
-void CpCertDataContainer::ShowErrorNoteL( TInt aError )
- {
- QString sError;
- switch ( aError )
- {
- case KErrCorrupt:
- {
- sError = "Database corrupted. Some data might have been lost.";
- break;
- }
- case KErrCancel:
- {
- // Show nothing
- break;
- }
- default:
- {
- sError = "Internal error";
- break;
- }
- }
-
- if ( sError.length() != 0 )
- {
- HbMessageBox::information(sError);
- }
- }
-
--- a/cpsecplugins/cpadvancedsecplugin/src/cpcertdetailview.cpp Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,887 +0,0 @@
-/*
-* Copyright (c) 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:
-*
-*/
-#include <cctcertinfo.h>
-#include <x509cert.h>
-#include <unifiedcertstore.h>
-#include <X509CertNameParser.h>
-#include <securitydefs.h>
-#include <hash.h> // MD5 fingerprint
-#include <asymmetrickeys.h>
-
-#include <e32math.h> // Pow
-#include <e32cmn.h>
-
-#include <QDateTime>
-#include <QStringList>
-#include <QGraphicsLinearLayout>
-
-#include <hblineedit.h>
-#include <hbdataform.h>
-#include <hbdataformmodel.h>
-#include <hbdataformmodelitem.h>
-#include <hblabel.h>
-#include <hbpushbutton.h>
-#include <hbmenu.h>
-#include <hbaction.h>
-#include <hbmessagebox.h>
-#include <HbListWidget>
-#include <HbListWidgetItem>
-#include <HbGroupBox>
-#include <hbpushbutton.h>
-#include <hbdataform.h>
-#include <hbdataformmodel.h>
-#include <hbdataformmodelitem.h>
-#include <../../inc/cpsecplugins.h>
-#include "cpcertdetailview.h"
-#include "cpcertview.h"
-#include "cpcertdatacontainer.h"
-#include "cpcertmanuisyncwrapper.h"
-#include "../../../pkiutilities/DeviceToken/Inc/TrustedSitesStore.h"
-
-const TInt KFileCertStoreUid( 0x101F501A );
-const TInt KTrustedServerCertStoreUid( 0x101FB66F );
-const TInt KDeviceCertStoreUid( 0x101FB668 );
-const TInt KDeviceKeyStoreUid( 0x101FB66A );
-const TInt KWIMCertStoreUid ( 0x101F79D9 );
-
-const TInt KMaxLengthTextSerialNumberFormatting = 3;
-_LIT( KCertManUIDetailsViewHexaFormat, "%02X" );
-_LIT( KBlockSeparator, " " );
-
-template <class T>
-class CleanupResetAndDestroy
- {
-public:
- inline static void PushL( T& aRef );
-private:
- static void ResetAndDestroy( TAny *aPtr );
- };
-
-template <class T>
-inline void CleanupResetAndDestroyPushL( T& aRef );
-
-template <class T>
-inline void CleanupResetAndDestroy<T>::PushL( T& aRef )
- {
- CleanupStack::PushL( TCleanupItem( &ResetAndDestroy, &aRef ) );
- }
-
-template <class T>
-void CleanupResetAndDestroy<T>::ResetAndDestroy( TAny *aPtr )
- {
- if( aPtr )
- {
- static_cast<T*>( aPtr )->ResetAndDestroy();
- }
- }
-
-template <class T>
-inline void CleanupResetAndDestroyPushL( T& aRef )
- {
- CleanupResetAndDestroy<T>::PushL( aRef );
- }
-
-CpCertDetailView::CpCertDetailView(CpCertView::TCertificateViews aCurrentView,TInt aPos, CpCertDataContainer& aCertDataContainer, QGraphicsItem *parent /*= 0*/)
-: CpBaseSettingView(0,parent), mCertDataContainer(aCertDataContainer)
- {
- setTitle(tr("Certificate Details"));
-
- try
- {
- QT_TRAP_THROWING(viewCertificateDetailsL(aPos, aCurrentView));
- }
- catch(const std::exception& exception)
- {
- HbMessageBox::information(exception.what());
- throw(exception);
- }
- }
-
-
-CpCertDetailView::~CpCertDetailView()
- {}
-
-void CpCertDetailView::viewCertificateDetailsL( TInt aIndex, CpCertView::TCertificateViews aType )
- {
- RDEBUG("0", 0);
- QGraphicsLinearLayout *layout = q_check_ptr(new QGraphicsLinearLayout(Qt::Vertical));
- setLayout(layout);
-
- HbListWidget* mCertDetails = q_check_ptr(new HbListWidget(this));
-
- HBufC8* urlBuf = NULL;
- CCertificate* details = NULL;
- CUnifiedCertStore*& store = mCertDataContainer.CertManager();
-
- const CCTCertInfo* entry = certInfo(aIndex, aType);
- TCertificateFormat certificateFormat = entry->CertificateFormat();
-
- if( certificateFormat != EX509CertificateUrl )
- {
- mCertDataContainer.iWrapper->GetCertificateL( store, *entry, details );
- CleanupStack::PushL( details );
- validateCertificateL( aIndex, *details, *entry, aType );
- }
- else
- {
- urlBuf = HBufC8::NewLC( entry->Size() );
- TPtr8 urlPtr = urlBuf->Des();
- mCertDataContainer.iWrapper->GetUrlCertificateL( store, *entry, urlPtr );
- }
-
- if( aType == CpCertView::ETrustedView )
- {
- addTrustedSitesL(*details, *mCertDetails);
- }
- else
- {
- addLabel(*entry, *mCertDetails);
- }
- RDEBUG("0", 0);
- // certificate issuer and owner
- if( certificateFormat == EX509Certificate )
- {
- addIssuerL(*details, *mCertDetails);
- addSubjectL(*details, *mCertDetails);
- }
-
- // Get key usage and location. This is done only client certificates.
- const TInt KLocationUnknown = 0;
- TUid keyLocation = { KLocationUnknown };
-
- if(( aType == CpCertView::EPersonalView ) || ( aType == CpCertView::EDeviceView ))
- {
- TKeyUsagePKCS15 usage = keyUsageAndLocationL( *entry, &keyLocation );
- addCertUsage(usage, *mCertDetails);
- }
- RDEBUG("0", 0);
- if( certificateFormat == EX509Certificate )
- {
- addValidityPeriod( *details, *mCertDetails );
- TUid certLoc;
- certLoc.iUid = entry->Token().TokenType().Type().iUid;
- // add the location of the certificate
- setLocationInfo( ETrue, certLoc, *mCertDetails );
- }
- else if( certificateFormat == EX509CertificateUrl )
- {
- setURLLocation( *urlBuf, *mCertDetails );
- }
- else
- {
- // nothing
- }
-
- addCertFormat(certificateFormat, *mCertDetails);
-
- // Private key location, only for user and device certicates
- if(( aType == CpCertView::EPersonalView ) || ( aType == CpCertView::EDeviceView ))
- {
- setLocationInfo( EFalse, keyLocation, *mCertDetails );
- }
-
- if( certificateFormat == EX509Certificate )
- {
- addAlgoDetails( *details, *mCertDetails);
- addSerialNo( *details, *mCertDetails );
- addFingerprint( *details, *mCertDetails);
- addPublicKeyDetailsL( *details, *mCertDetails );
- }
- else
- {
- // SetUrlCertAlgorihm()
- }
- RDEBUG("0", 0);
- if( certificateFormat != EX509CertificateUrl )
- {
- CleanupStack::PopAndDestroy( details );
- }
- else
- {
- CleanupStack::PopAndDestroy( urlBuf );
- }
-
- layout->addItem(mCertDetails);
- }
-
-const CCTCertInfo* CpCertDetailView::certInfo( TInt index, CpCertView::TCertificateViews certView )
- {
- RDEBUG("0", 0);
- const CCTCertInfo* certinfo = NULL;
-
- if( certView == CpCertView::EAuthorityView )
- {
- certinfo = ( mCertDataContainer.iCALabelEntries )[ index ]->iCAEntry;
- }
- else if( certView == CpCertView::ETrustedView )
- {
- certinfo = ( mCertDataContainer.iPeerLabelEntries )[ index ]->iPeerEntry;
- }
- else if( certView == CpCertView::EDeviceView )
- {
- certinfo = ( mCertDataContainer.iDeviceLabelEntries )[ index ]->iDeviceEntry;
- }
- else if( certView == CpCertView::EPersonalView )
- {
- certinfo = ( mCertDataContainer.iUserLabelEntries )[ index ]->iUserEntry;
- }
- return certinfo;
- }
-
-void CpCertDetailView::addTrustedSitesL( const CCertificate& certDetails, HbListWidget& certDisplayDetails )
- {
- RDEBUG("0", 0);
- CTrustSitesStore* trustedSitesStore = CTrustSitesStore::NewL();
- CleanupStack::PushL( trustedSitesStore );
-
- RPointerArray<HBufC> trustedSites;
- CleanupResetAndDestroyPushL( trustedSites );
- trustedSitesStore->GetTrustedSitesL( certDetails.Encoding(), trustedSites );
-
- QString sTrustedSites = "Site:";
- if( trustedSites.Count() > 0 )
- {
- // display trusted sites
- sTrustedSites = "Site:";
- }
- addToListWidget(certDisplayDetails, sTrustedSites);
-
- for(int index=0;index<trustedSites.Count(); ++index)
- {
- QString trustedSiteDetail = QString((QChar*)(trustedSites[index]->Ptr()), trustedSites[index]->Length());
- addToListWidget(certDisplayDetails, trustedSiteDetail);
- }
-
- CleanupStack::PopAndDestroy( &trustedSites );
- CleanupStack::PopAndDestroy( trustedSitesStore );
-
- }
-
-void CpCertDetailView::addLabel( const CCTCertInfo& aCertInfo, HbListWidget& certDisplayDetails )
- {
- RDEBUG("0", 0);
- QString sLabel("Label:");
- QString sLabelDetails = "(No label)";
- if(aCertInfo.Label().Length() != 0)
- {
- sLabelDetails = QString((QChar*)(aCertInfo.Label().Ptr()),aCertInfo.Label().Length());
- }
- addToListWidget(certDisplayDetails, sLabel, sLabelDetails);
- }
-
-void CpCertDetailView::addIssuerL( const CCertificate& aCertDetails,
- HbListWidget& certDisplayDetails )
- {
- HBufC* issuer = NULL;
- X509CertNameParser::IssuerFullNameL( (CX509Certificate&)aCertDetails, issuer );
- CleanupStack::PushL( issuer );
-
- QString sIssuer = "Issuer:";
- QString sIssuerDetails = "(Not defined)";
- if(issuer->Des().Length() != 0)
- {
- sIssuerDetails = QString((QChar*)issuer->Des().Ptr(),issuer->Des().Length());
- }
- addToListWidget(certDisplayDetails, sIssuer, sIssuerDetails);
-
- CleanupStack::PopAndDestroy( issuer );
- }
-
-void CpCertDetailView::addSubjectL( const CCertificate& aCertDetails,
- HbListWidget& certDisplayDetails )
- {
- RDEBUG("0", 0);
- HBufC* subject = NULL;
- X509CertNameParser::SubjectFullNameL( (CX509Certificate&)aCertDetails, subject );
- CleanupStack::PushL( subject );
-
- QString sSubject = "Subject:";
- QString sSubjectDetails = "(No subject)";
- if(subject->Des().Length() != 0)
- {
- sSubjectDetails = QString((QChar*)subject->Des().Ptr(),subject->Des().Length());
- }
-
- addToListWidget(certDisplayDetails, sSubject, sSubjectDetails);
-
- CleanupStack::PopAndDestroy( subject );
- }
-
-void CpCertDetailView::addCertUsage( TKeyUsagePKCS15 usage, HbListWidget& certDisplayDetails )
- {
- RDEBUG("0", 0);
- QString strUsage;
- switch( usage )
- {
- case EPKCS15UsageSignSignRecover:
- case EPKCS15UsageSignDecrypt:
- case EPKCS15UsageSign:
- strUsage = "Client authentication";
- break;
- case EPKCS15UsageNonRepudiation:
- strUsage = "Digital signing";
- break;
- default:
- strUsage = "(Not defined)";
- break;
- }
- addToListWidget(certDisplayDetails, strUsage );
- }
-
-
-void CpCertDetailView::addValidityPeriod( const CCertificate& aCertDetails,
- HbListWidget& certDisplayDetails)
- {
- RDEBUG("0", 0);
- // Certificate validity period
- // Hometime's offset to UTC
- TLocale locale;
- TTimeIntervalSeconds offSet = locale.UniversalTimeOffset();
-
- QString sValidFrom("Valid from: ");
- const CValidityPeriod& validityPeriod = aCertDetails.ValidityPeriod();
- TTime startValue = validityPeriod.Start();
- startValue += offSet;
- TDateTime dateTime = startValue.DateTime();
- TMonth month = dateTime.Month();
- TInt day = dateTime.Day();
- TInt year = dateTime.Year();
- QDateTime qValidityPeriod(QDate(year, month, day));
- QString sValidFromDetail = qValidityPeriod.toString("MM\\dd\\yyyy");
-
- addToListWidget(certDisplayDetails, sValidFrom, sValidFromDetail);
-
- QString sValidUntil("Valid until: ");
- TTime finishValue = validityPeriod.Finish();
- finishValue += offSet;
- dateTime = finishValue.DateTime();
- month = dateTime.Month();
- day = dateTime.Day();
- year = dateTime.Year();
- qValidityPeriod.setDate(QDate(year, month, day));
- QString sValidUntilDetail = qValidityPeriod.toString("MM\\dd\\yyyy");
-
- addToListWidget(certDisplayDetails, sValidUntil, sValidUntilDetail);
-
- }
-
-void CpCertDetailView::setURLLocation( HBufC8& urlDetails, HbListWidget& certDisplayDetails )
- {
- RDEBUG("0", 0);
- TPtr8 urlPtr = urlDetails.Des();
-
- QString certUrl = "Location:";
- QString certURLDetail = "(Not defined)";
- TInt length = urlPtr.Length();
- if(length != 0)
- {
- certURLDetail = QString((QChar*)urlPtr.Ptr(),urlPtr.Length());
- }
- addToListWidget(certDisplayDetails, certUrl, certURLDetail);
- }
-
-void CpCertDetailView::addCertFormat( TCertificateFormat aCertFormat, HbListWidget& certDisplayDetails )
- {
- RDEBUG("0", 0);
- // certificate format
- QString certFormat = "Certificate format:";
- QString certFormatDetails = "(Not defined)";
- if( aCertFormat == EX509Certificate || aCertFormat == EX509CertificateUrl)
- {
- certFormatDetails = "X509";
- }
- addToListWidget(certDisplayDetails, certFormat, certFormatDetails);
- }
-
-void CpCertDetailView::addAlgoDetails( const CCertificate& certificate,
- HbListWidget& certDisplayDetails )
- {
- RDEBUG("0", 0);
- // certificate algorithms
- QString sDgstAlgoDetails = "Unknown";
- // digest algorithm
- TAlgorithmId algorithmId = certificate.SigningAlgorithm().DigestAlgorithm().Algorithm();
- switch( algorithmId )
- {
- case EMD2:
- {
- sDgstAlgoDetails = "MD2";
- break;
- }
- case EMD5:
- {
- sDgstAlgoDetails = "MD5";
- break;
- }
- case ESHA1:
- {
- sDgstAlgoDetails = "SHA1";
- break;
- }
- }
-
- QString sAsymmetricAlgoDetails = asymmetricAlgoId(certificate);
- QString sAlgorithm("Algorithm:");
- QString sAlgoDetails = "Unknown";
- // If other algorithm is unknown
- if( sDgstAlgoDetails != "Unknown" && sAsymmetricAlgoDetails != "Unknown" )
- {
- sAlgoDetails = sDgstAlgoDetails;
- sAlgoDetails.append(sAsymmetricAlgoDetails);
- }
- addToListWidget(certDisplayDetails, sAlgorithm, sAlgoDetails);
- }
-
-void CpCertDetailView::addSerialNo( const CCertificate& certificate,
- HbListWidget& certDisplayDetails )
- {
- RDEBUG("0", 0);
- // certificate serial number
- QString sCertSerialNo("Serial number:");
- QString sCertSerialNoDetails = 0;
- TPtrC8 serialNumber = certificate.SerialNumber();
- TBuf<KMaxLengthTextSerialNumberFormatting> buf2;
-
- for( TInt i = 0; i < serialNumber.Length(); i++ )
- {
- buf2.Format( KCertManUIDetailsViewHexaFormat, serialNumber[i] );
- sCertSerialNoDetails.append( QString( (QChar*)buf2.Ptr(),buf2.Length() ) );
- }
- addToListWidget(certDisplayDetails, sCertSerialNo, sCertSerialNoDetails);
- }
-
-void CpCertDetailView::addFingerprint( const CCertificate& certificate,
- HbListWidget& certDisplayDetails)
- {
- RDEBUG("0", 0);
- // certificate fingerprint SHA-1
- QString sSha1("Fingerprint (SHA1):");
- TPtrC8 sha1_fingerprint = certificate.Fingerprint();
- HBufC* finalSha1 = NULL;
- QString sSha1Details = NULL;
-
- QT_TRAP_THROWING
- (
- finalSha1 = HBufC::NewLC(100);
- TPtr finalShaPtr = finalSha1->Des();
- divideIntoBlocks( sha1_fingerprint, finalShaPtr );
- sSha1Details = QString( (QChar*)finalShaPtr.Ptr(), finalShaPtr.Length() );
- CleanupStack::PopAndDestroy(finalSha1);
- )
-
- addToListWidget(certDisplayDetails, sSha1, sSha1Details);
-
- // certificate fingerprint MD5
- QString sMd5("Fingerprint (MD5):");
- CMD5* md5= NULL;
- QT_TRAP_THROWING
- (
- md5 = CMD5::NewL();
- CleanupStack::PushL( md5 );
- TBuf8<20> fingerprint = md5->Hash( certificate.Encoding() );
- CleanupStack::PopAndDestroy( md5 );
- HBufC* finalMd5 = NULL;
- finalMd5 = HBufC::NewLC(100);
- TPtr finalMd5Ptr = finalMd5->Des();
- divideIntoBlocks( fingerprint, finalMd5Ptr );
- QString sMd5Details = QString( (QChar*)finalMd5Ptr.Ptr(), finalMd5Ptr.Length());
- CleanupStack::PopAndDestroy(finalMd5);
- addToListWidget(certDisplayDetails, sMd5, sMd5Details);
- )
- }
-
-void CpCertDetailView::addPublicKeyDetailsL( const CCertificate& certificate,
- HbListWidget& certDisplayDetails )
- {
- RDEBUG("0", 0);
- // Public key
- // Should look like: "Public key (%0U %1N bit):"
-
- QString sPublicKey("Public key ("); // %S %d bits):");
- sPublicKey.append(asymmetricAlgoId(certificate));
-
- // Get public key already here to get length of it for string loader.
- const CSubjectPublicKeyInfo& publicKey = certificate.PublicKey();
- TPtrC8 keyData = publicKey.KeyData();
- TInt size = keyData.Size(); // %1N
-
- // To get key size decode DER encoded key got from the certificate.
- TX509KeyFactory key;
-
- // There doesn't seem to be definition of MAX_INT anywhere so calculate it.
- TReal maxInt;
- TReal intBits = sizeof( TInt ) * 8;
- Math::Pow( maxInt, 2, intBits );
- maxInt = ( maxInt / 2 ) - 1;
-
- TAlgorithmId algorithmId = certificate.SigningAlgorithm().AsymmetricAlgorithm().Algorithm();
- switch( algorithmId )
- {
- case ERSA:
- {
- const CRSAPublicKey* keyRSA = key.RSAPublicKeyL( keyData );
-
- const TInteger& n = keyRSA->N();
-
- TUint keySizeN = n.BitCount();
-
- // Play it safe.
- if( keySizeN < maxInt )
- {
- size = keySizeN;
- }
-
- delete keyRSA;
-
- break;
- }
- case EDSA:
- {
- TPtrC8 params = publicKey.EncodedParams();
- const CDSAPublicKey* keyDSA = key.DSAPublicKeyL( params, keyData );
-
- const TInteger& y = keyDSA->Y();
-
- TUint keySizeY = y.BitCount();
-
- // Play it safe.
- if( keySizeY < maxInt )
- {
- size = keySizeY;
- }
-
- delete keyDSA;
-
- break;
- }
- // There doesn't seem to be TX509KeyFactory function for DH keys.
- // If the key is DH or unknown, just multiply length of the key
- // in bytes with 8. It is not correct but at least gives an idea.
- // Without setting something to size 'unknown' text should be used
- // below for the string which is much more error prone than setting
- // at least something.
- case EDH:
- default:
- {
- size = 8 * keyData.Size();
- }
- }
-
- sPublicKey.append(" ").append(QString::number(size)).append(" bits):");
-
- // Finally append the public key.
- HBufC* pubKey = HBufC::NewLC(size*3);
- TPtr pubKeyPtr = pubKey->Des();
- divideIntoBlocks( keyData, pubKeyPtr );
- QString sPublicKeyDetails = QString ( (QChar*)pubKeyPtr.Ptr(), pubKeyPtr.Length());
- CleanupStack::PopAndDestroy(pubKey);
- addToListWidget(certDisplayDetails, sPublicKey, sPublicKeyDetails);
- }
-
-QString CpCertDetailView::asymmetricAlgoId( const CCertificate& certificate )
- {
- RDEBUG("0", 0);
- QString sAsymmetricAlgoId = 0;
- // public-key algorithm
- TAlgorithmId algorithmId = certificate.SigningAlgorithm().AsymmetricAlgorithm().Algorithm();
- switch( algorithmId )
- {
- case ERSA:
- {
- sAsymmetricAlgoId = "RSA";
- break;
- }
- case EDSA:
- {
- sAsymmetricAlgoId = "DSA";
- break;
- }
- case EDH:
- {
- sAsymmetricAlgoId = "DH";
- break;
- }
- default:
- {
- sAsymmetricAlgoId = "Unknown";
- }
- }
- return sAsymmetricAlgoId;
- }
-
-void CpCertDetailView::addToListWidget(HbListWidget& certDisplayDetails, const QString& data )
- {
- HbListWidgetItem* wItem = q_check_ptr(new HbListWidgetItem());
- wItem->setText(data);
- certDisplayDetails.addItem(wItem);
- }
-
-void CpCertDetailView::addToListWidget( HbListWidget& certDisplayDetails,
- const QString& displayString,
- const QString& displayDetails )
- {
- HbListWidgetItem* wDisplayString = q_check_ptr(new HbListWidgetItem());
- wDisplayString->setText(displayString);
- certDisplayDetails.addItem(wDisplayString);
-
- HbListWidgetItem* wDisplayDetails = q_check_ptr(new HbListWidgetItem());
- wDisplayDetails->setText(displayDetails);
- certDisplayDetails.addItem(wDisplayDetails);
- }
-
-void CpCertDetailView::validateCertificateL(
- TInt aIndex, const CCertificate& certDetails, const CCTCertInfo& aCertInfo, CpCertView::TCertificateViews aType )
- {
- RDEBUG("0", 0);
- TInt poppableItems = 0;
- // Check allways first the validity period
- // Show Expired/Not yet valid notes
- const CValidityPeriod& validityPeriod = certDetails.ValidityPeriod();
- const TTime& startValue = validityPeriod.Start();
- const TTime& finishValue = validityPeriod.Finish();
- TTime current;
- current.UniversalTime();
-
- if ( startValue > current )
- {
- // certificate is not valid yet
- HbMessageBox::warning("The certificate is not valid yet");
- }
- else if ( finishValue < current )
- {
- // certificate is expired
- HbMessageBox::warning("The certificate has expired");
- }
- else
- {
- // put here check for certificate status, show warning notes if needed
- TBool noValidationError = ETrue;
- CArrayFixFlat<TValidationError>* validationError = NULL;
- // set it to the most common cert format
- TCertificateFormat certificateFormat = EX509Certificate;
-
- if ( aType == CpCertView::EAuthorityView )
- {
- certificateFormat = mCertDataContainer.iCALabelEntries[aIndex]->
- iCAEntry->CertificateFormat();
- }
- else if ( aType == CpCertView::ETrustedView )
- {
- certificateFormat = mCertDataContainer.iPeerLabelEntries[aIndex]->
- iPeerEntry->CertificateFormat();
- }
- else if ( aType == CpCertView::EDeviceView )
- {
- certificateFormat = mCertDataContainer.iDeviceLabelEntries[aIndex]->
- iDeviceEntry->CertificateFormat();
- }
- else if( aType == CpCertView::EPersonalView )
- {
- certificateFormat = mCertDataContainer.iUserLabelEntries[aIndex]->
- iUserEntry->CertificateFormat();
- }
-
- switch ( certificateFormat )
- {
- case EX509Certificate:
- {
- validationError = validateX509CertificateL((CX509Certificate&)certDetails );
- break;
- }
- default:
- {
- validationError = new ( ELeave) CArrayFixFlat<TValidationError>( 1 );
- break;
- }
- }
- CleanupStack::PushL( validationError );
- poppableItems++;
-
- TInt errorCount = validationError->Count();
- TBool ready = EFalse;
- for ( TInt i = 0; i < errorCount && !ready; i++ )
- {
- TValidationError errorType = validationError->At(i);
-
- switch ( errorType )
- {
- case EValidatedOK:
- case EChainHasNoRoot:
- case EBadKeyUsage:
- // Ignore these errors
- //LOG_WRITE( "Ignored certificate validation error" );
- break;
-
- default:
- // certificate is corrupted
- noValidationError = EFalse;
- HbMessageBox::warning("The certificate is corrupted");
- ready = ETrue;
- break;
- }
- }
-
- if ( noValidationError && (aType == CpCertView::EAuthorityView ))
- // Check for last if the CA certificate has no clients,
- // ie. the trust state of every client is No
- // For user certificates we don't do the check
- {
-
- RArray<TUid> trusterUids;
- CleanupClosePushL( trusterUids );
- poppableItems++;
-
- mCertDataContainer.iWrapper->GetApplicationsL(
- mCertDataContainer.CertManager(), aCertInfo, trusterUids );
-
- if ( trusterUids.Count() == 0)
- {
- HbMessageBox::warning("Certificate not trusted");
- }
- }
- }
- CleanupStack::PopAndDestroy( poppableItems );
- }
-
-CArrayFixFlat<TValidationError>* CpCertDetailView::validateX509CertificateL( const CX509Certificate& certDetails )
- {
- RDEBUG("0", 0);
- TInt poppableItems = 0;
- CArrayFixFlat<TValidationError>* validationError =
- new ( ELeave ) CArrayFixFlat<TValidationError>( 1 );
- CleanupStack::PushL( validationError ); //This is returned, so it isn't destroyed at the end.
-
- TTime GMTTime;
- GMTTime.UniversalTime(); // Get Universal Time
- RPointerArray<CX509Certificate> certArray;
- certArray.Append( &certDetails );
-
- CPKIXCertChain* chain = CPKIXCertChain::NewLC(
- mCertDataContainer.iRfs, certDetails.Encoding(), certArray );
- ++poppableItems;
-
- CPKIXValidationResult* result = CPKIXValidationResult::NewLC();
- ++poppableItems;
- mCertDataContainer.iWrapper->ValidateX509RootCertificateL( result, GMTTime, chain );
-
- TValidationStatus validationStatus = result->Error();
- //Set reserve space. One for error, other for warnings.
- validationError->SetReserveL( 1 + result->Warnings().Count() );
- validationError->AppendL(validationStatus.iReason);
- for ( TUint8 i = 0; i < result->Warnings().Count(); i++ )
- {
- validationError->AppendL( result->Warnings().At(0).iReason );
- }
-
- CleanupStack::PopAndDestroy( poppableItems, chain ); // All but validationError.
- CleanupStack::Pop(validationError);
- return validationError;
- }
-
-TKeyUsagePKCS15 CpCertDetailView::keyUsageAndLocationL( const CCTCertInfo& certEntry,
- TUid* keyLocation )
- {
- TKeyUsagePKCS15 keyUsage;
- RDEBUG("0", 0);
- // Check whether we have key for this certificate
- RMPointerArray<CCTKeyInfo> keyEntry;
- TCTKeyAttributeFilter filter;
- filter.iKeyId = certEntry.SubjectKeyId();
-
- mCertDataContainer.iWrapper->ListL( mCertDataContainer.KeyManager(), &keyEntry, filter );
-
- if (keyEntry.Count())
- {
- keyUsage = keyEntry[0]->Usage();
- // Get Location
- keyLocation->iUid = keyEntry[0]->Token().TokenType().Type().iUid ;
- }
- else
- {
- keyUsage = EPKCS15UsageNone;
- }
-
- keyEntry.Close();
- return keyUsage;
- }
-
-// ---------------------------------------------------------
-// CCertManUICertificateHelper::setLocationInfo( (HBufC& aMessage,
-// TBool certificate,
-// TUid* aLocUid)
-// Adds certificate/private key's location info to certificate details
-// ---------------------------------------------------------
-//
-void CpCertDetailView::setLocationInfo(TBool certificate, TUid locUid, HbListWidget& certDisplayDetails)
- {
- RDEBUG("0", 0);
- QString locationDetails = "(Not defined)";
-
- switch ( locUid.iUid )
- {
- case KFileCertStoreUid:
- case KTrustedServerCertStoreUid:
- case KDeviceCertStoreUid:
- case KDeviceKeyStoreUid:
- case KTokenTypeFileKeystore:
- locationDetails = "Phone memory";
- break;
-
- case KWIMCertStoreUid:
- locationDetails = "Smart card";
- break;
-
- default:
- if ( !certificate )
- {
- locationDetails = "No private key";
- }
- break;
- }
-
- QString location = "Location:";
- if ( !certificate )
- {
- location = "Private key location:";
- }
-
- addToListWidget(certDisplayDetails, location, locationDetails );
-
- }
-
-// ---------------------------------------------------------
-// CCertManUICertificateHelper::divideIntoBlocks
-// ---------------------------------------------------------
-//
-void CpCertDetailView::divideIntoBlocks( const TDesC8& input, TPtr& output )
- {
- RDEBUG("0", 0);
- const TInt KBlockLength = 2;
- TInt blockIndex = 0;
- for ( TInt j = 0 ; j < input.Length() ; j++ )
- {
- if ( blockIndex == KBlockLength )
- {
- output.Append( KBlockSeparator );
- blockIndex = 0;
- }
- output.AppendNumFixedWidthUC( (TUint)(input[ j ]), EHex, 2 );
- ++blockIndex;
- }
- }
-
-
--- a/cpsecplugins/cpadvancedsecplugin/src/cpcertmanuisyncwrapper.cpp Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,777 +0,0 @@
-/*
-* Copyright (c) 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: Implements a synchronous wrapper for easier use of Symbian's
-* Security Frameworks's API's.
-*
-*/
-
-
-// INCLUDE FILES
-#include <unifiedcertstore.h>
-#include <unifiedkeystore.h>
-#include <mctwritablecertstore.h>
-#include <x509cert.h>
-#include <pkixcertchain.h>
-#include <../../inc/cpsecplugins.h>
-#include "cpcertmanuisyncwrapper.h"
-
-// CONSTANTS
-_LIT_SECURITY_POLICY_C1( KKeyStoreUsePolicy, ECapabilityReadUserData );
-// Maximum length of a certificate
-const TInt KMaxCertificateLength = 5000;
-const TInt KMaxKeyLength = 10000;
-
-// -----------------------------------------------------------------------------
-// CpCertManUISyncWrapper::ListL
-// -----------------------------------------------------------------------------
-//
-void CpCertManUISyncWrapper::ListL(
- CUnifiedCertStore*& aStore,
- RMPointerArray<CCTCertInfo>* aArray,
- const CCertAttributeFilter& aFilter,
- const TUid aTokenUid )
- {
- RDEBUG("0", 0);
- if ( IsActive() )
- {
- // Wrapper is active. Don't go further
- User::Leave(KErrGeneral);
- }
-
- TInt count = aStore->CertStoreCount();
- for ( TInt ii = 0; ii < count; ii++ )
- {
- MCTCertStore& certstore = aStore->CertStore( ii );
- MCTToken& token = certstore.Token();
- TUid tokenuid = token.Handle().iTokenTypeUid;
- if ( tokenuid == aTokenUid )
- {
- certstore.List( *aArray, aFilter, iStatus );
- iOperation = EOperationList;
- iStore = aStore;
- SetActive();
- iWait.Start();
- User::LeaveIfError( iStatus.Int() );
- break;
- }
- }
- iOperation = EOperationNone;
- }
-
-// -----------------------------------------------------------------------------
-// CpCertManUISyncWrapper::ListL
-// -----------------------------------------------------------------------------
-//
-void CpCertManUISyncWrapper::ListL(
- CUnifiedKeyStore*& aStore,
- RMPointerArray<CCTKeyInfo>* aArray,
- const TCTKeyAttributeFilter& aFilter )
- {
- RDEBUG("0", 0);
- if ( IsActive() )
- {
- // Wrapper is active. Don't go further
- User::Leave(KErrGeneral);
- }
-
- aStore->List( *aArray, aFilter, iStatus );
- iOperation = EOperationKeyList;
- iKeyStore = aStore;
- SetActive();
- iWait.Start();
- User::LeaveIfError( iStatus.Int() );
- iOperation = EOperationNone;
- }
-
-// -----------------------------------------------------------------------------
-// CpCertManUISyncWrapper::GetCertificateL
-// -----------------------------------------------------------------------------
-//
-void CpCertManUISyncWrapper::GetCertificateL( CUnifiedCertStore*& aStore,
- const CCTCertInfo& aCertInfo,
- CCertificate*& aCert,
- TUid aTokenUid )
- {
- aCert = NULL;
- RDEBUG("0", 0);
- HBufC8* buf = HBufC8::NewLC( KMaxCertificateLength );
- iCertPtr.Set( buf->Des() );
-
- TInt count = aStore->CertStoreCount();
- for (TInt i = 0; i < count; i++)
- {
- MCTCertStore& certstore = aStore->CertStore( i );
- MCTToken& token = certstore.Token();
- TUid tokenuid = token.Handle().iTokenTypeUid;
- if ( tokenuid == aTokenUid )
- {
- certstore.Retrieve( aCertInfo, iCertPtr, iStatus );
- iOperation = EGetCertificate;
- iStore = aStore;
- SetActive();
- iWait.Start();
- User::LeaveIfError( iStatus.Int() );
- break;
- }
- }
-
-
- switch ( aCertInfo.CertificateFormat() )
- {
- case EX509Certificate:
- {
- aCert = CX509Certificate::NewL( iCertPtr );
- break;
- }
- case EX509CertificateUrl:
- {
- break;
- }
- default:
- {
- break;
- }
- }
-
- CleanupStack::PopAndDestroy(buf);
- iOperation = EOperationNone;
-
- }
-
-// -----------------------------------------------------------------------------
-// CpCertManUISyncWrapper::DeleteCertL
-// -----------------------------------------------------------------------------
-//
-void CpCertManUISyncWrapper::DeleteCertL( CUnifiedCertStore*& aStore,
- const CCTCertInfo& aCertInfo )
- {
- RDEBUG("0", 0);
- aStore->Remove( aCertInfo, iStatus );
- iOperation = EOperationDelete;
- iStore = aStore;
- SetActive();
- iWait.Start();
- User::LeaveIfError( iStatus.Int() );
- iOperation = EOperationNone;
- }
-
-// -----------------------------------------------------------------------------
-// CpCertManUISyncWrapper::DeleteCertL
-// -----------------------------------------------------------------------------
-//
-void CpCertManUISyncWrapper::DeleteCertL( CUnifiedCertStore*& aStore,
- const CCTCertInfo& aCertInfo,
- TUid aTokenUid )
- {
- RDEBUG("0", 0);
- TInt count = aStore->WritableCertStoreCount();
- for (TInt i = 0; i < count; i++)
- {
- MCTWritableCertStore& writablestore = aStore->WritableCertStore( i );
- MCTToken& token = writablestore.Token();
- TUid tokenuid = token.Handle().iTokenTypeUid;
- if ( tokenuid == aTokenUid )
- {
- writablestore.Remove( aCertInfo, iStatus );
- iOperation = EOperationDelete;
- iStore = aStore;
- SetActive();
- iWait.Start();
- User::LeaveIfError( iStatus.Int() );
- break;
- }
- }
- iOperation = EOperationNone;
- }
-
-// ============================ MEMBER FUNCTIONS ===============================
-
-// -----------------------------------------------------------------------------
-// CpCertManUISyncWrapper::CpCertManUISyncWrapper()
-// C++ default constructor can NOT contain any code, that
-// might leave.
-// -----------------------------------------------------------------------------
-//
-CpCertManUISyncWrapper::CpCertManUISyncWrapper() : CActive( EPriorityStandard ), iCertPtr(0,0)
- {
- CActiveScheduler::Add( this );
- }
-
-// -----------------------------------------------------------------------------
-// CpCertManUISyncWrapper::ConstructL()
-// Symbian 2nd phase constructor can leave.
-// -----------------------------------------------------------------------------
-//
-void CpCertManUISyncWrapper::ConstructL()
- {
- }
-
-
-// -----------------------------------------------------------------------------
-// CpCertManUISyncWrapper::NewLC
-// Two-phased constructor.
-// -----------------------------------------------------------------------------
-//
-CpCertManUISyncWrapper* CpCertManUISyncWrapper::NewLC()
- {
- CpCertManUISyncWrapper* wrap = new ( ELeave ) CpCertManUISyncWrapper();
- CleanupStack::PushL( wrap );
- wrap->ConstructL();
- return wrap;
- }
-
-// -----------------------------------------------------------------------------
-// CpCertManUISyncWrapper::NewL
-// Two-phased constructor.
-// -----------------------------------------------------------------------------
-//
-CpCertManUISyncWrapper* CpCertManUISyncWrapper::NewL()
- {
- CpCertManUISyncWrapper* wrap = CpCertManUISyncWrapper::NewLC();
- CleanupStack::Pop(wrap);
- return wrap;
- }
-
-// Destructor
-CpCertManUISyncWrapper::~CpCertManUISyncWrapper()
- {
- }
-
-// -----------------------------------------------------------------------------
-// CpCertManUISyncWrapper::RunL
-// If no errors happened, stop. Show an error note if needed.
-// -----------------------------------------------------------------------------
-//
-
-void CpCertManUISyncWrapper::RunL()
- {
- RDEBUG("0", 0);
- if ( iWait.IsStarted() )
- {
- iWait.AsyncStop();
- }
-
- }
-
-// -----------------------------------------------------------------------------
-// CpCertManUISyncWrapper::DoCancel
-// Cancels the ongoing operation if possible.
-// -----------------------------------------------------------------------------
-//
-void CpCertManUISyncWrapper::DoCancel()
- {
- RDEBUG("iOperation", iOperation);
- switch ( iOperation )
- {
- case EOperationInit:
- {
- iStore->CancelInitialize();
- break;
- }
- case EOperationList:
- {
- iStore->CancelList();
- break;
- }
- case EGetCertificate:
- {
- iStore->CancelRetrieve();
- break;
- }
- case EAddCertificate:
- {
- iStore->Cancel();
- break;
- }
- case ERetriveURLCertificate:
- {
- iStore->CancelRetrieve();
- break;
- }
- case EOperationDelete:
- {
- iStore->CancelRemove();
- break;
- }
- case EOperationGetApps:
- {
- iStore->CancelApplications();
- break;
- }
- case EOperationValidateX509Root:
- {
- iChain->CancelValidate();
- break;
- }
- case EShowErrorNote:
- {
- break;
- }
- case EOperationInitKeyStore:
- {
- iKeyStore->CancelInitialize();
- break;
- }
- case EOperationKeyList:
- {
- iKeyStore->CancelList();
- break;
- }
- case EOperationExportKey:
- {
- iKeyStore->CancelExportKey();
- break;
- }
- case EOperationImportKey:
- {
- iKeyStore->CancelImportKey();
- break;
- }
- case EOperationDeleteKey:
- {
- iKeyStore->CancelDeleteKey();
- break;
- }
- default:
- {
- break;
- }
- }
- }
-
-// -----------------------------------------------------------------------------
-// CpCertManUISyncWrapper::InitStoreL
-// -----------------------------------------------------------------------------
-//
-void CpCertManUISyncWrapper::InitStoreL( CUnifiedCertStore*& aStore )
- {
- aStore->Initialize( iStatus );
- iOperation = EOperationInit;
- iStore = aStore;
- SetActive();
- iWait.Start();
- User::LeaveIfError( iStatus.Int() );
- iOperation = EOperationNone;
- }
-
-// -----------------------------------------------------------------------------
-// CpCertManUISyncWrapper::InitStoreL
-// -----------------------------------------------------------------------------
-//
-void CpCertManUISyncWrapper::InitStoreL( CUnifiedKeyStore*& aStore )
- {
- aStore->Initialize( iStatus );
- iOperation = EOperationInitKeyStore;
- iKeyStore = aStore;
- SetActive();
- iWait.Start();
- User::LeaveIfError( iStatus.Int() );
- iOperation = EOperationNone;
- }
-
-// -----------------------------------------------------------------------------
-// CpCertManUISyncWrapper::ListL
-// -----------------------------------------------------------------------------
-//
-void CpCertManUISyncWrapper::ListL(
- CUnifiedCertStore*& aStore,
- RMPointerArray<CCTCertInfo>* aArray,
- const CCertAttributeFilter& aFilter )
- {
-
- if ( IsActive() )
- {
- // Wrapper is active. Don't go further
- User::Leave(KErrGeneral);
- }
-
- aStore->List( *aArray, aFilter, iStatus );
- iOperation = EOperationList;
- iStore = aStore;
- SetActive();
- iWait.Start();
- User::LeaveIfError( iStatus.Int() );
- iOperation = EOperationNone;
- }
-
-// -----------------------------------------------------------------------------
-// CpCertManUISyncWrapper::ListL
-// -----------------------------------------------------------------------------
-//
-void CpCertManUISyncWrapper::ListL(
- CUnifiedKeyStore*& aStore,
- RMPointerArray<CCTKeyInfo>* aArray,
- const TCTKeyAttributeFilter& aFilter,
- const TUid aTokenUid )
- {
-
- if ( IsActive() )
- {
- // Wrapper is active. Don't go further
- User::Leave(KErrGeneral);
- }
-
- TInt count = aStore->KeyStoreManagerCount();
- for ( TInt ii = 0; ii < count; ii++ )
- {
- MCTKeyStoreManager& keystoremanager = aStore->KeyStoreManager( ii );
- MCTToken& token = keystoremanager.Token();
- TUid tokenuid = token.Handle().iTokenTypeUid;
- if ( tokenuid == aTokenUid )
- {
- keystoremanager.List( *aArray, aFilter, iStatus );
- iOperation = EOperationKeyList;
- iKeyStore = aStore;
- SetActive();
- iWait.Start();
- User::LeaveIfError( iStatus.Int() );
- break;
- }
- }
- iOperation = EOperationNone;
- }
-
-// -----------------------------------------------------------------------------
-// CpCertManUISyncWrapper::GetCertificateL
-// -----------------------------------------------------------------------------
-//
-void CpCertManUISyncWrapper::GetCertificateL(
- CUnifiedCertStore*& aStore,
- const CCTCertInfo& aCertInfo,
- CCertificate*& aCert )
- {
- aCert = NULL;
- HBufC8* buf = HBufC8::NewLC( KMaxCertificateLength );
- iCertPtr.Set( buf->Des() );
- aStore->Retrieve( aCertInfo, iCertPtr, iStatus);
- iOperation = EGetCertificate;
- iStore = aStore;
- SetActive();
- iWait.Start();
- User::LeaveIfError( iStatus.Int() );
-
- switch ( aCertInfo.CertificateFormat() )
- {
- case EX509Certificate:
- {
- aCert = CX509Certificate::NewL( iCertPtr );
- break;
- }
- case EX509CertificateUrl:
- {
- break;
- }
- default:
- {
- break;
- }
- }
- CleanupStack::PopAndDestroy(buf);
- iOperation = EOperationNone;
- }
-
-// -----------------------------------------------------------------------------
-// CpCertManUISyncWrapper::ValidateX509RootCertificateL
-// -----------------------------------------------------------------------------
-//
-void CpCertManUISyncWrapper::ValidateX509RootCertificateL(
- CPKIXValidationResult*& aValidationResult,
- const TTime& aValidationTime, CPKIXCertChain*& aChain )
- {
-
- aChain->ValidateL( *aValidationResult, aValidationTime, iStatus );
- iOperation = EOperationValidateX509Root;
- iChain = aChain;
- SetActive();
- iWait.Start();
- iOperation = EOperationNone;
- User::LeaveIfError(iStatus.Int());
- }
-
-// -----------------------------------------------------------------------------
-// CpCertManUISyncWrapper::GetUrlCertificateL
-// -----------------------------------------------------------------------------
-//
-void CpCertManUISyncWrapper::GetUrlCertificateL(
- CUnifiedCertStore*& aStore,
- const CCTCertInfo& aCertInfo,
- TDes8& aUrl )
- {
-
- aStore->Retrieve( aCertInfo, aUrl, iStatus);
- iOperation = ERetriveURLCertificate;
- iStore = aStore;
- SetActive();
- iWait.Start();
- User::LeaveIfError( iStatus.Int() );
- iOperation = EOperationNone;
- }
-
-// -----------------------------------------------------------------------------
-// CpCertManUISyncWrapper::GetApplicationsL
-// -----------------------------------------------------------------------------
-//
-void CpCertManUISyncWrapper::GetApplicationsL( CUnifiedCertStore*& aStore,
- const CCTCertInfo& aCertInfo, RArray<TUid>& aApps )
- {
-
- aStore->Applications( aCertInfo, aApps, iStatus );
- iOperation = EOperationGetApps;
- iStore = aStore;
- SetActive();
- iWait.Start();
- User::LeaveIfError( iStatus.Int() );
- iOperation = EOperationNone;
- }
-
-// -----------------------------------------------------------------------------
-// CpCertManUISyncWrapper::SetApplicabilityL
-// -----------------------------------------------------------------------------
-//
-void CpCertManUISyncWrapper::SetApplicabilityL( CUnifiedCertStore*& aStore,
- const CCTCertInfo& aCertInfo,
- RArray<TUid>& aApplications )
- {
-
- aStore->SetApplicability( aCertInfo, aApplications, iStatus );
- iOperation = EOperationSetApplicability;
- iStore = aStore;
- SetActive();
- iWait.Start();
- User::LeaveIfError( iStatus.Int() );
- aStore->SetTrust( aCertInfo, ETrue, iStatus );
- iOperation = EOperationSetToTrusted;
- SetActive();
- iWait.Start();
- User::LeaveIfError( iStatus.Int() );
- iOperation = EOperationNone;
- }
-
-// -----------------------------------------------------------------------------
-// CpCertManUISyncWrapper::MoveKeyL
-// -----------------------------------------------------------------------------
-//
-void CpCertManUISyncWrapper::MoveKeyL(
- CUnifiedKeyStore*& aStore,
- const TCTKeyAttributeFilter& aFilter,
- const TUid aSourceTokenId,
- const TUid aTargetTokenId )
- {
-
- TInt sourceIndex(-1);
- TInt targetIndex(-1);
-
- // Find the index of key stores
- TInt count = aStore->KeyStoreManagerCount();
-
- for (TInt ii = 0; ii < count; ii++)
- {
- MCTKeyStoreManager& keystoremanager = aStore->KeyStoreManager( ii );
- MCTToken& token = keystoremanager.Token();
- TUid tokenuid = token.Handle().iTokenTypeUid;
-
- if ( tokenuid == aSourceTokenId )
- {
- sourceIndex = ii;
- }
-
- if ( tokenuid == aTargetTokenId )
- {
- targetIndex = ii;
- }
- }
-
- if (( sourceIndex == -1 ) || ( targetIndex == -1 ))
- {
- // Key store(s) doesn't exist
- User::Leave( KErrNotFound );
- }
-
- RMPointerArray<CCTKeyInfo> keyEntries;
-
- MCTKeyStoreManager& sourcekeystore =
- aStore->KeyStoreManager( sourceIndex );
-
- MCTKeyStoreManager& targetkeystore =
- aStore->KeyStoreManager( targetIndex );
-
-
- ListL( aStore, &keyEntries, aFilter, aSourceTokenId );
-
- // Go through all matching keys and move them to
- // target store
- for ( TInt ii = 0; ii < keyEntries.Count(); ii++ )
- {
- HBufC8* keyData = HBufC8::NewLC( KMaxKeyLength );
-
- // Retrieve key from source key store
- sourcekeystore.ExportKey( (*keyEntries[ii]).Handle(), keyData, iStatus );
- iOperation = EOperationExportKey;
- SetActive();
- iWait.Start();
- User::LeaveIfError( iStatus.Int() );
-
- TCTTokenObjectHandle sourceKeyHandle = (*keyEntries[ii]).Handle();
-
- // Import key to target key store
-
- // If key info access type indicates that key is local, then importing is
- // not possible. The following is the workarround. Almost identical
- // copy of keyinfo is created without CCTKeyInfo::ELocal access type flag.
- // UsePolicy is also updated
- TInt accessType = (*keyEntries[ii]).AccessType();
- if ( accessType & CCTKeyInfo::ELocal )
- {
- // CCTKeyInfo::ELocal is set in key info
- HBufC* label = (*keyEntries[ii]).Label().AllocLC();
-
- // The following XOR operation will clear local bit if it is on.
- accessType ^= CCTKeyInfo::ELocal;
-
- CCTKeyInfo* keyInfo = CCTKeyInfo::NewL( (*keyEntries[ii]).ID(),
- (*keyEntries[ii]).Usage(),
- (*keyEntries[ii]).Size(),
- NULL,
- label,
- (*keyEntries[ii]).Token(),
- (*keyEntries[ii]).HandleID(),
- KKeyStoreUsePolicy,
- (*keyEntries[ii]).ManagementPolicy(),
- (*keyEntries[ii]).Algorithm(),
- accessType,
- (*keyEntries[ii]).Native(),
- (*keyEntries[ii]).StartDate(),
- (*keyEntries[ii]).EndDate() );
-
- CleanupStack::Pop(label);
- targetkeystore.ImportKey( *keyData, keyInfo, iStatus );
- }
- else
- {
- targetkeystore.ImportKey( *keyData, keyEntries[ii], iStatus );
- }
-
- iOperation = EOperationImportKey;
- SetActive();
- iWait.Start();
- User::LeaveIfError( iStatus.Int() );
-
- // Delete key from source key store
- sourcekeystore.DeleteKey( sourceKeyHandle, iStatus );
- iOperation = EOperationDeleteKey;
- SetActive();
- iWait.Start();
- User::LeaveIfError( iStatus.Int() );
-
- CleanupStack::PopAndDestroy(keyData);
- }
-
- }
-
-// -----------------------------------------------------------------------------
-// CpCertManUISyncWrapper::MoveCertL
-// -----------------------------------------------------------------------------
-//
-TInt CpCertManUISyncWrapper::MoveCertL(
- CUnifiedCertStore*& aStore,
- const CCTCertInfo& aCertInfo,
- const TUid aSourceTokenId,
- const TUid aTargetTokenId )
- {
-
- TInt sourceIndex(-1);
- TInt targetIndex(-1);
- TInt certCount (0);
-
- // Find the index of certificate stores
- TInt count = aStore->WritableCertStoreCount();
- for (TInt ii = 0; ii < count; ii++)
- {
- MCTWritableCertStore& writablestore = aStore->WritableCertStore( ii );
- MCTToken& token = writablestore.Token();
- TUid tokenuid = token.Handle().iTokenTypeUid;
-
- if ( tokenuid == aSourceTokenId )
- {
- sourceIndex = ii;
- }
-
- if ( tokenuid == aTargetTokenId )
- {
- targetIndex = ii;
- }
- }
-
- if (( sourceIndex == -1 ) || ( targetIndex == -1 ))
- {
- // Certificate store(s) doesn't exist
- User::Leave( KErrNotFound );
- }
-
-
- MCTWritableCertStore& sourcewritablestore =
- aStore->WritableCertStore( sourceIndex );
-
- // All of the certificates that are associated with same
- // private key will be moved to target certificate store.
- CCertAttributeFilter* filter = CCertAttributeFilter::NewL();
- filter->SetOwnerType( EUserCertificate );
- filter->SetSubjectKeyId( aCertInfo.SubjectKeyId() );
- RMPointerArray<CCTCertInfo> certEntries;
-
- // List certificates from source certificate store
- ListL( aStore, &certEntries, *filter, aSourceTokenId );
-
- delete filter;
-
- for ( TInt ii = 0; ii < certEntries.Count(); ii++ )
- {
- // Retrieve certificate from source certificate store
- HBufC8* buf = HBufC8::NewLC( KMaxCertificateLength );
- iCertPtr.Set( buf->Des() );
- sourcewritablestore.Retrieve( *certEntries[ii], iCertPtr, iStatus );
- iOperation = EGetCertificate;
- SetActive();
- iWait.Start();
- User::LeaveIfError( iStatus.Int() );
-
- // Add certificate to target certificate store
- MCTWritableCertStore& targetwritablestore =
- aStore->WritableCertStore( targetIndex );
-
- targetwritablestore.Add( (*certEntries[ii]).Label(), EX509Certificate,
- EUserCertificate, &((*certEntries[ii]).SubjectKeyId()),
- &((*certEntries[ii]).IssuerKeyId()), *buf, iStatus );
-
- iOperation = EAddCertificate;
- SetActive();
- iWait.Start();
- User::LeaveIfError( iStatus.Int() );
-
- // Delete certificate from source certificate store
- sourcewritablestore.Remove( *certEntries[ii], iStatus );
- iOperation = EOperationDelete;
- iStore = aStore;
- SetActive();
- iWait.Start();
- User::LeaveIfError( iStatus.Int() );
- iOperation = EOperationNone;
- certCount++;
- CleanupStack::PopAndDestroy(buf);
- }
-
- return certCount;
- }
-
-
--- a/cpsecplugins/cpadvancedsecplugin/src/cpcertpluginloader.cpp Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,53 +0,0 @@
-/*
- * Copyright (c) 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:
- *
- */
-
-#include <cpsettingformentryitemdataimpl.h>
-
-#include "cpcertpluginloader.h"
-#include "cpsecurityview.h"
-#include <hbapplication.h>
-#include <../../inc/cpsecplugins.h>
-
-CpCertPluginLoader::CpCertPluginLoader()
- {
- RDEBUG("0", 0);
- mTranslator = q_check_ptr( new QTranslator());
- QString path = "z:/resource/qt/translations/";
- QString appName = "certificate_manager_";
- QString lang = QLocale::system().name();
- mTranslator->load(path + appName + lang);
- qApp->installTranslator(mTranslator);
- }
-
-CpCertPluginLoader::~CpCertPluginLoader()
- {
- if (mTranslator)
- {
- if (mTranslator->isEmpty() == false)
- qApp->removeTranslator(mTranslator);
- delete mTranslator;
- }
- }
-
-QList<CpSettingFormItemData*> CpCertPluginLoader::createSettingFormItemData(CpItemDataHelper &itemDataHelper) const
- {
- RDEBUG("0", 0);
- return QList<CpSettingFormItemData*>()
- << new CpSettingFormEntryItemDataImpl<CpSecurityView>(itemDataHelper,tr("Advanced Security"), QString());
- }
-
-Q_EXPORT_PLUGIN2(cpcertpluginloader, CpCertPluginLoader);
--- a/cpsecplugins/cpadvancedsecplugin/src/cpcerttrustview.cpp Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,379 +0,0 @@
-/*
-* Copyright (c) 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: Implementation of class CCertManUIContainerTrust.
-* Maintains correct list of trusted clients depending
-* on the certificate that was in focus in Authority
-* certificates view when Trust Settings view was entered.
-* Shows and changes correct Yes/No text for the Trusted client.
-*
-*/
-
-// INCLUDE FILES
-#include <certificateapps.h>
-#include <mctcertapps.h>
-#include <mctcertstore.h>
-
-#include <QGraphicsLinearLayout>
-#include <QString>
-#include <QList>
-
-#include <hbdataform.h>
-#include <hbdataformmodel.h>
-#include <hbdataformmodelitem.h>
-#include <hblistwidgetitem.h>
-#include <hblistwidget.h>
-
-#include <memory>
-#include <../../inc/cpsecplugins.h>
-#include "cpcerttrustview.h"
-#include "cpcertdatacontainer.h"
-#include "cpcertmanuisyncwrapper.h"
-#include "cpuitrustids.h"
-
-const TInt KMidpCertStoreUid = 0x101F5B71;
-
-// ============================= LOCAL FUNCTIONS ===============================
-
-// ================= MEMBER FUNCTIONS =======================
-
-CpCertTrustView::CpCertTrustView( TInt certificateIndex, CpCertDataContainer& certDataContainer, QGraphicsItem *parent /*= 0*/)
- : CpBaseSettingView(0,parent), mCertDataContainer(certDataContainer), mCertificateIndex(certificateIndex)
- {
- setTitle(tr("Trust Settings"));
- viewTrustSettings();
- }
-
-// ---------------------------------------------------------
-// CpCertTrustView::~CpCertTrustView()
-// Destructor
-// ---------------------------------------------------------
-//
-CpCertTrustView::~CpCertTrustView()
- {
- delete mAppInfoManager;
- mClientUids.Close();
- delete mFormModel;
- mTrustedClients.erase(mTrustedClients.begin(), mTrustedClients.end());
- mTrustValues.erase(mTrustValues.begin(), mTrustValues.end());
- }
-
-
-void CpCertTrustView::viewTrustSettings()
- {
- RDEBUG("0", 0);
- mTrustedClients << " \tWAP connection\t\t";
- mTrustedClients << " \tMail and Image conn.\t\t";
- mTrustedClients << " \tNative installing\t\t";
- mTrustedClients << " \tJava installing\t\t";
- mTrustedClients << " \tOCSP validation\t\t";
- mTrustedClients << " \tVPN\t\t";
- mTrustedClients << " \tWidget Installation\t\t";
-
- mTrustValues << "On";
- mTrustValues << "Off";
-
- try
- {
- QT_TRAP_THROWING( mAppInfoManager =
- CCertificateAppInfoManager::NewL( mCertDataContainer.iRfs, EFalse );
- updateListBoxL();)
- }
- catch(std::exception& exception)
- {
- QString error(exception.what());
- QT_TRAP_THROWING( mCertDataContainer.ShowErrorNoteL( error.toInt()) );
- throw(exception);
- }
- }
-
-
-// ---------------------------------------------------------------------------
-// CpCertTrustView::UpdateListBoxL()
-// Puts correct Trust Settings text to listbox and correct value (yes/no)
-// to the setting, asks the value from CheckCertificateClientTrust
-// For X509 certificates, only one Application is currently supported
-// (Application controller), more applications maybe added later however,
-// so one additional application has been left in comments as an example.
-// WAP connection and Application installer have their names from resources
-// and thus localized, other additional application get their names from
-// TCertificateAppInfo's Name() function.
-// ---------------------------------------------------------------------------
-//
-
-void CpCertTrustView::updateListBoxL()
- {
- RDEBUG("0", 0);
- mClientUids.Reset();
-
- TInt clientCount = 0;
-
- // Use certificate index from previous view
- CCTCertInfo* entry = mCertDataContainer.iCALabelEntries[ mCertificateIndex ]->iCAEntry;
-
- // Here MCTCertApps should be used to get client options, but it is not properly
- // supported in any cert store. It should be possible to get the MCTCertApps
- // through token's GetInterface function.
- if ( entry->Token().TokenType().Type() == TUid::Uid( KTokenTypeFileCertstore ) )
- {
- if ( !mAppInfoManager )
- {
- User::Leave( KErrArgument );
- }
- RArray<TCertificateAppInfo> apps;
- apps = mAppInfoManager->Applications();
- for ( TInt i = 0; i < apps.Count(); i++ )
- {
- if ( apps[i].Id() != KCertManUIViewTrustJavaInstallingId &&
- apps[i].Id() != KCertManUIViewTrustApplicationControllerId )
- {
- mClientUids.Append( apps[i].Id() );
- }
- }
- }
- else
- {
- mCertDataContainer.iWrapper->GetApplicationsL(
- mCertDataContainer.CertManager(), *entry, mClientUids );
- }
-
- // This is needed because MIDPCertStore does not support MCTCertApps
- if ( mClientUids.Count() == 0 &&
- entry->Token().TokenType().Type() == TUid::Uid( KMidpCertStoreUid ) )
- {
- mClientUids.Append( KCertManUIViewTrustJavaInstallingId );
- }
-
- if ( EX509Certificate != entry->CertificateFormat() )
- {
- return;
- }
- TInt resIndex = KErrNotFound;
- QList <int> itemArray;
- QList <int> trustValue;
- clientCount = mClientUids.Count();
- if ( clientCount > 0 )
- {
- for ( TInt k = 0; k < clientCount; k++ )
- {
- resIndex = trustIdIndex( mClientUids[k] );
- if ( resIndex == KErrNotFound )
- {
- continue;
- }
-
- // based on the trust list update the array
- TBool trustState = EFalse;
- QString item = mTrustedClients[ resIndex ];
- trustState = checkCertificateClientTrustL( mClientUids[k], *entry );
- // insert the index which would be used to retrieve the value from mTrustedClients
- itemArray.insert(k,resIndex);
-
- if ( trustState )
- {
- trustValue.insert(k,1);
- }
- else
- {
- trustValue.insert(k,0);
- }
- }
- }
- // display the list
- QGraphicsLinearLayout *layout = new QGraphicsLinearLayout(Qt::Vertical);
- setLayout(layout);
- std::auto_ptr<HbDataForm> form(new HbDataForm());
- mFormModel = new HbDataFormModel();
-
- HbListWidget* mCertLabelList = new HbListWidget(this);
- std::auto_ptr<HbListWidgetItem> certLabel(q_check_ptr(new HbListWidgetItem()));
- const TDesC& label = entry->Label();
- certLabel->setText(QString( (QChar*)label.Ptr(),label.Length() ) );
- mCertLabelList->addItem(certLabel.get());
- certLabel.release();
-
- RDEBUG("0", 0);
-
- int count = itemArray.size();
- for( int index = 0 ;index < count; ++index)
- {
- std::auto_ptr<HbDataFormModelItem> item (q_check_ptr(new HbDataFormModelItem(
- HbDataFormModelItem::ToggleValueItem,
- mTrustedClients[itemArray[index]] ) ));
-
- if( trustValue[index] == 1)
- {
- item->setContentWidgetData("text",mTrustValues[0]);
- item->setContentWidgetData("additionalText",mTrustValues[1]);
- }
- else
- {
- item->setContentWidgetData("text",mTrustValues[1]);
- item->setContentWidgetData("additionalText",mTrustValues[0]);
- }
- mFormModel->appendDataFormItem(item.get());
- item.release();
- }
-
- form->setModel(mFormModel);
- layout->addItem(mCertLabelList);
- layout->addItem(form.get());
- form.release();
- }
-
-
-void CpCertTrustView::saveTrustSettings()
- {
- RDEBUG("0", 0);
- CCTCertInfo& entry = *( mCertDataContainer.iCALabelEntries[ mCertificateIndex ]->iCAEntry );
- if ( entry.IsDeletable() )
- {
- TInt itemCount = mFormModel->rowCount();
- RArray<TUid> newUids;
- QT_TRAP_THROWING
- (
- CleanupClosePushL( newUids );
-
- for(int index = 0;index<itemCount;++index)
- {
- HbDataFormModelItem *item = mFormModel->item(index);
- QString trustValue = item->contentWidgetData("text").toString();
- if(trustValue == "On")
- {
- newUids.Append(trusterId(mTrustedClients[index]));
- }
- }
- if(newUids.Count() > 0 )
- {
- mCertDataContainer.iWrapper->SetApplicabilityL( mCertDataContainer.CertManager(), entry, newUids );
- }
- CleanupStack::PopAndDestroy(&newUids);
- )
- }
- }
-
-TUid CpCertTrustView::trusterId(const QString& clientDescription) const
- {
- RDEBUG("0", 0);
- TUid retValue = TUid::Uid(0);
- if( clientDescription == " \tWAP connection\t\t" )
- retValue = KCertManUIViewTrustWapConnectionId;
- else if( clientDescription == " \tMail and Image conn.\t\t" )
- retValue = KCertManUIViewTrustMailAndImageConnId;
- else if( clientDescription == " \tNative installing\t\t" )
- retValue = KCertManUIViewTrustApplicationControllerId;
- else if( clientDescription == " \tJava installing\t\t" )
- retValue = KCertManUIViewTrustJavaInstallingId;
- else if( clientDescription == " \tOCSP validation\t\t" )
- retValue = KCertManUIViewOCSPCheckInstallingId;
- else if( clientDescription == " \tVPN\t\t" )
- retValue = KCertManUIViewTrustVPNId;
- else if( clientDescription == " \tWidget Installation\t\t" )
- retValue = KCertManUIViewTrustWidgetInstallId;
- return retValue;
- }
-
-// ---------------------------------------------------------------------------
-// CpCertTrustView::trustIdIndex( TUid trustUid )
-// ---------------------------------------------------------------------------
-//
-TInt CpCertTrustView::trustIdIndex( TUid trustUid ) const
- {
- RDEBUG("0", 0);
- TInt resIndex = KErrNotFound;
-
- if ( trustUid == KCertManUIViewTrustApplicationControllerId )
- {
- resIndex = KTrustSettingsResourceIndexAppCtrl;
- }
- else if( trustUid == KCertManUIViewTrustWapConnectionId )
- {
- resIndex = KTrustSettingsResourceIndexWAP;
- }
- else if ( trustUid == KCertManUIViewTrustMailAndImageConnId )
- {
- resIndex = KTrustSettingsResourceIndexMailAndImageConn;
- }
- else if ( trustUid == KCertManUIViewTrustJavaInstallingId )
- {
- resIndex = KTrustSettingsResourceIndexJavaInstall;
- }
- else if ( trustUid == KCertManUIViewOCSPCheckInstallingId )
- {
- resIndex = KTrustSettingsResourceIndexOCSPCheck;
- }
- else if ( trustUid == KCertManUIViewTrustVPNId )
- {
- resIndex = KTrustSettingsResourceIndexVPN;
- }
- else if ( trustUid == KCertManUIViewTrustWidgetInstallId )
- {
- resIndex = KTrustSettingsResourceIndexWidget;
- }
- return resIndex;
- }
-
-
-// ---------------------------------------------------------------------------
-// CpCertTrustView::CheckCertificateClientTrustL(const TUid aClientTUid,
-// CCTCertInfo& aEntry) const
-// Checks if a certificate trusts a client
-// * Certificate format == ECrX509Certificate ECrX968Certificate ECrCertificateURL
-// are not supported if certificate location == ECrCertLocationWIMCard
-// * Certificate format == ECrX968Certificate ECrCertificateURL are not supported
-// if certificate location == ECrCertLocationCertMan
-// * Certificate location == ECrCertLocationWIMURL ECrCertLocationPhoneMemory
-// ECrCertLocationPhoneMemoryURL are not supported
-// ---------------------------------------------------------------------------
-//
-TBool CpCertTrustView::checkCertificateClientTrustL(
- const TUid clientUid, const CCTCertInfo& entry ) const
- {
- RDEBUG("0", 0);
- TBool trustSettingTrusted = EFalse;
- TCertificateFormat format = entry.CertificateFormat();
-
- if ( format == EX509Certificate )
- {
-
- RArray<TUid> trusterUids;
- CleanupClosePushL( trusterUids );
-
- //Owned by mCertDataContainer.
- CUnifiedCertStore*& store = mCertDataContainer.CertManager();
- // Get trusting applications' Uids for the one selected
- // certificate entry
- mCertDataContainer.iWrapper->GetApplicationsL( store, entry, trusterUids );
-
- // get the number of trusting applications for one
- // selected certificate entry
- TInt trusterCount = trusterUids.Count();
- // in this loop, for every trusting application in one
- // selected certificate entry
- for ( TInt i = 0; i < trusterCount; ++i )
- {
- // put the trusting application's Uid to TUid truster
- if ( clientUid == trusterUids[i] )
- {
- trustSettingTrusted = ETrue;
- break;
- }
- }
- CleanupStack::PopAndDestroy(&trusterUids);
- }
-
- return trustSettingTrusted;
- }
-
-// End of File
-
--- a/cpsecplugins/cpadvancedsecplugin/src/cpcertview.cpp Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,922 +0,0 @@
-/*
-* Copyright (c) 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:
-*
-*/
-
-#include <QStringList>
-#include <QGraphicsLinearLayout>
-#include <QModelIndex>
-
-#include <hblineedit.h>
-#include <hbdataform.h>
-#include <hbdataformmodel.h>
-#include <hbdataformmodelitem.h>
-#include <hblabel.h>
-#include <hbpushbutton.h>
-#include <hbmenu.h>
-#include <hbaction.h>
-#include <HbListWidget>
-#include <HbListWidgetItem>
-#include <HbGroupBox>
-#include <hbpushbutton.h>
-#include <hbdataform.h>
-#include <hbdataformmodel.h>
-#include <hbdataformmodelitem.h>
-#include <hbabstractviewitem.h>
-#include <hbtextitem.h>
-#include <hbmainwindow.h>
-#include <hblistview.h>
-#include <QStandardItemModel>
-#include <QModelIndexList>
-#include <hbmessagebox.h>
-#include <memory>
-#include <../../inc/cpsecplugins.h>
-#include "cpcertdetailview.h"
-#include "cpcertview.h"
-#include "cpcertdatacontainer.h"
-#include "cpcerttrustview.h"
-#include "cpcertmanuisyncwrapper.h"
-
-
-CpCertView::CpCertView(const QModelIndex& modelIndex, QGraphicsItem *parent /*= 0*/)
- : CpBaseSettingView(0,parent),
- mPopup(NULL),
- mPrevView(NULL),
- mCurrentView(NULL),
- mRefreshedView(NULL),
- mListView(NULL),
- mSelectAllView(NULL),
- mOriginalView(NULL),
- mNote(NULL)
- {
- RDEBUG("0", 0);
- mOriginalView = mainWindow()->currentView();
-
- HbMenu* menu = this->menu();
- std::auto_ptr<HbAction> deleteAction(new HbAction(hbTrId("txt_common_menu_delete")));
- connect(deleteAction.get(), SIGNAL(triggered()), this, SLOT(deleteList()));
- menu->addAction(deleteAction.get());
- deleteAction.release();
-
- std::auto_ptr<QGraphicsLinearLayout> layout(new QGraphicsLinearLayout(Qt::Vertical));
-
- HbDataForm *form = q_check_ptr(new HbDataForm(this));
- std::auto_ptr<HbDataFormModel> formModel(q_check_ptr(new HbDataFormModel()));
- form->setModel(formModel.get());
- formModel.release();
-
- HbListWidget* certificateList = q_check_ptr(new HbListWidget(this));
-
- CpCertView::TCertificateViews currentView = (CpCertView::TCertificateViews)modelIndex.row();
- QString title;
- if(currentView == EPersonalView)
- {
- title = "Move to Device";
- }
- else if(currentView == EDeviceView)
- {
- title = "Move to Personal";
- }
- RDEBUG("0", 0);
- if(currentView == EPersonalView || currentView == EDeviceView)
- {
- std::auto_ptr<HbAction> moveToDeviceAction(q_check_ptr(new HbAction(title)));
- connect(moveToDeviceAction.get(), SIGNAL(triggered()), this, SLOT(moveCert()));
- menu->addAction(moveToDeviceAction.get());
- moveToDeviceAction.release();
- }
-
- setDetails(currentView);
- TInt count = 0;
- try
- {
- QT_TRAP_THROWING(mCertDataContainer = CpCertDataContainer::NewL());
- QT_TRAP_THROWING(count = refreshListL());
- }
- catch(const std::exception& exception)
- {
- HbMessageBox::information(exception.what());
- throw(exception);
- }
- RDEBUG("0", 0);
- for(int index = 0; index< count; index++)
- {
- QString certificateLabel = certLabel(index);
- std::auto_ptr<HbListWidgetItem> singleCert(q_check_ptr(new HbListWidgetItem()));
- singleCert->setText(certificateLabel);
- certificateList->addItem(singleCert.get());
- singleCert.release();
- } // End of FOR loop
-
- connect(certificateList, SIGNAL(activated(QModelIndex)), this, SLOT(openCertFromList(QModelIndex)));
- connect(certificateList, SIGNAL(longPressed(HbAbstractViewItem*, QPointF )), this, SLOT(indicateLongPress(HbAbstractViewItem*, QPointF)));
-
- layout->addItem(certificateList);
- setLayout(layout.get());
- layout.release();
-
- mPopup = q_check_ptr(new HbDialog());
- mContextMenu = q_check_ptr(new HbMenu());
-
- RDEBUG("0", 0);
- }
-
-CpCertView::~CpCertView()
- {
- delete mCertDataContainer;
- mCertDataContainer = NULL;
- RDEBUG("0", 0);
- if(mPrevView)
- {
- mPrevView->deleteLater();
- mPrevView= NULL;
- }
- if(mCurrentView)
- {
- mCurrentView->deleteLater();
- mCurrentView= NULL;
- }
- if(mRefreshedView)
- {
- mRefreshedView->deleteLater();
- mRefreshedView= NULL;
- }
- if(mListView)
- {
- mListView->deleteLater();
- mListView= NULL;
- }
-
- if(mSelectAllView)
- {
- mSelectAllView->deleteLater();
- mSelectAllView = NULL;
- }
-
- mSelectionIndex.Close();
-
- mIndexList.Close();
-
- delete mPopup;
-
- delete mNote;
- mNote = NULL;
-
- delete mContextMenu;
-
- }
-
-void CpCertView::setDetails(CpCertView::TCertificateViews currentView)
- {
- RDEBUG("0", 0);
- switch(currentView)
- {
- case EAuthorityView:
- setTitle(hbTrId("txt_certificate_manager_list_authority_certificate"));
- mCertView = EAuthorityView;
- break;
-
- case ETrustedView:
- setTitle(hbTrId("txt_certificate_manager_list_trusted_site_certific"));
- mCertView = ETrustedView;
- break;
-
- case EPersonalView:
- setTitle(hbTrId("txt_certificate_manager_list_personal_certificates"));
- mCertView = EPersonalView;
- break;
-
- case EDeviceView:
- setTitle(hbTrId("txt_certificate_manager_list_device_certificates"));
- mCertView = EDeviceView;
- break;
- }
- }
-
-void CpCertView::indicateLongPress(HbAbstractViewItem *item,QPointF coords)
- {
- RDEBUG("0", 0);
- mPos = item->modelIndex().row(); // Pos will tell you what is the certificate clicked in particular view.
-
- mContextMenu->clearActions();
- std::auto_ptr<HbAction> open(q_check_ptr(new HbAction(hbTrId("txt_common_menu_open"))));
- connect(open.get(), SIGNAL(triggered()), this, SLOT( openCertificate()));
- mContextMenu->addAction(open.get());
- open.release();
-
- QString moveTitle;
-
- if(mCertView == EAuthorityView)
- {
- std::auto_ptr<HbAction> trustSettings(q_check_ptr(new HbAction(hbTrId("txt_certificate_manager_menu_trust_settings"))));
- connect(trustSettings.get(), SIGNAL(triggered()), this, SLOT(showTrustSettings()));
- mContextMenu->addAction(trustSettings.get());
- trustSettings.release();
- }
- else if(mCertView == EPersonalView)
- {
- moveTitle = hbTrId("txt_certificate_manager_menu_move_to_device_certif");
- }
- else if(mCertView == EDeviceView)
- {
- moveTitle = hbTrId("txt_certificate_manager_menu_move_to_personal_cert");
- }
-
- if(mCertView == EPersonalView || mCertView == EDeviceView )
- {
- std::auto_ptr<HbAction> moveCert(q_check_ptr(new HbAction(moveTitle)));
- connect(moveCert.get(), SIGNAL(triggered()), this, SLOT(moveSelectedCert()));
- mContextMenu->addAction(moveCert.get());
- moveCert.release();
- }
-
- RDEBUG("0", 0);
- if( certAt(mPos)->IsDeletable() )
- {
- std::auto_ptr<HbAction> menuDelete(q_check_ptr(new HbAction(hbTrId("txt_common_menu_delete"))));
- connect(menuDelete.get(), SIGNAL(triggered()), this, SLOT(deleteCertificate()));
- mContextMenu->addAction(menuDelete.get());
- menuDelete.release();
- }
- mContextMenu->setPreferredPos(coords);
- mContextMenu->open();
- }
-
-void CpCertView::openCertFromList(const QModelIndex& modelIndex)
- {
- RDEBUG("0", 0);
- // Pos will tell you what is the certificate clicked in particular view.
- mPos = modelIndex.row();
- openCertificate();
- }
-
-void CpCertView::openCertificate()
- {
- RDEBUG("0", 0);
- mCurrentView = q_check_ptr(new CpCertDetailView(mCertView,mPos,*mCertDataContainer));
- connect(mCurrentView, SIGNAL(aboutToClose()), this, SLOT(displayPreviousView()));
- mPrevView = mainWindow()->currentView();
- mainWindow()->addView(mCurrentView);
- mainWindow()->setCurrentView(mCurrentView);
- }
-
-void CpCertView::displayPreviousView()
- {
- RDEBUG("0", 0);
- mainWindow()->removeView(mCurrentView);
- mCurrentView->deleteLater();
- mCurrentView= NULL;
- mainWindow()->setCurrentView(mPrevView);
- }
-
-void CpCertView::deleteCertificate()
- {
- RDEBUG("0", 0);
- RArray<TInt> pos;
- pos.Append(mPos);
- QT_TRAP_THROWING(deleteCertsL(pos));
- }
-
-void CpCertView::deleteList()
- {
- RDEBUG("0", 0);
- mSelectAll = EFalse;
- mPopup->setDismissPolicy(HbDialog::NoDismiss);
- // Set the label as heading widget
- mPopup->setHeadingWidget(q_check_ptr(new HbLabel(hbTrId("txt_certificate_manager_setlabel_certificates"))));
-
- std::auto_ptr<QGraphicsLinearLayout> layout(q_check_ptr(new QGraphicsLinearLayout(Qt::Vertical)));
-
- mSelectAllView = q_check_ptr(new HbListView(this));
- QStandardItemModel* selectAllModel = q_check_ptr(new QStandardItemModel(this));
- // Populate the model with content
- std::auto_ptr<QStandardItem> selectAllItem(q_check_ptr(new QStandardItem()));
- selectAllItem->setData(QString("Select All"),Qt::DisplayRole);
- selectAllModel->appendRow(selectAllItem.get());
- selectAllItem.release();
-
- connect(mSelectAllView, SIGNAL(activated(QModelIndex)), this, SLOT(selectAll()));
- mSelectAllView->setModel(selectAllModel);
- mSelectAllView->setSelectionMode(HbListView::MultiSelection);
- layout->addItem(mSelectAllView);
-
- mListView = q_check_ptr(new HbListView(this));
- // Connect to "activated" signal
- connect(mListView, SIGNAL(activated(QModelIndex)), this, SLOT(itemActivated(QModelIndex)));
-
- // Create a model
- QStandardItemModel* model = q_check_ptr(new QStandardItemModel(this));
- TInt count=0;
- QT_TRAP_THROWING( count = refreshListL());
- RDEBUG("0", 0);
- for(TInt index = 0; index < count ; ++index)
- {
- const CCTCertInfo* cert = certAt(index);
- if( cert->IsDeletable() )
- {
- // Populate the model with content
- std::auto_ptr<QStandardItem> certItem(q_check_ptr(new QStandardItem()));
- QString certificateLabel = certLabel(index);
- certItem->setData( certificateLabel, Qt::DisplayRole);
- model->appendRow(certItem.get());
- mSelectionIndex.Append(index);
- certItem.release();
- }
- }
- // Set the model to the list view
- mListView->setModel(model);
- mListView->setSelectionMode(HbListView::MultiSelection);
- layout->addItem(mListView);
-
- std::auto_ptr<HbWidget> widget( q_check_ptr(new HbWidget()));
- widget->setLayout(layout.get());
- layout.release();
- mPopup->setContentWidget(widget.get());
- widget.release();
-
- mPopup->setPrimaryAction(q_check_ptr(new HbAction(hbTrId("txt_common_opt_delete"))));
- mPopup->setSecondaryAction(q_check_ptr(new HbAction(hbTrId("txt_common_button_cancel"))));
- mPopup->setTimeout(HbPopup::NoTimeout);
- RDEBUG("0", 0);
- // Launch popup syncronously
- mPopup->open(this, SLOT(handleMultipleDelete(HbAction*)));
-
-}
-
-void CpCertView::handleMultipleDelete(HbAction* action)
-{
- RDEBUG("0", 0);
- if(action == mPopup->primaryAction())
- {
- QItemSelectionModel *selectionModel = mListView->selectionModel();
- QModelIndexList mWidgetItemsToRemove = selectionModel->selectedIndexes();
- TInt deleteCount = mWidgetItemsToRemove.count();
- // start deleting from end of array so that the indexes do not changes of the ones
- // at the front.
- RArray<TInt> actualIndex;
- QT_TRAP_THROWING
- (
- CleanupClosePushL(actualIndex);
- for (TInt index = deleteCount-1; index>= 0 ; --index)
- {
- TInt selectedItemIndex = mWidgetItemsToRemove[index].row();
- actualIndex.Append( mSelectionIndex[selectedItemIndex] );
- }
- deleteCertsL(actualIndex);
- CleanupStack::PopAndDestroy(&actualIndex);
- ) // QT_TRAP_THROWING
- }
- RDEBUG("0", 0);
- mListView->deleteLater();
- mListView = NULL;
- mSelectAllView->deleteLater();
- mSelectAllView = NULL;
- }
-
-void CpCertView::moveCert()
- {
- RDEBUG("0", 0);
- mSelectAll = EFalse;
- mPopup->setDismissPolicy(HbDialog::NoDismiss);
- // Set the label as heading widget
- if(mCertView == EPersonalView)
- {
- mPopup->setHeadingWidget(q_check_ptr(new HbLabel(tr("Move To Device"))));
- }
- else if(mCertView == EDeviceView)
- {
- mPopup->setHeadingWidget(q_check_ptr(new HbLabel(tr("Move To Personal"))));
- }
-
- std::auto_ptr<QGraphicsLinearLayout> layout(q_check_ptr(new QGraphicsLinearLayout(Qt::Vertical)));
-
- mSelectAllView = q_check_ptr(new HbListView(this));
- QStandardItemModel* selectAllModel = q_check_ptr(new QStandardItemModel(this));
- // Populate the model with content
- std::auto_ptr<QStandardItem> selectAllItem(q_check_ptr(new QStandardItem()));
- selectAllItem->setData(QString("Select All"),Qt::DisplayRole);
- selectAllModel->appendRow(selectAllItem.get());
- selectAllItem.release();
- connect(mSelectAllView, SIGNAL(activated(QModelIndex)), this, SLOT(selectAll()));
- mSelectAllView->setModel(selectAllModel);
- mSelectAllView->setSelectionMode(HbListView::MultiSelection);
- layout->addItem(mSelectAllView);
-
- mListView = q_check_ptr(new HbListView(this));
- // Connect to "activated" signal
- connect(mListView, SIGNAL(activated(QModelIndex)), this, SLOT(itemActivated(QModelIndex)));
-
- // Create a model
- QStandardItemModel* model = q_check_ptr(new QStandardItemModel(this));
- TInt count =0;
- RDEBUG("0", 0);
- QT_TRAP_THROWING(count = refreshListL());
- for(TInt index = 0; index < count ; ++index)
- {
- // Populate the model with content
- std::auto_ptr<QStandardItem> certItem(q_check_ptr(new QStandardItem()));
- QString certificateLabel = certLabel(index);
- certItem->setData( certificateLabel, Qt::DisplayRole);
- model->appendRow(certItem.get());
- mSelectionIndex.Append(index);
- certItem.release();
- }
-
- // Set the model to the list view
- mListView->setModel(model);
- mListView->setSelectionMode(HbListView::MultiSelection);
- layout->addItem(mListView);
-
- std::auto_ptr<HbWidget> widget(q_check_ptr(new HbWidget()));
- widget->setLayout(layout.get());
- layout.release();
- mPopup->setContentWidget(widget.get());
- widget.release();
- RDEBUG("0", 0);
- mPopup->setPrimaryAction(q_check_ptr(new HbAction(tr("Yes"))));
- mPopup->setSecondaryAction(q_check_ptr(new HbAction(tr("No"))));
- mPopup->setTimeout(HbPopup::NoTimeout);
-
- // Launch popup syncronously
- mPopup->open(this, SLOT(handleMoveCertDialog(HbAction*)));
- RDEBUG("0", 0);
-}
-
-void CpCertView::handleMoveCertDialog(HbAction* action)
-{
- RDEBUG("0", 0);
- if(action == mPopup->primaryAction())
- {
- QItemSelectionModel *selectionModel = mListView->selectionModel();
- QModelIndexList mWidgetItemsToRemove = selectionModel->selectedIndexes();
- TInt deleteCount = mWidgetItemsToRemove.count();
- // start deleting from end of array so that the indexes do not changes of the ones
- // at the front.
- RArray<TInt> actualIndex;
- RDEBUG("0", 0);
- QT_TRAP_THROWING
- (
- CleanupClosePushL(actualIndex);
- for (TInt index = deleteCount-1; index>= 0 ; --index)
- {
- TInt selectedItemIndex = mWidgetItemsToRemove[index].row();
- actualIndex.Append(mSelectionIndex[selectedItemIndex]);
- }
- moveCertList(actualIndex);
- CleanupStack::PopAndDestroy(&actualIndex);
- )
- }
- mListView->deleteLater();
- mListView = NULL;
- mSelectAllView->deleteLater();
- mSelectAllView = NULL;
- RDEBUG("0", 0);
- }
-
-void CpCertView::selectAll()
- {
- RDEBUG("0", 0);
- if(mSelectAll == EFalse)
- {
- mListView->selectAll();
- mSelectAll= ETrue;
- }
- else
- {
- mListView->clearSelection();
- mSelectAll= EFalse;
- }
- }
-
-void CpCertView::deleteCertsL( RArray<TInt>& indexList )
- {
- RDEBUG("0", 0);
- TInt count = indexList.Count();
- for(int index = 0;index <count;++index )
- {
- mIndexList.Append(indexList[index]);
- }
-
- mNote = new HbMessageBox(HbMessageBox::MessageTypeQuestion);
- QString deleteMsg;
- QString sCount;
- if(count == 1)
- {
- deleteMsg = "Delete %1?";
- const CCTCertInfo* entry = certAt(indexList[0]);
- sCount = QString((QChar*)entry->Label().Ptr(),entry->Label().Length());
- }
- else
- {
- deleteMsg = "Delete %1 items?";
- sCount.setNum(count);
- }
- RDEBUG("0", 0);
- deleteMsg = deleteMsg.arg(sCount);
- mNote->setText(deleteMsg);
- mNote->setTimeout(HbPopup::NoTimeout);
- mNote->open(this,SLOT(handleDeleteDialog(HbAction*)));
-
-}
-
-void CpCertView::handleDeleteDialog(HbAction* action)
-{
- RDEBUG("0", 0);
- TInt count = mIndexList.Count();
-
- if (action != mNote->primaryAction() || count == 0 )
- {
- return;
- }
-
- RPointerArray<CCTCertInfo> errCerts;
- QT_TRAP_THROWING(
- CleanupClosePushL(errCerts);
-
- for(TInt index = 0; index < count; ++index)
- {
- const CCTCertInfo* entry = certAt(mIndexList[index]);
-
- if( mCertView == EPersonalView || mCertView == EAuthorityView )
- {
- mCertDataContainer->iWrapper->DeleteCertL(
- mCertDataContainer->CertManager(), *entry );
- }
- else if( mCertView == ETrustedView )
- {
- mCertDataContainer->iWrapper->DeleteCertL(
- mCertDataContainer->CertManager(),*entry, KCMTrustedServerTokenUid );
- }
- else if( mCertView == EDeviceView )
- {
- mCertDataContainer->iWrapper->DeleteCertL(
- mCertDataContainer->CertManager(), *entry, KCMDeviceCertStoreTokenUid );
- }
- errCerts.AppendL(entry);
- }
- RDEBUG("0", 0);
- if(errCerts.Count() > 0)
- {
- QString message("Unable to delete the following certificate: \n");
- TInt count = errCerts.Count();
- for(TInt index=0;index<count;++index)
- {
- const TDesC& certLabel = errCerts[index]->Label();
- QString certName = QString((QChar*)certLabel.Ptr(),certLabel.Length());
- message.append(certName).append("\n");
- }
- HbMessageBox::warning(message);
- }
- count = refreshListL();
- refreshView(count);
-
- CleanupStack::PopAndDestroy(&errCerts);
- ) // QT_TRAP_THROWING
-
- delete mNote;
- mNote = NULL;
- RDEBUG("0", 0);
- }
-
-const CCTCertInfo* CpCertView::certAt(TInt index) const
- {
- RDEBUG("0", 0);
- CCTCertInfo* currentCert = NULL;
- switch(mCertView)
- {
- case EAuthorityView:
- {
- currentCert = mCertDataContainer->iCALabelEntries[ index ]->iCAEntry;
- break;
- }
- case ETrustedView:
- {
- currentCert = mCertDataContainer->iPeerLabelEntries[ index ]->iPeerEntry;
- break;
- }
- case EDeviceView:
- {
- currentCert = mCertDataContainer->iDeviceLabelEntries[ index ]->iDeviceEntry;
- break;
- }
- case EPersonalView:
- {
- currentCert = mCertDataContainer->iUserLabelEntries[ index ]->iUserEntry;
- break;
- }
- };
- return currentCert;
- }
-
-QString CpCertView::certLabel(TInt index) const
- {
- RDEBUG("0", 0);
- CpCertManUICertData* certData = NULL;
- HBufC* label = NULL;
- TInt length = 0;
- switch(mCertView)
- {
- case EAuthorityView:
- {
- certData = mCertDataContainer->iCALabelEntries[index];
- label = certData->iCAEntryLabel;
- length = certData->iCAEntryLabel->Length();
- break;
- }
- case ETrustedView:
- {
- certData = mCertDataContainer->iPeerLabelEntries[index];
- label = certData->iPeerEntryLabel;
- length = certData->iPeerEntryLabel->Length();
- break;
- }
- case EPersonalView:
- {
- certData = mCertDataContainer->iUserLabelEntries[index];
- label = certData->iUserEntryLabel;
- length = certData->iUserEntryLabel->Length();
- break;
- }
- case EDeviceView:
- {
- certData = mCertDataContainer->iDeviceLabelEntries[index];
- label = certData->iDeviceEntryLabel;
- length = certData->iDeviceEntryLabel->Length();
- break;
- }
- }
- return QString((QChar*)label->Des().Ptr(), length);
- }
-
-TInt CpCertView::refreshListL()
- {
- RDEBUG("0", 0);
- TInt count = 0;
- switch(mCertView)
- {
- case EAuthorityView:
- mCertDataContainer->RefreshCAEntriesL();
- count = mCertDataContainer->iCALabelEntries.Count();
- break;
- case ETrustedView:
- mCertDataContainer->RefreshPeerCertEntriesL();
- count = mCertDataContainer->iPeerLabelEntries.Count();
- break;
- case EPersonalView:
- mCertDataContainer->RefreshUserCertEntriesL();
- count = mCertDataContainer->iUserLabelEntries.Count();
- break;
- case EDeviceView:
- mCertDataContainer->RefreshDeviceCertEntriesL();
- count = mCertDataContainer->iDeviceLabelEntries.Count();
- break;
- };
- return count;
- }
-
-
-void CpCertView::refreshView( TInt count )
- {
- RDEBUG("0", 0);
- if(mRefreshedView)
- {
- mRefreshedView->deleteLater();
- mRefreshedView = NULL;
- }
-
- mRefreshedView = q_check_ptr(new CpBaseSettingView());
- switch(mCertView)
- {
- case EAuthorityView:
- {
- mRefreshedView->setTitle(hbTrId("txt_certificate_manager_list_authority_certificate"));
- break;
- }
- case ETrustedView:
- {
- mRefreshedView->setTitle(hbTrId("txt_certificate_manager_list_trusted_site_certific"));
- break;
- }
- case EPersonalView:
- {
- mRefreshedView->setTitle(hbTrId("txt_certificate_manager_list_personal_certificates"));
- break;
- }
- case EDeviceView:
- {
- mRefreshedView->setTitle(hbTrId("txt_certificate_manager_list_device_certificates"));
- break;
- }
- }
-
- HbMenu* menu = mRefreshedView->menu();
- RDEBUG("0", 0);
- std::auto_ptr<HbAction> endAction( q_check_ptr(new HbAction(hbTrId("txt_common_opt_delete"))) );
- connect(endAction.get(), SIGNAL(triggered()), this, SLOT(deleteList()));
- menu->addAction(endAction.get());
- endAction.release();
-
- QString title;
- if(mCertView == EPersonalView)
- {
- title = "Move to Device";
- }
- else if(mCertView == EDeviceView)
- {
- title = "Move to Personal";
- }
- std::auto_ptr<HbAction> moveAction(q_check_ptr(new HbAction(title)));
- connect(moveAction.get(), SIGNAL(triggered()), this, SLOT(moveCert()));
- menu->addAction(moveAction.get());
- moveAction.release();
- RDEBUG("0", 0);
- std::auto_ptr<QGraphicsLinearLayout> layout(q_check_ptr(new QGraphicsLinearLayout(Qt::Vertical)));
-
- HbListWidget* mCertificateList = q_check_ptr(new HbListWidget(this));
-
- for(int index = 0; index< count; index++)
- {
- QString certificateLabel = certLabel(index);
- std::auto_ptr<HbListWidgetItem> singleCert(q_check_ptr(new HbListWidgetItem()));
- singleCert->setText(certificateLabel);
- mCertificateList->addItem(singleCert.get());
- singleCert.release();
- } // end of for loop
-
- connect(mCertificateList, SIGNAL(activated(QModelIndex)), this, SLOT(openCertFromList(QModelIndex)));
- connect(mCertificateList, SIGNAL(longPressed(HbAbstractViewItem*, QPointF )), this, SLOT(indicateLongPress(HbAbstractViewItem*, QPointF)));
-
- layout->addItem(mCertificateList);
- RDEBUG("0", 0);
- // Refresh current view
- QObject::connect(mRefreshedView , SIGNAL(aboutToClose()), this, SLOT(viewDone()));
- mPrevView = mainWindow()->currentView();
- mainWindow()->addView(mRefreshedView);
- mainWindow()->setCurrentView(mRefreshedView);
- mRefreshedView->setLayout(layout.get());
- layout.release();
- RDEBUG("0", 0);
- }
-
-
-void CpCertView::viewDone()
- {
- RDEBUG("0", 0);
- mCurrentView = mainWindow()->currentView();
- mCurrentView->deleteLater();
- mCurrentView= NULL;
- mainWindow()->setCurrentView(mOriginalView);
- }
-void CpCertView::showTrustSettings()
- {
- RDEBUG("0", 0);
- mCurrentView = q_check_ptr(new CpCertTrustView(mPos, *mCertDataContainer));
- connect(mCurrentView , SIGNAL(aboutToClose()), this, SLOT(saveTrustSettings()));
- mPrevView = mainWindow()->currentView();
- mainWindow()->addView(mCurrentView);
- mainWindow()->setCurrentView(mCurrentView);
- }
-
-void CpCertView::saveTrustSettings()
- {
- ((CpCertTrustView*)mCurrentView)->saveTrustSettings();
- displayPreviousView();
- }
-
-void CpCertView::moveSelectedCert()
- {
- RDEBUG("0", 0);
- RArray<TInt> pos;
- pos.Append(mPos);
- moveCertList(pos);
- }
-
-void CpCertView::moveCertList(RArray<TInt>& indexList)
- {
- RDEBUG("0", 0);
- mIndexList = indexList;
- mNote = new HbMessageBox(HbMessageBox::MessageTypeQuestion);
- mNote->setHeadingWidget(q_check_ptr(new HbLabel(hbTrId("txt_certificate_manager_info_move"))));
- if( mCertView == EPersonalView )
- {
- mNote->setText(hbTrId("txt_certificate_manager_info_device_certificates_c"));
- }
- else if( mCertView == EDeviceView )
- {
- mNote->setText("Use of Personal certificates may require user confirmation. Proceed?");
- }
-
- mNote->setTimeout(HbPopup::NoTimeout);
- mNote->setIconVisible (EFalse);
- mNote->open(this,SLOT(handleMoveDialog(HbAction*)));
- RDEBUG("0", 0);
-}
-
-void CpCertView::handleMoveDialog(HbAction* action)
-{
- RDEBUG("0", 0);
- if (action != mNote->primaryAction())
- {
- return;
- }
-
- TInt count = mIndexList.Count();
-
- for(TInt index = 0 ; index < count; ++index)
- {
- CCTCertInfo* entry = NULL;
- if(mCertView == EPersonalView)
- {
- entry = mCertDataContainer->iUserLabelEntries[ mIndexList[index] ]->iUserEntry;
- }
- else if(mCertView == EDeviceView)
- {
- entry = mCertDataContainer->iDeviceLabelEntries[ mIndexList[index] ]->iDeviceEntry;
- }
-
- // Move key first
- TCTKeyAttributeFilter keyFilter;
- keyFilter.iKeyId = entry->SubjectKeyId();
- keyFilter.iPolicyFilter = TCTKeyAttributeFilter::EAllKeys;
- RDEBUG("0", 0);
- TUid sourceCertStoreUid = TUid::Uid(0);
- TUid targetCertStoreUid = TUid::Uid(0);
- TUid sourceKeyStoreUid = TUid::Uid(0);
- TUid targetKeyStoreUid = TUid::Uid(0);
-
- if(mCertView == EPersonalView)
- {
- sourceKeyStoreUid = KCMFileKeyStoreTokenUid;
- targetKeyStoreUid = KCMDeviceKeyStoreTokenUid;
- sourceCertStoreUid = KCMFileCertStoreTokenUid;
- targetCertStoreUid = KCMDeviceCertStoreTokenUid;
- }
- else if(mCertView == EDeviceView)
- {
- sourceKeyStoreUid = KCMDeviceKeyStoreTokenUid;
- targetKeyStoreUid = KCMFileKeyStoreTokenUid;
- sourceCertStoreUid = KCMDeviceCertStoreTokenUid;
- targetCertStoreUid = KCMFileCertStoreTokenUid;
- }
- RDEBUG("0", 0);
- try
- {
-
- QT_TRAP_THROWING( mCertDataContainer->iWrapper->MoveKeyL(
- mCertDataContainer->KeyManager(), keyFilter, sourceKeyStoreUid, targetKeyStoreUid ));
-
- // Move certificate
- QT_TRAP_THROWING( mCertDataContainer->iWrapper->MoveCertL(
- mCertDataContainer->CertManager(), *entry, sourceCertStoreUid, targetCertStoreUid ) );
-
- }
- catch(const std::exception& exception)
- {
- QString error(exception.what());
- QT_TRAP_THROWING(mCertDataContainer->ShowErrorNoteL( error.toInt() ));
- User::Exit( KErrNone );
- }
- RDEBUG("0", 0);
- try
- {
- if(mCertView == EPersonalView)
- {
- QT_TRAP_THROWING( mCertDataContainer->RefreshUserCertEntriesL() );
- }
- else if(mCertView == EDeviceView)
- {
- QT_TRAP_THROWING( mCertDataContainer->RefreshDeviceCertEntriesL() );
- }
- }
- catch(const std::exception& exception)
- {
- QString error(exception.what());
- if ( error.toInt() == KErrCorrupt )
- {
- QT_TRAP_THROWING(mCertDataContainer->ShowErrorNoteL( error.toInt()) );
- User::Exit( KErrNone );
- }
- // have to call straight away the Exit
- // showing any error notes would corrupt the display
- User::Exit( error.toInt() );
- }
- } // for
- // Refresh current view
- QT_TRAP_THROWING(refreshView(refreshListL()));
- delete mNote;
- mNote = NULL;
- RDEBUG("0", 0);
- }
-
--- a/cpsecplugins/cpadvancedsecplugin/src/cpmoduleview.cpp Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,364 +0,0 @@
-/*
-* Copyright (c) 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:
-*
-*/
-
-#include <mctauthobject.h>
-#include <mctkeystore.h>
-
-#include <qstringlist.h>
-#include <qgraphicslinearlayout.h>
-
-#include <hblineedit.h>
-#include <hbdataform.h>
-#include <hbdataformmodel.h>
-#include <hbdataformmodelitem.h>
-#include <hblabel.h>
-#include <hbpushbutton.h>
-#include <hbmenu.h>
-#include <hbaction.h>
-#include <hbmessagebox.h>
-#include <hblistwidget.h>
-#include <hblistwidgetitem.h>
-#include <hbgroupbox.h>
-#include <hbpushbutton.h>
-#include <hbdataform.h>
-#include <hbdataformmodel.h>
-#include <hbdataformmodelitem.h>
-#include <hbmainwindow.h>
-#include <hbabstractviewitem.h>
-
-#include <memory>
-#include <../../inc/cpsecplugins.h>
-#include "cpmoduleview.h"
-#include "cpsecmodmodel.h"
-#include "cpsecmodview.h"
-
-CpModuleView::CpModuleView( CpSecModView::TSecModViews currentView,
- CSecModUIModel& secModUIModel,
- QGraphicsItem *parent /*= 0*/ )
-: CpBaseSettingView(0,parent),
- mCurrentView(currentView),
- mSecModUIModel(secModUIModel)
- {
- RDEBUG("0", 0);
- QString title = mSecModUIModel.TokenLabelForTitle();
- setTitle(title);
-
- mContextMenu = (q_check_ptr(new HbMenu()));
-
- if(currentView == CpSecModView::EAccessView)
- {
- showAccessView();
- }
- else if(currentView == CpSecModView::ESignatureView)
- {
- showSignatureView(ETrue);
- }
- }
-
-CpModuleView::~CpModuleView()
- {}
-
-void CpModuleView::showAccessView()
- {
- RDEBUG("0", 0);
- HbMenu* menu = this->menu();
- std::auto_ptr<HbAction> endAction(q_check_ptr(new HbAction("Module Info")));
- connect(endAction.get(), SIGNAL(triggered()), this, SLOT(saveProv()));
-
- menu->addAction(endAction.get());
- endAction.release();
-
- std::auto_ptr<QGraphicsLinearLayout> layout(q_check_ptr(new QGraphicsLinearLayout(Qt::Vertical)));
-
- std::auto_ptr<HbDataForm> form(q_check_ptr(new HbDataForm()));
- std::auto_ptr<HbDataFormModel> formModel(q_check_ptr(new HbDataFormModel()));
- form->setModel(formModel.get());
- formModel.release();
-
- QString titleName;
- if (mSecModUIModel.KeyStoreUID() == KTokenTypeFileKeystore)
- {
- titleName = "Phone key store code";
- }
- else
- {
- const TDesC& label = mSecModUIModel.AuthObj(KPinGSettIndex).Label();
- titleName = QString((QChar*)label.Ptr(), label.Length());
- }
- RDEBUG("0", 0);
- HbListWidget* accessDetails = q_check_ptr(new HbListWidget(this));
-
- std::auto_ptr<HbListWidgetItem> codeLabel(q_check_ptr(new HbListWidgetItem()));
- codeLabel->setText(titleName);
- accessDetails->addItem(codeLabel.get());
- codeLabel.release();
-
- std::auto_ptr<HbListWidgetItem> codeText(q_check_ptr(new HbListWidgetItem()));
- codeText->setText("****");
- accessDetails->addItem(codeText.get());
- codeText.release();
-
- std::auto_ptr<HbListWidgetItem> requestLabel(q_check_ptr(new HbListWidgetItem()));
- requestLabel->setText("Access Code Request");
- accessDetails->addItem(requestLabel.get());
- requestLabel.release();
-
- TUint32 status = mSecModUIModel.AuthStatus(KPinGSettIndex);
- std::auto_ptr<HbListWidgetItem> requestText(q_check_ptr(new HbListWidgetItem()));
- requestText->setText("Off");
- if (status & EEnabled)
- {
- requestText->setText("On");
- }
- accessDetails->addItem(requestText.get());
- requestText.release();
- RDEBUG("0", 0);
- std::auto_ptr<HbListWidgetItem> statusLabel(q_check_ptr(new HbListWidgetItem()));
- statusLabel->setText("Status");
- accessDetails->addItem(statusLabel.get());
- statusLabel.release();
-
- std::auto_ptr<HbListWidgetItem> statusText(q_check_ptr(new HbListWidgetItem()));
- QString pinStatus = mSecModUIModel.PINStatus(KPinGSettIndex, ETrue);
- statusText->setText(pinStatus);
- accessDetails->addItem(statusText.get());
- statusText.release();
-
- connect(accessDetails, SIGNAL(longPressed(HbAbstractViewItem*, QPointF )), this, SLOT(indicateLongPress(HbAbstractViewItem*, QPointF)));
- connect(formModel.get(), SIGNAL(activated(QModelIndex)), this, SLOT(handleAccessView(QModelIndex)));
-
- layout->addItem(accessDetails);
- layout->addItem(form.get());
- form.release();
- setLayout(layout.get());
- layout.release();
- RDEBUG("0", 0);
- }
-
-void CpModuleView::showSignatureView(TBool showBlockedNote)
- {
- RDEBUG("0", 0);
- mCurrentView = CpSecModView::ESignatureView;
- std::auto_ptr<QGraphicsLinearLayout> layout(q_check_ptr(new QGraphicsLinearLayout(Qt::Vertical)));
- std::auto_ptr<HbDataForm> form(q_check_ptr(new HbDataForm()));
- std::auto_ptr<HbDataFormModel> formModel(q_check_ptr(new HbDataFormModel()));
-
- QVector< QPair<QString, TUint32> > authDetails = mSecModUIModel.AuthDetails();
- QVectorIterator< QPair<QString, TUint32> > authDetailsIter(authDetails);
-
- HbListWidget* accessDetails = q_check_ptr(new HbListWidget(this));
-
- while(authDetailsIter.hasNext())
- {
- QPair<QString, TUint32> pair = authDetailsIter.next();
- QString label = pair.first;
- TUint32 status = pair.second;
- QString blockedDetails = NULL;
- if ( status & EAuthObjectBlocked)
- {
- if (showBlockedNote)
- {
- QString totalBlocked(" is blocked. PUK code is needed to unblock the code");
- if (status & EUnblockDisabled)
- {
- totalBlocked = " totalblocked, contact your module vendor.";
- }
- totalBlocked.prepend(label);
- HbMessageBox::information(totalBlocked);
- }
- blockedDetails = label.append(" Blocked");
- RDEBUG("0", 0);
- std::auto_ptr<HbListWidgetItem> statusLabel(q_check_ptr(new HbListWidgetItem()));
- statusLabel->setText(tr("Status"));
- accessDetails->addItem(statusLabel.get());
- statusLabel.release();
-
- std::auto_ptr<HbListWidgetItem> statusText(q_check_ptr(new HbListWidgetItem()));
- QString pinStatus = mSecModUIModel.PINStatus(KPinNrSettIndex, ETrue);
- statusText->setText(pinStatus);
- accessDetails->addItem(statusText.get());
- statusText.release();
- }
- else
- {
- std::auto_ptr<HbListWidgetItem> unblockedLabel(q_check_ptr(new HbListWidgetItem()));
- unblockedLabel->setText(label);
- accessDetails->addItem(unblockedLabel.get());
- unblockedLabel.release();
-
- std::auto_ptr<HbListWidgetItem> unblockedText(q_check_ptr(new HbListWidgetItem()));
- unblockedText->setText("****");
- accessDetails->addItem(unblockedText.get());
- unblockedText.release();
- }
- }
- form->setModel(formModel.get());
- formModel.release();
- layout->addItem(accessDetails);
-
- connect(accessDetails, SIGNAL(longPressed(HbAbstractViewItem*, QPointF )), this, SLOT(indicateLongPress(HbAbstractViewItem*, QPointF)));
- connect(formModel.get(), SIGNAL(activated(QModelIndex)), this, SLOT(handleSigView()));
-
- layout->addItem(form.get());
- form.release();
- setLayout(layout.get());
- layout.release();
- RDEBUG("0", 0);
- }
-
-void CpModuleView::indicateLongPress(HbAbstractViewItem *item,QPointF coords)
- {
- RDEBUG("0", 0);
- try
- {
- mContextMenu->clearActions();
- mPos = item->modelIndex().row();
-
- if(mCurrentView == CpSecModView::EAccessView)
- {
- if( mPos == EIndexCodeLabel && mSecModUIModel.PinChangeable(KPinGSettIndex)
- || mPos == EIndexCodeRequest && mSecModUIModel.PinRequestChangeable(KPinGSettIndex)
- || mPos == EIndexCodeStatus )
- {
- std::auto_ptr<HbAction> changePIN(q_check_ptr(new HbAction("Change")));
- connect(changePIN.get(), SIGNAL(triggered()), this, SLOT( handleAccessView()));
- mContextMenu->addAction(changePIN.get());
- changePIN.release();
- }
- if( mSecModUIModel.PinUnblockable(KPinGSettIndex) )
- {
- std::auto_ptr<HbAction> unblockPIN(q_check_ptr(new HbAction("Unblock")));
- connect(unblockPIN.get(), SIGNAL(triggered()), this, SLOT( handleAccessView()));
- mContextMenu->addAction(unblockPIN.get());
- unblockPIN.release();
- }
- if( mSecModUIModel.PinOpen(KPinGSettIndex) )
- {
- std::auto_ptr<HbAction> closePIN(q_check_ptr(new HbAction("Close")));
- connect(closePIN.get(), SIGNAL(triggered()), this, SLOT( handleAccessView()));
- mContextMenu->addAction(closePIN.get());
- closePIN.release();
- }
- }
- else if(mCurrentView == CpSecModView::ESignatureView)
- {
- if (mSecModUIModel.PinChangeable(KPinNrSettIndex))
- {
- std::auto_ptr<HbAction> changePIN(q_check_ptr(new HbAction("Change")));
- connect(changePIN.get(), SIGNAL(triggered()), this, SLOT( handleSigViewCommand()));
- mContextMenu->addAction(changePIN.get());
- changePIN.release();
- }
- if (mSecModUIModel.PinUnblockable(KPinNrSettIndex))
- {
- std::auto_ptr<HbAction> unblockPIN(q_check_ptr(new HbAction("Unblock")));
- connect(unblockPIN.get(), SIGNAL(triggered()), this, SLOT( handleSigViewCommand()));
- mContextMenu->addAction(unblockPIN.get());
- unblockPIN.release();
- }
- }
-
- mContextMenu->setPreferredPos(coords);
- mContextMenu->open();
- }
- catch(const std::exception& exception)
- {
- HbMessageBox::information(exception.what());
- }
- RDEBUG("0", 0);
- }
-
-void CpModuleView::handleAccessView( const QModelIndex& modelIndex )
- {
- RDEBUG("0", 0);
- try
- {
- mPos = modelIndex.row();
- handleAccessView();
- }
- catch(const std::exception& exception)
- {
- HbMessageBox::information(exception.what());
- }
- }
-
-void CpModuleView::handleAccessView()
- {
- RDEBUG("0", 0);
- try
- {
- if(mPos == EIndexCodeLabel)
- {
- QT_TRAP_THROWING(mSecModUIModel.ChangeOrUnblockPinL(KPinGSettIndex));
- }
- else if(mPos == EIndexCodeRequest)
- {
- if (KErrCancel == mSecModUIModel.ChangeCodeRequest(KPinGSettIndex))
- {
- return;
- }
- }
- else if ( mPos == EIndexCodeStatus)
- {
- QT_TRAP_THROWING(mSecModUIModel.CloseAuthObjL(KPinGSettIndex));
- }
- showAccessView();
- }
- catch(const std::exception& exception)
- {
- HbMessageBox::information(exception.what());
- }
- }
-
-void CpModuleView::handleSigView()
- {
- RDEBUG("0", 0);
- try
- {
- QT_TRAP_THROWING(mSecModUIModel.ChangeOrUnblockPinL(KPinNrSettIndex));
- showSignatureView(EFalse);
- }
- catch(const std::exception& exception)
- {
- HbMessageBox::information(exception.what());
- }
- }
-
-void CpModuleView::handleSigViewCommand()
- {
- RDEBUG("0", 0);
- try
- {
- switch(mPos)
- {
- case ESecModUICmdChange:
- QT_TRAP_THROWING(mSecModUIModel.ChangePinNrL(mPos));
- showSignatureView(EFalse);
- break;
- case ESecModUICmdUnblock:
- QT_TRAP_THROWING(mSecModUIModel.UnblockPinNrL(mPos));
- showSignatureView(EFalse);
- break;
- };
- }
- catch(const std::exception& exception)
- {
- HbMessageBox::information(exception.what());
- }
- }
-
-
--- a/cpsecplugins/cpadvancedsecplugin/src/cpsecmodmodel.cpp Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,935 +0,0 @@
-/*
-* Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: Implementation of the CSecModUIModel class
-*
-*/
-
-#include <unifiedkeystore.h>
-#include <mctauthobject.h>
-#include <mctkeystore.h>
-#include <securityerr.h>
-
-#include <qvector.h>
-#include <qpair.h>
-#include <qlabel.h>
-#include <qerrormessage.h>
-#include <qstring.h>
-
-#include <hbmessagebox.h>
-#include <../../inc/cpsecplugins.h>
-#include "cpsecmodmodel.h"
-#include "cpsecmodsyncwrapper.h"
-
-const TInt KWIMStoreUid ( 0x101F79D9 );
-_LIT(KSecModUIPanic, "Security Module UI panic");
-
-// ============================= LOCAL FUNCTIONS ===============================
-GLDEF_C void Panic(TInt aPanic)
- {
- User::Panic(KSecModUIPanic, aPanic);
- }
-
-// -----------------------------------------------------------------------------
-// CSecModUIModel::NewL()
-// Two-phased constructor.
-// -----------------------------------------------------------------------------
-//
-CSecModUIModel* CSecModUIModel::NewL()
- {
- RDEBUG("0", 0);
- CSecModUIModel* self = new( ELeave ) CSecModUIModel();
- CleanupStack::PushL( self );
- self->ConstructL();
- CleanupStack::Pop(self);
- return self;
- }
-
-// -----------------------------------------------------------------------------
-// CSecModUIModel::CSecModUIModel
-// C++ default constructor can NOT contain any code, that might leave.
-// -----------------------------------------------------------------------------
-//
-CSecModUIModel::CSecModUIModel()
- {}
-
-// -----------------------------------------------------------------------------
-// CSecModUIModel::~CSecModUIModel
-// C++ destructor
-// -----------------------------------------------------------------------------
-//
-
-CSecModUIModel::~CSecModUIModel()
- {
- delete iWrapper;
- ResetAndDestroyCTObjects();
- }
-// -----------------------------------------------------------------------------
-// CSecModUIModel::ResetAndDestroyCTObjects(): Cleans up all objects referenced
-// through the crypto token framework.
-// -----------------------------------------------------------------------------
-//
-void CSecModUIModel::ResetAndDestroyCTObjects()
- {
- ResetAndDestroyAOs();
- iAOKeyStores.Reset();
- delete iUnifiedKeyStore;
- iUnifiedKeyStore = NULL;
- iKeyStore = NULL;
- }
-
-// -----------------------------------------------------------------------------
-// CSecModUIModel::ResetAndDestroyAOs(): Cleans up the list of auth objects.
-// -----------------------------------------------------------------------------
-//
-void CSecModUIModel::ResetAndDestroyAOs()
- {
- RDEBUG("0", 0);
- if (iAOList)
- {
- iAOList->Release();
- iAOList = NULL;
- }
- if (iAOArray.Count() > 0 &&
- iAOArray[0]->Token().TokenType().Type().iUid == KTokenTypeFileKeystore)
- {
- iAOArray.Reset();
- }
- else
- {
- iAOArray.Close();
- }
- }
-
-// -----------------------------------------------------------------------------
-// CSecModUIModel::ConstructL()
-// Symbian 2nd phase constructor can leave.
-// -----------------------------------------------------------------------------
-//
-void CSecModUIModel::ConstructL()
- {
- InitializeKeyStoreL();
- }
-
-// -----------------------------------------------------------------------------
-// CSecModUIModel::InitializeKeyStoreL()
-// -----------------------------------------------------------------------------
-//
-void CSecModUIModel::InitializeKeyStoreL()
- {
- RDEBUG("0", 0);
- ResetAndDestroyCTObjects();
-
- // Ensure that file server session is succesfully created
- User::LeaveIfError( iRfs.Connect() );
-
- iUnifiedKeyStore = CUnifiedKeyStore::NewL(iRfs);
-
- if (iWrapper == NULL)
- {
- iWrapper = CSecModUISyncWrapper::NewL();
- }
-
- TInt err = iWrapper->Initialize(*iUnifiedKeyStore);
-
- ShowErrorNote(err);
- if (KErrNone != err && KErrHardwareNotAvailable != err)
- {
- User::Leave(err);
- }
- TInt keyStoreCount = iUnifiedKeyStore->KeyStoreCount();
- if (0 >= keyStoreCount)
- {
- return;
- }
-
- RMPointerArray<CCTKeyInfo> keyInfos;
- CleanupClosePushL(keyInfos);
- TCTKeyAttributeFilter filter;
- TInt keyInfoCount = 0;
- filter.iPolicyFilter = TCTKeyAttributeFilter::EAllKeys;
-
- for (TInt i = 0; i < keyStoreCount; i++)
- {
- err = iWrapper->ListKeys(iUnifiedKeyStore->KeyStore(i), keyInfos, filter);
- User::LeaveIfError(err);
- //If list ok, append the AO, otherwise go next
- keyInfoCount = keyInfos.Count();
- for (TInt j = 0; j < keyInfoCount; j++)
- {
- // Check that keystore has at least one AO.
- if (NULL != keyInfos[j]->Protector())
- {
- // If keystore has AO, add it to the array.
- User::LeaveIfError(
- iAOKeyStores.Append(&(iUnifiedKeyStore->KeyStore(i))));
- break;
- }
- }
- }
- CleanupStack::PopAndDestroy(&keyInfos);
- }
-
-// -----------------------------------------------------------------------------
-// CSecModUIModel::LoadTokenLabelsL()
-// Retrieves the description and location of all tokens.
-// -----------------------------------------------------------------------------
-//
-QMap<QString,QString> CSecModUIModel::LoadTokenLabelsL()
- {
- RDEBUG("0", 0);
- TInt keyStoreCount = iAOKeyStores.Count();
- QMap<QString, QString> labelList;
-
- if (0 == keyStoreCount)
- {
- return labelList;
- }
-
- for (TInt i = 0; i < keyStoreCount; i++)
- {
- QString keystoreLabel = 0;
- if (iAOKeyStores[i]->Token().TokenType().Type().iUid == KTokenTypeFileKeystore )
- {
- keystoreLabel = "Phone keystore";
- }
- else if(iAOKeyStores[i]->Token().TokenType().Type().iUid == KWIMStoreUid )
- {
- const TDesC& label = iAOKeyStores[i]->Token().Label();
- keystoreLabel = QString( (QChar*) label.Ptr(), label.Length());
- }
- else
- {
- continue;
- }
- QString location = Location(iAOKeyStores[i]->Token().TokenType().Type());
- labelList.insert(keystoreLabel,location);
- }
- return labelList;
- }
-
-// -----------------------------------------------------------------------------
-// CSecModUIModel::Location()
-// Identifies the location of the keystore based on the Uid.
-// -----------------------------------------------------------------------------
-//
-QString CSecModUIModel::Location( TUid aUid ) const
- {
- RDEBUG("0", 0);
- QString location = 0;
-
- switch ( aUid.iUid )
- {
- case KTokenTypeFileKeystore:
- {
- location = "\nPhone memory";
- break;
- }
- case KWIMStoreUid:
- {
- location = "\nSmart card";
- break;
- }
- default:
- {
- break;
- }
- }
- return location;
- }
-
-// -----------------------------------------------------------------------------
-// CSecModUIModel::ShowErrorNote(TInt aError) const
-// Displays appropriate error message based on the error code.
-// -----------------------------------------------------------------------------
-//
-void CSecModUIModel::ShowErrorNote(TInt aError) const
- {
- QString sError;
- RDEBUG("aError", aError);
- switch (aError)
- {
- case KErrCancel:
- case KErrLocked:
- case KErrNone:
- {
- break;
- }
- case KErrInUse:
- {
- sError = "Key is currently in use. Unable to delete. Close applications and try again.";
- break;
- }
- case KErrBadPassphrase:
- {
- sError = "Code incorrect";
- break;
- }
- case KErrHardwareNotAvailable: // flow thru
- default:
- {
- sError = "Security module internal error";
- break;
- }
- }
-
- if ( sError.length() != 0 )
- {
- HbMessageBox::information(sError);
- }
- }
-
-// -----------------------------------------------------------------------------
-// CSecModUIModel::OpenTokenL(TInt aTokenIndex)
-// Retrieves the appropriate token based on the index.
-// -----------------------------------------------------------------------------
-//
-void CSecModUIModel::OpenTokenL(TInt aTokenIndex)
- {
- RDEBUG("0", 0);
- ResetAndDestroyAOs();
- iKeyStore = iAOKeyStores[aTokenIndex];
- }
-
-// -----------------------------------------------------------------------------
-// CSecModUIModel::CheckCodeViewStringsL()
-// Initialize the auth objects and return the total count.
-// -----------------------------------------------------------------------------
-//
-TInt CSecModUIModel::CheckCodeViewStringsL()
- {
- InitAuthObjectsL();
- ListAuthObjectsL();
- return iAOArray.Count();
- }
-
-// -----------------------------------------------------------------------------
-// CSecModUIModel::InitAuthObjectsL()
-// Retrieve the authentication object associated with the appropriate key store
-// implementation.
-// -----------------------------------------------------------------------------
-//
-void CSecModUIModel::InitAuthObjectsL()
- {
- RDEBUG("0", 0);
- TInt err = KErrNone;
- // Symbian's file key store does not support
- // MCTAuthenticationObjectList interface, so we need to use
- // other way to get AO.
- if (iKeyStore->Token().TokenType().Type().iUid == KTokenTypeFileKeystore)
- {
- if (iAOArray.Count()==0)
- {
- RMPointerArray<CCTKeyInfo> keyInfos;
- CleanupClosePushL(keyInfos);
- TCTKeyAttributeFilter filter;
- TInt keyInfoCount = 0;
- filter.iPolicyFilter = TCTKeyAttributeFilter::EAllKeys;
- err = iWrapper->ListKeys(*iKeyStore, keyInfos, filter);
- ShowErrorNote(err);
- User::LeaveIfError(err);
- keyInfoCount = keyInfos.Count();
- for (TInt j = 0; j < keyInfoCount; j++)
- {
- // Check that keystore has at least one AO.
- if (NULL != keyInfos[j]->Protector())
- {
- // If keystore has AO, add it to the array.
- User::LeaveIfError(iAOArray.Append(keyInfos[j]->Protector()));
- break;
- }
- }
- CleanupStack::PopAndDestroy(&keyInfos); //keyInfos
- }
- }
- else
- {
- if (NULL == iAOList)
- {
- MCTTokenInterface* tokenInterface = NULL;
- err = iWrapper->GetAuthObjectInterface(
- iKeyStore->Token(), tokenInterface);
- if ( KErrNone != err || NULL == tokenInterface )
- {
- ShowErrorNote(err);
- User::Leave(err);
- }
- iAOList = (MCTAuthenticationObjectList*)tokenInterface;
- }
- }
- }
-// -----------------------------------------------------------------------------
-// CSecModUIModel::ListAuthObjectsL()
-// list the auth objects.
-// -----------------------------------------------------------------------------
-//
-void CSecModUIModel::ListAuthObjectsL()
- {
- RDEBUG("0", 0);
- if (0 >= iAOArray.Count())
- {
- __ASSERT_ALWAYS(iAOList, Panic(EPanicNullPointer));
- TInt err = iWrapper->ListAuthObjects(*iAOList, iAOArray);
- if (err)
- {
- ShowErrorNote(err);
- User::Leave(err);
- }
- }
- }
-
-// -----------------------------------------------------------------------------
-// CSecModUIModel::TokenLabelForTitle() const
-// Retrieves description of the token based on UID of the current active keystore.
-// -----------------------------------------------------------------------------
-//
-QString CSecModUIModel::TokenLabelForTitle() const
- {
- QString qLabel;
- if (iKeyStore->Token().TokenType().Type().iUid
- == KTokenTypeFileKeystore)
- {
- qLabel = "Phone keystore";
- }
- else
- {
- const TDesC& label = iKeyStore->Token().Label();
- qLabel = QString((QChar*)label.Ptr(),label.Length());
- }
- return qLabel;
- }
-
-// -----------------------------------------------------------------------------
-// CSecModUIModel::AuthStatus(TInt aIndex) const
-// Returns status of the selected auth object.
-// -----------------------------------------------------------------------------
-//
-TUint32 CSecModUIModel::AuthStatus(TInt aIndex) const
- {
- return iAOArray[aIndex]->Status();
- }
-
-// -----------------------------------------------------------------------------
-// CSecModUIModel::PINStatus( TInt aIndex, TBool aShowBlockedNote ) const
-// Returns status of the auth object based on its persistent properties set
-// by security module implementation.
-// -----------------------------------------------------------------------------
-//
-QString CSecModUIModel::PINStatus( TInt aIndex, TBool aShowBlockedNote ) const
- {
- RDEBUG("0", 0);
- __ASSERT_ALWAYS(aIndex < iAOArray.Count(), Panic(EPanicIndexOutOfRange));
- QString pinStatus;
- TUint32 status = iAOArray[aIndex]->Status();
-
- if (status & EAuthObjectBlocked)
- {
- if (aShowBlockedNote)
- {
- QString information = 0;
- if (status & EUnblockDisabled)
- {
- information = " totalblocked, contact your module vendor.";
- }
- else
- {
- information = " is blocked. PUK code is needed to unblock the code";
- }
- information.prepend(QString( (QChar*)(iAOArray[aIndex]->Label()).Ptr(),iAOArray[aIndex]->Label().Length() ) );
- HbMessageBox::information(information);
- }
- pinStatus = "Blocked";
- }
- else if ( PinOpen(aIndex) )
- {
- pinStatus = "Open";
- }
- else
- {
- pinStatus = "Closed";
- }
- return pinStatus;
- }
-
-// -----------------------------------------------------------------------------
-// CSecModUIModel::PinOpen(TInt aIndex) const
-// Checks whether the Pin is still available.
-// -----------------------------------------------------------------------------
-//
-TBool CSecModUIModel::PinOpen(TInt aIndex) const
- {
- __ASSERT_ALWAYS(aIndex < iAOArray.Count(), Panic(EPanicIndexOutOfRange));
- TInt timeRemaining = 0;
- TInt err = iWrapper->TimeRemaining(*(iAOArray[aIndex]), timeRemaining);
- TBool ret = ETrue;
- if ( 0 < timeRemaining )
- {
- ret = ETrue;
- }
- else if( timeRemaining == -1 )
- {
- ret = ETrue;
- }
- else
- {
- ret = EFalse;
- }
- return ret;
- }
-
-// -----------------------------------------------------------------------------
-// CSecModUIModel::ChangeOrUnblockPinL(TInt aIndex)
-// Based on the property of auth object the pin can be changed or unblocked.
-// -----------------------------------------------------------------------------
-//
-void CSecModUIModel::ChangeOrUnblockPinL(TInt aIndex)
- {
- RDEBUG("0", 0);
- __ASSERT_ALWAYS(aIndex < iAOArray.Count(), Panic(EPanicIndexOutOfRange));
- TUint32 status = iAOArray[aIndex]->Status();
-
- if ((status & EAuthObjectBlocked) && (status & EUnblockDisabled))
- {
- return; // We cannot do anything. PIN is total bolcked.
- }
- else if (status & EAuthObjectBlocked)
- {
- // Let's unblock the PIN
- UnblockPinL(aIndex);
- }
- else if (status & EEnabled)
- {
- // PIN is enabled. Let's change the PIN.
- ChangePinL(aIndex);
- }
- }
-
-// -----------------------------------------------------------------------------
-// CSecModUIModel::UnblockPinL(TInt aIndex)
-// Unblocks PIN.
-// -----------------------------------------------------------------------------
-//
-void CSecModUIModel::UnblockPinL(TInt aIndex)
- {
- __ASSERT_ALWAYS(aIndex < iAOArray.Count(), Panic(EPanicIndexOutOfRange));
- TInt err = iWrapper->UnblockAuthObject(*(iAOArray[aIndex]));
- if (KErrNone == err)
- {
- HbMessageBox::information("Code unblocked");
- }
- else
- {
- ShowErrorNote(err);
- }
- }
-
-// -----------------------------------------------------------------------------
-// CSecModUIModel::ChangePinL(TInt aIndex)
-// Changes the value of the PIN.
-// -----------------------------------------------------------------------------
-//
-void CSecModUIModel::ChangePinL(TInt aIndex)
- {
- RDEBUG("0", 0);
- __ASSERT_ALWAYS(aIndex < iAOArray.Count(), Panic(EPanicIndexOutOfRange));
- TInt err = KErrNone;
-
- err = iWrapper->ChangeReferenceData(*(iAOArray[aIndex]));
- if (err)
- {
- ShowErrorNote(err);
- }
- else
- {
- HbMessageBox::information("Code changed");
- }
- }
-
-// -----------------------------------------------------------------------------
-// CSecModUIModel::ChangeCodeRequestL(TInt aIndex)
-// Toggles the value of auth object if possible.
-// -----------------------------------------------------------------------------
-//
-TInt CSecModUIModel::ChangeCodeRequest(TInt aIndex)
- {
- __ASSERT_ALWAYS(aIndex < iAOArray.Count(), Panic(EPanicIndexOutOfRange));
- TUint32 status = iAOArray[aIndex]->Status();
- TInt err = KErrNone;
- if (status & EDisableAllowed && !(status & EAuthObjectBlocked))
- {
- if ( status & EEnabled )
- {
- err = iWrapper->DisableAuthObject(*(iAOArray[aIndex]));
- }
- else
- {
- err = iWrapper->EnableAuthObject(*(iAOArray[aIndex]));
- }
- ShowErrorNote(err);
- }
- return err;
- }
-
-// -----------------------------------------------------------------------------
-// CSecModUIModel::CloseAuthObjL(TInt aIndex)
-// If the auth object is open then closes it.
-// -----------------------------------------------------------------------------
-//
-void CSecModUIModel::CloseAuthObjL(TInt aIndex)
- {
- if (PinOpen(aIndex))
- {
- __ASSERT_ALWAYS(aIndex < iAOArray.Count(), Panic(EPanicIndexOutOfRange));
- TInt err = iWrapper->CloseAuthObject(*(iAOArray[aIndex]));
- if (err)
- {
- ShowErrorNote(err);
- User::Leave(err);
- }
- }
- }
-
-// -----------------------------------------------------------------------------
-// CSecModUIModel::DeleteKeysL(TInt aTokenIndex)
-// Deletes key from the appropriate keystore.
-// -----------------------------------------------------------------------------
-//
-void CSecModUIModel::DeleteKeysL(TInt aTokenIndex)
- {
- RDEBUG("0", 0);
- __ASSERT_ALWAYS(aTokenIndex < iAOKeyStores.Count(), Panic(EPanicIndexOutOfRange));
- RMPointerArray<CCTKeyInfo> keyInfos;
- CleanupClosePushL(keyInfos);
- TCTKeyAttributeFilter filter;
- filter.iPolicyFilter = TCTKeyAttributeFilter::EAllKeys;
- TInt err = iWrapper->ListKeys(*iAOKeyStores[aTokenIndex], keyInfos, filter);
- ShowErrorNote(err);
- User::LeaveIfError(err);
- for (TInt i = 0; i < keyInfos.Count(); ++i)
- {
- err = iWrapper->DeleteKey(*iUnifiedKeyStore, keyInfos[i]->Handle());
- ShowErrorNote(err);
-
- if (KErrHardwareNotAvailable == err )
- {
- break; // Break the loop, if keystore not available
- }
- }
- CleanupStack::PopAndDestroy(&keyInfos); //keyInfos
- ResetAndDestroyCTObjects();
- InitializeKeyStoreL();
- }
-
-// -----------------------------------------------------------------------------
-// CSecModUIModel::SecModDetailsL(TInt aTokenIndex)
-// Retrieve security module details and cleansup all currently held auth objects.
-// -----------------------------------------------------------------------------
-//
-QVector< QPair<QString,QString> > CSecModUIModel::SecModDetailsL(TInt aTokenIndex)
- {
- iKeyStore = iAOKeyStores[aTokenIndex];
- InitAuthObjectsL();
- ListAuthObjectsL();
- QVector< QPair<QString,QString> > securityDetails = GetSecModDetailsL();
- iKeyStore = NULL; // not owned
- if (iAOList)
- {
- iAOList->Release();
- iAOList = NULL;
- }
- iAOArray.Reset();
- return securityDetails;
- }
-
-// -----------------------------------------------------------------------------
-// CSecModUIModel::GetSecModDetailsL()
-// Retrieve security module details.
-// -----------------------------------------------------------------------------
-//
-QVector< QPair<QString,QString> > CSecModUIModel::GetSecModDetailsL()
- {
- RDEBUG("0", 0);
- MCTToken& token = iKeyStore->Token();
- QVector< QPair<QString,QString> > securityModDetails;
-
- if (token.TokenType().Type().iUid == KTokenTypeFileKeystore)
- {
- QPair<QString,QString> name("Name:","Phone keystore");
- securityModDetails.append(name);
- }
- else
- {
- QPair<QString,QString> name("Name:","(No label)");
- securityModDetails.append(name);
- }
-
- AppendItem(securityModDetails, "Version:", token.Information( MCTToken::EVersion ), "(Not defined)" );
- AppendLocation(securityModDetails, token.TokenType().Type(), QString("Security module location:"));
-
- if (token.TokenType().Type().iUid == KTokenTypeFileKeystore)
- {
- QPair<QString,QString> accessCode("Access code:","Phone keystore code");
- securityModDetails.append(accessCode);
- }
- else
- {
- AppendItem(securityModDetails, "Access code:", iAOArray[0]->Label(), "Access code:" );
- }
-
- AppendPinNRs(securityModDetails);
-
- AppendItem( securityModDetails, "Serial number:",
- token.Information( MCTToken::ESerialNo),
- "(Not defined)");
-
- AppendItem( securityModDetails, "Manufacturer:",
- token.Information( MCTToken::EManufacturer),
- "(Not defined)");
- return securityModDetails;
- }
-
-// -----------------------------------------------------------------------------
-// CSecModUIModel::AppendLocation()
-// Appends the location of the keystore.
-// -----------------------------------------------------------------------------
-//
-void CSecModUIModel::AppendLocation( QVector< QPair<QString,QString> >& aSecModDetails,
- TUid aLocUid,
- QString aCertDisplayDetails )
- {
- QString locationDetails = "(Not defined)";
-
- switch ( aLocUid.iUid )
- {
- case KTokenTypeFileKeystore:
- locationDetails = "Phone memory";
- break;
-
- case KWIMStoreUid:
- locationDetails = "Smart card";
- break;
-
- default:
- break;
- }
- aSecModDetails.append(QPair<QString,QString>(aCertDisplayDetails, locationDetails));
- }
-
-// -----------------------------------------------------------------------------
-// CSecModUIModel::AppendItem()
-// Appends the value of a label if present otherwise appends empty descriotion.
-// -----------------------------------------------------------------------------
-//
-void CSecModUIModel::AppendItem( QVector< QPair<QString,QString> >& aSecModDetails,
- QString aLabel,
- const TDesC& aValue,
- QString aNullDescription)
- {
- RDEBUG("0", 0);
- if( aValue.Length() == 0 )
- {
- aSecModDetails.append(QPair<QString,QString>(aLabel, aNullDescription));
- }
- else
- {
- QString value = QString((QChar*) aValue.Ptr(),aValue.Length());
- aSecModDetails.append(QPair<QString,QString>(aLabel, value));
- }
- }
-
-// -------------------------------------------------------------------------------
-// CSecModUIModel::AppendPinNRs(QVector< QPair<QString,QString> >& aSecModDetails)
-// Generate details of signing security module.
-// -------------------------------------------------------------------------------
-//
-void CSecModUIModel::AppendPinNRs(QVector< QPair<QString,QString> >& aSecModDetails)
- {
- TInt pinCount = iAOArray.Count();
- TInt j = 0;
-
- for (TInt i=1; i<pinCount; i++)
- {
- QString noLabelDetails = "Signing code ";
- const TDesC& label = iAOArray[i]->Label();
- if(label.Length() == 0)
- {
- noLabelDetails.append(++j);
- }
- QString signingCode = "Signing code:";
- AppendItem(aSecModDetails, signingCode , iAOArray[i]->Label(), noLabelDetails);
- }
- }
-
-// -----------------------------------------------------------------------------
-// CSecModUIModel::AuthDetails() const
-// Return the list of pair of description and status of each auth object.
-// -----------------------------------------------------------------------------
-//
-QVector<QPair<QString, TUint32> > CSecModUIModel::AuthDetails()
- {
- QVector<QPair<QString, TUint32> > authDetails;
-
- // Here is assumed that the first AO is always PIN-G
- for (TInt i = 1; i < iAOArray.Count(); i++)
- {
- const TDesC& label = iAOArray[i]->Label();
- TUint32 status = iAOArray[i]->Status();
- QString sLabel = QString((QChar*) label.Ptr(), label.Length());
- QPair<QString, TUint32> pair(sLabel, status);
- authDetails.append(pair);
- }
- return authDetails;
- }
-
-// -----------------------------------------------------------------------------
-// CSecModUIModel::ChangePinNrL(TInt aIndex)
-// Change the pin value for the singing module.
-// -----------------------------------------------------------------------------
-//
-void CSecModUIModel::ChangePinNrL(TInt aIndex)
- {
- RDEBUG("0", 0);
- ChangePinL(aIndex+1);
- }
-
-
-// -----------------------------------------------------------------------------
-// CSecModUIModel::UnblockPinNrL(TInt aIndex)
-// Unblock the value for the signing code module.
-// -----------------------------------------------------------------------------
-//
-void CSecModUIModel::UnblockPinNrL(TInt aIndex)
- {
- UnblockPinL(aIndex+1);
- }
-
-// -----------------------------------------------------------------------------
-// CSecModUIModel::KeyStoreUID()
-// Retrieves the UID of the current active keystore.
-// -----------------------------------------------------------------------------
-//
-TInt CSecModUIModel::KeyStoreUID()
- {
- return iKeyStore->Token().TokenType().Type().iUid;
- }
-
-// -----------------------------------------------------------------------------
-// CSecModUIModel::AuthObj(TInt aIndex)
-// Retrieves the auth object at the speficied index.
-// -----------------------------------------------------------------------------
-//
-const MCTAuthenticationObject& CSecModUIModel::AuthObj(TInt aIndex)
- {
- return *iAOArray[aIndex];
- }
-
-// -----------------------------------------------------------------------------
-// CSecModUIModel::PinChangeable(TInt aIndex) const
-// Returns the status accordingly if the pin is changeable or not.
-// -----------------------------------------------------------------------------
-//
-TBool CSecModUIModel::PinChangeable(TInt aIndex) const
- {
- RDEBUG("0", 0);
- __ASSERT_ALWAYS(aIndex < iAOArray.Count(), Panic(EPanicIndexOutOfRange));
- TUint32 status = iAOArray[aIndex]->Status();
- TBool ret = ETrue;
- if ( (status & EAuthObjectBlocked) || (status & EChangeDisabled) )
- {
- ret = EFalse;
- }
- else if ( status & EEnabled )
- {
- ret = ETrue;
- }
- else // PIN is disabled;
- {
- ret = EFalse;
- }
- return ret;
- }
-
-// -----------------------------------------------------------------------------
-// CSecModUIModel::PinUnblockable(TInt aIndex) const
-// Returns the status accordingly if the pin is unblockable or not.
-// -----------------------------------------------------------------------------
-//
-TBool CSecModUIModel::PinUnblockable(TInt aIndex) const
- {
- TUint32 status = iAOArray[aIndex]->Status();
- TBool ret = ETrue;
- if ( status & EUnblockDisabled )
- {
- ret = EFalse;
- }
- else if ( status & EAuthObjectBlocked )
- {
- ret = ETrue;
- }
- else // PIN is not blocked;
- {
- ret = EFalse;
- }
- return ret;
- }
-
-// -----------------------------------------------------------------------------
-// CSecModUIModel::PinRequestChangeable(TInt aIndex) const
-// Returns the status accordingly if the pin is changeable or not.
-// -----------------------------------------------------------------------------
-//
-TBool CSecModUIModel::PinRequestChangeable(TInt aIndex) const
- {
- RDEBUG("0", 0);
- __ASSERT_ALWAYS(aIndex < iAOArray.Count(), Panic(EPanicIndexOutOfRange));
- TUint32 status = iAOArray[aIndex]->Status();
- TBool ret = EFalse;
- if ( status & EAuthObjectBlocked )
- {
- ret = EFalse;
- }
- else if ( status & EDisableAllowed )
- {
- ret = ETrue;
- }
- else // Disable not allowed;
- {
- ret = EFalse;
- }
- return ret;
- }
-
-// -----------------------------------------------------------------------------
-// CSecModUIModel::IsTokenDeletable(TInt aTokenIndex)
-// Returns the status accordingly if the token is deletable or not.
-// -----------------------------------------------------------------------------
-//
-TBool CSecModUIModel::IsTokenDeletable(TInt aTokenIndex)
- {
- __ASSERT_ALWAYS(aTokenIndex < iAOKeyStores.Count(), Panic(EPanicIndexOutOfRange));
- TBool ret = EFalse;
- if (iAOKeyStores[aTokenIndex]->Token().TokenType().Type().iUid
- == KTokenTypeFileKeystore)
- {
- ret = ETrue;
- }
- else
- {
- ret = EFalse;
- }
- return ret;
- }
-
-// End of File
-
-
--- a/cpsecplugins/cpadvancedsecplugin/src/cpsecmodsyncwrapper.cpp Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,401 +0,0 @@
-/*
-* 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: Implementation of the CSecModUISyncWrapper class
-* Implements a synchronous wrapper for easier use of Symbian's
-* Security Frameworks's API's.
-*
-*/
-
-
-#include "cpsecmodsyncwrapper.h"
-#include <ct/ccttokentypeinfo.h>
-#include <ct/mcttokentype.h>
-#include <ct/ccttokentype.h>
-#include <ct/tcttokenobjecthandle.h>
-#include <mctauthobject.h>
-#include <unifiedkeystore.h>
-#include <mctkeystore.h>
-#include <../../inc/cpsecplugins.h>
-
-
-// ============================ MEMBER FUNCTIONS ===============================
-
-// -----------------------------------------------------------------------------
-// CSecModUISyncWrapper::CSecModUISyncWrapper()
-// C++ default constructor can NOT contain any code, that
-// might leave.
-// -----------------------------------------------------------------------------
-//
-CSecModUISyncWrapper::CSecModUISyncWrapper() : CActive( EPriorityStandard )
- {
- CActiveScheduler::Add(this);
- }
-
-
-// -----------------------------------------------------------------------------
-// CSecModUISyncWrapper::NewLC
-// Two-phased constructor.
-// -----------------------------------------------------------------------------
-//
-CSecModUISyncWrapper* CSecModUISyncWrapper::NewLC()
- {
- CSecModUISyncWrapper* wrap = new (ELeave) CSecModUISyncWrapper();
- CleanupStack::PushL(wrap);
- return wrap;
- }
-
-// -----------------------------------------------------------------------------
-// CSecModUISyncWrapper::NewL
-// Two-phased constructor.
-// -----------------------------------------------------------------------------
-//
-CSecModUISyncWrapper* CSecModUISyncWrapper::NewL()
- {
- RDEBUG("0", 0);
- CSecModUISyncWrapper* wrap = CSecModUISyncWrapper::NewLC();
- CleanupStack::Pop(wrap);
- return wrap;
- }
-
-// Destructor
-CSecModUISyncWrapper::~CSecModUISyncWrapper()
- {
- Cancel();
- iOperation = EOperationNone;
- }
-
-// -----------------------------------------------------------------------------
-// CSecModUISyncWrapper::Initialize(CUnifiedKeyStore& aKeyStore)
-// Two-phased constructor.
-// -----------------------------------------------------------------------------
-//
-
-TInt CSecModUISyncWrapper::Initialize(CUnifiedKeyStore& aKeyStore)
- {
- if( !IsActive() && !iWait.IsStarted() )
- {
- iOperation = EOperationInit;
- iObject = STATIC_CAST(TAny*, &aKeyStore);
- aKeyStore.Initialize(iStatus);
- SetActive();
- iWait.Start();
- iOperation = EOperationNone;
- return iStatus.Int();
- }
- return KErrInUse;
- }
-
-// -----------------------------------------------------------------------------
-// CSecModUIModel::GetAuthObjectInterface(...)
-// -----------------------------------------------------------------------------
-//
-TInt CSecModUISyncWrapper::GetAuthObjectInterface(
- MCTToken& aToken, MCTTokenInterface*& aTokenInterface)
- {
- RDEBUG("0", 0);
- if( !IsActive() && !iWait.IsStarted() )
- {
- iOperation = EOperationGetAOInterface;
- iObject = STATIC_CAST(TAny*, &aToken);
- const TUid KUidInterfaceAO = { KCTInterfaceAuthenticationObject };
- aToken.GetInterface(KUidInterfaceAO, aTokenInterface, iStatus);
- iOperation = EOperationGetAOInterface;
- SetActive();
- iWait.Start();
- iOperation = EOperationNone;
- return iStatus.Int();
- }
- return KErrInUse;
- }
-
-// -----------------------------------------------------------------------------
-// CSecModUISyncWrapper::ListAuthObjects(...)
-// -----------------------------------------------------------------------------
-//
-TInt CSecModUISyncWrapper::ListAuthObjects(
- MCTAuthenticationObjectList& aAuthObjList,
- RMPointerArray<MCTAuthenticationObject>& aAuthObjects)
- {
- if( !IsActive() && !iWait.IsStarted() )
- {
- iOperation = EOperationListAOs;
- iObject = STATIC_CAST(TAny*, &aAuthObjList);
- aAuthObjList.List( aAuthObjects, iStatus );
- iOperation = EOperationListAOs;
- SetActive();
- iWait.Start();
- iOperation = EOperationNone;
- return iStatus.Int();
- }
- return KErrInUse;
- }
-
-// -----------------------------------------------------------------------------
-// CSecModUISyncWrapper::ListKeys(...)
-// -----------------------------------------------------------------------------
-//
-TInt CSecModUISyncWrapper::ListKeys(
- MCTKeyStore& aKeyStore,
- RMPointerArray<CCTKeyInfo>& aKeysInfos,
- const TCTKeyAttributeFilter& aFilter)
- {
- RDEBUG("0", 0);
- if( !IsActive() && !iWait.IsStarted() )
- {
- iOperation = EOperationListKeys;
- iObject = STATIC_CAST(TAny*, &aKeyStore);
- aKeyStore.List(aKeysInfos, aFilter, iStatus);
- SetActive();
- iWait.Start();
- iOperation = EOperationNone;
- return iStatus.Int();
- }
- return KErrInUse;
- }
-
-// -----------------------------------------------------------------------------
-// CSecModUISyncWrapper::DeleteKey(...)
-// -----------------------------------------------------------------------------
-//
-TInt CSecModUISyncWrapper::DeleteKey(
- CUnifiedKeyStore& aKeyStore,
- TCTTokenObjectHandle aHandle)
- {
- RDEBUG("0", 0);
- if( !IsActive() && !iWait.IsStarted() )
- {
- iOperation = EOperationDelKey;
- iObject = STATIC_CAST(TAny*, &aKeyStore);
- aKeyStore.DeleteKey(aHandle, iStatus);
- SetActive();
- iWait.Start();
- iOperation = EOperationNone;
- return iStatus.Int();
- }
- return KErrInUse;
- }
-
-// -----------------------------------------------------------------------------
-// CSecModUISyncWrapper::ChangeReferenceData(MCTAuthenticationObject& aAuthObject)
-// -----------------------------------------------------------------------------
-//
-TInt CSecModUISyncWrapper::ChangeReferenceData(
- MCTAuthenticationObject& aAuthObject)
- {
- RDEBUG("0", 0);
- if( !IsActive() && !iWait.IsStarted() )
- {
- iOperation = EOperationChangeReferenceData;
- iObject = STATIC_CAST(TAny*, &aAuthObject);
- aAuthObject.ChangeReferenceData(iStatus);
- SetActive();
- iWait.Start();
- iOperation = EOperationNone;
- return iStatus.Int();
- }
- return KErrInUse;
- }
-
-// -----------------------------------------------------------------------------
-// CSecModUIModel::UnblockAuthObject(MCTAuthenticationObject& aAuthObject)
-// -----------------------------------------------------------------------------
-//
-TInt CSecModUISyncWrapper::UnblockAuthObject(
- MCTAuthenticationObject& aAuthObject)
- {
- RDEBUG("0", 0);
- if( !IsActive() && !iWait.IsStarted() )
- {
- iOperation = EOperationUnblockAO;
- iObject = STATIC_CAST(TAny*, &aAuthObject);
- aAuthObject.Unblock(iStatus);
- SetActive();
- iWait.Start();
- iOperation = EOperationNone;
- return iStatus.Int();
- }
- return KErrInUse;
- }
-
-// -----------------------------------------------------------------------------
-// CSecModUIModel::EnableAuthObject(MCTAuthenticationObject& aAuthObject)
-// -----------------------------------------------------------------------------
-//
-TInt CSecModUISyncWrapper::EnableAuthObject(
- MCTAuthenticationObject& aAuthObject)
- {
- RDEBUG("0", 0);
- if( !IsActive() && !iWait.IsStarted() )
- {
- iOperation = EOperationEnableAO;
- iObject = STATIC_CAST(TAny*, &aAuthObject);
- aAuthObject.Enable(iStatus);
- iOperation = EOperationUnblockAO;
- SetActive();
- iWait.Start();
- iOperation = EOperationNone;
- return iStatus.Int();
- }
- return KErrInUse;
- }
-
-// -----------------------------------------------------------------------------
-// CSecModUIModel::DisableAuthObject(MCTAuthenticationObject& aAuthObject)
-// -----------------------------------------------------------------------------
-//
-TInt CSecModUISyncWrapper::DisableAuthObject(
- MCTAuthenticationObject& aAuthObject)
- {
- if( !IsActive() && !iWait.IsStarted() )
- {
- iOperation = EOperationDisableAO;
- iObject = STATIC_CAST(TAny*, &aAuthObject);
- aAuthObject.Disable(iStatus);
- SetActive();
- iWait.Start();
- iOperation = EOperationNone;
- return iStatus.Int();
- }
- return KErrInUse;
- }
-
-// -----------------------------------------------------------------------------
-// CSecModUISyncWrapper::CloseAuthObject(MCTAuthenticationObject& aAuthObject)
-// -----------------------------------------------------------------------------
-//
-TInt CSecModUISyncWrapper::CloseAuthObject(
- MCTAuthenticationObject& aAuthObject)
- {
- if( !IsActive() && !iWait.IsStarted() )
- {
- iOperation = EOperationCloseAO;
- iObject = STATIC_CAST(TAny*, &aAuthObject);
- aAuthObject.Close(iStatus);
- SetActive();
- iWait.Start();
- iOperation = EOperationNone;
- return iStatus.Int();
- }
- return KErrInUse;
- }
-
-// -----------------------------------------------------------------------------
-// CSecModUIModel::TimeRemaining(...)
-// -----------------------------------------------------------------------------
-//
-TInt CSecModUISyncWrapper::TimeRemaining(
- MCTAuthenticationObject& aAuthObject,
- TInt& aStime )
- {
- RDEBUG("0", 0);
- if( !IsActive() && !iWait.IsStarted() )
- {
- iOperation = EOperationTimeRemAO;
- iObject = STATIC_CAST(TAny*, &aAuthObject);
- aAuthObject.TimeRemaining(aStime, iStatus);
- SetActive();
- iWait.Start();
- iOperation = EOperationNone;
- return iStatus.Int();
- }
- return KErrInUse;
- }
-
-// -----------------------------------------------------------------------------
-// CSecModUISyncWrapper::DoCancel
-// Cancels the ongoing operation if possible.
-// -----------------------------------------------------------------------------
-//
-void CSecModUISyncWrapper::DoCancel()
- {
- RDEBUG("iOperation", iOperation);
- switch ( iOperation )
- {
- case EOperationInit:
- {
- STATIC_CAST(CUnifiedKeyStore*, iObject)->CancelInitialize();
- break;
- }
- case EOperationGetAOInterface:
- {
- STATIC_CAST(MCTToken*, iObject)->CancelGetInterface();
- break;
- }
- case EOperationListAOs:
- {
- STATIC_CAST(MCTAuthenticationObjectList*, iObject)->CancelList();
- break;
- }
- case EOperationListKeys:
- {
- STATIC_CAST(MCTKeyStore*, iObject)->CancelList();
- break;
- }
- case EOperationDelKey:
- {
- STATIC_CAST(CUnifiedKeyStore*, iObject)->CancelDeleteKey();
- break;
- }
- case EOperationChangeReferenceData:
- {
- STATIC_CAST(MCTAuthenticationObject*, iObject)->
- CancelChangeReferenceData();
- break;
- }
- case EOperationUnblockAO:
- {
- STATIC_CAST(MCTAuthenticationObject*, iObject)->CancelUnblock();
- break;
- }
- case EOperationEnableAO:
- {
- STATIC_CAST(MCTAuthenticationObject*, iObject)->CancelEnable();
- break;
- }
- case EOperationDisableAO:
- {
- STATIC_CAST(MCTAuthenticationObject*, iObject)->CancelDisable();
- break;
- }
- case EOperationCloseAO:
- {
- STATIC_CAST(MCTAuthenticationObject*, iObject)->CancelClose();
- break;
- }
- case EOperationTimeRemAO:
- {
- STATIC_CAST(MCTAuthenticationObject*, iObject)->CancelTimeRemaining();
- break;
- }
- default:
- {
- break;
- }
- }
- if (iWait.IsStarted())
- {
- iWait.AsyncStop();
- }
- }
-
-// -----------------------------------------------------------------------------
-// CSecModUISyncWrapper::RunL
-// If no errors happened, stop. Show an error note if needed.
-// -----------------------------------------------------------------------------
-//
-void CSecModUISyncWrapper::RunL()
- {
- iWait.AsyncStop();
- }
-
--- a/cpsecplugins/cpadvancedsecplugin/src/cpsecmoduleinfoview.cpp Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,86 +0,0 @@
-
-/*
-* Copyright (c) 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:
-*
-*/
-
-#include <QStringList>
-#include <QGraphicsLinearLayout>
-#include <QModelIndex>
-
-#include <hblineedit.h>
-#include <hbdataform.h>
-#include <hbdataformmodel.h>
-#include <hbdataformmodelitem.h>
-#include <hblabel.h>
-#include <hbpushbutton.h>
-#include <hbmenu.h>
-#include <hbaction.h>
-#include <hbmessagebox.h>
-#include <HbListWidget>
-#include <HbListWidgetItem>
-#include <HbGroupBox>
-#include <hbpushbutton.h>
-#include <hbdataform.h>
-#include <hbdataformmodel.h>
-#include <hbdataformmodelitem.h>
-#include <hbabstractviewitem.h>
-#include <hbtextitem.h>
-#include <hbmainwindow.h>
-#include <hblistview.h>
-#include <QStandardItemModel>
-#include <QModelIndexList>
-
-#include <memory>
-#include <../../inc/cpsecplugins.h>
-#include "cpsecmoduleinfoview.h"
-
-
-CpSecmoduleInfoView::CpSecmoduleInfoView(const QVector< QPair<QString,QString> >& securityDetails, QGraphicsItem *parent /*= 0*/)
- : CpBaseSettingView(0,parent)
- {
- RDEBUG("0", 0);
- setTitle(tr("Module info"));
-
- std::auto_ptr<QGraphicsLinearLayout> layout(q_check_ptr(new QGraphicsLinearLayout(Qt::Vertical)));
- HbListWidget* listSecurityDetails = q_check_ptr(new HbListWidget(this));
-
- QVectorIterator< QPair<QString, QString> > secDetIter(securityDetails);
- while(secDetIter.hasNext())
- {
- QPair<QString,QString> pair = secDetIter.next();
-
- std::auto_ptr<HbListWidgetItem> label(q_check_ptr(new HbListWidgetItem()));
- label->setText(pair.first);
- listSecurityDetails->addItem(label.get());
- label.release();
-
- std::auto_ptr<HbListWidgetItem> description(q_check_ptr(new HbListWidgetItem()));
- description->setText(pair.second);
- listSecurityDetails->addItem(description.get());
- description.release();
- }
-
- layout->addItem(listSecurityDetails);
- setLayout(layout.get());
- layout.release();
- RDEBUG("0", 0);
- }
-
-CpSecmoduleInfoView::~CpSecmoduleInfoView()
- {}
-
-// End of file
-
--- a/cpsecplugins/cpadvancedsecplugin/src/cpsecmodview.cpp Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,143 +0,0 @@
-/*
-* Copyright (c) 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:
-*
-*/
-
-#include <mctauthobject.h>
-
-
-#include <qstringlist.h>
-#include <qgraphicslinearlayout.h>
-
-#include <hblineedit.h>
-#include <hbdataform.h>
-#include <hbdataformmodel.h>
-#include <hbdataformmodelitem.h>
-#include <hblabel.h>
-#include <hbpushbutton.h>
-#include <hbmenu.h>
-#include <hbaction.h>
-#include <hbmessagebox.h>
-#include <hblistwidget.h>
-#include <hblistwidgetitem.h>
-#include <hbgroupbox.h>
-#include <hbpushbutton.h>
-#include <hbdataform.h>
-#include <hbdataformmodel.h>
-#include <hbdataformmodelitem.h>
-#include <hbabstractviewitem.h>
-#include <hbmainwindow.h>
-#include <HbMessageBox>
-
-#include <memory>
-#include <../../inc/cpsecplugins.h>
-#include "cpsecmodview.h"
-#include "cpsecmodmodel.h"
-#include "cpmoduleview.h"
-
-CpSecModView::CpSecModView(TInt currentPos, CSecModUIModel& secModUIModel, QGraphicsItem *parent /*= 0*/)
-: CpBaseSettingView(0,parent),
- mSecModUIModel(secModUIModel),
- mPos(currentPos),
- mCurrentView(EAccessView),
- mAccessView(NULL),
- mPrevView(NULL)
- {
- RDEBUG("0", 0);
- try
- {
- QT_TRAP_THROWING(mSecModUIModel.OpenTokenL(mPos));
- QString title = mSecModUIModel.TokenLabelForTitle();
- setTitle(title);
-
- TInt count = 0;
- // display code view
- QT_TRAP_THROWING(count = mSecModUIModel.CheckCodeViewStringsL());
-
- std::auto_ptr<QGraphicsLinearLayout> layout(q_check_ptr(new QGraphicsLinearLayout(Qt::Vertical)));
- HbListWidget* listSecView = q_check_ptr(new HbListWidget(this));
-
- std::auto_ptr<HbListWidgetItem> moduleWidget(q_check_ptr(new HbListWidgetItem()));
- moduleWidget->setText("\tModule PIN");
- listSecView->addItem(moduleWidget.get());
- moduleWidget.release();
- RDEBUG("count", count);
- if( count == 2 )
- {
- std::auto_ptr<HbListWidgetItem> signingWidget(q_check_ptr(new HbListWidgetItem()));
- signingWidget->setText("\tSigning PIN");
- listSecView->addItem(signingWidget.get());
- signingWidget.release();
- }
-
- connect(listSecView, SIGNAL(activated(QModelIndex)), this, SLOT(showNextView(QModelIndex)));
-
- layout->addItem(listSecView);
- setLayout(layout.get());
- layout.release();
- }
- catch(const std::exception& exception)
- {
- QString error(exception.what());
- HbMessageBox::information(error);
- QT_RETHROW;
- }
- }
-
-CpSecModView::~CpSecModView()
- {
- if(mAccessView)
- {
- mAccessView->deleteLater();
- mAccessView = NULL;
- }
- if(mPrevView)
- {
- mPrevView->deleteLater();
- mPrevView = NULL;
- }
- }
-
-
-void CpSecModView::showNextView( const QModelIndex& modelIndex )
- {
- RDEBUG("0", 0);
- try
- {
- mAccessView = q_check_ptr(new CpModuleView((TSecModViews)modelIndex.row(),mSecModUIModel));
- QObject::connect(mAccessView , SIGNAL(aboutToClose()), this, SLOT(displayPrevious()));
- mPrevView = mainWindow()->currentView(); //suppose iPreView is member variable of CpSecurityView
- mainWindow()->addView(mAccessView);
- mainWindow()->setCurrentView(mAccessView);
- }
- catch(const std::exception& exception)
- {
- HbMessageBox::information(exception.what());
- }
- }
-
-void CpSecModView::displayPrevious()
- {
- RDEBUG("0", 0);
- try
- {
- mainWindow()->removeView(mAccessView);
- }
- catch(const std::exception& exception)
- {
- HbMessageBox::information(exception.what());
- }
- }
-
--- a/cpsecplugins/cpadvancedsecplugin/src/cpsecurityview.cpp Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,388 +0,0 @@
-/*
-* Copyright (c) 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:
-*
-*/
-
-#include <QStringList>
-#include <QGraphicsLinearLayout>
-#include <qlist.h>
-#include <qstring.h>
-#include <qvector.h>
-#include <qpair.h>
-
-#include <hblineedit.h>
-#include <hbdataform.h>
-#include <hbdataformmodel.h>
-#include <hbdataformmodelitem.h>
-#include <hblabel.h>
-#include <hbpushbutton.h>
-#include <hbmenu.h>
-#include <hbaction.h>
-#include <hbmessagebox.h>
-#include <HbListWidget>
-#include <HbListWidgetItem>
-#include <HbGroupBox>
-#include <hbpushbutton.h>
-#include <hbmainwindow.h>
-#include <hbabstractviewitem.h>
-#include <HbMessageBox>
-
-#include <memory>
-
-#include <../../inc/cpsecplugins.h>
-
-#include "cpsecurityview.h"
-#include "cpsecmodview.h"
-#include "cpcertview.h"
-#include "cpsecmodmodel.h"
-#include "cpsecmoduleinfoview.h"
-
-CpSecurityView::CpSecurityView(QGraphicsItem *parent /*= 0*/)
- : CpBaseSettingView(0,parent),
- mSecModUIModel(NULL),
- mSecModView(NULL),
- mPreView(NULL),
- mCertView(NULL),
- mCurrentView(NULL),
- mPos(0),
- mNote(NULL)
- {
- RDEBUG("0", 0);
- setTitle(hbTrId("txt_certificate_manager_setlabel_advanced_security"));
-
- std::auto_ptr<QGraphicsLinearLayout> layout(q_check_ptr(new QGraphicsLinearLayout(Qt::Vertical)));
- HbListWidget* listCertView = q_check_ptr(new HbListWidget(this));
-
- std::auto_ptr<HbListWidgetItem> authcert(q_check_ptr(new HbListWidgetItem()));
- authcert->setText(hbTrId("txt_certificate_manager_list_authority_certificate"));
-
- std::auto_ptr<HbListWidgetItem> trustedsitecert(q_check_ptr(new HbListWidgetItem()));
- trustedsitecert->setText(hbTrId("txt_certificate_manager_list_trusted_site_certific"));
-
- std::auto_ptr<HbListWidgetItem> personalcert(q_check_ptr(new HbListWidgetItem()));
- personalcert->setText(hbTrId("txt_certificate_manager_list_personal_certificates"));
-
- std::auto_ptr<HbListWidgetItem> devicecert(q_check_ptr(new HbListWidgetItem()));
- devicecert->setText(hbTrId("txt_certificate_manager_list_device_certificates"));
-
- listCertView->addItem(authcert.get());
- authcert.release();
- listCertView->addItem(trustedsitecert.get());
- trustedsitecert.release();
- listCertView->addItem(personalcert.get());
- personalcert.release();
- listCertView->addItem(devicecert.get());
- devicecert.release();
-
- connect(listCertView, SIGNAL(released(QModelIndex)), this, SLOT(displayCert(QModelIndex)));
-
- HbListWidget* listSecView = q_check_ptr(new HbListWidget(this));
- QMap<QString,QString> keystoreLabels;
- RDEBUG("0", 0);
- try
- {
- QT_TRAP_THROWING(
- mSecModUIModel = CSecModUIModel::NewL();
- keystoreLabels = mSecModUIModel->LoadTokenLabelsL(); )
- }
- catch(const std::exception& exception)
- {
- QString error(exception.what());
- HbMessageBox::information(error);
- QT_RETHROW;
- }
-
- QMapIterator<QString, QString> labelIter(keystoreLabels);
- if(keystoreLabels.count() != 0)
- {
- while(labelIter.hasNext())
- {
- labelIter.next();
- std::auto_ptr<HbListWidgetItem> widget(q_check_ptr(new HbListWidgetItem()));
- widget->setText(labelIter.key());
- widget->setSecondaryText(labelIter.value());
- listSecView->addItem(widget.get());
- widget.release();
- }
- connect(listSecView, SIGNAL(activated(QModelIndex)), this, SLOT(showCodeView(QModelIndex)));
- connect(listSecView, SIGNAL(longPressed(HbAbstractViewItem*, QPointF )), this, SLOT(indicateLongPress(HbAbstractViewItem*, QPointF)));
- }
- else
- {
- std::auto_ptr<HbListWidgetItem> emptyWidget(q_check_ptr(new HbListWidgetItem()));
- emptyWidget->setText("(no security modules)");
- listSecView->addItem(emptyWidget.get());
- emptyWidget.release();
- }
- RDEBUG("0", 0);
- std::auto_ptr<HbGroupBox> certificatesList(q_check_ptr(new HbGroupBox()));
- certificatesList->setHeading(hbTrId("txt_certificate_manager_setlabel_certificates"));
- certificatesList->setContentWidget(listCertView);
- certificatesList->setCollapsed(true);
- layout->addItem(certificatesList.get());
- certificatesList.release();
-
- std::auto_ptr<HbGroupBox> protectedContentList(q_check_ptr(new HbGroupBox()));
- protectedContentList->setHeading("Protected Content");
- protectedContentList->setCollapsed(true);
- layout->addItem(protectedContentList.get());
- protectedContentList.release();
-
- std::auto_ptr<HbGroupBox> securityModuleList(q_check_ptr(new HbGroupBox()));
- securityModuleList->setHeading("Security Module");
- securityModuleList->setContentWidget(listSecView);
- securityModuleList->setCollapsed(true);
- layout->addItem(securityModuleList.get());
- securityModuleList.release();
-
- mContextMenu = q_check_ptr(new HbMenu());
-
- setLayout(layout.get());
- layout.release();
- }
-
-
-CpSecurityView::~CpSecurityView()
- {
- if(mSecModView)
- {
- mSecModView->deleteLater();
- }
-
- if(mPreView)
- {
- mPreView->deleteLater();
- }
-
- if(mCertView)
- {
- mCertView->deleteLater();
- }
-
- if(mCurrentView)
- {
- mCurrentView->deleteLater();
- }
-
- delete mSecModUIModel;
-
- delete mNote;
- delete mContextMenu;
- }
-
-void CpSecurityView::showCodeView()
- {
- RDEBUG("0", 0);
- try
- {
- mSecModView = q_check_ptr(new CpSecModView(mPos, *mSecModUIModel));
- QObject::connect(mSecModView , SIGNAL(aboutToClose()), this, SLOT(viewDone()));
- mPreView = mainWindow()->currentView(); //suppose mPreView is member variable of CpSecurityView
- mainWindow()->addView(mSecModView);
- mainWindow()->setCurrentView(mSecModView);
- }
- catch(const std::exception& exception)
- {
- HbMessageBox::information(exception.what());
- }
- }
-
-void CpSecurityView::showCodeView( const QModelIndex& aModelIndex)
- {
- mPos = aModelIndex.row();
- showCodeView();
- }
-
-void CpSecurityView::showWIMview()
- {
- RDEBUG("0", 0);
- try
- {
- QObject::connect(mSecModView , SIGNAL(aboutToClose()), this, SLOT(viewDone()));
- mPreView = mainWindow()->currentView(); //suppose mPreView is member variable of CpSecurityView
- mainWindow()->addView(mSecModView);
- mainWindow()->setCurrentView(mSecModView);
- }
- catch(const std::exception& exception)
- {
- HbMessageBox::information(exception.what());
- }
- }
-
-void CpSecurityView::viewDone()
- {
- try
- {
- mainWindow()->removeView(mSecModView);
- mSecModView->deleteLater();
- mSecModView= NULL;
- mainWindow()->setCurrentView(mPreView);
- }
- catch(const std::exception& exception)
- {
- HbMessageBox::information(exception.what());
- }
- }
-
-void CpSecurityView::displayCert(const QModelIndex& modelIndex)
- {
- RDEBUG("0", 0);
- try
- {
- mCertView = q_check_ptr(new CpCertView(modelIndex));
- connect(mCertView , SIGNAL(aboutToClose()), this, SLOT(displayPrevious()));
- mPreView = mainWindow()->currentView();
- mainWindow()->addView(mCertView);
- mainWindow()->setCurrentView(mCertView);
- }
- catch(const std::exception& exception)
- {
- HbMessageBox::information(exception.what());
- }
- }
-
-void CpSecurityView::displayPrevious()
- {
- RDEBUG("0", 0);
- try
- {
- mainWindow()->removeView(mCertView);
- mCertView->deleteLater();
- mCertView= NULL;
- mainWindow()->setCurrentView(mPreView);
- }
- catch(const std::exception& exception)
- {
- HbMessageBox::information(exception.what());
- }
- }
-
-void CpSecurityView::indicateLongPress(HbAbstractViewItem *item,QPointF coords)
- {
- RDEBUG("0", 0);
- try
- {
- mContextMenu->clearActions();
- mPos = item->modelIndex().row();
-
- std::auto_ptr<HbAction> openModule(q_check_ptr(new HbAction("Open")));
- connect(openModule.get(), SIGNAL(triggered()), this, SLOT( showCodeView()));
- mContextMenu->addAction(openModule.get());
- openModule.release();
-
- if(mSecModUIModel->IsTokenDeletable(mPos))
- {
- std::auto_ptr<HbAction> deleteModule(q_check_ptr(new HbAction("Delete")));
- connect(deleteModule.get(), SIGNAL(triggered()), this, SLOT( deleteModule()));
- mContextMenu->addAction(deleteModule.get());
- deleteModule.release();
- }
-
- std::auto_ptr<HbAction> moduleInfo(q_check_ptr(new HbAction("Module Info")));
- connect(moduleInfo.get(), SIGNAL(triggered()), this, SLOT( moduleDetails()));
- mContextMenu->addAction(moduleInfo.get());
- moduleInfo.release();
-
- mContextMenu->setPreferredPos(coords);
- mContextMenu->open();
- }
- catch(const std::exception& exception)
- {
- HbMessageBox::information(exception.what());
- }
- }
-
-void CpSecurityView::deleteModule()
- {
- RDEBUG("0", 0);
- try
- {
-
- delete mNote;
- mNote = NULL;
-
- mNote = new HbMessageBox(HbMessageBox::MessageTypeQuestion);
- mNote->setHeadingWidget(q_check_ptr(new HbLabel(tr("Delete..."))));
- mNote->setText("Delete keystore and password?");
- mNote->setPrimaryAction(q_check_ptr(new HbAction("Yes")));
- mNote->setSecondaryAction(q_check_ptr(new HbAction("No")));
- mNote->setTimeout(HbPopup::NoTimeout);
- mNote->setIconVisible (EFalse);
- mNote->open(this,SLOT(dialogClosed(HbAction*)));
- }
- catch(const std::exception& exception)
- {
- HbMessageBox *box = new HbMessageBox(exception.what());
- box->setAttribute(Qt::WA_DeleteOnClose);
- box->open();
- }
-
-}
-void CpSecurityView::dialogClosed(HbAction* action)
-{
- RDEBUG("0", 0);
- if (action != mNote->primaryAction())
- {
- return;
- }
-
- try
- {
- QT_TRAP_THROWING(mSecModUIModel->DeleteKeysL(mPos));
- }
- catch(const std::exception& exception)
- {
- HbMessageBox *box = new HbMessageBox(exception.what());
- box->setAttribute(Qt::WA_DeleteOnClose);
- box->open();
- }
- }
-
-void CpSecurityView::moduleDetails()
- {
- RDEBUG("0", 0);
- try
- {
- QVector< QPair<QString,QString> > securityDetails;
- QT_TRAP_THROWING(securityDetails = mSecModUIModel->SecModDetailsL(mPos));
- mModuleinfoView = q_check_ptr(new CpSecmoduleInfoView(securityDetails));
-
- connect(mModuleinfoView , SIGNAL(aboutToClose()), this, SLOT(displayPreviousFromModInfo()));
- mPreView = mainWindow()->currentView();
- mainWindow()->addView(mModuleinfoView);
- mainWindow()->setCurrentView(mModuleinfoView);
- }
- catch(const std::exception& exception)
- {
- HbMessageBox::information(exception.what());
- }
- }
-
-void CpSecurityView::displayPreviousFromModInfo()
- {
- RDEBUG("0", 0);
- try
- {
- mainWindow()->removeView(mModuleinfoView);
- mCertView->deleteLater();
- mCertView= NULL;
- mainWindow()->setCurrentView(mPreView);
- }
- catch(const std::exception& exception)
- {
- HbMessageBox::information(exception.what());
- }
- }
-
--- a/cpsecplugins/cpplugincommon.pri Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,34 +0,0 @@
-#
-# Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-# All rights reserved.
-# This component and the accompanying materials are made available
-# under the terms of "Eclipse Public License v1.0"
-# which accompanies this distribution, and is available
-# at the URL "http://www.eclipse.org/legal/epl-v10.html".
-#
-# Initial Contributors:
-# Nokia Corporation - initial contribution.
-#
-# Contributors:
-#
-# Description: controlpanel plugin project qmake common settings
-#
-include (common.pri)
-
-
-LIBS += -lcpframework
-
-symbian: plugin { # copy qtstub and manifest
-
- PLUGIN_STUB_PATH = /resource/qt/plugins/controlpanel
-
- deploy.path = C:
- pluginstub.sources = $${TARGET}.dll
- pluginstub.path = $$PLUGIN_STUB_PATH
- DEPLOYMENT += pluginstub
-
- qtplugins.path = $$PLUGIN_STUB_PATH
- qtplugins.sources += qmakepluginstubs/$${TARGET}.qtplugin
-
- for(qtplugin, qtplugins.sources):BLD_INF_RULES.prj_exports += "./$$qtplugin $$deploy.path$$qtplugins.path/$$basename(qtplugin)"
-}
--- a/cpsecplugins/cpsecplugins.pro Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,22 +0,0 @@
-#
-# Copyright (c) 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: Security Settings plugins
-#
-
-TEMPLATE = subdirs
-
-# temporarilly skip, because too many deprecations
-SUBDIRS += devicelockplugin/devicelockplugin.pro
-SUBDIRS += simpincodeplugin/pincodeplugin.pro
-SUBDIRS += cpadvancedsecplugin/group/advancedsecplugin.pro
--- a/cpsecplugins/devicelockplugin/devicelocking.ts Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,556 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE TS>
-<TS version="3.0" sourcelanguage="en_GB">
-<context>
-<message numerus="no" id="txt_devicelocking_info_lock_code_can_be_changed_l">
- <comment>Error note when trying to change lock code</comment>
- <source>Lock code can be changed %L1n times in %L2n hours</source>
- <translation variants="no" type="unfinished"></translation>
- <extra-loc-layout_id>qtl_dialog_pri5_large_graphic</extra-loc-layout_id>
- <extra-loc-viewid>devicelocking_22</extra-loc-viewid>
- <extra-loc-positionid>info</extra-loc-positionid>
- <extra-loc-feature>de</extra-loc-feature>
- <extra-loc-blank>False</extra-loc-blank>
-</message>
-<message numerus="no" id="txt_devicelocking_info_characters_cannot_be_repeat">
- <comment>Error note when creating new lock code</comment>
- <source>Characters cannot be repeated</source>
- <translation variants="no" type="unfinished"></translation>
- <extra-loc-layout_id>qtl_dialog_pri5_large_graphic</extra-loc-layout_id>
- <extra-loc-viewid>devicelocking_21</extra-loc-viewid>
- <extra-loc-positionid>info</extra-loc-positionid>
- <extra-loc-feature>de</extra-loc-feature>
- <extra-loc-blank>False</extra-loc-blank>
-</message>
-<message numerus="no" id="txt_devicelocking_setlabel_val_30_minutes">
- <comment>Value for combobox of device locking</comment>
- <source>30 minutes</source>
- <translation variants="no" type="unfinished"></translation>
- <extra-loc-layout_id>qtl_dataform_heading_combobox_sec</extra-loc-layout_id>
- <extra-loc-viewid>devicelocking_04</extra-loc-viewid>
- <extra-loc-positionid>setlabel_3_val</extra-loc-positionid>
- <extra-loc-feature>de</extra-loc-feature>
- <extra-loc-blank>False</extra-loc-blank>
-</message>
-<message numerus="no" id="txt_devicelocking_dialog_new_lock_code">
- <comment>Label for new lock code query</comment>
- <source>New lock code</source>
- <translation variants="no" type="unfinished"></translation>
- <extra-loc-layout_id>qtl_dialog_sec</extra-loc-layout_id>
- <extra-loc-viewid>devicelocking_06</extra-loc-viewid>
- <extra-loc-positionid>dialog</extra-loc-positionid>
- <extra-loc-feature>de</extra-loc-feature>
- <extra-loc-blank>False</extra-loc-blank>
-</message>
-<message numerus="no" id="txt_devicelocking_info_must_include_upper_and_lowe">
- <comment>Error note when creating new lock code</comment>
- <source>Must include upper and lower case characters</source>
- <translation variants="no" type="unfinished"></translation>
- <extra-loc-layout_id>qtl_dialog_pri5_large_graphic</extra-loc-layout_id>
- <extra-loc-viewid>devicelocking_21</extra-loc-viewid>
- <extra-loc-positionid>info</extra-loc-positionid>
- <extra-loc-feature>de</extra-loc-feature>
- <extra-loc-blank>False</extra-loc-blank>
-</message>
-<message numerus="no" id="txt_devicelocking_dialog_lock_code">
- <comment>Label for lock code query</comment>
- <source>Lock code</source>
- <translation variants="no" type="unfinished"></translation>
- <extra-loc-layout_id>qtl_dialog_sec</extra-loc-layout_id>
- <extra-loc-viewid>devicelocking_05</extra-loc-viewid>
- <extra-loc-positionid>dialog</extra-loc-positionid>
- <extra-loc-feature>de</extra-loc-feature>
- <extra-loc-blank>False</extra-loc-blank>
-</message>
-<message numerus="yes" id="txt_devicelocking_info_lock_code_cannot_be_same_as">
- <comment>Error note when creating new lock code</comment>
- <source>Lock code cannot be same as previous %Ln lock codes</source>
- <translation variants="no" type="unfinished"></translation>
- <extra-loc-layout_id>qtl_dialog_pri5_large_graphic</extra-loc-layout_id>
- <extra-loc-viewid>devicelocking_21</extra-loc-viewid>
- <extra-loc-positionid>info</extra-loc-positionid>
- <extra-loc-feature>de</extra-loc-feature>
- <extra-loc-blank>False</extra-loc-blank>
-</message>
-<message numerus="no" id="txt_devicelocking_dpophead_messages_do_not_match">
- <comment>NotificationDialog shown when creating locking messages</comment>
- <source>Messages do not match</source>
- <translation variants="no" type="unfinished"></translation>
- <extra-loc-layout_id>qtl_notifdialog_pri_medium_graphic</extra-loc-layout_id>
- <extra-loc-viewid>devicelocking_19</extra-loc-viewid>
- <extra-loc-positionid>dpophead</extra-loc-positionid>
- <extra-loc-feature>de</extra-loc-feature>
- <extra-loc-blank>False</extra-loc-blank>
-</message>
-<message numerus="no" id="txt_devicelocking_dpophead_locking_message_created">
- <comment>NotificationDialog shown when locking message is created successfully</comment>
- <source>Locking message created</source>
- <translation variants="no" type="unfinished"></translation>
- <extra-loc-layout_id>qtl_notifdialog_pri_medium_graphic</extra-loc-layout_id>
- <extra-loc-viewid>devicelocking_20</extra-loc-viewid>
- <extra-loc-positionid>dpophead</extra-loc-positionid>
- <extra-loc-feature>de</extra-loc-feature>
- <extra-loc-blank>False</extra-loc-blank>
-</message>
-<message numerus="no" id="txt_common_button_cancel">
- <comment></comment>
- <source>Cancel</source>
- <translation variants="no" type="unfinished"></translation>
- <extra-loc-layout_id></extra-loc-layout_id>
- <extra-loc-viewid>common</extra-loc-viewid>
- <extra-loc-positionid>button</extra-loc-positionid>
- <extra-loc-feature>co</extra-loc-feature>
- <extra-loc-blank>False</extra-loc-blank>
-</message>
-<message numerus="no" id="txt_devicelocking_subhead_device_locking">
- <comment>Label for Device lock settings in Control Panel</comment>
- <source>Device Locking</source>
- <translation variants="no" type="unfinished"></translation>
- <extra-loc-layout_id>qtl_dataform_pri</extra-loc-layout_id>
- <extra-loc-viewid>devicelocking_01</extra-loc-viewid>
- <extra-loc-positionid>subhead</extra-loc-positionid>
- <extra-loc-feature>de</extra-loc-feature>
- <extra-loc-blank>False</extra-loc-blank>
-</message>
-<message numerus="no" id="txt_cp_dblist_device_lock">
- <comment>Device lock item in Control Panel</comment>
- <source>Device lock</source>
- <translation variants="no" type="unfinished"></translation>
- <extra-loc-layout_id>qtl_list_pri_large_graphic</extra-loc-layout_id>
- <extra-loc-viewid>CP_01</extra-loc-viewid>
- <extra-loc-positionid>dblist_1</extra-loc-positionid>
- <extra-loc-feature>CP</extra-loc-feature>
- <extra-loc-blank>False</extra-loc-blank>
-</message>
-<message numerus="no" id="txt_devicelocking_formlabel_automatic_locking">
- <comment>Label for Automatic locking combobox</comment>
- <source>Automatic locking</source>
- <translation variants="no" type="unfinished"></translation>
- <extra-loc-layout_id>qtl_dataform_heading_pri</extra-loc-layout_id>
- <extra-loc-viewid>devicelocking_04</extra-loc-viewid>
- <extra-loc-positionid>formlabel_3</extra-loc-positionid>
- <extra-loc-feature>de</extra-loc-feature>
- <extra-loc-blank>False</extra-loc-blank>
-</message>
-<message numerus="no" id="txt_device_dialog_new_locking_message">
- <comment>Label for remote locking message creation dialog</comment>
- <source>New locking message</source>
- <translation variants="no" type="unfinished"></translation>
- <extra-loc-layout_id>qtl_dialog_sec</extra-loc-layout_id>
- <extra-loc-viewid>device_locking_04</extra-loc-viewid>
- <extra-loc-positionid>dialog</extra-loc-positionid>
- <extra-loc-feature>de</extra-loc-feature>
- <extra-loc-blank>False</extra-loc-blank>
-</message>
-<message numerus="no" id="txt_devicelocking_formlabel_remote_locking">
- <comment>Label for Remote locking field</comment>
- <source>Remote locking</source>
- <translation variants="no" type="unfinished"></translation>
- <extra-loc-layout_id>qtl_dataform_heading_pri</extra-loc-layout_id>
- <extra-loc-viewid>devicelocking_04</extra-loc-viewid>
- <extra-loc-positionid>formlabel_5</extra-loc-positionid>
- <extra-loc-feature>de</extra-loc-feature>
- <extra-loc-blank>False</extra-loc-blank>
-</message>
-<message numerus="no" id="txt_devicelocking_dpopinfo_try_again">
- <comment>Secondary text for wrong code dialog</comment>
- <source>Try again</source>
- <translation variants="no" type="unfinished"></translation>
- <extra-loc-layout_id>qtl_notifdialog_sec_medium_graphic</extra-loc-layout_id>
- <extra-loc-viewid>devicelocking_08</extra-loc-viewid>
- <extra-loc-positionid>dpopinfo</extra-loc-positionid>
- <extra-loc-feature>de</extra-loc-feature>
- <extra-loc-blank>False</extra-loc-blank>
-</message>
-<message numerus="no" id="txt_devicelocking_info_information_included_in_the">
- <comment>Error note when creating new lock code</comment>
- <source>Information included in the lock code is not allowed</source>
- <translation variants="no" type="unfinished"></translation>
- <extra-loc-layout_id>qtl_dialog_pri5_large_graphic</extra-loc-layout_id>
- <extra-loc-viewid>devicelocking_21</extra-loc-viewid>
- <extra-loc-positionid>info</extra-loc-positionid>
- <extra-loc-feature>de</extra-loc-feature>
- <extra-loc-blank>False</extra-loc-blank>
-</message>
-<message numerus="no" id="txt_devicelocking_formlabel_locking_message">
- <comment>Label for Remote locking message field</comment>
- <source>Locking message</source>
- <translation variants="no" type="unfinished"></translation>
- <extra-loc-layout_id>qtl_dataform_heading_pri</extra-loc-layout_id>
- <extra-loc-viewid>devicelocking_04</extra-loc-viewid>
- <extra-loc-positionid>formlabel_6</extra-loc-positionid>
- <extra-loc-feature>de</extra-loc-feature>
- <extra-loc-blank>False</extra-loc-blank>
-</message>
-<message numerus="no" id="txt_devicelocking_info_lock_code_can_be_used_for_p">
- <comment>Descriptive text for device lock code in control panel</comment>
- <source>Lock code can be used for protecting the device from unauthorized use</source>
- <translation variants="no" type="unfinished"></translation>
- <extra-loc-layout_id>qtl_dataform_description_sec</extra-loc-layout_id>
- <extra-loc-viewid>devicelocking_01</extra-loc-viewid>
- <extra-loc-positionid>info</extra-loc-positionid>
- <extra-loc-feature>de</extra-loc-feature>
- <extra-loc-blank>False</extra-loc-blank>
-</message>
-<message numerus="no" id="txt_devicelocking_dpophead_emergency_calls_only">
- <comment>Notification text for lock code query if field has numbers (other than emergency number) and hw call key is pressed</comment>
- <source>Emergency calls only</source>
- <translation variants="no" type="unfinished"></translation>
- <extra-loc-layout_id>qtl_notifdialog_pri_medium_graphic</extra-loc-layout_id>
- <extra-loc-viewid>devicelocking_13</extra-loc-viewid>
- <extra-loc-positionid>dpophead</extra-loc-positionid>
- <extra-loc-feature>de</extra-loc-feature>
- <extra-loc-blank>False</extra-loc-blank>
-</message>
-<message numerus="yes" id="txt_devicelocking_dpopinfo_wait_ln_minutes">
- <comment>Secondary text for blocked code note</comment>
- <source>Wait %Ln minutes</source>
- <translation variants="no" type="unfinished"></translation>
- <extra-loc-layout_id>qtl_notifdialog_sec_medium_graphic</extra-loc-layout_id>
- <extra-loc-viewid>devicelocking_15</extra-loc-viewid>
- <extra-loc-positionid>dpopinfo</extra-loc-positionid>
- <extra-loc-feature>de</extra-loc-feature>
- <extra-loc-blank>False</extra-loc-blank>
-</message>
-<message numerus="no" id="txt_device_dialog_retype_locking_message">
- <comment>Label for verifying new lock message query</comment>
- <source>Retype locking message</source>
- <translation variants="no" type="unfinished"></translation>
- <extra-loc-layout_id>qtl_dialog_sec</extra-loc-layout_id>
- <extra-loc-viewid>device_locking_04</extra-loc-viewid>
- <extra-loc-positionid>dialog</extra-loc-positionid>
- <extra-loc-feature>de</extra-loc-feature>
- <extra-loc-blank>False</extra-loc-blank>
-</message>
-<message numerus="no" id="txt_common_button_call">
- <comment>Call button for emergency calls in lock code query</comment>
- <source>Call</source>
- <translation variants="no" type="unfinished"></translation>
- <extra-loc-layout_id>common</extra-loc-layout_id>
- <extra-loc-viewid>common</extra-loc-viewid>
- <extra-loc-positionid>button</extra-loc-positionid>
- <extra-loc-feature>co</extra-loc-feature>
- <extra-loc-blank>False</extra-loc-blank>
-</message>
-<message numerus="no" id="txt_devicelocking_dpophead_wrong_lock_code">
- <comment>Notification dialog for wrong lock code primary text</comment>
- <source>Wrong lock code</source>
- <translation variants="no" type="unfinished"></translation>
- <extra-loc-layout_id>qtl_notifdialog_pri_medium_graphic</extra-loc-layout_id>
- <extra-loc-viewid>devicelocking_08</extra-loc-viewid>
- <extra-loc-positionid>dpophead</extra-loc-positionid>
- <extra-loc-feature>de</extra-loc-feature>
- <extra-loc-blank>False</extra-loc-blank>
-</message>
-<message numerus="no" id="txt_devicelocking_subhead_remote_locking">
- <comment>Label in Device Locking view of Control Panel</comment>
- <source>Remote locking</source>
- <translation variants="no" type="unfinished"></translation>
- <extra-loc-layout_id>qtl_dataform_pri</extra-loc-layout_id>
- <extra-loc-viewid>devicelocking_04</extra-loc-viewid>
- <extra-loc-positionid>subhead</extra-loc-positionid>
- <extra-loc-feature>de</extra-loc-feature>
- <extra-loc-blank>False</extra-loc-blank>
-</message>
-<message numerus="no" id="txt_devicelocking_info_characters_cannot_be_rep_no">
- <comment>Error note when creating new lock code</comment>
- <source>Characters cannot be repeated more than %L1 times</source>
- <translation variants="no" type="unfinished"></translation>
- <extra-loc-layout_id>qtl_dialog_pri5_large_graphic</extra-loc-layout_id>
- <extra-loc-viewid>devicelocking_21</extra-loc-viewid>
- <extra-loc-positionid>info</extra-loc-positionid>
- <extra-loc-feature>de</extra-loc-feature>
- <extra-loc-blank>False</extra-loc-blank>
-</message>
-<message numerus="no" id="txt_remotelocking_button_sim_changed_on">
- <comment>Button label for Lock when SIM changed button</comment>
- <source>On</source>
- <translation variants="no" type="unfinished"></translation>
- <extra-loc-layout_id>qtl_dataform_button_sec</extra-loc-layout_id>
- <extra-loc-viewid>devicelocking_04</extra-loc-viewid>
- <extra-loc-positionid>button</extra-loc-positionid>
- <extra-loc-feature>de</extra-loc-feature>
- <extra-loc-blank>False</extra-loc-blank>
-</message>
-<message numerus="no" id="txt_devicelocking_dpophead_lock_code_created">
- <comment>NotificationDialog shown when lock code is created successfully</comment>
- <source>Lock code created</source>
- <translation variants="no" type="unfinished"></translation>
- <extra-loc-layout_id>qtl_notifdialog_pri_medium_graphic</extra-loc-layout_id>
- <extra-loc-viewid>devicelocking_10</extra-loc-viewid>
- <extra-loc-positionid>dpophead</extra-loc-positionid>
- <extra-loc-feature>de</extra-loc-feature>
- <extra-loc-blank>False</extra-loc-blank>
-</message>
-<message numerus="no" id="txt_devicelocking_info_the_security_code_must_be_a">
- <comment>Error note when creating new lock code</comment>
- <source>The security code must be alphanumeric</source>
- <translation variants="no" type="unfinished"></translation>
- <extra-loc-layout_id>qtl_dialog_pri5_large_graphic</extra-loc-layout_id>
- <extra-loc-viewid>devicelocking_21</extra-loc-viewid>
- <extra-loc-positionid>info</extra-loc-positionid>
- <extra-loc-feature>de</extra-loc-feature>
- <extra-loc-blank>False</extra-loc-blank>
-</message>
-<message numerus="no" id="txt_devicelocking_info_code_must_contain_at_least">
- <comment>Error note when creating new lock code</comment>
- <source>Code must contain at least %L1 special characters</source>
- <translation variants="no" type="unfinished"></translation>
- <extra-loc-layout_id>qtl_dialog_pri5_large_graphic</extra-loc-layout_id>
- <extra-loc-viewid>devicelocking_21</extra-loc-viewid>
- <extra-loc-positionid>info</extra-loc-positionid>
- <extra-loc-feature>de</extra-loc-feature>
- <extra-loc-blank>False</extra-loc-blank>
-</message>
-<message numerus="no" id="txt_devicelocking_button_remote_on">
- <comment>Button label for enabled remote locking</comment>
- <source>On</source>
- <translation variants="no" type="unfinished"></translation>
- <extra-loc-layout_id>qtl_dataform_button_sec</extra-loc-layout_id>
- <extra-loc-viewid>devicelocking_04</extra-loc-viewid>
- <extra-loc-positionid>button</extra-loc-positionid>
- <extra-loc-feature>de</extra-loc-feature>
- <extra-loc-blank>False</extra-loc-blank>
-</message>
-<message numerus="no" id="txt_devicelocking_info_incorrect_lock_code_one_at">
- <comment>Error message shown when giving the wrong code too many times</comment>
- <source>Incorrect lock code. One attempt left before data is erased.</source>
- <translation variants="no" type="unfinished"></translation>
- <extra-loc-layout_id>qtl_dialog_pri5_large_graphic</extra-loc-layout_id>
- <extra-loc-viewid>devicelocking_23</extra-loc-viewid>
- <extra-loc-positionid>info</extra-loc-positionid>
- <extra-loc-feature>de</extra-loc-feature>
- <extra-loc-blank>False</extra-loc-blank>
-</message>
-<message numerus="no" id="txt_devicelocking_button_on">
- <comment>Button text for activated device locking</comment>
- <source>On</source>
- <translation variants="no" type="unfinished"></translation>
- <extra-loc-layout_id>qtl_dataform_button_sec</extra-loc-layout_id>
- <extra-loc-viewid>devicelocking_04</extra-loc-viewid>
- <extra-loc-positionid>button</extra-loc-positionid>
- <extra-loc-feature>de</extra-loc-feature>
- <extra-loc-blank>False</extra-loc-blank>
-</message>
-<message numerus="no" id="txt_devicelocking_info_must_be_at_least_l1_charac">
- <comment>Error note when creating new lock code</comment>
- <source>Must be at least %L1 characters</source>
- <translation variants="no" type="unfinished"></translation>
- <extra-loc-layout_id>qtl_dialog_pri5_large_graphic</extra-loc-layout_id>
- <extra-loc-viewid>devicelocking_21</extra-loc-viewid>
- <extra-loc-positionid>info</extra-loc-positionid>
- <extra-loc-feature>de</extra-loc-feature>
- <extra-loc-blank>False</extra-loc-blank>
-</message>
-<message numerus="no" id="txt_devicelocking_formlabel_lock_code">
- <comment>Label for lock code field</comment>
- <source>Lock code</source>
- <translation variants="no" type="unfinished"></translation>
- <extra-loc-layout_id>qtl_dataform_heading_pri</extra-loc-layout_id>
- <extra-loc-viewid>devicelocking_04</extra-loc-viewid>
- <extra-loc-positionid>formlabel_2</extra-loc-positionid>
- <extra-loc-feature>de</extra-loc-feature>
- <extra-loc-blank>False</extra-loc-blank>
-</message>
-<message numerus="no" id="txt_devicelocking_setlabel_val_60_minutes">
- <comment>Value for combobox in device locking</comment>
- <source>60 minutes</source>
- <translation variants="no" type="unfinished"></translation>
- <extra-loc-layout_id>qtl_dataform_heading_combobox_sec</extra-loc-layout_id>
- <extra-loc-viewid>devicelocking_04</extra-loc-viewid>
- <extra-loc-positionid>setlabel_4_val</extra-loc-positionid>
- <extra-loc-feature>de</extra-loc-feature>
- <extra-loc-blank>False</extra-loc-blank>
-</message>
-<message numerus="no" id="txt_devicelocking_button_off">
- <comment>Label for disabled device locking in Control Panel</comment>
- <source>Off</source>
- <translation variants="no" type="unfinished"></translation>
- <extra-loc-layout_id>qtl_dataform_button_sec</extra-loc-layout_id>
- <extra-loc-viewid>devicelocking_04</extra-loc-viewid>
- <extra-loc-positionid>button</extra-loc-positionid>
- <extra-loc-feature>de</extra-loc-feature>
- <extra-loc-blank>False</extra-loc-blank>
-</message>
-<message numerus="no" id="txt_devicelocking_info_more_than_two_consecutive_n">
- <comment>Error note when creating new lock code</comment>
- <source>More than two consecutive numbers not allowed</source>
- <translation variants="no" type="unfinished"></translation>
- <extra-loc-layout_id>qtl_dialog_pri5_large_graphic</extra-loc-layout_id>
- <extra-loc-viewid>devicelocking_21</extra-loc-viewid>
- <extra-loc-positionid>info</extra-loc-positionid>
- <extra-loc-feature>de</extra-loc-feature>
- <extra-loc-blank>False</extra-loc-blank>
-</message>
-<message numerus="no" id="txt_devicelocking_info_lock_code_is_expired">
- <comment>Message Box shown when lock code expires</comment>
- <source>Lock code is expired.</source>
- <translation variants="no" type="unfinished"></translation>
- <extra-loc-layout_id>qtl_dialog_pri5_large_graphic</extra-loc-layout_id>
- <extra-loc-viewid>devicelocking_24</extra-loc-viewid>
- <extra-loc-positionid>info</extra-loc-positionid>
- <extra-loc-feature>de</extra-loc-feature>
- <extra-loc-blank>False</extra-loc-blank>
-</message>
-<message numerus="no" id="txt_devicelocking_button_create_lock_code">
- <comment>Create locking code button in Control Panel</comment>
- <source>Create lock code</source>
- <translation variants="no" type="unfinished"></translation>
- <extra-loc-layout_id>qtl_dataform_button_sec</extra-loc-layout_id>
- <extra-loc-viewid>devicelocking_01</extra-loc-viewid>
- <extra-loc-positionid>button</extra-loc-positionid>
- <extra-loc-feature>de</extra-loc-feature>
- <extra-loc-blank>False</extra-loc-blank>
-</message>
-<message numerus="no" id="txt_devicelocking_dpophead_codes_do_not_match">
- <comment></comment>
- <source>Codes do not match</source>
- <translation variants="no" type="unfinished"></translation>
- <extra-loc-layout_id>qtl_notifdialog_pri_medium_graphic</extra-loc-layout_id>
- <extra-loc-viewid>devicelocking_09</extra-loc-viewid>
- <extra-loc-positionid>dpophead</extra-loc-positionid>
- <extra-loc-feature>de</extra-loc-feature>
- <extra-loc-blank>False</extra-loc-blank>
-</message>
-<message numerus="no" id="txt_devicelocking_dpophead_lock_code_is_blocked">
- <comment>Notification text for blocked lock code query. Timed blocking starts from 5 minutes.</comment>
- <source>Lock code is blocked</source>
- <translation variants="no" type="unfinished"></translation>
- <extra-loc-layout_id>qtl_notifdialog_pri2</extra-loc-layout_id>
- <extra-loc-viewid>devicelocking_15</extra-loc-viewid>
- <extra-loc-positionid>dpophead</extra-loc-positionid>
- <extra-loc-feature>de</extra-loc-feature>
- <extra-loc-blank>False</extra-loc-blank>
-</message>
-<message numerus="no" id="txt_devicelocking_setlabel_val_when_keys_screen">
- <comment>ComboBox value for device locking</comment>
- <source>When keys & screen locked</source>
- <translation variants="no" type="unfinished"></translation>
- <extra-loc-layout_id>qtl_dataform_heading_combobox_sec</extra-loc-layout_id>
- <extra-loc-viewid>devicelocking_04</extra-loc-viewid>
- <extra-loc-positionid>setlabel_1_val</extra-loc-positionid>
- <extra-loc-feature>de</extra-loc-feature>
- <extra-loc-blank>False</extra-loc-blank>
-</message>
-<message numerus="no" id="txt_devicelocking_button_sim_changed_off">
- <comment>Button label for Lock when SIM changed button</comment>
- <source>Off</source>
- <translation variants="no" type="unfinished"></translation>
- <extra-loc-layout_id>qtl_dataform_button_sec</extra-loc-layout_id>
- <extra-loc-viewid>devicelocking_04</extra-loc-viewid>
- <extra-loc-positionid>button</extra-loc-positionid>
- <extra-loc-feature>de</extra-loc-feature>
- <extra-loc-blank>False</extra-loc-blank>
-</message>
-<message numerus="no" id="txt_devicelocking_dialog_retype_new_lock_code">
- <comment>Label for verifying new lock code query</comment>
- <source>Retype new lock code</source>
- <translation variants="no" type="unfinished"></translation>
- <extra-loc-layout_id>qtl_dialog_sec</extra-loc-layout_id>
- <extra-loc-viewid>devicelocking_07</extra-loc-viewid>
- <extra-loc-positionid>dialog</extra-loc-positionid>
- <extra-loc-feature>de</extra-loc-feature>
- <extra-loc-blank>False</extra-loc-blank>
-</message>
-<message numerus="no" id="txt_devicelocking_formlabel_lock_when_sim_changed">
- <comment>Label for lock if SIM changed field</comment>
- <source>Lock when SIM changed</source>
- <translation variants="no" type="unfinished"></translation>
- <extra-loc-layout_id>qtl_dataform_heading_pri</extra-loc-layout_id>
- <extra-loc-viewid>devicelocking_04</extra-loc-viewid>
- <extra-loc-positionid>formlabel_4</extra-loc-positionid>
- <extra-loc-feature>de</extra-loc-feature>
- <extra-loc-blank>False</extra-loc-blank>
-</message>
-<message numerus="no" id="txt_devicelocking_setlabel_val_5_minutes">
- <comment>Combobox value for device locking</comment>
- <source>5 minutes</source>
- <translation variants="no" type="unfinished"></translation>
- <extra-loc-layout_id>qtl_dataform_heading_combobox_sec</extra-loc-layout_id>
- <extra-loc-viewid>devicelocking_04</extra-loc-viewid>
- <extra-loc-positionid>setlabel_2_val</extra-loc-positionid>
- <extra-loc-feature>de</extra-loc-feature>
- <extra-loc-blank>False</extra-loc-blank>
-</message>
-<message numerus="no" id="txt_devicelocking_info_code_must_not_contain_conse">
- <comment>Error note when creating new lock code</comment>
- <source>Code must not contain consecutive characters</source>
- <translation variants="no" type="unfinished"></translation>
- <extra-loc-layout_id>qtl_dialog_pri5_large_graphic</extra-loc-layout_id>
- <extra-loc-viewid>devicelocking_21</extra-loc-viewid>
- <extra-loc-positionid>info</extra-loc-positionid>
- <extra-loc-feature>de</extra-loc-feature>
- <extra-loc-blank>False</extra-loc-blank>
-</message>
-<message numerus="no" id="txt_devicelocking_info_must_include_letters_and_nu">
- <comment>Error note when creating new lock code</comment>
- <source>Must include letters and numbers</source>
- <translation variants="no" type="unfinished"></translation>
- <extra-loc-layout_id>qtl_dialog_pri5_large_graphic</extra-loc-layout_id>
- <extra-loc-viewid>devicelocking_21</extra-loc-viewid>
- <extra-loc-positionid>info</extra-loc-positionid>
- <extra-loc-feature>de</extra-loc-feature>
- <extra-loc-blank>False</extra-loc-blank>
-</message>
-<message numerus="no" id="txt_devicelocking_formlabel_device_locking">
- <comment>Label for Device Locking button</comment>
- <source>Device locking</source>
- <translation variants="no" type="unfinished"></translation>
- <extra-loc-layout_id>qtl_dataform_heading_pri</extra-loc-layout_id>
- <extra-loc-viewid>devicelocking_04</extra-loc-viewid>
- <extra-loc-positionid>formlabel_1</extra-loc-positionid>
- <extra-loc-feature>de</extra-loc-feature>
- <extra-loc-blank>False</extra-loc-blank>
-</message>
-<message numerus="no" id="txt_devicelocking_info_the_locking_message_and_the">
- <comment>Error note for creating locking message</comment>
- <source>The locking message and the lock code should not be equal</source>
- <translation variants="no" type="unfinished"></translation>
- <extra-loc-layout_id>qtl_dialog_pri5</extra-loc-layout_id>
- <extra-loc-viewid>devicelocking_18</extra-loc-viewid>
- <extra-loc-positionid>info</extra-loc-positionid>
- <extra-loc-feature>de</extra-loc-feature>
- <extra-loc-blank>False</extra-loc-blank>
-</message>
-<message numerus="no" id="txt_devicelocking_info_cannot_contain_more_than_l">
- <comment>Error note when creating new lock code</comment>
- <source>Cannot contain more than %L1 characters</source>
- <translation variants="no" type="unfinished"></translation>
- <extra-loc-layout_id>qtl_dialog_pri5_large_graphic</extra-loc-layout_id>
- <extra-loc-viewid>devicelocking_21</extra-loc-viewid>
- <extra-loc-positionid>info</extra-loc-positionid>
- <extra-loc-feature>de</extra-loc-feature>
- <extra-loc-blank>False</extra-loc-blank>
-</message>
-<message numerus="no" id="txt_devicelocking_button_remote_off">
- <comment>Button label for disabled remote locking button</comment>
- <source>Off</source>
- <translation variants="no" type="unfinished"></translation>
- <extra-loc-layout_id>qtl_dataform_button_sec</extra-loc-layout_id>
- <extra-loc-viewid>devicelocking_04</extra-loc-viewid>
- <extra-loc-positionid>button</extra-loc-positionid>
- <extra-loc-feature>de</extra-loc-feature>
- <extra-loc-blank>False</extra-loc-blank>
-</message>
-<message numerus="no" id="txt_devicelocking_info_code_must_not_contain_singl">
- <comment>Error note when creating new lock code</comment>
- <source>Code must not contain single repeated character</source>
- <translation variants="no" type="unfinished"></translation>
- <extra-loc-layout_id>qtl_dialog_pri5_large_graphic</extra-loc-layout_id>
- <extra-loc-viewid>devicelocking_21</extra-loc-viewid>
- <extra-loc-positionid>info</extra-loc-positionid>
- <extra-loc-feature>de</extra-loc-feature>
- <extra-loc-blank>False</extra-loc-blank>
-</message>
-<message numerus="no" id="txt_common_button_ok">
- <comment></comment>
- <source>OK</source>
- <translation variants="no" type="unfinished"></translation>
- <extra-loc-layout_id></extra-loc-layout_id>
- <extra-loc-viewid>common</extra-loc-viewid>
- <extra-loc-positionid>button</extra-loc-positionid>
- <extra-loc-feature>co</extra-loc-feature>
- <extra-loc-blank>False</extra-loc-blank>
-</message>
-</context>
-</TS>
--- a/cpsecplugins/devicelockplugin/devicelockplugin.pri Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,24 +0,0 @@
-#
-# Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-# All rights reserved.
-# This component and the accompanying materials are made available
-# under the terms of "Eclipse Public License v1.0"
-# which accompanies this distribution, and is available
-# at the URL "http://www.eclipse.org/legal/epl-v10.html".
-#
-# Initial Contributors:
-# Nokia Corporation - initial contribution.
-#
-# Contributors:
-#
-# Description: cpdevicelockplugin source files
-#
-
-# Input
-HEADERS += src/*.h
-SOURCES += src/*.cpp
-
-INCLUDEPATH += ../../seccodeui/src \
- ../../seccodeui/inc \
-
-
--- a/cpsecplugins/devicelockplugin/devicelockplugin.pro Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,44 +0,0 @@
-#
-# Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-# All rights reserved.
-# This component and the accompanying materials are made available
-# under the terms of "Eclipse Public License v1.0"
-# which accompanies this distribution, and is available
-# at the URL "http://www.eclipse.org/legal/epl-v10.html".
-#
-# Initial Contributors:
-# Nokia Corporation - initial contribution.
-#
-# Contributors:
-#
-# Description:
-#
-
-TEMPLATE = lib
-TARGET = devicelockplugin
-
-CONFIG += hb plugin
-
-LIBS += -lsecuinotificationdialogplugin \
- -llockclient \
- -lautolockuseractivityservice \
- -lIndicatorAutolockPlugin \
- -lsecui \
- -letelmm \
- -letel \
- -lcustomapi \
- -lrlocksettings \
- -lcentralrepository \
- -lRLockSettings \
- -lflogger
-TRANSLATIONS += devicelocking.ts
-include ( ../cpplugincommon.pri )
-include ( devicelockplugin.pri )
-include ( rom/devicelockplugin_rom.pri )
-
-symbian {
- TARGET.UID3 = 0X2002E683
-
- INCLUDEPATH += $$MW_LAYER_SYSTEMINCLUDE
-
-}
\ No newline at end of file
--- a/cpsecplugins/devicelockplugin/devicelockplugin_installer.pkg Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,29 +0,0 @@
-; devicelockplugin_installer.pkg generated by qmake at 2010-04-27T17:12:14
-; This file is generated by qmake and should not be modified by the user
-;
-
-; Language
-&EN
-
-; SIS header: name, uid, version
-#{"devicelockplugin installer"},(0xA000D7CE),1,0,0
-
-; Localised Vendor name
-%{"Vendor"}
-
-; Unique Vendor name
-:"Vendor"
-
-
-; Manual PKG pre-rules from PRO files
-; Default HW/platform dependencies
-[0x101F7961],0,0,0,{"S60ProductID"}
-[0x102032BE],0,0,0,{"S60ProductID"}
-[0x102752AE],0,0,0,{"S60ProductID"}
-[0x1028315F],0,0,0,{"S60ProductID"}
-
-; Default dependency to Qt libraries
-
-
-"M:/sf/app/settingsuis/controlpanelui/src/cpplugins/devicelockplugin/devicelockplugin.sis" - "c:\adm\devicelockplugin.sis"
-@"M:/sf/mw/qt/smartinstaller.sis",(0x2002CCCD)
--- a/cpsecplugins/devicelockplugin/qmakepluginstubs/devicelockplugin.qtplugin Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-This file is a Qt plugin stub file. The real Qt plugin is located in /sys/bin. Created:2010-04-28T08:30:55
--- a/cpsecplugins/devicelockplugin/rom/devicelockplugin.iby Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,24 +0,0 @@
-/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:
-*
-*/
-
-#ifndef __DEVICELOCKPLUGIN_IBY__
-#define __DEVICELOCKPLUGIN_IBY__
-
-file=ABI_DIR\BUILD_DIR\devicelockplugin.dll SHARED_LIB_DIR\devicelockplugin.dll
-data=\epoc32\data\c\resource\qt\plugins\controlpanel\devicelockplugin.qtplugin resource\qt\plugins\controlpanel\devicelockplugin.qtplugin
-
-#endif
--- a/cpsecplugins/devicelockplugin/rom/devicelockplugin_resources.iby Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,28 +0,0 @@
-/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:
-*
-*/
-
-#ifndef __DEVICELOCKPLUGIN_RESOURCES_IBY__
-#define __DEVICELOCKPLUGIN_RESOURCES_IBY__
-
-#include <bldvariant.hrh>
-#include <data_caging_paths_for_iby.hrh>
-
-// devicelockplugin is old.
-// data=DATAZ_\QT_TRANSLATIONS_DIR\devicelockplugin.qm QT_TRANSLATIONS_DIR\devicelockplugin.qm
-data=DATAZ_\QT_TRANSLATIONS_DIR\devicelocking.qm QT_TRANSLATIONS_DIR\devicelocking.qm
-
-#endif // __DEVICELOCKPLUGIN_RESOURCES_IBY__
--- a/cpsecplugins/devicelockplugin/rom/devicelockplugin_rom.pri Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,22 +0,0 @@
-#
-# Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-# All rights reserved.
-# This component and the accompanying materials are made available
-# under the terms of "Eclipse Public License v1.0"
-# which accompanies this distribution, and is available
-# at the URL "http://www.eclipse.org/legal/epl-v10.html".
-#
-# Initial Contributors:
-# Nokia Corporation - initial contribution.
-#
-# Contributors:
-#
-# Description:
-#
-
-symbian {
- BLD_INF_RULES.prj_exports += \
- "$${LITERAL_HASH}include<platform_paths.hrh>" \
- "rom/devicelockplugin.iby CORE_APP_LAYER_IBY_EXPORT_PATH(devicelockplugin.iby)" \
- "rom/devicelockplugin_resources.iby LANGUAGE_APP_LAYER_IBY_EXPORT_PATH(devicelockplugin_resources.iby)"
-}
\ No newline at end of file
--- a/cpsecplugins/devicelockplugin/secuidevicelockplugin_installer.pkg Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,29 +0,0 @@
-; secuidevicelockplugin_installer.pkg generated by qmake at 2010-04-26T15:36:02
-; This file is generated by qmake and should not be modified by the user
-;
-
-; Language
-&EN
-
-; SIS header: name, uid, version
-#{"secuidevicelockplugin installer"},(0xA000D7CE),1,0,0
-
-; Localised Vendor name
-%{"Vendor"}
-
-; Unique Vendor name
-:"Vendor"
-
-
-; Manual PKG pre-rules from PRO files
-; Default HW/platform dependencies
-[0x101F7961],0,0,0,{"S60ProductID"}
-[0x102032BE],0,0,0,{"S60ProductID"}
-[0x102752AE],0,0,0,{"S60ProductID"}
-[0x1028315F],0,0,0,{"S60ProductID"}
-
-; Default dependency to Qt libraries
-
-
-"M:/sf/app/settingsuis/controlpanelui/src/cpplugins/devicelockplugin/secuidevicelockplugin.sis" - "c:\adm\secuidevicelockplugin.sis"
-@"M:/sf/mw/qt/smartinstaller.sis",(0x2002CCCD)
--- a/cpsecplugins/devicelockplugin/src/cpdevicelockplugin.cpp Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,71 +0,0 @@
-/*
- * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
- * All rights reserved.
- * This component and the accompanying materials are made available
- * under the terms of "Eclipse Public License v1.0""
- * which accompanies this distribution, and is available
- * at the URL "http://www.eclipse.org/legal/epl-v10.html".
- *
- * Initial Contributors:
- * Nokia Corporation - initial contribution.
- *
- * Contributors:
- *
- * Description:
- *
- */
-#include "cpdevicelockplugin.h"
-#include "cpdevicelockpluginview.h"
-#include <cpsettingformentryitemdataimpl.h>
-#include <../../inc/cpsecplugins.h>
-
-
-/*
- *****************************************************************
- * Name : CpDeviceLockPlugin
- * Parameters : None
- * Return value: None
- * Description : constructor
- *****************************************************************
- */
-CpDeviceLockPlugin::CpDeviceLockPlugin()
-{
- RDEBUG("0", 0);
-}
-
-
-/*
- *****************************************************************
- * Name : ~CpDeviceLockPlugin
- * Parameters : None
- * Return value: None
- * Description : destructor
- *****************************************************************
- */
-CpDeviceLockPlugin::~CpDeviceLockPlugin()
-{
-}
-
-
-/*
- *****************************************************************
- * Name : createSettingFormItemData
- * Parameters : CpItemDataHelper
- * Return value: QLsit<CpSettingFormItemData>*
- * Description : creates a data form for device lock settings
- *****************************************************************
- */
-QList<CpSettingFormItemData*> CpDeviceLockPlugin::createSettingFormItemData(CpItemDataHelper &itemDataHelper) const
-{
- RDEBUG("0", 0);
- RDEBUG("using icon", 1);
- return QList<CpSettingFormItemData*>()
- << new CpSettingFormEntryItemDataImpl<CpDeviceLockPluginView>(
- itemDataHelper,
- tr("Device lock"), // text
- QString(), // description
- HbIcon(QString("qtg_large_device_lock")) // icon
- );
-}
-
-Q_EXPORT_PLUGIN2(cpdevicelockplugin, CpDeviceLockPlugin);
--- a/cpsecplugins/devicelockplugin/src/cpdevicelockplugin.h Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,37 +0,0 @@
-/*
- * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
- * All rights reserved.
- * This component and the accompanying materials are made available
- * under the terms of "Eclipse Public License v1.0""
- * which accompanies this distribution, and is available
- * at the URL "http://www.eclipse.org/legal/epl-v10.html".
- *
- * Initial Contributors:
- * Nokia Corporation - initial contribution.
- *
- * Contributors:
- *
- * Description:
- *
- */
-
-#ifndef CPDEVICELOCKPLUGIN_H
-#define CPDEVICELOCKPLUGIN_H
-
-#include <QObject>
-#include <cpplugininterface.h>
-
-class CpDeviceLockPlugin : public QObject, public CpPluginInterface
-{
- Q_OBJECT
- Q_INTERFACES(CpPluginInterface)
-public:
- /* construtor */
- CpDeviceLockPlugin();
- /* destructor */
- virtual ~CpDeviceLockPlugin();
- /* creates a data form item for device lock settings */
- virtual QList<CpSettingFormItemData*> createSettingFormItemData(CpItemDataHelper &itemDataHelper) const;
-};
-
-#endif //CPDEVICELOCKPLUGIN_H
--- a/cpsecplugins/devicelockplugin/src/cpdevicelockpluginview.cpp Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,647 +0,0 @@
-/*
- * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
- * All rights reserved.
- * This component and the accompanying materials are made available
- * under the terms of "Eclipse Public License v1.0""
- * which accompanies this distribution, and is available
- * at the URL "http://www.eclipse.org/legal/epl-v10.html".
- *
- * Initial Contributors:
- * Nokia Corporation - initial contribution.
- *
- * Contributors:
- *
- * Description:
- *
- */
-
-#include "cpdevicelockpluginview.h"
-#include <QStringList>
-#include <hblineedit.h>
-#include <hbdataform.h>
-#include <hbdataformmodel.h>
-#include <hbdataformmodelitem.h>
-#include "cpremotelockdataformviewitem.h"
-#include <hblabel.h>
-#include <hbpushbutton.h>
-#include <HbMessageBox>
-#include <hbdataform.h>
-#include <QGraphicsLinearLayout>
-#include <secuisecuritysettings.h>
-#include <secuisecurityhandler.h>
-#include <etelmm.h>
-#include <rmmcustomapi.h>
-#include <hbinputdialog.h>
-#include <secui.h>
-#include <RemoteLockSettings.h>
-#include <e32cmn.h>
-#include <centralrepository.h>
-#include <settingsinternalcrkeys.h>
-#include <hbcombobox.h>
-#include<hbaction.h>
-#include <RemoteLockSettings.h>
-#include "debug.h"
-#include <qapplication.h>
-#include <qtranslator.h>
-#include <../../inc/cpsecplugins.h>
-
-
-
-/*
- *****************************************************************
- * Name : CpDeviceLockPluginView()
- * Parameters : QGraphicsItem*
- * Return value: None
- * Description : constructor
- *****************************************************************
- */
-CpDeviceLockPluginView::CpDeviceLockPluginView(QGraphicsItem *parent /*= 0*/)
-: CpBaseSettingView(0,parent)
- {
- QTranslator *translator = new QTranslator();
- QString lang = QLocale::system().name();
- QString path = "Z:/resource/qt/translations/";
- bool fine = translator->load("devicelocking_en.qm", path);
- if (fine)
- qApp->installTranslator(translator);
-
- QTranslator *commontranslator = new QTranslator();
-
- fine = commontranslator->load("common_" + lang, path);
- if (fine)
- qApp->installTranslator(commontranslator);
-
- TSecUi::InitializeLibL();
- mUiSecuSettings = CSecuritySettings::NewL();
- mRemoteLockSettings = CRemoteLockSettings::NewL();
- iALPeriodRep = CRepository::NewL(KCRUidSecuritySettings);
-
- mRemoteLockSettingClicked = false;
- mHack = 0;
- HbDataForm *form = qobject_cast<HbDataForm*> (widget());
- if (form)
- {
- QGraphicsLinearLayout *layout = new QGraphicsLinearLayout(
- Qt::Vertical);
- QList<HbAbstractViewItem *> protoTypeList = form->itemPrototypes();
- protoTypeList.append(new CpRemoteLockDataFormViewItem());
- form->setItemPrototypes(protoTypeList);
- form->setHeading(hbTrId("txt_cp_dblist_device_lock"));
-
- //DataFormModel
- formModel = new HbDataFormModel();
-
- //lockcode
- HbDataFormModelItem
- *lockCodeItem =
- new HbDataFormModelItem(
- static_cast<HbDataFormModelItem::DataItemType> (CpRemoteLockDataFormViewItem::CpCodeEditItem),
- hbTrId("txt_devicelocking_dialog_lock_code"));
- lockCodeItem->setContentWidgetData("echomode", HbLineEdit::Password);
- lockCodeItem->setContentWidgetData("text", "1234");
- lockCodeItem->setContentWidgetData("readonly", true);
- form->addConnection(lockCodeItem, SIGNAL(clicked()), this,
- SLOT(onLockCodeClicked()));
- formModel->appendDataFormItem(lockCodeItem);
-
- //Autolock period
- mAutolockPeriodItem = new HbDataFormModelItem(
- HbDataFormModelItem::ComboBoxItem, hbTrId(
- "txt_devicelocking_formlabel_automatic_locking"));
- TInt autoLockVal;
- TInt err = iALPeriodRep->Get(KSettingsAutoLockTime, autoLockVal);
- TInt index = GetAutoLockIndex(autoLockVal);
- Dprint((_L("Current AL period value %d"),autoLockVal));
- RDEBUG("err", err);
- RDEBUG("index", index);
- RDEBUG("autoLockVal", autoLockVal);
- //TODO: need to set autoLockVal in editor
- QStringList autolockPeriodList;
- autolockPeriodList << hbTrId("txt_devicelocking_button_off")
- << hbTrId("txt_devicelocking_setlabel_val_when_keys_screen")
- << hbTrId("txt_devicelocking_setlabel_val_5_minutes")
- << hbTrId("txt_devicelocking_setlabel_val_30_minutes")
- << hbTrId("txt_devicelocking_setlabel_val_60_minutes");
- mAutolockPeriodItem->setContentWidgetData(QString("items"),
- autolockPeriodList);
- mAutolockPeriodItem->setContentWidgetData(QString("currentIndex"),
- index);
- mAutolockPeriodItem->setContentWidgetData(QString("editable"), true);
- QVariant themeComboData = mAutolockPeriodItem->contentWidgetData(
- QString("currentIndex"));
- mThemeComboPrevIndex = themeComboData.toInt();
-
- form->addConnection(mAutolockPeriodItem,
- SIGNAL(currentIndexChanged(int)), this,
- SLOT(onAutoLockChanged(int)));
- //form->addConnection(mAutolockPeriodItem,SIGNAL(editTextChanged(const QString&)), this, SLOT(onAutoTextChanged(const QString&)));
- formModel->appendDataFormItem(mAutolockPeriodItem);
-
- //LockWhenSimChange
- mLockWhenSimChangeItem = new HbDataFormModelItem(
- HbDataFormModelItem::ToggleValueItem, hbTrId(
- "txt_devicelocking_formlabel_lock_when_sim_changed"));
- TBool lockVal = mUiSecuSettings->IsLockEnabledL(
- RMobilePhone::ELockPhoneToICC);
- Dprint((_L("LockWhenSimChange enabled %d"),lockVal));
- RDEBUG("lockVal", lockVal);
- if (lockVal)
- {
- mLockWhenSimChangeItem->setContentWidgetData("text", hbTrId(
- "txt_remotelocking_button_sim_changed_on"));
- mLockWhenSimChangeItem->setContentWidgetData("additionalText",
- hbTrId("txt_devicelocking_button_sim_changed_off"));
- }
- else
- {
- mLockWhenSimChangeItem->setContentWidgetData("text", hbTrId(
- "txt_devicelocking_button_sim_changed_off"));
- mLockWhenSimChangeItem->setContentWidgetData("additionalText",
- hbTrId("txt_remotelocking_button_sim_changed_on"));
- }
- mLockWhenSimChangeItem->setContentWidgetData("readonly", true);
- mPrevSIMLockData = mLockWhenSimChangeItem->contentWidgetData(QString(
- "text"));
-
- connect(formModel, SIGNAL(dataChanged(QModelIndex, QModelIndex)),
- this, SLOT(onSIMLockDataChanged(QModelIndex,QModelIndex)));
- formModel->appendDataFormItem(mLockWhenSimChangeItem);
-
- //Remote Lock Setting
- TBool enabled = true;
- TBool val = mRemoteLockSettings->GetEnabled(enabled);
- Dprint((_L("Remote Lock Setting enabled %d"),val));
- RDEBUG("val", val);
- mDeviceRemoteLockItem = new HbDataFormModelItem(
- HbDataFormModelItem::ToggleValueItem, hbTrId(
- "txt_devicelocking_subhead_remote_locking"));
-
- if (val && enabled)
- {
- mDeviceRemoteLockItem->setContentWidgetData("text", hbTrId(
- "txt_devicelocking_button_remote_on"));
- mDeviceRemoteLockItem->setContentWidgetData("additionalText",
- hbTrId("txt_devicelocking_button_remote_off"));
- }
- else
- {
- mDeviceRemoteLockItem->setContentWidgetData("text", hbTrId(
- "txt_devicelocking_button_remote_off"));
- mDeviceRemoteLockItem->setContentWidgetData("additionalText",
- hbTrId("txt_devicelocking_button_remote_on"));
- }
-
- mPrevRemLockData = mDeviceRemoteLockItem->contentWidgetData(QString(
- "text"));
- QString s = mPrevRemLockData.toString();
- connect(formModel, SIGNAL(dataChanged(QModelIndex, QModelIndex)),
- this, SLOT(onRemoteLockDataChanged(QModelIndex,QModelIndex)));
- formModel->appendDataFormItem(mDeviceRemoteLockItem);
-
- //Remote lock message
- mRemoteLockMessageItem
- = new HbDataFormModelItem(
- static_cast<HbDataFormModelItem::DataItemType> (CpRemoteLockDataFormViewItem::CpCodeEditItem),
- hbTrId("txt_devicelocking_formlabel_locking_message"));
- mRemoteLockMessageItem->setContentWidgetData("echoMode",
- HbLineEdit::Password);
- mRemoteLockMessageItem->setContentWidgetData("text", "1111");
- mRemoteLockMessageItem->setContentWidgetData("readOnly", true);
-
- if (mPrevRemLockData.toString() == hbTrId(
- "txt_devicelocking_button_remote_on"))
- mRemoteLockMessageItem->setEnabled(true);
- else
- mRemoteLockMessageItem->setEnabled(false);
-
- form->addConnection(mRemoteLockMessageItem, SIGNAL(clicked()), this,
- SLOT(onLockMessageClicked()));
- formModel->appendDataFormItem(mRemoteLockMessageItem);
-
- form->setModel(formModel);
- layout->addItem(form);
- setLayout(layout);
- }
- }
-
-
-/*
- *****************************************************************
- * Name : ~CpDeviceLockPluginView()
- * Parameters : None
- * Return value: None
- * Description : destructor
- *****************************************************************
- */
-CpDeviceLockPluginView::~CpDeviceLockPluginView()
- {
- TSecUi::UnInitializeLib();
-}
-
-
-/*
- *****************************************************************
- * Name : onLockCodeClicked()
- * Parameters : None
- * Return value: None
- * Description : Enables user to change the lock code
- *****************************************************************
- */
-void CpDeviceLockPluginView::onLockCodeClicked()
- {
- Dprint(_L("CpDeviceLockPluginView::onLockCodeClicked()..Enter"));
- RDEBUG("0", 0);
- mUiSecuSettings->ChangeSecCodeL();
- Dprint(_L("CpDeviceLockPluginView::onLockCodeClicked()..Exit"));
-}
-
-
-/*
- ************************************************************************
- * Name : onAutoLockChanged()
- * Parameters : int
- * Return value: None
- * Description : handles the data when automatic lock timings are changed
- ************************************************************************
- */
-void CpDeviceLockPluginView::onAutoLockChanged(int index)
- {
- Dprint(_L("CpDeviceLockPluginView::onAutoLockChanged()..Enter"));
- RDEBUG("index", index);
- if (index != mThemeComboPrevIndex)
- {
- //TODO: need to set user entered/selected value
- TInt lockValue = GetValueAtIndex(index);
- TInt newAutoLockVal = mUiSecuSettings->ChangeAutoLockPeriodL(
- lockValue);
- RDEBUG("newAutoLockVal", newAutoLockVal);
- RDEBUG("lockValue", lockValue);
- if (newAutoLockVal == lockValue)
- {
- Dprint(_L("onAutoLockChanged().AL setting success !!"));
- RDEBUG("success", 1);
- TInt err = iALPeriodRep->Set(KSettingsAutoLockTime, lockValue);
- RDEBUG("err", err);
- mThemeComboPrevIndex = index;
- }
- else
- {
- Dprint(_L("onAutoLockChanged()..Setting to previous value"));
- RDEBUG("previous", 0);
- QVariant data(mThemeComboPrevIndex);
- mAutolockPeriodItem->setContentWidgetData(
- QString("currentIndex"), data);
- }
-
- }
- Dprint(_L("CpDeviceLockPluginView::onAutoLockChanged()..Exit"));
- RDEBUG("0", 0);
-}
-
-
-/*
- *************************************************************************
- * Name : onLockMessageClicked()
- * Parameters : None
- * Return value: None
- * Description : verifies security code and enables user to change the lock
- * message
- **************************************************************************
- */
-void CpDeviceLockPluginView::onLockMessageClicked()
- {
- Dprint(_L("CpDeviceLockPluginView::onLockMessageClicked()..Exit"));
- RDEBUG("0", 0);
- TBuf<KRLockMaxLockCodeLength> remoteLockCode;
- TBool remoteLockStatus(EFalse);
- TInt retVal = KErrNone;
- TInt autoLockVal = -1;
- retVal = mUiSecuSettings->ChangeRemoteLockStatusL(remoteLockStatus,
- remoteLockCode, autoLockVal);
- RDEBUG("retVal", retVal);
- RDEBUG("autoLockVal", autoLockVal);
- RDEBUG("remoteLockStatus", remoteLockStatus);
- if (retVal)
- {
- Dprint(_L("CpDeviceLockPluginView::onLockMessageClicked()..ChangeRemoteLockStatusL sucess"));
- RDEBUG("sucess", 1);
- }
- else
- {
- Dprint(_L("CpDeviceLockPluginView::onLockMessageClicked()..ChangeRemoteLockStatusL failed"));
- RDEBUG("failed", 0);
- }
- Dprint(_L("CpDeviceLockPluginView::onLockMessageClicked()..Exit"));
- RDEBUG("0", 0);
-}
-
-
-/*
- *************************************************************************
- * Name : onAutoTextChanged()
- * Parameters : QString&
- * Return value: None
- * Description :
- **************************************************************************
- */
-/*
- *This slot can be enabled once fix from obit team for this siganl is available
- */
-
-#if 0
-void CpDeviceLockPluginView::onAutoTextChanged(const QString& aText)
- {
- Dprint(_L("CpDeviceLockPluginView::onAutoTextChanged()..Enter"));
- RDEBUG("0", 0);
- //TBool ret = DisplaySecurityDialog();
- Dprint(_L("CpDeviceLockPluginView::onAutoTextChanged()..Exit"));
- RDEBUG("0", 0);
- }
-#endif
-
-/*
- *************************************************************************
- * Name : onRemoteLockDataChanged()
- * Parameters : QModelIndex
- * Return value: None
- * Description : handles the data when remote lock settings is changed
- **************************************************************************
- */
-void CpDeviceLockPluginView::onRemoteLockDataChanged(QModelIndex aStartIn,QModelIndex aEndIn)
- {
- Q_UNUSED(aEndIn);
- Dprint(_L("CpDeviceLockPluginView::onRemoteLockDataChanged..Enter"));
- RDEBUG("0", 0);
- HbDataFormModelItem *item = formModel->itemFromIndex(aStartIn);
-
- if ((item->type() == HbDataFormModelItem::ToggleValueItem)
- && (item->data(HbDataFormModelItem::LabelRole).toString()
- == hbTrId("txt_devicelocking_subhead_remote_locking")))
- {
- RDEBUG("mHack", mHack);
- //The following If-Else condition should be removed once orbit team fix the issue with datachanged() signal
- /****************************************************************************************************************
- if ((mHack % 2) == 0) //need to capture second datachanged() signal , not first one.
- {
- mHack++;
- return;
- }
- else
- {
- mHack++;
- }
- /****************************************************************************************************************/
- TInt autoLockVal;
- TInt retVal = KErrNone;
- TBuf<KRLockMaxLockCodeLength> remoteLockCode;
- TBool remoteLockStatus(EFalse);
- CRemoteLockSettings *remoteLockSetting = CRemoteLockSettings::NewL();
- TInt err = iALPeriodRep->Get(KSettingsAutoLockTime, autoLockVal);
- RDEBUG("err", err);
- RDEBUG("autoLockVal", autoLockVal);
- RDEBUG("retVal", retVal);
- QVariant remLockData = mDeviceRemoteLockItem->contentWidgetData(
- QString("text"));
- if (remLockData.toString() == hbTrId(
- "txt_devicelocking_button_remote_on"))
- {
- remoteLockStatus = ETrue;
- retVal = mUiSecuSettings->ChangeRemoteLockStatusL(
- remoteLockStatus, remoteLockCode, autoLockVal);
- }
- else
- {
- remoteLockStatus = EFalse;
- retVal = mUiSecuSettings->ChangeRemoteLockStatusL(
- remoteLockStatus, remoteLockCode, autoLockVal);
- }
- RDEBUG("retVal", retVal);
- if (retVal == KErrNone)
- {
- RDEBUG("remoteLockStatus", remoteLockStatus);
- if (remoteLockStatus)
- {
- if (remoteLockSetting->SetEnabledL(remoteLockCode))
- {
- Dprint(_L("CpDeviceLockPluginView::onRemoteLockDataChanged..remoteLockSetting->SetEnabledL success"));
- RDEBUG("success", 1);
- mPrevRemLockData
- = mDeviceRemoteLockItem->contentWidgetData(
- QString("text"));
- }
- else
- {
- RollbackRemoteLockSettingState();
- Dprint(_L("CpDeviceLockPluginView::onRemoteLockDataChanged..remoteLockSetting->SetEnabledL failed"));
- RDEBUG("failed", 0);
- }
- }
- else
- {
- if (mRemoteLockSettings->SetDisabled())
- {
- Dprint(_L("CpDeviceLockPluginView::onRemoteLockDataChanged..remoteLockSetting->SetDisabled success"));
- RDEBUG("success", 1);
- mPrevRemLockData
- = mDeviceRemoteLockItem->contentWidgetData(
- QString("text"));
- }
- else
- {
- RollbackRemoteLockSettingState();
- Dprint(_L("CpDeviceLockPluginView::onRemoteLockDataChanged..remoteLockSetting->SetDisabled failed"));
- RDEBUG("failed", 0);
- }
- }
- }
- else
- {
- Dprint(_L("CpDeviceLockPluginView::onRemoteLockDataChanged..RollbackRemoteLockSettingState"));
- RDEBUG("Rollback", 0);
- RollbackRemoteLockSettingState();
- }
- delete remoteLockSetting;
- }
- Dprint(_L("CpDeviceLockPluginView::onRemoteLockDataChanged..Exit"));
- RDEBUG("0", 0);
-}
-
-
-/*
- *************************************************************************
- * Name : onSIMLockDataChanged()
- * Parameters : QModelIndex
- * Return value: None
- * Description : handles the data afer Lock when SIM changed settings is
- * changed
- **************************************************************************
- */
-void CpDeviceLockPluginView::onSIMLockDataChanged(QModelIndex aStartIn, QModelIndex aEndIn)
- {
- Q_UNUSED(aEndIn);
- HbDataFormModelItem *item = formModel->itemFromIndex(aStartIn);
-
- if ((item->type() == HbDataFormModelItem::ToggleValueItem)
- && (item->data(HbDataFormModelItem::LabelRole).toString()
- == hbTrId(
- "txt_devicelocking_formlabel_lock_when_sim_changed")))
- {
- RDEBUG("mHack", mHack);
- //The following If-Else condition should be removed once orbit team fix the issue with datachanged() signal
- /****************************************************************************************************************/
- if ((mHack % 2) == 0) //need to capture second datachanged() signal , not first one.
- {
- mHack++;
- return;
- }
- else
- {
- mHack++;
- }
- /****************************************************************************************************************/
-
- TBool ret = mUiSecuSettings->ChangeSimSecurityL();
- RDEBUG("ret", ret);
- if (!ret)
- {
- /*
- * disconnect to datachanged() signal as we are not interested in this signal
- * generated as a part of setContentWidgetData() API call below
- */
- disconnect(formModel,
- SIGNAL(dataChanged(QModelIndex, QModelIndex)), this,
- SLOT(onSIMLockDataChanged(QModelIndex,QModelIndex)));
- QVariant txt = mLockWhenSimChangeItem->contentWidgetData(QString(
- "text"));
- QVariant additionalText =
- mLockWhenSimChangeItem->contentWidgetData(QString(
- "additionalText"));
-
- mLockWhenSimChangeItem->setContentWidgetData(QString("text"),
- additionalText);
- mLockWhenSimChangeItem->setContentWidgetData(QString(
- "additionalText"), txt);
- /*
- * Now connect back to datachanged() signal .
- */
- connect(formModel, SIGNAL(dataChanged(QModelIndex, QModelIndex)),
- this, SLOT(onSIMLockDataChanged(QModelIndex,QModelIndex)));
- }
- }
-}
-
-
-/*
- *************************************************************************
- * Name : GetAutoLockIndex()
- * Parameters : TInt
- * Return value: TInt
- * Description : returns corresponding index for the given autolock value
- **************************************************************************
- */
-TInt CpDeviceLockPluginView::GetAutoLockIndex(TInt aValue)
- {
- TInt index = 0;
- RDEBUG("ret", aValue);
- switch (aValue)
- {
- case 0:
- index = 0;
- break;
- case 65535:
- index = 1;
- break;
- case 5:
- index = 2;
- break;
- case 30:
- index = 3;
- break;
- case 60:
- index = 4;
- break;
- default:
- break;
- }
- RDEBUG("index", index);
- return index;
- }
-
-
-/*
- *************************************************************************
- * Name : GetValueAtIndex()
- * Parameters : TInt
- * Return value: TInt
- * Description : returns the corresponding autolock value for the given
- * index.
- **************************************************************************
- */
-TInt CpDeviceLockPluginView::GetValueAtIndex(TInt aIndex)
- {
- TInt value = 0;
- RDEBUG("aIndex", aIndex);
- switch (aIndex)
- {
- case 0:
- value = 0;
- break;
- case 1:
- value = 65535;
- break;
- case 2:
- value = 5;
- break;
- case 3:
- value = 30;
- break;
- case 4:
- value = 60;
- break;
- default:
- break;
- }
- RDEBUG("value", value);
- return value;
-}
-
-
-/*
- *************************************************************************
- * Name : RollbackRemoteLockSettingState()
- * Parameters : None
- * Return value: None
- * Description : If Remote Lock Settings fails or user cancels the settings
- * then this function resets to previous value.
- **************************************************************************
- */
-void CpDeviceLockPluginView::RollbackRemoteLockSettingState()
- {
- RDEBUG("0", 0);
- /*
- * disconnect to datachanged() signal as we are not interested in this signal
- * generated as a part of setContentWidgetData() API call below
- */
- disconnect(formModel, SIGNAL(dataChanged(QModelIndex, QModelIndex)),
- this, SLOT(onRemoteLockDataChanged(QModelIndex,QModelIndex)));
-
- QVariant txt = mDeviceRemoteLockItem->contentWidgetData(QString("text"));
- QVariant additionaltxt = mDeviceRemoteLockItem->contentWidgetData(
- QString("additionalText"));
- mDeviceRemoteLockItem->setContentWidgetData(QString("text"),
- additionaltxt);
- mDeviceRemoteLockItem->setContentWidgetData(QString("additionalText"),
- txt);
- /*
- * Now connect back to datachanged() signal .
- */
- connect(formModel, SIGNAL(dataChanged(QModelIndex, QModelIndex)), this,
- SLOT(onRemoteLockDataChanged(QModelIndex,QModelIndex)));
-
- if (mPrevRemLockData.toString() == hbTrId(
- "txt_devicelocking_button_remote_on"))
- mRemoteLockMessageItem->setEnabled(true);
- else
- mRemoteLockMessageItem->setEnabled(false);
- RDEBUG("0", 0);
- }
--- a/cpsecplugins/devicelockplugin/src/cpdevicelockpluginview.h Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,100 +0,0 @@
-/*
- * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
- * All rights reserved.
- * This component and the accompanying materials are made available
- * under the terms of "Eclipse Public License v1.0""
- * which accompanies this distribution, and is available
- * at the URL "http://www.eclipse.org/legal/epl-v10.html".
- *
- * Initial Contributors:
- * Nokia Corporation - initial contribution.
- *
- * Contributors:
- *
- * Description:
- *
- */
-#ifndef CPDEVICELOCKPLUGINVIEW_H
-#define CPDEVICELOCKPLUGINVIEW_H
-
-#include <cpbasesettingview.h>
-#include <hbinputdialog.h>
-
-class HbDataFormModel;
-class HbDataFormModelItem;
-class CSecurityHandler;
-class CSecuritySettings;
-class SecCodeSettings;
-class CRemoteLockSettings;
-class CRepository;
-class RMobilePhone;
-
-class CpDeviceLockPluginView : public CpBaseSettingView
-{
- Q_OBJECT
-public:
- explicit CpDeviceLockPluginView(QGraphicsItem *parent = 0);
- virtual ~CpDeviceLockPluginView();
-private:
- /* Sets the remote lock setting state to previous value */
- void RollbackRemoteLockSettingState();
-private slots:
- /* Displays security code dialog and enables user to change the lock code */
- void onLockCodeClicked();
- /* Aske for Security code dialog when Automatic Lock timings are changed*/
- void onAutoLockChanged(int);
- /* Displays security Code dialog and then a Input dialog when Remote Lock
- * settings is clicked
- */
- void onLockMessageClicked();
- /* When Automatic Lock timings text is changed.*/
- /*
- * This slot can be enabled once fix from obit team for this siganl is available
- */
- // void onAutoTextChanged(const QString& aText);
- /* Displays Security code dialog and handles the changed value of the Remote Lock*/
- void onRemoteLockDataChanged(QModelIndex,QModelIndex);
- /* Displayes Security code dialog for Lock when SIM changed settings*/
- void onSIMLockDataChanged(QModelIndex,QModelIndex);
- /* Returns the index of automatic lock timings for the given autoLock value*/
- TInt GetAutoLockIndex(TInt);
- /* Returns the auto lcok value for the given automatic lock timings index*/
- TInt GetValueAtIndex(TInt);
-private:
- /*Handler for remote lock class*/
- CRemoteLockSettings* mRemoteLockSettings;
- /* Handler for Securit Settings class*/
- CSecuritySettings *mUiSecuSettings;
- /*Handler to Repository Class*/
- CRepository* iALPeriodRep;
-
- /* Data Model for DataForm*/
- HbDataFormModel *formModel;
- /* Data Item for RemoteLock message*/
- HbDataFormModelItem *mRemoteLockMessageItem;
- /* Data Item Remote Lock*/
- HbDataFormModelItem *mDeviceRemoteLockItem;
- /* Data item for automatic lock timings*/
- HbDataFormModelItem *mAutolockPeriodItem;
- /* Data item for Lock when SIM changed settings*/
- HbDataFormModelItem *mLockWhenSimChangeItem;
- /* Input dalog for user to enter Lock message*/
- HbInputDialog* ipDialog;
-
- /* holds Lock when SIM changed data*/
- QVariant mPrevSIMLockData;
- /* holds Remote Lock Value*/
- QVariant mPrevRemLockData;
- /* holds the previous Automatic Lock timings index*/
- int mThemeComboPrevIndex;
- /* holds the user defined Lock Message*/
- QString mLockMsg;
- /* flag set on Remote Lock data changed*/
- TBool mRemoteLockSettingClicked;
- /*
- * Need to remove this variabl once fix available from orbit team
- */
- TInt mHack;
-};
-
-#endif
--- a/cpsecplugins/devicelockplugin/src/cpremotelockdataformviewitem.cpp Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,159 +0,0 @@
-/*
- * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
- * All rights reserved.
- * This component and the accompanying materials are made available
- * under the terms of "Eclipse Public License v1.0""
- * which accompanies this distribution, and is available
- * at the URL "http://www.eclipse.org/legal/epl-v10.html".
- *
- * Initial Contributors:
- * Nokia Corporation - initial contribution.
- *
- * Contributors:
- *
- * Description:
- *
- */
-
-#include "cpremotelockdataformviewitem.h"
-#include <hblabel.h>
-#include <QGraphicsSceneMouseEvent>
-#include <../../inc/cpsecplugins.h>
-
-
-/*
- *****************************************************************
- * Name : CpRemoteLockDataFormViewItem
- * Parameters : QGraphicsItem*
- * Return value: None
- * Description : constructor
- *****************************************************************
- */
-CpRemoteLockDataFormViewItem::CpRemoteLockDataFormViewItem(QGraphicsItem *parent )
-: HbDataFormViewItem(parent)
-{
-}
-
-
-/*
- *****************************************************************
- * Name : ~CpRemoteLockDataFormViewItem
- * Parameters : None
- * Return value: None
- * Description : destructor
- *****************************************************************
- */
-CpRemoteLockDataFormViewItem::~CpRemoteLockDataFormViewItem()
-{
-}
-
-
-/*
- *****************************************************************
- * Name : createItem
- * Parameters : None
- * Return value: HbAbstractViewItem*
- * Description : creates a HbAbstractViewItem
- *****************************************************************
- */
-HbAbstractViewItem* CpRemoteLockDataFormViewItem::createItem()
-{
- RDEBUG("0", 0);
- return new CpRemoteLockDataFormViewItem(*this);
-}
-
-
-/*
- *****************************************************************
- * Name : canSetModelIndex
- * Parameters : QModelIndex&
- * Return value: bool
- * Description :
- *****************************************************************
- */
-bool CpRemoteLockDataFormViewItem::canSetModelIndex(const QModelIndex &index) const
-{
- int type = index.data(HbDataFormModelItem::ItemTypeRole).toInt();
- RDEBUG("type", type);
- return ((type == CpRemoteLockItem) || (type == CpCodeEditItem));
-}
-
-
-/*
- *****************************************************************
- * Name : createCustomWidget
- * Parameters : None
- * Return value: HbWidget
- * Description : creates a custom widget
- *****************************************************************
- */
-HbWidget *CpRemoteLockDataFormViewItem::createCustomWidget()
- {
- int type = modelIndex().data(HbDataFormModelItem::ItemTypeRole).toInt();
- RDEBUG("type", type);
- if (type == CpCodeEditItem)
- {
- CpLockEdit *edit = new CpLockEdit("1234");
- edit->setEchoMode(HbLineEdit::Password);
- edit->setReadOnly(true);
- return edit;
- }
- else
- {
- return 0;
- }
-}
-
-
-/*
- *****************************************************************
- * Name : CpLockEdit
- * Parameters : QString&, QGraphicsitem
- * Return value: None
- * Description : constructor
- *****************************************************************
- */
-CpLockEdit::CpLockEdit(const QString &text, QGraphicsItem *parent /*= 0*/)
-: HbLineEdit(text,parent)
-{
-}
-
-
-/*
- *****************************************************************
- * Name : CpLockEdit
- * Parameters : None
- * Return value: None
- * Description : destructor
- *****************************************************************
- */
-CpLockEdit::~CpLockEdit()
- {
-
- }
-
-
-/*
- *****************************************************************
- * Name : mousePressEvent
- * Parameters : QGraphicsSceneMouseEvent*
- * Return value: None
- * Description : handles mouse events
- *****************************************************************
- */
-void CpLockEdit::mousePressEvent(QGraphicsSceneMouseEvent *event)
-{
- RDEBUG("0", 0);
- if (event->button() != Qt::LeftButton) {
- event->ignore();
- return;
- }
-
- if (rect().contains(event->pos())) {
- emit clicked();
- event->accept();
- }
- else {
- event->ignore();
- }
-}
--- a/cpsecplugins/devicelockplugin/src/cpremotelockdataformviewitem.h Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,64 +0,0 @@
-/*
- * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
- * All rights reserved.
- * This component and the accompanying materials are made available
- * under the terms of "Eclipse Public License v1.0""
- * which accompanies this distribution, and is available
- * at the URL "http://www.eclipse.org/legal/epl-v10.html".
- *
- * Initial Contributors:
- * Nokia Corporation - initial contribution.
- *
- * Contributors:
- *
- * Description:
- *
- */
-
-
-#ifndef CPREMOTELOCKDATAFORMVIEWITEM_H
-#define CPREMOTELOCKDATAFORMVIEWITEM_H
-
-//#include <seccodeuiglobal.h>
-#include <hbdataformviewitem.h>
-#include <hbdataformmodelitem.h>
-#include <hblineedit.h>
-
-class CpRemoteLockDataFormViewItem : public HbDataFormViewItem
-{
- Q_OBJECT
-public:
- enum { CpRemoteLockItem = HbDataFormModelItem::CustomItemBase + 10,
- CpCodeEditItem = CpRemoteLockItem + 1 };
-
- /* Constructor */
- explicit CpRemoteLockDataFormViewItem(QGraphicsItem *parent = 0);
- /* Destructor */
- virtual ~CpRemoteLockDataFormViewItem();
- /* creates a view item */
- virtual HbAbstractViewItem* createItem();
- /**/
- virtual bool canSetModelIndex(const QModelIndex &index) const;
-protected:
- /* creates a custom widget */
- virtual HbWidget* createCustomWidget();
-};
-
-
-class CpLockEdit : public HbLineEdit
-{
- Q_OBJECT
-public:
- /* constructor */
- explicit CpLockEdit(const QString &text, QGraphicsItem *parent = 0);
- /* destructor */
- virtual ~CpLockEdit();
- /* handles mouse events*/
- void mousePressEvent(QGraphicsSceneMouseEvent *event);
-signals:
- /* signal when edit box is clicked*/
- void clicked();
-};
-
-#endif //CPREMOTELOCKDATAFORMVIEWITEM_H
-
--- a/cpsecplugins/devicelockplugin/src/debug.h Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,40 +0,0 @@
-/*
- * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
- * All rights reserved.
- * This component and the accompanying materials are made available
- * under the terms of "Eclipse Public License v1.0""
- * which accompanies this distribution, and is available
- * at the URL "http://www.eclipse.org/legal/epl-v10.html".
- *
- * Initial Contributors:
- * Nokia Corporation - initial contribution.
- *
- * Contributors:
- *
- * Description:
- *
- */
-
-#if defined (_DEBUG)
-
-_LIT( KLogFile, "Devicelockplugin.log" );
-_LIT( KLogDir, "Devicelockplugin" );
-
-#include <e32std.h>
-#include <f32file.h>
-#include <flogger.h>
-#include <e32svr.h>
-
-inline void FWrite (TRefByValue<const TDesC> aFmt,...)
- {
- VA_LIST list;
- VA_START( list, aFmt );
- RFileLogger::WriteFormat( KLogDir,KLogFile,EFileLoggingModeAppend ,TPtrC(aFmt) ,list );
- }
-
- #define Dprint(arg...) FWrite arg;
-#else
- #define Dprint(arg...)
-#endif // _DEBUG
-
-
--- a/cpsecplugins/inc/cpsecplugins.h Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,30 +0,0 @@
-/*
- * Copyright (c) 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:
- *
- */
-
-#ifndef CPSECPLUGINS_H
-#define CPSECPLUGINS_H
-
-#include <e32debug.h>
-
-// #if defined _DEBUG
-#ifdef _DEBUG
-#define RDEBUG( x, y ) RDebug::Printf( "%s %s (%u) %s=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, x, y );
-#else
-#define RDEBUG( x, y )
-#endif
-
-#endif //CPSECPLUGINS_H
--- a/cpsecplugins/simpincodeplugin/inc/cppincodeplugin.h Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,40 +0,0 @@
-/*
- * Copyright (c) 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:
- *
- */
-
-#ifndef CPPINCODEPLUGIN_H
-#define CPPINCODEPLUGIN_H
-
-// System includes
-#include <QObject>
-
-// User includes
-#include <cpplugininterface.h>
-
-// Class declaration
-class CpPinCodePlugin : public QObject, public CpPluginInterface
-{
- Q_OBJECT
- Q_INTERFACES(CpPluginInterface)
-
-public:
- CpPinCodePlugin();
- virtual ~CpPinCodePlugin();
- virtual QList<CpSettingFormItemData *> createSettingFormItemData(
- CpItemDataHelper &itemDataHelper) const;
-};
-
-#endif //CPPINCODEPLUGIN_H
--- a/cpsecplugins/simpincodeplugin/inc/cppincodepluginview.h Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,49 +0,0 @@
-/*
- * Copyright (c) 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:
- *
- */
-
-#ifndef CPPINCODEPLUGINVIEW_H
-#define CPPINCODEPLUGINVIEW_H
-
-// System includes
-#include <cpbasesettingview.h>
-
-// Forward declarations
-class SecCodeSettings;
-class HbDataFormModelItem;
-class HbDataFormModel;
-
-// Class declaration
-class CpPinCodePluginView : public CpBaseSettingView
-{
- Q_OBJECT
-
-public:
- explicit CpPinCodePluginView(QGraphicsItem *parent = 0);
- virtual ~CpPinCodePluginView();
-
-private slots:
- void changePinCode();
- void changePin2Code();
- void toggleChange(QModelIndex startIn, QModelIndex endIn);
-
-private:
- SecCodeSettings *mSecCodeSettings;
- HbDataFormModel *mFormModel;
- HbDataFormModelItem *mPinCodeRequestItem;
-};
-
-#endif //CPPINCODEPLUGINVIEW_H
--- a/cpsecplugins/simpincodeplugin/inc/seccodeedit.h Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,38 +0,0 @@
-/*
- * Copyright (c) 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:
- *
- */
-
-#ifndef SECCODEEDIT_H
-#define SECCODEEDIT_H
-
-// System includes
-#include <hblineedit.h>
-
-// Class declaration
-class SecCodeEdit : public HbLineEdit
-{
- Q_OBJECT
-
-public:
- explicit SecCodeEdit(const QString &text, QGraphicsItem *parent = 0);
- virtual ~SecCodeEdit();
- void mousePressEvent(QGraphicsSceneMouseEvent *event);
-
-signals:
- void clicked();
-};
-
-#endif //SECCODEEDIT_H
--- a/cpsecplugins/simpincodeplugin/inc/seccodeeditdataformviewitem.h Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,44 +0,0 @@
-/*
- * Copyright (c) 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:
- *
- */
-
-#ifndef SECCODEEDITDATAFORMVIEWITEM_H
-#define SECCODEEDITDATAFORMVIEWITEM_H
-
-// System includes
-#include <hbdataformviewitem.h>
-#include <hbdataformmodelitem.h>
-
-// User includes
-#include "seccodeuiglobal.h"
-
-// Class declaration
-class SecCodeEditDataFormViewItem : public HbDataFormViewItem
-{
- Q_OBJECT
-
-public:
- enum { SecCodeEditItem = HbDataFormModelItem::CustomItemBase + 1 };
- explicit SecCodeEditDataFormViewItem(QGraphicsItem *parent = 0);
- virtual ~SecCodeEditDataFormViewItem();
- virtual HbAbstractViewItem* createItem();
- virtual bool canSetModelIndex(const QModelIndex &index) const;
-
-protected:
- virtual HbWidget* createCustomWidget();
-};
-
-#endif //SECCODEEDITDATAFORMVIEWITEM_H
--- a/cpsecplugins/simpincodeplugin/inc/seccodemodel.h Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,44 +0,0 @@
-/*
- * Copyright (c) 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:
- *
- */
-
-#ifndef SECCODEMODEL_H
-#define SECCODEMODEL_H
-
-// System includes
-#include <QObject>
-
-// Forward declarations
-class SecCodeModelPrivate;
-
-// Class declaration
-class SecCodeModel : public QObject
-{
- Q_OBJECT
-
-public:
- SecCodeModel(QObject *parent = 0);
- virtual ~SecCodeModel();
- bool pinCodeRequest() const;
- bool changePinCodeRequest();
- int changePinCode();
- int changePin2Code();
-
-private: // data
- SecCodeModelPrivate *d_ptr;
-};
-
-#endif //SECCODEMODEL_H
--- a/cpsecplugins/simpincodeplugin/inc/seccodemodel_p.h Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,44 +0,0 @@
-/*
- * Copyright (c) 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:
- *
- */
-
-#ifndef SECCODEMODEL_P_H
-#define SECCODEMODEL_P_H
-
-// System includes
-#include <QObject>
-#include <secuisecuritysettings.h>
-// Class declaration
-class SecCodeModelPrivate
-{
-public:
- static SecCodeModelPrivate* NewL();
- SecCodeModelPrivate();
- ~SecCodeModelPrivate();
- bool pinCodeRequest() const;
- bool changePinCodeRequest();
- int changePinCode();
- int changePin2Code();
-
-private:
- void ConstructL();
-
-private: // data
- //to launch SecUI
- CSecuritySettings* iSecurity;
-};
-
-#endif //SECCODEMODEL_P_H
--- a/cpsecplugins/simpincodeplugin/inc/seccodesettings.h Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,45 +0,0 @@
-/*
- * Copyright (c) 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:
- *
- */
-
-#ifndef SECCODESETTINGS_H
-#define SECCODESETTINGS_H
-
-// System includes
-#include <QObject>
-#include "seccodeuiglobal.h"
-
-// Forward declarations
-class SecCodeSettingsPrivate;
-
-// Class declaration
-class SecCodeSettings : public QObject
-{
- Q_OBJECT
-
-public:
- explicit SecCodeSettings(QObject *parent = 0);
- virtual ~SecCodeSettings();
- bool pinCodeRequest() const;
- bool changePinCodeRequest();
- void changePinCode();
- void changePin2Code();
-
-private:
- SecCodeSettingsPrivate *d_ptr;
-};
-
-#endif //SECCODESETTINGS_H
--- a/cpsecplugins/simpincodeplugin/inc/seccodeuiglobal.h Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,39 +0,0 @@
-/*
- * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
- * All rights reserved.
- * This component and the accompanying materials are made available
- * under the terms of "Eclipse Public License v1.0""
- * which accompanies this distribution, and is available
- * at the URL "http://www.eclipse.org/legal/epl-v10.html".
- *
- * Initial Contributors:
- * Nokia Corporation - initial contribution.
- *
- * Contributors:
- *
- * Description:
- *
- */
-
-#ifndef SECCODEUIGLOBAL_H
-#define SECCODEUIGLOBAL_H
-
-// System includes
-#include <QtGlobal>
-
-namespace SecCode
-{
- enum SecCodeErr
- {
- ErrNone = 0,
- ErrGsm0707IncorrectPassword,
- ErrAccessDenied,
- ErrGsmSSPasswordAttemptsViolation,
- ErrLocked,
- ErrGsm0707OperationNotAllowed,
- ErrGsm0707SIMPuk2Required,
- ErrAbort,
- };
-}
-
-#endif //SECCODEUIGLOBAL_H
--- a/cpsecplugins/simpincodeplugin/pincodeplugin.pri Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,33 +0,0 @@
-#
-# Copyright (c) 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: cppincodeplugin source files
-#
-
-# Input
-HEADERS += inc/*.h
-
-SOURCES += src/cppincodeplugin.cpp \
- src/cppincodepluginview.cpp \
- src/seccodesettings.cpp \
- src/seccodeedit.cpp \
- src/seccodeeditdataformviewitem.cpp \
- src/seccodemodel.cpp
-
-symbian : {
- SOURCES += src/seccodemodel_symbian.cpp
-}
-
-win32 : {
- SOURCES += src/seccodemodel_win.cpp
-}
\ No newline at end of file
--- a/cpsecplugins/simpincodeplugin/pincodeplugin.pro Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,30 +0,0 @@
-#
-# Copyright (c) 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:
-#
-
-TEMPLATE = lib
-TARGET = cppincodeplugin
-
-CONFIG += hb plugin
-
-include ( ../cpplugincommon.pri )
-include ( pincodeplugin.pri )
-include ( rom/pincodeplugin_rom.pri )
-
-LIBS += -lsecui
-
-symbian : {
- TARGET.UID3 = 0x2002E682
-}
--- a/cpsecplugins/simpincodeplugin/rom/pincodeplugin.iby Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,29 +0,0 @@
-/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:
-*
-*/
-
-#ifndef __PINCODEPLUGIN_IBY__
-#define __PINCODEPLUGIN_IBY__
-
-#include <bldvariant.hrh>
-#include <data_caging_paths_for_iby.hrh>
-
-// pincodeplugin.iby should export cppincodeplugin.dll because controlpanelui.iby does NOT exports cppincodeplugin.dll
-file=ABI_DIR\BUILD_DIR\cppincodeplugin.dll SHARED_LIB_DIR\cppincodeplugin.dll
-
-data=/epoc32/data/c/resource/qt/plugins/controlpanel/cppincodeplugin.qtplugin resource/qt/plugins/controlpanel/cppincodeplugin.qtplugin
-
-#endif
--- a/cpsecplugins/simpincodeplugin/rom/pincodeplugin_rom.pri Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,21 +0,0 @@
-#
-# Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-# All rights reserved.
-# This component and the accompanying materials are made available
-# under the terms of "Eclipse Public License v1.0"
-# which accompanies this distribution, and is available
-# at the URL "http://www.eclipse.org/legal/epl-v10.html".
-#
-# Initial Contributors:
-# Nokia Corporation - initial contribution.
-#
-# Contributors:
-#
-# Description:
-#
-
-symbian {
- BLD_INF_RULES.prj_exports += \
- "$${LITERAL_HASH}include<platform_paths.hrh>" \
- "rom/pincodeplugin.iby CORE_APP_LAYER_IBY_EXPORT_PATH(pincodeplugin.iby)"
-}
\ No newline at end of file
--- a/cpsecplugins/simpincodeplugin/src/cppincodeplugin.cpp Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,66 +0,0 @@
-/*
- * Copyright (c) 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:
- *
- */
-
-// System includes
-#include <cpsettingformentryitemdataimpl.h>
-#include <../../inc/cpsecplugins.h>
-
-// User includes
-#include "cppincodeplugin.h"
-#include "cppincodepluginview.h"
-
-/*!
- \class CpPinCodePlugin
- \brief Pin Code Setting plugin class
-
- This class is used to create PIN code setting
-*/
-
-// ======== LOCAL FUNCTIONS ========
-
-/*!
- Constructor
-*/
-CpPinCodePlugin::CpPinCodePlugin()
-{
-RDEBUG("0", 0);
-}
-
-/*!
- Destructor
-*/
-CpPinCodePlugin::~CpPinCodePlugin()
-{
-}
-
-/*!
- Create PinCode setting
-*/
-QList<CpSettingFormItemData *> CpPinCodePlugin::createSettingFormItemData(
- CpItemDataHelper &itemDataHelper) const
-{
- RDEBUG("0", 0);
- RDEBUG("using icon", 1);
- return QList<CpSettingFormItemData *>()
- << new CpSettingFormEntryItemDataImpl<CpPinCodePluginView>
- (itemDataHelper, tr("PIN code"), QString(), HbIcon(QString("qtg_large_pin_code")) );
-}
-
-/*!
- Export plugin
-*/
-Q_EXPORT_PLUGIN2(cppincodeplugin, CpPinCodePlugin);
--- a/cpsecplugins/simpincodeplugin/src/cppincodepluginview.cpp Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,158 +0,0 @@
-/*
- * Copyright (c) 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:
- *
- */
-
-// System includes
-#include <hbdataform.h>
-#include <hbdataformmodel.h>
-#include <hbdataformmodelitem.h>
-#include <hblineedit.h>
-#include <seccodeeditdataformviewitem.h>
-#include <seccodesettings.h>
-
-// User includes
-#include "cppincodepluginview.h"
-#include <../../inc/cpsecplugins.h>
-
-/*!
- \class CpPinCodePluginView
- \brief Pin Code Setting view class
-
- This class is used to create PIN code setting view
-*/
-
-// ======== LOCAL FUNCTIONS ========
-
-/*!
- Constructor
-*/
-CpPinCodePluginView::CpPinCodePluginView(QGraphicsItem *parent /*= 0*/)
- : CpBaseSettingView(0,parent), mSecCodeSettings(new SecCodeSettings())
-{
- RDEBUG("0", 0);
- HbDataForm *form = qobject_cast<HbDataForm*>(widget());
- if (form) {
- QList<HbAbstractViewItem *> protoTypeList = form->itemPrototypes();
- protoTypeList.append(new SecCodeEditDataFormViewItem());
- form->setItemPrototypes(protoTypeList);
- form->setHeading(tr("PIN code"));
-
- mFormModel = new HbDataFormModel(this);
- mPinCodeRequestItem = new HbDataFormModelItem(
- HbDataFormModelItem::ToggleValueItem, tr("PIN code requests"));
-
- bool currentPinCodeRequest = mSecCodeSettings->pinCodeRequest();
- if (currentPinCodeRequest) {
- mPinCodeRequestItem->setContentWidgetData("text", tr("On"));
- mPinCodeRequestItem->setContentWidgetData("additionalText", tr("On"));
- } else {
- mPinCodeRequestItem->setContentWidgetData("text",tr("Off"));
- mPinCodeRequestItem->setContentWidgetData("additionalText", tr("Off"));
- }
- RDEBUG("form->addConnection", 1);
- connect(mFormModel, SIGNAL(dataChanged(QModelIndex, QModelIndex)),
- this, SLOT(toggleChange(QModelIndex, QModelIndex)));
- mFormModel->appendDataFormItem(mPinCodeRequestItem);
-
- HbDataFormModelItem *pinCodeItem = new HbDataFormModelItem(
- static_cast<HbDataFormModelItem::DataItemType>
- (SecCodeEditDataFormViewItem::SecCodeEditItem), tr("PIN code"));
- pinCodeItem->setContentWidgetData("echoMode", HbLineEdit::Password);
- pinCodeItem->setContentWidgetData("text", "1111");
- pinCodeItem->setContentWidgetData("readOnly", true);
- form->addConnection(pinCodeItem, SIGNAL(clicked()), this,
- SLOT(changePinCode()));
- mFormModel->appendDataFormItem(pinCodeItem);
-
- HbDataFormModelItem *pin2CodeItem = new HbDataFormModelItem(
- static_cast<HbDataFormModelItem::DataItemType>
- (SecCodeEditDataFormViewItem::SecCodeEditItem), tr("PIN2 code"));
- pin2CodeItem->setContentWidgetData("echoMode", HbLineEdit::Password);
- pin2CodeItem->setContentWidgetData("text", "1111");
- pin2CodeItem->setContentWidgetData("readOnly", true);
- form->addConnection(pin2CodeItem, SIGNAL(clicked()), this,
- SLOT(changePin2Code()));
- mFormModel->appendDataFormItem(pin2CodeItem);
- RDEBUG("form->setModel", 1);
- form->setModel(mFormModel);
- }
-}
-
-/*!
- Destructor
-*/
-CpPinCodePluginView::~CpPinCodePluginView()
-{
- delete mSecCodeSettings;
-}
-
-/*!
- response for click pin code request
-*/
-void CpPinCodePluginView::toggleChange(QModelIndex startIn,
- QModelIndex /*endIn*/)
-{
- RDEBUG("0", 0);
- HbDataFormModelItem *item = mFormModel->itemFromIndex(startIn);
- if(item->type() == HbDataFormModelItem::ToggleValueItem) {
- if (mSecCodeSettings->changePinCodeRequest()) {
- RDEBUG("got changePinCodeRequest", 1);
- disconnect(mFormModel,
- SIGNAL(dataChanged(QModelIndex, QModelIndex)), this,
- SLOT(toggleChange(QModelIndex, QModelIndex)));
- RDEBUG("disconnected", 1);
- QString text = mPinCodeRequestItem->contentWidgetData(
- "text").toString();
- if (0 == text.compare("On")) {
- mPinCodeRequestItem->setContentWidgetData("text",
- tr("Off"));
- mPinCodeRequestItem->setContentWidgetData("additionalText",
- tr("Off"));
- } else {
- mPinCodeRequestItem->setContentWidgetData("text",
- tr("On"));
- mPinCodeRequestItem->setContentWidgetData("additionalText",
- tr("On"));
- }
- RDEBUG("reconnect", 1);
- connect(mFormModel, SIGNAL(dataChanged(QModelIndex, QModelIndex)),
- this, SLOT(toggleChange(QModelIndex, QModelIndex)));
- }
- else
- {
- RDEBUG("value was not changed", 0);
- }
- }
- RDEBUG("0", 0);
-}
-
-/*!
- response for click pin code
-*/
-void CpPinCodePluginView::changePinCode()
-{
- RDEBUG("0", 0);
- mSecCodeSettings->changePinCode();
-}
-
-/*!
- response for click pin2 code
-*/
-void CpPinCodePluginView::changePin2Code()
-{
- RDEBUG("0", 0);
- mSecCodeSettings->changePin2Code();
-}
--- a/cpsecplugins/simpincodeplugin/src/seccodeedit.cpp Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,59 +0,0 @@
-/*
- * Copyright (c) 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:
- *
- */
-
-// System includes
-#include <QGraphicsSceneMouseEvent>
-
-// User includes
-#include "seccodeedit.h"
-#include <../../inc/cpsecplugins.h>
-
-// ======== MEMBER FUNCTIONS ========
-
-/*!
- Constructor
-*/
-SecCodeEdit::SecCodeEdit(const QString &text, QGraphicsItem *parent/*= 0*/)
- : HbLineEdit(text, parent)
-{
-}
-
-/*!
- Destructor
-*/
-SecCodeEdit::~SecCodeEdit()
-{
-}
-
-/*!
- Mouse Press Event
-*/
-void SecCodeEdit::mousePressEvent(QGraphicsSceneMouseEvent *event)
-{
- RDEBUG("0", 0);
- if (event->button() != Qt::LeftButton) {
- event->ignore();
- return;
- }
-
- if (rect().contains(event->pos())) {
- emit clicked();
- event->accept();
- } else {
- event->ignore();
- }
-}
--- a/cpsecplugins/simpincodeplugin/src/seccodeeditdataformviewitem.cpp Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,78 +0,0 @@
-/*
- * Copyright (c) 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:
- *
- */
-
-// User includes
-#include "seccodeeditdataformviewitem.h"
-#include "seccodeedit.h"
-#include <../../inc/cpsecplugins.h>
-
-// ======== MEMBER FUNCTIONS ========
-
-/*!
- Constructor
-*/
-SecCodeEditDataFormViewItem::SecCodeEditDataFormViewItem(
- QGraphicsItem *parent): HbDataFormViewItem(parent)
-{
- RDEBUG("0", 0);
-}
-
-/*!
- Destructor
-*/
-SecCodeEditDataFormViewItem::~SecCodeEditDataFormViewItem()
-{
-}
-
-/*!
- Create Item
-*/
-HbAbstractViewItem *SecCodeEditDataFormViewItem::createItem()
-{
- RDEBUG("0", 0);
- return new SecCodeEditDataFormViewItem( *this);
-}
-
-/*!
- Create Item
-*/
-bool SecCodeEditDataFormViewItem::canSetModelIndex(
- const QModelIndex &index) const
-{
- int type = index.data(HbDataFormModelItem::ItemTypeRole).toInt();
- RDEBUG("type", type);
- return type == SecCodeEditItem;
-}
-
-/*!
- Create Custom Widget
-*/
-HbWidget *SecCodeEditDataFormViewItem::createCustomWidget()
-{
- int type = modelIndex().data(HbDataFormModelItem::ItemTypeRole).toInt();
- RDEBUG("type", type);
-
- if (type == SecCodeEditItem) {
- SecCodeEdit *edit = new SecCodeEdit("1234");
- edit->setEchoMode(HbLineEdit::Password);
- RDEBUG("edit->setReadOnly", 1);
- edit->setReadOnly(true);
- return edit;
- }
- RDEBUG("0", 0);
- return 0;
-}
--- a/cpsecplugins/simpincodeplugin/src/seccodemodel.cpp Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,76 +0,0 @@
-/*
- * Copyright (c) 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:
- *
- */
-
-// User includes
-#include "seccodemodel.h"
-#include "seccodemodel_p.h"
-#include <../../inc/cpsecplugins.h>
-
-// ======== MEMBER FUNCTIONS ========
-
-/*!
- Constructor
-*/
-SecCodeModel::SecCodeModel(QObject *parent/*= 0*/)
- : QObject(parent)
-{
- QT_TRAP_THROWING(d_ptr = SecCodeModelPrivate::NewL());
-}
-
-/*!
- Destructor
-*/
-SecCodeModel::~SecCodeModel()
-{
- delete d_ptr;
-}
-
-/*!
- Get Pin Code Request State
-*/
-bool SecCodeModel::pinCodeRequest() const
-{
- RDEBUG("0", 0);
- return d_ptr->pinCodeRequest();
-}
-
-/*!
- Change Pin Code
-*/
-bool SecCodeModel::changePinCodeRequest()
-{
- RDEBUG("0", 0);
- return d_ptr->changePinCodeRequest();
-}
-
-/*!
- Change Pin Code
-*/
-int SecCodeModel::changePinCode()
-{
- RDEBUG("0", 0);
- return d_ptr->changePinCode();
-}
-
-/*!
- Change Pin2 Code
-*/
-int SecCodeModel::changePin2Code()
-{
- RDEBUG("0", 0);
- return d_ptr->changePin2Code();
-}
--- a/cpsecplugins/simpincodeplugin/src/seccodemodel_symbian.cpp Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,113 +0,0 @@
-/*
- * Copyright (c) 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:
- *
- */
-
-// System includes
-#include <e32err.h>
-#include <exterror.h>
-#include <etelmm.h>
-
-// User includes
-#include "seccodemodel_p.h"
-#include "seccodeuiglobal.h"
-#include <../../inc/cpsecplugins.h>
-
-// ======== MEMBER FUNCTIONS ========
-
-/*!
- NewL
-*/
-SecCodeModelPrivate* SecCodeModelPrivate::NewL()
-{
- SecCodeModelPrivate* self = new (ELeave) SecCodeModelPrivate();
- CleanupStack::PushL(self);
- self->ConstructL();
- CleanupStack::Pop(); //self
- return self;
-}
-
-/*!
- SecCodeModelPrivate
-*/
-SecCodeModelPrivate::SecCodeModelPrivate()
-{
-}
-
-/*!
- ConstructL
-*/
-void SecCodeModelPrivate::ConstructL()
-{
- RDEBUG("0", 0);
- iSecurity = CSecuritySettings::NewL();
-}
-
-/*!
- Destructor
-*/
-SecCodeModelPrivate::~SecCodeModelPrivate()
-{
- if (iSecurity) {
- delete iSecurity;
- }
-}
-
-/*!
- Get Pin Code Request State
-*/
-bool SecCodeModelPrivate::pinCodeRequest() const
-{
- RDEBUG("0", 0);
- bool isLockEnabled = false;
- QT_TRAP_THROWING(isLockEnabled = iSecurity->IsLockEnabledL(
- RMobilePhone::ELockICC));
- RDEBUG("isLockEnabled", isLockEnabled);
- return isLockEnabled;
-}
-
-/*!
- Get the Change Pin Remaining Attempts
-*/
-bool SecCodeModelPrivate::changePinCodeRequest()
-{
- RDEBUG("0", 0);
- bool result = false;
- QT_TRAP_THROWING(result =iSecurity->ChangePinRequestL());
- RDEBUG("result", result);
- return result;
-}
-
-/*!
- Change Pin Code
-*/
-int SecCodeModelPrivate::changePinCode()
-{
- RDEBUG("0", 0);
- QT_TRAP_THROWING(iSecurity->ChangePinL());
- RDEBUG("0", 0);
- return 0;
-}
-
-/*!
- Change Pin2 Code
-*/
-int SecCodeModelPrivate::changePin2Code()
-{
- RDEBUG("0", 0);
- QT_TRAP_THROWING(iSecurity->ChangePin2L());
- RDEBUG("0", 0);
- return 0;
-}
--- a/cpsecplugins/simpincodeplugin/src/seccodemodel_win.cpp Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,103 +0,0 @@
-/*
- * Copyright (c) 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:
- *
- */
-
-// User includes
-#include "seccodemodel_p.h"
-#include <../../inc/cpsecplugins.h>
-
-// ======== MEMBER FUNCTIONS ========
-/*!
- NewL
-*/
-SecCodeModelPrivate* SecCodeModelPrivate::NewL()
-{
- return NULL;
-}
-
-/*!
- Constructor
-*/
-SecCodeModelPrivate::SecCodeModelPrivate()
-{
-}
-
-/*!
- ConstructL
-*/
-void SecCodeModelPrivate::ConstructL()
-{
-
-}
-
-/*!
- Destructor
-*/
-SecCodeModelPrivate::~SecCodeModelPrivate()
-{
-}
-
-/*!
- Get Pin Code Request State
-*/
-bool SecCodeModelPrivate::pinCodeRequest() const
-{
- RDEBUG("0", 0);
- QString information;
- information = QString("Emulator NOT supported!");
- HbMessageBox messageBox(information);
- messageBox.exec();
- return false;
-}
-
-/*!
- Get the Change Pin Remaining Attempts
-*/
-bool SecCodeModelPrivate::changePinCodeRequest()
-{
- RDEBUG("0", 0);
- QString information;
- information = QString("Emulator NOT supported!");
- HbMessageBox messageBox(information);
- messageBox.exec();
- return true;
-}
-
-/*!
- Change Pin Code
-*/
-int SecCodeModelPrivate::changePinCode()
-{
- RDEBUG("0", 0);
- QString information;
- information = QString("Emulator NOT supported!");
- HbMessageBox messageBox(information);
- messageBox.exec();
- return 0;
-}
-
-/*!
- Change Pin2 Code
-*/
-int SecCodeModelPrivate::changePin2Code()
-{
- RDEBUG("0", 0);
- QString information;
- information = QString("Emulator NOT supported!");
- HbMessageBox messageBox(information);
- messageBox.exec();
- return 0;
-}
--- a/cpsecplugins/simpincodeplugin/src/seccodesettings.cpp Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,93 +0,0 @@
-/*
- * Copyright (c) 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:
- *
- */
-
-// User includes
-#include "seccodesettings.h"
-#include "seccodemodel.h"
-#include <../../inc/cpsecplugins.h>
-
-// Class declaration
-class SecCodeSettingsPrivate
-{
-public:
- SecCodeSettingsPrivate()
- {
- mSecCodeModel = new SecCodeModel();
- }
-
- ~SecCodeSettingsPrivate()
- {
- delete mSecCodeModel;
- }
-
- SecCodeModel *mSecCodeModel;
-};
-
-// ======== MEMBER FUNCTIONS ========
-
-/*!
- Constructor
-*/
-SecCodeSettings::SecCodeSettings(QObject * parent /*= 0*/)
- : QObject(parent), d_ptr(new SecCodeSettingsPrivate())
-{
-RDEBUG("0", 0);
-}
-
-/*!
- Destructor
-*/
-SecCodeSettings::~SecCodeSettings()
-{
- delete d_ptr;
-}
-
-/*!
- Get Pin Code Request
-*/
-bool SecCodeSettings::pinCodeRequest() const
-{
- RDEBUG("0", 0);
- return d_ptr->mSecCodeModel->pinCodeRequest();
-}
-
-/*!
- Change Pin Code request
-*/
-bool SecCodeSettings::changePinCodeRequest()
-{
- RDEBUG("0", 0);
- return d_ptr->mSecCodeModel->changePinCodeRequest();
-}
-
-/*!
- Change Pin Code
-*/
-void SecCodeSettings::changePinCode()
-{
- RDEBUG("0", 0);
- d_ptr->mSecCodeModel->changePinCode();
-}
-
-/*!
- Change Pin2 Code
-*/
-void SecCodeSettings::changePin2Code()
-{
- RDEBUG("0", 0);
- d_ptr->mSecCodeModel->changePin2Code();
-}
--- a/devencdiskutils/DevEncCommonUtils/src/DevEncDiskUtils.cpp Tue Aug 31 16:04:40 2010 +0300
+++ b/devencdiskutils/DevEncCommonUtils/src/DevEncDiskUtils.cpp Wed Sep 01 12:19:59 2010 +0100
@@ -255,18 +255,23 @@
if (!err)
return err;
TInt64 memoryWarningSpace(0);
- TRAP(err, memoryWarningSpace = FindWarningLevelTresholdL());
+ TRAP(err, memoryWarningSpace = FindWarningLevelTresholdL( aNumber ));
if (!err)
return err;
DFLOG2( "CDevEncDiskUtils::DiskFinalize => memoryCriticalSpace = %d", (TInt) memoryCriticalSpace );
DFLOG2( "CDevEncDiskUtils::DiskFinalize => memoryWarningSpace = %d", (TInt) memoryWarningSpace );
- //create the number of files needed to fill the mmc free space
+ //create the number of files needed to fill the mmc or phone memory free space
while( freeSpace )
{
- /* The real warning space is a percentage of the free space */
- TInt64 newMemoryWarningSpace = ( TInt64 ) ( volumeInfo.iSize*( 100 - memoryWarningSpace ) ) / 100;
+ TInt64 newMemoryWarningSpace(0);
+ if( aNumber == EDriveC )
+ {
+ // The real warning space is a percentage of the free space. This applies only on drive C.
+ newMemoryWarningSpace = ( TInt64 ) ( volumeInfo.iSize*( 100 - memoryWarningSpace ) ) / 100;
+ }
+
DFLOG2( "CDevEncDiskUtils::DiskFinalize => newMemoryWarningSpace = %d", (TInt) newMemoryWarningSpace );
if( TInt64( volumeInfo.iFree ) > TInt64( KMaxInt ) )
@@ -275,7 +280,14 @@
}
else
{
- size = Max( 0LL, TInt64( volumeInfo.iFree ) - memoryCriticalSpace - newMemoryWarningSpace );
+ if( aNumber == EDriveC )
+ {
+ size = Max( 0LL, TInt64( volumeInfo.iFree ) - memoryCriticalSpace - newMemoryWarningSpace );
+ }
+ else
+ {
+ size = Max( 0LL, TInt64( volumeInfo.iFree ) - memoryCriticalSpace - memoryWarningSpace );
+ }
}
TFileName temp;
@@ -302,9 +314,19 @@
if( err )
DFLOG2( "..fs.Volume fail %d", err );
- if( TInt64( volumeInfo.iFree ) <= memoryCriticalSpace + newMemoryWarningSpace )
+ if( aNumber == EDriveC )
{
- freeSpace = EFalse;
+ if( TInt64( volumeInfo.iFree ) <= memoryCriticalSpace + newMemoryWarningSpace )
+ {
+ freeSpace = EFalse;
+ }
+ }
+ else
+ {
+ if( TInt64( volumeInfo.iFree ) <= memoryCriticalSpace + memoryWarningSpace )
+ {
+ freeSpace = EFalse;
+ }
}
}
@@ -348,9 +370,16 @@
// CDevEncDiskUtils::FindWarningLevelTresholdL()
//
// --------------------------------------------------------------------------
-TInt64 CDevEncDiskUtils::FindWarningLevelTresholdL()
+TInt64 CDevEncDiskUtils::FindWarningLevelTresholdL( const TDriveNumber aNumber )
{
- return (TInt64) FindValueL( KCRUidUiklaf, /*KUikOODDiskWarningThreshold*/KUikOODDiskFreeSpaceWarningNoteLevel );
+ if( aNumber == EDriveC )
+ {
+ return (TInt64) FindValueL( KCRUidUiklaf, KUikOODDiskFreeSpaceWarningNoteLevel );
+ }
+ else
+ {
+ return (TInt64) FindValueL( KCRUidUiklaf, KUikOODDiskFreeSpaceWarningNoteLevelMassMemory );
+ }
}
// End of file
--- a/devencdiskutils/DevEncCommonUtils/src/DevEncKeyUtils.cpp Tue Aug 31 16:04:40 2010 +0300
+++ b/devencdiskutils/DevEncCommonUtils/src/DevEncKeyUtils.cpp Wed Sep 01 12:19:59 2010 +0100
@@ -24,7 +24,6 @@
#include "DevEncLog.h"
#include "DevEncUids.hrh"
-
#include <pbe.h>
#include <pbedata.h>
//#include <PathInfo.h> // for system path literals
--- a/gba/gbaapi/group/gba.mmp Tue Aug 31 16:04:40 2010 +0300
+++ b/gba/gbaapi/group/gba.mmp Wed Sep 01 12:19:59 2010 +0100
@@ -23,6 +23,8 @@
VENDORID VID_DEFAULT
CAPABILITY CAP_CLIENT_DLL
+SMPSAFE
+
USERINCLUDE ../inc
USERINCLUDE ../../inc
--- a/gba/gbafilter/group/httpfiltergba.mmp Tue Aug 31 16:04:40 2010 +0300
+++ b/gba/gbafilter/group/httpfiltergba.mmp Wed Sep 01 12:19:59 2010 +0100
@@ -26,6 +26,8 @@
UID 0x10009D8D 0x20029F09
VENDORID VID_DEFAULT
+SMPSAFE
+
SOURCEPATH ../src
SOURCE HTTPFilterGBAMain.cpp HTTPFilterGBA.cpp
--- a/gba/gbaserver/group/gbaserver.mmp Tue Aug 31 16:04:40 2010 +0300
+++ b/gba/gbaserver/group/gbaserver.mmp Wed Sep 01 12:19:59 2010 +0100
@@ -24,6 +24,8 @@
VENDORID VID_DEFAULT
CAPABILITY CAP_SERVER NetworkControl
+SMPSAFE
+
USERINCLUDE ../inc
USERINCLUDE ../../inc
--- a/gba/gbaserver/inc/dataretriever.h Tue Aug 31 16:04:40 2010 +0300
+++ b/gba/gbaserver/inc/dataretriever.h Wed Sep 01 12:19:59 2010 +0100
@@ -26,7 +26,7 @@
#include <http.h>
#include <es_sock.h>
#include <commdbconnpref.h>
-#include <cmmanager.h>
+#include <cmmanagerext.h>
#include <hash.h>
#include "M3GPPAuthenticationCallback.h"
@@ -147,7 +147,7 @@
RSocketServ iSockServ;
C3GPPBootstrapHttpHandler* iHttpHandler; // we own this
MBootstrapCallBack* iBootstrapCallBack; // don't own this
- RCmManager iCmManager;
+ RCmManagerExt iCmManagerExt;
};
--- a/gba/gbaserver/src/dataretriever.cpp Tue Aug 31 16:04:40 2010 +0300
+++ b/gba/gbaserver/src/dataretriever.cpp Wed Sep 01 12:19:59 2010 +0100
@@ -21,9 +21,10 @@
#include <commdb.h>
#include <es_enum.h>
#include <centralrepository.h>
+#include <cmconnectionmethodext.h>
#include <cmconnectionmethoddef.h>
#include <cmpluginpacketdatadef.h>
-#include <cmdestination.h>
+#include <cmdestinationext.h>
#include <http/thttpevent.h>
#include "dataretriever.h"
#include "GbaCommon.h"
@@ -102,7 +103,7 @@
{
iHttpHandler = C3GPPBootstrapHttpHandler::NewL( this, iBootstrapCallBack );
iInternalState = EReadyForRequest;
- iCmManager.OpenL();
+ iCmManagerExt.OpenL();
}
@@ -119,7 +120,7 @@
iHTTPSession.Close();
iConnection.Close();
iSockServ.Close();
- iCmManager.Close();
+ iCmManagerExt.Close();
if ( iInternalState == EMakeRequestCalled )
{
@@ -355,11 +356,11 @@
RArray<TUint32> destIdArray;
CleanupClosePushL( destIdArray );
CleanupCounter++;
- iCmManager.AllDestinationsL( destIdArray );
+ iCmManagerExt.AllDestinationsL( destIdArray );
for ( TInt i = 0; i< destIdArray.Count(); i++ )
{
- RCmDestination dest = iCmManager.DestinationL( destIdArray[i] );
+ RCmDestinationExt dest = iCmManagerExt.DestinationL( destIdArray[i] );
CleanupClosePushL( dest );
CleanupCounter++;
@@ -408,11 +409,11 @@
RArray<TUint32> destIdArray;
CleanupClosePushL( destIdArray );
CleanupCounter++;
- iCmManager.AllDestinationsL( destIdArray );
+ iCmManagerExt.AllDestinationsL( destIdArray );
for ( TInt i = 0; i< destIdArray.Count(); i++ )
{
- RCmDestination dest = iCmManager.DestinationL( destIdArray[i] );
+ RCmDestinationExt dest = iCmManagerExt.DestinationL( destIdArray[i] );
CleanupClosePushL( dest );
CleanupCounter++;
--- a/gba/sis/gba.pkg Tue Aug 31 16:04:40 2010 +0300
+++ b/gba/sis/gba.pkg Wed Sep 01 12:19:59 2010 +0100
@@ -17,7 +17,7 @@
&EN
; Header
-#{"GBA"},(0x20029F08), 1, 1, 0, TYPE=SA,RU
+#{"GBA"},(0x20029F08), 1, 0, 0, TYPE=SA,RU
; Localised Vendor name
%{"Nokia"}
@@ -27,8 +27,8 @@
"..\data\gba_license.txt"-"", FT, TA
-; Product dependency for Symbian^4
- [0x20032DE7], 0, 0, 0, {"Series60ProductID"}
+; Product dependency for Series 60 v5.1
+ [0x10283160], 0, 0, 0, {"Series60ProductID"}
; Files to install
--- a/gba/sis/gba_stub.pkg Tue Aug 31 16:04:40 2010 +0300
+++ b/gba/sis/gba_stub.pkg Wed Sep 01 12:19:59 2010 +0100
@@ -17,7 +17,7 @@
&EN
; Header
-#{"GBA"}, (0x20029F08), 1, 1, 0, TYPE=SA
+#{"GBA"}, (0x20029F08), 1, 0, 0, TYPE=SA
; Localised Vendor name
%{"Nokia"}
Binary file gba/sis/gba_stub.sis has changed
--- a/gba/uicc/group/gbauicc.mmp Tue Aug 31 16:04:40 2010 +0300
+++ b/gba/uicc/group/gbauicc.mmp Wed Sep 01 12:19:59 2010 +0100
@@ -25,6 +25,8 @@
CAPABILITY CAP_ECOM_PLUGIN
+SMPSAFE
+
USERINCLUDE ../inc
USERINCLUDE ../../inc
--- a/layers.sysdef.xml Tue Aug 31 16:04:40 2010 +0300
+++ b/layers.sysdef.xml Wed Sep 01 12:19:59 2010 +0100
@@ -1,18 +1,15 @@
<?xml version="1.0"?>
-<!DOCTYPE SystemDefinition SYSTEM "sysdef_1_5_1.dtd" [
+<!DOCTYPE SystemDefinition SYSTEM "sysdef_1_4_0.dtd" [
<!ENTITY layer_real_source_path "sf/mw/securitysrv" >
]>
-<SystemDefinition name="securitysrv" schema="1.5.1">
+<SystemDefinition name="securitysrv" schema="1.4.0">
<systemModel>
<layer name="mw_layer">
<module name="securitysrv">
<unit name="securitysrv" unitID="sedo.securitysrv" bldFile="&layer_real_source_path;/group" mrp="" />
</module>
<module name="">
- <unit unitID="sedoQT.securitysrv" bldFile="&layer_real_source_path;" mrp="" name="sedoQT_securitysrv" proFile="securitysrv.pro" qmakeArgs="-r" />
- </module>
- <module name="">
<unit unitID="sedo.securitysrv.pkiutilities.Certificates" bldFile="&layer_real_source_path;/pkiutilities/Certificates/group" mrp="" filter="sf_build" name="sedo_securitysrv_pkiutilities_Certificates" />
</module>
<module name="">
--- a/package_definition.xml Tue Aug 31 16:04:40 2010 +0300
+++ b/package_definition.xml Wed Sep 01 12:19:59 2010 +0100
@@ -1,12 +1,113 @@
<?xml version="1.0" encoding="UTF-8"?>
<SystemDefinition schema="3.0.0">
<package id="securitysrv" name="Security Services" levels="plugin framework server generic specific">
+ <collection id="gba" name="Generic Bootstrapping Architecture" level="server">
+ <component id="uicc" filter="s60" name="UICC" class="plugin" introduced="^2">
+ <unit bldFile="gba/uicc/group"/>
+ </component>
+ <component id="bootstrap" filter="s60" name="Bootstrap" introduced="^2">
+ <unit bldFile="gba/bootstrap/group"/>
+ </component>
+ <component id="gbaserver" filter="s60" name="GBA Server" introduced="^2">
+ <unit bldFile="gba/gbaserver/group"/>
+ </component>
+ <component id="gbaapi" filter="s60" name="GBA API" introduced="^2">
+ <unit bldFile="gba/gbaapi/group"/>
+ </component>
+ <component id="gbafilter" filter="s60" name="GBA HTTP Filter" class="plugin" introduced="^2">
+ <unit bldFile="gba/gbafilter/group"/>
+ </component>
+ <component id="gba_build" filter="s60" name="Generic Boot Architecture Build" introduced="^2">
+ <unit bldFile="gba/group"/>
+ </component>
+ </collection>
+ <collection id="wim" name="Wireless Identity Module " level="framework">
+ <component id="swimreader" filter="s60" name="SWIM Reader"/>
+ <component id="scard" filter="s60" name="Smart Card"/>
+ <component id="wimutil" filter="s60" name="WIM Utils"/>
+ <component id="wimserver" filter="s60" name="WIM Server"/>
+ <component id="wimclient" filter="s60" name="WIM Client"/>
+ <component id="wimplugin" filter="s60" name="WIM Plugin" class="plugin"/>
+ <component id="wim_build" filter="s60" name="WIM Build">
+ <!-- need to distribute bld.inf to empty components or collapse into a single component -->
+ <unit bldFile="wim/group"/>
+ </component>
+ </collection>
<collection id="pkiutilities" name="PKI Utilities" level="plugin">
+ <component id="x509certnameparser" filter="s60" name="X.509 Certificate Name Parser">
+ <unit bldFile="pkiutilities/x509certnameparser/group"/>
+ </component>
+ <component id="pkcs12" filter="s60" name="PKCS #12">
+ <unit bldFile="pkiutilities/pkcs12/group"/>
+ </component>
+ <component id="certmanui" filter="s60" name="Certificate Management UI">
+ <unit bldFile="pkiutilities/certmanui/group"/>
+ </component>
+ <component id="ctsecuritydialogs" filter="s60" name="Crypto Token Security Dialogs">
+ <unit bldFile="pkiutilities/ctsecuritydialogs/group"/>
+ </component>
+ <component id="certsaver" filter="s60" name="Certificate Saver">
+ <unit bldFile="pkiutilities/certsaver/group"/>
+ </component>
+ <component id="secmodui" filter="s60" name="Security Module UI">
+ <unit bldFile="pkiutilities/secmodui/group"/>
+ </component>
+ <component id="devicetoken" filter="s60" name="Device Token">
+ <unit bldFile="pkiutilities/devicetoken/group"/>
+ </component>
+ <component id="certificates" filter="s60" name="Certificates">
+ <unit bldFile="pkiutilities/certificates/group"/>
+ </component>
+ <component id="pkiutilities_build" filter="s60" name="PKI Utilities Build">
+ <unit bldFile="pkiutilities/group"/>
+ </component>
<component id="ocsp" name="Online Certificate Status Protocol" introduced="^2" purpose="optional">
<unit bldFile="pkiutilities/ocsp/group" mrp="pkiutilities/ocsp/group/securitysrv_ocsp.mrp"/>
</component>
</collection>
+ <collection id="remotelock" name="Remote Lock" level="generic">
+ <component id="remotelocksettings" filter="s60" name="Remote Lock Settings"/>
+ <component id="remotelockengine" filter="s60" name="Remote Lock Engine"/>
+ <component id="remotelock_build" filter="s60" name="Remote Lock Build">
+ <!-- need to distribute bld.inf to empty components or collapse into a single component -->
+ <unit bldFile="remotelock/group"/>
+ </component>
+ </collection>
+ <collection id="boottimeintegritycheck" name="Boot Time Integrity Check" level="plugin">
+ <component id="trkdummy" filter="s60" name="Trk Dummy">
+ <!-- <unit bldFile="boottimeintegritycheck/trkdummy/group"/> -->
+ </component>
+ <component id="boottimeintegritycheck_build" filter="s60" name="Boot Time Integrity Check Build">
+ <unit bldFile="boottimeintegritycheck/group"/>
+ </component>
+ </collection>
+ <collection id="securitydialogs" name="Security Dialogs" level="specific">
+ <component id="keylockpolicyapi" filter="s60" name="Keylock Policy API">
+ <unit bldFile="securitydialogs/keylockpolicyapi/group"/>
+ </component>
+ <component id="autolock" name="Autolock" filter="s60">
+ <unit bldFile="securitydialogs/autolock/group"/>
+ </component>
+ <component id="secui" filter="s60" name="Security UI">
+ <unit bldFile="securitydialogs/secui/group"/>
+ </component>
+ <component id="securitynotifier" filter="s60" name="Security Notifier">
+ <unit bldFile="securitydialogs/securitynotifier/group"/>
+ </component>
+ <component id="securityobserver" filter="s60" name="Security Observer">
+ <unit bldFile="securitydialogs/securityobserver/group"/>
+ </component>
+ </collection>
<collection id="securitysrv_info" name="Security Services Info" level="specific">
+ <component id="secsrv_plat" name="Security Services Platform Interfaces" filter="s60" class="api">
+ <unit bldFile="secsrv_plat/group"/>
+ <!-- <unit bldFile="secsrv_plat/devicelock_access_api/group"/> -->
+ <!-- <unit bldFile="secsrv_plat/keyguard_access_api/group"/> -->
+ <!-- <unit bldFile="secsrv_plat/lockapp_server_api/group"/> -->
+ </component>
+ <component id="securitysrv_test" filter="s60" purpose="development" name="Security Services Test">
+ <!-- <unit bldFile="tsrc/group"/> -->
+ </component>
<component id="securitysrv_metadata" name="Security Services Metadata" class="config" introduced="^2" purpose="development" target="desktop">
<unit mrp="securitysrv_info/securitysrv_metadata/securitysrv_metadata.mrp"/>
</component>
--- a/package_map.xml Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,2 +0,0 @@
-<?xml version="1.0"?>
-<PackageMap root="sf" layer="mw" />
\ No newline at end of file
--- a/pkiutilities/CTSecurityDialogs/Group/CTSecDialogImpl.mmp Tue Aug 31 16:04:40 2010 +0300
+++ b/pkiutilities/CTSecurityDialogs/Group/CTSecDialogImpl.mmp Wed Sep 01 12:19:59 2010 +0100
@@ -34,40 +34,29 @@
LANGUAGE_IDS
END
-// CTSecuritydialognotifier uses CertManUi resources that are not compiled in builds any more
-SOURCEPATH ../../CertmanUi/data
-START RESOURCE certmanui.rss
-HEADER
-TARGETPATH RESOURCE_FILES_DIR
-LANGUAGE_IDS
-END
-
SYSTEMINCLUDE ../../CertmanUi/INC
SYSTEMINCLUDE ../../CertSaver/inc
SYSTEMINCLUDE ../../DeviceToken/Inc
SYSTEMINCLUDE ../../../inc // securityservices/inc directory
MW_LAYER_SYSTEMINCLUDE
-SYSTEMINCLUDE /epoc32/include/mw/hb/hbcore
-SYSTEMINCLUDE /epoc32/include/mw/hb/hbwidgets
USERINCLUDE ../NotifInc
USERINCLUDE ../ClientInc
-USERINCLUDE ../../../securitydialogs/SecUi/Inc
SOURCEPATH ../NotifSrc
SOURCE DllMain.cpp
SOURCE CTSecuritydialognotifier.cpp
-//SOURCE CTpinquerydialog.cpp
-//SOURCE CTQueryDialog.cpp
-//SOURCE CTSigntextdialog.cpp
-//SOURCE CTSelectcertificatedialog.cpp
-//SOURCE CTPinPinQueryDialog.cpp
+SOURCE CTpinquerydialog.cpp
+SOURCE CTQueryDialog.cpp
+SOURCE CTSigntextdialog.cpp
+SOURCE CTSelectcertificatedialog.cpp
+SOURCE CTPinPinQueryDialog.cpp
SOURCE CTCertificateQuery.cpp
SOURCE CTSecurityDialogsAO.cpp
-SOURCE CTUntrustedCertQuery.cpp
-//SOURCE CTInvalidCertNote.cpp
+SOURCE CTNoTrustQuery.cpp
+SOURCE CTInvalidCertNote.cpp
LIBRARY EUSER.LIB
LIBRARY EIKSRV.LIB
@@ -91,13 +80,10 @@
LIBRARY aknlayout.lib
LIBRARY X500.lib
LIBRARY DevTokenClient.lib
-LIBRARY HbCore.lib // CHbDeviceDialog
-LIBRARY HbWidgets.lib
-LIBRARY secui.lib
DEBUGLIBRARY flogger.lib
-#if defined( EABI )
+#if defined(ARMCC)
DEFFILE ../eabi/CTSecDilogImpl.DEF
#elif defined( WINSCW )
DEFFILE ../BWINSCW/CTSecDilogImpl.DEF
--- a/pkiutilities/CTSecurityDialogs/Group/bld.inf Tue Aug 31 16:04:40 2010 +0300
+++ b/pkiutilities/CTSecurityDialogs/Group/bld.inf Wed Sep 01 12:19:59 2010 +0100
@@ -23,12 +23,10 @@
PRJ_EXPORTS
../loc/wmlbrowser_wim.loc MW_LAYER_LOC_EXPORT_PATH(wmlbrowser_wim.loc)
-../../CertmanUi/loc/certmanui.loc MW_LAYER_LOC_EXPORT_PATH(certmanui.loc)
PRJ_MMPFILES
CTSecDialogImpl.mmp
-//TODO: remove completely, commented out to remove AVKON Notifier API dependency
-//CTSecDlgNotifier.mmp
+CTSecDlgNotifier.mmp
#ifdef __JAVA_JSR_177_SECURITY_AND_TRUST_SERVICES
CTSecDlgs.mmp
#endif
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/pkiutilities/CTSecurityDialogs/NotifInc/CTNoTrustQuery.h Wed Sep 01 12:19:59 2010 +0100
@@ -0,0 +1,68 @@
+/*
+* Copyright (c) 2002-2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+
+
+#ifndef CTNOTRUSTQUERY_H
+#define CTNOTRUSTQUERY_H
+
+// INCLUDES
+
+#include <AknQueryDialog.h>
+
+// FORWARD DECLARATIONS
+
+class CCTSecurityDialogsAO;
+class CAknSinglePopupMenuStyleListBox;
+
+// CLASS DECLARATION
+
+/**
+* Notifier class for showing SSL security dialogs
+*/
+NONSHARABLE_CLASS( CCTNoTrustQuery ): public CAknQueryDialog
+ {
+ public: // constructors and destructor
+
+ CCTNoTrustQuery(
+ CCTSecurityDialogsAO& aNotifier,
+ TBool& aRetVal,
+ TRequestStatus& aClientStatus,
+ HBufC* aServerName,
+ TBool aShowPermAccept,
+ TBool& aIsDeleted );
+
+ virtual ~CCTNoTrustQuery();
+
+ private: // from CEikDialog
+ TBool OkToExitL( TInt aButtonId );
+ void PostLayoutDynInitL();
+
+ private: // New functions
+ TBool OptionsMenuL();
+
+ private: // data
+ CCTSecurityDialogsAO& iNotifier;
+ TBool& iRetVal; //Dialog response
+ TRequestStatus* iClientStatus;
+ HBufC* iServerName;
+ TBool iShowPermAccept;
+ TBool& iDeleted;
+ };
+
+#endif // CTNOTRUSTQUERY_H
+
--- a/pkiutilities/CTSecurityDialogs/NotifInc/CTSecurityDialogsAO.h Tue Aug 31 16:04:40 2010 +0300
+++ b/pkiutilities/CTSecurityDialogs/NotifInc/CTSecurityDialogsAO.h Wed Sep 01 12:19:59 2010 +0100
@@ -36,7 +36,7 @@
class CX500DistinguishedName;
class MCTWritableCertStore;
class CAknQueryDialog;
-//class CCTPinQueryDialog;
+class CCTPinQueryDialog;
// CLASS DECLARATION
@@ -170,8 +170,6 @@
void ShowCSRDialogL();
- void ShowInformationNoteL( TInt aResourceID ) const;
-
/**
* Saves digital signature receipt
*/
@@ -325,8 +323,11 @@
TBool& iDeleted;
- //CCTPinQueryDialog* iPinQueryDialog;
- //TBool iPinQueryDialogDeleted;
+ CAknQueryDialog* iQueryDialog;
+ TBool iQueryDialogDeleted;
+
+ CCTPinQueryDialog* iPinQueryDialog;
+ TBool iPinQueryDialogDeleted;
};
#endif // CTSECURITYDIALOGSAO_H
--- a/pkiutilities/CTSecurityDialogs/NotifInc/CTUntrustedCertQuery.h Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,78 +0,0 @@
-/*
-* Copyright (c) 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: Displays untrusted certificate dialog.
-*
-*/
-
-#ifndef CTUNTRUSTEDCERTQUERY_H
-#define CTUNTRUSTEDCERTQUERY_H
-
-#include <e32base.h> // CActive
-#include <hb/hbcore/hbdevicedialogsymbian.h> // MHbDeviceDialogObserver
-#include <securitydefs.h> // TValidationError
-
-class CHbDeviceDialogSymbian;
-class CHbSymbianVariantMap;
-
-
-/**
-* Displays untrusted certificate query.
-* Untrusted certificate query dialog is displayed for secure connection
-* (SSL/TLS) server authentication failure errors. CCTUntrustedCertQuery
-* class uses UntrustedCertificateDialog device dialog to show the query.
-*/
-NONSHARABLE_CLASS( CCTUntrustedCertQuery ) : public CActive, public MHbDeviceDialogObserver
- {
- public: // constructors and destructor
- static CCTUntrustedCertQuery* NewLC( TValidationError aValidationError,
- const TDesC8& aCertificate, const TDesC& aServerName,
- TBool aCanHandlePermanentAccept );
- ~CCTUntrustedCertQuery();
-
- public: // new functions
- enum TResponse {
- EQueryRejected,
- EQueryAccepted,
- EQueryAcceptedPermanently
- };
- void ShowQueryAndWaitForResponseL( TResponse& aResponse );
-
- protected: // from CActive
- void DoCancel();
- void RunL();
-
- private: // from MHbDeviceDialogObserver
- void DataReceived( CHbSymbianVariantMap& aData );
- void DeviceDialogClosed( TInt aCompletionCode );
-
- private: // new functions
- CCTUntrustedCertQuery( TValidationError aValidationError,
- const TDesC8& aCertificate, const TDesC& aServerName,
- TBool aCanHandlePermanentAccept );
- void ConstructL();
-
- private: // data
- TValidationError iValidationError;
- const TDesC8& iCertificate;
- const TDesC& iServerName;
- TBool iCanHandlePermanentAccept;
- CActiveSchedulerWait *iWait;
- TInt iWaitCompletionCode;
- CHbDeviceDialogSymbian* iDeviceDialog;
- CHbSymbianVariantMap* iVariantMap;
- TResponse iResponse;
- };
-
-#endif // CTUNTRUSTEDCERTQUERY_H
-
--- a/pkiutilities/CTSecurityDialogs/NotifSrc/CTCertificateQuery.cpp Tue Aug 31 16:04:40 2010 +0300
+++ b/pkiutilities/CTSecurityDialogs/NotifSrc/CTCertificateQuery.cpp Wed Sep 01 12:19:59 2010 +0100
@@ -1,5 +1,5 @@
/*
-* Copyright (c) 2002 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2002 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"
@@ -11,7 +11,7 @@
*
* Contributors:
*
-* Description:
+* Description:
*
*/
@@ -23,40 +23,36 @@
#include "CTSecurityDialogsAO.h"
#include <CTSecDlgs.rsg>
-//#include <certmanui.rsg>
+#include <certmanui.rsg>
#include <aknmessagequerydialog.h>
#include <aknPopupHeadingPane.h>
// ================= MEMBER FUNCTIONS ==========================================
-CCTCertificateQuery::CCTCertificateQuery(CCTSecurityDialogsAO& aAO):
- CAknMessageQueryDialog( CAknQueryDialog::ENoTone ),
- iNotifier(aAO)
+CCTCertificateQuery::CCTCertificateQuery(CCTSecurityDialogsAO& aAO):
+ CAknMessageQueryDialog( CAknQueryDialog::ENoTone ),
+ iNotifier(aAO)
{
}
CCTCertificateQuery* CCTCertificateQuery::NewL(CCTSecurityDialogsAO& aAO)
{
- CCTCertificateQuery* query =
+ CCTCertificateQuery* query =
new( ELeave ) CCTCertificateQuery(aAO);
CleanupStack::PushL( query );
query->ConstructL();
CleanupStack::Pop();
-
+
return query;
}
void CCTCertificateQuery::ConstructL()
- {
- // Temporary fix. Resource file certmanui.rsg is removed.
- //iHeader = CEikonEnv::Static()->AllocReadResourceL( R_TEXT_RESOURCE_DETAILS_VIEW_HEADER );
- _LIT( KHeader, "Certificate details" );
- iHeader = KHeader().AllocL();
-
- SetHeaderTextL( *iHeader );
- iMessage = iNotifier.CreateMessageL();
- SetMessageTextL( *iMessage );
+ {
+ iHeader = CEikonEnv::Static()->AllocReadResourceL( R_TEXT_RESOURCE_DETAILS_VIEW_HEADER );
+ SetHeaderTextL( *iHeader );
+ iMessage = iNotifier.CreateMessageL();
+ SetMessageTextL( *iMessage );
}
CCTCertificateQuery::~CCTCertificateQuery()
--- a/pkiutilities/CTSecurityDialogs/NotifSrc/CTInvalidCertNote.cpp Tue Aug 31 16:04:40 2010 +0300
+++ b/pkiutilities/CTSecurityDialogs/NotifSrc/CTInvalidCertNote.cpp Wed Sep 01 12:19:59 2010 +0100
@@ -16,7 +16,7 @@
*/
-#include <platform/e32notif.h>
+
#include "CTInvalidCertNote.h"
#include "CTCertificateQuery.h" // CCTCertificateQuery
#include <uikon/eiksrvui.h> // CEikServAppUi
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/pkiutilities/CTSecurityDialogs/NotifSrc/CTNoTrustQuery.cpp Wed Sep 01 12:19:59 2010 +0100
@@ -0,0 +1,212 @@
+/*
+* Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+
+
+// INCLUDE FILES
+
+#include "CTNoTrustQuery.h"
+#include "CTSecurityDialogsAO.h"
+#include "CTCertificateQuery.h"
+#include <aknlists.h>
+#include <CTSecDlgs.rsg>
+#include <uikon/eiksrvui.h>
+#include <StringLoader.h>
+
+
+// ================= MEMBER FUNCTIONS ==========================================
+
+// -----------------------------------------------------------------------------
+// CSecNotNoTrustQuery::CCTNoTrustQuery()
+// -----------------------------------------------------------------------------
+//
+CCTNoTrustQuery::CCTNoTrustQuery(
+ CCTSecurityDialogsAO& aNotifier,
+ TBool& aRetVal,
+ TRequestStatus& aClientStatus,
+ HBufC* aServerName,
+ TBool aShowPermAccept,
+ TBool& aIsDeleted ):
+ CAknQueryDialog( CAknQueryDialog::ENoTone ),
+ iNotifier( aNotifier ),
+ iRetVal( aRetVal ),
+ iClientStatus( &aClientStatus ),
+ iServerName( aServerName ),
+ iShowPermAccept( aShowPermAccept ),
+ iDeleted( aIsDeleted )
+ {
+ iDeleted = EFalse;
+ }
+
+// -----------------------------------------------------------------------------
+// CSecNotNoTrustQuery::~CCTNoTrustQuery()
+// -----------------------------------------------------------------------------
+//
+CCTNoTrustQuery::~CCTNoTrustQuery()
+ {
+ // Allow application switching again
+ CEikonEnv* eikonEnv = CEikonEnv::Static();
+ if( eikonEnv )
+ {
+ CEikServAppUi* eikServAppUi = static_cast<CEikServAppUi*>( eikonEnv->EikAppUi() );
+ if( eikServAppUi )
+ {
+ eikServAppUi->SuppressAppSwitching( EFalse );
+ }
+ }
+
+ // Complete the client request
+ if( iClientStatus && *iClientStatus == KRequestPending )
+ {
+ iRetVal = EFalse;
+ User::RequestComplete( iClientStatus, KErrNone );
+ }
+
+ // Notify that the dialog has been deleted
+ iDeleted = ETrue;
+ }
+
+// -----------------------------------------------------------------------------
+// CSecNotNoTrustQuery::OkToExitL()
+// -----------------------------------------------------------------------------
+//
+TBool CCTNoTrustQuery::OkToExitL( TInt aButtonId )
+ {
+ if ( aButtonId == EAknSoftkeyOptions || aButtonId == EAknSoftkeyOk )
+ {
+ return OptionsMenuL();
+ }
+ else
+ {
+ iRetVal = EFalse;
+ User::RequestComplete( iClientStatus, KErrNone );
+ }
+ return ETrue;
+ }
+
+// -----------------------------------------------------------------------------
+// CCTNoTrustQuery::PostLayoutDynInitL()
+// -----------------------------------------------------------------------------
+//
+void CCTNoTrustQuery::PostLayoutDynInitL()
+ {
+ CAknQueryControl* control = QueryControl();
+ if (control)
+ control->StartAnimationL();
+ ((CEikServAppUi*)(CEikonEnv::Static())->EikAppUi())->SuppressAppSwitching( ETrue );
+ }
+
+// -----------------------------------------------------------------------------
+// CCTNoTrustQuery::OptionsMenuL()
+// -----------------------------------------------------------------------------
+TBool CCTNoTrustQuery::OptionsMenuL()
+ {
+ TBool ret = EFalse;
+ CAknSinglePopupMenuStyleListBox* list =
+ new( ELeave ) CAknSinglePopupMenuStyleListBox;
+ CleanupStack::PushL( list );
+ CAknPopupList* popupList = CAknPopupList::NewL(
+ list, R_AVKON_SOFTKEYS_SELECT_CANCEL__SELECT, AknPopupLayouts::EMenuWindow );
+ CleanupStack::PushL( popupList );
+ list->ConstructL( popupList, CEikListBox::ELeftDownInViewRect );
+ list->CreateScrollBarFrameL( ETrue );
+ list->ScrollBarFrame()->SetScrollBarVisibilityL(
+ CEikScrollBarFrame::EOff, CEikScrollBarFrame::EAuto );
+
+ TInt resourceid;
+
+ if ( iShowPermAccept )
+ {
+ resourceid = R_NOTRUST_MENUPANE;
+ }
+ else
+ {
+ resourceid = R_NOTRUST_MENUPANE_NO_PERM;
+ }
+
+ CDesCArrayFlat* items =
+ CEikonEnv::Static()->ReadDesCArrayResourceL( resourceid );
+
+ CTextListBoxModel* model = list->Model();
+ model->SetOwnershipType( ELbmOwnsItemArray );
+ model->SetItemTextArray( items );
+
+ CleanupStack::Pop( popupList ); //popupList
+ if ( popupList->ExecuteLD() )
+ {
+ if( !iDeleted )
+ {
+ TInt index = list->CurrentItemIndex();
+ if ( index == 0 ) // Accept now
+ {
+ iRetVal = EServerCertAcceptedTemporarily;
+ User::RequestComplete(iClientStatus, KErrNone);
+ ret = ETrue;
+ }
+ else if (( index == 1 ) && ( resourceid == R_NOTRUST_MENUPANE )) // Accept permanently
+ {
+
+ HBufC* prompt = StringLoader::LoadLC( R_QTN_HTTPSEC_QUERY_PERM_ACCEPT_TEXT, *iServerName );
+
+ CAknMessageQueryDialog* note = CAknMessageQueryDialog::NewL( *prompt );
+
+ note->PrepareLC( R_HTTPSEC_QUERY_PERM_ACCEPT );
+ note->SetPromptL( *prompt );
+
+ if ( note->RunLD() )
+ {
+ iRetVal = EServerCertAcceptedPermanently;
+ User::RequestComplete( iClientStatus, KErrNone );
+ ret = ETrue;
+ }
+ else
+ {
+ ret = EFalse;
+ }
+
+ CleanupStack::PopAndDestroy( prompt );
+ }
+ else if ((( index == 2 ) && ( resourceid == R_NOTRUST_MENUPANE )) ||
+ (( index == 1 ) && ( resourceid == R_NOTRUST_MENUPANE_NO_PERM )) ) // Details
+ {
+ // We need to delay this implementation in other releases, because
+ // separate ICD was taken to 3.0.
+ CCTCertificateQuery* query =
+ CCTCertificateQuery::NewL( iNotifier );
+ query->ExecuteLD( R_NOTRUST_CERTIFICATE_QUERY );
+ ret = EFalse;
+ }
+ else
+ {
+ iRetVal = EServerCertNotAccepted;
+ User::RequestComplete( iClientStatus, KErrNone );
+ ret = ETrue;
+ }
+ }
+ else
+ {
+ ret = EFalse;
+ }
+ }
+ else
+ {
+ ret = EFalse;
+ }
+ CleanupStack::PopAndDestroy( list ); // list
+ return ret;
+ }
+
--- a/pkiutilities/CTSecurityDialogs/NotifSrc/CTPinPinQueryDialog.cpp Tue Aug 31 16:04:40 2010 +0300
+++ b/pkiutilities/CTSecurityDialogs/NotifSrc/CTPinPinQueryDialog.cpp Wed Sep 01 12:19:59 2010 +0100
@@ -17,7 +17,6 @@
// INCLUDE FILES
-#include <platform/e32notif.h>
#include "CTPinPinQueryDialog.h"
#include <CTSecDlgs.rsg>
#include <eikenv.h>
--- a/pkiutilities/CTSecurityDialogs/NotifSrc/CTQueryDialog.cpp Tue Aug 31 16:04:40 2010 +0300
+++ b/pkiutilities/CTSecurityDialogs/NotifSrc/CTQueryDialog.cpp Wed Sep 01 12:19:59 2010 +0100
@@ -19,7 +19,6 @@
// INCLUDE FILES
-#include <platform/e32notif.h>
#include "CTQueryDialog.h"
#include "CTSecurityDialogsLogger.h"
#include <CTSecDlgs.rsg>
--- a/pkiutilities/CTSecurityDialogs/NotifSrc/CTSecurityDialogsAO.cpp Tue Aug 31 16:04:40 2010 +0300
+++ b/pkiutilities/CTSecurityDialogs/NotifSrc/CTSecurityDialogsAO.cpp Wed Sep 01 12:19:59 2010 +0100
@@ -19,17 +19,17 @@
// INCLUDE FILES
#include "CTSecurityDialogsAO.h"
#include "CTSecurityDialogNotifier.h"
-//#include "CTPinQueryDialog.h"
-//#include "CTSignTextDialog.h"
-//#include "CTSelectCertificateDialog.h"
-//#include "CTQueryDialog.h"
-//#include "CTPinPinQueryDialog.h"
-#include "CTUntrustedCertQuery.h"
-//#include "CTInvalidCertNote.h"
+#include "CTPinQueryDialog.h"
+#include "CTSignTextDialog.h"
+#include "CTSelectCertificateDialog.h"
+#include "CTQueryDialog.h"
+#include "CTPinPinQueryDialog.h"
+#include "CTNoTrustQuery.h"
+#include "CTInvalidCertNote.h"
#include <PKIDlg.h>
#include <badesca.h>
#include <StringLoader.h>
-//#include <aknnotewrappers.h>
+#include <aknnotewrappers.h>
#include <unifiedcertstore.h>
#include <unifiedkeystore.h>
#include <mctkeystore.h>
@@ -37,7 +37,7 @@
#include <DocumentHandler.h>
#include <apmstd.h>
#include <DigSigningNote.h>
-//#include <certmanui.rsg>
+#include <certmanui.rsg>
#include <X509CertNameParser.h>
#include <x509cert.h>
#include <x500dn.h>
@@ -45,13 +45,7 @@
#include <x509certext.h>
#include <TrustedSitesStore.h>
#include <mctwritablecertstore.h>
-#include <eikenv.h> // CEikonEnv
-#include <AknUtils.h> // AknTextUtils
-
-#include "SecQueryUi.h" // needed for password dialog
-
-#include <hbdevicemessageboxsymbian.h> // needed for Note dialogs
-#include <hbdevicenotificationdialogsymbian.h>
+#include <coreapplicationuisdomainpskeys.h> // KCoreAppUIsAutolockStatus
// LOCAL CONSTANTS AND MACROS
const TInt KCertArrayGranularity = 3;
@@ -60,6 +54,8 @@
const TInt KMaxLengthTextCertLabelVisible = 200;
// "dd/mm/yyyy0"
const TInt KMaxLengthTextDateString = 20;
+// HH0
+const TInt KMaxLengthTextSerialNumberFormatting = 3;
// Maximum length of a certificate
const TInt KMaxCertificateLength = 5000;
@@ -68,8 +64,12 @@
const TInt KMinImportKeyPwLen = 1;
-const TInt KMaxCommonNameLength = 64;
+const TInt KMaxCNLength = 64;
+_LIT(KCertManUIDetailsViewHexFormat, "%02X");
+
+const TInt KFileCertStoreUid( 0x101F501A );
+const TInt KWIMCertStoreUid ( 0x101F79D9 );
const TUid KTrustedServerTokenUid = { 0x101FB66F };
const TUid KDeviceCertStoreTokenUid = { 0x101FB668 };
@@ -83,15 +83,43 @@
_LIT( KPKCS12TokenLabel, "PKCS12");
-// TODO: replace with OST tracing
-#ifdef _DEBUG
-#include <e32debug.h>
-#define TRACE(x) RDebug::Printf(x)
-#define TRACE1(x,y) RDebug::Printf(x,y)
-#else
-#define TRACE(x)
-#define TRACE1(x,y)
-#endif
+// ============================ LOCAL FUNCTIONS ===============================
+
+TInt AlgorithmNameResourceId( TAlgorithmId aAlgorithmId )
+ {
+ TInt resourceId = 0;
+ switch( aAlgorithmId )
+ {
+ case ERSA:
+ resourceId = R_TEXT_RESOURCE_DETAILS_VIEW_ALGORITHM_RSA;
+ break;
+ case EDSA:
+ resourceId = R_TEXT_RESOURCE_DETAILS_VIEW_ALGORITHM_DSA;
+ break;
+ case EDH:
+ resourceId = R_TEXT_RESOURCE_DETAILS_VIEW_ALGORITHM_DH;
+ break;
+ case EMD2:
+ resourceId = R_TEXT_RESOURCE_DETAILS_VIEW_ALGORITHM_MD2;
+ break;
+ case EMD5:
+ resourceId = R_TEXT_RESOURCE_DETAILS_VIEW_ALGORITHM_MD5;
+ break;
+ case ESHA1:
+ resourceId = R_TEXT_RESOURCE_DETAILS_VIEW_ALGORITHM_SHA1;
+ break;
+ case ESHA224:
+ case ESHA256:
+ case ESHA384:
+ case ESHA512:
+ resourceId = R_TEXT_RESOURCE_DETAILS_VIEW_ALGORITHM_SHA2;
+ break;
+ default:
+ resourceId = R_TEXT_RESOURCE_DETAILS_VIEW_UNKNOWN;
+ break;
+ }
+ return resourceId;
+ }
// ============================ MEMBER FUNCTIONS ===============================
@@ -119,6 +147,9 @@
void CCTSecurityDialogsAO::ConstructL()
{
iDeleted = EFalse;
+
+ iQueryDialog = NULL;
+ iQueryDialogDeleted = ETrue;
}
// -----------------------------------------------------------------------------
@@ -194,7 +225,6 @@
iMessagePtr = aMessage;
WIMSECURITYDIALOGS_WRITE_FORMAT( "CCTSecurityDialogsAO::StartLD iOperation=%d", iOperation );
- TRACE1( "CCTSecurityDialogsAO::StartLD iOperation=%d", iOperation );
MapTlsProviderOperation( iOperation );
@@ -275,10 +305,7 @@
pinLabel.Copy( pinLabelPtr );
HBufC* text = iNotifier->LoadResourceStringLC( iOperation, pinLabel );
- // TODO
- //CCTSignTextDialog::RunDlgLD( R_WIM_UNBLOCK_INFO_DIALOG, *text, iStatus, iRetValue );
- User::Leave( KErrGeneral );
-
+ CCTSignTextDialog::RunDlgLD( R_WIM_UNBLOCK_INFO_DIALOG, *text, iStatus, iRetValue );
CleanupStack::PopAndDestroy( text );
iStatus = KRequestPending;
SetActive();
@@ -352,8 +379,6 @@
//
void CCTSecurityDialogsAO::DoHandleServerAuthFailL( const TDesC8& aBuffer )
{
- TRACE( "CCTSecurityDialogsAO::DoHandleServerAuthFailL" );
-
CServerAuthenticationFailureInput* srvAuthFail =
CServerAuthenticationFailureInput::NewLC( aBuffer );
TPtrC8 cert;
@@ -366,31 +391,33 @@
iServerName = HBufC::NewL( serverName.Length() );
iServerName->Des().Copy( serverName );
+
+ HBufC* cn = NULL;
iCertLabel = NULL;
-
// Site will be checked later. For now it is not trusted
iTrustedSite = EFalse;
+
CX509Certificate* serverCert = CX509Certificate::NewLC( cert );
+ // Retrieve subject name
const CX500DistinguishedName& dName = serverCert->SubjectName();
-
- HBufC* commonName = dName.ExtractFieldL( KX520CommonName );
- CleanupStack::PushL( commonName );
- if( commonName != NULL )
+ // Retrieve CN
+ cn = dName.ExtractFieldL( KX520CommonName );
+ if ( cn != NULL )
{
+ // commonName exist in the certificate.
// Check the length of CN. RFC 3280 states
// that max length of CN is 64.
- if( commonName->Length() <= KMaxCommonNameLength )
+ if ( cn->Length() <= KMaxCNLength )
{
- iCertLabel = HBufC::NewL( commonName->Length() );
- iCertLabel->Des().Append( commonName->Des() );
+ iCertLabel = HBufC::NewL( cn->Length() );
+ iCertLabel->Des().Append( cn->Des() );
}
}
- CleanupStack::PopAndDestroy( commonName );
- if( iCertLabel == NULL )
+ if ( iCertLabel == NULL )
{
- // No or invalid commonName. Use domain name as label.
+ // No or invalid commonName. Use domain name as label
iCertLabel = HBufC::NewL( iServerName->Length() );
iCertLabel->Des().Append( iServerName->Des() );
}
@@ -509,22 +536,17 @@
{
case EUserAuthenticationText:
{
- // TODO
- //CCTSignTextDialog::RunDlgLD( R_WIM_USERAUTHTEXT_DIALOG,
- // *textToSign, iStatus, iRetValue );
- User::Leave( KErrGeneral );
+ CCTSignTextDialog::RunDlgLD( R_WIM_USERAUTHTEXT_DIALOG,
+ *textToSign, iStatus, iRetValue );
break;
}
case EUserAuthentication:
{
- DoHandleMessageL( EUserAuthentication, KNullDesC, KNullDesC, 1, KMaxTInt );
break;
}
case ESignText:
{
- // TODO
- //CCTSignTextDialog::RunDlgLD( R_WIM_SIGNTEXT_DIALOG,*textToSign, iStatus, iRetValue );
- User::Leave( KErrGeneral );
+ CCTSignTextDialog::RunDlgLD( R_WIM_SIGNTEXT_DIALOG,*textToSign, iStatus, iRetValue );
break;
}
default:
@@ -576,7 +598,6 @@
if ( iRetry ) // Is this new try?
{
// Previous attempt was failed
- // incorrect pin code
DoHandleMessageL( EErrorPinCodeIncorrect, KNullDesC, KNullDesC, 0, 0 );
}
// Ask the PIN code or PUK code
@@ -584,13 +605,11 @@
{
HBufC* header = StringLoader::LoadLC(
R_QTN_CM_HEADING_PHONE_KEYSTORE, CEikonEnv::Static() );
- iPIN.iMinLength = KMaxKeystorePwLength;
+ iPIN.iMinLength = KMaxKeystorePwLength;
DoHandleMessageL( EEnterKeyStorePw, KNullDesC, *header,
iPIN.iMinLength, iPIN.iMaxLength );
iMultiLineDlgType = EEnterNewKeyStorePw;
CleanupStack::PopAndDestroy( header );
- RunL();
-
}
else if ( iPIN.iPINLabel == KKeyStoreImportKeyLabel )
{
@@ -607,7 +626,7 @@
else if ( iPIN.iPINLabel == KKeyStoreCreatePwLabel )
{
iPIN.iMinLength = KMaxKeystorePwLength;
- ShowInformationNoteL(R_QTN_CM_CREATING_KEYSTORE);
+ DoHandleMessageL( EInfoPwCreating, KNullDesC, KNullDesC, 0, 0 );
DoHandleMultilinePinQueryL( EEnterNewKeyStorePw );
iNextStep = EVerifyPINs;
}
@@ -632,10 +651,8 @@
// CCTSecurityDialogsAO::DoHandleMultilinePinQueryL()
// -----------------------------------------------------------------------------
//
-void CCTSecurityDialogsAO::DoHandleMultilinePinQueryL( const TInt& /*aDlgType*/ )
+void CCTSecurityDialogsAO::DoHandleMultilinePinQueryL( const TInt& aDlgType )
{
- // TODO
-#if 0
iMultiLineDlgType = aDlgType;
HBufC* dlgText1 = NULL;
HBufC* dlgText2 = NULL;
@@ -643,37 +660,12 @@
TDialogType dlgType = ( TDialogType )aDlgType;
if ( EEnterNewKeyStorePw == dlgType )
{
-/*
dlgText1 = iNotifier->LoadResourceStringLC( dlgType, KNullDesC );
dlgText2 = iNotifier->LoadResourceStringLC( EVerifyKeyStorePw, KNullDesC );
dlg = CCTPinPinQueryDialog::NewL( *dlgText1, *dlgText2, iPINValue2,
- iPINValueVerify, iPIN.iMinLength, iPIN.iMaxLength, iRetValue );16:19:13.812 xti1:MCU_ASCII_PRINTF; channel:0xE0; msg:*PlatSec* ERROR - Capability check failed - Process #tlstest[e8dc94b1]0001 was checked by Thread c32exe.exe[101f7989]0001::ESock_IP and was found to be missing the capabilities: NetworkControl .
-
+ iPINValueVerify, iPIN.iMinLength, iPIN.iMaxLength, iRetValue );
dlg->RunDlgLD( iStatus, R_WIM_PWPW_QUERY_DIALOG );
CleanupStack::PopAndDestroy( 2, dlgText1 ); // dlgText1, dlgText2
-*/
- dlgText1 = StringLoader::LoadLC( R_QTN_SN_NEW_PHONE_KEYSTORE );
- dlgText2 = StringLoader::LoadLC( R_QTN_WIM_VERIFY_PIN );
- HBufC* message = HBufC::NewLC( KMaxLengthTextCertLabelVisible );
- message->Des().Append(dlgText1->Des());
- message->Des().Append(_L("|"));
- message->Des().Append(dlgText2->Des());
- CSecQueryUi* SecQueryUi = CSecQueryUi::NewL();
- TInt queryAccepted = SecQueryUi->SecQueryDialog(message->Des(), iPINValueVerify,
- iPIN.iMinLength,iPIN.iMaxLength,
- ESecUiAlphaSupported |
- ESecUiCancelSupported |
- ESecUiSecretSupported |
- ESecUiEmergencyNotSupported);
- iRetValue=(queryAccepted==KErrNone);
- if(iRetValue)
- iPINValue2.Copy(iPINValueVerify); // dialog already does not OK with different pin codes
- delete SecQueryUi;
- SecQueryUi=NULL;
- CleanupStack::PopAndDestroy( message );
- CleanupStack::PopAndDestroy( dlgText2 );
- CleanupStack::PopAndDestroy( dlgText1 );
- RunL(); // had to call it this way
}
else if ( EExportKeyPw == dlgType )
{
@@ -693,8 +685,6 @@
dlg->RunDlgLD( iStatus, R_WIM_PINPIN_QUERY_DIALOG );
CleanupStack::PopAndDestroy( 2, dlgText1 ); // dlgText1, dlgText2
}
-#endif
- User::Leave( KErrGeneral );
}
// -----------------------------------------------------------------------------
@@ -714,7 +704,7 @@
TDialogTypeItem item = iNotifier->GetDialogTypeItem( dlgType );
- //CAknResourceNoteDialog* dlg = NULL;
+ CAknResourceNoteDialog* dlg = NULL;
TInt resource = 0;
@@ -722,62 +712,44 @@
{
case EInfoNote:
{
- // TODO
- //dlg = new ( ELeave ) CAknInformationNote( ETrue );
- User::Leave( KErrGeneral );
+ dlg = new ( ELeave ) CAknInformationNote( ETrue );
break;
}
case EErrorNote:
{
- // TODO
- //dlg = new ( ELeave ) CAknErrorNote( ETrue );
- User::Leave( KErrGeneral );
+ dlg = new ( ELeave ) CAknErrorNote( ETrue );
break;
}
case EConfirmationNote:
{
- // TODO
- //dlg = new ( ELeave ) CAknConfirmationNote( ETrue );
- User::Leave( KErrGeneral );
+ dlg = new ( ELeave ) CAknConfirmationNote( ETrue );
break;
}
case EInfoDialog:
{
- // TODO
- /*
CCTQueryDialog::RunDlgLD( iStatus,
iRetValue,
*dlgText, item.iSoftKeyResource,
ECTInfoDialog );
iStatus = KRequestPending;
SetActive();
- */
- User::Leave( KErrGeneral );
break;
}
case EEnterPwPwDialog:
{
- // TODO
- /*
CCTPinPinQueryDialog* dialog =
CCTPinPinQueryDialog::NewL( *dlgText, *dlgText,
iPINValue2, iPINValueVerify, aMinLength, aMaxLength, iRetValue );
dialog->RunDlgLD( iStatus, R_WIM_PWPW_QUERY_DIALOG );
- */
- User::Leave( KErrGeneral );
break;
}
case EEnterPinPinCodeDialog:
{
- // TODO
- /*
CCTPinPinQueryDialog* dialog =
CCTPinPinQueryDialog::NewL( *dlgText, *dlgText,
iPINValue2, iPINValueVerify, aMinLength, aMaxLength, iRetValue );
dialog->RunDlgLD( iStatus, R_WIM_PINPIN_QUERY_DIALOG );
- */
- User::Leave( KErrGeneral );
break;
}
case EEnterPwDialog:
@@ -821,41 +793,17 @@
User::Panic(_L("CSecDlgNotifier"), 0);
}
}
- //iPinQueryDialogDeleted = EFalse;
- if(aDlgType!=EEnterKeyStorePw) {
- // TODO
- /*
- CCTPinQueryDialog::RunDlgLD( iStatus,
- *dlgText,
- *pinValue,
- aMinLength,
- aMaxLength,
- iRetValue,
- resource,
- iPinQueryDialog,
- iPinQueryDialogDeleted );
- */
- User::Leave( KErrGeneral );
- resource = resource; // avoids compiler warning
- break;
- }
- else
- {
- iPIN.iMinLength = KMaxKeystorePwLength;
- CSecQueryUi* SecQueryUi = CSecQueryUi::NewL();
- HBufC* header =StringLoader::LoadLC( R_QTN_SN_ENTER_PHONE_KEYSTORE);
- TInt queryAccepted = SecQueryUi->SecQueryDialog(header->Des(), *pinValue,
- aMinLength,aMaxLength,
- ESecUiAlphaSupported |
- ESecUiCancelSupported |
- ESecUiSecretSupported |
- ESecUiEmergencyNotSupported);
- delete SecQueryUi;
- SecQueryUi=NULL;
- iRetValue=(queryAccepted==KErrNone);
- CleanupStack::PopAndDestroy( header );
+ iPinQueryDialogDeleted = EFalse;
+ CCTPinQueryDialog::RunDlgLD( iStatus,
+ *dlgText,
+ *pinValue,
+ aMinLength,
+ aMaxLength,
+ iRetValue,
+ resource,
+ iPinQueryDialog,
+ iPinQueryDialogDeleted );
break;
- }
}
default:
{
@@ -863,16 +811,12 @@
}
}
- // TODO
- /*
- if ( dlg && aDlgType!=EEnterKeyStorePw)
+
+ if ( dlg )
{
-
dlg->ExecuteLD( *dlgText );
dlg = NULL;
}
- */
- User::Leave( KErrGeneral );
CleanupStack::PopAndDestroy( dlgText ); // dlgText
}
@@ -897,8 +841,6 @@
//
void CCTSecurityDialogsAO::InitCertStoreL()
{
- TRACE( "CCTSecurityDialogsAO::InitCertStoreL" );
-
switch(iOperation)
{
case ESignText:
@@ -1034,15 +976,13 @@
{
WIMSECURITYDIALOGS_WRITE_FORMAT( "CCTSecurityDialogsAO::RunL, iStatus %d", iStatus.Int() );
WIMSECURITYDIALOGS_WRITE_FORMAT( " iNextStep %d", iNextStep );
- TRACE1( "CCTSecurityDialogsAO::RunL, iStatus.Int()=%d", iStatus.Int() );
- if( iStatus != KErrNone )
+ if ( iStatus != KErrNone )
{
User::Leave( iStatus.Int() );
- }
+ } // if
- TRACE1( "CCTSecurityDialogsAO::RunL, iNextStep=%d", iNextStep );
- switch( iNextStep )
+ switch ( iNextStep )
{
case EOperationCompleted:
{
@@ -1050,34 +990,35 @@
HandleResponseAndCompleteL();
break;
}
-
case ECheckServerCerts:
{
WIMSECURITYDIALOGS_WRITE( "ECheckServerCerts" );
TBool foundCert( EFalse );
- if( iServerCerts.Count() )
+ if ( iServerCerts.Count() )
{
// Found certificates in the trusted site certificate storage.
// Compare them with the one received from TlsProvider
iCertPtr.Set( iCertBuf->Des() );
CX509Certificate* serverCert = CX509Certificate::NewLC( iCertPtr );
- for( TInt i = 0; i < iServerCerts.Count(); i++ )
+ for (TInt i=0; i<iServerCerts.Count(); i++ )
{
TPtr8 certPtr( iServerCerts[i]->Des() );
+
CX509Certificate* cert = CX509Certificate::NewLC( certPtr );
- if( cert->Fingerprint() == serverCert->Fingerprint() )
+
+ // Compare fingerprints
+ if ( cert->Fingerprint() == serverCert->Fingerprint() )
{
+ // Fingerprints match
foundCert = ETrue;
}
CleanupStack::PopAndDestroy( cert );
}
-
CleanupStack::PopAndDestroy( serverCert );
-
- if( foundCert )
+ if ( foundCert )
{
// Found matching certificate. Complete the operation
iRetValue = EServerCertAcceptedPermanently;
@@ -1086,26 +1027,24 @@
}
}
- if ( !foundCert )
- {
- // Couldn't find matching certificate. Prompt user
- ShowNoTrustDialogL();
- }
+ if ( !foundCert )
+ {
+ // Couldn't find matching certificate. Prompt user
+ ShowNoTrustDialogL();
+ }
+
break;
}
-
case EProcessTrustedSite:
{
WIMSECURITYDIALOGS_WRITE( "EProcessTrustedSite" );
- TRACE( "CCTSecurityDialogsAO::RunL, EProcessTrustedSite" );
-
TInt count = iCertStore->WritableCertStoreCount();
- for( TInt i = 0; i < count; i++ )
+ for ( TInt i = 0; i < count; i++ )
{
MCTWritableCertStore *certstore = &iCertStore->WritableCertStore( i );
MCTToken& token = certstore->Token();
TUid tokenuid = token.Handle().iTokenTypeUid;
- if( tokenuid == KTrustedServerTokenUid )
+ if ( tokenuid == KTrustedServerTokenUid )
{
iTrustedSiteCertStore = certstore;
}
@@ -1117,11 +1056,11 @@
// Find out whether or not site associated with certificate is trusted
iTrustedSite = trustedSitesStore->IsTrustedSiteL( *iCertBuf, *iServerName );
- if( iTrustedSite )
+ if ( iTrustedSite )
{
TBool allowOutOfDate = trustedSitesStore->IsOutOfDateAllowedL(*iCertBuf, *iServerName);
- if( !allowOutOfDate )
+ if (!allowOutOfDate)
{
CX509Certificate* cert = CX509Certificate::NewLC( iCertBuf->Des() );
@@ -1142,7 +1081,7 @@
}
CleanupStack::PopAndDestroy( trustedSitesStore );
- if( iTrustedSite )
+ if ( iTrustedSite )
{
// Site is trusted. Next step is to check that server
// certificate is in the trusted site certificate storage
@@ -1209,11 +1148,9 @@
}
break;
}
-
case EAddTrustedSite:
{
- TRACE( "CCTSecurityDialogsAO::RunL, EAddTrustedSite" );
- if( iStatus.Int() == KErrNone )
+ if ( iStatus.Int() == KErrNone )
{
//Added server certificate succesfully
CTrustSitesStore* trustedSitesStore = CTrustSitesStore::NewL();
@@ -1222,7 +1159,7 @@
TInt status = trustedSitesStore->AddL( *iCertBuf, *iServerName );
CleanupStack::PopAndDestroy( trustedSitesStore );
- if( status == KErrNone )
+ if ( status == KErrNone )
{
iRetValue = EServerCertAcceptedPermanently;
}
@@ -1237,27 +1174,23 @@
else
{
//Adding server certificate failed
- // TODO: unreached code?
iNextStep = EOperationCompleted;
iRetValue = EServerCertNotAccepted;
HandleResponseAndCompleteL();
}
- break;
+ break;
}
case ESaveServerCert:
{
WIMSECURITYDIALOGS_WRITE( "ESaveServerCert" );
- TRACE( "CCTSecurityDialogsAO::RunL, ESaveServerCert" );
DoHandleSaveServerCertL();
break;
}
-
case EServerCertCheckUserResp:
{
WIMSECURITYDIALOGS_WRITE( "EServerCertCheckUserResp" );
- TRACE( "CCTSecurityDialogsAO::RunL, EServerCertCheckUserResp" );
- if( iRetValue == EServerCertAcceptedPermanently )
+ if ( iRetValue == EServerCertAcceptedPermanently )
{
// User accepted to select certificate permanently.
// First add server certificate
@@ -1274,7 +1207,6 @@
}
break;
}
-
case EOperationSignTextShown:
{
if ( iRetValue || iOperation == EUserAuthentication )
@@ -1291,7 +1223,6 @@
User::RequestComplete( status, KErrNone );
break;
}
-
case EOperationInitCertStore:
{
TInt err = KErrNone;
@@ -1309,7 +1240,6 @@
iNextStep = EOperationRetrieveCertInfos;
break;
}
-
case EOperationRetrieveCertInfos:
{
if ( iCertInfo )
@@ -1345,13 +1275,11 @@
}
break;
}
-
case EOperationSelectCert:
{
DoHandleSelectCertificateL();
break;
}
-
case EGetCertInfo:
{
iStatus = KRequestPending;
@@ -1361,7 +1289,6 @@
SetActive();
break;
}
-
case EGetCertificate:
{
iStatus = KRequestPending;
@@ -1381,42 +1308,36 @@
iNextStep = EInitKeyStore;
break;
}
-
case EInitKeyStore:
{
InitKeyStoreL();
iNextStep = EGetKeyInfos;
break;
}
-
case EGetKeyInfos:
{
GetKeyInfosL();
iNextStep = EShowCertDialog;
break;
}
-
case EGetKeyInfoByHandle:
{
GetKeyInfoByHandleL();
iNextStep = EShowCSRDialog;
break;
}
-
case EShowCSRDialog:
{
ShowCSRDialogL();
iNextStep = EOperationCompleted;
break;
}
-
case EShowCertDialog:
{
ShowCertDialogL();
iNextStep = EOperationCompleted;
break;
}
-
/////////////
// PIN steps
/////////////
@@ -1459,13 +1380,11 @@
}
break;
}
-
case EVerifyPINs:
{
VerifyPinsL();
break;
}
-
default:
{
User::Panic( _L("CTestSecDlgNotifier"), 0 );
@@ -1539,7 +1458,6 @@
{
// No certificate from Device Certificate Store. Prompt user
// for certificate selection
- /*
CCTSelectCertificateDialog::RunDlgLD(
iCertArray, iCertHandleList, iTokenHandle,
iStatus, iRetValue ); // Takes ownerhip of array
@@ -1547,8 +1465,6 @@
iNextStep = EOperationCompleted;
iStatus = KRequestPending;
SetActive();
- */
- User::Leave( KErrGeneral ); // TODO: to be implemented
}
}
@@ -1558,40 +1474,117 @@
//
void CCTSecurityDialogsAO::ShowNoTrustDialogL()
{
- TRACE( "CCTSecurityDialogsAO::ShowNoTrustDialogL, begin" );
-
- // If trusted site certstore open has failed, then it is not possible to save
- // the host name for permanent use. Hence, choice for permanent accept is not
- // displayed if trusted site certstore open has failed. Other restrictions for
- // permanent accept are defined in device dialog (UntrustedCertificateWidget).
- TBool isTrustedSiteCertStoreOpened = ( iTrustedSiteCertStore != NULL );
- CCTUntrustedCertQuery *untrustedCertDlg = CCTUntrustedCertQuery::NewLC(
- iAuthFailReason, *iCertBuf, *iServerName, isTrustedSiteCertStoreOpened );
-
- CCTUntrustedCertQuery::TResponse response = CCTUntrustedCertQuery::EQueryRejected;
- untrustedCertDlg->ShowQueryAndWaitForResponseL( response );
- switch( response )
+ // Cannot display untrusted certificate dialog if device is locked. Untrusted
+ // certificate dialog would be displayed on top of possible lock code query.
+ TInt value = 0;
+ TInt err = RProperty::Get( KPSUidCoreApplicationUIs, KCoreAppUIsAutolockStatus, value );
+ if( !err && value != EAutolockOff )
+ {
+ iRetValue = EServerCertNotAccepted;
+ iStatus = KRequestPending;
+ TRequestStatus* status( &iStatus );
+ User::RequestComplete( status, KErrNone );
+ }
+ else
{
- case CCTUntrustedCertQuery::EQueryAccepted:
- iRetValue = EServerCertAcceptedTemporarily;
- break;
- case CCTUntrustedCertQuery::EQueryAcceptedPermanently:
- // TODO: show confirmation note, qtn_httpsec_query_perm_accept_text
- // "Connection to site %U will be made in future without any warnings. Continue?""
- iRetValue = EServerCertAcceptedPermanently;
- break;
- case CCTUntrustedCertQuery::EQueryRejected:
- default:
+ CX509Certificate* cert = CX509Certificate::NewLC( iCertBuf->Des() );
+ TInt dialogResourceId = R_WIM_NO_TRUST_QUERY_UNTRUSTED;
+ TInt promptResourceId = R_QTN_ICS_SSL_CONF_Q_ACCEPT_UNTRUSTED;
+ TBool showPermAccept = ETrue;
+
+ if( iAuthFailReason == ESignatureInvalid || iAuthFailReason == ECertificateRevoked )
+ {
+ // Invalid or revoked certificate
+ CCTInvalidCertificateNote* note =
+ new( ELeave ) CCTInvalidCertificateNote( *this, iStatus );
+ note->ExecuteLD( R_WIM_INVALID_CERTIFICATE_INFORMATION_NOTE );
iRetValue = EServerCertNotAccepted;
- break;
+
+ // CCTNoTrustQuery below self-completes this active object. It is necessary to
+ // complete it here too, in order to run the next step EServerCertCheckUserResp.
+ iStatus = KRequestPending;
+ TRequestStatus* status( &iStatus );
+ User::RequestComplete( status, KErrNone );
+ }
+ else
+ {
+ if( iAuthFailReason == EValidatedOK || iAuthFailReason == EDateOutOfRange )
+ {
+ // Trusted certificate, but problems with CN or date
+
+ // Retrieve subject name
+ const CX500DistinguishedName& dName = cert->SubjectName();
+
+ // Retrieve common name
+ HBufC* cn = dName.ExtractFieldL( KX520CommonName );
+
+ // Check common name first and then date
+ if( !cn )
+ {
+ // Couldn't retrieve CN from certificate
+ dialogResourceId = R_WIM_NO_TRUST_QUERY_UNTRUSTED;
+ promptResourceId = R_QTN_ICS_SSL_CONF_Q_ACCEPT_UNTRUSTED;
+ }
+ else if( iServerName->Des() != cn->Des() )
+ {
+ // Domain name doesn't match with CN
+ dialogResourceId = R_WIM_NO_TRUST_QUERY_SITE;
+ promptResourceId = R_QTN_ICS_SSL_CONF_Q_ACCEPT_SITE;
+ }
+ else if( iAuthFailReason == EDateOutOfRange )
+ {
+ // Certificate is out of date
+ dialogResourceId = R_WIM_NO_TRUST_QUERY_OOD;
+ promptResourceId = R_QTN_ICS_SSL_CONF_Q_ACCEPT_OOD;
+ showPermAccept = EFalse;
+ }
+ else
+ {
+ // Otherwise show general untrusted note
+ dialogResourceId = R_WIM_NO_TRUST_QUERY_UNTRUSTED;
+ promptResourceId = R_QTN_ICS_SSL_CONF_Q_ACCEPT_UNTRUSTED;
+ }
+ }
+ else
+ {
+ // Untrusted certificate
+ dialogResourceId = R_WIM_NO_TRUST_QUERY_UNTRUSTED;
+ promptResourceId = R_QTN_ICS_SSL_CONF_Q_ACCEPT_UNTRUSTED;
+ }
+
+ // No "Accept Permanently" option if certificate is out of date, or
+ // if domain name is not defined, or if trusted site store failed to
+ // open (and it's not possible to save the server certificate).
+ const CValidityPeriod& validityPeriod = cert->ValidityPeriod();
+ const TTime& startValue = validityPeriod.Start();
+ const TTime& finishValue = validityPeriod.Finish();
+ TTime current;
+ current.UniversalTime();
+
+ if( (( startValue > current ) || ( finishValue < current )) ||
+ ( iServerName->Des().Length() == 0 ) ||
+ ( !iTrustedSiteCertStore ) )
+ {
+ showPermAccept = EFalse;
+ }
+
+ // CCTNoTrustQuery completes iStatus asynchronously when ready. Note that
+ // it happens after ExecuteLD() and also this function have returned.
+ iStatus = KRequestPending;
+
+ iQueryDialog = new( ELeave ) CCTNoTrustQuery( *this, iRetValue, iStatus,
+ iServerName, showPermAccept, iQueryDialogDeleted );
+ HBufC* prompt = StringLoader::LoadLC( promptResourceId, *iServerName );
+
+ iQueryDialog->ExecuteLD( dialogResourceId, *prompt );
+
+ CleanupStack::PopAndDestroy( prompt );
+ }
+
+ CleanupStack::PopAndDestroy( cert );
}
- CleanupStack::PopAndDestroy( untrustedCertDlg );
- TRACE1( "CCTSecurityDialogsAO::ShowNoTrustDialogL, iRetValue=%d", iRetValue );
iNextStep = EServerCertCheckUserResp;
- iStatus = KRequestPending;
- TRequestStatus* status = &iStatus;
- User::RequestComplete( status, KErrNone );
SetActive();
}
@@ -1608,18 +1601,16 @@
messagePtr.Append( KEnter );
- //DetailsFieldDynamicL( messagePtr, *iText,
- // R_TEXT_RESOURCE_DETAILS_VIEW_SUBJECT,
- // R_TEXT_RESOURCE_VIEW_NO_SUBJECT_DETAILS );
+ DetailsFieldDynamicL( messagePtr, *iText,
+ R_TEXT_RESOURCE_DETAILS_VIEW_SUBJECT,
+ R_TEXT_RESOURCE_VIEW_NO_SUBJECT_DETAILS );
AddKeyUsageL( messagePtr, iKeyInfo );
AddKeyAlgorithmL( messagePtr, iKeyInfo );
AddKeySizeL( messagePtr, iKeyInfo );
AddKeyLocationL( messagePtr, iKeyInfo );
- // TODO
- //CCTSignTextDialog::RunDlgLD( R_WIM_CSR_DIALOG, *message, iStatus, iRetValue );
- User::Leave( KErrGeneral );
+ CCTSignTextDialog::RunDlgLD( R_WIM_CSR_DIALOG, *message, iStatus, iRetValue );
CleanupStack::PopAndDestroy( message );
iStatus = KRequestPending;
@@ -1680,10 +1671,7 @@
User::Panic(_L("CTestSecDlgNotifier"), 0);
}
}
- // TODO
- //CCTSignTextDialog::RunDlgLD( resource, *message, iStatus, iRetValue );
- User::Leave( KErrGeneral );
- resource = resource; // avoids compiler warning
+ CCTSignTextDialog::RunDlgLD( resource, *message, iStatus, iRetValue );
CleanupStack::PopAndDestroy( message );
iStatus = KRequestPending;
@@ -1698,14 +1686,13 @@
// ---------------------------------------------------------
//
HBufC* CCTSecurityDialogsAO::MessageQueryCertDetailsL(
- const TDesC8& /*aCert*/,
- const CCTCertInfo* /*aCertInfo*/,
- TCertificateFormat /*aCertFormat*/,
- const CCTKeyInfo* /*aKeyInfo*/)
+ const TDesC8& aCert,
+ const CCTCertInfo* aCertInfo,
+ TCertificateFormat aCertFormat,
+ const CCTKeyInfo* aKeyInfo)
{
// Create message buffer
HBufC* message = HBufC::NewLC( KMaxLengthTextDetailsBody );
-/*
TPtr messagePtr = message->Des();
// Label
if ( aCertInfo )
@@ -1767,7 +1754,7 @@
User::Leave( KErrNotSupported );
}
}
-*/
+
CleanupStack::Pop( message );
return message;
}
@@ -1776,25 +1763,22 @@
// CCTSecurityDialogsAO::AddIssuerAndSubjectL(...)
// -----------------------------------------------------------------------------
//
-void CCTSecurityDialogsAO::AddSiteL( TDes& /*aMessage*/ )
+void CCTSecurityDialogsAO::AddSiteL( TDes& aMessage )
{
-/*
if ( iServerName )
{
DetailsFieldDynamicL( aMessage, iServerName->Des(),
R_QTN_CM_SITE,
R_TEXT_RESOURCE_DETAILS_VIEW_NOT_DEFINED );
}
-*/
}
// -----------------------------------------------------------------------------
// CCTSecurityDialogsAO::AddIssuerAndSubjectL(...)
// -----------------------------------------------------------------------------
//
-void CCTSecurityDialogsAO::AddIssuerAndSubjectL( TDes& /*aMessage*/, const CX509Certificate& /*aCert*/ )
+void CCTSecurityDialogsAO::AddIssuerAndSubjectL( TDes& aMessage, const CX509Certificate& aCert )
{
-/*
HBufC* issuer = NULL;
HBufC* owner = NULL;
X509CertNameParser::SubjectFullNameL( aCert, owner );
@@ -1812,16 +1796,14 @@
R_TEXT_RESOURCE_DETAILS_VIEW_SUBJECT,
R_TEXT_RESOURCE_VIEW_NO_SUBJECT_DETAILS );
CleanupStack::PopAndDestroy( owner ); //owner
-*/
}
// -----------------------------------------------------------------------------
// CCTSecurityDialogsAO::AddKeySizeL(...)
// -----------------------------------------------------------------------------
//
-void CCTSecurityDialogsAO::AddKeySizeL( TDes& /*aMessage*/, const CCTKeyInfo* /*aKeyInfo*/ )
+void CCTSecurityDialogsAO::AddKeySizeL( TDes& aMessage, const CCTKeyInfo* aKeyInfo )
{
-/*
TUint keySize = aKeyInfo->Size();
TBuf<KMaxLengthTextDateString> sizeBuf;
@@ -1835,16 +1817,14 @@
R_TEXT_RESOURCE_DETAILS_VIEW_NOT_DEFINED );
aMessage.Append( KEnterEnter );
-*/
}
// -----------------------------------------------------------------------------
// CCTSecurityDialogsAO::AddKeyUsageL(...)
// -----------------------------------------------------------------------------
//
-void CCTSecurityDialogsAO::AddKeyUsageL( TDes& /*aMessage*/, const CCTKeyInfo* /*aKeyInfo*/ )
+void CCTSecurityDialogsAO::AddKeyUsageL( TDes& aMessage, const CCTKeyInfo* aKeyInfo )
{
-/*
if ( aKeyInfo != NULL )
{
TKeyUsagePKCS15 keyUsage = aKeyInfo->Usage();
@@ -1867,16 +1847,14 @@
DetailsFieldResourceL( aMessage,
R_TEXT_RESOURCE_DETAILS_VIEW_KEY_USAGE, usage);
}
-*/
}
// -----------------------------------------------------------------------------
// CCTSecurityDialogsAO::AddKeyUsageL(...)
// -----------------------------------------------------------------------------
//
-void CCTSecurityDialogsAO::AddKeyUsageL( TDes& /*aMessage*/, const CX509Certificate& /*aCert*/ )
+void CCTSecurityDialogsAO::AddKeyUsageL( TDes& aMessage, const CX509Certificate& aCert )
{
-/*
TKeyUsageX509 x509Usage = EX509UsageNone;
TKeyUsagePKCS15 pkcs15KeyUsage = EPKCS15UsageNone;
const CX509CertExtension* ext = aCert.Extension(KKeyUsage);
@@ -1949,16 +1927,14 @@
}
DetailsFieldResourceL( aMessage,
R_TEXT_RESOURCE_DETAILS_VIEW_KEY_USAGE, usage );
-*/
}
// -----------------------------------------------------------------------------
// CCTSecurityDialogsAO::AddKeyAlgorithmL(...)
// -----------------------------------------------------------------------------
//
-void CCTSecurityDialogsAO::AddKeyAlgorithmL( TDes& /*aMessage*/, const CCTKeyInfo* /*aKeyInfo*/ )
+void CCTSecurityDialogsAO::AddKeyAlgorithmL( TDes& aMessage, const CCTKeyInfo* aKeyInfo )
{
-/*
TInt algRes = 0;
switch( aKeyInfo->Algorithm())
{
@@ -1989,7 +1965,6 @@
}
DetailsFieldResourceL( aMessage,
R_TEXT_RESOURCE_DETAILS_VIEW_ALGORITHM, algRes);
-*/
}
// -----------------------------------------------------------------------------
@@ -2024,9 +1999,8 @@
// ---------------------------------------------------------
//
void CCTSecurityDialogsAO::AddLocationInfoL(
- TDes& /*aMessage*/, TUid /*aUid*/, TBool /*aCertificate*/ )
+ TDes& aMessage, TUid aUid, TBool aCertificate )
{
-/*
TInt location = 0;
TInt locationRes =0;
@@ -2067,7 +2041,6 @@
}
DetailsFieldResourceL( aMessage, locationRes, location );
-*/
}
// -----------------------------------------------------------------------------
@@ -2079,7 +2052,7 @@
{
TLocale locale;
TTimeIntervalSeconds offSet = locale.UniversalTimeOffset();
- //DetailsResourceL( aMessage, R_TEXT_RESOURCE_DETAILS_VIEW_VALID_FROM );
+ DetailsResourceL( aMessage, R_TEXT_RESOURCE_DETAILS_VIEW_VALID_FROM );
const CValidityPeriod& validityPeriod = aCert.ValidityPeriod();
TTime startValue = validityPeriod.Start();
startValue += offSet;
@@ -2094,7 +2067,7 @@
aMessage.Append( startString );
aMessage.Append( KEnterEnter );
- //DetailsResourceL( aMessage, R_TEXT_RESOURCE_DETAILS_VIEW_VALID_UNTIL );
+ DetailsResourceL( aMessage, R_TEXT_RESOURCE_DETAILS_VIEW_VALID_UNTIL );
TTime finishValue = validityPeriod.Finish();
finishValue += offSet;
TBuf<KMaxLengthTextDateString> finishString;
@@ -2113,91 +2086,46 @@
// CCTSecurityDialogsAO::AddCertFormatL(...)
// -----------------------------------------------------------------------------
//
-void CCTSecurityDialogsAO::AddCertFormatL( TDes& /*aMessage*/, TCertificateFormat aCertFormat)
+void CCTSecurityDialogsAO::AddCertFormatL( TDes& aMessage, TCertificateFormat aCertFormat)
{
- //TInt fieldType = 0;
+ TInt fieldType = 0;
switch ( aCertFormat )
{
case EX509CertificateUrl:
case EX509Certificate:
{
- //fieldType = R_TEXT_RESOURCE_DETAILS_VIEW_CERT_FORMAT_X509;
+ fieldType = R_TEXT_RESOURCE_DETAILS_VIEW_CERT_FORMAT_X509;
break;
}
default:
{
- //fieldType = R_TEXT_RESOURCE_DETAILS_VIEW_NOT_DEFINED;
+ fieldType = R_TEXT_RESOURCE_DETAILS_VIEW_NOT_DEFINED;
break;
}
}
- //DetailsFieldResourceL( aMessage,
- // R_TEXT_RESOURCE_DETAILS_VIEW_CERT_FORMAT, fieldType );
+ DetailsFieldResourceL( aMessage,
+ R_TEXT_RESOURCE_DETAILS_VIEW_CERT_FORMAT, fieldType );
}
// -----------------------------------------------------------------------------
// CCTSecurityDialogsAO::AddCertAlgorithmsL(...)
// -----------------------------------------------------------------------------
//
-void CCTSecurityDialogsAO::AddCertAlgorithmsL( TDes& /*aMessage*/, const CX509Certificate& /*aCert*/ )
+void CCTSecurityDialogsAO::AddCertAlgorithmsL( TDes& aMessage, const CX509Certificate& aCert )
{
-/*
TInt fieldType = 0;
TInt fieldType2 = 0;
+
// digest algorithm
- TAlgorithmId algorithmId =
- aCert.SigningAlgorithm().DigestAlgorithm().Algorithm();
- switch ( algorithmId )
- {
- case EMD2:
- {
- fieldType = R_TEXT_RESOURCE_DETAILS_VIEW_ALGORITHM_MD2;
- break;
- }
- case EMD5:
- {
- fieldType = R_TEXT_RESOURCE_DETAILS_VIEW_ALGORITHM_MD5;
- break;
- }
- case ESHA1:
- {
- fieldType = R_TEXT_RESOURCE_DETAILS_VIEW_ALGORITHM_SHA1;
- break;
- }
- default:
- {
- fieldType = R_TEXT_RESOURCE_DETAILS_VIEW_UNKNOWN;
- break;
- }
- }
+ TAlgorithmId algorithmId = aCert.SigningAlgorithm().DigestAlgorithm().Algorithm();
+ fieldType = AlgorithmNameResourceId( algorithmId );
// public-key algorithm
- algorithmId =
- aCert.SigningAlgorithm().AsymmetricAlgorithm().Algorithm();
- switch ( algorithmId )
- {
- case ERSA:
- {
- fieldType2 = R_TEXT_RESOURCE_DETAILS_VIEW_ALGORITHM_RSA;
- break;
- }
- case EDSA:
- {
- fieldType2 = R_TEXT_RESOURCE_DETAILS_VIEW_ALGORITHM_DSA;
- break;
- }
- case EDH:
- {
- fieldType2 = R_TEXT_RESOURCE_DETAILS_VIEW_ALGORITHM_DH;
- break;
- }
- default:
- {
- fieldType2 = R_TEXT_RESOURCE_DETAILS_VIEW_UNKNOWN;
- }
- }
+ algorithmId = aCert.SigningAlgorithm().AsymmetricAlgorithm().Algorithm();
+ fieldType2 = AlgorithmNameResourceId( algorithmId );
// If other algorithm is unknown
- if ( fieldType == R_TEXT_RESOURCE_DETAILS_VIEW_UNKNOWN ||
+ if( fieldType == R_TEXT_RESOURCE_DETAILS_VIEW_UNKNOWN ||
fieldType2 == R_TEXT_RESOURCE_DETAILS_VIEW_UNKNOWN )
{
DetailsFieldResourceL( aMessage,
@@ -2214,16 +2142,14 @@
CleanupStack::PopAndDestroy(); // stringHolder
aMessage.Append( KEnterEnter );
}
-*/
}
// -----------------------------------------------------------------------------
// CCTSecurityDialogsAO::AddCertSerialNumberL(...)
// -----------------------------------------------------------------------------
//
-void CCTSecurityDialogsAO::AddCertSerialNumberL( TDes& /*aMessage*/, const CX509Certificate& /*aCert*/ )
+void CCTSecurityDialogsAO::AddCertSerialNumberL( TDes& aMessage, const CX509Certificate& aCert )
{
-/*
// certificate serial number
DetailsResourceL( aMessage, R_TEXT_RESOURCE_DETAILS_VIEW_SERIAL_NUMBER );
TPtrC8 serialNumber = aCert.SerialNumber();
@@ -2236,16 +2162,14 @@
}
aMessage.Append( KEnterEnter );
-*/
}
// -----------------------------------------------------------------------------
// CCTSecurityDialogsAO::AddCertFingerprintsL(...)
// -----------------------------------------------------------------------------
//
-void CCTSecurityDialogsAO::AddCertFingerprintsL( TDes& /*aMessage*/, const CX509Certificate& /*aCert*/ )
+void CCTSecurityDialogsAO::AddCertFingerprintsL( TDes& aMessage, const CX509Certificate& aCert )
{
-/*
// certificate fingerprint SHA-1
DetailsResourceL( aMessage, R_TEXT_RESOURCE_DETAILS_VIEW_FINGERPRINT );
@@ -2263,7 +2187,6 @@
CleanupStack::PopAndDestroy( md5 );
DevideToBlocks( fingerprint, aMessage );
-*/
}
// ---------------------------------------------------------
@@ -2397,7 +2320,6 @@
iMessagePtr.WriteL( iReplySlot, pinValueBufPtr );
break;
}
-
case EChangePIN:
case EUnblockPIN:
{
@@ -2408,7 +2330,6 @@
iMessagePtr.WriteL( iReplySlot, twoPINOutputBuf );
break;
}
-
case ESignText: // flow thru
case EUserAuthenticationText: // flow thru
case EUserAuthentication:
@@ -2417,14 +2338,13 @@
iMessagePtr.WriteL( iReplySlot, tokenObjectHandleBuf );
break;
}
-
case EServerAuthenticationFailure:
{
TServerAuthenticationFailureDialogResult result = EStop;
- if( iRetValue != EServerCertAcceptedPermanently )
+ if ( iRetValue != EServerCertAcceptedPermanently )
{
- if( iRetValue == EServerCertAcceptedTemporarily )
+ if ( iRetValue == EServerCertAcceptedTemporarily )
{
result = EContinue;
}
@@ -2445,14 +2365,12 @@
break;
}
-
case EPINBlocked:
case EUnblockPINInClear:
{
User::Leave( KErrNotSupported );
break;
}
-
case ECreateCSR:
case ECertDetails:
case ESaveCert:
@@ -2468,7 +2386,6 @@
{
break; // Complete is enough
}
-
default:
User::Panic( _L("CTestSecDlgNotifier"), 0 );
}
@@ -2516,14 +2433,23 @@
void CCTSecurityDialogsAO::DoCancel()
{
WIMSECURITYDIALOGS_WRITE( "CCTSecurityDialogsAO::DoCancel" );
- /*
- if( !iPinQueryDialogDeleted )
+
+ // Note that iQueryDialog may point to already deleted memory.
+ // Dialogs need to set and reset iQueryDialogDeleted flag to
+ // allow deleting the dialog from CCTSecurityDialogsAO.
+ if( !iQueryDialogDeleted )
+ {
+ delete iQueryDialog;
+ iQueryDialogDeleted = ETrue;
+ }
+ iQueryDialog = NULL;
+
+ if ( !iPinQueryDialogDeleted )
{
delete iPinQueryDialog;
iPinQueryDialogDeleted = ETrue;
}
iPinQueryDialog = NULL;
- */
// Complete message if it has not been completed earlier.
if( !iMessagePtr.IsNull() )
@@ -2551,12 +2477,10 @@
//
void CCTSecurityDialogsAO::DoHandleSaveServerCertL()
{
- TRACE( "CCTSecurityDialogsAO::DoHandleSaveServerCertL" );
-
if ( iTrustedSiteCertStore )
{
iTrustedSiteCertStore->Add( *iCertLabel, EX509Certificate,
- EPeerCertificate, NULL, NULL, *iCertBuf, iStatus );
+ EPeerCertificate, NULL, NULL, *iCertBuf, iStatus );
// Next step is to update trust site db
iNextStep = EAddTrustedSite;
@@ -2587,14 +2511,3 @@
}
}
-void CCTSecurityDialogsAO::ShowInformationNoteL( TInt aResourceID ) const
- {
- HBufC* buffer = CEikonEnv::Static()->AllocReadResourceLC( aResourceID );
- CHbDeviceMessageBoxSymbian* iMessageBox = CHbDeviceMessageBoxSymbian::NewL(CHbDeviceMessageBoxSymbian::EInformation);
- CleanupStack::PushL(iMessageBox);
- iMessageBox->SetTextL(buffer->Des());
- iMessageBox->SetTimeout(6000);
- iMessageBox->ExecL();
- CleanupStack::PopAndDestroy(iMessageBox);
- CleanupStack::PopAndDestroy( buffer );
- }
--- a/pkiutilities/CTSecurityDialogs/NotifSrc/CTSelectcertificatedialog.cpp Tue Aug 31 16:04:40 2010 +0300
+++ b/pkiutilities/CTSecurityDialogs/NotifSrc/CTSelectcertificatedialog.cpp Wed Sep 01 12:19:59 2010 +0100
@@ -18,7 +18,6 @@
// INCLUDE FILES
-#include <platform/e32notif.h>
#include "CTSelectCertificateDialog.h"
#include "CTSecurityDialogDefs.h"
#include <CTSecDlgs.rsg>
--- a/pkiutilities/CTSecurityDialogs/NotifSrc/CTSigntextdialog.cpp Tue Aug 31 16:04:40 2010 +0300
+++ b/pkiutilities/CTSecurityDialogs/NotifSrc/CTSigntextdialog.cpp Wed Sep 01 12:19:59 2010 +0100
@@ -18,7 +18,6 @@
// INCLUDE FILES
-#include <platform/e32notif.h>
#include "CTSignTextDialog.h"
#include "CTSecurityDialogsLogger.h"
#include <barsread.h>
@@ -26,7 +25,6 @@
#include <uikon/eiksrvui.h>
#include <StringLoader.h>
-
// ============================ MEMBER FUNCTIONS ===============================
// -----------------------------------------------------------------------------
--- a/pkiutilities/CTSecurityDialogs/NotifSrc/CTUntrustedCertQuery.cpp Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,238 +0,0 @@
-/*
-* Copyright (c) 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: Displays untrusted certificate dialog.
-*
-*/
-
-#include "CTUntrustedCertQuery.h" // CCTUntrustedCertQuery
-#include <hb/hbcore/hbsymbianvariant.h> // CHbSymbianVariantMap
-
-// Note that the dialog type string, the parameters name strings, and the return code
-// name string and values must match to those defined in Qt-side untrusted certificate
-// dialog (in untrustedcertificatedefinitions.h file).
-
-// Device dialog type for untrusted certificate dialog
-_LIT( KUntrustedCertificateDialog, "com.nokia.untrustedcert/1.0" );
-
-// Variant map parameter names for untrusted certificate dialog
-_LIT( KUntrustedCertEncodedCertificate, "cert" ); // bytearray, mandatory
-_LIT( KUntrustedCertServerName, "host" ); // string, mandatory
-_LIT( KUntrustedCertValidationError, "err" ); // int (TValidationError), mandatory
-_LIT( KUntrustedCertTrustedSiteStoreFail, "tss" ); // any, prevents permanent acceptance
-
-// Dialog return code name and values
-_LIT( KUntrustedCertDialogResult, "result" ); // int
-const TInt KUntrustedCertDialogRejected = 0;
-const TInt KUntrustedCertDialogAccepted = 1;
-const TInt KUntrustedCertDialogAcceptedPermanently = 2;
-
-// TODO: replace with OST tracing
-#ifdef _DEBUG
-#include <e32debug.h>
-#define TRACE(x) RDebug::Printf(x)
-#define TRACE1(x,y) RDebug::Printf(x,y)
-#else
-#define TRACE(x)
-#define TRACE1(x,y)
-#endif
-
-
-// ======== MEMBER FUNCTIONS ========
-
-// ---------------------------------------------------------------------------
-// CCTUntrustedCertQuery::NewLC()
-// ---------------------------------------------------------------------------
-//
-CCTUntrustedCertQuery* CCTUntrustedCertQuery::NewLC(
- TValidationError aValidationError, const TDesC8& aCertificate,
- const TDesC& aServerName, TBool aCanHandlePermanentAccept )
- {
- TRACE( "CCTUntrustedCertQuery::NewLC" );
- CCTUntrustedCertQuery* self = new ( ELeave ) CCTUntrustedCertQuery(
- aValidationError, aCertificate, aServerName,
- aCanHandlePermanentAccept );
- CleanupStack::PushL( self );
- self->ConstructL();
- return self;
- }
-
-// ---------------------------------------------------------------------------
-// CCTUntrustedCertQuery::~CCTUntrustedCertQuery()
-// ---------------------------------------------------------------------------
-//
-CCTUntrustedCertQuery::~CCTUntrustedCertQuery()
- {
- TRACE( "CCTUntrustedCertQuery::~CCTUntrustedCertQuery" );
- Cancel();
- delete iWait;
- delete iDeviceDialog;
- delete iVariantMap;
- }
-
-// ---------------------------------------------------------------------------
-// CCTUntrustedCertQuery::ShowQueryAndWaitForResponseL()
-// ---------------------------------------------------------------------------
-//
-void CCTUntrustedCertQuery::ShowQueryAndWaitForResponseL( TResponse& aResponse )
- {
- TRACE( "CCTUntrustedCertQuery::ShowQueryAndWaitForResponseL" );
- if( !iDeviceDialog )
- {
- iDeviceDialog = CHbDeviceDialogSymbian::NewL();
- }
- if( !iVariantMap )
- {
- iVariantMap = CHbSymbianVariantMap::NewL();
- }
-
- CHbSymbianVariant *variant = NULL;
- variant = CHbSymbianVariant::NewL( &iCertificate, CHbSymbianVariant::EBinary );
- User::LeaveIfError( iVariantMap->Add( KUntrustedCertEncodedCertificate, variant ) );
- variant = CHbSymbianVariant::NewL( &iValidationError, CHbSymbianVariant::EInt );
- User::LeaveIfError( iVariantMap->Add( KUntrustedCertValidationError, variant ) );
- variant = CHbSymbianVariant::NewL( &iServerName, CHbSymbianVariant::EDes );
- User::LeaveIfError( iVariantMap->Add( KUntrustedCertServerName, variant ) );
- if( !iCanHandlePermanentAccept )
- {
- variant = CHbSymbianVariant::NewL( &iCanHandlePermanentAccept, CHbSymbianVariant::EBool );
- User::LeaveIfError( iVariantMap->Add( KUntrustedCertTrustedSiteStoreFail, variant ) );
- }
-
- User::LeaveIfError( iDeviceDialog->Show( KUntrustedCertificateDialog, *iVariantMap, this ) );
-
- iStatus = KRequestPending;
- SetActive();
- TRACE( "CCTUntrustedCertQuery::ShowQueryAndWaitForResponseL, wait start" );
- iWait->Start();
- TRACE( "CCTUntrustedCertQuery::ShowQueryAndWaitForResponseL, wait end" );
- TRACE1( "CCTUntrustedCertQuery::ShowQueryAndWaitForResponseL, iWaitCompletionCode=%d", iWaitCompletionCode );
- User::LeaveIfError( iWaitCompletionCode );
- TRACE1( "CCTUntrustedCertQuery::ShowQueryAndWaitForResponseL, iResponse=%d", iResponse );
- aResponse = iResponse;
- }
-
-// ---------------------------------------------------------------------------
-// CCTUntrustedCertQuery::DoCancel()
-// ---------------------------------------------------------------------------
-//
-void CCTUntrustedCertQuery::DoCancel()
- {
- TRACE( "CCTUntrustedCertQuery::DoCancel begin" );
- if( iDeviceDialog )
- {
- TRACE( "CCTUntrustedCertQuery::DoCancel, iDeviceDialog->Cancel()" );
- iDeviceDialog->Cancel();
- }
- if( iWait && iWait->IsStarted() && iWait->CanStopNow() )
- {
- TRACE( "CCTUntrustedCertQuery::DoCancel, iWait->AsyncStop()" );
- iWaitCompletionCode = KErrCancel;
- iWait->AsyncStop();
- }
- TRACE( "CCTUntrustedCertQuery::DoCancel end" );
- }
-
-// ---------------------------------------------------------------------------
-// CCTUntrustedCertQuery::RunL()
-// ---------------------------------------------------------------------------
-//
-void CCTUntrustedCertQuery::RunL()
- {
- TRACE1( "CCTUntrustedCertQuery::RunL, iStatus.Int()=%d", iStatus.Int() );
- iWaitCompletionCode = iStatus.Int();
- if( iWait )
- {
- iWait->AsyncStop();
- }
- }
-
-// ---------------------------------------------------------------------------
-// CCTUntrustedCertQuery::DataReceived()
-// ---------------------------------------------------------------------------
-//
-void CCTUntrustedCertQuery::DataReceived( CHbSymbianVariantMap& aData )
- {
- TRACE( "CCTUntrustedCertQuery::DataReceived" );
- const CHbSymbianVariant* variant = aData.Get( KUntrustedCertDialogResult );
- if( variant )
- {
- TInt* value = variant->Value<TInt>();
- if( value )
- {
- switch( *value )
- {
- case KUntrustedCertDialogRejected:
- TRACE( "CCTUntrustedCertQuery::DataReceived, rejected" );
- iResponse = EQueryRejected;
- break;
- case KUntrustedCertDialogAccepted:
- TRACE( "CCTUntrustedCertQuery::DataReceived, accepted" );
- iResponse = EQueryAccepted;
- break;
- case KUntrustedCertDialogAcceptedPermanently:
- TRACE( "CCTUntrustedCertQuery::DataReceived, accepted permanently" );
- iResponse = EQueryAcceptedPermanently;
- break;
- default:
- __ASSERT_DEBUG( EFalse, User::Invariant() );
- break;
- }
- }
- else
- {
- __ASSERT_DEBUG( EFalse, User::Invariant() );
- }
- }
- else
- {
- __ASSERT_DEBUG( EFalse, User::Invariant() );
- }
- }
-
-// ---------------------------------------------------------------------------
-// CCTUntrustedCertQuery::DeviceDialogClosed()
-// ---------------------------------------------------------------------------
-//
-void CCTUntrustedCertQuery::DeviceDialogClosed( TInt aCompletionCode )
- {
- TRACE1( "CCTUntrustedCertQuery::DeviceDialogClosed aCompletionCode=%d", aCompletionCode );
- TRequestStatus* status( &iStatus );
- User::RequestComplete( status, aCompletionCode );
- }
-
-// ---------------------------------------------------------------------------
-// CCTUntrustedCertQuery::CCTUntrustedCertQuery()
-// ---------------------------------------------------------------------------
-//
-CCTUntrustedCertQuery::CCTUntrustedCertQuery(
- TValidationError aValidationError, const TDesC8& aCertificate,
- const TDesC& aServerName, TBool aCanHandlePermanentAccept ) :
- CActive( CActive::EPriorityStandard ), iValidationError( aValidationError ),
- iCertificate( aCertificate ), iServerName( aServerName ),
- iCanHandlePermanentAccept( aCanHandlePermanentAccept ),
- iResponse( EQueryRejected )
- {
- CActiveScheduler::Add( this );
- }
-
-// ---------------------------------------------------------------------------
-// CCTUntrustedCertQuery::ConstructL()
-// ---------------------------------------------------------------------------
-//
-void CCTUntrustedCertQuery::ConstructL()
- {
- TRACE( "CCTUntrustedCertQuery::ConstructL" );
- iWait = new( ELeave ) CActiveSchedulerWait;
- }
-
--- a/pkiutilities/CTSecurityDialogs/NotifSrc/CTpinquerydialog.cpp Tue Aug 31 16:04:40 2010 +0300
+++ b/pkiutilities/CTSecurityDialogs/NotifSrc/CTpinquerydialog.cpp Wed Sep 01 12:19:59 2010 +0100
@@ -18,7 +18,6 @@
// INCLUDE FILES
-#include <platform/e32notif.h>
#include "CTPinQueryDialog.h"
#include "CTSecurityDialogsLogger.h"
#include <CTSecDlgs.rsg>
--- a/pkiutilities/CTSecurityDialogs/data/CTsecdlgs.rss Tue Aug 31 16:04:40 2010 +0300
+++ b/pkiutilities/CTSecurityDialogs/data/CTsecdlgs.rss Wed Sep 01 12:19:59 2010 +0100
@@ -1,5 +1,5 @@
/*
-* Copyright (c) 2002-2008 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2002-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"
@@ -24,7 +24,7 @@
#include <avkon.rh>
#include <avkon.loc>
#include <bldvariant.hrh>
-//#include <certmanui.loc>
+#include <certmanui.loc>
#include <certsaver.loc>
#include <wmlbrowser_wim.loc>
@@ -505,7 +505,7 @@
control= AVKON_CONFIRMATION_QUERY
{
layout = EConfirmationLayout;
- label = qtn_ics_ssl_conf_q_accept_ood;
+ // label defined dynamically, using host name parameter
};
}
};
@@ -534,7 +534,7 @@
control= AVKON_CONFIRMATION_QUERY
{
layout = EConfirmationLayout;
- label = qtn_ics_ssl_conf_q_accept_untrusted;
+ // label defined dynamically, using host name parameter
};
}
};
@@ -564,7 +564,7 @@
control= AVKON_CONFIRMATION_QUERY
{
layout = EConfirmationLayout;
- label = qtn_ics_ssl_conf_q_accept_site;
+ // label defined dynamically, using host name parameter
};
}
};
@@ -876,4 +876,10 @@
RESOURCE TBUF r_qtn_cm_site { buf=qtn_cm_site; }
+RESOURCE TBUF r_qtn_ics_ssl_conf_q_accept_site { buf=qtn_ics_ssl_conf_q_accept_site; }
+
+RESOURCE TBUF r_qtn_ics_ssl_conf_q_accept_ood { buf=qtn_ics_ssl_conf_q_accept_ood; }
+
+RESOURCE TBUF r_qtn_ics_ssl_conf_q_accept_untrusted { buf=qtn_ics_ssl_conf_q_accept_untrusted; }
+
// End of file
--- a/pkiutilities/CTSecurityDialogs/ecomsrc/CTSecDlgWrapper.cpp Tue Aug 31 16:04:40 2010 +0300
+++ b/pkiutilities/CTSecurityDialogs/ecomsrc/CTSecDlgWrapper.cpp Wed Sep 01 12:19:59 2010 +0100
@@ -18,7 +18,6 @@
// INCLUDE FILES
#include <ecom/implementationproxy.h>
-#include <platform/e32notif.h>
#include <AknNotifierWrapper.h> // link against aknnotifierwrapper.lib
#include <secdlgimpldefs.h>
#include "CTSecurityDialogDefs.h"
--- a/pkiutilities/CTSecurityDialogs/loc/wmlbrowser_wim.loc Tue Aug 31 16:04:40 2010 +0300
+++ b/pkiutilities/CTSecurityDialogs/loc/wmlbrowser_wim.loc Wed Sep 01 12:19:59 2010 +0100
@@ -1,5 +1,5 @@
/*
-* Copyright (c) 2002 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2002-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"
@@ -286,29 +286,35 @@
//d:Confirmation query text shown if the server certificate contains
-//d:site name that does not match to the one that was given in request the query contains text
+//d:site name that does not match to the one that was given in request.
+//d:%U stands for the name of the site where the connection is requested.
+//d:Displaying the site name is a security feature.
//l:popup_note_window
//w:
//r:3.2
//
-#define qtn_ics_ssl_conf_q_accept_site "This site has sent a certificate with different site name than requested. Accept anyway?"
+#define qtn_ics_ssl_conf_q_accept_site "Service %U has sent a certificate with different site name than requested. Accept anyway?"
//d:Confirmation query text shown if the server certificate is out-of date
+//d:%U stands for the name of the site where the connection is requested.
+//d:Displaying the site name is a security feature.
//l:popup_note_window
//w:
//r:3.2
//
-#define qtn_ics_ssl_conf_q_accept_ood "This site has sent a certificate which is out of date. Accept anyway?"
+#define qtn_ics_ssl_conf_q_accept_ood "Service %U has sent a certificate which is out of date. Accept anyway?"
-//d:Confirmation query text shown if the server certificate issued by unknown
+//d:Confirmation query text shown if the server certificate issued by unknown
//d:Certification Authority
+//d:%U stands for the name of the site where the connection is requested.
+//d:Displaying the site name is a security feature.
//l:popup_note_window
//w:
//r:3.2
//
-#define qtn_ics_ssl_conf_q_accept_untrusted "This site has sent an untrusted certificate. Accept anyway?"
+#define qtn_ics_ssl_conf_q_accept_untrusted "Service %U has sent an untrusted certificate. Accept anyway?"
//d:Information note text shown if the server certificate has an invalid signature
//d:Softkeys are SK1 'Close' (text_softkey_close) and SK2 'Details' (text_softkey_details)
--- a/pkiutilities/CertSaver/data/CertSaver.rss Tue Aug 31 16:04:40 2010 +0300
+++ b/pkiutilities/CertSaver/data/CertSaver.rss Wed Sep 01 12:19:59 2010 +0100
@@ -22,9 +22,14 @@
// INCLUDES
#include <eikon.rh>
+#include <eikon.rsg>
#include <avkon.rsg>
+#include <avkon.hrh>
#include <avkon.rh>
+#include <avkon.mbg>
+#include <avkon.loc>
#include <appinfo.rh>
+#include <certmanui.loc> //qtn_cm_not_valid_yet
#include <certsaver.loc>
#include "certsaver.hrh"
@@ -153,7 +158,6 @@
buf = qtn_cm_not_defined;
}
-
//----------------------------------------------------
//
// r_certsaver_softkeys_save_discard
@@ -205,6 +209,8 @@
};
}
+
+
//----------------------------------------------------
//
// r_message_query_dosave
@@ -276,28 +282,24 @@
//
//----------------------------------------------------
//
-RESOURCE TBUF r_certsaver_warning_note { buf = qtn_httpsec_save_rootcertificate; }
-
-/*
-RESOURCE DIALOG r_certsaver_warning_note
- {
- flags = EGeneralQueryFlags;
- buttons = r_certsaver_softkeys_save_discard;
- items=
- {
- DLG_LINE
- {
- type=EAknCtQuery;
- id=EGeneralQuery;
- control= AVKON_CONFIRMATION_QUERY
- {
- layout = EConfirmationLayout;
+RESOURCE DIALOG r_certsaver_warning_note
+ {
+ flags = EGeneralQueryFlags;
+ buttons = r_certsaver_softkeys_save_discard;
+ items=
+ {
+ DLG_LINE
+ {
+ type=EAknCtQuery;
+ id=EGeneralQuery;
+ control= AVKON_CONFIRMATION_QUERY
+ {
+ layout = EConfirmationLayout;
label = qtn_httpsec_save_rootcertificate;
- };
- }
- };
- }
-*/
+ };
+ }
+ };
+ }
//-----------------------------------------------------------------------------
//
@@ -470,7 +472,6 @@
RESOURCE TBUF r_certsaver_one_private_key{ buf = qtn_cm_one_private_key; }
RESOURCE TBUF r_certsaver_one_personal_certificate { buf = qtn_cm_one_personal_certificate; }
RESOURCE TBUF r_certsaver_one_authority_certificate { buf = qtn_cm_one_authority_certificate; }
-RESOURCE TBUF r_certsaver_trustedsite_warning
- { buf = qtn_cm_save_trustedsite_certificate_warning_text; }
+RESOURCE TBUF r_certsaver_trustedsite_warning { buf = qtn_cm_save_trustedsite_certificate_warning_text; }
// End of File
--- a/pkiutilities/CertSaver/group/CertSaver.mmp Tue Aug 31 16:04:40 2010 +0300
+++ b/pkiutilities/CertSaver/group/CertSaver.mmp Wed Sep 01 12:19:59 2010 +0100
@@ -54,16 +54,11 @@
USERINCLUDE ../inc
USERINCLUDE ../../Include
-USERINCLUDE ../../../securitydialogs/SecUi/Inc
MW_LAYER_SYSTEMINCLUDE
SYSTEMINCLUDE ../../PKCS12/CrPkcs12/Inc
SYSTEMINCLUDE ../../DeviceToken/Inc
-SYSTEMINCLUDE /epoc32/include/mw/hb/hbcore
-SYSTEMINCLUDE /epoc32/include/mw/hb/hbwidgets
-
-
LIBRARY euser.lib
LIBRARY apparc.lib
LIBRARY cone.lib
@@ -86,9 +81,5 @@
LIBRARY aknskins.lib
LIBRARY DevTokenClient.lib
-LIBRARY HbCore.lib
-LIBRARY HbWidgets.lib
-LIBRARY secui.lib
-
SMPSAFE
--- a/pkiutilities/CertSaver/inc/CertSaverModel.h Tue Aug 31 16:04:40 2010 +0300
+++ b/pkiutilities/CertSaver/inc/CertSaverModel.h Wed Sep 01 12:19:59 2010 +0100
@@ -77,6 +77,12 @@
void SavePKCS12L();
+ /**
+ * Shows a error note with given text.
+ * @param aResourceID Id of the resource text to be shown.
+ */
+ void ShowErrorNoteL( TInt aResourceID ) const;
+
private: // New functions
/**
@@ -192,6 +198,11 @@
*/
void AddNewlinesToMessage( TDes& aMessage ) const;
+ /**
+ * Shows a confirmation note with given text.
+ * @param aResourceID Id of the resource text to be shown.
+ */
+ void ShowConfirmationNoteL( TInt aResourceID ) const;
/**
* Shows a information note with given text.
@@ -299,12 +310,10 @@
*/
void DivideToBlocks( const TDesC8& aInput, TDes& aOutput ) const;
-/*
- TBool DoMessageQueryL(
- TInt aDialogResId,
+ TBool DoMessageQueryL(
+ TInt aDialogResId,
TInt aHeadingResId,
- TDesC& aMessage );
-*/
+ TDesC& aMessage );
private: //data
TCertificateOwnerType iCertOwnerType;
@@ -327,8 +336,6 @@
TInt iSavedUserCertsCount;
TInt iSelectedKeyStore;
TBool iKeyAlreadyExists;
-
- CEikonEnv* iEikEnv;
};
#endif
--- a/pkiutilities/CertSaver/loc/certsaver.loc Tue Aug 31 16:04:40 2010 +0300
+++ b/pkiutilities/CertSaver/loc/certsaver.loc Wed Sep 01 12:19:59 2010 +0100
@@ -30,7 +30,6 @@
//l:control_pane_t1/opt7
#define text_wmls_list_disc_recvd_cert "Discard"
-
//d:Item in save-confirmation query pop up.
//d:This represents to whom the certificate
//d:has been issued to.
--- a/pkiutilities/CertSaver/src/CertSaverAppUi.cpp Tue Aug 31 16:04:40 2010 +0300
+++ b/pkiutilities/CertSaver/src/CertSaverAppUi.cpp Wed Sep 01 12:19:59 2010 +0100
@@ -18,6 +18,7 @@
// INCLUDE FILES
#include <sysutil.h> // For FFSSpaceBelowCriticalLevelL(..)
+#include <aknnotewrappers.h> // Note dialogs
#include <mpkcs12.h>
#include <cryptostrength.h>
#include <CertSaver.rsg>
--- a/pkiutilities/CertSaver/src/CertSaverDocument.cpp Tue Aug 31 16:04:40 2010 +0300
+++ b/pkiutilities/CertSaver/src/CertSaverDocument.cpp Wed Sep 01 12:19:59 2010 +0100
@@ -112,7 +112,7 @@
OpenFileL( docStore, file );
- CleanupStack::PopAndDestroy(&file); // Close file
+ CleanupStack::PopAndDestroy(); // Close file
return docStore;
}
@@ -137,7 +137,7 @@
iAO = new (ELeave) CShutterAO;
iAO->Exit();
#ifdef _DEBUG
-
+ RDebug::Print( _L("Exiting OpenFileL") );
#endif
}
--- a/pkiutilities/CertSaver/src/CertSaverModel.cpp Tue Aug 31 16:04:40 2010 +0300
+++ b/pkiutilities/CertSaver/src/CertSaverModel.cpp Wed Sep 01 12:19:59 2010 +0100
@@ -16,6 +16,9 @@
*/
+// INCLUDE FILES
+#include <aknnotewrappers.h> // Note dialogs
+#include <aknmessagequerydialog.h> // For CAknMessageQueryDialog
#include <StringLoader.h> // For loading resource strings
#include <unifiedcertstore.h> // For saving the certificates
#include <mctwritablecertstore.h> // For saving the certificates
@@ -32,8 +35,6 @@
#include <x509certext.h>
#include <mctkeystore.h>
#include <TrustedSitesStore.h>
-#include <eikenv.h> // CEikonEnv
-#include <AknUtils.h> // AknTextUtils
#include <CertSaver.rsg>
#include "CertSaverModel.h"
@@ -43,14 +44,7 @@
#include "certsaver.hrh"
#include "securityuisvariant.hrh"
-#include <hbdevicemessageboxsymbian.h>
-#include <hbdevicenotificationdialogsymbian.h>
-#include <hbsymbianvariant.h>
-
-#include "SecQueryUi.h" // needed for label dialog
-
// CONSTANTS
-
const TInt32 KWTLSTrusterUID( 268479059 );
const TInt32 KInternetTrusterUID( 268441661 );
const TInt32 KApplicationControllerTrusterUID( 268452523 );
@@ -62,14 +56,12 @@
const TInt KMaxLengthTextMeassageBody( 5000 );
const TInt KMaxLengthTextDateString( 11 ); // "dd/mm/yyyy0"
-const TInt KMaxLengthTextCheckBoxData( 255 ); // "dd/mm/yyyy0"
//Issuer and Owner max visible length
const TInt KMaxLengthTextCertIdentifierVisible( 1000 );
const TInt KAttempts( 3 );
const TInt KFingerprintLength( 50 );
-const TInt KTokenLength( 32 );
_LIT( KCertSaverListBoxItemPrefix, "1\t" );
const TInt KItemBufLen = 2 + KMaxName;
@@ -124,7 +116,6 @@
const TCertificateOwnerType& aOwnerType,
const TCertificateFormat& aCertFormat )
{
-
iCertOwnerType = aOwnerType;
iCertFormat = aCertFormat;
iNewCert = &aCertificate;
@@ -148,7 +139,6 @@
//
void CCertSaverModel::DoSavePrivateKeyL( const TDesC8& aKey )
{
-
CheckFSSpaceL( aKey );
TKeyIdentifier keyIdentifier;
@@ -168,8 +158,7 @@
CleanupStack::PopAndDestroy( pkcs8Data );
if (KeyAlreadyExistsL( startDate, endDate, keyIdentifier, keyUsage) )
{
- // used to leave with error none
- return;
+ User::Leave( KErrNone );
}
TInt accessType( 0 );
@@ -207,7 +196,7 @@
case KErrKeySize:
case KErrArgument:
{
- ShowInformationNoteL( R_CERTSAVER_KEY_TYPE_NOT_SUPPORTED );
+ ShowErrorNoteL( R_CERTSAVER_KEY_TYPE_NOT_SUPPORTED );
User::Leave( KErrCancel );
break;
}
@@ -218,21 +207,21 @@
}
case KErrKeyUsage:
{
- ShowInformationNoteL( R_CERTSAVER_PRIVATE_KEY_CORRUPTED );
+ ShowErrorNoteL( R_CERTSAVER_PRIVATE_KEY_CORRUPTED );
User::Leave( KErrCancel );
break;
}
case KErrCancel:
case KErrPermissionDenied:
{
- ShowInformationNoteL( R_CERTSAVER_PKCS12_DISCARDED );
+ ShowErrorNoteL( R_CERTSAVER_PKCS12_DISCARDED );
User::Leave( KErrCancel );
break;
}
case KErrCorrupt:
case KErrEof:
{
- ShowInformationNoteL( R_CERTSAVER_KEYSTORE_CORRUPTED );
+ ShowErrorNoteL( R_CERTSAVER_KEYSTORE_CORRUPTED );
User::Leave( KErrCancel );
break;
}
@@ -265,7 +254,6 @@
const TKeyIdentifier& aKeyIdentifier,
TKeyUsagePKCS15& aKeyUsage )
{
-
TBool ret = EFalse;
TCTKeyAttributeFilter keyFilter;
keyFilter.iKeyAlgorithm = CKeyInfoBase::EInvalidAlgorithm;
@@ -284,7 +272,7 @@
case KErrCorrupt:
case KErrEof:
{
- ShowInformationNoteL( R_CERTSAVER_KEYSTORE_CORRUPTED );
+ ShowErrorNoteL( R_CERTSAVER_KEYSTORE_CORRUPTED );
User::Leave( KErrCancel );
}
default:
@@ -316,7 +304,6 @@
const TKeyIdentifier& aKeyIdentifier )
{
-
for ( TInt i = 0; i < iParser.UserCertificates().Count(); i++ )
{
const CX509Certificate* cert = iParser.UserCertificates().At( i );
@@ -343,7 +330,6 @@
//
void CCertSaverModel::CreateKeyLabelL( TDes& aLabel )
{
-
TTime time;
time.UniversalTime();
TBuf<KPrivaKeyLabelLength> dateBuf;
@@ -363,7 +349,6 @@
//
void CCertSaverModel::SavePrivateKeyL()
{
-
if ( iParser.Keys().Count() <= 0 )
{
return;
@@ -412,7 +397,6 @@
TAlgorithmId aAlgorithm )
{
-
TKeyUsagePKCS15 pkcs15KeyUsage = EPKCS15UsageNone;
TKeyUsageX509 x509Usage = EX509UsageNone;
@@ -501,13 +485,16 @@
//
void CCertSaverModel::CheckFSSpaceL( const TDesC8& aDataToSave )
{
-
if (SysUtil::FFSSpaceBelowCriticalLevelL( &iFs, aDataToSave.Size() ))
{
- ShowInformationNoteL(R_CERTSAVER_MEMORY);
+ HBufC* p = StringLoader::LoadLC( R_CERTSAVER_MEMORY );
+ CAknErrorNote* note = new (ELeave) CAknErrorNote( ETrue );
+ note->ExecuteLD( p->Des() );
+ CleanupStack::PopAndDestroy( p );
User::Leave( KErrExitApp );
}
}
+
// ----------------------------------------------------------
// CCertSaverModel::SaveCertL()
// Saves certificate
@@ -515,44 +502,48 @@
//
void CCertSaverModel::SaveCertL()
{
-
if ( !CertificateOkL() )
{
User::Leave( KErrCancel );
}
-
+
HBufC* message = HBufC::NewLC( KMaxLengthTextMeassageBody );
TPtr msgPtr = message->Des();
ConstructMessageL( msgPtr );
- CHbDeviceMessageBoxSymbian::TButtonId selection =
- CHbDeviceMessageBoxSymbian::QuestionL(msgPtr, KNullDesC, KNullDesC);
- TBool doSave= (selection == CHbDeviceMessageBoxSymbian::EAcceptButton);
- CleanupStack::PopAndDestroy(message);
-/*
+ CAknMessageQueryDialog* dlg = CAknMessageQueryDialog::NewL( *message );
+ CleanupStack::PopAndDestroy( message );
+ CleanupStack::PushL( dlg );
+
+
+ dlg->PrepareLC( R_MESSAGE_QUERY_DOSAVE );
+
+ HBufC* header = StringLoader::LoadLC( R_CERTSAVER_DETAILS_HEADING );
+ dlg->QueryHeading()->SetTextL( header->Des() );
+ CleanupStack::PopAndDestroy( header );
+ CleanupStack::Pop( dlg );
+ TBool doSave = dlg->RunLD();
+
if ( doSave && iCertOwnerType == ECACertificate )
{
// warn user about security risk
- HBufC* stringHolder = StringLoader::LoadLC( R_CERTSAVER_WARNING_NOTE );
- CHbDeviceMessageBoxSymbian::TButtonId selection =
- CHbDeviceMessageBoxSymbian::QuestionL(stringHolder->Des(),KNullDesC, KNullDesC);
- CleanupStack::PopAndDestroy(stringHolder);
- doSave=(selection == CHbDeviceMessageBoxSymbian::EAcceptButton);
+ CAknQueryDialog* warningDialog = CAknQueryDialog::NewL();
+ doSave = warningDialog->ExecuteLD( R_CERTSAVER_WARNING_NOTE );
}
-*/
+
if ( doSave )
{
- //Check that there still is enough space to store the certificate.
+ //Check that there still is enough space to store the
+ //certificate.
CheckFSSpaceL( iNewCert->Encoding() );
DoSaveCertL();
}
else
{
- ShowInformationNoteL(R_CERTSAVER_CERT_DISCARDED);
+ ShowConfirmationNoteL( R_CERTSAVER_CERT_DISCARDED );
User::Leave( KErrCancel );
}
}
-
// ----------------------------------------------------------
// CCertSaverModel::InitCertStoreL()
//
@@ -560,13 +551,12 @@
//
void CCertSaverModel::InitCertStoreL()
{
-
if ( !iUnifiedCertStore )
{
TRAPD( status, iUnifiedCertStore = CUnifiedCertStore::NewL( iFs, ETrue ) );
if ( status != KErrNone )
{
- ShowInformationNoteL( R_CERTSAVER_ERROR_CACERTS_DB_CORRUPTED );
+ ShowErrorNoteL( R_CERTSAVER_ERROR_CACERTS_DB_CORRUPTED );
User::Leave( KErrExitApp );
}
// initialize unified cert store
@@ -586,7 +576,6 @@
//
void CCertSaverModel::DoSaveCertL()
{
-
TInt status = KErrNone;
CCertAttributeFilter* filter = NULL;
TCertificateFormat certFormat = EX509Certificate;
@@ -689,8 +678,7 @@
MCTToken& token = writableCertStore.Token();
TUid tokenuid = token.Handle().iTokenTypeUid;
- if ( ( tokenuid == KTrustedServerTokenUid ) &&
- ( iCertOwnerType == EPeerCertificate ) ||
+ if ( ( tokenuid == KTrustedServerTokenUid ) && ( iCertOwnerType == EPeerCertificate ) ||
( tokenuid == KFileTokensUid ) && ( iCertOwnerType == ECACertificate ) ||
( tokenuid == KFileTokensUid ) && ( iCertOwnerType == EUserCertificate ) )
{
@@ -702,7 +690,7 @@
if ( certstoreIndex < 0 )
{
// Couldn't find certificate storage
- ShowInformationNoteL( R_CERTSAVER_ERROR_CACERTS_DB_CORRUPTED );
+ ShowErrorNoteL( R_CERTSAVER_ERROR_CACERTS_DB_CORRUPTED );
User::Leave( KErrExitApp );
}
@@ -741,7 +729,7 @@
{
// If there is none WritableCertStore,
// then at least cacerts.dat is corrupted.
- ShowInformationNoteL( R_CERTSAVER_ERROR_CACERTS_DB_CORRUPTED );
+ ShowErrorNoteL( R_CERTSAVER_ERROR_CACERTS_DB_CORRUPTED );
User::Leave( KErrExitApp );
}
@@ -798,7 +786,6 @@
//
TInt CCertSaverModel::QueryLabelL( TCertLabel& aLabel, CUnifiedCertStore& aStore )
{
-
CCertAttributeFilter* filter = NULL;
TInt status = KErrNone;
RMPointerArray<CCTCertInfo> entries;
@@ -806,21 +793,11 @@
while ( loop )
{
- HBufC* labelprompt = CEikonEnv::Static()->AllocReadResourceLC( R_CERTSAVER_ENTER_LABEL );
- CSecQueryUi* SecQueryUi = CSecQueryUi::NewL();
- TInt queryAccepted = SecQueryUi->SecQueryDialog(labelprompt->Des(), aLabel,
- 1,KMaxCertLabelLength,
- ESecUiAlphaSupported |
- ESecUiCancelSupported |
- ESecUiEmergencyNotSupported);
- CleanupStack::PopAndDestroy( labelprompt );
- delete SecQueryUi;
- SecQueryUi=NULL;
-
- if ( queryAccepted!=KErrNone )
+ CAknTextQueryDialog* dialog = CAknTextQueryDialog::NewL( aLabel );
+ if ( !dialog->ExecuteLD( R_CERTSAVER_LABEL_QUERY ) )
{
// cancel
- ShowInformationNoteL(R_CERTSAVER_CERT_DISCARDED);
+ ShowConfirmationNoteL( R_CERTSAVER_CERT_DISCARDED );
return KErrCancel;
}
// Create filter to confirm that label doesn't already exist.
@@ -863,32 +840,31 @@
//
void CCertSaverModel::HandleSaveErrorL( TInt aStatus ) const
{
-
switch ( aStatus )
{
case KErrNone:
{
- ShowInformationNoteL(R_CERTSAVER_ERROR_SAVEOK);
+ ShowConfirmationNoteL( R_CERTSAVER_ERROR_SAVEOK );
break;
}
case KErrNotSupported:
{
- ShowInformationNoteL(R_CERTSAVER_ERROR_UNSUPPORTED_CERT);
+ ShowErrorNoteL( R_CERTSAVER_ERROR_UNSUPPORTED_CERT );
break;
}
case KErrBadName:
{
- ShowInformationNoteL(R_CERTSAVER_ERROR_LABEL_ALREADY_EXISTS);
+ ShowErrorNoteL( R_CERTSAVER_ERROR_LABEL_ALREADY_EXISTS );
break;
}
case KErrAlreadyExists:
{
- ShowInformationNoteL(R_CERTSAVER_ERROR_ALREADY_EXISTS);
+ ShowErrorNoteL( R_CERTSAVER_ERROR_ALREADY_EXISTS );
break;
}
case KErrArgument:
{
- ShowInformationNoteL(R_CERTSAVER_ERROR_CACERTS_DB_CORRUPTED);
+ ShowErrorNoteL( R_CERTSAVER_ERROR_CACERTS_DB_CORRUPTED );
break;
}
default:
@@ -908,7 +884,6 @@
void CCertSaverModel::AddToMessageWithStringL(
TDes& aMessage, TInt aStringResID, const TDesC& aString ) const
{
-
HBufC* promptPtr = NULL;
promptPtr = StringLoader::LoadL( aStringResID, aString );
CleanupStack::PushL( promptPtr );
@@ -929,7 +904,6 @@
TInt aStringResID,
TInt aInt ) const
{
-
HBufC* promptPtr = NULL;
promptPtr = StringLoader::LoadL( aStringResID, aInt );
CleanupStack::PushL( promptPtr );
@@ -948,7 +922,6 @@
//
void CCertSaverModel::AddToMessageL( TDes& aMessage, TInt aStringResID ) const
{
-
HBufC* promptPtr = NULL;
promptPtr = StringLoader::LoadL( aStringResID );
CleanupStack::PushL( promptPtr );
@@ -967,7 +940,6 @@
//
void CCertSaverModel::ConstructMessageL( TDes& aMessage ) const
{
-
HBufC16* issuerName = NULL;
HBufC16* subjectName = NULL;
@@ -1024,7 +996,6 @@
//
void CCertSaverModel::AddKeyUsageL( TDes& aMessage, const CX509Certificate& aCert ) const
{
-
TKeyUsageX509 x509Usage = EX509UsageNone;
TKeyUsagePKCS15 pkcs15KeyUsage = EPKCS15UsageNone;
const CX509CertExtension* ext = aCert.Extension( KKeyUsage );
@@ -1108,7 +1079,6 @@
void CCertSaverModel::AddValidityPeriodL(
TDes& aMessage, const CX509Certificate& aCert ) const
{
-
// Hometime's offset to UTC
TLocale locale;
TTimeIntervalSeconds offSet = locale.UniversalTimeOffset();
@@ -1138,7 +1108,7 @@
// format the date to user readable format. The format is locale dependent
finishValue.FormatL( finishString, *dateFormatString );
AknTextUtils::DisplayTextLanguageSpecificNumberConversion( finishString );
- CleanupStack::PopAndDestroy(dateFormatString); // dateFormatString
+ CleanupStack::PopAndDestroy(); // dateFormatString
aMessage.Append( finishString );
AddNewlinesToMessage( aMessage );
}
@@ -1150,7 +1120,6 @@
//
void CCertSaverModel::AddNewlinesToMessage( TDes& aMessage ) const
{
-
aMessage.Append( KDoubleEnter );
}
@@ -1161,7 +1130,6 @@
//
TBool CCertSaverModel::CertificateSupported() const
{
-
if ( iCertFormat == EX509Certificate &&
( iCertOwnerType == ECACertificate ||
iCertOwnerType == EPeerCertificate ||
@@ -1183,20 +1151,19 @@
//
TBool CCertSaverModel::CertificateOkL() const
{
-
- if ( !CertificateSupported() )
+ if ( !CertificateSupported() )
{
- ShowInformationNoteL(R_CERTSAVER_ERROR_UNSUPPORTED_CERT);
+ ShowErrorNoteL( R_CERTSAVER_ERROR_UNSUPPORTED_CERT );
return EFalse;
}
if ( CertNotValidAnymore() )
{
- ShowInformationNoteL(R_CERTSAVER_ERROR_CERT_NOT_VALID);
+ ShowErrorNoteL( R_CERTSAVER_ERROR_CERT_NOT_VALID );
return ETrue;
}
else if ( CertNotValidYet() )
{
- ShowInformationNoteL(R_CERTSAVER_ERROR_CERT_NOT_VALID_YET);
+ ShowErrorNoteL( R_CERTSAVER_ERROR_CERT_NOT_VALID_YET );
}
return ETrue;
}
@@ -1208,7 +1175,6 @@
//
TBool CCertSaverModel::CertNotValidAnymore() const
{
-
TTime homeTime;
homeTime.HomeTime();
if ( iNewCert->ValidityPeriod().Finish() < homeTime )
@@ -1225,7 +1191,6 @@
//
TBool CCertSaverModel::CertNotValidYet() const
{
-
TTime homeTime;
homeTime.HomeTime();
if ( iNewCert->ValidityPeriod().Start() > homeTime )
@@ -1242,15 +1207,35 @@
//
void CCertSaverModel::ShowInformationNoteL( TInt aResourceID ) const
{
-
+ HBufC* buffer = iAppUi->CoeEnv()->AllocReadResourceLC( aResourceID );
+ CAknInformationNote* note = new (ELeave) CAknInformationNote( ETrue );
+ note->ExecuteLD( buffer->Des() );
+ CleanupStack::PopAndDestroy( buffer );
+ }
+// ----------------------------------------------------------
+// CCertSaverModel::ShowConfirmationNoteL() const
+// Creates and shows a confirmation note.
+// ----------------------------------------------------------
+//
+void CCertSaverModel::ShowConfirmationNoteL( TInt aResourceID ) const
+ {
HBufC* buffer = iAppUi->CoeEnv()->AllocReadResourceLC( aResourceID );
- CHbDeviceMessageBoxSymbian* iMessageBox = CHbDeviceMessageBoxSymbian::NewL(CHbDeviceMessageBoxSymbian::EInformation);
- CleanupStack::PushL(iMessageBox);
- iMessageBox->SetTextL(buffer->Des());
- iMessageBox->SetTimeout(6000);
- iMessageBox->ExecL();
- CleanupStack::PopAndDestroy(iMessageBox);
- CleanupStack::PopAndDestroy( buffer );
+ CAknConfirmationNote* note = new (ELeave) CAknConfirmationNote( ETrue );
+ note->ExecuteLD( buffer->Des() );
+ CleanupStack::PopAndDestroy( buffer );
+ }
+
+// ----------------------------------------------------------
+// CCertSaverModel::ShowErrorNoteL() const
+// Creates and shows an error note.
+// ----------------------------------------------------------
+//
+void CCertSaverModel::ShowErrorNoteL( TInt aResourceID ) const
+ {
+ HBufC* buffer = iAppUi->CoeEnv()->AllocReadResourceLC( aResourceID );
+ CAknErrorNote* note = new (ELeave) CAknErrorNote( ETrue );
+ note->ExecuteLD(buffer->Des());
+ CleanupStack::PopAndDestroy( buffer );
}
// ----------------------------------------------------------
@@ -1262,7 +1247,6 @@
//
TPtrC CCertSaverModel::TrimCertificateFields( TPtrC aField ) const
{
-
TPtrC cutField = CutCertificateField( aField );
// Find one semicolon at a time and crop the
// helpField from the left to search for the next semicolon
@@ -1314,7 +1298,6 @@
//
TPtrC CCertSaverModel::CutCertificateField( TPtrC aField ) const
{
-
TInt fieldLength = aField.Length();
if ( fieldLength >= KMaxLengthTextCertIdentifierVisible )
{
@@ -1331,8 +1314,10 @@
//
TInt CCertSaverModel::QueryTrusterUidsL( RArray<TUid>& aUids )
{
-
TInt ret = KErrCancel;
+ CArrayFixFlat<TInt>* selectionArray =
+ new (ELeave) CArrayFixFlat<TInt>( KTrusterArrayInitSize );
+ CleanupStack::PushL( selectionArray );
CDesCArray* itemsArray = new (ELeave) CDesCArrayFlat( KTrusterArrayInitSize );
CleanupStack::PushL( itemsArray );
@@ -1345,52 +1330,28 @@
CleanupClosePushL( appsInItemArray );
UpdateTrustListboxItemL( apps, appsInItemArray, *itemsArray );
- HBufC* title = CEikonEnv::Static()->AllocReadResourceLC( R_CERTSAVER_SELECT_TRUSTED_APPS);
-
- RBuf rBuf; // buffer for items with big enough space
- rBuf.CreateL(KMaxLengthTextMeassageBody);
- CleanupClosePushL(rBuf);
- for(TInt i = 0; i<itemsArray->Count(); i++)
- rBuf.Append( (*itemsArray)[i] );
-
- CSecQueryUi* SecQueryUi = CSecQueryUi::NewL();
- TInt saved = SecQueryUi->SecQueryDialog(*title, rBuf,1,KTokenLength,
- ESecUiAlphaSupported | ESecUiCancelSupported |
- ESecUiBasicTypeMultiCheck |
- ESecUiEmergencyNotSupported);
- delete SecQueryUi;
- SecQueryUi=NULL;
-
- if (saved==KErrNone)
+ CAknListQueryDialog* dlg = new (ELeave) CAknListQueryDialog( selectionArray );
+ CleanupStack::PushL( dlg );
+ dlg->PrepareLC( R_CERTSAVER_TRUST_SETTINGS_QUERY );
+ dlg->SetItemTextArray( itemsArray );
+ dlg->SetOwnershipType( ELbmDoesNotOwnItemArray );
+ if ( dlg->RunLD() )
{
- TLex16 lex(rBuf);
- TChar ch;
- TBuf16<KTokenLength> token;
- TInt val;
- while((ch = lex.Get()) != 0 ){
- while ((ch = lex.Peek()) != '|' && ch!=0) lex.Inc();
- token.Copy(lex.MarkedToken());
- TLex lexc(token);
- if(lexc.Val(val)!=KErrNone) val=0;
- if(val<=appsInItemArray.Count()-1)
- aUids.Append( appsInItemArray[ val ].Id() );
- lex.Inc();
- lex.Mark();
- }
+ aUids.Reset();
+ for ( TInt i = 0; i < selectionArray->Count(); ++i )
+ {
+ TInt ii = (*selectionArray)[ i ];
+ aUids.Append( appsInItemArray[ ii ].Id() );
+ }
ret = KErrNone;
}
else
{
- ShowInformationNoteL(R_CERTSAVER_CERT_DISCARDED);
+ ShowConfirmationNoteL( R_CERTSAVER_CERT_DISCARDED );
ret = KErrCancel;
}
-
- rBuf.Close();
- CleanupStack::PopAndDestroy(&rBuf);
- CleanupStack::PopAndDestroy(title);
- CleanupStack::PopAndDestroy(&appsInItemArray);
- CleanupStack::PopAndDestroy(appInfoManager);
- CleanupStack::PopAndDestroy(itemsArray);
+ CleanupStack::Pop( dlg );
+ CleanupStack::PopAndDestroy( 4, selectionArray );
return ret;
}
@@ -1401,7 +1362,6 @@
//
TInt CCertSaverModel::QueryTrustedSiteL()
{
-
TInt ret = KErrCancel;
HBufC* label = NULL;
HBufC* secondaryName = NULL;
@@ -1413,19 +1373,27 @@
delete secondaryName;
secondaryName = NULL;
labelBuf = label->Des().Left( CERTSAVER_MAX_LABEL_LEN );
+
+
HBufC* prompt = StringLoader::LoadLC( R_CERTSAVER_TRUSTEDSITE_WARNING, labelBuf );
- CHbDeviceMessageBoxSymbian::TButtonId selection =
- CHbDeviceMessageBoxSymbian::QuestionL(prompt->Des(), KNullDesC, KNullDesC);
- if ( selection == CHbDeviceMessageBoxSymbian::EAcceptButton)
+
+ CAknMessageQueryDialog* note = CAknMessageQueryDialog::NewL( *prompt );
+
+ note->PrepareLC( R_CERTSAVER_TRUSTED_SITE_QUERY );
+ note->SetPromptL( *prompt );
+
+ if ( note->RunLD() )
{
ret = KErrNone;
}
else
{
- ShowInformationNoteL(R_CERTSAVER_CERT_DISCARDED);
+ ShowConfirmationNoteL( R_CERTSAVER_CERT_DISCARDED );
ret = KErrCancel;
}
+
CleanupStack::PopAndDestroy( prompt );
+
CleanupStack::PopAndDestroy( label );
return ret;
}
@@ -1440,7 +1408,6 @@
RArray<TCertificateAppInfo>& aAppsInItemArray,
CDesCArray& aItemsArray ) const
{
-
for ( TInt i = 0; i < aApps.Count(); i++ )
{
TCertificateAppInfo appInfo = aApps[ i ];
@@ -1503,7 +1470,6 @@
//
void CCertSaverModel::DivideToBlocks( const TDesC8& aInput, TDes& aOutput ) const
{
-
_LIT( KBlockSeparator, " " );
const TInt KBlockLength = 2;
TInt blockIndex = 0;
@@ -1526,37 +1492,25 @@
//
void CCertSaverModel::SavePKCS12L()
{
-
HBufC* message = HBufC::NewLC( KMaxLengthTextMeassageBody );
TPtr msgPtr = message->Des();
ConstructPKCS12QueryMsgL(msgPtr, iParser.Keys().Count(),
iParser.UserCertificates().Count(),
iParser.CACertificates().Count() );
-
- //TODO: Should be in loc file but hardcoded now
- _LIT(KCheckBoxCaption,"Protect with Password|1");
- TBuf<KMaxLengthTextCheckBoxData> CheckeBoxData(KCheckBoxCaption);
-
- CSecQueryUi* SecQueryUi = CSecQueryUi::NewL();
- TInt save = SecQueryUi->SecQueryDialog(*message, CheckeBoxData,1,1,
- ESecUiAlphaSupported | ESecUiCancelSupported |
- ESecUiBasicTypeCheck | ESecUiEmergencyNotSupported);
- CleanupStack::Pop(message);
+ TBool save = DoMessageQueryL(
+ R_MESSAGE_QUERY_DOSAVE, R_CERTSAVER_HEADER_PKCS12_FILE_CONTAINS,
+ *message );
+ CleanupStack::PopAndDestroy( message );
message = NULL;
- delete SecQueryUi;
- SecQueryUi=NULL;
-
- if ( save!=KErrNone )
+ if ( !save )
{
ShowInformationNoteL( R_CERTSAVER_PKCS12_DISCARDED );
User::Leave( KErrExitApp );
}
TInt status = KErrNone;
// save private keys
- if(CheckeBoxData.Compare(_L("1"))==0)
- {
- TRAP( status, SavePrivateKeyL() );
- }
+ TRAP( status, SavePrivateKeyL() );
+
// save user certificates if private key was saved.
if ( ( iSavedKeysCount > 0 || iKeyAlreadyExists ) && iParser.UserCertificates().Count() > 0 )
{
@@ -1589,28 +1543,42 @@
}
}
}
-/*
if ( iSavedCACertsCount != 0 || iSavedKeysCount != 0
|| iSavedUserCertsCount != 0 )
{
-// show how many have been saved
- HBufC* p = StringLoader::LoadLC( R_CERTSAVER_HEADER_SAVED );
- message = HBufC::NewLC( KMaxLengthTextMeassageBody );
- message->Des().Append(p->Des());
- TPtr msgPtr2 = message->Des();
- ConstructPKCS12QueryMsgL(
+ message = HBufC::NewLC( KMaxLengthTextMeassageBody );
+ TPtr msgPtr2 = message->Des();
+ ConstructPKCS12QueryMsgL(
msgPtr2, iSavedKeysCount, iSavedUserCertsCount, iSavedCACertsCount );
- CHbDeviceMessageBoxSymbian::InformationL(message->Des());
- CleanupStack::PopAndDestroy( message );
- CleanupStack::PopAndDestroy( p );
+ DoMessageQueryL(
+ R_MESSAGE_QUERY_SAVED, R_CERTSAVER_HEADER_SAVED, *message );
+ CleanupStack::PopAndDestroy( message );
}
else
{
- // the contents could not be saved is dropped
ShowInformationNoteL( R_QTN_CM_PKCS12_SAVING_FAILED );
- CleanupStack::PopAndDestroy( message );
}
-*/
+ }
+
+// ----------------------------------------------------------
+// CCertSaverModel::DoMessageQuery()
+// Displays message query dialog for user.
+// ----------------------------------------------------------
+//
+TBool CCertSaverModel::DoMessageQueryL(
+ TInt aDialogResId,
+ TInt aHeadingResId,
+ TDesC& aMessage )
+ {
+ CAknMessageQueryDialog* dlg = CAknMessageQueryDialog::NewL( aMessage );
+ CleanupStack::PushL( dlg );
+ dlg->PrepareLC( aDialogResId );
+
+ HBufC* header = StringLoader::LoadLC( aHeadingResId );
+ dlg->QueryHeading()->SetTextL( header->Des() );
+ CleanupStack::PopAndDestroy( header );
+ CleanupStack::Pop( dlg );
+ return dlg->RunLD();
}
// ----------------------------------------------------------
@@ -1624,7 +1592,6 @@
TInt aUserCerts,
TInt aCACerts ) const
{
-
if ( aPrivateKeys > 0 )
{
if ( aPrivateKeys == 1 )
--- a/pkiutilities/CertSaver/src/certparser.cpp Tue Aug 31 16:04:40 2010 +0300
+++ b/pkiutilities/CertSaver/src/certparser.cpp Wed Sep 01 12:19:59 2010 +0100
@@ -25,17 +25,14 @@
#include <X509CertNameParser.h>
#include <featmgr.h>
#include <data_caging_path_literals.hrh>
+#include <AknQueryDialog.h>
#include <CertSaver.rsg>
#include <StringLoader.h>
#include <securityerr.h>
+#include <aknnotewrappers.h> // Note dialogs
#include <apmrec.h>
-#include <eikenv.h> // CEikonEnv
#include "certparser.h"
-#include "SecQueryUi.h" // needed for password dialog
-
-#include <hbdevicemessageboxsymbian.h> // needed for Note dialogs
-
// CONSTANTS
_LIT( KPKCS12DllName, "crpkcs12.dll" ); // PKCS12 DLL name
const TInt KX509Version3 = 3;
@@ -97,7 +94,6 @@
//
void CCertParser::SetContentL( RFile& aFile )
{
-
delete iCert;
iCert = NULL;
TInt fileSize = 0;
@@ -130,8 +126,7 @@
//
void CCertParser::CreatePKCS12L()
{
-
- // Load PKCS#12 dll
+ // Load PKCS#12 dll
#ifdef __WINS__
User::LeaveIfError ( iLibrary.Load( KPKCS12DllName ) );
#else
@@ -156,7 +151,6 @@
const TDesC8& aPKCS12,
const TDesC& aFileName )
{
-
CreatePKCS12L();
if ( !iPKCS12->IsPKCS12Data( aPKCS12 ) )
@@ -167,12 +161,21 @@
TBool done = EFalse;
TBuf<KPwMaxLength> password;
+ HBufC* buffer = NULL;
+
+ if ( !iEikEnv )
+ {
+ iEikEnv = CEikonEnv::Static();
+ }
while ( !done )
{
if ( !GetPasswordL( password, aFileName ) )
{
- ShowErrorNoteL(R_CERTSAVER_PKCS12_DISCARDED);
+ buffer = iEikEnv->AllocReadResourceLC( R_CERTSAVER_PKCS12_DISCARDED );
+ CAknInformationNote* note = new (ELeave) CAknInformationNote( ETrue );
+ note->ExecuteLD(buffer->Des());
+ CleanupStack::PopAndDestroy( buffer );
User::Leave( KErrExitApp );
}
TRAPD( err, iPKCS12->ParseL( aPKCS12, password ) );
@@ -223,19 +226,15 @@
//
TInt CCertParser::GetPasswordL( TDes& aPassword, const TDesC& aFileName )
{
- CSecQueryUi* SecQueryUi = CSecQueryUi::NewL();
- HBufC* prompt =StringLoader::LoadLC( R_QTN_CM_TITLE_P12_PASSWORD, aFileName );
- TInt queryAccepted = SecQueryUi->SecQueryDialog(prompt->Des(), aPassword,
- 1,KPwMaxLength,
- ESecUiAlphaSupported |
- ESecUiCancelSupported |
- ESecUiSecretSupported |
- ESecUiEmergencyNotSupported);
- CleanupStack::PopAndDestroy( prompt );
- delete SecQueryUi;
- SecQueryUi=NULL;
- return (queryAccepted==KErrNone);
- }
+ CAknTextQueryDialog* query = CAknTextQueryDialog::NewL( aPassword );
+ CleanupStack::PushL( query );
+ HBufC* prompt =
+ StringLoader::LoadLC( R_QTN_CM_TITLE_P12_PASSWORD, aFileName );
+ query->SetPromptL( *prompt );
+ CleanupStack::PopAndDestroy( prompt );
+ CleanupStack::Pop( query );
+ return query->ExecuteLD( R_PKCS12_PW_QUERY_DIALOG );
+ }
// ----------------------------------------------------------
// CCertParser::CheckIfX509CertificateL()
@@ -244,7 +243,6 @@
//
TBool CCertParser::CheckIfX509CertificateL(const TDesC8& aCert)
{
-
TRAPD( err,
iCert = CX509Certificate::NewL(aCert);
);
@@ -304,7 +302,6 @@
//
const CArrayPtr<CX509Certificate>& CCertParser::CACertificates() const
{
-
__ASSERT_ALWAYS( iPKCS12, User::Panic( KCertSaverPanic, KPanicNullPointer ) );
return iPKCS12->CACertificates();
}
@@ -315,7 +312,6 @@
//
const CArrayPtr<CX509Certificate>& CCertParser::UserCertificates() const
{
-
__ASSERT_ALWAYS( iPKCS12, User::Panic( KCertSaverPanic, KPanicNullPointer ) );
return iPKCS12->UserCertificates();
}
@@ -326,7 +322,6 @@
//
const CArrayPtr<HBufC8>& CCertParser::Keys() const
{
-
__ASSERT_ALWAYS( iPKCS12, User::Panic( KCertSaverPanic, KPanicNullPointer ) );
return iPKCS12->PrivateKeys();
}
@@ -337,7 +332,6 @@
//
CCertParser::TCertType CCertParser::CertType() const
{
-
return iCertType;
}
@@ -348,7 +342,6 @@
//
const TPtrC8 CCertParser::CertificateBuf() const
{
-
__ASSERT_ALWAYS( iCert, User::Panic( KCertSaverPanic, KPanicNullPointer ) );
return iCert->Encoding();
}
@@ -360,7 +353,6 @@
//
const CX509Certificate& CCertParser::Certificate() const
{
-
__ASSERT_ALWAYS( iCert, User::Panic( KCertSaverPanic, KPanicNullPointer ) );
return *((CX509Certificate*)iCert);
}
@@ -377,13 +369,9 @@
iEikEnv = CEikonEnv::Static();
}
HBufC* buffer = iEikEnv->AllocReadResourceLC( aResourceID );
- CHbDeviceMessageBoxSymbian* iMessageBox = CHbDeviceMessageBoxSymbian::NewL(CHbDeviceMessageBoxSymbian::EWarning);
- CleanupStack::PushL(iMessageBox);
- iMessageBox->SetTextL(buffer->Des());
- iMessageBox->SetTimeout(6000);
- iMessageBox->ExecL();
- CleanupStack::PopAndDestroy(iMessageBox);
- CleanupStack::PopAndDestroy( buffer );
+ CAknErrorNote* note = new (ELeave) CAknErrorNote( ETrue );
+ note->ExecuteLD(buffer->Des());
+ CleanupStack::PopAndDestroy( buffer );
}
// End of File
--- a/pkiutilities/CertmanUi/INC/CertmanuiCommon.h Tue Aug 31 16:04:40 2010 +0300
+++ b/pkiutilities/CertmanUi/INC/CertmanuiCommon.h Wed Sep 01 12:19:59 2010 +0100
@@ -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"
@@ -73,8 +73,8 @@
const TInt KMaxLengthTextDateString = 11;
// HH0
const TInt KMaxLengthTextSerialNumberFormatting = 3;
-// CertLabel, Issuer, Owner max length 510 bytes
-const TInt KMaxLengthTextCertLabel = 510;
+// CertLabel, Issuer, Owner max length 1024 bytes
+const TInt KMaxLengthTextCertLabel = 1024;
// CertLabel, Issuer, Owner max visible length
const TInt KMaxLengthTextCertLabelVisible = 200;
// CertWimLabel, KeyLabel, KeyWimLabel max length 255 bytes
--- a/pkiutilities/CertmanUi/INC/CertmanuiKeeper.h Tue Aug 31 16:04:40 2010 +0300
+++ b/pkiutilities/CertmanUi/INC/CertmanuiKeeper.h Wed Sep 01 12:19:59 2010 +0100
@@ -1,5 +1,5 @@
/*
-* Copyright (c) 2003-2009 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"
@@ -195,11 +195,16 @@
*/
TBool iStartup;
- /**
+ /**
* Certificate helper class
*/
CCertManUICertificateHelper* iCertificateHelper;
+ /**
+ * Index for the current CA cert for changing trust settings
+ */
+ TInt iCurrentCACertForTrustSettings;
+
private: // functions
/**
--- a/pkiutilities/CertmanUi/INC/CertmanuicontainerTrust.h Tue Aug 31 16:04:40 2010 +0300
+++ b/pkiutilities/CertmanUi/INC/CertmanuicontainerTrust.h Wed Sep 01 12:19:59 2010 +0100
@@ -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"
@@ -33,6 +33,7 @@
const TInt KTrustSettingsResourceIndexJavaInstall = 3;
const TInt KTrustSettingsResourceIndexOCSPCheck = 4;
const TInt KTrustSettingsResourceIndexVPN = 5;
+const TInt KTrustSettingsResourceIndexWidget = 6;
const TInt KTrustSettingsResourceIndexValueYes = 0;
const TInt KTrustSettingsResourceIndexValueNo = 1;
@@ -239,6 +240,8 @@
void ShowTrustChangeSettingPageL( const TUid aClientUid,
TDesC& aClientName, CCTCertInfo& aEntry );
+ void ChangeTrustChangeSettingSingleClickL();
+
void InsertItemToTrustListL( const TInt index, const TUid id,
CCTCertInfo& entry, CDesCArray* itemArray,
TInt position );
--- a/pkiutilities/CertmanUi/INC/Certmanuitrustids.h Tue Aug 31 16:04:40 2010 +0300
+++ b/pkiutilities/CertmanUi/INC/Certmanuitrustids.h Wed Sep 01 12:19:59 2010 +0100
@@ -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"
@@ -28,6 +28,7 @@
const TUid KCertManUIViewTrustJavaInstallingId = {270506792};
const TUid KCertManUIViewOCSPCheckInstallingId = {268478646};
const TUid KCertManUIViewTrustVPNId = {270498195};
+const TUid KCertManUIViewTrustWidgetInstallingId = {537028562};
#endif // __CERTMANUITRUSTIDS_H
--- a/pkiutilities/CertmanUi/SRC/CertmanuiCertificateHelper.cpp Tue Aug 31 16:04:40 2010 +0300
+++ b/pkiutilities/CertmanUi/SRC/CertmanuiCertificateHelper.cpp Wed Sep 01 12:19:59 2010 +0100
@@ -1,5 +1,5 @@
/*
-* Copyright (c) 2003-2009 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"
@@ -527,7 +527,6 @@
// HBufC& aMessage, TPtrC aValue, TInt aResourceOne)
// Reads dynamic text from CertManAPI, if the string is empty
// put a not defined text from the resource in its place
-// KMaxLengthTextCertLabel = 510, used by CertLabel(), Issuer(), Owner()
// ---------------------------------------------------------
//
void CCertManUICertificateHelper::DetailsDynamicL(
@@ -536,26 +535,29 @@
CERTMANUILOGGER_ENTERFN(
"CCertManUICertificateHelper::DetailsDynamicL" );
- HBufC* buf = HBufC::NewLC( KMaxLengthTextCertLabel );
- buf->Des() = aValue;
- buf->Des().TrimLeft();
- // Cut CertLabel after fourth semi colon
- TPtrC trimmedCertLabel = CutCertificateField( buf->Des() );
- buf->Des().Copy( trimmedCertLabel );
- TInt length = buf->Des().Length();
- if ( length == 0 )
+ HBufC* buf = aValue.AllocLC();
+ TPtr trimmedValue( buf->Des() );
+ trimmedValue.TrimLeft();
+
+ if( trimmedValue.Length() > KMaxLengthTextCertLabelVisible )
+ {
+ trimmedValue.SetLength( KMaxLengthTextCertLabelVisible - 1 );
+ trimmedValue.Append( KTextUtilClipEndChar );
+ }
+
+ if ( trimmedValue.Length() == 0 )
{
DetailsResourceL( aMessage, aResourceOne );
}
else
{
- //LRM (Left-to-Right mark 200E)
+ //LRM (Left-to-Right mark 0x200E)
const TInt KLRMark = 0x200E;
- aMessage.Des().Append( buf->Des() );
- aMessage.Des().Append(KLRMark);
+ aMessage.Des().Append( trimmedValue );
+ aMessage.Des().Append( KLRMark );
aMessage.Des().Append( KCertManUIDetailsViewEnter );
}
- CleanupStack::PopAndDestroy(); // buf
+ CleanupStack::PopAndDestroy( buf );
CERTMANUILOGGER_LEAVEFN(
"CCertManUICertificateHelper::DetailsDynamicL" );
--- a/pkiutilities/CertmanUi/SRC/CertmanuiKeeper.cpp Tue Aug 31 16:04:40 2010 +0300
+++ b/pkiutilities/CertmanUi/SRC/CertmanuiKeeper.cpp Wed Sep 01 12:19:59 2010 +0100
@@ -1,5 +1,5 @@
/*
-* Copyright (c) 2003-2009 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"
@@ -170,7 +170,8 @@
// Constructor with parent
// ---------------------------------------------------------
//
-CCertManUIKeeper::CCertManUIKeeper(): iResourceLoader( *iCoeEnv )
+CCertManUIKeeper::CCertManUIKeeper() : iCurrentCACertForTrustSettings( KErrNotFound ),
+ iResourceLoader( *iCoeEnv )
{
CERTMANUILOGGER_CREATE; //lint !e960
CERTMANUILOGGER_WRITE_TIMESTAMP( "CCertManUIKeeper::CCertManUIKeeper" );
--- a/pkiutilities/CertmanUi/SRC/CertmanuicontainerAuthority.cpp Tue Aug 31 16:04:40 2010 +0300
+++ b/pkiutilities/CertmanUi/SRC/CertmanuicontainerAuthority.cpp Wed Sep 01 12:19:59 2010 +0100
@@ -1,5 +1,5 @@
/*
-* Copyright (c) 2003-2009 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"
@@ -79,12 +79,7 @@
CreateWindowL();
CreateListBoxL();
UpdateListBoxL( aCurrentPosition, aTopItem );
- if ( iListBox )
- {
- // Creates graphic.
- iListBox->ItemDrawer()->ColumnData()->
- SetIconArray( iIconHandler->CreateIconArrayL() );
- }
+ iListBox->ItemDrawer()->ColumnData()->SetIconArray( iIconHandler->CreateIconArrayL() );
SetRect( aRect );
CERTMANUILOGGER_LEAVEFN( " CCertManUIContainerAuthority::ConstructL" );
--- a/pkiutilities/CertmanUi/SRC/CertmanuicontainerDevice.cpp Tue Aug 31 16:04:40 2010 +0300
+++ b/pkiutilities/CertmanUi/SRC/CertmanuicontainerDevice.cpp Wed Sep 01 12:19:59 2010 +0100
@@ -1,5 +1,5 @@
/*
-* Copyright (c) 2003-2009 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"
@@ -80,14 +80,7 @@
CreateWindowL();
CreateListBoxL();
UpdateListBoxL( aCurrentPosition, aTopItem );
-
- if ( iListBox )
- {
- // Creates graphic.
- iListBox->ItemDrawer()->ColumnData()->
- SetIconArray( iIconHandler->CreateIconArrayL() );
- }
-
+ iListBox->ItemDrawer()->ColumnData()->SetIconArray( iIconHandler->CreateIconArrayL() );
SetRect( aRect );
CERTMANUILOGGER_LEAVEFN( " CCertManUIContainerDevice::ConstructL" );
--- a/pkiutilities/CertmanUi/SRC/CertmanuicontainerPersonal.cpp Tue Aug 31 16:04:40 2010 +0300
+++ b/pkiutilities/CertmanUi/SRC/CertmanuicontainerPersonal.cpp Wed Sep 01 12:19:59 2010 +0100
@@ -1,5 +1,5 @@
/*
-* Copyright (c) 2003-2009 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"
@@ -79,12 +79,7 @@
CreateWindowL();
CreateListBoxL();
UpdateListBoxL( aCurrentPosition, aTopItem );
- if ( iListBox )
- {
- // Creates graphic.
- iListBox->ItemDrawer()->ColumnData()->
- SetIconArray( iIconHandler->CreateIconArrayL() );
- }
+ iListBox->ItemDrawer()->ColumnData()->SetIconArray( iIconHandler->CreateIconArrayL() );
SetRect( aRect );
CERTMANUILOGGER_LEAVEFN( " CCertManUIContainerPersonal::ConstructL" );
--- a/pkiutilities/CertmanUi/SRC/CertmanuicontainerTrust.cpp Tue Aug 31 16:04:40 2010 +0300
+++ b/pkiutilities/CertmanUi/SRC/CertmanuicontainerTrust.cpp Wed Sep 01 12:19:59 2010 +0100
@@ -1,5 +1,5 @@
/*
-* Copyright (c) 2003-2009 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"
@@ -170,10 +170,7 @@
switch( aEventType )
{
case EEventItemSingleClicked:
- if ( !iKeeper.iWrapper->IsActive() )
- {
- iParent.ChangeTrustL();
- }
+ ChangeTrustChangeSettingSingleClickL();
break;
default:
{
@@ -435,6 +432,10 @@
{
resIndex = KTrustSettingsResourceIndexVPN;
}
+ else if ( aTrusterUid == KCertManUIViewTrustWidgetInstallingId )
+ {
+ resIndex = KTrustSettingsResourceIndexWidget;
+ }
else
{
resIndex = KErrNotFound;
@@ -595,23 +596,23 @@
}
else if ( id == KCertManUIViewTrustMailAndImageConnId )
{
- item =
- (*iTrustedClients)[ KTrustSettingsResourceIndexMailAndImageConn ];
+ item = (*iTrustedClients)[ KTrustSettingsResourceIndexMailAndImageConn ];
}
else if ( id == KCertManUIViewTrustJavaInstallingId )
{
- item =
- (*iTrustedClients)[ KTrustSettingsResourceIndexJavaInstall ];
+ item = (*iTrustedClients)[ KTrustSettingsResourceIndexJavaInstall ];
}
else if ( id == KCertManUIViewOCSPCheckInstallingId )
{
- item =
- (*iTrustedClients)[ KTrustSettingsResourceIndexOCSPCheck ];
+ item = (*iTrustedClients)[ KTrustSettingsResourceIndexOCSPCheck ];
}
else if ( id == KCertManUIViewTrustVPNId )
{
- item =
- (*iTrustedClients)[ KTrustSettingsResourceIndexVPN ];
+ item = (*iTrustedClients)[ KTrustSettingsResourceIndexVPN ];
+ }
+ else if ( id == KCertManUIViewTrustWidgetInstallingId )
+ {
+ item = (*iTrustedClients)[ KTrustSettingsResourceIndexWidget ];
}
else
{
@@ -697,6 +698,33 @@
}
// ---------------------------------------------------------------------------
+// CCertManUIContainerTrust::ChangeTrustChangeSettingSingleClickL()
+// ---------------------------------------------------------------------------
+//
+void CCertManUIContainerTrust::ChangeTrustChangeSettingSingleClickL()
+ {
+ if( !iKeeper.iWrapper->IsActive() )
+ {
+ TInt certIndex = iKeeper.iCurrentCACertForTrustSettings;
+
+ if( certIndex >= 0 && certIndex < iKeeper.iCALabelEntries.Count() )
+ {
+ CCTCertInfo* entry = iKeeper.iCALabelEntries[ certIndex ]->iCAEntry;
+ if( entry && entry->IsDeletable() )
+ {
+ TInt currentTrustSetting = iListBox->CurrentItemIndex();
+ if( currentTrustSetting >= 0 && currentTrustSetting < iClientUids.Count() )
+ {
+ TUid uid = iClientUids[ currentTrustSetting ];
+ ChangeTrustValueL( *entry, uid );
+ UpdateTrustListboxItemL( *entry, currentTrustSetting );
+ }
+ }
+ }
+ }
+ }
+
+// ---------------------------------------------------------------------------
// CCertManUIContainerTrust::PopupTrustChangeSettingPageL(
// TInt aCertificateIndex)
// Finds out which client was focused in Trust Settings view and calls
@@ -720,7 +748,7 @@
CERTMANUILOGGER_LEAVEFN( "- PopupTrustChangeSettingPageL - read-only" );
return;
}
-
+
TUid id = KCertManUINullId;
TInt poppableItems = 0;
--- a/pkiutilities/CertmanUi/SRC/CertmanuicontainerTrustedSite.cpp Tue Aug 31 16:04:40 2010 +0300
+++ b/pkiutilities/CertmanUi/SRC/CertmanuicontainerTrustedSite.cpp Wed Sep 01 12:19:59 2010 +0100
@@ -1,5 +1,5 @@
/*
-* Copyright (c) 2003-2009 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"
@@ -78,12 +78,7 @@
CreateWindowL();
CreateListBoxL();
UpdateListBoxL( aCurrentPosition, aTopItem );
- if ( iListBox )
- {
- // Creates graphic.
- iListBox->ItemDrawer()->ColumnData()->
- SetIconArray( iIconHandler->CreateIconArrayL() );
- }
+ iListBox->ItemDrawer()->ColumnData()->SetIconArray( iIconHandler->CreateIconArrayL() );
SetRect( aRect );
CERTMANUILOGGER_LEAVEFN( " CCertManUIContainerTrustedSite::ConstructL" );
--- a/pkiutilities/CertmanUi/SRC/Certmanuidialogs.cpp Tue Aug 31 16:04:40 2010 +0300
+++ b/pkiutilities/CertmanUi/SRC/Certmanuidialogs.cpp Wed Sep 01 12:19:59 2010 +0100
@@ -59,7 +59,8 @@
if( !iDialog )
{
- iDialog = new( ELeave ) CAknWaitDialog( reinterpret_cast< CEikDialog** >( &iDialog ) );
+ iDialog = new( ELeave ) CAknWaitDialog(
+ reinterpret_cast< CEikDialog** >( &iDialog ), ETrue );
TInt dialog = 0;
switch( aDialogSelector )
--- a/pkiutilities/CertmanUi/SRC/CertmanuiviewAuthority.cpp Tue Aug 31 16:04:40 2010 +0300
+++ b/pkiutilities/CertmanUi/SRC/CertmanuiviewAuthority.cpp Wed Sep 01 12:19:59 2010 +0100
@@ -1,5 +1,5 @@
/*
-* Copyright (c) 2003-2009 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"
@@ -364,6 +364,7 @@
}
CleanupStack::PopAndDestroy(); // buf
+ iKeeper.iCurrentCACertForTrustSettings = helpIndex3;
((CAknViewAppUi*)iAvkonAppUi)->ActivateLocalViewL(
KCertManUIViewTrustId, TUid::Uid( helpIndex3), KNullDesC8 );
break;
--- a/pkiutilities/CertmanUi/SRC/CertmanuiviewPersonal.cpp Tue Aug 31 16:04:40 2010 +0300
+++ b/pkiutilities/CertmanUi/SRC/CertmanuiviewPersonal.cpp Wed Sep 01 12:19:59 2010 +0100
@@ -1,5 +1,5 @@
/*
-* Copyright (c) 2003-2009 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"
@@ -496,11 +496,17 @@
{
CERTMANUILOGGER_ENTERFN( "CCertManUIViewPersonal::DoDeactivate" );
- iCurrentPosition = iContainerPersonal->iListBox->CurrentItemIndex();
- iTopItem = iContainerPersonal->iListBox->TopItemIndex();
- if ( iContainerPersonal )
+ if( iContainerPersonal )
{
- ((CAknViewAppUi*)iAvkonAppUi)->RemoveFromViewStack(*this, iContainerPersonal);
+ CEikColumnListBox* listBox = iContainerPersonal->iListBox;
+ if( listBox )
+ {
+ iCurrentPosition = listBox->CurrentItemIndex();
+ iTopItem = listBox->TopItemIndex();
+ }
+
+ iAvkonAppUi->RemoveFromViewStack( *this, iContainerPersonal );
+
delete iContainerPersonal;
iContainerPersonal = NULL;
}
--- a/pkiutilities/CertmanUi/SRC/CertmanuiviewTrust.cpp Tue Aug 31 16:04:40 2010 +0300
+++ b/pkiutilities/CertmanUi/SRC/CertmanuiviewTrust.cpp Wed Sep 01 12:19:59 2010 +0100
@@ -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"
@@ -302,6 +302,7 @@
}
RemoveNaviPane();
+ iKeeper.iCurrentCACertForTrustSettings = KErrNotFound;
CERTMANUILOGGER_LEAVEFN( " CCertManUIViewTrust::DoDeactivate" );
}
--- a/pkiutilities/CertmanUi/data/certmanui.rss Tue Aug 31 16:04:40 2010 +0300
+++ b/pkiutilities/CertmanUi/data/certmanui.rss Wed Sep 01 12:19:59 2010 +0100
@@ -1,5 +1,5 @@
/*
-* Copyright (c) 2003-2009 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"
@@ -1120,6 +1120,10 @@
{
buf = qtn_cm_algorithm_sha1;
}
+RESOURCE TBUF r_text_resource_details_view_algorithm_SHA2
+ {
+ buf = qtn_cm_algorithm_sha2;
+ }
//----------------------------------------------------
//
@@ -1334,6 +1338,10 @@
LBUF
{//VPN
txt = " \t"qtn_cm_lipri_vpn"\t\t";
+ },
+ LBUF
+ {//Widget installer
+ txt = " \t"qtn_cm_lipri_widget_installing"\t\t";
}
};
}
--- a/pkiutilities/CertmanUi/loc/certmanui.loc Tue Aug 31 16:04:40 2010 +0300
+++ b/pkiutilities/CertmanUi/loc/certmanui.loc Wed Sep 01 12:19:59 2010 +0100
@@ -1,5 +1,5 @@
/*
-* Copyright (c) 2002-2006 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2002-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"
@@ -109,6 +109,10 @@
//l:popup_info_list_pane_t1
#define qtn_cm_algorithm_sha1 "SHA1"
+//d:Certificate details algorithm name
+//l:popup_info_list_pane_t1
+#define qtn_cm_algorithm_sha2 "SHA2"
+
//d:Certificate details algorithm unknown
//l:popup_info_list_pane_t1
#define qtn_cm_algorithm_unknown "Unknown"
@@ -233,6 +237,12 @@
//l:list_single_graphic_pane_t1_cp2
#define qtn_cm_lipri_native_installing "Native installing"
+//d:Certificate trust settings widget installing.
+//d:With this user can decide if certificate is trusted for
+//d:installing widgets.
+//l:list_single_graphic_pane_t1_cp2
+#define qtn_cm_lipri_widget_installing "Widget installing"
+
//d:Certificate trust settings for OCSP validation.
//d:With this user can decide if certificate is trusted to
//d:validate ocsp response (i.e. SOS applications).
--- a/pkiutilities/PKCS12/CrPkcs12/group/crpkcs12.mmp Tue Aug 31 16:04:40 2010 +0300
+++ b/pkiutilities/PKCS12/CrPkcs12/group/crpkcs12.mmp Wed Sep 01 12:19:59 2010 +0100
@@ -42,7 +42,7 @@
CAPABILITY CAP_GENERAL_DLL
VENDORID VID_DEFAULT
-#if defined( EABI )
+#if defined(ARMCC)
deffile ../eabi/
#else
deffile ../bwinscw/
--- a/pkiutilities/SecModUI/src/SecModUIViewAccess.cpp Tue Aug 31 16:04:40 2010 +0300
+++ b/pkiutilities/SecModUI/src/SecModUIViewAccess.cpp Wed Sep 01 12:19:59 2010 +0100
@@ -1,5 +1,5 @@
/*
-* Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
+* 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"
@@ -349,9 +349,9 @@
{
if( R_SECMODUI_VIEW_ACCESS_MENU == aResourceId )
{
- if( aResourceId == !FeatureManager::FeatureSupported( KFeatureIdHelp ) )
+ if( !FeatureManager::FeatureSupported( KFeatureIdHelp ) )
{
- aMenuPane->DeleteMenuItem( EAknCmdHelp ); //remove help
+ aMenuPane->DeleteMenuItem( EAknCmdHelp );
}
TInt currentItem = iContainer->ListBox().CurrentItemIndex();
--- a/pkiutilities/SecModUI/src/SecModUIViewSignature.cpp Tue Aug 31 16:04:40 2010 +0300
+++ b/pkiutilities/SecModUI/src/SecModUIViewSignature.cpp Wed Sep 01 12:19:59 2010 +0100
@@ -1,5 +1,5 @@
/*
-* Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
+* 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"
@@ -172,9 +172,9 @@
{
case R_SECMODUI_VIEW_SIGNATURE_MENU:
{
- if( aResourceId == !FeatureManager::FeatureSupported( KFeatureIdHelp ) )
+ if( !FeatureManager::FeatureSupported( KFeatureIdHelp ) )
{
- aMenuPane->DeleteMenuItem( EAknCmdHelp ); //remove help
+ aMenuPane->DeleteMenuItem( EAknCmdHelp );
}
// The security module list is empty.
// All except Exit and Help is dimmed.
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/pkiutilities/StubSIS/swipolicy.ini Wed Sep 01 12:19:59 2010 +0100
@@ -0,0 +1,20 @@
+AllowUnsigned = false
+MandatePolicies = false
+MandateCodeSigningExtension = false
+Oid = 1.2.3.4.5.6
+Oid = 2.3.4.5.6.7
+DRMEnabled = true
+DRMIntent = 3
+OcspMandatory = false
+OcspEnabled = true
+AllowGrantUserCapabilities = true
+AllowOrphanedOverwrite = true
+UserCapabilities = NetworkServices LocalServices ReadUserData WriteUserData UserEnvironment Location
+AllowPackagePropagate = true
+SISCompatibleIfNoTargetDevices = false
+RunWaitTimeoutSeconds = 600
+AllowRunOnInstallUninstall = false
+DeletePreinstalledFilesOnUninstall = true
+AlternativeCodeSigningOID = 1.3.6.1.4.1.94.1.49.1.2.2.1 1.3.6.1.4.1.94.1.49.1.2.2.5
+RemoveOnlyWithLastDependent = true
+PhoneTsyName = phonetsy
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/pkiutilities/StubSIS/tlsproviderpolicy.ini Wed Sep 01 12:19:59 2010 +0100
@@ -0,0 +1,2 @@
+ClientAuthDlgEnabled = true
+
--- a/pkiutilities/group/bld.inf Tue Aug 31 16:04:40 2010 +0300
+++ b/pkiutilities/group/bld.inf Wed Sep 01 12:19:59 2010 +0100
@@ -1,5 +1,5 @@
/*
-* Copyright (c) 2005-2010 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
* All rights reserved.
* This component and the accompanying materials are made available
* under the terms of "Eclipse Public License v1.0"
@@ -18,22 +18,36 @@
#include "../x509certnameparser/group/bld.inf"
#include "../PKCS12/group/bld.inf"
+#include "../CertmanUi/GROUP/bld.inf"
+#include "../CTSecurityDialogs/Group/bld.inf"
#include "../CertSaver/group/bld.inf"
+#include "../SecModUI/group/bld.inf"
#include "../DeviceToken/Group/bld.inf"
-#include "../securitydialognotifier/group/bld.inf"
-#include "../securitydialognotifiersrv/group/bld.inf"
//Stub SIS
PRJ_EXPORTS
../StubSIS/CenRepStub.sis /epoc32/data/z/system/install/CenRepStub.sis
+//SWI and TLSProvider config files
+../StubSIS/swipolicy.ini /epoc32/release/winscw/udeb/z/system/data/swipolicy.ini
+../StubSIS/swipolicy.ini /epoc32/release/winscw/urel/z/system/data/swipolicy.ini
+../StubSIS/swipolicy.ini /epoc32/data/z/system/data/swipolicy.ini
+
+../StubSIS/tlsproviderpolicy.ini /epoc32/release/winscw/urel/z/resource/tlsproviderpolicy.ini
+../StubSIS/tlsproviderpolicy.ini /epoc32/release/winscw/udeb/z/resource/tlsproviderpolicy.ini
+
// export iby files
../rom/x509certnameparser.iby CORE_MW_LAYER_IBY_EXPORT_PATH( x509certnameparser.iby )
../rom/pkcs12.iby CORE_MW_LAYER_IBY_EXPORT_PATH( pkcs12.iby )
-../rom/certmanui_resources.iby LANGUAGE_MW_LAYER_IBY_EXPORT_PATH( certmanui_resources.iby ) // needed by CTSecurityDialogs
+../rom/certmanui.iby CORE_MW_LAYER_IBY_EXPORT_PATH( certmanui.iby )
+../rom/certmanui_resources.iby LANGUAGE_MW_LAYER_IBY_EXPORT_PATH( certmanui_resources.iby )
+../rom/CTSecurityDialogs.iby CORE_MW_LAYER_IBY_EXPORT_PATH( CTSecurityDialogs.iby )
+../rom/CTSecurityDialogs_resources.iby LANGUAGE_MW_LAYER_IBY_EXPORT_PATH( CTSecurityDialogs_resources.iby )
../rom/CertSaver.iby CORE_MW_LAYER_IBY_EXPORT_PATH( CertSaver.iby )
../rom/CertSaver_resources.iby LANGUAGE_MW_LAYER_IBY_EXPORT_PATH( CertSaver_resources.iby )
+../rom/SecModUI.iby CORE_MW_LAYER_IBY_EXPORT_PATH( SecModUI.iby )
+../rom/SecModUI_resources.iby LANGUAGE_MW_LAYER_IBY_EXPORT_PATH( SecModUI_resources.iby )
../rom/DevToken.iby CORE_MW_LAYER_IBY_EXPORT_PATH( DevToken.iby )
../rom/StubSIS.iby CORE_MW_LAYER_IBY_EXPORT_PATH( StubSIS.iby )
--- a/pkiutilities/pkiutilities.pro Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,20 +0,0 @@
-#
-# Copyright (c) 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: pkiutilities project file
-#
-
-TEMPLATE = subdirs
-
-SUBDIRS += untrustedcertificatedialog/untrustedcertificateplugin.pro
-
--- a/pkiutilities/rom/CTSecurityDialogs.iby Tue Aug 31 16:04:40 2010 +0300
+++ b/pkiutilities/rom/CTSecurityDialogs.iby Wed Sep 01 12:19:59 2010 +0100
@@ -27,7 +27,7 @@
file=ABI_DIR\BUILD_DIR\CTSecDialogImpl.dll SHARED_LIB_DIR\CTSecDialogImpl.dll
-//ECOM_PLUGIN(CTSECDLGNOTIFIER.dll, 10008D4F.rsc)
+ECOM_PLUGIN(CTSECDLGNOTIFIER.dll, 10008D4F.rsc)
#endif // __CTSECURITYDIALOGS_IBY
--- a/pkiutilities/rom/StubSIS.iby Tue Aug 31 16:04:40 2010 +0300
+++ b/pkiutilities/rom/StubSIS.iby Wed Sep 01 12:19:59 2010 +0100
@@ -25,4 +25,6 @@
data=ZSYSTEM\install\CenRepStub.sis System\Install\CenRepStub.sis
+//data = EPOCROOT##epoc32\release\winscw\urel\z\system\data\swipolicy.ini System\data\swipolicy.ini
+
#endif
--- a/pkiutilities/securitydialognotifier/data/20031DB3.rss Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,46 +0,0 @@
-/*
-* Copyright (c) 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: Security dialog notifier plug-in resource file.
-*
-*/
-
-
-#include <ecom/registryinfov2.rh>
-#include <uikon.hrh>
-
-RESOURCE REGISTRY_INFO r_registry
- {
- resource_format_version = RESOURCE_FORMAT_VERSION_2;
- dll_uid = 0x20031DB3;
- interfaces =
- {
- INTERFACE_INFO
- {
- interface_uid = KUikonUidPluginInterfaceNotifiers;
- implementations =
- {
- IMPLEMENTATION_INFO
- {
- implementation_uid = 0x101F883C;
- version_no = 1;
- display_name = "SecurityDialogs Plugin";
- default_data = "SecurityDialogs";
- opaque_data = "0";
- rom_only = 1;
- }
- };
- }
- };
- }
-
--- a/pkiutilities/securitydialognotifier/group/bld.inf Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,29 +0,0 @@
-/*
-* Copyright (c) 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: Security dialog notifier
-*
-*/
-
-
-#include <platform_paths.hrh>
-
-PRJ_PLATFORMS
-DEFAULT
-
-PRJ_EXPORTS
-../rom/securitydialognotifier.iby CORE_MW_LAYER_IBY_EXPORT_PATH( securitydialognotifier.iby )
-
-PRJ_MMPFILES
-securitydialognotifier.mmp
-
--- a/pkiutilities/securitydialognotifier/group/securitydialognotifier.mmp Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,44 +0,0 @@
-/*
-* Copyright (c) 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: Security dialog notifier
-*
-*/
-
-#include <platform_paths.hrh>
-
-TARGET securitydialognotifier.dll
-CAPABILITY CAP_ECOM_PLUGIN
-TARGETTYPE PLUGIN
-UID 0x10009D8D 0x20031DB3
-VENDORID VID_DEFAULT
-
-SOURCEPATH ../data
-START RESOURCE 20031DB3.rss
-TARGET securitydialognotifier.rsc
-END
-
-MW_LAYER_SYSTEMINCLUDE /epoc32/include/mw/hb/hbcore /epoc32/include/mw/hb/hbwidgets
-USERINCLUDE ../inc
-
-SOURCEPATH ../src
-SOURCE securitydialogmain.cpp
-SOURCE securitydialognotifier.cpp
-SOURCE securitydialognotifiersrv.cpp
-SOURCE securitydialogs.cpp
-
-LIBRARY euser.lib
-LIBRARY eiksrv.lib
-LIBRARY ctframework.lib
-
-SMPSAFE
--- a/pkiutilities/securitydialognotifier/inc/securitydialognotifier.h Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,57 +0,0 @@
-/*
-* Copyright (c) 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: Security dialog notifier
-*
-*/
-
-#ifndef SECURITYDIALOGNOTIFIER_H
-#define SECURITYDIALOGNOTIFIER_H
-
-#include <eiknotapi.h> // MEikSrvNotifierManager
-
-class CSecurityDialogs;
-
-
-/**
- * Security Dialog Notifier
- * CSecurityDialogNotifier is a RNotifier that implements security dialogs
- * defined in secdlgimpldefs.h (see TSecurityDialogOperation operations).
- */
-NONSHARABLE_CLASS( CSecurityDialogNotifier ) : public CBase, public MEikSrvNotifierBase2
- {
- public: // constructors and destructor
- static CSecurityDialogNotifier* NewL();
- ~CSecurityDialogNotifier();
-
- private: // from MEikSrvNotifierBase2
- void Release();
- TNotifierInfo RegisterL();
- TNotifierInfo Info() const;
- void StartL( const TDesC8& aBuffer, TInt aReplySlot, const RMessagePtr2& aMessage );
- TPtrC8 StartL( const TDesC8& aBuffer );
- void Cancel();
- TPtrC8 UpdateL( const TDesC8& aBuffer );
-
- private: // new functions
- CSecurityDialogNotifier();
- void ConstructL();
- void DoStartL( const TDesC8& aBuffer, TInt aReplySlot, const RMessagePtr2& aMessage );
-
- private: // data
- CSecurityDialogs* iSecurityDialogs;
- TBool iIsSecurityDialogsDeleted;
- };
-
-#endif // SECURITYDIALOGNOTIFIER_H
-
--- a/pkiutilities/securitydialognotifier/inc/securitydialognotifiersrv.h Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,55 +0,0 @@
-/*
-* Copyright (c) 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: Security dialog notifier server, client-side API.
-*
-*/
-
-#ifndef SECURITYDIALOGNOTIFIERSRV_H
-#define SECURITYDIALOGNOTIFIERSRV_H
-
-#include <e32std.h> // RSessionBase
-#include <secdlgimpldefs.h> // TSecurityDialogOperation
-
-
-/**
- * Security Dialog Notifier Server API
- * Security dialogs provide TSecurityDialogOperation functionality defined in secdlgimpldefs.h.
- * Implementation consist of two components: a notifier DLL (CSecurityDialogNotifier, ECom DLL)
- * and a server executable (CSecurityDialogNotifierSrv). CSecurityDialogNotifier runs in UIKON
- * server that has limited capabilities. It passes the requests to the server component
- * (CSecurityDialogNotifierSrv) that provides the actual functionality.
- */
-NONSHARABLE_CLASS( RSecurityDialogNotifierSrv ) : public RSessionBase
- {
- public: // constructors and destructor
- RSecurityDialogNotifierSrv();
- ~RSecurityDialogNotifierSrv();
-
- public: // new functions
- TInt Connect();
- TVersion Version() const;
- void SecurityDialogOperation( TSecurityDialogOperation aOperation,
- const TDesC8& aInputBuffer, TDes8& aOutputBuffer,
- TRequestStatus& aStatus );
- void CancelOperation();
-
- private: // new functions
- TInt StartServer();
-
- private: // data
- TIpcArgs iArgs;
- };
-
-#endif // SECURITYDIALOGNOTIFIERSRV_H
-
--- a/pkiutilities/securitydialognotifier/inc/securitydialogs.h Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,72 +0,0 @@
-/*
-* Copyright (c) 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: CSecurityDialogs active object
-*
-*/
-
-#ifndef SECURITYDIALOGS_H
-#define SECURITYDIALOGS_H
-
-#include <e32base.h> // CActive
-#include <secdlgimpldefs.h> // TSecurityDialogOperation
-#include "securitydialognotifiersrv.h" // RSecurityDialogNotifierSrv
-
-
-/**
- * Security Dialogs
- * CSecurityDialogs class provides implementation for the security dialog
- * operations (TSecurityDialogOperation) defined in secdlgimpldefs.h.
- * When RNotifier class is used to open security dialogs, CSecurityDialogNotifier
- * class calls CSecurityDialogs to show the requested dialogs. CSecurityDialogs
- * uses RSecurityDialogNotifierSrv server to do the actual work.
- */
-NONSHARABLE_CLASS( CSecurityDialogs ) : public CActive
- {
- public: // constructors and destructor
- static CSecurityDialogs* NewL( TBool& aIsDeleted );
- ~CSecurityDialogs();
-
- public: // new functions
- /**
- * Starts handling the requested operation.
- * @param aBuffer - Data passed from client RNotifier::StartNotifierAndGetResponse() call
- * @param aReplySlot - Identifies which message argument to use for the reply
- * @param aMessage - Encapsulates the client request
- */
- void StartLD( const TDesC8& aBuffer, TInt aReplySlot, const RMessagePtr2& aMessage );
-
- protected: // from CActive
- void RunL();
- void DoCancel();
- TInt RunError( TInt aError );
-
- private: // new functions
- CSecurityDialogs( TBool& aIsDeleted );
-
- private: // data
- TBool& iIsDeleted;
-
- TInt iRetry;
- TInt iReplySlot;
- RMessagePtr2 iMessagePtr;
- TSecurityDialogOperation iOperation;
-
- RSecurityDialogNotifierSrv iServer;
- HBufC8* iInputBuffer;
- TAny* iOutputBuffer;
- TPtr8 iOutputPtr;
- };
-
-#endif // SECURITYDIALOGS_H
-
--- a/pkiutilities/securitydialognotifier/inc/securitydialogstrace.h Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,50 +0,0 @@
-/*
-* Copyright (c) 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: TRACE macros for security dialogs
-*
-*/
-
-#ifndef SECURITYDIALOGSTRACE_H
-#define SECURITYDIALOGSTRACE_H
-
-#include <e32debug.h> // RDebug
-
-
-// TODO: replace with OST tracing
-#ifdef _DEBUG
-#define TRACE( a, ARGS... ) DebugPrint( _L( a ), ##ARGS )
-#else
-#define TRACE( a, ARGS... )
-#endif
-
-
-// ---------------------------------------------------------------------------
-// DebugPrint()
-// ---------------------------------------------------------------------------
-//
-#ifdef _DEBUG
-const TInt KMaxPrintSize = 256;
-inline void DebugPrint( TRefByValue<const TDesC> aFmt, ... )
- {
- VA_LIST list;
- VA_START( list, aFmt );
- TBuf<KMaxPrintSize> buf;
- buf.AppendFormatList( aFmt, list );
- RDebug::Print( buf );
- }
-#endif
-
-
-#endif // SECURITYDIALOGSTRACE_H
-
--- a/pkiutilities/securitydialognotifier/rom/securitydialognotifier.iby Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,25 +0,0 @@
-/*
-* Copyright (c) 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: Security dialog notifier
-*
-*/
-
-#ifndef SECURITYDIALOGNOTIFIER_IBY
-#define SECURITYDIALOGNOTIFIER_IBY
-#include <bldvariant.hrh>
-
-ECOM_PLUGIN( securitydialognotifier.dll, securitydialognotifier.rsc )
-
-#endif // SECURITYDIALOGNOTIFIER_IBY
-
--- a/pkiutilities/securitydialognotifier/src/securitydialogmain.cpp Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,80 +0,0 @@
-/*
-* Copyright (c) 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: Security Dialog notifier entry point
-*
-*/
-
-#include "securitydialognotifier.h" // CSecurityDialogNotifier
-#include <ecom/implementationproxy.h> // TImplementationProxy definition
-
-const TInt KNumberOfImplementations = 1;
-
-
-// ----------------------------------------------------------------------------
-// CreateNotifiersL()
-// ----------------------------------------------------------------------------
-//
-void CreateNotifiersL( CArrayPtr<MEikSrvNotifierBase2>& aNotifierArray )
- {
- CSecurityDialogNotifier* notifier = CSecurityDialogNotifier::NewL();
- CleanupStack::PushL( notifier );
- aNotifierArray.AppendL( notifier );
- CleanupStack::Pop( notifier );
- }
-
-// ----------------------------------------------------------------------------
-// NotifierArray()
-// ----------------------------------------------------------------------------
-//
-CArrayPtr<MEikSrvNotifierBase2>* NotifierArray()
- {
- CArrayPtr<MEikSrvNotifierBase2>* notifierArray =
- new CArrayPtrFlat<MEikSrvNotifierBase2>( KNumberOfImplementations );
- if( notifierArray )
- {
- TRAPD( err, CreateNotifiersL( *notifierArray ) );
- if( err )
- {
- TInt count = notifierArray->Count();
- while( count-- )
- {
- (*notifierArray)[ count ]->Release();
- }
- delete notifierArray;
- notifierArray = NULL;
- }
- }
- return notifierArray;
- }
-
-// ----------------------------------------------------------------------------
-// Provides a key value pair table, that ECOM uses to identify
-// the correct construction function for the requested interface.
-// ----------------------------------------------------------------------------
-//
-const TImplementationProxy ImplementationTable[] =
- {
- // UID is the implementation uid defined in .rss file
- IMPLEMENTATION_PROXY_ENTRY( 0x101F883C, NotifierArray )
- };
-
-// ----------------------------------------------------------------------------
-// Main entry function used to return an instance of the proxy table.
-// ----------------------------------------------------------------------------
-//
-EXPORT_C const TImplementationProxy* ImplementationGroupProxy( TInt& aTableCount )
- {
- aTableCount = sizeof( ImplementationTable ) / sizeof( TImplementationProxy );
- return ImplementationTable;
- }
--- a/pkiutilities/securitydialognotifier/src/securitydialognotifier.cpp Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,169 +0,0 @@
-/*
-* Copyright (c) 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: Security dialog notifier
-*
-*/
-
-#include "securitydialognotifier.h" // CSecurityDialogNotifier
-#include "securitydialogs.h" // CSecurityDialogs
-#include "securitydialogstrace.h" // TRACE macro
-
-
-// ======== MEMBER FUNCTIONS ========
-
-// ---------------------------------------------------------------------------
-// CSecurityDialogNotifier::~CSecurityDialogNotifier()
-// ---------------------------------------------------------------------------
-//
-CSecurityDialogNotifier::~CSecurityDialogNotifier()
- {
- TRACE( "CSecurityDialogNotifier::~CSecurityDialogNotifier" );
- Cancel();
- }
-
-// ---------------------------------------------------------------------------
-// CSecurityDialogNotifier::NewL()
-// ---------------------------------------------------------------------------
-//
-CSecurityDialogNotifier* CSecurityDialogNotifier::NewL()
- {
- CSecurityDialogNotifier* self = new( ELeave ) CSecurityDialogNotifier;
- CleanupStack::PushL( self );
- self->ConstructL();
- CleanupStack::Pop( self );
- return self;
- }
-
-// ---------------------------------------------------------------------------
-// CSecurityDialogNotifier::Release()
-// ---------------------------------------------------------------------------
-//
-void CSecurityDialogNotifier::Release()
- {
- TRACE( "CSecurityDialogNotifier::Release" );
- delete this;
- }
-
-// ---------------------------------------------------------------------------
-// CSecurityDialogNotifier::RegisterL()
-// ---------------------------------------------------------------------------
-//
-CSecurityDialogNotifier::TNotifierInfo CSecurityDialogNotifier::RegisterL()
- {
- return Info();
- }
-
-// ---------------------------------------------------------------------------
-// CSecurityDialogNotifier::Info()
-// ---------------------------------------------------------------------------
-//
-CSecurityDialogNotifier::TNotifierInfo CSecurityDialogNotifier::Info() const
- {
- TNotifierInfo info;
- info.iUid = KUidSecurityDialogNotifier;
- info.iChannel = KUidSecurityDialogNotifier;
- info.iPriority = ENotifierPriorityAbsolute;
- return info;
- }
-
-// ---------------------------------------------------------------------------
-// CSecurityDialogNotifier::StartL()
-// ---------------------------------------------------------------------------
-//
-void CSecurityDialogNotifier::StartL( const TDesC8& aBuffer, TInt aReplySlot,
- const RMessagePtr2& aMessage )
- {
- TRACE( "CSecurityDialogNotifier::StartL, begin" );
-
- TRAPD( err, DoStartL( aBuffer, aReplySlot, aMessage ) );
- TRACE( "CSecurityDialogNotifier::StartL, DoStartL err=%d", err );
- if( err )
- {
- if( iSecurityDialogs && !iIsSecurityDialogsDeleted )
- {
- TRACE( "CSecurityDialogNotifier::StartL, deleting iSecurityDialogs" );
- delete iSecurityDialogs;
- iSecurityDialogs = NULL;
- }
- if( !aMessage.IsNull() )
- {
- TRACE( "CSecurityDialogNotifier::StartL, completing message" );
- aMessage.Complete( err );
- }
- }
-
- TRACE( "CSecurityDialogNotifier::StartL, end" );
- }
-
-// ---------------------------------------------------------------------------
-// CSecurityDialogNotifier::StartL()
-// ---------------------------------------------------------------------------
-//
-TPtrC8 CSecurityDialogNotifier::StartL( const TDesC8& /*aBuffer*/ )
- {
- return KNullDesC8();
- }
-
-// ---------------------------------------------------------------------------
-// CSecurityDialogNotifier::Cancel()
-// ---------------------------------------------------------------------------
-//
-void CSecurityDialogNotifier::Cancel()
- {
- TRACE( "CSecurityDialogNotifier::Cancel" );
- if( iSecurityDialogs && !iIsSecurityDialogsDeleted )
- {
- TRACE( "CSecurityDialogNotifier::Cancel, deleting iSecurityDialogs" );
- delete iSecurityDialogs;
- iSecurityDialogs = NULL;
- }
- }
-
-// ---------------------------------------------------------------------------
-// CSecurityDialogNotifier::UpdateL()
-// ---------------------------------------------------------------------------
-//
-TPtrC8 CSecurityDialogNotifier::UpdateL( const TDesC8& /*aBuffer*/ )
- {
- return KNullDesC8();
- }
-
-// ---------------------------------------------------------------------------
-// CSecurityDialogNotifier::CSecurityDialogNotifier()
-// ---------------------------------------------------------------------------
-//
-CSecurityDialogNotifier::CSecurityDialogNotifier()
- {
- TRACE( "CSecurityDialogNotifier::CSecurityDialogNotifier" );
- }
-
-// ---------------------------------------------------------------------------
-// CSecurityDialogNotifier::ConstructL()
-// ---------------------------------------------------------------------------
-//
-void CSecurityDialogNotifier::ConstructL()
- {
- }
-
-// ---------------------------------------------------------------------------
-// CSecurityDialogNotifier::DoStartL()
-// ---------------------------------------------------------------------------
-//
-void CSecurityDialogNotifier::DoStartL( const TDesC8& aBuffer, TInt aReplySlot,
- const RMessagePtr2& aMessage )
- {
- iSecurityDialogs = CSecurityDialogs::NewL( iIsSecurityDialogsDeleted );
- iSecurityDialogs->StartLD( aBuffer, aReplySlot, aMessage );
- }
-
--- a/pkiutilities/securitydialognotifier/src/securitydialognotifiersrv.cpp Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,148 +0,0 @@
-/*
-* Copyright (c) 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: Security dialog notifier server, client-side API.
-*
-*/
-
-#include "securitydialognotifiersrv.h" // RSecurityDialogNotifierSrv
-#include "../../securitydialognotifiersrv/inc/securitydialognotifierservername.h"
-#include "securitydialogstrace.h" // TRACE macro
-
-
-// ======== MEMBER FUNCTIONS ========
-
-// ---------------------------------------------------------------------------
-// RSecurityDialogNotifierSrv::RSecurityDialogNotifierSrv()
-// ---------------------------------------------------------------------------
-//
-RSecurityDialogNotifierSrv::RSecurityDialogNotifierSrv()
- {
- }
-
-// ---------------------------------------------------------------------------
-// RSecurityDialogNotifierSrv::~RSecurityDialogNotifierSrv()
-// ---------------------------------------------------------------------------
-//
-RSecurityDialogNotifierSrv::~RSecurityDialogNotifierSrv()
- {
- }
-
-// ---------------------------------------------------------------------------
-// RSecurityDialogNotifierSrv::Connect()
-// ---------------------------------------------------------------------------
-//
-TInt RSecurityDialogNotifierSrv::Connect()
- {
- TRACE( "RSecurityDialogNotifierSrv::Connect" );
- const TInt KMaxCreateSessionAttepmts = 2;
- TInt retry = KMaxCreateSessionAttepmts;
- FOREVER
- {
- TInt err = CreateSession( KSecurityDialogNotifierServerName, Version() );
- TRACE( "RSecurityDialogNotifierSrv::Connect, create session err=%d", err );
- if( err != KErrNotFound && err != KErrServerTerminated )
- {
- return err;
- }
-
- if( --retry == 0 )
- {
- return err;
- }
-
- err = StartServer();
- if( err != KErrNone && err != KErrAlreadyExists )
- {
- return err;
- }
- }
- }
-
-// ---------------------------------------------------------------------------
-// RSecurityDialogNotifierSrv::Version()
-// ---------------------------------------------------------------------------
-//
-TVersion RSecurityDialogNotifierSrv::Version() const
- {
- return TVersion( KSecurityDialogNotifierServerMajorVersionNumber,
- KSecurityDialogNotifierServerMinorVersionNumber,
- KSecurityDialogNotifierServerBuildVersionNumber );
- }
-
-// ---------------------------------------------------------------------------
-// RSecurityDialogNotifierSrv::SecurityDialogOperationL()
-// ---------------------------------------------------------------------------
-//
-void RSecurityDialogNotifierSrv::SecurityDialogOperation(
- TSecurityDialogOperation aOperation,
- const TDesC8& aInputBuffer, TDes8& aOutputBuffer,
- TRequestStatus& aStatus )
- {
- TRACE( "RSecurityDialogNotifierSrv::SecurityDialogOperation" );
- iArgs = TIpcArgs( &aInputBuffer, &aOutputBuffer );
- SendReceive( aOperation, iArgs, aStatus );
- }
-
-// ---------------------------------------------------------------------------
-// RSecurityDialogNotifierSrv::CancelOperation()
-// ---------------------------------------------------------------------------
-//
-void RSecurityDialogNotifierSrv::CancelOperation()
- {
- TRACE( "RSecurityDialogNotifierSrv::CancelOperation" );
- SendReceive( KSecurityDialogCancelOperation );
- }
-
-// ---------------------------------------------------------------------------
-// RSecurityDialogNotifierSrv::StartServer()
-// ---------------------------------------------------------------------------
-//
-TInt RSecurityDialogNotifierSrv::StartServer()
-{
- TRACE( "RSecurityDialogNotifierSrv::StartServer, begin" );
- RProcess server;
- TInt err = server.Create( KSecurityDialogNotifierServerName, KNullDesC );
- if( err )
- {
- TRACE( "RSecurityDialogNotifierSrv::StartServer, create failed, err=%d", err );
- return err;
- }
-
- TRequestStatus status;
- server.Rendezvous( status );
- if( status == KRequestPending )
- {
- server.Resume();
- }
- else
- {
- server.Kill( KErrNone );
- }
-
- TRACE( "RSecurityDialogNotifierSrv::StartServer, waiting rendezvous" );
- User::WaitForRequest( status );
- if( server.ExitType() == EExitPanic )
- {
- err = KErrGeneral;
- }
- else
- {
- err = status.Int();
- }
- server.Close();
-
- TRACE( "RSecurityDialogNotifierSrv::StartServer, end err=%d", err );
- return err;
-}
-
--- a/pkiutilities/securitydialognotifier/src/securitydialogs.cpp Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,187 +0,0 @@
-/*
-* Copyright (c) 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: CSecurityDialogs active object
-*
-*/
-
-#include "securitydialogs.h" // CSecurityDialogs
-#include "securitydialogstrace.h" // TRACE macro
-
-
-// ======== MEMBER FUNCTIONS ========
-
-// ---------------------------------------------------------------------------
-// CSecurityDialogs::NewL()
-// ---------------------------------------------------------------------------
-//
-CSecurityDialogs* CSecurityDialogs::NewL( TBool& aIsDeleted )
- {
- return new( ELeave ) CSecurityDialogs( aIsDeleted );
- }
-
-// ---------------------------------------------------------------------------
-// CSecurityDialogs::~CSecurityDialogs()
-// ---------------------------------------------------------------------------
-//
-CSecurityDialogs::~CSecurityDialogs()
- {
- TRACE( "CSecurityDialogs::~CSecurityDialogs, begin" );
- Cancel();
- iServer.Close();
- delete iInputBuffer;
- iInputBuffer = NULL;
- delete iOutputBuffer;
- iOutputBuffer = NULL;
- iIsDeleted = ETrue;
- TRACE( "CSecurityDialogs::~CSecurityDialogs, end" );
- }
-
-// ---------------------------------------------------------------------------
-// CSecurityDialogs::StartLD()
-// ---------------------------------------------------------------------------
-//
-void CSecurityDialogs::StartLD( const TDesC8& aBuffer, TInt aReplySlot,
- const RMessagePtr2& aMessage )
- {
- TRACE( "CSecurityDialogs::StartLD, begin" );
- User::LeaveIfError( iServer.Connect() );
-
- const TInt* ptr = reinterpret_cast< const TInt* >( aBuffer.Ptr() );
- iOperation = static_cast< TSecurityDialogOperation >( *ptr & KSecurityDialogOperationMask );
- iReplySlot = aReplySlot;
-
- TRACE( "CSecurityDialogs::StartLD, message 0x%08x", iMessagePtr.Handle() );
- iMessagePtr = aMessage;
-
- TRACE( "CSecurityDialogs::StartLD, iOperation=%d", iOperation );
- __ASSERT_DEBUG( iOutputBuffer == NULL, User::Invariant() );
- TInt outputBufLen = 0;
- switch( iOperation )
- {
- case ESecureConnection:
- case ESignText:
- iOutputBuffer = new( ELeave ) TCTTokenObjectHandleBuf;
- outputBufLen = sizeof( TCTTokenObjectHandleBuf );
- break;
- case EEnterPIN:
- case EEnablePIN:
- case EDisablePIN:
- iOutputBuffer = new( ELeave ) TPINValueBuf;
- outputBufLen = sizeof( TPINValueBuf );
- break;
- case EChangePIN:
- case EUnblockPIN:
- iOutputBuffer = new( ELeave ) TTwoPINOutputBuf;
- outputBufLen = sizeof( TTwoPINOutputBuf );
- break;
- case EPINBlocked:
- case ETotalBlocked:
- break;
- case EUnblockPINInClear:
- iOutputBuffer = new( ELeave ) TUnblockPINInClearOutputBuf;
- outputBufLen = sizeof( TUnblockPINInClearOutputBuf );
- break;
- case EServerAuthenticationFailure:
- iOutputBuffer = new( ELeave ) TServerAuthenticationFailureOutputBuf;
- outputBufLen = sizeof( TServerAuthenticationFailureOutputBuf );
- break;
- default:
- User::Leave( KErrNotSupported );
- break;
- }
-
- __ASSERT_DEBUG( iInputBuffer == NULL, User::Invariant() );
- iInputBuffer = aBuffer.AllocL();
-
- if( iOutputBuffer )
- {
- iOutputPtr.Set( static_cast< TUint8* >( iOutputBuffer ), outputBufLen, outputBufLen );
- iServer.SecurityDialogOperation( iOperation, *iInputBuffer, iOutputPtr, iStatus );
- }
- else
- {
- User::Leave( KErrNotSupported );
- }
- SetActive();
- TRACE( "CSecurityDialogs::StartLD, end" );
- }
-
-// ---------------------------------------------------------------------------
-// CSecurityDialogs::RunL()
-// ---------------------------------------------------------------------------
-//
-void CSecurityDialogs::RunL()
- {
- TRACE( "CSecurityDialogs::RunL, iStatus.Int()=%d", iStatus.Int() );
- TInt error = iStatus.Int();
- User::LeaveIfError( error );
- __ASSERT_DEBUG( iOutputPtr.Ptr(), User::Invariant() );
- iMessagePtr.WriteL( iReplySlot, iOutputPtr );
-
- TRACE( "CSecurityDialogs::RunL, completing message 0x%08x", iMessagePtr.Handle() );
- iMessagePtr.Complete( error );
-
- TRACE( "CSecurityDialogs::RunL, deleting this" );
- delete this;
- TRACE( "CSecurityDialogs::RunL, end" );
- }
-
-// ---------------------------------------------------------------------------
-// CSecurityDialogs::DoCancel()
-// ---------------------------------------------------------------------------
-//
-void CSecurityDialogs::DoCancel()
- {
- TRACE( "CSecurityDialogs::DoCancel, begin" );
- iServer.CancelOperation();
- if( !iMessagePtr.IsNull() )
- {
- TRACE( "CSecurityDialogs::DoCancel, completing message 0x%08x", iMessagePtr.Handle() );
- iMessagePtr.Complete( KErrCancel );
- }
- TRACE( "CSecurityDialogs::DoCancel(), end" );
- }
-
-// ---------------------------------------------------------------------------
-// CSecurityDialogs::RunError()
-// ---------------------------------------------------------------------------
-//
-TInt CSecurityDialogs::RunError( TInt aError )
- {
- TRACE( "CSecurityDialogs::RunError, aError=%d", aError );
- if( !iMessagePtr.IsNull() )
- {
- TRACE( "CSecurityDialogs::RunError, completing message 0x%08x", iMessagePtr.Handle() );
- iMessagePtr.Complete( aError );
- }
-
- TRACE( "CSecurityDialogs::RunError, deleting this" );
- delete this;
-
- TRACE( "CSecurityDialogs::RunError, end" );
- return KErrNone;
- }
-
-// ---------------------------------------------------------------------------
-// CSecurityDialogs::CSecurityDialogs()
-// ---------------------------------------------------------------------------
-//
-CSecurityDialogs::CSecurityDialogs( TBool& aIsDeleted ) : CActive( CActive::EPriorityLow ),
- iIsDeleted( aIsDeleted ), iOutputPtr( NULL, 0, 0 )
- {
- TRACE( "CSecurityDialogs::CSecurityDialogs" );
- CActiveScheduler::Add( this );
- iIsDeleted = EFalse;
- }
-
--- a/pkiutilities/securitydialognotifier/tsrc/srvauthfaildlglauncher/srvauthfaildlglauncher.cpp Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,218 +0,0 @@
-/*
-* Copyright (c) 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: Test application for untrusted certificate dialog.
-*
-*/
-
-#include "srvauthfaildlglauncher.h"
-#include <HbMainWindow>
-#include <HbView>
-#include <HbLabel>
-#include <HbComboBox>
-#include <HbTextEdit>
-#include <HbCheckBox>
-#include <HbPushButton>
-#include <HbDeviceDialog>
-#include <HbMessageBox>
-#include <QDir>
-#include <QBuffer>
-#include <QGraphicsLinearLayout>
-
-
-#ifdef Q_OS_SYMBIAN
-#include <securitydefs.h> // TValidationError
-#include <secdlgimpldefs.h> // TServerAuthenticationFailureInput, KUidSecurityDialogNotifier
-
-HBufC8* GetInputBufferL( const QString& server, const QByteArray& certificate, int reason )
- {
- const TPtrC16 serverNameUnicode(reinterpret_cast<const TText*>(server.constData()),
- server.length());
- const TPtrC8 encodedCert(reinterpret_cast<const TText8*>(certificate.constData()),
- certificate.length());
-
- const TInt KServerNameMaxLength = 512;
- TBuf8<KServerNameMaxLength> serverName;
- serverName.Copy(serverNameUnicode);
-
- TServerAuthenticationFailureInput serverAuthenticationInput;
- serverAuthenticationInput.iOperation = EServerAuthenticationFailure;
- serverAuthenticationInput.iFailureReason = static_cast<TValidationError>(reason);
- serverAuthenticationInput.iServerNameLength = serverName.Length();
- serverAuthenticationInput.iEncodedCertLength = encodedCert.Length();
-
- TServerAuthenticationFailureInputBuf inputBuf( serverAuthenticationInput );
-
- TInt bufferSize = sizeof( inputBuf ) + serverName.Length() + encodedCert.Length();
- HBufC8* packedBuffer = HBufC8::NewL( bufferSize );
- TPtr8 packedBufferPtr( packedBuffer->Des() );
-
- packedBufferPtr.Append( inputBuf );
- packedBufferPtr.Append( serverName );
- packedBufferPtr.Append( encodedCert );
-
- return packedBuffer;
- }
-
-bool ShowDialogL( const QString& server, const QByteArray& certificate, int reason, bool cancel )
- {
- RNotifier notifier;
- User::LeaveIfError( notifier.Connect() );
- CleanupClosePushL( notifier );
-
- HBufC8* buffer = GetInputBufferL( server, certificate, reason );
- CleanupStack::PushL( buffer );
-
- TRequestStatus status;
- TPckgBuf<TServerAuthenticationFailureDialogResult> resultPckg;
- notifier.StartNotifierAndGetResponse( status, KUidSecurityDialogNotifier,
- *buffer, resultPckg );
- if( cancel )
- {
- const TInt KTenSecDelay = 10000000;
- User::After( KTenSecDelay );
- notifier.CancelNotifier( KUidSecurityDialogNotifier );
- }
- User::WaitForRequest( status );
- User::LeaveIfError( status.Int() );
-
- CleanupStack::PopAndDestroy( buffer );
- CleanupStack::PopAndDestroy( ¬ifier );
- return( resultPckg() == EContinue );
- }
-
-#endif // Q_OS_SYMBIAN
-
-
-const QString KTestCertDir = "c:/data/testCerts";
-
-SrvAuthFailDlgLauncher::SrvAuthFailDlgLauncher(int& argc, char* argv[])
- : HbApplication(argc, argv), mMainWindow(0), mMainView(0)
-{
- mMainWindow = new HbMainWindow();
- mMainView = new HbView();
- mMainView->setTitle(tr("SrvAuthFailDlgLauncher"));
-
- QGraphicsLinearLayout *layout = new QGraphicsLinearLayout(Qt::Vertical);
-
- layout->addItem(new HbLabel(tr("Server host name:")));
- mHostName = new HbTextEdit(tr("some.host.com"));
- layout->addItem(mHostName);
- layout->addStretch();
-
- layout->addItem(new HbLabel(tr("Certificate file:")));
- mFilesList = new HbComboBox;
- mFilesList->setEditable(false);
- QDir dir(KTestCertDir);
- if (dir.exists()) {
- QFileInfoList list = dir.entryInfoList(QDir::Files);
- QListIterator<QFileInfo> iter(list);
- while (iter.hasNext()) {
- const QFileInfo &info(iter.next());
- mFilesList->addItem(info.fileName());
- }
- }
- layout->addItem(mFilesList);
- layout->addStretch();
-
- layout->addItem(new HbLabel(tr("Validation result:")));
- mValidationResult = new HbComboBox;
- QStringList validationResults;
- validationResults
- << "EValidatedOK"
- << "EChainHasNoRoot"
- << "ESignatureInvalid"
- << "EDateOutOfRange"
- << "ENameIsExcluded"
- << "ENameNotPermitted"
- << "ENotCACert"
- << "ECertificateRevoked"
- << "EUnrecognizedCriticalExtension"
- << "ENoBasicConstraintInCACert"
- << "ENoAcceptablePolicy"
- << "EPathTooLong"
- << "ENegativePathLengthSpecified"
- << "ENamesDontChain"
- << "ERequiredPolicyNotFound"
- << "EBadKeyUsage"
- << "ERootCertNotSelfSigned"
- << "ECriticalExtendedKeyUsage"
- << "ECriticalCertPoliciesWithQualifiers"
- << "ECriticalPolicyMapping"
- << "ECriticalDeviceId"
- << "ECriticalSid"
- << "ECriticalVid"
- << "ECriticalCapabilities";
- mValidationResult->addItems(validationResults);
- mValidationResult->setCurrentIndex(1); // EChainHasNoRoot
- layout->addItem(mValidationResult);
- layout->addStretch();
-
- mCancelShortly = new HbCheckBox("Cancel after 10 seconds");
- layout->addItem(mCancelShortly);
-
- HbPushButton *button = 0;
- button = new HbPushButton("Launch dialog");
- connect(button, SIGNAL(clicked()), this, SLOT(activateDialog()));
- layout->addItem(button);
-
- button = new HbPushButton("Exit");
- connect(button, SIGNAL(clicked()), qApp, SLOT(quit()));
- layout->addItem(button);
-
- mMainView->setLayout(layout);
- mMainWindow->addView(mMainView);
- mMainWindow->show();
-}
-
-SrvAuthFailDlgLauncher::~SrvAuthFailDlgLauncher()
-{
- delete mMainView;
- delete mMainWindow;
-}
-
-void SrvAuthFailDlgLauncher::activateDialog()
-{
- QString server = mHostName->toPlainText();
-
- QString fileName = mFilesList->currentText();
- QFile file;
- QDir::setCurrent(KTestCertDir);
- file.setFileName(fileName);
- file.open(QIODevice::ReadOnly);
- QByteArray fileContent = file.readAll();
- file.close();
-
- int reason = mValidationResult->currentIndex();
- bool cancel = mCancelShortly->isChecked();
-
- int error = 0;
- bool accepted = false;
-#ifdef Q_OS_SYMBIAN
- TRAP( error, accepted = ShowDialogL(server, fileContent, reason, cancel) );
-#endif // Q_OS_SYMBIAN
- if (!error) {
- if (accepted) {
- HbMessageBox::information(QString("Accepted"));
- } else {
- HbMessageBox::information(QString("Declined"));
- }
- } else {
- if (error == KErrCancel) {
- HbMessageBox::information(QString("Cancelled"));
- } else {
- HbMessageBox::information(QString("Failed, error %1").arg(error));
- }
- }
-}
-
--- a/pkiutilities/securitydialognotifier/tsrc/srvauthfaildlglauncher/srvauthfaildlglauncher.h Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,51 +0,0 @@
-/*
-* Copyright (c) 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: Test application for untrusted certificate dialog.
-*
-*/
-
-#ifndef SRVAUTHFAILDLGLAUNCHER_H
-#define SRVAUTHFAILDLGLAUNCHER_H
-
-#include <hbapplication.h>
-
-class HbMainWindow;
-class HbView;
-class HbComboBox;
-class HbTextEdit;
-class HbCheckBox;
-
-
-class SrvAuthFailDlgLauncher : public HbApplication
-{
- Q_OBJECT
-
-public: // constructor and destructor
- SrvAuthFailDlgLauncher(int& argc, char* argv[]);
- ~SrvAuthFailDlgLauncher();
-
-private slots: // new functions
- void activateDialog();
-
-private: // data
- HbMainWindow *mMainWindow;
- HbView *mMainView;
- HbComboBox *mFilesList;
- HbTextEdit *mHostName;
- HbComboBox *mValidationResult;
- HbCheckBox *mCancelShortly;
-};
-
-#endif // SRVAUTHFAILDLGLAUNCHER_H
-
--- a/pkiutilities/securitydialognotifier/tsrc/srvauthfaildlglauncher/srvauthfaildlglauncher.iby Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,26 +0,0 @@
-/*
-* Copyright (c) 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: Test application for untrusted certificate dialog.
-*
-*/
-
-
-#ifndef __SRVAUTHFAILDLGLAUNCHER_IBY__
-#define __SRVAUTHFAILDLGLAUNCHER_IBY__
-
-file=ABI_DIR/BUILD_DIR/srvauthfaildlglauncher.exe SHARED_LIB_DIR/srvauthfaildlglauncher.exe
-HB_UPGRADABLE_APP_REG_RSC( srvauthfaildlglauncher )
-S60_APP_RESOURCE( srvauthfaildlglauncher )
-
-#endif // __SRVAUTHFAILDLGLAUNCHER_IBY__
--- a/pkiutilities/securitydialognotifier/tsrc/srvauthfaildlglauncher/srvauthfaildlglauncher.pkg Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,43 +0,0 @@
-;
-; Copyright (c) 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: Test application for untrusted certificate dialog.
-;
-
-; Language
-&EN
-
-; SIS header: name, uid, version
-#{"srvauthfaildlglauncher"},(0xE9bbd80d),1,0,0
-
-; Localised Vendor name
-%{"Nokia"}
-
-; Unique Vendor name
-:"Nokia"
-
-; Manual PKG pre-rules from PRO files
-; Default dependency to Qt libraries
-(0x2001E61C), 4, 6, 3, {"Qt"}
-
-; Default HW/platform dependencies
-[0x101F7961],0,0,0,{"S60ProductID"}
-[0x102032BE],0,0,0,{"S60ProductID"}
-[0x102752AE],0,0,0,{"S60ProductID"}
-[0x1028315F],0,0,0,{"S60ProductID"}
-
-; Executable and default resource files
-"/epoc32/release/armv5/urel/srvauthfaildlglauncher.exe" - "!:\sys\bin\srvauthfaildlglauncher.exe"
-"/epoc32/data/z/resource/apps/srvauthfaildlglauncher.rsc" - "!:\resource\apps\srvauthfaildlglauncher.rsc"
-"/epoc32/data/z/private/10003a3f/import/apps/srvauthfaildlglauncher_reg.rsc" - "!:\private\10003a3f\import\apps\srvauthfaildlglauncher_reg.rsc"
-
--- a/pkiutilities/securitydialognotifier/tsrc/srvauthfaildlglauncher/srvauthfaildlglauncher.pro Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,43 +0,0 @@
-#
-# Copyright (c) 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: Test application for untrusted certificate dialog.
-#
-
-TEMPLATE = app
-TARGET = srvauthfaildlglauncher
-CONFIG += hb
-DEPENDPATH += .
-INCLUDEPATH += .
-
-HEADERS += srvauthfaildlglauncher.h
-SOURCES += srvauthfaildlglaunchermain.cpp srvauthfaildlglauncher.cpp
-
-symbian {
- TARGET.CAPABILITY = CAP_APPLICATION
-}
-
-BLD_INF_RULES.prj_exports += \
- "$${LITERAL_HASH}include <platform_paths.hrh>" \
- "srvauthfaildlglauncher.iby CORE_APP_LAYER_IBY_EXPORT_PATH(srvauthfaildlglauncher.iby)" \
- "testCerts/RootCert.cer /epoc32/winscw/c/data/testCerts/RootCert.cer" \
- "testCerts/IntermediateCert.cer /epoc32/winscw/c/data/testCerts/IntermediateCert.cer" \
- "testCerts/ServerCert1.cer /epoc32/winscw/c/data/testCerts/ServerCert1.cer" \
- "testCerts/ServerCert2_noCN.cer /epoc32/winscw/c/data/testCerts/ServerCert2_noCN.cer" \
- "testCerts/ServerCert3_exp.cer /epoc32/winscw/c/data/testCerts/ServerCert3_exp.cer" \
- "testCerts/ServerCert4_exp2.cer /epoc32/winscw/c/data/testCerts/ServerCert4_exp2.cer" \
- "testCerts/ServerCert5_alg.cer /epoc32/winscw/c/data/testCerts/ServerCert5_alg.cer" \
- "testCerts/ServerCert6_key.cer /epoc32/winscw/c/data/testCerts/ServerCert6_key.cer" \
- "testCerts/SevverCert7_ocsp.cer /epoc32/winscw/c/data/testCerts/ServerCert7_ocsp.cer" \
- "testCerts/ServerCert8_aia.cer /epoc32/winscw/c/data/testCerts/ServerCert8_aia.cer" \
- "testCerts/ServerCert9_san.cer /epoc32/winscw/c/data/testCerts/ServerCert9_san.cer"
--- a/pkiutilities/securitydialognotifier/tsrc/srvauthfaildlglauncher/srvauthfaildlglaunchermain.cpp Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,25 +0,0 @@
-/*
-* Copyright (c) 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: Test application for untrusted certificate dialog.
-*
-*/
-
-#include "srvauthfaildlglauncher.h"
-
-int main(int argc, char *argv[])
-{
- SrvAuthFailDlgLauncher app(argc, argv);
- return app.exec();
-}
-
Binary file pkiutilities/securitydialognotifier/tsrc/srvauthfaildlglauncher/testCerts/IntermediateCert.cer has changed
Binary file pkiutilities/securitydialognotifier/tsrc/srvauthfaildlglauncher/testCerts/RootCert.cer has changed
Binary file pkiutilities/securitydialognotifier/tsrc/srvauthfaildlglauncher/testCerts/ServerCert1.cer has changed
Binary file pkiutilities/securitydialognotifier/tsrc/srvauthfaildlglauncher/testCerts/ServerCert2_noCN.cer has changed
Binary file pkiutilities/securitydialognotifier/tsrc/srvauthfaildlglauncher/testCerts/ServerCert3_exp.cer has changed
Binary file pkiutilities/securitydialognotifier/tsrc/srvauthfaildlglauncher/testCerts/ServerCert4_exp2.cer has changed
Binary file pkiutilities/securitydialognotifier/tsrc/srvauthfaildlglauncher/testCerts/ServerCert5_alg.cer has changed
Binary file pkiutilities/securitydialognotifier/tsrc/srvauthfaildlglauncher/testCerts/ServerCert6_key.cer has changed
Binary file pkiutilities/securitydialognotifier/tsrc/srvauthfaildlglauncher/testCerts/ServerCert8_aia.cer has changed
Binary file pkiutilities/securitydialognotifier/tsrc/srvauthfaildlglauncher/testCerts/ServerCert9_san.cer has changed
Binary file pkiutilities/securitydialognotifier/tsrc/srvauthfaildlglauncher/testCerts/SevverCert7_ocsp.cer has changed
--- a/pkiutilities/securitydialognotifiersrv/group/bld.inf Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,29 +0,0 @@
-/*
-* Copyright (c) 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: Security dialog notifier server
-*
-*/
-
-
-#include <platform_paths.hrh>
-
-PRJ_PLATFORMS
-DEFAULT
-
-PRJ_EXPORTS
-../rom/securitydialognotifiersrv.iby CORE_MW_LAYER_IBY_EXPORT_PATH( securitydialognotifiersrv.iby )
-
-PRJ_MMPFILES
-securitydialognotifiersrv.mmp
-
--- a/pkiutilities/securitydialognotifiersrv/group/securitydialognotifiersrv.mmp Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,47 +0,0 @@
-/*
-* Copyright (c) 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: Security dialog notifier server
-*
-*/
-
-#include <platform_paths.hrh>
-
-TARGET securitydialognotifiersrv.exe
-CAPABILITY CAP_SERVER
-TARGETTYPE EXE
-UID 0x0 0x20031DCE
-VENDORID VID_DEFAULT
-
-MW_LAYER_SYSTEMINCLUDE /epoc32/include/mw/hb/hbcore /epoc32/include/mw/hb/hbwidgets
-USERINCLUDE ../inc
-
-SOURCEPATH ../src
-SOURCE securitydialognotifierservermain.cpp
-SOURCE securitydialognotifierserver.cpp
-SOURCE securitydialognotifiersession.cpp
-SOURCE securitydialogoperation.cpp
-SOURCE securitydialogoperserverauthfail.cpp
-SOURCE untrustedcertquery.cpp
-
-LIBRARY euser.lib // Base classes
-LIBRARY efsrv.lib // RFs
-LIBRARY ctframework.lib // CServerAuthenticationFailureInput
-LIBRARY x509.lib // CX509Certificate
-LIBRARY x500.lib // CX500DistinguishedName
-LIBRARY crypto.lib // CSignedObject
-LIBRARY certstore.lib // CUnifiedCertStore
-LIBRARY DevTokenClient.lib // CTrustSitesStore
-LIBRARY HbCore.lib // CHbDeviceDialog
-
-SMPSAFE
--- a/pkiutilities/securitydialognotifiersrv/inc/securitydialognotifierserver.h Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,51 +0,0 @@
-/*
-* Copyright (c) 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: Security dialog notifier server
-*
-*/
-
-#ifndef SECURITYDIALOGNOTIFIERSERVER_H
-#define SECURITYDIALOGNOTIFIERSERVER_H
-
-#include <e32base.h> // CPolicyServer
-
-
-/**
- * CSecurityDialogNotifierServer is the work-horse for TSecurityDialogOperation
- * operations defined for security dialogs in secdlgimpldefs.h. It's client
- * is CSecurityDialogs class in securitydialognotifier component.
- */
-NONSHARABLE_CLASS( CSecurityDialogNotifierServer ) : public CPolicyServer
- {
- public: // constructor and destructor
- static CSecurityDialogNotifierServer* NewLC();
- ~CSecurityDialogNotifierServer();
-
- public: // new functions
- void AddSession();
- void RemoveSession();
-
- private: // from CServer2 (via CPolicyServer)
- CSession2* NewSessionL(const TVersion &aVersion, const RMessage2& aMessage) const;
-
- private: // new functions
- CSecurityDialogNotifierServer();
- void ConstructL();
-
- private: // data
- TInt iSessionCount;
- };
-
-#endif // SECURITYDIALOGNOTIFIERSERVER_H
-
--- a/pkiutilities/securitydialognotifiersrv/inc/securitydialognotifierservername.h Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,30 +0,0 @@
-/*
-* Copyright (c) 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: Security dialog notifier server name
-*
-*/
-
-#ifndef SECURITYDIALOGNOTIFIERSERVERNAME_H
-#define SECURITYDIALOGNOTIFIERSERVERNAME_H
-
-_LIT( KSecurityDialogNotifierServerName, "securitydialognotifiersrv" );
-const TInt KSecurityDialogNotifierServerMajorVersionNumber = 1;
-const TInt KSecurityDialogNotifierServerMinorVersionNumber = 0;
-const TInt KSecurityDialogNotifierServerBuildVersionNumber = 0;
-
-// See TSecurityDialogOperation in secdlgimpldefs.h for other function codes.
-const TInt KSecurityDialogCancelOperation = 0;
-
-#endif // SECURITYDIALOGNOTIFIERSERVERNAME_H
-
--- a/pkiutilities/securitydialognotifiersrv/inc/securitydialognotifiersession.h Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,61 +0,0 @@
-/*
-* Copyright (c) 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: Security dialog notifier server session
-*
-*/
-
-#ifndef SECURITYDIALOGNOTIFIERSESSION_H
-#define SECURITYDIALOGNOTIFIERSESSION_H
-
-#include <e32base.h> // CSession2
-#include "securitydialogoperationobserver.h" // MSecurityDialogOperationObserver
-
-class CSecurityDialogNotifierServer;
-class CSecurityDialogOperation;
-
-
-/**
- * CSecurityDialogNotifierSession is the session object in security
- * dialog notifier server (CSecurityDialogNotifierServer).
- */
-NONSHARABLE_CLASS( CSecurityDialogNotifierSession ) : public CSession2,
- public MSecurityDialogOperationObserver
- {
- public: // constructor and destructor
- static CSecurityDialogNotifierSession* NewL();
- ~CSecurityDialogNotifierSession();
-
- public: // from CSession2
- void CreateL();
- void ServiceL( const RMessage2& aMessage );
-
- public: // from MSecurityDialogOperationObserver
- void OperationComplete();
-
- private: // new functions
- CSecurityDialogNotifierSession();
- void ConstructL();
- CSecurityDialogNotifierServer& Server();
- void DispatchMessageL( const RMessage2& aMessage );
- TBool IsOperationCancelled( const RMessage2& aMessage );
- void ServerAuthenticationFailureL( const RMessage2& aMessage );
- void GetInputBufferL( const RMessage2& aMessage );
-
- private: // data
- HBufC8* iInputBuffer;
- CSecurityDialogOperation* iOperationHandler;
- };
-
-#endif // SECURITYDIALOGNOTIFIERSESSION_H
-
--- a/pkiutilities/securitydialognotifiersrv/inc/securitydialogoperation.h Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,56 +0,0 @@
-/*
-* Copyright (c) 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: Base class for CSecurityDialog operations
-*
-*/
-
-#ifndef SECURITYDIALOGOPERATION_H
-#define SECURITYDIALOGOPERATION_H
-
-#include <e32base.h> // CActive
-
-class MSecurityDialogOperationObserver;
-
-
-/**
- * CSecurityDialogOperation is a base class for different kinds of operations
- * defined for security dialogs in /epoc32/include/platform/secdlgimpldefs.h.
- * TSecurityDialogOperation lists the possible operations. A derived class
- * implements each operation separately. This base class works as common API
- * between different operation classes and the main CSecurityDialog class.
- */
-NONSHARABLE_CLASS( CSecurityDialogOperation ) : public CActive
- {
- protected: // constructor
- CSecurityDialogOperation( MSecurityDialogOperationObserver& aObserver,
- const RMessage2& aMessage, TInt aReplySlot );
-
- public: // destructor
- ~CSecurityDialogOperation();
-
- public: // new function
- virtual void StartL( const TDesC8& aBuffer ) = 0;
- virtual void CancelOperation() = 0;
-
- protected: // from CActive
- TInt RunError( TInt aError );
-
- protected: // data
- MSecurityDialogOperationObserver& iObserver;
- RMessage2 iMessage;
- const TInt iReplySlot;
- };
-
-#endif // SECURITYDIALOGOPERATION_H
-
--- a/pkiutilities/securitydialognotifiersrv/inc/securitydialogoperationobserver.h Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,34 +0,0 @@
-/*
-* Copyright (c) 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: Observer definition for CSecurityDialog operations
-*
-*/
-
-#ifndef SECURITYDIALOGOPERATIONOBSERVER_H
-#define SECURITYDIALOGOPERATIONOBSERVER_H
-
-
-/**
- * CSecurityDialogOperations inform observer when they are complete.
- * Completed operations can be deleted safely. Deleting an incomplete
- * operation cancels the ongoing request.
- */
-class MSecurityDialogOperationObserver
- {
- public:
- virtual void OperationComplete() = 0;
- };
-
-#endif // SECURITYDIALOGOPERATIONOBSERVER_H
-
--- a/pkiutilities/securitydialognotifiersrv/inc/securitydialogoperserverauthfail.h Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,99 +0,0 @@
-/*
-* Copyright (c) 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: Server authentication failure operation in security dialog
-*
-*/
-
-#ifndef SECURITYDIALOGOPERSERVERAUTHFAIL_H
-#define SECURITYDIALOGOPERSERVERAUTHFAIL_H
-
-#include "securitydialogoperation.h" // CSecurityDialogOperation
-#include <securitydefs.h> // TValidationError
-#include <ct/rmpointerarray.h> // RMPointerArray
-#include <f32file.h> // RFs
-#include <secdlgimpldefs.h> // TServerAuthenticationFailureDialogResult
-
-class MSecurityDialogOperationObserver;
-class CServerAuthenticationFailureInput;
-class CUnifiedCertStore;
-class MCTWritableCertStore;
-class CCertAttributeFilter;
-class CCTCertInfo;
-class CUntrustedCertQuery;
-
-
-/**
- * CServerAuthFailOperation is a CSecurityDialogOperation that handles
- * the EServerAuthenticationFailure operation.
- */
-NONSHARABLE_CLASS( CServerAuthFailOperation ) : public CSecurityDialogOperation
- {
- public: // constructors and destructor
- static CServerAuthFailOperation* NewL( MSecurityDialogOperationObserver& aObserver,
- const RMessage2& aMessage, TInt aReplySlot );
- ~CServerAuthFailOperation();
-
- public: // from CSecurityDialogOperation
- void StartL( const TDesC8& aBuffer );
- void CancelOperation();
-
- protected: // from CActive (via CSecurityDialogOperation)
- void RunL();
- void DoCancel();
-
- private: // new functions
- CServerAuthFailOperation( MSecurityDialogOperationObserver& aObserver,
- const RMessage2& aMessage, TInt aReplySlot );
- void InitializeUnifiedCertStoreL();
- void ProcessServerAuthorizationFailureL();
- void OpenTrustedSiteCertificateStoreL();
- TBool IsAlreadyTrustedSiteL();
- void StartFetchingTrustedSiteCertsL();
- void ShowUntrustedCertificateDialogL();
- void SaveServerCertToTrustedSiteCertStoreL();
- void SaveServerNameToTrustedSitesStoreL();
- void ReturnResultL( TServerAuthenticationFailureDialogResult aResult );
- void RetrieveFirstTrustedSiteCertL();
- void RetrieveNextTrustedSiteCertL();
- TBool IsRetrievedCertSameAsServerCertL();
-
- private: // data
- CServerAuthenticationFailureInput* iInput;
-
- TValidationError iAuthFailReason;
- TPtrC8 iEncodedServerCert;
- HBufC8* iServerCertFingerprint;
- HBufC* iServerName;
- HBufC* iCertLabel;
-
- CUntrustedCertQuery* iUntrustedCertQuery;
-
- RFs iFs;
- CUnifiedCertStore* iCertStore;
- MCTWritableCertStore* iTrustedSiteCertStore;
- CCertAttributeFilter* iCertAttributeFilter;
- RMPointerArray<CCTCertInfo> iCertInfos;
- TInt iRetrieveCertIndex;
- HBufC8* iRetrievedCertBuffer;
-
- enum {
- EInitialiseCertStore,
- EListTrustedSiteCerts,
- ERetrieveTrustedSiteCert,
- ESavingServerCert
- } iMode;
- };
-
-#endif // SECURITYDIALOGOPERSERVERAUTHFAIL_H
-
--- a/pkiutilities/securitydialognotifiersrv/inc/securitydialogstrace.h Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,50 +0,0 @@
-/*
-* Copyright (c) 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: TRACE macros for security dialogs
-*
-*/
-
-#ifndef SECURITYDIALOGSTRACE_H
-#define SECURITYDIALOGSTRACE_H
-
-#include <e32debug.h> // RDebug
-
-
-// TODO: replace with OST tracing
-#ifdef _DEBUG
-#define TRACE( a, ARGS... ) DebugPrint( _L( a ), ##ARGS )
-#else
-#define TRACE( a, ARGS... )
-#endif
-
-
-// ---------------------------------------------------------------------------
-// DebugPrint()
-// ---------------------------------------------------------------------------
-//
-#ifdef _DEBUG
-const TInt KMaxPrintSize = 256;
-inline void DebugPrint( TRefByValue<const TDesC> aFmt, ... )
- {
- VA_LIST list;
- VA_START( list, aFmt );
- TBuf<KMaxPrintSize> buf;
- buf.AppendFormatList( aFmt, list );
- RDebug::Print( buf );
- }
-#endif
-
-
-#endif // SECURITYDIALOGSTRACE_H
-
--- a/pkiutilities/securitydialognotifiersrv/inc/untrustedcertquery.h Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,78 +0,0 @@
-/*
-* Copyright (c) 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: Displays untrusted certificate dialog
-*
-*/
-
-#ifndef C_UNTRUSTEDCERTQUERY_H
-#define C_UNTRUSTEDCERTQUERY_H
-
-#include <e32base.h> // CActive
-#include <hb/hbcore/hbdevicedialogsymbian.h> // MHbDeviceDialogObserver
-#include <securitydefs.h> // TValidationError
-
-class CHbDeviceDialogSymbian;
-class CHbSymbianVariantMap;
-
-
-/**
-* Displays untrusted certificate query.
-* Untrusted certificate query dialog is displayed for secure connection
-* (SSL/TLS) server authentication failure errors. CCTUntrustedCertQuery
-* class uses UntrustedCertificateDialog device dialog to show the query.
-*/
-NONSHARABLE_CLASS( CUntrustedCertQuery ) : public CActive, public MHbDeviceDialogObserver
- {
- public: // constructors and destructor
- static CUntrustedCertQuery* NewL( TValidationError aValidationError,
- const TDesC8& aCertificate, const TDesC& aServerName,
- TBool aCanHandlePermanentAccept );
- ~CUntrustedCertQuery();
-
- public: // new functions
- enum TResponse {
- EQueryRejected,
- EQueryAccepted,
- EQueryAcceptedPermanently
- };
- void ShowQueryAndWaitForResponseL( TResponse& aResponse );
-
- protected: // from CActive
- void DoCancel();
- void RunL();
-
- private: // from MHbDeviceDialogObserver
- void DataReceived( CHbSymbianVariantMap& aData );
- void DeviceDialogClosed( TInt aCompletionCode );
-
- private: // new functions
- CUntrustedCertQuery( TValidationError aValidationError,
- const TDesC8& aCertificate, const TDesC& aServerName,
- TBool aCanHandlePermanentAccept );
- void ConstructL();
-
- private: // data
- TValidationError iValidationError;
- const TDesC8& iCertificate;
- const TDesC& iServerName;
- TBool iCanHandlePermanentAccept;
- CActiveSchedulerWait *iWait;
- TInt iWaitCompletionCode;
- CHbDeviceDialogSymbian* iDeviceDialog;
- CHbSymbianVariantMap* iVariantMap;
- TResponse iResponse;
- };
-
-#endif // C_UNTRUSTEDCERTQUERY_H
-
--- a/pkiutilities/securitydialognotifiersrv/rom/securitydialognotifiersrv.iby Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,25 +0,0 @@
-/*
-* Copyright (c) 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: Security dialog notifier server
-*
-*/
-
-#ifndef SECURITYDIALOGNOTIFIERSRV_IBY
-#define SECURITYDIALOGNOTIFIERSRV_IBY
-#include <bldvariant.hrh>
-
-file=ABI_DIR\BUILD_DIR\securitydialognotifiersrv.exe sys\bin\securitydialognotifiersrv.exe
-
-#endif // SECURITYDIALOGNOTIFIERSRV_IBY
-
--- a/pkiutilities/securitydialognotifiersrv/src/securitydialognotifierserver.cpp Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,138 +0,0 @@
-/*
-* Copyright (c) 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: Security dialog notifier server
-*
-*/
-
-#include "securitydialognotifierserver.h" // CSecurityDialogNotifierServer
-#include "securitydialognotifiersession.h" // CSecurityDialogNotifierSession
-#include "securitydialognotifierservername.h" // KSecurityDialogNotifierServerName
-#include "securitydialogstrace.h" // TRACE macro
-
-
-const TUint KRangeCount = 1;
-
-const TInt KRanges[ KRangeCount ] =
- {
- 0
- };
-
-const TUint8 KElementsIndex[ KRangeCount ] =
- {
- 0
- };
-
-const TInt KUikonServerId = 0x10003a4a;
-const CPolicyServer::TPolicyElement KPolicyElements[] =
- {
- { _INIT_SECURITY_POLICY_S0( KUikonServerId ), CPolicyServer::EFailClient }
- };
-
-const CPolicyServer::TPolicy KSecurityDialogNotifierServerPolicy =
- {
- CPolicyServer::EAlwaysPass,
- KRangeCount,
- KRanges,
- KElementsIndex,
- KPolicyElements
- };
-
-
-// ======== MEMBER FUNCTIONS ========
-
-// ---------------------------------------------------------------------------
-// CSecurityDialogNotifierServer::NewLC()
-// ---------------------------------------------------------------------------
-//
-CSecurityDialogNotifierServer* CSecurityDialogNotifierServer::NewLC()
- {
- CSecurityDialogNotifierServer* self = new( ELeave ) CSecurityDialogNotifierServer;
- CleanupStack::PushL( self );
- self->ConstructL();
- return self;
- }
-
-// ---------------------------------------------------------------------------
-// CSecurityDialogNotifierServer::~CSecurityDialogNotifierServer()
-// ---------------------------------------------------------------------------
-//
-CSecurityDialogNotifierServer::~CSecurityDialogNotifierServer()
- {
- TRACE( "CSecurityDialogNotifierServer::~CSecurityDialogNotifierServer" );
- }
-
-// ---------------------------------------------------------------------------
-// CSecurityDialogNotifierServer::AddSession()
-// ---------------------------------------------------------------------------
-//
-void CSecurityDialogNotifierServer::AddSession()
- {
- TRACE( "CSecurityDialogNotifierServer::AddSession" );
- ++iSessionCount;
- }
-
-// ---------------------------------------------------------------------------
-// CSecurityDialogNotifierServer::RemoveSession()
-// ---------------------------------------------------------------------------
-//
-void CSecurityDialogNotifierServer::RemoveSession()
- {
- TRACE( "CSecurityDialogNotifierServer::RemoveSession" );
- --iSessionCount;
- if( iSessionCount == 0 )
- {
- TRACE( "CSecurityDialogNotifierServer::RemoveSession, shutting down" );
- CActiveScheduler::Stop();
- }
- }
-
-// ---------------------------------------------------------------------------
-// CSecurityDialogNotifierServer::NewSessionL()
-// ---------------------------------------------------------------------------
-//
-CSession2* CSecurityDialogNotifierServer::NewSessionL( const TVersion &aVersion,
- const RMessage2& /*aMessage*/ ) const
- {
- TRACE( "CSecurityDialogNotifierServer::NewSessionL" );
- TVersion version( KSecurityDialogNotifierServerMajorVersionNumber,
- KSecurityDialogNotifierServerMinorVersionNumber,
- KSecurityDialogNotifierServerBuildVersionNumber );
- if( !User::QueryVersionSupported( version, aVersion ) )
- {
- TRACE( "CSecurityDialogNotifierServer::NewSessionL, version not supported" );
- User::Leave( KErrNotSupported );
- }
-
- return CSecurityDialogNotifierSession::NewL();
- }
-
-// ---------------------------------------------------------------------------
-// CSecurityDialogNotifierServer::CSecurityDialogNotifierServer()
-// ---------------------------------------------------------------------------
-//
-CSecurityDialogNotifierServer::CSecurityDialogNotifierServer() :
- CPolicyServer( CActive::EPriorityStandard, KSecurityDialogNotifierServerPolicy )
- {
- TRACE( "CSecurityDialogNotifierServer::CSecurityDialogNotifierServer" );
- }
-
-// ---------------------------------------------------------------------------
-// CSecurityDialogNotifierServer::ConstructL()
-// ---------------------------------------------------------------------------
-//
-void CSecurityDialogNotifierServer::ConstructL()
- {
- StartL( KSecurityDialogNotifierServerName );
- }
-
--- a/pkiutilities/securitydialognotifiersrv/src/securitydialognotifierservermain.cpp Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,61 +0,0 @@
-/*
-* Copyright (c) 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: Security dialog notifier server
-*
-*/
-
-#include "securitydialognotifierserver.h" // CSecurityDialogNotifierServer
-#include "securitydialognotifierservername.h" // KSecurityDialogNotifierServerName
-#include "securitydialogstrace.h" // TRACE macro
-
-
-// ---------------------------------------------------------------------------
-// MainL()
-// ---------------------------------------------------------------------------
-//
-LOCAL_C void MainL()
- {
- TRACE( "SecurityDialogNotifierServer: MainL" );
- CActiveScheduler* scheduler = new( ELeave ) CActiveScheduler;
- CleanupStack::PushL( scheduler );
- CActiveScheduler::Install( scheduler );
-
- CSecurityDialogNotifierServer* server = CSecurityDialogNotifierServer::NewLC();
- User::LeaveIfError( User::RenameThread( KSecurityDialogNotifierServerName ) );
- TRACE( "SecurityDialogNotifierServer: MainL, rendezvous" );
-
- RProcess::Rendezvous( KErrNone );
- TRACE( "SecurityDialogNotifierServer: MainL, activescheduler start" );
- CActiveScheduler::Start();
-
- TRACE( "SecurityDialogNotifierServer: MainL, cleanup" );
- CleanupStack::PopAndDestroy( server );
- CleanupStack::PopAndDestroy( scheduler );
- }
-
-// ---------------------------------------------------------------------------
-// E32Main()
-// ---------------------------------------------------------------------------
-//
-GLDEF_C TInt E32Main()
- {
- CTrapCleanup* cleanup = CTrapCleanup::New();
-
- TRAPD( err, MainL() );
- __ASSERT_ALWAYS( !err, User::Panic( KSecurityDialogNotifierServerName, err ) );
-
- delete cleanup;
- return err;
- }
-
--- a/pkiutilities/securitydialognotifiersrv/src/securitydialognotifiersession.cpp Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,220 +0,0 @@
-/*
-* Copyright (c) 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: Security dialog notifier server session
-*
-*/
-
-#include "securitydialognotifiersession.h" // CSecurityDialogNotifierSession
-#include "securitydialognotifierserver.h" // CSecurityDialogNotifierServer
-#include "securitydialognotifierservername.h" // KSecurityDialogsCancelOperation
-#include "securitydialogoperserverauthfail.h" // CServerAuthFailOperation
-#include "securitydialogstrace.h" // TRACE macro
-#include <secdlgimpldefs.h> // TSecurityDialogOperation
-
-const TInt KInputParam = 0;
-const TInt KOutputParam = 1;
-
-
-// ======== MEMBER FUNCTIONS ========
-
-// ---------------------------------------------------------------------------
-// CSecurityDialogNotifierSession::NewL()
-// ---------------------------------------------------------------------------
-//
-CSecurityDialogNotifierSession* CSecurityDialogNotifierSession::NewL()
- {
- CSecurityDialogNotifierSession* self = new( ELeave ) CSecurityDialogNotifierSession;
- CleanupStack::PushL( self );
- self->ConstructL();
- CleanupStack::Pop( self );
- return self;
- }
-
-// ---------------------------------------------------------------------------
-// CSecurityDialogNotifierSession::~CSecurityDialogNotifierSession()
-// ---------------------------------------------------------------------------
-//
-CSecurityDialogNotifierSession::~CSecurityDialogNotifierSession()
- {
- TRACE( "CSecurityDialogNotifierSession::~CSecurityDialogNotifierSession, begin" );
- Server().RemoveSession();
- delete iOperationHandler;
- iOperationHandler = NULL;
- delete iInputBuffer;
- iInputBuffer = NULL;
- TRACE( "CSecurityDialogNotifierSession::~CSecurityDialogNotifierSession, end" );
- }
-
-// ---------------------------------------------------------------------------
-// CSecurityDialogNotifierSession::CreateL()
-// ---------------------------------------------------------------------------
-//
-void CSecurityDialogNotifierSession::CreateL()
- {
- TRACE( "CSecurityDialogNotifierSession::~CSecurityDialogNotifierSession" );
- Server().AddSession();
- }
-
-// ---------------------------------------------------------------------------
-// CSecurityDialogNotifierSession::ServiceL()
-// ---------------------------------------------------------------------------
-//
-void CSecurityDialogNotifierSession::ServiceL( const RMessage2& aMessage )
- {
- TRACE( "CSecurityDialogNotifierSession::ServiceL, message 0x%08x", aMessage.Handle() );
- TRAPD( error, DispatchMessageL( aMessage ) );
- TRACE( "CSecurityDialogNotifierSession::ServiceL, dispatched, error %d", error );
- if( error && !aMessage.IsNull() )
- {
- TRACE( "CSecurityDialogNotifierSession::ServiceL, completing msg 0x%08x",
- aMessage.Handle() );
- aMessage.Complete( error );
- }
- }
-
-// ---------------------------------------------------------------------------
-// CSecurityDialogNotifierSession::OperationComplete()
-// ---------------------------------------------------------------------------
-//
-void CSecurityDialogNotifierSession::OperationComplete()
- {
- TRACE( "CSecurityDialogNotifierSession::OperationComplete, begin" );
- delete iOperationHandler;
- iOperationHandler = NULL;
- TRACE( "CSecurityDialogNotifierSession::OperationComplete, end" );
- }
-
-// ---------------------------------------------------------------------------
-// CSecurityDialogNotifierSession::CSecurityDialogNotifierSession()
-// ---------------------------------------------------------------------------
-//
-CSecurityDialogNotifierSession::CSecurityDialogNotifierSession()
- {
- TRACE( "CSecurityDialogNotifierSession::CSecurityDialogNotifierSession" );
- }
-
-// ---------------------------------------------------------------------------
-// CSecurityDialogNotifierSession::ConstructL()
-// ---------------------------------------------------------------------------
-//
-void CSecurityDialogNotifierSession::ConstructL()
- {
- TRACE( "CSecurityDialogNotifierSession::ConstructL" );
- }
-
-// ---------------------------------------------------------------------------
-// CSecurityDialogNotifierSession::Server()
-// ---------------------------------------------------------------------------
-//
-CSecurityDialogNotifierServer& CSecurityDialogNotifierSession::Server()
- {
- return *static_cast< CSecurityDialogNotifierServer* >(
- const_cast< CServer2* >( CSession2::Server() ) );
- }
-
-// ---------------------------------------------------------------------------
-// CSecurityDialogNotifierSession::DispatchMessageL()
-// ---------------------------------------------------------------------------
-//
-void CSecurityDialogNotifierSession::DispatchMessageL( const RMessage2& aMessage )
- {
- TRACE( "CSecurityDialogNotifierSession::DispatchMessageL, begin" );
- if( !IsOperationCancelled( aMessage ) )
- {
- TSecurityDialogOperation operation =
- static_cast< TSecurityDialogOperation >( aMessage.Function() );
- TRACE( "CSecurityDialogNotifierSession::DispatchMessageL, operation=%d", operation );
- switch( operation )
- {
- case ESecureConnection:
- case ESignText:
- case EEnterPIN:
- case EEnablePIN:
- case EDisablePIN:
- case EChangePIN:
- case EUnblockPIN:
- case EPINBlocked:
- case ETotalBlocked:
- case EUnblockPINInClear:
- User::Leave( KErrNotSupported );
- break;
- case EServerAuthenticationFailure:
- ServerAuthenticationFailureL( aMessage );
- break;
- default:
- User::Leave( KErrNotSupported );
- break;
- }
- }
- TRACE( "CSecurityDialogNotifierSession::DispatchMessageL, end" );
- }
-
-// ---------------------------------------------------------------------------
-// CSecurityDialogNotifierSession::IsOperationCancelled()
-// ---------------------------------------------------------------------------
-//
-TBool CSecurityDialogNotifierSession::IsOperationCancelled( const RMessage2& aMessage )
- {
- TBool isCancelled = EFalse;
- if( aMessage.Function() == KSecurityDialogCancelOperation )
- {
- if( iOperationHandler )
- {
- TRACE( "CSecurityDialogNotifierSession::CheckIfOperationCancelledL, cancelling" );
- iOperationHandler->CancelOperation();
- }
- TRACE( "CSecurityDialogNotifierSession::CheckIfOperationCancelledL, completing msg 0x%08x",
- aMessage.Handle() );
- aMessage.Complete( KErrNone );
- isCancelled = ETrue;
- }
- return isCancelled;
- }
-
-// ---------------------------------------------------------------------------
-// CSecurityDialogNotifierSession::ServerAuthenticationFailureL()
-// ---------------------------------------------------------------------------
-//
-void CSecurityDialogNotifierSession::ServerAuthenticationFailureL( const RMessage2& aMessage )
- {
- TRACE( "CSecurityDialogNotifierSession::ServerAuthenticationFailureL, begin" );
- GetInputBufferL( aMessage );
-
- __ASSERT_DEBUG( iOperationHandler == NULL, User::Invariant() );
- iOperationHandler = CServerAuthFailOperation::NewL( *this, aMessage, KOutputParam );
- iOperationHandler->StartL( *iInputBuffer );
-
- TRACE( "CSecurityDialogNotifierSession::ServerAuthenticationFailureL, end" );
- }
-
-// ---------------------------------------------------------------------------
-// CSecurityDialogNotifierSession::GetInputBufferL()
-// ---------------------------------------------------------------------------
-//
-void CSecurityDialogNotifierSession::GetInputBufferL( const RMessage2& aMessage )
- {
- TInt inputLength = aMessage.GetDesLength( KInputParam );
- TRACE( "CSecurityDialogNotifierSession::GetInputBufferL, inputLength=%d", inputLength );
- __ASSERT_ALWAYS( inputLength > 0, User::Leave( KErrCorrupt ) );
- if( iInputBuffer )
- {
- delete iInputBuffer;
- iInputBuffer = NULL;
- }
- iInputBuffer = HBufC8::NewL( inputLength );
- TPtr8 inputBufferPtr( iInputBuffer->Des() );
- aMessage.ReadL( KInputParam, inputBufferPtr );
- TRACE( "CSecurityDialogNotifierSession::GetInputBufferL, read complete" );
- }
-
--- a/pkiutilities/securitydialognotifiersrv/src/securitydialogoperation.cpp Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,65 +0,0 @@
-/*
-* Copyright (c) 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: Base class for CSecurityDialog operations
-*
-*/
-
-#include "securitydialogoperation.h" // CSecurityDialogOperation
-#include "securitydialogoperationobserver.h" // MSecurityDialogOperationObserver
-#include "securitydialogstrace.h" // TRACE macro
-
-
-// ======== MEMBER FUNCTIONS ========
-
-// ---------------------------------------------------------------------------
-// CSecurityDialogOperation::CSecurityDialogOperation()
-// ---------------------------------------------------------------------------
-//
-CSecurityDialogOperation::CSecurityDialogOperation(
- MSecurityDialogOperationObserver& aObserver, const RMessage2& aMessage,
- TInt aReplySlot ) : CActive( CActive::EPriorityStandard ), iObserver( aObserver ),
- iMessage( aMessage ), iReplySlot( aReplySlot )
- {
- TRACE( "CSecurityDialogOperation::CSecurityDialogOperation, iMessage 0x%08x",
- iMessage.Handle() );
- CActiveScheduler::Add( this );
- }
-
-// ---------------------------------------------------------------------------
-// CSecurityDialogOperation::~CSecurityDialogOperation()
-// ---------------------------------------------------------------------------
-//
-CSecurityDialogOperation::~CSecurityDialogOperation()
- {
- TRACE( "CSecurityDialogOperation::~CSecurityDialogOperation, begin" );
- Cancel();
- TRACE( "CSecurityDialogOperation::~CSecurityDialogOperation, end" );
- }
-
-// ---------------------------------------------------------------------------
-// CSecurityDialogOperation::RunError()
-// ---------------------------------------------------------------------------
-//
-TInt CSecurityDialogOperation::RunError( TInt aError )
- {
- TRACE( "CSecurityDialogOperation::RunError, aError=%d", aError );
- if( !iMessage.IsNull() )
- {
- TRACE( "CSecurityDialogOperation::RunError, completing message 0x%08x",
- iMessage.Handle() );
- iMessage.Complete( aError );
- }
- return KErrNone;
- }
-
--- a/pkiutilities/securitydialognotifiersrv/src/securitydialogoperserverauthfail.cpp Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,498 +0,0 @@
-/*
-* Copyright (c) 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: Server authentication failure operation in security dialog
-*
-*/
-
-#include "securitydialogoperserverauthfail.h" // CServerAuthFailOperation
-#include "securitydialogoperationobserver.h" // MSecurityDialogOperationObserver
-#include "untrustedcertquery.h" // CUntrustedCertQuery
-#include "../../DeviceToken/Inc/TrustedSitesStore.h" // CTrustSitesStore
-#include <mctwritablecertstore.h> // MCTWritableCertStore
-#include <unifiedcertstore.h> // CUnifiedCertStore
-#include <cctcertinfo.h> // CCTCertInfo
-#include <x509cert.h> // CX509Certificate
-#include "securitydialogstrace.h" // TRACE macro
-
-const TUid KTrustedSiteCertificatesTokenTypeUid = { 0x101FB66F };
-const TInt KMaxCommonNameLength = 64; // from RFC3280
-
-
-// ======== MEMBER FUNCTIONS ========
-
-// ---------------------------------------------------------------------------
-// CServerAuthFailOperation::NewL()
-// ---------------------------------------------------------------------------
-//
-CServerAuthFailOperation* CServerAuthFailOperation::NewL(
- MSecurityDialogOperationObserver& aObserver, const RMessage2& aMessage,
- TInt aReplySlot )
- {
- TRACE( "CServerAuthFailOperation::NewL, aMessage 0x%08x", aMessage.Handle() );
- return new( ELeave ) CServerAuthFailOperation( aObserver, aMessage, aReplySlot );
- }
-
-// ---------------------------------------------------------------------------
-// CServerAuthFailOperation::~CServerAuthFailOperation()
-// ---------------------------------------------------------------------------
-//
-CServerAuthFailOperation::~CServerAuthFailOperation()
- {
- TRACE( "CServerAuthFailOperation::~CServerAuthFailOperation, begin" );
- Cancel();
-
- delete iUntrustedCertQuery;
- iUntrustedCertQuery = NULL;
-
- delete iInput;
- iInput = NULL;
- delete iCertLabel;
- iCertLabel = NULL;
- delete iServerName;
- iServerName = NULL;
-
- delete iCertStore;
- iCertStore = NULL;
- iTrustedSiteCertStore = NULL; // not owned
-
- delete iCertAttributeFilter;
- iCertAttributeFilter = NULL;
- delete iRetrievedCertBuffer;
- iRetrievedCertBuffer = NULL;
-
- iCertInfos.Close();
- iFs.Close();
- TRACE( "CServerAuthFailOperation::~CServerAuthFailOperation, end" );
- }
-
-// ---------------------------------------------------------------------------
-// CServerAuthFailOperation::StartL()
-// ---------------------------------------------------------------------------
-//
-void CServerAuthFailOperation::StartL( const TDesC8& aBuffer )
- {
- TRACE( "CServerAuthFailOperation::StartL, begin" );
- __ASSERT_DEBUG( iInput == NULL, User::Invariant() );
- iInput = CServerAuthenticationFailureInput::NewL( aBuffer );
-
- iInput->GetEncodedCert( iEncodedServerCert );
-
- TPtrC8 serverName;
- iInput->GetServerName( serverName );
- __ASSERT_DEBUG( iServerName == NULL, User::Invariant() );
- iServerName = HBufC::NewL( serverName.Length() );
- iServerName->Des().Copy( serverName );
- TRACE( "CServerAuthFailOperation::StartL, iServerName=%S", iServerName );
-
- iAuthFailReason = iInput->FailureReason();
- TRACE( "CServerAuthFailOperation::StartL, iAuthFailReason=%d", iAuthFailReason );
-
- InitializeUnifiedCertStoreL();
- // This is async function, processing continues in RunL().
- // Basically trusted site certificates are fetched and the
- // server certificate is compared to them. If the server
- // certificate is already in trusted site cert store, then
- // connection is accepted silently. If it is not, then
- // untrusted certificate dialog is displayed.
- }
-
-// ---------------------------------------------------------------------------
-// CServerAuthFailOperation::CancelOperation()
-// ---------------------------------------------------------------------------
-//
-void CServerAuthFailOperation::CancelOperation()
- {
- TRACE( "CServerAuthFailOperation::CancelOperation, begin" );
- Cancel();
- if( iUntrustedCertQuery )
- {
- TRACE( "CServerAuthFailOperation::CancelOperation, cancelling untrusted query" );
- iUntrustedCertQuery->Cancel();
- }
- if( !iMessage.IsNull() )
- {
- TRACE( "CServerAuthFailOperation::CancelOperation, completing message 0x%08x",
- iMessage.Handle() );
- iMessage.Complete( KErrCancel );
- }
- TRACE( "CServerAuthFailOperation::CancelOperation, end" );
- }
-
-// ---------------------------------------------------------------------------
-// CServerAuthFailOperation::RunL()
-// ---------------------------------------------------------------------------
-//
-void CServerAuthFailOperation::RunL()
- {
- TRACE( "CServerAuthFailOperation::RunL, iStatus.Int()=%d, iMode=%d",
- iStatus.Int(), iMode );
- User::LeaveIfError( iStatus.Int() );
- switch( iMode )
- {
- case EInitialiseCertStore:
- ProcessServerAuthorizationFailureL();
- break;
- case EListTrustedSiteCerts:
- RetrieveFirstTrustedSiteCertL();
- break;
- case ERetrieveTrustedSiteCert:
- if( IsRetrievedCertSameAsServerCertL() )
- {
- ReturnResultL( EContinue );
- }
- else
- {
- RetrieveNextTrustedSiteCertL();
- }
- break;
- case ESavingServerCert:
- SaveServerNameToTrustedSitesStoreL();
- ReturnResultL( EContinue );
- break;
- default:
- User::Leave( KErrGeneral );
- break;
- }
- TRACE( "CServerAuthFailOperation::RunL(), end" );
- }
-
-// ---------------------------------------------------------------------------
-// CServerAuthFailOperation::DoCancel()
-// ---------------------------------------------------------------------------
-//
-void CServerAuthFailOperation::DoCancel()
- {
- TRACE( "CServerAuthFailOperation::DoCancel, iMode=%d", iMode );
- switch( iMode )
- {
- case EInitialiseCertStore:
- if( iCertStore )
- {
- iCertStore->CancelInitialize();
- }
- break;
- case EListTrustedSiteCerts:
- if( iTrustedSiteCertStore )
- {
- iTrustedSiteCertStore->CancelList();
- }
- break;
- case ERetrieveTrustedSiteCert:
- if( iTrustedSiteCertStore )
- {
- iTrustedSiteCertStore->CancelRetrieve();
- }
- break;
- case ESavingServerCert:
- if( iTrustedSiteCertStore )
- {
- iTrustedSiteCertStore->CancelAdd();
- }
- break;
- default:
- break;
- }
- TRACE( "CServerAuthFailOperation::DoCancel, end" );
- }
-
-// ---------------------------------------------------------------------------
-// CServerAuthFailOperation::CServerAuthFailOperation()
-// ---------------------------------------------------------------------------
-//
-CServerAuthFailOperation::CServerAuthFailOperation(
- MSecurityDialogOperationObserver& aObserver, const RMessage2& aMessage,
- TInt aReplySlot ) : CSecurityDialogOperation( aObserver, aMessage, aReplySlot )
- {
- TRACE( "CServerAuthFailOperation::CServerAuthFailOperation" );
- }
-
-// ---------------------------------------------------------------------------
-// CServerAuthFailOperation::InitializeUnifiedCertStoreL()
-// ---------------------------------------------------------------------------
-//
-void CServerAuthFailOperation::InitializeUnifiedCertStoreL()
- {
- TRACE( "CServerAuthFailOperation::InitializeUnifiedCertStoreL" );
- User::LeaveIfError( iFs.Connect() );
- iCertStore = CUnifiedCertStore::NewL( iFs, ETrue );
-
- iCertStore->Initialize( iStatus );
- iMode = EInitialiseCertStore;
- SetActive();
- }
-
-// ---------------------------------------------------------------------------
-// CServerAuthFailOperation::ProcessServerAuthorizationFailureL()
-// ---------------------------------------------------------------------------
-//
-void CServerAuthFailOperation::ProcessServerAuthorizationFailureL()
- {
- TRACE( "CServerAuthFailOperation::ProcessServerAuthorizationFailureL" );
- OpenTrustedSiteCertificateStoreL();
- if( IsAlreadyTrustedSiteL() )
- {
- StartFetchingTrustedSiteCertsL();
- }
- else
- {
- ShowUntrustedCertificateDialogL();
- }
- }
-
-// ---------------------------------------------------------------------------
-// CServerAuthFailOperation::OpenTrustedSiteCertificateStoreL()
-// ---------------------------------------------------------------------------
-//
-void CServerAuthFailOperation::OpenTrustedSiteCertificateStoreL()
- {
- TRACE( "CServerAuthFailOperation::OpenTrustedSiteCertificateStoreL, begin" );
- TInt count = iCertStore->WritableCertStoreCount();
- for( TInt index = 0; ( index < count ) && !iTrustedSiteCertStore; index++ )
- {
- MCTWritableCertStore* certstore = &( iCertStore->WritableCertStore( index ) );
- TUid tokenTypeUid = certstore->Token().Handle().iTokenTypeUid;
- if( tokenTypeUid == KTrustedSiteCertificatesTokenTypeUid )
- {
- iTrustedSiteCertStore = certstore;
- }
- }
- TRACE( "CServerAuthFailOperation::OpenTrustedSiteCertificateStoreL, store 0x%08x",
- iTrustedSiteCertStore );
- }
-
-// ---------------------------------------------------------------------------
-// CServerAuthFailOperation::IsAlreadyTrustedSiteL()
-// ---------------------------------------------------------------------------
-//
-TBool CServerAuthFailOperation::IsAlreadyTrustedSiteL()
- {
- TRACE( "CServerAuthFailOperation::IsAlreadyTrustedSiteL, begin" );
- TBool isTrustedSite = EFalse;
- if( iTrustedSiteCertStore )
- {
- CTrustSitesStore* trustedSitesStore = CTrustSitesStore::NewL();
- CleanupStack::PushL( trustedSitesStore );
-
- isTrustedSite = trustedSitesStore->IsTrustedSiteL( iEncodedServerCert, *iServerName );
- if( isTrustedSite )
- {
- TBool isExpiredAccepted = trustedSitesStore->IsOutOfDateAllowedL(
- iEncodedServerCert, *iServerName );
- TRACE( "CServerAuthFailOperation::IsAlreadyTrustedSiteL, isExpiredAccepted=%d",
- isExpiredAccepted );
- if( !isExpiredAccepted && iAuthFailReason == EDateOutOfRange )
- {
- TRACE( "CServerAuthFailOperation::IsAlreadyTrustedSiteL, not accepted" );
- isTrustedSite = EFalse;
- }
- }
-
- CleanupStack::PopAndDestroy( trustedSitesStore );
- }
- TRACE( "CServerAuthFailOperation::IsAlreadyTrustedSiteL, isTrustedSite=%d", isTrustedSite );
- return isTrustedSite;
- }
-
-// ---------------------------------------------------------------------------
-// CServerAuthFailOperation::StartFetchingTrustedSiteCertsL()
-// ---------------------------------------------------------------------------
-//
-void CServerAuthFailOperation::StartFetchingTrustedSiteCertsL()
- {
- TRACE( "CServerAuthFailOperation::StartFetchingTrustedSiteCertsL" );
- __ASSERT_DEBUG( iCertAttributeFilter == NULL, User::Invariant() );
- iCertAttributeFilter = CCertAttributeFilter::NewL();
- iCertAttributeFilter->SetOwnerType( EPeerCertificate );
- __ASSERT_DEBUG( iTrustedSiteCertStore != NULL, User::Invariant() );
- iTrustedSiteCertStore->List( iCertInfos, *iCertAttributeFilter, iStatus );
- iMode = EListTrustedSiteCerts;
- SetActive();
- }
-
-// ---------------------------------------------------------------------------
-// CServerAuthFailOperation::ShowUntrustedCertificateDialogL()
-// ---------------------------------------------------------------------------
-//
-void CServerAuthFailOperation::ShowUntrustedCertificateDialogL()
- {
- TRACE( "CServerAuthFailOperation::ShowUntrustedCertificateDialogL, begin" );
-
- // If trusted site certstore open has failed, then it is not possible to save
- // the host name for permanent use. Hence, choice for permanent accept is not
- // displayed if trusted site certstore open has failed. Other restrictions for
- // permanent accept are defined in device dialog (UntrustedCertificateWidget).
- TBool isTrustedSiteCertStoreOpened = ( iTrustedSiteCertStore != NULL );
- __ASSERT_DEBUG( iUntrustedCertQuery == NULL, User::Invariant() );
- iUntrustedCertQuery = CUntrustedCertQuery::NewL( iAuthFailReason, iEncodedServerCert,
- *iServerName, isTrustedSiteCertStoreOpened );
-
- CUntrustedCertQuery::TResponse response = CUntrustedCertQuery::EQueryRejected;
- iUntrustedCertQuery->ShowQueryAndWaitForResponseL( response );
- switch( response )
- {
- case CUntrustedCertQuery::EQueryAccepted:
- ReturnResultL( EContinue );
- break;
- case CUntrustedCertQuery::EQueryAcceptedPermanently:
- SaveServerCertToTrustedSiteCertStoreL();
- break;
- case CUntrustedCertQuery::EQueryRejected:
- default:
- ReturnResultL( EStop );
- break;
- }
-
- TRACE( "CServerAuthFailOperation::ShowUntrustedCertificateDialogL, end" );
- }
-
-// ---------------------------------------------------------------------------
-// CServerAuthFailOperation::SaveServerCertToTrustedSiteCertStoreL()
-// ---------------------------------------------------------------------------
-//
-void CServerAuthFailOperation::SaveServerCertToTrustedSiteCertStoreL()
- {
- TRACE( "CServerAuthFailOperation::SaveServerCertToTrustedSiteCertStoreL" );
-
- __ASSERT_DEBUG( iCertLabel == NULL, User::Invariant() );
- CX509Certificate* serverCert = CX509Certificate::NewLC( iEncodedServerCert );
- const CX500DistinguishedName& dName = serverCert->SubjectName();
- HBufC* commonName = dName.ExtractFieldL( KX520CommonName );
- if( commonName )
- {
- CleanupStack::PushL( commonName );
- TInt commonNameLen = commonName->Length();
- if( commonNameLen > 0 && commonNameLen <= KMaxCommonNameLength )
- {
- iCertLabel = commonName->AllocL();
- }
- CleanupStack::PopAndDestroy( commonName );
- }
- CleanupStack::PopAndDestroy( serverCert );
-
- if( !iCertLabel )
- {
- iCertLabel = iServerName->AllocL();
- }
-
- iTrustedSiteCertStore->Add( *iCertLabel, EX509Certificate, EPeerCertificate,
- NULL, NULL, iEncodedServerCert, iStatus );
- iMode = ESavingServerCert;
- SetActive();
- }
-
-// ---------------------------------------------------------------------------
-// CServerAuthFailOperation::SaveServerNameToTrustedSitesStoreL()
-// ---------------------------------------------------------------------------
-//
-void CServerAuthFailOperation::SaveServerNameToTrustedSitesStoreL()
- {
- TRACE( "CServerAuthFailOperation::SaveServerNameToTrustedSitesStoreL, begin" );
- CTrustSitesStore* trustedSitesStore = CTrustSitesStore::NewL();
- CleanupStack::PushL( trustedSitesStore );
-
- // CTrustSitesStore::AddL() may leave or it may return an error code.
- // It leaves if parameters are incorrect, and it returns error code if
- // saving fails. Both kinds of errors are handled here in the same way.
- TInt err = trustedSitesStore->AddL( iEncodedServerCert, *iServerName );
- TRACE( "CServerAuthFailOperation::SaveServerNameToTrustedSitesStoreL, err=%d", err );
- User::LeaveIfError( err );
-
- CleanupStack::PopAndDestroy( trustedSitesStore );
- }
-
-// ---------------------------------------------------------------------------
-// CServerAuthFailOperation::ReturnResultL()
-// ---------------------------------------------------------------------------
-//
-void CServerAuthFailOperation::ReturnResultL( TServerAuthenticationFailureDialogResult aResult )
- {
- TRACE( "CServerAuthFailOperation::ReturnResultL, aResult=%d", aResult );
- TServerAuthenticationFailureOutputBuf output( aResult );
- iMessage.WriteL( iReplySlot, output );
- TRACE( "CServerAuthFailOperation::ReturnResultL, completing msg 0x%08x", iMessage.Handle() );
- iMessage.Complete( KErrNone );
- TRACE( "CServerAuthFailOperation::ReturnResultL, informing observer" );
- iObserver.OperationComplete();
- TRACE( "CServerAuthFailOperation::ReturnResultL, end" );
- }
-
-// ---------------------------------------------------------------------------
-// CServerAuthFailOperation::RetrieveFirstTrustedSiteCertL()
-// ---------------------------------------------------------------------------
-//
-void CServerAuthFailOperation::RetrieveFirstTrustedSiteCertL()
- {
- TRACE( "CServerAuthFailOperation::RetrieveFirstTrustedSiteCertL" );
- __ASSERT_DEBUG( iRetrievedCertBuffer == NULL, User::Invariant() );
- iRetrieveCertIndex = 0;
-
- RetrieveNextTrustedSiteCertL();
- }
-
-// ---------------------------------------------------------------------------
-// CServerAuthFailOperation::RetrieveNextTrustedSiteCertL()
-// ---------------------------------------------------------------------------
-//
-void CServerAuthFailOperation::RetrieveNextTrustedSiteCertL()
- {
- TRACE( "CServerAuthFailOperation::RetrieveNextTrustedSiteCertL" );
- if( iRetrieveCertIndex < iCertInfos.Count() )
- {
- CCTCertInfo& cert = *( iCertInfos[ iRetrieveCertIndex ] );
-
- if( iRetrievedCertBuffer )
- {
- delete iRetrievedCertBuffer;
- iRetrievedCertBuffer = NULL;
- }
- iRetrievedCertBuffer = HBufC8::NewL( cert.Size() );
- TPtr8 buffer = iRetrievedCertBuffer->Des();
-
- iTrustedSiteCertStore->Retrieve( cert, buffer, iStatus );
- iMode = ERetrieveTrustedSiteCert;
- SetActive();
- }
- else
- {
- ShowUntrustedCertificateDialogL();
- }
- }
-
-// ---------------------------------------------------------------------------
-// CServerAuthFailOperation::IsRetrievedCertSameAsServerCertL()
-// ---------------------------------------------------------------------------
-//
-TBool CServerAuthFailOperation::IsRetrievedCertSameAsServerCertL()
- {
- TRACE( "CServerAuthFailOperation::IsRetrievedCertSameAsServerCertL, begin" );
- TBool isSame = EFalse;
- CX509Certificate* cert = CX509Certificate::NewLC( *iRetrievedCertBuffer );
-
- if( !iServerCertFingerprint )
- {
- CX509Certificate* serverCert = CX509Certificate::NewLC( iEncodedServerCert );
- iServerCertFingerprint = serverCert->Fingerprint().AllocL();
- CleanupStack::PopAndDestroy( serverCert );
- }
-
- if( cert->Fingerprint() == *iServerCertFingerprint )
- {
- isSame = ETrue;
- }
-
- CleanupStack::PopAndDestroy( cert );
- TRACE( "CServerAuthFailOperation::IsRetrievedCertSameAsServerCertL, isSame=%d", isSame );
- return isSame;
- }
-
--- a/pkiutilities/securitydialognotifiersrv/src/untrustedcertquery.cpp Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,250 +0,0 @@
-/*
-* Copyright (c) 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: Displays untrusted certificate dialog
-*
-*/
-
-#include "untrustedcertquery.h" // CUntrustedCertQuery
-#include <hb/hbcore/hbsymbianvariant.h> // CHbSymbianVariantMap
-#include "securitydialogstrace.h" // TRACE macro
-
-// Note that the dialog type string, the parameters name strings, and the return code
-// name string and values must match to those defined in Qt-side untrusted certificate
-// dialog (in untrustedcertificatedefinitions.h file).
-
-// Device dialog type for untrusted certificate dialog
-_LIT( KUntrustedCertificateDialog, "com.nokia.untrustedcert/1.0" );
-
-// Variant map parameter names for untrusted certificate dialog
-_LIT( KUntrustedCertEncodedCertificate, "cert" ); // bytearray, mandatory
-_LIT( KUntrustedCertServerName, "host" ); // string, mandatory
-_LIT( KUntrustedCertValidationError, "err" ); // int (TValidationError), mandatory
-_LIT( KUntrustedCertTrustedSiteStoreFail, "tss" ); // any, prevents permanent acceptance
-
-// Dialog return code name and values
-_LIT( KUntrustedCertDialogResult, "result" ); // int
-const TInt KUntrustedCertDialogRejected = 0;
-const TInt KUntrustedCertDialogAccepted = 1;
-const TInt KUntrustedCertDialogAcceptedPermanently = 2;
-
-
-// ======== MEMBER FUNCTIONS ========
-
-// ---------------------------------------------------------------------------
-// CUntrustedCertQuery::NewL()
-// ---------------------------------------------------------------------------
-//
-CUntrustedCertQuery* CUntrustedCertQuery::NewL(
- TValidationError aValidationError, const TDesC8& aCertificate,
- const TDesC& aServerName, TBool aCanHandlePermanentAccept )
- {
- TRACE( "CUntrustedCertQuery::NewL" );
- CUntrustedCertQuery* self = new ( ELeave ) CUntrustedCertQuery(
- aValidationError, aCertificate, aServerName,
- aCanHandlePermanentAccept );
- CleanupStack::PushL( self );
- self->ConstructL();
- CleanupStack::Pop( self );
- return self;
- }
-
-// ---------------------------------------------------------------------------
-// CUntrustedCertQuery::~CUntrustedCertQuery()
-// ---------------------------------------------------------------------------
-//
-CUntrustedCertQuery::~CUntrustedCertQuery()
- {
- TRACE( "CUntrustedCertQuery::~CUntrustedCertQuery, begin" );
- Cancel();
- delete iWait;
- iWait = NULL;
- delete iDeviceDialog;
- iDeviceDialog = NULL;
- delete iVariantMap;
- iVariantMap = NULL;
- TRACE( "CUntrustedCertQuery::~CUntrustedCertQuery, end" );
- }
-
-// ---------------------------------------------------------------------------
-// CUntrustedCertQuery::ShowQueryAndWaitForResponseL()
-// ---------------------------------------------------------------------------
-//
-void CUntrustedCertQuery::ShowQueryAndWaitForResponseL( TResponse& aResponse )
- {
- TRACE( "CUntrustedCertQuery::ShowQueryAndWaitForResponseL, begin" );
- if( !iDeviceDialog )
- {
- iDeviceDialog = CHbDeviceDialogSymbian::NewL();
- }
- if( !iVariantMap )
- {
- iVariantMap = CHbSymbianVariantMap::NewL();
- }
-
- CHbSymbianVariant *variant = NULL;
- variant = CHbSymbianVariant::NewL( &iCertificate, CHbSymbianVariant::EBinary );
- User::LeaveIfError( iVariantMap->Add( KUntrustedCertEncodedCertificate, variant ) );
- variant = CHbSymbianVariant::NewL( &iValidationError, CHbSymbianVariant::EInt );
- User::LeaveIfError( iVariantMap->Add( KUntrustedCertValidationError, variant ) );
- variant = CHbSymbianVariant::NewL( &iServerName, CHbSymbianVariant::EDes );
- User::LeaveIfError( iVariantMap->Add( KUntrustedCertServerName, variant ) );
- if( !iCanHandlePermanentAccept )
- {
- variant = CHbSymbianVariant::NewL( &iCanHandlePermanentAccept, CHbSymbianVariant::EBool );
- User::LeaveIfError( iVariantMap->Add( KUntrustedCertTrustedSiteStoreFail, variant ) );
- }
-
- User::LeaveIfError( iDeviceDialog->Show( KUntrustedCertificateDialog, *iVariantMap, this ) );
- iStatus = KRequestPending;
- SetActive();
-
- TRACE( "CUntrustedCertQuery::ShowQueryAndWaitForResponseL, iWait start" );
- iWait->Start();
- TRACE( "CUntrustedCertQuery::ShowQueryAndWaitForResponseL, iWaitCompletionCode=%d",
- iWaitCompletionCode );
- User::LeaveIfError( iWaitCompletionCode );
- TRACE( "CUntrustedCertQuery::ShowQueryAndWaitForResponseL, iResponse=%d", iResponse );
- aResponse = iResponse;
- }
-
-// ---------------------------------------------------------------------------
-// CUntrustedCertQuery::DoCancel()
-// ---------------------------------------------------------------------------
-//
-void CUntrustedCertQuery::DoCancel()
- {
- TRACE( "CUntrustedCertQuery::DoCancel, begin" );
- if( iDeviceDialog )
- {
- TRACE( "CUntrustedCertQuery::DoCancel, cancelling device dialog" );
- iDeviceDialog->Cancel();
- }
-
- // Have to complete the request here, because cancelled device dialog does not
- // call DeviceDialogClosed() that normally completes it. The request needs to
- // be completed since CActive::Cancel() waits until the request is completed.
- TRACE( "CUntrustedCertQuery::DoCancel, completing self with KErrCancel" );
- TRequestStatus* status( &iStatus );
- User::RequestComplete( status, KErrCancel );
-
- // Normally the above request complete would trigger running RunL(). Now RunL()
- // is not run since the active object is already cancelled. Hence, have to stop
- // the waiting here so that iWait->Start() returns.
- iWaitCompletionCode = KErrCancel;
- if( iWait && iWait->IsStarted() )
- {
- TRACE( "CUntrustedCertQuery::DoCancel, stopping iWait" );
- iWait->AsyncStop();
- }
- TRACE( "CUntrustedCertQuery::DoCancel, end" );
- }
-
-// ---------------------------------------------------------------------------
-// CUntrustedCertQuery::RunL()
-// ---------------------------------------------------------------------------
-//
-void CUntrustedCertQuery::RunL()
- {
- TRACE( "CUntrustedCertQuery::RunL, iStatus.Int()=%d", iStatus.Int() );
- iWaitCompletionCode = iStatus.Int();
- if( iWait && iWait->IsStarted() )
- {
- TRACE( "CUntrustedCertQuery::RunL, stopping iWait" );
- iWait->AsyncStop();
- }
- }
-
-// ---------------------------------------------------------------------------
-// CUntrustedCertQuery::DataReceived()
-// ---------------------------------------------------------------------------
-//
-void CUntrustedCertQuery::DataReceived( CHbSymbianVariantMap& aData )
- {
- TRACE( "CUntrustedCertQuery::DataReceived" );
- const CHbSymbianVariant* variant = aData.Get( KUntrustedCertDialogResult );
- if( variant )
- {
- TInt* value = variant->Value<TInt>();
- if( value )
- {
- switch( *value )
- {
- case KUntrustedCertDialogRejected:
- TRACE( "CUntrustedCertQuery::DataReceived, rejected" );
- iResponse = EQueryRejected;
- break;
- case KUntrustedCertDialogAccepted:
- TRACE( "CUntrustedCertQuery::DataReceived, accepted" );
- iResponse = EQueryAccepted;
- break;
- case KUntrustedCertDialogAcceptedPermanently:
- TRACE( "CUntrustedCertQuery::DataReceived, accepted permanently" );
- iResponse = EQueryAcceptedPermanently;
- break;
- default:
- __ASSERT_DEBUG( EFalse, User::Invariant() );
- break;
- }
- }
- else
- {
- __ASSERT_DEBUG( EFalse, User::Invariant() );
- }
- }
- else
- {
- __ASSERT_DEBUG( EFalse, User::Invariant() );
- }
- }
-
-// ---------------------------------------------------------------------------
-// CUntrustedCertQuery::DeviceDialogClosed()
-// ---------------------------------------------------------------------------
-//
-void CUntrustedCertQuery::DeviceDialogClosed( TInt aCompletionCode )
- {
- TRACE( "CUntrustedCertQuery::DeviceDialogClosed, aCompletionCode=%d", aCompletionCode );
- if( IsActive() )
- {
- TRACE( "CUntrustedCertQuery::DeviceDialogClosed, request complete" );
- TRequestStatus* status( &iStatus );
- User::RequestComplete( status, aCompletionCode );
- }
- }
-
-// ---------------------------------------------------------------------------
-// CUntrustedCertQuery::CUntrustedCertQuery()
-// ---------------------------------------------------------------------------
-//
-CUntrustedCertQuery::CUntrustedCertQuery(
- TValidationError aValidationError, const TDesC8& aCertificate,
- const TDesC& aServerName, TBool aCanHandlePermanentAccept ) :
- CActive( CActive::EPriorityStandard ), iValidationError( aValidationError ),
- iCertificate( aCertificate ), iServerName( aServerName ),
- iCanHandlePermanentAccept( aCanHandlePermanentAccept ),
- iResponse( EQueryRejected )
- {
- CActiveScheduler::Add( this );
- }
-
-// ---------------------------------------------------------------------------
-// CUntrustedCertQuery::ConstructL()
-// ---------------------------------------------------------------------------
-//
-void CUntrustedCertQuery::ConstructL()
- {
- TRACE( "CUntrustedCertQuery::ConstructL" );
- iWait = new( ELeave ) CActiveSchedulerWait;
- }
-
--- a/pkiutilities/untrustedcertificatedialog/inc/untrustedcertificatedefinitions.h Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,39 +0,0 @@
-/*
-* Copyright (c) 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: Parameter definitions for untrusted certificate dialog.
-* Untrusted certificate dialog is displayed for secure
-* connection (TLS) server authentication failure errors.
-*
-*/
-
-#ifndef UNTRUSTEDCERTIFICATEDEFINITIONS_H
-#define UNTRUSTEDCERTIFICATEDEFINITIONS_H
-
-// Device dialog type for untrusted certificate dialog
-const QString KUntrustedCertificateDialog = "com.nokia.untrustedcert/1.0";
-
-// Corresponds to CServerAuthenticationFailureInput class
-const QString KUntrustedCertEncodedCertificate = "cert"; // bytearray, mandatory
-const QString KUntrustedCertServerName = "host"; // string, mandatory
-const QString KUntrustedCertValidationError = "err"; // int (TValidationError), mandatory
-const QString KUntrustedCertTrustedSiteStoreFail = "tss"; // any, prevents permanent acceptance
-
-// Dialog return codes
-const QString KUntrustedCertificateDialogResult = "result"; // int
-const int KDialogRejected = 0;
-const int KDialogAccepted = 1;
-const int KDialogAcceptedPermanently = 2;
-
-#endif // UNTRUSTEDCERTIFICATEDEFINITIONS_H
-
--- a/pkiutilities/untrustedcertificatedialog/inc/untrustedcertificatedialog.h Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,81 +0,0 @@
-/*
-* Copyright (c) 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: Device dialog plugin that shows untrusted certificate
-* dialog for TLS server authentication failure errors.
-*
-*/
-
-#ifndef UNTRUSTEDCERTIFICATEDIALOG_H
-#define UNTRUSTEDCERTIFICATEDIALOG_H
-
-#include <hbdialog.h>
-#include <hbdevicedialoginterface.h>
-
-class UntrustedCertificateWidget;
-
-
-/**
- * Untrusted certificate dialog.
- * This dialog is displayed when a secure socket (CSecureSocket) is opened
- * using EDialogModeAttended mode, and the server sends untrusted certificate.
- * Untrusted certificate dialog shows the certificate details and prompts if
- * the secure connection is allowed to proceed.
- */
-class UntrustedCertificateDialog : public HbDialog, public HbDeviceDialogInterface
-{
- Q_OBJECT
-
-public: // constructor and destructor
- UntrustedCertificateDialog(const QVariantMap ¶meters);
- virtual ~UntrustedCertificateDialog();
-
-public: // from HbDeviceDialogInterface
- bool setDeviceDialogParameters(const QVariantMap ¶meters);
- int deviceDialogError() const;
- void closeDeviceDialog(bool byClient);
- HbDialog *deviceDialogWidget() const;
-
-signals: // required by device dialog framework
- void deviceDialogClosed();
- void deviceDialogData(const QVariantMap &data);
-
-protected: // from HbPopup (via HbDialog)
- void hideEvent(QHideEvent *event);
- void showEvent(QShowEvent *event);
-
-private: // new functions
- bool isParametersValid(const QVariantMap ¶meters);
- bool constructDialog(const QVariantMap ¶meters);
- bool updateFromParameters(const QVariantMap ¶meters);
- void sendResult(int result);
- void confirmPermanentAccept();
-
-private slots: // new slots
- void handleAccepted();
- void handleRejected();
- void handlePermanentAcceptance();
-
-private: // new functions
- Q_DISABLE_COPY(UntrustedCertificateDialog)
-
-private: // data
- int mLastError;
- UntrustedCertificateWidget *mContent;
- QVariantMap mResultMap;
- bool mShowEventReceived;
- HbAction *mOkAction;
-};
-
-#endif // UNTRUSTEDCERTIFICATEDIALOG_H
-
--- a/pkiutilities/untrustedcertificatedialog/inc/untrustedcertificateinfo_symbian.h Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,50 +0,0 @@
-/*
-* Copyright (c) 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: Certificate info class for TLS untrusted certificate dialog.
-*
-*/
-
-#ifndef UNTRUSTEDCERTIFICATEINFOSYMBIAN_H
-#define UNTRUSTEDCERTIFICATEINFOSYMBIAN_H
-
-#include "untrustedcertificateinfobase.h"
-
-class CX509Certificate;
-
-
-/**
- * Certificate info class for secure connections (TLS) untrusted certificate dialog.
- * Symbian-specific concrete implementeation for the certificate info class.
- */
-class UntrustedCertificateInfoSymbian : public UntrustedCertificateInfoBase
-{
-public: // constructor and destructor
- UntrustedCertificateInfoSymbian(const QByteArray &aEncodedCert);
- ~UntrustedCertificateInfoSymbian();
-
-public: // from UntrustedCertificateInfoBase
- bool commonNameMatches(const QString &siteName) const;
- QString certificateDetails(const QString &siteName) const;
-
-private: // new functions
- void ConstructL(const QByteArray &aEncodedCert);
- bool CommonNameMatchesL(const QString &siteName) const;
- QByteArray Md5FingerprintL( const TDesC8& aEncodedCert ) const;
-
-private: // data
- CX509Certificate* mCert;
- QByteArray mMd5Fingerprint;
-};
-
-#endif // UNTRUSTEDCERTIFICATEINFOSYMBIAN_H
--- a/pkiutilities/untrustedcertificatedialog/inc/untrustedcertificateinfobase.h Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,94 +0,0 @@
-/*
-* Copyright (c) 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: Certificate info class for TLS untrusted certificate dialog.
-*
-*/
-
-#ifndef UNTRUSTEDCERTIFICATEINFOBASE_H
-#define UNTRUSTEDCERTIFICATEINFOBASE_H
-
-#include <QObject>
-#include <QDateTime>
-
-/**
- * Certificate info class for secure connections (TLS) untrusted certificate dialog.
- * This is abstract class that is used in UI code to get displayable certificate
- * details. Concrete (possibly platform specific) classes implement the functionality.
- */
-class UntrustedCertificateInfoBase : public QObject
-{
- Q_OBJECT
-
-public: // definitions
- enum CertificateFormat {
- UnknownCertificate,
- X509Certificate,
- WTLSCertificate,
- X968Certificate
- };
- enum Algorithm {
- Unknown,
- RSA,
- DSA,
- DH,
- MD2,
- MD5,
- SHA1,
- SHA224,
- SHA256,
- SHA384,
- SHA512
- };
-
-protected: // constructor, available for derived classes only
- UntrustedCertificateInfoBase();
-
-public: // destructor
- virtual ~UntrustedCertificateInfoBase();
-
-public: // new functions
- virtual const QString subjectName() const;
- virtual const QString issuerName() const;
- virtual const QByteArray fingerprint() const;
- virtual const QByteArray serialNumber() const;
- virtual const QDateTime validFrom() const;
- virtual const QDateTime validTo() const;
- virtual const QString format() const;
- virtual const QString digestAlgorithm() const;
- virtual const QString asymmetricAlgorithm() const;
- virtual const QString combinedAlgorithmName() const;
- virtual const QString formattedFingerprint(const QByteArray &fingerprint) const;
- virtual const QString formattedSerialNumber(const QByteArray &serialNumber) const;
- virtual bool isDateValid() const;
-
-public: // new abstract functions
- virtual bool commonNameMatches(const QString &siteName) const = 0;
- virtual QString certificateDetails(const QString &siteName) const = 0;
-
-private: // new functions
- const QString algorithmName(Algorithm algorithm) const;
-
-protected: // data
- QString mSubjectName;
- QString mIssuerName;
- QByteArray mFingerprint;
- QByteArray mSerialNumber;
- QDateTime mValidFrom;
- QDateTime mValidTo;
- CertificateFormat mFormat;
- Algorithm mDigestAlgorithm;
- Algorithm mAsymmetricAlgorithm;
-};
-
-#endif // UNTRUSTEDCERTIFICATEINFOBASE_H
--- a/pkiutilities/untrustedcertificatedialog/inc/untrustedcertificateplugin.h Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,55 +0,0 @@
-/*
-* Copyright (c) 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: Device dialog plugin that shows untrusted certificate
-* dialog for TLS server authentication failure errors.
-*
-*/
-
-#ifndef UNTRUSTEDCERTIFICATEPLUGIN_H
-#define UNTRUSTEDCERTIFICATEPLUGIN_H
-
-#include <hbdevicedialogplugin.h>
-
-
-/**
- * Untrusted certificate plugin.
- * Device dialog plugin to show untrusted certificate dialog.
- * See UntrustedCertificateDialog.
- */
-class UntrustedCertificatePlugin : public HbDeviceDialogPlugin
-{
- Q_OBJECT
-
-public:
- UntrustedCertificatePlugin();
- ~UntrustedCertificatePlugin();
-
-public: // from HbDeviceDialogPlugin
- bool accessAllowed(const QString &deviceDialogType, const QVariantMap ¶meters,
- const QVariantMap &securityInfo) const;
- HbDeviceDialogInterface *createDeviceDialog(const QString &deviceDialogType,
- const QVariantMap ¶meters);
- bool deviceDialogInfo(const QString &deviceDialogType, const QVariantMap ¶meters,
- DeviceDialogInfo *info) const;
- QStringList deviceDialogTypes() const;
- PluginFlags pluginFlags() const;
- int error() const;
-
-private:
- Q_DISABLE_COPY(UntrustedCertificatePlugin)
-
- int mError;
-};
-
-#endif // UNTRUSTEDCERTIFICATEPLUGIN_H
--- a/pkiutilities/untrustedcertificatedialog/inc/untrustedcertificatewidget.h Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,76 +0,0 @@
-/*
-* Copyright (c) 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: Device dialog plugin that shows untrusted certificate
-* dialog for TLS server authentication failure errors.
-*
-*/
-
-#ifndef UNTRUSTEDCERTIFICATEWIDGET_H
-#define UNTRUSTEDCERTIFICATEWIDGET_H
-
-#include <hbwidget.h>
-
-class UntrustedCertificateInfoBase;
-class QGraphicsLinearLayout;
-class HbLabel;
-class HbCheckBox;
-class HbGroupBox;
-class HbTextEdit;
-
-
-/**
- * Untrusted certificate widget.
- * Content widget for untrusted certificate dialog.
- * See UntrustedCertificateDialog.
- */
-class UntrustedCertificateWidget : public HbWidget
-{
- Q_OBJECT
-
-public: // constructor and destructor
- UntrustedCertificateWidget(QGraphicsItem *parent=0, Qt::WindowFlags flags=0);
- virtual ~UntrustedCertificateWidget();
-
- void constructFromParameters(const QVariantMap ¶meters);
- void updateFromParameters(const QVariantMap ¶meters);
- bool isPermanentAcceptAllowed() const;
- bool isPermanentAcceptChecked() const;
- QString serverName() const;
-
-public: // new platform specific functions
- bool isCertificateValid();
-
-private: // new platform specific functions
- void processEncodedCertificate(const QByteArray &encodedCert);
- QString descriptionText();
-
-private: // new functions
- Q_DISABLE_COPY(UntrustedCertificateWidget)
- void processParameters(const QVariantMap ¶meters);
-
-private: // data
- QGraphicsLinearLayout *mMainLayout;
- HbLabel *mProblemDescription;
- HbCheckBox *mAcceptPermanently;
- HbGroupBox *mCertificateDetailsGroupBox;
- HbTextEdit *mCertificateDetailsText;
- UntrustedCertificateInfoBase *mCertificateInfo;
- QString mServerName;
- int mValidationError;
- bool mIsSavingServerNamePossible;
-};
-
-
-#endif // UNTRUSTEDCERTIFICATEWIDGET_H
-
--- a/pkiutilities/untrustedcertificatedialog/rom/untrustedcertdialog.iby Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,24 +0,0 @@
-/*
-* Copyright (c) 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: ROM image files for untrusted certificate dialog.
-*
-*/
-
-#ifndef __UNTRUSTEDCERTDIALOG_IBY__
-#define __UNTRUSTEDCERTDIALOG_IBY__
-
-file=ABI_DIR\UREL\untrustedcertdialog.dll SHARED_LIB_DIR\untrustedcertdialog.dll UNPAGED
-data=\epoc32\data\z\pluginstub\untrustedcertdialog.qtplugin \resource\plugins\devicedialogs\untrustedcertdialog.qtplugin
-
-#endif // __UNTRUSTEDCERTDIALOG_IBY__
--- a/pkiutilities/untrustedcertificatedialog/rom/untrustedcertdialog_resources.iby Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,24 +0,0 @@
-/*
-* Copyright (c) 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: ROM image files for untrusted certificate dialog.
-*
-*/
-
-#ifndef __UNTRUSTEDCERTDIALOG_RESOURCES_IBY__
-#define __UNTRUSTEDCERTDIALOG_RESOURCES_IBY__
-
-//TODO: enable when localisations ready
-//data=DATAZ_/QT_TRANSLATIONS_DIR/untrustedcertdialog.qm QT_TRANSLATIONS_DIR/untrustedcertdialog.qm
-
-#endif // __UNTRUSTEDCERTDIALOG_RESOURCES_IBY__
--- a/pkiutilities/untrustedcertificatedialog/src/untrustedcertificatedialog.cpp Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,294 +0,0 @@
-/*
-* Copyright (c) 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: Device dialog plugin that shows untrusted certificate
-* dialog for TLS server authentication failure errors.
-*
-*/
-
-#include "untrustedcertificatedialog.h"
-#include "untrustedcertificatedefinitions.h"
-#include "untrustedcertificatewidget.h"
-#include <hblabel.h>
-#include <hbaction.h>
-#include <hbmessagebox.h>
-#include <QGraphicsLinearLayout>
-
-const int KNoError = 0; // KErrNone
-const int KParameterError = -6; // KErrArgument
-
-// TODO: replace with OST tracing
-#ifdef _DEBUG
-#include <QDebug>
-#define TRACE(x) qDebug() << x
-#define TRACE1(x,y) qDebug() << x << y
-#else
-#define TRACE(x)
-#define TRACE1(x,y)
-#endif
-
-
-// ----------------------------------------------------------------------------
-// UntrustedCertificateDialog::UntrustedCertificateDialog()
-// ----------------------------------------------------------------------------
-//
-UntrustedCertificateDialog::UntrustedCertificateDialog(const QVariantMap ¶meters) :
- HbDialog(), mLastError(KNoError), mContent(0), mResultMap(),
- mShowEventReceived(false), mOkAction(0)
-{
- constructDialog(parameters);
-}
-
-// ----------------------------------------------------------------------------
-// UntrustedCertificateDialog::~UntrustedCertificateDialog()
-// ----------------------------------------------------------------------------
-//
-UntrustedCertificateDialog::~UntrustedCertificateDialog()
-{
-}
-
-// ----------------------------------------------------------------------------
-// UntrustedCertificateDialog::setDeviceDialogParameters()
-// ----------------------------------------------------------------------------
-//
-bool UntrustedCertificateDialog::setDeviceDialogParameters(const QVariantMap ¶meters)
-{
- return updateFromParameters(parameters);
-}
-
-// ----------------------------------------------------------------------------
-// UntrustedCertificateDialog::deviceDialogError()
-// ----------------------------------------------------------------------------
-//
-int UntrustedCertificateDialog::deviceDialogError() const
-{
- return mLastError;
-}
-
-// ----------------------------------------------------------------------------
-// UntrustedCertificateDialog::closeDeviceDialog()
-// ----------------------------------------------------------------------------
-//
-void UntrustedCertificateDialog::closeDeviceDialog(bool byClient)
-{
- Q_UNUSED(byClient);
- TRACE("UntrustedCertificateDialog::closeDeviceDialog");
- close();
-
- // If show event has been received, close is signalled from hide event.
- // If not, hide event does not come and close is signalled from here.
- if (!mShowEventReceived) {
- emit deviceDialogClosed();
- }
-}
-
-// ----------------------------------------------------------------------------
-// UntrustedCertificateDialog::deviceDialogWidget()
-// ----------------------------------------------------------------------------
-//
-HbDialog *UntrustedCertificateDialog::deviceDialogWidget() const
-{
- return const_cast<UntrustedCertificateDialog*>(this);
-}
-
-// ----------------------------------------------------------------------------
-// UntrustedCertificateDialog::hideEvent()
-// ----------------------------------------------------------------------------
-//
-void UntrustedCertificateDialog::hideEvent(QHideEvent *event)
-{
- TRACE("UntrustedCertificateDialog::hideEvent");
- HbDialog::hideEvent(event);
- emit deviceDialogClosed();
-}
-
-// ----------------------------------------------------------------------------
-// UntrustedCertificateDialog::showEvent()
-// ----------------------------------------------------------------------------
-//
-void UntrustedCertificateDialog::showEvent(QShowEvent *event)
-{
- TRACE("UntrustedCertificateDialog::showEvent");
- HbDialog::showEvent(event);
- mShowEventReceived = true;
-}
-
-// ----------------------------------------------------------------------------
-// UntrustedCertificateDialog::isParametersValid()
-// ----------------------------------------------------------------------------
-//
-bool UntrustedCertificateDialog::isParametersValid(const QVariantMap ¶meters)
-{
- if (parameters.contains(KUntrustedCertEncodedCertificate) &&
- parameters.contains(KUntrustedCertServerName) &&
- parameters.contains(KUntrustedCertValidationError)) {
- return true;
- }
- mLastError = KParameterError;
- return false;
-}
-
-// ----------------------------------------------------------------------------
-// UntrustedCertificateDialog::constructDialog()
-// ----------------------------------------------------------------------------
-//
-bool UntrustedCertificateDialog::constructDialog(const QVariantMap ¶meters)
-{
- TRACE("UntrustedCertificateDialog::constructDialog");
- if (!isParametersValid(parameters)) {
- return false;
- }
-
- setTimeout(HbPopup::NoTimeout);
- setDismissPolicy(HbPopup::NoDismiss);
- setModal(true);
-
- //: Title text in untrusted certificate dialog. User is opening secure
- //: connection to site or service, which authenticity cannot be proved,
- //: or there are other problems in the site certificate. User needs to
- //: decide if she/he accepts the risk and opens the secure connection
- //: anyway, or if the connection is rejected.
- //TODO: localised UI string
- //QString titleText = hbTrId("");
- QString titleText = tr("Untrusted certificate");
- setHeadingWidget(new HbLabel(titleText, this));
-
- Q_ASSERT(mContent == 0);
- mContent = new UntrustedCertificateWidget(this);
- mContent->constructFromParameters(parameters);
- setContentWidget(mContent);
-
- if (mContent->isCertificateValid()) {
- mOkAction = new HbAction(qtTrId("txt_common_button_ok"), this);
- addAction(mOkAction);
- disconnect(mOkAction, SIGNAL(triggered()), this, SLOT(close()));
- connect(mOkAction, SIGNAL(triggered()), this, SLOT(handleAccepted()));
-
- HbAction *cancelAction = new HbAction(qtTrId("txt_common_button_cancel"), this);
- addAction(cancelAction);
- disconnect(cancelAction, SIGNAL(triggered()), this, SLOT(close()));
- connect(cancelAction, SIGNAL(triggered()), this, SLOT(handleRejected()));
- } else {
- HbAction *closeAction = new HbAction(qtTrId("txt_common_button_close"), this);
- addAction(closeAction);
- disconnect(closeAction, SIGNAL(triggered()), this, SLOT(close()));
- connect(closeAction, SIGNAL(triggered()), this, SLOT(handleRejected()));
- }
-
- return true;
-}
-
-// ----------------------------------------------------------------------------
-// UntrustedCertificateDialog::updateFromParameters()
-// ----------------------------------------------------------------------------
-//
-bool UntrustedCertificateDialog::updateFromParameters(const QVariantMap ¶meters)
-{
- TRACE("UntrustedCertificateDialog::updateFromParameters");
- if (!isParametersValid(parameters)) {
- return false;
- }
-
- Q_ASSERT(mContent != 0);
- mContent->updateFromParameters(parameters);
- return true;
-}
-
-// ----------------------------------------------------------------------------
-// UntrustedCertificateDialog::sendResult()
-// ----------------------------------------------------------------------------
-//
-void UntrustedCertificateDialog::sendResult(int result)
-{
- TRACE1("UntrustedCertificateDialog::sendResult", result);
- QVariant resultValue(result);
- mResultMap.insert(KUntrustedCertificateDialogResult, resultValue);
- emit deviceDialogData(mResultMap);
-}
-
-// ----------------------------------------------------------------------------
-// UntrustedCertificateDialog::confirmPermanentAccept()
-// ----------------------------------------------------------------------------
-//
-void UntrustedCertificateDialog::confirmPermanentAccept()
-{
- TRACE("UntrustedCertificateDialog::confirmPermanentAccept");
-
- HbDialog *dialog = new HbDialog();
- dialog->setAttribute(Qt::WA_DeleteOnClose, true);
- dialog->setTimeout(HbPopup::NoTimeout);
- dialog->setDismissPolicy(HbDialog::NoDismiss);
- dialog->setModal(true);
-
- // TODO: localised UI string needed
- QString questionTitle = tr("Certificate access");
- dialog->setHeadingWidget(new HbLabel(questionTitle));
-
- HbWidget *widget = new HbWidget();
- QGraphicsLinearLayout* layout = new QGraphicsLinearLayout();
- // TODO: localized UI string needed
- QString questionText =
- tr("Connections to '%1' will be made without warnings. Continue?")
- .arg(mContent->serverName());
- HbLabel *textLabel = new HbLabel(questionText);
- textLabel->setTextWrapping(Hb::TextWordWrap);
- layout->addItem(textLabel);
- widget->setLayout(layout);
- dialog->setContentWidget(widget);
-
- HbAction *yesAction = new HbAction(hbTrId("txt_common_button_yes"));
- dialog->addAction(yesAction);
- disconnect(yesAction, SIGNAL(triggered()), this, SLOT(close()));
- connect(yesAction, SIGNAL(triggered()), this, SLOT(handlePermanentAcceptance()));
- dialog->addAction(new HbAction(hbTrId("txt_common_button_no")));
-
- dialog->show();
-}
-
-// ----------------------------------------------------------------------------
-// UntrustedCertificateDialog::handleAccepted()
-// ----------------------------------------------------------------------------
-//
-void UntrustedCertificateDialog::handleAccepted()
-{
- TRACE("UntrustedCertificateDialog::handleAccepted");
- if (mContent->isPermanentAcceptChecked()) {
- confirmPermanentAccept();
- } else {
- sendResult(KDialogAccepted);
- close();
- }
-}
-
-// ----------------------------------------------------------------------------
-// UntrustedCertificateDialog::handleRejected()
-// ----------------------------------------------------------------------------
-//
-void UntrustedCertificateDialog::handleRejected()
-{
- TRACE("UntrustedCertificateDialog::handleRejected");
- sendResult(KDialogRejected);
- close();
-}
-
-// ----------------------------------------------------------------------------
-// UntrustedCertificateDialog::handlePermanentAcceptance()
-// ----------------------------------------------------------------------------
-//
-void UntrustedCertificateDialog::handlePermanentAcceptance()
-{
- TRACE("UntrustedCertificateDialog::handlePermanentAcceptance");
- sendResult(KDialogAcceptedPermanently);
- close();
-}
-
--- a/pkiutilities/untrustedcertificatedialog/src/untrustedcertificateinfo_symbian.cpp Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,227 +0,0 @@
-/*
-* Copyright (c) 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: Certificate info class for TLS untrusted certificate dialog.
-*
-*/
-
-#include "untrustedcertificateinfo_symbian.h"
-#include <signed.h> // TAlgorithmId
-#include <x509cert.h> // CX509Certificate
-#include <X509CertNameParser.h> // X509CertNameParser
-#include <hash.h> // CMD5
-
-
-// ======== LOCAL FUNCTIONS ========
-
-// ----------------------------------------------------------------------------
-// mapAlgorithm()
-// ----------------------------------------------------------------------------
-//
-UntrustedCertificateInfoBase::Algorithm mapAlgorithm(TAlgorithmId aAlgId)
-{
- UntrustedCertificateInfoBase::Algorithm algorithm =
- UntrustedCertificateInfoBase::Unknown;
- switch(aAlgId) {
- case ERSA:
- algorithm = UntrustedCertificateInfoBase::RSA;
- break;
- case EDSA:
- algorithm = UntrustedCertificateInfoBase::DSA;
- break;
- case EDH:
- algorithm = UntrustedCertificateInfoBase::DH;
- break;
- case EMD2:
- algorithm = UntrustedCertificateInfoBase::MD2;
- break;
- case EMD5:
- algorithm = UntrustedCertificateInfoBase::MD5;
- break;
- case ESHA1:
- algorithm = UntrustedCertificateInfoBase::SHA1;
- break;
- case ESHA224:
- algorithm = UntrustedCertificateInfoBase::SHA224;
- break;
- case ESHA256:
- algorithm = UntrustedCertificateInfoBase::SHA256;
- break;
- case ESHA384:
- algorithm = UntrustedCertificateInfoBase::SHA384;
- break;
- case ESHA512:
- algorithm = UntrustedCertificateInfoBase::SHA512;
- break;
- default:
- break;
- }
- return algorithm;
-}
-
-// ----------------------------------------------------------------------------
-// convertDateTime()
-// ----------------------------------------------------------------------------
-//
-void convertDateTime(const TTime& aFromTime, QDateTime& aToDateTime)
-{
- const TDateTime &symbianDateTime = aFromTime.DateTime();
-
- QDate date(symbianDateTime.Year(), symbianDateTime.Month()+1, symbianDateTime.Day()+1);
- QTime time(symbianDateTime.Hour(), symbianDateTime.Minute(), symbianDateTime.Second());
- aToDateTime.setDate(date);
- aToDateTime.setTime(time);
-}
-
-
-// ======== MEMBER FUNCTIONS ========
-
-// ----------------------------------------------------------------------------
-// UntrustedCertificateInfoSymbian::UntrustedCertificateInfoSymbian()
-// ----------------------------------------------------------------------------
-//
-UntrustedCertificateInfoSymbian::UntrustedCertificateInfoSymbian(
- const QByteArray &aEncodedCert) : UntrustedCertificateInfoBase(),
- mCert(0), mMd5Fingerprint()
-{
- QT_TRAP_THROWING(ConstructL(aEncodedCert));
-}
-
-// ----------------------------------------------------------------------------
-// UntrustedCertificateInfoSymbian::~UntrustedCertificateInfoSymbian()
-// ----------------------------------------------------------------------------
-//
-UntrustedCertificateInfoSymbian::~UntrustedCertificateInfoSymbian()
-{
- delete mCert;
-}
-
-// ----------------------------------------------------------------------------
-// UntrustedCertificateInfoSymbian::commonNameMatches()
-// ----------------------------------------------------------------------------
-//
-bool UntrustedCertificateInfoSymbian::commonNameMatches(const QString &siteName) const
-{
- bool matches = false;
- QT_TRAP_THROWING(matches = CommonNameMatchesL(siteName));
- return matches;
-}
-
-// ----------------------------------------------------------------------------
-// UntrustedCertificateInfoSymbian::certificateDetails()
-// ----------------------------------------------------------------------------
-//
-QString UntrustedCertificateInfoSymbian::certificateDetails(const QString &siteName) const
-{
- // TODO: localized UI string needed
- QString details = tr("Service:\n%1\n\nIssuer:\n%2\n\nSubject:\n%3\n\n"
- "Valid from:\n%4\n\nValid until:\n%5\n\nCertificate format:\n%6\n\n"
- "Algorithm:\n%7\n\nSerial number:\n%8\n\n"
- "Fingerprint (SHA1):\n%9\n\nFingerprint (MD5):\n%10")
- .arg(siteName) // %1
- .arg(issuerName()) // %2
- .arg(subjectName()) // %3
- .arg(validFrom().toString()) // %4
- .arg(validTo().toString()) // %5
- .arg(format()) // %6
- .arg(combinedAlgorithmName()) // %7
- .arg(formattedSerialNumber(serialNumber())) // %8
- .arg(formattedFingerprint(fingerprint())) // %9
- .arg(formattedFingerprint(mMd5Fingerprint)); // %10
- return details;
-}
-
-// ----------------------------------------------------------------------------
-// UntrustedCertificateInfoSymbian::ConstructL()
-// ----------------------------------------------------------------------------
-//
-void UntrustedCertificateInfoSymbian::ConstructL(const QByteArray &aEncodedCert)
-{
- TPtrC8 encodedCert( reinterpret_cast<const TText8*>( aEncodedCert.constData() ),
- aEncodedCert.length() );
-
- ASSERT( mCert == 0 );
- mCert = CX509Certificate::NewL( encodedCert );
-
- HBufC16* subjectBuf = NULL;
- X509CertNameParser::SubjectFullNameL( *mCert, subjectBuf );
- CleanupStack::PushL( subjectBuf );
- QT_TRYCATCH_LEAVING( mSubjectName =
- QString::fromUtf16(subjectBuf->Ptr(), subjectBuf->Length()) );
- CleanupStack::PopAndDestroy( subjectBuf );
-
- HBufC16* issuerBuf = NULL;
- X509CertNameParser::IssuerFullNameL( *mCert, issuerBuf );
- CleanupStack::PushL( issuerBuf );
- QT_TRYCATCH_LEAVING( mIssuerName =
- QString::fromUtf16(issuerBuf->Ptr(), issuerBuf->Length()));
- CleanupStack::PopAndDestroy( issuerBuf );
-
- TPtrC8 fingerprint = mCert->Fingerprint();
- QT_TRYCATCH_LEAVING( mFingerprint = QByteArray::fromRawData(
- reinterpret_cast<const char*>(fingerprint.Ptr()), fingerprint.Length()) );
-
- mMd5Fingerprint = Md5FingerprintL( mCert->Encoding() );
-
- TPtrC8 serialNumber = mCert->SerialNumber();
- QT_TRYCATCH_LEAVING( mSerialNumber = QByteArray::fromRawData(
- reinterpret_cast<const char*>(serialNumber.Ptr()), serialNumber.Length()) );
-
- const CValidityPeriod& validityPeriod = mCert->ValidityPeriod();
- convertDateTime(validityPeriod.Start(), mValidFrom);
- convertDateTime(validityPeriod.Finish(), mValidTo);
-
- mFormat = X509Certificate;
-
- const CSigningAlgorithmIdentifier& alg = mCert->SigningAlgorithm();
- mDigestAlgorithm = mapAlgorithm(alg.DigestAlgorithm().Algorithm());
- mAsymmetricAlgorithm = mapAlgorithm(alg.AsymmetricAlgorithm().Algorithm());
-}
-
-// ----------------------------------------------------------------------------
-// UntrustedCertificateInfoSymbian::CommonNameMatchesL()
-// ----------------------------------------------------------------------------
-//
-bool UntrustedCertificateInfoSymbian::CommonNameMatchesL(const QString &siteName) const
-{
- bool matches = false;
- const CX500DistinguishedName& distinguishedName = mCert->SubjectName();
- HBufC* commonNameSymbian = distinguishedName.ExtractFieldL( KX520CommonName );
- if (commonNameSymbian) {
- CleanupStack::PushL(commonNameSymbian);
- QString commonName = QString::fromRawData(
- reinterpret_cast<const QChar*>(commonNameSymbian->Ptr()),
- commonNameSymbian->Length());
- matches = ( commonName == siteName ); // TODO: accept '*' chars in commonName?
- CleanupStack::PopAndDestroy(commonNameSymbian);
- }
- return matches;
-}
-
-// ----------------------------------------------------------------------------
-// UntrustedCertificateInfoSymbian::Md5FingerprintL()
-// ----------------------------------------------------------------------------
-//
-QByteArray UntrustedCertificateInfoSymbian::Md5FingerprintL( const TDesC8& aEncodedCert ) const
-{
- CMD5* md5 = CMD5::NewL();
- CleanupStack::PushL( md5 );
-
- const TPtrC8 fingerprintSymbian = md5->Hash( aEncodedCert );
- QByteArray fingerprint( reinterpret_cast<const char*>( fingerprintSymbian.Ptr() ),
- fingerprintSymbian.Length() );
-
- CleanupStack::PopAndDestroy( md5 );
- return fingerprint;
-}
-
--- a/pkiutilities/untrustedcertificatedialog/src/untrustedcertificateinfobase.cpp Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,268 +0,0 @@
-/*
-* Copyright (c) 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: Certificate info class for TLS untrusted certificate dialog.
-*
-*/
-
-#include "UntrustedCertificateInfoBase.h"
-
-const char *KHexNumberFormatSimple = "%X";
-const char *KHexNumberFormatTwoDigitsWithLeadingZeroes = "%02X";
-const int KCharsPerBlock = 2;
-const char KBlockSeparator = ' ';
-
-
-// ======== MEMBER FUNCTIONS ========
-
-// ----------------------------------------------------------------------------
-// UntrustedCertificateInfoBase::UntrustedCertificateInfoBase()
-// ----------------------------------------------------------------------------
-//
-UntrustedCertificateInfoBase::UntrustedCertificateInfoBase() : QObject(),
- mSubjectName(), mIssuerName(), mFingerprint(), mSerialNumber(), mValidFrom(), mValidTo(),
- mFormat(UnknownCertificate), mDigestAlgorithm(Unknown), mAsymmetricAlgorithm(Unknown)
-{
-}
-
-// ----------------------------------------------------------------------------
-// UntrustedCertificateInfoBase::~UntrustedCertificateInfoBase()
-// ----------------------------------------------------------------------------
-//
-UntrustedCertificateInfoBase::~UntrustedCertificateInfoBase()
-{
-}
-
-// ----------------------------------------------------------------------------
-// UntrustedCertificateInfoBase::subjectName()
-// ----------------------------------------------------------------------------
-//
-const QString UntrustedCertificateInfoBase::subjectName() const
-{
- return mSubjectName;
-}
-
-// ----------------------------------------------------------------------------
-// UntrustedCertificateInfoBase::issuerName()
-// ----------------------------------------------------------------------------
-//
-const QString UntrustedCertificateInfoBase::issuerName() const
-{
- return mIssuerName;
-}
-
-// ----------------------------------------------------------------------------
-// UntrustedCertificateInfoBase::fingerprint()
-// ----------------------------------------------------------------------------
-//
-const QByteArray UntrustedCertificateInfoBase::fingerprint() const
-{
- return mFingerprint;
-}
-
-// ----------------------------------------------------------------------------
-// UntrustedCertificateInfoBase::serialNumber()
-// ----------------------------------------------------------------------------
-//
-const QByteArray UntrustedCertificateInfoBase::serialNumber() const
-{
- return mSerialNumber;
-}
-
-// ----------------------------------------------------------------------------
-// UntrustedCertificateInfoBase::validFrom()
-// ----------------------------------------------------------------------------
-//
-const QDateTime UntrustedCertificateInfoBase::validFrom() const
-{
- return mValidFrom;
-}
-
-// ----------------------------------------------------------------------------
-// UntrustedCertificateInfoBase::validTo()
-// ----------------------------------------------------------------------------
-//
-const QDateTime UntrustedCertificateInfoBase::validTo() const
-{
- return mValidTo;
-}
-
-// ----------------------------------------------------------------------------
-// UntrustedCertificateInfoBase::format()
-// ----------------------------------------------------------------------------
-//
-const QString UntrustedCertificateInfoBase::format() const
-{
- QString format;
- switch (mFormat) {
- case X509Certificate:
- //: Type name for X509 certificates displayed in certificate details.
- // TODO: localised UI string
- format = tr("X.509");
- break;
- default:
- //: Type name for unknown certificates displayed in certificate details.
- // TODO: localised UI string
- format = tr("Unknown");
- break;
- }
- return format;
-}
-
-// ----------------------------------------------------------------------------
-// UntrustedCertificateInfoBase::digestAlgorithm()
-// ----------------------------------------------------------------------------
-//
-const QString UntrustedCertificateInfoBase::digestAlgorithm() const
-{
- return algorithmName(mDigestAlgorithm);
-}
-
-// ----------------------------------------------------------------------------
-// UntrustedCertificateInfoBase::AsymmetricAlgorithm()
-// ----------------------------------------------------------------------------
-//
-const QString UntrustedCertificateInfoBase::asymmetricAlgorithm() const
-{
- return algorithmName(mAsymmetricAlgorithm);
-}
-
-// ----------------------------------------------------------------------------
-// UntrustedCertificateInfoBase::AsymmetricAlgorithm()
-// ----------------------------------------------------------------------------
-//
-const QString UntrustedCertificateInfoBase::combinedAlgorithmName() const
-{
- if (mDigestAlgorithm != Unknown && mAsymmetricAlgorithm != Unknown) {
- //: Format to combine digest and asymmetric algorithm names.
- //: %1 is digest (signing) and %2 is asymmetric (public-key) algorithm.
- // TODO: localised UI string needed
- return tr("%1%2").arg(digestAlgorithm()).arg(asymmetricAlgorithm());
- }
- //: Algorithm name for unknown algorithm.
- // TODO: localised UI string needed
- return tr("Unknown");
-}
-
-// ----------------------------------------------------------------------------
-// UntrustedCertificateInfoBase::formattedFingerprint()
-// ----------------------------------------------------------------------------
-//
-const QString UntrustedCertificateInfoBase::formattedFingerprint(
- const QByteArray &byteArray) const
-{
- QString formatted;
-
- QString number;
- int blockIndex = 0;
- int count = byteArray.count();
- for (int index = 0; index < count; ++index) {
- if (blockIndex == KCharsPerBlock) {
- formatted.append(KBlockSeparator);
- blockIndex = 0;
- }
- number.sprintf(KHexNumberFormatTwoDigitsWithLeadingZeroes,
- static_cast<unsigned char>(byteArray.at(index)));
- formatted.append(number);
- ++blockIndex;
- }
-
- return formatted;
-}
-
-// ----------------------------------------------------------------------------
-// UntrustedCertificateInfoBase::formattedSerialNumber()
-// ----------------------------------------------------------------------------
-//
-const QString UntrustedCertificateInfoBase::formattedSerialNumber(
- const QByteArray &serialNumber) const
-{
- QString formatted;
-
- QString number;
- int count = serialNumber.count();
- for (int index = 0; index < count; ++index) {
- number.sprintf(KHexNumberFormatSimple,
- static_cast<unsigned char>(serialNumber.at(index)));
- formatted.append(number);
- }
-
- return formatted;
-}
-
-// ----------------------------------------------------------------------------
-// UntrustedCertificateInfoBase::isDateValid()
-// ----------------------------------------------------------------------------
-//
-bool UntrustedCertificateInfoBase::isDateValid() const
-{
- QDateTime current = QDateTime::currentDateTime();
- return (mValidFrom <= current && mValidTo >= current);
-}
-
-// ----------------------------------------------------------------------------
-// UntrustedCertificateInfoBase::algorithmName()
-// ----------------------------------------------------------------------------
-//
-const QString UntrustedCertificateInfoBase::algorithmName(Algorithm algorithm) const
-{
- QString name;
- switch (algorithm) {
- case RSA:
- //: Certificate details algorithm name
- // TODO: localized UI string
- name = tr("RSA");
- break;
- case DSA:
- //: Certificate details algorithm name
- // TODO: localized UI string
- name = tr("DSA");
- break;
- case DH:
- //: Certificate details algorithm name
- // TODO: localized UI string
- name = tr("DH");
- break;
- case MD2:
- //: Certificate details algorithm name
- // TODO: localized UI string
- name = tr("MD2");
- break;
- case MD5:
- //: Certificate details algorithm name
- // TODO: localized UI string
- name = tr("MD5");
- break;
- case SHA1:
- //: Certificate details algorithm name
- // TODO: localized UI string
- name = tr("SHA1");
- break;
- case SHA224:
- case SHA256:
- case SHA384:
- case SHA512:
- //: Certificate details algorithm name
- // TODO: localized UI string
- name = tr("SHA2");
- break;
- case Unknown:
- default:
- //: Certificate details algorithm name
- // TODO: localized UI string
- name = tr("Unknown");
- break;
- }
- return name;
-}
-
--- a/pkiutilities/untrustedcertificatedialog/src/untrustedcertificateplugin.cpp Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,122 +0,0 @@
-/*
-* Copyright (c) 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: Device dialog plugin that shows untrusted certificate
-* dialog for TLS server authentication failure errors.
-*
-*/
-
-#include "untrustedcertificateplugin.h"
-#include "untrustedcertificatedialog.h"
-#include "untrustedcertificatedefinitions.h"
-
-
-// ----------------------------------------------------------------------------
-// UntrustedCertificatePlugin::UntrustedCertificatePlugin()
-// ----------------------------------------------------------------------------
-//
-UntrustedCertificatePlugin::UntrustedCertificatePlugin() : mError(KErrNone)
-{
-}
-
-// ----------------------------------------------------------------------------
-// UntrustedCertificatePlugin::~UntrustedCertificatePlugin()
-// ----------------------------------------------------------------------------
-//
-UntrustedCertificatePlugin::~UntrustedCertificatePlugin()
-{
-}
-
-// ----------------------------------------------------------------------------
-// UntrustedCertificatePlugin::accessAllowed()
-// ----------------------------------------------------------------------------
-//
-bool UntrustedCertificatePlugin::accessAllowed(const QString &deviceDialogType,
- const QVariantMap ¶meters, const QVariantMap &securityInfo) const
-{
- Q_UNUSED(deviceDialogType)
- Q_UNUSED(parameters)
- Q_UNUSED(securityInfo)
-
- // All clients are allowed to use.
- // TODO: should access be limited to certain clients?
- return true;
-}
-
-// ----------------------------------------------------------------------------
-// UntrustedCertificatePlugin::createDeviceDialog()
-// ----------------------------------------------------------------------------
-//
-HbDeviceDialogInterface *UntrustedCertificatePlugin::createDeviceDialog(
- const QString &deviceDialogType, const QVariantMap ¶meters)
-{
- Q_UNUSED(deviceDialogType)
-
- UntrustedCertificateDialog *deviceDialog = new UntrustedCertificateDialog(parameters);
- mError = deviceDialog->deviceDialogError();
- if (mError != KErrNone) {
- delete deviceDialog;
- deviceDialog = 0;
- }
-
- return deviceDialog;
-}
-
-// ----------------------------------------------------------------------------
-// UntrustedCertificatePlugin::deviceDialogInfo()
-// ----------------------------------------------------------------------------
-//
-bool UntrustedCertificatePlugin::deviceDialogInfo( const QString &deviceDialogType,
- const QVariantMap ¶meters, DeviceDialogInfo *info) const
-{
- Q_UNUSED(deviceDialogType);
- Q_UNUSED(parameters);
-
- info->group = GenericDeviceDialogGroup;
- info->flags = NoDeviceDialogFlags;
- info->priority = DefaultPriority;
-
- return true;
-}
-
-// ----------------------------------------------------------------------------
-// UntrustedCertificatePlugin::deviceDialogTypes()
-// ----------------------------------------------------------------------------
-//
-QStringList UntrustedCertificatePlugin::deviceDialogTypes() const
-{
- QStringList types;
- types << KUntrustedCertificateDialog;
- return types;
-}
-
-// ----------------------------------------------------------------------------
-// UntrustedCertificatePlugin::pluginFlags()
-// ----------------------------------------------------------------------------
-//
-HbDeviceDialogPlugin::PluginFlags UntrustedCertificatePlugin::pluginFlags() const
-{
- return NoPluginFlags;
-}
-
-// ----------------------------------------------------------------------------
-// UntrustedCertificatePlugin::error()
-// ----------------------------------------------------------------------------
-//
-int UntrustedCertificatePlugin::error() const
-{
- return mError;
-}
-
-Q_EXPORT_PLUGIN2(untrustedcertdialog,UntrustedCertificatePlugin)
-
--- a/pkiutilities/untrustedcertificatedialog/src/untrustedcertificatewidget.cpp Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,161 +0,0 @@
-/*
-* Copyright (c) 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: Device dialog plugin that shows untrusted certificate
-* dialog for TLS server authentication failure errors.
-*
-*/
-
-#include "untrustedcertificatewidget.h"
-#include "untrustedcertificatedefinitions.h"
-#include "untrustedcertificateinfobase.h"
-#include <hblabel.h>
-#include <hbcheckbox.h>
-#include <hbgroupbox.h>
-#include <hbtextedit.h>
-#include <QGraphicsLinearLayout>
-
-const int KUnknownError = -5; // KErrNotSupported
-
-
-// ======== MEMBER FUNCTIONS ========
-
-// ----------------------------------------------------------------------------
-// UntrustedCertificateWidget::UntrustedCertificateWidget()
-// ----------------------------------------------------------------------------
-//
-UntrustedCertificateWidget::UntrustedCertificateWidget(QGraphicsItem *parent,
- Qt::WindowFlags flags) : HbWidget(parent, flags),
- mMainLayout(0), mProblemDescription(0), mAcceptPermanently(0),
- mCertificateDetailsGroupBox(0), mCertificateDetailsText(0),
- mCertificateInfo(0), mServerName(), mValidationError(0),
- mIsSavingServerNamePossible(true)
-{
-}
-
-// ----------------------------------------------------------------------------
-// UntrustedCertificateWidget::~UntrustedCertificateWidget()
-// ----------------------------------------------------------------------------
-//
-UntrustedCertificateWidget::~UntrustedCertificateWidget()
-{
- delete mCertificateInfo;
-}
-
-// ----------------------------------------------------------------------------
-// UntrustedCertificateWidget::constructFromParameters()
-// ----------------------------------------------------------------------------
-//
-void UntrustedCertificateWidget::constructFromParameters(
- const QVariantMap ¶meters)
-{
- processParameters(parameters);
-
- Q_ASSERT(mMainLayout == 0);
- mMainLayout = new QGraphicsLinearLayout(Qt::Vertical);
-
- Q_ASSERT(mProblemDescription == 0);
- QString text = descriptionText().arg(mServerName);
- mProblemDescription = new HbLabel(text);
- mProblemDescription->setTextWrapping(Hb::TextWordWrap);
- mMainLayout->addItem(mProblemDescription);
-
- if (isPermanentAcceptAllowed()) {
- Q_ASSERT(mAcceptPermanently == 0);
- // TODO: localised UI string needed
- mAcceptPermanently = new HbCheckBox(tr("Accept permanently"));
- mMainLayout->addItem(mAcceptPermanently);
- }
-
- Q_ASSERT(mCertificateDetailsGroupBox == 0);
- mCertificateDetailsGroupBox = new HbGroupBox;
- // TODO: localized UI string needed
- mCertificateDetailsGroupBox->setHeading(tr("Details"));
-
- Q_ASSERT(mCertificateDetailsText == 0);
- mCertificateDetailsText = new HbTextEdit;
- QString certificateDetails = mCertificateInfo->certificateDetails(mServerName);
- mCertificateDetailsText->setPlainText(certificateDetails);
- mCertificateDetailsText->setReadOnly(true);
-
- mCertificateDetailsGroupBox->setContentWidget(mCertificateDetailsText);
- mCertificateDetailsGroupBox->setCollapsed(true);
- mMainLayout->addItem(mCertificateDetailsGroupBox);
-
- setLayout(mMainLayout);
- }
-
-// ----------------------------------------------------------------------------
-// UntrustedCertificateWidget::updateFromParameters()
-// ----------------------------------------------------------------------------
-//
-void UntrustedCertificateWidget::updateFromParameters(
- const QVariantMap ¶meters)
-{
- processParameters(parameters);
-}
-
-// ----------------------------------------------------------------------------
-// UntrustedCertificateWidget::isPermanentAcceptAllowed()
-// ----------------------------------------------------------------------------
-//
-bool UntrustedCertificateWidget::isPermanentAcceptAllowed() const
-{
- return (mCertificateInfo->isDateValid() && (mServerName.length() > 0) &&
- mIsSavingServerNamePossible);
-}
-
-// ----------------------------------------------------------------------------
-// UntrustedCertificateWidget::isPermanentAcceptChecked()
-// ----------------------------------------------------------------------------
-//
-bool UntrustedCertificateWidget::isPermanentAcceptChecked() const
-{
- if (mAcceptPermanently) {
- return (mAcceptPermanently->checkState() == Qt::Checked);
- }
- return false;
-}
-
-// ----------------------------------------------------------------------------
-// UntrustedCertificateWidget::serverName()
-// ----------------------------------------------------------------------------
-//
-QString UntrustedCertificateWidget::serverName() const
-{
- return mServerName;
-}
-
-// ----------------------------------------------------------------------------
-// UntrustedCertificateWidget::processParameters()
-// ----------------------------------------------------------------------------
-//
-void UntrustedCertificateWidget::processParameters(const QVariantMap ¶meters)
-{
- mServerName = parameters.value(KUntrustedCertServerName).toString();
-
- bool ok = false;
- mValidationError = KUnknownError;
- int value = parameters.value(KUntrustedCertValidationError).toInt(&ok);
- if (ok) {
- mValidationError = value;
- }
-
- QByteArray encodedCert = parameters.value(KUntrustedCertEncodedCertificate).toByteArray();
- processEncodedCertificate(encodedCert);
-
- if (parameters.contains(KUntrustedCertTrustedSiteStoreFail)) {
- mIsSavingServerNamePossible = false;
- }
-}
-
--- a/pkiutilities/untrustedcertificatedialog/src/untrustedcertificatewidget_symbian.cpp Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,94 +0,0 @@
-/*
-* Copyright (c) 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: Device dialog plugin that shows untrusted certificate
-* dialog for TLS server authentication failure errors.
-*
-*/
-
-#include "untrustedcertificatewidget.h"
-#include "untrustedcertificatedefinitions.h"
-#include "untrustedcertificateinfobase.h"
-#include "untrustedcertificateinfo_symbian.h"
-#include <securitydefs.h> // TValidationError
-
-
-// ======== MEMBER FUNCTIONS ========
-
-// ----------------------------------------------------------------------------
-// UntrustedCertificateWidget::isInvalidCertificate()
-// ----------------------------------------------------------------------------
-//
-bool UntrustedCertificateWidget::isCertificateValid()
-{
- return (mValidationError != ESignatureInvalid && mValidationError != ECertificateRevoked);
-}
-
-// ----------------------------------------------------------------------------
-// UntrustedCertificateWidget::processEncodedCertificate()
-// ----------------------------------------------------------------------------
-//
-void UntrustedCertificateWidget::processEncodedCertificate(const QByteArray &encodedCert)
-{
- UntrustedCertificateInfoBase *info = new UntrustedCertificateInfoSymbian(encodedCert);
- if (mCertificateInfo) {
- delete mCertificateInfo;
- mCertificateInfo = 0;
- }
- mCertificateInfo = info;
-}
-
-// ----------------------------------------------------------------------------
-// UntrustedCertificateWidget::descriptionText()
-// ----------------------------------------------------------------------------
-//
-QString UntrustedCertificateWidget::descriptionText()
-{
- QString text;
- if (!isCertificateValid()) {
- //: Information note text shown if the server certificate has an invalid signature
- // TODO: localised UI string
- text = tr("'%1' has sent an invalid certificate. Connection cannot be created.");
- } else if (mValidationError == EValidatedOK || mValidationError == EDateOutOfRange) {
- bool isDateValid = mCertificateInfo->isDateValid();
- bool isSiteValid = mCertificateInfo->commonNameMatches(mServerName);
- if (!isDateValid && !isSiteValid) {
- // TODO: hbTrId("txt_untrustedcert_dialog _accept_site_ood")
- text = tr("'%1' has sent a certificate with different site name and which is out of date. Accept anyway?");
- } else if (!isSiteValid) {
- // TODO: hbTrId("txt_untrustedcert_dialog _accept_site"
- text = tr("'%1' has sent a certificate with different site name. Accept anyway?");
- } else {
- // TODO: hbTrId("txt_untrustedcert_dialog_accept_ood")
- text = tr("'%1' has sent a certificate which is out of date. Accept anyway?");
- }
- } else {
- bool isDateValid = mCertificateInfo->isDateValid();
- bool isSiteValid = mCertificateInfo->commonNameMatches(mServerName);
- if (!isDateValid && !isSiteValid) {
- // TODO: hbTrId("txt_untrustedcert_dialog _accept_untrusted_site_ood"
- text = tr("'%1' has sent an untrusted certificate with different site name and which is out of date. Accept anyway?");
- } else if (!isSiteValid) {
- // TODO: hbTrId("txt_untrustedcert_dialog _accept_untrusted_site"
- text = tr("'%1' has sent an untrusted certificate with different site name. Accept anyway?");
- } else if (!isDateValid) {
- // TODO: hbTrId("txt_untrustedcert_dialog _accept_untrusted_ood")
- text = tr("'%1' has sent an untrusted certificate which is out of date. Accept anyway?");
- } else {
- // TODO: hbTrId("txt_untrustedcert_dialog _accept_untrusted"
- text = tr("'%1' has sent an untrusted certificate. Accept anyway?");
- }
- }
- return text;
-}
-
--- a/pkiutilities/untrustedcertificatedialog/tsrc/dialoglauncher/ctc_instrument_code.bat Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,34 +0,0 @@
-@echo off
-rem
-rem Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
-rem All rights reserved.
-rem This component and the accompanying materials are made available
-rem under the terms of "Eclipse Public License v1.0"
-rem which accompanies this distribution, and is available
-rem at the URL "http://www.eclipse.org/legal/epl-v10.html".
-rem
-rem Initial Contributors:
-rem Nokia Corporation - initial contribution.
-rem
-rem Contributors:
-rem
-rem Description: TLS untrusted certificate dialog test code.
-rem
-
-echo ----------------------------------------------------------------------
-echo.
-echo Instrumenting code (armv5 urel and winscw udeb, decision coverage)
-echo.
-echo ----------------------------------------------------------------------
-echo.
-pushd ..\..
-if exist MON.sym del MON.sym
-if exist MON.dat del MON.dat
-if exist profile.txt del profile.txt
-call qmake
-call make distclean
-call qmake
-call ctcwrap -i d -2comp -C "EXCLUDE+*.UID.CPP" -C "EXCLUDE+moc_*.cpp" sbs -c armv5_urel
-call ctcwrap -i d -2comp -C "EXCLUDE+*.UID.CPP" -C "EXCLUDE+moc_*.cpp" sbs -c winscw_udeb
-popd
-
--- a/pkiutilities/untrustedcertificatedialog/tsrc/dialoglauncher/ctc_remove_instrumentation.bat Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,31 +0,0 @@
-@echo off
-rem
-rem Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
-rem All rights reserved.
-rem This component and the accompanying materials are made available
-rem under the terms of "Eclipse Public License v1.0"
-rem which accompanies this distribution, and is available
-rem at the URL "http://www.eclipse.org/legal/epl-v10.html".
-rem
-rem Initial Contributors:
-rem Nokia Corporation - initial contribution.
-rem
-rem Contributors:
-rem
-rem Description: TLS untrusted certificate dialog test code.
-rem
-
-echo ----------------------------------------------------------------------
-echo.
-echo Removing instrumentation
-echo.
-echo ----------------------------------------------------------------------
-echo.
-pushd ..\..
-call qmake
-call make distclean
-call qmake
-call sbs -c armv5_urel
-call sbs -c winscw_udeb
-popd
-
--- a/pkiutilities/untrustedcertificatedialog/tsrc/dialoglauncher/dialoglauncher.cpp Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,189 +0,0 @@
-/*
-* Copyright (c) 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: Test application for untrusted certificate dialog.
-*
-*/
-
-#include "dialoglauncher.h"
-#include "../../inc/untrustedcertificatedefinitions.h"
-#include <hbmainwindow.h>
-#include <hbview.h>
-#include <hblabel.h>
-#include <hbcombobox.h>
-#include <hbtextedit.h>
-#include <hbpushbutton.h>
-#include <hbdevicedialog.h>
-#include <hbmessagebox.h>
-#include <QDir>
-#include <QBuffer>
-#include <QGraphicsLinearLayout>
-
-#ifdef Q_OS_SYMBIAN
-#include <securitydefs.h> // EValidatedOK, ESignatureInvalid, EDateOutOfRange
-#endif
-
-const QString KTestCertDir = "c:/data/testCerts";
-
-
-UntrustedCertDialogLauncher::UntrustedCertDialogLauncher(int& argc, char* argv[])
- : HbApplication(argc, argv), mMainWindow(0), mMainView(0)
-{
- mMainWindow = new HbMainWindow();
- mMainView = new HbView();
- mMainView->setTitle(tr("UntrustedCertDlg"));
-
- QGraphicsLinearLayout *layout = new QGraphicsLinearLayout(Qt::Vertical);
-
- HbLabel *certFile = new HbLabel(tr("Certificate file:"));
- layout->addItem(certFile);
-
- mFilesList = new HbComboBox;
- mFilesList->setEditable(false);
- QDir dir(KTestCertDir);
- if (dir.exists()) {
- QFileInfoList list = dir.entryInfoList(QDir::Files);
- QListIterator<QFileInfo> iter(list);
- while (iter.hasNext()) {
- const QFileInfo &info(iter.next());
- mFilesList->addItem(info.fileName());
- }
- }
- layout->addItem(mFilesList);
-
- mHostName = new HbTextEdit(tr("some.host.com"));
- layout->addItem(mHostName);
-
- HbPushButton *button = 0;
- button = new HbPushButton("Open (valid)");
- connect(button, SIGNAL(clicked()), this, SLOT(activateDialogDateValid()));
- layout->addItem(button);
-
- button = new HbPushButton("Open (out-of-date)");
- connect(button, SIGNAL(clicked()), this, SLOT(activateDialogOutOfDate()));
- layout->addItem(button);
-
- button = new HbPushButton("Open (untrusted)");
- connect(button, SIGNAL(clicked()), this, SLOT(activateDialogUntrusted()));
- layout->addItem(button);
-
- button = new HbPushButton("Open (invalid)");
- connect(button, SIGNAL(clicked()), this, SLOT(activateDialogInvalid()));
- layout->addItem(button);
-
- button = new HbPushButton("Exit");
- connect(button, SIGNAL(clicked()), qApp, SLOT(quit()));
- layout->addItem(button);
-
- mMainView->setLayout(layout);
- mMainWindow->addView(mMainView);
- mMainWindow->show();
-}
-
-UntrustedCertDialogLauncher::~UntrustedCertDialogLauncher()
-{
- delete mMainView;
- delete mMainWindow;
-}
-
-void UntrustedCertDialogLauncher::activateDialog(const QVariantMap ¶ms)
-{
- HbDeviceDialog *deviceDialog = new HbDeviceDialog(HbDeviceDialog::NoFlags, this);
- connect(deviceDialog, SIGNAL(dataReceived(QVariantMap)),
- this, SLOT(dataReceived(QVariantMap)));
- connect(deviceDialog, SIGNAL(deviceDialogClosed()),
- this, SLOT(deviceDialogClosed()));
-
- if (!deviceDialog->show(KUntrustedCertificateDialog, params)) {
- HbMessageBox::warning(tr("Cannot open dialog"));
- }
-}
-
-QVariantMap UntrustedCertDialogLauncher::readParams()
-{
- QVariantMap params;
-
- QString fileName = mFilesList->currentText();
- QFile file;
- QDir::setCurrent(KTestCertDir);
- file.setFileName(fileName);
- file.open(QIODevice::ReadOnly);
- QByteArray fileContent = file.readAll();
- file.close();
-
- params.insert(KUntrustedCertEncodedCertificate, fileContent);
-
- QString serverName = mHostName->toPlainText();
- params.insert(KUntrustedCertServerName, serverName);
-
- return params;
-}
-
-void UntrustedCertDialogLauncher::activateDialogDateValid()
-{
- QVariantMap params = readParams();
-
- int validationError = EValidatedOK;
- params.insert(KUntrustedCertValidationError, validationError);
-
- activateDialog(params);
-}
-
-void UntrustedCertDialogLauncher::activateDialogOutOfDate()
-{
- QVariantMap params = readParams();
-
- int validationError = EDateOutOfRange;
- params.insert(KUntrustedCertValidationError, validationError);
-
- activateDialog(params);
-}
-
-void UntrustedCertDialogLauncher::activateDialogUntrusted()
-{
- QVariantMap params = readParams();
-
- int validationError = EChainHasNoRoot;
- params.insert(KUntrustedCertValidationError, validationError);
-
- activateDialog(params);
-}
-
-void UntrustedCertDialogLauncher::activateDialogInvalid()
-{
- QVariantMap params = readParams();
-
- int validationError = ECertificateRevoked;
- params.insert(KUntrustedCertValidationError, validationError);
-
- activateDialog(params);
-}
-
-void UntrustedCertDialogLauncher::dataReceived(QVariantMap data)
-{
- QString values;
- foreach(const QString key, data.keys()) {
- values.append(key);
- values.append(tr(" = "));
- values.append(data.value(key).toString());
- values.append(tr("\n"));
- }
-
- HbMessageBox::information(tr("dataReceived %1").arg(values));
-}
-
-void UntrustedCertDialogLauncher::deviceDialogClosed()
-{
- HbMessageBox::information(tr("deviceDialogClosed"));
-}
-
--- a/pkiutilities/untrustedcertificatedialog/tsrc/dialoglauncher/dialoglauncher.h Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,57 +0,0 @@
-/*
-* Copyright (c) 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: Test application for untrusted certificate dialog.
-*
-*/
-
-#ifndef UNTRUSTEDCERTDIALOGLAUNCHER_H
-#define UNTRUSTEDCERTDIALOGLAUNCHER_H
-
-#include <hbapplication.h>
-
-class HbMainWindow;
-class HbView;
-class HbComboBox;
-class HbTextEdit;
-
-
-class UntrustedCertDialogLauncher : public HbApplication
-{
- Q_OBJECT
-
-public: // constructor and destructor
- UntrustedCertDialogLauncher(int& argc, char* argv[]);
- ~UntrustedCertDialogLauncher();
-
-private: // new functions
- void activateDialog(const QVariantMap ¶ms);
- QVariantMap readParams();
-
-private slots: // new functions
- void activateDialogDateValid();
- void activateDialogOutOfDate();
- void activateDialogUntrusted();
- void activateDialogInvalid();
- void dataReceived(QVariantMap data);
- void deviceDialogClosed();
-
-private: // data
- HbMainWindow *mMainWindow;
- HbView *mMainView;
- HbComboBox *mFilesList;
- HbTextEdit *mHostName;
-};
-
-#endif // UNTRUSTEDCERTDIALOGLAUNCHER_H
-
--- a/pkiutilities/untrustedcertificatedialog/tsrc/dialoglauncher/dialoglauncher.iby Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,25 +0,0 @@
-/*
-* Copyright (c) 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: Test application for untrusted certificate dialog.
-*
-*/
-
-
-#ifndef __DIALOGLAUNCHER_IBY__
-#define __DIALOGLAUNCHER_IBY__
-
-file=ABI_DIR/BUILD_DIR/dialoglauncher.exe SHARED_LIB_DIR/dialoglauncher.exe
-HB_UPGRADABLE_APP_REG_RSC( dialoglauncher )
-
-#endif // __DIALOGLAUNCHER_IBY__
--- a/pkiutilities/untrustedcertificatedialog/tsrc/dialoglauncher/dialoglauncher.pkg Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,43 +0,0 @@
-;
-; Copyright (c) 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: Test application for untrusted certificate dialog.
-;
-
-; Language
-&EN
-
-; SIS header: name, uid, version
-#{"dialoglauncher"},(0xE9bbd80d),1,0,0
-
-; Localised Vendor name
-%{"Nokia"}
-
-; Unique Vendor name
-:"Nokia"
-
-; Manual PKG pre-rules from PRO files
-; Default dependency to Qt libraries
-(0x2001E61C), 4, 6, 3, {"Qt"}
-
-; Default HW/platform dependencies
-[0x101F7961],0,0,0,{"S60ProductID"}
-[0x102032BE],0,0,0,{"S60ProductID"}
-[0x102752AE],0,0,0,{"S60ProductID"}
-[0x1028315F],0,0,0,{"S60ProductID"}
-
-; Executable and default resource files
-"/epoc32/release/armv5/urel/dialoglauncher.exe" - "!:\sys\bin\dialoglauncher.exe"
-"/epoc32/data/z/resource/apps/dialoglauncher.rsc" - "!:\resource\apps\dialoglauncher.rsc"
-"/epoc32/data/z/private/10003a3f/import/apps/dialoglauncher_reg.rsc" - "!:\private\10003a3f\import\apps\dialoglauncher_reg.rsc"
-
--- a/pkiutilities/untrustedcertificatedialog/tsrc/dialoglauncher/dialoglauncher.pro Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,36 +0,0 @@
-#
-# Copyright (c) 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: Test application for untrusted certificate dialog.
-#
-
-TEMPLATE = app
-TARGET = dialoglauncher
-CONFIG += hb
-DEPENDPATH += .
-INCLUDEPATH += .
-
-HEADERS += dialoglauncher.h
-SOURCES += dialoglaunchermain.cpp dialoglauncher.cpp
-
-symbian {
- TARGET.CAPABILITY = CAP_APPLICATION
-}
-
-BLD_INF_RULES.prj_exports += \
- "$${LITERAL_HASH}include <platform_paths.hrh>" \
- "dialoglauncher.iby CORE_APP_LAYER_IBY_EXPORT_PATH(dialoglauncher.iby)" \
- "test_cert_expired.crt /epoc32/winscw/c/data/testCerts/test_cert_expired.crt" \
- "test_cert_server.crt /epoc32/winscw/c/data/testCerts/test_cert_server.crt" \
- "test_cert_sha2.crt /epoc32/winscw/c/data/testCerts/test_cert_sha2.crt"
-
--- a/pkiutilities/untrustedcertificatedialog/tsrc/dialoglauncher/dialoglaunchermain.cpp Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,25 +0,0 @@
-/*
-* Copyright (c) 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: Test application for untrusted certificate dialog.
-*
-*/
-
-#include "dialoglauncher.h"
-
-int main(int argc, char *argv[])
-{
- UntrustedCertDialogLauncher app(argc, argv);
- return app.exec();
-}
-
--- a/pkiutilities/untrustedcertificatedialog/tsrc/dialoglauncher/test_cert_expired.crt Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,17 +0,0 @@
------BEGIN CERTIFICATE-----
-MIICpTCCAg6gAwIBAgIBBDANBgkqhkiG9w0BAQUFADBwMQswCQYDVQQGEwJGSTEQ
-MA4GA1UECBMHVGFtcGVyZTEQMA4GA1UEBxMHVGFtcGVyZTEOMAwGA1UEChMFTm9r
-aWExFTATBgNVBAsTDFM2MCBTZWN1cml0eTEWMBQGA1UEAxMNc29tZS5ob3N0LmNv
-bTAeFw0xMDA2MDIxMTQwMDFaFw0wNjA2MDIxMzU0MTdaMHAxCzAJBgNVBAYTAkZJ
-MRAwDgYDVQQIEwdUYW1wZXJlMRAwDgYDVQQHEwdUYW1wZXJlMQ4wDAYDVQQKEwVO
-b2tpYTEVMBMGA1UECxMMUzYwIFNlY3VyaXR5MRYwFAYDVQQDEw1zb21lLmhvc3Qu
-Y29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC/31fdPI+OcFPpaUC0D2XO
-SmmDbRdouyUa0LCQ9sP9ChiGBqT6g2uv/irhcezA+gUdlERrEQsmmeXuMqktG0Jb
-dxHJNSEboERr+65q7F4g3nJlxeNOlVllCKd4cFO7/oGRtduAJALkQmeKkPwgHPW+
-AFtG7U3rAd5xRjxzK8q7SQIDAQABo08wTTAMBgNVHRMBAf8EAjAAMB0GA1UdDgQW
-BBSJJ8UI5B6SWTG05XFyD3N+/6/+CTALBgNVHQ8EBAMCBeAwEQYJYIZIAYb4QgEB
-BAQDAgZAMA0GCSqGSIb3DQEBBQUAA4GBAB+kN6paDHW46pLwCR5yJLp5m7DoEJ/L
-IMWCmxKB90FADiBz+jvNQue3hO8SJVpvuRsy1y/e915LXYD4JAlIhZektB2DmYqg
-6Tic9tlcQh101myX9sV5ORC2BKg4Tol2PUDaiVsaXSU2cgfWmxPmza2d4RvMvkGp
-4L/EpR5ol37y
------END CERTIFICATE-----
Binary file pkiutilities/untrustedcertificatedialog/tsrc/dialoglauncher/test_cert_server.crt has changed
Binary file pkiutilities/untrustedcertificatedialog/tsrc/dialoglauncher/test_cert_sha2.crt has changed
--- a/pkiutilities/untrustedcertificatedialog/tsrc/tlsconntest/tlsconnection.cpp Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,471 +0,0 @@
-/*
-* Copyright (c) 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: Secure connections test application
-*
-*/
-
-#include "tlsconnection.h"
-#include <e32debug.h>
-#include <SecureSocket.h>
-#include <ssl_internal.h> // KSolInetSSL, KSoSSLDomainName
-
-_LIT( KData, "GET index.html" );
-_LIT( KSecureProtocol, "TLS1.0" );
-_LIT( KCommDBIapId, "IAP\\Id" );
-_LIT8( KNewLine, "\n" );
-
-const TInt KRecvBufferLength = 0x4000;
-const TInt KOneSecondInMicroseconds = 1000000;
-
-
-// ======== MEMBER FUNCTIONS ========
-
-// ---------------------------------------------------------
-// CTlsConnection::NewL
-// ---------------------------------------------------------
-//
-CTlsConnection* CTlsConnection::NewL( MTlsConnectionObserver& aObs )
- {
- RDebug::Print( _L("CTlsConnection::NewL()") );
- CTlsConnection* self = new ( ELeave ) CTlsConnection( aObs );
- CleanupStack::PushL( self );
- self->ConstructL();
- CleanupStack::Pop( self );
- return self;
- }
-
-// -----------------------------------------------------------------------------
-// CTlsConnection::~CTlsConnection()
-// -----------------------------------------------------------------------------
-//
-CTlsConnection::~CTlsConnection()
- {
- RDebug::Print( _L("CTlsConnection::~CTlsConnection()") );
- Cancel();
- iDelayTimer.Close();
- CloseSession();
- delete iSendBuffer;
- delete iSendBufPtr;
- }
-
-// -----------------------------------------------------------------------------
-// CTlsConnection::ConnectL()
-// -----------------------------------------------------------------------------
-//
-void CTlsConnection::ConnectL( const TDesC& aHostName, TInt aPort, TInt aDelay )
- {
- RDebug::Print( _L("CTlsConnection::Connect() host '%S', port %d, delay %d"),
- &aHostName, aPort, aDelay );
- CloseConnection();
-
- // Parameters
- if( iHostName )
- {
- delete iHostName;
- iHostName = NULL;
- }
- iHostName = aHostName.AllocL();
- iPort = aPort;
- iDelay = aDelay;
-
- // Save host name in 8-bit form for server certificate checking
- if( iHostNameForCertCheck )
- {
- delete iHostNameForCertCheck;
- iHostNameForCertCheck = NULL;
- }
- iHostNameForCertCheck = HBufC8::NewL( aHostName.Length() );
- TPtr8 ptr( iHostNameForCertCheck->Des() );
- ptr.Copy( aHostName );
-
- // Convert send data to 8-bit and add newline at the end
- if( iSendBuffer || iSendBufPtr )
- {
- delete iSendBuffer;
- iSendBuffer = NULL;
- delete iSendBufPtr;
- iSendBufPtr = NULL;
- }
- iSendBuffer = HBufC8::NewL( KData().Length() + 1 );
- iSendBufPtr = new( ELeave ) TPtr8( iSendBuffer->Des() );
- iSendBufPtr->Copy( KData );
- iSendBufPtr->Append( KNewLine );
-
- // Connect
- RDebug::Printf( "CTlsConnection::ConnectL iConnection.Open" );
- User::LeaveIfError( iConnection.Open( iSockServer ) );
- RDebug::Printf( "CTlsConnection::ConnectL iConnPref.SetDirection" );
- iConnPref.SetDirection( ECommDbConnectionDirectionOutgoing );
- if( iCurrentIap )
- {
- // uses the same IAP as before
- RDebug::Printf( "CTlsConnection::ConnectL SetIapId(%d)", iCurrentIap );
- iConnPref.SetIapId( iCurrentIap );
- iConnPref.SetDialogPreference( ECommDbDialogPrefDoNotPrompt );
- }
- else
- {
- // not defined, prompts the IAP from user
- RDebug::Printf( "CTlsConnection::ConnectL ECommDbDialogPrefPrompt" );
- iConnPref.SetDialogPreference( ECommDbDialogPrefPrompt );
- }
- StateChange( EConnectingNetwork );
- RDebug::Printf( "CTlsConnection::ConnectL iConnection.Start" );
- iConnection.Start( iConnPref, iStatus );
- SetActive();
- RDebug::Printf( "CTlsConnection::ConnectL end" );
- }
-
-// -----------------------------------------------------------------------------
-// CTlsConnection::Disconnect()
-// -----------------------------------------------------------------------------
-//
-void CTlsConnection::Disconnect()
- {
- Cancel();
- CloseConnection();
- StateChange( EDisconnected );
- }
-
-// -----------------------------------------------------------------------------
-// CTlsConnection::RunL
-// -----------------------------------------------------------------------------
-//
-void CTlsConnection::RunL()
- {
- if( iState == EReading && ( iStatus.Int() == KErrEof || iStatus.Int() == KErrSSLAlertCloseNotify ) )
- {
- RDebug::Printf( "CTlsConnection::RunL: EReading, EOF: iStatus = %d", iStatus.Int() );
- StateChange( EAllDone );
- }
- else if( iStatus.Int() == KErrNone )
- {
- switch ( iState )
- {
- case EConnectingNetwork:
- RDebug::Printf( "CTlsConnection::RunL: EConnectingNetwork" );
- if( !iCurrentIap )
- {
- iConnection.GetIntSetting( KCommDBIapId, iCurrentIap );
- }
- if( iDelay )
- {
- TTimeIntervalMicroSeconds32 delay( iDelay * KOneSecondInMicroseconds );
- iDelayTimer.After( iStatus, delay );
- StateChange( EOpeningDelay );
- }
- else
- {
- iConnection.ProgressNotification( iProgress, iStatus );
- StateChange( EResolvingHostName );
- }
- SetActive();
- break;
-
- case EOpeningDelay:
- iConnection.ProgressNotification( iProgress, iStatus );
- StateChange( EResolvingHostName );
- SetActive();
- break;
-
- case EResolvingHostName:
- {
- RDebug::Printf( "CTlsConnection::RunL: EResolvingHostName" );
- TInt err = iHostResolver.Open( iSockServer, KAfInet, KProtocolInetUdp, iConnection );
- User::LeaveIfError( err );
- iHostResolver.GetByName( *iHostName, iNameEntry, iStatus );
- StateChange( EConnectingServer );
- SetActive();
- }
- break;
-
- case EConnectingServer:
- {
- iRemoteAddr.SetFamily( KAfInet );
- iRemoteAddr = TInetAddr( iNameEntry().iAddr );
- iRemoteAddr.SetPort( iPort );
-
- RDebug::Printf( "CTlsConnection::RunL: EConnectingServer" );
- TInt err = iSocket.Open( iSockServer, KAfInet, KSockStream, KProtocolInetTcp, iConnection );
- RDebug::Printf( "CTlsConnection::RunL: iSocket.Open ret %d", err );
- User::LeaveIfError( err );
- iSocket.Connect( iRemoteAddr, iStatus );
- StateChange( EHandshaking );
- SetActive();
- }
- break;
-
- case EHandshaking:
- {
- RDebug::Printf( "CTlsConnection::RunL: EHandshaking" );
- if( iSecureSocket )
- {
- delete iSecureSocket;
- iSecureSocket = NULL;
- }
- iSecureSocket = CSecureSocket::NewL( iSocket, KSecureProtocol );
- iSecureSocket->SetDialogMode( EDialogModeAttended );
- // Server name must be set, otherwise CCTSecurityDialogsAO fails with KErrArgument
- iSecureSocket->SetOpt( KSoSSLDomainName, KSolInetSSL, *iHostNameForCertCheck );
- iSecureSocket->StartClientHandshake( iStatus );
- StateChange( EConnecting );
- SetActive();
- }
- break;
-
- case EConnecting:
- {
- RDebug::Printf( "CTlsConnection::RunL: EConnecting" );
- // Check if connection is closed
- const TInt stage( iProgress().iStage );
- if( stage == KConnectionClosed || stage == KLinkLayerClosed )
- {
- StateChange( EDisconnected );
- }
- else
- {
- iConnection.ProgressNotification( iProgress, iStatus );
- StateChange( ESending );
- SetActive();
- }
- }
- break;
-
- case ESending:
- RDebug::Printf( "CTlsConnection::RunL: ESending" );
- iSecureSocket->Send( *iSendBufPtr, iStatus, iSendLength );
- StateChange( EReading );
- SetActive();
- break;
-
- case EReading:
- iTotalRecvCount += iRecvLength();
- RDebug::Printf( "CTlsConnection::RunL: EReading, read %d bytes", iTotalRecvCount );
- iObserver.HandleTransferData( iRecvBuffer->Des(), iTotalRecvCount );
-
- iRecvBufPtr->Zero();
- iSecureSocket->RecvOneOrMore( *iRecvBufPtr, iStatus, iRecvLength );
- SetActive();
- break;
-
- default:
- break;
- }
- }
- else
- {
- RDebug::Printf( "CTlsConnection::RunL: ERROR iStatus %d", iStatus.Int() );
- CloseConnection();
- StateChange( EDisconnected, iStatus.Int() );
- }
- }
-
-// ---------------------------------------------------------------------------
-// CTlsConnection::DoCancel()
-// ---------------------------------------------------------------------------
-//
-void CTlsConnection::DoCancel()
- {
- RDebug::Printf( "CTlsConnection::DoCancel(), iState=%d", iState );
-
- switch( iState )
- {
- case EConnectingNetwork:
- iConnection.Stop();
- break;
-
- case EOpeningDelay:
- iDelayTimer.Cancel();
- iConnection.Stop();
- break;
-
- case EResolvingHostName:
- iConnection.CancelProgressNotification();
- iConnection.Stop();
- break;
-
- case EConnectingServer:
- iHostResolver.Cancel();
- iConnection.Stop();
- break;
-
- case EHandshaking:
- iSocket.CancelConnect();
- iConnection.Stop();
- break;
-
- case EConnecting:
- if( iSecureSocket )
- {
- iSecureSocket->CancelHandshake();
- delete iSecureSocket;
- iSecureSocket = NULL;
- }
- iSocket.Close();
- iConnection.Stop();
- break;
-
- case ESending:
- if( iSecureSocket )
- {
- iSecureSocket->CancelSend();
- delete iSecureSocket;
- iSecureSocket = NULL;
- }
- iSocket.Close();
- iConnection.Stop();
- break;
-
- case EReading:
- if( iSecureSocket )
- {
- iSecureSocket->CancelRecv();
- delete iSecureSocket;
- iSecureSocket = NULL;
- }
- iSocket.Close();
- iConnection.Stop();
- break;
-
- case EAllDone:
- case EIdle:
- case EDisconnected:
- default:
- break;
- }
-
- StateChange( EDisconnected );
- }
-
-
-// -----------------------------------------------------------------------------
-// CTlsConnection::RunError()
-// -----------------------------------------------------------------------------
-//
-TInt CTlsConnection::RunError( TInt aError )
- {
- RDebug::Printf( "CTlsConnection::RunError, aError: %d", aError );
- CloseConnection();
- StateChange( EDisconnected, aError );
- return KErrNone;
- }
-
-// -----------------------------------------------------------------------------
-// CTlsConnection::CTlsConnection()
-// -----------------------------------------------------------------------------
-//
-CTlsConnection::CTlsConnection( MTlsConnectionObserver& aObs ) :
- CActive( CActive::EPriorityStandard ), iObserver( aObs ), iState( ENotInitialized )
- {
- CActiveScheduler::Add( this );
- }
-
-// -----------------------------------------------------------------------------
-// CTlsConnection::ConstructL()
-// -----------------------------------------------------------------------------
-//
-void CTlsConnection::ConstructL()
- {
- RDebug::Printf( "CTlsConnection::ConstructL begin" );
-
- User::LeaveIfError( iDelayTimer.CreateLocal() );
- RDebug::Printf( "CTlsConnection::ConstructL iSockServer" );
- User::LeaveIfError( iSockServer.Connect() );
- RDebug::Printf( "CTlsConnection::ConstructL iConnection" );
- User::LeaveIfError( iConnection.Open( iSockServer ) );
- RDebug::Printf( "CTlsConnection::ConstructL buffers" );
- iRecvBuffer = HBufC8::NewL( KRecvBufferLength );
- iRecvBufPtr = new( ELeave ) TPtr8( iRecvBuffer->Des() );
- StateChange( EIdle );
-
- RDebug::Printf( "CTlsConnection::ConstructL end" );
- }
-
-// ---------------------------------------------------------------------------
-// CTlsConnection::CloseConnection()
-// ---------------------------------------------------------------------------
-//
-void CTlsConnection::CloseConnection()
- {
- RDebug::Printf( "CTlsConnection::CloseConnection begin" );
- if( iSecureSocket )
- {
- delete iSecureSocket;
- iSecureSocket = NULL;
- }
- iSocket.Close();
- iHostResolver.Close();
- if( iConnection.SubSessionHandle() )
- {
- if( iState >= EConnectingNetwork )
- {
- TInt err = iConnection.Stop();
- if( err != KErrNone )
- {
- RDebug::Printf( "iConnection.Stop() failed: %d", err );
- }
- }
- iConnection.Close();
- }
- RDebug::Printf( "CTlsConnection::CloseConnection end" );
- }
-
-// ---------------------------------------------------------------------------
-// CTlsConnection::CloseSession()
-// ---------------------------------------------------------------------------
-//
-void CTlsConnection::CloseSession()
- {
- RDebug::Printf( "CTlsConnection::CloseSession" );
- CloseConnection();
- iSockServer.Close();
- delete iHostName;
- iHostName = NULL;
- delete iHostNameForCertCheck;
- iHostNameForCertCheck = NULL;
- delete iRecvBuffer;
- iRecvBuffer = NULL;
- delete iRecvBufPtr;
- iRecvBufPtr = NULL;
- StateChange( EDisconnected );
- }
-
-// -----------------------------------------------------------------------------
-// CTlsConnection::StateChange()
-// -----------------------------------------------------------------------------
-//
-void CTlsConnection::StateChange( TTlsConnectionState aNewState, TInt aError )
- {
- RDebug::Printf( "CTlsConnection::StateChange, aNewState=%d, aError=%d", aNewState, aError );
- if( aNewState != iState && iState != EAllDone )
- {
- iState = aNewState;
- iObserver.HandleNetworkEvent( aNewState, aError );
- }
- }
-
-// ---------------------------------------------------------------------------
-// CTlsConnection::ReadL()
-// ---------------------------------------------------------------------------
-//
-void CTlsConnection::ReadL()
- {
- RDebug::Printf( "CTlsConnection::ReadL(), iState=%d", iState );
-
- TPtr8 recvBuffer = iRecvBuffer->Des();
- recvBuffer.Zero();
- iSecureSocket->RecvOneOrMore( recvBuffer, iStatus, iRecvLength );
- SetActive();
- }
-
--- a/pkiutilities/untrustedcertificatedialog/tsrc/tlsconntest/tlsconnection.h Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,81 +0,0 @@
-/*
-* Copyright (c) 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: Secure connections test application
-*
-*/
-
-#ifndef C_TESTTLSCONNECTION_H
-#define C_TESTTLSCONNECTION_H
-
-#include <es_sock.h> // RConnection
-#include <in_sock.h> // TInetAddr
-#include <commdbconnpref.h> // TCommDbConnPref
-#include "tlsconnectionobserver.h" // MTlsConnectionObserver, TTlsConnectionState
-
-class CSecureSocket;
-
-
-class CTlsConnection : public CActive
- {
- public: // new functions
- static CTlsConnection* NewL( MTlsConnectionObserver& aObs );
- ~CTlsConnection();
- void ConnectL( const TDesC& aHostName, TInt aPort, TInt aDelay );
- void Disconnect();
-
- protected: // from CActive
- void RunL();
- void DoCancel();
- TInt RunError( TInt aError );
-
- private: // constructors
- CTlsConnection( MTlsConnectionObserver& aObs );
- void ConstructL();
-
- private: // new functions
- void CloseConnection();
- void CloseSession();
- void StateChange( TTlsConnectionState aNewState, TInt aError = KErrNone );
- void ReadL();
-
- private: // data
- MTlsConnectionObserver& iObserver;
- RConnection iConnection;
- RSocketServ iSockServer;
- TCommDbConnPref iConnPref;
- TUint32 iCurrentIap;
- TNifProgressBuf iProgress;
- HBufC* iHostName;
- HBufC8* iHostNameForCertCheck;
- TInt iPort;
- TInt iDelay;
- RHostResolver iHostResolver;
- TNameEntry iNameEntry;
- TInetAddr iRemoteAddr;
- RSocket iSocket;
- CSecureSocket* iSecureSocket;
- HBufC8* iRecvBuffer;
- TPtr8* iRecvBufPtr;
- TSockXfrLength iRecvLength;
- HBufC8* iSendBuffer;
- TPtr8* iSendBufPtr;
- TSockXfrLength iSendLength;
- TInt iTotalRecvCount;
- TTlsConnectionState iState;
- RTimer iDelayTimer;
- };
-
-
-#endif // C_TESTTLSCONNECTION_H
-
--- a/pkiutilities/untrustedcertificatedialog/tsrc/tlsconntest/tlsconnectionapp.cpp Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,197 +0,0 @@
-/*
-* Copyright (c) 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: Secure connections test application
-*
-*/
-
-#include "tlsconnectionapp.h"
-#include "tlsconnection.h"
-#include <hbmainwindow.h>
-#include <hbview.h>
-#include <QDebug>
-#include <QGraphicsLinearLayout>
-#include <hbcombobox.h>
-#include <hblineedit.h>
-#include <hblabel.h>
-#include <hbpushbutton.h>
-#include <hbmessagebox.h>
-
-
-TlsConnectionApplication::TlsConnectionApplication(int& aArgc, char* aArgv[])
- : HbApplication(aArgc, aArgv), mMainWindow(0), mMainView(0), mHost(0),
- mPort(0), mOpeningDelay(0), mStatusLabel(0), mConnection(0)
-{
- qDebug() << "TLStest TlsConnectionApplication begin";
-
- mMainWindow = new HbMainWindow();
- mMainView = new HbView();
- mMainView->setTitle(tr("TLS Test"));
-
- QGraphicsLinearLayout *layout = new QGraphicsLinearLayout(Qt::Vertical);
-
- mHost = new HbComboBox;
- QStringList defaultHosts;
- defaultHosts << "www.nokia.com"
- << "www.f-secure.com"
- << "www.google.fi"
- << "www.tut.fi";
- mHost->addItems(defaultHosts);
- connect(mHost, SIGNAL(editingFinished()), this, SLOT(addHostName()));
- mHost->setEditable(true);
- layout->addItem(mHost);
-
- mPort = new HbLineEdit(tr("Port?"));
- mPort->setText(tr("443"));
- layout->addItem(mPort);
-
- mOpeningDelay = new HbLineEdit(tr("Opening delay?"));
- mOpeningDelay->setText(tr("0"));
- layout->addItem(mOpeningDelay);
-
- mStatusLabel = new HbLabel(tr("Inactive"));
- layout->addItem(mStatusLabel);
-
- HbPushButton *activateButton = new HbPushButton(tr("Run Test"));
- connect(activateButton, SIGNAL(clicked()), this, SLOT(runTestPressed()));
- layout->addItem(activateButton);
-
- HbPushButton *closeButton = new HbPushButton("Close");
- connect(closeButton, SIGNAL(clicked()), qApp, SLOT(quit()));
- layout->addItem(closeButton);
-
- mMainView->setLayout(layout);
- mMainWindow->addView(mMainView);
- mMainWindow->show();
-
- qDebug() << "TLStest TlsConnectionApplication end";
-}
-
-TlsConnectionApplication::~TlsConnectionApplication()
-{
- qDebug() << "TLStest ~TlsConnectionApplication begin";
-
- delete mConnection;
- delete mMainView;
- delete mMainWindow;
-
- qDebug() << "TLStest ~TlsConnectionApplication end";
-}
-
-void TlsConnectionApplication::HandleNetworkEvent( TTlsConnectionState aEvent, TInt aError )
-{
- switch( aEvent ) {
- case ENotInitialized:
- showProgress( tr("NotInitialized"), aError );
- break;
- case EDisconnected:
- showProgress( tr("Disconnected"), aError );
- break;
- case EIdle:
- showProgress( tr("Idle"), aError );
- break;
- case EConnectingNetwork:
- showProgress( tr("ConnectingNetwork"), aError );
- break;
- case EOpeningDelay:
- showProgress( tr("OpeningDelay"), aError );
- break;
- case EResolvingHostName:
- showProgress( tr("ResolvingHostName"), aError );
- break;
- case EConnectingServer:
- showProgress( tr("ConnectingServer"), aError );
- break;
- case EHandshaking:
- showProgress( tr("Handshaking"), aError );
- break;
- case EConnecting:
- showProgress( tr("Connecting"), aError );
- break;
- case ESending:
- showProgress( tr("Sending"), aError );
- break;
- case EReading:
- showProgress( tr("Reading"), aError );
- break;
- case EAllDone:
- showProgress( tr("AllDone"), aError );
- break;
- default:
- showProgress( tr("unknown"), aError );
- break;
- }
-}
-
-void TlsConnectionApplication::HandleTransferData( const TDesC8& /*aData*/, TInt aLength )
-{
- qDebug() << "TLStest HandleTransferData, length:" << aLength;
-}
-
-void TlsConnectionApplication::runTestPressed()
-{
- qDebug() << "TLStest runTestPressed begin";
-
- if (mConnection) {
- delete mConnection;
- mConnection = NULL;
- }
-
- TPtrC host( reinterpret_cast<const TText*>( mHost->currentText().constData() ));
- TInt port = getInt(mPort->text(), 443);
- TInt delay = getInt(mOpeningDelay->text(), 0);
- qDebug() << "TLStest runTestPressed host:" << mHost->currentText() << "port" << port << "delay" << delay;
- TRAPD( err, mConnection = CTlsConnection::NewL( *this ) );
- qDebug() << "TLStest runTestPressed err:" << err;
- if( !err ) {
- qDebug() << "TLStest runTestPressed CTlsConnection created, connecting";
- TRAP( err, mConnection->ConnectL( host, port, delay ) );
- qDebug() << "TLStest runTestPressed err:" << err;
- }
-
- qDebug() << "TLStest runTestPressed end";
-}
-
-void TlsConnectionApplication::addHostName()
-{
- QString newHostName = mHost->currentText();
- mHost->addItem(newHostName);
-}
-
-void TlsConnectionApplication::showProgress(const QString& aStep, int aError)
-{
- qDebug() << "TLStest showProgress step" << aStep << "error" << aError;
- if (mStatusLabel) {
- if (!aError) {
- mStatusLabel->setPlainText(aStep);
- } else {
- QString msg(aStep);
- msg.append(tr(" error %1").arg(aError));
- mStatusLabel->setPlainText(msg);
- }
- }
-}
-
-TInt TlsConnectionApplication::getInt(const QString& aString, int defaultValue)
-{
- qDebug() << "TLStest getInt" << aString << "defaultValue" << defaultValue;
-
- bool ok = false;
- TInt value = aString.toInt(&ok, 10);
- if (!ok) {
- value = defaultValue;
- }
-
- qDebug() << "TLStest getInt returns " << value;
- return value;
-}
--- a/pkiutilities/untrustedcertificatedialog/tsrc/tlsconntest/tlsconnectionapp.h Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,63 +0,0 @@
-/*
-* Copyright (c) 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: Secure connections test application
-*
-*/
-
-#ifndef TLSCONNECTIONAPP_H
-#define TLSCONNECTIONAPP_H
-
-#include <hbapplication.h>
-#include "tlsconnectionobserver.h"
-
-class HbMainWindow;
-class HbView;
-class HbComboBox;
-class HbLineEdit;
-class HbLabel;
-class CTlsConnection;
-
-
-class TlsConnectionApplication : public HbApplication, public MTlsConnectionObserver
-{
- Q_OBJECT
-
-public: // constructor and destructor
- TlsConnectionApplication(int& aArgc, char* aArgv[]);
- virtual ~TlsConnectionApplication();
-
-public: // from MTlsConnectionObserver
- void HandleNetworkEvent(TTlsConnectionState aEvent, TInt aError);
- void HandleTransferData(const TDesC8& aData, TInt aLength);
-
-private slots:
- void runTestPressed();
- void addHostName();
-
-private: // new functions
- void showProgress(const QString& aStep, int aError);
- TInt getInt(const QString& aString, int defaultValue);
-
-private: // data
- HbMainWindow *mMainWindow;
- HbView *mMainView;
- HbComboBox *mHost;
- HbLineEdit *mPort;
- HbLineEdit *mOpeningDelay;
- HbLabel *mStatusLabel;
- CTlsConnection *mConnection;
-};
-
-#endif // TLSCONNECTIONAPP_H
-
--- a/pkiutilities/untrustedcertificatedialog/tsrc/tlsconntest/tlsconnectionmain.cpp Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,43 +0,0 @@
-/*
-* Copyright (c) 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: Secure connections test application
-*
-*/
-
-#include "tlsconnectionapp.h"
-#include <QDebug>
-#include <e32base.h> // CTrapCleanup
-
-
-int DoMainL(int argc, char *argv[])
-{
- TlsConnectionApplication app(argc, argv);
- return app.exec();
-}
-
-int main(int argc, char *argv[])
-{
- qDebug() << "TLStest main begin";
-
- int err = 0;
- CTrapCleanup *cleanup = CTrapCleanup::New();
- if (cleanup) {
- TRAP(err, DoMainL(argc, argv));
- delete cleanup;
- }
-
- qDebug() << "TLStest main returns" << err;
- return err;
-}
-
--- a/pkiutilities/untrustedcertificatedialog/tsrc/tlsconntest/tlsconnectionobserver.h Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,44 +0,0 @@
-/*
-* Copyright (c) 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: Secure connections test application
-*
-*/
-
-#ifndef M_MTLSCONNECTIONOBSERVER_H
-#define M_MTLSCONNECTIONOBSERVER_H
-
-enum TTlsConnectionState
- {
- ENotInitialized = 0,
- EDisconnected,
- EIdle,
- EConnectingNetwork,
- EOpeningDelay,
- EResolvingHostName,
- EConnectingServer,
- EHandshaking,
- EConnecting,
- ESending,
- EReading,
- EAllDone
- };
-
-class MTlsConnectionObserver
- {
- public:
- virtual void HandleNetworkEvent( TTlsConnectionState aEvent, TInt aError ) = 0;
- virtual void HandleTransferData( const TDesC8& aData, TInt aLength ) = 0;
- };
-
-#endif // M_MTLSCONNECTIONOBSERVER_H
--- a/pkiutilities/untrustedcertificatedialog/tsrc/tlsconntest/tlsconntest.iby Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,25 +0,0 @@
-/*
-* Copyright (c) 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: Secure connections test application
-*
-*/
-
-
-#ifndef __TLSCONNTEST_IBY__
-#define __TLSCONNTEST_IBY__
-
-file=ABI_DIR/BUILD_DIR/tlsconntest.exe SHARED_LIB_DIR/tlsconntest.exe
-HB_UPGRADABLE_APP_REG_RSC( tlsconntest )
-
-#endif // __TLSCONNTEST_IBY__
--- a/pkiutilities/untrustedcertificatedialog/tsrc/tlsconntest/tlsconntest.loc Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,19 +0,0 @@
-/*
-* Copyright (c) 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: Secure connections test application
-*
-*/
-
-#define STRING_r_short_caption "TlsConnTest"
-#define STRING_r_caption "TlsConnTest"
--- a/pkiutilities/untrustedcertificatedialog/tsrc/tlsconntest/tlsconntest.pkg Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,41 +0,0 @@
-;
-; Copyright (c) 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: Secure connections test application
-;
-;
-
-; Language
-&EN
-
-; SIS header: name, uid, version
-#{"TlsConnTest"},(0xE8DC94B1),1,0,0
-
-; Vendor name, localised and unique
-%{"Nokia"}
-:"Nokia"
-
-; Default dependency to Qt libraries
-(0x2001E61C), *, *, *, {"Qt"}
-
-; Default platform dependencies
-[0x101F7961],0,0,0,{"S60ProductID"}
-[0x102032BE],0,0,0,{"S60ProductID"}
-[0x102752AE],0,0,0,{"S60ProductID"}
-[0x1028315F],0,0,0,{"S60ProductID"}
-
-; Executable and default resource files
-"/epoc32/release/armv5/urel/tlsconntest.exe" - "!:\sys\bin\tlsconntest.exe"
-"/epoc32/data/z/resource/apps/tlsconntest.rsc" - "!:\resource\apps\tlsconntest.rsc"
-"/epoc32/data/z/private/10003a3f/import/apps/tlsconntest_reg.rsc" - "!:\private\10003a3f\import\apps\tlsconntest_reg.rsc"
-
--- a/pkiutilities/untrustedcertificatedialog/tsrc/tlsconntest/tlsconntest.pro Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,39 +0,0 @@
-#
-# Copyright (c) 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: Secure connections test application
-#
-
-TEMPLATE = app
-TARGET = tlsconntest
-CONFIG += hb
-DEPENDPATH += .
-INCLUDEPATH += .
-
-HEADERS += tlsconnection.h tlsconnectionobserver.h tlsconnectionapp.h tlsconntest.loc
-SOURCES += tlsconnectionmain.cpp tlsconnection.cpp tlsconnectionapp.cpp
-LIBS += -lesock -lcommdb -linsock -linetprotutil -lsecuresocket
-
-symbian {
- BLD_INF_RULES.prj_exports += "tlsconntest.loc APP_LAYER_LOC_EXPORT_PATH(tlsconntest.loc)"
-
- TARGET.UID2 = 0x100039CE
- TARGET.UID3 = 0xE8DC94B1 # random uid
- TARGET.CAPABILITY = CAP_APPLICATION
-}
-
-BLD_INF_RULES.prj_exports += \
- "$${LITERAL_HASH}include <platform_paths.hrh>" \
- "tlsconntest.iby CORE_APP_LAYER_IBY_EXPORT_PATH(tlsconntest.iby)"
-
-
\ No newline at end of file
--- a/pkiutilities/untrustedcertificatedialog/untrustedcertificateplugin.pro Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,58 +0,0 @@
-#
-# Copyright (c) 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: Device dialog plugin that shows untrusted certificate
-# dialog for TLS server authentication failure errors.
-#
-
-TEMPLATE = lib
-TARGET = untrustedcertdialog
-CONFIG += hb plugin
-
-INCLUDEPATH += .
-INCLUDEPATH += $$MW_LAYER_SYSTEMINCLUDE
-DEPENDPATH += .
-
-HEADERS += inc/untrustedcertificateplugin.h \
- inc/untrustedcertificatedefinitions.h \
- inc/untrustedcertificatedialog.h \
- inc/untrustedcertificatewidget.h \
- inc/untrustedcertificateinfobase.h
-
-SOURCES += src/untrustedcertificateplugin.cpp \
- src/untrustedcertificatedialog.cpp \
- src/untrustedcertificatewidget.cpp \
- src/untrustedcertificateinfobase.cpp
-
-symbian: {
- TARGET.EPOCALLOWDLLDATA = 1
- TARGET.CAPABILITY = CAP_GENERAL_DLL
- TARGET.UID3 = 0x20030000
-
- HEADERS += inc/untrustedcertificateinfo_symbian.h
- SOURCES += src/untrustedcertificatewidget_symbian.cpp \
- src/untrustedcertificateinfo_symbian.cpp
-
- LIBS += -lcrypto -lx509 -lx500 -lhash -lX509CertNameParser
-
- pluginstub.sources = untrustedcertdialog.dll
- pluginstub.path = /resource/plugins/devicedialogs
- DEPLOYMENT += pluginstub
-}
-
-BLD_INF_RULES.prj_exports += \
- "$${LITERAL_HASH}include <platform_paths.hrh>" \
- "qmakepluginstubs/untrustedcertdialog.qtplugin /epoc32/data/z/pluginstub/untrustedcertdialog.qtplugin" \
- "rom/untrustedcertdialog.iby CORE_MW_LAYER_IBY_EXPORT_PATH(untrustedcertdialog.iby)" \
- "rom/untrustedcertdialog_resources.iby LANGUAGE_MW_LAYER_IBY_EXPORT_PATH(untrustedcertdialog_resources.iby)"
-
--- a/pkiutilities/x509certnameparser/group/X509CertNameParser.mmp Tue Aug 31 16:04:40 2010 +0300
+++ b/pkiutilities/x509certnameparser/group/X509CertNameParser.mmp Wed Sep 01 12:19:59 2010 +0100
@@ -39,7 +39,7 @@
CAPABILITY CAP_GENERAL_DLL
VENDORID VID_DEFAULT
-#if defined( EABI )
+#if defined(ARMCC)
deffile ../EABI/
#elif defined( WINSCW )
deffile ../BWINSCW/
--- a/remotelock/RemoteLockEngine/Src/RemoteLock.cpp Tue Aug 31 16:04:40 2010 +0300
+++ b/remotelock/RemoteLockEngine/Src/RemoteLock.cpp Wed Sep 01 12:19:59 2010 +0100
@@ -33,7 +33,6 @@
#include <pathinfo.h>
#endif //RD_MULTIPLE_DRIVE
#include <coreapplicationuisdomainpskeys.h>
-#include <CoreApplicationUIsSDKCRKeys.h>
#include <charconv.h>
#include <ProfileEngineSDKCRKeys.h>
#include <Profile.hrh>
@@ -626,7 +625,7 @@
if ( !iProfileSession )
{
RL_TRACE_PRINT(" [ rl.exe ] CheckSettingsL() create session ");
- iProfileSession = CRepository::NewL( KCRUidCoreApplicationUIs ); // previously it was KCRUidProfileEngine
+ iProfileSession = CRepository::NewL( KCRUidProfileEngine );
}
if ( !iObserver )
{
@@ -656,7 +655,7 @@
if ( !iProfileSession )
{
RL_TRACE_PRINT(" [ rl.exe ] CheckSettingsL() create session ");
- iProfileSession = CRepository::NewL( KCRUidCoreApplicationUIs ); // previously it was KCRUidProfileEngine
+ iProfileSession = CRepository::NewL( KCRUidProfileEngine );
}
ProfileNotifyL( EFalse );
delete iProfileSession;
@@ -1459,10 +1458,7 @@
if ( aNotifyEnable )
{
- TInt err = iProfileSession->Get( KCoreAppUIsNetworkConnectionAllowed , iCurrentProfile ); // previously was KProEngActiveProfile
- RL_TRACE_PRINT_NUM("[rl.exe] HandleNotifyGeneric() err = %d", err );
- RL_TRACE_PRINT_NUM("[rl.exe] HandleNotifyGeneric() iCurrentProfile = %d", iCurrentProfile );
-
+ TInt err = iProfileSession->Get( KProEngActiveProfile, iCurrentProfile );
User::LeaveIfError( err );
RL_TRACE_PRINT(" [ rl.exe ] ProfileNotifyL() startlisten");
iProfileNotifyHandler->StartListeningL();
@@ -1490,9 +1486,7 @@
{
RL_TRACE_PRINT(" [ rl.exe ] GetProfile() ");
TInt err;
- err = iProfileSession->Get( KCoreAppUIsNetworkConnectionAllowed , aProfile ); // previously was KProEngActiveProfile
- RL_TRACE_PRINT_NUM("[rl.exe] HandleNotifyGeneric() err = %d", err );
-
+ err = iProfileSession->Get( KProEngActiveProfile, aProfile );
RL_TRACE_PRINT(" [ rl.exe ] exit GetProfile() ");
return ( err == KErrNone );
}
@@ -1511,9 +1505,8 @@
TInt profile = 0;
GetProfile( profile );
- RL_TRACE_PRINT_NUM("[rl.exe] HandleNotifyGeneric() profile = %d", profile );
- RL_TRACE_PRINT_NUM("[rl.exe] HandleNotifyGeneric() iCurrentProfile = %d", iCurrentProfile );
- if ( ( profile == ECoreAppUIsNetworkConnectionNotAllowed ) && ( iIsEnabled ) && ( iCurrentProfile != ECoreAppUIsNetworkConnectionNotAllowed ))
+
+ if ( ( profile == EProfileOffLineId ) && ( iIsEnabled ) && ( iCurrentProfile != EProfileOffLineId ))
{
ActivateDeviceLock();
}
--- a/secsrv_plat/devenccommonutils_api/inc/DevEncDiskUtils.h Tue Aug 31 16:04:40 2010 +0300
+++ b/secsrv_plat/devenccommonutils_api/inc/DevEncDiskUtils.h Wed Sep 01 12:19:59 2010 +0100
@@ -43,7 +43,7 @@
static void DoVerifyTestFileL();
static TInt64 FindCriticalLevelTresholdL();
static TInt FindValueL( const TUid aRepositoryUid, const TUint aCRKey );
- static TInt64 FindWarningLevelTresholdL();
+ static TInt64 FindWarningLevelTresholdL( const TDriveNumber aNumber );
};
#endif // DEVENCDISKUTILS_H
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/secsrv_plat/devicelock_access_api/group/ABLD.BAT Wed Sep 01 12:19:59 2010 +0100
@@ -0,0 +1,15 @@
+@ECHO OFF
+
+REM Bldmake-generated batch file - ABLD.BAT
+REM ** DO NOT EDIT **
+
+perl -S ABLD.PL "\s60\mw\devicemanagement\devmngt_dom\devicelock_access_api\group\\" %1 %2 %3 %4 %5 %6 %7 %8 %9
+if errorlevel==1 goto CheckPerl
+goto End
+
+:CheckPerl
+perl -v >NUL
+if errorlevel==1 echo Is Perl, version 5.003_07 or later, installed?
+goto End
+
+:End
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/secsrv_plat/keyguard_access_api/group/ABLD.BAT Wed Sep 01 12:19:59 2010 +0100
@@ -0,0 +1,15 @@
+@ECHO OFF
+
+REM Bldmake-generated batch file - ABLD.BAT
+REM ** DO NOT EDIT **
+
+perl -S ABLD.PL "\s60\mw\devicemanagement\devmngt_dom\keyguard_access_api\group\\" %1 %2 %3 %4 %5 %6 %7 %8 %9
+if errorlevel==1 goto CheckPerl
+goto End
+
+:CheckPerl
+perl -v >NUL
+if errorlevel==1 echo Is Perl, version 5.003_07 or later, installed?
+goto End
+
+:End
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/secsrv_plat/lockapp_server_api/group/ABLD.BAT Wed Sep 01 12:19:59 2010 +0100
@@ -0,0 +1,15 @@
+@ECHO OFF
+
+REM Bldmake-generated batch file - ABLD.BAT
+REM ** DO NOT EDIT **
+
+perl -S ABLD.PL "\s60\mw\devicemanagement\devmngt_dom\lockapp_server_api\group\\" %1 %2 %3 %4 %5 %6 %7 %8 %9
+if errorlevel==1 goto CheckPerl
+goto End
+
+:CheckPerl
+perl -v >NUL
+if errorlevel==1 echo Is Perl, version 5.003_07 or later, installed?
+goto End
+
+:End
--- a/secsrv_plat/security_code_ui_api/inc/SecUi.h Tue Aug 31 16:04:40 2010 +0300
+++ b/secsrv_plat/security_code_ui_api/inc/SecUi.h Wed Sep 01 12:19:59 2010 +0100
@@ -21,14 +21,6 @@
#ifndef __SECUI_H
#define __SECUI_H
-#if defined(_DEBUG)
-#define RDEBUG( x, y ) RDebug::Printf( "%s %s (%u) %s=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, x, y );
-#define RDEBUGSTR( x ) RDebug::Print( x );
-#else
-#define RDEBUG( x, y )
-#define RDEBUGSTR( x )
-#endif
-
class TSecUi
{
public:
@@ -44,6 +36,12 @@
* Should be called after finished using SecUi methods
*/
IMPORT_C static void UnInitializeLib();
+ /**
+ * Returns the resource file name of SecurityUI dll.
+ *
+ * @return TFileName (resource file name)
+ */
+ static TFileName ResourceFileName();
/**
* Check if SecUi can be uninitialized, i.e. if client count is zero (or less).
*
@@ -77,7 +75,6 @@
private:
TInt iResourceFileOffset;
TInt iClientCount;
- TInt iDialogOpened;
};
#endif
--- a/secsrv_plat/security_code_ui_api/inc/SecUiCodeQueryDialog.h Tue Aug 31 16:04:40 2010 +0300
+++ b/secsrv_plat/security_code_ui_api/inc/SecUiCodeQueryDialog.h Wed Sep 01 12:19:59 2010 +0100
@@ -17,12 +17,15 @@
*
*/
+
#ifndef __SECUICODEQUERYDIALOG__
#define __SECUICODEQUERYDIALOG__
+#include <aknquerydialog.h>
+#include <aknnotedialog.h>
#include <secui.hrh>
-class CCodeQueryDialog : public CBase
+class CCodeQueryDialog : public CAknTextQueryDialog
{
public://construction and destruction
/**
@@ -37,7 +40,73 @@
* Destructor.
*/
~CCodeQueryDialog();
+ public:
+ /**
+ * Allows dismissing of code queries. Only mandatory requirement is that PIN
+ * queries are dismissed by the #
+ *
+ * @param aKeyEvent TKeyEvent&
+ * @return ETrue query is dismissed
+ * EFalse not dismissed
+ */
+ TBool NeedToDismissQueryL(const TKeyEvent& aKeyEvent);
+ /**
+ * Calls the dialog's TryExitL and passes the reason given as a parameter.
+ *
+ * @param TInt aReason (The reason for the cancel request)
+ */
+ void TryCancelQueryL(TInt aReason);
+ protected://from CAknTextQueryDialog
+ /**
+ * From CAknTextQueryDialog This function is called by the UIKON dialog framework
+ * just before the dialog is activated, after it has called
+ * PreLayoutDynInitL() and the dialog has been sized.
+ */
+ void PreLayoutDynInitL();
+ /**
+ * From CAknTextQueryDialog This function is called by the UIKON framework
+ * if the user activates a button in the button panel.
+ * It is not called if the Cancel button is activated,
+ * unless the EEikDialogFlagNotifyEsc flag is set.
+ * @param aButtonId The ID of the button that was activated
+ * @return Should return ETrue if the dialog should exit, and EFalse if it should not.
+ */
+ TBool OkToExitL(TInt aButtonId);
+ /**
+ * From CAknTextQueryDialog This function is called by the UIKON dialog framework
+ * just after a key is pressed
+ * @param aKeyEvent TKeyEvent&
+ * @param aType TEventCode
+ */
+ TKeyResponse OfferKeyEventL(const TKeyEvent& aKeyEvent, TEventCode aType);
+ /**
+ * From MAknQueryControlObeserver; overrides the default implementation in CAknQueryDialog.
+ * Gets called by framework when editor sends state event
+ */
+ TBool HandleQueryEditorStateEventL(CAknQueryControl* aQueryControl, TQueryControlEvent aEventType, TQueryValidationStatus aStatus);
+
+ TBool CheckIfEntryTextOk() const;
+
+ void UpdateLeftSoftKeyL();
+ private:
+ void ShowWarningNoteL();
+
+ /*
+ * SetIncallBubbleAllowedInUsualL
+ */
+ void SetIncallBubbleAllowedInUsualL(TBool aAllowed);
+
+ private: // DATA
+ TInt iMinLength;
+ TInt iMaxLength;
+ TInt iMode;
+ TBool iFront;
+ TInt iAppKey;
+ TInt iVoiceKey1;
+ TInt iVoiceKey2;
+ TInt iEndKey;
+ TBool iIsRemoteLockQuery;
};
#endif
--- a/secsrv_plat/security_code_ui_api/inc/SecUiSecurityHandler.h Tue Aug 31 16:04:40 2010 +0300
+++ b/secsrv_plat/security_code_ui_api/inc/SecUiSecurityHandler.h Wed Sep 01 12:19:59 2010 +0100
@@ -112,15 +112,7 @@
*/
void RemoveSplashScreenL() const;
- /**
- * ShowGenericErrorNoteL
- */
void ShowGenericErrorNoteL(TInt aStatus);
- /**
- * CancelOpenQuery
- */
- TInt CancelOpenQuery(TInt aStatus);
-
private: // DATA
/*****************************************************
* Series 60 Customer / ETel
--- a/secsrv_plat/security_code_ui_api/inc/SecUiSecuritySettings.h Tue Aug 31 16:04:40 2010 +0300
+++ b/secsrv_plat/security_code_ui_api/inc/SecUiSecuritySettings.h Wed Sep 01 12:19:59 2010 +0100
@@ -26,9 +26,6 @@
#include <rmmcustomapi.h>
#include <aknnotedialog.h>
-#define KSecUiAskNever 1
-#define KSecUiAskOnlyIfInvalid 2
-#define KSecUiAskAlways 3
class CWait;
class CSecurityHandler;
@@ -178,27 +175,6 @@
TInt RemoteLockCodeQueryL( TDes& aRemoteLockCode );
- /**
- * Same functions, taking parameters. This is used in QT because the Settings handles it.
- *
- * @param aOldPassword RMobilePhone::TMobilePassword : current password, probably asked to the user by other means
- * @param aNewPassword RMobilePhone::TMobilePassword : current password, probably asked to the user by other means
- * @param aFlags TInt : when to ask for the password
- * @param aCaption TDes& : caption to show in the dialog. If NULL, then the function will calculate it. If empty, it will be empty
- * @param aShowError TInt : in case of error, it will show it. If this is not set, then no errors will be displayed.
- * @return TInt: KErrNone (succesful) , KErrGsm0707IncorrectPassword, KErrAccessDenied, KErrGsmSSPasswordAttemptsViolation, KErrLocked, KErrGsm0707OperationNotAllowed, KErrAbort, KErrNotSupported, ...
- */
- IMPORT_C TInt ChangePinParamsL(RMobilePhone::TMobilePassword aOldPassword, RMobilePhone::TMobilePassword aNewPassword, TInt aFlags, TDes& aCaption, TInt aShowError);
- IMPORT_C TInt ChangeUPinParamsL(RMobilePhone::TMobilePassword aOldPassword, RMobilePhone::TMobilePassword aNewPassword, TInt aFlags, TDes& aCaption, TInt aShowError);
- IMPORT_C TInt ChangePin2ParamsL(RMobilePhone::TMobilePassword aOldPassword, RMobilePhone::TMobilePassword aNewPassword, TInt aFlags, TDes& aCaption, TInt aShowError);
- IMPORT_C TInt ChangeSecCodeParamsL(RMobilePhone::TMobilePassword aOldPassword, RMobilePhone::TMobilePassword aNewPassword, TInt aFlags, TDes& aCaption, TInt aShowError);
- IMPORT_C TInt ChangeAutoLockPeriodParamsL(TInt aPeriod, RMobilePhone::TMobilePassword aOldPassword, TInt aFlags, TDes& aCaption, TInt aShowError);
- /* if aOldPassword is used, then try to verify.
- KSecUiAskNever, KSecUiAskOnlyIfInvalid, KSecUiAskAlways
- */
- IMPORT_C TInt AskSecCodeParamsL(RMobilePhone::TMobilePassword &aOldPassword, TInt aFlags, TDes& aCaption, TInt aShowError);
- IMPORT_C TInt ChangePinRequestParamsL(TInt aEnable, RMobilePhone::TMobilePassword aOldPassword, TInt aFlags, TDes& aCaption, TInt aShowError);
-
private:
TInt RemoteLockSetLockSettingL( TBool aLockSetting );
--- a/securitydialogs/Autolock/Autolock.loc Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,13 +0,0 @@
-// ============================================================================
-// * Generated by qmake (2.01a) (Qt 4.6.2) on: 2010-03-17T08:18:14
-// * This file is generated by qmake and should not be modified by the
-// * user.
-// ============================================================================
-
-#ifdef LANGUAGE_SC
-#define STRING_r_short_caption "Autolock"
-#define STRING_r_caption "Autolock"
-#else
-#define STRING_r_short_caption "Autolock"
-#define STRING_r_caption "Autolock"
-#endif
--- a/securitydialogs/Autolock/Autolock.pro Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,70 +0,0 @@
-#
-# Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-# All rights reserved.
-#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License as published by
-# the Free Software Foundation, version 2.1 of the License.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public License
-# along with this program. If not,
-# see "http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html/".
-#
-# Description:
-#
-
-TEMPLATE=app
-TARGET=Autolock
-
-CONFIG += service
-CONFIG += Hb
-
-CONFIG += mobility
-MOBILITY = publishsubscribe
-
-#TRANSLATIONS = autolock.ts
-
-XQSERVICE_ROOT=../..
-#include(../../xqservicebase.pri)
-include(src/Autolock.pri)
-
-LIBS+=-lxqservice -lxqserviceutil -lflogger
-LIBS += -L../../../../../bin/release -lautolockuseractivityservice
-LIBS += -lsecui -letelmm -letel -lcustomapi -lcentralrepository
-LIBS += -lcone -lws32 -lkeylockpolicyapi
-LIBS += -lpower_save_display_mode
-LIBS += -ltstaskmonitorclient # for TsTaskSettings
-LIBS += -lavkon # for KeySounds
-
-SERVICE.FILE = service_conf.xml
-SERVICE.OPTIONS = embeddable
-SERVICE.OPTIONS += hidden
-
-libFiles.sources = Autolock.exe
-#libFiles.path = "!:\sys\bin"
-DEPLOYMENT += libFiles
-
-RESOURCES += Autolock.qrc
-
-symbian*: {
- TARGET.CAPABILITY = CAP_APPLICATION
- TARGET.UID3 = 0x100059B5
- crmlFiles.sources = autolock.qcrml
- crmlFiles.path = /resource/qt/crml
- DEPLOYMENT += crmlFiles
-}
-
-BLD_INF_RULES.prj_exports += "./rom/Autolock.iby CORE_APP_LAYER_IBY_EXPORT_PATH(Autolock.iby)"
-BLD_INF_RULES.prj_exports += "./conf/Autolock.confml MW_LAYER_CONFML(Autolock.confml)"
-BLD_INF_RULES.prj_exports += "./conf/lock.confml MW_LAYER_CONFML(lock.confml)"
-# remove CI_autolock.confml because CI already exports it
-# BLD_INF_RULES.prj_exports += "./conf/CI_Autolock.confml MW_LAYER_CONFML(CI_Autolock.confml)"
-BLD_INF_RULES.prj_exports += "./rom/AutolockSrv.iby CORE_APP_LAYER_IBY_EXPORT_PATH(AutolockSrv.iby)"
-BLD_INF_RULES.prj_exports += "./PubSub/SecurityUIsPrivatePSKeys.h |../../inc/securityuisprivatepskeys.h"
-
-BLD_INF_RULES.prj_exports += "./conf/lock_10283322.crml MW_LAYER_CRML(lock_10283322.crml)"
\ No newline at end of file
--- a/securitydialogs/Autolock/Autolock.qrc Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,6 +0,0 @@
-<RCC>
- <qresource prefix="/Autolock_hbicon" >
- <file alias="iconnotifier.svg">iconnotifier.svg</file>
- <file alias="qtg_large_device_lock.svg">qtg_large_device_lock.svg</file>
- </qresource>
-</RCC>
--- a/securitydialogs/Autolock/Autolock.rss Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,21 +0,0 @@
-// ============================================================================
-// * Generated by qmake (2.01a) (Qt 4.6.3) on: 2010-05-24T09:03:31
-// * This file is generated by qmake and should not be modified by the
-// * user.
-// ============================================================================
-
-#include <appinfo.rh>
-#include <Autolock.loc>
-
-RESOURCE LOCALISABLE_APP_INFO r_localisable_app_info
- {
- short_caption = STRING_r_short_caption;
- caption_and_icon =
- CAPTION_AND_ICON_INFO
- {
- caption = STRING_r_caption;
- number_of_icons = 0;
- icon_file = "";
- };
- }
-
--- a/securitydialogs/Autolock/Autolock_reg.rss Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,57 +0,0 @@
-// ============================================================================
-// * Generated by qmake (2.01a) (Qt 4.6.3) on: 2010-05-19T16:00:27
-// * This file is generated by qmake and should not be modified by the
-// * user.
-// ============================================================================
-
-#include <Autolock.rsg>
-#include <appinfo.rh>
-
-UID2 KUidAppRegistrationResourceFile
-UID3 0x100059B5
-
-
-
-/* xqsreg.exe fingerprint */
-#include <xqserviceipcconst.h>
-STRUCT SERVICE_CONFIGURATION {LTEXT xmldata;}
-STRUCT SERVICE_CONFIGURATION_ARRAY {STRUCT service_configuration_array[];}
-
-RESOURCE APP_REGISTRATION_INFO
- {
-
- embeddability = KAppEmbeddable;
- hidden = KAppIsHidden;
- newfile = KAppDoesNotSupportNewFile;
- service_list =
- {
- SERVICE_INFO
- {
- uid = KXQServiceUid;
- datatype_list = {};
- opaque_data = r_service_configuration_reg;
- }
- };
-
- app_file="Autolock";
- localisable_resource_file="\\resource\\apps\\Autolock";
-
- }
-
-
-RESOURCE SERVICE_CONFIGURATION_ARRAY r_service_configuration_reg
- {
- service_configuration_array=
- {
- SERVICE_CONFIGURATION
- {
- xmldata = "<?xml version=\"1.0\" encoding=\"utf-8\" ?> <service> <name>com.nokia.services.Autolock</name> <filepath>No path really</filepath> <description>Autolock</description> <interface> <name>Autolock</name> <version>2.0</version> <description>Interface";
- }
- ,
- SERVICE_CONFIGURATION
- {
- xmldata = " to Autolock</description> </interface> </service>";
- }
-
- };
- }
--- a/securitydialogs/Autolock/Autolock_reg.rss.back Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,57 +0,0 @@
-// ============================================================================
-// * Generated by qmake (2.01a) (Qt 4.6.3) on: 2010-05-19T16:00:27
-// * This file is generated by qmake and should not be modified by the
-// * user.
-// ============================================================================
-
-#include <AutolockSrv.rsg>
-#include <appinfo.rh>
-
-UID2 KUidAppRegistrationResourceFile
-UID3 0xE0022E73
-
-
-
-/* xqsreg.exe fingerprint */
-#include <xqserviceipcconst.h>
-STRUCT SERVICE_CONFIGURATION {LTEXT xmldata;}
-STRUCT SERVICE_CONFIGURATION_ARRAY {STRUCT service_configuration_array[];}
-
-RESOURCE APP_REGISTRATION_INFO
- {
-
- embeddability = KAppEmbeddable;
- hidden = KAppIsHidden;
- newfile = KAppDoesNotSupportNewFile;
- service_list =
- {
- SERVICE_INFO
- {
- uid = KXQServiceUid;
- datatype_list = {};
- opaque_data = r_service_configuration_reg;
- }
- };
-
- app_file="AutolockSrv";
- localisable_resource_file="\\resource\\apps\\AutolockSrv";
-
- }
-
-
-RESOURCE SERVICE_CONFIGURATION_ARRAY r_service_configuration_reg
- {
- service_configuration_array=
- {
- SERVICE_CONFIGURATION
- {
- xmldata = "<?xml version=\"1.0\" encoding=\"utf-8\" ?> <service> <name>com.nokia.services.AutolockSrv</name> <filepath>No path really</filepath> <description>AutolockSrv</description> <interface> <name>AutolockSrv</name> <version>2.0</version> <description>Interface";
- }
- ,
- SERVICE_CONFIGURATION
- {
- xmldata = " to AutolockSrv</description> </interface> </service>";
- }
-
- };
- }
--- a/securitydialogs/Autolock/Autolock_template.pkg Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,39 +0,0 @@
-; Autolock_template.pkg generated by qmake at 2010-05-24T09:03:30
-; This file is generated by qmake and should not be modified by the user
-;
-
-; Language
-&EN
-
-
-; SIS header: name, uid, version
-#{"Autolock"},(0x100059B5),1,0,0
-
-; Localised Vendor name
-%{"Vendor"}
-
-; Unique Vendor name
-:"Vendor"
-
-
-; Manual PKG pre-rules from PRO files
-; Default dependency to Qt libraries
-(0x2001E61C), 4, 6, 3, {"Qt"}
-; Default HW/platform dependencies
-[0x101F7961],0,0,0,{"S60ProductID"}
-[0x102032BE],0,0,0,{"S60ProductID"}
-[0x102752AE],0,0,0,{"S60ProductID"}
-[0x1028315F],0,0,0,{"S60ProductID"}
-
-; Default dependency to QtMobility libraries
-(0x2002AC89), 1, 0, 0, {"QtMobility"}
-
-; Executable and default resource files
-"/epoc32/release/$(PLATFORM)/$(TARGET)/Autolock.exe" - "!:\sys\bin\Autolock.exe"
-"/epoc32/data/z/resource/apps/Autolock.rsc" - "!:\resource\apps\Autolock.rsc"
-"/epoc32/data/z/private/10003a3f/import/apps/Autolock_reg.rsc" - "!:\private\10003a3f\import\apps\Autolock_reg.rsc"
-; DEPLOYMENT
-"/epoc32/release/$(PLATFORM)/$(TARGET)/Autolock.exe" - "!:\sys\bin\Autolock.exe"
-"/epoc32/data/z/resource/qt/crml/autolock.qcrml" - "!:\resource\qt\crml\autolock.qcrml"
-
-; Manual PKG post-rules from PRO files
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/securitydialogs/Autolock/CenRep/AutolockPrivateCRKeys.h Wed Sep 01 12:19:59 2010 +0100
@@ -0,0 +1,43 @@
+/*
+* Copyright (c) 2004 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: Autolock local variation Central Repository keys.
+*
+*/
+
+
+#ifndef AUTOLOCKPRIVATECRKEYS_H
+#define AUTOLOCKPRIVATECRKEYS_H
+
+// =============================================================================
+// Autolock Configuration API
+// =============================================================================
+const TUid KCRUidAutolockConf = { 0x102824AE };
+
+/**
+* Bitmask used in configuring automatic keylock.
+*/
+const TUint32 KAutoKeyLockConf = 0x00000001;
+
+// =============================================================================
+// Automatic Keylock Local Variation constants (KAutoKeyLockConf)
+// =============================================================================
+
+/**
+* KAutolockFeatureIdFlipOpenDisabled is an on/off setting for
+* disabling automatic keyguard locking when flip is open. By default off.
+* Possible values: 0 (locking enabled), 1 (locking diabled) <--
+*/
+const TInt KAutoKeylockFeatureIdFlipOpenDisabled= 0x01; // 2^0
+
+#endif
--- a/securitydialogs/Autolock/Keyguard_enabled.svg Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,1949 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-<svg
- xmlns:dc="http://purl.org/dc/elements/1.1/"
- xmlns:cc="http://web.resource.org/cc/"
- xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
- xmlns:svg="http://www.w3.org/2000/svg"
- xmlns="http://www.w3.org/2000/svg"
- xmlns:xlink="http://www.w3.org/1999/xlink"
- xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
- xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
- width="128"
- height="128"
- id="svg2606"
- sodipodi:version="0.32"
- inkscape:version="0.45.1"
- version="1.0"
- sodipodi:docname="image-png.svg"
- inkscape:output_extension="org.inkscape.output.svg.inkscape"
- sodipodi:docbase="/home/pinheiro/pics/oxygen/scalable/mimetypes"
- inkscape:export-filename="/home/pinheiro/artwork/Oxygen/David/imagesharperflaped.png"
- inkscape:export-xdpi="90"
- inkscape:export-ydpi="90">
- <defs
- id="defs2608">
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4273"
- id="linearGradient6204"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.811924,0,0,0.273245,55.77949,-173.6434)"
- x1="105.41402"
- y1="673.69873"
- x2="274.53336"
- y2="691.37091" />
- <linearGradient
- inkscape:collect="always"
- id="linearGradient31860">
- <stop
- style="stop-color:#000000;stop-opacity:1;"
- offset="0"
- id="stop31862" />
- <stop
- style="stop-color:#000000;stop-opacity:0;"
- offset="1"
- id="stop31864" />
- </linearGradient>
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4526"
- id="linearGradient4670"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.616893,0,0,0.359632,55.77949,-173.6434)"
- x1="322.5351"
- y1="671.36499"
- x2="305.54623"
- y2="703.1059" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4526"
- id="linearGradient4668"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.544849,0,0,0.407185,55.77949,-173.6434)"
- x1="388.85477"
- y1="581.20758"
- x2="355.6568"
- y2="561.59204" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4526"
- id="linearGradient4666"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.544849,0,0,0.407185,55.77949,-173.6434)"
- x1="391.99573"
- y1="490.36765"
- x2="343.76462"
- y2="472.65836" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4526"
- id="linearGradient4664"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.414913,0,0,0.534701,55.77949,-173.6434)"
- x1="336.97562"
- y1="514.06415"
- x2="402.90091"
- y2="491.13419" />
- <linearGradient
- id="linearGradient2797">
- <stop
- style="stop-color:#000000;stop-opacity:1.0000000;"
- offset="0.0000000"
- id="stop2799" />
- <stop
- style="stop-color:#484848;stop-opacity:1.0000000;"
- offset="1.0000000"
- id="stop2801" />
- </linearGradient>
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient2797"
- id="linearGradient4662"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.470374,0,0,0.471655,55.77949,-173.6434)"
- x1="313.85675"
- y1="561.1123"
- x2="355.78586"
- y2="553.29712" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4526"
- id="linearGradient4660"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.616893,0,0,0.359632,55.77949,-173.6434)"
- x1="306.2883"
- y1="672.46191"
- x2="333.49854"
- y2="707.75031" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4526"
- id="linearGradient4658"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.544849,0,0,0.407185,55.77949,-173.6434)"
- x1="391.99573"
- y1="490.36765"
- x2="343.76462"
- y2="472.65836" />
- <linearGradient
- id="linearGradient4526">
- <stop
- id="stop4528"
- offset="0.0000000"
- style="stop-color:#ffffff;stop-opacity:0.69902915;" />
- <stop
- id="stop4530"
- offset="1.0000000"
- style="stop-color:#ffffff;stop-opacity:0.0000000;" />
- </linearGradient>
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4526"
- id="linearGradient4656"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.544849,0,0,0.407185,55.77949,-173.6434)"
- x1="388.85477"
- y1="581.20758"
- x2="355.6568"
- y2="561.59204" />
- <linearGradient
- id="linearGradient4255"
- inkscape:collect="always">
- <stop
- id="stop4257"
- offset="0"
- style="stop-color:#000000;stop-opacity:1;" />
- <stop
- id="stop4259"
- offset="1"
- style="stop-color:#000000;stop-opacity:0;" />
- </linearGradient>
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4255"
- id="linearGradient4654"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.44753,0,0,0.49573,55.77949,-173.6434)"
- x1="390.90793"
- y1="442.95132"
- x2="419.73016"
- y2="470.11917" />
- <linearGradient
- id="linearGradient4516">
- <stop
- id="stop4518"
- offset="0"
- style="stop-color:#62004f;stop-opacity:1;" />
- <stop
- style="stop-color:#8d2778;stop-opacity:1;"
- offset="0.14563107"
- id="stop7294" />
- <stop
- id="stop4520"
- offset="1"
- style="stop-color:#ff00bf;stop-opacity:1;" />
- </linearGradient>
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4516"
- id="linearGradient4652"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.480452,0,0,0.461761,55.77949,-173.6434)"
- x1="299.42841"
- y1="480.61096"
- x2="419.73056"
- y2="503.82071" />
- <linearGradient
- id="linearGradient2373">
- <stop
- id="stop2375"
- offset="0.0000000"
- style="stop-color:#083e20;stop-opacity:1.0000000;" />
- <stop
- id="stop2377"
- offset="1.0000000"
- style="stop-color:#245e3e;stop-opacity:1.0000000;" />
- </linearGradient>
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient2373"
- id="linearGradient4650"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.852829,0,0,1.172568,-0.505078,0.252536)"
- x1="249.71024"
- y1="470.67639"
- x2="268.70541"
- y2="444.59937" />
- <linearGradient
- id="linearGradient2367">
- <stop
- id="stop2369"
- offset="0.0000000"
- style="stop-color:#957d16;stop-opacity:1.0000000;" />
- <stop
- id="stop2371"
- offset="1.0000000"
- style="stop-color:#927b16;stop-opacity:1.0000000;" />
- </linearGradient>
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient2367"
- id="linearGradient4648"
- gradientUnits="userSpaceOnUse"
- gradientTransform="scale(0.852829,1.172568)"
- x1="249.71024"
- y1="470.67639"
- x2="268.70541"
- y2="444.59937" />
- <linearGradient
- id="linearGradient2330">
- <stop
- id="stop2332"
- offset="0.0000000"
- style="stop-color:#54250d;stop-opacity:1.0000000;" />
- <stop
- id="stop2344"
- offset="1.0000000"
- style="stop-color:#9f4f19;stop-opacity:1.0000000;" />
- </linearGradient>
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient2330"
- id="linearGradient4646"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.852829,0,0,1.172568,-4.61104,-5.494924)"
- x1="249.71024"
- y1="470.67639"
- x2="268.70541"
- y2="444.59937" />
- <linearGradient
- id="linearGradient2307">
- <stop
- id="stop2309"
- offset="0"
- style="stop-color:#8a1e51;stop-opacity:1;" />
- <stop
- id="stop2311"
- offset="1.0000000"
- style="stop-color:#7e1b4a;stop-opacity:1.0000000;" />
- </linearGradient>
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient2307"
- id="linearGradient4644"
- gradientUnits="userSpaceOnUse"
- gradientTransform="scale(0.852829,1.172568)"
- x1="249.71024"
- y1="470.67639"
- x2="285.55072"
- y2="455.34595" />
- <linearGradient
- id="linearGradient4498">
- <stop
- id="stop4500"
- offset="0.0000000"
- style="stop-color:#1a3b23;stop-opacity:1.0000000;" />
- <stop
- id="stop4510"
- offset="0.34000000"
- style="stop-color:#255431;stop-opacity:1.0000000;" />
- <stop
- id="stop4508"
- offset="0.42000002"
- style="stop-color:#306d40;stop-opacity:1.0000000;" />
- <stop
- id="stop4506"
- offset="0.62000000"
- style="stop-color:#58c977;stop-opacity:1.0000000;" />
- <stop
- id="stop4504"
- offset="0.63999999"
- style="stop-color:#2f6a3f;stop-opacity:1.0000000;" />
- <stop
- id="stop4502"
- offset="1.0000000"
- style="stop-color:#86ffa7;stop-opacity:1.0000000;" />
- </linearGradient>
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4498"
- id="linearGradient4642"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.402062,0,0,0.551792,55.77949,-173.6434)"
- x1="410.68747"
- y1="351.94495"
- x2="496.01123"
- y2="446.42474" />
- <linearGradient
- id="linearGradient4472">
- <stop
- id="stop4474"
- offset="0.0000000"
- style="stop-color:#6a5000;stop-opacity:1.0000000;" />
- <stop
- id="stop4486"
- offset="0.36499998"
- style="stop-color:#b49b1d;stop-opacity:1.0000000;" />
- <stop
- id="stop4484"
- offset="0.47000000"
- style="stop-color:#ffe63b;stop-opacity:1.0000000;" />
- <stop
- id="stop4480"
- offset="0.62000000"
- style="stop-color:#fde55f;stop-opacity:1.0000000;" />
- <stop
- id="stop4482"
- offset="0.65999997"
- style="stop-color:#af8800;stop-opacity:1.0000000;" />
- <stop
- id="stop4476"
- offset="1.0000000"
- style="stop-color:#fcff96;stop-opacity:1.0000000;" />
- </linearGradient>
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4472"
- id="linearGradient4640"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.410011,0,0,0.541094,55.77949,-173.6434)"
- x1="407.20193"
- y1="340.1315"
- x2="509.36542"
- y2="443.40552" />
- <linearGradient
- id="linearGradient4440">
- <stop
- id="stop4442"
- offset="0.0000000"
- style="stop-color:#7c2b00;stop-opacity:1.0000000;" />
- <stop
- id="stop4458"
- offset="0.35250002"
- style="stop-color:#a56116;stop-opacity:1.0000000;" />
- <stop
- id="stop4456"
- offset="0.42500001"
- style="stop-color:#cf982c;stop-opacity:1.0000000;" />
- <stop
- id="stop4452"
- offset="0.61000001"
- style="stop-color:#ffdb59;stop-opacity:1.0000000;" />
- <stop
- id="stop4448"
- offset="0.63999999"
- style="stop-color:#d07100;stop-opacity:1.0000000;" />
- <stop
- id="stop4444"
- offset="1.0000000"
- style="stop-color:#fff77c;stop-opacity:1.0000000;" />
- </linearGradient>
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4440"
- id="linearGradient4638"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.395673,0,0,0.560701,55.96081,-173.4701)"
- x1="426.25494"
- y1="315.43689"
- x2="542.82642"
- y2="426.81122" />
- <linearGradient
- id="linearGradient4402">
- <stop
- id="stop4404"
- offset="0.0000000"
- style="stop-color:#540d0d;stop-opacity:1.0000000;" />
- <stop
- id="stop4462"
- offset="0.34999999"
- style="stop-color:#7e2316;stop-opacity:1.0000000;" />
- <stop
- id="stop4460"
- offset="0.43000001"
- style="stop-color:#a93a1f;stop-opacity:1.0000000;" />
- <stop
- id="stop4410"
- offset="0.62000000"
- style="stop-color:#ff6731;stop-opacity:1.0000000;" />
- <stop
- id="stop4412"
- offset="0.66000003"
- style="stop-color:#9f2819;stop-opacity:1.0000000;" />
- <stop
- id="stop4436"
- offset="0.77000004"
- style="stop-color:#e1734d;stop-opacity:1.0000000;" />
- <stop
- id="stop4406"
- offset="1.0000000"
- style="stop-color:#ffb47c;stop-opacity:1.0000000;" />
- </linearGradient>
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4402"
- id="linearGradient4636"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.400366,0,0,0.554129,55.74058,-173.7136)"
- x1="438.62411"
- y1="302.29001"
- x2="560.68457"
- y2="400.81851" />
- <linearGradient
- id="linearGradient4352">
- <stop
- id="stop4354"
- offset="0.0000000"
- style="stop-color:#833c0b;stop-opacity:1.0000000;" />
- <stop
- id="stop4356"
- offset="1.0000000"
- style="stop-color:#723409;stop-opacity:1.0000000;" />
- </linearGradient>
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4352"
- id="linearGradient4633"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.476543,0,0,0.46555,55.77949,-173.6434)"
- x1="178.40228"
- y1="433.92719"
- x2="274.36346"
- y2="433.92719" />
- <linearGradient
- id="linearGradient4392">
- <stop
- id="stop4394"
- offset="0.0000000"
- style="stop-color:#214b2c;stop-opacity:1.0000000;" />
- <stop
- id="stop4396"
- offset="1.0000000"
- style="stop-color:#1a3b23;stop-opacity:1.0000000;" />
- </linearGradient>
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4392"
- id="linearGradient4631"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.534168,0,0,0.415327,55.82726,-173.6161)"
- x1="170.54399"
- y1="569.89191"
- x2="233.7466"
- y2="533.10059" />
- <linearGradient
- id="linearGradient4360">
- <stop
- id="stop4362"
- offset="0"
- style="stop-color:#83190b;stop-opacity:1;" />
- <stop
- id="stop4364"
- offset="1.0000000"
- style="stop-color:#721509;stop-opacity:1.0000000;" />
- </linearGradient>
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4360"
- id="linearGradient4629"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.465924,0,0,0.47616,55.77949,-173.6434)"
- x1="177.6402"
- y1="411.45197"
- x2="275.48526"
- y2="411.45197" />
- <linearGradient
- id="linearGradient4382">
- <stop
- id="stop4384"
- offset="0.0000000"
- style="stop-color:#7e5c08;stop-opacity:1.0000000;" />
- <stop
- id="stop4386"
- offset="1.0000000"
- style="stop-color:#6e4b11;stop-opacity:1.0000000;" />
- </linearGradient>
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4382"
- id="linearGradient4627"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.484895,0,0,0.457531,55.82726,-173.6161)"
- x1="185.36516"
- y1="498.74353"
- x2="246.5347"
- y2="442.2757" />
- <linearGradient
- id="linearGradient4321">
- <stop
- id="stop4323"
- offset="0.0000000"
- style="stop-color:#b20033;stop-opacity:1.0000000;" />
- <stop
- id="stop4337"
- offset="0.46000001"
- style="stop-color:#ff7cba;stop-opacity:1.0000000;" />
- <stop
- id="stop4339"
- offset="0.55000001"
- style="stop-color:#9c225b;stop-opacity:1.0000000;" />
- <stop
- id="stop4325"
- offset="1.0000000"
- style="stop-color:#ff7ca1;stop-opacity:1.0000000;" />
- </linearGradient>
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4321"
- id="linearGradient4625"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.310584,0,0,0.714313,55.77949,-173.6434)"
- x1="683.10022"
- y1="231.87573"
- x2="720.63422"
- y2="271.91464" />
- <linearGradient
- id="linearGradient4368">
- <stop
- id="stop4370"
- offset="0"
- style="stop-color:#8a1e51;stop-opacity:1;" />
- <stop
- id="stop4372"
- offset="1.0000000"
- style="stop-color:#7e1b4a;stop-opacity:1.0000000;" />
- </linearGradient>
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4368"
- id="linearGradient4623"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.441119,0,0,0.502935,55.77949,-173.6434)"
- x1="185.72665"
- y1="378.45386"
- x2="266.98257"
- y2="378.45386" />
- <linearGradient
- id="linearGradient4273">
- <stop
- id="stop4275"
- offset="0.0000000"
- style="stop-color:#590012;stop-opacity:1.0000000;" />
- <stop
- id="stop4466"
- offset="0.93000001"
- style="stop-color:#a3211f;stop-opacity:1.0000000;" />
- <stop
- id="stop4468"
- offset="0.94000000"
- style="stop-color:#650014;stop-opacity:1.0000000;" />
- <stop
- id="stop4277"
- offset="1.0000000"
- style="stop-color:#ee6c68;stop-opacity:1.0000000;" />
- </linearGradient>
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4273"
- id="linearGradient4621"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.811924,0,0,0.273245,55.77949,-173.6434)"
- x1="105.41402"
- y1="673.69873"
- x2="274.53336"
- y2="691.37091" />
- <linearGradient
- id="linearGradient2441">
- <stop
- id="stop2443"
- offset="0.0000000"
- style="stop-color:#b0e9c0;stop-opacity:1.0000000;" />
- <stop
- id="stop2445"
- offset="1.0000000"
- style="stop-color:#75df92;stop-opacity:1.0000000;" />
- </linearGradient>
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient2441"
- id="linearGradient4619"
- gradientUnits="userSpaceOnUse"
- gradientTransform="scale(0.852829,1.172568)"
- x1="273.20914"
- y1="455.33145"
- x2="276.42776"
- y2="474.10953" />
- <linearGradient
- id="linearGradient2447">
- <stop
- id="stop2449"
- offset="0.0000000"
- style="stop-color:#ffd625;stop-opacity:1.0000000;" />
- <stop
- id="stop2451"
- offset="1.0000000"
- style="stop-color:#fff0ab;stop-opacity:1.0000000;" />
- </linearGradient>
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient2447"
- id="linearGradient4617"
- gradientUnits="userSpaceOnUse"
- gradientTransform="scale(0.852829,1.172568)"
- x1="269.87866"
- y1="468.31586"
- x2="274.6358"
- y2="450.71976" />
- <linearGradient
- id="linearGradient2453">
- <stop
- id="stop2455"
- offset="0.0000000"
- style="stop-color:#f6b94e;stop-opacity:1.0000000;" />
- <stop
- id="stop2457"
- offset="1.0000000"
- style="stop-color:#ffc340;stop-opacity:1.0000000;" />
- </linearGradient>
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient2453"
- id="linearGradient4615"
- gradientUnits="userSpaceOnUse"
- gradientTransform="scale(0.852829,1.172568)"
- x1="262.95721"
- y1="463.82385"
- x2="271.31601"
- y2="446.71695" />
- <linearGradient
- id="linearGradient2463">
- <stop
- id="stop2465"
- offset="0.0000000"
- style="stop-color:#fda5cf;stop-opacity:1.0000000;" />
- <stop
- id="stop2467"
- offset="1.0000000"
- style="stop-color:#ce2c79;stop-opacity:1.0000000;" />
- </linearGradient>
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient2463"
- id="linearGradient4613"
- gradientUnits="userSpaceOnUse"
- gradientTransform="scale(0.852829,1.172568)"
- x1="258.13016"
- y1="442.66943"
- x2="247.02499"
- y2="456.03308" />
- <linearGradient
- id="linearGradient2469">
- <stop
- id="stop2471"
- offset="0.0000000"
- style="stop-color:#f6754e;stop-opacity:1.0000000;" />
- <stop
- id="stop2473"
- offset="1.0000000"
- style="stop-color:#ffa879;stop-opacity:1.0000000;" />
- </linearGradient>
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient2469"
- id="linearGradient4611"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.852829,0,0,1.172568,-12.28101,22.44028)"
- x1="257.99484"
- y1="431.38104"
- x2="274.71591"
- y2="420.00296" />
- <linearGradient
- id="linearGradient2785">
- <stop
- style="stop-color:#000000;stop-opacity:0.0000000;"
- offset="0.0000000"
- id="stop2787" />
- <stop
- style="stop-color:#000000;stop-opacity:0.49803922;"
- offset="0.36000001"
- id="stop2793" />
- <stop
- style="stop-color:#000000;stop-opacity:0;"
- offset="1"
- id="stop2789" />
- </linearGradient>
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient2785"
- id="linearGradient4609"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.453732,0,0,0.488954,57.57699,-173.4241)"
- x1="277.5726"
- y1="521.61127"
- x2="316.56882"
- y2="527.43481" />
- <linearGradient
- id="linearGradient2713">
- <stop
- id="stop2715"
- offset="0.0000000"
- style="stop-color:#b20033;stop-opacity:1.0000000;" />
- <stop
- id="stop2721"
- offset="1.0000000"
- style="stop-color:#ffe77c;stop-opacity:1.0000000;" />
- </linearGradient>
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient2713"
- id="linearGradient4607"
- gradientUnits="userSpaceOnUse"
- gradientTransform="scale(0.625932,1.597617)"
- x1="542.85187"
- y1="330.59"
- x2="554.73236"
- y2="359.37115" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient2823"
- id="linearGradient4605"
- gradientUnits="userSpaceOnUse"
- gradientTransform="scale(1.121629,0.891561)"
- x1="229.5614"
- y1="692.33807"
- x2="276.19287"
- y2="715.24652" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient2823"
- id="linearGradient4603"
- gradientUnits="userSpaceOnUse"
- gradientTransform="scale(1.121629,0.891561)"
- x1="229.5614"
- y1="692.33807"
- x2="276.19287"
- y2="715.24652" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient2823"
- id="linearGradient4601"
- gradientUnits="userSpaceOnUse"
- gradientTransform="scale(1.121629,0.891561)"
- x1="229.5614"
- y1="692.33807"
- x2="276.19287"
- y2="715.24652" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient2823"
- id="linearGradient4599"
- gradientUnits="userSpaceOnUse"
- gradientTransform="scale(1.121629,0.891561)"
- x1="229.5614"
- y1="692.33807"
- x2="276.19287"
- y2="715.24652" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient2823"
- id="linearGradient4597"
- gradientUnits="userSpaceOnUse"
- gradientTransform="scale(1.121629,0.891561)"
- x1="229.5614"
- y1="692.33807"
- x2="276.19287"
- y2="715.24652" />
- <linearGradient
- id="linearGradient2823">
- <stop
- style="stop-color:#4d3719;stop-opacity:1;"
- offset="0"
- id="stop2825" />
- <stop
- style="stop-color:#ddae66;stop-opacity:1;"
- offset="0.69999999"
- id="stop2866" />
- <stop
- style="stop-color:#b2731c;stop-opacity:1;"
- offset="1"
- id="stop2827" />
- </linearGradient>
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient2823"
- id="linearGradient4595"
- gradientUnits="userSpaceOnUse"
- gradientTransform="scale(1.121629,0.891561)"
- x1="261.13171"
- y1="710.77112"
- x2="267.06235"
- y2="710.77136" />
- <linearGradient
- id="linearGradient3185">
- <stop
- id="stop3187"
- offset="0"
- style="stop-color:#50a3f7;stop-opacity:1;" />
- <stop
- id="stop3189"
- offset="1"
- style="stop-color:#002ea8;stop-opacity:1;" />
- </linearGradient>
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient3185"
- id="linearGradient5341"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(1.3457951,0,0,2.1229785,538.33426,-11.05243)"
- x1="-263.28992"
- y1="56.713814"
- x2="-263.14236"
- y2="8.8705559" />
- <linearGradient
- id="linearGradient10207">
- <stop
- style="stop-color:#a2a2a2;stop-opacity:1;"
- offset="0"
- id="stop10209" />
- <stop
- style="stop-color:#ffffff;stop-opacity:1;"
- offset="1"
- id="stop10211" />
- </linearGradient>
- <linearGradient
- id="XMLID_12_"
- gradientUnits="userSpaceOnUse"
- x1="96"
- y1="104"
- x2="88.000198"
- y2="96.000198">
- <stop
- offset="0"
- style="stop-color:#888A85"
- id="stop83" />
- <stop
- offset="0.0072"
- style="stop-color:#8C8E89"
- id="stop85" />
- <stop
- offset="0.0673"
- style="stop-color:#ABACA9"
- id="stop87" />
- <stop
- offset="0.1347"
- style="stop-color:#C5C6C4"
- id="stop89" />
- <stop
- offset="0.2652576"
- style="stop-color:#DBDBDA"
- id="stop91" />
- <stop
- offset="0.37646064"
- style="stop-color:#EBEBEB"
- id="stop93" />
- <stop
- offset="0.48740286"
- style="stop-color:#F7F7F6"
- id="stop95" />
- <stop
- offset="0.6324091"
- style="stop-color:#FDFDFD"
- id="stop97" />
- <stop
- offset="1"
- style="stop-color:#FFFFFF"
- id="stop99" />
- </linearGradient>
- <radialGradient
- id="XMLID_8_"
- cx="102"
- cy="112.3047"
- r="139.55859"
- gradientUnits="userSpaceOnUse">
- <stop
- offset="0"
- style="stop-color:#b7b8b9;stop-opacity:1;"
- id="stop41" />
- <stop
- offset="0.18851049"
- style="stop-color:#ECECEC"
- id="stop47" />
- <stop
- offset="0.25718147"
- style="stop-color:#FAFAFA"
- id="stop49" />
- <stop
- offset="0.30111277"
- style="stop-color:#FFFFFF"
- id="stop51" />
- <stop
- offset="0.5313"
- style="stop-color:#FAFAFA"
- id="stop53" />
- <stop
- offset="0.8449"
- style="stop-color:#EBECEC"
- id="stop55" />
- <stop
- offset="1"
- style="stop-color:#E1E2E3"
- id="stop57" />
- </radialGradient>
- <filter
- inkscape:collect="always"
- x="-0.19200002"
- width="1.3839999"
- y="-0.19199999"
- height="1.3839999"
- id="filter6697">
- <feGaussianBlur
- inkscape:collect="always"
- stdDeviation="1.9447689"
- id="feGaussianBlur6699" />
- </filter>
- <clipPath
- clipPathUnits="userSpaceOnUse"
- id="clipPath7084">
- <path
- style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
- d="M 72,88 L 40,120 L 32,120 L 32,80 L 72,80 L 72,88 z"
- id="path7086" />
- </clipPath>
- <radialGradient
- inkscape:collect="always"
- xlink:href="#XMLID_8_"
- id="radialGradient9437"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(1,0,0,0.9996653,-7.999998,16.003016)"
- cx="114"
- cy="95.028786"
- r="139.55859"
- fx="114"
- fy="95.028786" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient10207"
- id="linearGradient10213"
- x1="98.617439"
- y1="106.41443"
- x2="91.228737"
- y2="99.254974"
- gradientUnits="userSpaceOnUse" />
- <filter
- inkscape:collect="always"
- id="filter2770">
- <feGaussianBlur
- inkscape:collect="always"
- stdDeviation="2.0786429"
- id="feGaussianBlur2772" />
- </filter>
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient3185"
- id="linearGradient4882"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(1.3457951,0,0,2.1229785,538.33426,-11.05243)"
- x1="-263.14236"
- y1="72.386543"
- x2="-263.14236"
- y2="-21.190172" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient2823"
- id="linearGradient4884"
- gradientUnits="userSpaceOnUse"
- gradientTransform="scale(1.121629,0.891561)"
- x1="261.13171"
- y1="710.77112"
- x2="267.06235"
- y2="710.77136" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient2823"
- id="linearGradient4886"
- gradientUnits="userSpaceOnUse"
- gradientTransform="scale(1.121629,0.891561)"
- x1="229.5614"
- y1="692.33807"
- x2="276.19287"
- y2="715.24652" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient2823"
- id="linearGradient4888"
- gradientUnits="userSpaceOnUse"
- gradientTransform="scale(1.121629,0.891561)"
- x1="229.5614"
- y1="692.33807"
- x2="276.19287"
- y2="715.24652" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient2823"
- id="linearGradient4890"
- gradientUnits="userSpaceOnUse"
- gradientTransform="scale(1.121629,0.891561)"
- x1="229.5614"
- y1="692.33807"
- x2="276.19287"
- y2="715.24652" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient2823"
- id="linearGradient4892"
- gradientUnits="userSpaceOnUse"
- gradientTransform="scale(1.121629,0.891561)"
- x1="229.5614"
- y1="692.33807"
- x2="276.19287"
- y2="715.24652" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient2823"
- id="linearGradient4894"
- gradientUnits="userSpaceOnUse"
- gradientTransform="scale(1.121629,0.891561)"
- x1="229.5614"
- y1="692.33807"
- x2="276.19287"
- y2="715.24652" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient2713"
- id="linearGradient4896"
- gradientUnits="userSpaceOnUse"
- gradientTransform="scale(0.625932,1.597617)"
- x1="542.85187"
- y1="330.59"
- x2="554.73236"
- y2="359.37115" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient2785"
- id="linearGradient4898"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.453732,0,0,0.488954,57.57699,-173.4241)"
- x1="277.5726"
- y1="521.61127"
- x2="316.56882"
- y2="527.43481" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient2469"
- id="linearGradient4900"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.852829,0,0,1.172568,-12.28101,22.44028)"
- x1="257.99484"
- y1="431.38104"
- x2="274.71591"
- y2="420.00296" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient2463"
- id="linearGradient4902"
- gradientUnits="userSpaceOnUse"
- gradientTransform="scale(0.852829,1.172568)"
- x1="258.13016"
- y1="442.66943"
- x2="247.02499"
- y2="456.03308" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient2453"
- id="linearGradient4904"
- gradientUnits="userSpaceOnUse"
- gradientTransform="scale(0.852829,1.172568)"
- x1="262.95721"
- y1="463.82385"
- x2="271.31601"
- y2="446.71695" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient2447"
- id="linearGradient4906"
- gradientUnits="userSpaceOnUse"
- gradientTransform="scale(0.852829,1.172568)"
- x1="269.87866"
- y1="468.31586"
- x2="274.6358"
- y2="450.71976" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient2441"
- id="linearGradient4908"
- gradientUnits="userSpaceOnUse"
- gradientTransform="scale(0.852829,1.172568)"
- x1="273.20914"
- y1="455.33145"
- x2="276.42776"
- y2="474.10953" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4273"
- id="linearGradient4910"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.811924,0,0,0.273245,55.77949,-173.6434)"
- x1="105.41402"
- y1="673.69873"
- x2="274.53336"
- y2="691.37091" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4368"
- id="linearGradient4912"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.441119,0,0,0.502935,55.77949,-173.6434)"
- x1="185.72665"
- y1="378.45386"
- x2="266.98257"
- y2="378.45386" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4321"
- id="linearGradient4914"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.310584,0,0,0.714313,55.77949,-173.6434)"
- x1="683.10022"
- y1="231.87573"
- x2="720.63422"
- y2="271.91464" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4382"
- id="linearGradient4916"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.484895,0,0,0.457531,55.82726,-173.6161)"
- x1="185.36516"
- y1="498.74353"
- x2="246.5347"
- y2="442.2757" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4360"
- id="linearGradient4918"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.465924,0,0,0.47616,55.77949,-173.6434)"
- x1="177.6402"
- y1="411.45197"
- x2="275.48526"
- y2="411.45197" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4392"
- id="linearGradient4920"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.534168,0,0,0.415327,55.82726,-173.6161)"
- x1="170.54399"
- y1="569.89191"
- x2="233.7466"
- y2="533.10059" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4352"
- id="linearGradient4922"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.476543,0,0,0.46555,55.77949,-173.6434)"
- x1="178.40228"
- y1="433.92719"
- x2="274.36346"
- y2="433.92719" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4402"
- id="linearGradient4924"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.400366,0,0,0.554129,55.74058,-173.7136)"
- x1="438.62411"
- y1="302.29001"
- x2="560.68457"
- y2="400.81851" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4440"
- id="linearGradient4926"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.395673,0,0,0.560701,55.96081,-173.4701)"
- x1="426.25494"
- y1="315.43689"
- x2="542.82642"
- y2="426.81122" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4472"
- id="linearGradient4928"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.410011,0,0,0.541094,55.77949,-173.6434)"
- x1="407.20193"
- y1="340.1315"
- x2="509.36542"
- y2="443.40552" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4498"
- id="linearGradient4930"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.402062,0,0,0.551792,55.77949,-173.6434)"
- x1="410.68747"
- y1="351.94495"
- x2="496.01123"
- y2="446.42474" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient2307"
- id="linearGradient4932"
- gradientUnits="userSpaceOnUse"
- gradientTransform="scale(0.852829,1.172568)"
- x1="249.71024"
- y1="470.67639"
- x2="285.55072"
- y2="455.34595" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient2330"
- id="linearGradient4934"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.852829,0,0,1.172568,-4.61104,-5.494924)"
- x1="249.71024"
- y1="470.67639"
- x2="268.70541"
- y2="444.59937" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient2367"
- id="linearGradient4936"
- gradientUnits="userSpaceOnUse"
- gradientTransform="scale(0.852829,1.172568)"
- x1="249.71024"
- y1="470.67639"
- x2="268.70541"
- y2="444.59937" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient2373"
- id="linearGradient4938"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.852829,0,0,1.172568,-0.505078,0.252536)"
- x1="249.71024"
- y1="470.67639"
- x2="268.70541"
- y2="444.59937" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4516"
- id="linearGradient4940"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.480452,0,0,0.461761,55.77949,-173.6434)"
- x1="299.42841"
- y1="480.61096"
- x2="419.73056"
- y2="503.82071" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4255"
- id="linearGradient4942"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.44753,0,0,0.49573,55.77949,-173.6434)"
- x1="390.90793"
- y1="442.95132"
- x2="419.73016"
- y2="470.11917" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4526"
- id="linearGradient4944"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.544849,0,0,0.407185,55.77949,-173.6434)"
- x1="388.85477"
- y1="581.20758"
- x2="355.6568"
- y2="561.59204" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4526"
- id="linearGradient4946"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.544849,0,0,0.407185,55.77949,-173.6434)"
- x1="391.99573"
- y1="490.36765"
- x2="343.76462"
- y2="472.65836" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4526"
- id="linearGradient4948"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.616893,0,0,0.359632,55.77949,-173.6434)"
- x1="306.2883"
- y1="672.46191"
- x2="333.49854"
- y2="707.75031" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient2797"
- id="linearGradient4950"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.470374,0,0,0.471655,55.77949,-173.6434)"
- x1="313.85675"
- y1="561.1123"
- x2="355.78586"
- y2="553.29712" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4526"
- id="linearGradient4952"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.414913,0,0,0.534701,55.77949,-173.6434)"
- x1="336.97562"
- y1="514.06415"
- x2="402.90091"
- y2="491.13419" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4526"
- id="linearGradient4954"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.544849,0,0,0.407185,55.77949,-173.6434)"
- x1="391.99573"
- y1="490.36765"
- x2="343.76462"
- y2="472.65836" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4526"
- id="linearGradient4956"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.544849,0,0,0.407185,55.77949,-173.6434)"
- x1="388.85477"
- y1="581.20758"
- x2="355.6568"
- y2="561.59204" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4526"
- id="linearGradient4958"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.616893,0,0,0.359632,55.77949,-173.6434)"
- x1="322.5351"
- y1="671.36499"
- x2="305.54623"
- y2="703.1059" />
- <linearGradient
- y2="154.50412"
- x2="210.98608"
- y1="154.50412"
- x1="155.21127"
- gradientTransform="matrix(0.9295551,0,0,0.9288601,-84.40008,12.847771)"
- gradientUnits="userSpaceOnUse"
- id="linearGradient9061"
- xlink:href="#linearGradient6001"
- inkscape:collect="always" />
- <linearGradient
- y2="167.16171"
- x2="83.742836"
- y1="154.27817"
- x1="82.802177"
- gradientTransform="matrix(0.6260112,0,0,0.2001745,68.175377,138.95724)"
- gradientUnits="userSpaceOnUse"
- id="linearGradient8903"
- xlink:href="#linearGradient3426"
- inkscape:collect="always" />
- <linearGradient
- id="linearGradient3134">
- <stop
- id="stop3136"
- offset="0"
- style="stop-color:#ffd500;stop-opacity:1;" />
- <stop
- id="stop3138"
- offset="1"
- style="stop-color:#ff7e00;stop-opacity:1;" />
- </linearGradient>
- <linearGradient
- id="linearGradient3146">
- <stop
- id="stop3148"
- offset="0"
- style="stop-color:#ff7e00;stop-opacity:1;" />
- <stop
- id="stop3150"
- offset="1"
- style="stop-color:#ffd500;stop-opacity:1;" />
- </linearGradient>
- <linearGradient
- id="linearGradient3158">
- <stop
- id="stop3160"
- offset="0"
- style="stop-color:#fff8de;stop-opacity:1;" />
- <stop
- id="stop3162"
- offset="1"
- style="stop-color:#ffff00;stop-opacity:1;" />
- </linearGradient>
- <linearGradient
- id="linearGradient3426"
- inkscape:collect="always">
- <stop
- id="stop3428"
- offset="0"
- style="stop-color:#555555;stop-opacity:1;" />
- <stop
- id="stop3430"
- offset="1"
- style="stop-color:#555555;stop-opacity:0;" />
- </linearGradient>
- <linearGradient
- id="linearGradient6001"
- inkscape:collect="always">
- <stop
- id="stop6003"
- offset="0"
- style="stop-color:#000000;stop-opacity:1;" />
- <stop
- id="stop6005"
- offset="1"
- style="stop-color:#000000;stop-opacity:0;" />
- </linearGradient>
- <linearGradient
- id="linearGradient7545">
- <stop
- id="stop7547"
- offset="0"
- style="stop-color:#323232;stop-opacity:1;" />
- <stop
- id="stop7549"
- offset="1"
- style="stop-color:#101010;stop-opacity:1;" />
- </linearGradient>
- <clipPath
- clipPathUnits="userSpaceOnUse"
- id="clipPath4318">
- <path
- style="opacity:0.48888891;fill:#f9f2ea;fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
- d="M 1.954599,2.1834159 L 1.954599,187.15135 L 256.71404,187.15135 L 256.71404,2.1834159 L 1.954599,2.1834159 z "
- id="path4320" />
- </clipPath>
- <clipPath
- clipPathUnits="userSpaceOnUse"
- id="clipPath31854">
- <path
- style="opacity:0.48888891;fill:#f9f2ea;fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
- d="M 12,28 L 12,108 L 92.5,108 L 116,82.75 L 116,28 L 12,28 z "
- id="path31856"
- sodipodi:nodetypes="cccccc" />
- </clipPath>
- <radialGradient
- inkscape:collect="always"
- xlink:href="#linearGradient31860"
- id="radialGradient31866"
- cx="101.5"
- cy="92.997192"
- fx="101.5"
- fy="92.997192"
- r="21.5"
- gradientTransform="matrix(0.7247027,0.6890616,-0.6744186,0.7093023,90.661709,-42.65288)"
- gradientUnits="userSpaceOnUse" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient6001"
- id="linearGradient8360"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.4103611,0,0,0.4330773,-28.25306,27.952127)"
- x1="121.40629"
- y1="177.05572"
- x2="177.1811"
- y2="177.05572" />
- </defs>
- <sodipodi:namedview
- id="base"
- pagecolor="#ffffff"
- bordercolor="#666666"
- borderopacity="1.0"
- inkscape:pageopacity="0.0"
- inkscape:pageshadow="2"
- inkscape:zoom="1"
- inkscape:cx="-126.82503"
- inkscape:cy="44.445553"
- inkscape:document-units="px"
- inkscape:current-layer="layer1"
- width="128px"
- height="128px"
- gridspacingx="4px"
- gridspacingy="4px"
- gridempspacing="2"
- showgrid="true"
- inkscape:grid-points="true"
- showguides="true"
- inkscape:guide-bbox="true"
- inkscape:window-width="1016"
- inkscape:window-height="692"
- inkscape:window-x="351"
- inkscape:window-y="46"
- showborder="true">
- <sodipodi:guide
- orientation="horizontal"
- position="40.875"
- id="guide5004" />
- </sodipodi:namedview>
- <metadata
- id="metadata2611">
- <rdf:RDF>
- <cc:Work
- rdf:about="">
- <dc:format>image/svg+xml</dc:format>
- <dc:type
- rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
- </cc:Work>
- </rdf:RDF>
- </metadata>
- <g
- inkscape:label="Livello 1"
- inkscape:groupmode="layer"
- id="layer1">
- <path
- style="opacity:0.5;fill:#000000;fill-opacity:1;filter:url(#filter2770)"
- d="M 16,8 L 16,96.626087 C 16,96.626087 94.51625,96.626087 94.51625,96.626087 L 94.5475,96.626087 C 94.547503,96.626087 106.45375,86.719837 111.95375,81.219837 C 117.45375,75.719837 127.36,63.813587 127.36,63.813587 L 127.36,63.782337 L 127.36,8 L 16,8 z "
- id="path7865"
- sodipodi:nodetypes="csccscccc"
- transform="matrix(1.0416667,0,0,1.0267857,-10.666667,14.785711)" />
- <path
- style="fill:#ffffff;fill-opacity:1"
- d="M 8.000001,24 L 8,112 C 8,112 87.146418,112 87.146418,112 L 120,79.14642 L 120,24 L 8.000001,24 z "
- id="path34"
- sodipodi:nodetypes="cccccc" />
- <path
- style="fill:url(#radialGradient9437);fill-opacity:1"
- d="M 10.000002,25.000003 C 9.449002,25.000003 9.000002,25.448853 9.000002,25.999668 L 9.000002,109.96352 C 9.000002,110.51533 9.449002,110.96318 10.000002,110.96318 L 85.171999,110.96318 C 85.434999,110.96318 87.934679,111.08131 88.12068,110.89438 L 118.707,80.094202 C 118.894,79.907264 119,77.40942 119,77.146508 L 119,25.999668 C 119,25.448853 118.552,25.000003 118,25.000003 L 10.000002,25.000003 z "
- id="path59"
- sodipodi:nodetypes="ccccccccccc" />
- <g
- id="g4805"
- transform="matrix(0.9166667,0,0,0.9166667,-112.66667,13.33333)">
- <path
- sodipodi:nodetypes="cccccc"
- id="rect3183"
- d="M 136,16 L 249.45454,16 L 249.45454,78.40711 L 223.14295,103.27273 L 136,103.27273 L 136,16 z "
- style="fill:url(#linearGradient4882);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3.20000005;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:4;stroke-opacity:1" />
- <g
- transform="matrix(0.5620693,0,0,0.6015749,58.600837,15.161068)"
- id="g4460">
- <path
- style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:0.5138334px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
- d="M 187.22261,104.20627 C 187.22261,104.20627 187.22261,102.23277 187.22261,104.20627 z "
- id="path4462" />
- <path
- style="fill:#422f17;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.5138334px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
- d="M 183.201,113.07522 C 193.37175,108.10319 193.63086,108.52844 200.46351,113.69314 L 200.29499,105.21496 C 200.35117,105.10532 201.41844,103.68002 201.41844,105.21496 C 201.41844,106.7499 201.64313,115.74027 201.64313,115.74027 C 201.64313,115.74027 201.13758,128.18425 199.34006,129.171 C 197.99193,129.60955 189.06054,134.37883 189.06054,134.37883 C 189.06054,134.37883 187.26303,135.25594 185.91489,134.37883 C 184.56675,133.50173 176.92733,128.0198 176.92733,128.0198 C 176.92733,128.0198 175.80388,126.92341 176.47795,125.60775 C 177.15201,124.29208 186.54379,99.322577 188.7681,101.64836"
- id="path4464"
- sodipodi:nodetypes="ccccccccccz" />
- <g
- id="g4466"
- style="fill:url(#linearGradient8360);fill-opacity:1"
- transform="matrix(0.476791,0,0,0.465307,56.04458,-173.9504)">
- <path
- style="fill:url(#linearGradient4886);fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
- d="M 263.1947,617.63145 L 282.04481,607.26389 C 282.04481,607.26389 286.52172,604.90763 291.23424,608.2064 C 295.94677,611.50517 305.37183,619.28084 305.37183,619.28084 L 306.19652,623.28649 L 290.0847,610.59125 C 289.08502,610.42464 286.38369,608.94186 283.45857,609.85578 C 280.86668,611.26954 261.20025,622.17737 261.20025,622.17737 L 263.1947,617.63145 z "
- id="path4468"
- sodipodi:nodetypes="ccccccccc" />
- <path
- style="fill:url(#linearGradient4888);fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
- d="M 260.84963,623.11423 L 282.16544,611.73514 C 282.16544,611.73514 286.1711,608.90763 290.88362,612.2064 C 295.59615,615.50517 306.90623,624.6946 305.96372,624.22335 L 305.6995,630.43604 L 287.34923,616.32704 C 287.34923,616.32704 283.81483,614.67765 281.22294,616.09141 C 278.63105,617.50517 258.13155,628.57961 258.13155,628.57961 L 260.84963,623.11423 z "
- id="path4471"
- sodipodi:nodetypes="ccccccccc" />
- <path
- style="fill:url(#linearGradient4890);fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
- d="M 257.89592,629.40713 L 280.0448,617.86143 C 280.0448,617.86143 284.05046,615.03392 288.76298,618.33269 C 293.47551,621.63146 306.35759,631.99903 305.41508,631.52778 L 304.9236,637.22041 L 285.22859,622.45333 C 285.22859,622.45333 281.69419,620.80394 279.1023,622.2177 C 276.51041,623.63146 256.01091,634.7059 256.01091,634.7059 L 257.89592,629.40713 z "
- id="path4473"
- sodipodi:nodetypes="ccccccccc" />
- <path
- style="fill:url(#linearGradient4892);fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
- d="M 255.53966,635.29779 L 277.68854,623.75209 C 277.68854,623.75209 281.6942,620.92458 286.40672,624.22335 C 291.11925,627.52212 305.67931,638.38115 304.7368,637.9099 L 303.84308,644.36659 L 282.87233,628.34399 C 282.87233,628.34399 279.33793,626.6946 276.74604,628.10836 C 274.15415,629.52212 253.65465,640.59656 253.65465,640.59656 L 255.53966,635.29779 z "
- id="path4475"
- sodipodi:nodetypes="ccccccccc" />
- <path
- style="fill:url(#linearGradient4894);fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
- d="M 253.29839,641.66534 L 275.44727,629.41277 C 275.44727,629.41277 279.92418,626.22344 284.6367,630.35528 C 289.34923,633.65405 303.72244,644.96412 303.72244,644.96412 C 303.80098,647.32038 302.70139,649.79446 301.13055,651.32603 C 301.44472,649.51956 304.11515,648.41997 300.42367,645.55318 L 282.32022,632.57352 C 281.32055,632.07368 278.78582,630.92413 276.19393,632.33789 C 273.60204,633.75165 253.76964,644.49286 253.76964,644.49286 L 253.29839,641.66534 z "
- id="path4477"
- sodipodi:nodetypes="cccccccccc" />
- </g>
- <path
- style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.5138334px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:0.55940594"
- d="M 202.05456,103.14424 C 202.05456,103.14424 216.03593,126.86726 225.09204,93.530989"
- id="path4479"
- sodipodi:nodetypes="cc" />
- <g
- id="g4481"
- transform="matrix(0.476791,0,0,0.465307,55.77949,-173.6434)">
- <path
- style="fill:url(#linearGradient4896);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
- d="M 338.22446,521.19983 C 338.22446,521.19983 377.21191,565.18567 333.22607,578.18149 C 329.89381,579.18117 338.22446,521.19983 338.22446,521.19983 z "
- id="path4483"
- sodipodi:nodetypes="ccc" />
- <path
- style="fill:#0b6c46;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-opacity:1"
- d="M 275.0748,560.94594 L 275.21707,570.0003 C 283.27792,574.86011 293.10363,578.29621 303.96622,579.55254 C 314.81983,580.80783 325.18449,579.70093 334.1368,576.81477 L 333.99453,567.76041 C 325.93737,562.90699 284.03215,558.05439 275.0748,560.94594 z "
- id="path4485"
- sodipodi:nodetypes="cccccc" />
- <path
- style="fill:#bea613;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-opacity:1"
- d="M 275.68002,559.47428 L 275.57592,566.89757 C 283.50748,571.92005 293.36967,575.46859 304.29245,576.73188 C 315.20005,577.99342 325.63274,576.80211 334.49332,573.73219 L 334.60208,566.26861 C 326.67617,561.25722 284.54863,556.39486 275.68002,559.47428 z "
- id="path4487"
- sodipodi:nodetypes="cccccc" />
- <path
- style="fill:#b37711;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-opacity:1"
- d="M 276.88308,547.60287 L 276.00468,563.19042 C 283.77731,568.47998 293.58498,572.288 304.65829,573.56871 C 315.7236,574.84849 326.15339,573.37529 334.92441,570.00489 L 335.80281,554.41734 C 328.03268,549.13385 285.65791,544.22713 276.88308,547.60287 z "
- id="path4489"
- sodipodi:nodetypes="cccccc" />
- <path
- style="fill:#ac182a;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-opacity:1"
- d="M 277.50759,547.18114 L 276.67811,557.36777 C 284.00502,563.19427 293.8856,567.44309 305.21521,568.75344 C 316.54212,570.06348 327.13535,568.18047 335.59784,564.18225 L 336.42732,553.99561 C 329.10088,548.17129 285.97104,543.1809 277.50759,547.18114 z "
- id="path4491"
- sodipodi:nodetypes="cccccc" />
- <path
- style="fill:#be2873;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-opacity:1"
- d="M 278.81487,540.62031 L 277.33523,551.68616 C 284.05502,558.16146 294.04935,562.94986 305.73019,564.30083 C 317.38774,565.64911 328.23427,563.29207 336.2503,558.54093 L 337.73926,547.39449 C 331.01935,540.93903 286.83532,535.84983 278.81487,540.62031 z "
- id="path4493"
- sodipodi:nodetypes="cccccc" />
- <path
- style="fill:#ab0d2d;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-opacity:1"
- d="M 279.47201,530.46825 L 278.30926,543.26448 C 283.43866,551.13384 293.77039,557.26207 306.37566,558.71996 C 318.97018,560.1766 330.43404,556.57932 337.22666,550.0991 L 338.39407,537.26258 C 333.25996,529.40295 286.26227,523.97748 279.47201,530.46825 z "
- id="path4495"
- sodipodi:nodetypes="cccccc" />
- <path
- style="fill:#8d0b1e;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-opacity:1"
- d="M 280.98901,520.09478 L 279.05493,536.81726 C 283.24905,544.62442 293.92558,550.97115 307.09569,552.49436 C 320.24075,554.01468 332.09271,550.29201 337.97,543.67203 L 339.9134,526.86896 C 335.70236,519.08219 286.85447,513.45108 280.98901,520.09478 z "
- id="path4497"
- sodipodi:nodetypes="cccccc" />
- <path
- style="fill:#790a59;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-opacity:1"
- d="M 281.88381,512.35812 L 279.94973,529.0806 C 284.14385,536.88776 294.82038,543.23448 307.9905,544.7577 C 321.13555,546.27801 332.98752,542.55535 338.8648,535.93536 L 340.8082,519.1323 C 336.59716,511.34553 287.74927,505.71442 281.88381,512.35812 z "
- id="path4499"
- sodipodi:nodetypes="cccccc" />
- <path
- style="fill:#002c91;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-opacity:1"
- d="M 282.92775,503.33201 L 280.99367,520.05449 C 285.18778,527.86165 295.86432,534.20837 309.03443,535.73159 C 322.17949,537.25191 334.03145,533.52924 339.90874,526.90926 L 341.85214,510.10619 C 337.6411,502.31942 288.79321,496.68831 282.92775,503.33201 z "
- id="path4501"
- sodipodi:nodetypes="cccccc" />
- <path
- style="fill:#0b6c46;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-opacity:1"
- d="M 248.40625,547.75 L 253.90625,562.53125 L 267.34375,573.6875 C 270.1161,572.87512 272.81821,571.85611 275.375,570.46875 L 277.1875,555.125 C 273.53213,551.65247 260.03014,548.67004 248.40625,547.75 z "
- id="path4503" />
- <path
- style="fill:#bea613;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-opacity:1"
- d="M 247.0625,544.125 L 253.90625,562.53125 L 264.21875,571.09375 C 268.30846,570.26259 272.21002,568.75831 275.84375,566.65625 L 277.4375,551.75 C 273.68372,547.98759 259.044,544.83986 247.0625,544.125 z "
- id="path4505" />
- <path
- style="fill:#9f690f;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-opacity:1"
- d="M 247.5,545.3125 L 253.90625,562.53125 L 260.09375,567.65625 C 265.91841,567.12148 271.4714,565.18231 276.4375,562.03125 L 277.25,553.15625 C 273.64896,549.24433 259.39196,546.0513 247.5,545.3125 z "
- id="path4507" />
- <path
- style="fill:#a01728;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-opacity:1"
- d="M 242.34375,533.09375 C 238.15485,533.3011 234.78501,534.0274 233.0625,535.34375 L 232.8125,537.59375 L 243.25,533.875 L 253.5625,561.59375 C 262.23387,562.6764 270.53733,560.01218 277.34375,554.8125 L 278.75,541.53125 C 274.73183,536.34031 254.91044,532.4717 242.34375,533.09375 z "
- id="path4509" />
- <path
- style="fill:#ae055a;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-opacity:1"
- d="M 233.90026,527.51949 L 232.5274,541.56434 C 237.36729,549.31327 244.88205,554.85296 253.9423,556.07987 C 262.9845,557.30434 271.63361,553.97964 278.22229,547.80305 L 279.60771,533.65824 C 274.76644,525.93383 240.49366,521.31884 233.90026,527.51949 z "
- id="path4511"
- sodipodi:nodetypes="cccccc" />
- <path
- style="fill:#9e0c2a;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-opacity:1"
- d="M 235.3218,518.43899 L 233.84056,531.11784 C 237.34375,540.65021 245.03521,547.83318 254.81251,549.15719 C 264.58147,550.48008 273.79512,545.59896 279.53859,537.33156 L 281.02611,524.60272 C 277.51859,515.08257 241.06411,510.15862 235.3218,518.43899 z "
- id="path4513"
- sodipodi:nodetypes="cccccc" />
- <path
- style="fill:#720818;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-opacity:1"
- d="M 237.45332,502.37747 L 234.84585,523.12052 C 237.62058,532.61147 245.56782,540.05144 255.78324,541.43478 C 265.97922,542.81549 275.50503,537.76468 280.54074,529.35923 L 283.16077,508.51621 C 280.37145,499.05111 242.48132,493.94315 237.45332,502.37747 z "
- id="path4515"
- sodipodi:nodetypes="cccccc" />
- <path
- style="fill:#67094d;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-opacity:1"
- d="M 238.65967,492.78069 L 236.0522,513.52374 C 238.82693,523.01468 246.77417,530.45465 256.98959,531.838 C 267.18557,533.21871 276.71138,528.1679 281.74708,519.76244 L 284.36712,498.91943 C 281.5778,489.45433 243.68766,484.34636 238.65967,492.78069 z "
- id="path4517"
- sodipodi:nodetypes="cccccc" />
- <path
- style="fill:#0035a8;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-opacity:1"
- d="M 240.06707,481.58444 L 237.4596,502.32749 C 240.23433,511.81844 248.18158,519.25841 258.397,520.64175 C 268.59297,522.02246 278.11878,516.97165 283.15449,508.5662 L 285.77453,487.72318 C 282.98521,478.25808 245.09507,473.15011 240.06707,481.58444 z "
- id="path4519"
- sodipodi:nodetypes="cccccc" />
- <path
- style="fill:#00a867;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-opacity:1"
- d="M 240.87131,475.18658 L 238.26383,495.92963 C 241.03856,505.42058 248.31935,510.86119 258.53477,512.24454 C 268.73075,513.62525 278.92301,510.5738 283.95872,502.16834 L 286.57876,481.32533 C 283.78944,471.86023 245.8993,466.75226 240.87131,475.18658 z "
- id="path4521"
- sodipodi:nodetypes="cccccc" />
- <path
- style="fill:#006145;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-opacity:1"
- d="M 284.92775,491.33201 L 282.99367,508.05449 C 287.18778,515.86165 297.86432,522.20837 311.03443,523.73159 C 324.17949,525.25191 336.03145,521.52924 341.90874,514.90926 L 343.85214,498.10619 C 339.6411,490.31942 290.79321,484.68831 284.92775,491.33201 z "
- id="path4523"
- sodipodi:nodetypes="cccccc" />
- </g>
- <path
- style="fill:url(#linearGradient4898);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
- d="M 190.03122,64.297807 C 190.03122,64.297807 182.72882,69.231546 180.36959,90.17252 C 184.97572,95.764091 211.15199,97.518308 211.15199,97.518308 C 211.15199,97.518308 205.42243,73.836368 208.90511,64.736364"
- id="path4525"
- sodipodi:nodetypes="cccc" />
- <g
- id="g4527"
- transform="matrix(-0.774175,-0.401016,-0.348567,0.890665,597.6601,-302.2593)">
- <path
- style="fill:url(#linearGradient4900);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
- d="M 207.7583,506.50835 C 206.40141,508.14027 202.6659,520.80791 217.80808,536.11211 C 209.99845,521.01422 210.25164,515.35549 212.77702,513.84026 C 211.26179,512.57757 211.79891,504.74058 207.7583,506.50835 z "
- id="path4529"
- sodipodi:nodetypes="cccc" />
- <path
- style="fill:url(#linearGradient4902);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
- d="M 210.95084,511.50794 C 210.95084,511.50794 205.53158,526.18807 221.81423,540.68643 C 214.0046,525.58854 214.65742,520.7694 217.1828,519.25417 C 215.66757,517.99148 214.99145,509.74017 210.95084,511.50794 z "
- id="path4531"
- sodipodi:nodetypes="cccc" />
- <path
- style="fill:url(#linearGradient4904);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
- d="M 215.63896,514.69258 C 214.26567,516.28385 212.37855,522.69625 221.02957,539.78214 C 224.42558,543.33631 225.80981,544.21794 228.40596,546.12917 C 225.88057,540.57332 225.18702,531.44512 225.18702,531.44512 C 225.18702,531.44511 222.30922,521.66678 215.63896,514.69258 z "
- id="path4533"
- sodipodi:nodetypes="ccccc" />
- <path
- style="fill:url(#linearGradient4906);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
- d="M 220.25,520.1875 C 218.87671,521.77877 217.69273,527.32036 226.34375,544.40625 C 226.73044,544.6265 227.16007,545.21026 234.57596,551.27054 C 232.05057,545.71469 229.79806,536.94004 229.79806,536.94004 C 229.79806,536.94003 226.92026,527.1617 220.25,520.1875 z "
- id="path4535"
- sodipodi:nodetypes="ccccc" />
- <path
- style="fill:url(#linearGradient4908);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
- d="M 226.43242,527.87754 C 225.19989,531.53305 222.40285,535.39769 233.4082,550.0827 C 236.39784,552.68732 237.75066,552.31339 241.50027,554.94898 C 238.97488,549.39313 233.83867,536.94004 233.83867,536.94004 C 233.83867,536.94003 230.56317,532.74151 226.43242,527.87754 z "
- id="path4537"
- sodipodi:nodetypes="ccccc" />
- </g>
- <path
- style="fill:url(#linearGradient6204);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
- d="M 147.23396,1.5882927 C 147.13465,2.646801 146.98467,5.018187 147.77035,8.3934076 C 146.71944,8.7518336 142.71094,10.274486 139.09871,21.320218 C 141.74768,16.6199 141.9984,15.68199 148.50043,10.981678 C 148.72205,9.0350846 149.12685,6.368708 151.61447,1.5882927 L 147.23396,1.5882927 z M 266.35721,1.5882927 C 267.93182,4.3792274 271.22943,10.952536 270.11194,15.67837 C 269.87112,16.383427 269.32225,18.148541 269.32225,18.324804 C 271.12838,19.441122 277.62699,22.665569 280.03515,37.824075 C 280.45658,31.654914 282.6271,21.609411 270.82712,13.0901 C 272.37122,8.9999353 272.85313,6.0215192 272.37669,1.5882927 L 266.35721,1.5882927 z "
- id="path4539" />
- <path
- style="fill:url(#linearGradient4912);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
- d="M 151.33138,1.5882927 C 150.48086,3.2294259 148.16646,7.8677178 148.47063,10.923514 C 143.724,13.810912 141.42889,16.685518 139.20301,21.291136 L 139.21791,21.203891 C 139.21791,21.203896 136.26512,28.807398 138.60702,37.126115 C 138.99068,33.147428 137.3331,25.956979 148.85802,14.558725 C 148.80375,14.543877 150.01326,17.8718 151.25688,20.49139 C 151.54908,19.347051 149.72571,9.4677224 164.91992,1.5882927 L 151.33138,1.5882927 z "
- id="path4541" />
- <path
- style="fill:url(#linearGradient4914);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
- d="M 257.78987,1.5882927 C 267.38505,10.987587 266.20821,24.155682 266.20821,24.155682 C 266.20821,24.155682 267.57261,21.334763 267.74288,21.334758 C 281.53576,34.296881 273.18127,52.408537 273.18128,52.408542 C 273.18128,52.408542 277.96196,48.41812 280.00535,38.114892 C 279.32422,24.654226 271.48484,19.4673 269.44145,18.179395 C 269.44145,18.179395 270.46314,16.357639 270.63343,13.366376 C 269.43017,7.1595205 267.60358,3.4581243 266.49131,1.5882927 L 257.78987,1.5882927 z "
- id="path4543" />
- <path
- sodipodi:nodetypes="ccccccccc"
- id="path4545"
- d="M 153.27873,24.934713 C 153.27873,24.934713 140.44556,34.402142 145.39585,50.498089 C 147.26897,55.31734 151.52603,59.471866 151.52603,59.471866 C 151.52603,59.471866 143.35247,47.340646 155.95337,32.051988 C 155.95337,32.051988 158.67789,38.865409 164.12693,48.836277 C 166.68117,44.183203 172.98162,38.865414 185.58253,31.553445 C 198.18343,24.241475 184.56083,18.258958 184.56083,18.258958 C 184.56083,18.258958 159.01846,24.687886 159.5293,40.028681 C 158.50761,38.865414 154.07171,26.714033 153.27873,24.934713 z "
- style="fill:url(#linearGradient4916);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
- <path
- style="fill:url(#linearGradient4918);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
- d="M 164.57723,1.5882927 C 158.84878,4.5412985 150.6096,10.478388 151.22708,20.229654 C 151.14194,20.229659 148.91762,14.427858 148.91762,14.427858 C 148.91762,14.427858 137.51508,22.973719 138.62192,36.849839 C 139.47333,41.419819 142.00415,45.574345 142.00415,45.574345 C 142.00415,45.574345 137.00423,29.785064 150.54169,19.066387 C 151.91856,23.362762 154.14866,27.917015 155.7268,31.382482 C 155.64166,30.883942 151.04828,16.316092 183.82766,6.0959543 C 183.96763,4.234824 183.90823,2.8077135 183.76807,1.5882927 L 164.57723,1.5882927 z "
- id="path4547" />
- <path
- sodipodi:nodetypes="ccccccccc"
- id="path4549"
- d="M 151.52603,59.638046 C 151.52603,59.638046 155.00221,63.86141 156.19419,64.692318 C 156.96046,65.523221 150.06402,54.085235 160.11069,40.624567 C 161.91681,46.147436 169.98707,60.322932 169.98707,60.322932 C 169.98707,60.322932 176.55756,50.498089 186.77451,46.509742 C 191.37213,33.54762 187.28535,34.877067 185.41224,31.553445 C 183.36885,31.885804 164.12693,45.014111 163.95665,48.503913 C 163.61608,48.420823 157.18062,34.137601 156.07378,32.060336 C 155.05208,31.063253 143.69303,46.675922 151.52603,59.638046 z "
- style="fill:url(#linearGradient4920);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
- <path
- sodipodi:nodetypes="ccccccccc"
- id="path4551"
- d="M 184.25763,6.2665591 C 183.30647,5.2576619 150.9578,16.177952 155.56502,30.778266 C 151.47825,22.30303 150.71197,19.145591 150.71197,19.145591 C 150.47116,18.205527 137.51508,28.202457 141.94243,45.48529 C 143.04926,47.811825 144.6755,50.165138 145.59923,50.960911 C 144.74781,47.969652 142.45327,34.018795 153.09593,25.128109 C 156.07587,32.606258 157.72277,35.774491 159.6372,39.737785 C 160.48861,38.906882 157.43814,27.537734 185.0239,18.065414 C 188.25927,9.8394515 184.25763,6.2665591 184.25763,6.2665591 z "
- style="fill:url(#linearGradient4922);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
- <path
- style="fill:url(#linearGradient4924);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
- d="M 241.40018,1.5882927 C 263.39065,16.032799 261.37514,29.427117 261.6191,32.284014 C 263.40706,30.123659 264.89064,27.475154 265.65692,26.394972 C 276.12929,39.440189 270.04808,56.04583 269.36695,56.959828 C 270.04808,56.959828 272.50441,53.646586 273.27068,52.234051 C 282.55107,30.713603 269.19028,20.896463 267.74288,21.145728 C 266.97661,22.059725 266.46151,23.563663 266.46151,23.646753 C 266.51992,10.990844 261.44708,4.4820603 258.22196,1.5882927 L 241.40018,1.5882927 z "
- id="path4553" />
- <path
- style="fill:url(#linearGradient4926);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
- d="M 224.71249,1.5882927 C 222.34772,2.9998434 222.30409,5.0218024 229.22711,7.9717232 C 246.68625,17.137326 254.14503,30.950826 256.55319,39.176374 C 257.03482,38.588835 261.42603,32.608072 261.87239,32.109524 C 271.24429,49.356086 263.52626,62.589205 262.33428,63.503207 C 262.33428,63.503207 267.99535,60.040574 269.56065,57.337889 C 276.96574,38.125366 265.59733,26.191405 265.59732,26.1914 C 265.59732,26.1914 265.34932,27.249262 261.85749,31.949574 C 262.54736,16.549025 249.498,6.2501757 241.98127,1.5882927 L 224.71249,1.5882927 z "
- id="path4555" />
- <path
- sodipodi:nodetypes="ccccccccc"
- id="path4557"
- d="M 229.8082,7.9283659 C 229.8082,7.9283659 253.00764,20.094222 256.49947,38.660451 C 261.5566,31.844997 260.59334,32.716861 261.67701,32.129318 C 262.76068,31.541779 271.79128,50.343025 262.51987,63.503896 C 255.29539,69.849315 254.57294,69.614298 252.76682,70.554362 C 253.24845,69.379281 264.32598,61.956136 256.13825,39.042119 C 254.09131,42.919871 249.90625,47.129992 249.90625,47.129992 C 249.90625,47.129992 246.74643,31.306767 224.9526,19.673496 C 210.14242,13.915615 229.79813,7.1606466 229.96841,7.4930107"
- style="fill:url(#linearGradient4928);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
- <path
- sodipodi:nodetypes="ccccccccc"
- id="path4559"
- d="M 225.073,19.604663 L 219.54392,33.539412 C 219.88449,33.871776 234.70564,40.589879 240.96685,56.570938 C 241.60874,56.598614 248.91377,48.697914 249.63622,47.287819 C 250.35867,45.87773 255.35559,66.73536 246.98725,74.432115 C 250.84825,72.119418 252.80814,71.640445 253.9709,69.966819 C 254.45254,68.791742 263.90456,60.037415 256.19845,39.12103 C 254.07389,42.133 251.22218,45.137552 249.99745,46.465268 C 248.56966,41.118961 242.5165,29.216678 225.073,19.604663 z "
- style="fill:url(#linearGradient4930);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
- <path
- style="fill:#1f4a2a;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
- d="M 183.54457,1.5882927 L 183.82766,6.9247824 C 183.82767,6.9247778 203.772,-4.7868273 230.16579,8.175295 C 231.62859,6.1193267 233.0947,3.6616496 234.32281,1.5882927 L 183.54457,1.5882927 z "
- id="path4561" />
- <g
- id="g4563"
- transform="matrix(0.476791,0,0,0.465307,55.77949,-173.6434)">
- <path
- style="fill:url(#linearGradient4932);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
- d="M 210.6168,512.94073 C 210.6168,512.94073 209.80617,527.05721 224.94835,542.36141 C 217.13872,527.26352 214.65742,520.7694 217.1828,519.25417 C 215.66757,517.99148 214.65741,511.17296 210.6168,512.94073 z "
- id="path4565"
- sodipodi:nodetypes="cccc" />
- <path
- style="fill:url(#linearGradient4934);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
- d="M 215.63896,514.69258 C 214.26567,516.28385 213.08169,521.82544 221.73271,538.91133 C 226.65449,544.60372 227.44153,545.08454 234.78918,551.64182 C 232.26379,546.08597 225.18702,531.44512 225.18702,531.44512 C 225.18702,531.44511 222.30922,521.66678 215.63896,514.69258 z "
- id="path4567"
- sodipodi:nodetypes="ccccc" />
- <path
- style="fill:url(#linearGradient4936);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
- d="M 220.25,520.1875 C 218.87671,521.77877 217.69273,527.32036 226.34375,544.40625 C 231.26553,550.09864 232.05257,550.57946 239.40022,557.13674 C 236.87483,551.58089 229.79806,536.94004 229.79806,536.94004 C 229.79806,536.94003 226.92026,527.1617 220.25,520.1875 z "
- id="path4569"
- sodipodi:nodetypes="ccccc" />
- <path
- style="fill:url(#linearGradient4938);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
- d="M 226.43242,527.87754 C 225.19989,531.53305 224.73957,539.88003 235.74492,554.56504 C 238.73456,557.16966 242.85692,559.62588 246.60653,562.26147 C 244.08114,556.70562 233.83867,536.94004 233.83867,536.94004 C 233.83867,536.94003 230.56317,532.74151 226.43242,527.87754 z "
- id="path4571"
- sodipodi:nodetypes="ccccc" />
- </g>
- <path
- sodipodi:nodetypes="ccccccccccccccccccccc"
- id="path4573"
- d="M 176.85034,88.193825 C 176.85034,88.193825 174.12582,88.692369 173.27441,87.861466 C 172.423,87.030558 167.65509,81.214225 167.31452,76.893514 C 165.10084,74.068435 157.26785,66.590287 156.41644,64.928475 C 154.8839,62.768125 150.79711,52.365184 159.82209,40.067786 C 163.73859,47.712114 169.18763,58.846252 169.86875,59.677155 C 170.89046,59.012427 172.59328,53.528454 186.55644,45.884123 C 185.87531,36.910347 183.66164,7.9283659 184.17248,6.5989186 C 184.68333,5.2694714 204.94695,-5.366116 230.14876,8.26073 C 222.9969,25.377378 220.27238,31.858444 219.93181,33.686435 C 220.1021,34.018795 234.40583,38.339505 241.38741,55.954699 C 245.47419,51.633987 247.00673,49.473636 249.90153,46.316193 C 252.28549,52.631075 253.98832,67.753554 247.00673,74.566979 C 239.68458,80.050957 230.31905,84.205483 229.46763,85.368751 C 228.61622,86.532018 222.65633,93.843983 216.35588,95.17343 C 216.35588,95.00725 220.44266,91.683628 220.78323,90.35418 C 221.12379,89.024733 222.65633,77.724418 222.65633,77.724418 L 209.3743,65.09466 L 189.11068,64.097572 C 189.11068,64.097572 178.2126,70.744813 175.65836,73.736076 C 175.3178,76.561155 176.85034,88.193825 176.85034,88.193825 z "
- style="fill:url(#linearGradient4940);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
- <path
- sodipodi:nodetypes="ccccc"
- id="path4575"
- d="M 270.62287,13.502604 C 269.42734,27.183314 242.50914,55.097143 223.14083,76.429747 C 223.14083,76.429747 222.41838,77.134795 222.41838,77.134795 C 222.6592,77.134795 240.25709,62.968732 251.73862,59.871179 C 280.07812,68.073941 288.57012,22.015298 270.62287,13.502604 z "
- style="fill:url(#linearGradient4942);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
- <path
- id="path4577"
- d="M 279.49738,40.589879 C 279.49738,40.589879 255.4158,61.741276 233.01993,71.611931 C 210.62406,81.482581 228.68524,83.597723 228.68524,83.597723 C 228.68524,83.597723 272.75454,64.561464 279.49738,40.589879 z "
- style="opacity:0.39999994;fill:url(#linearGradient4944);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
- <path
- sodipodi:nodetypes="cccc"
- id="path4579"
- d="M 272.27788,4.7043653 C 272.27788,1.048383 261.13777,30.50883 227.84381,49.685626 C 205.44794,59.556278 216.35727,70.977559 222.48744,74.633541 C 237.13174,59.01252 269.96238,31.002484 272.27788,4.7043653 z "
- style="opacity:0.39999994;fill:url(#linearGradient4946);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
- <path
- style="opacity:0.69999994;fill:url(#linearGradient4948);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
- d="M 260.28034,66.231116 C 260.28034,66.231116 238.12529,82.917216 227.52939,86.207434 C 247.10271,85.274289 257.39056,81.977156 260.28034,66.231116 z "
- id="path4581"
- sodipodi:nodetypes="ccc" />
- <path
- style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
- d="M 177.1116,88.199027 L 181.83007,92.365293 C 183.06586,92.474933 185.4251,92.146017 187.22261,91.378549 C 187.22261,91.378549 199.35581,100.58819 218.90377,93.461682 C 206.43353,102.23277 198.12003,97.956864 190.81764,98.505056 C 186.32385,94.777342 174.41533,88.199027 173.74126,88.199027 C 173.06719,88.199027 177.1116,88.199027 177.1116,88.199027 z "
- id="path4583"
- sodipodi:nodetypes="ccccccc" />
- <path
- style="fill:url(#linearGradient4950);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
- d="M 209.24214,66.052029 C 210.1409,77.381351 205.19774,100.11309 205.19774,100.04 L 190.36826,99.162889 L 180.48194,91.926741 L 194.41266,108.59181 L 219.80253,92.146017 C 219.80253,92.146017 220.02722,81.620712 222.04942,79.866491 C 224.07162,78.112274 221.82473,77.235166 221.82473,77.235166 C 221.82473,77.235166 212.38779,70.656846 209.24214,66.052029 z "
- id="path4585"
- sodipodi:nodetypes="ccccccccc" />
- <path
- style="fill:url(#linearGradient4952);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
- d="M 205.42243,100.25928 L 222.94818,77.673718 C 222.94818,77.673718 220.02722,82.059264 219.80253,91.926741 C 219.80253,91.926741 205.42243,100.25928 205.42243,100.25928 z "
- id="path4587"
- sodipodi:nodetypes="cccc" />
- <path
- sodipodi:nodetypes="cccc"
- id="path4589"
- d="M 272.27788,6.5655933 C 272.27788,2.9096111 261.13777,32.370058 227.84381,51.546854 C 205.44794,61.417506 216.35727,70.977559 222.48744,74.633541 C 237.13174,59.01252 269.96238,32.863712 272.27788,6.5655933 z "
- style="opacity:0.39999994;fill:url(#linearGradient4954);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
- <path
- id="path4591"
- d="M 278.5438,42.451107 C 278.5438,42.451107 255.4158,63.602504 233.01993,73.473159 C 210.62406,83.343809 228.68524,83.597723 228.68524,83.597723 C 228.68524,83.597723 268.94113,65.492376 278.5438,42.451107 z "
- style="opacity:0.59999988;fill:url(#linearGradient4956);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
- sodipodi:nodetypes="cccc" />
- <path
- style="opacity:0.69999994;fill:url(#linearGradient4958);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
- d="M 260.28034,66.231116 C 260.28034,66.231116 238.12529,82.917216 227.52939,86.207434 C 244.56065,83.723765 257.39056,81.977156 260.28034,66.231116 z "
- id="path4593"
- sodipodi:nodetypes="ccc" />
- </g>
- <rect
- y="77"
- x="236"
- height="0"
- width="1"
- id="rect1327"
- style="opacity:0.57786889;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3.63199997;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4;stroke-opacity:1" />
- <path
- style="fill:#ffffff;fill-opacity:0.75688076;fill-rule:nonzero;stroke:none;stroke-width:0.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4;stroke-opacity:1"
- d="M 77.062579,3.7839329 L 77.062579,0.98922447 L 77.062579,3.7839329 z "
- id="path2276"
- sodipodi:nodetypes="ccc" />
- <g
- id="g4640"
- transform="matrix(-0.782995,0,0,0.650879,-2245.796,690.3016)"
- style="opacity:0.40163933" />
- <g
- style="opacity:0.40163933"
- transform="matrix(-0.782995,0,0,0.650879,-2245.796,690.3016)"
- id="g4646" />
- <g
- style="opacity:0.40163933"
- transform="matrix(1,0,0,0.650879,955.167,697.6294)"
- id="g4730" />
- <g
- id="g4748"
- transform="matrix(1,0,0,0.650879,955.167,697.6294)"
- style="opacity:0.40163933" />
- <path
- style="fill:#ffffff;fill-opacity:0.75688076;fill-rule:nonzero;stroke:none;stroke-width:0.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4;stroke-opacity:1"
- d="M 181.23105,2.6244365 L 181.23105,0.41896716 L 181.23105,2.6244365 z "
- id="path2408"
- sodipodi:nodetypes="ccc" />
- </g>
- <path
- style="opacity:0.24344569;fill:url(#radialGradient31866);fill-opacity:1;stroke:none;stroke-width:10;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:1.08779998;stroke-opacity:1"
- d="M 73,63.5 L 116,63.5 L 116,85.5 L 93.5,108 L 73,108 L 73,63.5 z "
- id="rect31858"
- sodipodi:nodetypes="cccccc" />
- <g
- id="g4960"
- transform="translate(10,-6)">
- <path
- transform="translate(40,0)"
- clip-path="url(#clipPath7084)"
- sodipodi:nodetypes="cccc"
- style="opacity:0.4;fill:#000000;fill-opacity:1;filter:url(#filter6697)"
- id="path5540"
- d="M 41.879531,115.98249 C 41.879531,115.98249 66.18914,91.672876 66.18914,91.672876 C 66.18914,91.672876 56.836,94.586 46.586,94.586 C 46.586,104.836 41.879531,115.98249 41.879531,115.98249 z " />
- <path
- sodipodi:nodetypes="csccc"
- d="M 79.172,120 C 79.172,120 91.086,110.086 96.586,104.586 C 102.086,99.086 112,87.172 112,87.172 C 112,87.172 98.25,96 88,96 C 88,106.25 79.172,120 79.172,120 z "
- id="path14523"
- style="fill:url(#linearGradient10213);fill-opacity:1" />
- </g>
- </g>
- <g
- inkscape:groupmode="layer"
- id="layer2"
- style="display:inline" />
- <g
- inkscape:groupmode="layer"
- id="layer3" />
-</svg>
--- a/securitydialogs/Autolock/PubSub/SecurityUIsPrivatePSKeys.h Tue Aug 31 16:04:40 2010 +0300
+++ b/securitydialogs/Autolock/PubSub/SecurityUIsPrivatePSKeys.h Wed Sep 01 12:19:59 2010 +0100
@@ -12,8 +12,8 @@
* Contributors:
*
* Description: Private Publish&Subscribe definitions of the
- * Security UIs subsystem
- *
+* Security UIs subsystem
+*
*/
@@ -32,25 +32,24 @@
// Use TUid KPSUidSecurityUIs = { 0x100059b5 }
/**
- * Used by SecUI to differentiate between ETel API originated and SecUI originated
- * security queries.
- * Old Shared Data constant name: KSecUIOriginatedQuery
- */
+* Used by SecUI to differentiate between ETel API originated and SecUI originated
+* security queries.
+* Old Shared Data constant name: KSecUIOriginatedQuery
+*/
const TUint32 KSecurityUIsSecUIOriginatedQuery = 0x00000301;
enum TSecurityUIsSecUIOriginatedQuery
{
ESecurityUIsSecUIOriginatedUninitialized = 0,
ESecurityUIsETelAPIOriginated,
ESecurityUIsSecUIOriginated,
- ESecurityUIsSystemLockOriginated,
- ESecurityUIsFpsOriginated
+ ESecurityUIsSystemLockOriginated
};
/**
- * Used by SecUI to tell if a query request set by some ETELMM API lock setting function (i.e. SetXXXXSetting)
- * has been canceled since canceling the setting request does not prompt a query cancel event from ETEL.
- * Old Shared Data constant name: KSecUIOriginatedQuery
- */
+* Used by SecUI to tell if a query request set by some ETELMM API lock setting function (i.e. SetXXXXSetting)
+* has been canceled sinnce canceling the setting request does not prompt a query cancel event from ETEL.
+* Old Shared Data constant name: KSecUIOriginatedQuery
+*/
const TUint32 KSecurityUIsQueryRequestCancel = 0x00000302;
enum TSecurityUIsQueryRequestCancel
{
@@ -59,58 +58,7 @@
ESecurityUIsQueryRequestCanceled
};
-/**
- * Used by Autolock to tell which application has enabled/disabled the keyguard/devicelock , and at which moment.
- */
-const TUint32 KSecurityUIsLockInitiatorUID = 0x00000303;
-const TUint32 KSecurityUIsLockInitiatorTimeHigh = 0x00000304;
-const TUint32 KSecurityUIsLockInitiatorTimeLow = 0x00000305;
-
-/**
- * Used by Autolock to tell the status of screensaver
- */
-const TUint32 KSecurityUIsScreenSaverStatus = 0x00000306;
-enum TSecurityUIsScreenSaverValues
- {
- ESecurityUIsScreenSaverUninitialized = 0,
- ESecurityUIsScreenSaverOn,
- ESecurityUIsScreenSaverOff,
- ESecurityUIsScreenSaverOffWhileUnguardQuery,
- ESecurityUIsScreenSaverOffWhileUnlockQuery,
- ESecurityUIsScreenSaverLastValue
- };
-
-/**
- * Used by any applicattion, to send a Code for Secui
- */
-const TUint32 KSecurityUIsTestCode = 0x00000307;
-
-/**
- * Used to tell SysAp to switch-on the lights.
- */
-const TUint32 KSecurityUIsLights = 0x00000308;
-enum TSecurityUIsLights
- {
- ESecurityUIsLightsUninitialized = 0,
- ESecurityUIsLightsLockOnRequest,
- ESecurityUIsLightsQueryOnRequest,
- ESecurityUIsLightsLockOffRequest,
- ESecurityUIsLightsLastValue
- };
-
-/**
- * Used by Autolock to tell the dialog to dismiss. In fact, any app can do this.
- */
-const TUint32 KSecurityUIsDismissDialog = 0x00000309;
-enum TSecurityUIsDismissDialogValues
- {
- ESecurityUIsDismissDialogUninitialized = 0,
- ESecurityUIsDismissDialogOn,
- ESecurityUIsDismissDialogProcessing,
- ESecurityUIsDismissDialogDone,
- ESecurityUIsDismissDialogLastValue
- };
-
-#endif // SECURITYUISPRIVATEPSKEYS_H
+#endif // SECURITYUISPRIVATEPSKEYS_H
// End of File
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/securitydialogs/Autolock/aif/Autolockaif.rss Wed Sep 01 12:19:59 2010 +0100
@@ -0,0 +1,32 @@
+/*
+* Copyright (c) 2002 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:
+* RSS for creating the aif file for Autolock.
+*
+*
+*/
+
+
+#include <aiftool.rh>
+
+RESOURCE AIF_DATA
+{
+ app_uid=0x100059B5;
+ hidden = KAppIsHidden;
+ num_icons = 0;
+ embeddability = KAppNotEmbeddable;
+ newfile = KAppDoesNotSupportNewFile;
+}
+
+// End of File
--- a/securitydialogs/Autolock/autolock.qcrml Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,32 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<repository target="CRepository" uidValue="0x101F877A">
- <key int="0x00000001" ref="/KCRUidSecuritySettings/KSettingsAutoLockTime"></key>
- <key int="0x00000002" ref="/KCRUidSecuritySettings/KSettingsAutolockStatus"></key>
- <key int="0x00000003" ref="/KCRUidSecuritySettings/KSettingsLockOnPowerUp"></key>
- <key int="0x00000005" ref="/KCRUidSecuritySettings/KSettingsAutomaticKeyguardTime"></key>
- <key int="0x00000006" ref="/KCRUidSecuritySettings/KSettingsMaxAutomaticKeyguardTime"></key>
-</repository>
-<repository target="CRepository" uidValue="0x101F877C">
- <key int="0x7e000001" ref="/KCRUidPersonalizationSettings/KSettingsScreenSaverPeriod"></key>
-</repository>
-<repository target="CRepository" uidValue="0x101f8798">
- <key int="0x7e000001" ref="/KCRUidProfileEngine/KProEngActiveProfile"></key>
-</repository>
-<repository target="CRepository" uidValue="0x10200C8C">
- <key int="0x00000006" ref="/KCRUidLightSettings/KDisplayLightsTimeout"></key>
-</repository>
-<repository target="RProperty" uidValue="0x101F8767">
- <key int="0x00000501" ref="/KPSUidCoreApplicationUIs/KCoreAppUIsAutolockStatus"></key>
-</repository>
-<repository target="RProperty" uidValue="0x100059b5">
- <key int="0x00000309" ref="/KPSUidSecurityUIs/KSecurityUIsDismissDialog"></key>
-</repository>
-<repository target="RProperty" uidValue="0x20022F35">
- <key int="0x1" ref="/KPSUidHWRM/KHWRMGripStatus"></key>
-</repository>
-<repository target="RProperty" uidValue="0x10207218">
- <key int="0x00000001" ref="/KPSUidAvkonDomain/KAknKeyguardStatus"></key>
-</repository>
-<repository target="RProperty" uidValue="0x102029AC">
- <key int="0x00000001" ref="/KPSUidCtsyCallInformation/KCTsyCallState"></key>
-</repository>
--- a/securitydialogs/Autolock/autolockuseractivityservice.pro Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,19 +0,0 @@
-#
-# Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-# All rights reserved.
-# This component and the accompanying materials are made available
-# under the terms of "Eclipse Public License v1.0"
-# which accompanies this distribution, and is available
-# at the URL "http://www.eclipse.org/legal/epl-v10.html".
-#
-# Initial Contributors:
-# Nokia Corporation - initial contribution.
-#
-# Contributors:
-#
-# Description: autolockuseractivityservice.pro
-#
-
-TEMPLATE = subdirs
-
-SUBDIRS += autolockuseractivityservice/autolockuseractivityservice.pro
--- a/securitydialogs/Autolock/autolockuseractivityservice/autolockuseractivityservice.pri Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,26 +0,0 @@
-#
-# Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-# All rights reserved.
-# This component and the accompanying materials are made available
-# under the terms of "Eclipse Public License v1.0"
-# which accompanies this distribution, and is available
-# at the URL "http://www.eclipse.org/legal/epl-v10.html".
-#
-# Initial Contributors:
-# Nokia Corporation - initial contribution.
-#
-# Contributors:
-#
-# Description: autolockuseractivityservice.pri
-#
-
-HEADERS += ./inc/*.h
-
-SOURCES += ./src/*.cpp
-
-INCLUDEPATH += . \
- inc
-
-DEPENDPATH += . \
- inc \
- src
--- a/securitydialogs/Autolock/autolockuseractivityservice/autolockuseractivityservice.pro Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,32 +0,0 @@
-#
-# Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-# All rights reserved.
-# This component and the accompanying materials are made available
-# under the terms of "Eclipse Public License v1.0"
-# which accompanies this distribution, and is available
-# at the URL "http://www.eclipse.org/legal/epl-v10.html".
-#
-# Initial Contributors:
-# Nokia Corporation - initial contribution.
-#
-# Contributors:
-#
-# Description: autolockuseractivityservice.pro
-#
-
-TEMPLATE = lib
-
-include(common.pri)
-
-DEFINES += AUTOLOCKUSERACTIVITYSERVICE_LIB
-
-symbian: {
-TARGET.UID3 = 0x2002704D
-LIBS += -lactivitymanager
-
-include(autolockuseractivityservice_s60.pri)
-} else {
-include(autolockuseractivityservice_stub.pri)
-}
-
-include(autolockuseractivityservice.pri)
--- a/securitydialogs/Autolock/autolockuseractivityservice/autolockuseractivityservice_s60.pri Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,24 +0,0 @@
-#
-# Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-# All rights reserved.
-# This component and the accompanying materials are made available
-# under the terms of "Eclipse Public License v1.0"
-# which accompanies this distribution, and is available
-# at the URL "http://www.eclipse.org/legal/epl-v10.html".
-#
-# Initial Contributors:
-# Nokia Corporation - initial contribution.
-#
-# Contributors:
-#
-# Description: autolockuseractivityservice_s60.pri
-#
-
-HEADERS += ./s60/inc/*.h
-
-SOURCES += ./s60/src/*.cpp
-
-INCLUDEPATH += ./s60/inc
-
-DEPENDPATH += ./s60/inc \
- ./s60/src
--- a/securitydialogs/Autolock/autolockuseractivityservice/autolockuseractivityservice_stub.pri Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,24 +0,0 @@
-#
-# Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-# All rights reserved.
-# This component and the accompanying materials are made available
-# under the terms of "Eclipse Public License v1.0"
-# which accompanies this distribution, and is available
-# at the URL "http://www.eclipse.org/legal/epl-v10.html".
-#
-# Initial Contributors:
-# Nokia Corporation - initial contribution.
-#
-# Contributors:
-#
-# Description: autolockuseractivityservice_stub.pri
-#
-
-HEADERS += ./stub/inc/*.h
-
-SOURCES += ./stub/src/*.cpp
-
-INCLUDEPATH += ./stub/inc
-
-DEPENDPATH += ./stub/inc \
- ./stub/src
--- a/securitydialogs/Autolock/autolockuseractivityservice/bld.inf Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,41 +0,0 @@
-// ============================================================================
-// * Makefile for building: autolockuseractivityservice
-// * Generated by qmake (2.01a) (Qt 4.6.3) on: 2010-05-20T15:50:24
-// * This file is generated by qmake and should not be modified by the
-// * user.
-// * Project: autolockuseractivityservice.pro
-// * Template: lib
-// ============================================================================
-
-#define BLD_INF_AUTOLOCKUSERACTIVITYSERVICE_FB812CD7
-
-
-prj_platforms
-
-WINSCW GCCE ARMV5 ARMV6
-
-
-prj_mmpfiles
-
-autolockuseractivityservice_0x2002704D.mmp
-
-prj_extensions
-
-START EXTENSION qt/qmake_extra_pre_targetdep.export
-OPTION PREDEP_TARGET E:/sf/mw/securitysrv/securitydialogs/Autolock/autolockuseractivityservice/moc_autolockuseractivityservice.cpp
-OPTION DEPS E:/sf/mw/securitysrv/securitydialogs/Autolock/autolockuseractivityservice/inc/autolockuseractivityserviceinterface.h E:/sf/mw/securitysrv/securitydialogs/Autolock/autolockuseractivityservice/inc/autolockuseractivityservice_global.h E:/sf/mw/securitysrv/securitydialogs/Autolock/autolockuseractivityservice/inc/autolockuseractivityservice.h
-OPTION COMMAND /epoc32/tools/moc -DSYMBIAN -DUNICODE -DQT_KEYPAD_NAVIGATION -DQT_SOFTKEYS_ENABLED -DQT_USE_MATH_H_FLOATS -DAUTOLOCKUSERACTIVITYSERVICE_LIB -DQT_GUI_LIB -DQT_CORE_LIB -I"E:/epoc32/include/mw/QtCore" -I"E:/epoc32/include/mw/QtGui" -I"E:/epoc32/include/mw" -I"E:/sf/mw/qt/mkspecs/common/symbian" -I"E:/epoc32/include" -I"E:/epoc32/include/stdapis" -I"E:/epoc32/include/stdapis/sys" -I"E:/sf/mw/securitysrv/securitydialogs/Autolock/autolockuseractivityservice" -I"E:/sf/mw/securitysrv/securitydialogs/Autolock/autolockuseractivityservice/inc" -I"E:/epoc32/include/platform/mw" -I"E:/epoc32/include/platform" -I"E:/epoc32/include/app" -I"E:/epoc32/include/platform/app" -I"E:/epoc32/include/platform/loc" -I"E:/epoc32/include/platform/mw/loc" -I"E:/epoc32/include/platform/app/loc" -I"E:/epoc32/include/platform/loc/sc" -I"E:/epoc32/include/platform/mw/loc/sc" -I"E:/epoc32/include/platform/app/loc/sc" -I"E:/sf/mw/securitysrv/securitydialogs/Autolock/autolockuseractivityservice/s60/inc" -I"E:/epoc32/include/stdapis/stlportv5" -I"E:/sf/mw/securitysrv/securitydialogs/Autolock/autolockuseractivityservice/s60/src" -I"E:/sf/mw/securitysrv/securitydialogs/Autolock/autolockuseractivityservice/src" -DSYMBIAN e:/sf/mw/securitysrv/securitydialogs/Autolock/autolockuseractivityservice/inc/autolockuseractivityservice.h -o e:/sf/mw/securitysrv/securitydialogs/Autolock/autolockuseractivityservice/moc_autolockuseractivityservice.cpp
-END
-START EXTENSION qt/qmake_extra_pre_targetdep.export
-OPTION PREDEP_TARGET E:/sf/mw/securitysrv/securitydialogs/Autolock/autolockuseractivityservice/moc_autolockuseractivityserviceinterface.cpp
-OPTION DEPS E:/sf/mw/securitysrv/securitydialogs/Autolock/autolockuseractivityservice/inc/autolockuseractivityserviceinterface.h
-OPTION COMMAND /epoc32/tools/moc -DSYMBIAN -DUNICODE -DQT_KEYPAD_NAVIGATION -DQT_SOFTKEYS_ENABLED -DQT_USE_MATH_H_FLOATS -DAUTOLOCKUSERACTIVITYSERVICE_LIB -DQT_GUI_LIB -DQT_CORE_LIB -I"E:/epoc32/include/mw/QtCore" -I"E:/epoc32/include/mw/QtGui" -I"E:/epoc32/include/mw" -I"E:/sf/mw/qt/mkspecs/common/symbian" -I"E:/epoc32/include" -I"E:/epoc32/include/stdapis" -I"E:/epoc32/include/stdapis/sys" -I"E:/sf/mw/securitysrv/securitydialogs/Autolock/autolockuseractivityservice" -I"E:/sf/mw/securitysrv/securitydialogs/Autolock/autolockuseractivityservice/inc" -I"E:/epoc32/include/platform/mw" -I"E:/epoc32/include/platform" -I"E:/epoc32/include/app" -I"E:/epoc32/include/platform/app" -I"E:/epoc32/include/platform/loc" -I"E:/epoc32/include/platform/mw/loc" -I"E:/epoc32/include/platform/app/loc" -I"E:/epoc32/include/platform/loc/sc" -I"E:/epoc32/include/platform/mw/loc/sc" -I"E:/epoc32/include/platform/app/loc/sc" -I"E:/sf/mw/securitysrv/securitydialogs/Autolock/autolockuseractivityservice/s60/inc" -I"E:/epoc32/include/stdapis/stlportv5" -I"E:/sf/mw/securitysrv/securitydialogs/Autolock/autolockuseractivityservice/s60/src" -I"E:/sf/mw/securitysrv/securitydialogs/Autolock/autolockuseractivityservice/src" -DSYMBIAN e:/sf/mw/securitysrv/securitydialogs/Autolock/autolockuseractivityservice/inc/autolockuseractivityserviceinterface.h -o e:/sf/mw/securitysrv/securitydialogs/Autolock/autolockuseractivityservice/moc_autolockuseractivityserviceinterface.cpp
-END
-
-#if defined(WINSCW)
-#endif
-
-START EXTENSION qt/qmake_store_build
-END
-
-
--- a/securitydialogs/Autolock/autolockuseractivityservice/bwins/autolockuseractivityserviceu.def Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,16 +0,0 @@
-EXPORTS
- ?trUtf8@AutolockUserActivityService@@SA?AVQString@@PBD0H@Z @ 1 NONAME ; class QString AutolockUserActivityService::trUtf8(char const *, char const *, int)
- ?tr@AutolockUserActivityService@@SA?AVQString@@PBD0@Z @ 2 NONAME ; class QString AutolockUserActivityService::tr(char const *, char const *)
- ?trUtf8@AutolockUserActivityService@@SA?AVQString@@PBD0@Z @ 3 NONAME ; class QString AutolockUserActivityService::trUtf8(char const *, char const *)
- ?getStaticMetaObject@AutolockUserActivityService@@SAABUQMetaObject@@XZ @ 4 NONAME ; struct QMetaObject const & AutolockUserActivityService::getStaticMetaObject(void)
- ?setInactivityPeriod@AutolockUserActivityService@@UAEXH@Z @ 5 NONAME ; void AutolockUserActivityService::setInactivityPeriod(int)
- ?tr@AutolockUserActivityService@@SA?AVQString@@PBD0H@Z @ 6 NONAME ; class QString AutolockUserActivityService::tr(char const *, char const *, int)
- ?qt_metacast@AutolockUserActivityService@@UAEPAXPBD@Z @ 7 NONAME ; void * AutolockUserActivityService::qt_metacast(char const *)
- ??1AutolockUserActivityService@@UAE@XZ @ 8 NONAME ; AutolockUserActivityService::~AutolockUserActivityService(void)
- ?qt_metacall@AutolockUserActivityService@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 9 NONAME ; int AutolockUserActivityService::qt_metacall(enum QMetaObject::Call, int, void * *)
- ?inactivityPeriod@AutolockUserActivityService@@UBEHXZ @ 10 NONAME ; int AutolockUserActivityService::inactivityPeriod(void) const
- ??0AutolockUserActivityService@@QAE@XZ @ 11 NONAME ; AutolockUserActivityService::AutolockUserActivityService(void)
- ??_EAutolockUserActivityService@@UAE@I@Z @ 12 NONAME ; AutolockUserActivityService::~AutolockUserActivityService(unsigned int)
- ?staticMetaObject@AutolockUserActivityService@@2UQMetaObject@@B @ 13 NONAME ; struct QMetaObject const AutolockUserActivityService::staticMetaObject
- ?metaObject@AutolockUserActivityService@@UBEPBUQMetaObject@@XZ @ 14 NONAME ; struct QMetaObject const * AutolockUserActivityService::metaObject(void) const
-
--- a/securitydialogs/Autolock/autolockuseractivityservice/common.pri Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,66 +0,0 @@
-#
-# Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-# All rights reserved.
-# This component and the accompanying materials are made available
-# under the terms of "Eclipse Public License v1.0"
-# which accompanies this distribution, and is available
-# at the URL "http://www.eclipse.org/legal/epl-v10.html".
-#
-# Initial Contributors:
-# Nokia Corporation - initial contribution.
-#
-# Contributors:
-#
-# Description: screensaverapp project - common QMake settings
-#
-
-CONFIG += debug_and_release
-
-# On win32 and mac, debug and release libraries are named differently.
-# We must follow the debug and release settings Qt was compiled with:
-# build debug iff Qt built debug, build release iff Qt built release.
-win32|mac {
- !contains(QT_CONFIG,debug)|!contains(QT_CONFIG,release) {
- CONFIG -= debug_and_release debug release
- contains(QT_CONFIG,debug): CONFIG+=debug
- contains(QT_CONFIG,release):CONFIG+=release
- }
-}
-
-CONFIG(debug, debug|release) {
- SUBDIRPART = debug
-} else {
- SUBDIRPART = release
-}
-
-SOURCE_DIR = $$PWD/inc
-
-DESTDIR = $$OUTPUT_DIR
-
-# Add the output dirs to the link path too
-LIBS += -L$$DESTDIR
-
-DEPENDPATH += . $$SOURCE_DIR
-INCLUDEPATH += . $$SOURCE_DIR
-#For some reason the default include path doesn't include MOC_DIR on symbian
-symbian {
- INCLUDEPATH += $$APP_LAYER_SYSTEMINCLUDE
- TARGET.CAPABILITY = ALL -TCB
- TARGET.EPOCALLOWDLLDATA=1
-}
-
-
-plugin: !isEmpty(PLUGIN_SUBDIR): DESTDIR = $$OUTPUT_DIR/$$PLUGIN_SUBDIR
-
-symbian: plugin { # copy qtstub and manifest
- pluginstub.sources = $${TARGET}.dll
- pluginstub.path = $$PLUGIN_SUBDIR
-
- DEPLOYMENT += pluginstub
-
- qtplugins.path = $$PLUGIN_SUBDIR
- qtplugins.sources += qmakepluginstubs/$${TARGET}.qtplugin
- qtplugins.sources += resource/$${TARGET}.manifest
-
- for(qtplugin, qtplugins.sources):BLD_INF_RULES.prj_exports += "./$$qtplugin z:$$qtplugins.path/$$basename(qtplugin)"
-}
--- a/securitydialogs/Autolock/autolockuseractivityservice/eabi/autolockuseractivityserviceu.def Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,16 +0,0 @@
-EXPORTS
- _ZN27AutolockUserActivityService11qt_metacallEN11QMetaObject4CallEiPPv @ 1 NONAME
- _ZN27AutolockUserActivityService11qt_metacastEPKc @ 2 NONAME
- _ZN27AutolockUserActivityService16staticMetaObjectE @ 3 NONAME DATA 16
- _ZN27AutolockUserActivityService19getStaticMetaObjectEv @ 4 NONAME
- _ZN27AutolockUserActivityService19setInactivityPeriodEi @ 5 NONAME
- _ZN27AutolockUserActivityServiceC1Ev @ 6 NONAME
- _ZN27AutolockUserActivityServiceC2Ev @ 7 NONAME
- _ZN27AutolockUserActivityServiceD0Ev @ 8 NONAME
- _ZN27AutolockUserActivityServiceD1Ev @ 9 NONAME
- _ZN27AutolockUserActivityServiceD2Ev @ 10 NONAME
- _ZNK27AutolockUserActivityService10metaObjectEv @ 11 NONAME
- _ZNK27AutolockUserActivityService16inactivityPeriodEv @ 12 NONAME
- _ZTI27AutolockUserActivityService @ 13 NONAME
- _ZTV27AutolockUserActivityService @ 14 NONAME
-
--- a/securitydialogs/Autolock/autolockuseractivityservice/inc/autolockuseractivityservice.h Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,54 +0,0 @@
-/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: autolockuseractivityservice.h
-*
-*/
-
-#ifndef AUTOLOCKAUTOLOCKUSERACTIVITYSERVICE_H
-#define AUTOLOCKAUTOLOCKUSERACTIVITYSERVICE_H
-
-#include "autolockuseractivityserviceinterface.h"
-#include "autolockuseractivityservice_global.h"
-
-class AutolockUserActivityServicePrivate;
-
-class AUTOLOCKUSERACTIVITYSERVICE_EXPORT AutolockUserActivityService : public AutolockUserActivityServiceInterface
-{
- Q_OBJECT
-
-public:
-
- explicit AutolockUserActivityService(/*QObject *parent = 0*/);
- ~AutolockUserActivityService();
-
- virtual void setInactivityPeriod(int seconds);
- virtual int inactivityPeriod() const;
-
-private:
-
- //virtual void connectNotify(const char *signal);
- //virtual void disconnectNotify(const char *signal);
-
- //bool receiversConnected();
-
- Q_DISABLE_COPY(AutolockUserActivityService)
-
-private:
-
- AutolockUserActivityServicePrivate *m_d;
- friend class AutolockUserActivityServicePrivate;
-
-};
-
-#endif // AUTOLOCKAUTOLOCKUSERACTIVITYSERVICE_H
--- a/securitydialogs/Autolock/autolockuseractivityservice/inc/autolockuseractivityservice_global.h Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,34 +0,0 @@
-/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: autolockuseractivityservice_global.h
-*
-*/
-
-
-#ifndef AUTOLOCKAUTOLOCKUSERACTIVITYSERVICE_GLOBAL_H
-#define AUTOLOCKAUTOLOCKUSERACTIVITYSERVICE_GLOBAL_H
-
-#include <qglobal.h>
-
-#ifdef AUTOLOCKUSERACTIVITYSERVICE_LIB
- #define AUTOLOCKUSERACTIVITYSERVICE_EXPORT Q_DECL_EXPORT
-#else
- #ifdef AUTOLOCKUSERACTIVITYSERVICE_TEST
- #define AUTOLOCKUSERACTIVITYSERVICE_EXPORT
- #else
- #define AUTOLOCKUSERACTIVITYSERVICE_EXPORT Q_DECL_IMPORT
- #endif
-#endif
-
-#endif // AUTOLOCKAUTOLOCKUSERACTIVITYSERVICE_GLOBAL_H
--- a/securitydialogs/Autolock/autolockuseractivityservice/inc/autolockuseractivityserviceinterface.h Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,39 +0,0 @@
-/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: autolockuseractivityserviceinterface.h
-*
-*/
-
-#ifndef AUTOLOCKUSERACTIVITYSERVICEINTERFACE_H
-#define AUTOLOCKUSERACTIVITYSERVICEINTERFACE_H
-
-#include <QObject>
-
-class AutolockUserActivityServiceInterface : public QObject
-{
- Q_OBJECT
-
-public:
-
- virtual void setInactivityPeriod(int seconds) = 0;
- virtual int inactivityPeriod() const = 0;
-
-signals:
-
- void notActive();
- void active();
-
-};
-
-#endif // AUTOLOCKUSERACTIVITYSERVICEINTERFACE_H
--- a/securitydialogs/Autolock/autolockuseractivityservice/s60/inc/autolockuseractivityservice_p.h Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,54 +0,0 @@
-/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: autolockuseractivityservice_p.h
-*
-*/
-
-#ifndef AUTOLOCKUSERACTIVITYSERVICEPRIVATE_H
-#define AUTOLOCKUSERACTIVITYSERVICEPRIVATE_H
-
-class CUserActivityManager;
-
-class AutolockUserActivityService;
-
-class AutolockUserActivityServicePrivate
-{
-
-public:
-
- explicit AutolockUserActivityServicePrivate(AutolockUserActivityService *servicePublic);
- ~AutolockUserActivityServicePrivate();
-
- void setInactivityPeriod(int seconds);
- int inactivityPeriod() const;
-
- void watch(bool shouldWatch);
-
- void emitActive() const;
- void emitNotActive() const;
-
-private:
-
- bool isWatching() const;
-
-private:
-
- AutolockUserActivityService *m_q;
-
- CUserActivityManager *mActivityManager;
- int mInactivityPeriod;
-
-};
-
-#endif // AUTOLOCKUSERACTIVITYSERVICEPRIVATE_H
--- a/securitydialogs/Autolock/autolockuseractivityservice/s60/src/autolockuseractivityservice_p.cpp Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,143 +0,0 @@
-/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: autolockuseractivityservice_p.cpp
-*
-*/
-
-#include "autolockuseractivityservice.h"
-#include "autolockuseractivityservice_p.h"
-#include <e32debug.h>
-
-#include <activitymanager.h>
-
-const int lDefaultInactivityPeriod(5);
-
-// ======== LOCAL FUNCTIONS ========
-
-/*!
- Called as callback to activity event.
- \param pointer to activity callback object.
- \retval error code.
-*/
-TInt activityCallback(TAny *ptr)
-{
- RDebug::Printf( "%s %s (%u) value=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, 0 );
-
- static_cast<AutolockUserActivityServicePrivate *>(ptr)->emitActive();
- // activity manager doesn't care about the return value,
- // we return a value indicating 'true' to be elegant (see CIdle)
- return 1;
-}
-
-/*!
- Called as callback to inactivity event.
- \param pointer to inactivity callback object.
- \retval error code.
-*/
-TInt inactivityCallback(TAny *ptr)
-{
- RDebug::Printf( "%s %s (%u) value=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, 0 );
-
- static_cast<AutolockUserActivityServicePrivate *>(ptr)->emitNotActive();
- // activity manager doesn't care about the return value,
- // we return a value indicating 'true' to be elegant (see CIdle)
- return 1;
-}
-
-// ======== MEMBER FUNCTIONS ========
-
-/*!
- Constructor.
- \param servicePublic public implementation.
-*/
-AutolockUserActivityServicePrivate::AutolockUserActivityServicePrivate(AutolockUserActivityService *servicePublic) :
- m_q(servicePublic), mActivityManager(0), mInactivityPeriod(lDefaultInactivityPeriod)
-{
- mActivityManager = CUserActivityManager::NewL(CActive::EPriorityStandard);
-}
-
-/*!
- Destructor.
-*/
-AutolockUserActivityServicePrivate::~AutolockUserActivityServicePrivate()
-{
- delete mActivityManager;
-}
-
-/*!
- Sets the inactivity period after which to emit signal of inactivity.
- \param seconds after which inactivity is detected.
-*/
-void AutolockUserActivityServicePrivate::setInactivityPeriod(int seconds)
-{
- RDebug::Printf( "%s %s (%u) seconds=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, seconds );
-
- mInactivityPeriod = seconds;
- // activity manager panics if timeout set before start
- if (isWatching())
- {
- mActivityManager->SetInactivityTimeout(TTimeIntervalSeconds(mInactivityPeriod));
- }
-}
-
-/*!
- Retrives the current inactivity period setting.
- \retval inactivity period set.
-*/
-int AutolockUserActivityServicePrivate::inactivityPeriod() const
-{
- return mInactivityPeriod;
-}
-
-/*!
- Starts or stops activity manager user activity watching.
- \param shouldWatch determines if we shoul start watching or stop watching.
-*/
-void AutolockUserActivityServicePrivate::watch(bool shouldWatch)
-{
- RDebug::Printf( "%s %s (%u) shouldWatch=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, shouldWatch );
- if (shouldWatch && !isWatching()) {
- mActivityManager->Start(
- TTimeIntervalSeconds(mInactivityPeriod),
- TCallBack(inactivityCallback, this),
- TCallBack(activityCallback, this));
- } else if (!shouldWatch && isWatching()) {
- mActivityManager->Cancel();
- }
-}
-
-/*!
- Checks if activity service is currently watching for user activity.
- \retval true if user acitivity service is active.
-*/
-bool AutolockUserActivityServicePrivate::isWatching() const
-{
- return mActivityManager && mActivityManager->IsActive();
-}
-
-/*!
- Emits signal that user is active.
-*/
-void AutolockUserActivityServicePrivate::emitActive() const
-{
- emit m_q->active();
-}
-
-/*!
- Emits signal that user is not active.
-*/
-void AutolockUserActivityServicePrivate::emitNotActive() const
-{
- emit m_q->notActive();
-}
--- a/securitydialogs/Autolock/autolockuseractivityservice/src/autolockuseractivityservice.cpp Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,63 +0,0 @@
-/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: autolockuseractivityservice.cpp
-*
-*/
-
-#include "autolockuseractivityservice.h"
-#include "autolockuseractivityservice_p.h"
-
-/*!
- \class AutolockUserActivityService
- \brief ?brier_description
-
- ?Qt_style_documentation
-*/
-
-// ======== MEMBER FUNCTIONS ========
-
-/*!
- Constructor.
-*/
-AutolockUserActivityService::AutolockUserActivityService() :
- m_d(new AutolockUserActivityServicePrivate(this))
-{
- m_d->watch(true);
-}
-
-/*!
- Destructor.
-*/
-AutolockUserActivityService::~AutolockUserActivityService()
-{
- delete m_d;
-}
-
-/*!
- Sets the inactivity period after which to emit signal of inactivity.
- \param seconds after which inactivity is detected.
-*/
-void AutolockUserActivityService::setInactivityPeriod(int seconds)
-{
- m_d->setInactivityPeriod(seconds);
-}
-
-/*!
- Retrives the current inactivity period setting.
- \retval inactivity period set.
-*/
-int AutolockUserActivityService::inactivityPeriod() const
-{
- return m_d->inactivityPeriod();
-}
--- a/securitydialogs/Autolock/autolockuseractivityservice/stub/inc/autolockuseractivityservice_p.h Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,55 +0,0 @@
-/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: autolockuseractivityservice_p.h
-*
-*/
-
-#ifndef AUTOLOCKUSERACTIVITYSERVICEPRIVATE_H
-#define AUTOLOCKUSERACTIVITYSERVICEPRIVATE_H
-
-#include "autolocktest_global.h"
-
-class QTimer;
-
-class AutolockUserActivityService;
-
-class AutolockUserActivityServicePrivate
-{
-
-public:
-
- explicit AutolockUserActivityServicePrivate(AutolockUserActivityService *servicePublic);
- ~AutolockUserActivityServicePrivate();
-
- void setInactivityPeriod(int seconds);
- int inactivityPeriod() const;
-
- void watch(bool shouldWatch);
-
-private:
-
- bool isWatching() const;
-
-private:
-
- AutolockUserActivityService *m_q;
-
- QTimer *mActivityTimer;
- QTimer *mInactivityTimer;
-
- int mInactivityPeriod;
- SCREENSAVER_TEST_FRIEND_CLASS(T_AutolockUserActivityService)
-};
-
-#endif // AUTOLOCKUSERACTIVITYSERVICEPRIVATE_H
--- a/securitydialogs/Autolock/autolockuseractivityservice/stub/src/autolockuseractivityservice_p.cpp Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,94 +0,0 @@
-/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: autolockuseractivityservice_p.cpp
-*
-*/
-
-#include "autolockuseractivityservice.h"
-#include "autolockuseractivityservice_p.h"
-
-#include <QTimer>
-#include <QObject>
-
-// ======== MEMBER FUNCTIONS ========
-
-/*!
- Constructor.
- \param servicePublic public implementation.
-*/
-AutolockUserActivityServicePrivate::AutolockUserActivityServicePrivate(AutolockUserActivityService *servicePublic) :
- m_q(servicePublic), mInactivityPeriod(9)
-{
- mActivityTimer = new QTimer();
- QObject::connect(mActivityTimer, SIGNAL(timeout()), m_q, SIGNAL(active()));
-
- mInactivityTimer = new QTimer();
- QObject::connect(mInactivityTimer, SIGNAL(timeout()), m_q, SIGNAL(notActive()));
-}
-
-/*!
- Destructor.
-*/
-AutolockUserActivityServicePrivate::~AutolockUserActivityServicePrivate()
-{
- delete mActivityTimer;
- delete mInactivityTimer;
-}
-
-/*!
- Sets the inactivity period after which to emit signal of inactivity.
- \param seconds after which inactivity is detected.
-*/
-void AutolockUserActivityServicePrivate::setInactivityPeriod(int seconds)
-{
- mInactivityPeriod = seconds;
- if (isWatching()) {
- mInactivityTimer->start(seconds * 1000);
- }
-}
-
-/*!
- Retrives the current inactivity period setting.
- \retval inactivity period set.
-*/
-int AutolockUserActivityServicePrivate::inactivityPeriod() const
-{
- return mInactivityPeriod;
-}
-
-/*!
- Starts or stops activity manager user activity watching.
- \param shouldWatch determines if we shoul start watching or stop watching.
-*/
-void AutolockUserActivityServicePrivate::watch(bool shouldWatch)
-{
- if (shouldWatch && !isWatching()) {
- mActivityTimer->start(5000);
- mInactivityTimer->start(mInactivityPeriod * 1000);
- } else if (!shouldWatch && isWatching()) {
- mActivityTimer->stop();
- mInactivityTimer->stop();
- }
-}
-
-/*!
- Checks if activity service is currently watching for user activity.
- \retval true if user acitivity service is active.
-*/
-bool AutolockUserActivityServicePrivate::isWatching() const
-{
- return (mActivityTimer->isActive() || mInactivityTimer->isActive());
-}
-
-
--- a/securitydialogs/Autolock/bld.inf Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,794 +0,0 @@
-// ============================================================================
-// * Makefile for building: Autolock
-// * Generated by qmake (2.01a) (Qt 4.7.0) on: 2010-08-07T17:22:57
-// * This file is generated by qmake and should not be modified by the
-// * user.
-// * Project: Autolock.pro
-// * Template: app
-// ============================================================================
-
-#define BLD_INF_AUTOLOCK_04D793A7
-
-
-prj_platforms
-
-WINSCW GCCE ARMV5 ARMV6
-
-
-prj_mmpfiles
-
-Autolock_0x100059B5.mmp
-
-prj_extensions
-
-START EXTENSION qt/qmake_extra_pre_targetdep.export
-OPTION PREDEP_TARGET A:/sf/mw/securitysrv/securitydialogs/Autolock/moc_Autolock.cpp
-OPTION DEPS A:/sf/mw/securitysrv/securitydialogs/SecUi/Inc/SecQueryUi.h A:/sf/mw/securitysrv/securitydialogs/Autolock/src/Autolock.h
-OPTION COMMAND /epoc32/tools/moc.exe -DSYMBIAN -DUNICODE -DQT_KEYPAD_NAVIGATION -DQT_SOFTKEYS_ENABLED -DQT_USE_MATH_H_FLOATS -DHB_HAVE_QT_MOBILITY -DHB_HAVE_PROTECTED_CHUNK -DHB_TOUCHFEEDBACK_TYPE_IS_LONGPRESS -DHB_GESTURE_FW -DHB_EFFECTS -DHB_TEXT_MEASUREMENT_UTILITY -DHB_HAVE_QT_MOBILITY -DHB_HAVE_PROTECTED_CHUNK -DHB_TOUCHFEEDBACK_TYPE_IS_LONGPRESS -DHB_GESTURE_FW -DHB_EFFECTS -DHB_TEXT_MEASUREMENT_UTILITY -DQT_SVG_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -I"A:/epoc32/include/mw/QtCore" -I"A:/epoc32/include/mw/QtNetwork" -I"A:/epoc32/include/mw/QtGui" -I"A:/epoc32/include/mw/QtSvg" -I"A:/epoc32/include/mw" -I"A:/epoc32/include/mw/QtPublishSubscribe" -I"A:/sf/mw/qt/mkspecs/common/symbian" -I"A:/epoc32/include" -I"A:/epoc32/include/stdapis" -I"A:/epoc32/include/stdapis/sys" -I"A:/epoc32/include/platform/mw" -I"A:/epoc32/include/platform" -I"A:/epoc32/include/platform/loc" -I"A:/epoc32/include/platform/mw/loc" -I"A:/epoc32/include/platform/loc/sc" -I"A:/epoc32/include/platform/mw/loc/sc" -I"A:/sf/mw/securitysrv/securitydialogs/Autolock" -I"A:/sf/mw/securitysrv/securitydialogs/Autolock/inc" -I"A:/sf/mw/securitysrv/securitydialogs/Autolock/autolockuseractivityservice" -I"A:/sf/mw/securitysrv/securitydialogs/Autolock/autolockuseractivityservice/inc" -I"A:/QtPublishSubscribe" -I"A:/epoc32/include/mw/hb/hbcore" -I"A:/epoc32/include/mw/hb/hbwidgets" -I"A:/epoc32/include/mw/hb/hbutils" -I"A:/epoc32/include/stdapis/stlportv5" -I"A:/sf/mw/securitysrv/securitydialogs/Autolock/src" -DSYMBIAN a:/sf/mw/securitysrv/securitydialogs/Autolock/src/Autolock.h -o a:/sf/mw/securitysrv/securitydialogs/Autolock/moc_Autolock.cpp
-END
-START EXTENSION qt/qmake_extra_pre_targetdep.export
-OPTION PREDEP_TARGET A:/sf/mw/securitysrv/securitydialogs/Autolock/qrc_Autolock.cpp
-OPTION DEPS A:/sf/mw/securitysrv/securitydialogs/Autolock/Autolock.qrc A:/sf/mw/securitysrv/securitydialogs/Autolock/iconnotifier.svg A:/sf/mw/securitysrv/securitydialogs/Autolock/qtg_large_device_lock.svg
-OPTION COMMAND /epoc32/tools/rcc.exe -name Autolock a:/sf/mw/securitysrv/securitydialogs/Autolock/Autolock.qrc -o a:/sf/mw/securitysrv/securitydialogs/Autolock/qrc_Autolock.cpp
-END
-
-START EXTENSION qt/ts2qm
-OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_ar.ts
-OPTION QMFILE /epoc32/data/z/resource/qt/translations/calwidget_ar.qm
-END
-
-START EXTENSION qt/ts2qm
-OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_ar.ts
-OPTION QMFILE /epoc32/release/winscw/udeb/z/resource/qt/translations/calwidget_ar.qm
-END
-
-START EXTENSION qt/ts2qm
-OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_ar.ts
-OPTION QMFILE /epoc32/release/winscw/urel/z/resource/qt/translations/calwidget_ar.qm
-END
-
-START EXTENSION qt/ts2qm
-OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_eu.ts
-OPTION QMFILE /epoc32/data/z/resource/qt/translations/calwidget_eu.qm
-END
-
-START EXTENSION qt/ts2qm
-OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_eu.ts
-OPTION QMFILE /epoc32/release/winscw/udeb/z/resource/qt/translations/calwidget_eu.qm
-END
-
-START EXTENSION qt/ts2qm
-OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_eu.ts
-OPTION QMFILE /epoc32/release/winscw/urel/z/resource/qt/translations/calwidget_eu.qm
-END
-
-START EXTENSION qt/ts2qm
-OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_bg.ts
-OPTION QMFILE /epoc32/data/z/resource/qt/translations/calwidget_bg.qm
-END
-
-START EXTENSION qt/ts2qm
-OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_bg.ts
-OPTION QMFILE /epoc32/release/winscw/udeb/z/resource/qt/translations/calwidget_bg.qm
-END
-
-START EXTENSION qt/ts2qm
-OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_bg.ts
-OPTION QMFILE /epoc32/release/winscw/urel/z/resource/qt/translations/calwidget_bg.qm
-END
-
-START EXTENSION qt/ts2qm
-OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_ca.ts
-OPTION QMFILE /epoc32/data/z/resource/qt/translations/calwidget_ca.qm
-END
-
-START EXTENSION qt/ts2qm
-OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_ca.ts
-OPTION QMFILE /epoc32/release/winscw/udeb/z/resource/qt/translations/calwidget_ca.qm
-END
-
-START EXTENSION qt/ts2qm
-OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_ca.ts
-OPTION QMFILE /epoc32/release/winscw/urel/z/resource/qt/translations/calwidget_ca.qm
-END
-
-START EXTENSION qt/ts2qm
-OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_hr.ts
-OPTION QMFILE /epoc32/data/z/resource/qt/translations/calwidget_hr.qm
-END
-
-START EXTENSION qt/ts2qm
-OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_hr.ts
-OPTION QMFILE /epoc32/release/winscw/udeb/z/resource/qt/translations/calwidget_hr.qm
-END
-
-START EXTENSION qt/ts2qm
-OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_hr.ts
-OPTION QMFILE /epoc32/release/winscw/urel/z/resource/qt/translations/calwidget_hr.qm
-END
-
-START EXTENSION qt/ts2qm
-OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_cs.ts
-OPTION QMFILE /epoc32/data/z/resource/qt/translations/calwidget_cs.qm
-END
-
-START EXTENSION qt/ts2qm
-OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_cs.ts
-OPTION QMFILE /epoc32/release/winscw/udeb/z/resource/qt/translations/calwidget_cs.qm
-END
-
-START EXTENSION qt/ts2qm
-OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_cs.ts
-OPTION QMFILE /epoc32/release/winscw/urel/z/resource/qt/translations/calwidget_cs.qm
-END
-
-START EXTENSION qt/ts2qm
-OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_da.ts
-OPTION QMFILE /epoc32/data/z/resource/qt/translations/calwidget_da.qm
-END
-
-START EXTENSION qt/ts2qm
-OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_da.ts
-OPTION QMFILE /epoc32/release/winscw/udeb/z/resource/qt/translations/calwidget_da.qm
-END
-
-START EXTENSION qt/ts2qm
-OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_da.ts
-OPTION QMFILE /epoc32/release/winscw/urel/z/resource/qt/translations/calwidget_da.qm
-END
-
-START EXTENSION qt/ts2qm
-OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_nl.ts
-OPTION QMFILE /epoc32/data/z/resource/qt/translations/calwidget_nl.qm
-END
-
-START EXTENSION qt/ts2qm
-OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_nl.ts
-OPTION QMFILE /epoc32/release/winscw/udeb/z/resource/qt/translations/calwidget_nl.qm
-END
-
-START EXTENSION qt/ts2qm
-OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_nl.ts
-OPTION QMFILE /epoc32/release/winscw/urel/z/resource/qt/translations/calwidget_nl.qm
-END
-
-START EXTENSION qt/ts2qm
-OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_en.ts
-OPTION QMFILE /epoc32/data/z/resource/qt/translations/calwidget_en.qm
-END
-
-START EXTENSION qt/ts2qm
-OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_en.ts
-OPTION QMFILE /epoc32/release/winscw/udeb/z/resource/qt/translations/calwidget_en.qm
-END
-
-START EXTENSION qt/ts2qm
-OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_en.ts
-OPTION QMFILE /epoc32/release/winscw/urel/z/resource/qt/translations/calwidget_en.qm
-END
-
-START EXTENSION qt/ts2qm
-OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_en_US.ts
-OPTION QMFILE /epoc32/data/z/resource/qt/translations/calwidget_en_US.qm
-END
-
-START EXTENSION qt/ts2qm
-OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_en_US.ts
-OPTION QMFILE /epoc32/release/winscw/udeb/z/resource/qt/translations/calwidget_en_US.qm
-END
-
-START EXTENSION qt/ts2qm
-OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_en_US.ts
-OPTION QMFILE /epoc32/release/winscw/urel/z/resource/qt/translations/calwidget_en_US.qm
-END
-
-START EXTENSION qt/ts2qm
-OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_et.ts
-OPTION QMFILE /epoc32/data/z/resource/qt/translations/calwidget_et.qm
-END
-
-START EXTENSION qt/ts2qm
-OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_et.ts
-OPTION QMFILE /epoc32/release/winscw/udeb/z/resource/qt/translations/calwidget_et.qm
-END
-
-START EXTENSION qt/ts2qm
-OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_et.ts
-OPTION QMFILE /epoc32/release/winscw/urel/z/resource/qt/translations/calwidget_et.qm
-END
-
-START EXTENSION qt/ts2qm
-OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_fi.ts
-OPTION QMFILE /epoc32/data/z/resource/qt/translations/calwidget_fi.qm
-END
-
-START EXTENSION qt/ts2qm
-OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_fi.ts
-OPTION QMFILE /epoc32/release/winscw/udeb/z/resource/qt/translations/calwidget_fi.qm
-END
-
-START EXTENSION qt/ts2qm
-OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_fi.ts
-OPTION QMFILE /epoc32/release/winscw/urel/z/resource/qt/translations/calwidget_fi.qm
-END
-
-START EXTENSION qt/ts2qm
-OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_fr.ts
-OPTION QMFILE /epoc32/data/z/resource/qt/translations/calwidget_fr.qm
-END
-
-START EXTENSION qt/ts2qm
-OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_fr.ts
-OPTION QMFILE /epoc32/release/winscw/udeb/z/resource/qt/translations/calwidget_fr.qm
-END
-
-START EXTENSION qt/ts2qm
-OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_fr.ts
-OPTION QMFILE /epoc32/release/winscw/urel/z/resource/qt/translations/calwidget_fr.qm
-END
-
-START EXTENSION qt/ts2qm
-OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_fr_CA.ts
-OPTION QMFILE /epoc32/data/z/resource/qt/translations/calwidget_fr_CA.qm
-END
-
-START EXTENSION qt/ts2qm
-OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_fr_CA.ts
-OPTION QMFILE /epoc32/release/winscw/udeb/z/resource/qt/translations/calwidget_fr_CA.qm
-END
-
-START EXTENSION qt/ts2qm
-OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_fr_CA.ts
-OPTION QMFILE /epoc32/release/winscw/urel/z/resource/qt/translations/calwidget_fr_CA.qm
-END
-
-START EXTENSION qt/ts2qm
-OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_gl.ts
-OPTION QMFILE /epoc32/data/z/resource/qt/translations/calwidget_gl.qm
-END
-
-START EXTENSION qt/ts2qm
-OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_gl.ts
-OPTION QMFILE /epoc32/release/winscw/udeb/z/resource/qt/translations/calwidget_gl.qm
-END
-
-START EXTENSION qt/ts2qm
-OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_gl.ts
-OPTION QMFILE /epoc32/release/winscw/urel/z/resource/qt/translations/calwidget_gl.qm
-END
-
-START EXTENSION qt/ts2qm
-OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_de.ts
-OPTION QMFILE /epoc32/data/z/resource/qt/translations/calwidget_de.qm
-END
-
-START EXTENSION qt/ts2qm
-OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_de.ts
-OPTION QMFILE /epoc32/release/winscw/udeb/z/resource/qt/translations/calwidget_de.qm
-END
-
-START EXTENSION qt/ts2qm
-OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_de.ts
-OPTION QMFILE /epoc32/release/winscw/urel/z/resource/qt/translations/calwidget_de.qm
-END
-
-START EXTENSION qt/ts2qm
-OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_el.ts
-OPTION QMFILE /epoc32/data/z/resource/qt/translations/calwidget_el.qm
-END
-
-START EXTENSION qt/ts2qm
-OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_el.ts
-OPTION QMFILE /epoc32/release/winscw/udeb/z/resource/qt/translations/calwidget_el.qm
-END
-
-START EXTENSION qt/ts2qm
-OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_el.ts
-OPTION QMFILE /epoc32/release/winscw/urel/z/resource/qt/translations/calwidget_el.qm
-END
-
-START EXTENSION qt/ts2qm
-OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_he.ts
-OPTION QMFILE /epoc32/data/z/resource/qt/translations/calwidget_he.qm
-END
-
-START EXTENSION qt/ts2qm
-OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_he.ts
-OPTION QMFILE /epoc32/release/winscw/udeb/z/resource/qt/translations/calwidget_he.qm
-END
-
-START EXTENSION qt/ts2qm
-OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_he.ts
-OPTION QMFILE /epoc32/release/winscw/urel/z/resource/qt/translations/calwidget_he.qm
-END
-
-START EXTENSION qt/ts2qm
-OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_hi.ts
-OPTION QMFILE /epoc32/data/z/resource/qt/translations/calwidget_hi.qm
-END
-
-START EXTENSION qt/ts2qm
-OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_hi.ts
-OPTION QMFILE /epoc32/release/winscw/udeb/z/resource/qt/translations/calwidget_hi.qm
-END
-
-START EXTENSION qt/ts2qm
-OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_hi.ts
-OPTION QMFILE /epoc32/release/winscw/urel/z/resource/qt/translations/calwidget_hi.qm
-END
-
-START EXTENSION qt/ts2qm
-OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_zh_HK.ts
-OPTION QMFILE /epoc32/data/z/resource/qt/translations/calwidget_zh_HK.qm
-END
-
-START EXTENSION qt/ts2qm
-OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_zh_HK.ts
-OPTION QMFILE /epoc32/release/winscw/udeb/z/resource/qt/translations/calwidget_zh_HK.qm
-END
-
-START EXTENSION qt/ts2qm
-OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_zh_HK.ts
-OPTION QMFILE /epoc32/release/winscw/urel/z/resource/qt/translations/calwidget_zh_HK.qm
-END
-
-START EXTENSION qt/ts2qm
-OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_hu.ts
-OPTION QMFILE /epoc32/data/z/resource/qt/translations/calwidget_hu.qm
-END
-
-START EXTENSION qt/ts2qm
-OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_hu.ts
-OPTION QMFILE /epoc32/release/winscw/udeb/z/resource/qt/translations/calwidget_hu.qm
-END
-
-START EXTENSION qt/ts2qm
-OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_hu.ts
-OPTION QMFILE /epoc32/release/winscw/urel/z/resource/qt/translations/calwidget_hu.qm
-END
-
-START EXTENSION qt/ts2qm
-OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_is.ts
-OPTION QMFILE /epoc32/data/z/resource/qt/translations/calwidget_is.qm
-END
-
-START EXTENSION qt/ts2qm
-OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_is.ts
-OPTION QMFILE /epoc32/release/winscw/udeb/z/resource/qt/translations/calwidget_is.qm
-END
-
-START EXTENSION qt/ts2qm
-OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_is.ts
-OPTION QMFILE /epoc32/release/winscw/urel/z/resource/qt/translations/calwidget_is.qm
-END
-
-START EXTENSION qt/ts2qm
-OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_id.ts
-OPTION QMFILE /epoc32/data/z/resource/qt/translations/calwidget_id.qm
-END
-
-START EXTENSION qt/ts2qm
-OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_id.ts
-OPTION QMFILE /epoc32/release/winscw/udeb/z/resource/qt/translations/calwidget_id.qm
-END
-
-START EXTENSION qt/ts2qm
-OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_id.ts
-OPTION QMFILE /epoc32/release/winscw/urel/z/resource/qt/translations/calwidget_id.qm
-END
-
-START EXTENSION qt/ts2qm
-OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_it.ts
-OPTION QMFILE /epoc32/data/z/resource/qt/translations/calwidget_it.qm
-END
-
-START EXTENSION qt/ts2qm
-OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_it.ts
-OPTION QMFILE /epoc32/release/winscw/udeb/z/resource/qt/translations/calwidget_it.qm
-END
-
-START EXTENSION qt/ts2qm
-OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_it.ts
-OPTION QMFILE /epoc32/release/winscw/urel/z/resource/qt/translations/calwidget_it.qm
-END
-
-START EXTENSION qt/ts2qm
-OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_ja.ts
-OPTION QMFILE /epoc32/data/z/resource/qt/translations/calwidget_ja.qm
-END
-
-START EXTENSION qt/ts2qm
-OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_ja.ts
-OPTION QMFILE /epoc32/release/winscw/udeb/z/resource/qt/translations/calwidget_ja.qm
-END
-
-START EXTENSION qt/ts2qm
-OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_ja.ts
-OPTION QMFILE /epoc32/release/winscw/urel/z/resource/qt/translations/calwidget_ja.qm
-END
-
-START EXTENSION qt/ts2qm
-OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_ko.ts
-OPTION QMFILE /epoc32/data/z/resource/qt/translations/calwidget_ko.qm
-END
-
-START EXTENSION qt/ts2qm
-OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_ko.ts
-OPTION QMFILE /epoc32/release/winscw/udeb/z/resource/qt/translations/calwidget_ko.qm
-END
-
-START EXTENSION qt/ts2qm
-OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_ko.ts
-OPTION QMFILE /epoc32/release/winscw/urel/z/resource/qt/translations/calwidget_ko.qm
-END
-
-START EXTENSION qt/ts2qm
-OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_lv.ts
-OPTION QMFILE /epoc32/data/z/resource/qt/translations/calwidget_lv.qm
-END
-
-START EXTENSION qt/ts2qm
-OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_lv.ts
-OPTION QMFILE /epoc32/release/winscw/udeb/z/resource/qt/translations/calwidget_lv.qm
-END
-
-START EXTENSION qt/ts2qm
-OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_lv.ts
-OPTION QMFILE /epoc32/release/winscw/urel/z/resource/qt/translations/calwidget_lv.qm
-END
-
-START EXTENSION qt/ts2qm
-OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_lt.ts
-OPTION QMFILE /epoc32/data/z/resource/qt/translations/calwidget_lt.qm
-END
-
-START EXTENSION qt/ts2qm
-OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_lt.ts
-OPTION QMFILE /epoc32/release/winscw/udeb/z/resource/qt/translations/calwidget_lt.qm
-END
-
-START EXTENSION qt/ts2qm
-OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_lt.ts
-OPTION QMFILE /epoc32/release/winscw/urel/z/resource/qt/translations/calwidget_lt.qm
-END
-
-START EXTENSION qt/ts2qm
-OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_ms.ts
-OPTION QMFILE /epoc32/data/z/resource/qt/translations/calwidget_ms.qm
-END
-
-START EXTENSION qt/ts2qm
-OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_ms.ts
-OPTION QMFILE /epoc32/release/winscw/udeb/z/resource/qt/translations/calwidget_ms.qm
-END
-
-START EXTENSION qt/ts2qm
-OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_ms.ts
-OPTION QMFILE /epoc32/release/winscw/urel/z/resource/qt/translations/calwidget_ms.qm
-END
-
-START EXTENSION qt/ts2qm
-OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_no.ts
-OPTION QMFILE /epoc32/data/z/resource/qt/translations/calwidget_no.qm
-END
-
-START EXTENSION qt/ts2qm
-OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_no.ts
-OPTION QMFILE /epoc32/release/winscw/udeb/z/resource/qt/translations/calwidget_no.qm
-END
-
-START EXTENSION qt/ts2qm
-OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_no.ts
-OPTION QMFILE /epoc32/release/winscw/urel/z/resource/qt/translations/calwidget_no.qm
-END
-
-START EXTENSION qt/ts2qm
-OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_pl.ts
-OPTION QMFILE /epoc32/data/z/resource/qt/translations/calwidget_pl.qm
-END
-
-START EXTENSION qt/ts2qm
-OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_pl.ts
-OPTION QMFILE /epoc32/release/winscw/udeb/z/resource/qt/translations/calwidget_pl.qm
-END
-
-START EXTENSION qt/ts2qm
-OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_pl.ts
-OPTION QMFILE /epoc32/release/winscw/urel/z/resource/qt/translations/calwidget_pl.qm
-END
-
-START EXTENSION qt/ts2qm
-OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_pt.ts
-OPTION QMFILE /epoc32/data/z/resource/qt/translations/calwidget_pt.qm
-END
-
-START EXTENSION qt/ts2qm
-OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_pt.ts
-OPTION QMFILE /epoc32/release/winscw/udeb/z/resource/qt/translations/calwidget_pt.qm
-END
-
-START EXTENSION qt/ts2qm
-OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_pt.ts
-OPTION QMFILE /epoc32/release/winscw/urel/z/resource/qt/translations/calwidget_pt.qm
-END
-
-START EXTENSION qt/ts2qm
-OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_pt_BR.ts
-OPTION QMFILE /epoc32/data/z/resource/qt/translations/calwidget_pt_BR.qm
-END
-
-START EXTENSION qt/ts2qm
-OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_pt_BR.ts
-OPTION QMFILE /epoc32/release/winscw/udeb/z/resource/qt/translations/calwidget_pt_BR.qm
-END
-
-START EXTENSION qt/ts2qm
-OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_pt_BR.ts
-OPTION QMFILE /epoc32/release/winscw/urel/z/resource/qt/translations/calwidget_pt_BR.qm
-END
-
-START EXTENSION qt/ts2qm
-OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_zh.ts
-OPTION QMFILE /epoc32/data/z/resource/qt/translations/calwidget_zh.qm
-END
-
-START EXTENSION qt/ts2qm
-OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_zh.ts
-OPTION QMFILE /epoc32/release/winscw/udeb/z/resource/qt/translations/calwidget_zh.qm
-END
-
-START EXTENSION qt/ts2qm
-OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_zh.ts
-OPTION QMFILE /epoc32/release/winscw/urel/z/resource/qt/translations/calwidget_zh.qm
-END
-
-START EXTENSION qt/ts2qm
-OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_ro.ts
-OPTION QMFILE /epoc32/data/z/resource/qt/translations/calwidget_ro.qm
-END
-
-START EXTENSION qt/ts2qm
-OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_ro.ts
-OPTION QMFILE /epoc32/release/winscw/udeb/z/resource/qt/translations/calwidget_ro.qm
-END
-
-START EXTENSION qt/ts2qm
-OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_ro.ts
-OPTION QMFILE /epoc32/release/winscw/urel/z/resource/qt/translations/calwidget_ro.qm
-END
-
-START EXTENSION qt/ts2qm
-OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_ru.ts
-OPTION QMFILE /epoc32/data/z/resource/qt/translations/calwidget_ru.qm
-END
-
-START EXTENSION qt/ts2qm
-OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_ru.ts
-OPTION QMFILE /epoc32/release/winscw/udeb/z/resource/qt/translations/calwidget_ru.qm
-END
-
-START EXTENSION qt/ts2qm
-OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_ru.ts
-OPTION QMFILE /epoc32/release/winscw/urel/z/resource/qt/translations/calwidget_ru.qm
-END
-
-START EXTENSION qt/ts2qm
-OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_sr.ts
-OPTION QMFILE /epoc32/data/z/resource/qt/translations/calwidget_sr.qm
-END
-
-START EXTENSION qt/ts2qm
-OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_sr.ts
-OPTION QMFILE /epoc32/release/winscw/udeb/z/resource/qt/translations/calwidget_sr.qm
-END
-
-START EXTENSION qt/ts2qm
-OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_sr.ts
-OPTION QMFILE /epoc32/release/winscw/urel/z/resource/qt/translations/calwidget_sr.qm
-END
-
-START EXTENSION qt/ts2qm
-OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_sk.ts
-OPTION QMFILE /epoc32/data/z/resource/qt/translations/calwidget_sk.qm
-END
-
-START EXTENSION qt/ts2qm
-OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_sk.ts
-OPTION QMFILE /epoc32/release/winscw/udeb/z/resource/qt/translations/calwidget_sk.qm
-END
-
-START EXTENSION qt/ts2qm
-OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_sk.ts
-OPTION QMFILE /epoc32/release/winscw/urel/z/resource/qt/translations/calwidget_sk.qm
-END
-
-START EXTENSION qt/ts2qm
-OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_sl.ts
-OPTION QMFILE /epoc32/data/z/resource/qt/translations/calwidget_sl.qm
-END
-
-START EXTENSION qt/ts2qm
-OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_sl.ts
-OPTION QMFILE /epoc32/release/winscw/udeb/z/resource/qt/translations/calwidget_sl.qm
-END
-
-START EXTENSION qt/ts2qm
-OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_sl.ts
-OPTION QMFILE /epoc32/release/winscw/urel/z/resource/qt/translations/calwidget_sl.qm
-END
-
-START EXTENSION qt/ts2qm
-OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_es.ts
-OPTION QMFILE /epoc32/data/z/resource/qt/translations/calwidget_es.qm
-END
-
-START EXTENSION qt/ts2qm
-OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_es.ts
-OPTION QMFILE /epoc32/release/winscw/udeb/z/resource/qt/translations/calwidget_es.qm
-END
-
-START EXTENSION qt/ts2qm
-OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_es.ts
-OPTION QMFILE /epoc32/release/winscw/urel/z/resource/qt/translations/calwidget_es.qm
-END
-
-START EXTENSION qt/ts2qm
-OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_es_419.ts
-OPTION QMFILE /epoc32/data/z/resource/qt/translations/calwidget_es_419.qm
-END
-
-START EXTENSION qt/ts2qm
-OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_es_419.ts
-OPTION QMFILE /epoc32/release/winscw/udeb/z/resource/qt/translations/calwidget_es_419.qm
-END
-
-START EXTENSION qt/ts2qm
-OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_es_419.ts
-OPTION QMFILE /epoc32/release/winscw/urel/z/resource/qt/translations/calwidget_es_419.qm
-END
-
-START EXTENSION qt/ts2qm
-OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_sv.ts
-OPTION QMFILE /epoc32/data/z/resource/qt/translations/calwidget_sv.qm
-END
-
-START EXTENSION qt/ts2qm
-OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_sv.ts
-OPTION QMFILE /epoc32/release/winscw/udeb/z/resource/qt/translations/calwidget_sv.qm
-END
-
-START EXTENSION qt/ts2qm
-OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_sv.ts
-OPTION QMFILE /epoc32/release/winscw/urel/z/resource/qt/translations/calwidget_sv.qm
-END
-
-START EXTENSION qt/ts2qm
-OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_tl.ts
-OPTION QMFILE /epoc32/data/z/resource/qt/translations/calwidget_tl.qm
-END
-
-START EXTENSION qt/ts2qm
-OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_tl.ts
-OPTION QMFILE /epoc32/release/winscw/udeb/z/resource/qt/translations/calwidget_tl.qm
-END
-
-START EXTENSION qt/ts2qm
-OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_tl.ts
-OPTION QMFILE /epoc32/release/winscw/urel/z/resource/qt/translations/calwidget_tl.qm
-END
-
-START EXTENSION qt/ts2qm
-OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_zh_TW.ts
-OPTION QMFILE /epoc32/data/z/resource/qt/translations/calwidget_zh_TW.qm
-END
-
-START EXTENSION qt/ts2qm
-OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_zh_TW.ts
-OPTION QMFILE /epoc32/release/winscw/udeb/z/resource/qt/translations/calwidget_zh_TW.qm
-END
-
-START EXTENSION qt/ts2qm
-OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_zh_TW.ts
-OPTION QMFILE /epoc32/release/winscw/urel/z/resource/qt/translations/calwidget_zh_TW.qm
-END
-
-START EXTENSION qt/ts2qm
-OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_th.ts
-OPTION QMFILE /epoc32/data/z/resource/qt/translations/calwidget_th.qm
-END
-
-START EXTENSION qt/ts2qm
-OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_th.ts
-OPTION QMFILE /epoc32/release/winscw/udeb/z/resource/qt/translations/calwidget_th.qm
-END
-
-START EXTENSION qt/ts2qm
-OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_th.ts
-OPTION QMFILE /epoc32/release/winscw/urel/z/resource/qt/translations/calwidget_th.qm
-END
-
-START EXTENSION qt/ts2qm
-OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_tr.ts
-OPTION QMFILE /epoc32/data/z/resource/qt/translations/calwidget_tr.qm
-END
-
-START EXTENSION qt/ts2qm
-OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_tr.ts
-OPTION QMFILE /epoc32/release/winscw/udeb/z/resource/qt/translations/calwidget_tr.qm
-END
-
-START EXTENSION qt/ts2qm
-OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_tr.ts
-OPTION QMFILE /epoc32/release/winscw/urel/z/resource/qt/translations/calwidget_tr.qm
-END
-
-START EXTENSION qt/ts2qm
-OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_uk.ts
-OPTION QMFILE /epoc32/data/z/resource/qt/translations/calwidget_uk.qm
-END
-
-START EXTENSION qt/ts2qm
-OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_uk.ts
-OPTION QMFILE /epoc32/release/winscw/udeb/z/resource/qt/translations/calwidget_uk.qm
-END
-
-START EXTENSION qt/ts2qm
-OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_uk.ts
-OPTION QMFILE /epoc32/release/winscw/urel/z/resource/qt/translations/calwidget_uk.qm
-END
-
-START EXTENSION qt/ts2qm
-OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_ur.ts
-OPTION QMFILE /epoc32/data/z/resource/qt/translations/calwidget_ur.qm
-END
-
-START EXTENSION qt/ts2qm
-OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_ur.ts
-OPTION QMFILE /epoc32/release/winscw/udeb/z/resource/qt/translations/calwidget_ur.qm
-END
-
-START EXTENSION qt/ts2qm
-OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_ur.ts
-OPTION QMFILE /epoc32/release/winscw/urel/z/resource/qt/translations/calwidget_ur.qm
-END
-
-START EXTENSION qt/ts2qm
-OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_vi.ts
-OPTION QMFILE /epoc32/data/z/resource/qt/translations/calwidget_vi.qm
-END
-
-START EXTENSION qt/ts2qm
-OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_vi.ts
-OPTION QMFILE /epoc32/release/winscw/udeb/z/resource/qt/translations/calwidget_vi.qm
-END
-
-START EXTENSION qt/ts2qm
-OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_vi.ts
-OPTION QMFILE /epoc32/release/winscw/urel/z/resource/qt/translations/calwidget_vi.qm
-END
-
-#if defined(WINSCW)
-START EXTENSION qt/qmake_emulator_deployment
-OPTION DEPLOY_SOURCE a:/sf/mw/securitysrv/securitydialogs/Autolock/autolock.qcrml
-OPTION DEPLOY_TARGET A:/epoc32/winscw/c/resource/qt/crml/autolock.qcrml
-END
-#endif
-START EXTENSION qt/qmake_emulator_deployment
-OPTION DEPLOY_SOURCE a:/sf/mw/securitysrv/securitydialogs/Autolock/autolock.qcrml
-OPTION DEPLOY_TARGET A:/epoc32/data/z/resource/qt/crml/autolock.qcrml
-END
-
-START EXTENSION qt/qmake_store_build
-END
-
-
-
-
-prj_exports
-
-./rom/Autolock.iby CORE_APP_LAYER_IBY_EXPORT_PATH(Autolock.iby)
-./conf/Autolock.confml MW_LAYER_CONFML(Autolock.confml)
-./conf/lock.confml MW_LAYER_CONFML(lock.confml)
-./rom/AutolockSrv.iby CORE_APP_LAYER_IBY_EXPORT_PATH(AutolockSrv.iby)
-./PubSub/SecurityUIsPrivatePSKeys.h |../../inc/securityuisprivatepskeys.h
-./conf/lock_10283322.crml MW_LAYER_CRML(lock_10283322.crml)
--- a/securitydialogs/Autolock/bwins/autolockuseractivityserviceu.def Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,16 +0,0 @@
-EXPORTS
- ?trUtf8@AutolockUserActivityService@@SA?AVQString@@PBD0H@Z @ 1 NONAME ; class QString AutolockUserActivityService::trUtf8(char const *, char const *, int)
- ?tr@AutolockUserActivityService@@SA?AVQString@@PBD0@Z @ 2 NONAME ; class QString AutolockUserActivityService::tr(char const *, char const *)
- ?trUtf8@AutolockUserActivityService@@SA?AVQString@@PBD0@Z @ 3 NONAME ; class QString AutolockUserActivityService::trUtf8(char const *, char const *)
- ?getStaticMetaObject@AutolockUserActivityService@@SAABUQMetaObject@@XZ @ 4 NONAME ; struct QMetaObject const & AutolockUserActivityService::getStaticMetaObject(void)
- ?setInactivityPeriod@AutolockUserActivityService@@UAEXH@Z @ 5 NONAME ; void AutolockUserActivityService::setInactivityPeriod(int)
- ?tr@AutolockUserActivityService@@SA?AVQString@@PBD0H@Z @ 6 NONAME ; class QString AutolockUserActivityService::tr(char const *, char const *, int)
- ?qt_metacast@AutolockUserActivityService@@UAEPAXPBD@Z @ 7 NONAME ; void * AutolockUserActivityService::qt_metacast(char const *)
- ??1AutolockUserActivityService@@UAE@XZ @ 8 NONAME ; AutolockUserActivityService::~AutolockUserActivityService(void)
- ?qt_metacall@AutolockUserActivityService@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 9 NONAME ; int AutolockUserActivityService::qt_metacall(enum QMetaObject::Call, int, void * *)
- ?inactivityPeriod@AutolockUserActivityService@@UBEHXZ @ 10 NONAME ; int AutolockUserActivityService::inactivityPeriod(void) const
- ??0AutolockUserActivityService@@QAE@XZ @ 11 NONAME ; AutolockUserActivityService::AutolockUserActivityService(void)
- ??_EAutolockUserActivityService@@UAE@I@Z @ 12 NONAME ; AutolockUserActivityService::~AutolockUserActivityService(unsigned int)
- ?staticMetaObject@AutolockUserActivityService@@2UQMetaObject@@B @ 13 NONAME ; struct QMetaObject const AutolockUserActivityService::staticMetaObject
- ?metaObject@AutolockUserActivityService@@UBEPBUQMetaObject@@XZ @ 14 NONAME ; struct QMetaObject const * AutolockUserActivityService::metaObject(void) const
-
Binary file securitydialogs/Autolock/conf/autolock.confml has changed
Binary file securitydialogs/Autolock/conf/autolock_102824AE.crml has changed
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/securitydialogs/Autolock/data/Autolock.rss Wed Sep 01 12:19:59 2010 +0100
@@ -0,0 +1,106 @@
+/*
+* Copyright (c) 2002 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:
+* This file contains all the resources for the Autolock.
+*
+*
+*/
+
+
+// RESOURCE IDENTIFIER
+NAME ALCK // 4 letter ID
+
+// INCLUDES
+
+#include <eikon.rh>
+#include "autolock.hrh"
+#include <autolock.loc>
+#include "eikon.rsg"
+#include <avkon.rsg>
+#include <avkon.rh>
+#include <avkon.loc>
+#include <avkon.mbg>
+#include <autolock.mbg>
+
+
+// RESOURCE DEFINITIONS
+
+RESOURCE RSS_SIGNATURE { }
+
+RESOURCE TBUF { buf=""; }
+
+RESOURCE EIK_APP_INFO
+ {
+ status_pane = r_autolock_status_pane;
+ }
+
+RESOURCE STATUS_PANE_APP_MODEL r_autolock_status_pane
+ {
+ layout = R_AVKON_STATUS_PANE_LAYOUT_IDLE;
+ panes =
+ {
+ SPANE_PANE
+ {
+ id = EEikStatusPaneUidTitle;
+ type = EAknCtTitlePane;
+ resource = r_title_pane_locked;
+ }
+ };
+ }
+
+
+RESOURCE AVKON_VIEW r_locked_view
+ {
+ }
+
+
+
+RESOURCE CBA r_autolock_softkeys_unlock_empty
+ {
+ buttons =
+ {
+ CBA_BUTTON{id=ESecUiCmdUnlock; txt= qtn_set_sec_unlock_system; },
+ CBA_BUTTON{id=EAknSoftkeyEmpty; txt=text_softkey_empty; },
+ CBA_BUTTON{id=EAknSoftkeyEmpty; txt=text_softkey_empty; }
+ };
+ }
+
+
+RESOURCE TITLE_PANE r_title_pane_locked
+ {
+ txt = qtn_set_sec_title_locked;
+ }
+
+
+
+RESOURCE DIALOG r_emergency
+ {
+ flags = EEikDialogFlagNoDrag | EEikDialogFlagNoTitleBar |
+ EEikDialogFlagCbaButtons;
+ buttons=R_AVKON_SOFTKEYS_CANCEL;
+ items=
+ {
+ DLG_LINE
+ {
+ type=EAknCtNote;
+ id=EGeneralNote;
+ control= AVKON_NOTE
+ {
+ layout = EGeneralLayout;
+ };
+ }
+ };
+ }
+
+// end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/securitydialogs/Autolock/data/Autolock_reg.rss Wed Sep 01 12:19:59 2010 +0100
@@ -0,0 +1,31 @@
+/*
+* Copyright (c) 2004 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: RSS for creating the registration file for Autolock.
+*
+*/
+
+
+#include <appinfo.rh>
+#include <Autolock.rsg>
+
+
+UID2 KUidAppRegistrationResourceFile
+UID3 0x100059B5 // application UID
+RESOURCE APP_REGISTRATION_INFO
+ {
+ app_file="Autolock"; // filename of application binary (minus extension)
+ hidden = KAppIsHidden;
+ embeddability = KAppNotEmbeddable;
+ newfile = KAppDoesNotSupportNewFile;
+ }
--- a/securitydialogs/Autolock/eabi/autolockuseractivityserviceu.def Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,16 +0,0 @@
-EXPORTS
- _ZN27AutolockUserActivityService11qt_metacallEN11QMetaObject4CallEiPPv @ 1 NONAME
- _ZN27AutolockUserActivityService11qt_metacastEPKc @ 2 NONAME
- _ZN27AutolockUserActivityService16staticMetaObjectE @ 3 NONAME DATA 16
- _ZN27AutolockUserActivityService19getStaticMetaObjectEv @ 4 NONAME
- _ZN27AutolockUserActivityService19setInactivityPeriodEi @ 5 NONAME
- _ZN27AutolockUserActivityServiceC1Ev @ 6 NONAME
- _ZN27AutolockUserActivityServiceC2Ev @ 7 NONAME
- _ZN27AutolockUserActivityServiceD0Ev @ 8 NONAME
- _ZN27AutolockUserActivityServiceD1Ev @ 9 NONAME
- _ZN27AutolockUserActivityServiceD2Ev @ 10 NONAME
- _ZNK27AutolockUserActivityService10metaObjectEv @ 11 NONAME
- _ZNK27AutolockUserActivityService16inactivityPeriodEv @ 12 NONAME
- _ZTI27AutolockUserActivityService @ 13 NONAME
- _ZTV27AutolockUserActivityService @ 14 NONAME
-
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/securitydialogs/Autolock/group/Autolock.mmp Wed Sep 01 12:19:59 2010 +0100
@@ -0,0 +1,96 @@
+/*
+* Copyright (c) 2002 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: Makefile
+*
+*
+*/
+
+#include <platform_paths.hrh>
+
+#include <data_caging_paths.hrh>
+
+TARGET autolock.exe
+TARGETTYPE exe
+epocstacksize 0x5000
+
+UID 0x100039CE 0x100059B5
+
+VENDORID VID_DEFAULT
+CAPABILITY CAP_APPLICATION NetworkControl
+
+MACRO __NO_DOS__
+
+SOURCEPATH ../src
+SOURCE AutolockApp.cpp
+SOURCE AutolockAppUi.cpp
+SOURCE AutolockDocument.cpp
+SOURCE AutolockContainer.cpp
+SOURCE AutoLockModel.cpp
+SOURCE AutoLockCenRepI.cpp
+SOURCE AutoLockLockObserver.cpp
+SOURCE AutoLockValueObserver.cpp
+SOURCE AutoLockView.cpp
+SOURCE AutolockWait.cpp
+SOURCE AutoKeyGuardCenRepI.cpp
+SOURCE AutoKeyguardObserver.cpp
+SOURCE AutolockGripStatusObserver.cpp
+SOURCE AutolockFpsStatusObserver.cpp
+
+
+START RESOURCE ../data/Autolock.rss
+HEADER
+
+TARGETPATH APP_RESOURCE_DIR
+
+LANGUAGE_IDS
+END //RESOURCE
+
+
+//s60 Integration
+START RESOURCE ../data/Autolock_reg.rss
+DEPENDS autolock.rsg
+TARGETPATH /private/10003a3f/apps
+END
+
+//S60 Integration
+
+USERINCLUDE . ../inc ../CenRep
+
+APP_LAYER_SYSTEMINCLUDE
+SYSTEMINCLUDE ../../../inc
+
+LIBRARY euser.lib apparc.lib cone.lib eikcore.lib
+LIBRARY eikcoctl.lib avkon.lib
+LIBRARY activitymanager.lib
+LIBRARY apgrfx.lib
+LIBRARY ws32.lib secui.lib commonengine.lib
+LIBRARY etel.lib etelmm.lib eikdlg.lib
+LIBRARY sysutil.lib
+LIBRARY aknlayout.lib
+LIBRARY aknskins.lib
+LIBRARY centralrepository.lib
+LIBRARY cenrepnotifhandler.lib
+LIBRARY aknlayout2scalable.lib
+LIBRARY aknlayout2.lib
+LIBRARY featmgr.lib
+LIBRARY aknicon.lib
+LIBRARY fbscli.lib
+LIBRARY scpclient.lib
+LIBRARY gdi.lib
+LIBRARY aknnotify.lib
+LIBRARY customapi.lib
+LIBRARY keylockpolicyapi.lib
+
+
+SMPSAFE
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/securitydialogs/Autolock/group/Autolock_Icons_dc.mk Wed Sep 01 12:19:59 2010 +0100
@@ -0,0 +1,72 @@
+#
+# Copyright (c) 2004 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:
+#
+
+ifeq (WINS,$(findstring WINS, $(PLATFORM)))
+ZDIR=\epoc32\release\$(PLATFORM)\$(CFG)\Z
+else
+ZDIR=\epoc32\data\z
+endif
+
+# ----------------------------------------------------------------------------
+# TARGET FILES: Configure these
+# ----------------------------------------------------------------------------
+
+TARGETDIR=$(ZDIR)\resource\apps
+ICONTARGETFILENAME=$(TARGETDIR)\autolock.mif
+
+HEADERDIR=\epoc32\include
+HEADERFILENAME=$(HEADERDIR)\autolock.mbg
+
+do_nothing :
+ @rem do_nothing
+
+MAKMAKE : do_nothing
+
+BLD : do_nothing
+
+CLEAN : do_nothing
+
+LIB : do_nothing
+
+CLEANLIB : do_nothing
+
+# ----------------------------------------------------------------------------
+# RESOURCE COMMAND: Configure these.
+#
+# NOTE 1: DO NOT DEFINE MASK FILE NAMES! They are included automatically by
+# MifConv if the mask detph is defined.
+#
+# NOTE 2: Usually, source paths should not be included in the bitmap
+# definitions. MifConv searches for the icons in all icon directories in a
+# predefined order, which is currently \s60\icons, \s60\bitmaps2, \s60\bitmaps.
+# The directory \s60\icons is included in the search only if the feature flag
+# __SCALABLE_ICONS is defined.
+# ----------------------------------------------------------------------------
+
+RESOURCE :
+ mifconv $(ICONTARGETFILENAME) /h$(HEADERFILENAME) \
+ /c8,8 qgn_graf_phone_locked /c8,8 qgn_indi_button_end_call \
+
+
+FREEZE : do_nothing
+
+SAVESPACE : do_nothing
+
+RELEASABLES :
+ @echo $(HEADERFILENAME)&& \
+ @echo $(ICONTARGETFILENAME)
+
+FINAL : do_nothing
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/securitydialogs/Autolock/group/bld.inf Wed Sep 01 12:19:59 2010 +0100
@@ -0,0 +1,47 @@
+/*
+* Copyright (c) 2002 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: This file provides the information required for building
+* the whole autolock.
+*
+*/
+
+
+#include <platform_paths.hrh>
+PRJ_PLATFORMS
+
+DEFAULT
+
+PRJ_EXPORTS
+//Configuration tool migration
+../conf/autolock.confml MW_LAYER_CONFML(autolock.confml)
+../conf/autolock_102824AE.crml MW_LAYER_CRML(autolock_102824ae.crml)
+../conf/lock.confml MW_LAYER_CONFML(lock.confml)
+../conf/lock_10283322.crml MW_LAYER_CRML(lock_10283322.crml)
+
+../rom/Autolock.iby CORE_MW_LAYER_IBY_EXPORT_PATH(autolock.iby)
+../rom/AutolockResources.iby LANGUAGE_MW_LAYER_IBY_EXPORT_PATH(autolockresources.iby)
+../loc/autolock.loc MW_LAYER_LOC_EXPORT_PATH(autolock.loc)
+// taken from lockapp
+// ../PubSub/SecurityUIsPrivatePSKeys.h |../../../inc/SecurityUIsPrivatePSKeys.h
+
+PRJ_MMPFILES
+../group/Autolock.mmp
+
+PRJ_EXTENSIONS
+START EXTENSION s60/mifconv
+OPTION TARGETFILE autolock.mif
+OPTION HEADERFILE autolock.mbg
+OPTION SOURCES -c8,8 qgn_graf_phone_locked -c8,8 qgn_indi_button_end_call
+END
+
--- a/securitydialogs/Autolock/iconnotifier.svg Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,260 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-<svg
- xmlns:dc="http://purl.org/dc/elements/1.1/"
- xmlns:cc="http://web.resource.org/cc/"
- xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
- xmlns:svg="http://www.w3.org/2000/svg"
- xmlns="http://www.w3.org/2000/svg"
- xmlns:xlink="http://www.w3.org/1999/xlink"
- xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
- xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
- width="128"
- height="128"
- id="svg2606"
- sodipodi:version="0.32"
- inkscape:version="0.45+devel"
- version="1.0"
- sodipodi:docname="unknown.svg"
- inkscape:output_extension="org.inkscape.output.svg.inkscape"
- sodipodi:docbase="/home/david/Progetti/sandbox/svg/mimetypes">
- <defs
- id="defs2608">
- <linearGradient
- y2="0"
- x2="28"
- y1="57.5"
- x1="28"
- gradientUnits="userSpaceOnUse"
- id="linearGradient2973">
- <stop
- id="stop2975"
- style="stop-color:#2c72c7;stop-opacity:1;"
- offset="0" />
-
- <stop
- id="stop2977"
- style="stop-color:#0057ae;stop-opacity:1;"
- offset="1" />
-
- </linearGradient>
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient2973"
- id="linearGradient2086"
- x1="86.43512"
- y1="76.830994"
- x2="22.813417"
- y2="8.9537134"
- gradientUnits="userSpaceOnUse" />
- <linearGradient
- id="linearGradient10207">
- <stop
- style="stop-color:#a2a2a2;stop-opacity:1;"
- offset="0"
- id="stop10209" />
- <stop
- style="stop-color:#ffffff;stop-opacity:1;"
- offset="1"
- id="stop10211" />
- </linearGradient>
- <linearGradient
- id="XMLID_12_"
- gradientUnits="userSpaceOnUse"
- x1="96"
- y1="104"
- x2="88.000198"
- y2="96.000198">
- <stop
- offset="0"
- style="stop-color:#888A85"
- id="stop83" />
- <stop
- offset="0.0072"
- style="stop-color:#8C8E89"
- id="stop85" />
- <stop
- offset="0.0673"
- style="stop-color:#ABACA9"
- id="stop87" />
- <stop
- offset="0.1347"
- style="stop-color:#C5C6C4"
- id="stop89" />
- <stop
- offset="0.2652576"
- style="stop-color:#DBDBDA"
- id="stop91" />
- <stop
- offset="0.37646064"
- style="stop-color:#EBEBEB"
- id="stop93" />
- <stop
- offset="0.48740286"
- style="stop-color:#F7F7F6"
- id="stop95" />
- <stop
- offset="0.6324091"
- style="stop-color:#FDFDFD"
- id="stop97" />
- <stop
- offset="1"
- style="stop-color:#FFFFFF"
- id="stop99" />
- </linearGradient>
- <radialGradient
- id="XMLID_8_"
- cx="102"
- cy="112.3047"
- r="139.55859"
- gradientUnits="userSpaceOnUse">
- <stop
- offset="0"
- style="stop-color:#b7b8b9;stop-opacity:1;"
- id="stop41" />
- <stop
- offset="0.18851049"
- style="stop-color:#ECECEC"
- id="stop47" />
- <stop
- offset="0.25718147"
- style="stop-color:#FAFAFA"
- id="stop49" />
- <stop
- offset="0.30111277"
- style="stop-color:#FFFFFF"
- id="stop51" />
- <stop
- offset="0.5313"
- style="stop-color:#FAFAFA"
- id="stop53" />
- <stop
- offset="0.8449"
- style="stop-color:#EBECEC"
- id="stop55" />
- <stop
- offset="1"
- style="stop-color:#E1E2E3"
- id="stop57" />
- </radialGradient>
- <filter
- inkscape:collect="always"
- x="-0.19200002"
- width="1.3839999"
- y="-0.19199999"
- height="1.3839999"
- id="filter6697">
- <feGaussianBlur
- inkscape:collect="always"
- stdDeviation="1.9447689"
- id="feGaussianBlur6699" />
- </filter>
- <clipPath
- clipPathUnits="userSpaceOnUse"
- id="clipPath7084">
- <path
- style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
- d="M 72,88 L 40,120 L 32,120 L 32,80 L 72,80 L 72,88 z"
- id="path7086" />
- </clipPath>
- <radialGradient
- inkscape:collect="always"
- xlink:href="#XMLID_8_"
- id="radialGradient9437"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(1,0,0,0.9996653,2e-6,3.0160848e-3)"
- cx="102"
- cy="112.3047"
- r="139.55859" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient10207"
- id="linearGradient10213"
- x1="98.617439"
- y1="106.41443"
- x2="91.228737"
- y2="99.254974"
- gradientUnits="userSpaceOnUse" />
- <filter
- inkscape:collect="always"
- id="filter2770">
- <feGaussianBlur
- inkscape:collect="always"
- stdDeviation="2.0786429"
- id="feGaussianBlur2772" />
- </filter>
- </defs>
- <sodipodi:namedview
- id="base"
- pagecolor="#ffffff"
- bordercolor="#666666"
- borderopacity="1.0"
- inkscape:pageopacity="0.0"
- inkscape:pageshadow="2"
- inkscape:zoom="2.8284271"
- inkscape:cx="64"
- inkscape:cy="85.975621"
- inkscape:document-units="px"
- inkscape:current-layer="layer1"
- width="128px"
- height="128px"
- gridspacingx="4px"
- gridspacingy="4px"
- gridempspacing="2"
- showgrid="true"
- inkscape:grid-points="true"
- showguides="true"
- inkscape:guide-bbox="true"
- inkscape:window-width="1016"
- inkscape:window-height="692"
- inkscape:window-x="0"
- inkscape:window-y="0" />
- <metadata
- id="metadata2611">
- <rdf:RDF>
- <cc:Work
- rdf:about="">
- <dc:format>image/svg+xml</dc:format>
- <dc:type
- rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
- </cc:Work>
- </rdf:RDF>
- </metadata>
- <g
- inkscape:label="Livello 1"
- inkscape:groupmode="layer"
- id="layer1">
- <path
- style="opacity:0.5;fill:#000000;fill-opacity:1;filter:url(#filter2770)"
- d="M 16,8 L 16,120 C 16,120 79.15625,120 79.15625,120 L 79.1875,120 C 79.187503,120 91.09375,110.09375 96.59375,104.59375 C 102.09375,99.09375 112,87.1875 112,87.1875 L 112,87.15625 L 112,8 L 16,8 z"
- id="path7865"
- sodipodi:nodetypes="csccscccc"
- transform="matrix(1.0416667,0,0,1.0267857,-2.6666667,-1.2142891)" />
- <path
- style="fill:#ffffff;fill-opacity:1"
- d="M 16.000001,8 L 16,120 C 16,120 79.146418,120 79.146418,120 L 112,87.14642 L 112,8 L 16.000001,8 z"
- id="path34"
- sodipodi:nodetypes="cccccc" />
- <path
- style="fill:url(#radialGradient9437);fill-opacity:1"
- d="M 18.000002,9.0000034 C 17.449002,9.0000034 17.000002,9.4488534 17.000002,9.9996684 L 17.000002,117.96352 C 17.000002,118.51533 17.449002,118.96318 18.000002,118.96318 L 77.171999,118.96318 C 77.434999,118.96318 79.934679,119.08131 80.12068,118.89438 L 110.707,88.094202 C 110.894,87.907264 111,85.40942 111,85.146508 L 111,9.9996684 C 111,9.4488534 110.552,9.0000034 110,9.0000034 L 18.000002,9.0000034 z"
- id="path59"
- sodipodi:nodetypes="ccccccccccc" />
- <path
- d="M 41.879531,115.98249 C 41.879531,115.98249 66.18914,91.672876 66.18914,91.672876 C 66.18914,91.672876 56.836,94.586 46.586,94.586 C 46.586,104.836 41.879531,115.98249 41.879531,115.98249 z"
- id="path5540"
- style="opacity:0.4;fill:#000000;fill-opacity:1;filter:url(#filter6697)"
- sodipodi:nodetypes="cccc"
- clip-path="url(#clipPath7084)"
- transform="translate(40,0)" />
- <path
- style="fill:url(#linearGradient10213);fill-opacity:1"
- id="path14523"
- d="M 79.172,120 C 79.172,120 91.086,110.086 96.586,104.586 C 102.086,99.086 112,87.172 112,87.172 C 112,87.172 98.25,96 88,96 C 88,106.25 79.172,120 79.172,120 z"
- sodipodi:nodetypes="csccc" />
- <path
- id="text2076"
- d="M 62.842105,28 C 69.438566,28.00007 74.631544,30.070244 78.421053,34.210526 C 80.947326,37.017606 82.210485,40.386024 82.210528,44.315789 C 82.210485,49.157946 79.894696,54.596537 75.263159,60.631581 C 74.421018,61.684251 73.052597,63.368459 71.157895,65.684214 C 67.789444,69.89477 65.57892,74.807045 64.526316,80.421056 C 64.456114,80.912302 64.38594,81.40353 64.315789,81.89474 L 62.526315,81.89474 C 62.666642,76.491254 63.719273,71.508803 65.68421,66.947371 L 68.631579,60.210528 C 71.228037,54.245661 72.526282,48.771981 72.526316,43.789473 C 72.526282,39.228131 70.806986,35.684274 67.36842,33.157894 C 65.543832,31.824628 63.473658,31.157962 61.157895,31.157894 C 57.508752,31.157962 54.631562,32.280768 52.526315,34.526317 C 51.614021,35.579011 51.15788,36.631642 51.157894,37.684211 C 51.15788,38.315851 51.894722,39.543919 53.36842,41.368421 C 54.561386,42.982513 55.157877,44.350934 55.157894,45.473685 C 55.157877,47.649175 54.175422,49.017596 52.210526,49.578948 C 51.789459,49.719349 51.33332,49.789525 50.842103,49.789475 C 47.473673,49.789525 45.789465,47.614088 45.789472,43.26316 C 45.789465,37.929885 48.070165,33.789539 52.631576,30.842104 C 55.578928,28.947438 58.982435,28.00007 62.842105,28 M 63.578947,88.736839 C 65.894709,88.736854 67.578918,89.82458 68.631579,92.00001 C 69.052602,92.77194 69.263127,93.61404 69.263159,94.52631 C 69.263127,97.05264 68.070146,98.73684 65.68421,99.57894 C 64.98243,99.85965 64.245588,100 63.473684,100 C 60.87717,100 59.157873,98.8772 58.315788,96.63158 C 58.105243,96.00001 57.99998,95.33335 57.999998,94.63158 C 57.99998,91.96492 59.122785,90.14037 61.36842,89.157906 C 62.070151,88.877214 62.806993,88.736854 63.578947,88.736839"
- style="font-size:74.98017883px;font-style:normal;font-weight:normal;fill:url(#linearGradient2086);fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" />
- </g>
-</svg>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/securitydialogs/Autolock/inc/AutoKeyguardCenRepI.h Wed Sep 01 12:19:59 2010 +0100
@@ -0,0 +1,92 @@
+/*
+* Copyright (c) 2002 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:
+*
+*/
+
+
+#ifndef _AUTOKEYGUARDCENREPI_H__
+#define _AUTOKEYGUARDCENREPI_H__
+
+#include <e32std.h>
+#include <cenrepnotifyhandler.h> // link against CenRepNotifHandler.lib
+
+class CAutoKeyguardObserver;
+
+class CAutoKeyguardCenRepI : public CBase, public MCenRepNotifyHandlerCallback
+ {
+ public:
+ /**
+ * Creates instance of the CAutoKeyguardCenRepI class.
+ *
+ * @param aObserver (pointer to keyguard timeout observer)
+ * @return Returns the instance just created.
+ */
+ static CAutoKeyguardCenRepI* NewLC(CAutoKeyguardObserver* aObserver);
+ /**
+ * Creates instance of the CAutoKeyguardCenRepI class.
+ *
+ * @param aObserver (pointer to keyguard timeout observer)
+ * @return Returns the instance just created.
+ */
+ static CAutoKeyguardCenRepI* NewL(CAutoKeyguardObserver* aObserver);
+ /**
+ * Destructor.
+ */
+ ~CAutoKeyguardCenRepI();
+ public:
+ /**
+ * Current autokeyguard period
+ *
+ * @return TInt (curenst autokeyguard period in minutes)
+ */
+ TInt Timeout();
+ /**
+ * From MCenRepNotifyHandlerCallback. Handles period changed event. Called by CenRep.
+ *
+ * @param aId (The id of the changed setting)
+ * @param aNewValue (The new value of the changed setting)
+ * @return KErNone
+ */
+ void HandleNotifyInt(TUint32 aId, TInt aNewValue);
+
+ void HandleNotifyError(TUint32 aId, TInt error, CCenRepNotifyHandler* aHandler);
+
+ void HandleNotifyGeneric(TUint32 aId);
+
+ private:
+ /**
+ * C++ default constructor.
+ *
+ * @param aObserver (pointer to keyguard timeout observer)
+ */
+ CAutoKeyguardCenRepI(CAutoKeyguardObserver* aObserver);
+ /**
+ * Symbian OS constructor.
+ */
+ void ConstructL();
+ private:
+ /**
+ * Tells observer that keyguard period has been changed
+ */
+ void ResetInactivityTimeout();
+ private: // data
+ CAutoKeyguardObserver* iObserver; //not owned!
+ CCenRepNotifyHandler* iNotifyHandler;
+ CRepository* iSession;
+
+ };
+
+#endif
+// END OF FILE
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/securitydialogs/Autolock/inc/AutoKeyguardObserver.h Wed Sep 01 12:19:59 2010 +0100
@@ -0,0 +1,104 @@
+/*
+* Copyright (c) 2006 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:
+*
+*/
+
+
+#ifndef _AUTOKEYGUARDOBSERVER_H__
+#define _AUTOKEYGUARDOBSERVER_H__
+
+#include <e32base.h>
+#include <aknappui.h>
+#include <e32property.h>
+
+class CUserActivityManager;
+class CAutoKeyguardCenRepI;
+class MAutolockAppUiInterface;
+
+class CAutoKeyguardObserver : public CBase
+ {
+ public:
+ /**
+ * Creates instance of the CAutoKeyguardObserver class.
+ *
+ * @return Returns the instance just created.
+ */
+ static CAutoKeyguardObserver* NewL( MAutolockAppUiInterface* aAppUiI );
+ /**
+ * Symbian OS constructor.
+ */
+ void ConstructL( CAutoKeyguardObserver* aObserver );
+ /**
+ * Destructor.
+ */
+ ~CAutoKeyguardObserver();
+ public:
+ /**
+ * Gets new autokeyguard period and starts monitoring user activity
+ */
+ void ResetInactivityTimeout();
+ /**
+ * Activates keyguard
+ */
+ void LockKeysL();
+ private:
+ /**
+ * C++ default constructor.
+ */
+ CAutoKeyguardObserver( MAutolockAppUiInterface* aAppUiI );
+ private:
+ /**
+ * Return current autokeyguard period
+ *
+ * @return TInt (autokeyguard period in minutes)
+ */
+ TInt AutoKeyguardTimeout();
+ /**
+ * Handles Active event. Called by ActivityManager
+ *
+ * @param aPtr
+ * @return KErNone
+ */
+ static TInt HandleActiveEventL(TAny* aPtr);
+ /**
+ * Handles Inactive event. Called by ActivityManager
+ *
+ * @param aPtr (pointer to CAutoKeyguardObserver)
+ * @return KErNone
+ */
+ static TInt HandleInactiveEventL(TAny* aPtr);
+ /**
+ * Starts monitoring user activity
+ */
+ void StartActivityMonitoringL();
+ /**
+ * Stop monitoring user activity.
+ */
+ void StopActivityMonitoring();
+ /**
+ * Initializes activymanager
+ */
+ void SetActivityManagerL();
+ /**
+ * UnInitializes activymanager
+ */
+ void CancelActivityManager();
+ private: //data
+ CUserActivityManager* iActivityManager;
+ CAutoKeyguardCenRepI* iCenRepI;
+ MAutolockAppUiInterface* iAppUiI;
+ };
+#endif
+// END OF FILE
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/securitydialogs/Autolock/inc/AutoLockCenRepI.h Wed Sep 01 12:19:59 2010 +0100
@@ -0,0 +1,105 @@
+/*
+* Copyright (c) 2002 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:
+*
+*/
+
+
+#ifndef _AUTOLOCKCENREPI_H__
+#define _AUTOLOCKCENREPI_H__
+
+#include <e32std.h>
+#include <cenrepnotifyhandler.h> // link against CenRepNotifHandler.lib
+#include "AutolockAppUiPS.h"
+
+
+class CAutolockCenRepI : public CBase, public MCenRepNotifyHandlerCallback
+ {
+ public:
+ /**
+ * Creates instance of the CAutolockShareDataI class.
+ *
+ * @param aAppUi (pointer to autolock appui)
+ * @return Returns the instance just created.
+ */
+ static CAutolockCenRepI* NewLC(CAutolockAppUi* aAppUi);
+ /**
+ * Creates instance of the CAutolockShareDataI class.
+ *
+ * @param aAppUi (pointer to autolock appui)
+ * @return Returns the instance just created.
+ */
+ static CAutolockCenRepI* NewL(CAutolockAppUi* aAppUi);
+ /**
+ * Destructor.
+ */
+ ~CAutolockCenRepI();
+ public:
+ /**
+ * Currenst autolock period
+ *
+ * @return TInt (curenst autolock period in minutes)
+ */
+ TInt Timeout();
+ /**
+ * Sets device lock value in SharedData
+ *
+ * @param: aLocked (decice lock on/off)
+ */
+ void SetLockedL(TBool aLockValue);
+ /**
+ * From MCenRepNotifyHandlerCallback. Handles period changed event. Called by CenRep.
+ *
+ * @param aId (The id of the changed setting)
+ * @param aNewValue (The new value of the changed setting)
+ * @return KErNone
+ */
+ void HandleNotifyInt(TUint32 aId, TInt aNewValue);
+
+ void HandleNotifyError(TUint32 aId, TInt error, CCenRepNotifyHandler* aHandler);
+
+ void HandleNotifyGeneric(TUint32 aId);
+
+ private:
+ /**
+ * C++ default constructor.
+ *
+ * @param aAppUi (pointer to autolock appui)
+ */
+ CAutolockCenRepI(CAutolockAppUi* aAppUi);
+ /**
+ * Symbian OS constructor.
+ */
+ void ConstructL();
+ private:
+ /**
+ * Handles period changed event. Called by CSharedDataInteger
+ *
+ * @param aPtr (pointer to CAutolockShareDataI)
+ * @return KErNone
+ */
+ TInt HandleTimeoutChangedL();
+ /**
+ * Tells model that autolock period has been changed
+ */
+ void ResetInactivityTimeout();
+ private: // data
+ CAutolockAppUi* iAppUi; //not owned!
+ CCenRepNotifyHandler* iNotifyHandler;
+ CRepository* iSession;
+
+ };
+
+#endif
+// END OF FILE
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/securitydialogs/Autolock/inc/AutoLockLockObserverPS.h Wed Sep 01 12:19:59 2010 +0100
@@ -0,0 +1,73 @@
+/*
+* Copyright (c) 2002 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:
+* Obsererver for Set System Locked event
+*
+*
+*/
+
+
+#ifndef __AUTOLOCKLOCKOBSERVERPS_H
+#define __AUTOLOCKLOCKOBSERVERPS_H
+
+#include <e32svr.h>
+#include <e32property.h>
+#include "AutolockAppUiPS.h"
+
+class CLockObserver: public CActive
+ {
+ public:
+ /**
+ * Creates instance of the CLockObserver class.
+ *
+ * @param aAppUi (pointer to autolock appui)
+ * @return Returns the instance just created.
+ */
+ static CLockObserver* NewL(CAutolockAppUi* aAppUi);
+ /**
+ * Destructor.
+ */
+ ~CLockObserver();
+ private:
+ /**
+ * Starts asynchronic listening KUidAutolockStatus event
+ *
+ * @return KErrNone: if no errors
+ * @return KErrInUse: if already listening
+ */
+ TInt Start();
+ private: // constructors
+ /**
+ * C++ default constructor.
+ *
+ * @param aAppUi (pointer to autolock appui)
+ */
+ CLockObserver(CAutolockAppUi* aAppUi);
+ /**
+ * Symbian OS constructor.
+ */
+ void ConstructL();
+ private: // from CActive
+ /** @see CActive::RunL() */
+ void RunL();
+ /** @see CActive::DoCancel() */
+ void DoCancel();
+ private: // data
+ CAutolockAppUi* iAppUi; //not owned!
+ RProperty iProperty;
+
+ };
+
+#endif
+// End of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/securitydialogs/Autolock/inc/AutoLockModelPS.h Wed Sep 01 12:19:59 2010 +0100
@@ -0,0 +1,117 @@
+/*
+* Copyright (c) 2002 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:
+*
+*/
+
+
+#ifndef _AUTOLOCKMODELPS_H__
+#define _AUTOLOCKMODELPS_H__
+
+#include <e32base.h>
+#include <aknappui.h>
+#include <e32property.h>
+
+class CUserActivityManager;
+class CAutolockCenRepI;
+class CAutolockAppUi;
+class CLockObserver;
+
+class CAutoLockModel : public CBase
+ {
+ public:
+ /**
+ * Creates instance of the CAutoLockModel class.
+ *
+ * @param aAppUi (pointer to autolock appui)
+ * @return Returns the instance just created.
+ */
+ static CAutoLockModel* NewL(CAutolockAppUi* aAppUi, TBool aLocked );
+ /**
+ * Symbian OS constructor.
+ */
+ void ConstructL( TBool aLocked );
+ /**
+ * Destructor.
+ */
+ ~CAutoLockModel();
+ public:
+ /**
+ * Gets new autolock period and starts monitoring user activity
+ */
+ void ResetInactivityTimeout();
+ /**
+ * Brings autolock app to foreground and locks the system
+ */
+ void LockSystemL(TInt aAutolockState = 0);
+ /**
+ * Sets device lock value in SharedData and in SystemAgent
+ *
+ * @param: aLocked (decice lock on/off)
+ */
+ void SetLockedL(TInt aAutolockState = 0);
+ private:
+ /**
+ * C++ default constructor.
+ *
+ * @param aAppUi (pointer to autolock appui)
+ */
+ CAutoLockModel(CAutolockAppUi* aAppUi);
+ private:
+ /**
+ * Return current autolock period
+ *
+ * @return TInt (autolock period in minutes)
+ */
+ TInt AutoLockTimeout();
+ /**
+ * Handles Active event. Called by ActivityManager
+ *
+ * @param aPtr
+ * @return KErNone
+ */
+ static TInt HandleActiveEventL(TAny* aPtr);
+ /**
+ * Handles Inactive event. Called by ActivityManager
+ *
+ * @param aPtr (pointer to CAutoLockModel)
+ * @return KErNone
+ */
+ static TInt HandleInactiveEventL(TAny* aPtr);
+ /**
+ * Starts monitoring user activity
+ */
+ void StartActivityMonitoringL();
+ /**
+ * Stop monitoring user activity.
+ */
+ void StopActivityMonitoring();
+ /**
+ * Initializes activymanager
+ */
+ void SetActivityManagerL();
+ /**
+ * UnInitializes activymanager
+ */
+ void CancelActivityManager();
+ private: //data
+ CUserActivityManager* iActivityManager;
+ CAutolockAppUi* iAppUi; //not owned!
+ CAutolockCenRepI* iCenRepI;
+ CLockObserver* iLockObserver;
+ TBool iMonitoring;
+ RProperty iProperty;
+ };
+#endif
+// END OF FILE
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/securitydialogs/Autolock/inc/AutoLockValueObserverPS.h Wed Sep 01 12:19:59 2010 +0100
@@ -0,0 +1,77 @@
+/*
+* Copyright (c) 2002 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:
+* Observer for phone events. Used to deactive/active the side-key
+*
+*
+*/
+
+
+#ifndef __AUTOLOCKVALUEOBSERVERPS_H
+#define __AUTOLOCKVALUEOBSERVERPS_H
+
+#include <e32svr.h>
+#include <e32property.h>
+
+class CAutolockAppUi;
+
+class CValueObserver: public CActive
+ {
+ public:
+ /**
+ * Creates instance of the CValueObserver class.
+ *
+ * @param aAppUi (pointer to autolock appui)
+ * @return Returns the instance just created.
+ */
+ static CValueObserver* NewL(CAutolockAppUi* aAppUi);
+ /**
+ * Destructor.
+ */
+ ~CValueObserver();
+ public:
+ /**
+ * Starts asynchronic listening KUidCurrentCall event
+ *
+ * @return KErrNone: if no errors
+ * @return KErrInUse: if already listening
+ */
+ TInt Start();
+ /**
+ * Stops asynchronic listening KUidAutolockStatus event
+ */
+ void Stop();
+ private: // constructors
+ /**
+ * C++ default constructor.
+ *
+ * @param aAppUi (pointer to autolock appui)
+ */
+ CValueObserver(CAutolockAppUi* aAppUi);
+ /**
+ * Symbian OS constructor.
+ */
+ void ConstructL();
+ private: // from CActive
+ /** @see CActive::RunL() */
+ void RunL();
+ /** @see CActive::DoCancel() */
+ void DoCancel();
+ private: // data
+ CAutolockAppUi* iAppUi; //not owned!
+ RProperty iProperty;
+ };
+
+#endif
+// End of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/securitydialogs/Autolock/inc/AutolockApp.h Wed Sep 01 12:19:59 2010 +0100
@@ -0,0 +1,58 @@
+/*
+* Copyright (c) 2002 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:
+* Declares main application class.
+*
+*/
+
+
+#ifndef AUTOLOCKAPP_H
+#define AUTOLOCKAPP_H
+
+// INCLUDES
+#include <aknapp.h>
+
+// CONSTANTS
+// UID of the application
+const TUid KUidAutolock = { 0x100059B5 };
+
+// CLASS DECLARATION
+
+/**
+* CAutolockApp application class.
+* Provides factory to create concrete document object.
+*
+*/
+class CAutolockApp : public CAknApplication
+ {
+
+ private:
+
+ /**
+ * From CApaApplication, creates CAutolockDocument document object.
+ * @return A pointer to the created document object.
+ */
+ CApaDocument* CreateDocumentL();
+
+ /**
+ * From CApaApplication, returns application's UID (KUidAutolock).
+ * @return The value of KUidAutolock.
+ */
+ TUid AppDllUid() const;
+ };
+
+#endif
+
+// End of File
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/securitydialogs/Autolock/inc/AutolockAppUiInterface.h Wed Sep 01 12:19:59 2010 +0100
@@ -0,0 +1,30 @@
+/*
+* Copyright (c) 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:
+* Interface to App Ui from helper classes
+*
+*/
+#ifndef AUTOLOCKAPPUIINTERFACE_H
+#define AUTOLOCKAPPUIINTERFACE_H
+
+class MAutolockAppUiInterface
+ {
+ public:
+ virtual TInt DeviceLockQueryStatus() = 0;
+ virtual TInt DeviceLockStatus() = 0;
+ virtual void CancelDeviceLockQuery() = 0;
+ virtual void ForceOrientation(TInt value) = 0;
+ };
+
+#endif // AUTOLOCKAPPUIINTERFACE_H
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/securitydialogs/Autolock/inc/AutolockAppUiPS.h Wed Sep 01 12:19:59 2010 +0100
@@ -0,0 +1,272 @@
+/*
+* Copyright (c) 2002 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:
+* Declares UI class for application.
+*
+*/
+
+
+#ifndef AUTOLOCKAPPUIPS_H
+#define AUTOLOCKAPPUIPS_H
+
+// INCLUDES
+#include <e32std.h>
+#include <aknappui.h>
+#include <etelmm.h>
+#include <aknViewAppUi.h>
+#include <AknEcs.h>
+#include <aknnotedialog.h>
+#include <AknIncallBubbleNotify.h>
+#include <e32property.h>
+#include <rmmcustomapi.h>
+#include "AutolockWait.h"
+#include "AutoKeyguardObserver.h"
+
+#include "AutolockGripStatusObserver.h"
+#include "AutolockFpsStatusObserver.h"
+#include "AutolockAppUiInterface.h"
+
+// FORWARD DECLARATIONS
+class CAutolockContainer;
+class CAutoLockModel;
+class CValueObserver;
+
+// CONSTANTS
+const TUid KAutoLockViewId = {101}; // CDMA StartUp needs this UID.
+
+// CLASS DECLARATIONS
+
+/**
+* part of emergency call handling when telephony+devicelock is active
+* this solution is meant only for 3.1 and 3.2
+*CEcsNote
+*It defines security note used in security view.
+*/
+class CEcsNote : public CAknNoteDialog
+ {
+ public: // Constructors and destructors
+ /**
+ * C++ constructor.
+ */
+ CEcsNote();
+ public: // new
+ /**
+ * Constructs sleeping note
+ */
+ void ConstructSleepingNoteL(TInt aResourceId);
+ /**
+ * Shows slpeeping note
+ */
+ TInt ShowNote();
+ /**
+ * Hides sleeping note
+ */
+ void SleepNote();
+
+ TKeyResponse OfferKeyEventL(const TKeyEvent& aKeyEvent,
+ TEventCode aType);
+
+ /**
+ * API to set the emergency number to be displayed
+ *
+ * aMatchedNumber text to display (e.g. "112" )
+ */
+ void SetEmergencyNumber( const TDesC& aMatchedNumber );
+
+ public:
+ TBool iNoteOnScreen;
+ };
+
+
+/**
+* Application UI class.
+* Provides support for the following features:
+* - UIKON control architecture
+*
+*/
+class CAutolockAppUi : public CAknViewAppUi, public MAknEcsObserver,
+ public MAutolockAppUiInterface,
+ public MAutolockFpsStatusObserver
+ {
+ public: // // Constructors and destructor
+
+ /**
+ * Symbian OS default constructor.
+ */
+ void ConstructL();
+
+ /**
+ * Destructor.
+ */
+ ~CAutolockAppUi();
+
+ /**
+ * From MAutolockAppUiInterface
+ */
+ TBool DeviceLockQueryStatus();
+
+ TBool DeviceLockStatus();
+
+ void CancelDeviceLockQuery();
+ void ForceOrientation(TInt value);
+ /**
+ * From MAutolockFpsStatusObserver
+ */
+ TBool DeviceFpsLock(TInt iStatus);
+
+ public: // New functions
+ /**
+ * Activates previous app
+ */
+ void SwitchToPreviousAppL();
+ /**
+ * Activates device lock view
+ */
+ void BringAppToForegroundL();
+ /**
+ * Pointer to model
+ *
+ * @return CAutoLockModel*
+ */
+ inline CAutoLockModel* Model() const;
+ /**
+ * Locks voice-key and app-key
+ */
+ void LockKeysL();
+ /**
+ * UnLocks voice-key and app-key
+ */
+ void UnLockKeys();
+ /**
+ * Locks voice-key
+ */
+ void LockSideKeyL();
+ /**
+ * UnLocks voice-key
+ */
+ void UnLockSideKey();
+ /**
+ * Returns ETrue if system is locked.
+ */
+ inline TBool Locked() { return (iSideKey2 != 0); }
+ /**
+ * Checks whether PUK1 dialog is active.
+ */
+ TBool IsPinBlocked();
+ /**
+ * Checks whether the phone has done hidden reset.
+ */
+ TBool HiddenReset();
+ void EnableWGListChangeEventListening();
+ void DisableWGListChangeEventListening();
+
+ protected:
+ /**
+ * From CEikAppUi, handles the TARM unlock message, other messages
+ * are propagated to the superclass handler.
+ * @param aClientHandleOfTargetWindowGroup The window group that the message was sent to.
+ * @param aMessageUid The message UID.
+ * @param aMessageParameters The message parameters
+ * @return TMessageResponse EMessageHandled if the message was the TARM unlock message,
+ * otherwise the return value from the superclass handler.
+ */
+ MCoeMessageObserver::TMessageResponse HandleMessageL(
+ TUint32 aClientHandleOfTargetWindowGroup,
+ TUid aMessageUid,
+ const TDesC8& aMessageParameters );
+
+
+ private:
+ // From MEikMenuObserver
+ void DynInitMenuPaneL(TInt aResourceId,CEikMenuPane* aMenuPane);
+
+ // from CCoeAppUi
+ void HandleForegroundEventL(TBool aForeground);
+ /**
+ * From CAknAppUi, called when screen layout changes
+ */
+ void HandleScreenDeviceChangedL();
+ private:
+ /**
+ * From CEikAppUi, takes care of command handling.
+ * @param aCommand command to be handled
+ */
+ void HandleCommandL(TInt aCommand);
+
+ /**
+ * From CEikAppUi, handles key events.
+ * @param aKeyEvent Event to handled.
+ * @param aType Type of the key event.
+ * @return Reponse code (EKeyWasConsumed, EKeyWasNotConsumed).
+ */
+ virtual TKeyResponse HandleKeyEventL(
+ const TKeyEvent& aKeyEvent,TEventCode aType);
+ virtual void HandlePointerEventL(const TPointerEvent& aPointerEvent);
+ private:
+ /**
+ * From AknViewAppUi. Handles pointer-initiated view switch.
+ * @param aEvent Window server event.
+ * @param aDestination Pointer to the control which the event is targeted to.
+ */
+ void HandleWsEventL( const TWsEvent& aEvent, CCoeControl* aDestination );
+
+ /**
+ * Used for communication with SysAp
+ * @param aMessage message enumeration defined in eikon.hrh
+ */
+ void SendMessageToSysAp(TInt aMessage);
+
+ /**
+ * From MAknEcsObserver
+ * part of emergency call handling when telephony+devicelock is active
+ * this solution is meant only for 3.1 and 3.2
+ * handles emergency call
+ */
+ virtual void HandleEcsEvent( CAknEcsDetector* aEcsDetector, CAknEcsDetector::TState aState );
+
+ TBool TarmState();
+ void HandleWindowGroupListChange();
+ private: //Data
+ CAutoLockModel* iModel;
+ RTelServer iServer;
+ RMobilePhone iPhone;
+ TInt iAppKey;
+ TInt iSideKey1;
+ TInt iSideKey2;
+ CValueObserver* iPhoneObserver;
+ TBool iLocked;
+ TBool iDeviceLockQueryStatus;
+ // Idle Incall Bubbles.
+ CAknIncallBubble* iIncallBubble;
+ CAutoKeyguardObserver* iKeyguardObserver;
+ CAutolockGripStatusObserver* iGripStatusObserver;
+ CAutolockFpsStatusObserver* iFpsStatusObserver;
+ RMmCustomAPI iCustomPhone;
+
+ // part of emergency call handling when t//iEmergencySupportReadyelephony+devicelock is active
+ // this solution is meant only for 3.1 and 3.2
+ CAknEcsDetector* iEcsDetector;
+ CEcsNote* iEcsNote;
+ TBool iEmergencySupportReady;
+ CWait* iWait;
+ TRect aCallButtonRect;
+ TInt iGotEventDownDuringCall;
+ };
+
+ inline CAutoLockModel* CAutolockAppUi::Model() const
+ {return iModel;}
+
+#endif
+
+// End of File
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/securitydialogs/Autolock/inc/AutolockContainer.h Wed Sep 01 12:19:59 2010 +0100
@@ -0,0 +1,101 @@
+/*
+* Copyright (c) 2002 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:
+* Declares container control for application.
+*
+*/
+
+
+#ifndef AUTOLOCKCONTAINER_H
+#define AUTOLOCKCONTAINER_H
+
+// INCLUDES
+#include <coecntrl.h>
+#include <eikimage.h>
+#include <eiklabel.h>
+#include <AknSkinnableClock.h>
+
+// FORWARD DECLARATIONS
+
+class CAknsLayeredBackgroundControlContext;
+
+// CLASS DECLARATION
+
+/**
+* CAutolockContainer container control class.
+*
+*/
+class CAutolockContainer : public CCoeControl, MCoeControlObserver
+ {
+ public: // Constructors and destructor
+
+ /**
+ * Symbian OS default constructor.
+ * @param aRect Frame rectangle for container.
+ */
+ void ConstructL(const TRect& aRect);
+
+ /**
+ * Destructor.
+ */
+ ~CAutolockContainer();
+
+ public: // Functions from base classes
+ /**
+ * From CCoeControl, MopSupplyObject
+ */
+ TTypeUid::Ptr MopSupplyObject( TTypeUid aId );
+ void GiveCoords( TRect& aRect );
+
+ private: // Functions from base classes
+
+ /**
+ * From CoeControl,SizeChanged.
+ */
+ void SizeChanged();
+
+ /**
+ * From CoeControl,CountComponentControls.
+ */
+ TInt CountComponentControls() const;
+
+ /**
+ * From CCoeControl,ComponentControl.
+ */
+ CCoeControl* ComponentControl(TInt aIndex) const;
+
+ /**
+ * From CCoeControl,Draw.
+ */
+ void Draw(const TRect& aRect) const;
+
+ // event handling section
+ // e.g Listbox events
+ void HandleControlEventL(CCoeControl* aControl,TCoeEvent aEventType);
+
+ private: //data
+ CEikImage* iEikBitmap;
+ CFbsBitmap* iBitmap;
+ CFbsBitmap* iMask;
+ CEikImage* iEikBitmapCall;
+ CFbsBitmap* iBitmapCall;
+ CFbsBitmap* iMaskCall;
+ // Owned background context.
+ CAknsLayeredBackgroundControlContext* iBgContext;
+
+ };
+
+#endif
+
+// End of File
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/securitydialogs/Autolock/inc/AutolockDocument.h Wed Sep 01 12:19:59 2010 +0100
@@ -0,0 +1,75 @@
+/*
+* Copyright (c) 2002 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:
+* Declares document for application.
+*
+*/
+
+
+#ifndef AUTOLOCKDOCUMENT_H
+#define AUTOLOCKDOCUMENT_H
+
+// INCLUDES
+#include <AknDoc.h>
+// CONSTANTS
+
+// FORWARD DECLARATIONS
+class CEikAppUi;
+
+// CLASS DECLARATION
+
+/**
+* CAutolockDocument application class.
+*/
+class CAutolockDocument : public CAknDocument
+ {
+ public: // Constructors and destructor
+ /**
+ * Two-phased constructor.
+ */
+ static CAutolockDocument* NewL(CEikApplication& aApp);
+
+ /**
+ * Destructor.
+ */
+ virtual ~CAutolockDocument();
+
+ public: // From CEikDocument
+ /**
+ * Updates task name --> Sets autolock hidden
+ *
+ * @param aWgName CApaWindowGroupName*
+ */
+ void UpdateTaskNameL( CApaWindowGroupName* aWgName );
+
+ private:
+
+ /**
+ * Symbian OS default constructor.
+ */
+ CAutolockDocument(CEikApplication& aApp): CAknDocument(aApp) { }
+ void ConstructL();
+
+ private:
+
+ /**
+ * From CEikDocument, create CAutolockAppUi "App UI" object.
+ */
+ CEikAppUi* CreateAppUiL();
+ };
+
+#endif
+
+// End of File
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/securitydialogs/Autolock/inc/AutolockFpsStatusObserver.h Wed Sep 01 12:19:59 2010 +0100
@@ -0,0 +1,60 @@
+/*
+* Copyright (c) 2002 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:
+* Declares UI class for application.
+*
+*/
+
+#ifndef AUTOLOCKFPSOBSERVER_H_
+#define AUTOLOCKFPSOBSERVER_H_
+
+#include <e32base.h>
+#include <e32property.h>
+#include <w32std.h>
+#include <hwrmdomainpskeys.h>
+
+
+class MAutolockFpsStatusObserver
+ {
+ public:
+ /**
+ * Implement this method to be notified when Fps status
+ * changes.
+ */
+ IMPORT_C virtual TInt DeviceFpsLock(TInt iStatus) = 0;
+ IMPORT_C virtual TInt DeviceLockStatus() = 0;
+ };
+
+class CAutolockFpsStatusObserver : public CActive
+ {
+ public:
+ IMPORT_C static CAutolockFpsStatusObserver* NewL( MAutolockFpsStatusObserver* aObserver, RWsSession& aSession );
+
+ void RunL();
+ void DoCancel();
+ ~CAutolockFpsStatusObserver();
+
+ private:
+ void ConstructL( MAutolockFpsStatusObserver* aObserver );
+ CAutolockFpsStatusObserver( RWsSession& aSession );
+ void FpsStatusChangedL( TInt aFpsStatus );
+
+ private:
+ MAutolockFpsStatusObserver* iObserver;
+ RProperty iFpsStatus;
+ RWsSession& iSession;
+ };
+
+
+#endif
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/securitydialogs/Autolock/inc/AutolockGripStatusObserver.h Wed Sep 01 12:19:59 2010 +0100
@@ -0,0 +1,50 @@
+/*
+* Copyright (c) 2002 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:
+* Declares UI class for application.
+*
+*/
+
+#ifndef AUTOLOCKGRIPOBSERVER_H_
+#define AUTOLOCKGRIPOBSERVER_H_
+
+#include <e32base.h>
+#include <e32property.h>
+#include <w32std.h>
+#include <hwrmdomainpskeys.h>
+
+class MAutolockAppUiInterface;
+
+class CAutolockGripStatusObserver : public CActive
+ {
+ public:
+ IMPORT_C static CAutolockGripStatusObserver* NewL( MAutolockAppUiInterface* aObserver, RWsSession& aSession );
+
+ void RunL();
+ void DoCancel();
+ ~CAutolockGripStatusObserver();
+
+ private:
+ void ConstructL( MAutolockAppUiInterface* aObserver );
+ CAutolockGripStatusObserver( RWsSession& aSession );
+ void GripStatusChangedL( TInt aGripStatus );
+
+ private:
+ MAutolockAppUiInterface* iObserver;
+ RProperty iGripStatus;
+ RWsSession& iSession;
+ };
+
+
+#endif
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/securitydialogs/Autolock/inc/AutolockView.h Wed Sep 01 12:19:59 2010 +0100
@@ -0,0 +1,75 @@
+/*
+* Copyright (c) 2002 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:
+*
+*/
+
+
+#ifndef __AUTOLOCKVIEW_H__
+#define __AUTOLOCKVIEW_H__
+
+#include <aknview.h>
+#include "AutolockContainer.h"
+
+class CAutolockView : public CAknView
+ {
+ public:
+ /**
+ * Symbian OS constructor.
+ */
+ void ConstructL();
+ /**
+ * Destructor.
+ */
+ ~CAutolockView();
+ public: // from CAknView
+ /**
+ * Returns view id.
+ * @return An unsigned integer (view id).
+ */
+ TUid Id() const;
+ /**
+ * Handles commands.
+ * @param aCommand Command to be handled.
+ * @return void.
+ */
+ void HandleCommandL(TInt aCommand);
+ /**
+ * Handles statuspane changes
+ * @return void.
+ */
+ void HandleStatusPaneSizeChange();
+ /**
+ * Handles screen layout changes
+ */
+ void ScreenDeviceChanged();
+ void MakeVisible(TBool aVisibility);
+ void HandleCall(TInt aCommand, TRect &aRect );
+ private: // from CAknView
+ /**
+ * Activates the view.
+ * @param aPrevViewId ID of previous view
+ * @param aCustomMessageId customized message ID
+ * @param aCustomMessage sutomized message payload
+ */
+ void DoActivateL(const TVwsViewId& aPrevViewId,TUid aCustomMessageId,const TDesC8& aCustomMessage);
+ /**
+ * Deactivates view
+ */
+ void DoDeactivate();
+ private: // data
+ CAutolockContainer* iView;
+ };
+#endif
+// end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/securitydialogs/Autolock/inc/AutolockWait.h Wed Sep 01 12:19:59 2010 +0100
@@ -0,0 +1,97 @@
+/*
+* Copyright (c) 2002 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:
+*
+*
+*/
+
+
+#ifndef __AUTOLOCKWAIT_H
+#define __AUTOLOCKWAIT_H
+
+// INCLUDES
+
+#include <e32base.h>
+#include <eikappui.h>
+#include <coecntrl.h>
+
+// CLASS DEFINITIONS
+class CWait : public CActive
+ {
+ public:
+ /**
+ * Creates instance of the CWait class.
+ *
+ * @return Returns the instance just created.
+ */
+ static CWait* NewL();
+ /**
+ * Destructor.
+ */
+ ~CWait();
+ public:
+ /**
+ * Starts waiting for aReqStatus.
+ */
+ TInt WaitForRequestL();
+ public:
+ /**
+ * Sets active request type.
+ */
+ void SetRequestType(TInt aRequestType);
+ /**
+ * Gets active request type.
+ */
+ TInt GetRequestType();
+ private:
+ /**
+ * C++ default constructor.
+ */
+ CWait();
+ /**
+ * Symbian OS constructor.
+ */
+ void ConstructL();
+ private: // from CActive
+ /** @see CActive::RunL() */
+ void RunL();
+ /** @see CActive::DoCancel() */
+ void DoCancel();
+ RTimer iTimer;
+ CActiveSchedulerWait iWait;
+ // Used if there is a need to cancel an active request;
+ // namely in situations where destructor is called when Wait
+ // is active.
+ TInt iRequestType;
+ };
+
+
+// CWaitAbsorbingControl, absorbs all the key presses.
+class CWaitAbsorbingControl : public CCoeControl
+ {
+ public:
+ static CWaitAbsorbingControl* NewLC();
+ virtual ~CWaitAbsorbingControl();
+ private:
+ virtual TKeyResponse OfferKeyEventL(const TKeyEvent& /*aKeyEvent*/,TEventCode /*aType*/);
+ private:
+ CWaitAbsorbingControl();
+ void ConstructL();
+ private: // Data
+ CEikAppUi* iAppUi;
+ };
+
+#endif
+
+// End of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/securitydialogs/Autolock/inc/autolock.hrh Wed Sep 01 12:19:59 2010 +0100
@@ -0,0 +1,30 @@
+/*
+* Copyright (c) 2002 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:
+* This file contains declarations for resources of Autolock.
+* The file can be included in C++ or resource file.
+*
+*/
+
+#ifndef AUTOLOCK_HRH
+#define AUTOLOCK_HRH
+
+enum TAutoLockKeys
+ {
+ ESecUiCmdUnlock = 300
+ };
+#endif // AUTOLOCK
+
+
+
--- a/securitydialogs/Autolock/indicatorplugin/qmakepluginstubs/indicatorautolockplugin.qtplugin Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-This file is a Qt plugin stub file. The real Qt plugin is located in /sys/bin. Created:2010-05-17T09:17:32
--- a/securitydialogs/Autolock/indicatorplugin/rom/indicatorautolockplugin.iby Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,25 +0,0 @@
-/*
-* Copyright (c) 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: Keylock indicator
-*
-*/
-
-#ifndef INDICATORAUTOLOCKPLUGIN_IBY
-#define INDICATORAUTOLOCKPLUGIN_IBY
-
-file=ABI_DIR\UREL\indicatorautolockplugin.dll SHARED_LIB_DIR\indicatorautolockplugin.dll UNPAGED
-data=\epoc32\data\z\resource\plugins\indicators\indicatorautolockplugin.qtplugin \resource\plugins\indicators\indicatorautolockplugin.qtplugin
-
-#endif // INDICATORAUTOLOCKPLUGIN_IBY
-
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/securitydialogs/Autolock/loc/autolock.loc Wed Sep 01 12:19:59 2010 +0100
@@ -0,0 +1,36 @@
+/*
+* Copyright (c) 2002 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: This is a localisation file for Autolock
+*
+*/
+
+
+
+// LOCALISATION STRINGS
+
+//d:Title pane text in System Lock View.(Phone is in locked mode)
+//l:title_pane_t2/opt9
+//
+#define qtn_set_sec_title_locked "Locked"
+
+//d:Left Softkey text in System Lock View.
+//l:control_pane_t1/opt7
+//
+#define qtn_set_sec_unlock_system "Unlock"
+
+
+// End of File
+
+
+
--- a/securitydialogs/Autolock/qtg_large_device_lock.svg Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,140 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1 Tiny//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-tiny.dtd">
-<svg baseProfile="tiny" height="60" viewBox="0 0 60 60" width="60" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
-<g>
-<rect fill="none" height="60" width="60"/>
-<linearGradient gradientUnits="userSpaceOnUse" id="SVGID_1" x1="30" x2="30" y1="4.26" y2="55.61">
-<stop offset="0" stop-color="#D1D7D9"/>
-<stop offset="0.07" stop-color="#D1D7D9"/>
-<stop offset="0.26" stop-color="#BDC2C4"/>
-<stop offset="0.66" stop-color="#949DA1"/>
-<stop offset="0.96" stop-color="#ADB3B5"/>
-<stop offset="1" stop-color="#595C5E"/>
-</linearGradient>
-<path d="M46.574,52.922c0,1.557-1.264,2.818-2.822,2.818H16.248c-1.558,0-2.82-1.262-2.82-2.818V7.082 c0-1.556,1.262-2.82,2.82-2.82h27.504c1.559,0,2.822,1.264,2.822,2.82V52.922z" fill="url(#SVGID_1)"/>
-<linearGradient gradientUnits="userSpaceOnUse" id="SVGID_2" x1="30" x2="30" y1="4.26" y2="54.73">
-<stop offset="0" stop-color="#E4EBED"/>
-<stop offset="0.07" stop-color="#E4EBED"/>
-<stop offset="0.26" stop-color="#D6DCDE"/>
-<stop offset="0.66" stop-color="#B2BEC2"/>
-<stop offset="1" stop-color="#ADB3B5"/>
-</linearGradient>
-<path d="M43.752,4.262H16.248c-1.558,0-2.82,1.264-2.82,2.82v45.84c0,0.752,0.3,1.432,0.78,1.938 c-0.044-0.172-0.072-0.344-0.072-0.529v-1.408V8.492v-1.41c0-1.168,0.95-2.118,2.114-2.118h27.504c1.166,0,2.114,0.95,2.114,2.118 v1.41v44.43v1.408c0,0.186-0.028,0.357-0.072,0.529c0.481-0.506,0.782-1.186,0.782-1.938V7.082 C46.574,5.526,45.311,4.262,43.752,4.262z" fill="url(#SVGID_2)"/>
-<linearGradient gradientUnits="userSpaceOnUse" id="SVGID_3" x1="30" x2="30" y1="7.84" y2="42.35">
-<stop offset="0" stop-color="#B6BBBD"/>
-<stop offset="1" stop-color="#F0FBFF"/>
-</linearGradient>
-<rect fill="url(#SVGID_3)" fill-opacity="0.6" height="34.554" stroke-opacity="0.6" width="28.918" x="15.542" y="7.788"/>
-<linearGradient gradientUnits="userSpaceOnUse" id="SVGID_4" x1="30" x2="30" y1="8.54" y2="41.64">
-<stop offset="0" stop-color="#6E6E6E"/>
-<stop offset="1" stop-color="#333333"/>
-</linearGradient>
-<rect fill="url(#SVGID_4)" height="33.146" width="27.504" x="16.248" y="8.492"/>
-<linearGradient gradientUnits="userSpaceOnUse" id="SVGID_5" x1="30" x2="30" y1="9.25" y2="40.94">
-<stop offset="0" stop-color="#3BC8EB"/>
-<stop offset="0.39" stop-color="#2D9BD2"/>
-<stop offset="0.89" stop-color="#1347BA"/>
-<stop offset="1" stop-color="#1347BA"/>
-</linearGradient>
-<rect fill="url(#SVGID_5)" height="31.735" width="26.094" x="16.954" y="9.198"/>
-<linearGradient gradientUnits="userSpaceOnUse" id="SVGID_6" x1="30" x2="30" y1="9.75" y2="22.36">
-<stop offset="0" stop-color="#85EFFF"/>
-<stop offset="1" stop-color="#3BA1D9"/>
-</linearGradient>
-<polygon fill="url(#SVGID_6)" points="43.046,20.48 16.954,23.3 16.954,9.904 43.046,9.904 "/>
-<rect fill="#9FE4FF" height="0.708" width="26.094" x="16.954" y="9.198"/>
-<linearGradient gradientUnits="userSpaceOnUse" id="SVGID_7" x1="30.2" x2="30.2" y1="7.82" y2="4.99">
-<stop offset="0" stop-color="#FFFFFF"/>
-<stop offset="1" stop-color="#D1D7D9"/>
-</linearGradient>
-<path d="M27.088,7.788c-0.792,0-1.412-0.516-1.412-1.176V6.14c0-0.658,0.622-1.176,1.412-1.176h6.238 c0.79,0,1.408,0.518,1.408,1.176v0.47c0,0.66-0.621,1.176-1.408,1.176h-6.238V7.788z" fill="url(#SVGID_7)"/>
-<linearGradient gradientUnits="userSpaceOnUse" id="SVGID_8" x1="30.21" x2="30.21" y1="5.38" y2="7.2">
-<stop offset="0" stop-color="#6C7375"/>
-<stop offset="1" stop-color="#BDC2C4"/>
-</linearGradient>
-<path d="M34.034,6.612c0,0.26-0.318,0.47-0.708,0.47h-6.238c-0.39,0-0.708-0.21-0.708-0.47V6.14 c0-0.262,0.316-0.468,0.708-0.468h6.238c0.388,0,0.708,0.208,0.708,0.468V6.612z" fill="url(#SVGID_8)"/>
-<linearGradient gradientUnits="userSpaceOnUse" id="SVGID_9" x1="29.89" x2="29.89" y1="43.08" y2="53.56">
-<stop offset="0" stop-color="#B6BBBD"/>
-<stop offset="1" stop-color="#FFFFFF"/>
-</linearGradient>
-<path d="M27.344,53.626c-1.512,0-2.744-1.216-2.744-2.712 V45.76c0-1.494,1.232-2.71,2.744-2.71h5.094c1.515,0,2.744,1.216,2.744,2.71v5.154c0,1.496-1.229,2.712-2.744,2.712H27.344z" fill="url(#SVGID_9)" fill-opacity="0.6" stroke-opacity="0.6"/>
-<path d="M27.34,52.922c-1.122,0-2.032-0.902-2.032-2.008V45.76 c0-1.107,0.91-2.008,2.032-2.008h5.104c1.123,0,2.031,0.9,2.031,2.008v5.154c0,1.105-0.908,2.008-2.031,2.008H27.34z" fill="#020202" fill-opacity="0.5" stroke-opacity="0.5"/>
-<linearGradient gradientUnits="userSpaceOnUse" id="SVGID_10" x1="29.89" x2="29.89" y1="44.43" y2="52.23">
-<stop offset="0" stop-color="#A6A8AB"/>
-<stop offset="0.7" stop-color="#58595B"/>
-<stop offset="1" stop-color="#808184"/>
-</linearGradient>
-<path d="M33.771,50.914c0,0.718-0.594,1.3-1.319,1.3h-5.12c-0.728,0-1.32-0.582-1.32-1.3V45.76 c0-0.716,0.592-1.298,1.32-1.298h5.12c0.726,0,1.319,0.582,1.319,1.298V50.914z" fill="url(#SVGID_10)"/>
-<path d="M28.836,50.805c-0.782,0-1.414-0.633-1.414-1.41v-2.119 c0-0.775,0.632-1.407,1.414-1.407h2.112c0.78,0,1.411,0.632,1.411,1.407v2.119c0,0.777-0.631,1.41-1.411,1.41H28.836z" fill="#020202" fill-opacity="0.2" stroke-opacity="0.2"/>
-<linearGradient gradientUnits="userSpaceOnUse" id="SVGID_11" x1="29.89" x2="29.89" y1="46.56" y2="50.1">
-<stop offset="0" stop-color="#D1D7D9"/>
-<stop offset="0.07" stop-color="#D1D7D9"/>
-<stop offset="0.26" stop-color="#BDC2C4"/>
-<stop offset="0.66" stop-color="#949DA1"/>
-<stop offset="0.96" stop-color="#ADB3B5"/>
-<stop offset="1" stop-color="#595C5E"/>
-</linearGradient>
-<path d="M28.836,50.098c-0.392,0-0.708-0.313-0.708-0.703v-2.119c0-0.385,0.314-0.703,0.708-0.703 h2.112c0.39,0,0.708,0.316,0.708,0.703v2.119c0,0.388-0.316,0.703-0.708,0.703H28.836z" fill="url(#SVGID_11)"/>
-<linearGradient gradientUnits="userSpaceOnUse" id="SVGID_12" x1="18.66" x2="18.66" y1="43.71" y2="52.23">
-<stop offset="0" stop-color="#B6BBBD"/>
-<stop offset="1" stop-color="#F0FBFF"/>
-</linearGradient>
-<path d="M18.256,52.214c-1.496,0-2.714-1.216-2.714-2.712 v-3.036c0-1.498,1.218-2.714,2.714-2.714h0.81c1.498,0,2.714,1.216,2.714,2.714v3.036c0,1.496-1.216,2.712-2.714,2.712H18.256z" fill="url(#SVGID_12)" fill-opacity="0.4" stroke-opacity="0.4"/>
-<linearGradient gradientUnits="userSpaceOnUse" id="SVGID_13" x1="18.66" x2="18.66" y1="44.43" y2="51.52">
-<stop offset="0" stop-color="#231F20"/>
-<stop offset="1" stop-color="#6D6E70"/>
-</linearGradient>
-<path d="M18.256,51.51c-1.106,0-2.008-0.9-2.008-2.008v-3.036 c0-1.11,0.902-2.006,2.008-2.006h0.81c1.11,0,2.01,0.896,2.01,2.006v3.036c0,1.107-0.9,2.008-2.01,2.008H18.256z" fill="url(#SVGID_13)" fill-opacity="0.7" stroke-opacity="0.7"/>
-<linearGradient gradientUnits="userSpaceOnUse" id="SVGID_14" x1="18.66" x2="18.66" y1="45.14" y2="50.82">
-<stop offset="0" stop-color="#C6FF45"/>
-<stop offset="0.73" stop-color="#66A00E"/>
-<stop offset="1" stop-color="#387300"/>
-</linearGradient>
-<path d="M20.37,49.502c0,0.721-0.582,1.303-1.302,1.303h-0.812c-0.718,0-1.302-0.582-1.302-1.303 v-3.036c0-0.72,0.584-1.302,1.302-1.302h0.81c0.72,0,1.302,0.582,1.302,1.302v3.036H20.37z" fill="url(#SVGID_14)"/>
-<path d="M40.322,52.214c-1.494,0-2.711-1.216-2.711-2.712 v-3.036c0-1.498,1.217-2.714,2.711-2.714h0.812c1.5,0,2.714,1.216,2.714,2.714v3.036c0,1.496-1.214,2.712-2.714,2.712H40.322z" fill="url(#SVGID_12)" fill-opacity="0.4" stroke-opacity="0.4"/>
-<path d="M40.322,51.51c-1.108,0-2.008-0.9-2.008-2.008v-3.036 c0-1.11,0.899-2.006,2.008-2.006h0.812c1.11,0,2.009,0.896,2.009,2.006v3.036c0,1.107-0.898,2.008-2.009,2.008H40.322z" fill="url(#SVGID_13)" fill-opacity="0.7" stroke-opacity="0.7"/>
-<linearGradient gradientUnits="userSpaceOnUse" id="SVGID_17" x1="40.73" x2="40.73" y1="45.14" y2="50.82">
-<stop offset="0" stop-color="#FFC142"/>
-<stop offset="0.75" stop-color="#CF4E18"/>
-<stop offset="1" stop-color="#B52100"/>
-</linearGradient>
-<path d="M42.438,49.502c0,0.721-0.582,1.303-1.301,1.303h-0.813c-0.717,0-1.301-0.582-1.301-1.303 v-3.036c0-0.72,0.584-1.302,1.301-1.302h0.813c0.719,0,1.301,0.582,1.301,1.302V49.502z" fill="url(#SVGID_17)"/>
-<rect fill="none" height="60" width="60"/>
-</g>
-<g transform="matrix(1 0 0 1 30 30)">
-<linearGradient gradientTransform="matrix(1 0 0 -1 8.3999 5.04)" gradientUnits="userSpaceOnUse" id="SVGID_1_" x1="-1.0313" x2="14.444" y1="-3.8467" y2="-3.8467">
-<stop offset="0" style="stop-color:#8C8C8C"/>
-<stop offset="0.5333" style="stop-color:#B3B3B3"/>
-<stop offset="1" style="stop-color:#808080"/>
-</linearGradient>
-<path d="M15.106,3.081c-4.303,0-7.794,3.46-7.854,7.749v2.881h2.657V10.83 c0.061-2.818,2.366-5.092,5.198-5.092c2.831,0,5.136,2.273,5.198,5.092v3.863h2.655V10.83C22.898,6.541,19.408,3.081,15.106,3.081z" fill="url(#SVGID_1_)"/>
-<linearGradient gradientTransform="matrix(1 0 0 -1 8.3999 5.04)" gradientUnits="userSpaceOnUse" id="SVGID_2_" x1="-0.5474" x2="13.9592" y1="-4.0928" y2="-4.0928">
-<stop offset="0" style="stop-color:#CCCCCC"/>
-<stop offset="0.5152" style="stop-color:#FFFFFF"/>
-<stop offset="1" style="stop-color:#CCCCCC"/>
-</linearGradient>
-<path d="M20.793,14.203V10.83c-0.066-3.084-2.617-5.582-5.687-5.582c-3.072,0-5.623,2.498-5.689,5.572v3.873 H7.743V10.83c0.057-4,3.359-7.258,7.363-7.258c4.003,0,7.304,3.258,7.361,7.265v3.366H20.793z" fill="url(#SVGID_2_)"/>
-<linearGradient gradientTransform="matrix(1 0 0 -1 8.3999 5.04)" gradientUnits="userSpaceOnUse" id="SVGID_3_" x1="-0.2461" x2="13.6586" y1="-4.0938" y2="-4.0938">
-<stop offset="0" style="stop-color:#B4B4B4"/>
-<stop offset="0.5" style="stop-color:#E6E6E6"/>
-<stop offset="1" style="stop-color:#BEBEBE"/>
-</linearGradient>
-<path d="M8.049,14.388V10.83c0.054-3.832,3.22-6.951,7.057-6.951c3.835,0,7.001,3.123,7.056,6.962v3.056H21.1 V10.83c-0.07-3.25-2.76-5.889-5.994-5.889c-3.236,0-5.925,2.634-5.995,5.872v3.574L8.049,14.388L8.049,14.388z" fill="url(#SVGID_3_)"/>
-<g>
-<rect fill="none" height="30" width="30"/>
-</g>
-<linearGradient gradientTransform="matrix(1 0 0 -1 8.3999 5.04)" gradientUnits="userSpaceOnUse" id="SVGID_4_" x1="-3.1958" x2="16.3945" y1="-15.3169" y2="-15.3169">
-<stop offset="0" style="stop-color:#ED8C0D"/>
-<stop offset="0.24" style="stop-color:#FFE692"/>
-<stop offset="0.75" style="stop-color:#ED8C0D"/>
-<stop offset="0.8667" style="stop-color:#FFB81F"/>
-<stop offset="1" style="stop-color:#ED8C0D"/>
-</linearGradient>
-<path d="M24.795,26.633c0,0.338-0.273,0.612-0.611,0.612H5.816c-0.338,0-0.612-0.274-0.612-0.612V14.082 c0-0.338,0.274-0.613,0.612-0.613h18.368c0.338,0,0.61,0.275,0.61,0.613L24.795,26.633L24.795,26.633z" fill="url(#SVGID_4_)"/>
-<path d="M24.184,13.469H5.816c-0.338,0-0.612,0.275-0.612,0.613v0.611 c0-0.338,0.274-0.611,0.612-0.611h18.368c0.338,0,0.61,0.273,0.61,0.611v-0.611C24.795,13.744,24.521,13.469,24.184,13.469z" fill="#FFFFFF" fill-opacity="0.4" stroke-opacity="0.4"/>
-<rect fill="#EE8F11" fill-opacity="0.5" height="2.144" stroke-opacity="0.5" width="19.591" x="5.204" y="16.225"/>
-<rect fill-opacity="0.25" height="0.308" stroke-opacity="0.25" width="19.591" x="5.204" y="16.225"/>
-<path d="M24.184,27.245H5.816c-0.338,0-0.612-0.274-0.612-0.612v-0.611 c0,0.338,0.274,0.611,0.612,0.611h18.368c0.338,0,0.61-0.273,0.61-0.611v0.611C24.795,26.971,24.521,27.245,24.184,27.245z" fill-opacity="0.25" stroke-opacity="0.25"/>
-<rect fill="#FEE38E" fill-opacity="0.25" height="0.307" stroke-opacity="0.25" width="19.591" x="5.204" y="18.367"/>
-</g>
-</svg>
--- a/securitydialogs/Autolock/resources/Keyguard_enabled_test.svg Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,1949 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-<svg
- xmlns:dc="http://purl.org/dc/elements/1.1/"
- xmlns:cc="http://web.resource.org/cc/"
- xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
- xmlns:svg="http://www.w3.org/2000/svg"
- xmlns="http://www.w3.org/2000/svg"
- xmlns:xlink="http://www.w3.org/1999/xlink"
- xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
- xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
- width="128"
- height="128"
- id="svg2606"
- sodipodi:version="0.32"
- inkscape:version="0.45.1"
- version="1.0"
- sodipodi:docname="image-png.svg"
- inkscape:output_extension="org.inkscape.output.svg.inkscape"
- sodipodi:docbase="/home/pinheiro/pics/oxygen/scalable/mimetypes"
- inkscape:export-filename="/home/pinheiro/artwork/Oxygen/David/imagesharperflaped.png"
- inkscape:export-xdpi="90"
- inkscape:export-ydpi="90">
- <defs
- id="defs2608">
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4273"
- id="linearGradient6204"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.811924,0,0,0.273245,55.77949,-173.6434)"
- x1="105.41402"
- y1="673.69873"
- x2="274.53336"
- y2="691.37091" />
- <linearGradient
- inkscape:collect="always"
- id="linearGradient31860">
- <stop
- style="stop-color:#000000;stop-opacity:1;"
- offset="0"
- id="stop31862" />
- <stop
- style="stop-color:#000000;stop-opacity:0;"
- offset="1"
- id="stop31864" />
- </linearGradient>
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4526"
- id="linearGradient4670"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.616893,0,0,0.359632,55.77949,-173.6434)"
- x1="322.5351"
- y1="671.36499"
- x2="305.54623"
- y2="703.1059" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4526"
- id="linearGradient4668"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.544849,0,0,0.407185,55.77949,-173.6434)"
- x1="388.85477"
- y1="581.20758"
- x2="355.6568"
- y2="561.59204" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4526"
- id="linearGradient4666"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.544849,0,0,0.407185,55.77949,-173.6434)"
- x1="391.99573"
- y1="490.36765"
- x2="343.76462"
- y2="472.65836" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4526"
- id="linearGradient4664"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.414913,0,0,0.534701,55.77949,-173.6434)"
- x1="336.97562"
- y1="514.06415"
- x2="402.90091"
- y2="491.13419" />
- <linearGradient
- id="linearGradient2797">
- <stop
- style="stop-color:#000000;stop-opacity:1.0000000;"
- offset="0.0000000"
- id="stop2799" />
- <stop
- style="stop-color:#484848;stop-opacity:1.0000000;"
- offset="1.0000000"
- id="stop2801" />
- </linearGradient>
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient2797"
- id="linearGradient4662"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.470374,0,0,0.471655,55.77949,-173.6434)"
- x1="313.85675"
- y1="561.1123"
- x2="355.78586"
- y2="553.29712" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4526"
- id="linearGradient4660"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.616893,0,0,0.359632,55.77949,-173.6434)"
- x1="306.2883"
- y1="672.46191"
- x2="333.49854"
- y2="707.75031" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4526"
- id="linearGradient4658"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.544849,0,0,0.407185,55.77949,-173.6434)"
- x1="391.99573"
- y1="490.36765"
- x2="343.76462"
- y2="472.65836" />
- <linearGradient
- id="linearGradient4526">
- <stop
- id="stop4528"
- offset="0.0000000"
- style="stop-color:#ffffff;stop-opacity:0.69902915;" />
- <stop
- id="stop4530"
- offset="1.0000000"
- style="stop-color:#ffffff;stop-opacity:0.0000000;" />
- </linearGradient>
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4526"
- id="linearGradient4656"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.544849,0,0,0.407185,55.77949,-173.6434)"
- x1="388.85477"
- y1="581.20758"
- x2="355.6568"
- y2="561.59204" />
- <linearGradient
- id="linearGradient4255"
- inkscape:collect="always">
- <stop
- id="stop4257"
- offset="0"
- style="stop-color:#000000;stop-opacity:1;" />
- <stop
- id="stop4259"
- offset="1"
- style="stop-color:#000000;stop-opacity:0;" />
- </linearGradient>
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4255"
- id="linearGradient4654"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.44753,0,0,0.49573,55.77949,-173.6434)"
- x1="390.90793"
- y1="442.95132"
- x2="419.73016"
- y2="470.11917" />
- <linearGradient
- id="linearGradient4516">
- <stop
- id="stop4518"
- offset="0"
- style="stop-color:#62004f;stop-opacity:1;" />
- <stop
- style="stop-color:#8d2778;stop-opacity:1;"
- offset="0.14563107"
- id="stop7294" />
- <stop
- id="stop4520"
- offset="1"
- style="stop-color:#ff00bf;stop-opacity:1;" />
- </linearGradient>
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4516"
- id="linearGradient4652"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.480452,0,0,0.461761,55.77949,-173.6434)"
- x1="299.42841"
- y1="480.61096"
- x2="419.73056"
- y2="503.82071" />
- <linearGradient
- id="linearGradient2373">
- <stop
- id="stop2375"
- offset="0.0000000"
- style="stop-color:#083e20;stop-opacity:1.0000000;" />
- <stop
- id="stop2377"
- offset="1.0000000"
- style="stop-color:#245e3e;stop-opacity:1.0000000;" />
- </linearGradient>
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient2373"
- id="linearGradient4650"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.852829,0,0,1.172568,-0.505078,0.252536)"
- x1="249.71024"
- y1="470.67639"
- x2="268.70541"
- y2="444.59937" />
- <linearGradient
- id="linearGradient2367">
- <stop
- id="stop2369"
- offset="0.0000000"
- style="stop-color:#957d16;stop-opacity:1.0000000;" />
- <stop
- id="stop2371"
- offset="1.0000000"
- style="stop-color:#927b16;stop-opacity:1.0000000;" />
- </linearGradient>
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient2367"
- id="linearGradient4648"
- gradientUnits="userSpaceOnUse"
- gradientTransform="scale(0.852829,1.172568)"
- x1="249.71024"
- y1="470.67639"
- x2="268.70541"
- y2="444.59937" />
- <linearGradient
- id="linearGradient2330">
- <stop
- id="stop2332"
- offset="0.0000000"
- style="stop-color:#54250d;stop-opacity:1.0000000;" />
- <stop
- id="stop2344"
- offset="1.0000000"
- style="stop-color:#9f4f19;stop-opacity:1.0000000;" />
- </linearGradient>
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient2330"
- id="linearGradient4646"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.852829,0,0,1.172568,-4.61104,-5.494924)"
- x1="249.71024"
- y1="470.67639"
- x2="268.70541"
- y2="444.59937" />
- <linearGradient
- id="linearGradient2307">
- <stop
- id="stop2309"
- offset="0"
- style="stop-color:#8a1e51;stop-opacity:1;" />
- <stop
- id="stop2311"
- offset="1.0000000"
- style="stop-color:#7e1b4a;stop-opacity:1.0000000;" />
- </linearGradient>
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient2307"
- id="linearGradient4644"
- gradientUnits="userSpaceOnUse"
- gradientTransform="scale(0.852829,1.172568)"
- x1="249.71024"
- y1="470.67639"
- x2="285.55072"
- y2="455.34595" />
- <linearGradient
- id="linearGradient4498">
- <stop
- id="stop4500"
- offset="0.0000000"
- style="stop-color:#1a3b23;stop-opacity:1.0000000;" />
- <stop
- id="stop4510"
- offset="0.34000000"
- style="stop-color:#255431;stop-opacity:1.0000000;" />
- <stop
- id="stop4508"
- offset="0.42000002"
- style="stop-color:#306d40;stop-opacity:1.0000000;" />
- <stop
- id="stop4506"
- offset="0.62000000"
- style="stop-color:#58c977;stop-opacity:1.0000000;" />
- <stop
- id="stop4504"
- offset="0.63999999"
- style="stop-color:#2f6a3f;stop-opacity:1.0000000;" />
- <stop
- id="stop4502"
- offset="1.0000000"
- style="stop-color:#86ffa7;stop-opacity:1.0000000;" />
- </linearGradient>
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4498"
- id="linearGradient4642"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.402062,0,0,0.551792,55.77949,-173.6434)"
- x1="410.68747"
- y1="351.94495"
- x2="496.01123"
- y2="446.42474" />
- <linearGradient
- id="linearGradient4472">
- <stop
- id="stop4474"
- offset="0.0000000"
- style="stop-color:#6a5000;stop-opacity:1.0000000;" />
- <stop
- id="stop4486"
- offset="0.36499998"
- style="stop-color:#b49b1d;stop-opacity:1.0000000;" />
- <stop
- id="stop4484"
- offset="0.47000000"
- style="stop-color:#ffe63b;stop-opacity:1.0000000;" />
- <stop
- id="stop4480"
- offset="0.62000000"
- style="stop-color:#fde55f;stop-opacity:1.0000000;" />
- <stop
- id="stop4482"
- offset="0.65999997"
- style="stop-color:#af8800;stop-opacity:1.0000000;" />
- <stop
- id="stop4476"
- offset="1.0000000"
- style="stop-color:#fcff96;stop-opacity:1.0000000;" />
- </linearGradient>
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4472"
- id="linearGradient4640"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.410011,0,0,0.541094,55.77949,-173.6434)"
- x1="407.20193"
- y1="340.1315"
- x2="509.36542"
- y2="443.40552" />
- <linearGradient
- id="linearGradient4440">
- <stop
- id="stop4442"
- offset="0.0000000"
- style="stop-color:#7c2b00;stop-opacity:1.0000000;" />
- <stop
- id="stop4458"
- offset="0.35250002"
- style="stop-color:#a56116;stop-opacity:1.0000000;" />
- <stop
- id="stop4456"
- offset="0.42500001"
- style="stop-color:#cf982c;stop-opacity:1.0000000;" />
- <stop
- id="stop4452"
- offset="0.61000001"
- style="stop-color:#ffdb59;stop-opacity:1.0000000;" />
- <stop
- id="stop4448"
- offset="0.63999999"
- style="stop-color:#d07100;stop-opacity:1.0000000;" />
- <stop
- id="stop4444"
- offset="1.0000000"
- style="stop-color:#fff77c;stop-opacity:1.0000000;" />
- </linearGradient>
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4440"
- id="linearGradient4638"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.395673,0,0,0.560701,55.96081,-173.4701)"
- x1="426.25494"
- y1="315.43689"
- x2="542.82642"
- y2="426.81122" />
- <linearGradient
- id="linearGradient4402">
- <stop
- id="stop4404"
- offset="0.0000000"
- style="stop-color:#540d0d;stop-opacity:1.0000000;" />
- <stop
- id="stop4462"
- offset="0.34999999"
- style="stop-color:#7e2316;stop-opacity:1.0000000;" />
- <stop
- id="stop4460"
- offset="0.43000001"
- style="stop-color:#a93a1f;stop-opacity:1.0000000;" />
- <stop
- id="stop4410"
- offset="0.62000000"
- style="stop-color:#ff6731;stop-opacity:1.0000000;" />
- <stop
- id="stop4412"
- offset="0.66000003"
- style="stop-color:#9f2819;stop-opacity:1.0000000;" />
- <stop
- id="stop4436"
- offset="0.77000004"
- style="stop-color:#e1734d;stop-opacity:1.0000000;" />
- <stop
- id="stop4406"
- offset="1.0000000"
- style="stop-color:#ffb47c;stop-opacity:1.0000000;" />
- </linearGradient>
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4402"
- id="linearGradient4636"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.400366,0,0,0.554129,55.74058,-173.7136)"
- x1="438.62411"
- y1="302.29001"
- x2="560.68457"
- y2="400.81851" />
- <linearGradient
- id="linearGradient4352">
- <stop
- id="stop4354"
- offset="0.0000000"
- style="stop-color:#833c0b;stop-opacity:1.0000000;" />
- <stop
- id="stop4356"
- offset="1.0000000"
- style="stop-color:#723409;stop-opacity:1.0000000;" />
- </linearGradient>
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4352"
- id="linearGradient4633"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.476543,0,0,0.46555,55.77949,-173.6434)"
- x1="178.40228"
- y1="433.92719"
- x2="274.36346"
- y2="433.92719" />
- <linearGradient
- id="linearGradient4392">
- <stop
- id="stop4394"
- offset="0.0000000"
- style="stop-color:#214b2c;stop-opacity:1.0000000;" />
- <stop
- id="stop4396"
- offset="1.0000000"
- style="stop-color:#1a3b23;stop-opacity:1.0000000;" />
- </linearGradient>
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4392"
- id="linearGradient4631"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.534168,0,0,0.415327,55.82726,-173.6161)"
- x1="170.54399"
- y1="569.89191"
- x2="233.7466"
- y2="533.10059" />
- <linearGradient
- id="linearGradient4360">
- <stop
- id="stop4362"
- offset="0"
- style="stop-color:#83190b;stop-opacity:1;" />
- <stop
- id="stop4364"
- offset="1.0000000"
- style="stop-color:#721509;stop-opacity:1.0000000;" />
- </linearGradient>
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4360"
- id="linearGradient4629"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.465924,0,0,0.47616,55.77949,-173.6434)"
- x1="177.6402"
- y1="411.45197"
- x2="275.48526"
- y2="411.45197" />
- <linearGradient
- id="linearGradient4382">
- <stop
- id="stop4384"
- offset="0.0000000"
- style="stop-color:#7e5c08;stop-opacity:1.0000000;" />
- <stop
- id="stop4386"
- offset="1.0000000"
- style="stop-color:#6e4b11;stop-opacity:1.0000000;" />
- </linearGradient>
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4382"
- id="linearGradient4627"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.484895,0,0,0.457531,55.82726,-173.6161)"
- x1="185.36516"
- y1="498.74353"
- x2="246.5347"
- y2="442.2757" />
- <linearGradient
- id="linearGradient4321">
- <stop
- id="stop4323"
- offset="0.0000000"
- style="stop-color:#b20033;stop-opacity:1.0000000;" />
- <stop
- id="stop4337"
- offset="0.46000001"
- style="stop-color:#ff7cba;stop-opacity:1.0000000;" />
- <stop
- id="stop4339"
- offset="0.55000001"
- style="stop-color:#9c225b;stop-opacity:1.0000000;" />
- <stop
- id="stop4325"
- offset="1.0000000"
- style="stop-color:#ff7ca1;stop-opacity:1.0000000;" />
- </linearGradient>
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4321"
- id="linearGradient4625"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.310584,0,0,0.714313,55.77949,-173.6434)"
- x1="683.10022"
- y1="231.87573"
- x2="720.63422"
- y2="271.91464" />
- <linearGradient
- id="linearGradient4368">
- <stop
- id="stop4370"
- offset="0"
- style="stop-color:#8a1e51;stop-opacity:1;" />
- <stop
- id="stop4372"
- offset="1.0000000"
- style="stop-color:#7e1b4a;stop-opacity:1.0000000;" />
- </linearGradient>
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4368"
- id="linearGradient4623"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.441119,0,0,0.502935,55.77949,-173.6434)"
- x1="185.72665"
- y1="378.45386"
- x2="266.98257"
- y2="378.45386" />
- <linearGradient
- id="linearGradient4273">
- <stop
- id="stop4275"
- offset="0.0000000"
- style="stop-color:#590012;stop-opacity:1.0000000;" />
- <stop
- id="stop4466"
- offset="0.93000001"
- style="stop-color:#a3211f;stop-opacity:1.0000000;" />
- <stop
- id="stop4468"
- offset="0.94000000"
- style="stop-color:#650014;stop-opacity:1.0000000;" />
- <stop
- id="stop4277"
- offset="1.0000000"
- style="stop-color:#ee6c68;stop-opacity:1.0000000;" />
- </linearGradient>
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4273"
- id="linearGradient4621"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.811924,0,0,0.273245,55.77949,-173.6434)"
- x1="105.41402"
- y1="673.69873"
- x2="274.53336"
- y2="691.37091" />
- <linearGradient
- id="linearGradient2441">
- <stop
- id="stop2443"
- offset="0.0000000"
- style="stop-color:#b0e9c0;stop-opacity:1.0000000;" />
- <stop
- id="stop2445"
- offset="1.0000000"
- style="stop-color:#75df92;stop-opacity:1.0000000;" />
- </linearGradient>
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient2441"
- id="linearGradient4619"
- gradientUnits="userSpaceOnUse"
- gradientTransform="scale(0.852829,1.172568)"
- x1="273.20914"
- y1="455.33145"
- x2="276.42776"
- y2="474.10953" />
- <linearGradient
- id="linearGradient2447">
- <stop
- id="stop2449"
- offset="0.0000000"
- style="stop-color:#ffd625;stop-opacity:1.0000000;" />
- <stop
- id="stop2451"
- offset="1.0000000"
- style="stop-color:#fff0ab;stop-opacity:1.0000000;" />
- </linearGradient>
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient2447"
- id="linearGradient4617"
- gradientUnits="userSpaceOnUse"
- gradientTransform="scale(0.852829,1.172568)"
- x1="269.87866"
- y1="468.31586"
- x2="274.6358"
- y2="450.71976" />
- <linearGradient
- id="linearGradient2453">
- <stop
- id="stop2455"
- offset="0.0000000"
- style="stop-color:#f6b94e;stop-opacity:1.0000000;" />
- <stop
- id="stop2457"
- offset="1.0000000"
- style="stop-color:#ffc340;stop-opacity:1.0000000;" />
- </linearGradient>
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient2453"
- id="linearGradient4615"
- gradientUnits="userSpaceOnUse"
- gradientTransform="scale(0.852829,1.172568)"
- x1="262.95721"
- y1="463.82385"
- x2="271.31601"
- y2="446.71695" />
- <linearGradient
- id="linearGradient2463">
- <stop
- id="stop2465"
- offset="0.0000000"
- style="stop-color:#fda5cf;stop-opacity:1.0000000;" />
- <stop
- id="stop2467"
- offset="1.0000000"
- style="stop-color:#ce2c79;stop-opacity:1.0000000;" />
- </linearGradient>
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient2463"
- id="linearGradient4613"
- gradientUnits="userSpaceOnUse"
- gradientTransform="scale(0.852829,1.172568)"
- x1="258.13016"
- y1="442.66943"
- x2="247.02499"
- y2="456.03308" />
- <linearGradient
- id="linearGradient2469">
- <stop
- id="stop2471"
- offset="0.0000000"
- style="stop-color:#f6754e;stop-opacity:1.0000000;" />
- <stop
- id="stop2473"
- offset="1.0000000"
- style="stop-color:#ffa879;stop-opacity:1.0000000;" />
- </linearGradient>
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient2469"
- id="linearGradient4611"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.852829,0,0,1.172568,-12.28101,22.44028)"
- x1="257.99484"
- y1="431.38104"
- x2="274.71591"
- y2="420.00296" />
- <linearGradient
- id="linearGradient2785">
- <stop
- style="stop-color:#000000;stop-opacity:0.0000000;"
- offset="0.0000000"
- id="stop2787" />
- <stop
- style="stop-color:#000000;stop-opacity:0.49803922;"
- offset="0.36000001"
- id="stop2793" />
- <stop
- style="stop-color:#000000;stop-opacity:0;"
- offset="1"
- id="stop2789" />
- </linearGradient>
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient2785"
- id="linearGradient4609"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.453732,0,0,0.488954,57.57699,-173.4241)"
- x1="277.5726"
- y1="521.61127"
- x2="316.56882"
- y2="527.43481" />
- <linearGradient
- id="linearGradient2713">
- <stop
- id="stop2715"
- offset="0.0000000"
- style="stop-color:#b20033;stop-opacity:1.0000000;" />
- <stop
- id="stop2721"
- offset="1.0000000"
- style="stop-color:#ffe77c;stop-opacity:1.0000000;" />
- </linearGradient>
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient2713"
- id="linearGradient4607"
- gradientUnits="userSpaceOnUse"
- gradientTransform="scale(0.625932,1.597617)"
- x1="542.85187"
- y1="330.59"
- x2="554.73236"
- y2="359.37115" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient2823"
- id="linearGradient4605"
- gradientUnits="userSpaceOnUse"
- gradientTransform="scale(1.121629,0.891561)"
- x1="229.5614"
- y1="692.33807"
- x2="276.19287"
- y2="715.24652" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient2823"
- id="linearGradient4603"
- gradientUnits="userSpaceOnUse"
- gradientTransform="scale(1.121629,0.891561)"
- x1="229.5614"
- y1="692.33807"
- x2="276.19287"
- y2="715.24652" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient2823"
- id="linearGradient4601"
- gradientUnits="userSpaceOnUse"
- gradientTransform="scale(1.121629,0.891561)"
- x1="229.5614"
- y1="692.33807"
- x2="276.19287"
- y2="715.24652" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient2823"
- id="linearGradient4599"
- gradientUnits="userSpaceOnUse"
- gradientTransform="scale(1.121629,0.891561)"
- x1="229.5614"
- y1="692.33807"
- x2="276.19287"
- y2="715.24652" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient2823"
- id="linearGradient4597"
- gradientUnits="userSpaceOnUse"
- gradientTransform="scale(1.121629,0.891561)"
- x1="229.5614"
- y1="692.33807"
- x2="276.19287"
- y2="715.24652" />
- <linearGradient
- id="linearGradient2823">
- <stop
- style="stop-color:#4d3719;stop-opacity:1;"
- offset="0"
- id="stop2825" />
- <stop
- style="stop-color:#ddae66;stop-opacity:1;"
- offset="0.69999999"
- id="stop2866" />
- <stop
- style="stop-color:#b2731c;stop-opacity:1;"
- offset="1"
- id="stop2827" />
- </linearGradient>
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient2823"
- id="linearGradient4595"
- gradientUnits="userSpaceOnUse"
- gradientTransform="scale(1.121629,0.891561)"
- x1="261.13171"
- y1="710.77112"
- x2="267.06235"
- y2="710.77136" />
- <linearGradient
- id="linearGradient3185">
- <stop
- id="stop3187"
- offset="0"
- style="stop-color:#50a3f7;stop-opacity:1;" />
- <stop
- id="stop3189"
- offset="1"
- style="stop-color:#002ea8;stop-opacity:1;" />
- </linearGradient>
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient3185"
- id="linearGradient5341"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(1.3457951,0,0,2.1229785,538.33426,-11.05243)"
- x1="-263.28992"
- y1="56.713814"
- x2="-263.14236"
- y2="8.8705559" />
- <linearGradient
- id="linearGradient10207">
- <stop
- style="stop-color:#a2a2a2;stop-opacity:1;"
- offset="0"
- id="stop10209" />
- <stop
- style="stop-color:#ffffff;stop-opacity:1;"
- offset="1"
- id="stop10211" />
- </linearGradient>
- <linearGradient
- id="XMLID_12_"
- gradientUnits="userSpaceOnUse"
- x1="96"
- y1="104"
- x2="88.000198"
- y2="96.000198">
- <stop
- offset="0"
- style="stop-color:#888A85"
- id="stop83" />
- <stop
- offset="0.0072"
- style="stop-color:#8C8E89"
- id="stop85" />
- <stop
- offset="0.0673"
- style="stop-color:#ABACA9"
- id="stop87" />
- <stop
- offset="0.1347"
- style="stop-color:#C5C6C4"
- id="stop89" />
- <stop
- offset="0.2652576"
- style="stop-color:#DBDBDA"
- id="stop91" />
- <stop
- offset="0.37646064"
- style="stop-color:#EBEBEB"
- id="stop93" />
- <stop
- offset="0.48740286"
- style="stop-color:#F7F7F6"
- id="stop95" />
- <stop
- offset="0.6324091"
- style="stop-color:#FDFDFD"
- id="stop97" />
- <stop
- offset="1"
- style="stop-color:#FFFFFF"
- id="stop99" />
- </linearGradient>
- <radialGradient
- id="XMLID_8_"
- cx="102"
- cy="112.3047"
- r="139.55859"
- gradientUnits="userSpaceOnUse">
- <stop
- offset="0"
- style="stop-color:#b7b8b9;stop-opacity:1;"
- id="stop41" />
- <stop
- offset="0.18851049"
- style="stop-color:#ECECEC"
- id="stop47" />
- <stop
- offset="0.25718147"
- style="stop-color:#FAFAFA"
- id="stop49" />
- <stop
- offset="0.30111277"
- style="stop-color:#FFFFFF"
- id="stop51" />
- <stop
- offset="0.5313"
- style="stop-color:#FAFAFA"
- id="stop53" />
- <stop
- offset="0.8449"
- style="stop-color:#EBECEC"
- id="stop55" />
- <stop
- offset="1"
- style="stop-color:#E1E2E3"
- id="stop57" />
- </radialGradient>
- <filter
- inkscape:collect="always"
- x="-0.19200002"
- width="1.3839999"
- y="-0.19199999"
- height="1.3839999"
- id="filter6697">
- <feGaussianBlur
- inkscape:collect="always"
- stdDeviation="1.9447689"
- id="feGaussianBlur6699" />
- </filter>
- <clipPath
- clipPathUnits="userSpaceOnUse"
- id="clipPath7084">
- <path
- style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
- d="M 72,88 L 40,120 L 32,120 L 32,80 L 72,80 L 72,88 z"
- id="path7086" />
- </clipPath>
- <radialGradient
- inkscape:collect="always"
- xlink:href="#XMLID_8_"
- id="radialGradient9437"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(1,0,0,0.9996653,-7.999998,16.003016)"
- cx="114"
- cy="95.028786"
- r="139.55859"
- fx="114"
- fy="95.028786" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient10207"
- id="linearGradient10213"
- x1="98.617439"
- y1="106.41443"
- x2="91.228737"
- y2="99.254974"
- gradientUnits="userSpaceOnUse" />
- <filter
- inkscape:collect="always"
- id="filter2770">
- <feGaussianBlur
- inkscape:collect="always"
- stdDeviation="2.0786429"
- id="feGaussianBlur2772" />
- </filter>
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient3185"
- id="linearGradient4882"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(1.3457951,0,0,2.1229785,538.33426,-11.05243)"
- x1="-263.14236"
- y1="72.386543"
- x2="-263.14236"
- y2="-21.190172" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient2823"
- id="linearGradient4884"
- gradientUnits="userSpaceOnUse"
- gradientTransform="scale(1.121629,0.891561)"
- x1="261.13171"
- y1="710.77112"
- x2="267.06235"
- y2="710.77136" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient2823"
- id="linearGradient4886"
- gradientUnits="userSpaceOnUse"
- gradientTransform="scale(1.121629,0.891561)"
- x1="229.5614"
- y1="692.33807"
- x2="276.19287"
- y2="715.24652" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient2823"
- id="linearGradient4888"
- gradientUnits="userSpaceOnUse"
- gradientTransform="scale(1.121629,0.891561)"
- x1="229.5614"
- y1="692.33807"
- x2="276.19287"
- y2="715.24652" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient2823"
- id="linearGradient4890"
- gradientUnits="userSpaceOnUse"
- gradientTransform="scale(1.121629,0.891561)"
- x1="229.5614"
- y1="692.33807"
- x2="276.19287"
- y2="715.24652" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient2823"
- id="linearGradient4892"
- gradientUnits="userSpaceOnUse"
- gradientTransform="scale(1.121629,0.891561)"
- x1="229.5614"
- y1="692.33807"
- x2="276.19287"
- y2="715.24652" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient2823"
- id="linearGradient4894"
- gradientUnits="userSpaceOnUse"
- gradientTransform="scale(1.121629,0.891561)"
- x1="229.5614"
- y1="692.33807"
- x2="276.19287"
- y2="715.24652" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient2713"
- id="linearGradient4896"
- gradientUnits="userSpaceOnUse"
- gradientTransform="scale(0.625932,1.597617)"
- x1="542.85187"
- y1="330.59"
- x2="554.73236"
- y2="359.37115" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient2785"
- id="linearGradient4898"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.453732,0,0,0.488954,57.57699,-173.4241)"
- x1="277.5726"
- y1="521.61127"
- x2="316.56882"
- y2="527.43481" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient2469"
- id="linearGradient4900"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.852829,0,0,1.172568,-12.28101,22.44028)"
- x1="257.99484"
- y1="431.38104"
- x2="274.71591"
- y2="420.00296" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient2463"
- id="linearGradient4902"
- gradientUnits="userSpaceOnUse"
- gradientTransform="scale(0.852829,1.172568)"
- x1="258.13016"
- y1="442.66943"
- x2="247.02499"
- y2="456.03308" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient2453"
- id="linearGradient4904"
- gradientUnits="userSpaceOnUse"
- gradientTransform="scale(0.852829,1.172568)"
- x1="262.95721"
- y1="463.82385"
- x2="271.31601"
- y2="446.71695" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient2447"
- id="linearGradient4906"
- gradientUnits="userSpaceOnUse"
- gradientTransform="scale(0.852829,1.172568)"
- x1="269.87866"
- y1="468.31586"
- x2="274.6358"
- y2="450.71976" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient2441"
- id="linearGradient4908"
- gradientUnits="userSpaceOnUse"
- gradientTransform="scale(0.852829,1.172568)"
- x1="273.20914"
- y1="455.33145"
- x2="276.42776"
- y2="474.10953" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4273"
- id="linearGradient4910"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.811924,0,0,0.273245,55.77949,-173.6434)"
- x1="105.41402"
- y1="673.69873"
- x2="274.53336"
- y2="691.37091" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4368"
- id="linearGradient4912"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.441119,0,0,0.502935,55.77949,-173.6434)"
- x1="185.72665"
- y1="378.45386"
- x2="266.98257"
- y2="378.45386" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4321"
- id="linearGradient4914"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.310584,0,0,0.714313,55.77949,-173.6434)"
- x1="683.10022"
- y1="231.87573"
- x2="720.63422"
- y2="271.91464" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4382"
- id="linearGradient4916"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.484895,0,0,0.457531,55.82726,-173.6161)"
- x1="185.36516"
- y1="498.74353"
- x2="246.5347"
- y2="442.2757" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4360"
- id="linearGradient4918"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.465924,0,0,0.47616,55.77949,-173.6434)"
- x1="177.6402"
- y1="411.45197"
- x2="275.48526"
- y2="411.45197" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4392"
- id="linearGradient4920"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.534168,0,0,0.415327,55.82726,-173.6161)"
- x1="170.54399"
- y1="569.89191"
- x2="233.7466"
- y2="533.10059" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4352"
- id="linearGradient4922"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.476543,0,0,0.46555,55.77949,-173.6434)"
- x1="178.40228"
- y1="433.92719"
- x2="274.36346"
- y2="433.92719" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4402"
- id="linearGradient4924"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.400366,0,0,0.554129,55.74058,-173.7136)"
- x1="438.62411"
- y1="302.29001"
- x2="560.68457"
- y2="400.81851" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4440"
- id="linearGradient4926"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.395673,0,0,0.560701,55.96081,-173.4701)"
- x1="426.25494"
- y1="315.43689"
- x2="542.82642"
- y2="426.81122" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4472"
- id="linearGradient4928"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.410011,0,0,0.541094,55.77949,-173.6434)"
- x1="407.20193"
- y1="340.1315"
- x2="509.36542"
- y2="443.40552" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4498"
- id="linearGradient4930"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.402062,0,0,0.551792,55.77949,-173.6434)"
- x1="410.68747"
- y1="351.94495"
- x2="496.01123"
- y2="446.42474" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient2307"
- id="linearGradient4932"
- gradientUnits="userSpaceOnUse"
- gradientTransform="scale(0.852829,1.172568)"
- x1="249.71024"
- y1="470.67639"
- x2="285.55072"
- y2="455.34595" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient2330"
- id="linearGradient4934"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.852829,0,0,1.172568,-4.61104,-5.494924)"
- x1="249.71024"
- y1="470.67639"
- x2="268.70541"
- y2="444.59937" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient2367"
- id="linearGradient4936"
- gradientUnits="userSpaceOnUse"
- gradientTransform="scale(0.852829,1.172568)"
- x1="249.71024"
- y1="470.67639"
- x2="268.70541"
- y2="444.59937" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient2373"
- id="linearGradient4938"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.852829,0,0,1.172568,-0.505078,0.252536)"
- x1="249.71024"
- y1="470.67639"
- x2="268.70541"
- y2="444.59937" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4516"
- id="linearGradient4940"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.480452,0,0,0.461761,55.77949,-173.6434)"
- x1="299.42841"
- y1="480.61096"
- x2="419.73056"
- y2="503.82071" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4255"
- id="linearGradient4942"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.44753,0,0,0.49573,55.77949,-173.6434)"
- x1="390.90793"
- y1="442.95132"
- x2="419.73016"
- y2="470.11917" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4526"
- id="linearGradient4944"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.544849,0,0,0.407185,55.77949,-173.6434)"
- x1="388.85477"
- y1="581.20758"
- x2="355.6568"
- y2="561.59204" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4526"
- id="linearGradient4946"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.544849,0,0,0.407185,55.77949,-173.6434)"
- x1="391.99573"
- y1="490.36765"
- x2="343.76462"
- y2="472.65836" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4526"
- id="linearGradient4948"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.616893,0,0,0.359632,55.77949,-173.6434)"
- x1="306.2883"
- y1="672.46191"
- x2="333.49854"
- y2="707.75031" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient2797"
- id="linearGradient4950"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.470374,0,0,0.471655,55.77949,-173.6434)"
- x1="313.85675"
- y1="561.1123"
- x2="355.78586"
- y2="553.29712" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4526"
- id="linearGradient4952"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.414913,0,0,0.534701,55.77949,-173.6434)"
- x1="336.97562"
- y1="514.06415"
- x2="402.90091"
- y2="491.13419" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4526"
- id="linearGradient4954"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.544849,0,0,0.407185,55.77949,-173.6434)"
- x1="391.99573"
- y1="490.36765"
- x2="343.76462"
- y2="472.65836" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4526"
- id="linearGradient4956"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.544849,0,0,0.407185,55.77949,-173.6434)"
- x1="388.85477"
- y1="581.20758"
- x2="355.6568"
- y2="561.59204" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4526"
- id="linearGradient4958"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.616893,0,0,0.359632,55.77949,-173.6434)"
- x1="322.5351"
- y1="671.36499"
- x2="305.54623"
- y2="703.1059" />
- <linearGradient
- y2="154.50412"
- x2="210.98608"
- y1="154.50412"
- x1="155.21127"
- gradientTransform="matrix(0.9295551,0,0,0.9288601,-84.40008,12.847771)"
- gradientUnits="userSpaceOnUse"
- id="linearGradient9061"
- xlink:href="#linearGradient6001"
- inkscape:collect="always" />
- <linearGradient
- y2="167.16171"
- x2="83.742836"
- y1="154.27817"
- x1="82.802177"
- gradientTransform="matrix(0.6260112,0,0,0.2001745,68.175377,138.95724)"
- gradientUnits="userSpaceOnUse"
- id="linearGradient8903"
- xlink:href="#linearGradient3426"
- inkscape:collect="always" />
- <linearGradient
- id="linearGradient3134">
- <stop
- id="stop3136"
- offset="0"
- style="stop-color:#ffd500;stop-opacity:1;" />
- <stop
- id="stop3138"
- offset="1"
- style="stop-color:#ff7e00;stop-opacity:1;" />
- </linearGradient>
- <linearGradient
- id="linearGradient3146">
- <stop
- id="stop3148"
- offset="0"
- style="stop-color:#ff7e00;stop-opacity:1;" />
- <stop
- id="stop3150"
- offset="1"
- style="stop-color:#ffd500;stop-opacity:1;" />
- </linearGradient>
- <linearGradient
- id="linearGradient3158">
- <stop
- id="stop3160"
- offset="0"
- style="stop-color:#fff8de;stop-opacity:1;" />
- <stop
- id="stop3162"
- offset="1"
- style="stop-color:#ffff00;stop-opacity:1;" />
- </linearGradient>
- <linearGradient
- id="linearGradient3426"
- inkscape:collect="always">
- <stop
- id="stop3428"
- offset="0"
- style="stop-color:#555555;stop-opacity:1;" />
- <stop
- id="stop3430"
- offset="1"
- style="stop-color:#555555;stop-opacity:0;" />
- </linearGradient>
- <linearGradient
- id="linearGradient6001"
- inkscape:collect="always">
- <stop
- id="stop6003"
- offset="0"
- style="stop-color:#000000;stop-opacity:1;" />
- <stop
- id="stop6005"
- offset="1"
- style="stop-color:#000000;stop-opacity:0;" />
- </linearGradient>
- <linearGradient
- id="linearGradient7545">
- <stop
- id="stop7547"
- offset="0"
- style="stop-color:#323232;stop-opacity:1;" />
- <stop
- id="stop7549"
- offset="1"
- style="stop-color:#101010;stop-opacity:1;" />
- </linearGradient>
- <clipPath
- clipPathUnits="userSpaceOnUse"
- id="clipPath4318">
- <path
- style="opacity:0.48888891;fill:#f9f2ea;fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
- d="M 1.954599,2.1834159 L 1.954599,187.15135 L 256.71404,187.15135 L 256.71404,2.1834159 L 1.954599,2.1834159 z "
- id="path4320" />
- </clipPath>
- <clipPath
- clipPathUnits="userSpaceOnUse"
- id="clipPath31854">
- <path
- style="opacity:0.48888891;fill:#f9f2ea;fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
- d="M 12,28 L 12,108 L 92.5,108 L 116,82.75 L 116,28 L 12,28 z "
- id="path31856"
- sodipodi:nodetypes="cccccc" />
- </clipPath>
- <radialGradient
- inkscape:collect="always"
- xlink:href="#linearGradient31860"
- id="radialGradient31866"
- cx="101.5"
- cy="92.997192"
- fx="101.5"
- fy="92.997192"
- r="21.5"
- gradientTransform="matrix(0.7247027,0.6890616,-0.6744186,0.7093023,90.661709,-42.65288)"
- gradientUnits="userSpaceOnUse" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient6001"
- id="linearGradient8360"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.4103611,0,0,0.4330773,-28.25306,27.952127)"
- x1="121.40629"
- y1="177.05572"
- x2="177.1811"
- y2="177.05572" />
- </defs>
- <sodipodi:namedview
- id="base"
- pagecolor="#ffffff"
- bordercolor="#666666"
- borderopacity="1.0"
- inkscape:pageopacity="0.0"
- inkscape:pageshadow="2"
- inkscape:zoom="1"
- inkscape:cx="-126.82503"
- inkscape:cy="44.445553"
- inkscape:document-units="px"
- inkscape:current-layer="layer1"
- width="128px"
- height="128px"
- gridspacingx="4px"
- gridspacingy="4px"
- gridempspacing="2"
- showgrid="true"
- inkscape:grid-points="true"
- showguides="true"
- inkscape:guide-bbox="true"
- inkscape:window-width="1016"
- inkscape:window-height="692"
- inkscape:window-x="351"
- inkscape:window-y="46"
- showborder="true">
- <sodipodi:guide
- orientation="horizontal"
- position="40.875"
- id="guide5004" />
- </sodipodi:namedview>
- <metadata
- id="metadata2611">
- <rdf:RDF>
- <cc:Work
- rdf:about="">
- <dc:format>image/svg+xml</dc:format>
- <dc:type
- rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
- </cc:Work>
- </rdf:RDF>
- </metadata>
- <g
- inkscape:label="Livello 1"
- inkscape:groupmode="layer"
- id="layer1">
- <path
- style="opacity:0.5;fill:#000000;fill-opacity:1;filter:url(#filter2770)"
- d="M 16,8 L 16,96.626087 C 16,96.626087 94.51625,96.626087 94.51625,96.626087 L 94.5475,96.626087 C 94.547503,96.626087 106.45375,86.719837 111.95375,81.219837 C 117.45375,75.719837 127.36,63.813587 127.36,63.813587 L 127.36,63.782337 L 127.36,8 L 16,8 z "
- id="path7865"
- sodipodi:nodetypes="csccscccc"
- transform="matrix(1.0416667,0,0,1.0267857,-10.666667,14.785711)" />
- <path
- style="fill:#ffffff;fill-opacity:1"
- d="M 8.000001,24 L 8,112 C 8,112 87.146418,112 87.146418,112 L 120,79.14642 L 120,24 L 8.000001,24 z "
- id="path34"
- sodipodi:nodetypes="cccccc" />
- <path
- style="fill:url(#radialGradient9437);fill-opacity:1"
- d="M 10.000002,25.000003 C 9.449002,25.000003 9.000002,25.448853 9.000002,25.999668 L 9.000002,109.96352 C 9.000002,110.51533 9.449002,110.96318 10.000002,110.96318 L 85.171999,110.96318 C 85.434999,110.96318 87.934679,111.08131 88.12068,110.89438 L 118.707,80.094202 C 118.894,79.907264 119,77.40942 119,77.146508 L 119,25.999668 C 119,25.448853 118.552,25.000003 118,25.000003 L 10.000002,25.000003 z "
- id="path59"
- sodipodi:nodetypes="ccccccccccc" />
- <g
- id="g4805"
- transform="matrix(0.9166667,0,0,0.9166667,-112.66667,13.33333)">
- <path
- sodipodi:nodetypes="cccccc"
- id="rect3183"
- d="M 136,16 L 249.45454,16 L 249.45454,78.40711 L 223.14295,103.27273 L 136,103.27273 L 136,16 z "
- style="fill:url(#linearGradient4882);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3.20000005;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:4;stroke-opacity:1" />
- <g
- transform="matrix(0.5620693,0,0,0.6015749,58.600837,15.161068)"
- id="g4460">
- <path
- style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:0.5138334px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
- d="M 187.22261,104.20627 C 187.22261,104.20627 187.22261,102.23277 187.22261,104.20627 z "
- id="path4462" />
- <path
- style="fill:#422f17;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.5138334px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
- d="M 183.201,113.07522 C 193.37175,108.10319 193.63086,108.52844 200.46351,113.69314 L 200.29499,105.21496 C 200.35117,105.10532 201.41844,103.68002 201.41844,105.21496 C 201.41844,106.7499 201.64313,115.74027 201.64313,115.74027 C 201.64313,115.74027 201.13758,128.18425 199.34006,129.171 C 197.99193,129.60955 189.06054,134.37883 189.06054,134.37883 C 189.06054,134.37883 187.26303,135.25594 185.91489,134.37883 C 184.56675,133.50173 176.92733,128.0198 176.92733,128.0198 C 176.92733,128.0198 175.80388,126.92341 176.47795,125.60775 C 177.15201,124.29208 186.54379,99.322577 188.7681,101.64836"
- id="path4464"
- sodipodi:nodetypes="ccccccccccz" />
- <g
- id="g4466"
- style="fill:url(#linearGradient8360);fill-opacity:1"
- transform="matrix(0.476791,0,0,0.465307,56.04458,-173.9504)">
- <path
- style="fill:url(#linearGradient4886);fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
- d="M 263.1947,617.63145 L 282.04481,607.26389 C 282.04481,607.26389 286.52172,604.90763 291.23424,608.2064 C 295.94677,611.50517 305.37183,619.28084 305.37183,619.28084 L 306.19652,623.28649 L 290.0847,610.59125 C 289.08502,610.42464 286.38369,608.94186 283.45857,609.85578 C 280.86668,611.26954 261.20025,622.17737 261.20025,622.17737 L 263.1947,617.63145 z "
- id="path4468"
- sodipodi:nodetypes="ccccccccc" />
- <path
- style="fill:url(#linearGradient4888);fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
- d="M 260.84963,623.11423 L 282.16544,611.73514 C 282.16544,611.73514 286.1711,608.90763 290.88362,612.2064 C 295.59615,615.50517 306.90623,624.6946 305.96372,624.22335 L 305.6995,630.43604 L 287.34923,616.32704 C 287.34923,616.32704 283.81483,614.67765 281.22294,616.09141 C 278.63105,617.50517 258.13155,628.57961 258.13155,628.57961 L 260.84963,623.11423 z "
- id="path4471"
- sodipodi:nodetypes="ccccccccc" />
- <path
- style="fill:url(#linearGradient4890);fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
- d="M 257.89592,629.40713 L 280.0448,617.86143 C 280.0448,617.86143 284.05046,615.03392 288.76298,618.33269 C 293.47551,621.63146 306.35759,631.99903 305.41508,631.52778 L 304.9236,637.22041 L 285.22859,622.45333 C 285.22859,622.45333 281.69419,620.80394 279.1023,622.2177 C 276.51041,623.63146 256.01091,634.7059 256.01091,634.7059 L 257.89592,629.40713 z "
- id="path4473"
- sodipodi:nodetypes="ccccccccc" />
- <path
- style="fill:url(#linearGradient4892);fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
- d="M 255.53966,635.29779 L 277.68854,623.75209 C 277.68854,623.75209 281.6942,620.92458 286.40672,624.22335 C 291.11925,627.52212 305.67931,638.38115 304.7368,637.9099 L 303.84308,644.36659 L 282.87233,628.34399 C 282.87233,628.34399 279.33793,626.6946 276.74604,628.10836 C 274.15415,629.52212 253.65465,640.59656 253.65465,640.59656 L 255.53966,635.29779 z "
- id="path4475"
- sodipodi:nodetypes="ccccccccc" />
- <path
- style="fill:url(#linearGradient4894);fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
- d="M 253.29839,641.66534 L 275.44727,629.41277 C 275.44727,629.41277 279.92418,626.22344 284.6367,630.35528 C 289.34923,633.65405 303.72244,644.96412 303.72244,644.96412 C 303.80098,647.32038 302.70139,649.79446 301.13055,651.32603 C 301.44472,649.51956 304.11515,648.41997 300.42367,645.55318 L 282.32022,632.57352 C 281.32055,632.07368 278.78582,630.92413 276.19393,632.33789 C 273.60204,633.75165 253.76964,644.49286 253.76964,644.49286 L 253.29839,641.66534 z "
- id="path4477"
- sodipodi:nodetypes="cccccccccc" />
- </g>
- <path
- style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.5138334px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:0.55940594"
- d="M 202.05456,103.14424 C 202.05456,103.14424 216.03593,126.86726 225.09204,93.530989"
- id="path4479"
- sodipodi:nodetypes="cc" />
- <g
- id="g4481"
- transform="matrix(0.476791,0,0,0.465307,55.77949,-173.6434)">
- <path
- style="fill:url(#linearGradient4896);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
- d="M 338.22446,521.19983 C 338.22446,521.19983 377.21191,565.18567 333.22607,578.18149 C 329.89381,579.18117 338.22446,521.19983 338.22446,521.19983 z "
- id="path4483"
- sodipodi:nodetypes="ccc" />
- <path
- style="fill:#0b6c46;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-opacity:1"
- d="M 275.0748,560.94594 L 275.21707,570.0003 C 283.27792,574.86011 293.10363,578.29621 303.96622,579.55254 C 314.81983,580.80783 325.18449,579.70093 334.1368,576.81477 L 333.99453,567.76041 C 325.93737,562.90699 284.03215,558.05439 275.0748,560.94594 z "
- id="path4485"
- sodipodi:nodetypes="cccccc" />
- <path
- style="fill:#bea613;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-opacity:1"
- d="M 275.68002,559.47428 L 275.57592,566.89757 C 283.50748,571.92005 293.36967,575.46859 304.29245,576.73188 C 315.20005,577.99342 325.63274,576.80211 334.49332,573.73219 L 334.60208,566.26861 C 326.67617,561.25722 284.54863,556.39486 275.68002,559.47428 z "
- id="path4487"
- sodipodi:nodetypes="cccccc" />
- <path
- style="fill:#b37711;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-opacity:1"
- d="M 276.88308,547.60287 L 276.00468,563.19042 C 283.77731,568.47998 293.58498,572.288 304.65829,573.56871 C 315.7236,574.84849 326.15339,573.37529 334.92441,570.00489 L 335.80281,554.41734 C 328.03268,549.13385 285.65791,544.22713 276.88308,547.60287 z "
- id="path4489"
- sodipodi:nodetypes="cccccc" />
- <path
- style="fill:#ac182a;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-opacity:1"
- d="M 277.50759,547.18114 L 276.67811,557.36777 C 284.00502,563.19427 293.8856,567.44309 305.21521,568.75344 C 316.54212,570.06348 327.13535,568.18047 335.59784,564.18225 L 336.42732,553.99561 C 329.10088,548.17129 285.97104,543.1809 277.50759,547.18114 z "
- id="path4491"
- sodipodi:nodetypes="cccccc" />
- <path
- style="fill:#be2873;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-opacity:1"
- d="M 278.81487,540.62031 L 277.33523,551.68616 C 284.05502,558.16146 294.04935,562.94986 305.73019,564.30083 C 317.38774,565.64911 328.23427,563.29207 336.2503,558.54093 L 337.73926,547.39449 C 331.01935,540.93903 286.83532,535.84983 278.81487,540.62031 z "
- id="path4493"
- sodipodi:nodetypes="cccccc" />
- <path
- style="fill:#ab0d2d;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-opacity:1"
- d="M 279.47201,530.46825 L 278.30926,543.26448 C 283.43866,551.13384 293.77039,557.26207 306.37566,558.71996 C 318.97018,560.1766 330.43404,556.57932 337.22666,550.0991 L 338.39407,537.26258 C 333.25996,529.40295 286.26227,523.97748 279.47201,530.46825 z "
- id="path4495"
- sodipodi:nodetypes="cccccc" />
- <path
- style="fill:#8d0b1e;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-opacity:1"
- d="M 280.98901,520.09478 L 279.05493,536.81726 C 283.24905,544.62442 293.92558,550.97115 307.09569,552.49436 C 320.24075,554.01468 332.09271,550.29201 337.97,543.67203 L 339.9134,526.86896 C 335.70236,519.08219 286.85447,513.45108 280.98901,520.09478 z "
- id="path4497"
- sodipodi:nodetypes="cccccc" />
- <path
- style="fill:#790a59;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-opacity:1"
- d="M 281.88381,512.35812 L 279.94973,529.0806 C 284.14385,536.88776 294.82038,543.23448 307.9905,544.7577 C 321.13555,546.27801 332.98752,542.55535 338.8648,535.93536 L 340.8082,519.1323 C 336.59716,511.34553 287.74927,505.71442 281.88381,512.35812 z "
- id="path4499"
- sodipodi:nodetypes="cccccc" />
- <path
- style="fill:#002c91;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-opacity:1"
- d="M 282.92775,503.33201 L 280.99367,520.05449 C 285.18778,527.86165 295.86432,534.20837 309.03443,535.73159 C 322.17949,537.25191 334.03145,533.52924 339.90874,526.90926 L 341.85214,510.10619 C 337.6411,502.31942 288.79321,496.68831 282.92775,503.33201 z "
- id="path4501"
- sodipodi:nodetypes="cccccc" />
- <path
- style="fill:#0b6c46;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-opacity:1"
- d="M 248.40625,547.75 L 253.90625,562.53125 L 267.34375,573.6875 C 270.1161,572.87512 272.81821,571.85611 275.375,570.46875 L 277.1875,555.125 C 273.53213,551.65247 260.03014,548.67004 248.40625,547.75 z "
- id="path4503" />
- <path
- style="fill:#bea613;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-opacity:1"
- d="M 247.0625,544.125 L 253.90625,562.53125 L 264.21875,571.09375 C 268.30846,570.26259 272.21002,568.75831 275.84375,566.65625 L 277.4375,551.75 C 273.68372,547.98759 259.044,544.83986 247.0625,544.125 z "
- id="path4505" />
- <path
- style="fill:#9f690f;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-opacity:1"
- d="M 247.5,545.3125 L 253.90625,562.53125 L 260.09375,567.65625 C 265.91841,567.12148 271.4714,565.18231 276.4375,562.03125 L 277.25,553.15625 C 273.64896,549.24433 259.39196,546.0513 247.5,545.3125 z "
- id="path4507" />
- <path
- style="fill:#a01728;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-opacity:1"
- d="M 242.34375,533.09375 C 238.15485,533.3011 234.78501,534.0274 233.0625,535.34375 L 232.8125,537.59375 L 243.25,533.875 L 253.5625,561.59375 C 262.23387,562.6764 270.53733,560.01218 277.34375,554.8125 L 278.75,541.53125 C 274.73183,536.34031 254.91044,532.4717 242.34375,533.09375 z "
- id="path4509" />
- <path
- style="fill:#ae055a;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-opacity:1"
- d="M 233.90026,527.51949 L 232.5274,541.56434 C 237.36729,549.31327 244.88205,554.85296 253.9423,556.07987 C 262.9845,557.30434 271.63361,553.97964 278.22229,547.80305 L 279.60771,533.65824 C 274.76644,525.93383 240.49366,521.31884 233.90026,527.51949 z "
- id="path4511"
- sodipodi:nodetypes="cccccc" />
- <path
- style="fill:#9e0c2a;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-opacity:1"
- d="M 235.3218,518.43899 L 233.84056,531.11784 C 237.34375,540.65021 245.03521,547.83318 254.81251,549.15719 C 264.58147,550.48008 273.79512,545.59896 279.53859,537.33156 L 281.02611,524.60272 C 277.51859,515.08257 241.06411,510.15862 235.3218,518.43899 z "
- id="path4513"
- sodipodi:nodetypes="cccccc" />
- <path
- style="fill:#720818;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-opacity:1"
- d="M 237.45332,502.37747 L 234.84585,523.12052 C 237.62058,532.61147 245.56782,540.05144 255.78324,541.43478 C 265.97922,542.81549 275.50503,537.76468 280.54074,529.35923 L 283.16077,508.51621 C 280.37145,499.05111 242.48132,493.94315 237.45332,502.37747 z "
- id="path4515"
- sodipodi:nodetypes="cccccc" />
- <path
- style="fill:#67094d;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-opacity:1"
- d="M 238.65967,492.78069 L 236.0522,513.52374 C 238.82693,523.01468 246.77417,530.45465 256.98959,531.838 C 267.18557,533.21871 276.71138,528.1679 281.74708,519.76244 L 284.36712,498.91943 C 281.5778,489.45433 243.68766,484.34636 238.65967,492.78069 z "
- id="path4517"
- sodipodi:nodetypes="cccccc" />
- <path
- style="fill:#0035a8;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-opacity:1"
- d="M 240.06707,481.58444 L 237.4596,502.32749 C 240.23433,511.81844 248.18158,519.25841 258.397,520.64175 C 268.59297,522.02246 278.11878,516.97165 283.15449,508.5662 L 285.77453,487.72318 C 282.98521,478.25808 245.09507,473.15011 240.06707,481.58444 z "
- id="path4519"
- sodipodi:nodetypes="cccccc" />
- <path
- style="fill:#00a867;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-opacity:1"
- d="M 240.87131,475.18658 L 238.26383,495.92963 C 241.03856,505.42058 248.31935,510.86119 258.53477,512.24454 C 268.73075,513.62525 278.92301,510.5738 283.95872,502.16834 L 286.57876,481.32533 C 283.78944,471.86023 245.8993,466.75226 240.87131,475.18658 z "
- id="path4521"
- sodipodi:nodetypes="cccccc" />
- <path
- style="fill:#006145;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-opacity:1"
- d="M 284.92775,491.33201 L 282.99367,508.05449 C 287.18778,515.86165 297.86432,522.20837 311.03443,523.73159 C 324.17949,525.25191 336.03145,521.52924 341.90874,514.90926 L 343.85214,498.10619 C 339.6411,490.31942 290.79321,484.68831 284.92775,491.33201 z "
- id="path4523"
- sodipodi:nodetypes="cccccc" />
- </g>
- <path
- style="fill:url(#linearGradient4898);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
- d="M 190.03122,64.297807 C 190.03122,64.297807 182.72882,69.231546 180.36959,90.17252 C 184.97572,95.764091 211.15199,97.518308 211.15199,97.518308 C 211.15199,97.518308 205.42243,73.836368 208.90511,64.736364"
- id="path4525"
- sodipodi:nodetypes="cccc" />
- <g
- id="g4527"
- transform="matrix(-0.774175,-0.401016,-0.348567,0.890665,597.6601,-302.2593)">
- <path
- style="fill:url(#linearGradient4900);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
- d="M 207.7583,506.50835 C 206.40141,508.14027 202.6659,520.80791 217.80808,536.11211 C 209.99845,521.01422 210.25164,515.35549 212.77702,513.84026 C 211.26179,512.57757 211.79891,504.74058 207.7583,506.50835 z "
- id="path4529"
- sodipodi:nodetypes="cccc" />
- <path
- style="fill:url(#linearGradient4902);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
- d="M 210.95084,511.50794 C 210.95084,511.50794 205.53158,526.18807 221.81423,540.68643 C 214.0046,525.58854 214.65742,520.7694 217.1828,519.25417 C 215.66757,517.99148 214.99145,509.74017 210.95084,511.50794 z "
- id="path4531"
- sodipodi:nodetypes="cccc" />
- <path
- style="fill:url(#linearGradient4904);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
- d="M 215.63896,514.69258 C 214.26567,516.28385 212.37855,522.69625 221.02957,539.78214 C 224.42558,543.33631 225.80981,544.21794 228.40596,546.12917 C 225.88057,540.57332 225.18702,531.44512 225.18702,531.44512 C 225.18702,531.44511 222.30922,521.66678 215.63896,514.69258 z "
- id="path4533"
- sodipodi:nodetypes="ccccc" />
- <path
- style="fill:url(#linearGradient4906);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
- d="M 220.25,520.1875 C 218.87671,521.77877 217.69273,527.32036 226.34375,544.40625 C 226.73044,544.6265 227.16007,545.21026 234.57596,551.27054 C 232.05057,545.71469 229.79806,536.94004 229.79806,536.94004 C 229.79806,536.94003 226.92026,527.1617 220.25,520.1875 z "
- id="path4535"
- sodipodi:nodetypes="ccccc" />
- <path
- style="fill:url(#linearGradient4908);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
- d="M 226.43242,527.87754 C 225.19989,531.53305 222.40285,535.39769 233.4082,550.0827 C 236.39784,552.68732 237.75066,552.31339 241.50027,554.94898 C 238.97488,549.39313 233.83867,536.94004 233.83867,536.94004 C 233.83867,536.94003 230.56317,532.74151 226.43242,527.87754 z "
- id="path4537"
- sodipodi:nodetypes="ccccc" />
- </g>
- <path
- style="fill:url(#linearGradient6204);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
- d="M 147.23396,1.5882927 C 147.13465,2.646801 146.98467,5.018187 147.77035,8.3934076 C 146.71944,8.7518336 142.71094,10.274486 139.09871,21.320218 C 141.74768,16.6199 141.9984,15.68199 148.50043,10.981678 C 148.72205,9.0350846 149.12685,6.368708 151.61447,1.5882927 L 147.23396,1.5882927 z M 266.35721,1.5882927 C 267.93182,4.3792274 271.22943,10.952536 270.11194,15.67837 C 269.87112,16.383427 269.32225,18.148541 269.32225,18.324804 C 271.12838,19.441122 277.62699,22.665569 280.03515,37.824075 C 280.45658,31.654914 282.6271,21.609411 270.82712,13.0901 C 272.37122,8.9999353 272.85313,6.0215192 272.37669,1.5882927 L 266.35721,1.5882927 z "
- id="path4539" />
- <path
- style="fill:url(#linearGradient4912);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
- d="M 151.33138,1.5882927 C 150.48086,3.2294259 148.16646,7.8677178 148.47063,10.923514 C 143.724,13.810912 141.42889,16.685518 139.20301,21.291136 L 139.21791,21.203891 C 139.21791,21.203896 136.26512,28.807398 138.60702,37.126115 C 138.99068,33.147428 137.3331,25.956979 148.85802,14.558725 C 148.80375,14.543877 150.01326,17.8718 151.25688,20.49139 C 151.54908,19.347051 149.72571,9.4677224 164.91992,1.5882927 L 151.33138,1.5882927 z "
- id="path4541" />
- <path
- style="fill:url(#linearGradient4914);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
- d="M 257.78987,1.5882927 C 267.38505,10.987587 266.20821,24.155682 266.20821,24.155682 C 266.20821,24.155682 267.57261,21.334763 267.74288,21.334758 C 281.53576,34.296881 273.18127,52.408537 273.18128,52.408542 C 273.18128,52.408542 277.96196,48.41812 280.00535,38.114892 C 279.32422,24.654226 271.48484,19.4673 269.44145,18.179395 C 269.44145,18.179395 270.46314,16.357639 270.63343,13.366376 C 269.43017,7.1595205 267.60358,3.4581243 266.49131,1.5882927 L 257.78987,1.5882927 z "
- id="path4543" />
- <path
- sodipodi:nodetypes="ccccccccc"
- id="path4545"
- d="M 153.27873,24.934713 C 153.27873,24.934713 140.44556,34.402142 145.39585,50.498089 C 147.26897,55.31734 151.52603,59.471866 151.52603,59.471866 C 151.52603,59.471866 143.35247,47.340646 155.95337,32.051988 C 155.95337,32.051988 158.67789,38.865409 164.12693,48.836277 C 166.68117,44.183203 172.98162,38.865414 185.58253,31.553445 C 198.18343,24.241475 184.56083,18.258958 184.56083,18.258958 C 184.56083,18.258958 159.01846,24.687886 159.5293,40.028681 C 158.50761,38.865414 154.07171,26.714033 153.27873,24.934713 z "
- style="fill:url(#linearGradient4916);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
- <path
- style="fill:url(#linearGradient4918);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
- d="M 164.57723,1.5882927 C 158.84878,4.5412985 150.6096,10.478388 151.22708,20.229654 C 151.14194,20.229659 148.91762,14.427858 148.91762,14.427858 C 148.91762,14.427858 137.51508,22.973719 138.62192,36.849839 C 139.47333,41.419819 142.00415,45.574345 142.00415,45.574345 C 142.00415,45.574345 137.00423,29.785064 150.54169,19.066387 C 151.91856,23.362762 154.14866,27.917015 155.7268,31.382482 C 155.64166,30.883942 151.04828,16.316092 183.82766,6.0959543 C 183.96763,4.234824 183.90823,2.8077135 183.76807,1.5882927 L 164.57723,1.5882927 z "
- id="path4547" />
- <path
- sodipodi:nodetypes="ccccccccc"
- id="path4549"
- d="M 151.52603,59.638046 C 151.52603,59.638046 155.00221,63.86141 156.19419,64.692318 C 156.96046,65.523221 150.06402,54.085235 160.11069,40.624567 C 161.91681,46.147436 169.98707,60.322932 169.98707,60.322932 C 169.98707,60.322932 176.55756,50.498089 186.77451,46.509742 C 191.37213,33.54762 187.28535,34.877067 185.41224,31.553445 C 183.36885,31.885804 164.12693,45.014111 163.95665,48.503913 C 163.61608,48.420823 157.18062,34.137601 156.07378,32.060336 C 155.05208,31.063253 143.69303,46.675922 151.52603,59.638046 z "
- style="fill:url(#linearGradient4920);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
- <path
- sodipodi:nodetypes="ccccccccc"
- id="path4551"
- d="M 184.25763,6.2665591 C 183.30647,5.2576619 150.9578,16.177952 155.56502,30.778266 C 151.47825,22.30303 150.71197,19.145591 150.71197,19.145591 C 150.47116,18.205527 137.51508,28.202457 141.94243,45.48529 C 143.04926,47.811825 144.6755,50.165138 145.59923,50.960911 C 144.74781,47.969652 142.45327,34.018795 153.09593,25.128109 C 156.07587,32.606258 157.72277,35.774491 159.6372,39.737785 C 160.48861,38.906882 157.43814,27.537734 185.0239,18.065414 C 188.25927,9.8394515 184.25763,6.2665591 184.25763,6.2665591 z "
- style="fill:url(#linearGradient4922);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
- <path
- style="fill:url(#linearGradient4924);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
- d="M 241.40018,1.5882927 C 263.39065,16.032799 261.37514,29.427117 261.6191,32.284014 C 263.40706,30.123659 264.89064,27.475154 265.65692,26.394972 C 276.12929,39.440189 270.04808,56.04583 269.36695,56.959828 C 270.04808,56.959828 272.50441,53.646586 273.27068,52.234051 C 282.55107,30.713603 269.19028,20.896463 267.74288,21.145728 C 266.97661,22.059725 266.46151,23.563663 266.46151,23.646753 C 266.51992,10.990844 261.44708,4.4820603 258.22196,1.5882927 L 241.40018,1.5882927 z "
- id="path4553" />
- <path
- style="fill:url(#linearGradient4926);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
- d="M 224.71249,1.5882927 C 222.34772,2.9998434 222.30409,5.0218024 229.22711,7.9717232 C 246.68625,17.137326 254.14503,30.950826 256.55319,39.176374 C 257.03482,38.588835 261.42603,32.608072 261.87239,32.109524 C 271.24429,49.356086 263.52626,62.589205 262.33428,63.503207 C 262.33428,63.503207 267.99535,60.040574 269.56065,57.337889 C 276.96574,38.125366 265.59733,26.191405 265.59732,26.1914 C 265.59732,26.1914 265.34932,27.249262 261.85749,31.949574 C 262.54736,16.549025 249.498,6.2501757 241.98127,1.5882927 L 224.71249,1.5882927 z "
- id="path4555" />
- <path
- sodipodi:nodetypes="ccccccccc"
- id="path4557"
- d="M 229.8082,7.9283659 C 229.8082,7.9283659 253.00764,20.094222 256.49947,38.660451 C 261.5566,31.844997 260.59334,32.716861 261.67701,32.129318 C 262.76068,31.541779 271.79128,50.343025 262.51987,63.503896 C 255.29539,69.849315 254.57294,69.614298 252.76682,70.554362 C 253.24845,69.379281 264.32598,61.956136 256.13825,39.042119 C 254.09131,42.919871 249.90625,47.129992 249.90625,47.129992 C 249.90625,47.129992 246.74643,31.306767 224.9526,19.673496 C 210.14242,13.915615 229.79813,7.1606466 229.96841,7.4930107"
- style="fill:url(#linearGradient4928);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
- <path
- sodipodi:nodetypes="ccccccccc"
- id="path4559"
- d="M 225.073,19.604663 L 219.54392,33.539412 C 219.88449,33.871776 234.70564,40.589879 240.96685,56.570938 C 241.60874,56.598614 248.91377,48.697914 249.63622,47.287819 C 250.35867,45.87773 255.35559,66.73536 246.98725,74.432115 C 250.84825,72.119418 252.80814,71.640445 253.9709,69.966819 C 254.45254,68.791742 263.90456,60.037415 256.19845,39.12103 C 254.07389,42.133 251.22218,45.137552 249.99745,46.465268 C 248.56966,41.118961 242.5165,29.216678 225.073,19.604663 z "
- style="fill:url(#linearGradient4930);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
- <path
- style="fill:#1f4a2a;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
- d="M 183.54457,1.5882927 L 183.82766,6.9247824 C 183.82767,6.9247778 203.772,-4.7868273 230.16579,8.175295 C 231.62859,6.1193267 233.0947,3.6616496 234.32281,1.5882927 L 183.54457,1.5882927 z "
- id="path4561" />
- <g
- id="g4563"
- transform="matrix(0.476791,0,0,0.465307,55.77949,-173.6434)">
- <path
- style="fill:url(#linearGradient4932);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
- d="M 210.6168,512.94073 C 210.6168,512.94073 209.80617,527.05721 224.94835,542.36141 C 217.13872,527.26352 214.65742,520.7694 217.1828,519.25417 C 215.66757,517.99148 214.65741,511.17296 210.6168,512.94073 z "
- id="path4565"
- sodipodi:nodetypes="cccc" />
- <path
- style="fill:url(#linearGradient4934);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
- d="M 215.63896,514.69258 C 214.26567,516.28385 213.08169,521.82544 221.73271,538.91133 C 226.65449,544.60372 227.44153,545.08454 234.78918,551.64182 C 232.26379,546.08597 225.18702,531.44512 225.18702,531.44512 C 225.18702,531.44511 222.30922,521.66678 215.63896,514.69258 z "
- id="path4567"
- sodipodi:nodetypes="ccccc" />
- <path
- style="fill:url(#linearGradient4936);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
- d="M 220.25,520.1875 C 218.87671,521.77877 217.69273,527.32036 226.34375,544.40625 C 231.26553,550.09864 232.05257,550.57946 239.40022,557.13674 C 236.87483,551.58089 229.79806,536.94004 229.79806,536.94004 C 229.79806,536.94003 226.92026,527.1617 220.25,520.1875 z "
- id="path4569"
- sodipodi:nodetypes="ccccc" />
- <path
- style="fill:url(#linearGradient4938);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
- d="M 226.43242,527.87754 C 225.19989,531.53305 224.73957,539.88003 235.74492,554.56504 C 238.73456,557.16966 242.85692,559.62588 246.60653,562.26147 C 244.08114,556.70562 233.83867,536.94004 233.83867,536.94004 C 233.83867,536.94003 230.56317,532.74151 226.43242,527.87754 z "
- id="path4571"
- sodipodi:nodetypes="ccccc" />
- </g>
- <path
- sodipodi:nodetypes="ccccccccccccccccccccc"
- id="path4573"
- d="M 176.85034,88.193825 C 176.85034,88.193825 174.12582,88.692369 173.27441,87.861466 C 172.423,87.030558 167.65509,81.214225 167.31452,76.893514 C 165.10084,74.068435 157.26785,66.590287 156.41644,64.928475 C 154.8839,62.768125 150.79711,52.365184 159.82209,40.067786 C 163.73859,47.712114 169.18763,58.846252 169.86875,59.677155 C 170.89046,59.012427 172.59328,53.528454 186.55644,45.884123 C 185.87531,36.910347 183.66164,7.9283659 184.17248,6.5989186 C 184.68333,5.2694714 204.94695,-5.366116 230.14876,8.26073 C 222.9969,25.377378 220.27238,31.858444 219.93181,33.686435 C 220.1021,34.018795 234.40583,38.339505 241.38741,55.954699 C 245.47419,51.633987 247.00673,49.473636 249.90153,46.316193 C 252.28549,52.631075 253.98832,67.753554 247.00673,74.566979 C 239.68458,80.050957 230.31905,84.205483 229.46763,85.368751 C 228.61622,86.532018 222.65633,93.843983 216.35588,95.17343 C 216.35588,95.00725 220.44266,91.683628 220.78323,90.35418 C 221.12379,89.024733 222.65633,77.724418 222.65633,77.724418 L 209.3743,65.09466 L 189.11068,64.097572 C 189.11068,64.097572 178.2126,70.744813 175.65836,73.736076 C 175.3178,76.561155 176.85034,88.193825 176.85034,88.193825 z "
- style="fill:url(#linearGradient4940);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
- <path
- sodipodi:nodetypes="ccccc"
- id="path4575"
- d="M 270.62287,13.502604 C 269.42734,27.183314 242.50914,55.097143 223.14083,76.429747 C 223.14083,76.429747 222.41838,77.134795 222.41838,77.134795 C 222.6592,77.134795 240.25709,62.968732 251.73862,59.871179 C 280.07812,68.073941 288.57012,22.015298 270.62287,13.502604 z "
- style="fill:url(#linearGradient4942);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
- <path
- id="path4577"
- d="M 279.49738,40.589879 C 279.49738,40.589879 255.4158,61.741276 233.01993,71.611931 C 210.62406,81.482581 228.68524,83.597723 228.68524,83.597723 C 228.68524,83.597723 272.75454,64.561464 279.49738,40.589879 z "
- style="opacity:0.39999994;fill:url(#linearGradient4944);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
- <path
- sodipodi:nodetypes="cccc"
- id="path4579"
- d="M 272.27788,4.7043653 C 272.27788,1.048383 261.13777,30.50883 227.84381,49.685626 C 205.44794,59.556278 216.35727,70.977559 222.48744,74.633541 C 237.13174,59.01252 269.96238,31.002484 272.27788,4.7043653 z "
- style="opacity:0.39999994;fill:url(#linearGradient4946);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
- <path
- style="opacity:0.69999994;fill:url(#linearGradient4948);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
- d="M 260.28034,66.231116 C 260.28034,66.231116 238.12529,82.917216 227.52939,86.207434 C 247.10271,85.274289 257.39056,81.977156 260.28034,66.231116 z "
- id="path4581"
- sodipodi:nodetypes="ccc" />
- <path
- style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
- d="M 177.1116,88.199027 L 181.83007,92.365293 C 183.06586,92.474933 185.4251,92.146017 187.22261,91.378549 C 187.22261,91.378549 199.35581,100.58819 218.90377,93.461682 C 206.43353,102.23277 198.12003,97.956864 190.81764,98.505056 C 186.32385,94.777342 174.41533,88.199027 173.74126,88.199027 C 173.06719,88.199027 177.1116,88.199027 177.1116,88.199027 z "
- id="path4583"
- sodipodi:nodetypes="ccccccc" />
- <path
- style="fill:url(#linearGradient4950);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
- d="M 209.24214,66.052029 C 210.1409,77.381351 205.19774,100.11309 205.19774,100.04 L 190.36826,99.162889 L 180.48194,91.926741 L 194.41266,108.59181 L 219.80253,92.146017 C 219.80253,92.146017 220.02722,81.620712 222.04942,79.866491 C 224.07162,78.112274 221.82473,77.235166 221.82473,77.235166 C 221.82473,77.235166 212.38779,70.656846 209.24214,66.052029 z "
- id="path4585"
- sodipodi:nodetypes="ccccccccc" />
- <path
- style="fill:url(#linearGradient4952);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
- d="M 205.42243,100.25928 L 222.94818,77.673718 C 222.94818,77.673718 220.02722,82.059264 219.80253,91.926741 C 219.80253,91.926741 205.42243,100.25928 205.42243,100.25928 z "
- id="path4587"
- sodipodi:nodetypes="cccc" />
- <path
- sodipodi:nodetypes="cccc"
- id="path4589"
- d="M 272.27788,6.5655933 C 272.27788,2.9096111 261.13777,32.370058 227.84381,51.546854 C 205.44794,61.417506 216.35727,70.977559 222.48744,74.633541 C 237.13174,59.01252 269.96238,32.863712 272.27788,6.5655933 z "
- style="opacity:0.39999994;fill:url(#linearGradient4954);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
- <path
- id="path4591"
- d="M 278.5438,42.451107 C 278.5438,42.451107 255.4158,63.602504 233.01993,73.473159 C 210.62406,83.343809 228.68524,83.597723 228.68524,83.597723 C 228.68524,83.597723 268.94113,65.492376 278.5438,42.451107 z "
- style="opacity:0.59999988;fill:url(#linearGradient4956);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
- sodipodi:nodetypes="cccc" />
- <path
- style="opacity:0.69999994;fill:url(#linearGradient4958);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
- d="M 260.28034,66.231116 C 260.28034,66.231116 238.12529,82.917216 227.52939,86.207434 C 244.56065,83.723765 257.39056,81.977156 260.28034,66.231116 z "
- id="path4593"
- sodipodi:nodetypes="ccc" />
- </g>
- <rect
- y="77"
- x="236"
- height="0"
- width="1"
- id="rect1327"
- style="opacity:0.57786889;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3.63199997;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4;stroke-opacity:1" />
- <path
- style="fill:#ffffff;fill-opacity:0.75688076;fill-rule:nonzero;stroke:none;stroke-width:0.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4;stroke-opacity:1"
- d="M 77.062579,3.7839329 L 77.062579,0.98922447 L 77.062579,3.7839329 z "
- id="path2276"
- sodipodi:nodetypes="ccc" />
- <g
- id="g4640"
- transform="matrix(-0.782995,0,0,0.650879,-2245.796,690.3016)"
- style="opacity:0.40163933" />
- <g
- style="opacity:0.40163933"
- transform="matrix(-0.782995,0,0,0.650879,-2245.796,690.3016)"
- id="g4646" />
- <g
- style="opacity:0.40163933"
- transform="matrix(1,0,0,0.650879,955.167,697.6294)"
- id="g4730" />
- <g
- id="g4748"
- transform="matrix(1,0,0,0.650879,955.167,697.6294)"
- style="opacity:0.40163933" />
- <path
- style="fill:#ffffff;fill-opacity:0.75688076;fill-rule:nonzero;stroke:none;stroke-width:0.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4;stroke-opacity:1"
- d="M 181.23105,2.6244365 L 181.23105,0.41896716 L 181.23105,2.6244365 z "
- id="path2408"
- sodipodi:nodetypes="ccc" />
- </g>
- <path
- style="opacity:0.24344569;fill:url(#radialGradient31866);fill-opacity:1;stroke:none;stroke-width:10;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:1.08779998;stroke-opacity:1"
- d="M 73,63.5 L 116,63.5 L 116,85.5 L 93.5,108 L 73,108 L 73,63.5 z "
- id="rect31858"
- sodipodi:nodetypes="cccccc" />
- <g
- id="g4960"
- transform="translate(10,-6)">
- <path
- transform="translate(40,0)"
- clip-path="url(#clipPath7084)"
- sodipodi:nodetypes="cccc"
- style="opacity:0.4;fill:#000000;fill-opacity:1;filter:url(#filter6697)"
- id="path5540"
- d="M 41.879531,115.98249 C 41.879531,115.98249 66.18914,91.672876 66.18914,91.672876 C 66.18914,91.672876 56.836,94.586 46.586,94.586 C 46.586,104.836 41.879531,115.98249 41.879531,115.98249 z " />
- <path
- sodipodi:nodetypes="csccc"
- d="M 79.172,120 C 79.172,120 91.086,110.086 96.586,104.586 C 102.086,99.086 112,87.172 112,87.172 C 112,87.172 98.25,96 88,96 C 88,106.25 79.172,120 79.172,120 z "
- id="path14523"
- style="fill:url(#linearGradient10213);fill-opacity:1" />
- </g>
- </g>
- <g
- inkscape:groupmode="layer"
- id="layer2"
- style="display:inline" />
- <g
- inkscape:groupmode="layer"
- id="layer3" />
-</svg>
--- a/securitydialogs/Autolock/resources/iconnotifier.svg Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,260 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-<svg
- xmlns:dc="http://purl.org/dc/elements/1.1/"
- xmlns:cc="http://web.resource.org/cc/"
- xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
- xmlns:svg="http://www.w3.org/2000/svg"
- xmlns="http://www.w3.org/2000/svg"
- xmlns:xlink="http://www.w3.org/1999/xlink"
- xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
- xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
- width="128"
- height="128"
- id="svg2606"
- sodipodi:version="0.32"
- inkscape:version="0.45+devel"
- version="1.0"
- sodipodi:docname="unknown.svg"
- inkscape:output_extension="org.inkscape.output.svg.inkscape"
- sodipodi:docbase="/home/david/Progetti/sandbox/svg/mimetypes">
- <defs
- id="defs2608">
- <linearGradient
- y2="0"
- x2="28"
- y1="57.5"
- x1="28"
- gradientUnits="userSpaceOnUse"
- id="linearGradient2973">
- <stop
- id="stop2975"
- style="stop-color:#2c72c7;stop-opacity:1;"
- offset="0" />
-
- <stop
- id="stop2977"
- style="stop-color:#0057ae;stop-opacity:1;"
- offset="1" />
-
- </linearGradient>
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient2973"
- id="linearGradient2086"
- x1="86.43512"
- y1="76.830994"
- x2="22.813417"
- y2="8.9537134"
- gradientUnits="userSpaceOnUse" />
- <linearGradient
- id="linearGradient10207">
- <stop
- style="stop-color:#a2a2a2;stop-opacity:1;"
- offset="0"
- id="stop10209" />
- <stop
- style="stop-color:#ffffff;stop-opacity:1;"
- offset="1"
- id="stop10211" />
- </linearGradient>
- <linearGradient
- id="XMLID_12_"
- gradientUnits="userSpaceOnUse"
- x1="96"
- y1="104"
- x2="88.000198"
- y2="96.000198">
- <stop
- offset="0"
- style="stop-color:#888A85"
- id="stop83" />
- <stop
- offset="0.0072"
- style="stop-color:#8C8E89"
- id="stop85" />
- <stop
- offset="0.0673"
- style="stop-color:#ABACA9"
- id="stop87" />
- <stop
- offset="0.1347"
- style="stop-color:#C5C6C4"
- id="stop89" />
- <stop
- offset="0.2652576"
- style="stop-color:#DBDBDA"
- id="stop91" />
- <stop
- offset="0.37646064"
- style="stop-color:#EBEBEB"
- id="stop93" />
- <stop
- offset="0.48740286"
- style="stop-color:#F7F7F6"
- id="stop95" />
- <stop
- offset="0.6324091"
- style="stop-color:#FDFDFD"
- id="stop97" />
- <stop
- offset="1"
- style="stop-color:#FFFFFF"
- id="stop99" />
- </linearGradient>
- <radialGradient
- id="XMLID_8_"
- cx="102"
- cy="112.3047"
- r="139.55859"
- gradientUnits="userSpaceOnUse">
- <stop
- offset="0"
- style="stop-color:#b7b8b9;stop-opacity:1;"
- id="stop41" />
- <stop
- offset="0.18851049"
- style="stop-color:#ECECEC"
- id="stop47" />
- <stop
- offset="0.25718147"
- style="stop-color:#FAFAFA"
- id="stop49" />
- <stop
- offset="0.30111277"
- style="stop-color:#FFFFFF"
- id="stop51" />
- <stop
- offset="0.5313"
- style="stop-color:#FAFAFA"
- id="stop53" />
- <stop
- offset="0.8449"
- style="stop-color:#EBECEC"
- id="stop55" />
- <stop
- offset="1"
- style="stop-color:#E1E2E3"
- id="stop57" />
- </radialGradient>
- <filter
- inkscape:collect="always"
- x="-0.19200002"
- width="1.3839999"
- y="-0.19199999"
- height="1.3839999"
- id="filter6697">
- <feGaussianBlur
- inkscape:collect="always"
- stdDeviation="1.9447689"
- id="feGaussianBlur6699" />
- </filter>
- <clipPath
- clipPathUnits="userSpaceOnUse"
- id="clipPath7084">
- <path
- style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
- d="M 72,88 L 40,120 L 32,120 L 32,80 L 72,80 L 72,88 z"
- id="path7086" />
- </clipPath>
- <radialGradient
- inkscape:collect="always"
- xlink:href="#XMLID_8_"
- id="radialGradient9437"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(1,0,0,0.9996653,2e-6,3.0160848e-3)"
- cx="102"
- cy="112.3047"
- r="139.55859" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient10207"
- id="linearGradient10213"
- x1="98.617439"
- y1="106.41443"
- x2="91.228737"
- y2="99.254974"
- gradientUnits="userSpaceOnUse" />
- <filter
- inkscape:collect="always"
- id="filter2770">
- <feGaussianBlur
- inkscape:collect="always"
- stdDeviation="2.0786429"
- id="feGaussianBlur2772" />
- </filter>
- </defs>
- <sodipodi:namedview
- id="base"
- pagecolor="#ffffff"
- bordercolor="#666666"
- borderopacity="1.0"
- inkscape:pageopacity="0.0"
- inkscape:pageshadow="2"
- inkscape:zoom="2.8284271"
- inkscape:cx="64"
- inkscape:cy="85.975621"
- inkscape:document-units="px"
- inkscape:current-layer="layer1"
- width="128px"
- height="128px"
- gridspacingx="4px"
- gridspacingy="4px"
- gridempspacing="2"
- showgrid="true"
- inkscape:grid-points="true"
- showguides="true"
- inkscape:guide-bbox="true"
- inkscape:window-width="1016"
- inkscape:window-height="692"
- inkscape:window-x="0"
- inkscape:window-y="0" />
- <metadata
- id="metadata2611">
- <rdf:RDF>
- <cc:Work
- rdf:about="">
- <dc:format>image/svg+xml</dc:format>
- <dc:type
- rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
- </cc:Work>
- </rdf:RDF>
- </metadata>
- <g
- inkscape:label="Livello 1"
- inkscape:groupmode="layer"
- id="layer1">
- <path
- style="opacity:0.5;fill:#000000;fill-opacity:1;filter:url(#filter2770)"
- d="M 16,8 L 16,120 C 16,120 79.15625,120 79.15625,120 L 79.1875,120 C 79.187503,120 91.09375,110.09375 96.59375,104.59375 C 102.09375,99.09375 112,87.1875 112,87.1875 L 112,87.15625 L 112,8 L 16,8 z"
- id="path7865"
- sodipodi:nodetypes="csccscccc"
- transform="matrix(1.0416667,0,0,1.0267857,-2.6666667,-1.2142891)" />
- <path
- style="fill:#ffffff;fill-opacity:1"
- d="M 16.000001,8 L 16,120 C 16,120 79.146418,120 79.146418,120 L 112,87.14642 L 112,8 L 16.000001,8 z"
- id="path34"
- sodipodi:nodetypes="cccccc" />
- <path
- style="fill:url(#radialGradient9437);fill-opacity:1"
- d="M 18.000002,9.0000034 C 17.449002,9.0000034 17.000002,9.4488534 17.000002,9.9996684 L 17.000002,117.96352 C 17.000002,118.51533 17.449002,118.96318 18.000002,118.96318 L 77.171999,118.96318 C 77.434999,118.96318 79.934679,119.08131 80.12068,118.89438 L 110.707,88.094202 C 110.894,87.907264 111,85.40942 111,85.146508 L 111,9.9996684 C 111,9.4488534 110.552,9.0000034 110,9.0000034 L 18.000002,9.0000034 z"
- id="path59"
- sodipodi:nodetypes="ccccccccccc" />
- <path
- d="M 41.879531,115.98249 C 41.879531,115.98249 66.18914,91.672876 66.18914,91.672876 C 66.18914,91.672876 56.836,94.586 46.586,94.586 C 46.586,104.836 41.879531,115.98249 41.879531,115.98249 z"
- id="path5540"
- style="opacity:0.4;fill:#000000;fill-opacity:1;filter:url(#filter6697)"
- sodipodi:nodetypes="cccc"
- clip-path="url(#clipPath7084)"
- transform="translate(40,0)" />
- <path
- style="fill:url(#linearGradient10213);fill-opacity:1"
- id="path14523"
- d="M 79.172,120 C 79.172,120 91.086,110.086 96.586,104.586 C 102.086,99.086 112,87.172 112,87.172 C 112,87.172 98.25,96 88,96 C 88,106.25 79.172,120 79.172,120 z"
- sodipodi:nodetypes="csccc" />
- <path
- id="text2076"
- d="M 62.842105,28 C 69.438566,28.00007 74.631544,30.070244 78.421053,34.210526 C 80.947326,37.017606 82.210485,40.386024 82.210528,44.315789 C 82.210485,49.157946 79.894696,54.596537 75.263159,60.631581 C 74.421018,61.684251 73.052597,63.368459 71.157895,65.684214 C 67.789444,69.89477 65.57892,74.807045 64.526316,80.421056 C 64.456114,80.912302 64.38594,81.40353 64.315789,81.89474 L 62.526315,81.89474 C 62.666642,76.491254 63.719273,71.508803 65.68421,66.947371 L 68.631579,60.210528 C 71.228037,54.245661 72.526282,48.771981 72.526316,43.789473 C 72.526282,39.228131 70.806986,35.684274 67.36842,33.157894 C 65.543832,31.824628 63.473658,31.157962 61.157895,31.157894 C 57.508752,31.157962 54.631562,32.280768 52.526315,34.526317 C 51.614021,35.579011 51.15788,36.631642 51.157894,37.684211 C 51.15788,38.315851 51.894722,39.543919 53.36842,41.368421 C 54.561386,42.982513 55.157877,44.350934 55.157894,45.473685 C 55.157877,47.649175 54.175422,49.017596 52.210526,49.578948 C 51.789459,49.719349 51.33332,49.789525 50.842103,49.789475 C 47.473673,49.789525 45.789465,47.614088 45.789472,43.26316 C 45.789465,37.929885 48.070165,33.789539 52.631576,30.842104 C 55.578928,28.947438 58.982435,28.00007 62.842105,28 M 63.578947,88.736839 C 65.894709,88.736854 67.578918,89.82458 68.631579,92.00001 C 69.052602,92.77194 69.263127,93.61404 69.263159,94.52631 C 69.263127,97.05264 68.070146,98.73684 65.68421,99.57894 C 64.98243,99.85965 64.245588,100 63.473684,100 C 60.87717,100 59.157873,98.8772 58.315788,96.63158 C 58.105243,96.00001 57.99998,95.33335 57.999998,94.63158 C 57.99998,91.96492 59.122785,90.14037 61.36842,89.157906 C 62.070151,88.877214 62.806993,88.736854 63.578947,88.736839"
- style="font-size:74.98017883px;font-style:normal;font-weight:normal;fill:url(#linearGradient2086);fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" />
- </g>
-</svg>
--- a/securitydialogs/Autolock/resources/qtg_large_device_lock.svg Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,140 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1 Tiny//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-tiny.dtd">
-<svg baseProfile="tiny" height="60" viewBox="0 0 60 60" width="60" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
-<g>
-<rect fill="none" height="60" width="60"/>
-<linearGradient gradientUnits="userSpaceOnUse" id="SVGID_1" x1="30" x2="30" y1="4.26" y2="55.61">
-<stop offset="0" stop-color="#D1D7D9"/>
-<stop offset="0.07" stop-color="#D1D7D9"/>
-<stop offset="0.26" stop-color="#BDC2C4"/>
-<stop offset="0.66" stop-color="#949DA1"/>
-<stop offset="0.96" stop-color="#ADB3B5"/>
-<stop offset="1" stop-color="#595C5E"/>
-</linearGradient>
-<path d="M46.574,52.922c0,1.557-1.264,2.818-2.822,2.818H16.248c-1.558,0-2.82-1.262-2.82-2.818V7.082 c0-1.556,1.262-2.82,2.82-2.82h27.504c1.559,0,2.822,1.264,2.822,2.82V52.922z" fill="url(#SVGID_1)"/>
-<linearGradient gradientUnits="userSpaceOnUse" id="SVGID_2" x1="30" x2="30" y1="4.26" y2="54.73">
-<stop offset="0" stop-color="#E4EBED"/>
-<stop offset="0.07" stop-color="#E4EBED"/>
-<stop offset="0.26" stop-color="#D6DCDE"/>
-<stop offset="0.66" stop-color="#B2BEC2"/>
-<stop offset="1" stop-color="#ADB3B5"/>
-</linearGradient>
-<path d="M43.752,4.262H16.248c-1.558,0-2.82,1.264-2.82,2.82v45.84c0,0.752,0.3,1.432,0.78,1.938 c-0.044-0.172-0.072-0.344-0.072-0.529v-1.408V8.492v-1.41c0-1.168,0.95-2.118,2.114-2.118h27.504c1.166,0,2.114,0.95,2.114,2.118 v1.41v44.43v1.408c0,0.186-0.028,0.357-0.072,0.529c0.481-0.506,0.782-1.186,0.782-1.938V7.082 C46.574,5.526,45.311,4.262,43.752,4.262z" fill="url(#SVGID_2)"/>
-<linearGradient gradientUnits="userSpaceOnUse" id="SVGID_3" x1="30" x2="30" y1="7.84" y2="42.35">
-<stop offset="0" stop-color="#B6BBBD"/>
-<stop offset="1" stop-color="#F0FBFF"/>
-</linearGradient>
-<rect fill="url(#SVGID_3)" fill-opacity="0.6" height="34.554" stroke-opacity="0.6" width="28.918" x="15.542" y="7.788"/>
-<linearGradient gradientUnits="userSpaceOnUse" id="SVGID_4" x1="30" x2="30" y1="8.54" y2="41.64">
-<stop offset="0" stop-color="#6E6E6E"/>
-<stop offset="1" stop-color="#333333"/>
-</linearGradient>
-<rect fill="url(#SVGID_4)" height="33.146" width="27.504" x="16.248" y="8.492"/>
-<linearGradient gradientUnits="userSpaceOnUse" id="SVGID_5" x1="30" x2="30" y1="9.25" y2="40.94">
-<stop offset="0" stop-color="#3BC8EB"/>
-<stop offset="0.39" stop-color="#2D9BD2"/>
-<stop offset="0.89" stop-color="#1347BA"/>
-<stop offset="1" stop-color="#1347BA"/>
-</linearGradient>
-<rect fill="url(#SVGID_5)" height="31.735" width="26.094" x="16.954" y="9.198"/>
-<linearGradient gradientUnits="userSpaceOnUse" id="SVGID_6" x1="30" x2="30" y1="9.75" y2="22.36">
-<stop offset="0" stop-color="#85EFFF"/>
-<stop offset="1" stop-color="#3BA1D9"/>
-</linearGradient>
-<polygon fill="url(#SVGID_6)" points="43.046,20.48 16.954,23.3 16.954,9.904 43.046,9.904 "/>
-<rect fill="#9FE4FF" height="0.708" width="26.094" x="16.954" y="9.198"/>
-<linearGradient gradientUnits="userSpaceOnUse" id="SVGID_7" x1="30.2" x2="30.2" y1="7.82" y2="4.99">
-<stop offset="0" stop-color="#FFFFFF"/>
-<stop offset="1" stop-color="#D1D7D9"/>
-</linearGradient>
-<path d="M27.088,7.788c-0.792,0-1.412-0.516-1.412-1.176V6.14c0-0.658,0.622-1.176,1.412-1.176h6.238 c0.79,0,1.408,0.518,1.408,1.176v0.47c0,0.66-0.621,1.176-1.408,1.176h-6.238V7.788z" fill="url(#SVGID_7)"/>
-<linearGradient gradientUnits="userSpaceOnUse" id="SVGID_8" x1="30.21" x2="30.21" y1="5.38" y2="7.2">
-<stop offset="0" stop-color="#6C7375"/>
-<stop offset="1" stop-color="#BDC2C4"/>
-</linearGradient>
-<path d="M34.034,6.612c0,0.26-0.318,0.47-0.708,0.47h-6.238c-0.39,0-0.708-0.21-0.708-0.47V6.14 c0-0.262,0.316-0.468,0.708-0.468h6.238c0.388,0,0.708,0.208,0.708,0.468V6.612z" fill="url(#SVGID_8)"/>
-<linearGradient gradientUnits="userSpaceOnUse" id="SVGID_9" x1="29.89" x2="29.89" y1="43.08" y2="53.56">
-<stop offset="0" stop-color="#B6BBBD"/>
-<stop offset="1" stop-color="#FFFFFF"/>
-</linearGradient>
-<path d="M27.344,53.626c-1.512,0-2.744-1.216-2.744-2.712 V45.76c0-1.494,1.232-2.71,2.744-2.71h5.094c1.515,0,2.744,1.216,2.744,2.71v5.154c0,1.496-1.229,2.712-2.744,2.712H27.344z" fill="url(#SVGID_9)" fill-opacity="0.6" stroke-opacity="0.6"/>
-<path d="M27.34,52.922c-1.122,0-2.032-0.902-2.032-2.008V45.76 c0-1.107,0.91-2.008,2.032-2.008h5.104c1.123,0,2.031,0.9,2.031,2.008v5.154c0,1.105-0.908,2.008-2.031,2.008H27.34z" fill="#020202" fill-opacity="0.5" stroke-opacity="0.5"/>
-<linearGradient gradientUnits="userSpaceOnUse" id="SVGID_10" x1="29.89" x2="29.89" y1="44.43" y2="52.23">
-<stop offset="0" stop-color="#A6A8AB"/>
-<stop offset="0.7" stop-color="#58595B"/>
-<stop offset="1" stop-color="#808184"/>
-</linearGradient>
-<path d="M33.771,50.914c0,0.718-0.594,1.3-1.319,1.3h-5.12c-0.728,0-1.32-0.582-1.32-1.3V45.76 c0-0.716,0.592-1.298,1.32-1.298h5.12c0.726,0,1.319,0.582,1.319,1.298V50.914z" fill="url(#SVGID_10)"/>
-<path d="M28.836,50.805c-0.782,0-1.414-0.633-1.414-1.41v-2.119 c0-0.775,0.632-1.407,1.414-1.407h2.112c0.78,0,1.411,0.632,1.411,1.407v2.119c0,0.777-0.631,1.41-1.411,1.41H28.836z" fill="#020202" fill-opacity="0.2" stroke-opacity="0.2"/>
-<linearGradient gradientUnits="userSpaceOnUse" id="SVGID_11" x1="29.89" x2="29.89" y1="46.56" y2="50.1">
-<stop offset="0" stop-color="#D1D7D9"/>
-<stop offset="0.07" stop-color="#D1D7D9"/>
-<stop offset="0.26" stop-color="#BDC2C4"/>
-<stop offset="0.66" stop-color="#949DA1"/>
-<stop offset="0.96" stop-color="#ADB3B5"/>
-<stop offset="1" stop-color="#595C5E"/>
-</linearGradient>
-<path d="M28.836,50.098c-0.392,0-0.708-0.313-0.708-0.703v-2.119c0-0.385,0.314-0.703,0.708-0.703 h2.112c0.39,0,0.708,0.316,0.708,0.703v2.119c0,0.388-0.316,0.703-0.708,0.703H28.836z" fill="url(#SVGID_11)"/>
-<linearGradient gradientUnits="userSpaceOnUse" id="SVGID_12" x1="18.66" x2="18.66" y1="43.71" y2="52.23">
-<stop offset="0" stop-color="#B6BBBD"/>
-<stop offset="1" stop-color="#F0FBFF"/>
-</linearGradient>
-<path d="M18.256,52.214c-1.496,0-2.714-1.216-2.714-2.712 v-3.036c0-1.498,1.218-2.714,2.714-2.714h0.81c1.498,0,2.714,1.216,2.714,2.714v3.036c0,1.496-1.216,2.712-2.714,2.712H18.256z" fill="url(#SVGID_12)" fill-opacity="0.4" stroke-opacity="0.4"/>
-<linearGradient gradientUnits="userSpaceOnUse" id="SVGID_13" x1="18.66" x2="18.66" y1="44.43" y2="51.52">
-<stop offset="0" stop-color="#231F20"/>
-<stop offset="1" stop-color="#6D6E70"/>
-</linearGradient>
-<path d="M18.256,51.51c-1.106,0-2.008-0.9-2.008-2.008v-3.036 c0-1.11,0.902-2.006,2.008-2.006h0.81c1.11,0,2.01,0.896,2.01,2.006v3.036c0,1.107-0.9,2.008-2.01,2.008H18.256z" fill="url(#SVGID_13)" fill-opacity="0.7" stroke-opacity="0.7"/>
-<linearGradient gradientUnits="userSpaceOnUse" id="SVGID_14" x1="18.66" x2="18.66" y1="45.14" y2="50.82">
-<stop offset="0" stop-color="#C6FF45"/>
-<stop offset="0.73" stop-color="#66A00E"/>
-<stop offset="1" stop-color="#387300"/>
-</linearGradient>
-<path d="M20.37,49.502c0,0.721-0.582,1.303-1.302,1.303h-0.812c-0.718,0-1.302-0.582-1.302-1.303 v-3.036c0-0.72,0.584-1.302,1.302-1.302h0.81c0.72,0,1.302,0.582,1.302,1.302v3.036H20.37z" fill="url(#SVGID_14)"/>
-<path d="M40.322,52.214c-1.494,0-2.711-1.216-2.711-2.712 v-3.036c0-1.498,1.217-2.714,2.711-2.714h0.812c1.5,0,2.714,1.216,2.714,2.714v3.036c0,1.496-1.214,2.712-2.714,2.712H40.322z" fill="url(#SVGID_12)" fill-opacity="0.4" stroke-opacity="0.4"/>
-<path d="M40.322,51.51c-1.108,0-2.008-0.9-2.008-2.008v-3.036 c0-1.11,0.899-2.006,2.008-2.006h0.812c1.11,0,2.009,0.896,2.009,2.006v3.036c0,1.107-0.898,2.008-2.009,2.008H40.322z" fill="url(#SVGID_13)" fill-opacity="0.7" stroke-opacity="0.7"/>
-<linearGradient gradientUnits="userSpaceOnUse" id="SVGID_17" x1="40.73" x2="40.73" y1="45.14" y2="50.82">
-<stop offset="0" stop-color="#FFC142"/>
-<stop offset="0.75" stop-color="#CF4E18"/>
-<stop offset="1" stop-color="#B52100"/>
-</linearGradient>
-<path d="M42.438,49.502c0,0.721-0.582,1.303-1.301,1.303h-0.813c-0.717,0-1.301-0.582-1.301-1.303 v-3.036c0-0.72,0.584-1.302,1.301-1.302h0.813c0.719,0,1.301,0.582,1.301,1.302V49.502z" fill="url(#SVGID_17)"/>
-<rect fill="none" height="60" width="60"/>
-</g>
-<g transform="matrix(1 0 0 1 30 30)">
-<linearGradient gradientTransform="matrix(1 0 0 -1 8.3999 5.04)" gradientUnits="userSpaceOnUse" id="SVGID_1_" x1="-1.0313" x2="14.444" y1="-3.8467" y2="-3.8467">
-<stop offset="0" style="stop-color:#8C8C8C"/>
-<stop offset="0.5333" style="stop-color:#B3B3B3"/>
-<stop offset="1" style="stop-color:#808080"/>
-</linearGradient>
-<path d="M15.106,3.081c-4.303,0-7.794,3.46-7.854,7.749v2.881h2.657V10.83 c0.061-2.818,2.366-5.092,5.198-5.092c2.831,0,5.136,2.273,5.198,5.092v3.863h2.655V10.83C22.898,6.541,19.408,3.081,15.106,3.081z" fill="url(#SVGID_1_)"/>
-<linearGradient gradientTransform="matrix(1 0 0 -1 8.3999 5.04)" gradientUnits="userSpaceOnUse" id="SVGID_2_" x1="-0.5474" x2="13.9592" y1="-4.0928" y2="-4.0928">
-<stop offset="0" style="stop-color:#CCCCCC"/>
-<stop offset="0.5152" style="stop-color:#FFFFFF"/>
-<stop offset="1" style="stop-color:#CCCCCC"/>
-</linearGradient>
-<path d="M20.793,14.203V10.83c-0.066-3.084-2.617-5.582-5.687-5.582c-3.072,0-5.623,2.498-5.689,5.572v3.873 H7.743V10.83c0.057-4,3.359-7.258,7.363-7.258c4.003,0,7.304,3.258,7.361,7.265v3.366H20.793z" fill="url(#SVGID_2_)"/>
-<linearGradient gradientTransform="matrix(1 0 0 -1 8.3999 5.04)" gradientUnits="userSpaceOnUse" id="SVGID_3_" x1="-0.2461" x2="13.6586" y1="-4.0938" y2="-4.0938">
-<stop offset="0" style="stop-color:#B4B4B4"/>
-<stop offset="0.5" style="stop-color:#E6E6E6"/>
-<stop offset="1" style="stop-color:#BEBEBE"/>
-</linearGradient>
-<path d="M8.049,14.388V10.83c0.054-3.832,3.22-6.951,7.057-6.951c3.835,0,7.001,3.123,7.056,6.962v3.056H21.1 V10.83c-0.07-3.25-2.76-5.889-5.994-5.889c-3.236,0-5.925,2.634-5.995,5.872v3.574L8.049,14.388L8.049,14.388z" fill="url(#SVGID_3_)"/>
-<g>
-<rect fill="none" height="30" width="30"/>
-</g>
-<linearGradient gradientTransform="matrix(1 0 0 -1 8.3999 5.04)" gradientUnits="userSpaceOnUse" id="SVGID_4_" x1="-3.1958" x2="16.3945" y1="-15.3169" y2="-15.3169">
-<stop offset="0" style="stop-color:#ED8C0D"/>
-<stop offset="0.24" style="stop-color:#FFE692"/>
-<stop offset="0.75" style="stop-color:#ED8C0D"/>
-<stop offset="0.8667" style="stop-color:#FFB81F"/>
-<stop offset="1" style="stop-color:#ED8C0D"/>
-</linearGradient>
-<path d="M24.795,26.633c0,0.338-0.273,0.612-0.611,0.612H5.816c-0.338,0-0.612-0.274-0.612-0.612V14.082 c0-0.338,0.274-0.613,0.612-0.613h18.368c0.338,0,0.61,0.275,0.61,0.613L24.795,26.633L24.795,26.633z" fill="url(#SVGID_4_)"/>
-<path d="M24.184,13.469H5.816c-0.338,0-0.612,0.275-0.612,0.613v0.611 c0-0.338,0.274-0.611,0.612-0.611h18.368c0.338,0,0.61,0.273,0.61,0.611v-0.611C24.795,13.744,24.521,13.469,24.184,13.469z" fill="#FFFFFF" fill-opacity="0.4" stroke-opacity="0.4"/>
-<rect fill="#EE8F11" fill-opacity="0.5" height="2.144" stroke-opacity="0.5" width="19.591" x="5.204" y="16.225"/>
-<rect fill-opacity="0.25" height="0.308" stroke-opacity="0.25" width="19.591" x="5.204" y="16.225"/>
-<path d="M24.184,27.245H5.816c-0.338,0-0.612-0.274-0.612-0.612v-0.611 c0,0.338,0.274,0.611,0.612,0.611h18.368c0.338,0,0.61-0.273,0.61-0.611v0.611C24.795,26.971,24.521,27.245,24.184,27.245z" fill-opacity="0.25" stroke-opacity="0.25"/>
-<rect fill="#FEE38E" fill-opacity="0.25" height="0.307" stroke-opacity="0.25" width="19.591" x="5.204" y="18.367"/>
-</g>
-</svg>
--- a/securitydialogs/Autolock/rom/Autolock.iby Tue Aug 31 16:04:40 2010 +0300
+++ b/securitydialogs/Autolock/rom/Autolock.iby Wed Sep 01 12:19:59 2010 +0100
@@ -14,26 +14,12 @@
* Description:
*
*/
+
#ifndef __AUTOLOCK_IBY__
#define __AUTOLOCK_IBY__
-#include <data_caging_paths_for_iby.hrh>
-
S60_APP_EXE(Autolock)
S60_APP_BITMAP(Autolock)
-//S60_APP_AIF_RSC(Autolock)
-S60_APP_RESOURCE(Autolock)
-
-file=ABI_DIR\BUILD_DIR\autolockuseractivityservice.dll SHARED_LIB_DIR\autolockuseractivityservice.dll
-data=\epoc32\data\z\resource\qt\crml\autolock.qcrml \resource\qt\crml\autolock.qcrml
+S60_APP_AIF_RSC(Autolock)
-// this is already done in IndicatorAutolockPlugin.iby
-// file=ABI_DIR\BUILD_DIR\IndicatorAutolockPlugin.dll SHARED_LIB_DIR\IndicatorAutolockPlugin.dll
-
-// Autolock_reg.rsc needs to be also in import\apps because this is where QtHighway searches for it.
-data=ZSYSTEM\..\PRIVATE\10003a3f\import\apps\Autolock_reg.rsc private\10003a3f\import\apps\Autolock_reg.rsc
-
-// this is already done in IndicatorAutolockPlugin.iby
-// data=\epoc32\data\z\resource\plugins\indicators\indicatorautolockplugin.qtplugin \resource\plugins\indicators\indicatorautolockplugin.qtplugin
-
-#endif // __AUTOLOCK_IBY__
+#endif
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/securitydialogs/Autolock/rom/AutolockResources.iby Wed Sep 01 12:19:59 2010 +0100
@@ -0,0 +1,26 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+
+#ifndef __AUTOLOCK_RESOURCES_IBY__
+#define __AUTOLOCK_RESOURCES_IBY__
+
+//Resource file(s) for AUTOLOCK application
+
+S60_APP_RESOURCE(Autolock)
+
+#endif
--- a/securitydialogs/Autolock/rom/AutolockSrv.iby Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,22 +0,0 @@
-/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:
-*
-*/
-#ifndef __AUTOLOCKSRV_IBY__
-#define __AUTOLOCKSRV_IBY__
-
-// this exists just to delete the old AutolockSrv.iby file, which contains some duplicated files
-
-#endif // __AUTOLOCKSRV_IBY__
--- a/securitydialogs/Autolock/service_conf.xml Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="utf-8" ?>
-<service>
- <name>com.nokia.services.Autolock</name>
- <filepath>No path really</filepath>
- <description>Autolock</description>
- <interface>
- <name>Autolock</name>
- <version>2.0</version>
- <description>Interface to Autolock</description>
- </interface>
-</service>
\ No newline at end of file
--- a/securitydialogs/Autolock/service_conf_new.xml Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="utf-8" ?>
-<service>
- <name>com.nokia.services.Autolock</name>
- <filepath>No path</filepath>
- <description>Autolock service</description>
- <interface>
- <name>Autolock</name>
- <version>2.0</version>
- <description>Interface to Autolock</description>
- <customproperty key="txt_aiw_action_text">Dial now</customproperty>
- </interface>
-</service>
\ No newline at end of file
--- a/securitydialogs/Autolock/service_conf_old_format.xml Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="utf-8" ?>
-<service name="com.nokia.services.Autolock" filepath="must-not-be-empty" >
- <description>Autolock</description>
- <interface name="Autolock" version="1.0" capabilities="">
- <description>Dial interface</description>
- </interface>
-</service>
\ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/securitydialogs/Autolock/src/AutoKeyGuardCenRepI.cpp Wed Sep 01 12:19:59 2010 +0100
@@ -0,0 +1,154 @@
+/*
+* Copyright (c) 2002 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:
+*
+*/
+
+
+#include <centralrepository.h>
+#include <settingsinternalcrkeys.h>
+#include "AutoKeyguardObserver.h"
+#include "AutoKeyguardCenRepI.h"
+
+
+
+// ================= MEMBER FUNCTIONS =======================
+//
+// ----------------------------------------------------------
+// CAutoKeyguardCenRepI::NewLC()
+// Two-phased constructor.
+// ----------------------------------------------------------
+//
+CAutoKeyguardCenRepI* CAutoKeyguardCenRepI::NewLC(CAutoKeyguardObserver* aObserver)
+ {
+ CAutoKeyguardCenRepI* self = new (ELeave) CAutoKeyguardCenRepI(aObserver);
+ CleanupStack::PushL(self);
+ self->ConstructL();
+ return self;
+ }
+
+//
+// ----------------------------------------------------------
+// CAutoKeyguardCenRepI::NewL()
+// Two-phased constructor.
+// ----------------------------------------------------------
+//
+CAutoKeyguardCenRepI* CAutoKeyguardCenRepI::NewL(CAutoKeyguardObserver* aObserver)
+ {
+ CAutoKeyguardCenRepI* self = NewLC(aObserver);
+ CleanupStack::Pop(); //self
+ return self;
+ }
+
+//
+// ----------------------------------------------------------
+// CAutoKeyguardCenRepI::~CAutoKeyguardCenRepI()
+// Destructor
+// ----------------------------------------------------------
+//
+CAutoKeyguardCenRepI::~CAutoKeyguardCenRepI()
+ {
+ if(iNotifyHandler)
+ {
+ iNotifyHandler->StopListening();
+ delete iNotifyHandler;
+ }
+ if(iSession)
+ delete iSession;
+ }
+//
+// ----------------------------------------------------------
+// CAutoKeyguardCenRepI::CAutoKeyguardCenRepI()
+// C++ default constructor
+// ----------------------------------------------------------
+//
+CAutoKeyguardCenRepI::CAutoKeyguardCenRepI(CAutoKeyguardObserver* aObserver):iObserver(aObserver)
+ {
+ }
+
+//
+// ----------------------------------------------------------
+// CAutoKeyguardCenRepI::ConstructL()
+// Symbian OS default constructor
+// ----------------------------------------------------------
+//
+void CAutoKeyguardCenRepI::ConstructL()
+ {
+ // init cenrep connection
+ iSession = CRepository::NewL(KCRUidSecuritySettings);
+
+ iNotifyHandler = CCenRepNotifyHandler::NewL(*this, *iSession, CCenRepNotifyHandler::EIntKey, KSettingsAutomaticKeyguardTime);
+ iNotifyHandler->StartListeningL();
+ }
+
+//
+// ----------------------------------------------------------
+// CAutoKeyguardCenRepI::HandleNotifyInt()
+// Handles autoKeyguard period changes. Called by CenRep.
+// ----------------------------------------------------------
+//
+void CAutoKeyguardCenRepI::HandleNotifyInt(TUint32 aId, TInt /*aNewValue*/)
+ {
+ if(aId == KSettingsAutomaticKeyguardTime)
+ {
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(AUTOLOCK)CAutoKeyguardCenRepI::HandleNotifyInt() Reset timeout"));
+ #endif
+ ResetInactivityTimeout();
+ }
+ return;
+ }
+
+void CAutoKeyguardCenRepI::HandleNotifyError(TUint32 /*aId*/, TInt /*error*/, CCenRepNotifyHandler* /*aHandler*/)
+ {
+ return;
+ }
+
+void CAutoKeyguardCenRepI::HandleNotifyGeneric(TUint32 aId)
+ {
+ if ( aId == NCentralRepositoryConstants::KInvalidNotificationId )
+ {//Repository wide reset caused generic notification
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(AUTOLOCK)CAutoKeyguardCenRepI::HandleNotifyGeneric() Reset timeout"));
+ #endif
+ ResetInactivityTimeout();
+ }
+ return;
+ }
+
+//
+// ----------------------------------------------------------
+// CAutoKeyguardCenRepI::ResetInactivityTimeoutL()
+// Resets autoKeyguard timer
+// ----------------------------------------------------------
+//
+void CAutoKeyguardCenRepI::ResetInactivityTimeout()
+ {
+ iObserver->ResetInactivityTimeout();
+ }
+
+//
+// ----------------------------------------------------------
+// CAutoKeyguardCenRepI::Timeout()
+// Returns currents autoKeyguard period (in seconds)
+// ----------------------------------------------------------
+//
+TInt CAutoKeyguardCenRepI::Timeout()
+ {
+ TInt period = 0;
+ iSession->Get(KSettingsAutomaticKeyguardTime, period);
+ return period;
+ }
+
+// END OF FILE
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/securitydialogs/Autolock/src/AutoKeyguardObserver.cpp Wed Sep 01 12:19:59 2010 +0100
@@ -0,0 +1,468 @@
+/*
+* Copyright (c) 2006 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:
+*
+*/
+
+
+#include <aknappui.h>
+#include <aknkeylock.h>
+#include <AknUtils.h>
+#include <activitymanager.h>
+#include <AknNotifierController.h>
+#include <centralrepository.h>
+#include <avkondomainpskeys.h>
+#include <e32property.h>
+#include <PSVariables.h>
+#include <startupdomainpskeys.h>
+#include <ctsydomainpskeys.h>
+#include <activeidle2domainpskeys.h>
+#include <coreapplicationuisdomainpskeys.h>
+#include <ScreensaverInternalPSKeys.h>
+#include <hwrmdomainpskeys.h>
+#include "AutoKeyguardCenRepI.h"
+#include "AutoKeyguardObserver.h"
+#include "AutolockPrivateCRKeys.h"
+#include "AutolockAppUiInterface.h"
+
+const TInt AutoKeyguardOff(60000);
+// Screensaver "On" status value
+const TInt KSsOn = 1;
+// Screensaver started fron idle status value
+const TInt KSsStartedFromIdle = 1;
+//Flip open
+const TInt KFlipOpen = 1;
+
+// ================= MEMBER FUNCTIONS =======================
+//
+// ----------------------------------------------------------
+// CAutoKeyguardObserver::NewL()
+// ----------------------------------------------------------
+//
+
+CAutoKeyguardObserver* CAutoKeyguardObserver::NewL( MAutolockAppUiInterface* aAppUiI )
+ {
+ #ifdef RD_AUTO_KEYGUARD
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(AUTOLOCK)CAutoKeyguardObserver::NewL() BEGIN"));
+ #endif
+ CAutoKeyguardObserver* self = new (ELeave) CAutoKeyguardObserver( aAppUiI );
+ CleanupStack::PushL(self);
+ self->ConstructL(self);
+ CleanupStack::Pop(); //self
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(AUTOLOCK)CAutoKeyguardObserver::NewL() END"));
+ #endif
+ return self;
+ #else
+ return NULL;
+ #endif //RD_AUTO_KEYGUARD
+ }
+//
+// ----------------------------------------------------------
+// CAutoKeyguardObserver::CAutoKeyguardObserver()
+// C++ default constructor
+// ----------------------------------------------------------
+//
+CAutoKeyguardObserver::CAutoKeyguardObserver( MAutolockAppUiInterface* aAppUiI ):
+ iAppUiI( aAppUiI )
+ {
+ }
+
+//
+// ----------------------------------------------------------
+// CAutoKeyguardObserver::ConstructL()
+// Symbian OS default constructor
+// ----------------------------------------------------------
+//
+void CAutoKeyguardObserver::ConstructL(CAutoKeyguardObserver* aObserver)
+ {
+ #ifdef RD_AUTO_KEYGUARD
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(AUTOLOCK)CAutoKeyguardObserver::ConstructL() BEGIN"));
+ #endif
+ //Central Repository handler
+ iCenRepI = CAutoKeyguardCenRepI::NewL(aObserver);
+ // Activitymanager
+ iActivityManager = CUserActivityManager::NewL(CActive::EPriorityStandard);
+ StartActivityMonitoringL();
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(AUTOLOCK)CAutoKeyguardObserver::ConstructL() END"));
+ #endif
+ #else // !RD_AUTO_KEYGUARD
+ iCenRepI = NULL;
+ iActivityManager = NULL;
+ #endif //RD_AUTO_KEYGUARD
+ }
+//
+// ----------------------------------------------------------
+// CAutoKeyguardObserver::StartActivityMonitoringL()
+// Start monitoring user activity
+// ----------------------------------------------------------
+//
+void CAutoKeyguardObserver::StartActivityMonitoringL()
+ {
+ #ifdef RD_AUTO_KEYGUARD
+ SetActivityManagerL();
+ #endif //RD_AUTO_KEYGUARD
+ }
+
+//
+// ----------------------------------------------------------
+// CAutoKeyguardObserver::StopActivityMonitoring()
+// Stop monitoring user activity
+// ----------------------------------------------------------
+//
+void CAutoKeyguardObserver::StopActivityMonitoring()
+ {
+ #ifdef RD_AUTO_KEYGUARD
+ CancelActivityManager();
+ #endif // RD_AUTO_KEYGUARD
+ }
+
+//
+// ----------------------------------------------------------
+// CAutoKeyguardObserver::SetActivityManagerL()
+// Initializes activymanager
+// ----------------------------------------------------------
+//
+void CAutoKeyguardObserver::SetActivityManagerL()
+ {
+ #ifdef RD_AUTO_KEYGUARD
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(AUTOLOCK)CAutoKeyguardObserver::SetActivityManagerL() BEGIN"));
+ #endif
+ if (AutoKeyguardTimeout() )
+ {
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(AUTOLOCK)CAutoKeyguardObserver::SetActivityManagerL() ON: Start manager"));
+ #endif
+ iActivityManager->Start(AutoKeyguardTimeout(), TCallBack(HandleInactiveEventL,this),
+ TCallBack(HandleActiveEventL,this));
+ }
+ else
+ {
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(AUTOLOCK)CAutoKeyguardObserver::SetActivityManagerL() OFF: Start manager"));
+ #endif
+ iActivityManager->Start(AutoKeyguardOff, TCallBack(HandleInactiveEventL,this),
+ TCallBack(HandleActiveEventL,this));
+ }
+
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(AUTOLOCK)CAutoKeyguardObserver::SetActivityManagerL() END"));
+ #endif
+ #endif //RD_AUTO_KEYGUARD
+ }
+//
+// ----------------------------------------------------------
+// CAutoKeyguardObserver::CancelActivityManager()
+// UnInitializes activymanager
+// ----------------------------------------------------------
+//
+void CAutoKeyguardObserver::CancelActivityManager()
+ {
+ #ifdef RD_AUTO_KEYGUARD
+ if ( iActivityManager )
+ {
+ iActivityManager->Cancel();
+ }
+ #endif //RD_AUTO_KEYGUARD
+ }
+//
+// ----------------------------------------------------------
+// CAutoKeyguardObserver::~CAutoKeyguardObserver()
+// Destructor
+// ----------------------------------------------------------
+//
+CAutoKeyguardObserver::~CAutoKeyguardObserver()
+ {
+ #ifdef RD_AUTO_KEYGUARD
+ if(iCenRepI)
+ delete iCenRepI;
+ if(iActivityManager)
+ {
+ StopActivityMonitoring();
+ delete iActivityManager;
+ iActivityManager = NULL;
+ }
+ #endif //RD_AUTO_KEYGUARD
+ }
+//
+// ----------------------------------------------------------
+// CAutoKeyguardObserver::AutoKeyguardTimeout()
+// Returns current AutoKeyguard period
+// ----------------------------------------------------------
+//
+TInt CAutoKeyguardObserver::AutoKeyguardTimeout()
+ {
+ #ifdef RD_AUTO_KEYGUARD
+ return iCenRepI->Timeout();
+ #else
+ return 0;
+ #endif //RD_AUTO_KEYGUARD
+ }
+//
+// ----------------------------------------------------------
+// CAutoKeyguardObserver::ResetInactivityTimeoutL()
+// Gets AutoKeyguard period and starts monitoring user activity
+// ----------------------------------------------------------
+//
+void CAutoKeyguardObserver::ResetInactivityTimeout()
+ {
+ #ifdef RD_AUTO_KEYGUARD
+ if (AutoKeyguardTimeout() )
+ {
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(AUTOLOCK)CAutoKeyguardObserver::ResetInactivityTimeoutL() ON"));
+ #endif
+ iActivityManager->SetInactivityTimeout(AutoKeyguardTimeout());
+ }
+ else
+ {
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(AUTOLOCK)CAutoKeyguardObserver::ResetInactivityTimeoutL() OFF"));
+ #endif
+ iActivityManager->SetInactivityTimeout(AutoKeyguardOff);
+ }
+ #endif //RD_AUTO_KEYGUARD
+ }
+//
+// ----------------------------------------------------------
+// CAutoKeyguardObserver::HandleActiveEventL()
+// Handles Active event. Called by ActivityManager
+// ----------------------------------------------------------
+//
+TInt CAutoKeyguardObserver::HandleActiveEventL(TAny* /*aPtr*/)
+ {
+ return KErrNone;
+ }
+
+//
+// ----------------------------------------------------------
+// CAutoKeyguardObserver::HandleInactiveEventL()
+// Handles InActive event. Called by ActivityManager
+// ----------------------------------------------------------
+//
+TInt CAutoKeyguardObserver::HandleInactiveEventL(TAny* aPtr)
+ {
+ #ifdef RD_AUTO_KEYGUARD
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(AUTOLOCK)CAutoKeyguardObserver::HandleInactiveEventL() BEGIN"));
+ #endif
+ if ( STATIC_CAST(CAutoKeyguardObserver*, aPtr)->AutoKeyguardTimeout() )
+ {
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(AUTOLOCK)CAutoKeyguardObserver::HandleInactiveEventL() Lock"));
+ #endif
+ STATIC_CAST(CAutoKeyguardObserver*, aPtr)->LockKeysL();
+ }
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(AUTOLOCK)CAutoKeyguardObserver::HandleInactiveEventL() END"));
+ #endif
+ #endif //RD_AUTO_KEYGUARD
+ return KErrNone;
+ }
+
+//
+// ----------------------------------------------------------
+// CAutoKeyguardObserver::LockKeysL()
+// Locks system
+// ----------------------------------------------------------
+//
+void CAutoKeyguardObserver::LockKeysL()
+ {
+ #ifdef RD_AUTO_KEYGUARD
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(AUTOLOCK)CAutoKeyguardObserver::LockKeysL() BEGIN"));
+ #endif
+ CRepository* repository = CRepository::NewL(KCRUidAutolockConf);
+ TInt keyguardConf(0);
+ //Check local keyguard variation key
+ repository->Get(KAutoKeyLockConf, keyguardConf);
+ delete repository;
+ if(keyguardConf & KAutoKeylockFeatureIdFlipOpenDisabled)
+ {
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(AUTOLOCK)CAutoKeyguardObserver::LockKeysL() Flip variation"));
+ #endif
+ TInt flipState(KFlipOpen);
+ RProperty::Get(KPSUidHWRM, KHWRMFlipStatus, flipState);
+ TInt lightStatus=EForcedLightsUninitialized;
+ RProperty::Get(KPSUidCoreApplicationUIs,KLightsVTForcedLightsOn,lightStatus );
+
+ //If flip is open and feature flag is on. don't lock
+ if(flipState == KFlipOpen || lightStatus == EForcedLightsOn)
+ {
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(AUTOLOCK)CAutoKeyguardObserver::LockKeysL() Flip open"));
+ #endif
+ return;
+ }
+
+ }
+
+ { // REQ 414-5466 Prevention of device lock in context of Hands Free Voice UI
+ TInt vuiValue = 0;
+ TUid KHFVuiModePSUid = { 0x102818E7 };
+ enum THFVuiModePSKeys
+ {
+ EHFVuiPSModeId = 1000
+ };
+ TInt tRet = RProperty::Get(KHFVuiModePSUid, EHFVuiPSModeId, vuiValue); // also 0 if can't get because permissions or because doesn't exists
+ #if defined(_DEBUG)
+ RDebug::Printf( "%s %s (%u) gatting KHFVuiModePSUid+EHFVuiPSModeId=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, tRet );
+ RDebug::Printf( "%s %s (%u) vuiValue=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, vuiValue );
+ #endif
+ if(vuiValue)
+ {
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(AUTOLOCK)CAutoKeyguardObserver::LockKeysL() Voice functions active. No locking possible."));
+ #endif
+ return;
+ }
+ }
+
+ TInt value = 0;
+ TBool keylockOn = EFalse;
+ TBool autolockOn = EFalse;
+ TBool idle = EFalse;
+ TInt callState = EPSCTsyCallStateNone;
+ TBool okToLock = EFalse;
+ TBool screenSaverOn = EFalse;
+ TBool screenSaverStertedFromIdle = EFalse;
+ TBool startupOver = EFalse;
+ TBool codeQueryOpen = EFalse;
+ //Get keyguard status
+ RProperty::Get(KPSUidAvkonDomain, KAknKeyguardStatus, value);
+ keylockOn = (value == EKeyguardLocked);
+ //Get call state
+ RProperty::Get(KPSUidCtsyCallInformation, KCTsyCallState, callState);
+
+ //See whether we are in idle
+ value = 0;
+ RProperty::Get(KPSUidAiInformation, KActiveIdleState, value);
+ idle = (value == EPSAiForeground);
+ idle = ETrue; // don't care about idle state. Phone should autolock on any UI, not only HomeSreeen.
+
+ value = 0;
+ RProperty::Get(KPSUidCoreApplicationUIs, KCoreAppUIsAutolockStatus, value);
+ autolockOn = (value > EAutolockOff);
+
+ value = 0;
+ RProperty::Get(KPSUidScreenSaver, KScreenSaverOn, value);
+ screenSaverOn = (value == KSsOn);
+
+ value = 0;
+ RProperty::Get(KPSUidScreenSaver, KScreenSaverActivatedFromIdle, value);
+ screenSaverStertedFromIdle = (value == KSsStartedFromIdle);
+
+ // See if SIM is accepted
+ if(idle)
+ {
+ value = 0;
+ RProperty::Get(KPSUidStartup, KPSSimStatus, value);
+ // automatic lock can't get enabled if SIM-locked.
+ if(value == ESimNotReady)
+ idle = EFalse;
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(AUTOLOCK)CAutoKeyguardObserver::LockKeysL() KPSSimStatus state: %d"), value);
+ RDebug::Print(_L("(AUTOLOCK)CAutoKeyguardObserver::LockKeysL() ESimUsable: %d"), ESimUsable);
+ #endif
+ }
+
+ //See if all the startup related queries and graphics has been displayed
+ value = 0;
+ RProperty::Get(KPSUidStartup, KPSStartupUiPhase, value);
+ startupOver = (value == EStartupUiPhaseAllDone);
+
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(AUTOLOCK)CAutoKeyguardObserver::LockKeysL() startupOver: %d"), startupOver);
+ RDebug::Print(_L("(AUTOLOCK)CAutoKeyguardObserver::LockKeysL() Startup state: %d"), value);
+ #endif
+ //See if the lock code query is open
+ codeQueryOpen = iAppUiI->DeviceLockQueryStatus();
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(AUTOLOCK)CAutoKeyguardObserver::LockKeysL() codeQueryOpen: %d"), codeQueryOpen);
+ RDebug::Print(_L("(AUTOLOCK)CAutoKeyguardObserver::LockKeysL() autolockOn: %d"), autolockOn);
+ #endif
+ if (startupOver)
+ {
+ // If lock code query is open and device lock is on, cancel the query.
+ // AppUi will enable keylock when the query is cancelled
+ if (autolockOn && codeQueryOpen)
+ {
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(AUTOLOCK)CAutoKeyguardObserver::LockKeysL() Query open, cancel it"));
+ #endif
+ iAppUiI->CancelDeviceLockQuery();
+ return;
+ }
+ // If keylock is already ON, there is a ongoing call,
+ // autolock is already ON or phone is not in idle, don't lock.
+ if (keylockOn || (callState > EPSCTsyCallStateNone) || autolockOn || !idle)
+ {
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(AUTOLOCK)CAutoKeyguardObserver::LockKeysL() Don't lock"));
+ RDebug::Print(_L("(AUTOLOCK)keylockstatus: %d"), keylockOn);
+ RDebug::Print(_L("(AUTOLOCK)callstate: %d"), callState);
+ RDebug::Print(_L("(AUTOLOCK)autolockstate: %d"), autolockOn);
+ RDebug::Print(_L("(AUTOLOCK)idlestate: %d"), idle);
+ RDebug::Print(_L("(AUTOLOCK)screenSaverOn: %d"), screenSaverOn);
+ RDebug::Print(_L("(AUTOLOCK)screenSaverStertedFromIdle: %d"), screenSaverStertedFromIdle);
+ #endif
+ //If screensaver is on, idle does not have foreground. If Screensaver was started from Idle, lock keys.
+ if(!idle && screenSaverOn && screenSaverStertedFromIdle && (callState <= EPSCTsyCallStateNone))
+ okToLock = ETrue;
+ else
+ okToLock = EFalse;
+ }
+ else //Otherwise there's no problem...
+ okToLock = ETrue;
+ }
+
+
+ if (okToLock)
+ {
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(AUTOLOCK)CAutoKeyguardObserver::LockKeysL() Lock"));
+ RDebug::Print(_L("(AUTOLOCK)keylockstatus: %d"), keylockOn);
+ RDebug::Print(_L("(AUTOLOCK)callstate: %d"), callState);
+ RDebug::Print(_L("(AUTOLOCK)autolockstate: %d"), autolockOn);
+ RDebug::Print(_L("(AUTOLOCK)idlestate: %d"), idle);
+ RDebug::Print(_L("(AUTOLOCK)screenSaverOn: %d"), screenSaverOn);
+ RDebug::Print(_L("(AUTOLOCK)screenSaverStertedFromIdle: %d"), screenSaverStertedFromIdle);
+ #endif
+ //Tell keylock to lock itself.
+ RAknKeyLock keylock;
+ if ( keylock.Connect() == KErrNone )
+ {
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(AUTOLOCK)CAutoKeyguardObserver::LockKeysL() Connect OK"));
+ #endif
+ if(AknLayoutUtils::PenEnabled())
+ keylock.EnableWithoutNote(); //Enable without note
+ else
+ keylock.EnableKeyLock();
+ keylock.Close();
+ }
+ }
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(AUTOLOCK)CAutoKeyguardObserver::LockKeysL() END"));
+ #endif
+ #endif //RD_AUTO_KEYGUARD
+}
+
+
+// END OF FILE
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/securitydialogs/Autolock/src/AutoLockCenRepI.cpp Wed Sep 01 12:19:59 2010 +0100
@@ -0,0 +1,165 @@
+/*
+* Copyright (c) 2002 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:
+*
+*/
+
+
+#include <centralrepository.h>
+#include <settingsinternalcrkeys.h>
+#include "AutoLockModelPS.h"
+#include "AutolockAppUiPS.h"
+#include "AutoLockCenRepI.h"
+
+
+
+// ================= MEMBER FUNCTIONS =======================
+//
+// ----------------------------------------------------------
+// CAutolockCenRepI::NewLC()
+// Two-phased constructor.
+// ----------------------------------------------------------
+//
+CAutolockCenRepI* CAutolockCenRepI::NewLC(CAutolockAppUi* aAppUi)
+ {
+ CAutolockCenRepI* self = new (ELeave) CAutolockCenRepI(aAppUi);
+ CleanupStack::PushL(self);
+ self->ConstructL();
+ return self;
+ }
+
+//
+// ----------------------------------------------------------
+// CAutolockCenRepI::NewL()
+// Two-phased constructor.
+// ----------------------------------------------------------
+//
+CAutolockCenRepI* CAutolockCenRepI::NewL(CAutolockAppUi* aAppUi)
+ {
+ CAutolockCenRepI* self = NewLC(aAppUi);
+ CleanupStack::Pop(); //self
+ return self;
+ }
+
+//
+// ----------------------------------------------------------
+// CAutolockCenRepI::~CAutolockCenRepI()
+// Destructor
+// ----------------------------------------------------------
+//
+CAutolockCenRepI::~CAutolockCenRepI()
+ {
+ if(iNotifyHandler)
+ {
+ iNotifyHandler->StopListening();
+ delete iNotifyHandler;
+ }
+ if(iSession)
+ delete iSession;
+ }
+//
+// ----------------------------------------------------------
+// CAutolockCenRepI::CAutolockCenRepI()
+// C++ default constructor
+// ----------------------------------------------------------
+//
+CAutolockCenRepI::CAutolockCenRepI(CAutolockAppUi* aAppUi):iAppUi(aAppUi)
+ {
+ }
+
+//
+// ----------------------------------------------------------
+// CAutolockCenRepI::ConstructL()
+// Symbian OS default constructor
+// ----------------------------------------------------------
+//
+void CAutolockCenRepI::ConstructL()
+ {
+ // init cenrep connection
+ iSession = CRepository::NewL(KCRUidSecuritySettings);
+
+ iNotifyHandler = CCenRepNotifyHandler::NewL(*this, *iSession, CCenRepNotifyHandler::EIntKey, KSettingsAutoLockTime);
+ iNotifyHandler->StartListeningL();
+ }
+
+//
+// ----------------------------------------------------------
+// CAutolockCenRepI::HandleNotifyInt()
+// Handles autolock period changes. Called by CenRep.
+// ----------------------------------------------------------
+//
+void CAutolockCenRepI::HandleNotifyInt(TUint32 aId, TInt /*aNewValue*/)
+ {
+ if(aId == KSettingsAutoLockTime)
+ {
+ ResetInactivityTimeout();
+ }
+ return;
+ }
+
+void CAutolockCenRepI::HandleNotifyError(TUint32 /*aId*/, TInt /*error*/, CCenRepNotifyHandler* /*aHandler*/)
+ {
+ return;
+ }
+
+void CAutolockCenRepI::HandleNotifyGeneric(TUint32 aId)
+ {
+ if ( aId == NCentralRepositoryConstants::KInvalidNotificationId )
+ {//Repository wide reset caused generic notification
+ ResetInactivityTimeout();
+ }
+ return;
+ }
+
+//
+// ----------------------------------------------------------
+// CAutolockCenRepI::ResetInactivityTimeoutL()
+// Resets autolock timer
+// ----------------------------------------------------------
+//
+void CAutolockCenRepI::ResetInactivityTimeout()
+ {
+ iAppUi->Model()->ResetInactivityTimeout();
+ }
+
+//
+// ----------------------------------------------------------
+// CAutolockCenRepI::Timeout()
+// Returns currents autolock period (in seconds)
+// ----------------------------------------------------------
+//
+TInt CAutolockCenRepI::Timeout()
+ {
+ TInt period = 0;
+ iSession->Get(KSettingsAutoLockTime, period);
+ return period * 60;
+ }
+//
+// ----------------------------------------------------------
+// CAutolockCenRepI::SetLocked ()
+// Sets lock on/off in CenRep
+// ----------------------------------------------------------
+//
+void CAutolockCenRepI::SetLockedL(TBool aLockValue)
+ {
+ TInt lockValue = 0;
+ if (aLockValue)
+ {
+ lockValue = 1;
+ }
+ CRepository* repository = CRepository::NewL(KCRUidSecuritySettings);
+ repository->Set(KSettingsAutolockStatus, lockValue);
+ delete repository;
+ }
+// END OF FILE
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/securitydialogs/Autolock/src/AutoLockLockObserver.cpp Wed Sep 01 12:19:59 2010 +0100
@@ -0,0 +1,136 @@
+/*
+* Copyright (c) 2002 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:
+* Obsererver for Set System Locked event
+*
+*
+*/
+
+#include <bldvariant.hrh>
+#include <e32property.h>
+#include <PSVariables.h>
+#include <coreapplicationuisdomainpskeys.h>
+
+#include "AutoLockLockObserverPS.h"
+#include "AutolockAppUiPS.h"
+#include "AutoLockModelPS.h"
+
+
+// ================= MEMBER FUNCTIONS =======================
+//
+// ----------------------------------------------------------
+// CLockObserver::NewL()
+// Constructs a new entry with given values.
+// ----------------------------------------------------------
+//
+CLockObserver* CLockObserver::NewL(CAutolockAppUi* aAppUi)
+ {
+ CLockObserver* self = new (ELeave) CLockObserver(aAppUi);
+ CleanupStack::PushL(self);
+ self->ConstructL();
+ CleanupStack::Pop();
+ return self;
+ }
+//
+// ----------------------------------------------------------
+// CLockObserver::CLockObserver()
+// Destructor
+// ----------------------------------------------------------
+//
+CLockObserver::~CLockObserver()
+ {
+ Cancel();
+ iProperty.Close();
+ }
+//
+// ----------------------------------------------------------
+// CNoSimCard::Start()
+// Starts listening KUidAutolockStatus event
+// ----------------------------------------------------------
+//
+TInt CLockObserver::Start()
+ {
+ if (IsActive())
+ return KErrInUse;
+ iStatus = KRequestPending;
+ iProperty.Attach(KPSUidCoreApplicationUIs, KCoreAppUIsAutolockStatus);
+ iProperty.Subscribe(iStatus);
+ SetActive();
+ return KErrNone;
+ }
+//
+// ----------------------------------------------------------
+// CLockObserver::CLockObserver()
+// C++ constructor
+// ----------------------------------------------------------
+//
+CLockObserver::CLockObserver(CAutolockAppUi* aAppUi) : CActive(0), iAppUi(aAppUi)
+ {
+ }
+//
+// ----------------------------------------------------------
+// CLockObserver::ConstructL()
+// Symbian OS default constructor
+// ----------------------------------------------------------
+//
+void CLockObserver::ConstructL()
+ {
+
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(AUTOLOCK)CLockObserver::ConstructL()"));
+ #endif
+
+ // Add this active object to the scheduler.
+ CActiveScheduler::Add(this);
+
+ TInt ret;
+ _LIT_SECURITY_POLICY_PASS(KReadPolicy);
+ _LIT_SECURITY_POLICY_C1(KWritePolicy, ECapabilityWriteDeviceData);
+
+ ret = RProperty::Define(KPSUidCoreApplicationUIs, KCoreAppUIsAutolockStatus, RProperty::EInt, KReadPolicy, KWritePolicy);
+ if(ret != KErrAlreadyExists)
+ User::LeaveIfError(ret);
+
+ // Begin obsering PubSub event
+ Start();
+ }
+//
+// ----------------------------------------------------------
+// CLockObserver::RunL()
+// Called when device (autolock) is activated from menu.
+// ----------------------------------------------------------
+//
+void CLockObserver::RunL()
+ {
+ // set ui locked.
+ TInt autolockState;
+ iProperty.Get( autolockState );
+ if (autolockState > EAutolockOff)
+ {
+ iAppUi->Model()->LockSystemL(autolockState);
+ }
+ // Continue observing PubSub event
+ Start();
+ }
+//
+// ----------------------------------------------------------
+// CLockObserver::DoCancel()
+// Cancels event listening
+// ----------------------------------------------------------
+//
+void CLockObserver::DoCancel()
+ {
+ iProperty.Cancel();
+ }
+// End of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/securitydialogs/Autolock/src/AutoLockModel.cpp Wed Sep 01 12:19:59 2010 +0100
@@ -0,0 +1,444 @@
+/*
+* Copyright (c) 2002 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:
+*
+*/
+
+#include <aknappui.h>
+#include <activitymanager.h>
+#include <bldvariant.hrh>
+#include <featmgr.h>
+#include <AknNotifierController.h>
+#include <featmgr.h>
+#include <e32property.h>
+#include <PSVariables.h>
+#include <startupdomainpskeys.h>
+#include <coreapplicationuisdomainpskeys.h>
+#include <ctsydomainpskeys.h>
+
+#include <SCPClient.h>
+
+#include "AutoLockModelPS.h"
+#include "AutolockAppUiPS.h"
+#include "AutoLockLockObserverPS.h"
+#include "AutoLockCenRepI.h"
+
+
+const TInt AutoLockOff(60000);
+
+
+
+// ================= MEMBER FUNCTIONS =======================
+//
+// ----------------------------------------------------------
+// CAutoLockModel::NewL()
+// ----------------------------------------------------------
+//
+
+CAutoLockModel* CAutoLockModel::NewL(CAutolockAppUi* aAppUi, TBool aLocked)
+ {
+ CAutoLockModel* self = new (ELeave) CAutoLockModel(aAppUi);
+ CleanupStack::PushL(self);
+ self->ConstructL( aLocked );
+ CleanupStack::Pop(); //self
+ return self;
+ }
+//
+// ----------------------------------------------------------
+// CAutoLockModel::CAutoLockModel()
+// C++ default constructor
+// ----------------------------------------------------------
+//
+CAutoLockModel::CAutoLockModel(CAutolockAppUi* aAppUi) :
+ iAppUi( aAppUi ), iMonitoring(EFalse)
+ {
+ }
+
+//
+// ----------------------------------------------------------
+// CAutoLockModel::ConstructL()
+// Symbian OS default constructor
+// ----------------------------------------------------------
+//
+void CAutoLockModel::ConstructL( TBool aLocked )
+ {
+ FeatureManager::InitializeLibL();
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(AUTOLOCK)CAutoLockModel::ConstructL() BEGIN"));
+ #endif
+ iCenRepI = CAutolockCenRepI::NewL(iAppUi);
+ // lock status observer
+ iLockObserver = CLockObserver::NewL(iAppUi);
+ // Activitymanager
+ iActivityManager = CUserActivityManager::NewL(CActive::EPriorityStandard);
+ StartActivityMonitoringL();
+ // In GSM the device is always unlocked.
+ // In CDMA, SecClientUi will lock the device on boot-up if needed.
+ if ( aLocked == EFalse ) {
+ SetLockedL(EAutolockOff);
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(AUTOLOCK)CAutoLockModel::ConstructL() EAutolockOff"));
+ #endif
+ }
+
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(AUTOLOCK)CAutoLockModel::ConstructL() END"));
+ #endif
+ }
+ //
+// ----------------------------------------------------------
+// CAutoLockModel::StartActivityMonitoringL()
+// Start monitoring user activity
+// ----------------------------------------------------------
+//
+void CAutoLockModel::StartActivityMonitoringL()
+ {
+ SetActivityManagerL();
+ }
+
+//
+// ----------------------------------------------------------
+// CAutoLockModel::StopActivityMonitoring()
+// Stop monitoring user activity
+// ----------------------------------------------------------
+//
+void CAutoLockModel::StopActivityMonitoring()
+ {
+ CancelActivityManager();
+ }
+
+//
+// ----------------------------------------------------------
+// CAutoLockModel::SetActivityManagerL()
+// Initializes activymanager
+// ----------------------------------------------------------
+//
+void CAutoLockModel::SetActivityManagerL()
+ {
+ if (AutoLockTimeout() )
+ {
+ iActivityManager->Start(AutoLockTimeout(), TCallBack(HandleInactiveEventL,this),
+ TCallBack(HandleActiveEventL,this));
+ }
+ else
+ {
+ iActivityManager->Start(AutoLockOff, TCallBack(HandleInactiveEventL,this),
+ TCallBack(HandleActiveEventL,this));
+ }
+
+ }
+//
+// ----------------------------------------------------------
+// CAutoLockModel::CancelActivityManager()
+// UnInitializes activymanager
+// ----------------------------------------------------------
+//
+void CAutoLockModel::CancelActivityManager()
+ {
+ if ( iActivityManager )
+ {
+ iActivityManager->Cancel();
+ }
+ delete iActivityManager;
+ iActivityManager = NULL;
+ }
+//
+// ----------------------------------------------------------
+// CAutoLockModel::~CAutoLockModel()
+// Destructor
+// ----------------------------------------------------------
+//
+CAutoLockModel::~CAutoLockModel()
+ {
+ delete iCenRepI;
+ delete iLockObserver;
+ StopActivityMonitoring();
+ FeatureManager::UnInitializeLib();
+ // close custom phone
+ }
+//
+// ----------------------------------------------------------
+// CAutoLockModel::AutoLockTimeout()
+// Returns current autolock period
+// ----------------------------------------------------------
+//
+TInt CAutoLockModel::AutoLockTimeout()
+ {
+ return iCenRepI->Timeout();
+ }
+//
+// ----------------------------------------------------------
+// CAutoLockModel::ResetInactivityTimeoutL()
+// Gets autolock period and starts monitoring user activity
+// ----------------------------------------------------------
+//
+void CAutoLockModel::ResetInactivityTimeout()
+ {
+ if (AutoLockTimeout() )
+ {
+ iActivityManager->SetInactivityTimeout(AutoLockTimeout());
+ }
+ else
+ {
+ iActivityManager->SetInactivityTimeout(AutoLockOff);
+ }
+ }
+//
+// ----------------------------------------------------------
+// CAutoLockModel::HandleActiveEventL()
+// Handles Active event. Called by ActivityManager
+// ----------------------------------------------------------
+//
+TInt CAutoLockModel::HandleActiveEventL(TAny* /*aPtr*/)
+ {
+ return KErrNone;
+ }
+
+//
+// ----------------------------------------------------------
+// CAutoLockModel::HandleInactiveEventL()
+// Handles InActive event. Called by ActivityManager
+// ----------------------------------------------------------
+//
+TInt CAutoLockModel::HandleInactiveEventL(TAny* aPtr)
+ {
+ if ( STATIC_CAST(CAutoLockModel*, aPtr)->AutoLockTimeout() )
+ {
+ TInt value(EStartupUiPhaseUninitialized);
+ RProperty::Get(KPSUidStartup, KPSStartupUiPhase, value);
+ //Don't lock unless boot is over.
+ if(value == EStartupUiPhaseAllDone)
+ {
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(AUTOLOCK)CAutoLockModel::HandleInactiveEventL() Boot over"));
+ #endif
+ #ifdef RD_REMOTELOCK
+ STATIC_CAST(CAutoLockModel*, aPtr)->LockSystemL(ETimerLocked);
+ #else
+ STATIC_CAST(CAutoLockModel*, aPtr)->LockSystemL(EAutolockOn);
+ #endif //RD_REMOTELOCK
+ }
+ else
+ {
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(AUTOLOCK)CAutoLockModel::HandleInactiveEventL() In boot; don't lock"));
+ #endif
+ }
+ }
+ return KErrNone;
+ }
+
+//
+// ----------------------------------------------------------
+// CAutoLockModel::LockSystemL()
+// Locks system
+// ----------------------------------------------------------
+//
+void CAutoLockModel::LockSystemL(TInt aAutolockState)
+ {
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(AUTOLOCK)CAutoLockModel::LockSystemL() BEGIN"));
+ #endif
+ // If already locked, do nothing. Otherwise we'll end up
+ // on top of Screensaver
+ // Check if iSideKey2 is zero or not (locked if nonzero)
+ // Also, phone should not be locked if PUK1 code query is up.
+#ifdef FF_STARTUP_OMA_DM_SUPPORT // New booting order Start ID: MVKS-7PZDZ5
+ TInt autolock_value = 0;
+ RProperty::Get(KPSUidCoreApplicationUIs, KCoreAppUIsAutolockStatus, autolock_value);
+ if (autolock_value == EAutolockStatusUninitialized)
+ {
+ return;
+ }
+#endif //End ID: MVKS-7PZDZ5
+ if (iAppUi->Locked() || iAppUi->IsPinBlocked())
+ {
+ return;
+ }
+
+ TInt lightStatus=EForcedLightsUninitialized;
+ RProperty::Get(KPSUidCoreApplicationUIs,KLightsVTForcedLightsOn,lightStatus );
+ //If display is forced on. don't lock
+ if(lightStatus == EForcedLightsOn )
+ {
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(AUTOLOCK)CAutoLockModel::LockSystemL() Display is forced on. Device not locked"));
+ #endif
+ return;
+ }
+
+ //Check which state we are in to see if it's OK to lock the phone
+ //In CDMA when there is no SIM (RUIM) support we should be able to lock
+ //the phone after reboot. In this case ESWStateNormal is too late to lock the phone
+ //and other states below are needed.
+ TBool okToLock = EFalse;
+ TInt sysState = 0;
+ iProperty.Get(KPSUidStartup, KPSGlobalSystemState, sysState);
+ //If NOT in CDMA the Autolock should come up only after the phone has booted up.
+ if ( FeatureManager::FeatureSupported( KFeatureIdProtocolCdma ) || iAppUi->HiddenReset())
+ {
+ if( (sysState == ESwStateNormalRfOn ||
+ sysState == ESwStateNormalRfOff ||
+ sysState == ESwStateCriticalPhaseOK) &&
+ (aAutolockState > EAutolockOff) ) // EMKK-7N3G7R
+ {
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(AUTOLOCK)CAutoLockModel::LockSystemL() LOCKED AFTER HIDDEN RESET"));
+ #endif
+ okToLock = ETrue;
+ }
+ }
+ else //Feature Manager
+ {
+ if( (sysState == ESwStateNormalRfOn ||
+ sysState == ESwStateNormalRfOff) &&
+ (aAutolockState > EAutolockOff) ) // EMKK-7N3G7R
+ {
+ okToLock = ETrue;
+ }
+ }
+ TInt tarmFlag=0;
+if(FeatureManager::FeatureSupported(KFeatureIdSapTerminalControlFw ))
+{
+ // Get the TARM admin flag value
+ TInt tRet = RProperty::Get( KSCPSIDAutolock, SCP_TARM_ADMIN_FLAG_UID, tarmFlag );
+
+ if ( tRet != KErrNone )
+ {
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(AUTOLOCK)CAutolockAppUi::BringAppToForegroundL():\
+ Warning: failed to get TARM Admin Flag state"));
+ #endif
+ }
+ else
+ {
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(AUTOLOCK)CAutolockAppUi::BringAppToForegroundL(): TARM flag: %d"),
+ tarmFlag );
+ #endif
+ }
+}
+
+ TInt callState=0;
+ iProperty.Get(KPSUidCtsyCallInformation, KCTsyCallState, callState);
+TBool isConditionSatisfied = EFalse;
+if(FeatureManager::FeatureSupported(KFeatureIdSapTerminalControlFw ))
+{
+ if ( ( callState != EPSCTsyCallStateNone ) && (!( tarmFlag & KSCPFlagAdminLock )) )
+ isConditionSatisfied = ETrue;
+}
+else
+{
+ if ( callState != EPSCTsyCallStateNone )
+ isConditionSatisfied = ETrue;
+}
+ if (isConditionSatisfied)
+ {
+ TBool remoteLocked(EFalse);
+ #ifdef RD_REMOTELOCK
+ remoteLocked = (aAutolockState == ERemoteLocked);
+ #endif //RD_REMOTELOCK
+ if(remoteLocked)
+ {
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(AUTOLOCK)CAutoLockModel::LockSystemL() REMOTE LOCKED"));
+ #endif
+ okToLock = ETrue;
+
+ }
+ else
+ okToLock = EFalse;
+ }
+
+ if (!iAppUi->IsForeground() && okToLock)
+ {
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(AUTOLOCK)CAutoLockModel::LockSystemL() LOCK PHONE"));
+ #endif
+ // close fast-swap window
+ CEikonEnv::Static()->DismissTaskList();
+ // inform Avokon & Other app that system is locked
+ // unless the value has already been set in secuisystemlock
+ #ifdef RD_REMOTELOCK
+ if(aAutolockState != EManualLocked)
+ {
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(AUTOLOCK)CAutoLockModel::LockSystemL() Timer/Remote locked: %d"), aAutolockState);
+ #endif
+ SetLockedL(aAutolockState);
+ }
+ else if((aAutolockState == EManualLocked) && !iAppUi->Locked() && iAppUi->HiddenReset())
+ { //set the PubSub key if we are to be locked after a hidden reset has occurred.
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(AUTOLOCK)CAutoLockModel::LockSystemL() HIDDEN RESET LOCK"));
+ #endif
+ SetLockedL(aAutolockState);
+ }
+ else
+ { //Normal manual lock from power key. Just set the CenRep key.
+ iCenRepI->SetLockedL(okToLock);
+ }
+ #else //! RD_REMOTELOCK
+ SetLockedL(aAutolockState);
+ #endif//RD_REMOTELOCK
+ // lock keys
+ iAppUi->LockKeysL();
+ // iAppUi->EnableWGListChangeEventListening(); // this was in previous versions. It's not needed because it will come on top of bigClock
+ // app to foreground
+ iAppUi->BringAppToForegroundL();
+ // Reset inactivity time so that Screensaver gets to
+ // run again after its timeout. We'll ignore the new
+ // inactivity timeout, if already locked
+ // RDebug::Printf( "%s %s (%u) CR 428-469 avoid User::ResetInactivityTime=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, 0 );
+ // User::ResetInactivityTime();
+ }
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(AUTOLOCK)CAutoLockModel::LockSystemL() END"));
+ #endif
+}
+
+//
+// ----------------------------------------------------------
+// CAutoLockModel::SetLocked
+// Sets lockvalue in Publish & Subscribe and Central Repository
+// ----------------------------------------------------------
+//
+void CAutoLockModel::SetLockedL(TInt aAutolockState)
+ {
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(AUTOLOCK)CAutoLockModel::SetLockedL() begin"));
+ #endif
+ TBool locked = (aAutolockState > EAutolockOff);
+ if (locked)
+ {
+ iProperty.Set(KPSUidCoreApplicationUIs, KCoreAppUIsAutolockStatus, aAutolockState);
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(AUTOLOCK)CAutoLockModel::SetLockedL() LOCK"));
+ #endif
+ }
+ else
+ {
+ iProperty.Set(KPSUidCoreApplicationUIs, KCoreAppUIsAutolockStatus, EAutolockOff);
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(AUTOLOCK)CAutoLockModel::SetLockedL() UNLOCK"));
+ #endif
+ }
+
+ iCenRepI->SetLockedL(locked);
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(AUTOLOCK)CAutoLockModel::SetLockedL() end"));
+ #endif
+ }
+
+// END OF FILE
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/securitydialogs/Autolock/src/AutoLockValueObserver.cpp Wed Sep 01 12:19:59 2010 +0100
@@ -0,0 +1,211 @@
+/*
+* Copyright (c) 2002 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:
+* Observer for phone events. Used to deactive/active the side-key
+*
+*
+*/
+
+
+#include <e32property.h>
+#include <PSVariables.h>
+#include <ctsydomainpskeys.h>
+#include "AutolockAppUiPS.h"
+#include "AutoLockValueObserverPS.h"
+#include <coreapplicationuisdomainpskeys.h>
+#include <startupdomainpskeys.h>
+
+// ================= MEMBER FUNCTIONS =======================
+//
+// ----------------------------------------------------------
+// CValueObserver::NewL()
+// Constructs a new entry with given values.
+// ----------------------------------------------------------
+//
+CValueObserver* CValueObserver::NewL(CAutolockAppUi* aAppUi)
+ {
+ CValueObserver* self = new (ELeave) CValueObserver(aAppUi);
+ CleanupStack::PushL(self);
+ self->ConstructL();
+ CleanupStack::Pop();
+ return self;
+ }
+//
+// ----------------------------------------------------------
+// CValueObserver::CValueObserver()
+// Destructor
+// ----------------------------------------------------------
+//
+CValueObserver::~CValueObserver()
+ {
+ Cancel();
+ }
+//
+// ----------------------------------------------------------
+// CValueObserver::Start()
+// Starts listening KUidCurrentCall event
+// ----------------------------------------------------------
+//
+TInt CValueObserver::Start()
+ {
+ if (IsActive())
+ return KErrInUse;
+ iStatus = KRequestPending;
+ iProperty.Attach(KPSUidCtsyCallInformation, KCTsyCallState);
+ iProperty.Subscribe(iStatus);
+ SetActive();
+ #if defined(_DEBUG)
+ RDebug::Printf( "%s %s (%u) value=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, 0 );
+ #endif
+ return KErrNone;
+ }
+//
+// ----------------------------------------------------------
+// CValueObserver::Stop()
+// Stops listening KUidCurrentCall event
+// ----------------------------------------------------------
+//
+void CValueObserver::Stop()
+ {
+ #if defined(_DEBUG)
+ RDebug::Printf( "%s %s (%u) value=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, 0 );
+ #endif
+ Cancel();
+ }
+//
+// ----------------------------------------------------------
+// CLockObserver::CLockObserver()
+// C++ constructor
+// ----------------------------------------------------------
+//
+CValueObserver::CValueObserver(CAutolockAppUi* aAppUi) : CActive(0), iAppUi(aAppUi)
+ {
+ #if defined(_DEBUG)
+ RDebug::Printf( "%s %s (%u) value=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, 0 );
+ #endif
+ }
+//
+// ----------------------------------------------------------
+// CLockObserver::ConstructL()
+// Symbian OS default constructor
+// ----------------------------------------------------------
+//
+void CValueObserver::ConstructL()
+ {
+ // Add this active object to the scheduler.
+ #if defined(_DEBUG)
+ RDebug::Printf( "%s %s (%u) value=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, 0 );
+ #endif
+ CActiveScheduler::Add(this);
+ }
+//
+// ----------------------------------------------------------
+// CValueObserver::RunL()
+//
+// ----------------------------------------------------------
+//
+void CValueObserver::RunL()
+ {
+ #if defined(_DEBUG)
+ RDebug::Printf( "%s %s (%u) value=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, 0 );
+ #endif
+ TInt atForeground = iAppUi->IsForeground();
+ TInt value(EStartupUiPhaseUninitialized);
+ RProperty::Get(KPSUidStartup, KPSStartupUiPhase, value);
+ TInt callState;
+ iProperty.Get( callState );
+ #if defined(_DEBUG)
+ RDebug::Printf( "%s %s (%u) callState=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, callState );
+ RDebug::Printf( "%s %s (%u) EPSCTsyCallStateNone=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, EPSCTsyCallStateNone );
+ RDebug::Printf( "%s %s (%u) EPSCTsyCallStateUninitialized=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, EPSCTsyCallStateUninitialized );
+ RDebug::Printf( "%s %s (%u) atForeground=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, atForeground );
+ RDebug::Printf( "%s %s (%u) KPSStartupUiPhase value=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, value );
+ RDebug::Printf( "%s %s (%u) EStartupUiPhaseSystemWelcomeDone=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, EStartupUiPhaseSystemWelcomeDone );
+ #endif
+
+
+ if (callState == EPSCTsyCallStateNone && !atForeground)
+ {
+ if( value<EStartupUiPhaseSystemWelcomeDone )
+ {
+ #if defined(_DEBUG)
+ RDebug::Printf( "%s %s (%u) re-start=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, 1 );
+ #endif
+ Start();
+ }
+ else
+ {
+ // app back to foreground
+ TInt iAppUi_Locked = iAppUi->Locked();
+ TInt alocked = RProperty::Get(KPSUidCoreApplicationUIs, KCoreAppUIsAutolockStatus, value);
+ #if defined(_DEBUG)
+ RDebug::Printf( "%s %s (%u) alocked=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, alocked );
+ RDebug::Printf( "%s %s (%u) iAppUi_Locked=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, iAppUi_Locked );
+ #endif
+ if(iAppUi_Locked)
+ {
+ #if defined(_DEBUG)
+ RDebug::Printf( "%s %s (%u) BringAppToForegroundL=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, 1 );
+ #endif
+ iAppUi->BringAppToForegroundL();
+ }
+ }
+ }
+ else
+ {
+ {
+ if( value<EStartupUiPhaseSystemWelcomeDone )
+ {
+ #if defined(_DEBUG)
+ RDebug::Printf( "%s %s (%u) 1=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, 1 );
+ #endif
+ if( callState != EPSCTsyCallStateNone && callState != EPSCTsyCallStateUninitialized && !atForeground)
+ {
+ #if defined(_DEBUG)
+ RDebug::Printf( "%s %s (%u) 2=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, 2 );
+ #endif
+ iAppUi->BringAppToForegroundL();
+ }
+ else if( (callState == EPSCTsyCallStateNone || callState == EPSCTsyCallStateUninitialized) && atForeground)
+ {
+ #if defined(_DEBUG)
+ RDebug::Printf( "%s %s (%u) calling BringAppToForegroundL=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, 1 );
+ #endif
+ iAppUi->BringAppToForegroundL();
+ #if defined(_DEBUG)
+ RDebug::Printf( "%s %s (%u) calling SwitchToPreviousAppL=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, 2 );
+ #endif
+ iAppUi->SwitchToPreviousAppL();
+ #if defined(_DEBUG)
+ RDebug::Printf( "%s %s (%u) done=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, 3 );
+ #endif
+ }
+ }
+ }
+ Start();
+ }
+
+ }
+//
+// ----------------------------------------------------------
+// CValueObserver::DoCancel()
+// Cancels event listening
+// ----------------------------------------------------------
+//
+void CValueObserver::DoCancel()
+ {
+ iProperty.Cancel();
+ }
+
+// End of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/securitydialogs/Autolock/src/AutoLockView.cpp Wed Sep 01 12:19:59 2010 +0100
@@ -0,0 +1,269 @@
+/*
+* Copyright (c) 2002 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:
+*
+*/
+
+#include <e32std.h>
+#include <eiklabel.h>
+#include <eikfutil.h>
+#include <aknconsts.h>
+#include <akntitle.h>
+#include <avkon.mbg>
+#include <aknview.h>
+#include <aknViewAppUi.h>
+#include <Autolock.rsg>
+#include "autolock.hrh"
+#include <aknlayoutscalable_avkon.cdl.h>
+#include <layoutmetadata.cdl.h>
+#include <AknUtils.h>
+#include "AutolockAppUiPS.h"
+#include "AutoLockModelPS.h"
+#include "AutolockView.h"
+#include "AutolockContainer.h"
+
+
+
+
+// CONSTANTS
+
+const TUid KUidStartUp = { 0x100058F4 };
+const TInt KPhoneAppOrdinalPosition = 1; // used to pull phone app closer to foreground
+
+// ================= MEMBER FUNCTIONS =======================
+//
+// ----------------------------------------------------
+// CAutolockView::ConstructL()
+// Symbian OS default constructor can leave..
+// ----------------------------------------------------
+//
+void CAutolockView::ConstructL()
+ {
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(AUTOLOCK)CAutolockView::ConstructL()"));
+ #endif
+ BaseConstructL();
+ }
+// ----------------------------------------------------
+// CAutolockView::~CAutolockView()
+// Destructor
+// ----------------------------------------------------
+//
+CAutolockView::~CAutolockView()
+ {
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(AUTOLOCK)CAutolockView::~CAutolockView()"));
+ #endif
+ CAutolockContainer* view = iView;
+ iView = NULL;
+ if (view)
+ {
+ AppUi()->RemoveFromStack(view);
+ }
+ delete view;
+ }
+// ----------------------------------------------------
+// CAutolockView::Id()
+// Returns view Id
+// ----------------------------------------------------
+//
+TUid CAutolockView::Id() const
+ {
+ return KAutoLockViewId;
+ }
+// ----------------------------------------------------
+// CAutolockView::HandleCommandL()
+// Handles user inputs
+// ----------------------------------------------------
+//
+void CAutolockView::HandleCommandL(TInt aCommand)
+ {
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(AUTOLOCK)CAutolockView::HandleCommandL()"));
+ #endif
+ AppUi()->HandleCommandL(aCommand);
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(AUTOLOCK)CAutolockView::HandleCommandL END()"));
+ #endif
+ }
+void CAutolockView::HandleCall(TInt aCommand, TRect &aRect)
+ {
+ // RDebug::Printf( "%s %s (%u) aCommand=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, aCommand );
+ if (iView)
+ {
+ TRect cr = ClientRect();
+ iView->SetRect( cr );
+ // RDebug::Printf( "%s %s (%u) got 2 cr=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, aCommand );
+ iView->DrawNow( );
+ iView->GiveCoords( aRect );
+ }
+ else
+ {
+ // RDebug::Printf( "%s %s (%u) !iView ???=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, iView );
+ }
+ }
+void CAutolockView::MakeVisible(TBool aVisibility)
+ {
+ #if defined(_DEBUG)
+ RDebug::Printf( "%s %s (%u) aVisibility=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, aVisibility );
+ #endif
+ if (iView)
+ iView->MakeVisible( aVisibility );
+ else
+ {
+ #if defined(_DEBUG)
+ RDebug::Printf( "%s %s (%u) !iView ???=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, iView );
+ #endif
+ }
+ #if defined(_DEBUG)
+ RDebug::Printf( "%s %s (%u) aVisibility=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, aVisibility );
+ #endif
+ }
+// ----------------------------------------------------
+// CAutolockView::HandleStatusPaneSizeChange()
+// Handles StatusPane Size Change
+// ----------------------------------------------------
+//
+void CAutolockView::HandleStatusPaneSizeChange()
+ {
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(AUTOLOCK)CAutolockView::HandleStatusPaneSizeChange()"));
+ #endif
+ if (iView)
+ {
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(AUTOLOCK)CAutolockView::HandleStatusPaneSizeChange() SET RECT"));
+ #endif
+ TRect cr = ClientRect();
+ iView->SetRect( cr );
+ }
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(AUTOLOCK)CAutolockView::HandleStatusPaneSizeChange() END"));
+ #endif
+ }
+// ----------------------------------------------------
+// CAutolockView::DoActivateL
+// Activates the view
+// ----------------------------------------------------
+//
+void CAutolockView::DoActivateL(const TVwsViewId& /*aPrevViewId*/,TUid aCustomMessageId,const TDesC8& /*aCustomMessage*/)
+ {
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(AUTOLOCK)CAutolockView::DoActivateL"));
+ #endif
+ iView = new(ELeave) CAutolockContainer;
+
+ TRect screen( iAvkonAppUi->ApplicationRect() );
+ TAknLayoutRect applicationWindow;
+ applicationWindow.LayoutRect(screen, AknLayoutScalable_Avkon::application_window(0));
+ TInt mainPaneVariety = 0;
+ if((AknLayoutUtils::PenEnabled()) && !(Layout_Meta_Data::IsLandscapeOrientation()))
+ {//Use main pane without softkey area
+ mainPaneVariety = 5;
+ }
+ else if (Layout_Meta_Data::IsLandscapeOrientation())
+ {
+ mainPaneVariety = 4;
+ }
+ else
+ {
+ mainPaneVariety = 3;
+ }
+
+
+
+ TAknLayoutRect mainPane;
+ mainPane.LayoutRect(applicationWindow.Rect(), AknLayoutScalable_Avkon::main_pane(mainPaneVariety));
+ iView->ConstructL( mainPane.Rect() );
+ AppUi()->AddToStackL(*this,iView);
+
+ // Message comes from start-up. We need to lock the device.
+ if ( aCustomMessageId == KUidStartUp )
+ {
+ static_cast<CAutolockAppUi*>(AppUi())->Model()->LockSystemL();
+
+ // Set phone app window group to position 2. This is the same position
+ // as the phone app set is self when it goes to background.
+ TVwsViewId phoneAppId;
+ TApaTaskList taskList( iEikonEnv->WsSession() );
+ User::LeaveIfError( AknDef::GetPhoneIdleViewId(phoneAppId) );
+ const TInt phoneWgId = taskList.FindApp( phoneAppId.iAppUid ).WgId();
+ User::LeaveIfError( iCoeEnv->WsSession().SetWindowGroupOrdinalPosition( phoneWgId, KPhoneAppOrdinalPosition ) );
+ }
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(AUTOLOCK)CAutolockView::DoActivateL END"));
+ #endif
+ }
+// ----------------------------------------------------
+// CAutolockView::DoDeActivateL
+// Deactivates the view
+// ----------------------------------------------------
+//
+void CAutolockView::DoDeactivate()
+ {
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(AUTOLOCK)CAutolockView::DoDeActivateL"));
+ #endif
+ CAutolockContainer* view = iView;
+ iView = NULL;
+ if (view)
+ {
+ AppUi()->RemoveFromStack(view);
+ }
+ delete view;
+ }
+// ----------------------------------------------------
+// CAutolockView::ScreenDeviceChanged()
+// Handles screen layout changes
+// ----------------------------------------------------
+//
+void CAutolockView::ScreenDeviceChanged()
+{
+ if (Layout_Meta_Data::IsLandscapeOrientation() && AknLayoutUtils::PenEnabled())
+ {//do not change layout in touch device to conserve battery
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(AUTOLOCK)CAutolockView::ScreenDeviceChanged(): Do Nothing"));
+ #endif
+ return;
+ }
+
+ if (iView)
+ {
+ TRect screen( iAvkonAppUi->ApplicationRect() );
+ TAknLayoutRect applicationWindow;
+ applicationWindow.LayoutRect(screen, AknLayoutScalable_Avkon::application_window(0));
+
+ TInt mainPaneVariety = 0;
+ if((AknLayoutUtils::PenEnabled()) && !(Layout_Meta_Data::IsLandscapeOrientation()))
+ {//Use main pane without softkey area
+ mainPaneVariety = 5;
+ }
+ else if (Layout_Meta_Data::IsLandscapeOrientation())
+ {
+ mainPaneVariety = 4;
+ }
+ else
+ {
+ mainPaneVariety = 3;
+ }
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(AUTOLOCK)CAutolockView::ScreenDeviceChanged() variety: %d"), mainPaneVariety);
+ #endif
+ TAknLayoutRect mainPane;
+ mainPane.LayoutRect(applicationWindow.Rect(), AknLayoutScalable_Avkon::main_pane(mainPaneVariety));
+ iView->SetRect(mainPane.Rect());
+ }
+}
+// end of file
+
--- a/securitydialogs/Autolock/src/Autolock.cpp Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,1767 +0,0 @@
-/*
- * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
- * All rights reserved.
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as published by
- * the Free Software Foundation, version 2.1 of the License.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program. If not,
- * see "http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html/".
- *
- * Description:
- *
- */
-
-#include <QCoreApplication>
-#include <QKeyEvent>
-#include <QEvent>
-#include <QTimer>
-#include <QMessageBox>
-#include <QSymbianEvent>
-#include <QMainWindow>
-#include <qvaluespacesubscriber.h>
-#include <qvaluespacepublisher.h>
-
-QTM_USE_NAMESPACE
-
-#include <HbIndicator>
-#include <hbdevicemessagebox.h>
-
-#include <lockappclientserver.h>
-
-#include "Autolock.h"
-#include <xqserviceutil.h>
-#include "autolockuseractivityservice.h"
-#include <settingsinternalcrkeys.h> // CenRep keys
-#include <w32std.h>
-#include <eikenv.h>
-#include <aknsoundsystem.h>
-
-#include <secuisecuritysettings.h>
-#include <secui.h>
-#include <secuisecurityhandler.h>
-#include <etelmm.h>
-#include <rmmcustomapi.h>
-#include <keylockpolicyapi.h>
-#include <qvaluespacesubscriber.h>
-
-#include <hwrmlightdomaincrkeys.h>
-#include <ProfileEngineSDKCRKeys.h>
-#include <e32property.h>
-#include <coreapplicationuisdomainpskeys.h>
-#include "../PubSub/securityuisprivatepskeys.h"
-#include <avkondomainpskeys.h>
-#include <hwrmdomainpskeys.h>
-#include <ctsydomainpskeys.h>
-
-#include <hbdevicedialog.h>
-#include <power_save_display_mode.h>
-
-const TInt KPhoneIndex(0);
-const TInt KTriesToConnectServer(2);
-const TInt KTimeBeforeRetryingServerConnection(50000);
-#define ESecUiTypeLock 0x00100000
-_LIT( KMmTsyModuleName, "PhoneTsy");
-
-// Constant definitions to control screensaver view types
-static const char *KSnsrViewTypeKey = "view_type";
-enum TSnsrViewType
- {
- ESnsrViewTypeInitial = 0, // default initial state, depends on the configuration
- ESnsrViewTypeActive,
- ESnsrViewTypeStandby,
- ESnsrViewTypeDisabled,
- };
-static const char *KSnsrCmdUnlock = "unlock";
-static const char *KSnsrCmdSwitchLights = "switch_lights";
-static const char *KSnsrCmdSwitchLowPower = "switch_low_power";
-
-Autolock::Autolock(QWidget *parent, Qt::WFlags f) :
- QWidget(parent, f), mService(NULL)
- {
- RDEBUG("start autolock", 0);
-
- // The very first thing is to define the properties, so that others can use them.
- TSecurityPolicy readPolicy(ECapabilityReadDeviceData);
- TSecurityPolicy writePolicy(ECapabilityWriteDeviceData);
- TInt ret = RProperty::Define(KPSUidSecurityUIs, KSecurityUIsSecUIOriginatedQuery, RProperty::EInt, readPolicy, writePolicy);
- RDEBUG("defined KSecurityUIsSecUIOriginatedQuery", ret);
- ret = RProperty::Define(KPSUidSecurityUIs, KSecurityUIsQueryRequestCancel, RProperty::EInt, readPolicy, writePolicy);
- RDEBUG("defined KSecurityUIsQueryRequestCancel", ret);
- _LIT_SECURITY_POLICY_PASS( KReadPolicy);
- _LIT_SECURITY_POLICY_C1(KWritePolicy, ECapabilityWriteDeviceData);
- ret = RProperty::Define(KPSUidCoreApplicationUIs, KCoreAppUIsAutolockStatus, RProperty::EInt, KReadPolicy, KWritePolicy);
- RDEBUG("defined KCoreAppUIsAutolockStatus", ret);
-
- // This is important: we set the status through a property
- TInt autolockState;
- ret = RProperty::Get(KPSUidCoreApplicationUIs, KCoreAppUIsAutolockStatus, autolockState);
- RDEBUG("Get KCoreAppUIsAutolockStatus", ret);
- RDEBUG("autolockState", autolockState);
- if (autolockState == EAutolockStatusUninitialized)
- {
- autolockState = EAutolockOff; // not-initialized means taht the unlock-query hasn't been displayed. Therefore the device should not stay locked.
- }
- ret = RProperty::Set(KPSUidCoreApplicationUIs, KCoreAppUIsAutolockStatus, autolockState); // this might re-set it. That's not bad. It will re-notify all listeners.
- RDEBUG("Set KCoreAppUIsAutolockStatus", ret);
-
- ret = RProperty::Define(KPSUidAvkonDomain, KAknKeyguardStatus, RProperty::EInt, TSecurityPolicy(TSecurityPolicy::EAlwaysPass), KWritePolicy);
- RDEBUG("defined KAknKeyguardStatus", ret);
-
- ret = RProperty::Define(KPSUidSecurityUIs, KSecurityUIsLockInitiatorUID, RProperty::EInt, TSecurityPolicy(TSecurityPolicy::EAlwaysPass), writePolicy);
- RDEBUG("defined KSecurityUIsLockInitiatorUID", ret);
-
- ret = RProperty::Define(KPSUidSecurityUIs, KSecurityUIsLockInitiatorTimeHigh, RProperty::EInt, readPolicy, writePolicy);
- RDEBUG("defined KSecurityUIsLockInitiatorTimeHigh", ret);
- ret = RProperty::Define(KPSUidSecurityUIs, KSecurityUIsLockInitiatorTimeLow, RProperty::EInt, readPolicy, writePolicy);
- RDEBUG("defined KSecurityUIsLockInitiatorTimeLow", ret);
-
- ret = RProperty::Define(KPSUidSecurityUIs, KSecurityUIsLights, RProperty::EInt, TSecurityPolicy(TSecurityPolicy::EAlwaysPass), TSecurityPolicy(TSecurityPolicy::EAlwaysPass));
- RDEBUG("defined KAknKeyguardStatus", ret);
-
- ret = RProperty::Define(KPSUidSecurityUIs, KSecurityUIsDismissDialog, RProperty::EInt, TSecurityPolicy(TSecurityPolicy::EAlwaysPass), TSecurityPolicy(
- TSecurityPolicy::EAlwaysPass));
- RDEBUG("defined KSecurityUIsDismissDialog", ret);
-
- mService = new AutolockService(this);
-
- /* Adjust the palette */
-#if defined(Q_WS_S60)
- // this is defined.
- RDEBUG( "Q_WS_S60", 1 );
- QPalette p = qApp->palette();
- QColor color(192,192,192);
- QColor bg(201,250,250);
- p.setColor(QPalette::Highlight, color.lighter(200));
- p.setColor(QPalette::Text, Qt::black);
- p.setColor(QPalette::Base, bg);
- p.setColor(QPalette::WindowText, Qt::black);
- p.setColor(QPalette::Window, bg);
- p.setColor(QPalette::ButtonText, Qt::black);
- p.setColor(QPalette::Button, color.lighter(150));
- p.setColor(QPalette::Link, QColor(240,40,40));
-
- qApp->setPalette(p);
-#endif
-
- RDEBUG("connect", 1);
-
-#if defined(Q_WS_X11) || defined(Q_WS_WIN)
- setFixedSize(QSize(360,640)); // nHD
-#elif defined(Q_WS_S60)
- // this doesn't work well
- // showMaximized();
- showFullScreen();
-#endif
-
- serviceKeyguard = new AutolockUserActivityService();
- serviceDevicelock = new AutolockUserActivityService();
-
- TInt lockValue = 0;
- TInt lightsTimeout = 0;
- CRepository* repository = NULL;
- TInt cRresult = 0;
- iLockCodeQueryInDisplay = EFalse;
- Q_UNUSED(cRresult);
-
- iProcessingEvent = -1;
- iLockStatusPrev = ELockNotActive;
- iLockStatus = ELockNotActive;
- QT_TRAP_THROWING(repository = CRepository::NewL(KCRUidSecuritySettings));
- cRresult = repository->Get(KSettingsAutolockStatus, lockValue);
- RDEBUG("KSettingsAutolockStatus", KSettingsAutolockStatus);
- RDEBUG("cRresult", cRresult);
- RDEBUG("lockValue", lockValue);
- iLockStatus = lockValue;
- // the settings says to lock
- delete repository;
-
- adjustInactivityTimers(0);
-
- QT_TRAP_THROWING(repository = CRepository::NewL(KCRUidProfileEngine));
- cRresult = repository->Get(KProEngActiveProfile, lightsTimeout);
- // this value is not used for now
- delete repository;
-
- QT_TRAP_THROWING(repository = CRepository::NewL(KCRUidLightSettings));
- cRresult = repository->Get(KDisplayLightsTimeout, lightsTimeout);
- // this value is not used for now
- delete repository;
-
- // subscribe to settings changes
- subscriberKSettingsAutolockStatus = new QValueSpaceSubscriber("/KCRUidSecuritySettings/KSettingsAutolockStatus", this);
- connect(subscriberKSettingsAutolockStatus, SIGNAL(contentsChanged()), this, SLOT(subscriberKSettingsAutolockStatusChanged()));
- subscriberKSettingsAutoLockTime = new QValueSpaceSubscriber("/KCRUidSecuritySettings/KSettingsAutoLockTime", this);
- connect(subscriberKSettingsAutoLockTime, SIGNAL(contentsChanged()), this, SLOT(subscriberKSettingsAutoLockTimeChanged()));
- subscriberKSettingsAutomaticKeyguardTime = new QValueSpaceSubscriber("/KCRUidSecuritySettings/KSettingsAutomaticKeyguardTime", this);
- connect(subscriberKSettingsAutomaticKeyguardTime, SIGNAL(contentsChanged()), this, SLOT(subscriberKSettingsAutomaticKeyguardTimeChanged()));
- subscriberKDisplayLightsTimeout = new QValueSpaceSubscriber("/KCRUidLightSettings/KDisplayLightsTimeout", this);
- connect(subscriberKDisplayLightsTimeout, SIGNAL(contentsChanged()), this, SLOT(subscriberKDisplayLightsTimeoutChanged()));
- subscriberKProEngActiveProfile = new QValueSpaceSubscriber("/KCRUidProfileEngine/KProEngActiveProfile", this);
- connect(subscriberKProEngActiveProfile, SIGNAL(contentsChanged()), this, SLOT(subscriberKProEngActiveProfileChanged()));
-
- subscriberKSecurityUIsDismissDialog = new QValueSpaceSubscriber("/KPSUidSecurityUIs/KSecurityUIsDismissDialog", this);
- connect(subscriberKSecurityUIsDismissDialog, SIGNAL(contentsChanged()), this, SLOT(subscriberKSecurityUIsDismissDialogChanged()));
-
- // subscribe to environment changes
- subscriberKHWRMGripStatus = new QValueSpaceSubscriber("/KPSUidHWRM/KHWRMGripStatus");
- connect(subscriberKHWRMGripStatus, SIGNAL(contentsChanged()), this, SLOT(subscriberKHWRMGripStatusChanged()));
-
- subscriberKAknKeyguardStatus = new QValueSpaceSubscriber("/KPSUidAvkonDomain/KAknKeyguardStatus");
- connect(subscriberKAknKeyguardStatus, SIGNAL(contentsChanged()), this, SLOT(subscriberKAknKeyguardStatusChanged()));
-
- subscriberKCoreAppUIsAutolockStatus = new QValueSpaceSubscriber("/KPSUidCoreApplicationUIs/KCoreAppUIsAutolockStatus");
- connect(subscriberKCoreAppUIsAutolockStatus, SIGNAL(contentsChanged()), this, SLOT(subscriberKCoreAppUIsAutolockStatusChanged()));
-
- subscriberKCTsyCallState = new QValueSpaceSubscriber("/KPSUidCtsyCallInformation/KCTsyCallState");
- connect(subscriberKCTsyCallState, SIGNAL(contentsChanged()), this, SLOT(subscriberKCTsyCallStateChanged()));
-
- // inactivity
- connect(serviceKeyguard, SIGNAL(active()), this, SLOT(activeKeyguard()));
- connect(serviceKeyguard, SIGNAL(notActive()), this, SLOT(notActiveKeyguard()));
- connect(serviceDevicelock, SIGNAL(active()), this, SLOT(activeDevicelock()));
- connect(serviceDevicelock, SIGNAL(notActive()), this, SLOT(notActiveDevicelock()));
-
- RWindowGroup& groupWin = CEikonEnv::Static()->RootWin();
- RDEBUG("got groupWin", 1);
- // if I want to release, I should do: mKeyCaptureHandle = env->RootWin().CaptureKey(EKeyBackspace, 0, 0);
- mEKeyDeviceFCaptureHandle = groupWin.CaptureKey(EKeyDeviceF, 0, 0);
- RDEBUG("mEKeyDeviceFCaptureHandle", mEKeyDeviceFCaptureHandle);
- mEKeyBellCaptureHandle = groupWin.CaptureKey(EKeyBell, 0, 0);
- RDEBUG("mEKeyBellCaptureHandle", mEKeyBellCaptureHandle);
- RDEBUG("got mKeyCaptureHandle", 1);
-
- iSecQueryUiCreated = -1;
- iDeviceDialogCreated = EDeviceDialogUninitialized;
- RDEBUG("new iDeviceDialogCreated", iDeviceDialogCreated);
- iDeviceDialog = NULL;
- // for now, always starts unlocked. This is correct because if locked, the unlock-query (from starter) is on top
- // TryChangeStatus(iLockStatus);
- TryChangeStatus( ELockNotActive);
- lower();
- hide();
-
- iDeviceDialog = new HbDeviceDialog(HbDeviceDialog::NoFlags, this);
- connect(iDeviceDialog, SIGNAL(dataReceived(QVariantMap)), SLOT(handleMessageFromScreensaver(QVariantMap)));
- connect(iDeviceDialog, SIGNAL(deviceDialogClosed()), SLOT(handleScreensaverClosed()));
-
- // screensaver standby mode timer
- mScreensaverModeTimer = new QTimer(this);
- mScreensaverModeTimer->setInterval(5 * 1000); // milliseconds, TODO: read from cenrep
- connect(mScreensaverModeTimer, SIGNAL(timeout()), SLOT(switchScreensaverToPowerSaveMode()));
- // screensaver AMOLED low power mode support
- mScreensaverPowerSave = CPowerSaveDisplayMode::NewL();
- mScreensaverPowerSavePixelBuffer = HBufC16::NewL(360 * 640);
- mScreensaverPowerSavePixelBuffer->Des().Fill(0);
- }
-
-Autolock::~Autolock()
- {
- RDEBUG("0", 0);
- delete mService;
- delete mScreensaverPowerSave;
- delete mScreensaverPowerSavePixelBuffer;
- RDEBUG("1", 1);
- }
-
-void Autolock::adjustInactivityTimers(int aReason)
- {
- RDEBUG("aReason", aReason);
- TInt keyguardTime = 0;
- TInt lockTime = 0;
- CRepository* repository = NULL;
- TInt cRresult = 0;
- Q_UNUSED(cRresult);
-
- QT_TRAP_THROWING(repository = CRepository::NewL(KCRUidSecuritySettings));
- cRresult = repository->Get(KSettingsAutomaticKeyguardTime, keyguardTime); // in seconds
- RDEBUG("KSettingsAutomaticKeyguardTime", KSettingsAutomaticKeyguardTime);
- RDEBUG("cRresult", cRresult);
- RDEBUG("keyguardTime", keyguardTime);
- if (keyguardTime > 0 && keyguardTime < 1000)
- {
- serviceKeyguard->setInactivityPeriod(keyguardTime);
- }
- else
- {
- serviceKeyguard->setInactivityPeriod(12 * 31 * 24 * 60 * 60);
- }
-
- cRresult = repository->Get(KSettingsAutoLockTime, lockTime); // in minutes, handled internally as seconds
- lockTime *= 60;
- RDEBUG("KSettingsAutoLockTime", KSettingsAutoLockTime);
- RDEBUG("cRresult", cRresult);
- RDEBUG("lockTime", lockTime);
- if (lockTime == 65535 * 60) // Special setting "lock at same time as keyguard" at CpDeviceLockPluginView::GetAutoLockIndex which uses this magic number
- lockTime = keyguardTime - 2; // lock 2 seconds before before, to avoid keyguard->devicelock sequence
- if (lockTime > 60 && lockTime < 24 * 60 * 60) // lock timer can't be bigger than 1 day
- {
- serviceDevicelock->setInactivityPeriod(lockTime);
- }
- else
- {
- serviceDevicelock->setInactivityPeriod(12 * 31 * 24 * 60 * 60); // 0x1ea6e00
- }
-
- delete repository;
- }
-void Autolock::quit()
- {
- RDEBUG("0", 0);
- qApp->quit();
- }
-
-int Autolock::AskValidSecCode(int aReason)
- {
- RDEBUG("aReason", aReason);
- RMobilePhone iPhone; // NULL in emulator
-
-#ifdef __WINS__1
- return KErrNone;
-#endif
-
- TInt err(KErrGeneral);
- Q_UNUSED(err);
- TBool validCode(EFalse);
- TInt thisTry(0);
- RTelServer iTelServer;
-
- err = RProperty::Set(KPSUidSecurityUIs, KSecurityUIsLights, ESecurityUIsLightsQueryOnRequest);
- RDEBUG("KSecurityUIsLights err", err);
-
- RMmCustomAPI iCustomPhone;
- while ((err = iTelServer.Connect()) != KErrNone && (thisTry++) <= KTriesToConnectServer)
- {
- User::After( KTimeBeforeRetryingServerConnection);
- }
- err = iTelServer.LoadPhoneModule(KMmTsyModuleName);
- RTelServer::TPhoneInfo PhoneInfo;
- RDEBUG("LoadPhoneModule err", err);
- err = iTelServer.SetExtendedErrorGranularity(RTelServer::EErrorExtended);
- RDEBUG("SetExtendedErrorGranularity err", err);
- err = iTelServer.GetPhoneInfo(KPhoneIndex, PhoneInfo);
- RDEBUG("GetPhoneInfo err", err);
- err = iPhone.Open(iTelServer, PhoneInfo.iName);
- RDEBUG("Open err", err);
- err = iCustomPhone.Open(iPhone);
- RDEBUG("Open2 err", err);
-
- RDEBUG("CSecurityHandler", 0);
- CSecurityHandler* handler = new (ELeave) CSecurityHandler(iPhone);
- if (aReason == ELockAppDisableDevicelock)
- {
- RDEBUG("calling AskSecCodeInAutoLockL", 0);
- iLockCodeQueryInDisplay = ETrue;
- QT_TRAP_THROWING(validCode = handler->AskSecCodeInAutoLockL()); // this returns true/false
- iLockCodeQueryInDisplay = EFalse;
- // TODO should this also do iPhone.SetLockSetting(status, lockType, lockChange); ???
- }
- else if (aReason == ELockAppEnableDevicelock)
- {
- // check whether code is really needed
- RMobilePhone::TMobilePhoneLock lockType = RMobilePhone::ELockPhoneDevice;
- RMobilePhone::TMobilePhoneLockInfoV1 lockInfo;
- RMobilePhone::TMobilePhoneLockInfoV1Pckg lockInfoPkg(lockInfo);
- RMobilePhone::TMobilePhoneLockSetting lockChange(RMobilePhone::ELockSetDisabled);
- TRequestStatus status = KRequestPending;
- TInt ret = KErrNone;
- RDEBUG("GetLockInfo", 0);
- iPhone.GetLockInfo(status, lockType, lockInfoPkg);
- RDEBUG("WaitForRequest", 0);
- User::WaitForRequest(status);
- ret = status.Int();
- RDEBUG("WaitForRequest ret", ret);
-#ifdef __WINS__
- if (ret == KErrTimedOut)
- {
- ret = KErrNone;
- lockInfo.iSetting = RMobilePhone::ELockSetDisabled; // ask password only if there's no timeout.
- }
-#endif
- if (ret == KErrNone)
- {
- RDEBUG("lockInfo.iSetting", lockInfo.iSetting);
- RDEBUG("RMobilePhone::ELockSetDisabled",
- RMobilePhone::ELockSetDisabled);
- if (lockInfo.iSetting == RMobilePhone::ELockSetDisabled) // ask password only if there's no timeout
- {
- lockChange = RMobilePhone::ELockSetEnabled;
- RDEBUG("SetLockSetting lockChange", lockChange);
-#define OLD_METHODx
-#ifdef OLD_METHOD
- status = KRequestPending;
- RDEBUG( "SetLockSetting", 0 );
- iPhone.SetLockSetting(status, lockType, lockChange); // ask for PassPhraseRequiredL
- RDEBUG( "WaitForRequestL", 0 );
- User::WaitForRequest( status ); // TODO this waits 33 seconds in WINS and returns ffffffdf = KErrTimedOut
- ret = status.Int();
- RDEBUG( "WaitForRequestL ret", ret );
-#else
- RDEBUG("! OLD_METHOD", 0);
- CWait *iWait = NULL;
- QT_TRAP_THROWING(iWait = CWait::NewL());
- iWait->SetRequestType(EMobilePhoneSetLockSetting);
- iPhone.SetLockSetting(iWait->iStatus, lockType, lockChange); // ask for PassPhraseRequiredL
- RDEBUG("WaitForRequestL", 0);
- QT_TRAP_THROWING(ret = iWait->WaitForRequestL());
- RDEBUG("WaitForRequestL ret", ret);
- if (iWait)
- {
- RDEBUG("IsActive", 0);
- if (iWait->IsActive())
- {
- RDEBUG("CancelAsyncRequest", 0);
- iPhone.CancelAsyncRequest(iWait->GetRequestType());
- RDEBUG("cancelled", 0);
- }
- }
- delete iWait;
-#endif
-
- RDEBUG("WaitForRequestL ret", ret);
-#ifdef __WINS__
- if (ret == KErrTimedOut)
- ret = KErrNone;
-#endif
- if (ret == KErrNone)
- validCode = 1;
- else
- validCode = 0;
- }
- else
- {
- RDEBUG("RMobilePhone::ELockSetEnabled", RMobilePhone::ELockSetEnabled);
- RDEBUG("lockInfo.iSetting = RMobilePhone::ELockSetEnabled", RMobilePhone::ELockSetEnabled);
- validCode = 0x20;
- }
- }
- else
- {
- RDEBUG("Error: ret", ret);
- validCode = 0x21;
- }
-
- /* Alternative way to ask for password
- RMobilePhone::TMobilePhoneSecurityEvent iEvent;
- TInt result = KErrNone;
- iEvent = RMobilePhone::EPhonePasswordRequired;
- RDEBUG( "calling HandleEventL", 0 );
- handler->HandleEventL(iEvent, result); // this is supposed to wait
- validCode = false;
- if(result)
- validCode = true;
- RDEBUG( "result", result );
- */
- }
- RDEBUG("validCode", validCode);
- if (validCode > 0)
- return KErrNone;
-
- // no valid code -> switch off the lights
- err = RProperty::Set(KPSUidSecurityUIs, KSecurityUIsLights, ESecurityUIsLightsLockOffRequest);
- RDEBUG("KSecurityUIsLights err", err);
- return KErrCancel;
- }
-
-void Autolock::handleAnswerDelivered()
- {
- RDEBUG("0", 0);
- // quit();
-
- }
-
-void Autolock::setLabelNumber(QString label, QString number)
- {
- RDEBUG("0", 0);
- }
-
-void Autolock::DebugRequest(int aReason)
- {
- switch (aReason)
- {
- case ELockAppEnableKeyguard:
- RDEBUG("ELockAppEnableKeyguard", aReason)
- ;
- break;
- case ELockAppDisableKeyguard:
- RDEBUG("ELockAppDisableKeyguard", aReason)
- ;
- break;
- case ELockAppEnableDevicelock:
- RDEBUG("ELockAppEnableDevicelock", aReason)
- ;
- break;
- case ELockAppDisableDevicelock:
- RDEBUG("ELockAppDisableDevicelock", aReason)
- ;
- break;
- case ELockAppOfferKeyguard:
- RDEBUG("ELockAppOfferKeyguard", aReason)
- ;
- break;
- case ELockAppOfferDevicelock:
- RDEBUG("ELockAppOfferDevicelock", aReason)
- ;
- break;
- case ELockAppShowKeysLockedNote:
- RDEBUG("ELockAppShowKeysLockedNote", aReason)
- ;
- break;
- default:
- RDEBUG("default", aReason)
- ;
- break;
- }
- }
-void Autolock::DebugStatus(int aReason)
- {
- switch (aReason)
- {
- case ELockNotActive:
- RDEBUG("ELockNotActive", aReason)
- ;
- break;
- case EKeyguardActive:
- RDEBUG("EKeyguardActive", aReason)
- ;
- break;
- case EDevicelockActive:
- RDEBUG("EDevicelockActive", aReason)
- ;
- break;
- default:
- RDEBUG("default", aReason)
- ;
- break;
- }
- }
-void Autolock::DebugError(int aReason)
- {
- switch (aReason)
- {
- case KErrNone:
- RDEBUG("KErrNone", aReason)
- ;
- break;
- case KErrPermissionDenied: // caller doesn't have enough capabilities
- RDEBUG("KErrPermissionDenied", aReason)
- ;
- break;
- case KErrAlreadyExists: // this particular lock is already enabled
- RDEBUG("KErrAlreadyExists", aReason)
- ;
- break;
- case KErrInUse: // the dialog is already shown
- RDEBUG("KErrInUse", aReason)
- ;
- break;
- default:
- RDEBUG("default", aReason)
- ;
- break;
- }
- }
-
-int Autolock::CheckIfLegal(int aReason)
- {
- RDEBUG("aReason", aReason);
- // check whether a dialog is already displayed. This is to prevent timeout-lock and timeout-keyguard activated on top of a PIN query, in particular at boot-up (TODO check for Starter)
- TInt secUiOriginatedQuery(ESecurityUIsSecUIOriginatedUninitialized);
- TInt err = RProperty::Get(KPSUidSecurityUIs, KSecurityUIsSecUIOriginatedQuery, secUiOriginatedQuery);
- RDEBUG("err", err);
- RDEBUG("secUiOriginatedQuery", secUiOriginatedQuery);
- switch (aReason)
- {
- case ELockAppEnableKeyguard:
- {
- RDEBUG("ELockAppEnableKeyguard iLockStatus", iLockStatus);
- if (secUiOriginatedQuery != ESecurityUIsSecUIOriginatedUninitialized)
- return KErrInUse; // PIN on top. Don't keyguard
- switch (iLockStatus)
- {
- case ELockNotActive:
- if (!CKeyLockPolicyApi::KeyguardAllowed())
- return KErrPermissionDenied;
- else
- return KErrNone;
- case EKeyguardActive:
- return KErrAlreadyExists;
- case EDevicelockActive:
- return KErrPermissionDenied;
- }
- }
- break;
- case ELockAppDisableKeyguard:
- {
- RDEBUG("ELockAppDisableKeyguard iLockStatus", iLockStatus);
- // no matter whether PIN is displayed
- switch (iLockStatus)
- {
- case ELockNotActive:
- return KErrAlreadyExists;
- case EKeyguardActive:
- return KErrNone;
- case EDevicelockActive:
- return KErrPermissionDenied;
- }
- }
- break;
- case ELockAppEnableDevicelock:
- {
- RDEBUG("ELockAppEnableDevicelock iLockStatus", iLockStatus);
- if (secUiOriginatedQuery != ESecurityUIsSecUIOriginatedUninitialized && secUiOriginatedQuery != ESecurityUIsSystemLockOriginated)
- return KErrInUse; // PIN on top. Don't devicelock
- switch (iLockStatus)
- {
- case ELockNotActive:
- return KErrNone;
- case EKeyguardActive:
- return KErrNone;
- case EDevicelockActive:
- return KErrAlreadyExists;
- }
- }
- break;
- case ELockAppDisableDevicelock:
- {
- RDEBUG("ELockAppDisableDevicelock iLockStatus", iLockStatus);
- if (iLockCodeQueryInDisplay)
- {
- // PIN on top and trying to display unlock-code. This is valid
- return KErrAlreadyExists;
- }
- switch (iLockStatus)
- {
- case ELockNotActive:
- return KErrAlreadyExists;
- case EKeyguardActive:
- return KErrPermissionDenied;
- case EDevicelockActive:
- return KErrNone;
- }
- }
- break;
- case ELockAppOfferKeyguard:
- {
- RDEBUG("ELockAppOfferKeyguard iLockStatus", iLockStatus);
- if (secUiOriginatedQuery != ESecurityUIsSecUIOriginatedUninitialized && secUiOriginatedQuery != ESecurityUIsSystemLockOriginated)
- return KErrInUse; // PIN on top. Don't offer
- switch (iLockStatus)
- {
- case ELockNotActive:
- return KErrNone;
- case EKeyguardActive:
- return KErrPermissionDenied;
- case EDevicelockActive:
- return KErrPermissionDenied;
- }
- }
- break;
- case ELockAppOfferDevicelock:
- {
- RDEBUG("ELockAppOfferDevicelock iLockStatus", iLockStatus);
- if (secUiOriginatedQuery != ESecurityUIsSecUIOriginatedUninitialized && secUiOriginatedQuery != ESecurityUIsSystemLockOriginated)
- return KErrInUse; // PIN on top. Don't offer
- switch (iLockStatus)
- {
- case ELockNotActive:
- return KErrNone;
- case EKeyguardActive:
- return KErrNone;
- case EDevicelockActive:
- return KErrAlreadyExists;
- }
- }
- break;
- case ELockAppShowKeysLockedNote:
- {
- RDEBUG("ELockAppShowKeysLockedNote iLockStatus", iLockStatus);
- if (secUiOriginatedQuery != ESecurityUIsSecUIOriginatedUninitialized && secUiOriginatedQuery != ESecurityUIsSystemLockOriginated)
- return KErrInUse; // PIN on top. Don't display
- switch (iLockStatus)
- {
- case ELockNotActive:
- return KErrPermissionDenied;
- case EKeyguardActive:
- return KErrNone;
- case EDevicelockActive: // TODO confirm this. CMMKeyBearer::ReceivedKeyEvent expects KErrNone if keypad is locked
- return KErrPermissionDenied;
- }
- }
- break;
- default:
- {
- RDEBUG("default iLockStatus", iLockStatus);
- return KErrPermissionDenied;
- }
- // break;
- } // switch
- return KErrPermissionDenied;
- }
-
-int Autolock::publishStatus(int aReason)
- {
- RDEBUG("aReason", aReason);
- Q_UNUSED(aReason);
- TInt err = KErrNone;
- Q_UNUSED(err);
- // can't use include file because it's private file. However it gives permissions
- const TUid KCRUidCoreApplicationUIsSysAp =
- {
- 0x101F8765
- };
- const TUint32 KSysApKeyguardActive = 0x00000001;
- CRepository* repositoryDevicelock = NULL;
- CRepository* repositoryKeyguard = NULL;
- QT_TRAP_THROWING(repositoryDevicelock = CRepository::NewL(KCRUidSecuritySettings));
- QT_TRAP_THROWING(repositoryKeyguard = CRepository::NewL(KCRUidCoreApplicationUIsSysAp));
- TInt cRresult = KErrNone;
- Q_UNUSED(cRresult);
- if (1 == 1) // this is a quick way to disable this functionality, for testing
- {
- RDEBUG("publishing", aReason);
- if (aReason == ELockNotActive)
- {
- err = RProperty::Set(KPSUidAvkonDomain, KAknKeyguardStatus, EKeyguardNotActive);
- RDEBUG("err", err);
- err = RProperty::Set(KPSUidCoreApplicationUIs, KCoreAppUIsAutolockStatus, EAutolockOff);
- RDEBUG("err", err);
- err = RProperty::Set(KPSUidSecurityUIs, KSecurityUIsLights, ESecurityUIsLightsLockOnRequest); // lights are required
- RDEBUG("KSecurityUIsLights err", err);
-
- // cRresult = repositoryDevicelock->Set(KSettingsAutolockStatus, 0); // the settings remains. Only ISA changes, as well as the P&S
- cRresult = repositoryKeyguard->Set(KSysApKeyguardActive, 0);
- RDEBUG("cRresult", cRresult);
- }
- if (1 == 1) // this is a quick way to disable this functionality, for testing
- {
- if (aReason == EKeyguardActive)
- {
- err = RProperty::Set(KPSUidAvkonDomain, KAknKeyguardStatus, EKeyguardLocked);
- RDEBUG("KAknKeyguardStatus err", err);
- err = RProperty::Set(KPSUidCoreApplicationUIs, KCoreAppUIsAutolockStatus, EAutolockOff);
- RDEBUG("KCoreAppUIsAutolockStatus err", err);
- err = RProperty::Set(KPSUidSecurityUIs, KSecurityUIsLights, ESecurityUIsLightsLockOffRequest); // same for keyguard and devicelock
- RDEBUG("KSecurityUIsLights err", err);
- // cRresult = repositoryDevicelock->Set(KSettingsAutolockStatus, 0);
- cRresult = repositoryKeyguard->Set(KSysApKeyguardActive, 1);
- RDEBUG("cRresult", cRresult);
- }
- else if (aReason >= EDevicelockActive)
- {
- err = RProperty::Set(KPSUidAvkonDomain, KAknKeyguardStatus, EKeyguardAutolockEmulation); // Other candidates might be: EKeyguardLocked and EKeyguardNotActive
- RDEBUG("KAknKeyguardStatus err", err);
- err = RProperty::Set(KPSUidCoreApplicationUIs, KCoreAppUIsAutolockStatus, EManualLocked);
- RDEBUG("KCoreAppUIsAutolockStatus err", err);
- err = RProperty::Set(KPSUidSecurityUIs, KSecurityUIsLights, ESecurityUIsLightsLockOffRequest);
- RDEBUG(" KSecurityUIsLights err", err);
- // cRresult = repositoryDevicelock->Set(KSettingsAutolockStatus, 1);
- cRresult = repositoryKeyguard->Set(KSysApKeyguardActive, 0); // keyguard disabled, so that user can type and DeviceF can be captured
- RDEBUG("cRresult", cRresult);
- }
- }
- }
- delete repositoryDevicelock;
- delete repositoryKeyguard;
- // this is the real point where everything is done.
- iLockStatusPrev = iLockStatus;
- iLockStatus = aReason;
- RDEBUG("setting iLockStatus", iLockStatus);
- return KErrNone;
- }
-/********************/
-int Autolock::showNoteIfRequested(int aReason)
- {
- RDEBUG("aReason", aReason);
- // The notes are displayed. This is useful only for the API withNote, and ELockAppShowKeysLockedNote
- // However, it has some inconvenients:
- // - the screensaver already displays/hides
- // - the notes are shown behing the icon because they have lower priorities
- // - they are annoying
- // TODO translate
- if (aReason == ELockNotActive)
- {
- if (iShowKeyguardNote == 1)
- {
- HbDeviceMessageBox::information("Keyguard deactivated");
- }
- }
- else if (aReason == EKeyguardActive)
- {
- if (iShowKeyguardNote == 1)
- {
- HbDeviceMessageBox::information("Keyguard activated");
- // this already waits a bit because the lock-icon takes some time to display. So the note is visible before the lock-icon.
- }
- }
- else if (aReason >= EDevicelockActive) // this doesn't happen, but we are prepared nevertheless
- {
- if (iShowKeyguardNote == 1)
- {
- HbDeviceMessageBox::information("Devicelock activated");
- }
- }
- return KErrNone;
- }
-/***********************/
-int Autolock::TryChangeStatus(int aReason)
- {
- RDEBUG("aReason", aReason);
- int ret = aReason;
- int errorInProcess = KErrNone;
- DebugRequest(ret);
-
- // this will cancel any previous dialog, i.e. PIN query, or any previous code-request.
- // not sure about the screensaver, but nevertheless will be cancelled when the status is changed.
- TInt err = KErrNone;
- Q_UNUSED(err);
- RDEBUG("Not setting KSecurityUIsDismissDialog ESecurityUIsDismissDialogOn", ESecurityUIsDismissDialogOn);
- //// err = RProperty::Set(KPSUidSecurityUIs, KSecurityUIsDismissDialog, ESecurityUIsDismissDialogOn);
- RDEBUG("err", err);
- switch (ret)
- {
- case ELockAppEnableKeyguard: // 1
- {
- errorInProcess = CheckIfLegal(ret);
- DebugError(errorInProcess);
- if (errorInProcess == KErrNone)
- {
- showNoteIfRequested( EKeyguardActive);
- setLabelIcon(EKeyguardActive);
- updateIndicator(EKeyguardActive);
- publishStatus(EKeyguardActive);
- setLockDialog(aReason, 1);
- }
- }
- break;
- case ELockAppDisableKeyguard: // 2
- {
- errorInProcess = CheckIfLegal(ret);
- DebugError(errorInProcess);
- if (errorInProcess == KErrNone)
- {
- showNoteIfRequested( ELockNotActive);
- setLabelIcon(ELockNotActive);
- updateIndicator(ELockNotActive);
- publishStatus(ELockNotActive);
- setLockDialog(aReason, 0);
- }
- }
- break;
- case ELockAppEnableDevicelock: // 3
- {
- errorInProcess = CheckIfLegal(ret);
- DebugError(errorInProcess);
- if (errorInProcess == KErrNone)
- {
- if (!callerHasECapabilityWriteDeviceData) // check permissions for calling process, because doesn't AskValidSecCode
- errorInProcess = KErrPermissionDenied;
- DebugError(errorInProcess);
- }
- if (errorInProcess == KErrNone)
- {
- updateIndicator( EDevicelockActive);
- publishStatus(EDevicelockActive);
- setLabelIcon(EDevicelockActive);
- setLockDialog(aReason, 1);
- }
- // aParam1 is aReason : EDevicelockManual, EDevicelockRemote
- // this never shows a note
- }
- break;
- case ELockAppDisableDevicelock: // 4
- {
- errorInProcess = CheckIfLegal(ret);
- DebugError(errorInProcess);
- if (errorInProcess == KErrNone)
- {
- if (!callerHasECapabilityWriteDeviceData) // check permissions for calling process, because doesn't AskValidSecCode
- errorInProcess = KErrPermissionDenied;
- DebugError(errorInProcess);
- }
- if (errorInProcess == KErrNone)
- {
- setLockDialog(aReason, 0); // hide temporarilly because HbDeviceMessageBox doesn't get in top of the Lock-icon. Thus, dismiss it.
- // do I need to enable touch? it seems to work without it
- // in any case, lights are needed
- err = RProperty::Set(KPSUidSecurityUIs, KSecurityUIsLights, ESecurityUIsLightsQueryOnRequest);
- RDEBUG("calling HbDeviceMessageBox::question", 0);
- bool value = true;
- // not sure whether this question is really needed. The UI doesn't say anything, so I remove it for now.
- // HbDeviceMessageBox::question("Disable Lock?"); // this doesn't block other events, so after return everything might be messed up.
- RDEBUG("value", value);
- if (!value)
- errorInProcess = KErrCancel;
- }
- if (errorInProcess == KErrNone)
- {
- setLockDialog(aReason, 0); // hide temporarilly because AskValidSecCode doesn't get in top of the Lock-icon. Thus, dismiss it.
- RDEBUG("calling AskValidSecCode", 0);
- errorInProcess = AskValidSecCode(ELockAppDisableDevicelock);
- RDEBUG("errorInProcess", errorInProcess);
- }
- if (errorInProcess == KErrNone)
- {
- setLabelIcon( ELockNotActive);
- updateIndicator(ELockNotActive);
- setLockDialog(aReason, 0);
- publishStatus(ELockNotActive);
- }
- if (errorInProcess != KErrNone)
- { // re-lock. For example, if password is wrong
- if (iLockStatus >= EDevicelockActive) // this skips the case "unlocking although it wasn't locked"
- setLockDialog(ELockAppEnableDevicelock, 1);
- }
- // this never shows a note
- }
- break;
- case ELockAppOfferKeyguard: // 5
- {
- errorInProcess = CheckIfLegal(ret);
- DebugError(errorInProcess);
- if (errorInProcess == KErrNone)
- {
- // no need to dismiss screensaver, because it's not active
- // what about any PIN-query, i.e. from settings ? In this case, the query will show after the PIN query is finished. somehow this is good because PIN is more important
- bool value = HbDeviceMessageBox::question("Enable Keyguard?"); // this doesn't block other events, so after return everything might be messed up.
- // what about a nice icon?
- RDEBUG("value", value);
- if (!value)
- errorInProcess = KErrCancel;
- }
- if (errorInProcess == KErrNone)
- {
- errorInProcess = TryChangeStatus(ELockAppEnableKeyguard);
- }
- // this never shows a note
- }
- break;
- case ELockAppOfferDevicelock: // 6
- {
- errorInProcess = CheckIfLegal(ret);
- DebugError(errorInProcess);
- if (errorInProcess == KErrNone)
- {
- setLockDialog(aReason, 0); // hide temporarilly because AskValidSecCode doesn't get in top of the Lock-icon. Thus, dismiss it.
- errorInProcess = AskValidSecCode(ELockAppEnableDevicelock);
- }
- if (errorInProcess == KErrNone)
- {
- RDEBUG("ELockAppOfferDevicelock calling ELockAppEnableDevicelock", ELockAppEnableDevicelock);
- errorInProcess = TryChangeStatus(ELockAppEnableDevicelock);
- }
- // this never shows a note. Perhaps ELockAppEnableDevicelock does.
- }
- break;
- case ELockAppShowKeysLockedNote: // 7
- {
- errorInProcess = CheckIfLegal(ret); // it will not be legal if the keyguard is not enabled and the devicelock is not enabled.
- DebugError(errorInProcess);
- if (errorInProcess == KErrNone)
- {
- iShowKeyguardNote = 1; // this is not sent as parameter, so we need to fake it: ON
- showNoteIfRequested( EKeyguardActive);
- }
- }
- break;
- default:
- {
- RDEBUG("default", ret);
- errorInProcess = KErrNotSupported;
- }
- break;
-
- }
- return errorInProcess;
- }
-/**************************/
-int Autolock::setLockDialog(int aReason, int status)
- {
- RDEBUG("aReason", aReason);
- RDEBUG("status", status);
- RDEBUG("iDeviceDialogCreated", iDeviceDialogCreated);
- TInt secUiOriginatedQuery(ESecurityUIsSecUIOriginatedUninitialized);
- TInt err = RProperty::Get(KPSUidSecurityUIs, KSecurityUIsSecUIOriginatedQuery, secUiOriginatedQuery);
- RDEBUG("err", err);
- RDEBUG("secUiOriginatedQuery", secUiOriginatedQuery);
-
- RWindowGroup& groupWin = CEikonEnv::Static()->RootWin();
-
- if (status == 0) // hide
- {
- // aReason is not important here, but let's check nevertheless
- RDEBUG("ReleaseContext", R_AVKON_DEFAULT_SKEY_LIST);
- static_cast<CAknAppUi*>(CEikonEnv::Static()->EikAppUi())->KeySounds()->ReleaseContext();
- RDEBUG("PopContext", 0x90);
- static_cast<CAknAppUi*>(CEikonEnv::Static()->EikAppUi())->KeySounds()->PopContext();
- RDEBUG("ReleaseContext done", 0x92);
-
- if (aReason != ELockAppDisableKeyguard && aReason != ELockAppDisableDevicelock)
- {
- RDEBUG("!!!!****!!!!! error. status=0 but aReason", aReason);
- }
- // secUiOriginatedQuery should be ESecurityUIsSystemLockOriginated . If not, this is not correctly setting it
- if (iDeviceDialogCreated >= EDeviceDialogCreated)
- {
- iDeviceDialogCreated = EDeviceDialogDestroyed;
- RDEBUG("new iDeviceDialogCreated", iDeviceDialogCreated);
-
- RDEBUG("calling switchScreensaverMode", ESnsrViewTypeDisabled);
- switchScreensaverMode( ESnsrViewTypeDisabled);
-
- disconnect(iDeviceDialog, SIGNAL(dataReceived(QVariantMap)), this, SLOT(handleMessageFromScreensaver(QVariantMap)));
- disconnect(iDeviceDialog, SIGNAL(deviceDialogClosed()), this, SLOT(handleScreensaverClosed()));
- RDEBUG("signal disconnected", err);
- // TODO this crashes for EDeviceDialogScreenSaver
- err = iDeviceDialog->cancel();
- RDEBUG("cancel (bool: 1= wellCancelled) err", err);
- err = iDeviceDialog->error();
- RDEBUG("err", err);
- RDEBUG("calling iDeviceDialog->waitForClosed()", 0);
- err = iDeviceDialog->waitForClosed();
- RDEBUG("cancel (bool: 1= well waitForClosed) err", err);
- err = iDeviceDialog->error();
- RDEBUG("err", err);
-
- TInt err = RProperty::Set(KPSUidSecurityUIs, KSecurityUIsSecUIOriginatedQuery, ESecurityUIsSecUIOriginatedUninitialized);
- RDEBUG("reset KSecurityUIsSecUIOriginatedQuery. err", err);
- // Cancel power key and application key capturing
- groupWin.CancelCaptureKey(mPowerKeyCaptureHandle);
- groupWin.CancelCaptureKey(mApplicationKeyCaptureHandle);
- groupWin.CancelCaptureLongKey(mApplicationLongKeyCaptureHandle);
- RDEBUG("done CancelCaptureKey", 1);
- if (mEKeyYesCaptureHandle)
- {
- RDEBUG("mEKeyYesCaptureHandle", mEKeyYesCaptureHandle);
- groupWin.CancelCaptureKey(mEKeyYesCaptureHandle);
- mEKeyYesCaptureHandle = NULL;
- }
- if (mEKeyNoCaptureHandle)
- {
- RDEBUG("mEKeyNoCaptureHandle", mEKeyNoCaptureHandle);
- groupWin.CancelCaptureKey(mEKeyNoCaptureHandle);
- mEKeyNoCaptureHandle = NULL;
- }
-
- RDEBUG("deleting iDeviceDialog", 0);
- delete iDeviceDialog;
- RDEBUG("deleted iDeviceDialog", 1);
- iDeviceDialog = NULL;
- }
- }
- else if (status == 1) // show
- {
- RDEBUG("PushContextL", R_AVKON_DEFAULT_SKEY_LIST);
- static_cast<CAknAppUi*>(CEikonEnv::Static()->EikAppUi())->KeySounds()->PushContextL(R_AVKON_SILENT_SKEY_LIST);
- RDEBUG("BringToForeground", 0x90);
- static_cast<CAknAppUi*>(CEikonEnv::Static()->EikAppUi())->KeySounds()->BringToForeground();
- RDEBUG("LockContext", 0x91);
- static_cast<CAknAppUi*>(CEikonEnv::Static()->EikAppUi())->KeySounds()->LockContext();
- RDEBUG("PushContextL Done", 0x92);
-
- // secUiOriginatedQuery should be ESecurityUIsSecUIOriginatedUninitialized . If not, the validation is not correctly filtering it
- QVariantMap params;
- TBool err;
-#define ESecUiTypeDeviceLock 0x00100000
-#define ESecUiTypeKeyguard 0x00200000
-
- if (aReason == ELockAppEnableKeyguard)
- params.insert("type", ESecUiTypeKeyguard);
- else if (aReason == ELockAppEnableDevicelock)
- params.insert("type", ESecUiTypeDeviceLock);
- else
- {
- RDEBUG("error. status=1 but aReason", aReason);
- }
- // no need for title. Icon should be explicit enough
- // params.insert("title", "Locked");
- if (iDeviceDialogCreated < EDeviceDialogCreated)
- {
- if (iDeviceDialog != NULL)
- {
- RDEBUG("!!!!!!*********!!!!!!!! error: iDeviceDialog != NULL", 0);
- }
- RDEBUG("creating iDeviceDialog", 0);
- iDeviceDialog = new HbDeviceDialog(HbDeviceDialog::NoFlags, this);
- // in theory this is needed only for screensaver, not for LockIcon. But it doesn't harm
- connect(iDeviceDialog, SIGNAL(dataReceived(QVariantMap)), SLOT(handleMessageFromScreensaver(QVariantMap)));
- connect(iDeviceDialog, SIGNAL(deviceDialogClosed()), SLOT(handleScreensaverClosed()));
- iDeviceDialogCreated = EDeviceDialogCreated;
- RDEBUG("new iDeviceDialogCreated", iDeviceDialogCreated);
- }
- else
- {
- RDEBUG("raising iDeviceDialog", 0);
- // confirm that dialog is present
- err = iDeviceDialog->error();
- RDEBUG("err", err);
- iDeviceDialogCreated = EDeviceDialogRaised;
- RDEBUG("new iDeviceDialogCreated", iDeviceDialogCreated);
- }
- const QString KScreensaverDeviceDialog("com.nokia.screensaver.snsrdevicedialogplugin/1.0");
- RDEBUG("pre show", aReason);
- bool launchSuccesful = iDeviceDialog->show(KScreensaverDeviceDialog, params); // and continue processing
- RDEBUG("post show. bool launchSuccesful", launchSuccesful);
- err = iDeviceDialog->error();
- RDEBUG("iDeviceDialog->error", err);
- if (launchSuccesful) // TODO && !error ???
- {
- iDeviceDialogCreated = EDeviceDialogScreenSaver;
- RDEBUG("new iDeviceDialogCreated", iDeviceDialogCreated);
- // TODO this is needed if creating dialog for first time? switchScreensaverToActiveMode(); // this is needed in case the dialog was existing.
- // Start standy mode timer. The initial state may already be the standby
- // mode but setting screensaver again to standby doesn't hurt.
- mScreensaverModeTimer->start();
- }
- else // some err. Usually 3 (not existing)
- {
- // screensaver has failed. Probably because it's not installed. Then, try the standard lock-icon
- iDeviceDialogCreated = EDeviceDialogLockIcon;
- RDEBUG("new iDeviceDialogCreated", iDeviceDialogCreated);
- const QString KSecQueryUiDeviceDialog("com.nokia.secuinotificationdialog/1.0");
- err = iDeviceDialog->show(KSecQueryUiDeviceDialog, params); // and continue processing
- RDEBUG("post show. err", err);
- }
- err = iDeviceDialog->error();
- RDEBUG("err", err);
- // This won't be needed when screensaver is in place, as the dialogs will be different, and therefore both can be present
- // Somehow this should be handled by Orbit, but unfortunatelly they don't allow the same dialog twice
- err = RProperty::Set(KPSUidSecurityUIs, KSecurityUIsSecUIOriginatedQuery, ESecurityUIsSecUIOriginatedUninitialized); // this could also be ESecurityUIsSystemLockOriginated
- RDEBUG("err", err);
- // Capture power and application keys while screen saver is open. Also works for LockIcon
- mPowerKeyCaptureHandle = groupWin.CaptureKey(EKeyDevice2, 0, 0);
- mApplicationKeyCaptureHandle = groupWin.CaptureKey(EKeyApplication0, 0, 0);
- mApplicationLongKeyCaptureHandle = groupWin.CaptureLongKey(EKeyApplication0, EKeyApplication0, 0, 0, 0, ELongCaptureShortEventImmediately | ELongCaptureRepeatEvents);
- mEKeyYesCaptureHandle = groupWin.CaptureKey(EKeyYes, 0, 0);
- mEKeyNoCaptureHandle = groupWin.CaptureKey(EKeyNo, 0, 0);
- RDEBUG("keys captured", err);
- }
- else
- {
- RDEBUG("unknown status", status);
- return KErrNotSupported;
- }
- return KErrNone;
- }
-
-void Autolock::setLabelIcon(int aReason)
- {
- RDEBUG("aReason", aReason);
-
- if (aReason == ELockNotActive)
- {
- // setLockDialog(aReason, 0); // This is done already at TryChangeStatus
- lower();
- hide();
- }
- else if (aReason == EKeyguardActive)
- {
- // setLockDialog(aReason, 1); // This is done already at TryChangeStatus
- // this shows the Autolock Application. not needed
- }
- else if (aReason == EDevicelockActive)
- {
- }
- else
- {
- RDEBUG("error: aReason", aReason);
- }
- }
-
-int Autolock::updateIndicator(int aReason)
- {
- RDEBUG("aReason", aReason);
- QList<QVariant> list;
- list.insert(0, 1);
- list.insert(1, "dummy");
- list.insert(2, 2);
-
- HbIndicator indicator;
- bool success;
- if (aReason == ELockNotActive)
- success = indicator.deactivate("com.nokia.hb.indicator.autolock.autolock_8/1.0"); // maybe it's already deactivated. Not a problem
- else if (aReason == EKeyguardActive)
- success = indicator.activate("com.nokia.hb.indicator.autolock.autolock_8/1.0");
- else if (aReason == EDevicelockActive)
- success = indicator.activate("com.nokia.hb.indicator.autolock.autolock_8/1.0"); // same. We have just 1 indicator
- else
- success = 0;
- RDEBUG("success", success);
- return success;
- }
-
-void Autolock::activeKeyguard()
- {
- // activity while keyguarded. Nothing to do
- RDEBUG("0", 0);
- }
-
-void Autolock::notActiveKeyguard()
- {
- // inactivity. Keyguard should be activated
- RDEBUG("0", 0);
- int ret = KErrNone;
- DebugStatus( iLockStatus);
- if (iLockStatus == ELockNotActive) // not possible if it's keyguarded, or locked
- {
- TInt callState = EPSCTsyCallStateNone;
- int err = RProperty::Get(KPSUidCtsyCallInformation, KCTsyCallState, callState);
- RDEBUG("err", err);
- RDEBUG("callState", callState);
- // if there's an active call, don't auto-keyguard (manual is still possible)
- if (callState <= EPSCTsyCallStateNone)
- {
- ret = TryChangeStatus(ELockAppEnableKeyguard);
- RDEBUG("ret", ret);
- }
- else
- {
- RDEBUG("not ELockAppEnableKeyguard because callState", callState);
- }
- }
- else
- {
- // restart screensaver. The scenario is: keyguard->screensaver->CriticalNote->lightsOn . Therefore we need lightsOff
- // this is done when keyguard can't be enabled because it's already enabled
- // Note that this happens only once, so it's fine to show the screensaver in full light.
- if (ret == KErrAlreadyExists)
- switchScreensaverMode( ESnsrViewTypeInitial);
- }
- RDEBUG("ret", ret);
- }
-/* Some activity detected while the deviceLock is enabled */
-void Autolock::activeDevicelock()
- {
- // nothing to do
- RDEBUG("0", 0);
- }
-
-void Autolock::notActiveDevicelock()
- {
- // inactivity. Devicelock should be activated
- RDEBUG("0", 0);
- int ret = KErrNone;
- Q_UNUSED(ret);
- DebugStatus( iLockStatus);
- if (iLockStatus == ELockNotActive || iLockStatus == EKeyguardActive) // not possible if it's locked
- {
- // this is independent of the call status
- ret = TryChangeStatus(ELockAppEnableDevicelock);
- }
- RDEBUG("ret", ret);
-
- }
-
-void Autolock::switchScreensaverMode(int mode)
- {
- RDEBUG("mode", mode);
- if (iDeviceDialog)
- {
- // maybe this can be used to tell the dialog to dismiss itself?
- RDEBUG("got iDeviceDialog. iDeviceDialogCreated", iDeviceDialogCreated);
- QVariantMap params;
- // this is for LockIcon. Doesn't harm screensaver
- // need to send again so that the existing dialog still knows what is its type
- if (iLockStatus == EKeyguardActive)
- params.insert("type", ESecUiTypeKeyguard);
- else if (iLockStatus >= EDevicelockActive)
- params.insert("type", ESecUiTypeDeviceLock);
-
- // this is for screensaver. Doesn't harm LockIcon
- params.insert(KSnsrViewTypeKey, mode);
- iDeviceDialog->update(params);
-
- if (mScreensaverModeTimer)
- {
- if (mode == ESnsrViewTypeStandby || mode == ESnsrViewTypeDisabled)
- {
- RDEBUG("stop mScreensaverModeTimer", 0);
- mScreensaverModeTimer->stop();
- }
- else
- {
- RDEBUG("start mScreensaverModeTimer", 0);
- mScreensaverModeTimer->start();
- }
- }
- }
- RDEBUG("1", 1);
- }
-
-void Autolock::switchScreensaverToPowerSaveMode()
- {
- RDEBUG("0", 0);
- switchScreensaverMode( ESnsrViewTypeStandby);
- RDEBUG("1", 1);
- }
-
-void Autolock::handleMessageFromScreensaver(const QVariantMap &data)
- {
- RDEBUG("0", 0);
- RDEBUG("iLockStatus", iLockStatus);
- QVariantMap::const_iterator it = data.find(KSnsrCmdUnlock);
- if (it != data.end() && iLockStatus != ELockNotActive)
- {
- RDEBUG("calling handleLockSwitch", 0);
- handleLockSwitch();
- }
-
- it = data.find(KSnsrCmdSwitchLights);
- if (it != data.end())
- {
- int lightStatus = it.value().toInt();
- RDEBUG("switching screen lights . lightStatus", lightStatus);
- int err = RProperty::Set(KPSUidCoreApplicationUIs, KLightsSSForcedLightsOn, lightStatus);
- RDEBUG("err", err);
- }
-
- it = data.find(KSnsrCmdSwitchLowPower);
- if (it != data.end())
- {
- QVariantList lowPowerLimits = it.value().toList();
- if (lowPowerLimits.count() == 2)
- {
- // switch on screen power save mode when start and end lines are given
- int startRow = lowPowerLimits.at(0).toInt();
- int endRow = lowPowerLimits.at(1).toInt();
- // TODO: The pixel buffer passed to CPowerSaveDisplayMode is supposed to
- // contain the pixels shown in the active area of the screen. Currently, we
- // pass a buffer filled with 0s, and this works fine on the reference
- // hardware. However, according to display driver people, this doesn't
- // work if the display component of the device doesn't have internal memory
- // which may be the case in some of our target devices.
- TUint16 *ptr = const_cast<TUint16 *> (mScreensaverPowerSavePixelBuffer->Ptr());
- RDEBUG("switching screen power save on, number of visible rows", endRow-startRow);
- int err = mScreensaverPowerSave->Set(startRow, endRow, ptr);
- RDEBUG("err", err);
- }
- else
- {
- // any other case is interpreted as an order to switch off the power save and
- // return to the normal mode
- RDEBUG("switching screen power save off 0", 0);
- int err = mScreensaverPowerSave->Exit();
- RDEBUG("err", err);
- }
- }
- }
-
-void Autolock::handleScreensaverClosed()
- {
- RDEBUG("0", 0);
- int err(0);
- // Screensaver (usually) cannot send anymore any commands when
- // it's being closed. Thus, we need to ensure here that screen has lights and
- // full-power mode once screensaver is closed.
- if (mScreensaverPowerSave)
- {
- RDEBUG("switching screen power save off", 0);
- err = mScreensaverPowerSave->Exit();
- RDEBUG("error=", err);
- }
- RDEBUG("switching screen lights on", 1);
- err = RProperty::Set(KPSUidCoreApplicationUIs, KLightsSSForcedLightsOn, 30);
- RDEBUG("err", err);
- }
-
-// some key is pressed
-// TODO perhaps need a way to stop switch-key while asking unlock-code?
-// Not clear what to do here. dismiss query?
-bool Autolock::event(QEvent *ev)
- {
- if (ev)
- {
- int isSwitchKey = 0;
- if (ev->type() == QEvent::KeyPress)
- {
- QKeyEvent *keyEvent = static_cast<QKeyEvent *> (ev);
- RDEBUG("KeyPress", keyEvent->key());
- RDEBUG("KeyPress nativeScanCode", keyEvent->nativeScanCode());
- RDEBUG("EStdKeyDeviceF", EStdKeyDeviceF);
- RDEBUG("EKeyDeviceF", EKeyDeviceF);
- RDEBUG("keyEvent->isAutoRepeat()", keyEvent->isAutoRepeat());
- // note that the key was EKeyApplication0 and EKeyDevice2
- // yes=0xc4 app=0xb4 no=0xa6
- if (keyEvent->nativeScanCode() == EStdKeyApplication0 || keyEvent->nativeScanCode() == EStdKeyDevice2 || keyEvent->nativeScanCode() == EStdKeyYes
- || keyEvent->nativeScanCode() == EStdKeyNo)
- {
- // switch to active screensaver if application key or power key pressed while screensaver active
- // This key can be repeated, so that the screensaver remains as long as key is pushed
- // TODO what happens when holding Power key ?
- switchScreensaverMode( ESnsrViewTypeActive);
- }
- else if (!keyEvent->isAutoRepeat())
- {
- if (keyEvent->key() == EKeyInsert)
- {
- // on WINS, this is handled with the "Ins" key in the numeric keypad
- RDEBUG("EKeyInsert", EKeyInsert);
- // only reacts on release, not on press
- isSwitchKey = 1;
- }
- else if (keyEvent->key() == EKeyDeviceF)
- {
- // this never seem to happen. Nevertheless we are not doing anything
- RDEBUG("EKeyDeviceF", EKeyDeviceF);
- }
- else if (keyEvent->nativeScanCode() == EStdKeyDeviceF)
- {
- RDEBUG("got EStdKeyDeviceF", EStdKeyDeviceF);
- isSwitchKey = 1;
- }
- else if (keyEvent->nativeScanCode() == EKeyBell) // this might be sent by others, i.e. PCFW
- {
- RDEBUG("got EKeyBell", EKeyBell);
- isSwitchKey = 1;
- }
- else if (keyEvent->key() == 0x1ffffff)
- {
- RDEBUG("0x1ffffff", 0x1ffffff); // some unknown key is received. Nothing to do
- }
- }
- }
- else if (ev->type() == QEvent::KeyRelease)
- {
- QKeyEvent *keyEvent = static_cast<QKeyEvent *> (ev);
- RDEBUG("KeyRelease", keyEvent->key());
- RDEBUG("KeyRelease native", keyEvent->nativeScanCode());
- if (keyEvent->nativeScanCode() == EStdKeyDeviceF && !keyEvent->isAutoRepeat())
- {
- RDEBUG("released EStdKeyDeviceF", 1);
- // isSwitchKey=1; this should happen is pressed was not processed (hint: if it is/was in background)
- }
- }
- RDEBUG("isSwitchKey", isSwitchKey);
- if (isSwitchKey)
- {
- handleLockSwitch();
- RDEBUG("0", 0);
- } // isSwitchKey
- } // ev
- // Process if not done before. For example, redraw or quit
- TBool widgetEventSuccesful = QWidget::event(ev);
- RDEBUG("9", 9);
- return widgetEventSuccesful;
- }
-
-int Autolock::handleLockSwitch()
- {
- RDEBUG("0", 0);
- int ret = KErrNone;
- RDEBUG("iProcessingEvent", iProcessingEvent);
- // iProcessingEvent is used to avoid concurrent processing, i.e. 2 side-switch presses; because it needs time to create (and dismiss) the dialog
- // However this disallows keyguard during unlock-quey.
- if(iProcessingEvent < 1)
- {
- iProcessingEvent = 1;
- Q_UNUSED(ret);
- DebugStatus( iLockStatus);
- if (iLockStatus == ELockNotActive)
- {
- iShowKeyguardNote = 0; // no note on enable keyguard
- callerHasECapabilityWriteDeviceData = 1;
- ret = TryChangeStatus(ELockAppEnableKeyguard); // this should not ask confirmation
- }
- else if (iLockStatus == EKeyguardActive)
- {
- iShowKeyguardNote = 0; // no note on disable keyguard
- callerHasECapabilityWriteDeviceData = 1;
- ret = TryChangeStatus(ELockAppDisableKeyguard);
- }
- else if (iLockStatus == EDevicelockActive)
- {
- callerHasECapabilityWriteDeviceData = 1;
- ret = TryChangeStatus(ELockAppDisableDevicelock);
- }
- else
- {
- RDEBUG("unknown iLockStatus", iLockStatus);
- }
- iProcessingEvent = 0;
- }
- RDEBUG("ret", ret);
- return ret;
- }
-
-bool Autolock::eventFilter(QObject *o, QEvent *ev)
- {
- // this never happens
- RDEBUG("0", 0);
- return QWidget::eventFilter(o, ev);
- }
-// some setting changed
-void Autolock::subscriberKSettingsAutolockStatusChanged()
- {
- RDEBUG("0", 0);
- QVariant v = subscriberKSettingsAutolockStatus->value("/KCRUidSecuritySettings/KSettingsAutolockStatus");
- adjustInactivityTimers( KSettingsAutolockStatus);
- }
-void Autolock::subscriberKSettingsAutoLockTimeChanged()
- {
- RDEBUG("0", 0);
- QVariant v = subscriberKSettingsAutoLockTime->value("/KCRUidSecuritySettings/KSettingsAutoLockTime");
- adjustInactivityTimers( KSettingsAutoLockTime);
- }
-void Autolock::subscriberKSettingsAutomaticKeyguardTimeChanged()
- {
- RDEBUG("0", 0);
- QVariant v = subscriberKSettingsAutomaticKeyguardTime->value("/KCRUidSecuritySettings/KSettingsAutomaticKeyguardTime");
- adjustInactivityTimers( KSettingsAutoLockTime);
- }
-void Autolock::subscriberKDisplayLightsTimeoutChanged()
- {
- RDEBUG("0", 0);
- QVariant v = subscriberKDisplayLightsTimeout->value("/KCRUidLightSettings/KDisplayLightsTimeout");
- // nothing to do
- }
-void Autolock::subscriberKProEngActiveProfileChanged()
- {
- RDEBUG("0", 0);
- QVariant v = subscriberKProEngActiveProfile->value("/KCRUidProfileEngine/KProEngActiveProfile");
- // nothing to do
- }
-// some environment changed
-void Autolock::subscriberKAknKeyguardStatusChanged()
- {
- RDEBUG("Error only Autolock should be able to change it", 0);
- }
-void Autolock::subscriberKCoreAppUIsAutolockStatusChanged()
- {
- RDEBUG("Error only Autolock should be able to change it", 0);
- }
-void Autolock::subscriberKHWRMGripStatusChanged()
- {
- TInt ret = KErrNone;
- Q_UNUSED(ret);
- RDEBUG("0", 0);
- TInt aGripStatus;
- TInt err = RProperty::Get(KPSUidHWRM, KHWRMGripStatus, aGripStatus);
- RDEBUG("err", err);
- RDEBUG("value", aGripStatus);
- if (aGripStatus == EPSHWRMGripOpen)
- {
- if (iLockStatus == EKeyguardActive)
- {
- iShowKeyguardNote = 0; // no note on disable keyguard
- callerHasECapabilityWriteDeviceData = 1;
- ret = TryChangeStatus(ELockAppDisableKeyguard);
- }
- else if (iLockStatus == EDevicelockActive)
- {
- callerHasECapabilityWriteDeviceData = 1;
- ret = TryChangeStatus(ELockAppDisableDevicelock);
- }
- }
- else if (aGripStatus == EPSHWRMGripClosed)
- {
- if (iLockStatus == ELockNotActive)
- {
- iShowKeyguardNote = 0; // no note on enable keyguard
- callerHasECapabilityWriteDeviceData = 1;
- ret = TryChangeStatus(ELockAppEnableKeyguard);
- }
- }
- RDEBUG("ret", ret);
- }
-/**************/
-void Autolock::subscriberKCTsyCallStateChanged()
- {
- RDEBUG("0", 0);
- TInt aCallStatus;
- TInt err = RProperty::Get(KPSUidCtsyCallInformation, KCTsyCallState, aCallStatus);
- RDEBUG("err", err);
- RDEBUG("aCallStatus", aCallStatus);
- RWindowGroup& groupWin = CEikonEnv::Static()->RootWin();
- if (aCallStatus == EPSCTsyCallStateUninitialized || aCallStatus == EPSCTsyCallStateNone)
- {
- RDEBUG("call is inactive", aCallStatus);
- RDEBUG("iLockStatus", iLockStatus);
- if (iLockStatus == EKeyguardActive || iLockStatus == EDevicelockActive)
- {
- if (!mEKeyYesCaptureHandle)
- mEKeyYesCaptureHandle = groupWin.CaptureKey(EKeyYes, 0, 0);
- if (!mEKeyNoCaptureHandle)
- mEKeyNoCaptureHandle = groupWin.CaptureKey(EKeyNo, 0, 0);
- }
- }
- else
- {
- RDEBUG("call is active", aCallStatus);
- // Telephone should be on top, but nevertheless we give End/Send to them
- // This should be done only if locked, but it doesn't harm
- if (mEKeyYesCaptureHandle)
- {
- RDEBUG("mEKeyYesCaptureHandle", mEKeyYesCaptureHandle);
- groupWin.CancelCaptureKey(mEKeyYesCaptureHandle);
- mEKeyYesCaptureHandle = NULL;
- }
- if (mEKeyNoCaptureHandle)
- {
- RDEBUG("mEKeyNoCaptureHandle", mEKeyNoCaptureHandle);
- groupWin.CancelCaptureKey(mEKeyNoCaptureHandle);
- mEKeyNoCaptureHandle = NULL;
- }
- }
- RDEBUG("9", 9);
- }
-// SecUiNotificationDialog::subscriberKSecurityUIsDismissDialogChanged()
-// A way for Autolock to dismiss any possible PIN dialog
-// ----------------------------------------------------------------------------
-//
-void Autolock::subscriberKSecurityUIsDismissDialogChanged()
- {
- RDEBUG("0", 0);
- TInt aDismissDialog = ESecurityUIsDismissDialogUninitialized;
- TInt err = RProperty::Get(KPSUidSecurityUIs, KSecurityUIsDismissDialog, aDismissDialog);
- RDEBUG("err", err);
- RDEBUG("aDismissDialog", aDismissDialog);
- }
-// ----------AutolockService---------------
-
-AutolockService::AutolockService(Autolock* parent) :
- XQServiceProvider(QLatin1String("com.nokia.services.Autolock.Autolock"), parent), mAutolock(parent), mAsyncReqId(-1), mAsyncAnswer(false)
- {
- RDEBUG("0", 0);
- publishAll();
- connect(this, SIGNAL(returnValueDelivered()), parent, SLOT(handleAnswerDelivered()));
- }
-
-AutolockService::~AutolockService()
- {
- RDEBUG("0", 0);
- }
-
-void AutolockService::complete(QString number)
- {
- RDEBUG("0", 0);
- if (mAsyncReqId == -1)
- return;
- completeRequest(mAsyncReqId, number.toInt());
- }
-
-// got API request from lockaccessextension
-int AutolockService::service(const QString& number, const QString& aParam1, const QString& aParam2)
- {
- RDEBUG("0", 0);
- TInt err = KErrNone;
- RDEBUG("number", number.toInt());
- RDEBUG("aParam1", aParam1.toInt());
- RDEBUG("aParam2", aParam2.toInt());
- mAsyncAnswer = false;
- XQRequestInfo info = requestInfo();
- QSet<int> caps = info.clientCapabilities();
-
- mAutolock->callerHasECapabilityWriteDeviceData = 0;
- if (caps.contains(ECapabilityWriteDeviceData))
- {
- RDEBUG("callerHasECapabilityWriteDeviceData",
- ECapabilityWriteDeviceData);
- mAutolock->callerHasECapabilityWriteDeviceData = 1;
- }
-
- QString label = "Autolock::service:\n";
- label += QString("number=%1\n").arg(number);
-
- mNumber = number;
- mAutolock->setLabelNumber(label, number);
- int ret = 0;
- ret = number.toInt();
-
- mAutolock->mParam1 = aParam1.toInt();
- mAutolock->iShowKeyguardNote = aParam1.toInt();
- mAutolock->mParam2 = aParam2.toInt();
- TTime myTime;
- myTime.HomeTime();
- TInt myTimeHigh = 0;
- TInt myTimeLow = 0;
- err = RProperty::Get(KPSUidSecurityUIs, KSecurityUIsLockInitiatorTimeHigh, myTimeHigh);
- RDEBUG("err", err);
- RDEBUG("myTimeHigh", myTimeHigh);
- err = RProperty::Get(KPSUidSecurityUIs, KSecurityUIsLockInitiatorTimeLow, myTimeLow);
- RDEBUG("err", err);
- RDEBUG("myTimeLow", myTimeLow);
-
- myTimeHigh = I64HIGH( myTime.Int64() );
- myTimeLow = I64LOW( myTime.Int64() );
- RDEBUG("myTimeHigh", myTimeHigh);
- RDEBUG("myTimeLow", myTimeLow);
- err = RProperty::Set(KPSUidSecurityUIs, KSecurityUIsLockInitiatorTimeHigh, myTimeHigh);
- err = RProperty::Set(KPSUidSecurityUIs, KSecurityUIsLockInitiatorTimeLow, myTimeLow);
-
- ret = mAutolock->TryChangeStatus(ret);
- RDEBUG("ret", ret);
-
- TInt myInitiatorUID = 0;
- err = RProperty::Get(KPSUidSecurityUIs, KSecurityUIsLockInitiatorUID, myInitiatorUID);
- RDEBUG("ret", ret);
- RDEBUG("myInitiatorUID", myInitiatorUID);
- myInitiatorUID = info.clientSecureId();
- err = RProperty::Set(KPSUidSecurityUIs, KSecurityUIsLockInitiatorUID, myInitiatorUID);
- RDEBUG("ret", ret);
- RDEBUG("myInitiatorUID", myInitiatorUID);
-
- return ret;
- }
-
-void AutolockService::handleClientDisconnect()
- {
- RDEBUG("0", 0);
- // Just quit service application if client ends
- mAsyncAnswer = false;
- RDEBUG("0", 0);
- // mAutolock->quit();
- }
-
-/****************/
-CWait* CWait::NewL()
- {
- CWait* self = new (ELeave) CWait();
- CleanupStack::PushL(self);
- self->ConstructL();
- CleanupStack::Pop();
- return self;
- }
-void CWait::ConstructL()
- {
- CActiveScheduler::Add(this);
- }
-CWait::CWait() :
- CActive(0)
- {
- }
-CWait::~CWait()
- {
- Cancel();
- }
-TInt CWait::WaitForRequestL()
- {
- SetActive();
- iWait.Start();
- return iStatus.Int();
- }
-void CWait::RunL()
- {
- if (iWait.IsStarted())
- iWait.AsyncStop();
- }
-void CWait::DoCancel()
- {
- if (iWait.IsStarted())
- iWait.AsyncStop();
- }
-void CWait::SetRequestType(TInt aRequestType)
- {
- iRequestType = aRequestType;
- }
-TInt CWait::GetRequestType()
- {
- return iRequestType;
- }
-
--- a/securitydialogs/Autolock/src/Autolock.h Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,249 +0,0 @@
-/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-*
-* This program is free software: you can redistribute it and/or modify
-* it under the terms of the GNU Lesser General Public License as published by
-* the Free Software Foundation, version 2.1 of the License.
-*
-* This program is distributed in the hope that it will be useful,
-* but WITHOUT ANY WARRANTY; without even the implied warranty of
-* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-* GNU Lesser General Public License for more details.
-*
-* You should have received a copy of the GNU Lesser General Public License
-* along with this program. If not,
-* see "http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html/".
-*
-* Description:
-*
-*/
-
-#ifndef AUTOLOCK_H
-#define AUTOLOCK_H
-
-#ifdef _DEBUG
- #define RDEBUG( x, y ) RDebug::Printf( "%s %s (%u) %s=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, x, y );
-#else
- #define RDEBUG( x, y )
-#endif
-
-#include <QWidget>
-#include <QEvent>
-#include <QModelIndex>
-#include <QMap>
-#include <QStringList>
-#include <xqserviceprovider.h>
-#include <QToolButton>
-#include <qmobilityglobal.h>
-
-#include "autolockuseractivityservice.h"
-#include "../../SecUi/Inc/SecQueryUi.h"
-
-QTM_BEGIN_NAMESPACE
- class QValueSpacePublisher;
- class QValueSpaceSubscriber;
-QTM_END_NAMESPACE
-QTM_USE_NAMESPACE
-
-#include <hbwidget.h>
-#include <qapplication.h>
-#include <hbdevicedialog.h>
-
-enum TLockStatus
- {
- ELockNotActive = 0,
- EKeyguardActive,
- EDevicelockActive
- };
-
-enum TDevicelockReason
- {
- EDevicelockManual = 1,
- EDevicelockRemote,
- EDevicelockTimer
- };
-
-enum TDeviceDialogCreated
- {
- EDeviceDialogUninitialized = -1,
- EDeviceDialogDestroyed = 0,
- EDeviceDialogCreated = 1,
- EDeviceDialogRaised = 2,
- EDeviceDialogScreenSaver = 0x10,
- EDeviceDialogLockIcon= 0x11,
- EDeviceDialogLastValue
- };
-
-class QTimer;
-
-class AutolockService;
-class CPowerSaveDisplayMode;
-
-class Autolock : public QWidget
-{
- Q_OBJECT
-
-public:
- Autolock( QWidget *parent = 0, Qt::WFlags f = 0 );
- ~Autolock();
-
- void setLabelNumber(QString label,QString number);
- void setLabelIcon(int value);
- int CheckIfLegal(int value);
- void DebugRequest(int value);
- void DebugError(int value);
- void DebugStatus(int value);
- void adjustInactivityTimers(int aReason);
- int updateIndicator(int aReason);
- int AskValidSecCode(int aReason);
- int publishStatus(int aReason);
- int TryChangeStatus(int aReason);
- int setLockDialog(int aReason, int status);
- int showNoteIfRequested(int aReason);
-
- bool event(QEvent *event);
- bool eventFilter(QObject *, QEvent *);
-
- int callerHasECapabilityWriteDeviceData;
- int iShowKeyguardNote;
- int mParam1;
- int mParam2;
-
-public slots:
- void quit();
- void handleAnswerDelivered();
- void subscriberKSettingsAutolockStatusChanged();
- void subscriberKSettingsAutoLockTimeChanged();
- void subscriberKSettingsAutomaticKeyguardTimeChanged();
- void subscriberKDisplayLightsTimeoutChanged();
- void subscriberKProEngActiveProfileChanged();
- void subscriberKAknKeyguardStatusChanged();
- void subscriberKCoreAppUIsAutolockStatusChanged();
- void subscriberKHWRMGripStatusChanged();
- void subscriberKCTsyCallStateChanged();
- void subscriberKSecurityUIsDismissDialogChanged();
-
-private slots:
- void activeKeyguard();
- void notActiveKeyguard();
- void activeDevicelock();
- void notActiveDevicelock();
- void switchScreensaverMode( int mode );
- void switchScreensaverToPowerSaveMode();
- void handleMessageFromScreensaver( const QVariantMap &data );
- void handleScreensaverClosed();
-private:
- int handleLockSwitch();
-
-private:
- AutolockService* mService;
- // int mKeyCode;
- // int mKeyCaptureHandle;
- QValueSpaceSubscriber *subscriberKSettingsAutolockStatus;
- QValueSpaceSubscriber *subscriberKSettingsAutoLockTime;
- QValueSpaceSubscriber *subscriberKSettingsAutomaticKeyguardTime;
- QValueSpaceSubscriber *subscriberKDisplayLightsTimeout;
- QValueSpaceSubscriber *subscriberKProEngActiveProfile;
- QValueSpaceSubscriber *subscriberKAknKeyguardStatus;
- QValueSpaceSubscriber *subscriberKCoreAppUIsAutolockStatus;
- QValueSpaceSubscriber *subscriberKHWRMGripStatus;
- QValueSpaceSubscriber *subscriberKCTsyCallState;
- QValueSpaceSubscriber *subscriberKSecurityUIsDismissDialog;
-
- AutolockUserActivityService* serviceKeyguard;
- AutolockUserActivityService* serviceDevicelock;
-
- int iLockStatus;
- int iLockStatusPrev;
- CSecQueryUi *iSecQueryUi;
- int iSecQueryUiCreated;
- HbDeviceDialog *iDeviceDialog;
- int iDeviceDialogCreated;
- TInt32 mPowerKeyCaptureHandle;
- TInt32 mApplicationKeyCaptureHandle;
- TInt32 mApplicationLongKeyCaptureHandle;
- TInt32 mEKeyDeviceFCaptureHandle;
- TInt32 mEKeyBellCaptureHandle;
- TInt32 mEKeyYesCaptureHandle;
- TInt32 mEKeyNoCaptureHandle;
- TBool iLockCodeQueryInDisplay;
- QTimer *mScreensaverModeTimer;
- CPowerSaveDisplayMode *mScreensaverPowerSave;
- HBufC16 *mScreensaverPowerSavePixelBuffer;
- TInt32 iProcessingEvent;
-};
-
-class AutolockService : public XQServiceProvider
-{
- Q_OBJECT
-public:
- AutolockService( Autolock *parent = 0 );
- ~AutolockService();
-
- void complete(QString number);
- bool asyncAnswer() {return mAsyncAnswer;}
-public slots:
- int service(const QString& number, const QString& aParam1, const QString& aParam2 );
-
-private slots:
- void handleClientDisconnect();
-
-private:
- Autolock* mAutolock;
- QString mNumber;
- bool mAsyncAnswer;
- int mAsyncReqId;
-};
-
-class CWait : public CActive
- {
- public:
- /**
- * Creates instance of the CWait class.
- *
- * @return Returns the instance just created.
- */
- static CWait* NewL();
- /**
- * Destructor.
- */
- ~CWait();
- public:
- /**
- * Starts waiting for aReqStatus.
- */
- TInt WaitForRequestL();
- public:
- /**
- * Sets active request type.
- */
- void SetRequestType(TInt aRequestType);
- /**
- * Gets active request type.
- */
- TInt GetRequestType();
- private:
- /**
- * C++ default constructor.
- */
- CWait();
- /**
- * Symbian OS constructor.
- */
- void ConstructL();
- private: // from CActive
- /** @see CActive::RunL() */
- void RunL();
- /** @see CActive::DoCancel() */
- void DoCancel();
- RTimer iTimer;
- CActiveSchedulerWait iWait;
- // Used if there is a need to cancel an active request;
- // namely in situations where destructor is called when Wait
- // is active.
- TInt iRequestType;
- };
-
-
-#endif // AUTOLOCK_H
--- a/securitydialogs/Autolock/src/Autolock.pri Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,32 +0,0 @@
-#
-# Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-# All rights reserved.
-#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License as published by
-# the Free Software Foundation, version 2.1 of the License.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public License
-# along with this program. If not,
-# see "http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html/".
-#
-# Description:
-#
-
-INCLUDEPATH += . \
- inc \
- autolockuseractivityservice \
- autolockuseractivityservice/inc
-
-SOURCES=\
- src/main.cpp\
- src/Autolock.cpp
-
-HEADERS=\
- src/Autolock.h
-
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/securitydialogs/Autolock/src/AutolockApp.cpp Wed Sep 01 12:19:59 2010 +0100
@@ -0,0 +1,61 @@
+/*
+* Copyright (c) 2002 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:
+*
+*/
+
+
+// INCLUDE FILES
+#include "AutolockApp.h"
+#include "AutolockDocument.h"
+#include <eikstart.h>
+
+
+// ================= MEMBER FUNCTIONS =======================
+
+// ---------------------------------------------------------
+// CAutolockApp::AppDllUid()
+// Returns application UID
+// ---------------------------------------------------------
+//
+TUid CAutolockApp::AppDllUid() const
+ {
+ return KUidAutolock;
+ }
+
+// ---------------------------------------------------------
+// CAutolockApp::CreateDocumentL()
+// Creates CAutolockDocument object
+// ---------------------------------------------------------
+//
+CApaDocument* CAutolockApp::CreateDocumentL()
+ {
+ return CAutolockDocument::NewL( *this );
+ }
+
+// ================= OTHER EXPORTED FUNCTIONS ==============
+//
+
+LOCAL_C CApaApplication* NewApplication()
+ {
+ return new CAutolockApp;
+ }
+
+GLDEF_C TInt E32Main()
+ {
+ return EikStart::RunApplication(NewApplication);
+ }
+
+// End of File
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/securitydialogs/Autolock/src/AutolockAppUi.cpp Wed Sep 01 12:19:59 2010 +0100
@@ -0,0 +1,1782 @@
+/*
+* Copyright (c) 2002 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:
+*
+*/
+
+#include <apgtask.h>
+#include <etelmm.h>
+#include <AknEcs.h>
+#include <aknnotedialog.h>
+#include <aknkeylock.h>
+#include <AknLayoutDef.h>
+#include <AknLayout.lag>
+#include <bldvariant.hrh>
+#include <aknappui.h>
+#include <centralrepository.h>
+#include <settingsinternalcrkeys.h>
+#include <secuisecurityhandler.h>
+#include <secui.h>
+#include <featmgr.h>
+#include <Autolock.rsg>
+#include <mmtsy_names.h>
+#include <e32property.h>
+#include <PSVariables.h> // Property values
+#include <coreapplicationuisdomainpskeys.h>
+#include <startupdomainpskeys.h>
+#include <ctsydomainpskeys.h>
+#include <securityuisprivatepskeys.h>
+#include <AknSgcc.h>
+
+#include "AutolockAppUiPS.h"
+#include "AutoLockValueObserverPS.h"
+#include "AutoLockModelPS.h"
+#include "AutolockApp.h"
+#include "autolock.hrh"
+#include "AutolockView.h"
+
+#include <SCPClient.h>
+#include <AknSoftNotifier.h>
+
+// sysap uid and message enums defined in eikon.hrh
+// for sending messages to sysap
+#include <eikon.hrh>
+#include <apgwgnam.h>
+#include <aknlayoutscalable_avkon.cdl.h>
+
+#include <AknCapServerDefs.h>
+#include <apgtask.h>
+
+#include <keylockpolicyapi.h>
+
+// LOCAL CONSTANTS AND MACROS
+#define KSysApUid TUid::Uid(0x100058F3)
+#define KPhoneAppUid TUid::Uid(0x100058B3)
+
+const TInt KTriesToConnectServer( 2 );
+const TInt KTimeBeforeRetryingServerConnection( 50000 );
+const TInt PhoneIndex( 0 );
+const TInt KCancelKeyScanCode( EStdKeyDevice1 ); // 165
+
+
+// ================= MEMBER FUNCTIONS =======================
+//
+// ----------------------------------------------------------
+// CAutolockAppUi::ConstructL()
+// ?implementation_description
+// ----------------------------------------------------------
+//
+void CAutolockAppUi::ConstructL()
+ {
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(AUTOLOCK)CAutolockAppUi::ConstructL"));
+ #endif
+
+ BaseConstructL( EAknEnableSkin | EAknEnableMSK | EAknDisableAnimationBackground );
+
+ //Disable priority control so that Autolock process priority isn't set to "background" by
+ //window server when it is not active.
+ iEikonEnv->WsSession().ComputeMode( RWsSession::EPriorityControlDisabled );
+ RThread().SetProcessPriority( EPriorityHigh );
+
+ FeatureManager::InitializeLibL();
+
+ RTelServer::TPhoneInfo PhoneInfo;
+ // prevent autolock shutdown
+ iEikonEnv->SetSystem( ETrue );
+
+ CKeyLockPolicyApi* iCKeyLockPolicyApi = CKeyLockPolicyApi::NewL( EPolicyActivateKeyguard );
+ TBool keyguardAllowed = iCKeyLockPolicyApi->KeyguardAllowed();
+ #if defined(_DEBUG)
+ RDebug::Printf( "%s %s (%u) keyguardAllowed=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, keyguardAllowed );
+ #endif
+ keyguardAllowed = iCKeyLockPolicyApi->EnableKeyguardFeature();
+ #if defined(_DEBUG)
+ RDebug::Printf( "%s %s (%u) new keyguardAllowed=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, keyguardAllowed );
+ #endif
+ delete iCKeyLockPolicyApi;
+
+ iSideKey1 = 0;
+ iSideKey2 = 0;
+ iAppKey = 0;
+
+ aCallButtonRect = TRect (0,0,0,0);
+ iGotEventDownDuringCall = -1;
+ //connect to ETel
+
+ TInt err( KErrGeneral );
+ TInt thisTry( 0 );
+
+ /*All server connections are tried to be made KTiesToConnectServer times because occasional
+ fails on connections are possible at least on some servers*/
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(AUTOLOCK)CAutolockAppUi::ConstructL() connect to etel server"));
+ #endif
+ // connect etel server
+ while ( ( err = iServer.Connect() ) != KErrNone && ( thisTry++ ) <= KTriesToConnectServer )
+ {
+ User::After( KTimeBeforeRetryingServerConnection );
+ }
+ User::LeaveIfError( err );
+
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(AUTOLOCK)CAutolockAppUi::ConstructL() load tsy"));
+ #endif
+ // load tsy
+ err = iServer.LoadPhoneModule( KMmTsyModuleName );
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(AUTOLOCK)CAutolockAppUi::ConstructL() load tsy ERROR: %d"), err);
+ #endif
+ if ( err != KErrAlreadyExists )
+ {
+ // may return also KErrAlreadyExists if some other
+ // is already loaded the tsy module. And that is
+ // not an error.
+ User::LeaveIfError( err );
+ }
+
+ thisTry = 0;
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(AUTOLOCK)CAutolockAppUi::ConstructL() open phone"));
+ #endif
+ //open phone
+ User::LeaveIfError(iServer.SetExtendedErrorGranularity(RTelServer::EErrorExtended));
+ User::LeaveIfError(iServer.GetPhoneInfo(PhoneIndex, PhoneInfo));
+ User::LeaveIfError(iPhone.Open(iServer,PhoneInfo.iName));
+ User::LeaveIfError(iCustomPhone.Open(iPhone));
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(AUTOLOCK)CAutolockAppUi::ConstructL() phone opened"));
+ #endif
+
+ TBool systemLocked = EFalse;
+ TBool phoneLocked = EFalse;
+
+ iWait = NULL;
+ iWait = CWait::NewL();
+
+ RMobilePhone::TMobilePhoneLock lockType = RMobilePhone::ELockPhoneDevice;
+ RMobilePhone::TMobilePhoneLockInfoV1 lockInfo;
+ RMobilePhone::TMobilePhoneLockInfoV1Pckg lockInfoPkg(lockInfo);
+ TInt cRresult = KErrNone;
+
+ #ifndef __WINS__
+
+
+ /*****************************************************
+ * Series 60 Customer / ETEL
+ * Series 60 ETEL API
+ *****************************************************/
+
+ // set autolock period to 0, if lock is disabled in DOS side
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(AUTOLOCK)CAutolockAppUi::ConstructL() set autolock period to 0"));
+ #endif
+
+ iWait->SetRequestType(EMobilePhoneGetLockInfo);
+ iPhone.GetLockInfo(iWait->iStatus, lockType, lockInfoPkg);
+ TInt res = iWait->WaitForRequestL();
+ User::LeaveIfError(res);
+
+ // Eventhough we might lock the device on boot-up (systemLocked == ETrue), we
+ // want to hide the app until the handshake is done. StartUp application will
+ // active the app when it is finished.
+ TApaTask self(iCoeEnv->WsSession());
+ self.SetWgId(iCoeEnv->RootWin().Identifier());
+ self.SendToBackground();
+ // flush
+ iCoeEnv->WsSession().Flush();
+
+ TInt lockValue = 0;
+ CRepository* repository = CRepository::NewL(KCRUidSecuritySettings);
+ cRresult = repository->Get(KSettingsAutolockStatus, lockValue);
+ TBool hiddenReset = HiddenReset();
+ #if defined(_DEBUG)
+ if(hiddenReset)
+ RDebug::Print(_L("(AUTOLOCK)CAutolockAppUi::ConstructL() Hidden reset"));
+ RDebug::Print(_L("(AUTOLOCK)CAutolockAppUi::ConstructL() CR get result: %d"), cRresult);
+ RDebug::Print(_L("(AUTOLOCK)CAutolockAppUi::ConstructL() CR lock value: %d"), lockValue);
+ RDebug::Print(_L("(AUTOLOCK)CAutolockAppUi::ConstructL() CR lockInfo.iSetting: %d"), lockInfo.iSetting);
+ RDebug::Print(_L("(AUTOLOCK)CAutolockAppUi::ConstructL() RMobilePhone::ELockSetEnabled: %d"), RMobilePhone::ELockSetEnabled);
+ RDebug::Print(_L("(AUTOLOCK)CAutolockAppUi::ConstructL() RMobilePhone::ELockSetDisabled: %d"), RMobilePhone::ELockSetDisabled);
+ #endif
+ if (lockInfo.iSetting == RMobilePhone::ELockSetDisabled)
+ {
+ repository->Set(KSettingsAutoLockTime, 0);
+ if ( FeatureManager::FeatureSupported( KFeatureIdProtocolCdma ) )
+ {
+ repository->Set(KSettingsLockOnPowerUp, 0);
+ }
+ }
+ // In CDMA, the system can stay locked on after the boot-up sequence.
+ else if ( FeatureManager::FeatureSupported( KFeatureIdProtocolCdma ) || (hiddenReset && (lockValue == 1)))
+ {
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(AUTOLOCK)CAutolockAppUi::ConstructL() Hidden reset when locked"));
+ #endif
+ phoneLocked = systemLocked = ETrue;
+ }
+ else if (lockInfo.iSetting == RMobilePhone::ELockSetEnabled && !hiddenReset) {
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(AUTOLOCK)CAutolockAppUi::ConstructL() Set phone locked"));
+ #endif
+ phoneLocked = ETrue;
+ }
+
+
+ delete repository;
+ #endif //__WINS__
+
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(AUTOLOCK)CAutolockAppUi::ConstructL() Enable emergency call support"));
+ #endif
+
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(AUTOLOCK)CAutolockAppUi::ConstructL() Autolock view"));
+ #endif
+
+
+
+ // -------------------------------------------------------------------------------------------------------------
+ // part of emergency call handling when telephony+devicelock is active
+ // this solution is meant only for 3.1 and 3.2
+
+ iEcsNote = new (ELeave) CEcsNote();
+ iEcsNote->ConstructSleepingNoteL(R_AVKON_EMERGENCY_CALL_NOTE);
+ iEcsNote->ButtonGroupContainer().ButtonGroup()->AsControl()->DrawableWindow()->SetOrdinalPosition(0,2);
+
+ if (AknLayoutUtils::PenEnabled()) // on touch devices, if Autolock is activated from IdleScreen in landscape, the buttons need to be drawn.
+ {
+ iEcsNote->ButtonGroupContainer().SetCommandL( 0, _L("") ); // as keyboard is locked, these buttons do nothing. Better to hide their labels.
+ iEcsNote->ButtonGroupContainer().SetCommandL( EAknSoftkeyCancel, _L("") );
+ iEcsNote->ButtonGroupContainer().ButtonGroup()->AsControl()->MakeVisible(ETrue);
+ }
+
+ // Emergency call support
+ iEcsDetector = CAknEcsDetector::NewL();
+ iEcsDetector->SetObserver( this );
+ iEmergencySupportReady = ETrue;
+ // -------------------------------------------------------------------------------------------------------------
+
+
+ // Autolock view
+ CAutolockView* lockView = new(ELeave) CAutolockView;
+ CleanupStack::PushL(lockView);
+ lockView->ConstructL();
+ CleanupStack::Pop(); // lockView
+ AddViewL(lockView); // transfer ownership to CAknViewAppUi
+ SetDefaultViewL(*lockView);
+
+ // start autolock timer
+ iModel = CAutoLockModel::NewL(this, phoneLocked);
+
+ // phone event observer
+ iPhoneObserver = CValueObserver::NewL(this);
+ //call bubble
+ iIncallBubble = CAknIncallBubble::NewL();
+
+ //Autokeyguard Period observer
+ #ifdef RD_AUTO_KEYGUARD
+ iKeyguardObserver = CAutoKeyguardObserver::NewL(this);
+ #else //!RD_AUTO_KEYGUARD
+ iKeyguardObserver = NULL;
+ #endif //RD_AUTO_KEYGUARD
+ // Create the write policy. Also processes with write device data can write the value.
+ TSecurityPolicy writePolicy( ECapabilityWriteDeviceData );
+ // Create the read policy. Also processes with read device data can read the value.
+ TSecurityPolicy readPolicy( ECapabilityReadDeviceData );
+
+ TInt tRet = RProperty::Define( KPSUidSecurityUIs, KSecurityUIsSecUIOriginatedQuery, RProperty::EInt, readPolicy, writePolicy );
+
+ if ( tRet != KErrNone )
+ {
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(AUTOLOCK)CAutolockAppUi::ConstructL():\
+ FAILED to define the SECUI query Flag: %d"), tRet);
+ #endif
+ }
+
+ tRet = RProperty::Define( KPSUidSecurityUIs, KSecurityUIsQueryRequestCancel, RProperty::EInt, readPolicy, writePolicy );
+ if ( tRet != KErrNone )
+ {
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(AUTOLOCK)CAutolockAppUi::ConstructL():\
+ FAILED to define the SECUI query request state Flag: %d"), tRet);
+ #endif
+ }
+
+if(FeatureManager::FeatureSupported(KFeatureIdSapTerminalControlFw ))
+{
+
+ // Define the TARM admin flag.
+
+ tRet = RProperty::Define( KSCPSIDAutolock, SCP_TARM_ADMIN_FLAG_UID, RProperty::EInt,
+ readPolicy, writePolicy );
+ if ( tRet != KErrNone )
+ {
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(AUTOLOCK)CAutolockAppUi::ConstructL():\
+ FAILED to define the TARM Admin Flag"));
+ #endif
+ }
+
+ // The following sequence is used to validate the configuration on SCP server.
+ // This is needed on the first boot (initial or RFS) or if the C-drive has been formatted
+ // (3-button format) and Autolock is not active.
+
+ RSCPClient scpClient;
+ if ( scpClient.Connect() == KErrNone )
+ {
+ TInt confStatus = KErrNone;
+ // check whether this is normal or exceptional boot. This solves the issue when PIN is requested, Autolock starts, and scpClient.CheckConfiguration verifies the internal lock code
+ TInt startupReason(ENormalStartup);
+ RProperty::Get(KPSUidStartup, KPSStartupReason, startupReason);
+
+ TInt secQueryStatus = ESecurityQueryUninitialized;
+ TInt tRet = RProperty::Get(KPSUidStartup, KStartupSecurityCodeQueryStatus, secQueryStatus);
+ #if defined(_DEBUG)
+ RDebug::Printf( "%s %s (%u) startupReason=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, startupReason );
+ RDebug::Printf( "%s %s (%u) secQueryStatus=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, secQueryStatus );
+ RDebug::Printf( "%s %s (%u) cRresult=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, cRresult );
+ RDebug::Printf( "%s %s (%u) lockInfo.iSetting=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, lockInfo.iSetting );
+ RDebug::Printf( "%s %s (%u) tRet=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, tRet );
+ #endif
+
+ TInt simStatusValue;
+ tRet = RProperty::Get(KPSUidStartup, KPSSimStatus, simStatusValue);
+ #if defined(_DEBUG)
+ RDebug::Printf( "%s %s (%u) tRet=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, tRet );
+ RDebug::Printf( "%s %s (%u) simStatusValue=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, simStatusValue );
+ RDebug::Printf( "%s %s (%u) ESimReadable=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, ESimReadable );
+ #endif
+
+ if( simStatusValue==ESimReadable && secQueryStatus==ESecurityQueryActive)
+ { // query during SIM-query. This should not happen because check on CSecurityNotifier::GetParamsL iEvent != RMobilePhone::EPin1Required
+ #if defined(_DEBUG)
+ RDebug::Printf( "%s %s (%u) tRet=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, tRet );
+ #endif
+ confStatus = KErrNone; // the best thing to do is to skip CheckConfiguration, because it might secretly accept the lock-code
+ }
+ else
+ confStatus = scpClient.CheckConfiguration( KSCPInitial );
+ #if defined(_DEBUG)
+ RDebug::Printf( "%s %s (%u) confStatus=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, confStatus );
+ RDebug::Printf( "%s %s (%u) KErrAccessDenied=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, KErrAccessDenied );
+ #endif
+ if ( confStatus == KErrAccessDenied )
+ {
+ #ifndef __WINS__
+ if ( 1 ) // Previously was ( lockInfo.iSetting == RMobilePhone::ELockSetDisabled ) but now it needs to handle scenarios : ISA_format without drive format, and the opposite
+ #else // __WINS__
+ if ( 1 ) // DOS lock is never active in WINS
+ #endif // __WINS__
+ {
+ // DOS lock is not active. Note that if DOS is locked, checking the code here will
+ // mess up the query sequence. On initial startup DOS is not locked.
+
+ TInt finalConfStatus = scpClient.CheckConfiguration( KSCPComplete );
+ #if defined(_DEBUG)
+ RDebug::Printf( "%s %s (%u) finalConfStatus=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, finalConfStatus );
+ #endif
+ if ( finalConfStatus == KErrAccessDenied )
+ {
+ #ifdef __WINS__
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(AUTOLOCK)CAutolockAppUi::ConstructL():\
+ DOS validation FAILED in WINS, something wrong!"));
+ #endif
+ #else // !__WINS__
+
+ // The SCP server is out of sync and Autolock is not active. (c-drive formatted)
+ // We must ask the security code. ( Note that it is very rare that this is executed )
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(AUTOLOCK)CAutolockAppUi::ConstructL():\
+ Lock setting disabled, calling setlocksetting"));
+ #endif
+
+ // Wait here until the startup is complete
+
+ TInt tarmErr = KErrNone;
+ while ( tarmErr == KErrNone )
+ {
+ TInt sysState=0;
+ tarmErr = RProperty::Get(KPSUidStartup, KPSGlobalSystemState, sysState);
+
+ if ((sysState == ESwStateNormalRfOn) || (sysState == ESwStateNormalRfOff)
+ || (sysState == ESwStateNormalBTSap))
+ {
+ break;
+ }
+ User::After(500000);
+ }
+
+ // Just change the lock setting again to disabled to request the security code.
+ // Set the TARM flag so SecUi knows it should display the "login" query.
+ TInt tarmFlag=0;
+ tRet = RProperty::Get( KSCPSIDAutolock, SCP_TARM_ADMIN_FLAG_UID, tarmFlag );
+ if ( tRet == KErrNone )
+ {
+ tarmFlag |= KSCPFlagResyncQuery;
+ tRet = RProperty::Set( KSCPSIDAutolock, SCP_TARM_ADMIN_FLAG_UID, tarmFlag );
+ }
+
+ if ( tRet != KErrNone )
+ {
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(AUTOLOCK)CAutolockAppUi::ConstructL():\
+ FAILED to set TARM Admin Flag"));
+ #endif
+ }
+
+ RMobilePhone::TMobilePhoneLockSetting lockChange;
+ lockChange = RMobilePhone::ELockSetDisabled;
+ iWait->SetRequestType(EMobilePhoneSetLockSetting);
+ iPhone.SetLockSetting(iWait->iStatus, lockType, lockChange);
+
+ res = iWait->WaitForRequestL();
+ #endif // __WINS__
+ }
+ }
+
+ } // if ( confStatus == KErrAccessDenied )
+
+ scpClient.Close();
+ }
+
+}
+
+ // Eventhough we might lock the device on boot-up (systemLocked == ETrue), we
+ // want to hide the app until the handshake is done. StartUp application will
+ // active the app when it is finished.
+ #if defined(_DEBUG)
+ RDebug::Printf( "%s %s (%u) systemLocked=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, systemLocked );
+ RDebug::Printf( "%s %s (%u) phoneLocked=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, phoneLocked );
+ #endif
+ if( !systemLocked )
+ {
+ // incoming call on boot
+ TInt value(EStartupUiPhaseUninitialized);
+ RProperty::Get(KPSUidStartup, KPSStartupUiPhase, value);
+ #if defined(_DEBUG)
+ RDebug::Printf( "%s %s (%u) KPSStartupUiPhase value=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, value );
+ #endif
+ if( value<EStartupUiPhaseSystemWelcomeDone )
+ {
+ TInt err=iPhoneObserver->Start();
+ #if defined(_DEBUG)
+ RDebug::Printf( "%s %s (%u) err=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, err );
+ #endif
+ }
+ // app to background
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(AUTOLOCK)CAutolockAppUi::ConstructL() app to background"));
+ #endif
+ TApaTask self(iCoeEnv->WsSession());
+ self.SetWgId(iCoeEnv->RootWin().Identifier());
+ self.SendToBackground();
+ // flush
+ iCoeEnv->WsSession().Flush();
+ }
+ else
+ {
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(AUTOLOCK)CAutolockAppUi::ConstructL() LOCK SYSTEM"));
+ #endif
+ TInt lockState = 0;
+
+ #ifdef RD_REMOTELOCK
+ lockState = EManualLocked;
+ #else //!RD_REMOTELOCK
+ lockState = EAutolockOn;
+ #endif//RD_REMOTELOCK
+ iModel->LockSystemL(lockState);
+ }
+
+ iGripStatusObserver = CAutolockGripStatusObserver::NewL( this, iEikonEnv->WsSession() );
+ iFpsStatusObserver = CAutolockFpsStatusObserver::NewL( this, iEikonEnv->WsSession() );
+ iDeviceLockQueryStatus = EFalse;
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(AUTOLOCK)CAutolockAppUi::ConstructL() END"));
+ #endif
+ }
+// ----------------------------------------------------
+// CAutolockAppUi::~CAutolockAppUi()
+// Destructor
+// Frees reserved resources
+// ----------------------------------------------------
+//
+CAutolockAppUi::~CAutolockAppUi()
+ {
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(AUTOLOCK)CAutolockAppUi::~CAutolockAppUi() BEGIN"));
+ #endif
+
+ if(iWait)
+ {
+ // Cancel active requests
+ if(iWait->IsActive())
+ {
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(AUTOLOCK)CAutolockAppUi::~CAutolockAppUi() CANCEL REQ"));
+ #endif
+ iPhone.CancelAsyncRequest(iWait->GetRequestType());
+ }
+ }
+ //close ETel connections
+ if (iCustomPhone.SubSessionHandle())
+ iCustomPhone.Close();
+
+ if (iPhone.SubSessionHandle())
+ iPhone.Close();
+
+ if (iServer.Handle())
+ {
+ iServer.UnloadPhoneModule(KMmTsyModuleName);
+ iServer.Close();
+ }
+ delete iModel;
+ delete iPhoneObserver;
+ delete iIncallBubble;
+#ifdef RD_AUTO_KEYGUARD
+ delete iKeyguardObserver;
+#endif
+
+ delete iEcsDetector;
+ delete iEcsNote; // Ecs change
+ delete iWait;
+ FeatureManager::UnInitializeLib();
+ delete iGripStatusObserver;
+ delete iFpsStatusObserver;
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(AUTOLOCK)CAutolockAppUi::~CAutolockAppUi() END"));
+ #endif
+ }
+// ----------------------------------------------------
+// CAutolockAppUi::HandleForegroundEventL()
+// Handles foreground event.
+// ----------------------------------------------------
+//
+void CAutolockAppUi::HandleForegroundEventL(TBool aForeground)
+ {
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(AUTOLOCK)CAutolockAppUi::HandleForegroundEventL()"));
+ #endif
+ if (aForeground )
+ {
+ if (iLocked)
+ {
+ // lock voice key
+ LockSideKeyL();
+ CAknView* view = View(KAutoLockViewId);
+ if(view)
+ {
+ TRect aInitialRect;
+ STATIC_CAST(CAutolockView*, view)->HandleCall(0x15, aInitialRect);
+ }
+
+ }
+ else
+ {
+ // app back to background
+ TApaTask self(iCoeEnv->WsSession());
+ self.SetWgId(iCoeEnv->RootWin().Identifier());
+ self.SendToBackground();
+ }
+ }
+
+ if (!aForeground && iLocked)
+ {
+ TInt callState=0;
+ TInt simStatus=0;
+ RProperty::Get(KPSUidCtsyCallInformation, KCTsyCallState, callState );
+ RProperty::Get(KPSUidStartup, KPSSimStatus, simStatus);
+
+ if (callState == EPSCTsyCallStateNone && simStatus != ESimNotPresent)
+ {
+ // try put autolock back to foreground
+ CAknView* view = View(KAutoLockViewId);
+ if(view)
+ {
+ TRect aInitialRect;
+ STATIC_CAST(CAutolockView*, view)->HandleCall(0x19, aInitialRect);
+ }
+ TApaTask self(iCoeEnv->WsSession());
+ self.SetWgId(iCoeEnv->RootWin().Identifier());
+ self.BringToForeground();
+ }
+ else
+ {
+ // unlock voice key while there is active call
+ UnLockSideKey();
+ CAknView* view = View(KAutoLockViewId);
+ if(view)
+ {
+ TRect aInitialRect;
+ STATIC_CAST(CAutolockView*, view)->HandleCall(0x16, aInitialRect);
+ }
+ }
+ }
+
+ CAknAppUi::HandleForegroundEventL(aForeground);
+
+ }
+
+
+// ----------------------------------------------------
+// HideSoftNotification()
+// dismiss all the pending notes just before asking the unlocking code
+// ----------------------------------------------------
+//
+void HideSoftNotification()
+ {
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(AUTOLOCK)HideSoftNotification"));
+ #endif
+ CAknSoftNotifier *softNotifier = NULL;
+ TRAPD (err, {
+ softNotifier = CAknSoftNotifier::NewL();
+ softNotifier->AddNotificationL(ESetIdleState, 0);
+ };)
+ delete softNotifier;
+ }
+// CAutolockAppUi::HandleCommandL(TInt aCommand)
+// ----------------------------------------------------
+
+
+// ----------------------------------------------------
+// CAutolockAppUi::HandleMessageL
+//
+// Handles the TARM command to unlock the phone.
+// ----------------------------------------------------
+//
+MCoeMessageObserver::TMessageResponse CAutolockAppUi::HandleMessageL(
+ TUint32 aClientHandleOfTargetWindowGroup,
+ TUid aMessageUid,
+ const TDesC8& aMessageParameters
+ )
+ {
+
+ if(!FeatureManager::FeatureSupported(KFeatureIdSapTerminalControlFw ))
+ {
+ User::Leave(KErrNotSupported);
+ }
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(AUTOLOCK)CAutolockAppUi::HandleMessageL()"));
+ #endif
+
+ MCoeMessageObserver::TMessageResponse messageResponse( EMessageHandled );
+
+ if ( aMessageUid.iUid == SCP_CMDUID_UNLOCK+1 )
+ {
+ #if defined(_DEBUG)
+ RDebug::Printf( "%s %s (%u) calling CancelDeviceLockQuery=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, 0 );
+ #endif
+ CancelDeviceLockQuery();
+ }
+ else if ( aMessageUid.iUid == SCP_CMDUID_UNLOCK )
+ {
+ // For security reasons we must check from the SCP server did this
+ // command originate from it.
+ RSCPClient scpClient;
+ if ( scpClient.Connect() == KErrNone )
+ {
+ CleanupClosePushL( scpClient );
+
+ if ( scpClient.QueryAdminCmd( ESCPCommandUnlockPhone ) )
+ {
+ // Switch autolock to BG
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(AUTOLOCK)CAutolockAppUi::HandleMessageL():\
+ Admin command received, unlocking"));
+ #endif
+
+ if ( !iLocked )
+ {
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(AUTOLOCK)CAutolockAppUi::HandleMessageL():\
+ Ignoring Unlock message - not locked."));
+ #endif
+ }
+ else
+ {
+ iLocked = EFalse;
+ HideSoftNotification(); // dismiss all the pending notes
+ DisableWGListChangeEventListening();
+ UnLockKeys();
+ iModel->SetLockedL(EFalse);
+ // Disable keyguard after remote unlock
+ RAknKeyLock iKeyLock;
+ TInt tempResult = iKeyLock.Connect();
+ iKeyLock.DisableKeyLock();
+ // end Disable keyguard after remote unlock
+ SwitchToPreviousAppL();
+ }
+ }
+ else
+ {
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(AUTOLOCK)CAutolockAppUi::HandleMessageL():\
+ Unauthorized attempt to unlock"));
+ #endif
+ }
+
+ CleanupStack::PopAndDestroy(); // scpClient
+ }
+ else
+ {
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(AUTOLOCK)CAutolockAppUi::HandleMessageL():\
+ Failed to connect to SCP, ignoring unlock-message."));
+ #endif
+
+ }
+ }
+ else // aMessageUid.iUid != SCP_CMDUID_UNLOCK
+ {
+ messageResponse = CAknAppUi::HandleMessageL( aClientHandleOfTargetWindowGroup,
+ aMessageUid,
+ aMessageParameters
+ );
+ }
+
+ return messageResponse;
+ }
+
+
+// ------------------------------------------------------------------------------
+// CAutolockAppUi::::DynInitMenuPaneL(TInt aResourceId,CEikMenuPane* aMenuPane)
+// This function is called by the UIKON framework just before it displays
+// a menu pane. Its default implementation is empty, and by overriding it,
+// the application can set the state of menu items dynamically according
+// to the state of application data.
+// ------------------------------------------------------------------------------
+//
+void CAutolockAppUi::DynInitMenuPaneL(
+ TInt /*aResourceId*/,CEikMenuPane* /*aMenuPane*/)
+ {
+ }
+
+void CAutolockAppUi::HandlePointerEventL(const TPointerEvent& aPointerEvent)
+ {
+ #if defined(_DEBUG)
+ RDebug::Printf( "%s %s (%u) value=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, 0 );
+ #endif
+ }
+// ----------------------------------------------------
+// CAutolockAppUi::HandleKeyEventL(
+// const TKeyEvent& aKeyEvent,TEventCode /*aType*/)
+// ----------------------------------------------------
+//
+TKeyResponse CAutolockAppUi::HandleKeyEventL(
+ const TKeyEvent& aKeyEvent,TEventCode aType)
+ {
+
+ if ( aKeyEvent.iCode == EKeyBell || (aType == EEventKeyUp && aKeyEvent.iScanCode == EStdKeyDeviceF) || (aKeyEvent.iCode == EKeyDeviceF) )
+ {
+ if(iLocked)
+ HandleCommandL(ESecUiCmdUnlock);
+ return EKeyWasConsumed;
+ }
+
+ TBool featureNoPowerkey = FeatureManager::FeatureSupported( KFeatureIdNoPowerkey );
+ // If power key pressed, tell SysAp about if
+ if( (aKeyEvent.iScanCode == EStdKeyDevice2 && aType == EEventKeyDown )
+ || (aType == EEventKey && featureNoPowerkey && aKeyEvent.iCode == EKeyNo))
+ {
+ SendMessageToSysAp(EEikKeyLockPowerKeyPressed);
+ if ( featureNoPowerkey )
+ {
+ SendMessageToSysAp(EEikKeyLockLightsOnRequest);
+ }
+ }
+ return EKeyWasNotConsumed;
+ }
+
+void CAutolockAppUi::SendMessageToSysAp(TInt aMessage)
+ {
+ RWsSession& ws = iEikonEnv->WsSession();
+ TInt wgId=0;
+ CApaWindowGroupName::FindByAppUid(KSysApUid, ws, wgId);
+ if (wgId)
+ {
+ TWsEvent event;
+ event.SetType(aMessage);
+ event.SetTimeNow();
+ ws.SendEventToWindowGroup(wgId, event);
+ }
+ }
+
+
+void CAutolockAppUi::HandleCommandL(TInt aCommand)
+ {
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(AUTOLOCK)CAutolockAppUi::HandleCommandL()"));
+ #endif
+ switch ( aCommand )
+ {
+ case EEikCmdExit:
+ {
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(AUTOLOCK)CAutolockAppUi::HandleCommandL() EEikCmdExit"));
+ #endif
+ Exit();
+ break;
+ }
+ case ESecUiCmdUnlock:
+ {
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(AUTOLOCK)CAutolockAppUi::HandleCommandL() ESecUiCmdUnlock"));
+ #endif
+ // stop observing emergency call event
+ iEmergencySupportReady = EFalse;
+ iEcsDetector->Reset(); // Ecs queue is cleared; keys up til here are forgotten
+ // ask secuity code
+ CSecurityHandler* handler = new (ELeave) CSecurityHandler(iPhone);
+ CleanupStack::PushL(handler);
+ TSecUi::InitializeLibL();
+
+ // Put the lights on when security query is shown
+ SendMessageToSysAp( EEikSecurityQueryLights );
+ HideSoftNotification(); // dismiss all the pending notes just before asking the unlocking code
+
+ TRAPD(err,
+ {
+ iDeviceLockQueryStatus = ETrue;
+ if(handler->AskSecCodeInAutoLockL())
+ {
+ iLocked = EFalse;
+ DisableWGListChangeEventListening();
+ iDeviceLockQueryStatus = EFalse;
+ UnLockKeys();
+ iModel->SetLockedL(EFalse);
+ SwitchToPreviousAppL();
+ }
+ else
+ { // make sure that we will be topmost still
+ iDeviceLockQueryStatus = EFalse;
+ TInt callState;
+ RProperty::Get( KPSUidCtsyCallInformation, KCTsyCallState, callState );
+ if ( callState == EPSCTsyCallStateNone &&
+ !FeatureManager::FeatureSupported( KFeatureIdProtocolCdma ) )
+ {
+ TApaTask self(CCoeEnv::Static()->WsSession());
+ self.SetWgId(CCoeEnv::Static()->RootWin().Identifier());
+ self.BringToForeground();
+ TBool featureNoPowerkey = FeatureManager::FeatureSupported( KFeatureIdNoPowerkey );
+ if ( featureNoPowerkey )
+ {//set lights on in case user pressed "red button". If he pressed cancel the lights are on anyway so it doesn't matter.
+ SendMessageToSysAp(EEikKeyLockLightsOnRequest);
+ }
+ // we don't want enable lock if call in progress
+ RProperty::Get( KPSUidCtsyCallInformation, KCTsyCallState, callState );
+ TInt keyguardDisableState(ECoreAppUIsDisableKeyguardUninitialized);
+ //If there is alarm on the keyguard status is set to disabled. In that case don't enable keyguard as it will be done by SysAp
+ //after the alarm has been disabled/snoozed. Otherwise the alarm CBA is left under keyguard CBA.
+ RProperty::Get( KPSUidCoreApplicationUIs, KCoreAppUIsDisableKeyguard, keyguardDisableState );
+ if ((callState == EPSCTsyCallStateNone) && (keyguardDisableState != ECoreAppUIsDisableKeyguard))
+ {
+ RAknKeyLock keylock;
+ if ( keylock.Connect() == KErrNone )
+ {
+ keylock.EnableAutoLockEmulation();
+ keylock.Close();
+ }
+ }
+ }
+ }
+ };)
+
+ // start observing emergency call event
+ iEmergencySupportReady = ETrue;
+ CleanupStack::PopAndDestroy(handler); // handler
+ TSecUi::UnInitializeLib(); // secui
+
+ User::LeaveIfError(err);
+
+ break;
+ }
+ default:
+ break;
+ }
+ }
+
+// ----------------------------------------------------
+// CAutolockAppUi::SwitchToPreviousAppL()
+// Activates previous app
+//----------------------------------------------------
+//
+void CAutolockAppUi::SwitchToPreviousAppL()
+ {
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(AUTOLOCK)CAutolockAppUi::SwitchToPreviousAppL()"));
+ #endif
+ iEcsDetector->Reset(); // Ecs queue is cleared; keys up til here are forgotten
+ // stop observing phone events
+ iPhoneObserver->Stop();
+ CAknView* view = View(KAutoLockViewId);
+ if(view)
+ {
+ STATIC_CAST(CAutolockView*, view)->MakeVisible(EFalse);
+ }
+ else
+ {
+ #if defined(_DEBUG)
+ RDebug::Printf( "%s %s (%u) no view ????=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, view );
+ #endif
+ }
+ // app to background
+ TApaTask self(iCoeEnv->WsSession());
+ self.SetWgId(iCoeEnv->RootWin().Identifier());
+ self.SendToBackground();
+ // flush
+ iCoeEnv->WsSession().Flush();
+ }
+// ----------------------------------------------------
+// CAutolockAppUi::BringAppToForegroundL()
+// Activates autolock app
+//----------------------------------------------------
+//
+void CAutolockAppUi::BringAppToForegroundL()
+ {
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(AUTOLOCK)CAutolockAppUi::BringAppToForegroundL()"));
+ #endif
+ TBool tarmAdminFlag(EFalse);
+ TBool remotelockState(EFalse);
+if(FeatureManager::FeatureSupported(KFeatureIdSapTerminalControlFw ))
+{
+ tarmAdminFlag = TarmState();
+}
+
+#ifdef RD_REMOTELOCK
+ TInt autolockState;
+ RProperty::Get(KPSUidCoreApplicationUIs, KCoreAppUIsAutolockStatus, autolockState);
+ remotelockState = (autolockState == ERemoteLocked);
+#endif//RD_REMOTELOCK
+ // If TARM admin flag is set, bring Autolock to foreground regardless of call state.
+
+
+ if(!tarmAdminFlag)
+ { //If phone has been remote locked bring Autolock to foreground regardless of call state.
+ if(!remotelockState)
+ { // check if there is active call
+ TInt callState;
+ RProperty::Get( KPSUidCtsyCallInformation, KCTsyCallState, callState );
+ #if defined(_DEBUG)
+ RDebug::Printf( "%s %s (%u) callState=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, callState );
+ #endif
+
+ TInt value(EStartupUiPhaseUninitialized);
+ RProperty::Get(KPSUidStartup, KPSStartupUiPhase, value);
+ #if defined(_DEBUG)
+ RDebug::Printf( "%s %s (%u) KPSStartupUiPhase value=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, value );
+ RDebug::Printf( "%s %s (%u) EStartupUiPhaseSystemWelcomeDone=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, EStartupUiPhaseSystemWelcomeDone );
+ #endif
+ if(value<EStartupUiPhaseSystemWelcomeDone && callState == EPSCTsyCallStateNone)
+ {
+ callState = EPSCTsyCallStateNone+1; // so that is unlocks
+ iLocked = EFalse;
+ #if defined(_DEBUG)
+ RDebug::Printf( "%s %s (%u) iLocked=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, iLocked );
+ #endif
+ }
+ else if(value<EStartupUiPhaseSystemWelcomeDone && callState > EPSCTsyCallStateNone)
+ {
+ callState = EPSCTsyCallStateNone+0; // so that is locks
+ #if defined(_DEBUG)
+ RDebug::Printf( "%s %s (%u) new+0 callState=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, callState );
+ #endif
+ }
+ if (callState != EPSCTsyCallStateNone )
+ {
+ #if defined(_DEBUG)
+ RDebug::Printf( "%s %s (%u) 1=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, 1 );
+ #endif
+ UnLockKeys();
+ iModel->SetLockedL(EFalse);
+ iModel->ResetInactivityTimeout();
+ return;
+ }
+ }
+
+ }
+
+
+ #ifndef __WINS__
+
+ #ifndef __NO_DOS__
+
+ /*****************************************************
+ * Series 60 Customer / ETEL
+ * Series 60 ETEL API
+ *****************************************************/
+
+ // check that device locked in DOS side too
+ RMobilePhone::TMobilePhoneLock lockType = RMobilePhone::ELockPhoneDevice;
+ RMobilePhone::TMobilePhoneLockInfoV1 lockInfo;
+ RMobilePhone::TMobilePhoneLockInfoV1Pckg lockInfoPkg(lockInfo);
+
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(AUTOLOCK)CAutolockAppUi::BringAppToForegroundL() GetLockInfo"));
+ #endif
+ iWait->SetRequestType(EMobilePhoneGetLockInfo);
+ iPhone.GetLockInfo(iWait->iStatus, lockType, lockInfoPkg);
+ TInt res = iWait->WaitForRequestL();
+ User::LeaveIfError(res);
+ if (iWait->iStatus == KErrNone)
+ {
+ // if not don't lock ui either
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(AUTOLOCK)CAutolockAppUi::BringAppToForegroundL() KErrNone"));
+ RDebug::Printf( "%s %s (%u) lockInfo.iSetting=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, lockInfo.iSetting );
+ RDebug::Printf( "%s %s (%u) RMobilePhone::ELockSetDisabled=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, RMobilePhone::ELockSetDisabled );
+ #endif
+ if (lockInfo.iSetting == RMobilePhone::ELockSetDisabled)
+ {
+ iModel->SetLockedL(EFalse);
+ UnLockKeys();
+ return;
+ }
+ }
+ #endif
+
+ #endif
+
+ // in case Telephone-app is topmost, then the user is confused because he sees but can't use it.
+ // therefore it's required to hide it, by sending to background. ETMA-7M8A2Y 20090105
+ if ( AknLayoutUtils::PenEnabled() )
+ {
+ TApaTaskList apaTaskList(CCoeEnv::Static()->WsSession());
+
+ TApaTask apaTask = apaTaskList.FindApp(KPhoneAppUid);
+ if (apaTask.Exists())
+ {
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(AUTOLOCK)CAknKeyLockControl::EnableKeylock() Bring phone to background"));
+ #endif
+ // Bring phone to background
+ apaTask.SendToBackground();
+ }
+ }
+ #if defined(_DEBUG)
+ RDebug::Printf( "%s %s (%u) iPhoneObserver->Start=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, 1 );
+ #endif
+
+ iPhoneObserver->Start();
+ iLocked = ETrue;
+ // app to foreground
+ TApaTask self(iCoeEnv->WsSession());
+ self.SetWgId(iCoeEnv->RootWin().Identifier());
+ self.BringToForeground();
+ ActivateLocalViewL(KAutoLockViewId);
+ CAknView* view = View(KAutoLockViewId);
+ if(view)
+ {
+ TRect aInitialRect;
+ STATIC_CAST(CAutolockView*, view)->HandleCall(0x17, aInitialRect);
+ STATIC_CAST(CAutolockView*, view)->MakeVisible(ETrue);
+ }
+ else
+ {
+ #if defined(_DEBUG)
+ RDebug::Printf( "%s %s (%u) no view ????=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, view );
+ #endif
+ }
+ }
+
+// ----------------------------------------------------
+// CAutolockAppUi::LockKeysL()
+// locks keys
+//----------------------------------------------------
+//
+void CAutolockAppUi::LockKeysL()
+ {
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(AUTOLOCK)CAutolockAppUi::LockKeysL()"));
+ #endif
+ // capture appkey & volume key
+ if (!iAppKey)
+ {
+ RWindowGroup& groupWin=iCoeEnv->RootWin();
+ iAppKey = groupWin.CaptureKeyUpAndDowns(EStdKeyApplication0, 0, 0); // Capture app key
+ }
+ TInt gripStatus = EPSHWRMGripClosed;
+ RProperty::Get( KPSUidHWRM, KHWRMGripStatus, gripStatus );
+ #if defined(_DEBUG)
+ RDebug::Printf( "%s %s (%u) gripStatus=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, gripStatus );
+ #endif
+ if(gripStatus==EPSHWRMGripOpen)
+ ForceOrientation(0);
+ else
+ ForceOrientation(1);
+ LockSideKeyL();
+ }
+// ----------------------------------------------------
+// CAutolockAppUi::UnLockKeys()
+// unlocks keys
+//----------------------------------------------------
+//
+void CAutolockAppUi::UnLockKeys()
+ {
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(AUTOLOCK)CAutolockAppUi::UnLockKeysL()"));
+ #endif
+ // uncapture appkey
+ if (iAppKey)
+ {
+ RWindowGroup& groupWin=iCoeEnv->RootWin();
+ groupWin.CancelCaptureKeyUpAndDowns(iAppKey);
+ iAppKey = 0;
+ }
+ UnLockSideKey();
+ }
+// ----------------------------------------------------
+// CAutolockAppUi::LockSideKeyL()
+// unlocks side-key
+//----------------------------------------------------
+//
+void CAutolockAppUi::LockSideKeyL()
+ {
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(AUTOLOCK)CAutolockAppUi::LockSideKeyL()"));
+ #endif
+ if (!iSideKey1)
+ {
+ RWindowGroup& groupWin=iCoeEnv->RootWin();
+ iSideKey1 = groupWin.CaptureKey(EKeyDeviceF,0,0); // EKeySide -> EKeyDeviceF
+ #if defined(_DEBUG)
+ RDebug::Printf( "%s %s (%u) capturing EStdKeyDeviceF=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, EStdKeyDeviceF );
+ #endif
+ iSideKey2 = groupWin.CaptureKeyUpAndDowns(EStdKeyDeviceF, 0, 0); // EStdKeyDevice6 -> EStdKeyDeviceF
+ }
+ }
+
+// -------------------------------------------------------------------------------------------------------------
+// part of emergency call handling when telephony+devicelock is active
+// this solution is meant only for 3.1 and 3.2
+void CAutolockAppUi::HandleEcsEvent( CAknEcsDetector* aEcsDetector, CAknEcsDetector::TState aState )
+ {
+ switch ( aState )
+ {
+ case CAknEcsDetector::ECompleteMatchThenSendKey:
+ // Do nothing since note will be removed on ECallAttempted event
+ break;
+ case CAknEcsDetector::ECompleteMatch:
+ iEcsNote->SetEmergencyNumber( aEcsDetector->CurrentMatch() );
+
+ // Tell sysAp to switch lights on
+ SendMessageToSysAp( EEikEcsQueryLights );
+
+ iEcsNote->ShowNote();
+ iEcsNote->iNoteOnScreen =ETrue;
+ break;
+ case CAknEcsDetector::EPartialMatch:
+ iEcsNote->SleepNote();
+ break;
+ case CAknEcsDetector::ECallAttempted:
+ iEcsNote->SleepNote();
+ break;
+ case CAknEcsDetector::EEmpty:
+ iEcsNote->SleepNote();
+ break;
+ case CAknEcsDetector::ENoMatch:
+ iEcsNote->SleepNote();
+ break;
+ default:
+ break;
+ }
+ }
+
+CEcsNote::CEcsNote() : iNoteOnScreen( EFalse )
+ {}
+
+void CEcsNote::ConstructSleepingNoteL(TInt aResourceId)
+ {
+ CAknNoteDialog::ConstructSleepingDialogL(aResourceId);
+ }
+
+TInt CEcsNote::ShowNote()
+ {
+ ReportUserActivity();
+ iTimeoutInMicroseconds = CAknNoteDialog::EUndefinedTimeout;
+ iTone = CAknNoteDialog::ENoTone;
+ if (!iNoteOnScreen)
+ {
+ return RouseSleepingDialog();
+ }
+ // return value not used
+ else
+ // return value not used
+ return NULL;
+ }
+
+void CEcsNote::SleepNote()
+ {
+ if (iNoteOnScreen)
+ ExitSleepingDialog(); // Causes flicker to other notes if called when note is not on screen
+ iNoteOnScreen = EFalse;
+ }
+
+TKeyResponse CEcsNote::OfferKeyEventL(const TKeyEvent& /*aKeyEvent*/, TEventCode /*aType*/)
+ {
+ return EKeyWasConsumed;
+ }
+
+void CEcsNote::SetEmergencyNumber( const TDesC& aMatchedNumber )
+ {
+ TRect screen(iAvkonAppUi->ApplicationRect());
+ TAknLayoutRect mainPane;
+ mainPane.LayoutRect(screen, AKN_LAYOUT_WINDOW_main_pane(screen, 0, 1, 1));
+ TAknLayoutRect popupNoteWindow;
+ AknLayoutUtils::TAknCbaLocation cbaLocation( AknLayoutUtils::CbaLocation() );
+ TInt variety( 0 );
+ if ( cbaLocation == AknLayoutUtils::EAknCbaLocationRight )
+ {
+ variety = 5;
+ }
+ else if ( cbaLocation == AknLayoutUtils::EAknCbaLocationLeft )
+ {
+ variety = 8;
+ }
+ else
+ {
+ variety = 2;
+ }
+
+ popupNoteWindow.LayoutRect(mainPane.Rect(), AknLayoutScalable_Avkon::popup_note_window( variety ));
+ TAknLayoutText textRect;
+ textRect.LayoutText(popupNoteWindow.Rect(), AKN_LAYOUT_TEXT_Note_pop_up_window_texts_Line_1(4));
+
+ // Size of a temporary buffer that contains new lines, spaces and
+ // emergency number for a note.
+ TBuf16<KAknEcsMaxMatchingLength+80> number;
+ number.Append('\n');
+ number.Append('\n');
+
+ TInt spaceCharWidthInPixels = textRect.Font()->CharWidthInPixels(' ');
+ if (spaceCharWidthInPixels < 1)
+ {
+ // Avoid divide by zero situation even the space char would have zero length.
+ spaceCharWidthInPixels = 1;
+ }
+
+ TInt length = (textRect.TextRect().Width() - textRect.Font()->TextWidthInPixels(aMatchedNumber))
+ / spaceCharWidthInPixels;
+
+ const TInt matchedNumberLength = aMatchedNumber.Length();
+ const TInt numberLength = number.Length();
+ const TInt numberMaxLength = number.MaxLength();
+
+ if ( numberLength + length + matchedNumberLength > numberMaxLength)
+ {
+ // To make sure that buffer overflow does not happen.
+ length = numberMaxLength - numberLength - matchedNumberLength;
+ }
+ for (int i = 0; i < length ; i++)
+ {
+ number.Append(' ');
+ }
+
+ number.Append(aMatchedNumber);
+ TRAP_IGNORE(SetTextL(number));
+
+ }
+
+// -------------------------------------------------------------------------------------------------------------
+
+// ----------------------------------------------------
+// CAutolockAppUi::UnLockSideKey()
+// unlocks side-key
+//----------------------------------------------------
+//
+void CAutolockAppUi::UnLockSideKey()
+ {
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(AUTOLOCK)CAutolockAppUi::UnLockSideKeyL()"));
+ #endif
+ if (iSideKey1)
+ {
+ RWindowGroup& groupWin=iCoeEnv->RootWin();
+ groupWin.CancelCaptureKeyUpAndDowns(iSideKey2);
+ groupWin.CancelCaptureKey(iSideKey1);
+ iSideKey1 = 0;
+ iSideKey2 = 0;
+ }
+ }
+
+
+//
+// ---------------------------------------------------------
+// CAutolockAppUi::HandleScreenDeviceChangedL()
+// Handles screen layout changes, called by CCoeAppUi
+// ---------------------------------------------------------
+//
+void CAutolockAppUi::HandleScreenDeviceChangedL()
+{
+ CAknAppUiBase::HandleScreenDeviceChangedL();
+ //get autolock view from CAknViewAppUi
+ CAknView* view = View(KAutoLockViewId);
+ if(view)
+ {
+ STATIC_CAST(CAutolockView*, view)->ScreenDeviceChanged();
+ }
+
+}
+
+//
+// ----------------------------------------------------------
+// CAutolockAppUi::IsPinBlocked()
+// Checks whether PIN1/UPIN is blocked
+// ----------------------------------------------------------
+//
+TBool CAutolockAppUi::IsPinBlocked()
+{
+ RMmCustomAPI::TSecurityCodeType secCodeType;
+ TBool wcdmaSupported(FeatureManager::FeatureSupported( KFeatureIdProtocolWcdma ));
+ TBool upinSupported(FeatureManager::FeatureSupported( KFeatureIdUpin ));
+
+ if(wcdmaSupported || upinSupported)
+ {
+ RMobilePhone::TMobilePhoneSecurityCode activePin;
+ iCustomPhone.GetActivePin(activePin);
+ if(activePin == RMobilePhone::ESecurityUniversalPin)
+ secCodeType = RMmCustomAPI::ESecurityUniversalPin;
+ else
+ secCodeType = RMmCustomAPI::ESecurityCodePin1;
+ }
+ else
+ secCodeType = RMmCustomAPI::ESecurityCodePin1;
+
+ TBool isBlocked = EFalse;
+ iCustomPhone.IsBlocked(secCodeType,isBlocked);
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(AUTOLOCK)CAutolockAppUi::IsPinBlocked result: %d"), isBlocked);
+ #endif
+ return isBlocked;
+}
+
+//
+// ----------------------------------------------------------
+// CAutolockAppUi::HandleWsEventL()
+//
+// ----------------------------------------------------------
+//
+void CAutolockAppUi::HandleWsEventL( const TWsEvent& aEvent,CCoeControl* aDestination )
+ {
+ const TInt type = aEvent.Type();
+ #if defined(_DEBUG)
+ RDebug::Printf( "%s %s (%u) type=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, type );
+ #endif
+
+ switch ( type )
+ {
+ case KAknFullOrPartialForegroundLost: // partial or full fg lost
+ if( iIncallBubble )
+ {
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(AUTOLOCK)CAutolockAppUi::HandleWsEventL: DISABLE call bubble"));
+ #endif
+ iIncallBubble->SetIncallBubbleAllowedInIdleL( EFalse );
+ }
+ break;
+ case KAknFullOrPartialForegroundGained: // partial or full fg gained
+ if( iIncallBubble )
+ {
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(AUTOLOCK)CAutolockAppUi::HandleWsEventL: ENABLE call bubble"));
+ #endif
+ CAknView* view = View(KAutoLockViewId);
+ if(view)
+ {
+ TRect aInitialRect;
+ STATIC_CAST(CAutolockView*, view)->HandleCall(0x1A, aInitialRect);
+ }
+
+ iIncallBubble->SetIncallBubbleAllowedInIdleL( ETrue );
+ }
+ break;
+ case EEventWindowGroupListChanged:
+ HandleWindowGroupListChange();
+ break;
+ case EEventPointer:
+ case EEventDragDrop:
+ {
+ TInt gripStatus = EPSHWRMGripClosed;
+ RProperty::Get( KPSUidHWRM, KHWRMGripStatus, gripStatus );
+ #if defined(_DEBUG)
+ RDebug::Printf( "%s %s (%u) 1 gripStatus=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, gripStatus );
+ RDebug::Printf( "%s %s (%u) EPSHWRMGripClosed=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, EPSHWRMGripClosed );
+ #endif
+ if(gripStatus==EPSHWRMGripStatusUninitialized)
+ {
+ gripStatus=EPSHWRMGripClosed;
+ #if defined(_DEBUG)
+ RDebug::Printf( "%s %s (%u) new gripStatus=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, gripStatus );
+ #endif
+ }
+ TInt callState = 0;
+ RProperty::Get( KPSUidCtsyCallInformation, KCTsyCallState, callState );
+ #if defined(_DEBUG)
+ RDebug::Printf( "%s %s (%u) callState=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, callState );
+ #endif
+ TPointerEvent *pointer = aEvent.Pointer();
+ CAknView* view = View(KAutoLockViewId);
+ if(view)
+ {
+ STATIC_CAST(CAutolockView*, view)->ScreenDeviceChanged();
+ TRect aInitialRect;
+ STATIC_CAST(CAutolockView*, view)->HandleCall(0x1, aInitialRect);
+ if(aCallButtonRect.iBr.iX==0) // initialize if not done already
+ aCallButtonRect = TRect (aInitialRect);
+ }
+ if ( callState != EPSCTsyCallStateNone && callState != EPSCTsyCallStateUninitialized )
+ {
+ if(pointer->iType==TPointerEvent::EButton1Down)
+ {
+ TPoint iPosition = pointer->iPosition;
+ #if defined(_DEBUG)
+ RDebug::Printf( "%s %s (%u) iPosition.iX=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, iPosition.iX );
+ RDebug::Printf( "%s %s (%u) aCallButtonRect.iBr.iX=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, aCallButtonRect.iBr.iX );
+ RDebug::Printf( "%s %s (%u) iPosition.iY=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, iPosition.iY );
+ RDebug::Printf( "%s %s (%u) aCallButtonRect.iBr.iY=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, aCallButtonRect.iBr.iY );
+ #endif
+ if(aCallButtonRect.iBr.iX<iPosition.iX && iPosition.iX<aCallButtonRect.iBr.iX+aCallButtonRect.iTl.iX &&
+ ( (gripStatus==EPSHWRMGripClosed && iPosition.iY>400) || (gripStatus!=EPSHWRMGripClosed && aCallButtonRect.iBr.iY<iPosition.iY && iPosition.iY<aCallButtonRect.iBr.iY+aCallButtonRect.iTl.iY ) )
+ )
+ {
+ #if defined(_DEBUG)
+ RDebug::Printf( "%s %s (%u) iGotEventDownDuringCall=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, iGotEventDownDuringCall );
+ #endif
+ iGotEventDownDuringCall=1;
+ }
+ }
+ if(pointer->iType==TPointerEvent::EButton1Up)
+ {
+ TPoint iPosition = pointer->iPosition;
+ // touching at any point inside and below the BigRedButton. This is to handle the case where another dialog overlaps
+ #if defined(_DEBUG)
+ RDebug::Printf( "%s %s (%u) iGotEventDownDuringCall=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, iGotEventDownDuringCall );
+ RDebug::Printf( "%s %s (%u) iPosition.iX=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, iPosition.iX );
+ RDebug::Printf( "%s %s (%u) aCallButtonRect.iBr.iX=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, aCallButtonRect.iBr.iX );
+ RDebug::Printf( "%s %s (%u) iPosition.iY=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, iPosition.iY );
+ RDebug::Printf( "%s %s (%u) aCallButtonRect.iBr.iY=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, aCallButtonRect.iBr.iY );
+ #endif
+ if(iGotEventDownDuringCall==1 && aCallButtonRect.iBr.iX<iPosition.iX && iPosition.iX<aCallButtonRect.iBr.iX+aCallButtonRect.iTl.iX &&
+ ( (gripStatus==EPSHWRMGripClosed && iPosition.iY>400) || (gripStatus!=EPSHWRMGripClosed && aCallButtonRect.iBr.iY<iPosition.iY && iPosition.iY<aCallButtonRect.iBr.iY+aCallButtonRect.iTl.iY ) )
+ )
+ {
+ // on some devices, simulating End-Key might not end the call. First, try the API
+ RProperty::Get( KPSUidCtsyCallInformation, KCTsyCallState, callState );
+ #if defined(_DEBUG)
+ RDebug::Printf( "%s %s (%u) callState=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, callState );
+ #endif
+ if ( callState != EPSCTsyCallStateNone && callState != EPSCTsyCallStateUninitialized )
+ {
+ RTelServer telServer;
+ RMobilePhone mPhone;
+ User::LeaveIfError(telServer.Connect());
+ TInt err;
+ err = telServer.LoadPhoneModule(KMmTsyModuleName);
+ if (err != KErrNone && err != KErrAlreadyExists)
+ User::Leave(err);
+ User::LeaveIfError(mPhone.Open(telServer, KMmTsyPhoneName));
+ CleanupClosePushL(mPhone);
+ RMobileLine mLine;
+ TPtrC lineName;
+ lineName.Set(KMmTsyVoice1LineName);
+ User::LeaveIfError(mLine.Open(mPhone, lineName));
+ CleanupClosePushL(mLine);
+
+ TInt count(0);
+ User::LeaveIfError(mLine.EnumerateCall(count));
+ #if defined(_DEBUG)
+ RDebug::Printf( "%s %s (%u) count=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, count );
+ #endif
+ for (TInt jj = 0; jj < count; jj++)
+ {
+ RLine::TCallInfo cinfo;
+ User::LeaveIfError(mLine.GetCallInfo(jj, cinfo));
+ RMobileCall mCall;
+ User::LeaveIfError(mCall.OpenExistingCall(mLine, cinfo.iCallName));
+ #if defined(_DEBUG)
+ RDebug::Printf( "%s %s (%u) calling mCall.HangUp 0=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, 0 );
+ #endif
+ mCall.HangUp(); // this gives an error, but succeeds
+ }
+ CleanupStack::PopAndDestroy(&mLine);
+ CleanupStack::PopAndDestroy(&mPhone);
+ }
+ User::After(100000); // give time for the call to end
+ #if defined(_DEBUG)
+ RProperty::Get( KPSUidCtsyCallInformation, KCTsyCallState, callState );
+ RDebug::Printf( "%s %s (%u) callState=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, callState );
+ #endif
+ if ( callState != EPSCTsyCallStateNone && callState != EPSCTsyCallStateUninitialized )
+ {
+ // send End key to Telephony to end the call. This works for GSM and VOIP
+ #if defined(_DEBUG)
+ RDebug::Printf( "%s %s (%u) sending EStdKeyNo=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, EStdKeyNo );
+ #endif
+ TRawEvent event;
+ event.Set(TRawEvent::EKeyDown, EStdKeyNo);
+ iEikonEnv->WsSession().SimulateRawEvent(event);
+ User::After(1000);
+ event.Set(TRawEvent::EKeyUp, EStdKeyNo);
+ iEikonEnv->WsSession().SimulateRawEvent(event);
+ User::After(100000); // give time for the call to end
+ }
+ }
+ iGotEventDownDuringCall=0; // even if outside the touch area
+ aCallButtonRect.iBr.iX = 0;
+ }
+ }
+ }
+ break;
+ case EEventKeyUp: // on touch devices, this happens only for the switch-key, which should turn on the lights.
+ case EEventKey:
+ case EEventKeyDown:
+ if(iLocked)
+ { // need to capture the switch-key for the case activeCall because Autolock stays on top, even over Akn
+ TKeyEvent *key = aEvent.Key();
+ #if defined(_DEBUG)
+ RDebug::Printf( "%s %s (%u) key->iCode=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, key->iCode );
+ RDebug::Printf( "%s %s (%u) key->iScanCode=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, key->iScanCode );
+ #endif
+ if ( (key->iScanCode == EStdKeyDeviceF) || (key->iCode == EKeyDeviceF) )
+ {
+ #if defined(_DEBUG)
+ RDebug::Printf( "%s %s (%u) good key=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, 1 );
+ #endif
+ RWsSession& ws = iEikonEnv->WsSession();
+ TApaTaskList tasklist( ws );
+ TApaTask capserver = tasklist.FindApp( KAknCapServerUid );
+ if( capserver.Exists() )
+ {
+ #if defined(_DEBUG)
+ RDebug::Printf( "%s %s (%u) found KAknCapServerUid=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, KAknCapServerUid );
+ #endif
+ capserver.SendKey( *key );
+ }
+ SendMessageToSysAp( EEikSecurityQueryLights );
+ }
+ }
+ break;
+ default:
+ iGotEventDownDuringCall=0; // any other event invalidates the Press inside the BigRedButton
+ break;
+ }
+
+ // All events are sent to base class.
+ CAknViewAppUi::HandleWsEventL( aEvent, aDestination );
+
+ // part of emergency call handling when telephony+devicelock is active
+ // this solution is meant only for 3.1 and 3.2
+ // Emergency detector only handles key down events
+ if ( iEmergencySupportReady )
+ iEcsDetector->HandleWsEventL( aEvent, aDestination);
+ #if defined(_DEBUG)
+ RDebug::Printf( "%s %s (%u) 0=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, 0 );
+ #endif
+ }
+
+TBool CAutolockAppUi::DeviceLockQueryStatus()
+ {
+ return iDeviceLockQueryStatus;
+ }
+
+TBool CAutolockAppUi::DeviceLockStatus()
+ {
+ return iLocked;
+ }
+
+void CAutolockAppUi::ForceOrientation(TInt value)
+ {
+ #if defined(_DEBUG)
+ RDebug::Printf( "%s %s (%u) value=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, value );
+ #endif
+ if(value==1)
+ {
+ SetOrientationL( EAppUiOrientationLandscape );
+ SetOrientationL( EAppUiOrientationPortrait );
+ }
+ if(value==0)
+ {
+ SetOrientationL( EAppUiOrientationPortrait );
+ SetOrientationL( EAppUiOrientationLandscape );
+ }
+ aCallButtonRect.iBr.iX = 0;
+ #if defined(_DEBUG)
+ RDebug::Printf( "%s %s (%u) done value=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, value );
+ #endif
+ }
+
+void CAutolockAppUi::CancelDeviceLockQuery()
+ {
+ #if defined(_DEBUG)
+ RDebug::Printf( "%s %s (%u) 0=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, 0 );
+ #endif
+ TRawEvent rawEvent;
+ rawEvent.Set( TRawEvent::EKeyDown, KCancelKeyScanCode );
+ iCoeEnv->WsSession().SimulateRawEvent( rawEvent );
+ rawEvent.Set( TRawEvent::EKeyUp, KCancelKeyScanCode );
+ iCoeEnv->WsSession().SimulateRawEvent( rawEvent );
+ }
+
+TBool CAutolockAppUi::DeviceFpsLock(TInt iStatus)
+ {
+ if(iStatus)
+ HandleCommandL(ESecUiCmdUnlock);
+ else
+ iModel->SetLockedL(ETimerLocked);
+ return ETrue;
+ }
+void CAutolockAppUi::HandleWindowGroupListChange()
+ {
+ #if defined(_DEBUG)
+ RDebug::Printf( "%s %s (%u) iLocked=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, iLocked );
+ #endif
+ if ( !iLocked )
+ {
+ // System is not locked, make sure app is not on the foreground.
+ if ( !iCoeEnv->RootWin().OrdinalPosition() )
+ {
+ CAknSgcClient::MoveApp(
+ iCoeEnv->RootWin().Identifier(),
+ ESgcMoveAppToBackground );
+ }
+ }
+ else
+ {
+ CAknView* view = View(KAutoLockViewId);
+ if(view)
+ {
+ TRect aInitialRect;
+ STATIC_CAST(CAutolockView*, view)->HandleCall(0x10, aInitialRect);
+ if(aCallButtonRect.iBr.iX==0) // initialize if not done already
+ aCallButtonRect = TRect (aInitialRect);
+ }
+ // So now system is locked. When call is not ongoing, autolock should
+ // be on the foreground.
+ TInt callState = 0;
+ RProperty::Get( KPSUidCtsyCallInformation, KCTsyCallState, callState );
+ if ( callState == EPSCTsyCallStateNone ||
+ callState == EPSCTsyCallStateUninitialized )
+ {
+ // No calls ongoing.
+ if ( iCoeEnv->RootWin().OrdinalPosition() > 0 )
+ {
+ // Not on foreground
+ CAknSgcClient::MoveApp(
+ iCoeEnv->RootWin().Identifier(),
+ ESgcMoveAppToForeground );
+ }
+ }
+ }
+ }
+
+TBool CAutolockAppUi::TarmState()
+{
+TBool ret(EFalse);
+if(FeatureManager::FeatureSupported(KFeatureIdSapTerminalControlFw ))
+{
+ // Get the TARM admin flag value
+ TInt tarmFlag;
+ TInt tRet = RProperty::Get( KSCPSIDAutolock, SCP_TARM_ADMIN_FLAG_UID, tarmFlag );
+
+ if ( tRet != KErrNone )
+ {
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(AUTOLOCK)CAutolockAppUi::BringAppToForegroundL(): Warning: failed to get TARM Admin Flag state"));
+ #endif
+ }
+ else
+ {
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(AUTOLOCK)CAutolockAppUi::BringAppToForegroundL(): TARM flag: %d"),
+ tarmFlag );
+ #endif
+ }
+
+ // Unset the admin flag if set
+ if ( tarmFlag & KSCPFlagAdminLock )
+ {
+ ret = ETrue;
+ TInt tRet = RProperty::Get( KSCPSIDAutolock, SCP_TARM_ADMIN_FLAG_UID, tarmFlag );
+
+ if ( tRet == KErrNone )
+ {
+ tarmFlag &= ~KSCPFlagAdminLock;
+ tRet = RProperty::Set( KSCPSIDAutolock, SCP_TARM_ADMIN_FLAG_UID, tarmFlag );
+ }
+
+ if ( tRet != KErrNone )
+ {
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(AUTOLOCK)CAutolockAppUi::BringAppToForegroundL(): FAILED to unset TARM Admin Flag"));
+ #endif
+ }
+ }
+
+}
+ #if defined(_DEBUG)
+ RDebug::Printf( "%s %s (%u) ret=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, ret );
+ #endif
+return ret;
+}
+
+// ---------------------------------------------------------
+// CAutolockAppUi::HiddenReset()
+// ---------------------------------------------------------
+TBool CAutolockAppUi::HiddenReset()
+ {
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(AUTOLOCK)CAutolockAppUi::HiddenReset() begin"));
+ #endif
+
+ TBool ret_val ( EFalse );
+ TInt startupReason(ENormalStartup);
+ TInt errorCode(KErrNone);
+
+ RProperty::Get(KPSUidStartup, KPSStartupReason, startupReason);
+
+ if ( errorCode != KErrNone )
+ {
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(AUTOLOCK)CAutolockAppUi::HiddenReset() error getting startup reason"));
+ #endif
+ }
+ ret_val = (startupReason != ENormalStartup);
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(AUTOLOCK)CAutolockAppUi::HiddenReset() END: %d"), ret_val);
+ #endif
+ return ret_val;
+ }
+void CAutolockAppUi::EnableWGListChangeEventListening()
+{
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(AUTOLOCK)CAutolockAppUi::EnableWGListChangeEventListening()"));
+ #endif
+ RWindowGroup& rootWin = iCoeEnv->RootWin();
+ rootWin.EnableGroupListChangeEvents();
+ rootWin.EnableScreenChangeEvents();
+}
+void CAutolockAppUi::DisableWGListChangeEventListening()
+{
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(AUTOLOCK)CAutolockAppUi::DisableWGListChangeEventListening()"));
+ #endif
+ RWindowGroup& rootWin = iCoeEnv->RootWin();
+ rootWin.DisableGroupListChangeEvents();
+ rootWin.DisableScreenChangeEvents();
+}
+// End of File
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/securitydialogs/Autolock/src/AutolockContainer.cpp Wed Sep 01 12:19:59 2010 +0100
@@ -0,0 +1,394 @@
+/*
+* Copyright (c) 2002 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:
+*
+*/
+
+
+// INCLUDE FILES
+#include "AutolockContainer.h"
+#include <eikenv.h>
+#include <autolock.mbg>
+#include <avkon.hrh>
+#include <aknlayoutscalable_avkon.cdl.h>
+#include <aknlayoutscalable_apps.cdl.h>
+#include <layoutmetadata.cdl.h>
+#include <data_caging_path_literals.hrh>
+#include "AutolockAppUiPS.h"
+#include <Autolock.rsg>
+#include "autolock.hrh"
+#include <eikdef.h>
+#include <aknnotedialog.h>
+#include <aknkeylock.h>
+#include <AknSoftNotifier.h>
+
+#include <coreapplicationuisdomainpskeys.h>
+
+#include <AknsLayeredBackgroundControlContext.h>
+#include <AknsDrawUtils.h>
+#include <AknBitmapAnimation.h>
+#include <AknsUtils.h>
+#include <AknUtils.h>
+
+#include <e32property.h>
+#include <PSVariables.h> // Property values
+#include <coreapplicationuisdomainpskeys.h>
+#include <startupdomainpskeys.h>
+#include <ctsydomainpskeys.h>
+_LIT(BitmapName,"AutoLock.mbm");
+
+// CONSTANTS
+
+#ifdef RD_FULLSCREEN_WALLPAPER
+enum TAutolockBgLayers
+ {
+ EAutolockBgLayerWallpaper = 0,
+ EAutolockBgLayerBackground = 1,
+ EAutolockBgLayersN = 2
+ };
+#else
+enum TAutolockBgLayers
+ {
+ EAutolockBgLayerBackground = 0,
+ EAutolockBgLayerWallpaper = 1,
+ EAutolockBgLayersN = 2
+ };
+#endif //RD_FULLSCREEN_WALLPAPER
+
+ TInt aCallRect_x;
+ TInt aCallRect_y;
+ TInt aCallRect_width;
+ TInt aCallRect_height;
+// ================= MEMBER FUNCTIONS =======================
+
+// ---------------------------------------------------------
+// CAutolockContainer::ConstructL(const TRect& aRect)
+// Symbian OS two phased constructor
+// ---------------------------------------------------------
+//
+void CAutolockContainer::ConstructL(const TRect& aRect)
+ {
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(AUTOLOCK)CAutolockContainer::ConstructL"));
+ #endif
+ CreateWindowL();
+
+ HBufC* bitMapPath = HBufC::NewLC(KMaxPath);
+ TPtr BitmapFile(bitMapPath->Des());
+ BitmapFile.Append(_L("Z:"));
+ BitmapFile.Append(KDC_APP_BITMAP_DIR);
+ BitmapFile.Append(BitmapName);
+
+ iEikBitmap = 0;
+ iEikBitmapCall = 0;
+ AknsUtils::CreateIconL(
+ AknsUtils::SkinInstance(),
+ KAknsIIDQgnGrafPhoneLocked,
+ iBitmap,
+ iMask,
+ BitmapFile,
+ EMbmAutolockQgn_graf_phone_locked,
+ EMbmAutolockQgn_graf_phone_locked_mask );
+ AknsUtils::CreateIconL(
+ AknsUtils::SkinInstance(),
+ KAknsIIDQgnGrafPhoneLocked,
+ iBitmapCall,
+ iMaskCall,
+ BitmapFile,
+ EMbmAutolockQgn_indi_button_end_call,
+ EMbmAutolockQgn_indi_button_end_call_mask );
+
+#ifdef RD_FULLSCREEN_WALLPAPER
+ TSize screenSize = iCoeEnv->ScreenDevice()->SizeInPixels();
+ TRect wallpaperRect( TPoint(0,0), screenSize );
+ iBgContext = CAknsLayeredBackgroundControlContext::NewL(
+ KAknsIIDWallpaper, wallpaperRect, ETrue, EAutolockBgLayersN );
+ SetRect(aRect);
+#else
+ // Create background control context for skins. Use parent absolute mode,
+ // as this is window owning control
+ iBgContext = CAknsLayeredBackgroundControlContext::NewL(
+ KAknsIIDQsnBgAreaMainIdle, aRect, ETrue, EAutolockBgLayersN );
+ iBgContext->SetLayerImage( EAutolockBgLayerWallpaper, KAknsIIDWallpaper );
+ iBgContext->SetLayerRect( EAutolockBgLayerWallpaper, aRect );
+ SetRect(aRect);
+#endif // RD_FULLSCREEN_WALLPAPER
+ ActivateL();
+
+ CleanupStack::PopAndDestroy(bitMapPath); //bitMapPath
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(AUTOLOCK)CAutolockContainer::ConstructL END"));
+ #endif
+ }
+
+
+// ---------------------------------------------------------
+// CAutolockContainer::~CAutolockContainer()
+// Destructor
+// ---------------------------------------------------------
+//
+CAutolockContainer::~CAutolockContainer()
+ {
+ delete iBgContext;
+ delete iBitmap;
+ delete iMask;
+ delete iBitmapCall;
+ delete iMaskCall;
+
+ }
+// ---------------------------------------------------------
+// CAutolockContainer::SizeChanged()
+// Called by framework when the view size is changed
+// ---------------------------------------------------------
+//
+void CAutolockContainer::SizeChanged()
+ {
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(AUTOLOCK)CAutolockContainer::SizeChanged()"));
+ #endif
+
+ TRect mainPaneRect(Rect());
+ TAknLayoutRect idleTradPane;
+ idleTradPane.LayoutRect(mainPaneRect, AknLayoutScalable_Avkon::main_idle_trad_pane());
+
+ TInt variety = 3;
+ if (Layout_Meta_Data::IsLandscapeOrientation())
+ {
+ variety = 2;
+ }
+
+
+ TAknLayoutRect idlePaneG2;
+ idlePaneG2.LayoutRect(idleTradPane.Rect(), AknLayoutScalable_Avkon::main_idle_pane_g2(variety));
+
+ TInt callState = 0;
+ RProperty::Get( KPSUidCtsyCallInformation, KCTsyCallState, callState );
+ if ( callState == EPSCTsyCallStateNone || callState == EPSCTsyCallStateUninitialized )
+ {
+ AknIconUtils::SetSize( iBitmap, idlePaneG2.Rect().Size() );
+ }
+ else
+ {
+ TSize lockSize = TSize(0.8 * idlePaneG2.Rect().Size().iWidth, 0.8 * idlePaneG2.Rect().Size().iHeight);
+ AknIconUtils::SetSize( iBitmap, lockSize );
+ }
+ TSize callSize = TSize(60,60);
+ AknIconUtils::SetSize( iBitmapCall, callSize );
+
+#ifdef RD_FULLSCREEN_WALLPAPER
+ TSize screenSize = iCoeEnv->ScreenDevice()->SizeInPixels();
+ TRect wallpaperRect( TPoint(0,0), screenSize );
+ iBgContext->SetLayerRect( EAutolockBgLayerBackground, Rect() ) ;
+ iBgContext->SetLayerRect( EAutolockBgLayerWallpaper, wallpaperRect ) ;
+
+ TPoint origo( 0, 0);
+ iBgContext->SetParentPos(origo);
+#else
+
+ iBgContext->SetLayerRect( EAutolockBgLayerBackground, Rect() ) ;
+ iBgContext->SetLayerRect( EAutolockBgLayerWallpaper, Rect() ) ;
+
+ TPoint positionRelativeToScreen = PositionRelativeToScreen();
+ //parent must be set when using parent absolute mode.
+ iBgContext->SetParentPos(positionRelativeToScreen);
+#endif //RD_FULLSCREEN_WALLPAPER
+
+ RRegion autolockRegion;
+#ifdef RD_FULLSCREEN_WALLPAPER
+ autolockRegion.AddRect( wallpaperRect);
+#else
+ autolockRegion.AddRect(Rect());
+#endif //RD_FULLSCREEN_WALLPAPER
+ Window().SetShape(autolockRegion);
+ autolockRegion.Close();
+
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(AUTOLOCK)CAutolockContainer::SizeChanged() END"));
+ #endif
+ }
+// ---------------------------------------------------------
+// CAutolockContainer::CountComponentControls() const
+// ---------------------------------------------------------
+//
+TInt CAutolockContainer::CountComponentControls() const
+ {
+ TInt controlCount = 0;
+
+ return controlCount;
+ }
+
+// ---------------------------------------------------------
+// CAutolockContainer::ComponentControl(TInt aIndex) const
+// ---------------------------------------------------------
+//
+CCoeControl* CAutolockContainer::ComponentControl(TInt /*aIndex*/) const
+ {
+ return NULL;
+ }
+ // ---------------------------------------------------------
+// CAutolockContainer::Draw(const TRect& aRect) const
+// ---------------------------------------------------------
+//
+void CAutolockContainer::Draw(const TRect& aRect) const
+ {
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(AUTOLOCK)CAutolockContainer::Draw"));
+ #endif
+ if (AknLayoutUtils::PenEnabled() )
+ {
+ TInt value = 0;
+ RProperty::Get(KPSUidCoreApplicationUIs, KCoreAppUIsAutolockStatus, value);
+ if(value <= EAutolockOff)
+ { // Avoid displaying the icon
+ #if defined(_DEBUG)
+ RDebug::Printf( "%s %s (%u) no Draw value=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, value );
+ #endif
+ // If it returns, it will not handle orientation changes.
+ // However it will not really draw because the view is hidden
+ // return;
+ }
+ }
+
+ CWindowGc& gc = SystemGc();
+ gc.SetPenStyle(CGraphicsContext::ENullPen);
+ gc.SetBrushColor(KRgbWhite);
+ gc.SetBrushStyle(CGraphicsContext::ESolidBrush);
+ MAknsSkinInstance* skin = AknsUtils::SkinInstance();
+ MAknsControlContext* cc = AknsDrawUtils::ControlContext( this );
+ AknsDrawUtils::Background( skin, cc, this, gc, aRect );
+
+ // Draw "lock" icon centered to this control
+ // fist calculate the correct x coordinate based on this
+ // controls rect and bitmap width
+ TInt x = Rect().Width()/2 - iBitmap->SizeInPixels().iWidth /2;
+ // and do same with y
+ TInt y = Rect().Height()/2 - iBitmap->SizeInPixels().iHeight/2;
+ TInt width =iBitmap->SizeInPixels().iWidth;
+ TInt height =iBitmap->SizeInPixels().iHeight;
+
+ TInt gripStatus = EPSHWRMGripClosed;
+ RProperty::Get( KPSUidHWRM, KHWRMGripStatus, gripStatus );
+ #if defined(_DEBUG)
+ RDebug::Printf( "%s %s (%u) gripStatus=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, gripStatus );
+ #endif
+
+ TInt callState = 0;
+ RProperty::Get( KPSUidCtsyCallInformation, KCTsyCallState, callState );
+ if ( callState == EPSCTsyCallStateNone || callState == EPSCTsyCallStateUninitialized )
+ {
+ }
+ else
+ {
+ if (gripStatus != EPSHWRMGripOpen)
+ y-=100;
+ }
+
+ if (iBitmap && iMask)
+ {
+ // gc.BitBltMasked(TPoint(x,y),iBitmap,TRect(TPoint(0,0),iBitmap->SizeInPixels()), iMask, ETrue);
+ gc.BitBltMasked(TPoint(x,y),iBitmap,TRect(TPoint(0,0),TPoint(width,height)), iMask, ETrue);
+ if ( callState == EPSCTsyCallStateNone || callState == EPSCTsyCallStateUninitialized )
+ {
+ }
+ else
+ {
+ if (gripStatus != EPSHWRMGripOpen)
+ {
+ aCallRect_x=Rect().Width()/2 - iBitmapCall->SizeInPixels().iWidth/2;
+ aCallRect_y=Rect().Height() * 0.75;
+ }
+ else
+ {
+ aCallRect_x=Rect().Width()* 0.75 - iBitmapCall->SizeInPixels().iWidth/2;
+ aCallRect_y = Rect().Height()/2-3*10;
+ }
+ aCallRect_width=iBitmapCall->SizeInPixels().iWidth;
+ aCallRect_height=iBitmapCall->SizeInPixels().iHeight;
+ TSize cornerSize(20,20);
+ TSize cornerEllipseSize(cornerSize.iHeight*2,cornerSize.iWidth*2);
+ TRect box(aCallRect_x-3*10 , aCallRect_y-3*10, aCallRect_x+aCallRect_width+3*10, aCallRect_y+aCallRect_height+3*10);
+ TRect cornerRectTl(box.iTl,cornerEllipseSize);
+ gc.SetBrushColor(KRgbRed);
+ gc.SetBrushStyle(CGraphicsContext::ESolidBrush);
+ gc.SetPenStyle(CGraphicsContext::EDottedPen);
+ gc.DrawRoundRect(box,cornerSize);
+ gc.BitBltMasked(TPoint(aCallRect_x,aCallRect_y),iBitmapCall,TRect(TPoint(0,0),TPoint(aCallRect_width,aCallRect_height)), iMaskCall, ETrue);
+ if (gripStatus != EPSHWRMGripOpen)
+ aCallRect_y+=100; // coordinates are relative to TRect, not to Screen
+
+ // if active call, dismiss all pending notes. This avoids them on top of the BigRedButton
+ CAknSoftNotifier *softNotifier = NULL;
+ TRAPD (err, {
+ softNotifier = CAknSoftNotifier::NewL();
+ softNotifier->AddNotificationL(ESetIdleState, 0);
+ // softNotifier->SetIdleStateL(EFalse);
+ };)
+ delete softNotifier;
+ // during any call ,the touch need to be enabled, so that BigRedButton is available
+ // It will be re-enabled when the call ends
+ RAknKeyLock keylock;
+ if ( keylock.Connect() == KErrNone )
+ {
+ keylock.DisableWithoutNote();
+ keylock.Close();
+ }
+ }
+ }
+ else if (iBitmap && !iMask)
+ {
+ gc.BitBlt(TPoint(x,y),iBitmap);
+ if ( callState == EPSCTsyCallStateNone || callState == EPSCTsyCallStateUninitialized )
+ {
+ }
+ else
+ {
+ gc.BitBlt(TPoint(x,y+iBitmap->SizeInPixels().iHeight),iBitmapCall);
+ }
+ }
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(AUTOLOCK)CAutolockContainer::Draw END"));
+ #endif
+ }
+
+// ---------------------------------------------------------
+// CAutolockContainer::HandleControlEventL(
+// CCoeControl* aControl,TCoeEvent aEventType)
+// ---------------------------------------------------------
+//
+void CAutolockContainer::HandleControlEventL(
+ CCoeControl* /*aControl*/,TCoeEvent /*aEventType*/)
+ {
+ }
+
+// ---------------------------------------------------------
+// CAutolockContainer::MopSupplyObject
+//
+// ---------------------------------------------------------
+//
+TTypeUid::Ptr CAutolockContainer::MopSupplyObject( TTypeUid aId )
+ {
+ if (aId.iUid == MAknsControlContext::ETypeId)
+ {
+ return MAknsControlContext::SupplyMopObject( aId, iBgContext );
+ }
+ return CCoeControl::MopSupplyObject( aId );
+ }
+void CAutolockContainer::GiveCoords( TRect& aRect )
+ {
+ aRect.iBr.iX=aCallRect_x;
+ aRect.iBr.iY=aCallRect_y;
+ aRect.iTl.iX=aCallRect_width+2*3*10;
+ aRect.iTl.iY=aCallRect_height+2*3*10;
+ }
+// End of File
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/securitydialogs/Autolock/src/AutolockDocument.cpp Wed Sep 01 12:19:59 2010 +0100
@@ -0,0 +1,75 @@
+/*
+* Copyright (c) 2002 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:
+*
+*/
+
+
+// INCLUDE FILES
+#include <apgwgnam.h>
+#include "AutolockDocument.h"
+#include "AutolockAppUiPS.h"
+
+// ================= MEMBER FUNCTIONS =======================
+//
+// ----------------------------------------------------
+// CAutolockDocument::ConstructL()
+// destructor.
+// ----------------------------------------------------
+//
+CAutolockDocument::~CAutolockDocument()
+ {
+ }
+// ----------------------------------------------------
+// CAutolockDocument::ConstructL()
+// Symbian OS default constructor can leave..
+// ----------------------------------------------------
+//
+void CAutolockDocument::ConstructL()
+ {
+ }
+// ----------------------------------------------------
+// CAutolockDocument::NewL()
+// Two-phased constructor.
+// ----------------------------------------------------
+//
+CAutolockDocument* CAutolockDocument::NewL(CEikApplication& aApp)
+ {
+ CAutolockDocument* self = new (ELeave) CAutolockDocument( aApp );
+ CleanupStack::PushL( self );
+ self->ConstructL();
+ CleanupStack::Pop();
+ return self;
+ }
+// ----------------------------------------------------
+// CAutolockDocument::CreateAppUiL()
+// constructs CAutolockAppUi
+// ----------------------------------------------------
+//
+CEikAppUi* CAutolockDocument::CreateAppUiL()
+ {
+ return new (ELeave) CAutolockAppUi;
+ }
+
+// ----------------------------------------------------
+// CAutolockDocument::UpdateTaskNameL()
+// Sets app hidden...
+// ----------------------------------------------------
+//
+void CAutolockDocument::UpdateTaskNameL( CApaWindowGroupName* aWgName )
+ {
+ CEikDocument::UpdateTaskNameL( aWgName );
+ aWgName->SetHidden( ETrue );
+ }
+// End of File
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/securitydialogs/Autolock/src/AutolockFpsStatusObserver.cpp Wed Sep 01 12:19:59 2010 +0100
@@ -0,0 +1,119 @@
+/*
+* Copyright (c) 2002 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:
+*
+*/
+
+#include <e32base.h>
+#include <e32debug.h>
+#include <AknCapServerDefs.h>
+#include <apgtask.h>
+#include "AutolockFpsStatusObserver.h"
+
+
+EXPORT_C CAutolockFpsStatusObserver* CAutolockFpsStatusObserver::NewL( MAutolockFpsStatusObserver* aObserver, RWsSession& aSession )
+ {
+ CAutolockFpsStatusObserver* self = new (ELeave) CAutolockFpsStatusObserver( aSession );
+ CleanupStack::PushL( self );
+ self->ConstructL( aObserver );
+ CleanupStack::Pop( self );
+ return self;
+ }
+
+void CAutolockFpsStatusObserver::ConstructL( MAutolockFpsStatusObserver* aObserver )
+ {
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(AUTOLOCK)CAutolockFpsStatusObserver::ConstructL") );
+ #endif
+const TUid KUidFpsCategory = {0x1020507E };
+
+// PnS key
+const TUint32 KFpsAuthenticationKey = 0x00000001;
+
+ TInt err = iFpsStatus.Attach( KUidFpsCategory, KFpsAuthenticationKey );
+ if ( err )
+ {
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(AUTOLOCK)ERROR: Attach failed, err %d"), err );
+ #endif
+ }
+ iObserver = aObserver;
+ CActiveScheduler::Add( this );
+ iFpsStatus.Subscribe( iStatus );
+ SetActive();
+ }
+
+CAutolockFpsStatusObserver::CAutolockFpsStatusObserver( RWsSession& aSession ) : CActive( EPriorityIdle ), iSession( aSession )
+ {
+ }
+
+CAutolockFpsStatusObserver::~CAutolockFpsStatusObserver()
+ {
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(AUTOLOCK)CAutolockFpsStatusObserver::~CAutolockFpsStatusObserver") );
+ #endif
+ Cancel();
+ iFpsStatus.Close();
+ }
+
+void CAutolockFpsStatusObserver::DoCancel()
+ {
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(AUTOLOCK)CAutolockFpsStatusObserver::DoCancel") );
+ #endif
+ iFpsStatus.Cancel();
+ }
+
+void CAutolockFpsStatusObserver::RunL()
+ {
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(AUTOLOCK)CAutolockFpsStatusObserver::RunL") );
+ #endif
+ iFpsStatus.Subscribe( iStatus );
+ SetActive();
+
+ TInt FpsStatus;
+ TInt err = iFpsStatus.Get( FpsStatus );
+ if( !err )
+ {
+ FpsStatusChangedL( FpsStatus );
+ }
+ }
+
+void CAutolockFpsStatusObserver::FpsStatusChangedL( TInt aFpsStatus )
+ {
+const TUint32 ESwipeValid = 0x00000001;
+ if( aFpsStatus == ESwipeValid )
+ {
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(AUTOLOCK)CAutolockFpsStatusObserver::FpsStatusChangedL => Fps opened"));
+ #endif
+ if( iObserver->DeviceLockStatus() )
+ {
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(AUTOLOCK)CAutolockFpsStatusObserver::FpsStatusChangedL => unlocking"));
+ #endif
+ iObserver->DeviceFpsLock(1);
+ }
+ else
+ {
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(AUTOLOCK)CAutolockFpsStatusObserver::FpsStatusChangedL => locking"));
+ #endif
+ iObserver->DeviceFpsLock(0);
+ }
+ }
+ }
+
+// End of File
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/securitydialogs/Autolock/src/AutolockGripStatusObserver.cpp Wed Sep 01 12:19:59 2010 +0100
@@ -0,0 +1,158 @@
+/*
+* Copyright (c) 2002 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:
+*
+*/
+
+#include <e32base.h>
+#include <e32debug.h>
+#include <AknCapServerDefs.h>
+#include <apgtask.h>
+#include "AutolockGripStatusObserver.h"
+#include "AutolockApp.h"
+#include "AutolockAppUiInterface.h"
+#include <aknkeylock.h>
+
+
+EXPORT_C CAutolockGripStatusObserver* CAutolockGripStatusObserver::NewL( MAutolockAppUiInterface* aObserver, RWsSession& aSession )
+ {
+ CAutolockGripStatusObserver* self = new (ELeave) CAutolockGripStatusObserver( aSession );
+ CleanupStack::PushL( self );
+ self->ConstructL( aObserver );
+ CleanupStack::Pop( self );
+ return self;
+ }
+
+void CAutolockGripStatusObserver::ConstructL( MAutolockAppUiInterface* aObserver )
+ {
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(AUTOLOCK)CAutolockGripStatusObserver::ConstructL") );
+ #endif
+ TInt err = iGripStatus.Attach( KPSUidHWRM, KHWRMGripStatus );
+ if ( err )
+ {
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(AUTOLOCK)ERROR: Attach failed, err %d"), err );
+ #endif
+ }
+ iObserver = aObserver;
+ CActiveScheduler::Add( this );
+ iGripStatus.Subscribe( iStatus );
+ SetActive();
+ }
+
+CAutolockGripStatusObserver::CAutolockGripStatusObserver( RWsSession& aSession ) : CActive( EPriorityIdle ), iSession( aSession )
+ {
+ }
+
+CAutolockGripStatusObserver::~CAutolockGripStatusObserver()
+ {
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(AUTOLOCK)CAutolockGripStatusObserver::~CAutolockGripStatusObserver") );
+ #endif
+ Cancel();
+ iGripStatus.Close();
+ }
+
+void CAutolockGripStatusObserver::DoCancel()
+ {
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(AUTOLOCK)CAutolockGripStatusObserver::DoCancel") );
+ #endif
+ iGripStatus.Cancel();
+ }
+
+void CAutolockGripStatusObserver::RunL()
+ {
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(AUTOLOCK)CAutolockGripStatusObserver::RunL") );
+ #endif
+ iGripStatus.Subscribe( iStatus );
+ SetActive();
+
+ TInt gripStatus;
+ TInt err = iGripStatus.Get( gripStatus );
+ if( !err )
+ {
+ GripStatusChangedL( gripStatus );
+ }
+ }
+
+void CAutolockGripStatusObserver::GripStatusChangedL( TInt aGripStatus )
+ {
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(AUTOLOCK)CAutolockGripStatusObserver::::GripStatusChangedL"));
+ #endif
+ if( aGripStatus == EPSHWRMGripOpen )
+ {
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(AUTOLOCK)CAutolockGripStatusObserver::::GripStatusChangedL => Grip opened"));
+ #endif
+ iObserver->ForceOrientation(0);
+ if( !iObserver->DeviceLockQueryStatus() && iObserver->DeviceLockStatus() )
+ {
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(AUTOLOCK)CAutolockGripStatusObserver::::GripStatusChangedL => send command"));
+ #endif
+ //Grip opened
+ TApaTaskList tasklist( iSession );
+ /* this is old code. It was changed to a new one, following a suggestion from the Slide-handling team
+ TApaTask capserver = tasklist.FindApp( KAknCapServerUid );
+ if( capserver.Exists() )
+ {
+ TKeyEvent key;
+ key.iCode = EKeyDevice0;
+ key.iModifiers = 0;
+ key.iRepeats = 0;
+ key.iScanCode = EStdKeyDevice0;
+ capserver.SendKey( key );
+ }
+ */
+ TApaTask capserver = tasklist.FindApp( KUidAutolock );
+ if( capserver.Exists() )
+ {
+ TKeyEvent key;
+ key.iCode = EKeyBell;
+ capserver.SendKey( key );
+ }
+ RAknKeylock2 keylock;
+ TInt error( keylock.Connect() );
+ if ( !error )
+ {
+ keylock.DisableWithoutNote();
+ keylock.Close();
+ }
+ }
+ }
+ else
+ {
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(AUTOLOCK)CAutolockGripStatusObserver::::GripStatusChangedL => Grip closed"));
+ #endif
+ iObserver->ForceOrientation(1);
+
+ //Grip closed
+ if( iObserver->DeviceLockQueryStatus() )
+ {
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(AUTOLOCK)CAutolockGripStatusObserver::::GripStatusChangedL => send key event"));
+ #endif
+ //the device lock query is on top
+ //generate cancel key event
+ iObserver->CancelDeviceLockQuery();
+ }
+ }
+ }
+
+// End of File
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/securitydialogs/Autolock/src/AutolockWait.cpp Wed Sep 01 12:19:59 2010 +0100
@@ -0,0 +1,168 @@
+/*
+* Copyright (c) 2002 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:
+*
+*
+*/
+
+
+
+#include <e32base.h>
+#include <eikenv.h>
+#include <eikappui.h>
+#include "AutolockWait.h"
+
+
+
+// ================= MEMBER FUNCTIONS =======================
+//
+// ----------------------------------------------------------
+// CWait::NewL()
+//
+// ----------------------------------------------------------
+//
+CWait* CWait::NewL()
+ {
+ CWait* self = new(ELeave) CWait();
+ CleanupStack::PushL(self);
+ self->ConstructL();
+ CleanupStack::Pop();
+ return self;
+ }
+//
+// ----------------------------------------------------------
+// CSystemLock::ConstructL()
+//
+// ----------------------------------------------------------
+//
+void CWait::ConstructL()
+ {
+ CActiveScheduler::Add(this);
+ }
+//
+// ----------------------------------------------------------
+// CWait::CWait()
+//
+// ----------------------------------------------------------
+//
+CWait::CWait() : CActive(0)
+ {
+ }
+//
+// ----------------------------------------------------------
+// CWait::~CWait()
+// Destructor
+// ----------------------------------------------------------
+//
+CWait::~CWait()
+ {
+ Cancel();
+ }
+//
+// ----------------------------------------------------------
+// CWait::StartWaitForRequest
+//
+// ----------------------------------------------------------
+//
+TInt CWait::WaitForRequestL()
+ {
+ CWaitAbsorbingControl* absorbing = CWaitAbsorbingControl::NewLC();
+ SetActive();
+ iWait.Start();
+ CleanupStack::PopAndDestroy(absorbing);
+ return iStatus.Int();
+ }
+//
+// ----------------------------------------------------------
+// CWait::RunL()
+//
+// ----------------------------------------------------------
+//
+void CWait::RunL()
+ {
+ if(iWait.IsStarted())
+ iWait.AsyncStop();
+ }
+//
+// ----------------------------------------------------------
+// CWait::DoCancel()
+// Cancels code request
+// ----------------------------------------------------------
+//
+void CWait::DoCancel()
+ {
+ if(iWait.IsStarted())
+ iWait.AsyncStop();
+ }
+
+//
+// ----------------------------------------------------------
+// CWait::SetRequestType
+// Sets active request type
+// ----------------------------------------------------------
+//
+void CWait::SetRequestType(TInt aRequestType)
+{
+ iRequestType = aRequestType;
+}
+
+//
+// ----------------------------------------------------------
+// CWait::GetRequestType
+// Gets active request type
+// ----------------------------------------------------------
+//
+TInt CWait::GetRequestType()
+{
+ return iRequestType;
+}
+
+//
+// class CWaitAbsorbingControl
+//
+CWaitAbsorbingControl::CWaitAbsorbingControl()
+ {
+ }
+
+CWaitAbsorbingControl::~CWaitAbsorbingControl()
+ {
+ if (iCoeEnv && iAppUi)
+ iAppUi->RemoveFromStack(this);
+ }
+
+CWaitAbsorbingControl* CWaitAbsorbingControl::NewLC()
+ {
+ CWaitAbsorbingControl* self= new(ELeave) CWaitAbsorbingControl();
+ CleanupStack::PushL(self);
+ self->ConstructL();
+ return self;
+ }
+
+void CWaitAbsorbingControl::ConstructL()
+ {
+ CreateWindowL();
+ SetExtent(TPoint(0,0), TSize(0,0));
+ ActivateL();
+ SetPointerCapture(ETrue);
+ ClaimPointerGrab(ETrue);
+ iAppUi=iEikonEnv->EikAppUi();
+ iAppUi->AddToStackL(this, ECoeStackPriorityEnvironmentFilter);
+ }
+
+TKeyResponse CWaitAbsorbingControl::OfferKeyEventL(const TKeyEvent& /*aKeyEvent*/,TEventCode /*aType*/)
+ {
+ return EKeyWasConsumed;
+ }
+
+// End of file
--- a/securitydialogs/Autolock/src/lockapp.hrh Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,96 +0,0 @@
-/*
-* Copyright (c) 2007 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: General application spesific enumeration values
- *
-*/
-
-
-#ifndef __LOCKAPP_HRH__
-#define __LOCKAPP_HRH__
-
-/**
- * LockApp panic codes
- *
- * @lib lockapp
- * @since 5.0
- * @author Joona Petrell
- * @author Tamas Koteles
- */
-enum TLockAppPanic
- {
- ELockPanicGeneral,
- ELockPanicIllegalMessage,
- ELockUnknownValue,
- ELockIllegalState,
- ELockPanicOutOfRange,
- ELockPanicObserverAlreadyExists,
- ELockPanicObserverNotFound,
- };
-
-/**
- * Three possible states of LockApp: unlocked, keyguard active, devicelock active
- *
- * @lib lockapp
- * @since 5.0
- * @author Joona Petrell
- * @author Tamas Koteles
- */
-enum TLockStatus
- {
- ELockNotActive = 0,
- EKeyguardActive,
- EDevicelockActive
- };
-
-/**
- * Three possible reason for devicelock: manual, remote, timer
- *
- * @lib lockapp
- * @since 5.0
- * @author Joona Petrell
- * @author Tamas Koteles
- */
-enum TDevicelockReason
- {
- EDevicelockManual = 1,
- EDevicelockRemote,
- EDevicelockTimer
- };
-
-/**
- * Bit-field representing screen saver status
- */
-const TUint KLockAppEnvScreenSaverOn = 1;
-
-/**
- * Bit-field representing phonecall status
- */
-const TUint KLockAppEnvPhonecallOngoing = 2;
-
-/**
- * Bit-field representing idle status
- */
-const TUint KLockAppEnvIdleOnForeground = 4;
-
-/**
- * Bit-field representing grip status
- */
-const TUint KLockAppEnvGrip = 8;
-
-/**
- * Bit-field representing FPS status
- */
-const TUint KLockAppEnvFPS = 0x10;
-
-#endif // __LOCKAPP_HRH__
--- a/securitydialogs/Autolock/src/main.cpp Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,70 +0,0 @@
-/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-*
-* This program is free software: you can redistribute it and/or modify
-* it under the terms of the GNU Lesser General Public License as published by
-* the Free Software Foundation, version 2.1 of the License.
-*
-* This program is distributed in the hope that it will be useful,
-* but WITHOUT ANY WARRANTY; without even the implied warranty of
-* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-* GNU Lesser General Public License for more details.
-*
-* You should have received a copy of the GNU Lesser General Public License
-* along with this program. If not,
-* see "http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html/".
-*
-* Description:
-*
-*/
-
-// #include "xqservicelog.h"
-#include <QDebug>
-
-#include <QApplication>
-#include "Autolock.h"
-#include "../PubSub/securityuisprivatepskeys.h"
-
-#include <hbapplication.h>
-#include <hbmainwindow.h>
-
-int main(int argc, char **argv)
-{
- // qInstallMsgHandler(XQSERVICEMESSAGEHANDLER);
- // XQSERVICE_DEBUG_PRINT(" ================== xxxx Autolock::main");
- qDebug() << "================== xxxx QApplication Autolock::main";
-
-
- // Need to check whether process is already running. This happens if it's started from Stater, and
- // before fully initialized, it's started by API through QtHighway
- TSecurityPolicy readPolicy(ECapabilityReadDeviceData);
- TSecurityPolicy writePolicy(ECapabilityWriteDeviceData);
- int ret = RProperty::Define(KPSUidSecurityUIs,
- KSecurityUIsLockInitiatorUID, RProperty::EInt, TSecurityPolicy(TSecurityPolicy::EAlwaysPass),
- writePolicy);
- qDebug() << "KSecurityUIsLockInitiatorUID ret=" << ret;
- int myInitiatorUID = 0;
- int err = RProperty::Get(KPSUidSecurityUIs, KSecurityUIsLockInitiatorUID, myInitiatorUID);
- qDebug() << "KSecurityUIsLockInitiatorUID err=" << err;
- qDebug() << "KSecurityUIsLockInitiatorUID myInitiatorUID=" << myInitiatorUID;
- err = RProperty::Set(KPSUidSecurityUIs, KSecurityUIsLockInitiatorUID, 0);
-
- // it takes about 3 seconds to start it, on device
- QApplication a( argc, argv );
- Autolock *cl = new Autolock();
- // qDebug() << " Autolock::main cl->show";
- // cl->show();
- // qDebug() << " Autolock::main cl->hide";
- cl->hide();
- // qDebug() << " Autolock::main cl->lower";
- cl->lower();
- qDebug() << " Autolock::main cl->lower";
- err = RProperty::Set(KPSUidSecurityUIs, KSecurityUIsLockInitiatorUID, 1);
- int rv = a.exec();
- qDebug() << " Autolock::main cl->exec";
- delete cl;
- qDebug() << " Autolock::main cl->delete";
- return rv;
-}
-
--- a/securitydialogs/SecUi/BWinsCw/SECUI_EKA2U.def Tue Aug 31 16:04:40 2010 +0300
+++ b/securitydialogs/SecUi/BWinsCw/SECUI_EKA2U.def Wed Sep 01 12:19:59 2010 +0100
@@ -46,27 +46,4 @@
?UnblockPinL@CManualSecuritySettings@@QAEHW4TPin@1@ABVTDesC16@@11@Z @ 45 NONAME ; int CManualSecuritySettings::UnblockPinL(enum CManualSecuritySettings::TPin, class TDesC16 const &, class TDesC16 const &, class TDesC16 const &)
?UnlockSimL@CManualSecuritySettings@@QAEHABVTDesC16@@0@Z @ 46 NONAME ; int CManualSecuritySettings::UnlockSimL(class TDesC16 const &, class TDesC16 const &)
?HandleEventL@CSecurityHandler@@QAEXW4TMobilePhoneSecurityEvent@RMobilePhone@@HAAH@Z @ 47 NONAME ; void CSecurityHandler::HandleEventL(enum RMobilePhone::TMobilePhoneSecurityEvent, int, int &)
- ?DisplayPermanentNoteL@CSecQueryUi@@QAEXABVTDesC16@@@Z @ 48 NONAME ; void CSecQueryUi::DisplayPermanentNoteL(class TDesC16 const &)
- ?DisplayErrorNoteL@CSecQueryUi@@QAEXABVTDesC16@@@Z @ 49 NONAME ; void CSecQueryUi::DisplayErrorNoteL(class TDesC16 const &)
- ?NewLC@CSecQueryUi@@SAPAV1@XZ @ 50 NONAME ; class CSecQueryUi * CSecQueryUi::NewLC(void)
- ?LaunchHelpL@CSecQueryUi@@QAEXABVTDesC16@@@Z @ 51 NONAME ; void CSecQueryUi::LaunchHelpL(class TDesC16 const &)
- ?ChangePin2ParamsL@CSecuritySettings@@QAEHV?$TBuf@$09@@0HAAVTDes16@@H@Z @ 52 NONAME ; int CSecuritySettings::ChangePin2ParamsL(class TBuf<10>, class TBuf<10>, int, class TDes16 &, int)
- ?InstallConfirmationQueryL@CSecQueryUi@@QAEHHAAV?$TBuf@$09@@@Z @ 53 NONAME ; int CSecQueryUi::InstallConfirmationQueryL(int, class TBuf<10> &)
- ?ChangePinParamsL@CSecuritySettings@@QAEHV?$TBuf@$09@@0HAAVTDes16@@H@Z @ 54 NONAME ; int CSecuritySettings::ChangePinParamsL(class TBuf<10>, class TBuf<10>, int, class TDes16 &, int)
- ?DisplayWarningNoteL@CSecQueryUi@@QAEXABVTDesC16@@@Z @ 55 NONAME ; void CSecQueryUi::DisplayWarningNoteL(class TDesC16 const &)
- ?DisplayInformationNoteL@CSecQueryUi@@QAEXABVTDesC16@@@Z @ 56 NONAME ; void CSecQueryUi::DisplayInformationNoteL(class TDesC16 const &)
- ?NewL@CSecQueryUi@@SAPAV1@XZ @ 57 NONAME ; class CSecQueryUi * CSecQueryUi::NewL(void)
- ?SecQueryDialog@CSecQueryUi@@QAEHABVTDesC16@@AAVTDes16@@HHH@Z @ 58 NONAME ; int CSecQueryUi::SecQueryDialog(class TDesC16 const &, class TDes16 &, int, int, int)
- ?ChangeUPinParamsL@CSecuritySettings@@QAEHV?$TBuf@$09@@0HAAVTDes16@@H@Z @ 59 NONAME ; int CSecuritySettings::ChangeUPinParamsL(class TBuf<10>, class TBuf<10>, int, class TDes16 &, int)
- ?CloseWaitNote@CSecQueryUi@@QAEXXZ @ 60 NONAME ; void CSecQueryUi::CloseWaitNote(void)
- ?UpdateProgressNoteValueL@CSecQueryUi@@QAEXH@Z @ 61 NONAME ; void CSecQueryUi::UpdateProgressNoteValueL(int)
- ?DisplayProgressNoteL@CSecQueryUi@@QAEXABVTDesC16@@H@Z @ 62 NONAME ; void CSecQueryUi::DisplayProgressNoteL(class TDesC16 const &, int)
- ?DisplayWaitNoteL@CSecQueryUi@@QAEXABVTDesC16@@AAVTRequestStatus@@@Z @ 63 NONAME ; void CSecQueryUi::DisplayWaitNoteL(class TDesC16 const &, class TRequestStatus &)
- ?ChangePinRequestParamsL@CSecuritySettings@@QAEHHV?$TBuf@$09@@HAAVTDes16@@H@Z @ 64 NONAME ; int CSecuritySettings::ChangePinRequestParamsL(int, class TBuf<10>, int, class TDes16 &, int)
- ?ChangeSecCodeParamsL@CSecuritySettings@@QAEHV?$TBuf@$09@@0HAAVTDes16@@H@Z @ 65 NONAME ; int CSecuritySettings::ChangeSecCodeParamsL(class TBuf<10>, class TBuf<10>, int, class TDes16 &, int)
- ?CloseProgressNoteL@CSecQueryUi@@QAEXXZ @ 66 NONAME ; void CSecQueryUi::CloseProgressNoteL(void)
- ?ClosePermanentNote@CSecQueryUi@@QAEXXZ @ 67 NONAME ; void CSecQueryUi::ClosePermanentNote(void)
- ?ChangeAutoLockPeriodParamsL@CSecuritySettings@@QAEHHV?$TBuf@$09@@HAAVTDes16@@H@Z @ 68 NONAME ; int CSecuritySettings::ChangeAutoLockPeriodParamsL(int, class TBuf<10>, int, class TDes16 &, int)
- ?LaunchHelpL@CSecQueryUi@@QAEXABVTDesC16@@ABVTUid@@@Z @ 69 NONAME ; void CSecQueryUi::LaunchHelpL(class TDesC16 const &, class TUid const &)
- ?AskSecCodeParamsL@CSecuritySettings@@QAEHAAV?$TBuf@$09@@HAAVTDes16@@H@Z @ 70 NONAME ; int CSecuritySettings::AskSecCodeParamsL(class TBuf<10> &, int, class TDes16 &, int)
--- a/securitydialogs/SecUi/EABI/Secuiu.def Tue Aug 31 16:04:40 2010 +0300
+++ b/securitydialogs/SecUi/EABI/Secuiu.def Wed Sep 01 12:19:59 2010 +0100
@@ -75,29 +75,4 @@
_ZTV23CManualSecuritySettings @ 74 NONAME ; #<VT>#
_ZTV5CWait @ 75 NONAME ; #<VT>#
_ZN16CSecurityHandler12HandleEventLEN12RMobilePhone25TMobilePhoneSecurityEventEiRi @ 76 NONAME
- _ZN11CSecQueryUi11LaunchHelpLERK7TDesC16 @ 77 NONAME
- _ZN11CSecQueryUi11LaunchHelpLERK7TDesC16RK4TUid @ 78 NONAME
- _ZN11CSecQueryUi13CloseWaitNoteEv @ 79 NONAME
- _ZN11CSecQueryUi14SecQueryDialogERK7TDesC16R6TDes16iii @ 80 NONAME
- _ZN11CSecQueryUi16DisplayWaitNoteLERK7TDesC16R14TRequestStatus @ 81 NONAME
- _ZN11CSecQueryUi17DisplayErrorNoteLERK7TDesC16 @ 82 NONAME
- _ZN11CSecQueryUi18ClosePermanentNoteEv @ 83 NONAME
- _ZN11CSecQueryUi18CloseProgressNoteLEv @ 84 NONAME
- _ZN11CSecQueryUi19DisplayWarningNoteLERK7TDesC16 @ 85 NONAME
- _ZN11CSecQueryUi20DisplayProgressNoteLERK7TDesC16i @ 86 NONAME
- _ZN11CSecQueryUi21DisplayPermanentNoteLERK7TDesC16 @ 87 NONAME
- _ZN11CSecQueryUi23DisplayInformationNoteLERK7TDesC16 @ 88 NONAME
- _ZN11CSecQueryUi24UpdateProgressNoteValueLEi @ 89 NONAME
- _ZN11CSecQueryUi25InstallConfirmationQueryLEiR4TBufILi10EE @ 90 NONAME
- _ZN11CSecQueryUi4NewLEv @ 91 NONAME
- _ZN11CSecQueryUi5NewLCEv @ 92 NONAME
- _ZN17CSecuritySettings16ChangePinParamsLE4TBufILi10EES1_iR6TDes16i @ 93 NONAME
- _ZN17CSecuritySettings17ChangePin2ParamsLE4TBufILi10EES1_iR6TDes16i @ 94 NONAME
- _ZN17CSecuritySettings17ChangeUPinParamsLE4TBufILi10EES1_iR6TDes16i @ 95 NONAME
- _ZN17CSecuritySettings20ChangeSecCodeParamsLE4TBufILi10EES1_iR6TDes16i @ 96 NONAME
- _ZN17CSecuritySettings23ChangePinRequestParamsLEi4TBufILi10EEiR6TDes16i @ 97 NONAME
- _ZN17CSecuritySettings27ChangeAutoLockPeriodParamsLEi4TBufILi10EEiR6TDes16i @ 98 NONAME
- _ZTI11CSecQueryUi @ 99 NONAME
- _ZTV11CSecQueryUi @ 100 NONAME
- _ZN17CSecuritySettings17AskSecCodeParamsLER4TBufILi10EEiR6TDes16i @ 101 NONAME
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/securitydialogs/SecUi/GSSimSecPlugin/Data/10207438.rss Wed Sep 01 12:19:59 2010 +0100
@@ -0,0 +1,46 @@
+/*
+* Copyright (c) 2005 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: ECOM plugin resource file for Device & SIM Security plugin.
+*
+*/
+
+// INCLUDES
+#include <ecom/registryinfo.rh>
+
+
+RESOURCE REGISTRY_INFO theInfo
+ {
+ dll_uid = 0x10207438;
+ interfaces =
+ {
+ INTERFACE_INFO
+ {
+ interface_uid = 0x10207236;
+ implementations =
+ {
+ IMPLEMENTATION_INFO
+ {
+ implementation_uid = 0x10207439;
+ version_no = 1;
+ display_name = "Device & SIM Security Plugin";
+ default_data = "0x1020743A";
+ opaque_data = "0";//Order number
+ }
+ };
+ }
+ };
+ }
+
+// End of File
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/securitydialogs/SecUi/GSSimSecPlugin/Data/GSSimSecPluginRsc.rss Wed Sep 01 12:19:59 2010 +0100
@@ -0,0 +1,609 @@
+/*
+* Copyright (c) 2005 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: Resource file for General Settings
+*
+*/
+
+
+
+// RESOURCE IDENTIFIER
+NAME SIMS // 4 letter ID
+
+// INCLUDES
+#include <gssecurity.loc>
+#include "GSSimSecPlugin.hrh"
+#include "GSSimSecPlugin.rh"
+
+#include <avkon.loc> // Avkon localized strings
+#include <avkon.mbg>
+#include <avkon.rsg>
+#include <EIKCORE.rsg>
+#include <uikon.rh>
+#include <eikon.rh>
+#include <avkon.rh>
+
+// CONSTANTS
+
+// RESOURCE DEFINITIONS
+
+RESOURCE RSS_SIGNATURE
+ {
+ }
+
+
+
+//----------------------------------------------------
+// r_gs_sim_security_view_caption
+//
+// Security view caption for plugin
+//----------------------------------------------------
+//
+RESOURCE TBUF r_gs_sim_security_view_caption
+ {
+ buf = qtn_set_dev_sim_security;
+ }
+
+
+//----------------------------------------------------
+//
+// r_gs_sim_security_view_title
+// Security view title
+//
+//----------------------------------------------------
+//
+
+RESOURCE TITLE_PANE r_gs_sim_security_view_title
+ {
+ txt = qtn_set_title_security_phone_and_sim;
+ }
+
+//----------------------------------------------------
+//
+// r_gs_sim_security_softkeys_options_back__change
+// SIM security view's CBA resource
+//
+//----------------------------------------------------
+//
+RESOURCE CBA r_gs_sim_security_softkeys_options_back__change
+ {
+ buttons =
+ {
+ CBA_BUTTON {id=EAknSoftkeyOptions; txt = text_softkey_option;},
+ CBA_BUTTON {id=EAknSoftkeyBack; txt = text_softkey_back; },
+ CBA_BUTTON {id=EAknSoftkeyChange; txt= qtn_msk_change; }
+ };
+ }
+
+//----------------------------------------------------
+//
+// r_gs_sim_security_view
+// SIM security view's menu
+//
+//----------------------------------------------------
+//
+RESOURCE AVKON_VIEW r_gs_sim_security_view
+ {
+ menubar = r_gs_sim_sec_menubar_change_exit;
+ cba = r_gs_sim_security_softkeys_options_back__change;
+ }
+
+// -----------------------------------------------------------------------------
+//
+// r_gs_menubar_change_exit
+// GS menu with 'change' and 'exit' items.
+//
+// -----------------------------------------------------------------------------
+//
+RESOURCE MENU_BAR r_gs_sim_sec_menubar_change_exit
+ {
+ titles =
+ {
+ MENU_TITLE
+ {
+ menu_pane = r_gs_sim_sec_menu_item_exit;
+ },
+ MENU_TITLE
+ {
+ menu_pane = r_gs_sim_sec_menu_item_help;
+ },
+ MENU_TITLE
+ {
+ menu_pane = r_gs_sim_sec_menu_item_change;
+ }
+ };
+ }
+
+// -----------------------------------------------------------------------------
+//
+// r_gs_menu_item_exit
+//
+// -----------------------------------------------------------------------------
+//
+RESOURCE MENU_PANE r_gs_sim_sec_menu_item_exit
+ {
+ items =
+ {
+ MENU_ITEM
+ {
+ command = EAknCmdExit;
+ txt = qtn_options_exit;
+ }
+ };
+ }
+
+
+// -----------------------------------------------------------------------------
+//
+// r_gs_menu_item_change
+// Change item.
+//
+// -----------------------------------------------------------------------------
+//
+RESOURCE MENU_PANE r_gs_sim_sec_menu_item_change
+ {
+ items =
+ {
+ MENU_ITEM
+ {
+ flags = EEikMenuItemAction;
+ command = EGSCmdAppChange;
+ txt = qtn_options_change;
+ }
+ };
+ }
+
+// -----------------------------------------------------------------------------
+//
+// r_gs_menu_item_help
+// Change item.
+//
+// -----------------------------------------------------------------------------
+//
+RESOURCE MENU_PANE r_gs_sim_sec_menu_item_help
+ {
+ items =
+ {
+ MENU_ITEM
+ {
+ command = EAknCmdHelp;
+ txt = qtn_options_help;
+ }
+ };
+ }
+
+//----------------------------------------------------
+//
+// r_sim_security_lbx
+// SIM security view's list box items
+//
+//----------------------------------------------------
+//
+RESOURCE SIM_SEC_FEATURE_ARRAY r_sim_security_lbx
+ {
+ items =
+ {
+ SIM_SEC_FEATURE
+ {
+ txt = " \t"qtn_set_code_in_use"\t\t";
+ item = EGSSettIdCodeInUse;
+ type = EGSListBoxItemTypeIsDynamic;
+ },
+ SIM_SEC_FEATURE
+ {
+ txt = " \t"qtn_set_upin_code_req"\t\t";
+ item = EGSSettIdUpinRequest;
+ type = EGSListBoxItemTypeIsDynamic;
+ },
+ SIM_SEC_FEATURE
+ {
+ txt = " \t"text_pin_code_cntrl"\t\t";
+ item = EGSSettIdPinRequest;
+ type = EGSListBoxItemTypeIsDynamic;
+ },
+ SIM_SEC_FEATURE
+ {
+ txt = " \t"text_pin_change"\t\t";
+ item = EGSSettIdPinCode;
+ type = EGSListBoxItemTypeIsDynamic;
+ },
+ SIM_SEC_FEATURE
+ {
+ txt = " \t"qtn_set_upin_code"\t\t";
+ item = EGSSettIdUpinCode;
+ type = EGSListBoxItemTypeIsDynamic;
+ },
+ SIM_SEC_FEATURE
+ {
+ txt = " \t"text_pin2_change"\t\t";
+ item = EGSSettIdPin2Code;
+ },
+ SIM_SEC_FEATURE
+ {
+ txt = " \t"qtn_set_autolock"\t\t";
+ item = EGSSettIdAutolock;
+ },
+ SIM_SEC_FEATURE
+ {
+ txt = " \t"qtn_set_sec_code"\t\t";
+ item = EGSSettIdSecurityCode;
+ },
+ SIM_SEC_FEATURE
+ {
+ txt = " \t"qtn_set_sim_change_sec"\t\t";
+ item = EGSSettIdSimChange;
+ },
+
+#ifdef RD_REMOTELOCK
+ SIM_SEC_FEATURE
+ {
+ txt = " \t"qtn_set_remotelock_status"\t\t";
+ item = EGSSettIdRemoteLock;
+ },
+#endif //RD_REMOTELOCK
+
+ SIM_SEC_FEATURE
+ {
+ txt = " \t"text_closed_user_groups"\t\t";
+ item = EGSSettIdClosedUserGroup;
+ type = EGSListBoxItemTypeIsDynamic;
+ },
+ SIM_SEC_FEATURE
+ {
+ txt = " \t"text_simatk_setting"\t\t";
+ item = EGSSettIdSatOperations;
+ type = EGSListBoxItemTypeIsDynamic;
+ },
+ SIM_SEC_FEATURE
+ {
+ txt = " \t"qtn_op_set_trusted_prov_server"\t\t ";
+ item = EGSSettIdTPServer;
+ type = EGSListBoxItemTypeIsDynamic;
+ }
+ };
+}
+
+//----------------------------------------------------
+//
+// r_autolock_array
+// Autolock array items
+//
+//----------------------------------------------------
+//
+RESOURCE ARRAY r_autolock_array
+ {
+ items =
+ {
+ LBUF
+ {
+ txt = qtn_set_autolock_off;
+ },
+ LBUF
+ {
+ txt = qtn_set_autolock_min_one;
+ },
+ LBUF
+ {
+ txt = qtn_set_autolock_value_min;
+ }
+ };
+ }
+
+#ifdef RD_REMOTELOCK
+//----------------------------------------------------
+//
+// r_remotelock_array
+// Remote Lock status (on/off) array items
+//
+//----------------------------------------------------
+//
+RESOURCE ARRAY r_remotelock_array
+ {
+ items =
+ {
+ LBUF
+ {
+ txt = qtn_set_remotelock_on;
+ },
+ LBUF
+ {
+ txt = qtn_set_remotelock_off;
+ }
+ };
+ }
+#endif // RD_REMOTELOCK
+
+//----------------------------------------------------
+//
+// r_pin_array
+// PIN array items
+//
+//----------------------------------------------------
+//
+RESOURCE ARRAY r_pin_array
+ {
+ items =
+ {
+ LBUF
+ {
+ txt = text_pin_code_on;
+ },
+ LBUF
+ {
+ txt = text_pin_code_off;
+ }
+ };
+ }
+
+//----------------------------------------------------
+//
+// r_upin_array
+// UPIN array items
+//
+//----------------------------------------------------
+//
+RESOURCE ARRAY r_upin_array
+ {
+ items =
+ {
+ LBUF
+ {
+ txt = text_pin_code_on;
+ },
+ LBUF
+ {
+ txt = text_pin_code_off;
+ }
+ };
+ }
+
+//----------------------------------------------------
+//
+// r_code_array
+// Code in use array items
+//
+//----------------------------------------------------
+//
+RESOURCE ARRAY r_code_array
+ {
+ items =
+ {
+ LBUF
+ {
+ txt = qtn_set_pin;
+ },
+ LBUF
+ {
+ txt = qtn_set_upin;
+ }
+ };
+ }
+
+
+//----------------------------------------------------
+//
+// r_security_array
+// Security array items
+//
+//----------------------------------------------------
+//
+RESOURCE ARRAY r_security_array
+ {
+ items =
+ {
+ LBUF
+ {
+ txt = qtn_set_sim_change_sec_on;
+ },
+ LBUF
+ {
+ txt = qtn_set_sim_change_sec_off;
+ }
+ };
+ }
+
+
+//----------------------------------------------------
+//
+// r_sat_array
+// SAT array items
+//
+//----------------------------------------------------
+//
+RESOURCE ARRAY r_sat_array
+ {
+ items =
+ {
+ LBUF
+ {
+ txt = text_simatk_notes_off;
+ },
+ LBUF
+ {
+ txt = text_simatk_notes_on;
+ }
+ };
+ }
+
+//----------------------------------------------------
+//
+// r_cug_network_default
+//
+//----------------------------------------------------
+//
+RESOURCE TBUF r_cug_network_default { buf = text_cug_default; }
+
+//----------------------------------------------------
+//
+// r_cug_on
+//
+//----------------------------------------------------
+//
+RESOURCE TBUF r_cug_on { buf = text_cug_group; }
+
+//----------------------------------------------------
+//
+// r_cug_off
+//
+//----------------------------------------------------
+//
+RESOURCE TBUF r_cug_off { buf = text_cug_suppress; }
+
+//----------------------------------------------------
+//
+// r_cug_index
+// CUG Index dialog resource
+//
+//----------------------------------------------------
+//
+RESOURCE DIALOG r_cug_index
+ {
+ flags=EGeneralQueryFlags;
+ buttons = R_AVKON_SOFTKEYS_OK_CANCEL__OK;
+ items =
+ {
+ DLG_LINE
+ {
+ type=EAknCtQuery;
+ id=EGeneralQuery;
+ control= AVKON_DATA_QUERY
+ {
+ layout = ENumberLayout;
+ label = text_give_group_number;
+ control = AVKON_INTEGER_EDWIN
+ {
+ maxlength = 5;
+ min=0;
+ max=99999;
+ };
+
+ };
+ }
+ };
+ }
+
+//----------------------------------------------------
+//
+// r_cug_index_error_note
+// CUG Index error note dialog resource
+//
+//----------------------------------------------------
+//
+RESOURCE DIALOG r_cug_index_error_note
+ {
+ flags = EEikDialogFlagNoDrag | EEikDialogFlagNoTitleBar |
+ EEikDialogFlagCbaButtons | EEikDialogFlagWait;
+ buttons = R_AVKON_SOFTKEYS_EMPTY;
+ items =
+ {
+ DLG_LINE
+ {
+ type = EAknCtNote;
+ id = ECugIndexErrorNote;
+ control = AVKON_NOTE
+ {
+ layout = EGeneralLayout;
+ singular_label = text_cug_error;
+ animation = R_QGN_NOTE_ERROR_ANIM;
+ };
+ }
+ };
+ }
+
+
+//----------------------------------------------------
+//
+// r_cug_setting_page
+// CUG setting page dialog resource
+//
+//----------------------------------------------------
+//
+RESOURCE AVKON_SETTING_PAGE r_cug_setting_page
+ {
+ label= text_closed_user_groups;
+ softkey_resource = R_AVKON_SOFTKEYS_OK_CANCEL__OK;
+ type = EAknSetListBox;
+ editor_resource_id= r_cug_listbox;
+ }
+
+//----------------------------------------------------
+//
+// r_cug_listbox
+// CUG list box resource
+//
+//----------------------------------------------------
+//
+RESOURCE LISTBOX r_cug_listbox
+ {
+ array_id = r_cug_lbx;
+ flags = EEikListBoxMultipleSelection;
+ }
+
+
+//----------------------------------------------------
+//
+// r_cug_lbx
+// CUG list box items
+//
+//----------------------------------------------------
+//
+RESOURCE ARRAY r_cug_lbx
+ {
+ items =
+ {
+ LBUF
+ {
+ txt = text_cug_default;
+ },
+ LBUF
+ {
+ txt = text_cug_group;
+ },
+ LBUF
+ {
+ txt = text_cug_suppress;
+ }
+
+ };
+ }
+
+
+//----------------------------------------------------
+//
+// r_sat_setting_page
+// SAT setting page resource
+//
+//----------------------------------------------------
+//
+RESOURCE AVKON_SETTING_PAGE r_sat_setting_page
+ {
+ label= text_simatk_setting;
+ softkey_resource = R_AVKON_SOFTKEYS_OK_CANCEL__OK;
+ type = EAknSetListBox;
+ editor_resource_id= r_sat_listbox;
+ }
+
+//----------------------------------------------------
+//
+// r_sat_listbox
+// SAT list box resource
+//
+//----------------------------------------------------
+//
+RESOURCE LISTBOX r_sat_listbox
+ {
+ array_id = r_sat_array;
+ flags = EEikListBoxMultipleSelection;
+ }
+
+//End of File
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/securitydialogs/SecUi/GSSimSecPlugin/GSSimSecPlugin.mmp Wed Sep 01 12:19:59 2010 +0100
@@ -0,0 +1,91 @@
+/*
+* Copyright (c) 2005 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: Project specification file.
+*
+*/
+
+#include <platform_paths.hrh>
+
+#include <data_caging_paths.hrh> // For RESOURCE_FILES_DIR
+
+CAPABILITY CAP_ECOM_PLUGIN
+TARGET gssimsecplugin.dll
+TARGETTYPE PLUGIN
+UID 0x10009D8D 0x10207438
+VENDORID VID_DEFAULT
+
+
+SOURCEPATH Src
+SOURCE GSSimSecPluginImplementationTable.cpp
+SOURCE GSSimSecPlugin.cpp
+SOURCE GSSimSecPluginContainer.cpp
+SOURCE GSSimSecPluginModel.cpp
+SOURCE GSPubSubsListener.cpp
+
+
+//User include paths
+USERINCLUDE Inc
+USERINCLUDE Data // For *.rh
+
+//System include paths
+APP_LAYER_SYSTEMINCLUDE
+
+
+SOURCEPATH Data
+
+START RESOURCE 10207438.rss
+TARGET gssimsecplugin.rsc
+END
+
+START RESOURCE GSSimSecPluginRsc.rss
+HEADER
+TARGETPATH RESOURCE_FILES_DIR
+LANGUAGE_IDS
+END
+
+
+
+LIBRARY euser.lib
+LIBRARY ecom.lib
+LIBRARY efsrv.lib
+LIBRARY avkon.lib
+LIBRARY bafl.lib
+LIBRARY cone.lib
+LIBRARY eikcoctl.lib
+LIBRARY eikcore.lib
+LIBRARY egul.lib
+LIBRARY eikdlg.lib // eikon dialogs
+LIBRARY flogger.lib // File logging
+LIBRARY commonengine.lib // For RConeResourceLoader
+LIBRARY featmgr.lib // Feature manager
+LIBRARY centralrepository.lib
+LIBRARY aknskinsrv.lib // for enhanced skinning
+LIBRARY aknskins.lib // for enhanced skinning
+LIBRARY secui.lib // security
+LIBRARY etelmm.lib // security
+LIBRARY sssettings.lib // ss settings
+LIBRARY hlplch.lib // for "Help" options menu
+LIBRARY gsecomplugin.lib
+LIBRARY gsframework.lib // For base classes
+LIBRARY gslistbox.lib // For CGSListBoxItemTextArray
+
+LIBRARY scpclient.lib
+
+#ifdef RD_REMOTELOCK
+LIBRARY rlocksettings.lib
+#endif
+
+SMPSAFE
+
+// End of File
\ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/securitydialogs/SecUi/GSSimSecPlugin/Inc/GSPubSubsListener.h Wed Sep 01 12:19:59 2010 +0100
@@ -0,0 +1,129 @@
+/*
+* Copyright (c) 2005 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: Listener for Publish and subscribe data.
+*
+*/
+
+
+#ifndef GSPUBSUBSLISTENER_H
+#define GSPUBSUBSLISTENER_H
+
+// INCLUDES
+#include <e32base.h>
+#include <e32std.h>
+#include <e32property.h>
+
+// FORWARD DECLARATIONS
+class MGSSettingPSObserver;
+
+// CLASS DECLARATION
+
+/**
+* RProperty poller.
+*
+* @lib gs.lib
+* @since Series 60 3.0
+*/
+NONSHARABLE_CLASS( CGSPubSubsListener ) : public CActive
+ {
+ public: // Constructors and destructor
+
+ /**
+ * Two-phased constructor.
+ * @param aUid the Uid to use
+ * @param aKey item's key
+ * @param aObserver callback interface for notification
+ * @return instance of CGSPubSubsListener
+ */
+ static CGSPubSubsListener* NewL( const TUid aUid, const TInt aKey,
+ MGSSettingPSObserver* aObserver );
+
+ /**
+ * Destructor.
+ */
+ virtual ~CGSPubSubsListener();
+
+ public: // New functions.
+
+ /**
+ * Gets integer value from P & S.
+ * @param aVal a value in return
+ * @return error code
+ */
+ TInt Get( TInt& aVal );
+
+ /**
+ * Gets 8 bit string value from P&S.
+ * @param aVal a value in return
+ * @return error code
+ */
+ TInt Get( TDes8& aVal );
+
+ /**
+ * Gets 16 bit descriptor value from P&S.
+ * @param aVal a value in return
+ * @return error code
+ */
+ TInt Get( TDes16& aVal );
+
+ private: // From CActive.
+
+ /** @see CActive::RunL */
+ virtual void RunL();
+
+ /** @see CActive::Cancel */
+ virtual void DoCancel();
+
+ /** @see CActive::RunError */
+ virtual TInt RunError( TInt aError );
+
+ /**
+ * Starts the listening (RunL).
+ */
+ void StartListening();
+
+ private:
+
+ /**
+ * C++ default constructor.
+ * @param aUid the Uid to use
+ * @param aKey item's key
+ * @param aObserver callback interface for notification
+ */
+ CGSPubSubsListener( const TUid aUid, TInt aKey,
+ MGSSettingPSObserver* aObserver );
+
+ /**
+ * By default Symbian 2nd phase constructor is private.
+ */
+ void ConstructL();
+
+ private: // Data
+
+ // UID of the monitored item.
+ TUid iUid;
+
+ // ID of the monitored item.
+ TInt iId;
+
+ // Property to subscribe to.
+ RProperty iProperty;
+
+ // The notification interface.
+ MGSSettingPSObserver* iCallback;
+ };
+
+#endif // GSPUBSUBSLISTENER_H
+
+// End of File
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/securitydialogs/SecUi/GSSimSecPlugin/Inc/GSSimSecPlugin.h Wed Sep 01 12:19:59 2010 +0100
@@ -0,0 +1,219 @@
+/*
+* Copyright (c) 2005 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: View for Device & SIM security plug-in.
+*
+*/
+
+
+#ifndef GSSIMSECPLUGIN_H
+#define GSSIMSECPLUGIN_H
+
+// INCLUDES
+#include "GSSimSecPluginContainer.h"
+#include "GSSimSecPluginModel.h"
+#include "MGSSettingPSObserver.h"
+#include "GSPubSubsListener.h"
+
+#include <aknsettingpage.h>
+#include <ConeResLoader.h>
+#include <gsplugininterface.h>
+#include <gsfwviewuids.h>
+#include <gsbaseview.h>
+#include <secuisecuritysettings.h>
+#include <RSSSettings.h>
+
+// CONSTANTS
+const TInt KMaxStringLength = 80;
+const TUid KGSSimSecPluginUid = { 0x10207438 };
+
+// MACROS
+
+// DATA TYPES
+
+// FUNCTION PROTOTYPES
+
+// FORWARD DECLARATIONS
+class CAknViewAppUi;
+class CGSSimSecPluginContainer;
+
+
+// CLASS DECLARATION
+
+/**
+* CGSSimSecPlugin view class
+*
+* View class for Sim Security sub-folder
+*/
+class CGSSimSecPlugin : public CGSBaseView,
+ private MGSSettingPSObserver
+ {
+ public: // Constructors and destructor
+
+ /**
+ * Symbian OS two-phased constructor
+ * @return GS sim & device security view.
+ */
+ static CGSSimSecPlugin* NewL( TAny* aInitParams );
+
+ /**
+ * C++ default constructor.
+ */
+ CGSSimSecPlugin();
+
+ /**
+ * Symbian OS default constructor.
+ */
+ void ConstructL();
+
+ /**
+ * Destructor.
+ */
+ ~CGSSimSecPlugin();
+
+ public: // Functions from base classes
+
+ /**
+ * Returns view id.
+ * @return TUid.
+ */
+ TUid Id() const;
+
+ /**
+ * Handles commands.
+ * @param aCommand Command to be handled.
+ *
+ */
+ void HandleCommandL( TInt aCommand );
+
+ public: //new
+
+ /**
+ * Updates listbox's item's value.
+ * @param aItemId An item which is updated.
+ *
+ */
+ void UpdateListBoxL( TInt aItemId );
+
+ //From CGSBaseView
+ void HandleResourceChangeL( TInt aType );
+
+ public: // From CGSPluginInterface
+
+ /**
+ * @see CGSPluginInterface header file.
+ */
+ void GetCaptionL( TDes& aCaption ) const;
+
+ /**
+ * @see CGSPluginInterface header file.
+ */
+ TInt PluginProviderCategory() const;
+
+ /**
+ * @see CGSPluginInterface header file.
+ */
+ TBool Visible() const;
+
+ protected: // From MEikMenuObserver
+
+ void DynInitMenuPaneL( TInt aResourceId, CEikMenuPane* aMenuPane );
+
+ private: // from CAknView
+ /**
+ * Activates the view.
+ * @param aPrevViewId ID of previous view
+ * @param aCustomMessageId customized message ID
+ * @param aCustomMessage sutomized message payload
+ */
+ void DoActivateL( const TVwsViewId& aPrevViewId,
+ TUid aCustomMessageId,
+ const TDesC8& aCustomMessage );
+
+ private: // from CGSBaseView
+
+ void NewContainerL();
+
+ /**
+ * From CGSBaseView, handles list box selections.
+ *
+ */
+ void HandleListBoxSelectionL();
+
+ private:
+ /**
+ * Callback from MGSSettingPSObserver
+ */
+ void HandleNotifyPSL( const TUid aUid, const TInt& aKey,
+ const TRequestStatus& aStatus );
+
+ private: //new
+
+ /**
+ * Sets Autolock period
+ *
+ */
+ void SetAutolockTimeL( TInt aPeriod );
+
+ /**
+ * Set sat operations value (on/off).
+ *
+ */
+
+ void SetSatOperationsL();
+
+ /**
+ * Set sat operations value with setting page(on/off).
+ *
+ */
+ void SetSatWithSettingPageL();
+
+ /**
+ * Shows closed user group index query
+ * @param aCugIndex Current Cug index
+ * @param aCugDefault Default CUG index
+ * @return TInt (query result)
+ */
+ TInt CugIndexQueryL( TInt& aCugIndex, TInt& aCugDefault );
+
+ /**
+ * Set closed user group setting
+ *
+ */
+ void CugModeL();
+
+ /**
+ * Get CGSSimSecPlugin's ccontainer.
+ */
+ CGSSimSecPluginContainer* Container();
+
+
+ TInt SetRemoteLockStatusL( TInt aAutoLockPeriod );
+
+ private: // Data
+ //for CUG settings
+ RSSSettings iCugSettings;
+ //to launch SecUI
+ CSecuritySettings* iSecurity;
+ //plugin model.
+ CGSSimSecPluginModel* iModel;
+ //resource loader
+ RConeResourceLoader iResourceLoader;
+ //PubSub object for BT SAP state
+ CGSPubSubsListener* iBtSapListener;
+
+ };
+
+#endif //GSSIMSECPLUGIN_H
+
+// End of File
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/securitydialogs/SecUi/GSSimSecPlugin/Inc/GSSimSecPlugin.hrh Wed Sep 01 12:19:59 2010 +0100
@@ -0,0 +1,79 @@
+/*
+* Copyright (c) 2002 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: contains common definitions for menu id:s
+*
+*/
+
+
+#ifndef GSSIMSECPLUGIN_HRH
+#define GSSIMSECPLUGIN_HRH
+
+// Data query max length
+#define KGSMaxDataLength 21
+
+enum TSimSecMenuCommands
+ {
+ EGSCmdAppOpen = 1,
+ EGSCmdAppHelp,
+ EGSCmdAppChange,
+ EAppCmdChange
+ };
+
+enum TCugPopupIndex
+ {
+ EGSCugNetworkDefault = 0,
+ EGSCugOn = 1,
+ EGSCugOff = 2
+ };
+
+enum TGSNotes
+ {
+ EPasswordErrorNote,
+ EPasswordChangedNote,
+ ECugIndexErrorNote
+ };
+
+
+// Device & SIM security
+enum {
+ EGSSettIdPinRequest,
+ EGSSettIdPinCode,
+ EGSSettIdPin2Code,
+ EGSSettIdAutolock,
+ EGSSettIdSecurityCode,
+ EGSSettIdSimChange,
+ EGSSettIdClosedUserGroup,
+ EGSSettIdSatOperations,
+ EGSSettIdTPServer,
+ EGSSettIdUpinRequest,
+ EGSSettIdCodeInUse,
+ EGSSettIdUpinCode,
+ EGSSettIdDevAndSim,
+ EGSSettIdCertManUi,
+ EGSSettIdWlanEapPlugins,
+ EGSSettIdWimSecurity,
+ EGSSettIdTransTracking,
+ EGSSettIdAutoKeyguard,
+ EGSSettIdRemoteLock
+ };
+
+enum TGSListBoxItemVisibility
+ {
+ EGSListBoxItemTypeIsAlwaysVisible = 0,
+ EGSListBoxItemTypeIsDynamic
+ };
+#endif //GSSIMSECPLUGIN_HRH
+
+//End of File
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/securitydialogs/SecUi/GSSimSecPlugin/Inc/GSSimSecPlugin.rh Wed Sep 01 12:19:59 2010 +0100
@@ -0,0 +1,51 @@
+/*
+* Copyright (c) 2003-2005 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: Contains common declarations for resources of GS.
+* The file can be included only in resource file.
+*
+*/
+
+#ifndef GSSIMSEC_RH
+#define GSSIMSEC_RH
+
+
+// Global definitions
+
+
+// ---------------------------------------------------------
+// sim_sec_feature_array
+// Defines a structure to contain information about items
+// to be able to included in the listbox.
+// ---------------------------------------------------------
+//
+STRUCT SIM_SEC_FEATURE_ARRAY
+ {
+ STRUCT items[];
+ }
+
+// ---------------------------------------------------------
+// sim_sec_feature
+// Defines a structure that contains information about
+// a single listbox item.
+// ---------------------------------------------------------
+//
+STRUCT SIM_SEC_FEATURE
+ {
+ LTEXT txt = "";
+ WORD item = -1;
+ BYTE type = EGSListBoxItemTypeIsAlwaysVisible;
+ }
+
+#endif // GSSIMSEC_RH
+// End of File
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/securitydialogs/SecUi/GSSimSecPlugin/Inc/GSSimSecPluginContainer.h Wed Sep 01 12:19:59 2010 +0100
@@ -0,0 +1,180 @@
+/*
+* Copyright (c) 2005 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: Container for the Display sub-folder
+*
+*/
+
+
+
+#ifndef GSSIMSECCONTAINER_H
+#define GSSIMSECCONTAINER_H
+
+// INCLUDES
+#include <secuisecuritysettings.h>
+#include <e32property.h>
+
+#include <gsbasecontainer.h>
+
+
+// FORWARD DECLARATION
+class CGSListBoxItemTextArray;
+class CGSSimSecPluginModel;
+
+// CLASS DECLARATION
+
+/**
+* CGSSimSecPluginContainer container class
+*
+* Container class for SIM security view
+* @lib GSSimSecPlugin.lib
+* @since Series 60_3.1
+*/
+class CGSSimSecPluginContainer : public CGSBaseContainer
+ {
+ public: // Constructors and destructor
+
+ /**
+ * Symbian OS constructor.
+ * @param aRect Listbox's rect.
+ *
+ */
+ void ConstructL( const TRect& aRect );
+
+ /**
+ * Destructor.
+ */
+ ~CGSSimSecPluginContainer();
+
+ /**
+ * Constructor
+ */
+ CGSSimSecPluginContainer( CGSSimSecPluginModel* aModel );
+
+ public: // new
+ /**
+ * Updates the listbox items
+ * @param aFeatureId: selected listbox item ID
+ */
+ void UpdateListBoxL( TInt aFeatureId );
+
+ /**
+ * Retrieves the feature id for the selected item in the listbox
+ * @return listbox item array's current feature.
+ */
+ TInt CurrentFeatureId() const;
+
+ void HandleResourceChangeL( TInt aType );
+
+ protected: // from CGSBaseContainer
+ /**
+ * Constructs listbox.
+ * @param aResLbxId Resource id for listbox.
+ *
+ */
+ void ConstructListBoxL( TInt aResLbxId );
+
+ private: //new
+ /**
+ * Creates list box items
+ */
+ void CreateListBoxItemsL();
+ /**
+ * Creates Code in use item
+ */
+ void MakeCodeInUseItemL();
+ /**
+ * Creates upin code request list box item
+ */
+ void MakeUpinRequestItemL();
+ /**
+ * Creates pin code request list box item
+ */
+ void MakePinRequestItemL();
+ /**
+ * Creates code list box item
+ *
+ * @ param aItemType TInt (code type pin/pin2/security)
+ */
+ void MakeCodeItemL( const TInt aItemType );
+ /**
+ * Creates autolock list box item
+ */
+ void MakeAutolockItemL();
+ /**
+ * Creates sim change security list box item
+ */
+ void MakeSimChangeItemL();
+ /**
+ * Creates closed user group list box item
+ */
+ void MakeClosedUserGroupItemL();
+
+ /**
+ * Creates sat operations list box item
+ */
+ void MakeSatOperationsItemL();
+
+ /**
+ * Creates Trusted provisioning server list box item
+ */
+ void MakeTPServerItemL();
+ /**
+ * Recreates different pin code related list box items as needed
+ * after switching PIN codes from PIN to UPIN or vice versa.
+ */
+ void RecreatePinItemsL();
+
+ void MakeRemoteLockItemL();
+ private:
+ /**
+ * Required for help.
+ *
+ */
+ void GetHelpContext( TCoeHelpContext& aContext ) const;
+
+ private: //data
+ //Code in use item's text
+ CDesCArrayFlat* iCodeItems;
+ //UPIN item's text
+ CDesCArrayFlat* iUpinItems;
+ //autolock item's text
+ CDesCArrayFlat* iAutoLockItems;
+ // RemoteLock item's text
+ CDesCArrayFlat* iRemoteLockItems;
+ //PIN item's text
+ CDesCArrayFlat* iPinItems;
+ //security item's text
+ CDesCArrayFlat* iSecurityItems;
+ //SAT item's text
+ CDesCArrayFlat* iSatItems;
+ //items from resource
+ CDesCArray* iItemArray;
+ //for SecUI
+ CSecuritySettings* iSecurity;
+ //check if UPIN code is supported
+ TBool iUpinCodeSupported;
+ //check if UPIN code is active
+ TBool iUpinCodeActive;
+ //check if UPIN code is permanently rejected
+ TBool iUpinCodeRejected;
+ //GS listbox model
+ CGSListBoxItemTextArray* iListboxItemArray;
+ //Model pointer. Does not own it, so do not delete this pointer.
+ CGSSimSecPluginModel* iModel;
+
+ };
+
+#endif //GSSIMSECCONTAINER_H
+
+// End of File
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/securitydialogs/SecUi/GSSimSecPlugin/Inc/GSSimSecPluginModel.h Wed Sep 01 12:19:59 2010 +0100
@@ -0,0 +1,121 @@
+/*
+* Copyright (c) 2005 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: Model for Device & SIM security plug-in.
+*
+*/
+
+
+#ifndef GSSIMSECPLUGINMODEL_H
+#define GSSIMSECPLUGINMODEL_H
+
+// INCLUDES
+#include <e32base.h>
+#include <centralrepository.h>
+
+// CONSTANTS
+const TInt KGSBufSize128 = 128;
+
+// MACROS
+
+// DATA TYPES
+
+// FUNCTION PROTOTYPES
+
+// FORWARD DECLARATIONS
+
+// CLASS DEFINITION
+/**
+* CGSSimSecPluginModel is the model class of device & sim security plugin.
+* It provides functions to get and set setting values.
+* @lib GSSimSecPlugin.lib
+* @since Series 60_3.1
+
+*/
+class CGSSimSecPluginModel : public CBase
+ {
+ public: // Constructor and destructor
+ /**
+ * Two-phased constructor
+ */
+ static CGSSimSecPluginModel* NewL();
+
+ /**
+ * Destructor
+ */
+ ~CGSSimSecPluginModel();
+
+ public:
+ /**
+ * Returns the autolock period time (minutes).
+ *
+ * @return TInt: period
+ */
+ TInt AutoLockPeriod();
+
+ /**
+ * Sets the autolock period. After this period device is locked.
+ * @param aLockTime TInt (minutes)
+ *
+ * @return ETrue: no errors
+ * EFalse: an error has occurred
+ */
+ TBool SetAutoLockPeriod( const TInt aLockTime );
+
+ /**
+ * Returns SAT operations sate
+ *
+ * @return TInt 0: SAT operations off
+ * TInt 1: SAT operations on
+ */
+ TInt SatOperations();
+
+ /**
+ * Sets SAT operations on/off
+ * @param aValue TInt (0 = off 1 =on)
+ *
+ * @return ETrue: no errors
+ * EFalse: an error has occurred
+ */
+ TBool SetSatOperations( const TInt aValue );
+
+ /**
+ * Checking if SAT operations supported
+ * @return:
+ * 0: not supported
+ * 1: supported
+ */
+ TInt ConfirmSatOperationsSupport();
+
+ private: // Private constructors
+ /**
+ * Default C++ contructor
+ */
+ CGSSimSecPluginModel();
+
+ /**
+ * Symbian OS default constructor
+ * @return void
+ */
+ void ConstructL();
+
+ private: // data
+ CRepository* iSecurityRepository;
+ CRepository* iPersonalizationRepository;
+
+ };
+
+
+#endif //GSSIMSECPLUGINMODEL_H
+
+// End of File
\ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/securitydialogs/SecUi/GSSimSecPlugin/Inc/MGSSettingPSObserver.h Wed Sep 01 12:19:59 2010 +0100
@@ -0,0 +1,51 @@
+/*
+* Copyright (c) 2005 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: Observer interface for indicating publish and subscribe
+* setting changes
+*
+*/
+
+
+
+#ifndef MGSSETTINGPSOBSERVER_H
+#define MGSSETTINGPSOBSERVER_H
+
+// INCLUDES
+#include <e32std.h>
+
+// CLASS DECLARATION
+
+/**
+* Observer interface for indicating setting changes
+*
+* @lib GSSimSecPlugin
+* @since 3.1
+*/
+class MGSSettingPSObserver
+ {
+ public: // New functions
+
+ /**
+ * Handler for setting changed event
+ * @param aUid uid of setting
+ * @param aId id of setting
+ * @param aStatus status of completed AO operation
+ */
+ virtual void HandleNotifyPSL( const TUid aUid, const TInt& aKey,
+ const TRequestStatus& aStatus ) = 0;
+ };
+
+#endif // MGSSETTINGPSOBSERVER_H
+
+// End of File
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/securitydialogs/SecUi/GSSimSecPlugin/Src/GSPubSubsListener.cpp Wed Sep 01 12:19:59 2010 +0100
@@ -0,0 +1,155 @@
+/*
+* Copyright (c) 2005 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: Publish and subscribe settings listener.
+*
+*/
+
+
+// INCLUDE FILES
+#include "GSPubSubsListener.h"
+#include "MGSSettingPSObserver.h"
+
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// CGSPubSubsListener::CGSPubSubsListener
+// C++ constructor can NOT contain any code, that
+// might leave.
+// -----------------------------------------------------------------------------
+//
+CGSPubSubsListener::CGSPubSubsListener( const TUid aUid, const TInt aKey,
+ MGSSettingPSObserver* aObserver )
+ : CActive( CActive::EPriorityStandard )
+ {
+ iUid = aUid;
+ iId = aKey;
+ iCallback = aObserver;
+ }
+
+// -----------------------------------------------------------------------------
+// CGSPubSubsListener::~CGSPubSubsListener
+// Destructor.
+// -----------------------------------------------------------------------------
+//
+CGSPubSubsListener::~CGSPubSubsListener()
+ {
+ Cancel();
+ iProperty.Close();
+ }
+
+// -----------------------------------------------------------------------------
+// CGSPubSubsListener::RunL
+// From CActive.
+// -----------------------------------------------------------------------------
+//
+void CGSPubSubsListener::RunL()
+ {
+ const TRequestStatus status( iStatus );
+ StartListening();
+ iCallback->HandleNotifyPSL( iUid, iId, status );
+ }
+
+// -----------------------------------------------------------------------------
+// CGSPubSubsListener::DoCancel
+// From CActive.
+// -----------------------------------------------------------------------------
+//
+void CGSPubSubsListener::DoCancel()
+ {
+ iProperty.Cancel();
+ }
+
+// -----------------------------------------------------------------------------
+// CGSPubSubsListener::RunError
+// From CActive.
+// -----------------------------------------------------------------------------
+//
+TInt CGSPubSubsListener::RunError( TInt /*aError*/ )
+ {
+ return KErrNone;
+ }
+
+// -----------------------------------------------------------------------------
+// CGSPubSubsListener::NewL
+//
+// Symbian OS two phased constructor
+// -----------------------------------------------------------------------------
+//
+CGSPubSubsListener* CGSPubSubsListener::NewL( const TUid aUid, const TInt aKey,
+ MGSSettingPSObserver* aObserver )
+ {
+ CGSPubSubsListener* self = new( ELeave )
+ CGSPubSubsListener( aUid, aKey, aObserver );
+ CleanupStack::PushL( self );
+ self->ConstructL();
+ CleanupStack::Pop();
+ return self;
+ }
+
+// -----------------------------------------------------------------------------
+// CGSPubSubsListener::StartListening
+// -----------------------------------------------------------------------------
+//
+void CGSPubSubsListener::StartListening()
+ {
+ iProperty.Subscribe( iStatus );
+ SetActive();
+ }
+
+// -----------------------------------------------------------------------------
+// CGSPubSubsListener::ConstructL
+//
+// Symbian OS default constructor
+// -----------------------------------------------------------------------------
+//
+void CGSPubSubsListener::ConstructL()
+ {
+ CActiveScheduler::Add( this );
+
+ User::LeaveIfError ( iProperty.Attach( iUid, iId, EOwnerThread ) );
+ StartListening();
+ }
+
+// -----------------------------------------------------------------------------
+// CGSPubSubsListener::Get
+// Read integer value.
+// -----------------------------------------------------------------------------
+//
+TInt CGSPubSubsListener::Get( TInt& aVal )
+ {
+ return iProperty.Get( iUid, iId, aVal );
+ }
+
+// -----------------------------------------------------------------------------
+// CGSPubSubsListener::Get
+// Read binary value.
+// -----------------------------------------------------------------------------
+//
+TInt CGSPubSubsListener::Get( TDes8& aVal )
+ {
+ return iProperty.Get( iUid, iId, aVal );
+ }
+
+// -----------------------------------------------------------------------------
+// CGSPubSubsListener::Get
+// Read string value.
+// -----------------------------------------------------------------------------
+//
+TInt CGSPubSubsListener::Get( TDes16& aVal )
+ {
+ return iProperty.Get( iUid, iId, aVal );
+ }
+
+// End of File
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/securitydialogs/SecUi/GSSimSecPlugin/Src/GSSimSecPlugin.cpp Wed Sep 01 12:19:59 2010 +0100
@@ -0,0 +1,830 @@
+/*
+* Copyright (c) 2005 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: View for Device & SIM Security sub-folder
+*
+*/
+
+
+// INCLUDE FILES
+#include <coeaui.h>
+#include <hlplch.h> // For HlpLauncher
+#include <bautils.h>
+#include <gulicon.h>
+#include <eikfrlbd.h>
+#include <eiktxlbx.h>
+#include <aknradiobuttonsettingpage.h>
+#include <aknPopup.h>
+#include <aknlists.h>
+#include <RSSSettings.h>
+#include <AknQueryDialog.h>
+#include <aknnotedialog.h>
+#include <aknViewAppUi.h>
+#include <featmgr.h>
+#include <StringLoader.h>
+#include <secui.h>
+#include <secuisecuritysettings.h>
+#include <BTSapDomainPSKeys.h>
+#include <e32property.h>
+
+#include <GSSimSecPluginRsc.rsg>
+#include <gsprivatepluginproviderids.h>
+#include <gsmainview.h>
+#include <gsbasecontainer.h>
+
+#include "GSSimSecPlugin.h"
+#include "GSSimSecPluginContainer.h"
+#include "GSSimSecPlugin.hrh"
+
+
+#ifdef RD_REMOTELOCK
+#include <RemoteLockSettings.h>
+#endif // RD_REMOTELOCK
+
+
+// EXTERNAL DATA STRUCTURES
+
+// EXTERNAL FUNCTION PROTOTYPES
+
+// CONSTANTS
+
+// MACROS
+
+// LOCAL CONSTANTS AND MACROS
+const TInt KEmptyCugIndex( -100000000 );
+_LIT( KGSSimSecPluginResourceFileName, "z:GSSimSecPluginRsc.rsc" );
+
+// MODULE DATA STRUCTURES
+
+// LOCAL FUNCTION PROTOTYPES
+
+// FORWARD DECLARATIONS
+
+/**
+* CCugQuery
+* It defines CCugQuery used in closed user group settings
+*/
+class CCugQuery
+ : public CAknNumberQueryDialog
+ {
+ public: // Constructors and destructors
+ /**
+ * C++ constructor.
+ */
+ CCugQuery( TInt& aNumber,const TTone aTone = ENoTone );
+ /**
+ * Prepares the dialog, by constructing it from the specified resource. Overwrite the base class.
+ * @param aResourceId The resource ID of the dialog.
+ */
+ void PrepareLC( TInt aResourceId );
+
+ protected: // From base classes
+ /**
+ * From CCAknNumberQueryDialog Left softkey is allways OK.
+ */
+ void UpdateLeftSoftKeyL();
+ };
+
+// ============================= LOCAL FUNCTIONS ==============================
+
+// ========================= MEMBER FUNCTIONS =================================
+
+// ---------------------------------------------------------------------------
+// GSSimSecPlugin::NewL()
+//
+// ---------------------------------------------------------------------------
+CGSSimSecPlugin* CGSSimSecPlugin::NewL( TAny* /*aInitParams*/ )
+ {
+ CGSSimSecPlugin* self = new( ELeave ) CGSSimSecPlugin();
+
+ CleanupStack::PushL( self );
+ self->ConstructL();
+ CleanupStack::Pop( self );
+
+ return self;
+ }
+
+
+// ---------------------------------------------------------------------------
+// GSSimSecPlugin::CGSSimSecPlugin()
+//
+// ---------------------------------------------------------------------------
+CGSSimSecPlugin::CGSSimSecPlugin()
+ : iResourceLoader( *iCoeEnv )
+ {
+ }
+
+
+// ---------------------------------------------------------------------------
+// CGSSimSecPlugin::ConstructL()
+//
+// Symbian OS two-phased constructor
+// ---------------------------------------------------------------------------
+void CGSSimSecPlugin::ConstructL()
+ {
+ FeatureManager::InitializeLibL();
+
+ iModel = CGSSimSecPluginModel::NewL();
+ //PS listener initialization
+ iBtSapListener = CGSPubSubsListener::NewL(
+ KPSUidBluetoothSapConnectionState,
+ KBTSapConnectionState, this );
+
+ iSecurity= CSecuritySettings::NewL();
+ if(!FeatureManager::FeatureSupported( KFeatureIdFfNoCugSupport ))
+ {
+ User::LeaveIfError( iCugSettings.Open() );
+ }
+ // Find the resource file
+ TParse parse;
+ parse.Set( KGSSimSecPluginResourceFileName,
+ &KDC_RESOURCE_FILES_DIR, NULL );
+ TFileName fileName( parse.FullName() );
+
+ // Get language of resource file
+ BaflUtils::NearestLanguageFile( iCoeEnv->FsSession(), fileName );
+
+ // Open resource file
+ iResourceLoader.OpenL( fileName );
+
+ BaseConstructL( R_GS_SIM_SECURITY_VIEW );
+
+ // secui resource file
+ TSecUi::InitializeLibL();
+ }
+
+
+// ---------------------------------------------------------------------------
+// CGSSimSecPlugin::~CGSSettListSecurityView()
+//
+//
+// ---------------------------------------------------------------------------
+CGSSimSecPlugin::~CGSSimSecPlugin()
+ {
+ FeatureManager::UnInitializeLib();
+ // close resource loader
+ iResourceLoader.Close();
+ if(!FeatureManager::FeatureSupported( KFeatureIdFfNoCugSupport ))
+ {
+ iCugSettings.Close();
+ }
+ if ( iSecurity )
+ {
+ delete iSecurity;
+ }
+
+ if ( iModel )
+ {
+ delete iModel;
+ }
+ delete iBtSapListener;
+
+ TSecUi::UnInitializeLib();
+ }
+
+
+// ---------------------------------------------------------------------------
+// TUid CGSSettSimListSecurityView::Id()
+//
+//
+// ---------------------------------------------------------------------------
+TUid CGSSimSecPlugin::Id() const
+ {
+ return KGSSimSecPluginUid;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CGSSimSecPlugin::HandleCommandL()
+//
+//
+// ---------------------------------------------------------------------------
+void CGSSimSecPlugin::HandleCommandL( TInt aCommand )
+ {
+ switch ( aCommand )
+ {
+ case EGSCmdAppChange:
+ case EAknSoftkeyChange:
+ {
+ const TInt currentFeatureId = Container()->CurrentFeatureId();
+
+ if ( currentFeatureId != EGSSettIdSatOperations )
+ {
+ HandleListBoxSelectionL();
+ }
+ else
+ {
+ if(aCommand == EGSCmdAppChange)
+ SetSatWithSettingPageL();
+ else //user pressed MSK, don't show setting page.
+ SetSatOperationsL();
+ }
+ }
+ break;
+ case EAknSoftkeyBack:
+ iAppUi->ActivateLocalViewL( KGSSecurityPluginUid );
+ break;
+ case EAknCmdHelp:
+ {
+ if( FeatureManager::FeatureSupported( KFeatureIdHelp ) )
+ {
+ HlpLauncher::LaunchHelpApplicationL(
+ iEikonEnv->WsSession(), iAppUi->AppHelpContextL() );
+ }
+ }
+ break;
+ default:
+ iAppUi->HandleCommandL( aCommand );
+ break;
+ }
+ }
+
+
+// ---------------------------------------------------------------------------
+// CGSSimSecPlugin::UpdateListBoxL
+//
+// Update the current item in the listbox.
+// ---------------------------------------------------------------------------
+void CGSSimSecPlugin::UpdateListBoxL( TInt aItemId )
+ {
+ Container()->UpdateListBoxL( aItemId );
+ }
+
+
+// ---------------------------------------------------------------------------
+// CGSSimSecPlugin::DoActivateL(...)
+//
+//
+// ---------------------------------------------------------------------------
+void CGSSimSecPlugin::DoActivateL( const TVwsViewId& aPrevViewId,
+ TUid aCustomMessageId,
+ const TDesC8& aCustomMessage )
+ {
+ CGSBaseView::DoActivateL( aPrevViewId, aCustomMessageId, aCustomMessage );
+ }
+
+
+// ----------------------------------------------------------------------------
+// CGSSimSecPlugin::Container
+//
+// Return handle to container class.
+// ----------------------------------------------------------------------------
+//
+CGSSimSecPluginContainer* CGSSimSecPlugin::Container()
+ {
+ return static_cast<CGSSimSecPluginContainer*>( iContainer );
+ }
+
+
+// ---------------------------------------------------------------------------
+// CGSSimSecPlugin::NewContainerL()
+//
+// Creates new iContainer.
+// ---------------------------------------------------------------------------
+//
+void CGSSimSecPlugin::NewContainerL()
+ {
+ iContainer = new( ELeave ) CGSSimSecPluginContainer( iModel );
+ }
+
+
+// ---------------------------------------------------------------------------
+// CGSSimSecPlugin::HandleListBoxSelectionL()
+//
+//
+// ---------------------------------------------------------------------------
+void CGSSimSecPlugin::HandleListBoxSelectionL()
+ {
+ const TInt currentFeatureId = Container()->CurrentFeatureId();
+ TBool wcdmaSupported(FeatureManager::FeatureSupported( KFeatureIdProtocolWcdma ));
+ TBool upinSupported(FeatureManager::FeatureSupported( KFeatureIdUpin ));
+ switch ( currentFeatureId )
+ {
+ case EGSSettIdCodeInUse:
+ if(wcdmaSupported || upinSupported)
+ {
+ if(iSecurity->SwitchPinCodesL())
+ {
+ UpdateListBoxL( currentFeatureId );
+ }
+ }
+ break;
+ case EGSSettIdUpinRequest:
+ if(wcdmaSupported || upinSupported)
+ {
+ if(iSecurity->ChangeUPinRequestL())
+ {
+ UpdateListBoxL( currentFeatureId );
+ }
+ }
+ break;
+ case EGSSettIdUpinCode:
+ if(wcdmaSupported || upinSupported)
+ {
+ iSecurity->ChangeUPinL();
+ }
+ break;
+ case EGSSettIdPinRequest:
+ if(iSecurity->ChangePinRequestL())
+ {
+ UpdateListBoxL( currentFeatureId );
+ }
+ break;
+ case EGSSettIdPinCode:
+ iSecurity->ChangePinL();
+ break;
+ case EGSSettIdPin2Code:
+ iSecurity->ChangePin2L();
+ break;
+ case EGSSettIdAutolock:
+ SetAutolockTimeL( iSecurity->ChangeAutoLockPeriodL(
+ iModel->AutoLockPeriod() ) );
+ break;
+ case EGSSettIdSecurityCode:
+ iSecurity->ChangeSecCodeL();
+ break;
+ case EGSSettIdSimChange:
+ if(iSecurity->ChangeSimSecurityL())
+ {
+ UpdateListBoxL( currentFeatureId );
+ }
+ break;
+
+#ifdef RD_REMOTELOCK
+ case EGSSettIdRemoteLock:
+ SetRemoteLockStatusL( iModel->AutoLockPeriod() );
+ break;
+
+#endif
+ case EGSSettIdClosedUserGroup:
+ if(!FeatureManager::FeatureSupported( KFeatureIdFfNoCugSupport ))
+ {
+ CugModeL();
+ UpdateListBoxL( currentFeatureId );
+ }
+ break;
+ case EGSSettIdSatOperations:
+ SetSatOperationsL();
+ break;
+ default:
+ break;
+ }
+
+ }
+
+// ---------------------------------------------------------------------------
+// CGSSimSecPlugin::SetAutolockTimeL()
+//
+//
+// ---------------------------------------------------------------------------
+void CGSSimSecPlugin::SetAutolockTimeL( TInt aPeriod )
+ {
+ iModel->SetAutoLockPeriod( aPeriod );
+ UpdateListBoxL( EGSSettIdAutolock );
+ }
+
+// ---------------------------------------------------------------------------
+// CGSSimSecPlugin::SetSatOperationsL()
+//
+//
+// ---------------------------------------------------------------------------
+void CGSSimSecPlugin::SetSatOperationsL()
+ {
+ TInt i = iModel->SatOperations();
+
+ if ( i == 0 )
+ {
+ iModel->SetSatOperations( 1 );
+ }
+ else
+ {
+ iModel->SetSatOperations( 0 );
+ }
+ UpdateListBoxL( EGSSettIdSatOperations );
+ }
+
+// ---------------------------------------------------------------------------
+// CGSSimSecPlugin::SetSatOperationsL()
+//
+//
+// ---------------------------------------------------------------------------
+void CGSSimSecPlugin::SetSatWithSettingPageL()
+ {
+ TInt currentItem = iModel->SatOperations();
+
+ CDesCArrayFlat* items = iCoeEnv->ReadDesC16ArrayResourceL( R_SAT_ARRAY );
+ CleanupStack::PushL( items );
+
+ CAknRadioButtonSettingPage* page =
+ new( ELeave ) CAknRadioButtonSettingPage( R_SAT_SETTING_PAGE,
+ currentItem, items );
+
+ if ( page->ExecuteLD( CAknSettingPage::EUpdateWhenChanged ) )
+ {
+ iModel->SetSatOperations( currentItem );
+ }
+
+ CleanupStack::PopAndDestroy( items );
+
+ UpdateListBoxL( EGSSettIdSatOperations );
+ }
+
+
+// ---------------------------------------------------------------------------
+// CGSSimSecPlugin::CugModeL()
+//
+//
+// ---------------------------------------------------------------------------
+void CGSSimSecPlugin::CugModeL()
+ {
+ TInt cugIndex = 0;
+ TInt currentItem = 0;
+ TInt cugMode = 0;
+ TInt cugDefault;
+ TInt err = KErrNone;
+
+ err = iCugSettings.Get( ESSSettingsDefaultCug, cugDefault );
+ User::LeaveIfError( err );
+
+
+ if ( iCugSettings.Get( ESSSettingsCug, cugMode ) != KErrNone )
+ {// getting mode was not succesful
+ cugMode = cugDefault;
+ }
+
+ if ( cugMode == cugDefault )
+ {
+ currentItem = EGSCugNetworkDefault;
+ if ( iCugSettings.PreviousCugValue( cugIndex ) != KErrNone )
+ {
+ cugIndex = 0;
+ }
+ }
+ else
+ {
+ switch ( cugMode )
+ {
+ case ESSSettingsCugSuppress:
+ currentItem = EGSCugOff;
+ if ( iCugSettings.PreviousCugValue( cugIndex ) != KErrNone )
+ {
+ cugIndex = 0;
+ }
+ break;
+ default:
+ currentItem = EGSCugOn;
+ cugIndex = cugMode;
+ break;
+ }
+ }
+
+
+ CDesCArrayFlat* items = iCoeEnv->ReadDesC16ArrayResourceL( R_CUG_LBX );
+ CleanupStack::PushL( items );
+
+ CAknRadioButtonSettingPage* page =
+ new( ELeave ) CAknRadioButtonSettingPage( R_CUG_SETTING_PAGE,
+ currentItem, items );
+
+ // call the appropriate cug- methods here
+ if ( page->ExecuteLD( CAknSettingPage::EUpdateWhenChanged ) )
+ {
+
+ switch ( currentItem )
+ {
+ case EGSCugNetworkDefault://cug mode set default,
+ User::LeaveIfError( iCugSettings.Set( ESSSettingsCug,
+ cugDefault ) );
+ break;
+ case EGSCugOn: //1, index is queried, if query ok then
+ // set the index and mode
+ if ( CugIndexQueryL( cugIndex, cugDefault ) )
+ {
+ if ( iCugSettings.IsValueValidCugIndex( cugIndex ) )
+ {
+ User::LeaveIfError( iCugSettings.Set( ESSSettingsCug,
+ cugIndex ) );
+ }
+ else
+ {
+ User::LeaveIfError( iCugSettings.Set( ESSSettingsCug,
+ cugDefault ) );
+ User::LeaveIfError( iCugSettings.ResetPreviousCugValue() );
+ }
+ }
+ break;
+ case EGSCugOff://2, sets cug mode "inactive"
+ User::LeaveIfError( iCugSettings.Set( ESSSettingsCug,
+ ESSSettingsCugSuppress ) );
+ break;
+ default:
+ break;
+ }
+ }
+ CleanupStack::PopAndDestroy( items );
+ return;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CGSSimSecPlugin::CugIndexQueryL()
+//
+//
+// ---------------------------------------------------------------------------
+TInt CGSSimSecPlugin::CugIndexQueryL( TInt& aCugIndex, TInt& aCugDefault )
+ {
+ while ( ETrue )
+ {
+ CCugQuery* dlg = new( ELeave ) CCugQuery( aCugIndex,
+ CAknQueryDialog::ENoTone );
+ dlg->PrepareLC( R_CUG_INDEX );
+ if ( dlg->RunLD() )
+ {
+ // check content validity (?-32767),
+ // ui spec concerned only values above limit
+ if( !iCugSettings.IsValueValidCugIndex( aCugIndex )
+ && ( aCugIndex != KEmptyCugIndex )
+ && ( aCugIndex != aCugDefault ) )
+ {
+ CAknNoteDialog* dlg = new ( ELeave )
+ CAknNoteDialog( CAknNoteDialog::EErrorTone,
+ CAknNoteDialog::ELongTimeout );
+ dlg->ExecuteLD( R_CUG_INDEX_ERROR_NOTE );
+ }
+ else //index ok, break
+ {
+ break;
+ }
+ }
+ else // query cancelled
+ {
+ return EFalse;
+ }
+ }
+
+ return ETrue;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CCugQuery::CCugQuery()
+//
+// ---------------------------------------------------------------------------
+//
+CCugQuery::CCugQuery( TInt& aNumber, const TTone aTone )
+ : CAknNumberQueryDialog( aNumber, aTone )
+ {
+ }
+
+
+// ---------------------------------------------------------------------------
+// CCugQuery::UpdateLeftSoftKeyL()
+// Left softkey is allways visible
+// ---------------------------------------------------------------------------
+//
+void CCugQuery::UpdateLeftSoftKeyL()
+ {
+ MakeLeftSoftkeyVisible( ETrue );
+ }
+
+// ---------------------------------------------------------------------------
+// CCugQuery::PrepareLC( TInt aResourceId )
+//
+// ---------------------------------------------------------------------------
+//
+void CCugQuery::PrepareLC( TInt aResourceId )
+ {
+ CAknNumberQueryDialog::PrepareLC( aResourceId );
+ CAknQueryControl* queryControl = QueryControl();
+ if( queryControl )
+ {
+ CEikEdwin* edwin = static_cast< CEikEdwin* >( queryControl->ControlByLayoutOrNull( ENumberLayout ) );
+ if( edwin )
+ {
+ edwin->SetAknEditorNumericKeymap( EAknEditorPlainNumberModeKeymap );
+ }
+ }
+ }
+
+// ---------------------------------------------------------------------------
+// CGSSimSecPlugin::HandleResourceChangeL( TInt aType )
+// Updates view layout
+//
+// ---------------------------------------------------------------------------
+//
+void CGSSimSecPlugin::HandleResourceChangeL( TInt aType )
+ {
+ if( aType == KAknsMessageSkinChange ||
+ aType == KEikDynamicLayoutVariantSwitch )
+ {
+ //iContainer->HandleResourceChangeL( aType );
+ }
+ }
+
+
+// ---------------------------------------------------------------------------
+// CGSSimSecPlugin::HandleNotifyPSL
+//
+// Handling PS keys change
+// ---------------------------------------------------------------------------
+//
+void CGSSimSecPlugin::HandleNotifyPSL( const TUid aUid, const TInt& aKey,
+ const TRequestStatus& /* aStatus */ )
+ {
+ if ( aUid == KPSUidBluetoothSapConnectionState &&
+ aKey == KBTSapConnectionState )
+ {
+ Visible();
+ }
+ }
+
+
+// ========================= From CGSPluginInterface ==================
+
+// ----------------------------------------------------------------------------
+// CGSSimSecPlugin::GetCaption
+//
+// Return application/view caption.
+// ----------------------------------------------------------------------------
+//
+void CGSSimSecPlugin::GetCaptionL( TDes& aCaption ) const
+ {
+ // the resource file is already opened.
+ HBufC* result = StringLoader::LoadL( R_GS_SIM_SECURITY_VIEW_CAPTION );
+
+ aCaption.Copy( *result );
+ delete result;
+ }
+
+
+// ----------------------------------------------------------------------------
+// CGSSimSecPlugin::PluginProviderCategory
+//
+// A means to identify the location of this plug-in in the framework.
+// ----------------------------------------------------------------------------
+//
+TInt CGSSimSecPlugin::PluginProviderCategory() const
+ {
+ //To identify internal plug-ins.
+ return KGSPluginProviderInternal;
+ }
+
+
+// ----------------------------------------------------------------------------
+// CGSSimSecPlugin::Visible
+//
+// Provides the visibility status of self to framework.
+// ----------------------------------------------------------------------------
+//
+TBool CGSSimSecPlugin::Visible() const
+ {
+ TInt btSapConnectionState;
+ TBool visible = ETrue;
+
+ iBtSapListener->Get( btSapConnectionState );
+
+ if ( btSapConnectionState == EBTSapConnected )
+ {
+ visible = EFalse;
+ }
+
+ return visible;
+ }
+
+
+
+// ---------------------------------------------------------------------------
+// CGSSimSecPlugin::SetRemoteLockStatusL()
+//
+//
+// ---------------------------------------------------------------------------
+TInt CGSSimSecPlugin::SetRemoteLockStatusL( TInt aAutoLockPeriod )
+ {
+ #ifdef RD_REMOTELOCK
+ #ifdef _DEBUG
+ RDebug::Print( _L( "(GS)CGSSettListSimSecurityView::SetRemoteLockStatusL() - Enter" ) );
+ #endif // DEBUG
+
+ TInt retValue( KErrNone );
+ TBool remoteLockStatus( EFalse );
+ TBuf<KRLockMaxLockCodeLength> remoteLockCode;
+
+ CRemoteLockSettings* remoteLockSettings = CRemoteLockSettings::NewLC();
+
+ // Get the current remote lock status
+ if ( remoteLockSettings->GetEnabled( remoteLockStatus ) )
+ {
+ // Show remote lock setting page
+ retValue = iSecurity->ChangeRemoteLockStatusL( remoteLockStatus, remoteLockCode, aAutoLockPeriod );
+
+ if ( retValue == KErrNone )
+ {
+ if ( remoteLockStatus )
+ {
+ // Set remote lock status
+ if ( remoteLockSettings->SetEnabledL( remoteLockCode ) )
+ {
+ // Remote lock status was set successfully
+ #ifdef _DEBUG
+ RDebug::Print( _L( "(GS)CGSSettListSimSecurityView::SetRemoteLockStatusL() - Remote lock enabled and code set" ) );
+ #endif // DEBUG
+ }
+ else
+ {
+ // Failed to enabled remote lock
+ retValue = KErrGeneral;
+
+ #ifdef _DEBUG
+ RDebug::Print( _L( "(GS)CGSSettListSimSecurityView::SetRemoteLockStatusL() - remoteLockSettings->SetEnabledL failed" ) );
+ #endif // DEBUG
+ }
+ }
+ else
+ {
+ // Disable remote lock
+ if ( remoteLockSettings->SetDisabled() )
+ {
+ // Remote lock disabled
+ #ifdef _DEBUG
+ RDebug::Print( _L( "(GS)CGSSettListSimSecurityView::SetRemoteLockStatusL() - Remote lock disabled" ) );
+ #endif // DEBUG
+ }
+ else
+ {
+ // Failed to disable remote lock
+ retValue = KErrGeneral;
+
+ #ifdef _DEBUG
+ RDebug::Print( _L( "(GS)CGSSettListSimSecurityView::SetRemoteLockStatusL() - remoteLockSettings->SetDisabled failed" ) );
+ #endif // DEBUG
+ }
+ }
+ }
+ else
+ {
+ // User interaction (setting page) failed for some reason
+ #ifdef _DEBUG
+ RDebug::Print( _L( "(GS)CGSSettListSimSecurityView::SetRemoteLockStatusL() - iSecurity->ChangeRemoteLockStatusL failed" ) );
+ #endif // DEBUG
+ }
+ }
+ else
+ {
+ // Failed to retreive the current remote lock status
+ retValue = KErrGeneral;
+
+ #ifdef _DEBUG
+ RDebug::Print( _L( "(GS)CGSSettListSimSecurityView::SetRemoteLockStatusL() - remoteLockSettings->GetEnabled failed" ) );
+ #endif // DEBUG
+ }
+
+ CleanupStack::PopAndDestroy( remoteLockSettings );
+ remoteLockSettings = NULL;
+
+ UpdateListBoxL( EGSSettIdRemoteLock );
+
+ #ifdef _DEBUG
+ RDebug::Print( _L( "(GS)CGSSettListSimSecurityView::SetRemoteLockStatusL() - Exit" ) );
+ #endif // DEBUG
+ return retValue;
+ #else //!RD_REMOTELOCK
+ return KErrNotSupported;
+ #endif // RD_REMOTELOCK
+ }
+
+
+// ----------------------------------------------------------------------------
+// CGSSimSecPlugin::DynInitMenuPaneL()
+//
+// Display the dynamic menu
+// ----------------------------------------------------------------------------
+void CGSSimSecPlugin::DynInitMenuPaneL( TInt aResourceId,
+ CEikMenuPane* aMenuPane )
+ {
+
+ // show or hide the 'help' menu item when supported
+ if( aResourceId == R_GS_SIM_SEC_MENU_ITEM_HELP )
+ {
+ User::LeaveIfNull( aMenuPane );
+ if ( FeatureManager::FeatureSupported( KFeatureIdHelp ) )
+ {
+ aMenuPane->SetItemDimmed( EAknCmdHelp, EFalse );
+ }
+ else
+ {
+ aMenuPane->SetItemDimmed( EAknCmdHelp, ETrue );
+ }
+ }
+
+ }
+// End of File
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/securitydialogs/SecUi/GSSimSecPlugin/Src/GSSimSecPluginContainer.cpp Wed Sep 01 12:19:59 2010 +0100
@@ -0,0 +1,943 @@
+/*
+* Copyright (c) 2005 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: Container for the Device & SIM security sub-folder
+*
+*/
+
+
+#include "GSSimSecPluginContainer.h"
+#include "GSSimSecPluginModel.h"
+#include "GSSimSecPlugin.hrh"
+
+#include <aknlists.h>
+#include <etelmm.h>
+#include <RSSSettings.h>
+#include <StringLoader.h>
+#include <featmgr.h>
+#include <csxhelp/cp.hlp.hrh>
+#include <gsfwviewuids.h>
+#include <GSSimSecPluginRsc.rsg>
+#include <gslistbox.h>
+#include <AknsConstants.h>
+#include <secuisecuritysettings.h>
+
+
+#ifdef RD_REMOTELOCK
+#include <RemoteLockSettings.h>
+_LIT( KRemoteLockEmptyItem, " " );
+#endif
+
+#include <SCPClient.h>
+// EXTERNAL DATA STRUCTURES
+
+// EXTERNAL FUNCTION PROTOTYPES
+
+// CONSTANTS
+
+// MACROS
+
+// LOCAL CONSTANTS AND MACROS
+_LIT( CodeItem,"****" );
+_LIT( SecurityCodeItem, "*****" );
+
+const TInt KMaxStringLength = 50;
+
+// MODULE DATA STRUCTURES
+
+// LOCAL FUNCTION PROTOTYPES
+
+// FORWARD DECLARATIONS
+
+// ============================= LOCAL FUNCTIONS ==============================
+
+
+// ---------------------------------------------------------------------------
+// CGSSimSecPluginContainer::ConstructL()
+//
+// Symbian OS two phased constructor
+// ---------------------------------------------------------------------------
+//
+void CGSSimSecPluginContainer::ConstructL( const TRect& aRect )
+ {
+ iListBox = new( ELeave ) CAknSettingStyleListBox;
+ BaseConstructL( aRect, R_GS_SIM_SECURITY_VIEW_TITLE, R_SIM_SECURITY_LBX );
+ FeatureManager::InitializeLibL();
+ }
+
+
+// ---------------------------------------------------------------------------
+// CGSSimSecPluginContainer::~CGSSettListSecurityContainer()
+//
+// Destructor
+// ---------------------------------------------------------------------------
+//
+
+CGSSimSecPluginContainer::~CGSSimSecPluginContainer()
+ {
+ if(iCodeItems)
+ delete iCodeItems;
+ if(iUpinItems)
+ delete iUpinItems;
+ if(iAutoLockItems)
+ delete iAutoLockItems;
+ if(iPinItems)
+ delete iPinItems;
+ if(iSecurityItems)
+ delete iSecurityItems;
+ if(iSatItems)
+ delete iSatItems;
+ if(iSecurity)
+ delete iSecurity;
+ if(iListboxItemArray)
+ delete iListboxItemArray;
+#ifdef RD_REMOTELOCK
+ if(iRemoteLockItems)
+ delete iRemoteLockItems;
+#endif // RD_REMOTELOCK
+FeatureManager::UnInitializeLib();
+ }
+
+
+// ---------------------------------------------------------------------------
+// CGSSimSecPluginContainer::CGSSimSecPluginContainer()
+//
+// Constructor
+// ---------------------------------------------------------------------------
+//
+CGSSimSecPluginContainer::CGSSimSecPluginContainer(
+ CGSSimSecPluginModel* aModel )
+ : iModel ( aModel )
+ {
+ }
+
+
+// ---------------------------------------------------------------------------
+// CGSSimSecPluginContainer::ConstructListBoxL()
+//
+//
+// ---------------------------------------------------------------------------
+//
+void CGSSimSecPluginContainer::ConstructListBoxL( TInt aResLbxId )
+ {
+ iSecurity= CSecuritySettings::NewL();
+ TBool wcdmaSupported(FeatureManager::FeatureSupported( KFeatureIdProtocolWcdma ));
+ TBool upinSupported(FeatureManager::FeatureSupported( KFeatureIdUpin ));
+ if(wcdmaSupported || upinSupported)
+ {
+ //check if UPIN code is supported and not rejected
+ TBool resp = iSecurity->IsUpinSupportedL();
+ if( resp )
+ {
+ iUpinCodeSupported = ETrue;
+
+ //check if UPIN code is active
+ if( iSecurity->IsUpinActive() )
+ {
+ iUpinCodeActive = ETrue;
+ }
+ else
+ {
+ iUpinCodeActive = EFalse;
+ }
+
+ //Check whether UPIN is blocked
+ resp = iSecurity->IsUpinBlocked();
+
+ if( !resp )
+ {
+ iUpinCodeRejected = EFalse;
+ }
+ else
+ {
+ iUpinCodeRejected = ETrue;
+ }
+ }
+ else
+ {
+ iUpinCodeSupported = EFalse;
+ iUpinCodeActive = EFalse;
+ }
+ }
+
+
+ iListBox->ConstructL( this, EAknListBoxSelectionList );
+ iListboxItemArray = CGSListBoxItemTextArray::NewL( aResLbxId,
+ *iListBox, *iCoeEnv );
+ iListBox->Model()->SetItemTextArray( iListboxItemArray );
+ iListBox->Model()->SetOwnershipType( ELbmDoesNotOwnItemArray );
+
+ iAutoLockItems = iCoeEnv->ReadDesC16ArrayResourceL( R_AUTOLOCK_ARRAY );
+
+#ifdef RD_REMOTELOCK
+ #ifdef _DEBUG
+ RDebug::Print( _L( "(GS)CGSSettListSimSecurityContainer::ConstructListBoxL() - Reading R_REMOTELOCK_ARRAY resource" ) );
+ #endif // DEBUG
+
+ iRemoteLockItems = iCoeEnv->ReadDesC16ArrayResourceL( R_REMOTELOCK_ARRAY );
+#endif // RD_REMOTELOCK
+
+
+ if(wcdmaSupported || upinSupported)
+ {
+ iUpinItems = iCoeEnv->ReadDesC16ArrayResourceL( R_UPIN_ARRAY );
+ iCodeItems = iCoeEnv->ReadDesC16ArrayResourceL( R_CODE_ARRAY );
+ }
+ else
+ {
+ iUpinItems = NULL;
+ iCodeItems = NULL;
+ }
+
+ iPinItems = iCoeEnv->ReadDesC16ArrayResourceL( R_PIN_ARRAY );
+ iSecurityItems = iCoeEnv->ReadDesC16ArrayResourceL( R_SECURITY_ARRAY );
+ iSatItems = iCoeEnv->ReadDesC16ArrayResourceL( R_SAT_ARRAY );
+
+ CreateListBoxItemsL();
+ }
+
+
+// ---------------------------------------------------------------------------
+// CGSSettListIdleContainer::CreateListBoxItemsL()
+//
+//
+// ---------------------------------------------------------------------------
+//
+void CGSSimSecPluginContainer::CreateListBoxItemsL()
+ {
+ TBool wcdmaSupported(FeatureManager::FeatureSupported( KFeatureIdProtocolWcdma ));
+ TBool upinSupported(FeatureManager::FeatureSupported( KFeatureIdUpin ));
+
+ if(wcdmaSupported || upinSupported)
+ {
+ if( iUpinCodeSupported && !iUpinCodeRejected )
+ {
+ MakeCodeInUseItemL();
+ }
+
+ if( iUpinCodeActive )
+ {
+ MakeUpinRequestItemL();
+ MakeCodeItemL( EGSSettIdUpinCode );
+ }
+ else
+ {
+ MakePinRequestItemL();
+ MakeCodeItemL( EGSSettIdPinCode );
+ }
+ }
+ else //not wcdma or upin
+ {
+ MakePinRequestItemL();
+ MakeCodeItemL( EGSSettIdPinCode );
+ }
+
+ MakeCodeItemL( EGSSettIdPin2Code );
+ MakeAutolockItemL();
+
+#ifdef RD_REMOTELOCK
+ MakeRemoteLockItemL();
+#endif // RD_REMOTELOCK
+
+ MakeCodeItemL( EGSSettIdSecurityCode );
+ MakeSimChangeItemL();
+ if(!FeatureManager::FeatureSupported( KFeatureIdFfNoCugSupport ))
+ {
+ #ifdef _DEBUG
+ RDebug::Print( _L( "(GS)CGSSettListSimSecurityContainer::CreateListBoxItemsL() CUG supported!" ) );
+ #endif // DEBUG
+ MakeClosedUserGroupItemL();
+ }
+ else
+ {
+ #ifdef _DEBUG
+ RDebug::Print( _L( "(GS)CGSSettListSimSecurityContainer::CreateListBoxItemsL() CUG Not supported!" ) );
+ #endif // DEBUG
+ }
+
+ TInt support = iModel->ConfirmSatOperationsSupport();
+
+ if ( support == 1 ) // Confirmation allowed.
+ {
+ MakeSatOperationsItemL();
+ }
+ }
+
+// ---------------------------------------------------------------------------
+// CGSSettListIdleContainer::UpdateListBoxL( TInt aFeatureId )
+//
+//
+// ---------------------------------------------------------------------------
+//
+void CGSSimSecPluginContainer::UpdateListBoxL( TInt aFeatureId )
+ {
+ TBool wcdmaSupported(FeatureManager::FeatureSupported( KFeatureIdProtocolWcdma ));
+ TBool upinSupported(FeatureManager::FeatureSupported( KFeatureIdUpin ));
+ switch( aFeatureId )
+ {
+ case EGSSettIdCodeInUse:
+ if(wcdmaSupported || upinSupported)
+ {
+ RecreatePinItemsL();
+ }
+ break;
+ case EGSSettIdUpinRequest:
+ if(wcdmaSupported || upinSupported)
+ {
+ MakeUpinRequestItemL();
+ }
+ break;
+ case EGSSettIdUpinCode:
+ if(wcdmaSupported || upinSupported)
+ {
+ MakeCodeItemL( EGSSettIdUpinCode );
+ }
+ break;
+ case EGSSettIdPinRequest:
+ MakePinRequestItemL();
+ break;
+ case EGSSettIdPinCode:
+ MakeCodeItemL( EGSSettIdPinCode );
+ break;
+ case EGSSettIdPin2Code:
+ MakeCodeItemL( EGSSettIdPin2Code );
+ break;
+ case EGSSettIdAutolock:
+ MakeAutolockItemL();
+ break;
+ case EGSSettIdSecurityCode:
+ MakeCodeItemL( EGSSettIdSecurityCode );
+ break;
+ case EGSSettIdSimChange:
+ MakeSimChangeItemL();
+ break;
+
+ #ifdef RD_REMOTELOCK
+ case EGSSettIdRemoteLock:
+ MakeRemoteLockItemL();
+ break;
+ #endif // RD_REMOTELOCK
+ case EGSSettIdClosedUserGroup:
+ if(!FeatureManager::FeatureSupported( KFeatureIdFfNoCugSupport ))
+ {
+ MakeClosedUserGroupItemL();
+ }
+ break;
+ case EGSSettIdSatOperations:
+ MakeSatOperationsItemL();
+ break;
+ default:
+ return;
+ }
+
+ iListBox->HandleItemAdditionL();
+ }
+
+// ---------------------------------------------------------------------------
+// CGSSimSecPluginContainer::MakeCodeItemL()
+//
+//
+// ---------------------------------------------------------------------------
+//
+void CGSSimSecPluginContainer::MakeCodeItemL( const TInt aItemType )
+ {
+ HBufC* dynamicText = HBufC::NewLC( KGSBufSize128 );
+ TPtr ptrBuffer ( dynamicText->Des() );
+
+ TBool wcdmaSupported(FeatureManager::FeatureSupported( KFeatureIdProtocolWcdma ));
+ TBool upinSupported(FeatureManager::FeatureSupported( KFeatureIdUpin ));
+
+ if(wcdmaSupported || upinSupported)
+ {
+ iUpinCodeSupported = iSecurity->IsUpinSupportedL();
+ iUpinCodeActive = iSecurity->IsUpinActive();
+ iUpinCodeRejected = iSecurity->IsUpinBlocked();
+ }
+ else
+ {
+ iUpinCodeSupported = EFalse;
+ iUpinCodeActive = EFalse;
+ iUpinCodeRejected = EFalse;
+ }
+
+ switch ( aItemType )
+ {
+ case EGSSettIdUpinCode:
+ if( iUpinCodeSupported && !iUpinCodeRejected && iUpinCodeActive )
+ {
+ ptrBuffer = CodeItem;
+ iListboxItemArray->SetDynamicTextL( EGSSettIdUpinCode, ptrBuffer );
+ iListboxItemArray->SetItemVisibilityL( EGSSettIdUpinCode,
+ CGSListBoxItemTextArray::EVisible );
+ }
+ else
+ {
+ iListboxItemArray->SetItemVisibilityL( EGSSettIdUpinCode,
+ CGSListBoxItemTextArray::EInvisible );
+ }
+ break;
+ case EGSSettIdPin2Code:
+ ptrBuffer = CodeItem;
+ iListboxItemArray->SetDynamicTextL( EGSSettIdPin2Code, ptrBuffer );
+ iListboxItemArray->SetItemVisibilityL( EGSSettIdPin2Code,
+ CGSListBoxItemTextArray::EVisible );
+ break;
+ case EGSSettIdSecurityCode:
+ ptrBuffer = SecurityCodeItem;
+ iListboxItemArray->SetDynamicTextL( EGSSettIdSecurityCode,
+ ptrBuffer );
+ if(FeatureManager::FeatureSupported(KFeatureIdSapTerminalControlFw ))
+ {
+
+ {
+ // Check the code change policy from the SCP server.
+ TInt allowChange = 1;
+
+ RSCPClient scpClient;
+ TInt ret = scpClient.Connect();
+ if ( ret == KErrNone )
+ {
+ TBuf<KSCPMaxIntLength> policyBuf;
+ policyBuf.Zero();
+ if ( scpClient.GetParamValue( ESCPCodeChangePolicy, policyBuf ) == KErrNone )
+ {
+ TLex lex( policyBuf );
+ lex.Val( allowChange );
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(GS)CGSSettListSimSecurityContainer::\
+ MakeCodeInUseItemL(): Policy retrieved: %d"), allowChange );
+ #endif //DEBUG
+ }
+ else
+ {
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(GS)CGSSettListSimSecurityContainer::\
+ MakeCodeInUseItemL(): ERROR: Failed to retrieve the policy value") );
+ #endif //DEBUG
+ }
+ scpClient.Close();
+ }
+ else
+ {
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(GS)CGSSettListSimSecurityContainer::MakeCodeInUseItemL(): \
+ ERROR: Failed to connect to SCP") );
+ #endif //DEBUG
+ }
+
+ if ( allowChange == 1 )
+ {
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(GS)CGSSettListSimSecurityContainer::MakeCodeInUseItemL(): \
+ Code change allowed"));
+ #endif //DEBUG
+
+ iListboxItemArray->SetItemVisibilityL( EGSSettIdSecurityCode,
+ CGSListBoxItemTextArray::EVisible );
+ }
+ else
+ {
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(GS)CGSSettListSimSecurityContainer::MakeCodeInUseItemL():\
+ Code change disallowed"));
+ #endif //DEBUG
+
+ iListboxItemArray->SetItemVisibilityL( EGSSettIdSecurityCode,
+ CGSListBoxItemTextArray::EInvisible );
+ }
+ }
+
+ }
+ else
+ {
+
+ iListboxItemArray->SetItemVisibilityL( EGSSettIdSecurityCode,
+ CGSListBoxItemTextArray::EVisible );
+
+ }
+ break;
+ case EGSSettIdPinCode:
+ default:
+ if( !iUpinCodeSupported || iUpinCodeRejected || !iUpinCodeActive )
+ {
+ ptrBuffer = CodeItem;
+ iListboxItemArray->SetDynamicTextL( EGSSettIdPinCode,
+ ptrBuffer );
+ iListboxItemArray->SetItemVisibilityL( EGSSettIdPinCode,
+ CGSListBoxItemTextArray::EVisible );
+ }
+ else
+ {
+ iListboxItemArray->SetItemVisibilityL( EGSSettIdPinCode,
+ CGSListBoxItemTextArray::EInvisible );
+ }
+ break;
+ }
+ CleanupStack::PopAndDestroy( dynamicText );
+
+ }
+
+
+// ---------------------------------------------------------------------------
+// CGSSimSecPluginContainer::MakeAutolockItemL()
+//
+//
+// ---------------------------------------------------------------------------
+//
+void CGSSimSecPluginContainer::MakeAutolockItemL()
+ {
+ HBufC* dynamicText = HBufC::NewLC( KGSBufSize128 );
+ TPtr ptrBuffer ( dynamicText->Des() );
+
+ TInt period = iModel->AutoLockPeriod();
+
+ switch ( period )
+ {
+ case 0:
+ ptrBuffer = ( *iAutoLockItems )[ 0 ];
+ break;
+ case 1:
+ {
+ TBuf<KGSBufSize128> tempString;
+ StringLoader::Format( tempString,
+ ( ( *iAutoLockItems )[1] ),
+ -1, // no index in the key string
+ period );
+ ptrBuffer = tempString;
+ }
+ break;
+ default:
+ {
+ TBuf<KGSBufSize128> tempString;
+ StringLoader::Format( tempString,
+ ( ( *iAutoLockItems )[2] ),
+ -1, // no index in the key string
+ period );
+ ptrBuffer = tempString;
+ }
+ break;
+ }
+ iListboxItemArray->SetDynamicTextL( EGSSettIdAutolock, ptrBuffer );
+ CleanupStack::PopAndDestroy( dynamicText );
+ iListboxItemArray->SetItemVisibilityL( EGSSettIdAutolock,
+ CGSListBoxItemTextArray::EVisible );
+ }
+
+// ---------------------------------------------------------------------------
+// CGSSimSecPluginContainer::MakeSimChangeItemL()
+//
+//
+// ---------------------------------------------------------------------------
+//
+void CGSSimSecPluginContainer::MakeSimChangeItemL()
+ {
+ HBufC* dynamicText = HBufC::NewLC( KGSBufSize128 );
+ TPtr ptrBuffer ( dynamicText->Des() );
+
+ if ( iSecurity->IsLockEnabledL( RMobilePhone::ELockPhoneToICC ) )
+ {
+ ptrBuffer = ( *iSecurityItems )[0];
+ }
+ else
+ {
+ ptrBuffer = ( *iSecurityItems )[1];
+ }
+
+ iListboxItemArray->SetDynamicTextL( EGSSettIdSimChange, ptrBuffer );
+ CleanupStack::PopAndDestroy( dynamicText );
+ iListboxItemArray->SetItemVisibilityL( EGSSettIdSimChange,
+ CGSListBoxItemTextArray::EVisible );
+ }
+
+
+// ---------------------------------------------------------------------------
+// CGSSimSecPluginContainer:: MakePinRequestItemL()
+//
+//
+// ---------------------------------------------------------------------------
+//
+void CGSSimSecPluginContainer:: MakePinRequestItemL()
+ {
+ HBufC* dynamicText = HBufC::NewLC( KGSBufSize128 );
+ TPtr ptrBuffer ( dynamicText->Des() );
+
+ TBool wcdmaSupported(FeatureManager::FeatureSupported( KFeatureIdProtocolWcdma ));
+ TBool upinSupported(FeatureManager::FeatureSupported( KFeatureIdUpin ));
+ if(wcdmaSupported || upinSupported)
+ {
+ iUpinCodeSupported = iSecurity->IsUpinSupportedL();
+ iUpinCodeActive = iSecurity->IsUpinActive();
+ iUpinCodeRejected = iSecurity->IsUpinBlocked();
+ }
+ else
+ {
+ iUpinCodeSupported = EFalse;
+ iUpinCodeActive = EFalse;
+ iUpinCodeRejected = EFalse;
+ }
+
+ if( !iUpinCodeSupported || !iUpinCodeActive || iUpinCodeRejected )
+ {
+ if ( iSecurity->IsLockEnabledL( RMobilePhone::ELockICC ) )
+ {
+ ptrBuffer = ( *iPinItems )[0];
+ }
+ else
+ {
+ ptrBuffer = ( *iPinItems )[1];
+ }
+
+ iListboxItemArray->SetDynamicTextL( EGSSettIdPinRequest, ptrBuffer );
+ iListboxItemArray->SetItemVisibilityL( EGSSettIdPinRequest,
+ CGSListBoxItemTextArray::EVisible );
+ }
+ else
+ {
+ iListboxItemArray->SetItemVisibilityL( EGSSettIdPinRequest,
+ CGSListBoxItemTextArray::EInvisible );
+ }
+ CleanupStack::PopAndDestroy( dynamicText );
+ }
+
+
+// ---------------------------------------------------------------------------
+// CGSSimSecPluginContainer:: MakeUpinRequestItemL()
+//
+//
+// ---------------------------------------------------------------------------
+//
+void CGSSimSecPluginContainer:: MakeUpinRequestItemL()
+ {
+ TBool wcdmaSupported(FeatureManager::FeatureSupported( KFeatureIdProtocolWcdma ));
+ TBool upinSupported(FeatureManager::FeatureSupported( KFeatureIdUpin ));
+ if(wcdmaSupported || upinSupported)
+ {
+ HBufC* dynamicText = HBufC::NewLC( KGSBufSize128 );
+ TPtr ptrBuffer ( dynamicText->Des() );
+
+ iUpinCodeSupported = iSecurity->IsUpinSupportedL();
+ iUpinCodeActive = iSecurity->IsUpinActive();
+ iUpinCodeRejected = iSecurity->IsUpinBlocked();
+
+
+ if( iUpinCodeSupported && !iUpinCodeRejected && iUpinCodeActive )
+ {
+
+ if ( iSecurity->IsLockEnabledL( RMobilePhone::ELockUniversalPin ) )
+ {
+ ptrBuffer = ( *iPinItems )[0];
+ }
+ else
+ {
+ ptrBuffer = ( *iPinItems )[1];
+ }
+
+ iListboxItemArray->SetDynamicTextL( EGSSettIdUpinRequest, ptrBuffer );
+ iListboxItemArray->SetItemVisibilityL( EGSSettIdUpinRequest,
+ CGSListBoxItemTextArray::EVisible );
+ }
+ else
+ {
+ iListboxItemArray->SetItemVisibilityL( EGSSettIdUpinRequest,
+ CGSListBoxItemTextArray::EInvisible );
+ }
+
+ CleanupStack::PopAndDestroy( dynamicText );
+ }
+ }
+
+
+// ---------------------------------------------------------------------------
+// CGSSimSecPluginContainer:: MakeCodeInUseItemL()
+//
+//
+// ---------------------------------------------------------------------------
+//
+void CGSSimSecPluginContainer:: MakeCodeInUseItemL()
+ {
+ TBool wcdmaSupported(FeatureManager::FeatureSupported( KFeatureIdProtocolWcdma ));
+ TBool upinSupported(FeatureManager::FeatureSupported( KFeatureIdUpin ));
+ if(wcdmaSupported || upinSupported)
+ {
+ HBufC* dynamicText = HBufC::NewLC( KGSBufSize128 );
+ TPtr ptrBuffer ( dynamicText->Des() );
+ iUpinCodeSupported = iSecurity->IsUpinSupportedL();
+ iUpinCodeRejected = iSecurity->IsUpinBlocked();
+ if( iUpinCodeSupported && !iUpinCodeRejected )
+ {
+ if ( !iSecurity->IsUpinActive() )
+ {
+ ptrBuffer = ( *iCodeItems )[0];
+ }
+ else
+ {
+ ptrBuffer = ( *iCodeItems )[1];
+ }
+
+ iListboxItemArray->SetDynamicTextL( EGSSettIdCodeInUse, ptrBuffer );
+ iListboxItemArray->SetItemVisibilityL( EGSSettIdCodeInUse,
+ CGSListBoxItemTextArray::EVisible );
+ }
+ else
+ {
+
+ iListboxItemArray->SetItemVisibilityL( EGSSettIdCodeInUse,
+ CGSListBoxItemTextArray::EInvisible );
+ }
+
+ CleanupStack::PopAndDestroy( dynamicText );
+ }
+ }
+
+
+// ---------------------------------------------------------------------------
+// CGSSimSecPluginContainer:: MakeClosedUserGroupItemL()
+//
+//
+// ---------------------------------------------------------------------------
+//
+void CGSSimSecPluginContainer::MakeClosedUserGroupItemL()
+ {
+ HBufC* dynamicText = HBufC::NewLC( KGSBufSize128 );
+ TPtr ptrBuffer ( dynamicText->Des() );
+
+ TInt cugMode = 0;
+ TInt cugDefault;
+ TInt err = KErrNone;
+
+ RSSSettings cugSettings;
+ User::LeaveIfError( cugSettings.Open() );
+
+ err = cugSettings.Get( ESSSettingsDefaultCug, cugDefault );
+ User::LeaveIfError( err );
+
+ if ( cugSettings.Get( ESSSettingsCug , cugMode ) != KErrNone )
+ {// getting mode was not succesful
+ cugMode = cugDefault;
+ }
+
+ TBuf<KMaxStringLength> string;
+
+ if ( cugMode == cugDefault )
+ {
+ StringLoader::Load( string, R_CUG_NETWORK_DEFAULT );
+ ptrBuffer = string;
+ }
+ else
+ {
+ switch ( cugMode )
+ {
+ case ESSSettingsCugSuppress:
+ StringLoader::Load( string, R_CUG_OFF );
+ ptrBuffer = string;
+ break;
+ default:
+ StringLoader::Load( string, R_CUG_ON );
+ ptrBuffer = string;
+ break;
+ }
+ }
+
+ cugSettings.Close();
+
+ iListboxItemArray->SetDynamicTextL( EGSSettIdClosedUserGroup, ptrBuffer );
+ iListboxItemArray->SetItemVisibilityL( EGSSettIdClosedUserGroup,
+ CGSListBoxItemTextArray::EVisible );
+ CleanupStack::PopAndDestroy( dynamicText );
+
+ }
+
+
+// ---------------------------------------------------------------------------
+// CGSSimSecPluginContainer:: MakeSatOperationsItemL()
+//
+//
+// ---------------------------------------------------------------------------
+//
+void CGSSimSecPluginContainer::MakeSatOperationsItemL()
+ {
+ HBufC* dynamicText = HBufC::NewLC( KGSBufSize128 );
+ TPtr ptrBuffer ( dynamicText->Des() );
+
+ TInt satOperation = iModel->SatOperations();
+
+ if ( satOperation == 1 )
+ {
+ ptrBuffer = ( *iSatItems )[1];
+ }
+ else
+ {
+ ptrBuffer = ( *iSatItems )[0];
+ }
+
+ iListboxItemArray->SetDynamicTextL( EGSSettIdSatOperations, ptrBuffer );
+ iListboxItemArray->SetItemVisibilityL( EGSSettIdSatOperations,
+ CGSListBoxItemTextArray::EVisible );
+ CleanupStack::PopAndDestroy( dynamicText );
+
+ }
+
+
+// ---------------------------------------------------------------------------
+// CGSSimSecPluginContainer::CurrentFeatureId()
+//
+// ---------------------------------------------------------------------------
+//
+TInt CGSSimSecPluginContainer::CurrentFeatureId() const
+ {
+ return iListboxItemArray->CurrentFeature( );
+ }
+
+
+// ---------------------------------------------------------------------------
+// CGSSimSecPluginContainer::GetHelpContext() const
+// Gets Help
+//
+// ---------------------------------------------------------------------------
+//
+void CGSSimSecPluginContainer::GetHelpContext( TCoeHelpContext& aContext ) const
+ {
+ aContext.iMajor = KUidGS;
+ aContext.iContext = KSET_HLP_SECURITY_DEVICE_SIM;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CGSSettListIdleContainer::RecreatePinItemsL()
+//
+//
+// ---------------------------------------------------------------------------
+//
+void CGSSimSecPluginContainer::RecreatePinItemsL()
+ {
+ TBool wcdmaSupported(FeatureManager::FeatureSupported( KFeatureIdProtocolWcdma ));
+ TBool upinSupported(FeatureManager::FeatureSupported( KFeatureIdUpin ));
+ if(wcdmaSupported || upinSupported)
+ {
+ //check if UPIN code is supported and not rejected
+ if( iSecurity->IsUpinSupportedL() )
+ {
+ iUpinCodeSupported = ETrue;
+
+ //check if UPIN code is active
+ if( iSecurity->IsUpinActive() )
+ {
+ iUpinCodeActive = ETrue;
+ }
+ else
+ {
+ iUpinCodeActive = EFalse;
+ }
+
+ //Check whether UPIN is blocked
+
+ if( !iSecurity->IsUpinBlocked() )
+ {
+ iUpinCodeRejected = EFalse;
+ }
+ else
+ {
+ iUpinCodeRejected = ETrue;
+ }
+ }
+ else
+ {
+ iUpinCodeSupported = EFalse;
+ iUpinCodeActive = EFalse;
+ }
+
+ MakeCodeInUseItemL();
+ MakeUpinRequestItemL();
+ MakeCodeItemL( EGSSettIdUpinCode );
+ MakePinRequestItemL();
+ MakeCodeItemL( EGSSettIdPinCode );
+ }
+ }
+
+
+// ---------------------------------------------------------------------------
+// CGSSimSecPluginContainer::HandleResourceChangeL()
+//
+// Updates view layout
+// ---------------------------------------------------------------------------
+//
+void CGSSimSecPluginContainer::HandleResourceChangeL( TInt aType )
+ {
+ if( aType == KAknsMessageSkinChange ||
+ aType == KEikDynamicLayoutVariantSwitch )
+ {
+ TRect mainPaneRect;
+ AknLayoutUtils::LayoutMetricsRect( AknLayoutUtils::EMainPane,
+ mainPaneRect );
+ SetRect( mainPaneRect );
+ DrawNow();
+ }
+ }
+
+
+
+// ---------------------------------------------------------------------------
+// CGSSimSecPluginContainer::MakeRemoteLockItemL()
+//
+//
+// ---------------------------------------------------------------------------
+//
+void CGSSimSecPluginContainer::MakeRemoteLockItemL()
+ {
+ #ifdef RD_REMOTELOCK
+ #ifdef _DEBUG
+ RDebug::Print( _L( "(SECUI)CGSSimSecPluginContainer::MakeRemoteLockItemL() - Enter" ) );
+ #endif // DEBUG
+
+ HBufC* statusItemText = HBufC::NewLC( KGSBufSize128 );
+ TPtr ptrRemoteLockStatus( statusItemText->Des() );
+ TBool remoteLockStatus( EFalse );
+ CRemoteLockSettings* remoteLockSettings = CRemoteLockSettings::NewLC();
+
+ if ( remoteLockSettings->GetEnabled( remoteLockStatus ) )
+ {
+ if ( remoteLockStatus )
+ {
+ // Remote lock enabled
+ ptrRemoteLockStatus = (*iRemoteLockItems)[0];
+ }
+ else
+ {
+ // Remote lock disabled
+ ptrRemoteLockStatus = (*iRemoteLockItems)[1];
+ }
+ }
+ else
+ {
+ // Failed to get remote lock status
+ // Undefined situation. Display empty item
+ ptrRemoteLockStatus = KRemoteLockEmptyItem;
+ }
+
+ CleanupStack::PopAndDestroy( remoteLockSettings );
+ remoteLockSettings = NULL;
+
+ // Remote Lock item
+ iListboxItemArray->SetDynamicTextL( EGSSettIdRemoteLock, ptrRemoteLockStatus );
+ CleanupStack::PopAndDestroy( statusItemText );
+ iListboxItemArray->SetItemVisibilityL( EGSSettIdRemoteLock, CGSListBoxItemTextArray::EVisible );
+
+ #ifdef _DEBUG
+ RDebug::Print( _L( "(SECUI)CGSSimSecPluginContainer::MakeRemoteLockItemL() - Exit" ) );
+ #endif // DEBUG
+ #endif // RD_REMOTELOCK
+ return;
+ }
+
+
+//End of File
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/securitydialogs/SecUi/GSSimSecPlugin/Src/GSSimSecPluginImplementationTable.cpp Wed Sep 01 12:19:59 2010 +0100
@@ -0,0 +1,61 @@
+/*
+* Copyright (c) 2005 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: ECOM proxy table for this plugin
+*
+*/
+
+
+// System includes
+#include <e32std.h>
+#include <ecom/implementationproxy.h>
+
+// User includes
+#include "GSSimSecPlugin.h"
+
+// Constants
+const TImplementationProxy KGSSimSecPluginImplementationTable[] =
+ {
+ IMPLEMENTATION_PROXY_ENTRY( 0x10207439, CGSSimSecPlugin::NewL )
+ };
+
+
+// ---------------------------------------------------------------------------
+// ImplementationGroupProxy
+// Gate/factory function
+//
+// ---------------------------------------------------------------------------
+//
+EXPORT_C const TImplementationProxy* ImplementationGroupProxy(
+ TInt& aTableCount )
+ {
+ aTableCount = sizeof( KGSSimSecPluginImplementationTable )
+ / sizeof( TImplementationProxy );
+ return KGSSimSecPluginImplementationTable;
+ }
+
+
+// ---------------------------------------------------------------------------
+// E32Dll
+// EKA1 entry point
+//
+// ---------------------------------------------------------------------------
+//
+#ifndef EKA2
+GLDEF_C TInt E32Dll( TDllReason /*aReason*/ )
+ {
+ return( KErrNone );
+ }
+#endif // EKA2
+
+// End of File
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/securitydialogs/SecUi/GSSimSecPlugin/Src/GSSimSecPluginModel.cpp Wed Sep 01 12:19:59 2010 +0100
@@ -0,0 +1,184 @@
+/*
+* Copyright (c) 2005 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: Model for Device & SIM security plug-in.
+*
+*/
+
+
+// INCLUDES
+#include "GSSimSecPluginModel.h"
+
+#include <settingsinternalcrkeys.h>
+
+// EXTERNAL DATA STRUCTURES
+
+// EXTERNAL FUNCTION PROTOTYPES
+
+// CONSTANTS
+
+// MACROS
+
+// LOCAL CONSTANTS AND MACROS
+const TInt KGSSettingOff = 0;
+// default value for autolock period
+const TInt KGSDefaultAutoLockTime = 0;
+
+// MODULE DATA STRUCTURES
+
+// LOCAL FUNCTION PROTOTYPES
+
+// ============================= LOCAL FUNCTIONS ==============================
+
+// ========================= MEMBER FUNCTIONS =================================
+
+// ----------------------------------------------------------------------------
+// CGSSimSecPluginModel::NewL
+//
+// Symbian OS two-phased constructor
+// ----------------------------------------------------------------------------
+//
+CGSSimSecPluginModel* CGSSimSecPluginModel::NewL()
+ {
+ CGSSimSecPluginModel* self = new( ELeave ) CGSSimSecPluginModel;
+ CleanupStack::PushL( self );
+ self->ConstructL();
+
+ CleanupStack::Pop( self );
+ return self;
+ }
+
+
+// ----------------------------------------------------------------------------
+// CGSSimSecPluginModel::CGSSimSecPluginModel
+//
+//
+// C++ default constructor can NOT contain any code, that might leave.
+// ----------------------------------------------------------------------------
+//
+CGSSimSecPluginModel::CGSSimSecPluginModel()
+ {
+
+ }
+
+
+// ----------------------------------------------------------------------------
+// CGSSimSecPluginModel::ConstructL
+//
+// Symbian OS default constructor can leave.
+// ----------------------------------------------------------------------------
+//
+void CGSSimSecPluginModel::ConstructL()
+ {
+ iSecurityRepository = CRepository::NewL( KCRUidSecuritySettings );
+ iPersonalizationRepository =
+ CRepository::NewL( KCRUidPersonalizationSettings );
+ }
+
+
+// ----------------------------------------------------------------------------
+// CGSSimSecPluginModel::~CGSSimSecPluginModel
+//
+// Destructor
+// ----------------------------------------------------------------------------
+//
+CGSSimSecPluginModel::~CGSSimSecPluginModel()
+ {
+ delete iSecurityRepository;
+ iSecurityRepository = NULL;
+
+ delete iPersonalizationRepository;
+ iPersonalizationRepository = NULL;
+ }
+
+
+// ----------------------------------------------------------------------------
+// CGSSimSecPluginModel::AutoLockPeriod()
+//
+// Reads Autolock period from .ini file and returns it
+// ----------------------------------------------------------------------------
+//
+TInt CGSSimSecPluginModel::AutoLockPeriod()
+ {
+ TInt period = KGSSettingOff;
+
+ if ( iSecurityRepository->
+ Get( KSettingsAutoLockTime, period ) != KErrNone )
+ {
+ period = KGSDefaultAutoLockTime;
+ iSecurityRepository->Set( KSettingsAutoLockTime, period );
+ }
+
+ return period;
+ }
+
+// ----------------------------------------------------------------------------
+// CGSSimSecPluginModel::SetAutoLockPeriod
+//
+// Writes Autolock period time to Cenrep
+// ----------------------------------------------------------------------------
+//
+TBool CGSSimSecPluginModel::SetAutoLockPeriod( TInt aLockTime )
+ {
+ TInt ret = iSecurityRepository->Set( KSettingsAutoLockTime, aLockTime );
+
+ return ret;
+ }
+
+// ----------------------------------------------------------------------------
+// CGSSimSecPluginModel::SatOperations()
+//
+// Reads SatOperations value from .ini file and returns it
+// ----------------------------------------------------------------------------
+//
+TInt CGSSimSecPluginModel::SatOperations()
+ {
+ TInt value = KGSSettingOff;
+
+ iPersonalizationRepository->Get( KSettingsConfirmSatOperations, value );
+
+ return value;
+ }
+
+
+// ----------------------------------------------------------------------------
+// CGSSimSecPluginModel::SetSatOperations
+//
+// Write user changes to the .ini file
+// ----------------------------------------------------------------------------
+//
+TBool CGSSimSecPluginModel::SetSatOperations( TInt aValue )
+ {
+ TInt ret = iPersonalizationRepository->
+ Set( KSettingsConfirmSatOperations, aValue );
+
+ return ret;
+ }
+
+
+// ----------------------------------------------------------------------------
+// CGSSimSecPluginModel::ConfirmSatOperationsSupport
+//
+// Get Confirm Sat Operations supported value
+// ----------------------------------------------------------------------------
+//
+TInt CGSSimSecPluginModel::ConfirmSatOperationsSupport()
+ {
+ TInt ret = 0;
+ iPersonalizationRepository->
+ Get( KSettingsConfirmSatOperationsSupported, ret );
+
+ return ret;
+ }
+
+// End of File
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/securitydialogs/SecUi/GSSimSecPlugin/loc/gssecurity.loc Wed Sep 01 12:19:59 2010 +0100
@@ -0,0 +1,233 @@
+/*
+* Copyright (c) 2005 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: Localization strings for Device & SIM Security view
+*
+*/
+
+
+//-------------------------------------------------------------
+// security view
+//-------------------------------------------------------------
+
+//d: Command in general settings security folder, opens Device & Sim security view
+//l: list_setting_pane_t1
+//w:
+//r:3.0
+#define qtn_set_dev_sim_security "Device & Sim security"
+
+//d:Text in title pane
+//d:Device and SIM Security view
+//l:title_pane_t2/opt9
+//w:
+//r: 3.1
+#define qtn_set_title_security_phone_and_sim "Phone and SIM"
+
+//-------------------------------------------------------------
+// device & sim security view
+//-------------------------------------------------------------
+//d:Code in use setting item in device & sim security settings folder
+//l: list_setting_pane_t1
+//w:
+//r:3.0
+#define qtn_set_code_in_use "Code in use"
+
+
+//d: pin code request setting item in device & sim security settings folder
+//l: list_setting_pane_t1
+//w:
+//r:3.0
+#define text_pin_code_cntrl "PIN code request"
+
+//d: Upin code request setting item in device & sim security settings folder
+//l: list_setting_pane_t1
+//w:
+//r:3.0
+#define qtn_set_upin_code_req "UPIN code request"
+
+
+//d: sim change security setting item in device & sim security settings folder
+//l: list_setting_pane_t1
+//w:
+//r:3.0
+#define qtn_set_sim_change_sec "SIM change security"
+
+//d: atulock period setting item in device & sim security settings folder
+//l: list_setting_pane_t1
+//w:
+//r:3.0
+#define qtn_set_autolock "Autolock period"
+
+//d: security code setting item in device & sim security settings folder
+//l: list_setting_pane_t1
+//w:
+//r:3.0
+#define qtn_set_sec_code "Security code"
+
+//d:Number query: autolock period time in minutes.
+//l:popup_query_data_window
+//w:
+//r:3.0
+#define qtn_set_autolock_define_time "Autolock period time (min)"
+
+//d: pin code setting item in device & sim security settings folder
+//l: list_setting_pane_t1
+//w:
+//r:3.0
+#define text_pin_change "PIN code"
+
+//d: upin code setting item in device & sim security settings folder
+//l: list_setting_pane_t1
+//w:
+//r:3.0
+#define qtn_set_upin_code "UPIN code"
+
+//d: pin2 code setting item in device & sim security settings folder
+//l: list_setting_pane_t1
+//w:
+//r:3.0
+#define text_pin2_change "PIN2 code"
+
+//d: closed user group setting item in device & sim security settings folder
+//l: list_setting_pane_t1
+//w:
+//r:3.0
+#define text_closed_user_groups "Closed user group"
+
+//d: item, network default, to closed user group popup list
+//l: list_set_graphic_pane_t1
+//w:
+//r:3.0
+#define text_cug_default "Network default"
+
+//d: item, on, to closed user group popup list
+//l: list_set_graphic_pane_t1
+//w:
+//r:3.0
+#define text_cug_group "On"
+
+//d: item, off, to closed user group popup list
+//l: list_set_graphic_pane_t1
+//w:
+//r:3.0
+#define text_cug_suppress "Off"
+
+//d: text to number query asking for cug index
+//l: popup_query_data_window
+//w:
+//r:3.0
+#define text_give_group_number "Group number:"
+
+//d: text to cug error note when entered index is too large
+//l: popup_note_window
+//w:
+//r:3.0
+#define text_cug_error "Value too large"
+
+//d:sat operations setting item in device & sim security settings folder
+//l:list_setting_pane_t1
+//w:
+//r:3.0
+#define text_simatk_setting "Confirm SAT operations"
+
+//d:list item in pin code request setting page
+//l:list_set_graphic_pane_t1
+//w:
+//r:3.0
+#define text_pin_code_off "Off"
+
+//d:list item in pin code request setting page
+//l:list_set_graphic_pane_t1
+//w:
+//r:3.0
+#define text_pin_code_on "On"
+
+//d:list item in code in use setting page
+//l:list_set_graphic_pane_t1
+//w:
+//r:3.0
+#define qtn_set_pin "PIN"
+
+//d:list item in code in use setting page
+//l:list_set_graphic_pane_t1
+//w:
+//r:3.0
+#define qtn_set_upin "UPIN"
+
+//d:list item in sim change security setting page
+//l:list_set_graphic_pane_t1
+//w:
+//r:3.0
+#define qtn_set_sim_change_sec_off "Off"
+
+//d:list item in sim change security setting page
+//l:list_set_graphic_pane_t1
+//w:
+//r:3.0
+#define qtn_set_sim_change_sec_on "On"
+
+//d:List item in autolock period setting page
+//l:list_set_graphic_pane_t1
+//w:
+//r:3.0
+#define qtn_set_autolock_off "Autolock off"
+
+//d:List item in autolock period setting page
+//l:list_set_graphic_pane_t1
+//w:
+//r:3.0
+#define qtn_set_autolock_defined "User defined"
+
+//d:Autolock period settings (plural) item edit - setting selection data, %N is number 2-999
+//l:list_set_graphic_pane_t1
+//w:
+//r:3.0
+#define qtn_set_autolock_value_min "%N minutes"
+
+//d:Autolock period settings (singular) item edit - setting selection data, %N is number 1
+//l:list_set_graphic_pane_t1
+//w:
+//r:3.0
+#define qtn_set_autolock_min_one "%N minute"
+
+//d:Confirm SAT operations value on
+//l:list_set_graphic_pane_t1
+//w:
+//r:3.0
+#define text_simatk_notes_on "Asked"
+
+//d:Confirm SAT operations value off
+//l:list_set_graphic_pane_t1
+//w:
+//r:3.0
+#define text_simatk_notes_off "Not asked"
+
+//d: Remote lock setting item in device & sim security settings folder
+//l: list_setting_pane_t1
+//w:
+//r:3.2
+#define qtn_set_remotelock_status "Allow remote lock"
+
+//d:Remote lock setting state in remote lock setting item in device & sim security settings folder
+//l:list_set_graphic_pane_t1
+//w:
+//r:3.2
+#define qtn_set_remotelock_off "No"
+
+//d:Remote lock setting state in remote lock setting item in device & sim security settings folder
+//l:list_set_graphic_pane_t1
+//w:
+//r:3.2
+#define qtn_set_remotelock_on "Yes"
+
+//End of File
--- a/securitydialogs/SecUi/Inc/SecQueryUi.h Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,249 +0,0 @@
-/*
-* Copyright (c) 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: CSecQueryUi API can be used to implement UI dialogs for
-* SecUi plugins.
-*/
-
-
-#ifndef C_SECQUERYUI_H
-#define C_SECQUERYUI_H
-
-#include <e32base.h> // CActive
-#include <hb/hbcore/hbdevicedialogsymbian.h> // MHbDeviceDialogObserver
-#include <etelmm.h>
-#include <e32property.h>
-
-#define ESecUiTypeMask 0x0FFFFFF
-#define ESecUiBasicTypeMask 0x00F0000
-
-#define ESecUiCancelSupported 0x1000000
-#define ESecUiCancelNotSupported 0x0000000
-
-#define ESecUiEmergencySupported 0x2000000
-#define ESecUiEmergencyNotSupported 0x0000000
-
-#define ESecUiAlphaSupported 0x4000000
-#define ESecUiAlphaNotSupported 0x0000000
-
-#define ESecUiSecretSupported 0x8000000
-#define ESecUiSecretNotSupported 0x0000000
-
-#define ESecUiBasicTypeCheck 0x0010000
-#define ESecUiBasicTypeMultiCheck 0x0020000
-
-class MSecQueryUiCertificateDetailsProvider;
-class MSecQueryUiDrmDetailsProvider;
-class CHbDeviceDialogSymbian;
-class CHbSymbianVariantMap;
-class CActiveSchedulerWait;
-class CApaMaskedBitmap;
-
-typedef TBuf<80> TSecUiPassword;
-
-enum R_SECUI_ERROR_CODES
- {
- R_CODE_ERROR=0x58ED0100,
- R_SEC_BLOCKED,
- R_CONFIRMATION_NOTE,
- R_PIN_CODE_CHANGED_NOTE,
- R_PIN2_CODE_CHANGED_NOTE,
- R_PIN2_REJECTED,
- R_UPIN_CODE_CHANGED_NOTE,
- R_SIM_NOT_ALLOWED,
- R_SIM_ALLREADY_OFF,
- R_SIM_OFF,
- R_SIM_ALLREADY_ON,
- R_OPERATION_NOT_ALLOWED,
- R_SECUI_TEXT_AUTOLOCK_MUST_BE_ACTIVE,
- R_PIN_NOT_ALLOWED,
- R_REMOTELOCK_INVALID_CODE,
- R_SIM_ON,
- R_INSERT_SIM,
- R_CODES_DONT_MATCH,
- R_PIN_BLOCKED_NOTE,
- R_UPIN_NOT_ALLOWED,
- R_SECURITY_CODE_CHANGED_NOTE,
- R_SECUI_ERROR_CODE_LAST
- };
-
-/**
- * CSecQueryUi provides UI dialogs for SW installation. UI dialogs are
- * global and they can be used in a non-UI code (like in SIF plugins).
- * SW install device dialog plugin implements the UI dialogs.
- *
- * @lib SecQueryUi.lib
- * @since 10.1
- */
-typedef TBuf<80> TSecUiPassword;
-
-class CSecQueryUi : public CActive, public MHbDeviceDialogObserver
- {
- public: // constructor and destructor
- /**
- * Creates new CSecQueryUi object and pushes it into cleanup stack.
- * @returns CSecQueryUi* -- new CSecQueryUi object
- */
- IMPORT_C static CSecQueryUi* NewLC();
-
- /**
- * Creates new CSecQueryUi object.
- * @returns CSecQueryUi* -- new CSecQueryUi object
- */
- IMPORT_C static CSecQueryUi* NewL();
-
- /**
- * Destructor.
- */
- CSecQueryUi::~CSecQueryUi();
-
- public: // new functions
- /**
- * Displays install confirmation query synchronously. Synchronous function
- * returns after the user has accepted or cancelled the query.
- * @param aAppDetails - other application details (like supplier)
- * @return TBool - ETrue if user accepted the query, EFalse otherwise
- */
- IMPORT_C TBool InstallConfirmationQueryL( TInt aType, RMobilePhone::TMobilePassword& password );
- IMPORT_C TInt SecQueryDialog(const TDesC& aCaption, TDes& aDataText, TInt aMinLength,TInt aMaxLength,TInt aMode);
- /*
- IMPORT_C TBool InstallConfirmationQueryL( const TDesC& aAppName,
- const TDesC& aIconFile, const TDesC& aAppVersion, TInt aAppSize,
- const TDesC& aAppDetails );
- */
-
- /**
- * Displays information note. If the information note is already displayed, then
- * only the dialog text is updated. Information note is closed automatically after
- * pre-defined time (e.g. after 1.5 seconds). User can also press any key to close
- * the note faster.
- * @param aText - info text to be displayed
- */
- IMPORT_C void DisplayInformationNoteL( const TDesC& aText );
-
- /**
- * Displays warning note. If the warning note is already displayed, then only the note
- * text is updated. Warning note is closed automatically after pre-defined time (e.g.
- * after three seconds). User can also press any key to close the note faster.
- * @param aText - error text to be displayed
- */
- IMPORT_C void DisplayWarningNoteL( const TDesC& aText );
-
- /**
- * Displays error note. If the error note is already displayed, then only the dialog
- * text is updated. Error note is closed automatically after pre-defined time (e.g.
- * after three seconds). User can also press any key to close the note faster.
- * @param aText - error text to be displayed
- */
- IMPORT_C void DisplayErrorNoteL( const TDesC& aText );
-
- /**
- * Displays permanent note. If the permanent note is already displayed, then only the
- * dialog text is updated. User cannot cancel or close permanent notes. Permanent note
- * is displayed until ClosePermanentNote() is called. Delayed notes are displayed after
- * pre-defined delay time, and they may be closed before they appear on the screen.
- * @param aText - text to be displayed
- * @param aIsDelayed - ETrue if delayed dialog should be used
- */
- IMPORT_C void DisplayPermanentNoteL( const TDesC& aText );
-
- /**
- * Closes the permanent note.
- */
- IMPORT_C void ClosePermanentNote();
-
- /**
- * Displays progress note using aFinalValue. Use UpdateProgressNoteValueL() to
- * update the progress bar. If the progress note is already active, then only
- * the note text and final value are updated.
- * @param aText - text displayed in progress note
- * @param aFinalValue - final value of the progress bar
- */
- IMPORT_C void DisplayProgressNoteL( const TDesC& aText, TInt aFinalValue );
-
- /**
- * Updates the progress bar in progress note. Progress bar shows 0% when
- * aNewValue is zero (or less than zero), and full 100% when aNewValue is
- * equal (or more than) the final value set with SetProgressNoteFinalValueL().
- * @param aNewValue - new value for the progress bar
- */
- IMPORT_C void UpdateProgressNoteValueL( TInt aNewValue );
-
- /**
- * Closes the progress note. TRequestStatus set in DisplayProgressNoteL() is
- * completed with KErrNone. Note that it is completed with KErrCancel if user
- * cancels the note, or with error code if some error happens.
- */
- IMPORT_C void CloseProgressNoteL();
-
- /**
- * Displays wait note. If the wait note is already displayed, then only the note
- * text is updated. Wait note is like progress note, except that it is not known
- * how long the operation takes. User can cancel the operation as in progress note.
- * @param aText - text to be displayed
- * @param aStatus - request status that indicates if user cancels the note
- */
- IMPORT_C void DisplayWaitNoteL( const TDesC& aText, TRequestStatus& aStatus );
-
- /**
- * Closes the wait note.
- */
- IMPORT_C void CloseWaitNote();
-
- /**
- * Launches help with the help context aContext for application aUid.
- * @param aContext - help context to be displayed
- * @param aUid - application which help needs to be launched
- */
- IMPORT_C void LaunchHelpL( const TDesC& aContext, const TUid& aUid );
-
- /**
- * Launches SW Install application (UID 0x101F8512) help using the
- * help context aContext.
- * @param aContext - help context to be displayed
- */
- IMPORT_C void LaunchHelpL( const TDesC& aContext );
-
- protected: // from CActive
- void DoCancel();
- void RunL();
-
- private: // from MHbDeviceDialogObserver
- void DataReceived( CHbSymbianVariantMap& aData );
- void DeviceDialogClosed( TInt aCompletionCode );
-
- private: // new functions
- CSecQueryUi();
- void ConstructL();
- void ClearParamsL();
- void ClearParamsAndSetNoteTypeL( TInt aType );
- void AddParamL( const TDesC& aKey, TInt aValue );
- void AddParamL( const TDesC& aKey, const TDesC& aValue );
- void DisplayDeviceDialogL();
- TInt WaitUntilDeviceDialogClosed();
-
- private: // data
- CHbDeviceDialogSymbian* iDeviceDialog;
- CHbSymbianVariantMap* iVariantMap;
- CActiveSchedulerWait* iWait;
- TBool iIsDisplayingDialog;
- TInt iCompletionCode;
- TInt iReturnValue;
-public:
- // previoulsy it was RMobilePhone::TMobilePassword iPassword; but this was only 10 bytes
- TSecUiPassword iPassword;
- };
-
-
-#endif // C_SECQUERYUI_H
-
--- a/securitydialogs/SecUi/Inc/SecUiAutoLockSettingPage.h Tue Aug 31 16:04:40 2010 +0300
+++ b/securitydialogs/SecUi/Inc/SecUiAutoLockSettingPage.h Wed Sep 01 12:19:59 2010 +0100
@@ -23,7 +23,7 @@
#include <aknradiobuttonsettingpage.h>
#include <eikmobs.h>
-class CAutoLockSettingPage : public CBase
+class CAutoLockSettingPage : public CAknRadioButtonSettingPage
{
public:
/**
@@ -59,7 +59,6 @@
void HandlePointerEventL(const TPointerEvent& aPointerEvent);
private: // data
- // CEikButtonGroupContainer* iPopoutCba;
TInt& iAutoLockValue;
TInt iMaximum;
TInt iOriginalIndex;
--- a/securitydialogs/SecUi/Inc/SecUiRemoteLockSettingPage.h Tue Aug 31 16:04:40 2010 +0300
+++ b/securitydialogs/SecUi/Inc/SecUiRemoteLockSettingPage.h Wed Sep 01 12:19:59 2010 +0100
@@ -71,8 +71,6 @@
private: // data
- CEikButtonGroupContainer* iPopoutCba;
-
/** Remote lock status */
TInt& iRemoteLockStatus;
TInt iPrevSelectionItem;
--- a/securitydialogs/SecUi/Inc/SecUiWait.h Tue Aug 31 16:04:40 2010 +0300
+++ b/securitydialogs/SecUi/Inc/SecUiWait.h Wed Sep 01 12:19:59 2010 +0100
@@ -76,24 +76,9 @@
TInt iRequestType;
};
-// CAutolockQuery, absorbs all the key presses.
-class CAutolockQuery : public CBase
- {
- public:
- static CAutolockQuery* NewLC();
- virtual ~CAutolockQuery();
- private:
- virtual TKeyResponse OfferKeyEventL(const TKeyEvent& /*aKeyEvent*/,TEventCode /*aType*/);
- private:
- CAutolockQuery();
- void ConstructL();
- private: // Data
- CEikAppUi* iAppUi;
-
- };
// CWaitAbsorbingControl, absorbs all the key presses.
-class CWaitAbsorbingControl : public CBase
+class CWaitAbsorbingControl : public CCoeControl
{
public:
static CWaitAbsorbingControl* NewLC();
--- a/securitydialogs/SecUi/Src/SecQueryUi.cpp Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,603 +0,0 @@
-/*
-* Copyright (c) 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: Implementation of RSecQueryUiCli class.
-*
-*/
-
-#include "SecQueryUi.h" // CSecQueryUi
-// #include <SecQueryUidefs.h> // SIF UI device dialog parameters
-#include <hb/hbcore/hbdevicedialogsymbian.h> // CHbDeviceDialogSymbian
-#include <hb/hbcore/hbsymbianvariant.h> // CHbSymbianVariantMap
-#include <apgicnfl.h> // CApaMaskedBitmap
-#include <securityuisprivatepskeys.h>
-
-#include <cphcltemergencycall.h>
-#include <SCPClient.h>
-#include "SecUi.h"
-
-const TUid KSWInstHelpUid =
- {
- 0x101F8512
- }; // TODO
-
-
-// ======== MEMBER FUNCTIONS ========
-
-// ---------------------------------------------------------------------------
-// CSecQueryUi::NewLC()
-// ---------------------------------------------------------------------------
-//
-EXPORT_C CSecQueryUi* CSecQueryUi::NewLC()
- {
- CSecQueryUi* self = new (ELeave) CSecQueryUi();
- CleanupStack::PushL(self);
- self->ConstructL();
- return self;
- }
-
-// ---------------------------------------------------------------------------
-// CSecQueryUi::NewL()
-// ---------------------------------------------------------------------------
-//
-EXPORT_C CSecQueryUi* CSecQueryUi::NewL()
- {
- CSecQueryUi* self = CSecQueryUi::NewLC();
- CleanupStack::Pop(self);
- return self;
- }
-
-// ---------------------------------------------------------------------------
-// CSecQueryUi::~CSecQueryUi()
-// ---------------------------------------------------------------------------
-//
-CSecQueryUi::~CSecQueryUi()
- {
- Cancel();
- delete iWait;
- delete iDeviceDialog;
- delete iVariantMap;
- }
-
-// ---------------------------------------------------------------------------
-// CSecQueryUi::InstallConfirmationQueryL()
-// ---------------------------------------------------------------------------
-//
-EXPORT_C TBool CSecQueryUi::InstallConfirmationQueryL(TInt aType,
- RMobilePhone::TMobilePassword& password)
-/*
- const TDesC& aAppName,
- const TDesC& aIconFile, const TDesC& aAppVersion, TInt aAppSize,
- const TDesC& aAppDetails ) */
- {
- // this is never used. Kept as a reference
- RDEBUG("This should never be called. Obsolete aType", aType);
- return KErrAbort;
- }
-
-// ---------------------------------------------------------------------------
-// CSecQueryUi::SecQueryDialog()
-// ---------------------------------------------------------------------------
-//
-EXPORT_C TInt CSecQueryUi::SecQueryDialog(const TDesC& aCaption,
- TDes& aDataText, TInt aMinLength, TInt aMaxLength, TInt aMode)
- {
- RDEBUG("aCaption", 0);
- RDEBUGSTR(aCaption);
- RDEBUG("aMode", aMode);
- TInt secUiOriginatedQuery(ESecurityUIsSecUIOriginatedUninitialized);
- TInt err = RProperty::Get(KPSUidSecurityUIs,
- KSecurityUIsSecUIOriginatedQuery, secUiOriginatedQuery);
- RDEBUG("secUiOriginatedQuery", secUiOriginatedQuery);
- if (secUiOriginatedQuery == ESecurityUIsSecUIOriginatedUninitialized ) // && )
- {
- // set only if not set
- err = RProperty::Set(KPSUidSecurityUIs,
- KSecurityUIsSecUIOriginatedQuery,
- ESecurityUIsETelAPIOriginated);
- RDEBUG("setting secUiOriginatedQuery", ESecurityUIsETelAPIOriginated);
- }
- else if ( secUiOriginatedQuery != ESecurityUIsSecUIOriginated )
- {
- RDEBUG("!!!! warning: secUiOriginatedQuery", secUiOriginatedQuery);
- // The query is already shown. This is valid for ESecurityUIsSecUIOriginated, and maybe for ESecurityUIsETelAPIOriginated
- // For ESecurityUIsSystemLockOriginated it means that the "lock" dialog is already present.
- // Try to dismiss the dialog. Do same as CSecurityHandler::CancelSecCodeQuery
- TInt aDismissDialog = -1;
- err = RProperty::Get(KPSUidSecurityUIs, KSecurityUIsDismissDialog, aDismissDialog);
- // it might happen that the dialog is already dismissing. Well, it won't harm to try again.
- RDEBUG("aDismissDialog", aDismissDialog);
- RDEBUG("err", err);
- RDEBUG("set KSecurityUIsDismissDialog", ESecurityUIsDismissDialogOn);
- err = RProperty::Set(KPSUidSecurityUIs, KSecurityUIsDismissDialog, ESecurityUIsDismissDialogOn);
- RDEBUG("err", err);
- }
- RDEBUG("calling ClearParamsAndSetNoteTypeL aMode", aMode);
- ClearParamsAndSetNoteTypeL(aMode);
- AddParamL(_L("KSecQueryUiApplicationName"), aCaption);
-
- _LIT(KTitle, "title");
- // _LIT(KTitleValue1, "Enter PIN");
- AddParamL(KTitle, aCaption);
- AddParamL(_L("MinLength"), aMinLength);
- AddParamL(_L("MaxLength"), aMaxLength);
-
- switch (aMode & ESecUiBasicTypeMask) {
- case ESecUiBasicTypeCheck:
- _LIT(KChecboxDialog, "ChecboxDialog");
- _LIT(KChecbox, "ChecboxDialog");
- AddParamL(KChecboxDialog,KChecbox);
- break;
- case ESecUiBasicTypeMultiCheck:
- _LIT(KMultiChecboxDialog, "MultiChecboxDialog");
- _LIT(KMultiChecbox, "MultiChecboxDialog");
- AddParamL(KMultiChecboxDialog,KMultiChecbox);
- break;
- default:
- _LIT(KCodeTop, "codeTop");
- _LIT(KCodeTopValue, "codeTop");
- AddParamL(KCodeTop, KCodeTopValue);
- }
-
- if (aCaption.Find(_L("|")) > 0)
- {
- RDEBUG("codeBottom aMode", aMode);
- _LIT(KCodeBottom, "codeBottom");
- _LIT(KCodeBottomValue, "codeBottom");
- AddParamL(KCodeBottom, KCodeBottomValue);
- }
- if (aDataText.Length() > 0)
- {
- RDEBUG("aDataText", 1);
- _LIT(KDefaultCode, "DefaultCode");
- AddParamL(KDefaultCode, aDataText);
- }
-
- RDEBUG("0", 0);
- DisplayDeviceDialogL();
- TSecUi::UnInitializeLib(); // the counterpart is at DisplayDeviceDialogL
- TInt error = WaitUntilDeviceDialogClosed();
- RDEBUG("error", error);
- User::LeaveIfError(error);
- RDEBUG("iPassword", 0);
- RDEBUGSTR(iPassword);
- aDataText.Copy(iPassword);
-
- err = RProperty::Set(KPSUidSecurityUIs, KSecurityUIsSecUIOriginatedQuery,
- ESecurityUIsSecUIOriginatedUninitialized);
- RDEBUG("clearing secUiOriginatedQuery",
- ESecurityUIsSecUIOriginatedUninitialized);
-
- RDEBUG("iReturnValue", iReturnValue);
- return iReturnValue;
- }
-
-// ---------------------------------------------------------------------------
-// CSecQueryUi::DisplayInformationNoteL()
-// ---------------------------------------------------------------------------
-//
-EXPORT_C void CSecQueryUi::DisplayInformationNoteL(const TDesC& aText)
- {
- // this is never used. Kept as a reference
- RDEBUG("This should never be called. Obsolete", 0);
- /*
- ClearParamsAndSetNoteTypeL( SecQueryUiInformationNote );
- AddParamL( KNotifDeviceDialogKeyText, aText );
- AddParamL( KNotifDeviceDialogKeyTimeOut, 0 );
- iDeviceDialog->Show( KNotifDeviceDialogLiteral, *iVariantMap, this );
- User::LeaveIfError( WaitUntilDeviceDialogClosed() );
- */
- }
-
-// ---------------------------------------------------------------------------
-// CSecQueryUi::DisplayWarningNoteL()
-// ---------------------------------------------------------------------------
-//
-EXPORT_C void CSecQueryUi::DisplayWarningNoteL(const TDesC& aText)
- {
- }
-
-// ---------------------------------------------------------------------------
-// CSecQueryUi::DisplayErrorNoteL()
-// ---------------------------------------------------------------------------
-//
-EXPORT_C void CSecQueryUi::DisplayErrorNoteL(const TDesC& aText)
- {
- }
-
-// ---------------------------------------------------------------------------
-// CSecQueryUi::DisplayPermanentNoteL()
-// ---------------------------------------------------------------------------
-//
-EXPORT_C void CSecQueryUi::DisplayPermanentNoteL(const TDesC& aText)
- {
- }
-
-// ---------------------------------------------------------------------------
-// CSecQueryUi::ClosePermanentNote()
-// ---------------------------------------------------------------------------
-//
-EXPORT_C void CSecQueryUi::ClosePermanentNote()
- {
- }
-
-// ---------------------------------------------------------------------------
-// CSecQueryUi::DisplayProgressNoteL()
-// ---------------------------------------------------------------------------
-//
-EXPORT_C void CSecQueryUi::DisplayProgressNoteL(const TDesC& aText,
- TInt aFinalValue)
- {
- /*
- ClearParamsAndSetNoteTypeL( ESecQueryUiProgressNoteType );
- AddParamL( KSecQueryUiProgressNoteText, aText );
- AddParamL( KSecQueryUiProgressNoteFinalValue, aFinalValue );
- DisplayDeviceDialogL();
- */}
-
-// ---------------------------------------------------------------------------
-// CSecQueryUi::UpdateProgressNoteValueL()
-// ---------------------------------------------------------------------------
-//
-EXPORT_C void CSecQueryUi::UpdateProgressNoteValueL(TInt aNewValue)
- {
- /*
- ClearParamsAndSetNoteTypeL( ESecQueryUiProgressNoteType );
- AddParamL( KSecQueryUiProgressNoteValue, aNewValue );
- DisplayDeviceDialogL();
- */}
-
-// ---------------------------------------------------------------------------
-// CSecQueryUi::CloseProgressNoteL()
-// ---------------------------------------------------------------------------
-//
-EXPORT_C void CSecQueryUi::CloseProgressNoteL()
- {
- }
-
-// ---------------------------------------------------------------------------
-// CSecQueryUi::DisplayWaitNoteL()
-// ---------------------------------------------------------------------------
-//
-EXPORT_C void CSecQueryUi::DisplayWaitNoteL(const TDesC& aText,
- TRequestStatus& aStatus)
- {
- }
-
-// ---------------------------------------------------------------------------
-// CSecQueryUi::CloseWaitNote()
-// ---------------------------------------------------------------------------
-//
-EXPORT_C void CSecQueryUi::CloseWaitNote()
- {
- }
-
-// ---------------------------------------------------------------------------
-// CSecQueryUi::LaunchHelpL()
-// ---------------------------------------------------------------------------
-//
-EXPORT_C void CSecQueryUi::LaunchHelpL(const TDesC& aContext,
- const TUid& aUid)
- {
- }
-
-// ---------------------------------------------------------------------------
-// CSecQueryUi::LaunchHelpL()
-// ---------------------------------------------------------------------------
-//
-EXPORT_C void CSecQueryUi::LaunchHelpL(const TDesC& aContext)
- {
- LaunchHelpL(aContext, KSWInstHelpUid);
- }
-
-// ---------------------------------------------------------------------------
-// CSecQueryUi::DoCancel()
-// ---------------------------------------------------------------------------
-//
-void CSecQueryUi::DoCancel()
- {
- RDEBUG("0", 0);
- if (iWait && iWait->IsStarted() && iWait->CanStopNow())
- {
- iCompletionCode = KErrCancel;
- iWait->AsyncStop();
- }
- RDEBUG("0", 0);
- }
-
-// ---------------------------------------------------------------------------
-// CSecQueryUi::RunL()
-// ---------------------------------------------------------------------------
-//
-void CSecQueryUi::RunL()
- {
- RDEBUG("0", 0);
- if (iWait)
- {
- iWait->AsyncStop();
- }
- RDEBUG("0", 0);
- }
-
-// ---------------------------------------------------------------------------
-// CSecQueryUi::DataReceived()
-// ---------------------------------------------------------------------------
-//
-void CSecQueryUi::DataReceived(CHbSymbianVariantMap& aData)
- {
- RDEBUG("0", 0);
- const CHbSymbianVariant* acceptedVariant = aData.Get(_L("accepted")); // KSecQueryUiQueryAccepted
- RDEBUG("0", 0);
- if (acceptedVariant)
- {
- RDEBUG("0", 0);
- TInt* acceptedValue = acceptedVariant->Value<TInt> ();
- RDEBUG("acceptedValue", acceptedValue);
- RDEBUG("*acceptedValue", *acceptedValue);
- if (acceptedValue)
- {
- iReturnValue = *acceptedValue;
- }
- }
- const CHbSymbianVariant* acceptedVariantTop = aData.Get(_L("codeTop")); // KSecQueryUiQueryAccepted
- RDEBUG("0", 0);
- if (acceptedVariantTop)
- {
- TPtrC acceptedValueTop = *acceptedVariantTop->Value<TDesC> ();
- RDEBUG("acceptedValueTop", 0);
- RDEBUGSTR(acceptedValueTop);
- iPassword.Copy(acceptedValueTop);
-
- if (iReturnValue == KErrCompletion) // the user didn't OK. It was send automatically because validating new lock code through TARM
- {
- _LIT(KInvalidNewLockCode, "invalidNewLockCode");
- _LIT(KInvalidNewLockCode0, "invalidNewLockCode$-1");
- AddParamL(KInvalidNewLockCode, KInvalidNewLockCode0); // for starter
- RSCPClient scpClient;
- TSCPSecCode newCode;
- newCode.Copy(acceptedValueTop);
- RDEBUG("scpClient.Connect", 0);
- if (scpClient.Connect() == KErrNone)
- {
- RArray<TDevicelockPolicies> aFailedPolicies;
- TDevicelockPolicies failedPolicy;
- TInt retLockcode = KErrNone;
- TInt nPoliciesFailed = 0;
- RDEBUG( "scpClient.VerifyNewLockcodeAgainstPolicies", 0 );
- retLockcode = scpClient.VerifyNewLockcodeAgainstPolicies( newCode, aFailedPolicies );
- RDEBUG( "retLockcode", retLockcode );
- nPoliciesFailed = aFailedPolicies.Count();
- RDEBUG( "nPoliciesFailed", nPoliciesFailed );
- for(TInt i=0; i<nPoliciesFailed; i++)
- {
- failedPolicy = aFailedPolicies[i];
- RDEBUG( "failedPolicy", failedPolicy );
- TBuf<0x100> KInvalidNewLockCodeX; KInvalidNewLockCodeX.Zero(); KInvalidNewLockCodeX.Append(_L("invalidNewLockCode")); KInvalidNewLockCodeX.Append(_L("$"));
- KInvalidNewLockCodeX.AppendNum(failedPolicy);
- AddParamL( KInvalidNewLockCode, KInvalidNewLockCodeX ); // it overwrites the previous one
- }
- // TODO this should be able to modify MinLenght, MaxLenght
- scpClient.Close();
- }
- RDEBUG("iDeviceDialog->Update", 0);
- iDeviceDialog->Update(*iVariantMap);
- } // KErrCompletion
-
- if (acceptedValueTop.Length() <= 4) // TODO store aMinLenght and check it here, instead of "4"
- {
- RDEBUG("CPhCltEmergencyCall", 0);
- CPhCltEmergencyCall* emergencyCall = CPhCltEmergencyCall::NewL(
- NULL);
- RDEBUG("PushL", 0);
- CleanupStack::PushL(emergencyCall);
- TPhCltEmergencyNumber emNumber;
-
- // this relies on the fact that emergency has 3 digits, and password needs at least 4
- TBool isEmergency(EFalse);
- RDEBUG("calling IsEmergencyPhoneNumber", 0);
- TInt error = emergencyCall->IsEmergencyPhoneNumber(
- acceptedValueTop, isEmergency);
- RDEBUG("error", error);
- RDEBUG("emNumber", 0);
-
- RDEBUG("isEmergency", isEmergency);
-#ifdef __WINS__
- RDEBUG( "__WINS__ checking", 0 );
- if(!acceptedValueTop.CompareF(_L("112")) || !acceptedValueTop.CompareF(_L("911")) || !acceptedValueTop.CompareF(_L("555")) )
- {
- isEmergency = ETrue;
- error = KErrNone;
- RDEBUG( "__WINS__ isEmergency", isEmergency );
- }
-#endif
-
- if (!error) // oddly enough, missing capabilities also gives KErrNone
- {
- if (iReturnValue == KErrAbort) // the user didn't OK. It was send automatically because short code
- {
- _LIT(KEmergency, "emergency");
- _LIT(KEmergencyValueYes, "emergencyYes");
- _LIT(KEmergencyValueNo, "emergencyNo");
- if (isEmergency)
- {
- RDEBUG("KEmergencyValueYes", 1);
- AddParamL(KEmergency, KEmergencyValueYes);
- }
- else
- {
- RDEBUG("KEmergencyValueNo", 0);
- AddParamL(KEmergency, KEmergencyValueNo);
- }
- iDeviceDialog->Update(*iVariantMap);
- }
- else if (iReturnValue == KErrNone)
- { // user pressed Call and number is valid
- if (isEmergency)
- {
- RDEBUG("DialEmergencyCallL", isEmergency);
- emergencyCall->DialEmergencyCallL(emNumber);
- iReturnValue = KErrAbort; // this means emergency call
- }
- }
- } // if !error
- RDEBUG("0", 0);
- CleanupStack::PopAndDestroy(emergencyCall);
- } // lenght<3
- } // acceptedVariantTop
- RDEBUG("iReturnValue", iReturnValue);
- }
-
-// ---------------------------------------------------------------------------
-// CSecQueryUi::DeviceDialogClosed()
-// ---------------------------------------------------------------------------
-//
-void CSecQueryUi::DeviceDialogClosed(TInt aCompletionCode)
- {
- RDEBUG("aCompletionCode", aCompletionCode);
- iCompletionCode = aCompletionCode;
- iIsDisplayingDialog = EFalse;
-
- TRequestStatus* status(&iStatus);
- RDEBUG("0", 0);
- User::RequestComplete(status, KErrNone);
- RDEBUG("0", 0);
- }
-
-// ---------------------------------------------------------------------------
-// CSecQueryUi::CSecQueryUi()
-// ---------------------------------------------------------------------------
-//
-CSecQueryUi::CSecQueryUi() :
- CActive(CActive::EPriorityStandard)
- {
- RDEBUG("0", 0);
- CActiveScheduler::Add(this);
- }
-
-// ---------------------------------------------------------------------------
-// CSecQueryUi::ConstructL()
-// ---------------------------------------------------------------------------
-//
-void CSecQueryUi::ConstructL()
- {
- RDEBUG("0", 0);
- iWait = new (ELeave) CActiveSchedulerWait;
- // iDeviceDialog is allocated later, first call of DisplayDeviceDialogL()
- }
-
-// ---------------------------------------------------------------------------
-// CSecQueryUi::ClearParamsL()
-// ---------------------------------------------------------------------------
-//
-void CSecQueryUi::ClearParamsL()
- {
- RDEBUG("0", 0);
- if (iVariantMap)
- {
- delete iVariantMap;
- iVariantMap = NULL;
- }
- iVariantMap = CHbSymbianVariantMap::NewL();
- }
-
-// ---------------------------------------------------------------------------
-// CSecQueryUi::ClearParamsAndSetNoteTypeL()
-// ---------------------------------------------------------------------------
-//
-void CSecQueryUi::ClearParamsAndSetNoteTypeL(TInt aType)
- {
- RDEBUG("aType", aType);
- ClearParamsL();
- AddParamL(_L("type"), aType);
- }
-
-// ---------------------------------------------------------------------------
-// CSecQueryUi::AddParamL()
-// ---------------------------------------------------------------------------
-//
-void CSecQueryUi::AddParamL(const TDesC& aKey, TInt aValue)
- {
- RDEBUG("aValue", aValue);
- CHbSymbianVariant* variant = NULL;
- variant = CHbSymbianVariant::NewL(&aValue, CHbSymbianVariant::EInt);
- iVariantMap->Add(aKey, variant);
- }
-
-// ---------------------------------------------------------------------------
-// CSecQueryUi::AddParamL()
-// ---------------------------------------------------------------------------
-//
-void CSecQueryUi::AddParamL(const TDesC& aKey, const TDesC& aValue)
- {
- RDEBUG("0", 0);
- CHbSymbianVariant* variant = NULL;
- variant = CHbSymbianVariant::NewL(&aValue, CHbSymbianVariant::EDes);
- iVariantMap->Add(aKey, variant);
- }
-
-// ---------------------------------------------------------------------------
-// CSecQueryUi::DisplayDeviceDialogL()
-// ---------------------------------------------------------------------------
-//
-void CSecQueryUi::DisplayDeviceDialogL()
- {
- RDEBUG("0", 0);
- TInt err = KErrNone;
- RDEBUG("iIsDisplayingDialog", iIsDisplayingDialog);
- if (iDeviceDialog && iIsDisplayingDialog)
- {
- RDEBUG("iDeviceDialog", 1);
- iDeviceDialog->Update(*iVariantMap);
- }
- else
- {
- RDEBUG("!iDeviceDialog", 0);
- if (!iDeviceDialog)
- {
- RDEBUG("new iDeviceDialog", 0);
- iDeviceDialog = CHbDeviceDialogSymbian::NewL();
- }
- _LIT(KSecQueryUiDeviceDialog, "com.nokia.secuinotificationdialog/1.0");
- RDEBUG("Show", 0);
- err = iDeviceDialog->Show(KSecQueryUiDeviceDialog, *iVariantMap, this);
- RDEBUG("err", err);
- TSecUi::InitializeLibL();
- RDEBUG("iIsDisplayingDialog", iIsDisplayingDialog);
- iIsDisplayingDialog = ETrue;
- RDEBUG("iIsDisplayingDialog", iIsDisplayingDialog);
- }
- RDEBUG("0", 0);
- }
-
-// ---------------------------------------------------------------------------
-// CSecQueryUi::WaitUntilDeviceDialogClosed()
-// ---------------------------------------------------------------------------
-//
-TInt CSecQueryUi::WaitUntilDeviceDialogClosed()
- {
- RDEBUG("0", 0);
- iCompletionCode = KErrInUse;
- iReturnValue = KErrUnknown;
- if (!IsActive() && iWait && !iWait->IsStarted())
- {
- RDEBUG("KRequestPending", KRequestPending);
- iStatus = KRequestPending;
- SetActive();
- RDEBUG("Start", 0);
- iWait->Start();
- RDEBUG("Started", 1);
- }
- RDEBUG("iCompletionCode", iCompletionCode);
- return iCompletionCode;
- }
-
--- a/securitydialogs/SecUi/Src/SecUi.cpp Tue Aug 31 16:04:40 2010 +0300
+++ b/securitydialogs/SecUi/Src/SecUi.cpp Wed Sep 01 12:19:59 2010 +0100
@@ -24,6 +24,9 @@
#include "secui.h"
#include <data_caging_path_literals.hrh>
+_LIT(KDirAndFile,"z:SecUi.rsc");
+
+
// ================= MEMBER FUNCTIONS =======================
//
// ----------------------------------------------------------
@@ -35,19 +38,20 @@
{
if (Dll::Tls()!=NULL)
{//Secui has been initialized already; increase client count.
- RDEBUG("Secui has been initialized already", 0);
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI): InitializeLibL: Secui has been initialized already"));
+ #endif
TSecUi* instance=(TSecUi*) Dll::Tls();
instance->IncreaseClientCount();
- instance->iDialogOpened++;
- RDEBUG("instance->iDialogOpened", instance->iDialogOpened);
return;
}
- RDEBUG("First initialization", 0);
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI): InitializeLibL: First initialization"));
+ #endif
TSecUi* self = new (ELeave) TSecUi();
CleanupStack::PushL(self);
self->ConstructL();
self->IncreaseClientCount();
- self->iDialogOpened=0;
Dll::SetTls(self);
CleanupStack::Pop();
}
@@ -59,19 +63,19 @@
//
EXPORT_C void TSecUi::UnInitializeLib()
{
- RDEBUG("0", 0);
if (Dll::Tls()==NULL)
- {
- RDEBUG("!!!!!!!!!! Dll::Tls not yet initialized: 0", 0);
return;
- }
- RDEBUG("0", 0);
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI): UnInitializeLibL"));
+ #endif
TSecUi* instance=(TSecUi*) Dll::Tls();
instance->DecreaseClientCount();
//only delete the lib is there are no clients using it
if(instance->CanBeFreed())
{
- RDEBUG("Last uninitialize", 0);
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI): UnInitializeLibL: Last uninitialize"));
+ #endif
delete instance;
Dll::SetTls(NULL);
}
@@ -85,6 +89,7 @@
//
TSecUi::TSecUi()
{
+
}
//
// ----------------------------------------------------------
@@ -94,6 +99,10 @@
//
TSecUi::~TSecUi()
{
+ if (iResourceFileOffset >= 0)
+ {
+ CEikonEnv::Static()->DeleteResourceFile(iResourceFileOffset);
+ }
}
//
// ----------------------------------------------------------
@@ -103,9 +112,25 @@
//
void TSecUi::ConstructL()
{
- RDEBUG("iClientCount", iClientCount);
+ iResourceFileOffset = CCoeEnv::Static()->AddResourceFileL(ResourceFileName());
iClientCount = 0;
}
+//
+// ----------------------------------------------------------
+// TSecUi::ResourceFileName
+// Returns the resource file name of SecurityUI dll.
+// ----------------------------------------------------------
+//
+TFileName TSecUi::ResourceFileName()
+ {
+
+ TParse parse;
+ parse.Set(KDirAndFile, &KDC_RESOURCE_FILES_DIR, NULL);
+ TFileName resourceFileName(parse.FullName());
+ BaflUtils::NearestLanguageFile(CCoeEnv::Static()->FsSession(), resourceFileName);
+ return resourceFileName;
+
+ }
// -----------------------------------------------------------------------------
// TSecUi::CanBeFreed()
@@ -113,13 +138,18 @@
//
TBool TSecUi::CanBeFreed()
{
- RDEBUG("iClientCount", iClientCount);
if (iClientCount <= 0)
{
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI): No clients; Can be freed: clients(%d) "), iClientCount);
+ #endif
return ETrue;
}
else
{
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI): Can NOT be freed: clients(%d) "), iClientCount);
+ #endif
return EFalse;
}
}
@@ -131,7 +161,9 @@
void TSecUi::IncreaseClientCount()
{
++iClientCount;
- RDEBUG("iClientCount", iClientCount);
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI): IncreaseClientCount, clients now(%d) "), iClientCount);
+ #endif
}
// -----------------------------------------------------------------------------
@@ -142,7 +174,9 @@
void TSecUi::DecreaseClientCount()
{
--iClientCount;
- RDEBUG("iClientCount", iClientCount);
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI): DecreaseClientCount, clients now(%d) "), iClientCount);
+ #endif
}
--- a/securitydialogs/SecUi/Src/SecUiAutoLockSettingPage.cpp Tue Aug 31 16:04:40 2010 +0300
+++ b/securitydialogs/SecUi/Src/SecUiAutoLockSettingPage.cpp Wed Sep 01 12:19:59 2010 +0100
@@ -23,8 +23,23 @@
#include "SecUiAutoLockSettingPage.h"
#include "secui.hrh"
#include <featmgr.h>
-
-
+/**
+*CAutolockQuery used in autolock period query
+*/
+class CAutolockQuery
+ : public CAknNumberQueryDialog
+ {
+ public: // Constructors and destructors
+ /**
+ * C++ constructor.
+ */
+ CAutolockQuery(TInt& aNumber,const TTone aTone = ENoTone);
+ protected: // From base classes
+ /**
+ * From CCAknNumberQueryDialog
+ */
+ void PreLayoutDynInitL();
+ };
//
// ----------------------------------------------------------
// CAutoLockSettingPage::CAutoLockSettingPage()
@@ -32,9 +47,10 @@
// ----------------------------------------------------------
//
CAutoLockSettingPage::CAutoLockSettingPage(TInt aResourceId, TInt& aCurrentSelectionItem, CDesCArrayFlat* aItemArray, TInt& aAutoLockValue) :
- CBase(),iAutoLockValue(aAutoLockValue)
+ CAknRadioButtonSettingPage(aResourceId, aCurrentSelectionItem, aItemArray),iAutoLockValue(aAutoLockValue)
{
+ iOriginalIndex = aCurrentSelectionItem;
}
//
@@ -45,6 +61,9 @@
//
void CAutoLockSettingPage::ConstructL()
{
+ CAknRadioButtonSettingPage::ConstructL();
+ const TSize screenSize = iCoeEnv->ScreenDevice()->SizeInPixels();
+ FeatureManager::InitializeLibL();
}
//
@@ -55,6 +74,7 @@
//
CAutoLockSettingPage::~CAutoLockSettingPage()
{
+ FeatureManager::UnInitializeLib();
}
//
@@ -65,7 +85,54 @@
//
void CAutoLockSettingPage::ProcessCommandL(TInt aCommandId)
{
-
+ TInt cur = ListBoxControl()->CurrentItemIndex();
+ // Respond to softkey events
+
+ switch (aCommandId)
+ {
+ case EAknSoftkeySelect:
+ case EAknSoftkeyOk:
+ // autolock off
+ if (cur == 0)
+ {
+ iAutoLockValue = 0;
+ if(iOriginalIndex == 0)
+ { //User re-selected "Autolock off"; no use in changing lock setting
+ AttemptExitL(EFalse);
+ }
+ else
+ {
+ AttemptExitL(ETrue);
+ }
+
+ }
+ // user defined
+ if (cur == 1)
+ {
+ CAutolockQuery* dlg = new (ELeave) CAutolockQuery(iAutoLockValue);
+ dlg->PrepareLC(R_AUTOLOCK_TIME_QUERY);
+ if(FeatureManager::FeatureSupported(KFeatureIdSapTerminalControlFw ))
+ {
+ //set min and max values from SCP server to the dialog.
+ TInt minimum = 0;
+ if(iMaximum <= 0) //maximum value has not been defined; default value used instead.
+ iMaximum = 1440;
+ dlg->SetMinimumAndMaximum(minimum, iMaximum);
+ }
+ if(dlg->RunLD())
+ {
+ AttemptExitL(ETrue);
+ }
+ else
+ AttemptExitL(EFalse);
+ }
+ break;
+
+ default:
+ CAknSettingPage::ProcessCommandL(aCommandId);
+ break;
+ }
+
}
//
// ----------------------------------------------------------
@@ -75,6 +142,10 @@
//
void CAutoLockSettingPage::SetPeriodMaximumValue(TInt aMaximumValue)
{
+ if(FeatureManager::FeatureSupported(KFeatureIdSapTerminalControlFw ))
+ {
+ iMaximum = aMaximumValue;
+}
}
//---------------------------------------------------------------------------------------
@@ -86,6 +157,80 @@
void CAutoLockSettingPage::HandlePointerEventL(const TPointerEvent& aPointerEvent)
{
- }
+ if ( AknLayoutUtils::PenEnabled() )
+ {
+ TInt cur = ListBoxControl()->CurrentItemIndex();
+ CAknRadioButtonSettingPage::HandlePointerEventL(aPointerEvent);
+ //only take into account the "Up" event. Otherwise we'll end up having 2 dialogs.
+ if(aPointerEvent.iType == TPointerEvent::EButton1Up)
+ {
+
+ //only react to the event if the pen is actually inside the dialog.
+ if(ListBoxControl()->Rect().Contains(aPointerEvent.iPosition))
+ {
+ // autolock off
+ if (cur == 0)
+ {
+ iAutoLockValue = 0;
+ if(iOriginalIndex == 0)
+ { //User re-selected "Autolock off"; no use in changing lock setting
+ AttemptExitL(EFalse);
+ }
+ else
+ {
+ AttemptExitL(ETrue);
+ }
+ }
+ // user defined
+ if (cur == 1)
+ {
+ CAutolockQuery* dlg = new (ELeave) CAutolockQuery(iAutoLockValue);
+ dlg->PrepareLC(R_AUTOLOCK_TIME_QUERY);
+ if(FeatureManager::FeatureSupported(KFeatureIdSapTerminalControlFw ))
+ {
+ //set min and max values from SCP server to the dialog.
+ TInt minimum = 0;
+ if(iMaximum <= 0) //maximum value has not been defined; default value used instead.
+ iMaximum = 1440;
+ dlg->SetMinimumAndMaximum(minimum, iMaximum);
+ }
+ if(dlg->RunLD())
+ {
+ AttemptExitL(ETrue);
+ }
+ else
+ AttemptExitL(EFalse);
+ }
+
+ }
+ }
+ }
+ }
+//
+// ---------------------------------------------------------
+// CAutolockQuery::CAutolockQuery()
+//
+// ---------------------------------------------------------
+//
+CAutolockQuery::CAutolockQuery(TInt& aNumber,const TTone aTone)
+ : CAknNumberQueryDialog( aNumber, aTone)
+ {
+ }
+
+//
+// ---------------------------------------------------------
+// CAutolockQuery::PreLayoutDynInitL()
+//
+// ---------------------------------------------------------
+//
+void CAutolockQuery::PreLayoutDynInitL()
+ {
+ CAknNumberQueryDialog::PreLayoutDynInitL();
+ if (iNumber == 0)
+ {
+ MakeLeftSoftkeyVisible(EFalse);
+ }
+ }
+
// End of file
--- a/securitydialogs/SecUi/Src/SecUiCodeQueryControl.cpp Tue Aug 31 16:04:40 2010 +0300
+++ b/securitydialogs/SecUi/Src/SecUiCodeQueryControl.cpp Wed Sep 01 12:19:59 2010 +0100
@@ -16,7 +16,7 @@
*
*
*/
-#include <e32notif.h>
+
#include <aknQueryControl.h>
#include <aknsoundsystem.h>
#include <aknappui.h>
--- a/securitydialogs/SecUi/Src/SecUiCodeQueryDialog.cpp Tue Aug 31 16:04:40 2010 +0300
+++ b/securitydialogs/SecUi/Src/SecUiCodeQueryDialog.cpp Wed Sep 01 12:19:59 2010 +0100
@@ -18,6 +18,13 @@
#include <AknQueryDialog.h>
#include "secuicodequerydialog.h"
+#include <eikseced.h>
+#include "SecUiCodeQueryControl.h"
+#include "secui.hrh"
+#include <SecUi.rsg>
+#include <aknsoundsystem.h>
+#include <aknappui.h>
+#include <AknIncallBubbleNotify.h>
// ================= MEMBER FUNCTIONS =======================
//
@@ -26,7 +33,9 @@
// C++ constructor
// ----------------------------------------------------------
//
-EXPORT_C CCodeQueryDialog::CCodeQueryDialog(TDes& aDataText,TInt aMinLength,TInt aMaxLength,TInt aMode, TBool aIsRemoteLockQuery) : CBase()
+EXPORT_C CCodeQueryDialog::CCodeQueryDialog(TDes& aDataText,TInt aMinLength,TInt aMaxLength,TInt aMode, TBool aIsRemoteLockQuery):
+ CAknTextQueryDialog(aDataText,ENoTone), iMinLength(aMinLength), iMaxLength(aMaxLength), iMode(aMode), iIsRemoteLockQuery(aIsRemoteLockQuery)
+
{
}
//
@@ -37,7 +46,462 @@
//
CCodeQueryDialog::~CCodeQueryDialog()
{
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CCodeQueryDialog::~CCodeQueryDialog()"));
+ #endif
+
+ if ( AknLayoutUtils::PenEnabled() )
+ {
+ TRAP_IGNORE ( SetIncallBubbleAllowedInUsualL( ETrue ) );
+ }
+
+ if (iFront)
+ {
+ // uncapture keys
+ if (iMode != ESecUiNone)
+ {
+ RWindowGroup& groupWin=iCoeEnv->RootWin();
+ groupWin.CancelCaptureKeyUpAndDowns(iAppKey);
+ groupWin.CancelCaptureKeyUpAndDowns(iVoiceKey2);
+ groupWin.CancelCaptureKey(iVoiceKey1);
+ }
+
+ CAknAppUi* aknappui =static_cast<CAknAppUi*>(iEikonEnv->EikAppUi());
+
+ if(!iIsRemoteLockQuery)
+ {
+ // return normal high-priority in case there are other notifiers active
+ // and were are not going to lose foregroung right after following call
+ if (!aknappui->IsFullScreenApp())//check that we are autolock and not a "normal" i.e. full screen application.
+ iEikonEnv->RootWin().SetOrdinalPosition(0,ECoeWinPriorityAlwaysAtFront);
+ }
+
+
+ iEikonEnv->BringForwards(EFalse);
+ iEikonEnv->EikAppUi()->RemoveFromStack(this);
+ aknappui->KeySounds()->ReleaseContext();
+ aknappui->KeySounds()->PopContext();
+ iFront = EFalse;
+ }
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CCodeQueryDialog::~CCodeQueryDialog() END"));
+ #endif
}
+//
+// ----------------------------------------------------------
+// CCodeQueryDialog::PreLayoutDynInitL()
+// Called by framework before dialog is shown
+// ----------------------------------------------------------
+//
+void CCodeQueryDialog::PreLayoutDynInitL()
+ {
+ CAknTextQueryDialog::PreLayoutDynInitL();
+
+ //disable in call bubble.
+ if ( AknLayoutUtils::PenEnabled() )
+ {
+ SetIncallBubbleAllowedInUsualL( EFalse );
+ }
+
+ SetMaxLength(iMaxLength);
+ // Add this higher than the environment filter, otherwise
+ // we cannot capture keys from the EikSrvUi KeyFilter.
+ // Used because this query might be called from notifier
+ if (iMode == ESecUiNone)
+ {
+ iEikonEnv->EikAppUi()->AddToStackL(this,ECoeStackPriorityEnvironmentFilter+100,ECoeStackFlagRefusesAllKeys);
+ }
+ else
+ {
+ iEikonEnv->EikAppUi()->AddToStackL(this,ECoeStackPriorityEnvironmentFilter+100,ECoeStackFlagRefusesFocus);
+ }
+
+ // capture app,voice and end keys if necessary
+ if (iMode != ESecUiNone)
+ {
+
+ RWindowGroup& groupWin=iCoeEnv->RootWin();
+ // Capture app key
+ iAppKey = groupWin.CaptureKeyUpAndDowns(EStdKeyApplication0, 0, 0);
+ // capture voice key
+ iVoiceKey1 = groupWin.CaptureKey(EKeySide,0,0);
+ iVoiceKey2 = groupWin.CaptureKeyUpAndDowns(EStdKeyDevice6, 0, 0);
+ }
+ if (!iIsRemoteLockQuery)
+ {
+ MakeLeftSoftkeyVisible(EFalse);
+
+ RWsSession& wsSession = iEikonEnv->WsSession();
+ TInt myWgId = iEikonEnv->RootWin().Identifier();
+
+ TInt wgPrio = wsSession.GetWindowGroupOrdinalPriority(myWgId);
+ // we are already on forgeround, need to update priority differently
+ /*
+ if (wgPrio == ECoeWinPriorityAlwaysAtFront)
+ {
+ iEikonEnv->RootWin().SetOrdinalPosition(0,ECoeWinPriorityAlwaysAtFront+1);
+ }
+ */
+
+ // this must be done always to keep the reference count in synch
+ // this does not have any effect if autoforwarding has not been set true (normal application.)
+ iEikonEnv->BringForwards(ETrue, ECoeWinPriorityAlwaysAtFront + 1);
+
+ /// -- Change Window Priority for dialog and CBA
+ DrawableWindow()->SetOrdinalPosition(0, ECoeWinPriorityAlwaysAtFront); //
+ ButtonGroupContainer().ButtonGroup()->AsControl()->DrawableWindow()->SetOrdinalPosition(
+ 0, ECoeWinPriorityAlwaysAtFront);
+ }
+
+ //key sounds
+ static_cast<CAknAppUi*>(iEikonEnv->EikAppUi())->KeySounds()->PushContextL(R_AVKON_DEFAULT_SKEY_LIST);
+ static_cast<CAknAppUi*>(iEikonEnv->EikAppUi())->KeySounds()->BringToForeground();
+ static_cast<CAknAppUi*>(iEikonEnv->EikAppUi())->KeySounds()->LockContext();
+ iFront = ETrue;
+
+ }
+//
+// ---------------------------------------------------------
+// CCodeQueryDialog::OfferKeyEventL
+// called by framework when any key is pressed
+// ---------------------------------------------------------
+//
+TKeyResponse CCodeQueryDialog::OfferKeyEventL(const TKeyEvent& aKeyEvent, TEventCode aType)
+ {
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CCodeQueryDialog::OfferKeyEventL"));
+ TInt keycode = aKeyEvent.iCode;
+ RDebug::Print(_L("(SECUI)CCodeQueryDialog::OfferKeyEventL keycode: %d"), keycode);
+ TInt scancode = aKeyEvent.iScanCode;
+ RDebug::Print(_L("(SECUI)CCodeQueryDialog::OfferKeyEventL scancode: %d"), scancode);
+ #endif
+ if(!iIsRemoteLockQuery)
+ {
+ // '#' key
+ if( aKeyEvent.iScanCode == EStdKeyHash && aType == EEventKeyUp)
+ {
+ TryExitL(EEikBidOk);
+ return EKeyWasConsumed;
+ }
+
+ // '*' key
+ if (aKeyEvent.iCode == '*')
+ {
+ return EKeyWasConsumed;
+ }
+
+ }
+
+ // app key
+ if (aKeyEvent.iScanCode == EStdKeyApplication0)
+ {
+ if (iMode == ESecUiNone)
+ {
+ TryExitL(EAknSoftkeyCancel);
+ return EKeyWasNotConsumed;
+ }
+ return EKeyWasConsumed;
+ }
+
+ // end key
+ if (aKeyEvent.iCode == EKeyPhoneEnd)
+ {
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CCodeQueryDialog::OfferKeyEventL: EKeyPhoneEnd"));
+ #endif
+ TryExitL(EAknSoftkeyCancel);
+ return EKeyWasConsumed;
+ }
+ if ((aKeyEvent.iScanCode == EStdKeyYes))
+ {//Since dialler listens to down/up event,
+ //have to consume those to prevent it from opening
+ if(AknLayoutUtils::PenEnabled())
+ {
+ CCodeQueryControl* control = STATIC_CAST(CCodeQueryControl*,Control(EGeneralQuery));
+ if(!control->IsEmergencyCallSupportOn())
+ { //Only needed in dialogs where there is no emergency call support
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CCodeQueryDialog::OfferKeyEventL: Send down/up event consumed."));
+ #endif
+ return EKeyWasConsumed;
+ }
+ }
+ }
+ if (aKeyEvent.iCode == EKeyPhoneSend)
+ {
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CCodeQueryDialog::OfferKeyEventL: EKeyPhoneSend"));
+ #endif
+ if(AknLayoutUtils::PenEnabled())
+ {
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CCodeQueryDialog::OfferKeyEventL: pen enabled"));
+ #endif
+ CCodeQueryControl* control = STATIC_CAST(CCodeQueryControl*,Control(EGeneralQuery));
+ if(control->IsEmergencyCallSupportOn())
+ {
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CCodeQueryDialog::OfferKeyEventL: ECS on"));
+ #endif
+ if(!control->IsEmergencyNumber())
+ {
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CCodeQueryDialog::OfferKeyEventL: Not E number!"));
+ #endif
+
+ ShowWarningNoteL();
+
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CCodeQueryDialog::OfferKeyEventL: send key consumed!"));
+ #endif
+ return EKeyWasConsumed;
+ }
+ }
+ else //consume the key to prevent dialler from opening
+ {
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CCodeQueryDialog::OfferKeyEventL: No ECS. send key consumed!"));
+ #endif
+ return EKeyWasConsumed;
+ }
+ }
+ }
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CCodeQueryDialog::OfferKeyEventL: To AVKON"));
+ #endif
+ return CAknTextQueryDialog::OfferKeyEventL(aKeyEvent,aType);
+ }
+//
+// ---------------------------------------------------------
+// CCodeQueryDialog::NeedToDismissQueryL()
+// Handles '#' key called by CAknTextQueryDialog::OfferKeyEventL()
+// ---------------------------------------------------------
+//
+TBool CCodeQueryDialog::NeedToDismissQueryL(const TKeyEvent& /*aKeyEvent*/)
+ {
+ return EFalse;
+ }
+//
+// ---------------------------------------------------------
+// CCodeQueryDialog::OkToExitL()
+// called by framework when the Softkey is pressed
+// ---------------------------------------------------------
+//
+TBool CCodeQueryDialog::OkToExitL(TInt aButtonId)
+ {
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CCodeQueryDialog::OkToExitL:%d"), aButtonId);
+ #endif
+ CCodeQueryControl* control = STATIC_CAST(CCodeQueryControl*,Control(EGeneralQuery));
+ TInt lenght = 0;
+ TBool returnvalue;
+ switch(aButtonId)
+ {
+ case EAknSoftkeyOk:
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CCodeQueryDialog::OkToExitL:EAknSoftkeyOk"));
+ #endif
+ if(control)
+ {
+ lenght = control->GetTextLength();
+ }
+ if (lenght < iMinLength)
+ {
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CCodeQueryDialog::OkToExitL:length < MIN: %d"), lenght);
+ #endif
+ // code was too short -> play error tone & clear editor
+ if (lenght != 0)
+ {
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CCodeQueryDialog::OkToExitL:length < MIN, Play Sound"));
+ #endif
+ if(control)
+ {
+
+ control->PlaySound(EAvkonSIDErrorTone);
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CCodeQueryDialog::OkToExitL:length < MIN, Reset Editor"));
+ #endif
+ control->ResetEditorL();
+ }
+ }
+ returnvalue = EFalse;
+ }
+ else
+ {
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CCodeQueryDialog::OkToExitL:length >= MIN: %d"), lenght);
+ #endif
+ returnvalue = CAknTextQueryDialog::OkToExitL(aButtonId);
+ }
+ break;
+
+ case EEikBidCancel: //Also includes EAknSoftkeyCancel as they have the same numerical value
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CCodeQueryDialog::OkToExitL:EEikBidCancel"));
+ #endif
+ if(iMode != ESecUiNone) //PUK1 code or PIN1 in boot. Must not exit until code has been input.
+ {
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CCodeQueryDialog::OkToExitL:EEikBidCancel: get length."));
+ #endif
+ if(control)
+ {
+ lenght = control->GetTextLength();
+ }
+ returnvalue = EFalse;
+ if (lenght > 0) //reset editor
+ {
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CCodeQueryDialog::OkToExitL:EEikBidCancel: length >0."));
+ #endif
+ if (control)
+ {
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CCodeQueryDialog::OkToExitL:EEikBidCancel, reset editor"));
+ #endif
+ control->ResetEditorL();
+ }
+ }
+ }
+ else
+ returnvalue = ETrue;
+ break;
+ case ESecUiEmergencyCall: //user has called emergency number from dialog; exit.
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CCodeQueryDialog::OkToExitL:Emergency Call"));
+ #endif
+ returnvalue = ETrue;
+ break;
+ case EAknSoftkeyEmergencyCall:
+ returnvalue = ETrue;
+ CAknTextQueryDialog::OkToExitL(aButtonId);
+ break;
+ case ESecUiDeviceLocked: //Dialog was left open when Device lock was activated by timer and must be closed.
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CCodeQueryDialog::OkToExitL:Phone Locked"));
+ #endif
+ if(iMode == ESecUiNone)
+ returnvalue = ETrue;//Not a PUK1 code query.
+ else
+ returnvalue = EFalse;
+ break;
+ default:
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CCodeQueryDialog::OkToExitL:DEFAULT!"));
+ #endif
+ if(iMode == ESecUiNone)
+ returnvalue = ETrue;
+ else
+ returnvalue = EFalse;
+ break;
+ }
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CCodeQueryDialog::OkToExitL:END: %d"), returnvalue);
+ #endif
+ return returnvalue;
+ }
+//
+// ---------------------------------------------------------
+// CCodeQueryDialog::HandleQueryEditorStateEventL()
+// Gets called when editor sends state event
+// ---------------------------------------------------------
+//
+TBool CCodeQueryDialog::HandleQueryEditorStateEventL(CAknQueryControl* aQueryControl,
+ TQueryControlEvent aEventType,
+ TQueryValidationStatus aStatus)
+{
+
+ if (aEventType == MAknQueryControlObserver::EEmergencyCallAttempted)
+ {
+ TryExitL(ESecUiEmergencyCall);
+ return EFalse;
+ }
+ else
+ {
+ return CAknQueryDialog::HandleQueryEditorStateEventL(aQueryControl, aEventType, aStatus );
+ }
+
+
+}
+//
+// ---------------------------------------------------------
+// CCodeQueryDialog::TryCancelQueryL()
+// Gets called when a client wishes to cancel the query
+// ---------------------------------------------------------
+//
+void CCodeQueryDialog::TryCancelQueryL(TInt aReason)
+{
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CCodeQueryDialog::TryCancelQuery BEGIN"));
+ #endif
+ TryExitL(aReason);
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CCodeQueryDialog::TryCancelQuery END"));
+ #endif
+}
+
+// -----------------------------------------------------------------------------
+// CCodeQueryDialog::CheckIfEntryTextOk()
+// -----------------------------------------------------------------------------
+//
+TBool CCodeQueryDialog::CheckIfEntryTextOk() const
+ {
+ CCodeQueryControl* control = STATIC_CAST(CCodeQueryControl*,Control(EGeneralQuery));
+ if (control)
+ {
+ control->GetText(iDataText);
+ }
+ const TInt textLength = Text().Length();
+ return (textLength <= iMaxLength && textLength >= iMinLength);
+ }
+
+// -----------------------------------------------------------------------------
+// CCTPinQueryDialog::UpdateLeftSoftKeyL()
+// -----------------------------------------------------------------------------
+//
+void CCodeQueryDialog::UpdateLeftSoftKeyL()
+ {
+ CAknTextQueryDialog::UpdateLeftSoftKeyL();
+ if(iIsRemoteLockQuery)
+ MakeLeftSoftkeyVisible(CheckIfEntryTextOk());
+ }
+// -----------------------------------------------------------------------------
+// CCodeQueryDialog::ShowWarningNoteL()
+// -----------------------------------------------------------------------------
+//
+void CCodeQueryDialog::ShowWarningNoteL()
+ {
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CCodeQueryDialog::ShowWarningNoteL BEGIN"));
+ #endif
+
+ CAknNoteDialog* noteDlg = new (ELeave) CAknNoteDialog();
+ noteDlg->PrepareLC(R_EMERGENCY_CALLS_ONLY);
+ noteDlg->SetTimeout(CAknNoteDialog::ELongTimeout);
+ noteDlg->SetTone(CAknNoteDialog::EErrorTone);
+
+ noteDlg->DrawableWindow()->SetOrdinalPosition(0,ECoeWinPriorityAlwaysAtFront+1); //
+ noteDlg->ButtonGroupContainer().ButtonGroup()->AsControl()->DrawableWindow()->SetOrdinalPosition(0,ECoeWinPriorityAlwaysAtFront+1);
+
+ noteDlg->RunLD();
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CCodeQueryDialog::ShowWarningNoteL END"));
+ #endif
+ }
+
+// -----------------------------------------------------------------------------
+// CCodeQueryDialog::SetIncallBubbleAllowedInUsualL()
+// -----------------------------------------------------------------------------
+//
+void CCodeQueryDialog::SetIncallBubbleAllowedInUsualL(TBool aAllowed)
+ {
+ CAknIncallBubble *incallBubble = CAknIncallBubble::NewL();
+ CleanupStack::PushL(incallBubble);
+ incallBubble->SetIncallBubbleAllowedInUsualL( aAllowed );
+ CleanupStack::PopAndDestroy();
+ }
// End of file
--- a/securitydialogs/SecUi/Src/SecUiManualSecuritySettings.cpp Tue Aug 31 16:04:40 2010 +0300
+++ b/securitydialogs/SecUi/Src/SecUiManualSecuritySettings.cpp Wed Sep 01 12:19:59 2010 +0100
@@ -18,11 +18,9 @@
#include <rmmcustomapi.h>
-#include "SecQueryUi.h"
+#include <SecUi.rsg>
#include "secuimanualsecuritysettings.h"
-#include "secuisecuritysettings.h"
#include <exterror.h>
-#include "SecUi.h"
#include "SecUiWait.h"
#include <mmtsy_names.h>
/*****************************************************
@@ -109,7 +107,6 @@
// May also return KErrAlreadyExists if something else
// has already loaded the TSY module. And that is
// not an error.
- RDEBUG("err", err);
User::LeaveIfError( err );
}
@@ -135,11 +132,15 @@
* Series 60 Customer / TSY
* Needs customer TSY implementation
*****************************************************/
- RDEBUG("0", 0);
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CManualSecuritySettings::~CManualSecuritySettings()"));
+ #endif
// Cancel active requests
if(iWait->IsActive())
{
- RDEBUG("CancelAsyncRequest", 0);
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CManualSecuritySettings::~CManualSecuritySettings() CANCEL REQ"));
+ #endif
iPhone.CancelAsyncRequest(iWait->GetRequestType());
}
// close phone
@@ -156,7 +157,9 @@
}
delete iNote;
delete iWait;
- RDEBUG("0", 0);
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CManualSecuritySettings::~CManualSecuritySettings() END"));
+ #endif
}
//
@@ -171,10 +174,14 @@
* Series 60 Customer / ETel
* Series 60 ETel API
*****************************************************/
- RDEBUG("aPin", aPin);
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CManualSecuritySettings::ChangePinL()"));
+ #endif
if (aPin == EPin1)
{
- RDEBUG("EPin1", EPin1);
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CManualSecuritySettings::ChangePinL() PIN1"));
+ #endif
RMobilePhone::TMobilePhoneLock lockType;
RMobilePhone::TMobilePhoneLockInfoV1 lockInfo;
RMobilePhone::TMobilePhoneLockInfoV1Pckg lockInfoPkg(lockInfo);
@@ -185,12 +192,13 @@
// The following is required, since the new multimode Etel is asynchronous
// rather than synchronous.
- RDEBUG("SetRequestType", EMobilePhoneGetLockInfo);
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CManualSecuritySettings::ChangePinL() GetLockInfo"));
+ #endif
+
iWait->SetRequestType(EMobilePhoneGetLockInfo);
iPhone.GetLockInfo(iWait->iStatus, lockType, lockInfoPkg);
- RDEBUG("WaitForRequestL", 0);
TInt res = iWait->WaitForRequestL();
- RDEBUG("WaitForRequestL res", res);
if (res != KErrNone)
return EFalse;
@@ -202,7 +210,9 @@
}
}
- RDEBUG("CompareF", 0);
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CManualSecuritySettings::ChangePinL() CompareF"));
+ #endif
if (aNew.CompareF(aVerifyNew) != 0)
{
// codes do not match note
@@ -225,13 +235,17 @@
aChange.iOldPassword = aOld;
aChange.iNewPassword = aNew;
- RDEBUG("EMobilePhoneChangeSecurityCode", EMobilePhoneChangeSecurityCode);
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CManualSecuritySettings::ChangePinL() ChangeSecurityCode"));
+ #endif
iWait->SetRequestType(EMobilePhoneChangeSecurityCode);
iPhone.ChangeSecurityCode(iWait->iStatus,secCodeType,aChange);
- RDEBUG("WaitForRequestL", 0);
TInt res = iWait->WaitForRequestL();
- RDEBUG("WaitForRequestL res", res);
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CManualSecuritySettings::ChangePinL() ChangeSecurityCode RES: %d"), res);
+ #endif
+
switch(res)
{
case KErrNone:
@@ -253,9 +267,7 @@
else
{
iCustomPhone.CheckSecurityCode(iWait->iStatus,RMmCustomAPI::ESecurityCodePuk2);
- RDEBUG("WaitForRequestL", 0);
TInt res = iWait->WaitForRequestL();
- RDEBUG("WaitForRequestL res", res);
}
break;
case KErrGsm0707OperationNotAllowed:
@@ -276,7 +288,9 @@
//
EXPORT_C void CManualSecuritySettings::CancelChangePin()
{
- RDEBUG("0", 0);
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CManualSecuritySettings::CancelChangePin()"));
+ #endif
delete iNote;
iNote = NULL;
}
@@ -292,7 +306,9 @@
* Series 60 Customer / ETel
* Series 60 ETel API
*****************************************************/
- RDEBUG("0", 0);
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CManualSecuritySettings::UnblockPinL()"));
+ #endif
if (aNew.CompareF(aVerifyNew) != 0)
{
// codes do not match note
@@ -310,12 +326,10 @@
{
blockCodeType = RMobilePhone::ESecurityCodePuk2;
}
- RDEBUG("blockCodeType", blockCodeType);
+
iWait->SetRequestType(EMobilePhoneVerifySecurityCode);
iPhone.VerifySecurityCode(iWait->iStatus, blockCodeType, aNew, aPuk);
- RDEBUG("WaitForRequestL", 0);
TInt res = iWait->WaitForRequestL();
- RDEBUG("WaitForRequestL res", res);
switch(res)
{
@@ -354,7 +368,9 @@
//
EXPORT_C void CManualSecuritySettings::CancelUnblockPin()
{
- RDEBUG("0", 0);
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CManualSecuritySettings::CancelUnblockPinL()"));
+ #endif
delete iNote;
iNote = NULL;
}
@@ -370,15 +386,19 @@
* Series 60 Customer / ETel
* Series 60 ETel API
*****************************************************/
- RDEBUG("0", 0);
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CManualSecuritySettings::LockSimL()"));
+ #endif
+
+
RMmCustomAPI::TLockNumber aLockType;
TInt ret = KErrGsm0707IncorrectPassword;
TInt length = aLockCode.Length();
- RDEBUG("length", length);
- // from now on, it accepts restricted lengths, although some locks are 20, others are 13
- if(aLockCode.Length() <= KSimLockMaxPasswordSize)
- {
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CManualSecuritySettings::LockSimL(): Param length: %d"), length);
+ #endif
+
if (aType.CompareF(Operator) == 0)
{
aLockType = RMmCustomAPI::EOperator;
@@ -414,9 +434,10 @@
aLockType = RMmCustomAPI::EOperator_Gid2;
ret = iCustomPhone.ActivateSimLock( aLockCode,aLockType );
}
- }
- RDEBUG("ret", ret);
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CManualSecuritySettings::LockSimL() RESULT: %d"), ret);
+ #endif
switch (ret)
{
case KErrNone:
@@ -451,7 +472,9 @@
//
EXPORT_C void CManualSecuritySettings::CancelLockSim()
{
- RDEBUG("0", 0);
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CManualSecuritySettings::CancelLockSimL()"));
+ #endif
delete iNote;
iNote = NULL;
}
@@ -467,15 +490,17 @@
* Series 60 Customer / ETel
* Series 60 ETel API
*****************************************************/
- RDEBUG("0", 0);
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CManualSecuritySettings::UnLockSimL()"));
+ #endif
RMmCustomAPI::TLockNumber aLockType;
TInt ret = KErrGsm0707IncorrectPassword;
TInt length = aUnlockCode.Length();
- RDEBUG("length", length);
- // from now on, it accepts restricted lengths, although some locks are 20, others are 13
- if(aUnlockCode.Length() <= KSimLockMaxPasswordSize)
- {
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CManualSecuritySettings::UnLockSimL(): Param length: %d"), length);
+ #endif
+
if (aType.CompareF(Operator) == 0)
{
aLockType = RMmCustomAPI::EOperator;
@@ -517,8 +542,9 @@
ret = iCustomPhone.DeActivateSimLock( aUnlockCode,aLockType );
}
- }
- RDEBUG("ret", ret);
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CManualSecuritySettings::UnLockSimL() RESULT: %d"), ret);
+ #endif
switch (ret)
{
case KErrNone:
@@ -551,7 +577,9 @@
//
EXPORT_C void CManualSecuritySettings::CancelUnlockSim()
{
- RDEBUG("0", 0);
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CManualSecuritySettings::CancelUnLockSimL()"));
+ #endif
delete iNote;
iNote = NULL;
}
@@ -564,8 +592,13 @@
//
void CManualSecuritySettings::ShowResultNoteL(CAknNoteDialog::TTone aTone, TInt aResourceID)
{
- RDEBUG("aResourceID", aResourceID);
- CSecuritySettings::ShowResultNoteL(aResourceID, aTone);
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CManualSecuritySettings::CancelUnLockSimL()"));
+ #endif
+ iNote = new (ELeave) CAknNoteDialog(REINTERPRET_CAST(CEikDialog**,&iNote));
+ iNote->SetTimeout(CAknNoteDialog::ELongTimeout);
+ iNote->SetTone(aTone);
+ iNote->ExecuteLD(aResourceID);
}
// End of file
--- a/securitydialogs/SecUi/Src/SecUiRemoteLockSettingPage.cpp Tue Aug 31 16:04:40 2010 +0300
+++ b/securitydialogs/SecUi/Src/SecUiRemoteLockSettingPage.cpp Wed Sep 01 12:19:59 2010 +0100
@@ -54,8 +54,6 @@
CAknRadioButtonSettingPage::ConstructL();
const TSize screenSize = iCoeEnv->ScreenDevice()->SizeInPixels();
- iPopoutCba = CEikButtonGroupContainer::NewL( CEikButtonGroupContainer::ECba, CEikButtonGroupContainer::EHorizontal, this, R_AVKON_SOFTKEYS_OK_CANCEL__OK );
- iPopoutCba->SetBoundingRect( TRect( screenSize ) );
#ifdef _DEBUG
RDebug::Print( _L( "(SecUi)CRemoteLockSettingPage::ConstructL() - Exit" ) );
@@ -76,9 +74,6 @@
RDebug::Print( _L( "(SecUi)CRemoteLockSettingPage::~CRemoteLockSettingPage() - Enter" ) );
#endif // DEBUG
- delete iPopoutCba;
- iPopoutCba = NULL;
-
#ifdef _DEBUG
RDebug::Print( _L( "(SecUi)CRemoteLockSettingPage::~CRemoteLockSettingPage() - Exit" ) );
#endif // DEBUG
--- a/securitydialogs/SecUi/Src/SecUiSecurityHandler.cpp Tue Aug 31 16:04:40 2010 +0300
+++ b/securitydialogs/SecUi/Src/SecUiSecurityHandler.cpp Wed Sep 01 12:19:59 2010 +0100
@@ -1,65 +1,64 @@
/*
- * Copyright (c) 2002 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: Provides api for handling security events.
- *
- *
- */
-#include <e32notif.h>
+* Copyright (c) 2002 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: Provides api for handling security events.
+*
+*
+*/
+
+
#include <aknnotedialog.h>
#include <etelmm.h>
-// #include <SecUi.rsg>
+#include <SecUi.rsg>
#include <exterror.h>
#include <textresolver.h>
#ifdef __COVER_DISPLAY
#include <aknmediatorfacade.h>
+#include <secondarydisplay/SecondaryDisplayStartupAPI.h>
#endif //__COVER_DISPLAY
+
#include <centralrepository.h>
+#include <starterclient.h> //used for RemoveSplashScreen
#include <e32property.h>
-
#include <PSVariables.h> // Property values
#include <coreapplicationuisdomainpskeys.h>
#include <startupdomainpskeys.h>
-// #include <uikon/eiksrvui.h>
+#include <uikon/eiksrvui.h>
#include <settingsinternalcrkeys.h>
#include <securityuisprivatepskeys.h>
-// #include <AknNotiferAppServerApplication.h>
+#include <AknNotiferAppServerApplication.h>
#include <SCPClient.h>
#include <securitynotification.h>
#include "secui.hrh"
-#include "SecUi.h"
#include "secuisecurityhandler.h"
#include "secuicodequerydialog.h"
#include "secuisecuritysettings.h"
#include "SecUiWait.h"
-// #include "SecUiLockObserver.h"
+#include "SecUiLockObserver.h"
+#ifdef RD_REMOTELOCK
#include <RemoteLockSettings.h>
+#endif // RD_REMOTELOCK
#include <StringLoader.h>
#include <featmgr.h>
-#include <hb/hbcore/hbtextresolversymbian.h>
-
-#include "SecQueryUi.h"
-
// LOCAL CONSTANTS AND MACROS
const TInt KMaxNumberOfPUKAttempts(10);
const TInt KMaxNumberOfPINAttempts(3);
-// not used
-// const TInt KLastRemainingInputAttempt(1);
+const TInt KLastRemainingInputAttempt(1);
-const TInt KTriesToConnectServer(2);
-const TInt KTimeBeforeRetryingRequest(50000);
+const TInt KTriesToConnectServer( 2 );
+const TInt KTimeBeforeRetryingRequest( 50000 );
// ================= MEMBER FUNCTIONS =======================
//
@@ -67,21 +66,12 @@
// CSecurityHandler::CSecurityHandler()
// C++ constructor
// ----------------------------------------------------------
-// qtdone
-EXPORT_C CSecurityHandler::CSecurityHandler(RMobilePhone& aPhone) :
- iPhone(aPhone), iQueryCanceled(ETrue), iSecurityDlg(NULL), iNoteDlg(NULL)
+//
+EXPORT_C CSecurityHandler::CSecurityHandler(RMobilePhone& aPhone):
+ iPhone(aPhone), iQueryCanceled(ETrue), iSecurityDlg(NULL), iNoteDlg(NULL)
{
- RDEBUG("0", 0);
-
- TInt result = iCustomPhone.Open(aPhone);
- RDEBUG("result", result);
- TRAP_IGNORE(FeatureManager::InitializeLibL()); //Shouldn't this panic if FM does not initialise??
-
- _LIT(KFileName, "secui_");
- _LIT(KPath, "z:/resource/qt/translations/");
- RDEBUG("HbTextResolverSymbian", 0);
- result = HbTextResolverSymbian::Init(KFileName, KPath);
- RDEBUG("result", result);
+ TInt result = iCustomPhone.Open(aPhone);
+ TRAP_IGNORE( FeatureManager::InitializeLibL() ); //Shouldn't this panic if FM does not initialise??
}
//
@@ -89,49 +79,32 @@
// CSecurityHandler::~CSecurityHandler()
// Destructor
// ----------------------------------------------------------
-// qtdone
+//
EXPORT_C CSecurityHandler::~CSecurityHandler()
{
- RDEBUG("0", 0);
-
- if (iDestroyedPtr)
+ #if defined(_DEBUG)
+ RDebug::Print(_L("CSecurityHandler::~CSecurityHandler()"));
+ #endif
+ if ( iDestroyedPtr )
{
*iDestroyedPtr = ETrue;
iDestroyedPtr = NULL;
}
- RDEBUG("calling CancelOpenQuery", 0);
- TInt err = CancelOpenQuery(-1);
- RDEBUG("err", err);
+ CancelSecCodeQuery();
iCustomPhone.Close();
FeatureManager::UnInitializeLib();
- RDEBUG("1", 1);
}
//
// ----------------------------------------------------------
// CSecurityHandler::HandleEventL()
// Handles different security events
// ----------------------------------------------------------
-// qtdone
-EXPORT_C void CSecurityHandler::HandleEventL(RMobilePhone::TMobilePhoneSecurityEvent aEvent)
+//
+EXPORT_C void CSecurityHandler::HandleEventL(
+ RMobilePhone::TMobilePhoneSecurityEvent aEvent )
{
- RDEBUG("0", 0);
-
TInt result = KErrNone;
- HandleEventL(aEvent, result);
- }
-
-//
-// ----------------------------------------------------------
-// CSecurityHandler::HandleEventL()
-// Handles different security events
-// ----------------------------------------------------------
-// qtdone
-EXPORT_C void CSecurityHandler::HandleEventL(RMobilePhone::TMobilePhoneSecurityEvent aEvent, TBool aStartup, TInt& aResult)
- {
- RDEBUG("0", 0);
-
- iStartup = aStartup;
- HandleEventL(aEvent, aResult);
+ HandleEventL( aEvent, result );
}
//
@@ -139,300 +112,422 @@
// CSecurityHandler::HandleEventL()
// Handles different security events
// ----------------------------------------------------------
-// qtdone
-EXPORT_C void CSecurityHandler::HandleEventL(RMobilePhone::TMobilePhoneSecurityEvent aEvent, TInt& aResult)
+//
+EXPORT_C void CSecurityHandler::HandleEventL(
+ RMobilePhone::TMobilePhoneSecurityEvent aEvent,
+ TBool aStartup, TInt& aResult )
{
- RDEBUG("0", 0);
-
+ iStartup = aStartup;
+ HandleEventL( aEvent, aResult );
+ }
+
+//
+// ----------------------------------------------------------
+// CSecurityHandler::HandleEventL()
+// Handles different security events
+// ----------------------------------------------------------
+//
+EXPORT_C void CSecurityHandler::HandleEventL(
+ RMobilePhone::TMobilePhoneSecurityEvent aEvent, TInt& aResult )
+ {
/*****************************************************
- * Series 60 Customer / ETel
- * Series 60 ETel API
- *****************************************************/
- TBool wcdmaSupported(FeatureManager::FeatureSupported(KFeatureIdProtocolWcdma));
- TBool upinSupported(FeatureManager::FeatureSupported(KFeatureIdUpin));
- RDEBUG("aEvent", aEvent);
-
- switch (aEvent)
- {
- case RMobilePhone::EPin1Required:
- RDEBUG("RMobilePhone::EPin1Required", 0)
- ;
- aResult = Pin1RequiredL();
- break;
- case RMobilePhone::EPuk1Required:
- RDEBUG("RMobilePhone::EPuk1Required", 0)
- ;
- Puk1RequiredL();
- break;
- case RMobilePhone::EPin2Required:
- Pin2RequiredL();
- break;
- case RMobilePhone::EPuk2Required:
- Puk2RequiredL();
- break;
- case RMobilePhone::EUniversalPinRequired:
- if (wcdmaSupported || upinSupported)
- {
- aResult = UPinRequiredL();
- }
- else
- aResult = KErrNotSupported;
- break;
- case RMobilePhone::EUniversalPukRequired:
- if (wcdmaSupported || upinSupported)
- {
- aResult = UPukRequiredL();
- }
- else
- aResult = KErrNotSupported;
- break;
- case RMobilePhone::EPhonePasswordRequired:
- aResult = PassPhraseRequiredL();
- break;
- case RMobilePhone::EICCTerminated:
- SimLockEventL();
- break;
- default:
- RDEBUG("default", aEvent)
- ;
- break;
- }
- RDEBUG("aResult", aResult);
+ * Series 60 Customer / ETel
+ * Series 60 ETel API
+ *****************************************************/
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CSecurityHandler::HandleEventL()"));
+ RDebug::Print(_L("(SECUI)CSecurityHandler::HandleEventL() EVENT: %d"), aEvent);
+ #endif
+ TBool wcdmaSupported(FeatureManager::FeatureSupported( KFeatureIdProtocolWcdma ));
+ TBool upinSupported(FeatureManager::FeatureSupported( KFeatureIdUpin ));
+
+ switch(aEvent)
+ {
+ case RMobilePhone::EPin1Required:
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CSecurityHandler::HandleEventL() Pin1Required"));
+ #endif
+ aResult = Pin1RequiredL();
+ break;
+ case RMobilePhone::EPuk1Required:
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CSecurityHandler::HandleEventL() PUK1Required"));
+ #endif
+ ((CAknNotifierAppServerAppUi*)(CEikonEnv::Static())->EikAppUi())->SuppressAppSwitching(ETrue);
+ TRAPD(err,aResult = Puk1RequiredL());
+ ((CAknNotifierAppServerAppUi*)(CEikonEnv::Static())->EikAppUi())->SuppressAppSwitching(EFalse);
+ User::LeaveIfError(err);
+ break;
+ case RMobilePhone::EPin2Required:
+ Pin2RequiredL();
+ break;
+ case RMobilePhone::EPuk2Required:
+ Puk2RequiredL();
+ break;
+ case RMobilePhone::EUniversalPinRequired:
+ if(wcdmaSupported || upinSupported)
+ {
+ aResult = UPinRequiredL();
+ }
+ else
+ aResult = KErrNotSupported;
+ break;
+ case RMobilePhone::EUniversalPukRequired:
+ if(wcdmaSupported || upinSupported)
+ {
+ aResult = UPukRequiredL();
+ }
+ else
+ aResult = KErrNotSupported;
+ break;
+ case RMobilePhone::EPhonePasswordRequired:
+ aResult = PassPhraseRequiredL();
+ break;
+ case RMobilePhone::EICCTerminated:
+ SimLockEventL();
+ break;
+ default:
+ break;
+ }
+ #if defined(_DEBUG)
+ RDebug::Print( _L( "CSecurityHandler::HandleEventL() returning %d." ), aResult );
+ #endif
}
//
// ----------------------------------------------------------
// CSecurityHandler::AskSecCodeL()
// For asking security code e.g in settings
// ----------------------------------------------------------
-// qtdone
+//
EXPORT_C TBool CSecurityHandler::AskSecCodeL()
- {
+ {
/*****************************************************
- * Series 60 Customer / ETel
- * Series 60 ETel API
- *****************************************************/
- RDEBUG("0", 0);
- // 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
- };
+ * Series 60 Customer / ETel
+ * Series 60 ETel API
+ *****************************************************/
+ #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;
- TInt lAlphaSupported = 0;
- TInt lCancelSupported = 0;
- RMobilePhone::TMobilePassword iSecUi_password;
+ TInt res=-1;
- res = repository->Get(KSCPLockCodeDefaultLockCode, currentLockStatus); // 0x3039 = 12345
- RDEBUG("res", res);
- RDEBUG("currentLockStatus", currentLockStatus);
+ 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 || currentLockStatus == 12345) )
- {
- // code is the default one
- RDEBUG("code is the default one; supply as default", 1);
- iSecUi_password.Copy(_L("12345"));
- // RDEBUG("code is the default one; no need to request it", 1);
- // return ETrue;
- }
- // end check for default code
-
- RMobilePhone::TMobilePassword required_fourth;
-
- TInt ret = KErrNone;
- TInt status = KErrNone;
-
- TInt queryAccepted = KErrCancel;
-
- while (queryAccepted != KErrNone)
+ if(res==0 && currentLockStatus>=1 )
{
- RMobilePhone::TMobilePhoneSecurityCode secCodeType;
- secCodeType = RMobilePhone::ESecurityCodePhonePassword;
+ // code is the default one; no need to request it.
+ return ETrue;
+ }
+ /* end check for default code */
- /* request PIN using QT */
- CSecQueryUi *iSecQueryUi;
- RDEBUG("CSecQueryUi", 0);
- iSecQueryUi = CSecQueryUi::NewL();
- iQueryCanceled = EFalse;
- lAlphaSupported = ESecUiAlphaSupported;
- lCancelSupported = ESecUiCancelSupported;
- TBuf<0x100> title;
- title.Zero();
- HBufC* stringHolder = HbTextResolverSymbian::LoadLC(_L("txt_pin_code_dialog_sec_code"));
- title.Append(stringHolder->Des());
- CleanupStack::PopAndDestroy(stringHolder);
- title.Append(_L("$"));
- title.AppendNum(-1); // Don't know the number of remaining attempts
- queryAccepted = iSecQueryUi->SecQueryDialog(title, iSecUi_password, SEC_C_SECURITY_CODE_MIN_LENGTH, SEC_C_SECURITY_CODE_MAX_LENGTH, ESecUiSecretSupported | lAlphaSupported
- | lCancelSupported | secCodeType);
- RDEBUG("iSecUi_password", 0);
- RDEBUGSTR(iSecUi_password);
- RDEBUG("delete", 0);
- iQueryCanceled = ETrue;
- delete iSecQueryUi;
- RDEBUG("queryAccepted", queryAccepted);
- /* end request PIN using QT */
- if (queryAccepted != KErrNone)
+ // Destructor sets thisDestroyed to ETrue
+ TBool thisDestroyed( EFalse );
+ iDestroyedPtr = &thisDestroyed;
+
+ iQueryCanceled = EFalse;
+ RMobilePhone::TMobilePassword password;
+ RMobilePhone::TMobilePassword required_fourth;
+
+ TInt ret = KErrNone;
+ TInt err = KErrNone;
+ TInt status = KErrNone;
+ if(FeatureManager::FeatureSupported(KFeatureIdSapTerminalControlFw ) &&
+ FeatureManager::FeatureSupported(KFeatureIdSapDeviceLockEnhancements))
+ {
+ // Connect to the SCP server, and request the code query
+ RSCPClient scpClient;
+ User::LeaveIfError( scpClient.Connect() );
+ CleanupClosePushL( scpClient );
+ status = scpClient.SecCodeQuery( password,
+ RSCPClient::SCP_OK_CANCEL,
+ EFalse,
+ 0 );
+
+ if ( status != KErrCancel )
+ {
+ // Set this "true" to indicate that the input wasn't cancelled
+ ret = ETrue;
+ }
+ else
{
ret = EFalse;
- return ret;
}
+
+ CleanupStack::PopAndDestroy(); //scpClient
+ }
+ else
+ {
+ iSecurityDlg = new (ELeave) CCodeQueryDialog (password,SEC_C_SECURITY_CODE_MIN_LENGTH,SEC_C_SECURITY_CODE_MAX_LENGTH,ESecUiNone);
+ #ifdef __COVER_DISPLAY
+ iSecurityDlg->PublishDialogL(SecondaryDisplay::ECmdShowSecurityQuery, SecondaryDisplay::KCatStartup);
+ CAknMediatorFacade* covercl = AknMediatorFacade(iSecurityDlg); // uses MOP, so control provided
+ if (covercl) // returns null if __COVER_DISPLAY is not defined
+ {
+ // … - add data that cover ui is interested in
+ covercl->BufStream().WriteInt32L(SecondaryDisplay::EShowSecCode);// adds int to additional data to be posted to cover ui
+ covercl->BufStream().CommitL(); // no more data to send so commit buf
+ }
+ #endif //__COVER_DISPLAY
+ CSecUiLockObserver* deviceLockStatusObserver = CSecUiLockObserver::NewL(iSecurityDlg);
+ CleanupStack::PushL(deviceLockStatusObserver);
+ err =KErrNone;
+ TRAP(err,ret = iSecurityDlg->ExecuteLD(R_SECURITY_QUERY));
+ CleanupStack::PopAndDestroy(deviceLockStatusObserver);
+ }
+
+ // check if CSecurityHandler has been "killed"
+ if ( thisDestroyed )
+ {
+ return EFalse;
+ }
- CWait* wait = CWait::NewL();
- RDEBUG("VerifySecurityCode", 0);
- iPhone.VerifySecurityCode(wait->iStatus, secCodeType, iSecUi_password, required_fourth);
- RDEBUG("WaitForRequestL", 0);
- status = wait->WaitForRequestL();
- RDEBUG("status", status);
- delete wait;
-#ifdef __WINS__
- if (status == KErrNotSupported || status == KErrTimedOut)
+ iDestroyedPtr = NULL;
+ iSecurityDlg = NULL;
+
+ if (err != KErrNone)
+ {
+ User::Leave(err);
+ }
+
+ if (ret)
+ {
+ while (!iQueryCanceled)
{
- RDEBUG("status", status);
- status = KErrNone;
- }
-#endif
+ if (!FeatureManager::FeatureSupported(KFeatureIdSapDeviceLockEnhancements))
+ {
+ RMobilePhone::TMobilePhoneSecurityCode secCodeType;
+ secCodeType = RMobilePhone::ESecurityCodePhonePassword;
+ CWait* wait = CWait::NewL();
+ iPhone.VerifySecurityCode(wait->iStatus,secCodeType, password, required_fourth);
+ status = wait->WaitForRequestL();
+ delete wait;
+
+ }
+
+ switch(status)
+ {
+ case KErrNone:
+ {
+ if(FeatureManager::FeatureSupported(KFeatureIdSapTerminalControlFw ) &&
+ !(FeatureManager::FeatureSupported(KFeatureIdSapDeviceLockEnhancements)))
+ {
+ RSCPClient scpClient;
+ User::LeaveIfError( scpClient.Connect() );
+ CleanupClosePushL( scpClient );
+
+ TSCPSecCode newCode;
+ newCode.Copy( password );
+ scpClient.StoreCode( newCode );
- ret = ETrue;
- queryAccepted = KErrCancel; // because it's not yet validated
- switch (status)
- {
- case KErrNone:
- {
- if (FeatureManager::FeatureSupported(KFeatureIdSapTerminalControlFw) && !(FeatureManager::FeatureSupported(KFeatureIdSapDeviceLockEnhancements)))
+ CleanupStack::PopAndDestroy(); //scpClient
+ }
+
+ iQueryCanceled = ETrue;
+ return ETrue;
+ }
+ case KErrGsmSSPasswordAttemptsViolation:
+ case KErrLocked:
{
- RDEBUG("calling RSCPClient", 0);
- RSCPClient scpClient;
- User::LeaveIfError(scpClient.Connect());
- CleanupClosePushL(scpClient);
+ iDestroyedPtr = &thisDestroyed;
+ // security code blocked!
+ iNoteDlg = new (ELeave) CAknNoteDialog(REINTERPRET_CAST(CEikDialog**,&iNoteDlg));
+ iNoteDlg->SetTimeout(CAknNoteDialog::ELongTimeout);
+ iNoteDlg->SetTone(CAknNoteDialog::EErrorTone);
+ err =KErrNone;
+ TRAP(err,iNoteDlg->ExecuteLD(R_SEC_BLOCKED));
+
+ // check if CSecurityHandler has been "killed"
+ if ( thisDestroyed )
+ {
+ return EFalse;
+ }
+
+ iDestroyedPtr = NULL;
+ iNoteDlg = NULL;
- TSCPSecCode newCode;
- RDEBUG("iSecUi_password", 1);
- RDEBUGSTR(iSecUi_password);
- newCode.Copy(iSecUi_password);
- RDEBUG(
- "!!!!!!! ***** deprecated **** !!!!! scpClient.StoreCode",
- 0);
- scpClient.StoreCode(newCode);
- RDEBUG("called StoreCode", 1);
-
- CleanupStack::PopAndDestroy(); //scpClient
- queryAccepted = KErrNone;
+ if (err != KErrNone)
+ {
+ User::Leave(err);
+ }
+ break;
}
-
- iQueryCanceled = ETrue;
- return ETrue;
+ case KErrGsm0707IncorrectPassword:
+ case KErrAccessDenied:
+ {
+ iDestroyedPtr = &thisDestroyed;
+ // code was entered erroneusly
+ iNoteDlg = new (ELeave) CAknNoteDialog(REINTERPRET_CAST(CEikDialog**,&iNoteDlg));
+ iNoteDlg->SetTimeout(CAknNoteDialog::ELongTimeout);
+ iNoteDlg->SetTone(CAknNoteDialog::EErrorTone);
+ err =KErrNone;
+ TRAP(err,iNoteDlg->ExecuteLD(R_CODE_ERROR));
+
+ // check if CSecurityHandler has been "killed"
+ if ( thisDestroyed )
+ {
+ return EFalse;
+ }
+
+ iDestroyedPtr = NULL;
+ iNoteDlg = NULL;
+
+ if (err != KErrNone)
+ {
+ User::Leave(err);
+ }
+ break;
+ }
+ default:
+ {
+ iDestroyedPtr = &thisDestroyed;
+ err =KErrNone;
+ TRAP(err,ShowGenericErrorNoteL(status));
+
+ // check if CSecurityHandler has been "killed"
+ if ( thisDestroyed )
+ {
+ return EFalse;
+ }
+
+ iDestroyedPtr = NULL;
+ iNoteDlg = NULL;
+
+ if (err != KErrNone)
+ {
+ User::Leave(err);
+ }
+ break;
+ }
+ }
+
+ if (iQueryCanceled)
+ {
+ ret = EFalse;
+ break;
+ }
+
+ password = _L("");
+ iDestroyedPtr = &thisDestroyed;
+ if(FeatureManager::FeatureSupported(KFeatureIdSapTerminalControlFw ) &&
+ FeatureManager::FeatureSupported(KFeatureIdSapDeviceLockEnhancements))
+ {
+ // Connect to the SCP server, and request the code query
+ RSCPClient scpClient;
+ User::LeaveIfError( scpClient.Connect() );
+ CleanupClosePushL( scpClient );
+ status = scpClient.SecCodeQuery( password,
+ RSCPClient::SCP_OK_CANCEL,
+ EFalse,
+ 0 );
+
+ if ( status != KErrCancel )
+ {
+ // Set this "true" to indicate that the input wasn't cancelled
+ ret = ETrue;
+ }
+ else
+ {
+ ret = EFalse;
+ }
+
+ CleanupStack::PopAndDestroy(); //scpClient
+ }
+ else
+ {
+ iSecurityDlg = new (ELeave) CCodeQueryDialog (password,SEC_C_SECURITY_CODE_MIN_LENGTH,SEC_C_SECURITY_CODE_MAX_LENGTH,ESecUiNone);
+ CSecUiLockObserver* deviceLockStatusObserver = CSecUiLockObserver::NewL(iSecurityDlg);
+ CleanupStack::PushL(deviceLockStatusObserver);
+ err =KErrNone;
+ TRAP(err,ret = iSecurityDlg->ExecuteLD(R_SECURITY_QUERY));
+ CleanupStack::PopAndDestroy(deviceLockStatusObserver);
+ }
+
+ // check if CSecurityHandler has been "killed"
+ if ( thisDestroyed )
+ {
+ return EFalse;
}
- case KErrGsmSSPasswordAttemptsViolation:
- case KErrLocked:
- {
- // security code blocked!
- CSecuritySettings::ShowResultNoteL(R_SEC_BLOCKED, CAknNoteDialog::EErrorTone);
- break;
- }
- case KErrGsm0707IncorrectPassword:
- case KErrAccessDenied:
+
+ iDestroyedPtr = NULL;
+ iSecurityDlg = NULL;
+
+ if (err != KErrNone)
{
- // code was entered erroneusly
- CSecuritySettings::ShowResultNoteL(R_CODE_ERROR, CAknNoteDialog::EErrorTone);
- break;
+ User::Leave(err);
}
- default:
- {
- CSecuritySettings::ShowResultNoteL(status, CAknNoteDialog::EErrorTone);
- }
- }
+
+ if (!ret)
+ break;
} // while
+ } // if
iQueryCanceled = ETrue;
return ret;
}
//
// ----------------------------------------------------------
-// Cancels all security code queries
-// aStatus = -1 from destructor
-// aStatus = 1 from API. Will kill all dialogs through signal P&S
+// CSecurityHandler::CancelSecCodeQuery()
+// Cancels PIN2 and security code queries
// ----------------------------------------------------------
-// qtdone
-TInt CSecurityHandler::CancelOpenQuery(TInt aStatus)
+//
+EXPORT_C void CSecurityHandler::CancelSecCodeQuery()
{
- RDEBUG("aStatus", aStatus);
- RDEBUG("iQueryCanceled", iQueryCanceled);
- TInt res = 0;
-
- if (aStatus == 1) // also signal all other dialogs
- {
- RDEBUG(
- "set KSecurityUIsDismissDialog to ESecurityUIsDismissDialogOn",
- ESecurityUIsDismissDialogOn);
- TInt err = RProperty::Set(KPSUidSecurityUIs, KSecurityUIsDismissDialog, ESecurityUIsDismissDialogOn);
- RDEBUG("err", err);
- res += 1;
- }
-
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CSecurityHandler::CancelSecCodeQuery()"));
+ #endif
if (!iQueryCanceled)
{
- // notify all dialogs, in particular SecUiNotificationDialog::subscriberKSecurityUIsDismissDialogChanged
- // this will cancel only the dialog which was opened by same client.
- res += 0x10;
iQueryCanceled = ETrue;
if (iSecurityDlg != NULL)
{
- RDEBUG("deleting iSecurityDlg", 0);
- res += 0x100;
delete iSecurityDlg;
}
if (iNoteDlg != NULL)
{
- RDEBUG("deleting iNoteDlg", 0);
- res += 0x1000;
delete iNoteDlg;
}
iNoteDlg = NULL;
iSecurityDlg = NULL;
}
- res += 0x10000;
- RDEBUG("res", res);
- return res;
- }
-
-//
-// ----------------------------------------------------------
-// CSecurityHandler::CancelSecCodeQuery()
-// Cancels PIN2 and security code queries
-// this is used by rfsHandler
-// ----------------------------------------------------------
-// qtdone
-EXPORT_C void CSecurityHandler::CancelSecCodeQuery()
- {
- RDEBUG("0", 0);
-
- TInt err = CancelOpenQuery(1);
-
- RDEBUG("err", err);
}
//
// ----------------------------------------------------------
// CSecurityHandler::AskSecCodeInAutoLock()
// for asking security code in autolock
// ----------------------------------------------------------
-// qtdone
+//
EXPORT_C TBool CSecurityHandler::AskSecCodeInAutoLockL()
{
/*****************************************************
- * Series 60 Customer / ETel
- * Series 60 ETel API
- *****************************************************/
-
- RDEBUG("0", 0);
+ * Series 60 Customer / ETel
+ * Series 60 ETel API
+ *****************************************************/
+
+ #ifdef __WINS__
+ return ETrue;
+ #else
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CSecurityHandler::AskSecCodeInAutoLockL()"));
+ #endif
TInt res;
CWait* wait;
-
+
RMobilePhone::TMobilePhoneLockSetting lockChange(RMobilePhone::ELockSetDisabled);
RMobilePhone::TMobilePhoneLock lockType = RMobilePhone::ELockPhoneDevice;
+
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CSecurityHandler::AskSecCodeInAutoLockL() get autolock period"));
+ #endif
// get autolock period from Central Repository.
CRepository* repository = CRepository::NewL(KCRUidSecuritySettings);
@@ -440,591 +535,650 @@
res = repository->Get(KSettingsAutoLockTime, period);
delete repository;
- RDEBUG("res", res);
- RDEBUG("period", period);
-
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CSecurityHandler::AskSecCodeInAutoLockL() autolock period:%d"), res);
+ #endif
if (res == KErrNone)
{
// disable autolock in Domestic OS side too if autolock period is 0.
- if (period == 0)
+ if (period == 0 )
{
- RDEBUG("period", period);
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CSecurityHandler::AskSecCodeInAutoLockL() Call SetLockSetting"));
+ #endif
+
+#ifdef RD_REMOTELOCK
// If remote lock is enabled, don't disable the domestic OS device lock
// since that would render the RemoteLock useless.
// Instead just re-set the DOS lock to enabled which as a side effect
// requests the security code from the user.
- TBool remoteLockStatus(EFalse);
+ TBool remoteLockStatus( EFalse );
CRemoteLockSettings* remoteLockSettings = CRemoteLockSettings::NewL();
- if (remoteLockSettings->GetEnabled(remoteLockStatus))
+ if ( remoteLockSettings->GetEnabled( remoteLockStatus ) )
{
- RDEBUG("0", 0);
- if (remoteLockStatus)
+ if ( remoteLockStatus )
{
// Remote lock is enabled
+ #ifdef _DEBUG
+ RDebug::Print( _L( "(SecUi)CSecurityHandler::AskSecCodeInAutoLockL() - RemoteLock is enabled: lockChange = RMobilePhone::ELockSetEnabled" ) );
+ #endif // _DEBUG
+
lockChange = RMobilePhone::ELockSetEnabled;
- RDEBUG("lockChange", lockChange);
}
else
{
// Remote lock is disabled
+ #ifdef _DEBUG
+ RDebug::Print( _L( "(SecUi)CSecurityHandler::AskSecCodeInAutoLockL() - RemoteLock is disabled: lockChange = RMobilePhone::ELockSetDisabled" ) );
+ #endif // _DEBUG
+
lockChange = RMobilePhone::ELockSetDisabled;
- RDEBUG("lockChange", lockChange);
}
}
else
{
// Failed to get remote lock status
- RDEBUG("Failed", lockChange);
+ #ifdef _DEBUG
+ RDebug::Print( _L( "(SecUi)CSecurityHandler::AskSecCodeInAutoLockL() - Failed to get RemoteLock status" ) );
+ #endif // _DEBUG
}
delete remoteLockSettings;
remoteLockSettings = NULL;
- RDEBUG("lockChange", lockChange);
- wait = CWait::NewL();
- RDEBUG("0", 0);
- // this also calls PassPhraseRequiredL ???
- RDEBUG("SetLockSetting", 1);
- iPhone.SetLockSetting(wait->iStatus, lockType, lockChange);
- res = KErrNone;
- RDEBUG("WaitForRequestL", 0);
- res = wait->WaitForRequestL();
- RDEBUG("res", res);
- delete wait;
- } // from period == 0
+#else // not defined RD_REMOTELOCK
+
+ lockChange = RMobilePhone::ELockSetDisabled;
+
+#endif // RD_REMOTELOCK
+
+ wait = CWait::NewL();
+ iPhone.SetLockSetting(wait->iStatus,lockType,lockChange);
+ res = wait->WaitForRequestL();
+ delete wait;
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CSecurityHandler::AskSecCodeInAutoLockL() SetLockSetting RESULT:%d"), res);
+ #endif
+ }
else
- { // ask security code
- RDEBUG("codeQueryNotifier 0", 0);
- RNotifier codeQueryNotifier;
- User::LeaveIfError(codeQueryNotifier.Connect());
- CWait* wait = CWait::NewL();
- CleanupStack::PushL(wait);
- TInt queryResponse = 0;
- TPckg<TInt> response(queryResponse);
- RDEBUG("0", 0);
- TSecurityNotificationPckg params;
- params().iEvent = static_cast<TInt> (RMobilePhone::EPhonePasswordRequired);
- params().iStartup = EFalse;
-
- RDEBUG("StartNotifierAndGetResponse", 0);
- codeQueryNotifier.StartNotifierAndGetResponse(wait->iStatus, KSecurityNotifierUid, params, response);
- // this will eventually call PassPhraseRequiredL
- RDEBUG("WaitForRequestL", 0);
- res = wait->WaitForRequestL();
- RDEBUG("WaitForRequestL", 1);
- RDEBUG("res", res);
- CleanupStack::PopAndDestroy(); // wait
- if (res == KErrNone)
- res = queryResponse;
- } // from else period == 0
- RDEBUG("0", 0);
+ { // ask security code
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CSecurityHandler::AskSecCodeInAutoLockL() Ask sec code via notifier"));
+ #endif
+ RNotifier codeQueryNotifier;
+ User::LeaveIfError(codeQueryNotifier.Connect());
+ CWait* wait = CWait::NewL();
+ CleanupStack::PushL(wait);
+ TInt queryResponse = 0;
+ TPckg<TInt> response(queryResponse);
+ TSecurityNotificationPckg params;
+ params().iEvent = static_cast<TInt>(RMobilePhone::EPhonePasswordRequired);
+ params().iStartup = EFalse;
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CSecurityHandler::AskSecCodeInAutoLockL() Start Notifier"));
+ #endif
+ codeQueryNotifier.StartNotifierAndGetResponse(wait->iStatus, KSecurityNotifierUid,params, response);
+ res = wait->WaitForRequestL();
+ CleanupStack::PopAndDestroy(); // wait
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CSecurityHandler::AskSecCodeInAutoLockL() results:"));
+ RDebug::Print(_L("(SECUI)CSecurityHandler::AskSecCodeInAutoLockL() res:%d"), res);
+ RDebug::Print(_L("(SECUI)CSecurityHandler::AskSecCodeInAutoLockL() queryResponse:%d"), queryResponse);
+ #endif
+ if(res == KErrNone)
+ res = queryResponse;
+ }
}
else
- { // can't read repository for KSettingsAutoLockTime
- RDEBUG("KERRSOMETHING:Call SetLockSetting", 0);
+ {
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CSecurityHandler::AskSecCodeInAutoLockL() KERRSOMETHING:Call SetLockSetting"));
+ #endif
+
+#ifdef RD_REMOTELOCK
// If remote lock is enabled, don't disable the domestic OS device lock
// since that would render the RemoteLock useless.
// Instead just re-set the DOS lock to enabled which as a side effect
// requests the security code from the user.
- TBool remoteLockStatus(EFalse);
+ TBool remoteLockStatus( EFalse );
CRemoteLockSettings* remoteLockSettings = CRemoteLockSettings::NewL();
- if (remoteLockSettings->GetEnabled(remoteLockStatus))
+ if ( remoteLockSettings->GetEnabled( remoteLockStatus ) )
{
- if (remoteLockStatus)
+ if ( remoteLockStatus )
{
// Remote lock is enabled
+ #ifdef _DEBUG
+ RDebug::Print( _L( "(SecUi)CSecurityHandler::AskSecCodeInAutoLockL() - Failed to get AutoLock status and RemoteLock is enabled: lockChange = RMobilePhone::ELockSetEnabled" ) );
+ #endif // _DEBUG
+
lockChange = RMobilePhone::ELockSetEnabled;
- RDEBUG("lockChange", lockChange);
}
else
{
// Remote lock is disabled
+ #ifdef _DEBUG
+ RDebug::Print( _L( "(SecUi)CSecurityHandler::AskSecCodeInAutoLockL() - Failed to get AutoLock status and RemoteLock is disabled: lockChange = RMobilePhone::ELockSetDisabled" ) );
+ #endif // _DEBUG
+
lockChange = RMobilePhone::ELockSetDisabled;
- RDEBUG("lockChange", lockChange);
}
}
else
{
// Failed to get remote lock status
- RDEBUG("Failed", lockChange);
+ #ifdef _DEBUG
+ RDebug::Print( _L( "(SecUi)CSecurityHandler::AskSecCodeInAutoLockL() - Failed to get AutoLock status and failed to get RemoteLock status" ) );
+ #endif // _DEBUG
}
delete remoteLockSettings;
remoteLockSettings = NULL;
- RDEBUG("0", 0);
+#else // not defined RD_REMOTELOCK
+
+ // could not get the current autolock time... disable autolock in Domestic OS side.
+ lockChange = RMobilePhone::ELockSetDisabled;
+
+#endif // RD_REMOTELOCK
+
wait = CWait::NewL();
- RDEBUG("SetLockSetting", 0);
- iPhone.SetLockSetting(wait->iStatus, lockType, lockChange);
- RDEBUG("WaitForRequestL", 0);
+ iPhone.SetLockSetting(wait->iStatus,lockType,lockChange);
res = wait->WaitForRequestL();
- RDEBUG("WaitForRequestL res", res);
delete wait;
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CSecurityHandler::AskSecCodeInAutoLockL() KES: SetLockSetting RESULT:%d"), res);
+ #endif
}
-
- RDEBUG("res", res);
+
switch (res)
{
case KErrNone:
{
- return ETrue;
+ return ETrue;
}
+
case KErrGsmSSPasswordAttemptsViolation:
case KErrLocked:
case KErrGsm0707IncorrectPassword:
case KErrAccessDenied:
{
- RDEBUG("KErrAccessDenied", KErrAccessDenied);
- return AskSecCodeInAutoLockL();
- }
- case KErrInUse:
- {
- RDEBUG("KErrInUse", KErrInUse);
- return EFalse;
- }
- case KErrDied:
- {
- RDEBUG("KErrDied ", KErrDied);
- return EFalse;
- }
- case KErrServerTerminated:
- {
- RDEBUG("KErrServerTerminated ", KErrServerTerminated);
- return EFalse;
- }
- case KErrServerBusy:
- {
- RDEBUG("KErrServerBusy ", KErrServerBusy);
- return EFalse;
+ return AskSecCodeInAutoLockL();
}
case KErrAbort:
- {
- RDEBUG("KErrAbort", KErrAbort);
- return EFalse;
- }
case KErrCancel:
- {
- RDEBUG("KErrCancel", KErrCancel);
// user pressed "cancel"
return EFalse;
- }
default:
{
- RDEBUG("default", res);
return AskSecCodeInAutoLockL();
}
}
+#endif // WINS
}
//
// ----------------------------------------------------------
// CSecurityHandler::PassPhraseRequired()
// Handles PassPhraseRequired event
// ----------------------------------------------------------
-// qtdone
+//
TInt CSecurityHandler::PassPhraseRequiredL()
{
/*****************************************************
- * Series 60 Customer / ETel
- * Series 60 ETel API
- *****************************************************/
- RDEBUG("0", 0);
+ * Series 60 Customer / ETel
+ * Series 60 ETel API
+ *****************************************************/
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CSecurityHandler::PassPhraseRequiredL()"));
+ #endif
TBool StartUp = iStartup;
- RMobilePhone::TMobilePassword iSecUi_password;
+ RMobilePhone::TMobilePassword password;
RMobilePhone::TMobilePassword required_fourth;
- TInt queryAccepted = KErrCancel;
-
- TInt autolockState = 0;
- TInt lCancelSupported = 0;
- TInt lEmergencySupported = 0;
-
- TInt err(KErrGeneral);
+ TInt status;
+ TInt autolockState;
+ TInt err( KErrGeneral );
err = RProperty::Get(KPSUidCoreApplicationUIs, KCoreAppUIsAutolockStatus, autolockState);
- RDEBUG("StartUp", StartUp);
- RDEBUG("err", err);
- if (!StartUp)
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CSecurityHandler::PassPhraseRequiredL() Autolock Status result: %d"), err);
+ #endif
+ if(!StartUp)
+ User::LeaveIfError( err );
+TBool isConditionSatisfied = EFalse;
+TInt tarmFlag=0;
+if(FeatureManager::FeatureSupported(KFeatureIdSapTerminalControlFw ))
+ {
+ TInt tRet = RProperty::Get( KSCPSIDAutolock, SCP_TARM_ADMIN_FLAG_UID, tarmFlag );
+
+ if ( tRet != KErrNone )
{
- RDebug::Printf("%s %s (%u) might leave if StartUp=0 and err=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, err);
- User::LeaveIfError(err);
- }
- TBool isConditionSatisfied = EFalse;
- TInt tarmFlag = 0;
- if (FeatureManager::FeatureSupported(KFeatureIdSapTerminalControlFw))
- {
- TInt tRet = RProperty::Get(KSCPSIDAutolock, SCP_TARM_ADMIN_FLAG_UID, tarmFlag);
-
- if (tRet != KErrNone)
- {
- RDEBUG("Warning: failed to get TARM Admin Flag state", tRet);
- }
- else
- {
- RDEBUG("TARM flag", tarmFlag);
- }
-
- if ((StartUp) || (tarmFlag & KSCPFlagResyncQuery))
- isConditionSatisfied = ETrue;
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CSecurityHandler::PassPhraseRequiredL():\
+ Warning: failed to get TARM Admin Flag state"));
+ #endif
}
else
{
- if (StartUp)
- isConditionSatisfied = ETrue;
- }
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CSecurityHandler::PassPhraseRequiredL(): TARM flag: %d"), tarmFlag );
+ #endif
+ }
+
+ if ( ( StartUp ) || ( tarmFlag & KSCPFlagResyncQuery ) )
+ isConditionSatisfied = ETrue;
+ }
+ else
+ {
+ if (StartUp)
+ isConditionSatisfied = ETrue;
+ }
- // Security code at bootup: No "cancel" softkey; Emergency calls enabled.
- RMobilePhone::TMobilePhoneSecurityCode secCodeTypeToAsk = RMobilePhone::ESecurityCodePhonePassword;
- RDEBUG("isConditionSatisfied", isConditionSatisfied);
- if (isConditionSatisfied)
- {
- // starter or special TARM. NoCancel+Emergency
- lCancelSupported = ESecUiCancelNotSupported;
- lEmergencySupported = ESecUiEmergencySupported;
- }
- else if (autolockState > EAutolockOff)
- {
- // from unlock. Cancel+Emergency
- lCancelSupported = ESecUiCancelSupported;
- lEmergencySupported = ESecUiEmergencySupported;
- }
- else
- {
- // from settings. Cancel+NoEmergency
- lCancelSupported = ESecUiCancelSupported;
- lEmergencySupported = ESecUiEmergencyNotSupported;
- }
+ // call TARM so that it verifies that configuration is in sync. This might internally accept the (default) lock code, but doesn't dismiss the query.
+ #if defined(_DEBUG)
+ RDebug::Printf( "%s %s (%u) pre isConditionSatisfied=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, isConditionSatisfied );
+ #endif
+ RSCPClient scpClientConfiguration;
+ User::LeaveIfError( scpClientConfiguration.Connect() );
+ CleanupClosePushL( scpClientConfiguration );
+ #if defined(_DEBUG)
+ RDebug::Printf( "%s %s (%u) calling CheckConfiguration KSCPComplete=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, KSCPComplete );
+ #endif
+ TInt finalConfStatus = scpClientConfiguration.CheckConfiguration( KSCPComplete );
+ #if defined(_DEBUG)
+ RDebug::Printf( "%s %s (%u) finalConfStatus=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, finalConfStatus );
+ RDebug::Printf( "%s %s (%u) isConditionSatisfied=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, isConditionSatisfied );
+ #endif
+ CleanupStack::PopAndDestroy(); // scpClientConfiguration
- CSecQueryUi *iSecQueryUi;
- iSecQueryUi = CSecQueryUi::NewL();
- iQueryCanceled = EFalse;
- TInt lType = ESecUiSecretSupported | ESecUiAlphaSupported | lCancelSupported | lEmergencySupported | secCodeTypeToAsk;
- RDEBUG("lType", lType);
- TBuf<0x100> title;
- title.Zero();
- HBufC* stringHolder = HbTextResolverSymbian::LoadLC(_L("txt_pin_code_dialog_sec_code"));
- title.Append(stringHolder->Des());
- CleanupStack::PopAndDestroy(stringHolder);
- queryAccepted = iSecQueryUi->SecQueryDialog(title, iSecUi_password, SEC_C_SECURITY_CODE_MIN_LENGTH, SEC_C_SECURITY_CODE_MAX_LENGTH, lType);
- RDEBUG("iSecUi_password", 0);
- RDEBUGSTR(iSecUi_password);
- RDEBUG("queryAccepted", queryAccepted);
- iQueryCanceled = ETrue;
- delete iSecQueryUi;
-
- TBool wasCancelledOrEmergency = EFalse;
- RDEBUG("KFeatureIdSapDeviceLockEnhancements",
- KFeatureIdSapDeviceLockEnhancements);
- if ((queryAccepted == KErrAbort /* =emergency */) || (queryAccepted == KErrCancel))
- wasCancelledOrEmergency = ETrue;
- RDEBUG("wasCancelledOrEmergency", wasCancelledOrEmergency);
- if (wasCancelledOrEmergency)
+ if (isConditionSatisfied)
+ {
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CSecurityHandler::PassPhraseRequiredL() Dialog 1"));
+ #endif
+ // Security code at bootup: No "cancel" softkey; Emergency calls enabled.
+ if(FeatureManager::FeatureSupported(KFeatureIdSapTerminalControlFw ) &&
+ FeatureManager::FeatureSupported(KFeatureIdSapDeviceLockEnhancements))
+ {
+ // Connect to the SCP server, and request the code query
+ RSCPClient scpClient;
+ User::LeaveIfError( scpClient.Connect() );
+ CleanupClosePushL( scpClient );
+
+ status = scpClient.SecCodeQuery( password,
+ RSCPClient::SCP_OK_ETEL,
+ ETrue,
+ KSCPEtelRequest );
+ // Note that SecCodeQuery doesn't indicate the return value from the dialog
+
+ CleanupStack::PopAndDestroy(); //scpClient
+ }
+ else
+ {
+ CCodeQueryDialog* securityDlg = new (ELeave) CCodeQueryDialog (password,SEC_C_SECURITY_CODE_MIN_LENGTH,SEC_C_SECURITY_CODE_MAX_LENGTH,ESecUiCodeEtelReqest);
+ if(AknLayoutUtils::PenEnabled())
+ securityDlg->SetEmergencyCallSupportForCBA( ETrue );
+ else
+ securityDlg->SetEmergencyCallSupport(ETrue);
+ #ifdef __COVER_DISPLAY
+ securityDlg->PublishDialogL(SecondaryDisplay::ECmdShowSecurityQuery, SecondaryDisplay::KCatStartup);
+ CAknMediatorFacade* covercl = AknMediatorFacade(securityDlg); // uses MOP, so control provided
+ if (covercl) // returns null if __COVER_DISPLAY is not defined
+ {
+ // … - add data that cover ui is interested in
+ covercl->BufStream().WriteInt32L(SecondaryDisplay::EShowSecCode); // adds int to additional data to be posted to cover ui
+ covercl->BufStream().CommitL(); // no more data to send so commit buf
+ }
+ #endif //__COVER_DISPLAY
+ status = securityDlg->ExecuteLD(R_SECURITY_REQUEST_QUERY);
+ }
+ }
+ else if ( (autolockState > EAutolockOff))
{
- RDEBUG("StartUp", StartUp);
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CSecurityHandler::PassPhraseRequiredL() Dialog 2"));
+ #endif
+ // Autolock is On. Security event came from user pressing "unlock".
+ // Emergency call support must be enabled and there must be a "cancel" softkey.
+ if(FeatureManager::FeatureSupported(KFeatureIdSapTerminalControlFw ) &&
+ FeatureManager::FeatureSupported(KFeatureIdSapDeviceLockEnhancements))
+ {
+ // Connect to the SCP server, and request the code query
+ RSCPClient scpClient;
+ User::LeaveIfError( scpClient.Connect() );
+ CleanupClosePushL( scpClient );
+
+ status = scpClient.SecCodeQuery( password,
+ RSCPClient::SCP_OK_CANCEL,
+ ETrue,
+ KSCPEtelRequest );
+ // Note that SecCodeQuery doesn't indicate the return value from the dialog
+
+ CleanupStack::PopAndDestroy(); //scpClient
+ }
+ else
+ {
+ CCodeQueryDialog* securityDlg = new (ELeave) CCodeQueryDialog (password,SEC_C_SECURITY_CODE_MIN_LENGTH,SEC_C_SECURITY_CODE_MAX_LENGTH,ESecUiNone);
+ if(AknLayoutUtils::PenEnabled())
+ securityDlg->SetEmergencyCallSupportForCBA( ETrue );
+ else
+ securityDlg->SetEmergencyCallSupport(ETrue);
+ #ifdef __COVER_DISPLAY
+ securityDlg->PublishDialogL(SecondaryDisplay::ECmdShowSecurityQuery, SecondaryDisplay::KCatStartup);
+ CAknMediatorFacade* covercl = AknMediatorFacade(securityDlg); // uses MOP, so control provided
+ if (covercl) // returns null if __COVER_DISPLAY is not defined
+ {
+ // … - add data that cover ui is interested in
+ covercl->BufStream().WriteInt32L(SecondaryDisplay::EShowSecCode); // adds int to additional data to be posted to cover ui
+ covercl->BufStream().CommitL(); // no more data to send so commit buf
+ }
+ #endif //__COVER_DISPLAY
+ status = securityDlg->ExecuteLD(R_SECURITY_QUERY);
+ }
+ }
+ else
+ {
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CSecurityHandler::PassPhraseRequiredL() Dialog 3"));
+ #endif
+ // Code query due to a setting change; "Cancel" softkey active;
+ // no emergency call support.
+ if(FeatureManager::FeatureSupported(KFeatureIdSapTerminalControlFw ) &&
+ FeatureManager::FeatureSupported(KFeatureIdSapDeviceLockEnhancements))
+ {
+ // Connect to the SCP server, and request the code query
+ RSCPClient scpClient;
+ User::LeaveIfError( scpClient.Connect() );
+ CleanupClosePushL( scpClient );
+
+ status = scpClient.SecCodeQuery( password,
+ RSCPClient::SCP_OK_CANCEL,
+ EFalse,
+ KSCPEtelRequest );
+ // Note that SecCodeQuery doesn't indicate the return value from the dialog
+
+ CleanupStack::PopAndDestroy(); //scpClient
+ }
+ else
+ {
+ iSecurityDlg = new (ELeave) CCodeQueryDialog (password,SEC_C_SECURITY_CODE_MIN_LENGTH,SEC_C_SECURITY_CODE_MAX_LENGTH,ESecUiNone);
+ #ifdef __COVER_DISPLAY
+ iSecurityDlg->PublishDialogL(SecondaryDisplay::ECmdShowSecurityQuery, SecondaryDisplay::KCatStartup);
+ CAknMediatorFacade* covercl = AknMediatorFacade(iSecurityDlg); // uses MOP, so control provided
+ if (covercl) // returns null if __COVER_DISPLAY is not defined
+ {
+ covercl->BufStream().WriteInt32L(SecondaryDisplay::EShowSecCode); // adds int to additional data to be posted to cover ui
+ covercl->BufStream().CommitL(); // no more data to send so commit buf
+ }
+ #endif //__COVER_DISPLAY
+ // read a flag to see whether the query is SecUi originated.
+ TInt secUiOriginatedQuery(ESecurityUIsETelAPIOriginated);
+ RProperty::Get(KPSUidSecurityUIs, KSecurityUIsSecUIOriginatedQuery, secUiOriginatedQuery);
+ CSecUiLockObserver* deviceLockStatusObserver = CSecUiLockObserver::NewL(iSecurityDlg);
+ CleanupStack::PushL(deviceLockStatusObserver);
+ CSecUiLockObserver* queryStatusObserver = CSecUiLockObserver::NewL(iSecurityDlg, ESecUiRequestStateObserver);
+ CleanupStack::PushL(queryStatusObserver);
+ CSecUiLockObserver* callStatusObserver = NULL;
+ if(secUiOriginatedQuery == ESecurityUIsSystemLockOriginated)
+ {
+ callStatusObserver = CSecUiLockObserver::NewL(iSecurityDlg, ESecUiCallStateObserver);
+ CleanupStack::PushL(callStatusObserver);
+ }
+ status = iSecurityDlg->ExecuteLD(R_SECURITY_QUERY);
+
+ if(callStatusObserver == NULL)
+ CleanupStack::PopAndDestroy(2); //deviceLockStatusObserver, queryStatusObserver
+ else
+ CleanupStack::PopAndDestroy(3); //deviceLockStatusObserver, queryStatusObserver, callStatusObserver
+ iSecurityDlg = NULL;
+ }
+ }
+TBool isCondition = EFalse;
+if(!FeatureManager::FeatureSupported(KFeatureIdSapDeviceLockEnhancements))
+{
+ if (!status || (status == ESecUiEmergencyCall)
+ || (status == EAknSoftkeyEmergencyCall) || (status == ESecUiDeviceLocked))
+ isCondition = ETrue;
+}
+else
+{
+ if ( ( status == KErrCancel ) || (status == ESecUiEmergencyCall) ||
+ (status == EAknSoftkeyEmergencyCall) || (status == ESecUiDeviceLocked))
+ isCondition = ETrue;
+}
+ if (isCondition)
+ {
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CSecurityHandler::PassPhraseRequiredL() DIALOG ERROR"));
+ #endif
if (!StartUp)
{
- RDEBUG("AbortSecurityCode", 0);
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CSecurityHandler::PassPhraseRequiredL() ABORT CALLED!!!!!!"));
+ #endif
iPhone.AbortSecurityCode(RMobilePhone::ESecurityCodePhonePassword);
- RDEBUG("AbortSecurityCode", 1);
}
return KErrCancel;
}
RMobilePhone::TMobilePhoneSecurityCode secCodeType = RMobilePhone::ESecurityCodePhonePassword;
- CWait* wait = NULL;
- TInt status = KErrNone;
-
- // Validate the code using SCP. This is needed to check expiration
- RDEBUG("AbortSecurityCode", 0);
- RSCPClient scpClient;
- RDEBUG("scpClient.Connect", 0);
- TInt tRet = scpClient.Connect();
- RDEBUG("tRet", tRet);
-
- CleanupClosePushL(scpClient);
-
- RArray<TDevicelockPolicies> aFailedPolicies;
- TDevicelockPolicies failedPolicy;
- TInt retLockcode = KErrNone;
- RMobilePhone::TMobilePassword aISACode;
- TInt aFlags = 0;
- RDEBUG("scpClient.VerifyCurrentLockcode", 0);
- // this validate on ISA . No need to do iPhone.VerifySecurityCode
- retLockcode = scpClient.VerifyCurrentLockcode(iSecUi_password, aISACode, aFailedPolicies, aFlags);
- RDEBUG("retLockcode", retLockcode);
-
- RDEBUG("aISACode", 0);
- RDEBUGSTR(aISACode);
-
- RDEBUG("aFailedPolicies.Count()", aFailedPolicies.Count());
- RDEBUG("EDeviceLockPasscodeExpiration", EDeviceLockPasscodeExpiration); // 8
- TInt failedEDeviceLockPasscodeExpiration = 0;
- for (TInt i = 0; i < aFailedPolicies.Count(); i++)
- {
- failedPolicy = aFailedPolicies[i];
- RDEBUG("failedPolicy", failedPolicy);
- if (failedPolicy == EDeviceLockPasscodeExpiration)
- failedEDeviceLockPasscodeExpiration = EDeviceLockPasscodeExpiration;
- }
- RDEBUG("Close", 0);
- scpClient.Close();
- RDEBUG("PopAndDestroy", 0);
- CleanupStack::PopAndDestroy(); //scpClient
-
- RDEBUG("failedEDeviceLockPasscodeExpiration", failedEDeviceLockPasscodeExpiration);
- if (failedEDeviceLockPasscodeExpiration > 0)
- {
- // the password has expired. Note that it has NOT been validated. It will be revalidated inside ChangeSecCodeParamsL
- RMobilePhone::TMobilePassword iNewPassword;
- TInt iFlags = 0;
- iNewPassword.Copy(_L(""));
- TBuf<0x80> iCaption;
- iCaption.Copy(_L("ChangeSecCodeL")); // no need to translate because it's not used
- TInt iShowError = 1;
- CSecuritySettings* iSecSettings;
- iSecSettings = CSecuritySettings::NewL();
- TSecUi::InitializeLibL();
- RDEBUG("calling ChangeSecCodeParamsL", 0);
- status = iSecSettings->ChangeSecCodeParamsL(iSecUi_password, iNewPassword, iFlags, iCaption, iShowError);
- // note that it might have been aborted. The error KErrAbort is shown in this method, not inside ChangeSecCodeParamsL
- if(status==KErrAccessDenied || status==KErrGsm0707IncorrectPassword)
- {
- // the password expired, but the user typed wrongly. The error was already displayed.
- RDEBUG("SCP returned ", KErrAccessDenied);
- status=R_CODES_DONT_MATCH;
- RDEBUG("SCP changed to R_CODES_DONT_MATCH", R_CODES_DONT_MATCH);
- }
- RDEBUG("status", status);
- RDEBUG("iNewPassword", 0);
- RDEBUGSTR(iNewPassword);
- TSecUi::UnInitializeLib();
- RDEBUG("deleting iSecSettings", 0);
- delete iSecSettings;
- RDEBUG("deleted iSecSettings", 1);
- }
- else
- {
- RDEBUG( "wait", 0 );
+ CWait* wait = NULL;
+if(!FeatureManager::FeatureSupported(KFeatureIdSapDeviceLockEnhancements))
+{
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CSecurityHandler::PassPhraseRequiredL() VerifySecurityCode"));
+ #endif
wait = CWait::NewL();
- RDEBUG("VerifySecurityCode", 0);
- iPhone.VerifySecurityCode(wait->iStatus, secCodeType, iSecUi_password, required_fourth);
- RDEBUG("WaitForRequestL",
- 0);
+ iPhone.VerifySecurityCode(wait->iStatus,secCodeType, password, required_fourth);
status = wait->WaitForRequestL();
- RDEBUG("WaitForRequestL status",
- status);
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CSecurityHandler::PassPhraseRequiredL() VerifySecurityCode STATUS: %d"), status);
+ #endif
delete wait;
-#ifdef __WINS__
- if (status == KErrNotSupported || status == KErrTimedOut)
- {
- RDEBUG( "status", status );
- status = KErrNone;
- }
-#endif
- }
-
+ }
+ else
+ {
+ wait = NULL;
+ }
+
TInt returnValue = status;
- RDEBUG("tarmFlag", tarmFlag);
- RDEBUG("StartUp", StartUp);
- RDEBUG("status", status);
- switch (status)
- {
+ switch(status)
+ {
case KErrNone:
- // code approved
- {
- RDEBUG("KErrNone", KErrNone);
- if( failedEDeviceLockPasscodeExpiration > 0)
- {
- RDEBUG("code has just been changed. No need to show Confirmation note. failedEDeviceLockPasscodeExpiration", failedEDeviceLockPasscodeExpiration);
- }
- else
- {
- CSecuritySettings::ShowResultNoteL(R_CONFIRMATION_NOTE, CAknNoteDialog::EConfirmationTone);
- }
- RDEBUG("R_CONFIRMATION_NOTE", R_CONFIRMATION_NOTE);
- if (FeatureManager::FeatureSupported(KFeatureIdSapTerminalControlFw))
- {
- RDEBUG("KFeatureIdSapTerminalControlFw",
- KFeatureIdSapTerminalControlFw);
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CSecurityHandler::PassPhraseRequiredL() KErrNone"));
+ #endif
+ // code approved
+ if(FeatureManager::FeatureSupported(KFeatureIdSapTerminalControlFw))
+ {
// Unset the admin flag if set
- if (tarmFlag & KSCPFlagResyncQuery)
- {
- TInt tRet = RProperty::Get(KSCPSIDAutolock, SCP_TARM_ADMIN_FLAG_UID, tarmFlag);
-
- if (tRet == KErrNone)
- {
- tarmFlag &= ~KSCPFlagResyncQuery;
- tRet = RProperty::Set(KSCPSIDAutolock, SCP_TARM_ADMIN_FLAG_UID, tarmFlag);
- }
-
- if (tRet != KErrNone)
- {
- RDEBUG(
- "FAILED to unset TARM Admin Flag tRet=",
- tRet);
- }
- }
- if (!FeatureManager::FeatureSupported(KFeatureIdSapDeviceLockEnhancements))
+ if ( tarmFlag & KSCPFlagResyncQuery )
{
- RDEBUG("KFeatureIdSapDeviceLockEnhancements", KFeatureIdSapDeviceLockEnhancements);
- RSCPClient scpClient;
- RDEBUG("scpClient.Connect", 0);
- TInt tRet = scpClient.Connect();
- RDEBUG("tRet", tRet);
- User::LeaveIfError(tRet);
- RDEBUG("scpClient.Connect", 1);
- CleanupClosePushL(scpClient);
- TSCPSecCode newCode;
- newCode.Copy(iSecUi_password);
- RDEBUG(
- "!!!!!!! ***** TODO deprecated **** !!!!! scpClient.StoreCode",
- 0);
- scpClient.StoreCode(newCode);
- RDEBUG("scpClient.StoreCode", 1);
- // TODO check whether code is expired.
- // This should be done by TARM, and they should ask to change the code
- CleanupStack::PopAndDestroy(); //scpClient
- }
+ TInt tRet = RProperty::Get( KSCPSIDAutolock, SCP_TARM_ADMIN_FLAG_UID, tarmFlag );
+
+ if ( tRet == KErrNone )
+ {
+ tarmFlag &= ~KSCPFlagResyncQuery;
+ tRet = RProperty::Set( KSCPSIDAutolock, SCP_TARM_ADMIN_FLAG_UID, tarmFlag );
+ }
+
+ if ( tRet != KErrNone )
+ {
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CSecurityHandler::PassPhraseRequiredL():\
+ FAILED to unset TARM Admin Flag"));
+ #endif
+ }
+ }
+ if(!FeatureManager::FeatureSupported(KFeatureIdSapDeviceLockEnhancements))
+ {
+ RSCPClient scpClient;
+ User::LeaveIfError( scpClient.Connect() );
+ CleanupClosePushL( scpClient );
+ TSCPSecCode newCode;
+ newCode.Copy( password );
+ scpClient.StoreCode( newCode );
+ CleanupStack::PopAndDestroy(); //scpClient
+ }
- }
- RDEBUG("StartUp", StartUp);
+ }
+
if (StartUp)
{
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CSecurityHandler::PassPhraseRequiredL()KErrNone: Startup; get autolock period."));
+ #endif
+
// get autolock period from Central Repository.
CRepository* repository = CRepository::NewL(KCRUidSecuritySettings);
TInt period = 0;
TInt res = repository->Get(KSettingsAutoLockTime, period);
delete repository;
- RDEBUG("res", res);
- RDEBUG("period", period);
- _LIT_SECURITY_POLICY_PASS( KReadPolicy);
- _LIT_SECURITY_POLICY_C1(KWritePolicy,
- ECapabilityWriteDeviceData);
- RProperty::Define(KPSUidCoreApplicationUIs, KCoreAppUIsAutolockStatus, RProperty::EInt, KReadPolicy, KWritePolicy);
+
+ _LIT_SECURITY_POLICY_PASS(KReadPolicy);
+ _LIT_SECURITY_POLICY_C1(KWritePolicy, ECapabilityWriteDeviceData);
+ RProperty::Define(KPSUidCoreApplicationUIs, KCoreAppUIsAutolockStatus, RProperty::EInt, KReadPolicy, KWritePolicy);
RProperty::Set(KPSUidCoreApplicationUIs, KCoreAppUIsAutolockStatus, EAutolockOff);
- RDEBUG("KCoreAppUIsAutolockStatus",
- KCoreAppUIsAutolockStatus);
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CSecurityHandler::PassPhraseRequiredL() EAutolockOff"));
+ #endif
if (res == KErrNone)
{
// disable autolock in Domestic OS side too if autolock period is 0.
- if (period == 0)
+ if (period == 0 )
{
- // Don't disable the domestic OS device lock
+#ifdef RD_REMOTELOCK
+ // If remote lock is enabled, don't disable the domestic OS device lock
// since that would render the RemoteLock useless.
- TBool remoteLockStatus(EFalse);
+ TBool remoteLockStatus( EFalse );
CRemoteLockSettings* remoteLockSettings = CRemoteLockSettings::NewL();
- if (remoteLockSettings->GetEnabled(remoteLockStatus))
+ if ( remoteLockSettings->GetEnabled( remoteLockStatus ) )
{
- if (!remoteLockStatus)
+ if ( !remoteLockStatus )
{
// Remote lock is disabled
- RDEBUG(
- "Autolock and RemoteLock are disabled -> disable DOS device lock",
- 0);
+ #ifdef _DEBUG
+ RDebug::Print( _L( "(SecUi)CSecurityHandler::PassPhraseRequiredL() - Autolock and RemoteLock are disabled -> disable DOS device lock" ) );
+ #endif // _DEBUG
+
// Disable DOS device lock setting
- RDEBUG(
- "iCustomPhone.DisablePhoneLock",
- 0);
wait = CWait::NewL();
- iCustomPhone.DisablePhoneLock(wait->iStatus, iSecUi_password);
- RDEBUG("WaitForRequestL", 0);
- status = wait->WaitForRequestL();
- RDEBUG("WaitForRequestL", status);
+ iCustomPhone.DisablePhoneLock(wait->iStatus,password);
+ wait->WaitForRequestL();
delete wait;
}
}
else
{
// Failed to get remote lock status
- RDEBUG(
- "Autolock is disabled, but failed to get RemoteLock status, so do nothing",
- 0);
+ #ifdef _DEBUG
+ RDebug::Print( _L( "(SecUi)CSecurityHandler::PassPhraseRequiredL() - Autolock is disabled, but failed to get RemoteLock status, so do nothing." ) );
+ #endif // _DEBUG
}
delete remoteLockSettings;
remoteLockSettings = NULL;
+#else // not defined RD_REMOTELOCK
+
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CSecurityHandler::PassPhraseRequiredL()KErrNone: Startup; DisablePhoneLock."));
+ #endif
+ wait = CWait::NewL();
+ iCustomPhone.DisablePhoneLock(wait->iStatus,password);
+ wait->WaitForRequestL();
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CSecurityHandler::PassPhraseRequiredL()KErrNone: Startup; DisablePhoneLock completed."));
+ #endif
+ delete wait;
+#endif // RD_REMOTELOCK
}
}
- else // error getting repository
+ else
{
- RDEBUG("error getting repository", 0);
- // Don't disable the domestic OS device lock
+#ifdef RD_REMOTELOCK
+ // If remote lock is enabled, don't disable the domestic OS device lock
// since that would render the RemoteLock useless.
- TBool remoteLockStatus(EFalse);
+ TBool remoteLockStatus( EFalse );
CRemoteLockSettings* remoteLockSettings = CRemoteLockSettings::NewL();
- if (remoteLockSettings->GetEnabled(remoteLockStatus))
+ if ( remoteLockSettings->GetEnabled( remoteLockStatus ) )
{
- if (!remoteLockStatus)
+ if ( !remoteLockStatus )
{
// Remote lock is disabled
- RDEBUG("iCustomPhone.DisablePhoneLock", 0);
+ #ifdef _DEBUG
+ RDebug::Print( _L( "(SecUi)CSecurityHandler::PassPhraseRequiredL() - Failed to get Autolock period and RemoteLock is disabled -> disable DOS device lock" ) );
+ #endif // _DEBUG
+
wait = CWait::NewL();
- iCustomPhone.DisablePhoneLock(wait->iStatus, iSecUi_password);
- RDEBUG("WaitForRequestL", 0);
- status = wait->WaitForRequestL();
- RDEBUG("WaitForRequestL status", status);
+ iCustomPhone.DisablePhoneLock(wait->iStatus,password);
+ wait->WaitForRequestL();
delete wait;
}
}
else
{
// Failed to get remote lock status
- RDEBUG(
- "Failed to get Autolock period and RemoteLock status, so do nothing",
- 0);
+ #ifdef _DEBUG
+ RDebug::Print( _L( "(SecUi)CSecurityHandler::PassPhraseRequiredL() - Failed to get Autolock period and RemoteLock status, so do nothing." ) );
+ #endif // _DEBUG
}
delete remoteLockSettings;
remoteLockSettings = NULL;
- }
+#else // not defined RD_REMOTELOCK
- } // no Startup
- }
- break;
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CSecurityHandler::PassPhraseRequiredL()KErrNone: Startup; Could not get autolock period."));
+ #endif
+ // could not get the current autolock time... disable autolock in Domestic OS side.
+ wait = CWait::NewL();
+ iCustomPhone.DisablePhoneLock(wait->iStatus,password);
+ wait->WaitForRequestL();
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CSecurityHandler::PassPhraseRequiredL()KErrNone: Startup; NO AUTOLOCK PERIOD; DisablePhoneLock completed."));
+ #endif
+ delete wait;
+
+#endif // RD_REMOTELOCK
+ }
+
+ }
+
+ break;
case KErrGsmSSPasswordAttemptsViolation:
case KErrLocked:
- {
// security code blocked!
- RDEBUG("KErrLocked", KErrLocked)
- ;
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CSecurityHandler::PassPhraseRequiredL() ErrGsmSSPasswordAttemptsViolation"));
+ #endif
CSecuritySettings::ShowResultNoteL(R_SEC_BLOCKED, CAknNoteDialog::EErrorTone);
- }
break;
case KErrGsm0707IncorrectPassword:
case KErrAccessDenied:
- {
- RDEBUG("KErrAccessDenied", KErrAccessDenied);
- // The Settings caller might retry
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CSecurityHandler::PassPhraseRequiredL() KErrGsm0707IncorrectPassword"));
+ #endif
CSecuritySettings::ShowResultNoteL(R_CODE_ERROR, CAknNoteDialog::EErrorTone);
- }
- break;
- case R_CODES_DONT_MATCH: // if password was supposed to be changed, but it failed (the initial verification)
- {
- RDEBUG("R_CODES_DONT_MATCH", R_CODES_DONT_MATCH);
- // Error was already displayed
- returnValue = KErrAccessDenied;
- }
break;
default:
- {
- RDEBUG("default", status);
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CSecurityHandler::PassPhraseRequiredL() DEFAULT"));
+ #endif
CSecuritySettings::ShowErrorNoteL(status);
- // The Settings caller might retry
- }
break;
}
- RDEBUG("returnValue", returnValue);
+
return returnValue;
}
//
@@ -1032,166 +1186,208 @@
// CSecurityHandler::Pin1Required()
// Handles Pin1Required event
// ----------------------------------------------------------
-// qtdone
+//
TInt CSecurityHandler::Pin1RequiredL()
{
/*****************************************************
- * Series 60 Customer / ETel
- * Series 60 ETel API
- *****************************************************/
- RDEBUG("0", 0);
-
- RMobilePhone::TMobilePassword iSecUi_password;
- TInt lCancelSupported = ESecUiCancelNotSupported;
- TInt lEmergencySupported = ESecUiEmergencyNotSupported;
- TInt queryAccepted = KErrCancel;
- TInt lAlphaSupported = 0;
+ * Series 60 Customer / ETel
+ * Series 60 ETel API
+ *****************************************************/
+
+ RMobilePhone::TMobilePassword password;
RMobilePhone::TMobilePassword required_fourth;
RMobilePhone::TMobilePhoneSecurityCode secCodeType = RMobilePhone::ESecurityCodePin1;
RMobilePhone::TMobilePhoneSecurityCodeInfoV5 codeInfo;
RMobilePhone::TMobilePhoneSecurityCodeInfoV5Pckg codeInfoPkg(codeInfo);
- TBool StartUp = ETrue;
+ TBool StartUp = ETrue;
TInt secUiOriginatedQuery(ESecurityUIsSecUIOriginatedUninitialized);
TInt err = KErrNone;
TInt res = KErrGeneral;
CWait* wait = CWait::NewL();
CleanupStack::PushL(wait);
- RDEBUG("0", 0);
+
StartUp = iStartup;
- RDEBUG("StartUp", StartUp);
- if (!StartUp)
- {
- // read a flag to see whether the query is SecUi originated. For example, from CSecuritySettings::ChangePinRequestParamsL
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CSecurityHandler::Pin1RequiredL()"));
+ #endif
+
+ if(!StartUp)
+ {
+ // read a flag to see whether the query is SecUi originated.
err = RProperty::Get(KPSUidSecurityUIs, KSecurityUIsSecUIOriginatedQuery, secUiOriginatedQuery);
- if (err != KErrNone)
- {
- RDEBUG("FAILED to get the SECUI query Flag err", err);
- }
- }
- RDEBUG("err", err);
- RDEBUG("secUiOriginatedQuery", secUiOriginatedQuery);
- RDEBUG("ESecurityUIsSecUIOriginated", ESecurityUIsSecUIOriginated);
- if (StartUp || (secUiOriginatedQuery != ESecurityUIsSecUIOriginated) || (err != KErrNone))
+
+ if ( err != KErrNone )
{
- RDEBUG("0", 0);
- lCancelSupported = ESecUiCancelNotSupported;
- lEmergencySupported = ESecUiEmergencySupported;
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CSecurityHandler::Pin1RequiredL():\
+ FAILED to get the SECUI query Flag: %d"), err);
+ #endif
}
else
- {
- lCancelSupported = ESecUiCancelSupported;
- lEmergencySupported = ESecUiEmergencyNotSupported;
- // it will be RMobilePhone::ESecurityCodePin1 , equivalent to ESecUiNone
- }
- wait->SetRequestType(EMobilePhoneGetSecurityCodeInfo);
- RDEBUG("GetSecurityCodeInfo", 0);
- iPhone.GetSecurityCodeInfo(wait->iStatus, secCodeType, codeInfoPkg);
- res = wait->WaitForRequestL();
+ {
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CSecurityHandler::Pin1RequiredL():\
+ SECUI query Flag: %d"), secUiOriginatedQuery);
+ #endif
+ }
+ }
+ #if defined(_DEBUG)
+ RDebug::Print(_L("CSecurityHandler::Pin1RequiredL() Execute dlg"));
+ #endif
- RDEBUG("res", res);
-#ifdef __WINS__
- RDEBUG("emulator can't read PIN attempts", res);
- res = KErrNone;
- codeInfo.iRemainingEntryAttempts = 3;
-#endif
- User::LeaveIfError(res);
-
- RDEBUG("codeInfo.iRemainingEntryAttempts",
- codeInfo.iRemainingEntryAttempts);
- if (codeInfo.iRemainingEntryAttempts == KMaxNumberOfPINAttempts)
- codeInfo.iRemainingEntryAttempts = -1;
+ if(StartUp || (secUiOriginatedQuery != ESecurityUIsSecUIOriginated) || (err != KErrNone))
+ {
+ iSecurityDlg = new (ELeave) CCodeQueryDialog (password,SEC_C_PIN_CODE_MIN_LENGTH,SEC_C_PIN_CODE_MAX_LENGTH,ESecUiCodeEtelReqest);
+ if(AknLayoutUtils::PenEnabled())
+ iSecurityDlg->SetEmergencyCallSupportForCBA( ETrue );
+ else
+ iSecurityDlg->SetEmergencyCallSupport(ETrue);
+ #ifdef __COVER_DISPLAY
+ iSecurityDlg->PublishDialogL(SecondaryDisplay::ECmdShowSecurityQuery, SecondaryDisplay::KCatStartup);
+ CAknMediatorFacade* covercl = AknMediatorFacade(iSecurityDlg); // uses MOP, so control provided
+ if (covercl) // returns null if __COVER_DISPLAY is not defined
+ {
+ // … - add data that cover ui is interested in
+ covercl->BufStream().WriteInt32L(SecondaryDisplay::EShowPIN1); // adds int to additional data to be posted to cover ui
+ covercl->BufStream().CommitL(); // no more data to send so commit buf
+ }
+ #endif //__COVER_DISPLAY
- /* request PIN using QT */
- CSecQueryUi *iSecQueryUi;
- RDEBUG("CSecQueryUi", 0);
- iSecQueryUi = CSecQueryUi::NewL();
- iQueryCanceled = EFalse;
- RDEBUG("SecQueryDialog", 1);
- // ESecUiCodeEtelReqest/ESecUiNone might be useful
- lAlphaSupported = ESecUiAlphaNotSupported;
- TBuf<0x100> title;
- title.Zero();
- HBufC* stringHolder = HbTextResolverSymbian::LoadLC(_L("txt_pin_code_dialog_pin_code"));
- title.Append(stringHolder->Des());
- CleanupStack::PopAndDestroy(stringHolder);
- title.Append(_L("$"));
- title.AppendNum(codeInfo.iRemainingEntryAttempts);
- TInt amode = ESecUiSecretSupported | lAlphaSupported | lCancelSupported | lEmergencySupported | secCodeType;
- RDEBUG("amode", amode);
- queryAccepted = iSecQueryUi->SecQueryDialog(title, iSecUi_password, SEC_C_PIN_CODE_MIN_LENGTH, SEC_C_PIN_CODE_MAX_LENGTH, amode);
- RDEBUG("iSecUi_password", 0);
- RDEBUGSTR(iSecUi_password);
- iQueryCanceled = ETrue;
- delete iSecQueryUi;
- RDEBUG("queryAccepted", queryAccepted);
- /* end request PIN using QT */
-
- if (queryAccepted == KErrAbort) // emergency call
- {
- RDEBUG("queryAccepted", queryAccepted);
- CleanupStack::PopAndDestroy(wait); // this is needed
- return KErrCancel;
- }
- if (lCancelSupported && (queryAccepted == KErrCancel))
- {
- // cancel code request
- RDEBUG("AbortSecurityCode", 0);
- iPhone.AbortSecurityCode(RMobilePhone::ESecurityCodePin1);
- RDEBUG("AbortSecurityCode", 1);
- CleanupStack::PopAndDestroy(wait); // this is needed
- return KErrCancel;
- }
-
- RDEBUG("iSecUi_password", 0);
- RDEBUGSTR(iSecUi_password);
- RDEBUG("VerifySecurityCode", 0);
- iPhone.VerifySecurityCode(wait->iStatus, secCodeType, iSecUi_password, required_fourth);
- RDEBUG("WaitForRequestL", 0);
+ wait->SetRequestType(EMobilePhoneGetSecurityCodeInfo);
+ iPhone.GetSecurityCodeInfo(wait->iStatus, secCodeType, codeInfoPkg);
+ res = wait->WaitForRequestL();
+ #if defined(_DEBUG)
+ TInt attempts(codeInfo.iRemainingEntryAttempts);
+ RDebug::Print(_L("CSecurityHandler::Pin1RequiredL() Remaining Attempts query status: %d"), res);
+ RDebug::Print(_L("CSecurityHandler::Pin1RequiredL() Remaining Attempts: %d"), attempts);
+ #endif
+ User::LeaveIfError(res);
+
+ if( codeInfo.iRemainingEntryAttempts >= KMaxNumberOfPINAttempts )
+ res = iSecurityDlg->ExecuteLD(R_PIN_REQUEST_QUERY);
+ else if(codeInfo.iRemainingEntryAttempts > KLastRemainingInputAttempt)
+ {
+ HBufC* queryPrompt = StringLoader::LoadLC(R_SECUI_REMAINING_PIN_ATTEMPTS, codeInfo.iRemainingEntryAttempts);
+ res = iSecurityDlg->ExecuteLD(R_PIN_REQUEST_QUERY, *queryPrompt);
+ CleanupStack::PopAndDestroy(queryPrompt);
+ }
+ else
+ {
+ HBufC* queryPrompt = StringLoader::LoadLC(R_SECUI_FINAL_PIN_ATTEMPT);
+ res = iSecurityDlg->ExecuteLD(R_PIN_REQUEST_QUERY, *queryPrompt);
+ CleanupStack::PopAndDestroy(queryPrompt);
+ }
+
+ iSecurityDlg = NULL;
+ #if defined(_DEBUG)
+ RDebug::Print(_L("CSecurityHandler::Pin1RequiredL() Execute dlg RESULT: %d"), res);
+ #endif
+ if ((!res) || (res == ESecUiEmergencyCall) || (res == EAknSoftkeyEmergencyCall))
+ {
+ #if defined(_DEBUG)
+ RDebug::Print(_L("CSecurityHandler::Pin1RequiredL() R_PIN_REQUEST_QUERY CANCEL!"));
+ #endif
+ CleanupStack::PopAndDestroy(wait);
+ return KErrCancel;
+ }
+ }
+ else
+ {
+ iSecurityDlg = new (ELeave) CCodeQueryDialog (password,SEC_C_PIN_CODE_MIN_LENGTH,SEC_C_PIN_CODE_MAX_LENGTH,ESecUiNone);
+ #ifdef __COVER_DISPLAY
+ iSecurityDlg->PublishDialogL(SecondaryDisplay::ECmdShowSecurityQuery, SecondaryDisplay::KCatStartup);
+ CAknMediatorFacade* covercl = AknMediatorFacade(iSecurityDlg); // uses MOP, so control provided
+ if (covercl) // returns null if __COVER_DISPLAY is not defined
+ {
+ // … - add data that cover ui is interested in
+ covercl->BufStream().WriteInt32L(SecondaryDisplay::EShowPIN1); // adds int to additional data to be posted to cover ui
+ covercl->BufStream().CommitL(); // no more data to send so commit buf
+ }
+ #endif //__COVER_DISPLAY
+
+ wait->SetRequestType(EMobilePhoneGetSecurityCodeInfo);
+ iPhone.GetSecurityCodeInfo(wait->iStatus, secCodeType, codeInfoPkg);
+ res = wait->WaitForRequestL();
+ User::LeaveIfError(res);
+
+ CSecUiLockObserver* deviceLockStatusObserver = CSecUiLockObserver::NewL(iSecurityDlg);
+ CleanupStack::PushL(deviceLockStatusObserver);
+ CSecUiLockObserver* queryStatusObserver = CSecUiLockObserver::NewL(iSecurityDlg, ESecUiRequestStateObserver);
+ CleanupStack::PushL(queryStatusObserver);
+
+ if( codeInfo.iRemainingEntryAttempts >= KMaxNumberOfPINAttempts )
+ res = iSecurityDlg->ExecuteLD(R_PIN_QUERY);
+ else if(codeInfo.iRemainingEntryAttempts > KLastRemainingInputAttempt)
+ {
+ HBufC* queryPrompt = StringLoader::LoadLC(R_SECUI_REMAINING_PIN_ATTEMPTS, codeInfo.iRemainingEntryAttempts );
+ res = iSecurityDlg->ExecuteLD(R_PIN_QUERY, *queryPrompt);
+ CleanupStack::PopAndDestroy(queryPrompt);
+ }
+ else
+ {
+ HBufC* queryPrompt = StringLoader::LoadLC(R_SECUI_FINAL_PIN_ATTEMPT);
+ res = iSecurityDlg->ExecuteLD(R_PIN_QUERY, *queryPrompt);
+ CleanupStack::PopAndDestroy(queryPrompt);
+ }
+
+ CleanupStack::PopAndDestroy(2); //deviceLockStatusObserver, queryStatusObserver
+ iSecurityDlg = NULL;
+ if( !res || (res == ESecUiDeviceLocked))
+ {
+ #if defined(_DEBUG)
+ RDebug::Print(_L("CSecurityHandler::Pin1RequiredL() R_PIN_QUERY cancel!"));
+ #endif
+ // cancel code request
+ iPhone.AbortSecurityCode(RMobilePhone::ESecurityCodePin1);
+ CleanupStack::PopAndDestroy(wait);
+ return KErrCancel;
+ }
+ }
+ #if defined(_DEBUG)
+ RDebug::Print(_L("CSecurityNotifier::Pin1RequiredL()VerifySecurityCode"));
+ #endif
+ iPhone.VerifySecurityCode(wait->iStatus,secCodeType, password, required_fourth);
res = wait->WaitForRequestL();
- RDEBUG("WaitForRequestL res", res);
- CleanupStack::PopAndDestroy(wait);
-
+ CleanupStack::PopAndDestroy(wait);
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CSecurityHandler::Pin1RequiredL() VerifySecurityCode STATUS: %d"), res);
+ #endif
TInt returnValue = res;
- switch (res)
- {
+ switch(res)
+ {
case KErrNone:
- // code approved
- RDEBUG("code approved", res)
- ;
- if (lCancelSupported == ESecUiCancelNotSupported)
- { // OK note is not displayed in boot-up, to make things faster
- CSecuritySettings::ShowResultNoteL(R_CONFIRMATION_NOTE, CAknNoteDialog::EConfirmationTone);
- }
+ // code approved
+ #if defined(_DEBUG)
+ RDebug::Print(_L("CSecurityHandler::Pin1RequiredL()code approved "));
+ #endif
+ CSecuritySettings::ShowResultNoteL(R_CONFIRMATION_NOTE, CAknNoteDialog::EConfirmationTone);
break;
case KErrGsm0707IncorrectPassword:
case KErrAccessDenied:
// code was entered erroneously
CSecuritySettings::ShowResultNoteL(R_CODE_ERROR, CAknNoteDialog::EErrorTone);
- if (StartUp)
- {
- returnValue = Pin1RequiredL();
- }
+ if(StartUp)
+ {
+ returnValue = Pin1RequiredL();
+ }
break;
case KErrGsmSSPasswordAttemptsViolation:
case KErrLocked:
// code blocked; show error note and terminate.
- // what if not during Startup? Probably it's Ok since the SIM would had also failed at StartUp
- if (StartUp)
- CSecuritySettings::ShowResultNoteL(R_CODE_ERROR, CAknNoteDialog::EErrorTone);
+ // code blocked
+ if(StartUp)
+ CSecuritySettings::ShowResultNoteL(R_CODE_ERROR, CAknNoteDialog::EErrorTone);
break;
case KErrGsm0707SimWrong:
// sim lock active
- // no error? This is strange
break;
default:
- {
- CSecuritySettings::ShowErrorNoteL(res);
- if (StartUp)
- {
- returnValue = Pin1RequiredL();
- }
+ CSecuritySettings::ShowErrorNoteL(res);
+ if(StartUp)
+ {
+ returnValue = Pin1RequiredL();
}
break;
}
@@ -1201,180 +1397,178 @@
// ----------------------------------------------------------
// CSecurityHandler::Puk1Required()
// Handles Puk1Required event
-// First asks the PUK1, then verifies, then the newPIN + re-type , and then writes . This is odd, but the API needs the PUK and newPIN in same step.
-// Afterwards, the PIN1 might be asked (because the initial program still needs it)
// ----------------------------------------------------------
-// qtdone
+//
TInt CSecurityHandler::Puk1RequiredL()
{
/*****************************************************
- * Series 60 Customer / ETel
- * Series 60 ETel API
- *****************************************************/
- RDEBUG("0", 0);
- TInt queryAccepted = KErrCancel;
- RMobilePhone::TMobilePassword puk1_password;
- RMobilePhone::TMobilePassword aNewPinPassword;
+ * Series 60 Customer / ETel
+ * Series 60 ETel API
+ *****************************************************/
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CSecurityHandler::Puk1RequiredL()"));
+ #endif
+ RMobilePhone::TMobilePassword aPassword;
+ RMobilePhone::TMobilePassword aNewPassword;
RMobilePhone::TMobilePhoneSecurityCodeInfoV5 codeInfo;
RMobilePhone::TMobilePhoneSecurityCodeInfoV5Pckg codeInfoPkg(codeInfo);
RMobilePhone::TMobilePhoneSecurityCode blockCodeType;
blockCodeType = RMobilePhone::ESecurityCodePuk1;
CWait* wait = CWait::NewL();
CleanupStack::PushL(wait);
-
+
TBool StartUp(ETrue);
StartUp = iStartup;
- TInt res(KErrCancel); // for the first try
+ TInt res(KErrNone);
wait->SetRequestType(EMobilePhoneGetSecurityCodeInfo);
-
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CSecurityHandler::Puk1RequiredL(): Get Code info"));
+ #endif
+ iPhone.GetSecurityCodeInfo(wait->iStatus, blockCodeType, codeInfoPkg);
+ res = wait->WaitForRequestL();
+
TInt thisTry = 0;
- // If there was a problem (as there might be in case we're dropping off SIM Access Profile); try again a couple of times.
- while (res != KErrNone && (thisTry++) <= KTriesToConnectServer)
+ // If there was a problem (as there might be in case we're dropping off SIM Access Profile); try again a couple of times.
+ while ( res != KErrNone && ( thisTry++ ) <= KTriesToConnectServer )
{
- if (thisTry > 0)
- User::After(KTimeBeforeRetryingRequest);
- RDEBUG("GetSecurityCodeInfo", 0);
+ User::After( KTimeBeforeRetryingRequest );
iPhone.GetSecurityCodeInfo(wait->iStatus, blockCodeType, codeInfoPkg);
- RDEBUG("WaitForRequestL", 0);
res = wait->WaitForRequestL();
- RDEBUG("WaitForRequestL res", res);
- }
- RDEBUG("res", res);
- // If there's still an error we're doomed. Bail out.
- User::LeaveIfError(res);
-
- RDEBUG("StartUp", StartUp);
- RDEBUG("codeInfo.iRemainingEntryAttempts",
- codeInfo.iRemainingEntryAttempts);
- TInt attempts(codeInfo.iRemainingEntryAttempts);
- RDEBUG("attempts", attempts);
- // show the last "Code Error" note of PIN verify result here so it won't be left under the PUK1 dialog
- if (!StartUp && (attempts == KMaxNumberOfPUKAttempts))
- CSecuritySettings::ShowResultNoteL(R_CODE_ERROR, CAknNoteDialog::EErrorTone);
-
- if (attempts == KMaxNumberOfPINAttempts)
- attempts = -1;
-
- CSecQueryUi *iSecQueryUi;
- RDEBUG("CSecQueryUi", 0);
- iSecQueryUi = CSecQueryUi::NewL();
- iQueryCanceled = EFalse;
- RDEBUG("SecQueryDialog", 1);
- // ESecUiCodeEtelReqest/ESecUiNone might be useful
- TBuf<0x100> title;
- title.Zero();
- HBufC* stringHolder = HbTextResolverSymbian::LoadLC(_L("txt_pin_code_dialog_puk_code"));
- title.Append(stringHolder->Des());
- CleanupStack::PopAndDestroy(stringHolder);
- title.Append(_L("$"));
- title.AppendNum(attempts);
- TInt lSecUiCancelSupported = ESecUiCancelSupported | ESecUiEmergencyNotSupported;
- if (StartUp) // how to know whether PUK comes from failing at Starter, or failing at any other PIN (i.e. changing PIN, or changing PIN-request) ???
- lSecUiCancelSupported = ESecUiCancelNotSupported | ESecUiEmergencySupported;
- queryAccepted = iSecQueryUi->SecQueryDialog(title, puk1_password, SEC_C_PUK_CODE_MIN_LENGTH, SEC_C_PUK_CODE_MAX_LENGTH, ESecUiSecretNotSupported | ESecUiAlphaNotSupported
- | lSecUiCancelSupported | ESecUiPukRequired);
- RDEBUG("puk1_password", 0);
- RDEBUGSTR(puk1_password);
- iQueryCanceled = ETrue;
- delete iSecQueryUi;
- RDEBUG("queryAccepted", queryAccepted);
-
- if ((queryAccepted == KErrAbort) || (queryAccepted == KErrCancel))
- {
- CleanupStack::PopAndDestroy(wait); // this is needed
- return KErrCancel;
}
-
- // send code
- // first we verify the puk. For this, we reset the PIN to the same as the PUK
- // Hopefully this will never fail in the case "new PIN too long"
- RDEBUG("VerifySecurityCode", 0);
- iPhone.VerifySecurityCode(wait->iStatus, blockCodeType, puk1_password, puk1_password);
- RDEBUG("WaitForRequestL", 0);
- res = wait->WaitForRequestL();
- RDEBUG("WaitForRequestL res", res);
- CleanupStack::PopAndDestroy(wait);
-
- TInt returnValue = res;
- switch (res)
- {
- case KErrNone:
- // code approved -> note . The process continue and new-pin is requested
- CSecuritySettings::ShowResultNoteL(res, CAknNoteDialog::EConfirmationTone);
- break;
- case KErrGsm0707IncorrectPassword:
- case KErrAccessDenied:
- // wrong PUK code -> note -> ask PUK code again
- CSecuritySettings::ShowResultNoteL(R_CODE_ERROR, CAknNoteDialog::EErrorTone);
- returnValue = Puk1RequiredL();
- break;
- case KErrGsm0707SimWrong:
- // sim lock active
- // no message ?
- break;
- case KErrGsmSSPasswordAttemptsViolation:
- case KErrLocked:
- // sim card rejected.
- break;
- default:
- CSecuritySettings::ShowErrorNoteL(res);
- returnValue = Puk1RequiredL();
- break;
- }
-
- // Now the PUK1 is validated. It's time for asking the new PIN1
- RDEBUG("new wait", 0);
- wait = CWait::NewL();
- CleanupStack::PushL(wait);
- {
- // new-pin query
- CSecQueryUi * iSecQueryUi;
- RDEBUG("CSecQueryUi", 0);
- iSecQueryUi = CSecQueryUi::NewL();
- iQueryCanceled = EFalse;
- RDEBUG("SecQueryDialog", 1);
- TBuf<0x100> title;
- title.Zero();
- HBufC* stringHolder = HbTextResolverSymbian::LoadLC(_L("txt_pin_code_dialog_new_pin_code"));
- title.Append(stringHolder->Des());
- CleanupStack::PopAndDestroy(stringHolder);
- title.Append(_L("|"));
- HBufC* stringHolder2 = HbTextResolverSymbian::LoadLC(_L("txt_pin_code_dialog_verify_new_pin_code"));
- title.Append(stringHolder2->Des());
- CleanupStack::PopAndDestroy(stringHolder2);
- queryAccepted = iSecQueryUi->SecQueryDialog(title, aNewPinPassword, SEC_C_PIN_CODE_MIN_LENGTH, SEC_C_PIN_CODE_MAX_LENGTH, ESecUiAlphaNotSupported | ESecUiCancelSupported
- | ESecUiPukRequired);
- RDEBUG("aNewPinPassword", 0);
- RDEBUGSTR(aNewPinPassword);
- iQueryCanceled = ETrue;
- delete iSecQueryUi;
- RDEBUG("queryAccepted", queryAccepted);
- }
-
- if ((queryAccepted == KErrAbort) || (queryAccepted == KErrCancel))
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CSecurityHandler::Puk1RequiredL(): Get Code info result: %d"), res);
+ #endif
+ //If there's still an error we're doomed. Bail out.
+ User::LeaveIfError(res);
+
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CSecurityHandler::Puk1RequiredL(): Show last note"));
+ #endif
+ //show the last "Code Error" note of PIN verify result here so it won't be left under the PUK1 dialog
+ if(!StartUp && (codeInfo.iRemainingEntryAttempts == KMaxNumberOfPUKAttempts))
+ CSecuritySettings::ShowResultNoteL(R_CODE_ERROR, CAknNoteDialog::EErrorTone);
+
+ // ask PUK code
+ iSecurityDlg = new (ELeave) CCodeQueryDialog (aPassword,SEC_C_PUK_CODE_MIN_LENGTH,SEC_C_PUK_CODE_MAX_LENGTH,ESecUiPukRequired);
+ if(AknLayoutUtils::PenEnabled())
+ iSecurityDlg->SetEmergencyCallSupportForCBA( ETrue );
+ else
+ iSecurityDlg->SetEmergencyCallSupport(ETrue);
+ #ifdef __COVER_DISPLAY
+ iSecurityDlg->PublishDialogL(SecondaryDisplay::ECmdShowSecurityQuery, SecondaryDisplay::KCatStartup);
+ CAknMediatorFacade* covercl = AknMediatorFacade(iSecurityDlg); // uses MOP, so control provided
+ if (covercl) // returns null if __COVER_DISPLAY is not defined
+ {
+ // … - add data that cover ui is interested in
+ covercl->BufStream().WriteInt32L(SecondaryDisplay::EShowPUK1); // adds int to additional data to be posted to cover ui
+ covercl->BufStream().CommitL(); // no more data to send so commit buf
+ }
+ #endif //__COVER_DISPLAY
+
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CSecurityHandler::Puk1RequiredL(): Show dialog"));
+ #endif
+ if(codeInfo.iRemainingEntryAttempts == KMaxNumberOfPUKAttempts)
+ res = iSecurityDlg->ExecuteLD(R_PUK_REQUEST_QUERY);
+ else if(codeInfo.iRemainingEntryAttempts > KLastRemainingInputAttempt)
+ {
+ HBufC* queryPrompt = StringLoader::LoadLC(R_SECUI_REMAINING_PUK_ATTEMPTS, codeInfo.iRemainingEntryAttempts);
+ res = iSecurityDlg->ExecuteLD(R_PUK_REQUEST_QUERY, *queryPrompt);
+ CleanupStack::PopAndDestroy(queryPrompt);
+ }
+ else
+ {
+ HBufC* queryPrompt = StringLoader::LoadLC(R_SECUI_FINAL_PUK_ATTEMPT);
+ res = iSecurityDlg->ExecuteLD(R_PUK_REQUEST_QUERY, *queryPrompt);
+ CleanupStack::PopAndDestroy(queryPrompt);
+ }
+
+ if((!res) || (res == ESecUiEmergencyCall) || (res == EAknSoftkeyEmergencyCall))
{
CleanupStack::PopAndDestroy(wait);
return KErrCancel;
}
+
+ RMobilePhone::TMobilePassword verifcationPassword;
+ // new pin code query
+ iSecurityDlg = new (ELeave) CCodeQueryDialog (aNewPassword,SEC_C_PIN_CODE_MIN_LENGTH,SEC_C_PIN_CODE_MAX_LENGTH,ESecUiPukRequired);
+ if(AknLayoutUtils::PenEnabled())
+ iSecurityDlg->SetEmergencyCallSupportForCBA( ETrue );
+ else
+ iSecurityDlg->SetEmergencyCallSupport(ETrue);
+ res = iSecurityDlg->ExecuteLD(R_NEW_PIN_CODE_REQUEST_QUERY);
+ if((!res) || (res == ESecUiEmergencyCall) || (res == EAknSoftkeyEmergencyCall))
+ {
+ CleanupStack::PopAndDestroy(wait);
+ return KErrCancel;
+ }
+
+ // verification code query
+ iSecurityDlg = new (ELeave) CCodeQueryDialog (verifcationPassword,SEC_C_PIN_CODE_MIN_LENGTH,SEC_C_PIN_CODE_MAX_LENGTH,ESecUiPukRequired);
+ if(AknLayoutUtils::PenEnabled())
+ iSecurityDlg->SetEmergencyCallSupportForCBA( ETrue );
+ else
+ iSecurityDlg->SetEmergencyCallSupport(ETrue);
+ res = iSecurityDlg->ExecuteLD(R_VERIFY_NEW_PIN_CODE_REQUEST_QUERY);
+ if((!res) || (res == ESecUiEmergencyCall) || (res == EAknSoftkeyEmergencyCall))
+ {
+ CleanupStack::PopAndDestroy(wait);
+ return KErrCancel;
+ }
+
+ while (aNewPassword.CompareF(verifcationPassword) != 0)
+ {
+ // codes do not match -> note -> ask new pin and verification codes again
+ CSecuritySettings::ShowResultNoteL(R_CODES_DONT_MATCH, CAknNoteDialog::EErrorTone);
+
+ verifcationPassword = _L("");
+ aNewPassword = _L("");
- // send code again, now with the user pin
- RDEBUG("VerifySecurityCode", 0);
- iPhone.VerifySecurityCode(wait->iStatus, blockCodeType, aNewPinPassword, puk1_password);
- RDEBUG("WaitForRequestL", 0);
+ // new pin code query
+ iSecurityDlg = new (ELeave) CCodeQueryDialog (aNewPassword,SEC_C_PIN_CODE_MIN_LENGTH,SEC_C_PIN_CODE_MAX_LENGTH,ESecUiPukRequired);
+ if(AknLayoutUtils::PenEnabled())
+ iSecurityDlg->SetEmergencyCallSupportForCBA( ETrue );
+ else
+ iSecurityDlg->SetEmergencyCallSupport(ETrue);
+ res = iSecurityDlg->ExecuteLD(R_NEW_PIN_CODE_REQUEST_QUERY);
+ if ((!res) || (res == ESecUiEmergencyCall) || (res == EAknSoftkeyEmergencyCall))
+ {
+ CleanupStack::PopAndDestroy(wait);
+ return KErrCancel;
+ }
+
+ // verification code query
+ iSecurityDlg = new (ELeave) CCodeQueryDialog (verifcationPassword,SEC_C_PIN_CODE_MIN_LENGTH,SEC_C_PIN_CODE_MAX_LENGTH,ESecUiPukRequired);
+ if(AknLayoutUtils::PenEnabled())
+ iSecurityDlg->SetEmergencyCallSupportForCBA( ETrue );
+ else
+ iSecurityDlg->SetEmergencyCallSupport(ETrue);
+ res = iSecurityDlg->ExecuteLD(R_VERIFY_NEW_PIN_CODE_REQUEST_QUERY);
+ if((!res) || (res == ESecUiEmergencyCall) || (res == EAknSoftkeyEmergencyCall))
+ {
+ CleanupStack::PopAndDestroy(wait);
+ return KErrCancel;
+ }
+ }
+
+ // send code
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CSecurityHandler::Puk1RequiredL(): Verify Code"));
+ #endif
+ iPhone.VerifySecurityCode(wait->iStatus,blockCodeType,aNewPassword,aPassword);
res = wait->WaitForRequestL();
- RDEBUG("WaitForRequestL res", res);
CleanupStack::PopAndDestroy(wait);
-
- returnValue = res;
- switch (res)
+
+ TInt returnValue = res;
+ switch(res)
{
case KErrNone:
// code approved -> note
CSecuritySettings::ShowResultNoteL(R_PIN_CODE_CHANGED_NOTE, CAknNoteDialog::EConfirmationTone);
break;
- case KErrGsm0707IncorrectPassword:
+ case KErrGsm0707IncorrectPassword:
case KErrAccessDenied:
// wrong PUK code -> note -> ask PUK code again
CSecuritySettings::ShowResultNoteL(R_CODE_ERROR, CAknNoteDialog::EErrorTone);
@@ -1382,104 +1576,121 @@
break;
case KErrGsm0707SimWrong:
// sim lock active
- // no message ?
break;
case KErrGsmSSPasswordAttemptsViolation:
case KErrLocked:
// sim card rejected.
break;
default:
- CSecuritySettings::ShowErrorNoteL(res);
+ CSecuritySettings::ShowErrorNoteL(res);
returnValue = Puk1RequiredL();
break;
- }
- RDEBUG("returnValue", returnValue);
- return returnValue;
+ }
+
+ return returnValue;
}
//
// ----------------------------------------------------------
// CSecurityHandler::Pin2Required()
// Handles Pin2Required event
// ----------------------------------------------------------
-// qtdone
+//
void CSecurityHandler::Pin2RequiredL()
{
/*****************************************************
- * Series 60 Customer / ETel
- * Series 60 ETel API
- *****************************************************/
-
- RDEBUG("0", 0);
- TInt queryAccepted = KErrCancel;
- RMobilePhone::TMobilePassword iSecUi_password;
+ * Series 60 Customer / ETel
+ * Series 60 ETel API
+ *****************************************************/
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CSecurityHandler::Pin2RequiredL() BEGIN"));
+ #endif
+ RMobilePhone::TMobilePassword password;
RMobilePhone::TMobilePassword required_fourth;
RMobilePhone::TMobilePhoneSecurityCode secCodeType(RMobilePhone::ESecurityCodePin2);
RMobilePhone::TMobilePhoneSecurityCodeInfoV5 codeInfo;
RMobilePhone::TMobilePhoneSecurityCodeInfoV5Pckg codeInfoPkg(codeInfo);
CWait* wait = CWait::NewL();
CleanupStack::PushL(wait);
-
- wait->SetRequestType(EMobilePhoneGetSecurityCodeInfo);
- RDEBUG("GetSecurityCodeInfo", 0);
+
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CSecurityHandler::Pin2RequiredL(): create dialog"));
+ #endif
+ iSecurityDlg = new (ELeave) CCodeQueryDialog (password,SEC_C_PIN2_CODE_MIN_LENGTH,SEC_C_PIN2_CODE_MAX_LENGTH,ESecUiNone);
+ #ifdef __COVER_DISPLAY
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CSecurityHandler::Pin2RequiredL(): publish dialog"));
+ #endif
+ iSecurityDlg->PublishDialogL(SecondaryDisplay::ECmdShowSecurityQuery, SecondaryDisplay::KCatStartup);
+ CAknMediatorFacade* covercl = AknMediatorFacade(iSecurityDlg); // uses MOP, so control provided
+ if (covercl) // returns null if __COVER_DISPLAY is not defined
+ {
+ // … - add data that cover ui is interested in
+ covercl->BufStream().WriteInt32L(SecondaryDisplay::EShowPIN2); // adds int to additional data to be posted to cover ui
+ covercl->BufStream().CommitL(); // no more data to send so commit buf
+ }
+ #endif //__COVER_DISPLAY
+
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CSecurityHandler::Pin2RequiredL(): get PIN2 info"));
+ #endif
+
+ wait->SetRequestType(EMobilePhoneGetSecurityCodeInfo);
iPhone.GetSecurityCodeInfo(wait->iStatus, secCodeType, codeInfoPkg);
- RDEBUG("WaitForRequestL", 0);
TInt ret = wait->WaitForRequestL();
- RDEBUG("WaitForRequestL ret", ret);
+
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CSecurityHandler::Pin2RequiredL(): get PIN2 info result: %d"), ret);
+ TInt attempts(codeInfo.iRemainingEntryAttempts);
+ RDebug::Print(_L("(SECUI)CSecurityHandler::Pin2RequiredL(): attempts remaining: %d"), attempts);
+ #endif
User::LeaveIfError(ret);
-
- RDEBUG("codeInfo.iRemainingEntryAttempts",
- codeInfo.iRemainingEntryAttempts);
- if (codeInfo.iRemainingEntryAttempts == KMaxNumberOfPINAttempts)
- codeInfo.iRemainingEntryAttempts = -1;
-
- /* request PIN using QT */
- CSecQueryUi *iSecQueryUi;
- RDEBUG("CSecQueryUi", 0);
- iSecQueryUi = CSecQueryUi::NewL();
- iQueryCanceled = EFalse;
- RDEBUG("SecQueryDialog", 1);
- // ESecUiCodeEtelReqest/ESecUiNone might be useful against KLastRemainingInputAttempt
-
- TBuf<0x100> title;
- title.Zero();
- HBufC* stringHolder = HbTextResolverSymbian::LoadLC(_L("txt_pin_code_dialog_pin2_code"));
- title.Append(stringHolder->Des());
- CleanupStack::PopAndDestroy(stringHolder);
- title.Append(_L("$"));
- title.AppendNum(codeInfo.iRemainingEntryAttempts);
- queryAccepted = iSecQueryUi->SecQueryDialog(title, iSecUi_password, SEC_C_PIN2_CODE_MIN_LENGTH, SEC_C_PIN2_CODE_MAX_LENGTH, ESecUiSecretNotSupported | ESecUiAlphaNotSupported
- | ESecUiCancelSupported | secCodeType);
- RDEBUG("iSecUi_password", 0);
- RDEBUGSTR(iSecUi_password);
- RDEBUG("queryAccepted", queryAccepted);
- iQueryCanceled = ETrue;
- delete iSecQueryUi;
-
- // If failed or device became locked, any pending request should be cancelled.
- if (queryAccepted != KErrNone)
+
+ CSecUiLockObserver* deviceLockStatusObserver = CSecUiLockObserver::NewL(iSecurityDlg);
+ CleanupStack::PushL(deviceLockStatusObserver);
+ CSecUiLockObserver* queryStatusObserver = CSecUiLockObserver::NewL(iSecurityDlg, ESecUiRequestStateObserver);
+ CleanupStack::PushL(queryStatusObserver);
+
+ if(codeInfo.iRemainingEntryAttempts == KMaxNumberOfPINAttempts)
+ ret = iSecurityDlg->ExecuteLD(R_PIN2_QUERY);
+ else if(codeInfo.iRemainingEntryAttempts > KLastRemainingInputAttempt)
+ {
+ HBufC* queryPrompt = StringLoader::LoadLC(R_SECUI_REMAINING_PIN2_ATTEMPTS, codeInfo.iRemainingEntryAttempts );
+ ret = iSecurityDlg->ExecuteLD(R_PIN2_QUERY, *queryPrompt);
+ CleanupStack::PopAndDestroy(queryPrompt);
+ }
+ else
+ {
+ HBufC* queryPrompt = StringLoader::LoadLC(R_SECUI_FINAL_PIN2_ATTEMPT);
+ ret = iSecurityDlg->ExecuteLD(R_PIN2_QUERY, *queryPrompt);
+ CleanupStack::PopAndDestroy(queryPrompt);
+ }
+ CleanupStack::PopAndDestroy(2); //deviceLockStatusObserver, queryStatusObserver
+ iSecurityDlg = NULL;
+ if (!ret || (ret == ESecUiDeviceLocked))
{
- RDEBUG("AbortSecurityCode", 0);
- iPhone.AbortSecurityCode(secCodeType);
- RDEBUG("AbortSecurityCode", 1);
+ iPhone.AbortSecurityCode(RMobilePhone::ESecurityCodePin2);
CleanupStack::PopAndDestroy(wait);
return;
}
- RDEBUG("VerifySecurityCode", 0);
- iPhone.VerifySecurityCode(wait->iStatus, secCodeType, iSecUi_password, required_fourth);
- RDEBUG("WaitForRequestL", 0);
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CSecurityHandler::Pin2RequiredL(): Verify Code"));
+ #endif
+ iPhone.VerifySecurityCode(wait->iStatus,secCodeType,password,required_fourth);
TInt status = wait->WaitForRequestL();
- RDEBUG("WaitForRequestL status", status);
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CSecurityHandler::Pin2RequiredL(): destroy wait"));
+ #endif
CleanupStack::PopAndDestroy(wait);
- switch (status)
- {
+ switch(status)
+ {
case KErrNone:
break;
case KErrGsm0707IncorrectPassword:
case KErrAccessDenied:
// code was entered erroneously
- CSecuritySettings::ShowResultNoteL(R_CODE_ERROR, CAknNoteDialog::EErrorTone);
+ CSecuritySettings::ShowResultNoteL(R_CODE_ERROR, CAknNoteDialog::EErrorTone);
break;
case KErrGsmSSPasswordAttemptsViolation:
case KErrLocked:
@@ -1487,159 +1698,164 @@
CSecuritySettings::ShowResultNoteL(R_CODE_ERROR, CAknNoteDialog::EErrorTone);
break;
default:
- CSecuritySettings::ShowErrorNoteL(status);
+ CSecuritySettings::ShowErrorNoteL(status);
break;
}
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CSecurityHandler::Pin2RequiredL(): END"));
+ #endif
}
//
// ----------------------------------------------------------
// CSecurityHandler::Puk2Required()
// Handles Puk2Required event
// ----------------------------------------------------------
-// qtdone
+//
void CSecurityHandler::Puk2RequiredL()
- {
+ {
/*****************************************************
- * Series 60 Customer / ETel
- * Series 60 ETel API
- *****************************************************/
- RDEBUG("0", 0);
- TInt queryAccepted = KErrCancel;
- RMobilePhone::TMobilePassword iSecUi_password;
+ * Series 60 Customer / ETel
+ * Series 60 ETel API
+ *****************************************************/
+ RMobilePhone::TMobilePassword aPassword;
RMobilePhone::TMobilePassword aNewPassword;
RMobilePhone::TMobilePassword verifcationPassword;
RMobilePhone::TMobilePhoneSecurityCodeInfoV5 codeInfo;
RMobilePhone::TMobilePhoneSecurityCodeInfoV5Pckg codeInfoPkg(codeInfo);
-
- RMobilePhone::TMobilePhoneSecurityCode secCodeType = RMobilePhone::ESecurityCodePuk2;
+
+ RMobilePhone::TMobilePhoneSecurityCode blockCodeType;
+ blockCodeType = RMobilePhone::ESecurityCodePuk2;
CWait* wait = CWait::NewL();
CleanupStack::PushL(wait);
-
+
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CSecurityHandler::Puk2RequiredL()"));
+ #endif
// ask PUK2
-
- TInt ret(KErrNone);
+ iSecurityDlg = new (ELeave) CCodeQueryDialog (aPassword,SEC_C_PUK2_CODE_MIN_LENGTH,SEC_C_PUK2_CODE_MAX_LENGTH,ESecUiNone);
+ #ifdef __COVER_DISPLAY
+ iSecurityDlg->PublishDialogL(SecondaryDisplay::ECmdShowSecurityQuery, SecondaryDisplay::KCatStartup);
+ CAknMediatorFacade* covercl = AknMediatorFacade(iSecurityDlg); // uses MOP, so control provided
+ if (covercl) // returns null if __COVER_DISPLAY is not defined
+ {
+ // … - add data that cover ui is interested in
+ covercl->BufStream().WriteInt32L(SecondaryDisplay::EShowPUK2); // adds int to additional data to be posted to cover ui
+ covercl->BufStream().CommitL(); // no more data to send so commit buf
+ }
+ #endif //__COVER_DISPLAY
+ CSecUiLockObserver* deviceLockStatusObserver = CSecUiLockObserver::NewL(iSecurityDlg);
+ CleanupStack::PushL(deviceLockStatusObserver);
+
+ TInt ret(KErrNone);
wait->SetRequestType(EMobilePhoneGetSecurityCodeInfo);
- RDEBUG("GetSecurityCodeInfo", 0);
- iPhone.GetSecurityCodeInfo(wait->iStatus, secCodeType, codeInfoPkg);
- RDEBUG("WaitForRequestL", 0);
+ iPhone.GetSecurityCodeInfo(wait->iStatus, blockCodeType, codeInfoPkg);
ret = wait->WaitForRequestL();
- RDEBUG("WaitForRequestL ret", ret);
User::LeaveIfError(ret);
-
- /* request PIN using QT */
- CSecQueryUi *iSecQueryUi;
- RDEBUG("CSecQueryUi", 0);
- iSecQueryUi = CSecQueryUi::NewL();
- iQueryCanceled = EFalse;
- RDEBUG("SecQueryDialog", 1);
- // ESecUiCodeEtelReqest/ESecUiNone might be useful
-
- RDEBUG("codeInfo.iRemainingEntryAttempts",
- codeInfo.iRemainingEntryAttempts);
- if (codeInfo.iRemainingEntryAttempts == KMaxNumberOfPINAttempts) // TODO this might be 10 ?
- codeInfo.iRemainingEntryAttempts = -1;
-
- TBuf<0x100> title;
- title.Zero();
- HBufC* stringHolder = HbTextResolverSymbian::LoadLC(_L("txt_pin_code_dialog_puk2_code"));
- title.Append(stringHolder->Des());
- CleanupStack::PopAndDestroy(stringHolder);
- title.Append(_L("$"));
- title.AppendNum(codeInfo.iRemainingEntryAttempts);
- queryAccepted = iSecQueryUi->SecQueryDialog(title, iSecUi_password, SEC_C_PUK2_CODE_MIN_LENGTH, SEC_C_PUK2_CODE_MAX_LENGTH, ESecUiSecretNotSupported | ESecUiAlphaNotSupported
- | ESecUiCancelSupported | secCodeType);
- RDEBUG("iSecUi_password", 0);
- RDEBUGSTR(iSecUi_password);
- iQueryCanceled = ETrue;
- delete iSecQueryUi;
- RDEBUG("queryAccepted", queryAccepted);
-
- if (queryAccepted != KErrNone)
+
+ if(codeInfo.iRemainingEntryAttempts == KMaxNumberOfPUKAttempts)
+ ret = iSecurityDlg->ExecuteLD(R_PUK2_REQUEST_QUERY);
+ else if(codeInfo.iRemainingEntryAttempts > KLastRemainingInputAttempt)
+ {
+ HBufC* queryPrompt = StringLoader::LoadLC(R_SECUI_REMAINING_PUK2_ATTEMPTS, codeInfo.iRemainingEntryAttempts);
+ ret = iSecurityDlg->ExecuteLD(R_PUK2_REQUEST_QUERY, *queryPrompt);
+ CleanupStack::PopAndDestroy(queryPrompt);
+ }
+ else
+ {
+ HBufC* queryPrompt = StringLoader::LoadLC(R_SECUI_FINAL_PUK2_ATTEMPT);
+ ret = iSecurityDlg->ExecuteLD(R_PUK2_REQUEST_QUERY, *queryPrompt);
+ CleanupStack::PopAndDestroy(queryPrompt);
+ }
+
+ iSecurityDlg = NULL;
+ if(!ret || (ret == ESecUiDeviceLocked))
{
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CSecurityHandler::Puk2RequiredL() PUK QUERY CANCEL"));
+ #endif
// cancel "get security unblock code" request
- RDEBUG("AbortSecurityCode", 0);
- iPhone.AbortSecurityCode(secCodeType);
- RDEBUG("AbortSecurityCode", 1);
- CleanupStack::PopAndDestroy(1); //wait
+ iPhone.AbortSecurityCode(blockCodeType);
+ CleanupStack::PopAndDestroy(2); //wait, deviceLockStatusObserver
+ return;
+ }
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CSecurityHandler::Puk2RequiredL() NEW QUERY"));
+ #endif
+ // new pin2 code query
+ iSecurityDlg = new (ELeave) CCodeQueryDialog (aNewPassword,SEC_C_PIN2_CODE_MIN_LENGTH,SEC_C_PIN2_CODE_MAX_LENGTH,ESecUiNone);
+ deviceLockStatusObserver->SetAddress(iSecurityDlg);
+ ret = iSecurityDlg->ExecuteLD(R_NEW_PIN2_CODE_QUERY);
+ if(!ret || (ret == ESecUiDeviceLocked))
+ {
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CSecurityHandler::Puk2RequiredL() NEW QUERY CANCEL"));
+ #endif
+ // cancel "get security unblock code" request
+ iPhone.AbortSecurityCode(blockCodeType);
+ CleanupStack::PopAndDestroy(2); //wait, deviceLockStatusObserver
return;
}
- RDEBUG("VerifySecurityCode", 0);
- iPhone.VerifySecurityCode(wait->iStatus, secCodeType, iSecUi_password, iSecUi_password);
- // this writes the newPIN2 with the value of PUK2. It's ok, since the user forgot it
- RDEBUG("WaitForRequestL", 0);
- TInt res = wait->WaitForRequestL();
- RDEBUG("WaitForRequestL res", res);
- CleanupStack::PopAndDestroy(wait);
-
- switch (res)
+ // verification code query
+ iSecurityDlg = new (ELeave) CCodeQueryDialog (verifcationPassword,SEC_C_PIN_CODE_MIN_LENGTH,SEC_C_PIN_CODE_MAX_LENGTH,ESecUiNone);
+ deviceLockStatusObserver->SetAddress(iSecurityDlg);
+ ret = iSecurityDlg->ExecuteLD(R_VERIFY_NEW_PIN2_CODE_QUERY);
+ if (!ret || (ret == ESecUiDeviceLocked))
{
- case KErrNone:
- // code approved -> note
- CSecuritySettings::ShowResultNoteL(res, CAknNoteDialog::EConfirmationTone);
- break;
- case KErrGsm0707IncorrectPassword:
- case KErrAccessDenied:
- // wrong PUK2 code -> note -> ask PUK2 code again
- CSecuritySettings::ShowResultNoteL(R_CODE_ERROR, CAknNoteDialog::EErrorTone);
- Puk2RequiredL();
- break;
- case KErrGsmSSPasswordAttemptsViolation:
- case KErrLocked:
- // Pin2 features blocked permanently!
- CSecuritySettings::ShowResultNoteL(R_PIN2_REJECTED, CAknNoteDialog::EConfirmationTone);
- break;
- default:
- CSecuritySettings::ShowErrorNoteL(res);
- Puk2RequiredL();
- break;
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CSecurityHandler::Puk2RequiredL() VERIFY QUERY CANCEL"));
+ #endif
+ // cancel "get security unblock code" request
+ iPhone.AbortSecurityCode(blockCodeType);
+ CleanupStack::PopAndDestroy(2); //wait, deviceLockStatusObserver
+ return;
}
+
+ while (aNewPassword.CompareF(verifcationPassword) != 0)
+ {
+ // codes do not match -> note -> ask new pin and verification codes again
+ CSecuritySettings::ShowResultNoteL(R_CODES_DONT_MATCH, CAknNoteDialog::EErrorTone);
+
+ verifcationPassword = _L("");
+ aNewPassword = _L("");
- // now the PUK2 is valid. Time to get the new PIN2
- wait = CWait::NewL();
- CleanupStack::PushL(wait);
- {
// new pin2 code query
- CSecQueryUi * iSecQueryUi;
- RDEBUG("CSecQueryUi", 0);
- iSecQueryUi = CSecQueryUi::NewL();
- iQueryCanceled = EFalse;
- TBuf<0x100> title;
- title.Zero();
- HBufC* stringHolder = HbTextResolverSymbian::LoadLC(_L("txt_pin_code_dialog_new_pin2_code"));
- title.Append(stringHolder->Des());
- CleanupStack::PopAndDestroy(stringHolder);
- title.Append(_L("|"));
- HBufC* stringHolder2 = HbTextResolverSymbian::LoadLC(_L("Verify"));
- title.Append(stringHolder2->Des());
- CleanupStack::PopAndDestroy(stringHolder2);
- // ESecUiCodeEtelReqest/ESecUiNone might be useful
- queryAccepted = iSecQueryUi->SecQueryDialog(title, aNewPassword, SEC_C_PIN2_CODE_MIN_LENGTH, SEC_C_PIN2_CODE_MAX_LENGTH, ESecUiAlphaNotSupported | ESecUiCancelSupported
- | secCodeType);
- RDEBUG("aNewPassword", 0);
- RDEBUGSTR(aNewPassword);
- iQueryCanceled = ETrue;
- delete iSecQueryUi;
- RDEBUG("queryAccepted", queryAccepted);
- if (queryAccepted != KErrNone)
+ iSecurityDlg = new (ELeave) CCodeQueryDialog (aNewPassword,SEC_C_PIN2_CODE_MIN_LENGTH,SEC_C_PIN2_CODE_MAX_LENGTH,ESecUiNone);
+ deviceLockStatusObserver->SetAddress(iSecurityDlg);
+ deviceLockStatusObserver->StartObserver();
+
+ ret = iSecurityDlg->ExecuteLD(R_NEW_PIN2_CODE_QUERY);
+
+ if(!ret || (ret == ESecUiDeviceLocked))
{
// cancel "get security unblock code" request
- RDEBUG("AbortSecurityCode", 0);
- iPhone.AbortSecurityCode(secCodeType);
- RDEBUG("AbortSecurityCode", 1);
- CleanupStack::PopAndDestroy(1); //wait
+ iPhone.AbortSecurityCode(blockCodeType);
+ CleanupStack::PopAndDestroy(2); //wait, deviceLockStatusObserver
return;
}
- }
- // send code. The code was temporarilly changed before. Thus, this really done to set the new-new one
- RDEBUG("VerifySecurityCode", 0);
- iPhone.VerifySecurityCode(wait->iStatus, secCodeType, aNewPassword, iSecUi_password);
- RDEBUG("WaitForRequestL", 0);
- res = wait->WaitForRequestL();
- RDEBUG("WaitForRequestL res", res);
+
+ // verification code query
+ iSecurityDlg = new (ELeave) CCodeQueryDialog (verifcationPassword,SEC_C_PIN_CODE_MIN_LENGTH,SEC_C_PIN_CODE_MAX_LENGTH,ESecUiNone);
+ deviceLockStatusObserver->SetAddress(iSecurityDlg);
+ deviceLockStatusObserver->StartObserver();
+ ret = iSecurityDlg->ExecuteLD(R_VERIFY_NEW_PIN2_CODE_QUERY);
+
+ if (!ret || (ret == ESecUiDeviceLocked))
+ {
+ // cancel "get security unblock code" request
+ iPhone.AbortSecurityCode(blockCodeType);
+ CleanupStack::PopAndDestroy(2); //wait, deviceLockStatusObserver
+ return;
+ }
+ }
+ CleanupStack::PopAndDestroy(deviceLockStatusObserver);
+ // send code
+
+ iPhone.VerifySecurityCode(wait->iStatus,blockCodeType,aNewPassword,aPassword);
+ TInt res = wait->WaitForRequestL();
CleanupStack::PopAndDestroy(wait);
-
- switch (res)
+
+ switch(res)
{
case KErrNone:
// code approved -> note
@@ -1654,13 +1870,13 @@
case KErrGsmSSPasswordAttemptsViolation:
case KErrLocked:
// Pin2 features blocked permanently!
- CSecuritySettings::ShowResultNoteL(R_PIN2_REJECTED, CAknNoteDialog::EConfirmationTone);
- break;
+ CSecuritySettings::ShowResultNoteL(R_PIN2_REJECTED, CAknNoteDialog::EConfirmationTone);
+ break;
default:
- CSecuritySettings::ShowErrorNoteL(res);
+ CSecuritySettings::ShowErrorNoteL(res);
Puk2RequiredL();
break;
- }
+ }
}
//
@@ -1668,130 +1884,187 @@
// CSecurityHandler::UPinRequiredL()
// Hendles UniversalPinRequired event
// ----------------------------------------------------------
-// qtdone
+//
TInt CSecurityHandler::UPinRequiredL()
{
/*****************************************************
- * Series 60 Customer / ETel
- * Series 60 ETel API
- *****************************************************/
- TBool wcdmaSupported(FeatureManager::FeatureSupported(KFeatureIdProtocolWcdma));
- TBool upinSupported(FeatureManager::FeatureSupported(KFeatureIdUpin));
- RDEBUG("wcdmaSupported", wcdmaSupported);
- RDEBUG("upinSupported", upinSupported);
- if (wcdmaSupported || upinSupported)
- {
- TInt queryAccepted = KErrCancel;
- TInt lCancelSupported = ESecUiCancelNotSupported;
- RMobilePhone::TMobilePassword iSecUi_password;
+ * Series 60 Customer / ETel
+ * Series 60 ETel API
+ *****************************************************/
+ TBool wcdmaSupported(FeatureManager::FeatureSupported( KFeatureIdProtocolWcdma ));
+ TBool upinSupported(FeatureManager::FeatureSupported( KFeatureIdUpin ));
+ if(wcdmaSupported || upinSupported)
+ {
+ RMobilePhone::TMobilePassword password;
RMobilePhone::TMobilePassword required_fourth;
RMobilePhone::TMobilePhoneSecurityCodeInfoV5 codeInfo;
RMobilePhone::TMobilePhoneSecurityCodeInfoV5Pckg codeInfoPkg(codeInfo);
RMobilePhone::TMobilePhoneSecurityCode secCodeType = RMobilePhone::ESecurityUniversalPin;
CWait* wait = CWait::NewL();
CleanupStack::PushL(wait);
- TBool StartUp = ETrue;
+ TBool StartUp = ETrue;
TInt secUiOriginatedQuery(ESecurityUIsSecUIOriginatedUninitialized);
TInt err = KErrNone;
TInt res = KErrGeneral;
-
+
StartUp = iStartup;
- RDEBUG("StartUp", StartUp);
-
- wait->SetRequestType(EMobilePhoneGetSecurityCodeInfo);
- RDEBUG("GetSecurityCodeInfo", 0);
- iPhone.GetSecurityCodeInfo(wait->iStatus, secCodeType, codeInfoPkg);
- RDEBUG("WaitForRequestL", 0);
- res = wait->WaitForRequestL();
- RDEBUG("WaitForRequestL res", res);
- User::LeaveIfError(res);
-
- if (!StartUp)
- {
+
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CSecurityHandler::UPinRequiredL()"));
+ #endif
+
+ if(!StartUp)
+ {
// read a flag to see whether the query is SecUi originated.
err = RProperty::Get(KPSUidSecurityUIs, KSecurityUIsSecUIOriginatedQuery, secUiOriginatedQuery);
- }
-
- /* request PIN using QT */
- CSecQueryUi *iSecQueryUi;
- RDEBUG("CSecQueryUi", 0);
- iSecQueryUi = CSecQueryUi::NewL();
- iQueryCanceled = EFalse;
- // ESecUiCodeEtelReqest/ESecUiNone might be useful
- // TODO also support Emergency
- if (StartUp || (secUiOriginatedQuery != ESecurityUIsSecUIOriginated) || (err != KErrNone))
- lCancelSupported = ESecUiCancelNotSupported;
+ }
+
+ #if defined(_DEBUG)
+ RDebug::Print(_L("CSecurityHandler::UPinRequiredL() Execute dlg"));
+ #endif
+ if(StartUp || (secUiOriginatedQuery != ESecurityUIsSecUIOriginated) || (err != KErrNone))
+ {
+ iSecurityDlg = new (ELeave) CCodeQueryDialog (password,SEC_C_PIN_CODE_MIN_LENGTH,SEC_C_PIN_CODE_MAX_LENGTH,ESecUiCodeEtelReqest);
+ if(AknLayoutUtils::PenEnabled())
+ iSecurityDlg->SetEmergencyCallSupportForCBA( ETrue );
+ else
+ iSecurityDlg->SetEmergencyCallSupport(ETrue);
+ #ifdef __COVER_DISPLAY
+ iSecurityDlg->PublishDialogL(SecondaryDisplay::ECmdShowSecurityQuery, SecondaryDisplay::KCatStartup);
+ CAknMediatorFacade* covercl = AknMediatorFacade(iSecurityDlg); // uses MOP, so control provided
+ if (covercl) // returns null if __COVER_DISPLAY is not defined
+ {
+ // … - add data that cover ui is interested in
+ covercl->BufStream().WriteInt32L(SecondaryDisplay::EShowUPIN); // adds int to additional data to be posted to cover ui
+ covercl->BufStream().CommitL(); // no more data to send so commit buf
+ }
+ #endif //__COVER_DISPLAY
+
+ wait->SetRequestType(EMobilePhoneGetSecurityCodeInfo);
+ iPhone.GetSecurityCodeInfo(wait->iStatus, secCodeType, codeInfoPkg);
+ res = wait->WaitForRequestL();
+ User::LeaveIfError(res);
+
+ if( codeInfo.iRemainingEntryAttempts >= KMaxNumberOfPINAttempts )
+ res = iSecurityDlg->ExecuteLD(R_UPIN_REQUEST_QUERY);
+ else if(codeInfo.iRemainingEntryAttempts > KLastRemainingInputAttempt)
+ {
+ HBufC* queryPrompt = StringLoader::LoadLC(R_SECUI_REMAINING_UPIN_ATTEMPTS, codeInfo.iRemainingEntryAttempts);
+ res = iSecurityDlg->ExecuteLD(R_UPIN_REQUEST_QUERY, *queryPrompt);
+ CleanupStack::PopAndDestroy(queryPrompt);
+ }
+ else
+ {
+ HBufC* queryPrompt = StringLoader::LoadLC(R_SECUI_FINAL_UPIN_ATTEMPT);
+ res = iSecurityDlg->ExecuteLD(R_UPIN_REQUEST_QUERY, *queryPrompt);
+ CleanupStack::PopAndDestroy(queryPrompt);
+ }
+
+
+ if ((!res) || (res == ESecUiEmergencyCall) || (res == EAknSoftkeyEmergencyCall))
+ {
+ CleanupStack::PopAndDestroy(wait);
+ return KErrCancel;
+ }
+ }
else
- lCancelSupported = ESecUiCancelSupported;
-
- TBuf<0x100> title;
- title.Zero();
- HBufC* stringHolder = HbTextResolverSymbian::LoadLC(_L("txt_pin_code_dialog_upin_code"));
- title.Append(stringHolder->Des());
- CleanupStack::PopAndDestroy(stringHolder);
- title.Append(_L("$"));
- title.AppendNum(codeInfo.iRemainingEntryAttempts);
- queryAccepted = iSecQueryUi->SecQueryDialog(title, iSecUi_password, SEC_C_PIN_CODE_MIN_LENGTH, SEC_C_PIN_CODE_MAX_LENGTH, ESecUiSecretSupported | ESecUiAlphaNotSupported
- | lCancelSupported | ESecUiCodeEtelReqest);
- RDEBUG("iSecUi_password", 0);
- RDEBUGSTR(iSecUi_password);
- iQueryCanceled = ETrue;
- delete iSecQueryUi;
- RDEBUG("queryAccepted", queryAccepted);
- if (queryAccepted != KErrNone)
- {
- CleanupStack::PopAndDestroy(wait);
- RDEBUG("AbortSecurityCode", 0);
- iPhone.AbortSecurityCode(RMobilePhone::ESecurityUniversalPin);
- RDEBUG("AbortSecurityCode", 1);
-
- return KErrCancel;
- }
- RDEBUG("VerifySecurityCode", 0);
- iPhone.VerifySecurityCode(wait->iStatus, secCodeType, iSecUi_password, required_fourth);
- RDEBUG("WaitForRequestL", 0);
+ {
+ iSecurityDlg = new (ELeave) CCodeQueryDialog (password,SEC_C_PIN_CODE_MIN_LENGTH,SEC_C_PIN_CODE_MAX_LENGTH,ESecUiNone);
+ #ifdef __COVER_DISPLAY
+ iSecurityDlg->PublishDialogL(SecondaryDisplay::ECmdShowSecurityQuery, SecondaryDisplay::KCatStartup);
+ CAknMediatorFacade* covercl = AknMediatorFacade(iSecurityDlg); // uses MOP, so control provided
+ if (covercl) // returns null if __COVER_DISPLAY is not defined
+ {
+ // … - add data that cover ui is interested in
+ covercl->BufStream().WriteInt32L(SecondaryDisplay::EShowUPIN); // adds int to additional data to be posted to cover ui
+ covercl->BufStream().CommitL(); // no more data to send so commit buf
+ }
+ #endif //__COVER_DISPLAY
+
+ wait->SetRequestType(EMobilePhoneGetSecurityCodeInfo);
+ iPhone.GetSecurityCodeInfo(wait->iStatus, secCodeType, codeInfoPkg);
+ res = wait->WaitForRequestL();
+ User::LeaveIfError(res);
+
+ CSecUiLockObserver* deviceLockStatusObserver = CSecUiLockObserver::NewL(iSecurityDlg);
+ CleanupStack::PushL(deviceLockStatusObserver);
+ CSecUiLockObserver* queryStatusObserver = CSecUiLockObserver::NewL(iSecurityDlg, ESecUiRequestStateObserver);
+ CleanupStack::PushL(queryStatusObserver);
+
+ if( codeInfo.iRemainingEntryAttempts >= KMaxNumberOfPINAttempts )
+ res = iSecurityDlg->ExecuteLD(R_UPIN_QUERY);
+ else if(codeInfo.iRemainingEntryAttempts > KLastRemainingInputAttempt)
+ {
+ HBufC* queryPrompt = StringLoader::LoadLC(R_SECUI_REMAINING_UPIN_ATTEMPTS, codeInfo.iRemainingEntryAttempts);
+ res = iSecurityDlg->ExecuteLD(R_UPIN_QUERY, *queryPrompt);
+ CleanupStack::PopAndDestroy(queryPrompt);
+ }
+ else
+ {
+ HBufC* queryPrompt = StringLoader::LoadLC(R_SECUI_FINAL_UPIN_ATTEMPT);
+ res = iSecurityDlg->ExecuteLD(R_UPIN_QUERY, *queryPrompt);
+ CleanupStack::PopAndDestroy(queryPrompt);
+ }
+
+ CleanupStack::PopAndDestroy(2); //deviceLockStatusObserver, queryStatusObserver
+ iSecurityDlg = NULL;
+ if( !res || (res == ESecUiDeviceLocked))
+ {
+ // cancel code request
+ CleanupStack::PopAndDestroy(wait);
+ iPhone.AbortSecurityCode(RMobilePhone::ESecurityUniversalPin);
+ return KErrCancel;
+ }
+ }
+
+ #if defined(_DEBUG)
+ RDebug::Print(_L("CSecurityNotifier::UPinRequiredL()VerifySecurityCode"));
+ #endif
+ iPhone.VerifySecurityCode(wait->iStatus,secCodeType, password, required_fourth);
res = wait->WaitForRequestL();
- RDEBUG("WaitForRequestL res", res);
CleanupStack::PopAndDestroy(wait);
-
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CSecurityHandler::UPinRequiredL() VerifySecurityCode STATUS: %d"), res);
+ #endif
TInt returnValue = res;
- switch (res)
- {
+ switch(res)
+ {
case KErrNone:
// code approved
- RDEBUG("code approved ", 0)
- ;
+ #if defined(_DEBUG)
+ RDebug::Print(_L("CSecurityHandler::UPinRequiredL()code approved "));
+ #endif
CSecuritySettings::ShowResultNoteL(R_CONFIRMATION_NOTE, CAknNoteDialog::EConfirmationTone);
break;
case KErrGsm0707IncorrectPassword:
case KErrAccessDenied:
// code was entered erroneously
CSecuritySettings::ShowResultNoteL(R_CODE_ERROR, CAknNoteDialog::EErrorTone);
- if (StartUp)
- {
- returnValue = UPinRequiredL();
- }
+ if(StartUp)
+ {
+ returnValue = UPinRequiredL();
+ }
break;
case KErrGsmSSPasswordAttemptsViolation:
case KErrLocked:
// code blocked; show error note and terminate.
- if (StartUp)
- CSecuritySettings::ShowResultNoteL(res, CAknNoteDialog::EErrorTone);
+ if(StartUp)
+ CSecuritySettings::ShowResultNoteL(R_CODE_ERROR, CAknNoteDialog::EErrorTone);
break;
case KErrGsm0707SimWrong:
// sim lock active
break;
- default: // for example, KErrArgument
+ default:
CSecuritySettings::ShowErrorNoteL(res);
- if (StartUp)
- {
- returnValue = UPinRequiredL();
- }
+ if(StartUp)
+ {
+ returnValue = UPinRequiredL();
+ }
break;
}
-
+
return returnValue;
- }
+ }
else
return KErrNone;
}
@@ -1800,113 +2073,146 @@
// CSecurityHandler::UPukRequiredL()
// Handles UPukRequired event
// ----------------------------------------------------------
-// qtdone
+//
TInt CSecurityHandler::UPukRequiredL()
{
- TBool wcdmaSupported(FeatureManager::FeatureSupported(KFeatureIdProtocolWcdma));
- TBool upinSupported(FeatureManager::FeatureSupported(KFeatureIdUpin));
- if (wcdmaSupported || upinSupported)
- {
- RDEBUG("0", 0);
- TInt queryAccepted = KErrCancel;
- RMobilePhone::TMobilePassword iSecUi_password;
+ TBool wcdmaSupported(FeatureManager::FeatureSupported( KFeatureIdProtocolWcdma ));
+ TBool upinSupported(FeatureManager::FeatureSupported( KFeatureIdUpin ));
+ if(wcdmaSupported || upinSupported)
+ {
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CSecurityHandler::UPukRequiredL()"));
+ #endif
+ RMobilePhone::TMobilePassword aPassword;
RMobilePhone::TMobilePassword aNewPassword;
RMobilePhone::TMobilePhoneSecurityCodeInfoV5 codeInfo;
RMobilePhone::TMobilePhoneSecurityCodeInfoV5Pckg codeInfoPkg(codeInfo);
-
+
RMobilePhone::TMobilePhoneSecurityCode blockCodeType;
blockCodeType = RMobilePhone::ESecurityUniversalPuk;
CWait* wait = CWait::NewL();
CleanupStack::PushL(wait);
-
+
TBool StartUp(ETrue);
StartUp = iStartup;
-
+
TInt res(KErrNone);
wait->SetRequestType(EMobilePhoneGetSecurityCodeInfo);
- RDEBUG("GetSecurityCodeInfo", 0);
iPhone.GetSecurityCodeInfo(wait->iStatus, blockCodeType, codeInfoPkg);
- RDEBUG("WaitForRequestL", 0);
res = wait->WaitForRequestL();
- RDEBUG("WaitForRequestL res", res);
User::LeaveIfError(res);
//show last "Code Error" note for UPIN verify result so it won't be left under the PUK1 dialog
- if (!StartUp && (codeInfo.iRemainingEntryAttempts == KMaxNumberOfPUKAttempts))
+ if(!StartUp && (codeInfo.iRemainingEntryAttempts == KMaxNumberOfPUKAttempts))
CSecuritySettings::ShowResultNoteL(R_CODE_ERROR, CAknNoteDialog::EErrorTone);
-
+
// ask UPUK code
- /* request PIN using QT */
+ iSecurityDlg = new (ELeave) CCodeQueryDialog (aPassword,SEC_C_PUK_CODE_MIN_LENGTH,SEC_C_PUK_CODE_MAX_LENGTH,ESecUiPukRequired);
+ if(AknLayoutUtils::PenEnabled())
+ iSecurityDlg->SetEmergencyCallSupportForCBA( ETrue );
+ else
+ iSecurityDlg->SetEmergencyCallSupport(ETrue);
+ #ifdef __COVER_DISPLAY
+ iSecurityDlg->PublishDialogL(SecondaryDisplay::ECmdShowSecurityQuery, SecondaryDisplay::KCatStartup);
+ CAknMediatorFacade* covercl = AknMediatorFacade(iSecurityDlg); // uses MOP, so control provided
+ if (covercl) // returns null if __COVER_DISPLAY is not defined
+ {
+ // … - add data that cover ui is interested in
+ covercl->BufStream().WriteInt32L(SecondaryDisplay::EShowUPUK);// adds int to additional data to be posted to cover ui
+ covercl->BufStream().CommitL(); // no more data to send so commit buf
+ }
+ #endif //__COVER_DISPLAY
+
+
+ if(codeInfo.iRemainingEntryAttempts == KMaxNumberOfPUKAttempts)
+ res = iSecurityDlg->ExecuteLD(R_UPUK_REQUEST_QUERY);
+ else if(codeInfo.iRemainingEntryAttempts > KLastRemainingInputAttempt)
+ {
+ HBufC* queryPrompt = StringLoader::LoadLC(R_SECUI_REMAINING_UPUK_ATTEMPTS, codeInfo.iRemainingEntryAttempts);
+ res = iSecurityDlg->ExecuteLD(R_UPUK_REQUEST_QUERY, *queryPrompt);
+ CleanupStack::PopAndDestroy(queryPrompt);
+ }
+ else
+ {
+ HBufC* queryPrompt = StringLoader::LoadLC(R_SECUI_FINAL_UPUK_ATTEMPT);
+ res = iSecurityDlg->ExecuteLD(R_UPUK_REQUEST_QUERY, *queryPrompt);
+ CleanupStack::PopAndDestroy(queryPrompt);
+ }
+
+ if((!res) || (res == ESecUiEmergencyCall) || (res == EAknSoftkeyEmergencyCall))
{
- CSecQueryUi *iSecQueryUi;
- RDEBUG("CSecQueryUi", 0);
- iSecQueryUi = CSecQueryUi::NewL();
- iQueryCanceled = EFalse;
- // TODO ESecUiCodeEtelReqest/ESecUiNone might be useful
- // TODO also support Emergency
-
- TBuf<0x100> title;
- title.Zero();
- HBufC* stringHolder = HbTextResolverSymbian::LoadLC(_L("txt_pin_code_dialog_puk_code"));
- title.Append(stringHolder->Des());
- CleanupStack::PopAndDestroy(stringHolder);
- title.Append(_L("$"));
- title.AppendNum(codeInfo.iRemainingEntryAttempts);
- queryAccepted = iSecQueryUi->SecQueryDialog(title, iSecUi_password, SEC_C_PUK_CODE_MIN_LENGTH, SEC_C_PUK_CODE_MAX_LENGTH, ESecUiAlphaNotSupported
- | ESecUiCancelSupported | ESecUiPukRequired);
- RDEBUG("iSecUi_password", 0);
- RDEBUGSTR(iSecUi_password);
- iQueryCanceled = ETrue;
- delete iSecQueryUi;
- RDEBUG("queryAccepted", queryAccepted);
-
- if (queryAccepted != KErrNone)
+ CleanupStack::PopAndDestroy(wait);
+ return KErrCancel;
+ }
+
+ RMobilePhone::TMobilePassword verifcationPassword;
+ // new upin code query
+ iSecurityDlg = new (ELeave) CCodeQueryDialog (aNewPassword,SEC_C_PIN_CODE_MIN_LENGTH,SEC_C_PIN_CODE_MAX_LENGTH,ESecUiPukRequired);
+ if(AknLayoutUtils::PenEnabled())
+ iSecurityDlg->SetEmergencyCallSupportForCBA( ETrue );
+ else
+ iSecurityDlg->SetEmergencyCallSupport(ETrue);
+ res = iSecurityDlg->ExecuteLD(R_NEW_UPIN_CODE_REQUEST_QUERY);
+ if((!res) || (res == ESecUiEmergencyCall) || (res == EAknSoftkeyEmergencyCall))
+ {
+ CleanupStack::PopAndDestroy(wait);
+ return KErrCancel;
+ }
+
+ // verification code query
+ iSecurityDlg = new (ELeave) CCodeQueryDialog (verifcationPassword,SEC_C_PIN_CODE_MIN_LENGTH,SEC_C_PIN_CODE_MAX_LENGTH,ESecUiPukRequired);
+ if(AknLayoutUtils::PenEnabled())
+ iSecurityDlg->SetEmergencyCallSupportForCBA( ETrue );
+ else
+ iSecurityDlg->SetEmergencyCallSupport(ETrue);
+ res = iSecurityDlg->ExecuteLD(R_VERIFY_NEW_UPIN_CODE_REQUEST_QUERY);
+ if((!res) || (res == ESecUiEmergencyCall) || (res == EAknSoftkeyEmergencyCall))
+ {
+ CleanupStack::PopAndDestroy(wait);
+ return KErrCancel;
+ }
+
+ while (aNewPassword.CompareF(verifcationPassword) != 0)
+ {
+ // codes do not match -> note -> ask new upin and verification codes again
+ CSecuritySettings::ShowResultNoteL(R_CODES_DONT_MATCH, CAknNoteDialog::EErrorTone);
+
+ verifcationPassword = _L("");
+ aNewPassword = _L("");
+
+ // new upin code query
+ iSecurityDlg = new (ELeave) CCodeQueryDialog (aNewPassword,SEC_C_PIN_CODE_MIN_LENGTH,SEC_C_PIN_CODE_MAX_LENGTH,ESecUiPukRequired);
+ if(AknLayoutUtils::PenEnabled())
+ iSecurityDlg->SetEmergencyCallSupportForCBA( ETrue );
+ else
+ iSecurityDlg->SetEmergencyCallSupport(ETrue);
+ res = iSecurityDlg->ExecuteLD(R_NEW_UPIN_CODE_REQUEST_QUERY);
+ if((!res) || (res == ESecUiEmergencyCall) || (res == EAknSoftkeyEmergencyCall))
{
CleanupStack::PopAndDestroy(wait);
return KErrCancel;
}
- }
-
- {
- /* request PIN using QT */
- CSecQueryUi *iSecQueryUi;
- RDEBUG("CSecQueryUi", 0);
- iSecQueryUi = CSecQueryUi::NewL();
- iQueryCanceled = EFalse;
- // TODO ESecUiCodeEtelReqest/ESecUiNone might be useful
- // TODO also support Emergency
- TBuf<0x100> title;
- title.Zero();
- HBufC* stringHolder = HbTextResolverSymbian::LoadLC(_L("txt_pin_code_dialog_new_upin_code"));
- title.Append(stringHolder->Des());
- CleanupStack::PopAndDestroy(stringHolder);
- title.Append(_L("|"));
- HBufC* stringHolder2 = HbTextResolverSymbian::LoadLC(_L("Verify"));
- title.Append(stringHolder2->Des());
- CleanupStack::PopAndDestroy(stringHolder2);
- queryAccepted = iSecQueryUi->SecQueryDialog(title, aNewPassword, SEC_C_PUK_CODE_MIN_LENGTH, SEC_C_PUK_CODE_MAX_LENGTH, ESecUiAlphaNotSupported | ESecUiCancelSupported
- | ESecUiPukRequired);
- RDEBUG("aNewPassword", 0);
- RDEBUGSTR(aNewPassword);
- iQueryCanceled = ETrue;
- delete iSecQueryUi;
- RDEBUG("queryAccepted", queryAccepted);
- if (queryAccepted != KErrNone)
+
+ // verification code query
+ iSecurityDlg = new (ELeave) CCodeQueryDialog (verifcationPassword,SEC_C_PIN_CODE_MIN_LENGTH,SEC_C_PIN_CODE_MAX_LENGTH,ESecUiPukRequired);
+ if(AknLayoutUtils::PenEnabled())
+ iSecurityDlg->SetEmergencyCallSupportForCBA( ETrue );
+ else
+ iSecurityDlg->SetEmergencyCallSupport(ETrue);
+ res = iSecurityDlg->ExecuteLD(R_VERIFY_NEW_UPIN_CODE_REQUEST_QUERY);
+ if((!res) || (res == ESecUiEmergencyCall) || (res == EAknSoftkeyEmergencyCall))
{
CleanupStack::PopAndDestroy(wait);
return KErrCancel;
}
- }
-
+ }
+
// send code
- RDEBUG("VerifySecurityCode", 0);
- iPhone.VerifySecurityCode(wait->iStatus, blockCodeType, aNewPassword, iSecUi_password);
- RDEBUG("WaitForRequestL", 0);
+ iPhone.VerifySecurityCode(wait->iStatus,blockCodeType,aNewPassword,aPassword);
res = wait->WaitForRequestL();
- RDEBUG("WaitForRequestL res", res);
CleanupStack::PopAndDestroy(wait);
-
+
TInt returnValue = res;
- switch (res)
+ switch(res)
{
case KErrNone:
// code approved -> note
@@ -1926,15 +2232,14 @@
// sim card rejected.
break;
default:
- CSecuritySettings::ShowErrorNoteL(res);
+ CSecuritySettings::ShowErrorNoteL(res);
returnValue = UPukRequiredL();
break;
- }
-
+ }
+
return returnValue;
- }
+ }
else
- // not wcdmaSupported || upinSupported
return KErrNone;
}
@@ -1943,11 +2248,13 @@
// CSecurityHandler::SimLockEventL()
// Shows "SIM restriction on" note
// ----------------------------------------------------------
-// qtdone
+//
void CSecurityHandler::SimLockEventL()
{
- RDEBUG("0", 0);
- CSecuritySettings::ShowResultNoteL(R_SIM_ON, CAknNoteDialog::EConfirmationTone);
+ #if defined(_DEBUG)
+ RDebug::Print(_L("CSecurityHandler::SimLockEventL()"));
+ #endif
+ CSecuritySettings::ShowResultNoteL(R_SIM_ON, CAknNoteDialog::EConfirmationTone);
}
// ---------------------------------------------------------
// CSecurityHandler::RemoveSplashScreenL()
@@ -1962,14 +2269,20 @@
// CSecurityHandler::ShowGenericErrorNoteL(TInt aStatus)
// Shows a generic error note
// ---------------------------------------------------------
-// qtdone
+
void CSecurityHandler::ShowGenericErrorNoteL(TInt aStatus)
{
- // Let's create TextResolver instance for error resolving...
- RDEBUG("aStatus", aStatus);
- RDEBUG("!!!!! this should never be called !!!!", 0);
-
- CSecuritySettings::ShowResultNoteL(aStatus, CAknNoteDialog::EErrorTone);
+ // Let's create TextResolver instance for error resolving...
+ CTextResolver* textresolver = CTextResolver::NewLC();
+ // Resolve the error
+ TPtrC errorstring;
+ errorstring.Set( textresolver->ResolveErrorString( aStatus ) );
+ iNoteDlg = new (ELeave) CAknNoteDialog(REINTERPRET_CAST(CEikDialog**,&iNoteDlg));
+ iNoteDlg->PrepareLC(R_CODE_ERROR);
+ iNoteDlg->SetTextL((TDesC&)errorstring);
+ iNoteDlg->RunDlgLD(CAknNoteDialog::ELongTimeout, CAknNoteDialog::EErrorTone);
+ CleanupStack::PopAndDestroy(textresolver);
}
+
// End of file
--- a/securitydialogs/SecUi/Src/SecUiSecuritySettings.cpp Tue Aug 31 16:04:40 2010 +0300
+++ b/securitydialogs/SecUi/Src/SecUiSecuritySettings.cpp Wed Sep 01 12:19:59 2010 +0100
@@ -1,24 +1,26 @@
/*
- * Copyright (c) 2002 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: Provides api for changing security settings.
- *
- *
- */
+* Copyright (c) 2002 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: Provides api for changing security settings.
+*
+*
+*/
+
#include <etelmm.h>
#include <exterror.h>
#include <textresolver.h>
+#include <SecUi.rsg>
#include <aknnotedialog.h>
#include <mmtsy_names.h>
#include <centralrepository.h>
@@ -29,42 +31,39 @@
#include <PSVariables.h> // Property values
#include <securityuisprivatepskeys.h>
#include <startupdomainpskeys.h>
-#include "SecUi.h"
#include "secuisecuritysettings.h"
+#include "SecUiAutoLockSettingPage.h"
#include "secui.hrh"
#include "secuisecurityhandler.h"
#include "secuicodequerydialog.h"
#include "SecUiWait.h"
-#include <hb/hbcore/hbtextresolversymbian.h>
+
+#ifdef RD_REMOTELOCK
#include <aknnotewrappers.h>
#include <StringLoader.h>
#include <RemoteLockSettings.h>
+#include "SecUiRemoteLockSettingPage.h"
+#endif // RD_REMOTELOCK
#include <featmgr.h>
-
-#include "SecQueryUi.h"
-#include <hb/hbwidgets/hbdevicemessageboxsymbian.h>
-
-/*****************************************************
- * Series 60 Customer / TSY
- * Needs customer TSY implementation
- *****************************************************/
+ /*****************************************************
+ * Series 60 Customer / TSY
+ * Needs customer TSY implementation
+ *****************************************************/
// LOCAL CONSTANTS AND MACROS
-const TInt KTriesToConnectServer(2);
-const TInt KTimeBeforeRetryingServerConnection(50000);
-const TInt PhoneIndex(0);
+const TInt KTriesToConnectServer( 2 );
+const TInt KTimeBeforeRetryingServerConnection( 50000 );
+const TInt PhoneIndex( 0 );
-const TInt KMaxNumberOfPINAttempts(3); // is this valid also for PIN2 ?
-
-#define ESecUiTypeLock 0x00100000
-#define KErrTDevicelockPolicies 0x10207837
+const TInt KMaxNumberOfPINAttempts(3);
+const TInt KLastRemainingInputAttempt(1);
// ================= MEMBER FUNCTIONS =======================
//
// ----------------------------------------------------------
// CSecuritySettings::NewL()
// ----------------------------------------------------------
-// qtdone
+//
EXPORT_C CSecuritySettings* CSecuritySettings::NewL()
{
CSecuritySettings* self = new (ELeave) CSecuritySettings();
@@ -78,7 +77,7 @@
// CSecuritySettings::CSecuritySettings()
// constructor
// ----------------------------------------------------------
-// qtdone
+//
EXPORT_C CSecuritySettings::CSecuritySettings()
{
}
@@ -87,93 +86,91 @@
// CSecuritySettings::ConstructL()
// Symbian OS constructor.
// ----------------------------------------------------------
-// qtdone
+//
EXPORT_C void CSecuritySettings::ConstructL()
{
/*****************************************************
- * Series 60 Customer / ETel
- * Series 60 ETel API
- *****************************************************/
+ * Series 60 Customer / ETel
+ * Series 60 ETel API
+ *****************************************************/
/*****************************************************
- * Series 60 Customer / TSY
- * Needs customer TSY implementation
- *****************************************************/
+ * Series 60 Customer / TSY
+ * Needs customer TSY implementation
+ *****************************************************/
- RDEBUG("0", 0);
- TInt err(KErrGeneral);
- TInt thisTry(0);
+ TInt err( KErrGeneral );
+ TInt thisTry( 0 );
iWait = CWait::NewL();
RTelServer::TPhoneInfo PhoneInfo;
/* All server connections are tried to be made KTriesToConnectServer times because occasional
- fails on connections are possible, at least on some servers */
-
+ fails on connections are possible, at least on some servers */
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CSecuritySettings::ConstructL()"));
+ #endif
+
FeatureManager::InitializeLibL();
// connect to ETel server
- while ((err = iServer.Connect()) != KErrNone && (thisTry++) <= KTriesToConnectServer)
+ while ( ( err = iServer.Connect() ) != KErrNone && ( thisTry++ ) <= KTriesToConnectServer )
{
- User::After( KTimeBeforeRetryingServerConnection);
+ User::After( KTimeBeforeRetryingServerConnection );
}
- User::LeaveIfError(err);
+ User::LeaveIfError( err );
// load TSY
- err = iServer.LoadPhoneModule(KMmTsyModuleName);
- if (err != KErrAlreadyExists)
+ err = iServer.LoadPhoneModule( KMmTsyModuleName );
+ if ( err != KErrAlreadyExists )
{
// May return also KErrAlreadyExists if something else
// has already loaded the TSY module. And that is
// not an error.
- User::LeaveIfError(err);
+ User::LeaveIfError( err );
}
// open phones
User::LeaveIfError(iServer.SetExtendedErrorGranularity(RTelServer::EErrorExtended));
User::LeaveIfError(iServer.GetPhoneInfo(PhoneIndex, PhoneInfo));
- User::LeaveIfError(iPhone.Open(iServer, PhoneInfo.iName));
+ User::LeaveIfError(iPhone.Open(iServer,PhoneInfo.iName));
User::LeaveIfError(iCustomPhone.Open(iPhone));
- iSecurityHandler = new (ELeave) CSecurityHandler(iPhone);
- _LIT(KFileName, "secui_");
- _LIT(KPath, "z:/resource/qt/translations/");
- RDEBUG("HbTextResolverSymbian", 0);
- TBool result = HbTextResolverSymbian::Init(KFileName, KPath);
- RDEBUG("result", result);
-
+ iSecurityHandler = new( ELeave ) CSecurityHandler( iPhone );
}
//
// ----------------------------------------------------------
// CSecuritySettings::~CSecuritySettings()
// Destructor
// ----------------------------------------------------------
-// qtdone
+//
EXPORT_C CSecuritySettings::~CSecuritySettings()
{
/*****************************************************
- * Series 60 Customer / ETel
- * Series 60 ETel API
- *****************************************************/
+ * Series 60 Customer / ETel
+ * Series 60 ETel API
+ *****************************************************/
/*****************************************************
- * Series 60 Customer / TSY
- * Needs customer TSY implementation
- *****************************************************/
+ * Series 60 Customer / TSY
+ * Needs customer TSY implementation
+ *****************************************************/
delete iSecurityHandler;
// Cancel active requests
- if (iWait->IsActive())
- {
- RDEBUG("CancelAsyncRequest", 0);
+ if(iWait->IsActive())
+ {
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CManualSecuritySettings::~CSecuritySettings() CANCEL REQ"));
+ #endif
iPhone.CancelAsyncRequest(iWait->GetRequestType());
-
- switch (iWait->GetRequestType())
- { //inform query that it has beeen canceled
- case EMobilePhoneSetLockSetting:
- case EMobilePhoneSetFdnSetting:
- RProperty::Set(KPSUidSecurityUIs, KSecurityUIsQueryRequestCancel, ESecurityUIsQueryRequestCanceled);
- break;
- default:
- break;
- }
-
- }
+
+ switch(iWait->GetRequestType())
+ { //inform query that it has beeen canceled
+ case EMobilePhoneSetLockSetting:
+ case EMobilePhoneSetFdnSetting:
+ RProperty::Set(KPSUidSecurityUIs, KSecurityUIsQueryRequestCancel, ESecurityUIsQueryRequestCanceled);
+ break;
+ default:
+ break;
+ }
+
+ }
// close phone
if (iPhone.SubSessionHandle())
iPhone.Close();
@@ -194,21 +191,173 @@
// CSecuritySettings::ChangePinL()
// Changes PIN1
// ----------------------------------------------------------
-// qtdone
+//
EXPORT_C void CSecuritySettings::ChangePinL()
{
- RDEBUG("0", 0);
- RMobilePhone::TMobilePassword iOldPassword;
- RMobilePhone::TMobilePassword iNewPassword;
- TInt iFlags = ESecUiTypeLock;
- iOldPassword.Copy(_L(""));
- iNewPassword.Copy(_L(""));
+ /*****************************************************
+ * Series 60 Customer / ETel
+ * Series 60 ETel API
+ *****************************************************/
+
+ TInt simState;
+ TInt err( KErrGeneral );
+ err = RProperty::Get(KPSUidStartup, KPSSimStatus, simState);
+ User::LeaveIfError( err );
+ TBool simRemoved(simState == ESimNotPresent);
+
+ if ( simRemoved )
+ {
+ ShowResultNoteL(R_INSERT_SIM, CAknNoteDialog::EErrorTone);
+ return;
+ }
+
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CSecuritySettings::ChangePinL()"));
+ #endif
+ RMobilePhone::TMobilePhoneSecurityCode secCodeType;
+ secCodeType = RMobilePhone::ESecurityCodePin1;
+
+ RMobilePhone::TMobilePassword oldPassword;
+ RMobilePhone::TMobilePassword newPassword;
+ RMobilePhone::TMobilePassword verifcationPassword;
+ RMobilePhone::TMobilePhonePasswordChangeV1 passwords;
+ RMobilePhone::TMobilePhoneSecurityCodeInfoV5 codeInfo;
+ RMobilePhone::TMobilePhoneSecurityCodeInfoV5Pckg codeInfoPkg(codeInfo);
+
+ CCodeQueryDialog* verdlg = new (ELeave) CCodeQueryDialog (verifcationPassword,SEC_C_PIN_CODE_MIN_LENGTH,SEC_C_PIN_CODE_MAX_LENGTH,ESecUiNone);
+ CleanupStack::PushL(verdlg);
+
+ CCodeQueryDialog* newdlg = new (ELeave) CCodeQueryDialog(newPassword,SEC_C_PIN_CODE_MIN_LENGTH,SEC_C_PIN_CODE_MAX_LENGTH,ESecUiNone);
+ CleanupStack::PushL(newdlg);
+
+ CCodeQueryDialog* dlg = new (ELeave) CCodeQueryDialog (oldPassword,SEC_C_PIN_CODE_MIN_LENGTH,SEC_C_PIN_CODE_MAX_LENGTH,ESecUiNone);
+ CleanupStack::PushL(dlg);
+
+ RMobilePhone::TMobilePhoneLock lockType;
+ RMobilePhone::TMobilePhoneLockInfoV1 lockInfo;
+
+ lockType = RMobilePhone::ELockICC;
+
+ RMobilePhone::TMobilePhoneLockInfoV1Pckg lockInfoPkg(lockInfo);
+ iWait->SetRequestType(EMobilePhoneGetLockInfo);
+ iPhone.GetLockInfo(iWait->iStatus, lockType, lockInfoPkg);
+ TInt res = iWait->WaitForRequestL();
+ User::LeaveIfError(res);
- TBuf<0x80> iCaption;
- iCaption.Copy(_L("ChangePinL")); // no need to translate. Not used
- TInt iShowError = 1;
- TInt err = ChangePinParamsL(iOldPassword, iNewPassword, iFlags, iCaption, iShowError);
- RDEBUG("err", err);
+ if (lockInfo.iSetting == RMobilePhone::ELockSetDisabled)
+ {
+ CleanupStack::PopAndDestroy(3,verdlg);
+ ShowResultNoteL(R_PIN_NOT_ALLOWED, CAknNoteDialog::EErrorTone);
+ return;
+ }
+
+ CleanupStack::Pop(); // dlg
+ iWait->SetRequestType(EMobilePhoneGetSecurityCodeInfo);
+ iPhone.GetSecurityCodeInfo(iWait->iStatus, secCodeType, codeInfoPkg);
+ res = iWait->WaitForRequestL();
+ User::LeaveIfError(res);
+ // ask pin
+ if( codeInfo.iRemainingEntryAttempts >= KMaxNumberOfPINAttempts )
+ res = dlg->ExecuteLD(R_PIN_QUERY);
+ else if(codeInfo.iRemainingEntryAttempts > KLastRemainingInputAttempt)
+ {
+ HBufC* queryPrompt = StringLoader::LoadLC(R_SECUI_REMAINING_PIN_ATTEMPTS, codeInfo.iRemainingEntryAttempts);
+ res = dlg->ExecuteLD(R_PIN_QUERY, *queryPrompt);
+ CleanupStack::PopAndDestroy(queryPrompt);
+ }
+ else
+ {
+ HBufC* queryPrompt = StringLoader::LoadLC(R_SECUI_FINAL_PIN_ATTEMPT);
+ res = dlg->ExecuteLD(R_PIN_QUERY, *queryPrompt);
+ CleanupStack::PopAndDestroy(queryPrompt);
+ }
+
+ if( !res )
+ {
+ CleanupStack::PopAndDestroy(2,verdlg);
+ return;
+ }
+ CleanupStack::Pop(); // newdlg
+ // new pin code query
+ if (!(newdlg->ExecuteLD(R_NEW_PIN_CODE_QUERY)))
+ {
+ CleanupStack::PopAndDestroy(verdlg);
+ return;
+ }
+
+ CleanupStack::Pop(); // verdlg
+ // verification code query
+ if (!(verdlg->ExecuteLD(R_VERIFY_NEW_PIN_CODE_QUERY)))
+ return;
+
+ while (newPassword.CompareF(verifcationPassword) != 0)
+ {
+ // codes do not match -> note -> ask new pin and verification codes again
+ ShowResultNoteL(R_CODES_DONT_MATCH, CAknNoteDialog::EErrorTone);
+
+ newPassword = _L("");
+ verifcationPassword = _L("");
+
+ // new pin code query
+ CCodeQueryDialog* newdlg = new (ELeave) CCodeQueryDialog (newPassword,SEC_C_PIN_CODE_MIN_LENGTH,SEC_C_PIN_CODE_MAX_LENGTH,ESecUiNone);
+ if (!(newdlg->ExecuteLD(R_NEW_PIN_CODE_QUERY)))
+ return;
+
+ // verification code query
+ CCodeQueryDialog* verdlg = new (ELeave) CCodeQueryDialog (verifcationPassword,SEC_C_PIN_CODE_MIN_LENGTH,SEC_C_PIN_CODE_MAX_LENGTH,ESecUiNone);
+ if (!(verdlg->ExecuteLD(R_VERIFY_NEW_PIN_CODE_QUERY)))
+ return;
+ }
+
+ // send code
+ passwords.iOldPassword = oldPassword;
+ passwords.iNewPassword = newPassword;
+ iWait->SetRequestType(EMobilePhoneChangeSecurityCode);
+ iPhone.ChangeSecurityCode(iWait->iStatus, secCodeType, passwords);
+ res = iWait->WaitForRequestL();
+ #if defined(_DEBUG)
+ RDebug::Print( _L("(SECUI)CSecuritySettings::ChangePinL(): RETURN CODE: %d"), res);
+ #endif
+ switch(res)
+ {
+ case KErrNone:
+ {
+ // code changed
+ ShowResultNoteL(R_PIN_CODE_CHANGED_NOTE, CAknNoteDialog::EConfirmationTone);
+ break;
+ }
+ case KErrGsm0707IncorrectPassword:
+ case KErrAccessDenied:
+ {
+ // code was entered erroneously
+ ShowResultNoteL(R_CODE_ERROR, CAknNoteDialog::EErrorTone);
+ ChangePinL();
+ break;
+ }
+ case KErrGsmSSPasswordAttemptsViolation:
+ case KErrLocked:
+ {
+ // Pin1 blocked!
+ return;
+ }
+ case KErrGsm0707OperationNotAllowed:
+ {
+ // not allowed with this sim
+ ShowResultNoteL(R_OPERATION_NOT_ALLOWED, CAknNoteDialog::EErrorTone);
+ return;
+ }
+ case KErrAbort:
+ {
+ break;
+ }
+ default:
+ {
+ ShowErrorNoteL(res);
+ ChangePinL();
+ break;
+ }
+ }
+
}
//
@@ -216,21 +365,174 @@
// CSecuritySettings::ChangeUPinL()
// Changes Universal PIN
// ----------------------------------------------------------
-// qtdone
+//
EXPORT_C void CSecuritySettings::ChangeUPinL()
{
- RDEBUG("0", 0);
- RMobilePhone::TMobilePassword iOldPassword;
- RMobilePhone::TMobilePassword iNewPassword;
- TInt iFlags = ESecUiTypeLock;
- iOldPassword.Copy(_L(""));
- iNewPassword.Copy(_L(""));
-
- TBuf<0x80> iCaption;
- iCaption.Copy(_L("ChangeUPinL")); // no need to translate. Not used
- TInt iShowError = 1;
- TInt err = ChangeUPinParamsL(iOldPassword, iNewPassword, iFlags, iCaption, iShowError);
- RDEBUG("err", err);
+ TBool wcdmaSupported(FeatureManager::FeatureSupported( KFeatureIdProtocolWcdma ));
+ TBool upinSupported(FeatureManager::FeatureSupported( KFeatureIdUpin ));
+ if(wcdmaSupported || upinSupported)
+ {
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CSecuritySettings::ChangeUPinL()"));
+ #endif
+ TInt simState;
+ TInt err( KErrGeneral );
+ err = RProperty::Get(KPSUidStartup, KPSSimStatus, simState);
+ User::LeaveIfError( err );
+ TBool simRemoved(simState == ESimNotPresent);
+
+ if ( simRemoved )
+ {
+ ShowResultNoteL(R_INSERT_SIM, CAknNoteDialog::EErrorTone);
+ return;
+ }
+
+ RMobilePhone::TMobilePhoneSecurityCode secCodeType;
+ secCodeType = RMobilePhone::ESecurityUniversalPin;
+
+ RMobilePhone::TMobilePassword oldPassword;
+ RMobilePhone::TMobilePassword newPassword;
+ RMobilePhone::TMobilePassword verifcationPassword;
+ RMobilePhone::TMobilePhonePasswordChangeV1 passwords;
+ RMobilePhone::TMobilePhoneSecurityCodeInfoV5 codeInfo;
+ RMobilePhone::TMobilePhoneSecurityCodeInfoV5Pckg codeInfoPkg(codeInfo);
+
+ CCodeQueryDialog* verdlg = new (ELeave) CCodeQueryDialog (verifcationPassword,SEC_C_PIN_CODE_MIN_LENGTH,SEC_C_PIN_CODE_MAX_LENGTH,ESecUiNone);
+ CleanupStack::PushL(verdlg);
+
+ CCodeQueryDialog* newdlg = new (ELeave) CCodeQueryDialog(newPassword,SEC_C_PIN_CODE_MIN_LENGTH,SEC_C_PIN_CODE_MAX_LENGTH,ESecUiNone);
+ CleanupStack::PushL(newdlg);
+
+ CCodeQueryDialog* dlg = new (ELeave) CCodeQueryDialog (oldPassword,SEC_C_PIN_CODE_MIN_LENGTH,SEC_C_PIN_CODE_MAX_LENGTH,ESecUiNone);
+ CleanupStack::PushL(dlg);
+
+ RMobilePhone::TMobilePhoneLock lockType;
+ RMobilePhone::TMobilePhoneLockInfoV1 lockInfo;
+
+ lockType = RMobilePhone::ELockUniversalPin;
+
+ RMobilePhone::TMobilePhoneLockInfoV1Pckg lockInfoPkg(lockInfo);
+ iWait->SetRequestType(EMobilePhoneGetLockInfo);
+ iPhone.GetLockInfo(iWait->iStatus, lockType, lockInfoPkg);
+ TInt res = iWait->WaitForRequestL();
+ User::LeaveIfError(res);
+
+ if (lockInfo.iSetting == RMobilePhone::ELockSetDisabled)
+ {
+ CleanupStack::PopAndDestroy(3,verdlg);
+ ShowResultNoteL(R_UPIN_NOT_ALLOWED, CAknNoteDialog::EErrorTone);
+ return;
+ }
+
+ CleanupStack::Pop(); // dlg
+ // ask pin
+ iWait->SetRequestType(EMobilePhoneGetSecurityCodeInfo);
+ iPhone.GetSecurityCodeInfo(iWait->iStatus, secCodeType, codeInfoPkg);
+ res = iWait->WaitForRequestL();
+ User::LeaveIfError(res);
+
+ if( codeInfo.iRemainingEntryAttempts >= KMaxNumberOfPINAttempts )
+ res = dlg->ExecuteLD(R_UPIN_QUERY);
+ else if(codeInfo.iRemainingEntryAttempts > KLastRemainingInputAttempt)
+ {
+ HBufC* queryPrompt = StringLoader::LoadLC(R_SECUI_REMAINING_UPIN_ATTEMPTS, codeInfo.iRemainingEntryAttempts);
+ res = dlg->ExecuteLD(R_UPIN_QUERY, *queryPrompt);
+ CleanupStack::PopAndDestroy(queryPrompt);
+ }
+ else
+ {
+ HBufC* queryPrompt = StringLoader::LoadLC(R_SECUI_FINAL_UPIN_ATTEMPT);
+ res = dlg->ExecuteLD(R_UPIN_QUERY, *queryPrompt);
+ CleanupStack::PopAndDestroy(queryPrompt);
+ }
+
+
+
+ if( !res )
+ {
+ CleanupStack::PopAndDestroy(2,verdlg);
+ return;
+ }
+ CleanupStack::Pop(); // newdlg
+ // new pin code query
+ if (!(newdlg->ExecuteLD(R_NEW_UPIN_CODE_QUERY)))
+ {
+ CleanupStack::PopAndDestroy(verdlg);
+ return;
+ }
+
+ CleanupStack::Pop(); // verdlg
+ // verification code query
+ if (!(verdlg->ExecuteLD(R_VERIFY_NEW_UPIN_CODE_QUERY)))
+ return;
+
+ while (newPassword.CompareF(verifcationPassword) != 0)
+ {
+ // codes do not match -> note -> ask new pin and verification codes again
+ ShowResultNoteL(R_CODES_DONT_MATCH, CAknNoteDialog::EErrorTone);
+
+ newPassword = _L("");
+ verifcationPassword = _L("");
+
+ // new pin code query
+ CCodeQueryDialog* newdlg = new (ELeave) CCodeQueryDialog (newPassword,SEC_C_PIN_CODE_MIN_LENGTH,SEC_C_PIN_CODE_MAX_LENGTH,ESecUiNone);
+ if (!(newdlg->ExecuteLD(R_NEW_UPIN_CODE_QUERY)))
+ return;
+
+ // verification code query
+ CCodeQueryDialog* verdlg = new (ELeave) CCodeQueryDialog (verifcationPassword,SEC_C_PIN_CODE_MIN_LENGTH,SEC_C_PIN_CODE_MAX_LENGTH,ESecUiNone);
+ if (!(verdlg->ExecuteLD(R_VERIFY_NEW_UPIN_CODE_QUERY)))
+ return;
+ }
+
+ // send code
+ passwords.iOldPassword = oldPassword;
+ passwords.iNewPassword = newPassword;
+ iWait->SetRequestType(EMobilePhoneChangeSecurityCode);
+ iPhone.ChangeSecurityCode(iWait->iStatus, secCodeType, passwords);
+ res = iWait->WaitForRequestL();
+ #if defined(_DEBUG)
+ RDebug::Print( _L("(SECUI)CSecuritySettings::ChangePinL(): RETURN CODE: %d"), res);
+ #endif
+ switch(res)
+ {
+ case KErrNone:
+ {
+ // code changed
+ ShowResultNoteL(R_UPIN_CODE_CHANGED_NOTE, CAknNoteDialog::EConfirmationTone);
+ break;
+ }
+ case KErrGsm0707IncorrectPassword:
+ case KErrAccessDenied:
+ {
+ // code was entered erroneously
+ ShowResultNoteL(R_CODE_ERROR, CAknNoteDialog::EErrorTone);
+ ChangeUPinL();
+ break;
+ }
+ case KErrGsmSSPasswordAttemptsViolation:
+ case KErrLocked:
+ {
+ return;
+ }
+ case KErrGsm0707OperationNotAllowed:
+ {
+ // not allowed with this sim
+ ShowResultNoteL(R_OPERATION_NOT_ALLOWED, CAknNoteDialog::EErrorTone);
+ return;
+ }
+ case KErrAbort:
+ {
+ break;
+ }
+ default:
+ {
+ ShowErrorNoteL(res);
+ ChangeUPinL();
+ break;
+ }
+ }
+ }
}
@@ -239,873 +541,48 @@
// CSecuritySettings::ChangePin2L()
// Changes PIN2
// ----------------------------------------------------------
-// qtdone
+//
EXPORT_C void CSecuritySettings::ChangePin2L()
{
- RDEBUG("0", 0);
- RMobilePhone::TMobilePassword iOldPassword;
- RMobilePhone::TMobilePassword iNewPassword;
- TInt iFlags = ESecUiTypeLock;
- iOldPassword.Copy(_L(""));
- iNewPassword.Copy(_L(""));
-
- TBuf<0x80> iCaption;
- iCaption.Copy(_L("ChangePin2L")); // no need to translate. Not used
- TInt iShowError = 1;
- TInt err = ChangePin2ParamsL(iOldPassword, iNewPassword, iFlags, iCaption, iShowError);
- RDEBUG("err", err);
- }
-//
-// ----------------------------------------------------------
-// CSecuritySettings::ChangeSecCodeL()
-// Changes security code
-// ----------------------------------------------------------
-// qtdone
-EXPORT_C void CSecuritySettings::ChangeSecCodeL()
- {
- RDEBUG("0", 0);
- RMobilePhone::TMobilePassword iOldPassword;
- RMobilePhone::TMobilePassword iNewPassword;
- TInt iFlags = 0;
- iOldPassword.Copy(_L(""));
- iNewPassword.Copy(_L(""));
-
- TBuf<0x80> iCaption;
- iCaption.Copy(_L("ChangeSecCodeL")); // no need to translate. Not used
- TInt iShowError = 1;
- TInt err = ChangeSecCodeParamsL(iOldPassword, iNewPassword, iFlags, iCaption, iShowError);
- RDEBUG("err", err);
- }
-//
-// ----------------------------------------------------------
-// CSecuritySettings::ChangeAutoLockPeriodL()
-// Changes autolock period
-// ----------------------------------------------------------
-// qtdone
-EXPORT_C TInt CSecuritySettings::ChangeAutoLockPeriodL(TInt aPeriod)
- {
- TInt ret = 0;
- RDEBUG("aPeriod", aPeriod);
- RMobilePhone::TMobilePassword iOldPassword;
- TInt iFlags = 0;
- TInt iShowError = 1;
- TBuf<0x80> iCaption;
- iCaption.Copy(_L("ChangeAutoLockPeriodL")); // no need to translate. Not used
- iOldPassword.Copy(_L(""));
- ret = ChangeAutoLockPeriodParamsL(aPeriod, iOldPassword, iFlags, iCaption, iShowError);
- RDEBUG("ret", ret);
- return ret;
- }
-
-//
-// ----------------------------------------------------------
-// CSecuritySettings::ChangeRemoteLockStatusL()
-// Changes remote lock status (on/off)
-// ----------------------------------------------------------
-// no qtdone
-EXPORT_C TInt CSecuritySettings::ChangeRemoteLockStatusL(TBool& aRemoteLockStatus, TDes& aRemoteLockCode, TInt aAutoLockPeriod)
- {
- TInt retValue(KErrNone);
- RDEBUG("aRemoteLockStatus", aRemoteLockStatus);
- RDEBUG("aAutoLockPeriod", aAutoLockPeriod);
-
- if (aRemoteLockStatus)
- {
- aRemoteLockStatus = ETrue;
-
- // If user wishes to enable remote lock
- // a new remote lock code is required.
- // RemoteLockCodeQueryL also
- retValue = RemoteLockCodeQueryL(aRemoteLockCode);
- }
- else
- {
- aRemoteLockStatus = EFalse;
- retValue = KErrNone;
- // TODO this should calculate aAutoLockPeriod itself, and not trust the input
+ /*****************************************************
+ * Series 60 Customer / ETel
+ * Series 60 ETel API
+ *****************************************************/
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CSecuritySettings::ChangePin2L()"));
+ #endif
+ TInt simState;
+ TInt err( KErrGeneral );
+ err = RProperty::Get(KPSUidStartup, KPSSimStatus, simState);
+ User::LeaveIfError( err );
+ TBool simRemoved(simState == ESimNotPresent);
- // Check whether AutoLock is enabled (timeout value greater
- // than zero) or not. If AutoLock is enabled the domestic OS
- // device lock should be left enabled.
- if (aAutoLockPeriod == 0)
- {
- // Disable lock setting from domestic OS
- retValue = RemoteLockSetLockSettingL(EFalse);
- }
- else
- {
- // If AutoLock is enabled, don't disable the DOS device lock
- // Re-set (enable) the domestic OS device lock because as a
- // side effect it requires the security code from the user
- retValue = RemoteLockSetLockSettingL(ETrue);
- }
- }
- RDEBUG( "retValue", retValue );
- return retValue;
- }
-//
-// ----------------------------------------------------------
-// CSecuritySettings::RemoteLockCodeQueryL()
-// Pops up remote lock code query. Requires user to enter a new remote lock
-// code (RemoteMsg) twice and if they match enables the domestic OS device lock (which as
-// a side effect pops up security code query).
-// Note: if the RemoteMsg is cancelled, nevertheless the lock is activated. This is done because the code is askedirst, and the only way to do so is by enabling the lock.
-// This is not a problem, because:
-// a) first the RemoteMsg is enable, and this function is used to change it
-// b) if lock was disabled, the "change RemoteMsg" menu is not available.
-// ----------------------------------------------------------
-// qtdone
-TInt CSecuritySettings::RemoteLockCodeQueryL(TDes& aRemoteLockCode)
- {
-
- TInt retValue(KErrNone);
-
- // This is done because lock-code needs to be asked first.
- // Enable lock setting in domestic OS. It is safe to enable the
- // lock setting since RemoteLock API requires remote locking to
- // be enabled when changing or setting the remote lock message.
- retValue = RemoteLockSetLockSettingL(ETrue);
- RDEBUG( "retValue", retValue );
- if (retValue != KErrNone)
- return retValue;
- aRemoteLockCode.Zero();
-
- TInt queryAccepted = KErrCancel;
- queryAccepted = KErrCancel;
- CSecQueryUi * iSecQueryUi;
- iSecQueryUi = CSecQueryUi::NewL();
- // this queries both, and verifies itself
- TBuf<0x100> title;
- title.Zero();
- HBufC* stringHolder = HbTextResolverSymbian::LoadLC(_L("txt_pin_code_dialog_new_rem_code"));
- title.Append(stringHolder->Des());
- CleanupStack::PopAndDestroy(stringHolder);
- title.Append(_L("|"));
- HBufC* stringHolder2 = HbTextResolverSymbian::LoadLC(_L("Verify"));
- title.Append(stringHolder2->Des());
- CleanupStack::PopAndDestroy(stringHolder2);
- queryAccepted = iSecQueryUi->SecQueryDialog(title, aRemoteLockCode, SEC_REMOTELOCK_CODE_MIN_LENGTH, SEC_REMOTELOCK_CODE_MAX_LENGTH, ESecUiAlphaSupported
- | ESecUiCancelSupported | ESecUiEmergencyNotSupported | ESecUiNone);
- RDEBUG("aRemoteLockCode", 0);
- RDEBUGSTR(aRemoteLockCode);
- RDEBUG("queryAccepted", queryAccepted);
- delete iSecQueryUi;
- if (queryAccepted != KErrNone)
- return KErrAbort;
-
- // Check that the new remote lock code doesn't match the security code of the device.
- RMobilePhone::TMobilePhoneSecurityCode secCodeType = RMobilePhone::ESecurityCodePhonePassword;
- RMobilePhone::TMobilePassword securityCode;
- RMobilePhone::TMobilePassword unblockCode; // Required here only as a dummy parameter
-
-
- securityCode = aRemoteLockCode;
- RDEBUG( "EMobilePhoneVerifySecurityCode", EMobilePhoneVerifySecurityCode );
- iWait->SetRequestType(EMobilePhoneVerifySecurityCode);
- RDEBUG( "VerifySecurityCode", 0 );
- iPhone.VerifySecurityCode(iWait->iStatus, secCodeType, securityCode, unblockCode);
- RDEBUG( "WaitForRequestL", 0 );
- TInt res = iWait->WaitForRequestL();
- RDEBUG( "WaitForRequestL res", res );
-#ifdef __WINS__
- if (res == KErrNotSupported || res == KErrTimedOut)
- res = KErrGsm0707IncorrectPassword; // KErrGsm0707IncorrectPassword = incorrect code
-#endif
- RDEBUG( "KErrGsm0707IncorrectPassword", KErrGsm0707IncorrectPassword );
- if (res == KErrNone)
+ if ( simRemoved )
{
- // The message is also valid as a lock-code, this means that
- // remote lock code matches the security code
- // and that is not allowed
- RDEBUG( "return KErrCancel because msg matches code", KErrCancel );
- ShowResultNoteL(R_REMOTELOCK_INVALID_CODE, CAknNoteDialog::EErrorTone);
- return KErrCancel;
- }
-
- RDEBUG( "retValue", retValue );
- return retValue;
- }
-//
-// ----------------------------------------------------------
-// CSecuritySettings::RemoteLockSetLockSettingL()
-// Changes lock setting in domestic OS. Changing the domestic OS lock setting
-// requires user to enter the security code.
-// ----------------------------------------------------------
-// qtdone
-TInt CSecuritySettings::RemoteLockSetLockSettingL(TBool aLockSetting)
- {
- TInt retValue(KErrNone);
- RDEBUG( "aLockSetting", aLockSetting );
-
- RMobilePhone::TMobilePhoneLockSetting lockSetting = RMobilePhone::ELockSetEnabled;
- RMobilePhone::TMobilePhoneLock lockType = RMobilePhone::ELockPhoneDevice;
-
- RMobilePhone::TMobilePhoneLockInfoV1 lockInfo;
- RMobilePhone::TMobilePhoneLockInfoV1Pckg lockInfoPkg(lockInfo);
-
- //get lock info
- iWait->SetRequestType(EMobilePhoneGetLockInfo);
- RDEBUG("GetLockInfo", 0);
- iPhone.GetLockInfo(iWait->iStatus, lockType, lockInfoPkg);
- RDEBUG("WaitForRequestL", 0);
- TInt status = iWait->WaitForRequestL();
- RDEBUG("WaitForRequestL status", status);
-
-#ifdef __WINS__
- if (status == KErrNotSupported || status == KErrTimedOut)
- {
- lockInfo.iSetting = RMobilePhone::ELockSetDisabled;
- status = KErrNone;
- }
-#endif
- User::LeaveIfError(status);
- RDEBUG("current lockInfo.iSetting", lockInfo.iSetting);
-
- // disabled->disabled should not happen
- // enabled->enabled happens because a change of message also forces a code re-validation
- if (aLockSetting)
- {
- lockSetting = RMobilePhone::ELockSetEnabled;
- }
- else
- {
- lockSetting = RMobilePhone::ELockSetDisabled;
- }
- RDEBUG("future lockSetting", lockSetting);
-
- iWait->SetRequestType(EMobilePhoneSetLockSetting);
- RProperty::Set(KPSUidSecurityUIs, KSecurityUIsQueryRequestCancel, ESecurityUIsQueryRequestOk);
- RDEBUG( "SetLockSetting", 0 );
- iPhone.SetLockSetting(iWait->iStatus, lockType, lockSetting); // this will PassPhraseRequiredL
- RDEBUG( "WaitForRequestL", 0 );
- retValue = iWait->WaitForRequestL();
- RDEBUG( "WaitForRequestL retValue", retValue );
-#ifdef __WINS__
- if (retValue == KErrNotSupported || retValue == KErrTimedOut)
- retValue = KErrNone;
-#endif
-
- switch (retValue)
- {
- case KErrNone:
- break;
-
- case KErrGsmSSPasswordAttemptsViolation:
- case KErrLocked:
- case KErrGsm0707IncorrectPassword:
- case KErrAccessDenied:
- // Security code was entered erroneously
- //Error note is shown in CSecurityHandler::PassPhraseRequired()
- break;
-
- case KErrAbort:
- break;
-
- default:
- break;
- }
-
- RDEBUG( "retValue", retValue );
- return retValue;
- }
-
-//
-// ----------------------------------------------------------
-// CSecuritySettings::ChangeSimSecurityL()
-// Changes SIM security
-// ----------------------------------------------------------
-// qtdone
-EXPORT_C TBool CSecuritySettings::ChangeSimSecurityL()
- {
- /*****************************************************
- * Series 60 Customer / ETel
- * Series 60 ETel API
- *****************************************************/
- RDEBUG("0", 0);
- RMobilePhone::TMobilePhoneLockInfoV1 lockInfo;
- RMobilePhone::TMobilePhoneLockInfoV1Pckg lockInfoPkg(lockInfo);
- RMobilePhone::TMobilePhoneLock lockType = RMobilePhone::ELockPhoneToICC;
- RMobilePhone::TMobilePhoneLockSetting lockChangeSetting;
-
- //get lock info
- iWait->SetRequestType(EMobilePhoneGetLockInfo);
- RDEBUG("GetLockInfo", 0);
- iPhone.GetLockInfo(iWait->iStatus, lockType, lockInfoPkg);
- RDEBUG("WaitForRequestL", 0);
- TInt status = iWait->WaitForRequestL();
- RDEBUG("WaitForRequestL status", status);
-
-#ifdef __WINS__
- if (status == KErrNotSupported || status == KErrTimedOut)
- {
- lockInfo.iSetting = RMobilePhone::ELockSetDisabled;
- status = KErrNone;
- }
-#endif
- User::LeaveIfError(status);
- TInt currentItem = 0;
- RDEBUG("lockInfo.iSetting", lockInfo.iSetting);
- if (lockInfo.iSetting == RMobilePhone::ELockSetDisabled)
- {
- currentItem = 1; // off
- }
-
- if (currentItem == 0) // switch the flag
- {
- lockChangeSetting = RMobilePhone::ELockSetDisabled;
- }
- else
- {
- lockChangeSetting = RMobilePhone::ELockSetEnabled;
- }
- RDEBUG("lockChangeSetting", lockChangeSetting);
-
- iWait->SetRequestType(EMobilePhoneSetLockSetting);
- RProperty::Set(KPSUidSecurityUIs, KSecurityUIsQueryRequestCancel, ESecurityUIsQueryRequestOk);
- RDEBUG("SetLockSetting", 0);
- iPhone.SetLockSetting(iWait->iStatus, lockType, lockChangeSetting); // this invokes the handler
- RDEBUG("WaitForRequestL", 0);
- status = iWait->WaitForRequestL();
- RDEBUG("WaitForRequestL status", status);
-#ifdef __WINS__
- if (status == KErrNotSupported || status == KErrTimedOut)
- status = KErrNone;
-#endif
-
- // the error was displayed in the handler
- RDEBUG("status", status);
- switch (status)
- {
- case KErrNone:
- {
- break;
- }
- case KErrGsm0707IncorrectPassword:
- case KErrAccessDenied:
- {
- // code was entered erroneously
- return ChangeSimSecurityL();
- }
- case KErrGsmSSPasswordAttemptsViolation:
- case KErrLocked:
- {
- return ChangeSimSecurityL();
- }
- case KErrAbort:
- {
- return EFalse;
- }
- default:
- {
- ShowErrorNoteL(status);
- return ChangeSimSecurityL();
- }
+ ShowResultNoteL(R_INSERT_SIM, CAknNoteDialog::EErrorTone);
+ return;
}
- return ETrue;
- }
-//
-// ----------------------------------------------------------
-// CSecuritySettings::ChangePinRequestL()
-// Changes PIN1 request
-// ----------------------------------------------------------
-// qtdone
-EXPORT_C TBool CSecuritySettings::ChangePinRequestL()
- {
- RDEBUG("0", 0);
-
- RMobilePhone::TMobilePassword iOldPassword;
- TInt iFlags = 0;
- iOldPassword.Copy(_L(""));
-
- TBuf<0x80> iCaption;
- iCaption.Copy(_L("ChangePinRequestL")); // no need to translate. Not used
- TInt iShowError = 1;
- TInt err = ChangePinRequestParamsL(1/* it's imposible to know if we want to set or clear*/, iOldPassword, iFlags, iCaption, iShowError);
- RDEBUG("err", err);
- if (err == KErrNone)
- return ETrue;
- else
- return EFalse;
- }
-
-//
-// ----------------------------------------------------------
-// CSecuritySettings::ChangeUPinRequestL()
-// Changes UPIN request on/off
-// ----------------------------------------------------------
-// qtdone
-EXPORT_C TBool CSecuritySettings::ChangeUPinRequestL()
- {
- TBool wcdmaSupported(FeatureManager::FeatureSupported(KFeatureIdProtocolWcdma));
- TBool upinSupported(FeatureManager::FeatureSupported(KFeatureIdUpin));
- RDEBUG("wcdmaSupported", wcdmaSupported);
- RDEBUG("upinSupported", upinSupported);
- if (wcdmaSupported || upinSupported)
- {
- TInt simState;
- TInt err(KErrGeneral);
- err = RProperty::Get(KPSUidStartup, KPSSimStatus, simState);
- User::LeaveIfError(err);
- TBool simRemoved(simState == ESimNotPresent);
-
- if (simRemoved)
- {
- ShowResultNoteL(R_INSERT_SIM, CAknNoteDialog::EErrorTone);
- return EFalse;
- }
-
- RMobilePhone::TMobilePhoneLockInfoV1 lockInfo;
- RMobilePhone::TMobilePhoneLockInfoV1Pckg lockInfoPkg(lockInfo);
- RMobilePhone::TMobilePhoneLock lockType = RMobilePhone::ELockUniversalPin;
-
- RMobilePhone::TMobilePhoneLockSetting lockChangeSetting = RMobilePhone::ELockSetDisabled;
-
- //get lock info
- iWait->SetRequestType(EMobilePhoneGetLockInfo);
- RDEBUG("GetLockInfo", 0);
- iPhone.GetLockInfo(iWait->iStatus, lockType, lockInfoPkg);
- RDEBUG("WaitForRequestL", 0);
- TInt status = iWait->WaitForRequestL();
- RDEBUG("WaitForRequestL status", status);
-#ifdef __WINS__
- if (status == KErrNotSupported || status == KErrTimedOut)
- status = KErrNone;
-#endif
- User::LeaveIfError(status);
- TInt currentItem = 0;
-
- RDEBUG("lockInfo.iSetting", lockInfo.iSetting);
- if (lockInfo.iSetting == RMobilePhone::ELockSetDisabled)
- {
- currentItem = 1; // off
- }
-
- if (currentItem == 0) // switch the flag
- {
- lockChangeSetting = RMobilePhone::ELockSetDisabled;
- }
- else
- {
- lockChangeSetting = RMobilePhone::ELockSetEnabled;
- }
- RDEBUG("lockChangeSetting", lockChangeSetting);
- // Raise a flag to indicate that the UPIN
- // request coming from ETEL has originated from SecUi and not from Engine.
- RProperty::Set(KPSUidSecurityUIs, KSecurityUIsSecUIOriginatedQuery, ESecurityUIsSecUIOriginated);
- // Change the lock setting
- iWait->SetRequestType(EMobilePhoneSetLockSetting);
- RProperty::Set(KPSUidSecurityUIs, KSecurityUIsQueryRequestCancel, ESecurityUIsQueryRequestOk);
- RDEBUG("SetLockSetting", 0);
- iPhone.SetLockSetting(iWait->iStatus, lockType, lockChangeSetting); // this calls something in the handler
- RDEBUG("WaitForRequestL", 0);
- status = iWait->WaitForRequestL();
- RDEBUG("WaitForRequestL status", status);
- // Lower the flag
- RProperty::Set(KPSUidSecurityUIs, KSecurityUIsSecUIOriginatedQuery, ESecurityUIsSecUIOriginatedUninitialized);
-#ifdef __WINS__
- if (status == KErrNotSupported || status == KErrTimedOut)
- status = KErrNone;
-#endif
-
- // no need to show errors because they were displayed in the Handler
- switch (status)
- {
- case KErrNone:
- {
- break;
- }
- case KErrGsm0707OperationNotAllowed:
- {
- // not allowed with this sim
- ShowResultNoteL(R_OPERATION_NOT_ALLOWED, CAknNoteDialog::EErrorTone);
- return EFalse;
- }
- case KErrGsm0707IncorrectPassword:
- case KErrAccessDenied:
- {
- // code was entered erroneously
- return ChangeUPinRequestL();
- }
- case KErrGsmSSPasswordAttemptsViolation:
- case KErrLocked:
- {
- return EFalse;
- }
- case KErrAbort:
- {
- return EFalse;
- }
- default:
- {
- ShowErrorNoteL(status);
- return ChangeUPinRequestL();
- }
- }
-
- return ETrue;
- }
- else
- return EFalse;
-
- }
-
-//
-// ----------------------------------------------------------
-// CSecuritySettings::SwitchPinCodesL()
-// Changes the pin code currently in use (PIN/UPIN)
-// ----------------------------------------------------------
-// qtdone
-EXPORT_C TBool CSecuritySettings::SwitchPinCodesL()
- {
- TBool wcdmaSupported(FeatureManager::FeatureSupported(KFeatureIdProtocolWcdma));
- TBool upinSupported(FeatureManager::FeatureSupported(KFeatureIdUpin));
- RDEBUG("wcdmaSupported", wcdmaSupported);
- RDEBUG("upinSupported", upinSupported);
- if (wcdmaSupported || upinSupported)
- {
- // If we are in simless offline mode the PIN codes can't obviously be switched
- TInt simState;
- TInt err(KErrGeneral);
- err = RProperty::Get(KPSUidStartup, KPSSimStatus, simState);
- User::LeaveIfError(err);
- TBool simRemoved(simState == ESimNotPresent);
-
- if (simRemoved)
- {
- ShowResultNoteL(R_INSERT_SIM, CAknNoteDialog::EErrorTone);
- return EFalse;
- }
-
- RMobilePhone::TMobilePhoneLock lockType = RMobilePhone::ELockUniversalPin;
- RMobilePhone::TMobilePhoneLockSetting lockChangeSetting = RMobilePhone::ELockReplaced;
- RMobilePhone::TMobilePhoneSecurityCode activeCode;
-
- iCustomPhone.GetActivePin(activeCode);
-
- RMobilePhone::TMobilePhoneLockInfoV1 lockInfo;
- RMobilePhone::TMobilePhoneLockInfoV1Pckg lockInfoPkg(lockInfo);
- RDEBUG("EMobilePhoneGetLockInfo", EMobilePhoneGetLockInfo);
- iWait->SetRequestType(EMobilePhoneGetLockInfo);
-
- if (activeCode == RMobilePhone::ESecurityUniversalPin)
- {
- lockType = RMobilePhone::ELockUniversalPin;
- iPhone.GetLockInfo(iWait->iStatus, lockType, lockInfoPkg);
- RDEBUG("WaitForRequestL", 0);
- TInt res = iWait->WaitForRequestL();
- RDEBUG("WaitForRequestL res", res);
-#ifdef __WINS__
- if (res == KErrNotSupported || res == KErrTimedOut)
- res = KErrNone;
-#endif
- User::LeaveIfError(res);
- }
- else
- {
- lockType = RMobilePhone::ELockICC;
- iPhone.GetLockInfo(iWait->iStatus, lockType, lockInfoPkg);
- RDEBUG("WaitForRequestL", 0);
- TInt res = iWait->WaitForRequestL();
- RDEBUG("WaitForRequestL res", res);
-#ifdef __WINS__
- if (res == KErrNotSupported || res == KErrTimedOut)
- res = KErrNone;
-#endif
- User::LeaveIfError(res);
- }
-
- // code request must be ON to change active code.
- RDEBUG("lockInfo.iSetting", lockInfo.iSetting);
- if (lockInfo.iSetting == RMobilePhone::ELockSetDisabled)
- {
-
- if (activeCode != RMobilePhone::ESecurityUniversalPin)
- {
- ShowResultNoteL(R_UPIN_NOT_ALLOWED, CAknNoteDialog::EErrorTone);
- }
- else
- {
- ShowResultNoteL(R_PIN_NOT_ALLOWED, CAknNoteDialog::EErrorTone);
- }
- return EFalse;
- }
-
- iCustomPhone.GetActivePin(activeCode);
- TInt currentItem = 0;
-
- RDEBUG("activeCode", activeCode);
- if (activeCode == RMobilePhone::ESecurityUniversalPin)
- {
- currentItem = 1; // UPIN
- }
- if (currentItem == 0) // switch the flag
- {
- lockType = RMobilePhone::ELockUniversalPin;
- }
- else
- {
- lockType = RMobilePhone::ELockICC;
- }
- RDEBUG("lockType", lockType);
-
- // Raise a flag to indicate that the code
- // request coming from ETEL has originated from SecUi and not from Engine.
- RProperty::Set(KPSUidSecurityUIs, KSecurityUIsSecUIOriginatedQuery, ESecurityUIsSecUIOriginated);
- // Change the lock setting
- iWait->SetRequestType(EMobilePhoneSetLockSetting);
- RProperty::Set(KPSUidSecurityUIs, KSecurityUIsQueryRequestCancel, ESecurityUIsQueryRequestOk);
- RDEBUG("SetLockSetting", 0);
- iPhone.SetLockSetting(iWait->iStatus, lockType, lockChangeSetting); // request from handler
- RDEBUG("WaitForRequestL", 0);
- TInt status = iWait->WaitForRequestL();
- RDEBUG("WaitForRequestL status", status);
- // Lower the flag
- RProperty::Set(KPSUidSecurityUIs, KSecurityUIsSecUIOriginatedQuery, ESecurityUIsSecUIOriginatedUninitialized);
-#ifdef __WINS__
- if (status == KErrNotSupported || status == KErrTimedOut)
- status = KErrNone;
-#endif
-
- // errors are shown in the handler
- switch (status)
- {
- case KErrNone:
- {
- break;
- }
- case KErrGsm0707OperationNotAllowed:
- {
- // not allowed with this sim
- ShowResultNoteL(R_OPERATION_NOT_ALLOWED, CAknNoteDialog::EErrorTone);
- return EFalse;
- }
- case KErrGsm0707IncorrectPassword:
- case KErrAccessDenied:
- {
- // code was entered erroneously
- return SwitchPinCodesL();
- }
- case KErrGsmSSPasswordAttemptsViolation:
- case KErrLocked:
- {
- return EFalse;
- }
- case KErrAbort:
- {
- return EFalse;
- }
- default:
- {
- ShowErrorNoteL(status);
- return SwitchPinCodesL();
- }
- }
-
- return ETrue;
- }
- else
- return EFalse;
- }
-
-//
-// ----------------------------------------------------------
-// CSecuritySettings::IsLockEnabledL()
-// Return is lock enabled/disabled
-// ----------------------------------------------------------
-// qtdone
-EXPORT_C TBool CSecuritySettings::IsLockEnabledL(RMobilePhone::TMobilePhoneLock aLockType)
- {
- TBool ret = EFalse;
- RMobilePhone::TMobilePhoneLockInfoV1 lockInfo;
- //get lock info
- RMobilePhone::TMobilePhoneLockInfoV1Pckg lockInfoPkg(lockInfo);
- iWait->SetRequestType(EMobilePhoneGetLockInfo);
- RDEBUG("GetLockInfo", 0);
- iPhone.GetLockInfo(iWait->iStatus, aLockType, lockInfoPkg);
- RDEBUG("WaitForRequestL", 0);
- TInt res = iWait->WaitForRequestL();
- RDEBUG("WaitForRequestL res", res);
-
- if (res != KErrNone)
- ret = ETrue;
- //lock is enabled return true
- else if (lockInfo.iSetting == RMobilePhone::ELockSetEnabled)
- {
- ret = ETrue;
- }
- RDEBUG("ret", ret);
- return ret;
- }
-//
-// ----------------------------------------------------------
-// CSecuritySettings::AskSecCodeL()
-// For asking security code e.g in settings
-// ----------------------------------------------------------
-// qtdone
-EXPORT_C TBool CSecuritySettings::AskSecCodeL()
- {
- return iSecurityHandler->AskSecCodeL();
- }
-//
-// ----------------------------------------------------------
-// CSecuritySettings::AskPin2L()
-// Asks PIN2
-// ----------------------------------------------------------
-// qtdone
-EXPORT_C TBool CSecuritySettings::AskPin2L()
- {
- /*****************************************************
- * Series 60 Customer / ETel
- * Series 60 ETel API
- *****************************************************/
- RDEBUG("0", 0);
- TInt retPhone = 0;
- // check if pin2 is blocked...
- RMmCustomAPI::TSecurityCodeType secCodeType = RMmCustomAPI::ESecurityCodePin2;
- RMobilePhone::TMobilePhoneSecurityCode etelsecCodeType(RMobilePhone::ESecurityCodePin2);
+ RMmCustomAPI::TSecurityCodeType secCodeType;
+ RMobilePhone::TMobilePhoneSecurityCode EtelsecCodeType;
+ secCodeType = RMmCustomAPI::ESecurityCodePin2;
+ RMobilePhone::TMobilePassword oldPassword;
+ RMobilePhone::TMobilePassword newPassword;
+ RMobilePhone::TMobilePassword verifcationPassword;
+ RMobilePhone::TMobilePhonePasswordChangeV1 passwords;
RMobilePhone::TMobilePhoneSecurityCodeInfoV5 codeInfo;
RMobilePhone::TMobilePhoneSecurityCodeInfoV5Pckg codeInfoPkg(codeInfo);
- RMobilePhone::TMobilePassword password;
+
+ // check if pin2 is blocked...
TBool isBlocked = EFalse;
- TInt queryAccepted = KErrCancel;
- //Check whether PIN2 is blocked
- retPhone = iCustomPhone.IsBlocked(secCodeType, isBlocked);
-
- RDEBUG("retPhone", retPhone);
- RDEBUG("isBlocked", isBlocked);
-#ifdef __WINS__
- if (retPhone == KErrNotSupported || retPhone == KErrTimedOut)
- retPhone = KErrNone;
-#endif
- if (isBlocked)
- return EFalse;
-
- if (retPhone != KErrNone)
- {
- switch (retPhone)
- {
- // PIN2 Blocked.
- case KErrGsm0707SIMPuk2Required:
- break;
- case KErrGsmSSPasswordAttemptsViolation:
- case KErrLocked:
- // Pin2 features blocked permanently!
- ShowResultNoteL(R_PIN2_REJECTED, CAknNoteDialog::EConfirmationTone);
- break;
- case KErrGsm0707SimNotInserted:
- // not allowed with this sim
- ShowResultNoteL(R_OPERATION_NOT_ALLOWED, CAknNoteDialog::EErrorTone);
- break;
- default:
- ShowErrorNoteL(retPhone);
- break;
- }
- return EFalse;
- }
- iWait->SetRequestType(EMobilePhoneGetSecurityCodeInfo);
- RDEBUG("GetSecurityCodeInfo", 0);
- iPhone.GetSecurityCodeInfo(iWait->iStatus, etelsecCodeType, codeInfoPkg);
- RDEBUG("WaitForRequestL", 0);
- retPhone = iWait->WaitForRequestL();
- RDEBUG("WaitForRequestL retPhone", retPhone);
-#ifdef __WINS__
- if (retPhone == KErrNotSupported || retPhone == KErrTimedOut)
- {
- retPhone = KErrNone;
- codeInfo.iRemainingEntryAttempts = 3;
- }
-#endif
- User::LeaveIfError(retPhone);
-
- RDEBUG("codeInfo.iRemainingEntryAttempts",
- codeInfo.iRemainingEntryAttempts);
- if (codeInfo.iRemainingEntryAttempts == KMaxNumberOfPINAttempts)
- codeInfo.iRemainingEntryAttempts = -1;
- // ask pin2 code
- /* request PIN using QT */
- queryAccepted = KErrCancel;
- CSecQueryUi *iSecQueryUi;
- iSecQueryUi = CSecQueryUi::NewL();
- TBuf<0x100> title;
- title.Zero();
- HBufC* stringHolder = HbTextResolverSymbian::LoadLC(_L("txt_pin_code_dialog_pin2_code"));
- title.Append(stringHolder->Des());
- CleanupStack::PopAndDestroy(stringHolder);
- title.Append(_L("$"));
- title.AppendNum(codeInfo.iRemainingEntryAttempts);
- queryAccepted = iSecQueryUi->SecQueryDialog(title, password, SEC_C_PIN_CODE_MIN_LENGTH, SEC_C_PIN_CODE_MAX_LENGTH, ESecUiAlphaNotSupported | ESecUiCancelSupported
- | ESecUiEmergencyNotSupported | secCodeType);
- RDEBUG("password", 0);
- RDEBUGSTR(password);
- RDEBUG("queryAccepted", queryAccepted);
- delete iSecQueryUi;
- if (queryAccepted != KErrNone)
- return EFalse;
-
- // verify code
- RMobilePhone::TMobilePassword required_fourth;
- iWait->SetRequestType(EMobilePhoneVerifySecurityCode);
- RDEBUG("VerifySecurityCode", 0);
- iPhone.VerifySecurityCode(iWait->iStatus, etelsecCodeType, password, required_fourth);
- RDEBUG("WaitForRequestL", 0);
- retPhone = iWait->WaitForRequestL();
- RDEBUG("WaitForRequestL retPhone", retPhone);
-#ifdef __WINS__
- if (retPhone == KErrNotSupported)
- retPhone = KErrNone;
-#endif
-
- switch (retPhone)
- {
- case KErrNone:
- break;
- case KErrGsm0707IncorrectPassword:
- case KErrAccessDenied:
- // code was entered erroneously
- ShowResultNoteL(R_CODE_ERROR, CAknNoteDialog::EErrorTone);
- return AskPin2L();
- case KErrGsm0707OperationNotAllowed:
- // not allowed with this sim
- ShowResultNoteL(R_OPERATION_NOT_ALLOWED, CAknNoteDialog::EErrorTone);
- return EFalse;
- case KErrGsmSSPasswordAttemptsViolation:
- case KErrLocked:
- // code was blocked
- ShowResultNoteL(R_CODE_ERROR, CAknNoteDialog::EErrorTone);
- return EFalse;
- default:
- ShowErrorNoteL(retPhone);
- return AskPin2L();
- }
-
- return ETrue;
- }
-//
-// ----------------------------------------------------------
-// CSecuritySettings::SetFdnModeL()
-// Activates or deactivates Fixed Dialling Numbers (FDN) mode.
-// ----------------------------------------------------------
-// not qtdone
-EXPORT_C void CSecuritySettings::SetFdnModeL()
- {
- /*****************************************************
- * Series 60 Customer / ETel
- * Series 60 ETel API
- *****************************************************/
- RDEBUG("0", 0);
- RMmCustomAPI::TSecurityCodeType secCodeType = RMmCustomAPI::ESecurityCodePin2;
-
- TBool isBlocked = EFalse;
- TInt ret = iCustomPhone.IsBlocked(secCodeType, isBlocked);
- RDEBUG("isBlocked", isBlocked);
- RDEBUG("ret", ret);
- if (isBlocked)
+ TInt ret = iCustomPhone.IsBlocked(secCodeType,isBlocked);
+
+ if(isBlocked)
return;
-
+
if (ret != KErrNone)
- {
+ {
switch (ret)
{
// PIN2 Blocked.
@@ -1126,39 +603,1785 @@
}
return;
}
+
+ CCodeQueryDialog* verdlg = new (ELeave) CCodeQueryDialog (verifcationPassword,SEC_C_PIN2_CODE_MIN_LENGTH,SEC_C_PIN2_CODE_MAX_LENGTH,ESecUiNone);
+ CleanupStack::PushL(verdlg);
+ CCodeQueryDialog* newdlg = new (ELeave) CCodeQueryDialog(newPassword,SEC_C_PIN2_CODE_MIN_LENGTH,SEC_C_PIN2_CODE_MAX_LENGTH,ESecUiNone);
+ CleanupStack::PushL(newdlg);
+
+ CCodeQueryDialog* dlg = new (ELeave) CCodeQueryDialog (oldPassword,SEC_C_PIN2_CODE_MIN_LENGTH,SEC_C_PIN2_CODE_MAX_LENGTH,ESecUiNone);
+ CleanupStack::PushL(dlg);
+
+
+ // Security code must be changed to Etel API format
+ // Custom API Pin1 and Pin2 have the same enum values as the Etel ones
+ EtelsecCodeType = (RMobilePhone::TMobilePhoneSecurityCode)secCodeType;
+ #ifndef __WINS__
+ iWait->SetRequestType(EMobilePhoneGetSecurityCodeInfo);
+ iPhone.GetSecurityCodeInfo(iWait->iStatus, EtelsecCodeType, codeInfoPkg);
+ ret = iWait->WaitForRequestL();
+ User::LeaveIfError(ret);
+ #else
+ codeInfo.iRemainingEntryAttempts = 1;
+ #endif //__WINS__
+
+ if(codeInfo.iRemainingEntryAttempts == KMaxNumberOfPINAttempts)
+ ret = dlg->ExecuteLD(R_PIN2_QUERY);
+ else if(codeInfo.iRemainingEntryAttempts > KLastRemainingInputAttempt)
+ {
+ HBufC* queryPrompt = StringLoader::LoadLC(R_SECUI_REMAINING_PIN2_ATTEMPTS, codeInfo.iRemainingEntryAttempts );
+ ret = dlg->ExecuteLD(R_PIN2_QUERY, *queryPrompt);
+ CleanupStack::PopAndDestroy(queryPrompt);
+ }
+ else
+ {
+ HBufC* queryPrompt = StringLoader::LoadLC(R_SECUI_FINAL_PIN2_ATTEMPT);
+ ret = dlg->ExecuteLD(R_PIN2_QUERY, *queryPrompt);
+ CleanupStack::PopAndDestroy(queryPrompt);
+ }
+
+ CleanupStack::Pop(); // dlg
+ if(!ret)
+ {
+ CleanupStack::PopAndDestroy(2,verdlg);
+ return;
+ }
+
+ // new pin code query
+ CleanupStack::Pop(); // newdlg
+ if(!(newdlg->ExecuteLD(R_NEW_PIN2_CODE_QUERY)))
+ {
+ CleanupStack::PopAndDestroy(verdlg);
+ return;
+ }
+
+ // verification code query
+ CleanupStack::Pop(); // verdlg
+ if(!(verdlg->ExecuteLD(R_VERIFY_NEW_PIN2_CODE_QUERY)))
+ {
+ return;
+ }
+
+ while (newPassword.CompareF(verifcationPassword) != 0)
+ {
+ // codes do not match -> note -> ask new pin and verification codes again
+ ShowResultNoteL(R_CODES_DONT_MATCH, CAknNoteDialog::EErrorTone);
+
+ newPassword = _L("");
+ verifcationPassword = _L("");
+
+ // new pin code query
+ CCodeQueryDialog* dlg = new (ELeave) CCodeQueryDialog (newPassword,SEC_C_PIN2_CODE_MIN_LENGTH,SEC_C_PIN2_CODE_MAX_LENGTH,ESecUiNone);
+ if(!(dlg->ExecuteLD(R_NEW_PIN2_CODE_QUERY)))
+ return;
+
+ // verification code query
+ CCodeQueryDialog* dlg2 = new (ELeave) CCodeQueryDialog (verifcationPassword,SEC_C_PIN2_CODE_MIN_LENGTH,SEC_C_PIN2_CODE_MAX_LENGTH,ESecUiNone);
+ if(!(dlg2->ExecuteLD(R_VERIFY_NEW_PIN2_CODE_QUERY)))
+ return;
+ }
+
+
+ passwords.iOldPassword = oldPassword;
+ passwords.iNewPassword = newPassword;
+ iWait->SetRequestType(EMobilePhoneChangeSecurityCode);
+ iPhone.ChangeSecurityCode(iWait->iStatus,EtelsecCodeType,passwords);
+ TInt res = iWait->WaitForRequestL();
+ #if defined(_DEBUG)
+ RDebug::Print( _L("(SECUI)CSecuritySettings::ChangePin2L(): RETURN CODE: %d"), res);
+ #endif
+ switch(res)
+ {
+ case KErrNone:
+ {
+ // code changed
+ ShowResultNoteL(R_PIN2_CODE_CHANGED_NOTE, CAknNoteDialog::EConfirmationTone);
+ break;
+ }
+ case KErrGsm0707IncorrectPassword:
+ case KErrAccessDenied:
+ {
+ ShowResultNoteL(R_CODE_ERROR, CAknNoteDialog::EErrorTone);
+ ChangePin2L();
+ break;
+ }
+ case KErrGsmSSPasswordAttemptsViolation:
+ case KErrLocked:
+ {
+ // Pin2 blocked!
+ ShowResultNoteL(R_CODE_ERROR, CAknNoteDialog::EErrorTone);
+ CSecurityHandler* handler = new(ELeave) CSecurityHandler(iPhone);
+ CleanupStack::PushL(handler);
+ handler->HandleEventL(RMobilePhone::EPuk2Required);
+ CleanupStack::PopAndDestroy(handler); // handler
+ return;
+ }
+ case KErrGsm0707OperationNotAllowed:
+ {
+ // not allowed with this sim
+ ShowResultNoteL(R_OPERATION_NOT_ALLOWED, CAknNoteDialog::EErrorTone);
+ return;
+ }
+ case KErrAbort:
+ {
+ break;
+ }
+ default:
+ {
+ ShowErrorNoteL(res);
+ ChangePin2L();
+ break;
+ }
+ }
+ }
+//
+// ----------------------------------------------------------
+// CSecuritySettings::ChangeSecCodeL()
+// Changes security code
+// ----------------------------------------------------------
+//
+EXPORT_C void CSecuritySettings::ChangeSecCodeL()
+ {
+ /*****************************************************
+ * Series 60 Customer / ETel
+ * Series 60 ETel API
+ *****************************************************/
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CSecuritySettings::ChangeSecCodeL()"));
+ #endif
+ TInt res;
+ RMobilePhone::TMobilePassword newPassword;
+if(FeatureManager::FeatureSupported(KFeatureIdSapTerminalControlFw ) &&
+ (FeatureManager::FeatureSupported(KFeatureIdSapDeviceLockEnhancements )))
+{
+
+ // Connect to the SCP server, and request the code change
+ RSCPClient scpClient;
+ User::LeaveIfError( scpClient.Connect() );
+ CleanupClosePushL( scpClient );
+ res = scpClient.ChangeCodeRequest();
+ CleanupStack::PopAndDestroy(); // scpClient
+
+}
+else
+{
+
+ RMobilePhone::TMobilePhoneSecurityCode secCodeType;
+ secCodeType = RMobilePhone::ESecurityCodePhonePassword;
+ RMobilePhone::TMobilePassword oldPassword;
+ RMobilePhone::TMobilePassword verifcationPassword;
+ RMobilePhone::TMobilePassword required_fourth;
+ RMobilePhone::TMobilePhonePasswordChangeV1 passwords;
+
+ CCodeQueryDialog* verdlg = new (ELeave) CCodeQueryDialog (verifcationPassword,SEC_C_SECURITY_CODE_MIN_LENGTH,SEC_C_SECURITY_CODE_CHANGE_MAX_LENGTH,ESecUiNone);
+ CleanupStack::PushL(verdlg);
+
+ CCodeQueryDialog* newdlg = new (ELeave) CCodeQueryDialog(newPassword,SEC_C_SECURITY_CODE_MIN_LENGTH,SEC_C_SECURITY_CODE_CHANGE_MAX_LENGTH,ESecUiNone);
+ CleanupStack::PushL(newdlg);
+
+ CCodeQueryDialog* dlg = new (ELeave) CCodeQueryDialog (oldPassword,SEC_C_SECURITY_CODE_MIN_LENGTH,SEC_C_SECURITY_CODE_MAX_LENGTH,ESecUiNone);
+ CleanupStack::PushL(dlg);
+
+ // ask security code
+ CleanupStack::Pop(); // dlg
+ if (!(dlg->ExecuteLD(R_SECURITY_QUERY)))
+ {
+ CleanupStack::PopAndDestroy(2,verdlg);
+ return;
+ }
+ // new security code query
+ CleanupStack::Pop(); // newdlg
+ if(!(newdlg->ExecuteLD(R_NEW_SECURITY_CODE_QUERY)))
+ {
+ CleanupStack::PopAndDestroy(verdlg);
+ return;
+ }
+
+ // verification code query
+ CleanupStack::Pop(); // verdlg
+ if(!(verdlg->ExecuteLD(R_VERIFY_NEW_SECURITY_CODE_QUERY)))
+ {
+ return;
+ }
+
+ while (newPassword.CompareF(verifcationPassword) != 0)
+ {
+ // codes do not match -> note -> ask new pin and verification codes again
+ ShowResultNoteL(R_CODES_DONT_MATCH, CAknNoteDialog::EErrorTone);
+
+ newPassword = _L("");
+ verifcationPassword = _L("");
+
+ // new pin code query
+ CCodeQueryDialog* dlg = new (ELeave) CCodeQueryDialog (newPassword,SEC_C_SECURITY_CODE_MIN_LENGTH,SEC_C_SECURITY_CODE_CHANGE_MAX_LENGTH,ESecUiNone);
+ if(!(dlg->ExecuteLD(R_NEW_SECURITY_CODE_QUERY)))
+ return;
+
+ // verification code query
+ CCodeQueryDialog* dlg2 = new (ELeave) CCodeQueryDialog (verifcationPassword,SEC_C_SECURITY_CODE_MIN_LENGTH,SEC_C_SECURITY_CODE_CHANGE_MAX_LENGTH,ESecUiNone);
+ if(!(dlg2->ExecuteLD(R_VERIFY_NEW_SECURITY_CODE_QUERY)))
+ return;
+ }
+ iWait->SetRequestType(EMobilePhoneVerifySecurityCode);
+ // check code
+ iPhone.VerifySecurityCode(iWait->iStatus,secCodeType, oldPassword, required_fourth);
+ res = iWait->WaitForRequestL();
+ #if defined(_DEBUG)
+ RDebug::Print( _L("(SECUI)CSecuritySettings::ChangeSecCode(): CODE VERIFY RESP: %d"), res);
+ #endif
+ // change code
+ if (res == KErrNone)
+ {
+ passwords.iOldPassword = oldPassword;
+ passwords.iNewPassword = newPassword;
+ iWait->SetRequestType(EMobilePhoneChangeSecurityCode);
+ iPhone.ChangeSecurityCode(iWait->iStatus,secCodeType,passwords);
+ res = iWait->WaitForRequestL();
+ }
+
+}
+
+ #if defined(_DEBUG)
+ RDebug::Print( _L("(SECUI)CSecuritySettings::ChangeSecCode(): RETURN CODE: %d"), res);
+ #endif
+ switch(res)
+ {
+ case KErrNone:
+ {
+ // code changed
+ ShowResultNoteL(R_SECURITY_CODE_CHANGED_NOTE, CAknNoteDialog::EConfirmationTone);
+ if(FeatureManager::FeatureSupported(KFeatureIdSapTerminalControlFw ) &&
+ !(FeatureManager::FeatureSupported(KFeatureIdSapDeviceLockEnhancements )))
+ {
+ // Send the changed code to the SCP server. Not used with device lock enhancements.
+
+ RSCPClient scpClient;
+ TSCPSecCode newCode;
+ newCode.Copy( newPassword );
+ if ( scpClient.Connect() == KErrNone )
+ {
+ scpClient.StoreCode( newCode );
+ scpClient.Close();
+ }
+ }
+
+ break;
+ }
+ case KErrGsmSSPasswordAttemptsViolation:
+ case KErrLocked:
+ {
+ ShowResultNoteL(R_SEC_BLOCKED, CAknNoteDialog::EErrorTone);
+ ChangeSecCodeL();
+ break;
+ }
+ case KErrGsm0707IncorrectPassword:
+ case KErrAccessDenied:
+ {
+ // code was entered erroneously
+ ShowResultNoteL(R_CODE_ERROR, CAknNoteDialog::EErrorTone);
+ ChangeSecCodeL();
+ break;
+ }
+ case KErrAbort:
+ {
+ break;
+ }
+ default:
+ {
+ ShowErrorNoteL(res);
+ ChangeSecCodeL();
+ break;
+ }
+ }
+ }
+//
+// ----------------------------------------------------------
+// CSecuritySettings::ChangeAutoLockPeriodL()
+// Changes autolock period
+// ----------------------------------------------------------
+//
+EXPORT_C TInt CSecuritySettings::ChangeAutoLockPeriodL(TInt aPeriod)
+ {
+ /*****************************************************
+ * Series 60 Customer / ETel
+ * Series 60 ETel API
+ *****************************************************/
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CSecuritySettings::ChangeAutoLockPeriodLXXXX()"));
+ #endif
+ RMobilePhone::TMobilePhoneLockSetting lockChange(RMobilePhone::ELockSetDisabled);
+ RMobilePhone::TMobilePhoneLock lockType = RMobilePhone::ELockPhoneDevice;
+ TInt currentItem = 0;
+ TInt oldPeriod = aPeriod;
+
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CSecuritySettings::ChangeAutoLockPeriodL() ReadDesC16ArrayResourceL"));
+ #endif
+
+
+ CCoeEnv* coeEnv = CCoeEnv::Static();
+ CDesCArrayFlat* items = coeEnv->ReadDesC16ArrayResourceL(R_AUTOLOCK_LBX);
+ CleanupStack::PushL(items);
+
+ if (aPeriod == 0)
+ {
+ currentItem = 0; // autolock off
+ }
+ else
+ {
+ currentItem = 1; // user defined
+ }
+
+
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CSecuritySettings::ChangeAutoLockPeriodL() New autolocksettingpage"));
+ #endif
+
+ CAutoLockSettingPage* dlg = new (ELeave)CAutoLockSettingPage(R_AUTOLOCK_SETTING_PAGE, currentItem, items, aPeriod);
+ CleanupStack::PushL(dlg);
+ dlg->ConstructL();
+ TInt maxPeriod;
+ if(FeatureManager::FeatureSupported(KFeatureIdSapTerminalControlFw ))
+ {
+ // Retrieve the current autolock period max. value from the SCP server,
+ // and check that the value the user
+ // selected is ok from the Corporate Policy point of view.
+ RSCPClient scpClient;
+ TInt ret = scpClient.Connect();
+ if ( ret == KErrNone )
+ {
+ CleanupClosePushL( scpClient );
+ TBuf<KSCPMaxIntLength> maxPeriodBuf;
+ if ( scpClient.GetParamValue( ESCPMaxAutolockPeriod, maxPeriodBuf ) == KErrNone )
+ {
+ TLex lex( maxPeriodBuf );
+ if ( ( lex.Val( maxPeriod ) == KErrNone ) && ( maxPeriod > 0 ) )
+ {
+ dlg->SetPeriodMaximumValue(maxPeriod);
+ }
+ else
+ {
+ maxPeriod = 0;
+ dlg->SetPeriodMaximumValue(maxPeriod);
+ }
+
+ }
+ else
+ {
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CSecuritySettings::ChangeAutoLockPeriodL():\
+ ERROR: Failed to retrieve max period"));
+ #endif
+ }
+ }
+ else
+ {
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CSecuritySettings::ChangeAutoLockPeriodL():\
+ ERROR: Failed to connect to SCP."));
+ #endif
+ }
+ CleanupStack::PopAndDestroy(); // scpClient
+}
+ CleanupStack::Pop(); //dlg
+ if (!dlg->ExecuteLD(CAknSettingPage::EUpdateWhenChanged))
+ {
+ CleanupStack::PopAndDestroy(items);
+ return oldPeriod;
+ }
+
+ CleanupStack::PopAndDestroy(); // items
+
+ if ( FeatureManager::FeatureSupported( KFeatureIdSapTerminalControlFw ) )
+ {
+ // define a flag indicating whether disable autolock is allowed.
+ TBool allowDisableAL = ETrue;
+
+ if ( ( aPeriod == 0 ) && ( maxPeriod > 0 ) )
+ {
+ #if defined( _DEBUG )
+ RDebug::Print(
+ _L("(SECUI)CSecuritySettings::ChangeAutoLockPeriodL() \
+ The period: %d is not allowed by TARM; max: %d" ),
+ aPeriod, maxPeriod );
+ #endif
+ allowDisableAL = EFalse;
+ HBufC* prompt = NULL;
+ prompt = StringLoader::LoadLC(
+ R_SECUI_TEXT_AUTOLOCK_MUST_BE_ACTIVE );
+ CAknNoteDialog* noteDlg = new ( ELeave ) CAknNoteDialog(
+ REINTERPRET_CAST( CEikDialog**,¬eDlg ) );
+ noteDlg->PrepareLC( R_CODE_ERROR );
+ noteDlg->SetTextL( *prompt );
+ noteDlg->SetTimeout( CAknNoteDialog::ELongTimeout );
+ noteDlg->SetTone( CAknNoteDialog::EErrorTone );
+ noteDlg->RunLD();
+ CleanupStack::PopAndDestroy( prompt );
+ }
+
+ if ( !allowDisableAL )
+ {
+ return ChangeAutoLockPeriodL( oldPeriod );
+ }
+ }
+
+ if (aPeriod == 0)
+ {
+
+ #ifdef RD_REMOTELOCK
+
+ // If remote lock is enabled, don't disable the domestic OS device lock
+ // since that would render the RemoteLock useless.
+ // Instead just re-set the DOS lock to enabled which as a side effect
+ // requests the security code from the user.
+
+ TBool remoteLockStatus( EFalse );
+ CRemoteLockSettings* remoteLockSettings = CRemoteLockSettings::NewL();
+
+ if ( remoteLockSettings->GetEnabled( remoteLockStatus ) )
+ {
+ if ( remoteLockStatus )
+ {
+ // Remote lock is enabled
+ #ifdef _DEBUG
+ RDebug::Print( _L( "(SecUi)CSecuritySettings::ChangeAutoLockPeriodL() - RemoteLock is enabled: lockChange = RMobilePhone::ELockSetEnabled" ) );
+ #endif // _DEBUG
+
+ lockChange = RMobilePhone::ELockSetEnabled;
+ }
+ else
+ {
+ // Remote lock is disabled
+ #ifdef _DEBUG
+ RDebug::Print( _L( "(SecUi)CSecuritySettings::ChangeAutoLockPeriodL() - RemoteLock is disabled: lockChange = RMobilePhone::ELockSetDisabled" ) );
+ #endif // _DEBUG
+
+ lockChange = RMobilePhone::ELockSetDisabled;
+ }
+ }
+ else
+ {
+ // Failed to get remote lock status
+ #ifdef _DEBUG
+ RDebug::Print( _L( "(SecUi)CSecuritySettings::ChangeAutoLockPeriodL() - Failed to get RemoteLock status" ) );
+ #endif // _DEBUG
+ }
+
+ delete remoteLockSettings;
+ remoteLockSettings = NULL;
+
+ #else // not defined RD_REMOTELOCK
+
+ lockChange = RMobilePhone::ELockSetDisabled;
+
+ #endif // RD_REMOTELOCK
+ }
+ else
+ {
+ lockChange = RMobilePhone::ELockSetEnabled;
+ }
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CSecuritySettings::ChangeAutoLockPeriodL() SetLockSetting"));
+ #endif
+ iWait->SetRequestType(EMobilePhoneSetLockSetting);
+ RProperty::Set(KPSUidSecurityUIs, KSecurityUIsQueryRequestCancel, ESecurityUIsQueryRequestOk);
+ iPhone.SetLockSetting(iWait->iStatus,lockType,lockChange);
+ TInt status = iWait->WaitForRequestL();
+ #if defined(_DEBUG)
+ RDebug::Print( _L("(SECUI)CSecuritySettings::ChangeAutoLockPeriodL(): RETURN CODE: %d"), status);
+ #endif
+ switch(status)
+ {
+ case KErrNone:
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CSecuritySettings::ChangeAutoLockPeriodL() KErrNone"));
+ #endif
+ break;
+ case KErrGsmSSPasswordAttemptsViolation:
+ case KErrLocked:
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CSecuritySettings::ChangeAutoLockPeriodL() PasswordAttemptsViolation"));
+ #endif
+ return ChangeAutoLockPeriodL(oldPeriod);
+ case KErrGsm0707IncorrectPassword:
+ case KErrAccessDenied:
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CSecuritySettings::ChangeAutoLockPeriodL() IncorrectPassword"));
+ #endif
+ // code was entered erroneously
+ return ChangeAutoLockPeriodL(oldPeriod);
+ case KErrAbort:
+ // User pressed "cancel" in the code query dialog.
+ return oldPeriod;
+ default:
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CSecuritySettings::ChangeAutoLockPeriodL() default"));
+ #endif
+ return ChangeAutoLockPeriodL(oldPeriod);
+ }
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CSecuritySettings::ChangeAutoLockPeriodL() END"));
+ #endif
+ return aPeriod;
+ }
+
+
+
+//
+// ----------------------------------------------------------
+// CSecuritySettings::ChangeRemoteLockStatusL()
+// Changes remote lock status (on/off)
+// ----------------------------------------------------------
+//
+EXPORT_C TInt CSecuritySettings::ChangeRemoteLockStatusL( TBool& aRemoteLockStatus, TDes& aRemoteLockCode, TInt aAutoLockPeriod )
+ {
+ #ifdef RD_REMOTELOCK
+ TInt retValue( KErrNone );
+
+ #ifdef _DEBUG
+ RDebug::Print(_L("(SecUi)CSecuritySettings::ChangeRemoteLockStatusL() - Enter, aRemoteLockStatus == %d, aAutoLockPeriod == %d" ), aRemoteLockStatus, aAutoLockPeriod );
+ #endif // _DEBUG
+
+ CCoeEnv* coeEnv = CCoeEnv::Static();
+ CDesCArrayFlat* items = coeEnv->ReadDesC16ArrayResourceL( R_REMOTELOCK_LBX );
+ CleanupStack::PushL( items );
+
+ // Store the current remote lock setting
+ TInt previousItem( 0 );
+ TInt currentItem( 0 );
+
+ if ( aRemoteLockStatus )
+ {
+ previousItem = KRemoteLockSettingItemOn;
+ currentItem = KRemoteLockSettingItemOn;
+ }
+ else
+ {
+ previousItem = KRemoteLockSettingItemOff;
+ currentItem = KRemoteLockSettingItemOff;
+ }
+
+ // Create Remote Lock setting page for user to enable or disable remote locking
+ CRemoteLockSettingPage* remoteLockSettingPage = new( ELeave ) CRemoteLockSettingPage( R_REMOTELOCK_SETTING_PAGE, currentItem, items );
+
+ #ifdef _DEBUG
+ RDebug::Print( _L( "(SecUi)CSecuritySettings::ChangeRemoteLockStatusL() - Executing CRemoteLockSettingPage dialog" ) );
+ #endif // _DEBUG
+
+ // Execute the remote lock enable/disable dialog
+ TBool ret = remoteLockSettingPage->ExecuteLD( CAknSettingPage::EUpdateWhenChanged );
+
+ // Setting page list box items (texts) no longer needed
+ CleanupStack::PopAndDestroy( items );
+
+ if ( ret )
+ {
+ if ( currentItem == KRemoteLockSettingItemOn )
+ {
+ #ifdef _DEBUG
+ RDebug::Print( _L( "(SecUi)CSecuritySettings::ChangeRemoteLockStatusL() - Remote lock status set to ON" ) );
+ #endif // _DEBUG
+
+ aRemoteLockStatus = ETrue;
+
+ // If user wishes to enable remote lock
+ // a new remote lock code is required.
+ // RemoteLockCodeQueryL also
+ retValue = RemoteLockCodeQueryL( aRemoteLockCode );
+ }
+ else if ( currentItem == KRemoteLockSettingItemOff )
+ {
+ #ifdef _DEBUG
+ RDebug::Print( _L( "(SecUi)CSecuritySettings::ChangeRemoteLockStatusL() - Remote lock status set to OFF" ) );
+ #endif // _DEBUG
+
+ aRemoteLockStatus = EFalse;
+ retValue = KErrNone;
+
+ // Check whether the status was already off
+ // If not don't make the user enter the security code
+ // (which occurs when setting the DOS lock setting) for no reason.
+ if ( currentItem != previousItem )
+ {
+ // Check whether AutoLock is enabled (timeout value greater
+ // than zero) or not. If AutoLock is enabled the domestic OS
+ // device lock should be left enabled.
+ if ( aAutoLockPeriod == 0 )
+ {
+ // Disable lock setting from domestic OS
+ retValue = RemoteLockSetLockSettingL( EFalse );
+ }
+ else
+ {
+ // If AutoLock is enabled, don't disable the DOS device lock
+ // Re-set (enable) the domestic OS device lock because as a
+ // side effect it requires the security code from the user
+ retValue = RemoteLockSetLockSettingL( ETrue );
+ }
+ }
+ }
+ else
+ {
+ // This should never happen. But if it does don't change anything
+ retValue = KErrUnknown;
+ }
+ }
+ else
+ {
+ // Something went wrong with the RemoteLockSettingPage dialog
+ retValue = KErrGeneral;
+
+ #ifdef _DEBUG
+ RDebug::Print( _L( "(SecUi)CSecuritySettings::ChangeRemoteLockStatusL() - CRemoteLockSettingPage::ExecuteLD() failed" ) );
+ #endif // _DEBUG
+ }
+
+ #ifdef _DEBUG
+ RDebug::Print(_L("(SecUi)CSecuritySettings::ChangeRemoteLockStatusL() - Exit" ) );
+ #endif
+
+ return retValue;
+ #else //! RD_REMOTELOCK
+ return KErrNotSupported;
+ #endif //RD_REMOTELOCK
+ }
+//
+// ----------------------------------------------------------
+// CSecuritySettings::RemoteLockCodeQueryL()
+// Pops up remote lock code query. Requires user to enter a new remote lock
+// code twice and if they match enables the domestic OS device lock (which as
+// a side effect pops up security code query).
+// ----------------------------------------------------------
+//
+TInt CSecuritySettings::RemoteLockCodeQueryL( TDes& aRemoteLockCode )
+ {
+ #ifdef RD_REMOTELOCK
+ TInt retValue( KErrNone );
+
+ #ifdef _DEBUG
+ RDebug::Print(_L("(SecUi)CSecuritySettings::ChangeRemoteLockCodeL() - Enter" ) );
+ #endif // _DEBUG
+
+ // Clear the remote lock code buffer
+ aRemoteLockCode.Zero();
+
+ // ----- Remote lock code query -------------------------------------------
+
+ // Execute Remote Lock code query
+ #ifdef _DEBUG
+ RDebug::Print( _L( "(SecUi)CSecuritySettings::ChangeRemoteLockCodeL() - Executing remote lock code query" ) );
+ #endif // _DEBUG
+
+ // Load the query prompt from resources
+ CCodeQueryDialog* codeQuery = new( ELeave ) CCodeQueryDialog( aRemoteLockCode, SEC_REMOTELOCK_CODE_MIN_LENGTH,SEC_REMOTELOCK_CODE_MAX_LENGTH, ESecUiNone, ETrue );
+ TInt buttonId = codeQuery->ExecuteLD( R_REMOTELOCK_CODE_QUERY );
+ if ( buttonId == EEikBidOk )
+ {
+ // Ok was pressed and the remote lock code seems fine
+ retValue = KErrNone;
+ }
+ else
+ {
+ // User pressed Cancel
+ // Set the code length to zero leaving no trash for possible retry
+ aRemoteLockCode.Zero();
+ retValue = KErrAbort;
+ }
+
+ if ( retValue != KErrNone )
+ {
+ #ifdef _DEBUG
+ RDebug::Print(_L("(SecUi)CSecuritySettings::ChangeRemoteLockCodeL() - Exit, Remote lock code error" ) );
+ #endif // _DEBUG
+
+ // Can't continue beyond this
+ return retValue;
+ }
+
+ // ----- Remote lock code confirm query -----------------------------------
+
+ // Confirm the code by asking it again
+ #ifdef _DEBUG
+ RDebug::Print( _L( "(SecUi)CSecuritySettings::ChangeRemoteLockCodeL() - Executing remote lock code verify query" ) );
+ #endif // _DEBUG
+
+ // Buffer for the confirmation code
+ TBuf<KRLockMaxLockCodeLength> confirmCode;
+
+ // Load the confirmation query prompt from resources
+ CCodeQueryDialog* codeConfirmQuery = new( ELeave ) CCodeQueryDialog( confirmCode, SEC_REMOTELOCK_CODE_MIN_LENGTH, SEC_REMOTELOCK_CODE_MAX_LENGTH, ESecUiNone, ETrue );
+ buttonId = codeConfirmQuery->ExecuteLD( R_VERIFY_REMOTELOCK_CODE_QUERY);
+
+
+ if ( buttonId == EEikBidOk )
+ {
+ // Compare codes. Compare returns zero if descriptors have
+ // the same length and the same content
+ while ( (aRemoteLockCode.CompareF( confirmCode ) != 0) && (buttonId == EEikBidOk))
+ {
+ //Codes didn't match; zero the bufffers and show the dialog again
+ aRemoteLockCode.Zero();
+ confirmCode.Zero();
+ // Codes don't match. Notify user
+ ShowResultNoteL( R_REMOTELOCK_CODES_DONT_MATCH, CAknNoteDialog::EErrorTone );
+ codeQuery = new( ELeave ) CCodeQueryDialog( aRemoteLockCode, SEC_REMOTELOCK_CODE_MIN_LENGTH,SEC_REMOTELOCK_CODE_MAX_LENGTH, ESecUiNone, ETrue );
+ buttonId = codeQuery->ExecuteLD( R_REMOTELOCK_CODE_QUERY );
+ //Unless user pressed Cancel show the verification query
+ if(buttonId == EEikBidOk)
+ {
+ codeConfirmQuery = new( ELeave ) CCodeQueryDialog( confirmCode, SEC_REMOTELOCK_CODE_MIN_LENGTH, SEC_REMOTELOCK_CODE_MAX_LENGTH, ESecUiNone, ETrue );
+ buttonId = codeConfirmQuery->ExecuteLD( R_VERIFY_REMOTELOCK_CODE_QUERY);
+ }
+
+ }
+ //User pressed cancel
+ if(buttonId != EEikBidOk)
+ {
+ // Set the code length to zero leaving no trash for possible retry
+ // Report error and let the user try again
+ aRemoteLockCode.Zero();
+ confirmCode.Zero();
+ retValue = KErrAbort;
+ }
+ else
+ {
+ // Codes match
+ confirmCode.Zero();
+
+ // ----- Check against security code ------------------------------
+
+ // Check that the new remote lock code doesn't match the security
+ // code of the device.
+
+ RMobilePhone::TMobilePhoneSecurityCode secCodeType;
+ secCodeType = RMobilePhone::ESecurityCodePhonePassword;
+ RMobilePhone::TMobilePassword securityCode;
+ RMobilePhone::TMobilePassword unblockCode; // Required here only as a dummy parameter
+
+ if ( aRemoteLockCode.Length() <= RMobilePhone::KMaxMobilePasswordSize )
+ {
+ securityCode = aRemoteLockCode;
+ iWait->SetRequestType( EMobilePhoneVerifySecurityCode );
+ iPhone.VerifySecurityCode( iWait->iStatus, secCodeType, securityCode, unblockCode );
+ TInt res = iWait->WaitForRequestL();
+ // The remote lock code matches the security code
+ // and that is not allowed
+ while ( (res == KErrNone) && (buttonId == EEikBidOk))
+ {
+ #ifdef _DEBUG
+ RDebug::Print(_L("(SecUi)CSecuritySettings::ChangeRemoteLockCodeL() - Unacceptable remote lock code" ) );
+ #endif // _DEBUG
+ aRemoteLockCode.Zero();
+ confirmCode.Zero();
+
+ ShowResultNoteL( R_REMOTELOCK_INVALID_CODE, CAknNoteDialog::EErrorTone );
+
+ codeQuery = new( ELeave ) CCodeQueryDialog( aRemoteLockCode, SEC_REMOTELOCK_CODE_MIN_LENGTH,SEC_REMOTELOCK_CODE_MAX_LENGTH, ESecUiNone, ETrue );
+ buttonId = codeQuery->ExecuteLD( R_REMOTELOCK_CODE_QUERY );
+ //Unless user pressed Cancel show the verification query
+ if(buttonId == EEikBidOk)
+ {
+ codeConfirmQuery = new( ELeave ) CCodeQueryDialog( confirmCode, SEC_REMOTELOCK_CODE_MIN_LENGTH, SEC_REMOTELOCK_CODE_MAX_LENGTH, ESecUiNone, ETrue );
+ buttonId = codeConfirmQuery->ExecuteLD( R_VERIFY_REMOTELOCK_CODE_QUERY);
+
+ // Compare codes. Compare returns zero if descriptors have
+ // the same length and the same content
+ while ( (aRemoteLockCode.CompareF( confirmCode ) != 0) && (buttonId == EEikBidOk))
+ {
+ //Codes didn't match; zero the bufffers and show the dialog again
+ aRemoteLockCode.Zero();
+ confirmCode.Zero();
+ // Codes don't match. Notify user
+ ShowResultNoteL( R_REMOTELOCK_CODES_DONT_MATCH, CAknNoteDialog::EErrorTone );
+ codeQuery = new( ELeave ) CCodeQueryDialog( aRemoteLockCode, SEC_REMOTELOCK_CODE_MIN_LENGTH,SEC_REMOTELOCK_CODE_MAX_LENGTH, ESecUiNone, ETrue );
+ buttonId = codeQuery->ExecuteLD( R_REMOTELOCK_CODE_QUERY );
+ //Unless user pressed Cancel show the verification query
+ if(buttonId == EEikBidOk)
+ {
+ codeConfirmQuery = new( ELeave ) CCodeQueryDialog( confirmCode, SEC_REMOTELOCK_CODE_MIN_LENGTH, SEC_REMOTELOCK_CODE_MAX_LENGTH, ESecUiNone, ETrue );
+ buttonId = codeConfirmQuery->ExecuteLD( R_VERIFY_REMOTELOCK_CODE_QUERY);
+ }
+
+ }
+ //User pressed cancel
+ if(buttonId != EEikBidOk)
+ {
+ // Set the code length to zero leaving no trash for possible retry
+ // Report error and let the user try again
+ aRemoteLockCode.Zero();
+ confirmCode.Zero();
+ retValue = KErrAbort;
+ }
+ else //Check against security code
+ {
+ securityCode = aRemoteLockCode;
+ iWait->SetRequestType( EMobilePhoneVerifySecurityCode );
+ iPhone.VerifySecurityCode( iWait->iStatus, secCodeType, securityCode, unblockCode );
+ res = iWait->WaitForRequestL();
+ }
+ }
+
+ }
+ //User pressed cancel
+ if(buttonId != EEikBidOk)
+ {
+ // Set the code length to zero leaving no trash for possible retry
+ // Report error and let the user try again
+ aRemoteLockCode.Zero();
+ confirmCode.Zero();
+ retValue = KErrAbort;
+ }
+ }
+
+ // ----- Enable DOS device lock (Security code query) -------------
+
+ if ( retValue == KErrNone )
+ {
+ // Enable lock setting in domestic OS. It is safe to enable the
+ // lock setting since RemoteLock API requires remote locking to
+ // be enabled when changing or setting the remote lock message.
+ retValue = RemoteLockSetLockSettingL( ETrue );
+ }
+ }
+ }
+ else //User pressed Cancel
+ {
+ // Set the code length to zero leaving no trash for possible retry
+ aRemoteLockCode.Zero();
+ confirmCode.Zero();
+ retValue = KErrAbort;
+ }
+
+ #ifdef _DEBUG
+ RDebug::Print(_L("(SecUi)CSecuritySettings::ChangeRemoteLockCodeL() - Exit" ) );
+ #endif // _DEBUG
+
+ return retValue;
+ #else //! RD_REMOTELOCK
+ return KErrNotSupported;
+ #endif //RD_REMOTELOCK
+ }
+//
+// ----------------------------------------------------------
+// CSecuritySettings::RemoteLockSetLockSettingL()
+// Changes lock setting in domestic OS. Changing the domestic OS lock setting
+// requires user to enter the security code.
+// ----------------------------------------------------------
+//
+TInt CSecuritySettings::RemoteLockSetLockSettingL( TBool aLockSetting )
+ {
+ #ifdef RD_REMOTELOCK
+ TInt retValue( KErrNone );
+
+ #ifdef _DEBUG
+ RDebug::Print(_L("(SecUi)CSecuritySettings::RemoteLockSetLockSettingL( %d ) - Enter" ), aLockSetting );
+ #endif // _DEBUG
+
+ RMobilePhone::TMobilePhoneLockSetting lockSetting = RMobilePhone::ELockSetEnabled;
+ RMobilePhone::TMobilePhoneLock lockType = RMobilePhone::ELockPhoneDevice;
+
+ if ( aLockSetting )
+ {
+ lockSetting = RMobilePhone::ELockSetEnabled;
+ }
+ else
+ {
+ lockSetting = RMobilePhone::ELockSetDisabled;
+ }
+
+ iWait->SetRequestType( EMobilePhoneSetLockSetting );
+ RProperty::Set(KPSUidSecurityUIs, KSecurityUIsQueryRequestCancel, ESecurityUIsQueryRequestOk);
+ iPhone.SetLockSetting( iWait->iStatus, lockType, lockSetting );
+
+ // Wait for code verify to complete
+ retValue = iWait->WaitForRequestL();
+
+ switch( retValue )
+ {
+ case KErrNone:
+ #ifdef _DEBUG
+ RDebug::Print( _L( "(SecUi)CSecuritySettings::RemoteLockSetLockSettingL() - EMobilePhoneSetLockSetting request returned KErrNone" ) );
+ #endif // _DEBUG
+ break;
+
+ case KErrGsmSSPasswordAttemptsViolation:
+ case KErrLocked:
+ #ifdef _DEBUG
+ RDebug::Print( _L( "(SecUi)CSecuritySettings::RemoteLockSetLockSettingL() - EMobilePhoneSetLockSetting request returned KErrLocked" ) );
+ #endif // _DEBUG
+ //Error note is shown in CSecurityHandler::PassPhraseRequired()
+ break;
+
+ case KErrGsm0707IncorrectPassword:
+ case KErrAccessDenied:
+ #ifdef _DEBUG
+ RDebug::Print( _L( "(SecUi)CSecuritySettings::RemoteLockSetLockSettingL() - EMobilePhoneSetLockSetting request returned KErrAccessDenied" ) );
+ #endif // _DEBUG
+ // Security code was entered erroneously
+ //Error note is shown in CSecurityHandler::PassPhraseRequired()
+ break;
+
+ case KErrAbort:
+ #ifdef _DEBUG
+ RDebug::Print( _L( "(SecUi)CSecuritySettings::RemoteLockSetLockSettingL() - EMobilePhoneSetLockSetting request returned KErrAbort" ) );
+ #endif // _DEBUG
+ break;
+
+ default:
+ #ifdef _DEBUG
+ RDebug::Print( _L( "(SecUi)CSecuritySettings::RemoteLockSetLockSettingL() - EMobilePhoneSetLockSetting request returned: %d"), retValue );
+ #endif // _DEBUG
+ break;
+ }
+
+ #ifdef _DEBUG
+ RDebug::Print(_L("(SecUi)CSecuritySettings::RemoteLockSetLockSettingL() - Exit" ) );
+ #endif // _DEBUG
+
+ return retValue;
+ #else //! RD_REMOTELOCK
+ return KErrNotSupported;
+ #endif //RD_REMOTELOCK
+ }
+
+
+
+//
+// ----------------------------------------------------------
+// CSecuritySettings::ChangeSimSecurityL()
+// Changes SIM security
+// ----------------------------------------------------------
+//
+EXPORT_C TBool CSecuritySettings::ChangeSimSecurityL()
+ {
+ /*****************************************************
+ * Series 60 Customer / ETel
+ * Series 60 ETel API
+ *****************************************************/
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CSecuritySettings::ChangeSimSecurityL()"));
+ #endif
+
+ RMobilePhone::TMobilePhoneLockInfoV1 lockInfo;
+ RMobilePhone::TMobilePhoneLockInfoV1Pckg lockInfoPkg(lockInfo);
+ RMobilePhone::TMobilePhoneLock lockType = RMobilePhone::ELockPhoneToICC;
+ RMobilePhone::TMobilePhoneLockSetting lockChangeSetting;
+ CCoeEnv* coeEnv = CCoeEnv::Static();
+ CDesCArrayFlat* items = coeEnv->ReadDesC16ArrayResourceL(R_SECURITY_LBX);
+ CleanupStack::PushL(items);
+
+ //get lock info
+ iWait->SetRequestType(EMobilePhoneGetLockInfo);
+ iPhone.GetLockInfo(iWait->iStatus, lockType, lockInfoPkg);
+ TInt status = iWait->WaitForRequestL();
+ User::LeaveIfError(status);
+ TInt currentItem = 0;
+
+ if (lockInfo.iSetting == RMobilePhone::ELockSetDisabled)
+ {
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CSecuritySettings::ChangeSimSecurityL()lockInfo: ELockSetDisabled"));
+ #endif
+ currentItem = 1; // off
+ }
+
+ TInt oldItem = currentItem;
+
+ CAknRadioButtonSettingPage* dlg = new (ELeave)CAknRadioButtonSettingPage(R_SECURITY_SETTING_PAGE, currentItem, items);
+ CleanupStack::PushL(dlg);
+
+
+ CleanupStack::Pop(); // dlg
+ if ( !(dlg->ExecuteLD(CAknSettingPage::EUpdateWhenChanged)) || oldItem==currentItem )
+ {
+ CleanupStack::PopAndDestroy(); // items
+ return EFalse;
+ }
+
+
+
+ if (currentItem == 1)
+ {
+ lockChangeSetting = RMobilePhone::ELockSetDisabled;
+ }
+ else
+ {
+ lockChangeSetting = RMobilePhone::ELockSetEnabled;
+ }
+
+ CleanupStack::PopAndDestroy(); // items
+
+ iWait->SetRequestType(EMobilePhoneSetLockSetting);
+ RProperty::Set(KPSUidSecurityUIs, KSecurityUIsQueryRequestCancel, ESecurityUIsQueryRequestOk);
+ iPhone.SetLockSetting(iWait->iStatus,lockType,lockChangeSetting);
+ status = iWait->WaitForRequestL();
+
+ #if defined(_DEBUG)
+ RDebug::Print( _L("(SECUI)CSecuritySettings::ChangeSimSecurityL(): RETURN CODE: %d"), status);
+ #endif
+ switch(status)
+ {
+ case KErrNone:
+ {
+ break;
+ }
+ case KErrGsm0707IncorrectPassword:
+ case KErrAccessDenied:
+ {
+ // code was entered erroneously
+ return ChangeSimSecurityL();
+ }
+ case KErrGsmSSPasswordAttemptsViolation:
+ case KErrLocked:
+ {
+ return ChangeSimSecurityL();
+ }
+ case KErrAbort:
+ {
+ return EFalse;
+ }
+ default:
+ {
+ ShowErrorNoteL(status);
+ return ChangeSimSecurityL();
+ }
+ }
+
+ return ETrue;
+ }
+//
+// ----------------------------------------------------------
+// CSecuritySettings::ChangePinRequestL()
+// Changes PIN1 request
+// ----------------------------------------------------------
+//
+EXPORT_C TBool CSecuritySettings::ChangePinRequestL()
+ {
+ /*****************************************************
+ * Series 60 Customer / ETel
+ * Series 60 ETel API
+ *****************************************************/
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CSecuritySettings::ChangePinRequestL()"));
+ #endif
+ TInt simState;
+ TInt err( KErrGeneral );
+ err = RProperty::Get(KPSUidStartup, KPSSimStatus, simState);
+ User::LeaveIfError( err );
+ TBool simRemoved(simState == ESimNotPresent);
+
+ if ( simRemoved )
+ {
+ ShowResultNoteL(R_INSERT_SIM, CAknNoteDialog::EErrorTone);
+ return EFalse;;
+ }
+
+ RMobilePhone::TMobilePhoneLockInfoV1 lockInfo;
+ RMobilePhone::TMobilePhoneLockInfoV1Pckg lockInfoPkg(lockInfo);
+ RMobilePhone::TMobilePhoneLock lockType = RMobilePhone::ELockICC;
+
+ RMobilePhone::TMobilePhoneLockSetting lockChangeSetting;
+
+ CCoeEnv* coeEnv = CCoeEnv::Static();
+ CDesCArrayFlat* items = coeEnv->ReadDesC16ArrayResourceL(R_PIN_LBX);
+ CleanupStack::PushL(items);
+
+ //get lock info
+ iWait->SetRequestType(EMobilePhoneGetLockInfo);
+ iPhone.GetLockInfo(iWait->iStatus, lockType, lockInfoPkg);
+ TInt status = iWait->WaitForRequestL();
+ User::LeaveIfError(status);
+ TInt currentItem = 0;
+
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CSecuritySettings::ChangePinRequestL() GetLockInfo"));
+ #endif
+
+ if (lockInfo.iSetting == RMobilePhone::ELockSetDisabled)
+ {
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CSecuritySettings::ChangePinRequestL() lockInfo: ELockSetDisabled"));
+ #endif
+ currentItem = 1; // off
+ }
+
+ TInt oldItem = currentItem;
+
+ CAknRadioButtonSettingPage* dlg = new (ELeave)CAknRadioButtonSettingPage(R_PIN_SETTING_PAGE, currentItem, items);
+ CleanupStack::PushL(dlg);
+
+
+ CleanupStack::Pop(); // dlg
+ if ( !(dlg->ExecuteLD(CAknSettingPage::EUpdateWhenChanged)) || oldItem==currentItem )
+ {
+ CleanupStack::PopAndDestroy(); // items
+ return EFalse;
+ }
+
+
+ if (currentItem == 1)
+ {
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CSecuritySettings::ChangePinRequestL() currentItem: ELockSetDisabled"));
+ #endif
+ lockChangeSetting = RMobilePhone::ELockSetDisabled;
+ }
+ else
+ {
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CSecuritySettings::ChangePinRequestL() currentItem: ELockSetEnabled"));
+ #endif
+ lockChangeSetting = RMobilePhone::ELockSetEnabled;
+ }
+
+ CleanupStack::PopAndDestroy(); // items
+
+ // Raise a flag to indicate that the PIN
+ // request coming from ETEL has originated from SecUi and not from Engine.
+ TInt tRet = RProperty::Set(KPSUidSecurityUIs, KSecurityUIsSecUIOriginatedQuery, ESecurityUIsSecUIOriginated);
+ if ( tRet != KErrNone )
+ {
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CSecuritySettings::ChangePinRequestL():\
+ FAILED to set the SECUI query Flag: %d"), tRet);
+ #endif
+ }
+ // Change the lock setting
+ iWait->SetRequestType(EMobilePhoneSetLockSetting);
+ RProperty::Set(KPSUidSecurityUIs, KSecurityUIsQueryRequestCancel, ESecurityUIsQueryRequestOk);
+ iPhone.SetLockSetting(iWait->iStatus,lockType,lockChangeSetting);
+ status = iWait->WaitForRequestL();
+ #if defined(_DEBUG)
+ RDebug::Print( _L("(SECUI)CSecuritySettings::ChangePinRequestL(): RETURN CODE: %d"), status);
+ #endif
+
+ // Lower the flag
+ RProperty::Set(KPSUidSecurityUIs, KSecurityUIsSecUIOriginatedQuery, ESecurityUIsETelAPIOriginated);
+
+ switch(status)
+ {
+ case KErrNone:
+ {
+ break;
+ }
+ case KErrGsm0707OperationNotAllowed:
+ {
+ // not allowed with this sim
+ ShowResultNoteL(R_OPERATION_NOT_ALLOWED, CAknNoteDialog::EErrorTone);
+ return EFalse;
+ }
+ case KErrGsm0707IncorrectPassword:
+ case KErrAccessDenied:
+ {
+ // code was entered erroneously
+ return ChangePinRequestL();
+ }
+ case KErrGsmSSPasswordAttemptsViolation:
+ case KErrLocked:
+ {
+ return ETrue;
+ }
+ case KErrAbort:
+ {
+ return EFalse;
+ }
+ default:
+ {
+ return ChangePinRequestL();
+ }
+ }
+
+ return ETrue;
+ }
+
+//
+// ----------------------------------------------------------
+// CSecuritySettings::ChangeUPinRequestL()
+// Changes UPIN request on/off
+// ----------------------------------------------------------
+//
+EXPORT_C TBool CSecuritySettings::ChangeUPinRequestL()
+ {
+ TBool wcdmaSupported(FeatureManager::FeatureSupported( KFeatureIdProtocolWcdma ));
+ TBool upinSupported(FeatureManager::FeatureSupported( KFeatureIdUpin ));
+ if(wcdmaSupported || upinSupported)
+ {
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CSecuritySettings::ChangeUPinRequestL()"));
+ #endif
+
+ TInt simState;
+ TInt err( KErrGeneral );
+ err = RProperty::Get(KPSUidStartup, KPSSimStatus, simState);
+ User::LeaveIfError( err );
+ TBool simRemoved(simState == ESimNotPresent);
+
+ if ( simRemoved )
+ {
+ ShowResultNoteL(R_INSERT_SIM, CAknNoteDialog::EErrorTone);
+ return EFalse;
+ }
+
+ RMobilePhone::TMobilePhoneLockInfoV1 lockInfo;
+ RMobilePhone::TMobilePhoneLockInfoV1Pckg lockInfoPkg(lockInfo);
+ RMobilePhone::TMobilePhoneLock lockType = RMobilePhone::ELockUniversalPin;
+
+ RMobilePhone::TMobilePhoneLockSetting lockChangeSetting = RMobilePhone::ELockSetDisabled;
+
+ CCoeEnv* coeEnv = CCoeEnv::Static();
+ CDesCArrayFlat* items = coeEnv->ReadDesC16ArrayResourceL(R_UPIN_LBX);
+ CleanupStack::PushL(items);
+
+ //get lock info
+ iWait->SetRequestType(EMobilePhoneGetLockInfo);
+ iPhone.GetLockInfo(iWait->iStatus, lockType, lockInfoPkg);
+ TInt status = iWait->WaitForRequestL();
+ User::LeaveIfError(status);
+ TInt currentItem = 0;
+
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CSecuritySettings::ChangeUPinRequestL() GetLockInfo"));
+ #endif
+
+ if (lockInfo.iSetting == RMobilePhone::ELockSetDisabled)
+ {
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CSecuritySettings::ChangeUPinRequestL() lockInfo: ELockSetDisabled"));
+ #endif
+ currentItem = 1; // off
+ }
+
+ TInt oldItem = currentItem;
+
+ CAknRadioButtonSettingPage* dlg = new (ELeave)CAknRadioButtonSettingPage(R_UPIN_SETTING_PAGE, currentItem, items);
+ CleanupStack::PushL(dlg);
+
+
+ CleanupStack::Pop(); // dlg
+ if ( !(dlg->ExecuteLD(CAknSettingPage::EUpdateWhenChanged)) || oldItem==currentItem )
+ {
+ CleanupStack::PopAndDestroy(); // items
+ return EFalse;
+ }
+
+
+ if (currentItem == 1)
+ {
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CSecuritySettings::ChangePinRequestL() currentItem: ELockSetDisabled"));
+ #endif
+ lockChangeSetting = RMobilePhone::ELockSetDisabled;
+ }
+ else
+ {
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CSecuritySettings::ChangePinRequestL() currentItem: ELockSetEnabled"));
+ #endif
+ lockChangeSetting = RMobilePhone::ELockSetEnabled;
+ }
+
+ CleanupStack::PopAndDestroy(); // items
+
+ // Raise a flag to indicate that the UPIN
+ // request coming from ETEL has originated from SecUi and not from Engine.
+ RProperty::Set(KPSUidSecurityUIs, KSecurityUIsSecUIOriginatedQuery, ESecurityUIsSecUIOriginated);
+ // Change the lock setting
+ iWait->SetRequestType(EMobilePhoneSetLockSetting);
+ RProperty::Set(KPSUidSecurityUIs, KSecurityUIsQueryRequestCancel, ESecurityUIsQueryRequestOk);
+ iPhone.SetLockSetting(iWait->iStatus,lockType,lockChangeSetting);
+ status = iWait->WaitForRequestL();
+ #if defined(_DEBUG)
+ RDebug::Print( _L("(SECUI)CSecuritySettings::ChangeUPinRequestL(): RETURN CODE: %d"), status);
+ #endif
+
+ // Lower the flag
+ RProperty::Set(KPSUidSecurityUIs, KSecurityUIsSecUIOriginatedQuery, ESecurityUIsETelAPIOriginated);
+
+ switch(status)
+ {
+ case KErrNone:
+ {
+ break;
+ }
+ case KErrGsm0707OperationNotAllowed:
+ {
+ // not allowed with this sim
+ ShowResultNoteL(R_OPERATION_NOT_ALLOWED, CAknNoteDialog::EErrorTone);
+ return EFalse;
+ }
+ case KErrGsm0707IncorrectPassword:
+ case KErrAccessDenied:
+ {
+ // code was entered erroneously
+ return ChangeUPinRequestL();
+ }
+ case KErrGsmSSPasswordAttemptsViolation:
+ case KErrLocked:
+ {
+ return EFalse;
+ }
+ case KErrAbort:
+ {
+ return EFalse;
+ }
+ default:
+ {
+ ShowErrorNoteL(status);
+ return ChangeUPinRequestL();
+ }
+ }
+
+ return ETrue;
+ }
+ else
+ return EFalse;
+
+ }
+
+//
+// ----------------------------------------------------------
+// CSecuritySettings::SwitchPinCodesL()
+// Changes the pin code currently in use (PIN/UPIN)
+// ----------------------------------------------------------
+//
+EXPORT_C TBool CSecuritySettings::SwitchPinCodesL()
+ {
+ TBool wcdmaSupported(FeatureManager::FeatureSupported( KFeatureIdProtocolWcdma ));
+ TBool upinSupported(FeatureManager::FeatureSupported( KFeatureIdUpin ));
+ if(wcdmaSupported || upinSupported)
+ {
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CSecuritySettings::SwitchPinCodesL()"));
+ #endif
+
+ // If we are in simless offline mode the PIN codes can't obviously be switched
+ TInt simState;
+ TInt err( KErrGeneral );
+ err = RProperty::Get(KPSUidStartup, KPSSimStatus, simState);
+ User::LeaveIfError( err );
+ TBool simRemoved(simState == ESimNotPresent);
+
+ if ( simRemoved )
+ {
+ ShowResultNoteL(R_INSERT_SIM, CAknNoteDialog::EErrorTone);
+ return EFalse;
+ }
+
+
+ RMobilePhone::TMobilePhoneLock lockType = RMobilePhone::ELockUniversalPin;
+ RMobilePhone::TMobilePhoneLockSetting lockChangeSetting = RMobilePhone::ELockReplaced;
+ RMobilePhone::TMobilePhoneSecurityCode activeCode;
+
+ iCustomPhone.GetActivePin(activeCode);
+
+ RMobilePhone::TMobilePhoneLockInfoV1 lockInfo;
+ RMobilePhone::TMobilePhoneLockInfoV1Pckg lockInfoPkg(lockInfo);
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CSecuritySettings::SwitchPinCodesL() GetLockInfo"));
+ #endif
+ iWait->SetRequestType(EMobilePhoneGetLockInfo);
+
+ if (activeCode == RMobilePhone::ESecurityUniversalPin)
+ {
+ lockType = RMobilePhone::ELockUniversalPin;
+ iPhone.GetLockInfo(iWait->iStatus, lockType, lockInfoPkg);
+ TInt res = iWait->WaitForRequestL();
+ User::LeaveIfError(res);
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CSecuritySettings::SwitchPinCodesL() Lock Info got: UPIN"));
+ #endif
+ }
+ else
+ {
+ lockType = RMobilePhone::ELockICC;
+ iPhone.GetLockInfo(iWait->iStatus, lockType, lockInfoPkg);
+ TInt res = iWait->WaitForRequestL();
+ User::LeaveIfError(res);
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CSecuritySettings::SwitchPinCodesL() Lock Info got: PIN"));
+ #endif
+ }
+
+ // code request must be ON to change active code.
+ if (lockInfo.iSetting == RMobilePhone::ELockSetDisabled)
+ {
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CSecuritySettings::SwitchPinCodesL() CODE REQ NOT ON."));
+ #endif
+ if (activeCode == RMobilePhone::ESecurityUniversalPin)
+ {
+ ShowResultNoteL(R_UPIN_NOT_ALLOWED, CAknNoteDialog::EErrorTone);
+ }
+ else
+ {
+ ShowResultNoteL(R_PIN_NOT_ALLOWED, CAknNoteDialog::EErrorTone);
+ }
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CSecuritySettings::SwitchPinCodesL() CODE REQ NOT ON NOTE END."));
+ #endif
+ return EFalse;
+ }
+
+
+
+ CCoeEnv* coeEnv = CCoeEnv::Static();
+ CDesCArrayFlat* items = coeEnv->ReadDesC16ArrayResourceL(R_CODE_LBX);
+ CleanupStack::PushL(items);
+
+ iCustomPhone.GetActivePin(activeCode);
+ TInt currentItem = 0;
+
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CSecuritySettings::SwitchPinCodesL() GetLockInfo"));
+ #endif
+
+ if (activeCode == RMobilePhone::ESecurityUniversalPin)
+ {
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CSecuritySettings::SwitchPinCodesL() active code: UPIN"));
+ #endif
+ currentItem = 1; // UPIN
+ }
+
+ TInt oldItem = currentItem;
+
+ CAknRadioButtonSettingPage* dlg = new (ELeave)CAknRadioButtonSettingPage(R_CODE_IN_USE_SETTING_PAGE, currentItem, items);
+ CleanupStack::PushL(dlg);
+
+
+ CleanupStack::Pop(); // dlg
+ if ( !(dlg->ExecuteLD(CAknSettingPage::EUpdateWhenChanged)) || oldItem==currentItem )
+ {
+ CleanupStack::PopAndDestroy(); // items
+ return EFalse;
+ }
+
+
+ if (currentItem == 1)
+ {
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CSecuritySettings::SwitchPinCodesL() currentItem: UPIN"));
+ #endif
+ lockType = RMobilePhone::ELockUniversalPin;
+ }
+ else
+ {
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CSecuritySettings::SwitchPinCodesL() currentItem: PIN1"));
+ #endif
+ lockType = RMobilePhone::ELockICC;
+ }
+
+ CleanupStack::PopAndDestroy(); // items
+
+ // Raise a flag to indicate that the code
+ // request coming from ETEL has originated from SecUi and not from Engine.
+ RProperty::Set(KPSUidSecurityUIs, KSecurityUIsSecUIOriginatedQuery, ESecurityUIsSecUIOriginated);
+ // Change the lock setting
+ iWait->SetRequestType(EMobilePhoneSetLockSetting);
+ RProperty::Set(KPSUidSecurityUIs, KSecurityUIsQueryRequestCancel, ESecurityUIsQueryRequestOk);
+ iPhone.SetLockSetting(iWait->iStatus,lockType,lockChangeSetting);
+ TInt status = iWait->WaitForRequestL();
+ #if defined(_DEBUG)
+ RDebug::Print( _L("(SECUI)CSecuritySettings::SwitchPinCodesL(): RETURN CODE: %d"), status);
+ #endif
+ // Lower the flag
+ RProperty::Set(KPSUidSecurityUIs, KSecurityUIsSecUIOriginatedQuery, ESecurityUIsETelAPIOriginated);
+
+ switch(status)
+ {
+ case KErrNone:
+ {
+ break;
+ }
+ case KErrGsm0707OperationNotAllowed:
+ {
+ // not allowed with this sim
+ ShowResultNoteL(R_OPERATION_NOT_ALLOWED, CAknNoteDialog::EErrorTone);
+ return EFalse;
+ }
+ case KErrGsm0707IncorrectPassword:
+ case KErrAccessDenied:
+ {
+ // code was entered erroneously
+ return SwitchPinCodesL();
+ }
+ case KErrGsmSSPasswordAttemptsViolation:
+ case KErrLocked:
+ {
+ return EFalse;
+ }
+ case KErrAbort:
+ {
+ return EFalse;
+ }
+ default:
+ {
+ ShowErrorNoteL(status);
+ return SwitchPinCodesL();
+ }
+ }
+
+ return ETrue;
+ }
+ else
+ return EFalse;
+ }
+
+//
+// ----------------------------------------------------------
+// CSecuritySettings::IsLockEnabledL()
+// Return is lock enabled/disabled
+// ----------------------------------------------------------
+//
+EXPORT_C TBool CSecuritySettings::IsLockEnabledL(RMobilePhone::TMobilePhoneLock aLockType)
+ {
+ /*****************************************************
+ * Series 60 Customer / ETel
+ * Series 60 ETel API
+ *****************************************************/
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CSecuritySettings::IsLockEnabledL()"));
+ #endif
+ #ifdef __WINS__
+
+ return EFalse;
+
+ #else //WINS
+
+ RMobilePhone::TMobilePhoneLockInfoV1 lockInfo;
+
+ //get lock info
+ RMobilePhone::TMobilePhoneLockInfoV1Pckg lockInfoPkg(lockInfo);
+ iWait->SetRequestType(EMobilePhoneGetLockInfo);
+ iPhone.GetLockInfo(iWait->iStatus, aLockType, lockInfoPkg);
+ TInt res = iWait->WaitForRequestL();
+
+ if (res != KErrNone)
+ return ETrue;
+
+ //lock is enabled return true
+ if (lockInfo.iSetting == RMobilePhone::ELockSetEnabled)
+ {
+ return ETrue;
+ }
+
+ // lock is disabled return false
+ return EFalse;
+
+ #endif
+
+ }
+//
+// ----------------------------------------------------------
+// CSecuritySettings::AskSecCodeL()
+// For asking security code e.g in settings
+// ----------------------------------------------------------
+//
+EXPORT_C TBool CSecuritySettings::AskSecCodeL()
+ {
+ return iSecurityHandler->AskSecCodeL();
+ }
+//
+// ----------------------------------------------------------
+// CSecuritySettings::AskPin2L()
+// Asks PIN2
+// ----------------------------------------------------------
+//
+EXPORT_C TBool CSecuritySettings::AskPin2L()
+ {
+ /*****************************************************
+ * Series 60 Customer / ETel
+ * Series 60 ETel API
+ *****************************************************/
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CSecuritySettings::AskPin2L()"));
+ #endif
+ TInt ret = 0;
+ // check if pin2 is blocked...
+ RMmCustomAPI::TSecurityCodeType secCodeType = RMmCustomAPI::ESecurityCodePin2;
+ RMobilePhone::TMobilePhoneSecurityCode etelsecCodeType(RMobilePhone::ESecurityCodePin2);
+ RMobilePhone::TMobilePhoneSecurityCodeInfoV5 codeInfo;
+ RMobilePhone::TMobilePhoneSecurityCodeInfoV5Pckg codeInfoPkg(codeInfo);
+ TBool isBlocked = EFalse;
+ //Check whether PIN2 is blocked
+ ret = iCustomPhone.IsBlocked(secCodeType,isBlocked);
+
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CSecuritySettings::AskPin2L() IsBlocked return value: %d"), ret);
+ #endif
+ if(isBlocked)
+ return EFalse;
+
+ if (ret != KErrNone)
+ {
+ switch (ret)
+ {
+ // PIN2 Blocked.
+ case KErrGsm0707SIMPuk2Required:
+ break;
+ case KErrGsmSSPasswordAttemptsViolation:
+ case KErrLocked:
+ // Pin2 features blocked permanently!
+ ShowResultNoteL(R_PIN2_REJECTED, CAknNoteDialog::EConfirmationTone);
+ break;
+ case KErrGsm0707SimNotInserted:
+ // not allowed with this sim
+ ShowResultNoteL(R_OPERATION_NOT_ALLOWED, CAknNoteDialog::EErrorTone);
+ break;
+ default:
+ ShowErrorNoteL(ret);
+ break;
+ }
+ return EFalse;
+ }
+ iWait->SetRequestType(EMobilePhoneGetSecurityCodeInfo);
+ iPhone.GetSecurityCodeInfo(iWait->iStatus, etelsecCodeType, codeInfoPkg);
+ ret = iWait->WaitForRequestL();
+
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CSecurityHandler::Pin2RequiredL(): get PIN2 info result: %d"), ret);
+ TInt attempts(codeInfo.iRemainingEntryAttempts);
+ RDebug::Print(_L("(SECUI)CSecurityHandler::Pin2RequiredL(): attempts remaining: %d"), attempts);
+ #endif
+ User::LeaveIfError(ret);
+
+ // ask pin2 code
+ RMobilePhone::TMobilePassword password;
+ CCodeQueryDialog* dlg = new (ELeave) CCodeQueryDialog (password,SEC_C_PIN_CODE_MIN_LENGTH,SEC_C_PIN_CODE_MAX_LENGTH,ESecUiNone);
+ if(codeInfo.iRemainingEntryAttempts == KMaxNumberOfPINAttempts)
+ ret = dlg->ExecuteLD(R_PIN2_QUERY);
+ else if(codeInfo.iRemainingEntryAttempts > KLastRemainingInputAttempt)
+ {
+ HBufC* queryPrompt = StringLoader::LoadLC(R_SECUI_REMAINING_PIN2_ATTEMPTS, codeInfo.iRemainingEntryAttempts );
+ ret = dlg->ExecuteLD(R_PIN2_QUERY, *queryPrompt);
+ CleanupStack::PopAndDestroy(queryPrompt);
+ }
+ else
+ {
+ HBufC* queryPrompt = StringLoader::LoadLC(R_SECUI_FINAL_PIN2_ATTEMPT);
+ ret = dlg->ExecuteLD(R_PIN2_QUERY, *queryPrompt);
+ CleanupStack::PopAndDestroy(queryPrompt);
+ }
+
+ if (!ret)
+ {
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CSecuritySettings::AskPin2L(): Cancel pressed"));
+ #endif
+ return EFalse;
+ }
+
+ // verify code
+ RMobilePhone::TMobilePassword required_fourth;
+ iWait->SetRequestType(EMobilePhoneVerifySecurityCode);
+ iPhone.VerifySecurityCode(iWait->iStatus,etelsecCodeType, password, required_fourth);
+ TInt res = iWait->WaitForRequestL();
+
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CSecuritySettings::AskPin2L() VerifySecurityCode return value: %d"), res);
+ #endif
+
+ switch(res)
+ {
+ case KErrNone:
+ break;
+ case KErrGsm0707IncorrectPassword:
+ case KErrAccessDenied:
+ // code was entered erroneously
+ ShowResultNoteL(R_CODE_ERROR, CAknNoteDialog::EErrorTone);
+ return AskPin2L();
+ case KErrGsm0707OperationNotAllowed:
+ // not allowed with this sim
+ ShowResultNoteL(R_OPERATION_NOT_ALLOWED, CAknNoteDialog::EErrorTone);
+ return EFalse;
+ case KErrGsmSSPasswordAttemptsViolation:
+ case KErrLocked:
+ // code was blocked
+ ShowResultNoteL(R_CODE_ERROR, CAknNoteDialog::EErrorTone);
+ return EFalse;
+ default:
+ ShowErrorNoteL(res);
+ return AskPin2L();
+ }
+
+ return ETrue;
+ }
+//
+// ----------------------------------------------------------
+// CSecuritySettings::SetFdnModeL()
+// Activates or deactivates Fixed Dialling Numbers (FDN) mode.
+// ----------------------------------------------------------
+//
+EXPORT_C void CSecuritySettings::SetFdnModeL()
+ {
+ /*****************************************************
+ * Series 60 Customer / ETel
+ * Series 60 ETel API
+ *****************************************************/
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CSecuritySettings::SetFdnModeL()"));
+ #endif
+ RMmCustomAPI::TSecurityCodeType secCodeType = RMmCustomAPI::ESecurityCodePin2;
+
+ TBool isBlocked = EFalse;
+ TInt ret = iCustomPhone.IsBlocked(secCodeType,isBlocked);
+
+ if(isBlocked)
+ return;
+
+ if (ret != KErrNone)
+ {
+ switch (ret)
+ {
+ // PIN2 Blocked.
+ case KErrGsm0707SIMPuk2Required:
+ break;
+ case KErrGsmSSPasswordAttemptsViolation:
+ case KErrLocked:
+ // Pin2 features blocked permanently!
+ ShowResultNoteL(R_PIN2_REJECTED, CAknNoteDialog::EConfirmationTone);
+ break;
+ case KErrGsm0707SimNotInserted:
+ // not allowed with this sim
+ ShowResultNoteL(R_OPERATION_NOT_ALLOWED, CAknNoteDialog::EErrorTone);
+ break;
+ default:
+ ShowErrorNoteL(ret);
+ break;
+ }
+ return;
+ }
+
+
TInt status = KErrNone;
RMobilePhone::TMobilePhoneFdnStatus fdnMode;
RMobilePhone::TMobilePhoneFdnSetting fdnSet;
-
+
iPhone.GetFdnStatus(fdnMode);
-
+
if (fdnMode == RMobilePhone::EFdnActive)
{
fdnSet = RMobilePhone::EFdnSetOff;
}
else
{
- fdnSet = RMobilePhone::EFdnSetOn;
+ fdnSet = RMobilePhone::EFdnSetOn;
}
- RDEBUG("fdnSet", fdnSet);
- // Change the FDN setting
+
+ // Change the FDN setting
iWait->SetRequestType(EMobilePhoneSetFdnSetting);
RProperty::Set(KPSUidSecurityUIs, KSecurityUIsQueryRequestCancel, ESecurityUIsQueryRequestOk);
- RDEBUG("SetFdnSetting", 0);
iPhone.SetFdnSetting(iWait->iStatus, fdnSet);
- RDEBUG("WaitForRequestL", 0);
status = iWait->WaitForRequestL();
- RDEBUG("WaitForRequestL status", status);
-#ifdef __WINS__
- if (status == KErrNotSupported)
- status = KErrNone;
-#endif
- RDEBUG("status", status);
- switch (status)
- {
+ #if defined(_DEBUG)
+ RDebug::Print( _L("(SECUI)CSecuritySettings::SetFdnModeL(): RETURN CODE: %d"), status);
+ #endif
+ switch(status)
+ {
case KErrNone:
break;
case KErrGsm0707IncorrectPassword:
@@ -1178,21 +2401,23 @@
default:
ShowErrorNoteL(status);
break;
- }
- }
+ }
+ }
//
// ----------------------------------------------------------
// CSecuritySettings::GetFndMode()
// Retrieves the current Fixed Dialling Numbers mode
// ----------------------------------------------------------
-// qtdone
-EXPORT_C TInt CSecuritySettings::GetFdnMode(RMobilePhone::TMobilePhoneFdnStatus& aFdnMode)
+//
+EXPORT_C TInt CSecuritySettings::GetFdnMode (RMobilePhone::TMobilePhoneFdnStatus& aFdnMode)
{
/*****************************************************
- * Series 60 Customer / ETel
- * Series 60 ETel API
- *****************************************************/
- RDEBUG("0", 0);
+ * Series 60 Customer / ETel
+ * Series 60 ETel API
+ *****************************************************/
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CSecuritySettings::GetFdnMode()"));
+ #endif
return iPhone.GetFdnStatus(aFdnMode);
}
@@ -1201,12 +2426,24 @@
// CSecuritySettings::ShowErrorNoteL()
// Shows error note
// ----------------------------------------------------------
-// qtdone
+//
void CSecuritySettings::ShowErrorNoteL(TInt aError)
{
- RDEBUG("aError", aError);
-
- ShowResultNoteL(aError, CAknNoteDialog::EErrorTone);
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CSecuritySettings::ShowErrorNoteL()"));
+ #endif
+ // Let's create TextResolver instance for error resolving...
+ CTextResolver* textresolver = CTextResolver::NewLC();
+ // Resolve the error
+ TPtrC errorstring;
+ errorstring.Set( textresolver->ResolveErrorString( aError ) );
+ CAknNoteDialog* noteDlg = new (ELeave) CAknNoteDialog(REINTERPRET_CAST(CEikDialog**,¬eDlg));
+ noteDlg->PrepareLC(R_CODE_ERROR);
+ noteDlg->SetTextL((TDesC&)errorstring);
+ noteDlg->SetTimeout(CAknNoteDialog::ELongTimeout);
+ noteDlg->SetTone(CAknNoteDialog::EErrorTone);
+ noteDlg->RunLD();
+ CleanupStack::PopAndDestroy(); // resolver
}
//
@@ -1214,258 +2451,17 @@
// CSecuritySettings::ShowResultNoteL()
// Shows result note
// ----------------------------------------------------------
-// qtdone
+//
void CSecuritySettings::ShowResultNoteL(TInt aResourceID, CAknNoteDialog::TTone aTone)
- {
- RDEBUG("aResourceID", aResourceID);
-
- CHbDeviceMessageBoxSymbian* messageBox = CHbDeviceMessageBoxSymbian::NewL(CHbDeviceMessageBoxSymbian::EWarning);
- CleanupStack::PushL(messageBox);
- TInt satisfactoryIcon = 0; // might change later, in some scenarios
- _LIT(KText, "ShowResultNoteL: ");
- TBuf<0x200> title;
- TBuf<0x200> titleTr;
- title.Zero();
- titleTr.Zero();
- title.Append(KText);
- title.AppendNum(aResourceID);
- _LIT(KSeparator, " ");
- title.Append(KSeparator);
- switch (aResourceID)
- {
- case 0:
- titleTr.Append(_L("OK"));
- title.Append(_L("OK"));
- satisfactoryIcon = 1;
- break;
- case KErrGsm0707IncorrectPassword:
- titleTr.Append(_L("txt_pin_code_dpophead_wrong_pin_code")); // TODO this also happens for lock-code
- title.Append(_L("Incorrect Password"));
- break;
- case KErrAccessDenied:
- titleTr.Append(_L("txt_pin_code_dpopinfo_access_denied"));
- title.Append(_L("Access Denied"));
- break;
- case KErrGsmSSPasswordAttemptsViolation:
- titleTr.Append(_L("KErrGsmSSPasswordAttemptsViolation"));
- title.Append(_L("Password Attempts Violation"));
- break;
- case KErrLocked:
- titleTr.Append(_L("KErrLocked"));
- title.Append(_L("Locked"));
- break;
- case KErrGsm0707OperationNotAllowed:
- titleTr.Append(_L("KErrGsm0707OperationNotAllowed"));
- title.Append(_L("Operation Not Allowed"));
- break;
- case KErrAbort:
- titleTr.Append(_L("KErrAbort"));
- title.Append(_L("Abort"));
- break;
- case KErrNotSupported:
- titleTr.Append(_L("txt_pin_code_dpopinfo_operation_not_supported"));
- title.Append(_L("Not Supported"));
- break;
- case R_SEC_BLOCKED:
- titleTr.Append(_L("txt_pin_code_dpopinfo_security_blocked"));
- title.Append(_L("BLOCKED"));
- break;
- case R_CODE_ERROR:
- titleTr.Append(_L("R_CODE_ERROR"));
- title.Append(_L("ERROR"));
- break;
- case KErrGsmInvalidParameter:
- titleTr.Append(_L("txt_pin_code_dpopinfo_gsm_invalid_parameter"));
- title.Append(_L("Invalid Parameter"));
- break;
- case R_CONFIRMATION_NOTE:
- titleTr.Append(_L("R_CONFIRMATION_NOTE"));
- title.Append(_L("CONFIRMED"));
- satisfactoryIcon = 1;
- break;
- case R_CODES_DONT_MATCH:
- titleTr.Append(_L("R_CODES_DONT_MATCH"));
- title.Append(_L("CODES DONT MATCH"));
- break;
- case R_PIN_CODE_CHANGED_NOTE:
- titleTr.Append(_L("txt_pin_code_dpopinfo_code_chaged")); // note the spelling mistake "chaged"
- title.Append(_L("PIN CODE CHANGED"));
- satisfactoryIcon = 1;
- break;
- case R_SECURITY_CODE_CHANGED_NOTE:
- titleTr.Append(_L("R_SECURITY_CODE_CHANGED_NOTE"));
- title.Append(_L("SECURITY CODE CHANGED"));
- satisfactoryIcon = 1;
- break;
- case R_SECUI_TEXT_AUTOLOCK_MUST_BE_ACTIVE:
- titleTr.Append(_L("txt_pin_code_dpopinfo_autolock_must_be_active"));
- title.Append(_L("AUTOLOCK MUST BE ACTIVE"));
- break;
- case KErrServerTerminated:
- titleTr.Append(_L("KErrServerTerminated"));
- title.Append(_L("Server Terminated"));
- break;
- case KErrServerBusy:
- titleTr.Append(_L("KErrServerBusy"));
- title.Append(_L("Server Busy"));
- break;
- case R_PIN2_REJECTED:
- titleTr.Append(_L("txt_pin_code_dpopinfo_pin2_rejected"));
- title.Append(_L("PIN2 REJECTED"));
- break;
- case R_OPERATION_NOT_ALLOWED:
- titleTr.Append(_L("R_OPERATION_NOT_ALLOWED"));
- title.Append(_L("OPERATION NOT ALLOWED"));
- break;
- case R_UPIN_NOT_ALLOWED:
- titleTr.Append(_L("txt_pin_code_dpopinfo_upin_not_allowed"));
- title.Append(_L("UPIN NOT ALLOWED"));
- break;
- case R_PIN_NOT_ALLOWED:
- titleTr.Append(_L("R_PIN_NOT_ALLOWED"));
- title.Append(_L("PIN NOT ALLOWED"));
- break;
- case R_INSERT_SIM:
- titleTr.Append(_L("txt_pin_code_dpopinfo_insert_sim"));
- title.Append(_L("INSERT SIM"));
- break;
- case R_SIM_ON:
- titleTr.Append(_L("R_SIM_ON"));
- title.Append(_L("SIM ON"));
- break;
- case KErrTimedOut:
- titleTr.Append(_L("KErrTimedOut"));
- title.Append(_L("Timed Out"));
- break;
- case R_PIN2_CODE_CHANGED_NOTE:
- titleTr.Append(_L("R_PIN2_CODE_CHANGED_NOTE"));
- title.Append(_L("PIN2 CODE CHANGED"));
- break;
- case KErrArgument:
- titleTr.Append(_L("KErrArgument"));
- title.Append(_L("Error Argument"));
- break;
- case R_SIM_OFF:
- titleTr.Append(_L("R_SIM_OFF"));
- title.Append(_L("SIM OFF"));
- break;
- case R_SIM_ALLREADY_OFF:
- titleTr.Append(_L("R_SIM_ALLREADY_OFF"));
- title.Append(_L("SIM ALLREADY OFF"));
- break;
- case R_SIM_NOT_ALLOWED:
- titleTr.Append(_L("R_SIM_NOT_ALLOWED"));
- title.Append(_L("SIM NOT ALLOWED"));
- break;
- case R_REMOTELOCK_INVALID_CODE:
- titleTr.Append(_L("R_REMOTELOCK_INVALID_CODE"));
- title.Append(_L("REMOTELOCK INVALID CODE"));
- break;
-
- case KErrTDevicelockPolicies+EDeviceLockAutolockperiod:
- titleTr.Append(_L("EDeviceLockAutolockperiod"));
- title.Append(_L("EDeviceLockAutolockperiod"));
- break;
- case KErrTDevicelockPolicies+EDeviceLockMaxAutolockPeriod:
- titleTr.Append(_L("EDeviceLockMaxAutolockPeriod"));
- title.Append(_L("EDeviceLockMaxAutolockPeriod"));
- break;
- case KErrTDevicelockPolicies+EDeviceLockMinlength:
- titleTr.Append(_L("EDeviceLockMinlength"));
- title.Append(_L("EDeviceLockMinlength"));
- break;
- case KErrTDevicelockPolicies+EDeviceLockMaxlength:
- titleTr.Append(_L("EDeviceLockMaxlength"));
- title.Append(_L("EDeviceLockMaxlength"));
- break;
- case KErrTDevicelockPolicies+EDeviceLockRequireUpperAndLower:
- titleTr.Append(_L("EDeviceLockRequireUpperAndLower"));
- title.Append(_L("EDeviceLockRequireUpperAndLower"));
- break;
- case KErrTDevicelockPolicies+EDeviceLockRequireCharsAndNumbers:
- titleTr.Append(_L("EDeviceLockRequireCharsAndNumbers"));
- title.Append(_L("EDeviceLockRequireCharsAndNumbers"));
- break;
- case KErrTDevicelockPolicies+EDeviceLockAllowedMaxRepeatedChars:
- titleTr.Append(_L("EDeviceLockAllowedMaxRepeatedChars"));
- title.Append(_L("EDeviceLockAllowedMaxRepeatedChars"));
- break;
- case KErrTDevicelockPolicies+EDeviceLockHistoryBuffer:
- titleTr.Append(_L("EDeviceLockHistoryBuffer"));
- title.Append(_L("EDeviceLockHistoryBuffer"));
- break;
- case KErrTDevicelockPolicies+EDeviceLockPasscodeExpiration:
- titleTr.Append(_L("EDeviceLockPasscodeExpiration"));
- title.Append(_L("EDeviceLockPasscodeExpiration"));
- break;
- case KErrTDevicelockPolicies+EDeviceLockMinChangeTolerance:
- titleTr.Append(_L("EDeviceLockMinChangeTolerance"));
- title.Append(_L("EDeviceLockMinChangeTolerance"));
- break;
- case KErrTDevicelockPolicies+EDeviceLockMinChangeInterval:
- titleTr.Append(_L("EDeviceLockMinChangeInterval"));
- title.Append(_L("EDeviceLockMinChangeInterval"));
- break;
- case KErrTDevicelockPolicies+EDeviceLockDisallowSpecificStrings:
- titleTr.Append(_L("EDeviceLockDisallowSpecificStrings"));
- title.Append(_L("EDeviceLockDisallowSpecificStrings"));
- break;
- case KErrTDevicelockPolicies+EDeviceLockAllowedMaxAtempts:
- titleTr.Append(_L("EDeviceLockAllowedMaxAtempts"));
- title.Append(_L("EDeviceLockAllowedMaxAtempts"));
- break;
- case KErrTDevicelockPolicies+EDeviceLockConsecutiveNumbers:
- titleTr.Append(_L("EDeviceLockConsecutiveNumbers"));
- title.Append(_L("EDeviceLockConsecutiveNumbers"));
- break;
- case KErrTDevicelockPolicies+EDeviceLockMinSpecialCharacters:
- titleTr.Append(_L("EDeviceLockMinSpecialCharacters"));
- title.Append(_L("EDeviceLockMinSpecialCharacters"));
- break;
- case KErrTDevicelockPolicies+EDeviceLockSingleCharRepeatNotAllowed:
- titleTr.Append(_L("EDeviceLockSingleCharRepeatNotAllowed"));
- title.Append(_L("EDeviceLockSingleCharRepeatNotAllowed"));
- break;
- case KErrTDevicelockPolicies+EDevicelockTotalPolicies:
- titleTr.Append(_L("EDevicelockTotalPolicies"));
- title.Append(_L("EDevicelockTotalPolicies"));
- break;
-
- default: // " "
- titleTr.Append(_L("Specific Error"));
- title.Append(_L("Specific Error"));
- break;
- /* These ones are still unused */
- // txt_pin_code_dpopinfo_ln_attempts_remaining
- // txt_pin_code_dpopinfo_emergency_calls_only
- // txt_pin_code_dpopinfo_if_failed_be_ready_with_puk
- }
-
- HBufC* stringHolder;
- RDEBUG("titleTr", 1);
- stringHolder = HbTextResolverSymbian::LoadLC(titleTr); // titleTr should I TRAP( err, ?
- RDEBUG("got stringHolder", 1);
- messageBox->SetTextL(stringHolder->Des()); // title
- RDEBUG("aResourceID", aResourceID);
- RDEBUGSTR(titleTr);
- _LIT(KIconNameWondering, "qtg_small_smiley_wondering");
- _LIT(KIconNameSmile, "qtg_small_smiley_smile");
- if (satisfactoryIcon==1)
- messageBox->SetIconNameL(KIconNameSmile);
- else
- messageBox->SetIconNameL(KIconNameWondering);
-
- if (aTone == CAknNoteDialog::EErrorTone) // another case is EConfirmationTone
- {
- messageBox->SetTimeout(messageBox->Timeout() * 2); // errors are displayed double time
- }
- // messageBox->ShowL();
- RDEBUG("calling ExecL", 0);
- CHbDeviceMessageBoxSymbian::TButtonId selection = messageBox->ExecL(); // this guarantees that it waits for the dismiss/timeout
- RDEBUG("called ExecL.selection", selection);
- CleanupStack::PopAndDestroy(stringHolder);
- CleanupStack::PopAndDestroy(); // messageBox
-
+ {
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CSecuritySettings::ShowResultNoteL()"));
+ RDebug::Print(_L("(SECUI)CSecuritySettings::ShowResultNoteL() Resource ID: %d"), aResourceID);
+ #endif
+ CAknNoteDialog* noteDlg = new (ELeave) CAknNoteDialog(REINTERPRET_CAST(CEikDialog**,¬eDlg));
+ noteDlg->SetTimeout(CAknNoteDialog::ELongTimeout);
+ noteDlg->SetTone(aTone);
+ noteDlg->ExecuteLD(aResourceID);
}
//
@@ -1473,1316 +2469,139 @@
// CSecuritySettings::IsUpinSupportedL()
// Return is UPIN supported
// ----------------------------------------------------------
-// qtdone
+//
EXPORT_C TBool CSecuritySettings::IsUpinSupportedL()
- {
- TBool wcdmaSupported(FeatureManager::FeatureSupported(KFeatureIdProtocolWcdma));
- TBool upinSupported(FeatureManager::FeatureSupported(KFeatureIdUpin));
- TBool isSupported = EFalse;
- RDEBUG("wcdmaSupported", wcdmaSupported);
- RDEBUG("upinSupported", upinSupported);
- if (wcdmaSupported || upinSupported)
- {
+{
+ TBool wcdmaSupported(FeatureManager::FeatureSupported( KFeatureIdProtocolWcdma ));
+ TBool upinSupported(FeatureManager::FeatureSupported( KFeatureIdUpin ));
+ if(wcdmaSupported || upinSupported)
+ {
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CSecuritySettings::IsUpinSupported() BEGIN"));
+ #endif
+ #ifdef __WINS__
+
+ return EFalse;
+
+ #else //WINS
+
RMobilePhone::TMobilePhoneLockInfoV1 lockInfo;
-
+
//get lock info
RMobilePhone::TMobilePhoneLockInfoV1Pckg lockInfoPkg(lockInfo);
iWait->SetRequestType(EMobilePhoneGetLockInfo);
- RDEBUG("GetLockInfo", 0);
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CSecuritySettings::IsUpinSupported() GetLockInfo"));
+ #endif
iPhone.GetLockInfo(iWait->iStatus, RMobilePhone::ELockUniversalPin, lockInfoPkg);
- RDEBUG("WaitForRequestL", 0);
TInt res = iWait->WaitForRequestL();
- RDEBUG("WaitForRequestL res", res);
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CSecuritySettings::IsUpinSupported() GetLockInfo DONE"));
+ #endif
if ((res == KErrNotSupported) || (res == KErrGsmInvalidParameter))
- {
- RDEBUG("0", 0);
- isSupported = EFalse;
- }
- else
- {
- RDEBUG("1", 1);
- isSupported = ETrue;
- }
- }
- else
- isSupported = EFalse;
- RDEBUG("isSupported", isSupported);
- return isSupported;
- }
-//
-// ----------------------------------------------------------
-// CSecuritySettings::IsUpinBlocked()
-// Return is a code blocked
-// ----------------------------------------------------------
-// qtdone
-EXPORT_C TBool CSecuritySettings::IsUpinBlocked()
- {
- TBool wcdmaSupported(FeatureManager::FeatureSupported(KFeatureIdProtocolWcdma));
- TBool upinSupported(FeatureManager::FeatureSupported(KFeatureIdUpin));
- if (wcdmaSupported || upinSupported)
{
- RMmCustomAPI::TSecurityCodeType secCodeType;
- secCodeType = RMmCustomAPI::ESecurityUniversalPin;
- TBool isBlocked = EFalse;
- RDEBUG("IsBlocked", 0);
- TInt ret = iCustomPhone.IsBlocked(secCodeType, isBlocked);
- RDEBUG("ret", ret);
- RDEBUG("isBlocked", isBlocked);
- return isBlocked;
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CSecuritySettings::IsUpinSupported(): NOT SUPPORTED"));
+ #endif
+ return EFalse;
}
- else
- return EFalse;
- }
-//
-// ----------------------------------------------------------
-// CSecuritySettings::IsUpinActive()
-// Return the code active in current application (PIN/UPIN)
-// ----------------------------------------------------------
-// qtdone
-EXPORT_C TBool CSecuritySettings::IsUpinActive()
- {
- TBool wcdmaSupported(FeatureManager::FeatureSupported(KFeatureIdProtocolWcdma));
- TBool upinSupported(FeatureManager::FeatureSupported(KFeatureIdUpin));
- if (wcdmaSupported || upinSupported)
- {
- RMobilePhone::TMobilePhoneSecurityCode activePin;
- RDEBUG("GetActivePin", 0);
- iCustomPhone.GetActivePin(activePin);
- RDEBUG("activePin", activePin);
- RDEBUG("RMobilePhone::ESecurityUniversalPin",
- RMobilePhone::ESecurityUniversalPin);
- if (activePin == RMobilePhone::ESecurityUniversalPin)
- {
- return ETrue;
- }
- return EFalse;
- }
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CSecuritySettings::IsUpinSupported(): SUPPORTED: %d"), res);
+ #endif
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CSecuritySettings::IsUpinSupported() END"));
+ #endif
+ return ETrue;
+
+ #endif //WINS
+ }
else
return EFalse;
- }
-
-/**************************/
-// qtdone
-EXPORT_C TInt CSecuritySettings::ChangePinParamsL(RMobilePhone::TMobilePassword aOldPassword, RMobilePhone::TMobilePassword aNewPassword, TInt aFlags, TDes& aCaption,
- TInt aShowError)
- {
- RDEBUG("aFlags", aFlags);
- RDEBUG("aOldPassword", 0);
- RDEBUGSTR(aOldPassword);
- RDEBUG("aNewPassword", 0);
- RDEBUGSTR(aNewPassword);
- RDEBUG("aCaption", 0);
- RDEBUGSTR(aCaption);
- RDEBUG("aShowError", aShowError);
-
- /*****************************************************
- * Series 60 Customer / ETel
- * Series 60 ETel API
- *****************************************************/
-
- TInt simState;
- TInt err(KErrGeneral);
- err = RProperty::Get(KPSUidStartup, KPSSimStatus, simState);
- User::LeaveIfError(err);
- TBool simRemoved(simState == ESimNotPresent);
-
- RDEBUG("simRemoved", simRemoved);
- if (simRemoved)
- {
- ShowResultNoteL(R_INSERT_SIM, CAknNoteDialog::EErrorTone);
- return KErrAccessDenied;
- }
- RMobilePhone::TMobilePhoneSecurityCode secCodeType;
- secCodeType = RMobilePhone::ESecurityCodePin1;
-
- RMobilePhone::TMobilePassword oldPassword;
- RMobilePhone::TMobilePassword newPassword;
- RMobilePhone::TMobilePhonePasswordChangeV1 passwords;
- RMobilePhone::TMobilePhoneSecurityCodeInfoV5 codeInfo;
- RMobilePhone::TMobilePhoneSecurityCodeInfoV5Pckg codeInfoPkg(codeInfo);
- RMobilePhone::TMobilePassword required_fourth;
- TInt queryAccepted = KErrCancel;
-
- RDEBUG("0", 0);
-
- RMobilePhone::TMobilePhoneLock lockType;
- RMobilePhone::TMobilePhoneLockInfoV1 lockInfo;
-
- lockType = RMobilePhone::ELockICC;
-
- RMobilePhone::TMobilePhoneLockInfoV1Pckg lockInfoPkg(lockInfo);
- RDEBUG("0", 0);
- iWait->SetRequestType(EMobilePhoneGetLockInfo);
- TInt res = KErrNone;
- RDEBUG("GetLockInfo", 0);
- iPhone.GetLockInfo(iWait->iStatus, lockType, lockInfoPkg);
- RDEBUG("WaitForRequestL", 0);
- res = iWait->WaitForRequestL();
- RDEBUG("WaitForRequestL res", res);
-#ifdef __WINS__
- if (res == KErrTimedOut)
- {
- lockInfo.iSetting = RMobilePhone::ELockSetEnabled;
- res = KErrNone;
- }
-#endif
-
- User::LeaveIfError(res);
-
- if (lockInfo.iSetting == RMobilePhone::ELockSetDisabled)
- {
- RDEBUG("RMobilePhone::ELockSetDisabled",
- RMobilePhone::ELockSetDisabled);
- ShowResultNoteL(R_PIN_NOT_ALLOWED, CAknNoteDialog::EErrorTone);
- return KErrAccessDenied;
- }
-
- RDEBUG("0", 0);
- iWait->SetRequestType(EMobilePhoneGetSecurityCodeInfo);
- RDEBUG("GetSecurityCodeInfo", 0);
- iPhone.GetSecurityCodeInfo(iWait->iStatus, secCodeType, codeInfoPkg);
- RDEBUG("WaitForRequestL", 0);
- res = iWait->WaitForRequestL();
- RDEBUG("WaitForRequestL res", res);
-#ifdef __WINS__
- if (res == KErrNotSupported || res == KErrTimedOut)
- {
- res = KErrNone;
- codeInfo.iRemainingEntryAttempts = KMaxNumberOfPINAttempts;
- }
-#endif
- User::LeaveIfError(res);
-
- RDEBUG("codeInfo.iRemainingEntryAttempts",
- codeInfo.iRemainingEntryAttempts);
- if (codeInfo.iRemainingEntryAttempts == KMaxNumberOfPINAttempts)
- codeInfo.iRemainingEntryAttempts = -1;
-
- RDEBUG("checking aOldPassword", 0);
- if (aOldPassword.Length() == 0)
- {
- RDEBUG("asking aOldPassword", 0);
- /* request PIN using QT */
- queryAccepted = KErrCancel;
- CSecQueryUi *iSecQueryUi;
- iSecQueryUi = CSecQueryUi::NewL();
- TBuf<0x100> title;
- title.Zero();
- HBufC* stringHolder = HbTextResolverSymbian::LoadLC(_L("txt_pin_code_dialog_pin_code"));
- title.Append(stringHolder->Des());
- CleanupStack::PopAndDestroy(stringHolder);
- title.Append(_L("$"));
- title.AppendNum(codeInfo.iRemainingEntryAttempts);
- queryAccepted = iSecQueryUi->SecQueryDialog(title, oldPassword, SEC_C_PIN_CODE_MIN_LENGTH, SEC_C_PIN_CODE_MAX_LENGTH, ESecUiAlphaNotSupported | ESecUiCancelSupported
- | ESecUiEmergencyNotSupported | secCodeType);
- RDEBUG("oldPassword", 0);
- RDEBUGSTR(oldPassword);
- RDEBUG("queryAccepted", queryAccepted);
- delete iSecQueryUi;
- if (queryAccepted != KErrNone)
- return KErrAbort;
- /* end request PIN using QT */
-
- // verify it now, so that the user doesn't need to see the error _after_ typing the new ones
- RDEBUG("VerifySecurityCode", 0);
- iPhone.VerifySecurityCode(iWait->iStatus, secCodeType, oldPassword, required_fourth);
- RDEBUG("WaitForRequestL", 0);
- res = iWait->WaitForRequestL();
- RDEBUG("WaitForRequestL res", res);
-#ifdef __WINS__
- if (res == KErrNotSupported)
- res = KErrNone;
-#endif
- if (res != KErrNone)
- {
- ShowResultNoteL(res, CAknNoteDialog::EErrorTone);
- return res; // not sure if it's wise to exit now.
- }
-
- newPassword = _L("");
- }
+}
+//
+// ----------------------------------------------------------
+// CSecuritySettings::IsCodeBlocked()
+// Return is a code blocked
+// ----------------------------------------------------------
+//
+EXPORT_C TBool CSecuritySettings::IsUpinBlocked()
+{
+TBool wcdmaSupported(FeatureManager::FeatureSupported( KFeatureIdProtocolWcdma ));
+ TBool upinSupported(FeatureManager::FeatureSupported( KFeatureIdUpin ));
+ if(wcdmaSupported || upinSupported)
+ {
+ #ifdef __WINS__
+ return EFalse;
+ #else//__WINS__
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CSecuritySettings::IsUpinBlocked() BEGIN"));
+ #endif
+ RMmCustomAPI::TSecurityCodeType secCodeType;
+ secCodeType = RMmCustomAPI::ESecurityUniversalPin;
+ TBool isBlocked = EFalse;
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CSecuritySettings::IsUpinBlocked() IsBlocked"));
+ #endif
+ TInt ret = iCustomPhone.IsBlocked(secCodeType,isBlocked);
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CSecuritySettings::IsUpinBlocked() DONE.RETURN: %d"), ret);
+ #endif
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CSecuritySettings::IsUpinBlocked():isblocked: %d"), isBlocked);
+ #endif
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CSecuritySettings::IsUpinBlocked() END"));
+ #endif
+ return isBlocked;
+ #endif //__WINS__
+ }
else
- {
- oldPassword.Copy(aOldPassword);
- newPassword.Copy(aNewPassword);
- }
-
- RDEBUG("res", res);
- while (newPassword.Length() == 0)
- {
- // this is not needed because the dialog won't allow to close, unless codes match
- // codes do not match -> note -> ask new pin and verification codes again
- // if(newPassword.Length()>0)
- // ShowResultNoteL(R_CODES_DONT_MATCH, CAknNoteDialog::EErrorTone);
-
- newPassword = _L("");
-
- // new pin code query
- if (aOldPassword.Length() == 0) // only if input parameters are empty
- {
- queryAccepted = KErrCancel;
- CSecQueryUi *iSecQueryUi;
- iSecQueryUi = CSecQueryUi::NewL();
- // this queries both, and verifies itself
- TBuf<0x100> title;
- title.Zero();
- HBufC* stringHolder = HbTextResolverSymbian::LoadLC(_L("txt_pin_code_dialog_new_pin_code"));
- title.Append(stringHolder->Des());
- CleanupStack::PopAndDestroy(stringHolder);
- title.Append(_L("|"));
- HBufC* stringHolder2 = HbTextResolverSymbian::LoadLC(_L("txt_pin_code_dialog_verify_new_pin_code"));
- title.Append(stringHolder2->Des());
- CleanupStack::PopAndDestroy(stringHolder2);
- queryAccepted = iSecQueryUi->SecQueryDialog(title, newPassword, SEC_C_PIN_CODE_MIN_LENGTH, SEC_C_PIN_CODE_MAX_LENGTH, ESecUiAlphaNotSupported | ESecUiCancelSupported
- | ESecUiEmergencyNotSupported | secCodeType);
- RDEBUG("newPassword", 1);
- RDEBUGSTR(newPassword);
- RDEBUG("queryAccepted", queryAccepted);
- delete iSecQueryUi;
- if (queryAccepted != KErrNone)
- return KErrAbort;
- RDEBUG("0", 0);
- }
- }
-
- // send code
- passwords.iOldPassword = oldPassword;
- passwords.iNewPassword = newPassword;
- RDEBUG("passwords", 0);
- RDEBUGSTR(passwords.iOldPassword);
- RDEBUGSTR(passwords.iNewPassword);
- RDEBUG("SetRequestType", 0);
- iWait->SetRequestType(EMobilePhoneChangeSecurityCode);
- RDEBUG("ChangeSecurityCode", 0);
- iPhone.ChangeSecurityCode(iWait->iStatus, secCodeType, passwords);
- RDEBUG("WaitForRequestL", 0);
- res = iWait->WaitForRequestL();
- RDEBUG("WaitForRequestL res", res);
-#ifdef __WINS__
- if (res == KErrNotSupported)
- res = KErrNone;
-#endif
-
- switch (res)
- {
- case KErrNone:
- {
- // code changed
- ShowResultNoteL(R_PIN_CODE_CHANGED_NOTE, CAknNoteDialog::EConfirmationTone);
- break;
- }
- case KErrGsm0707IncorrectPassword:
- case KErrAccessDenied:
- {
- // code was entered erroneously. This is strange, because it was verified before
- ShowResultNoteL(R_CODE_ERROR, CAknNoteDialog::EErrorTone);
- ChangePinParamsL(_L(""), _L(""), aFlags, aCaption, aShowError);
- break;
- }
- case KErrGsmSSPasswordAttemptsViolation:
- case KErrLocked:
- {
- // Pin1 blocked!
- return KErrLocked;
- }
- case KErrGsm0707OperationNotAllowed:
- {
- // not allowed with this sim
- ShowResultNoteL(R_OPERATION_NOT_ALLOWED, CAknNoteDialog::EErrorTone);
- return KErrGsm0707OperationNotAllowed;
- }
- case KErrAbort:
- {
- break;
- }
- default:
- {
- ShowErrorNoteL(res);
- ChangePinParamsL(_L(""), _L(""), aFlags, aCaption, aShowError);
- break;
- }
- }
- return res;
- }
-/*********************************************/
-// qtdone
-EXPORT_C TInt CSecuritySettings::ChangeUPinParamsL(RMobilePhone::TMobilePassword aOldPassword, RMobilePhone::TMobilePassword aNewPassword, TInt aFlags, TDes& aCaption,
- TInt aShowError)
- {
- RDEBUG("aFlags", aFlags);
- // the password parameters are not used
- if (aOldPassword.Length() > 0)
- RDEBUGSTR(aOldPassword);
- if (aNewPassword.Length() > 0)
- RDEBUGSTR(aNewPassword);
-
- if (aCaption.Length() > 0)
- RDEBUGSTR(aCaption);
-
- TBool wcdmaSupported(FeatureManager::FeatureSupported(KFeatureIdProtocolWcdma));
- TBool upinSupported(FeatureManager::FeatureSupported(KFeatureIdUpin));
- if (!(wcdmaSupported || upinSupported))
- {
- RDEBUG("! upinSupported", upinSupported);
- return KErrAccessDenied;
- }
-
- RDEBUG("upinSupported", upinSupported);
- TInt simState;
- TInt err(KErrGeneral);
- err = RProperty::Get(KPSUidStartup, KPSSimStatus, simState);
- User::LeaveIfError(err);
- TBool simRemoved(simState == ESimNotPresent);
-
- if (simRemoved)
- {
- ShowResultNoteL(R_INSERT_SIM, CAknNoteDialog::EErrorTone);
- return KErrAccessDenied;
- }
-
- RMobilePhone::TMobilePhoneSecurityCode secCodeType;
- secCodeType = RMobilePhone::ESecurityUniversalPin;
-
- RMobilePhone::TMobilePassword oldPassword;
- RMobilePhone::TMobilePassword newPassword;
- RMobilePhone::TMobilePassword verifcationPassword;
- RMobilePhone::TMobilePhonePasswordChangeV1 passwords;
- RMobilePhone::TMobilePhoneSecurityCodeInfoV5 codeInfo;
- RMobilePhone::TMobilePhoneSecurityCodeInfoV5Pckg codeInfoPkg(codeInfo);
- RMobilePhone::TMobilePhoneLock lockType;
- RMobilePhone::TMobilePhoneLockInfoV1 lockInfo;
- TInt queryAccepted = KErrCancel;
-
- lockType = RMobilePhone::ELockUniversalPin;
-
- RMobilePhone::TMobilePhoneLockInfoV1Pckg lockInfoPkg(lockInfo);
- iWait->SetRequestType(EMobilePhoneGetLockInfo);
- RDEBUG("GetLockInfo", 0);
- iPhone.GetLockInfo(iWait->iStatus, lockType, lockInfoPkg);
- RDEBUG("WaitForRequestL", 0);
- TInt res = iWait->WaitForRequestL();
- RDEBUG("WaitForRequestL res", res);
-#ifdef __WINS__
- if (res == KErrNotSupported)
- {
- res = KErrNone;
- lockInfo.iSetting = RMobilePhone::ELockSetEnabled;
- }
-#endif
- User::LeaveIfError(res);
-
- RDEBUG("lockInfo.iSetting", lockInfo.iSetting);
- RDEBUG("RMobilePhone::ELockSetDisabled", RMobilePhone::ELockSetDisabled);
- if (lockInfo.iSetting == RMobilePhone::ELockSetDisabled)
- {
- ShowResultNoteL(R_UPIN_NOT_ALLOWED, CAknNoteDialog::EErrorTone);
- return KErrAccessDenied;
- }
-
- iWait->SetRequestType(EMobilePhoneGetSecurityCodeInfo);
- RDEBUG("GetSecurityCodeInfo", 0);
- iPhone.GetSecurityCodeInfo(iWait->iStatus, secCodeType, codeInfoPkg);
- RDEBUG("WaitForRequestL", 0);
- res = iWait->WaitForRequestL();
- RDEBUG("WaitForRequestL res", res);
-#ifdef __WINS__
- if (res == KErrNotSupported || res == KErrTimedOut)
- {
- res = KErrNone;
- codeInfo.iRemainingEntryAttempts = KMaxNumberOfPINAttempts;
- }
-#endif
- User::LeaveIfError(res);
-
- RDEBUG("codeInfo.iRemainingEntryAttempts",
- codeInfo.iRemainingEntryAttempts);
- if (codeInfo.iRemainingEntryAttempts == KMaxNumberOfPINAttempts)
- codeInfo.iRemainingEntryAttempts = -1;
-
- queryAccepted = KErrCancel;
- CSecQueryUi *iSecQueryUi;
- iSecQueryUi = CSecQueryUi::NewL();
- TBuf<0x100> title;
- title.Zero();
- HBufC* stringHolder = HbTextResolverSymbian::LoadLC(_L("txt_pin_code_dialog_upin_code"));
- title.Append(stringHolder->Des());
- CleanupStack::PopAndDestroy(stringHolder);
- title.Append(_L("$"));
- title.AppendNum(codeInfo.iRemainingEntryAttempts);
- queryAccepted = iSecQueryUi->SecQueryDialog(title, oldPassword, SEC_C_PIN_CODE_MIN_LENGTH, SEC_C_PIN_CODE_MAX_LENGTH, ESecUiAlphaNotSupported | ESecUiCancelSupported
- | ESecUiEmergencyNotSupported | secCodeType);
- RDEBUG("oldPassword", 0);
- RDEBUGSTR(oldPassword);
- RDEBUG("queryAccepted", queryAccepted);
- delete iSecQueryUi;
- if (queryAccepted != KErrNone)
- return KErrAbort;
- res = KErrNone; // indicate that everything is ok
-
- {
- queryAccepted = KErrCancel;
- CSecQueryUi * iSecQueryUi;
- iSecQueryUi = CSecQueryUi::NewL();
- // this queries both, and verifies itself
- TBuf<0x100> title;
- title.Zero();
-
- HBufC* stringHolder = HbTextResolverSymbian::LoadLC(_L("txt_pin_code_dialog_new_upin_code"));
- title.Append(stringHolder->Des());
- CleanupStack::PopAndDestroy(stringHolder);
- title.Append(_L("|"));
- HBufC* stringHolder2 = HbTextResolverSymbian::LoadLC(_L("txt_pin_code_dialog_retype_upin_code"));
- title.Append(stringHolder2->Des());
- CleanupStack::PopAndDestroy(stringHolder2);
- queryAccepted = iSecQueryUi->SecQueryDialog(title, newPassword, SEC_C_PIN_CODE_MIN_LENGTH, SEC_C_PIN_CODE_MAX_LENGTH, ESecUiAlphaNotSupported | ESecUiCancelSupported
- | ESecUiEmergencyNotSupported | secCodeType);
- RDEBUG("newPassword", 0);
- RDEBUGSTR(newPassword);
- RDEBUG("queryAccepted", queryAccepted);
- delete iSecQueryUi;
- if (queryAccepted != KErrNone)
- return KErrAbort;
- }
- // send code
- passwords.iOldPassword = oldPassword;
- passwords.iNewPassword = newPassword;
- iWait->SetRequestType(EMobilePhoneChangeSecurityCode);
- RDEBUG("ChangeSecurityCode", 0);
- iPhone.ChangeSecurityCode(iWait->iStatus, secCodeType, passwords);
- RDEBUG("WaitForRequestL", 0);
- res = iWait->WaitForRequestL();
- RDEBUG("WaitForRequestL res", res);
-#ifdef __WINS__
- if (res == KErrNotSupported)
- res = KErrNone;
-#endif
- switch (res)
- {
- case KErrNone:
- {
- // code changed
- ShowResultNoteL(R_UPIN_CODE_CHANGED_NOTE, CAknNoteDialog::EConfirmationTone);
- break;
- }
- case KErrGsm0707IncorrectPassword:
- case KErrAccessDenied:
- {
- // code was entered erroneously
- ShowResultNoteL(R_CODE_ERROR, CAknNoteDialog::EErrorTone);
- ChangeUPinParamsL(_L(""), _L(""), aFlags, aCaption, aShowError);
- break;
- }
- case KErrGsmSSPasswordAttemptsViolation:
- case KErrLocked:
- {
- return KErrLocked;
- }
- case KErrGsm0707OperationNotAllowed:
- {
- // not allowed with this sim
- ShowResultNoteL(R_OPERATION_NOT_ALLOWED, CAknNoteDialog::EErrorTone);
- return KErrGsm0707OperationNotAllowed;
- }
- case KErrAbort:
- {
- break;
- }
- default:
- {
- ShowErrorNoteL(res);
- ChangeUPinParamsL(_L(""), _L(""), aFlags, aCaption, aShowError);
- break;
- }
- }
- return res;
- }
-/***************************************/
-// qtdone
-EXPORT_C TInt CSecuritySettings::ChangePin2ParamsL(RMobilePhone::TMobilePassword aOldPassword, RMobilePhone::TMobilePassword aNewPassword, TInt aFlags, TDes& aCaption,
- TInt aShowError)
- {
- RDEBUG("aFlags", aFlags);
- // the password parameters are not used
- if (aOldPassword.Length() > 0)
- RDEBUGSTR(aOldPassword);
- if (aNewPassword.Length() > 0)
- RDEBUGSTR(aNewPassword);
-
- if (aCaption.Length() > 0)
- RDEBUGSTR(aCaption);
-
- TInt simState;
- TInt err(KErrGeneral);
- err = RProperty::Get(KPSUidStartup, KPSSimStatus, simState);
- User::LeaveIfError(err);
- TBool simRemoved(simState == ESimNotPresent);
-
- if (simRemoved)
- {
- ShowResultNoteL(R_INSERT_SIM, CAknNoteDialog::EErrorTone);
- return KErrAccessDenied;
- }
-
- RMmCustomAPI::TSecurityCodeType secCodeType;
- RMobilePhone::TMobilePhoneSecurityCode EtelsecCodeType;
- secCodeType = RMmCustomAPI::ESecurityCodePin2;
- RMobilePhone::TMobilePassword oldPassword;
- RMobilePhone::TMobilePassword newPassword;
- RMobilePhone::TMobilePassword verifcationPassword;
- RMobilePhone::TMobilePhonePasswordChangeV1 passwords;
- RMobilePhone::TMobilePhoneSecurityCodeInfoV5 codeInfo;
- RMobilePhone::TMobilePhoneSecurityCodeInfoV5Pckg codeInfoPkg(codeInfo);
- TInt queryAccepted = KErrCancel;
-
- // check if pin2 is blocked...
- TBool isBlocked = EFalse;
-
- TInt ret = iCustomPhone.IsBlocked(secCodeType, isBlocked);
- RDEBUG("isBlocked", isBlocked);
- if (isBlocked)
- return KErrAccessDenied;
- RDEBUG("ret", ret);
-#ifdef __WINS__
- if (ret == KErrNotSupported)
- ret = KErrNone;
-#endif
-
- if (ret != KErrNone)
- {
- switch (ret)
- {
- // PIN2 Blocked.
- case KErrGsm0707SIMPuk2Required:
- break;
- case KErrGsmSSPasswordAttemptsViolation:
- case KErrLocked:
- // Pin2 features blocked permanently!
- ShowResultNoteL(R_PIN2_REJECTED, CAknNoteDialog::EConfirmationTone);
- break;
- case KErrGsm0707SimNotInserted:
- // not allowed with this sim
- ShowResultNoteL(R_OPERATION_NOT_ALLOWED, CAknNoteDialog::EErrorTone);
- break;
- default:
- ShowErrorNoteL(ret);
- break;
- }
- return KErrAccessDenied;
- }
-
- // Security code must be changed to Etel API format
- // Custom API Pin1 and Pin2 have the same enum values as the Etel ones
- EtelsecCodeType = (RMobilePhone::TMobilePhoneSecurityCode) secCodeType;
- iWait->SetRequestType(EMobilePhoneGetSecurityCodeInfo);
- RDEBUG("GetSecurityCodeInfo", 0);
- iPhone.GetSecurityCodeInfo(iWait->iStatus, EtelsecCodeType, codeInfoPkg);
- RDEBUG("WaitForRequestL", 0);
- ret = iWait->WaitForRequestL();
- RDEBUG("WaitForRequestL ret", ret);
-#ifdef __WINS__
- if (ret == KErrNotSupported || ret == KErrTimedOut)
- {
- codeInfo.iRemainingEntryAttempts = 1;
- ret = KErrNone;
- }
-#endif
- User::LeaveIfError(ret);
-
- RDEBUG("codeInfo.iRemainingEntryAttempts",
- codeInfo.iRemainingEntryAttempts);
- if (codeInfo.iRemainingEntryAttempts == KMaxNumberOfPINAttempts)
- codeInfo.iRemainingEntryAttempts = -1;
-
- /* request PIN using QT */
- queryAccepted = KErrCancel;
- CSecQueryUi *iSecQueryUi;
- iSecQueryUi = CSecQueryUi::NewL();
- TBuf<0x100> title;
- title.Zero();
- HBufC* stringHolder = HbTextResolverSymbian::LoadLC(_L("txt_pin_code_dialog_pin2_code"));
- title.Append(stringHolder->Des());
- CleanupStack::PopAndDestroy(stringHolder);
- title.Append(_L("$"));
- title.AppendNum(codeInfo.iRemainingEntryAttempts);
- queryAccepted = iSecQueryUi->SecQueryDialog(title, oldPassword, SEC_C_PIN2_CODE_MIN_LENGTH, SEC_C_PIN2_CODE_MAX_LENGTH, ESecUiAlphaNotSupported | ESecUiCancelSupported
- | ESecUiEmergencyNotSupported | secCodeType);
- RDEBUG("oldPassword", 0);
- RDEBUGSTR(oldPassword);
- RDEBUG("queryAccepted", queryAccepted);
- delete iSecQueryUi;
- if (queryAccepted != KErrNone)
- return KErrAbort;
- /* end request PIN using QT */
-
- /* request PIN using QT */
- {
- queryAccepted = KErrCancel;
- CSecQueryUi * iSecQueryUi;
- iSecQueryUi = CSecQueryUi::NewL();
- // this queries both, and verifies itself
- TBuf<0x100> title;
- title.Zero();
- HBufC* stringHolder = HbTextResolverSymbian::LoadLC(_L("txt_pin_code_dialog_new_pin2_code"));
- title.Append(stringHolder->Des());
- CleanupStack::PopAndDestroy(stringHolder);
- title.Append(_L("|"));
- HBufC* stringHolder2 = HbTextResolverSymbian::LoadLC(_L("Verify"));
- title.Append(stringHolder2->Des());
- CleanupStack::PopAndDestroy(stringHolder2);
- queryAccepted = iSecQueryUi->SecQueryDialog(title, newPassword, SEC_C_PIN2_CODE_MIN_LENGTH, SEC_C_PIN2_CODE_MAX_LENGTH, ESecUiAlphaNotSupported | ESecUiCancelSupported
- | ESecUiEmergencyNotSupported | secCodeType);
- RDEBUG("newPassword", 0);
- RDEBUGSTR(newPassword);
- RDEBUG("queryAccepted", queryAccepted);
- delete iSecQueryUi;
- if (queryAccepted != KErrNone)
- return KErrAbort;
- }
- /* end request PIN using QT */
-
- passwords.iOldPassword = oldPassword;
- passwords.iNewPassword = newPassword;
- iWait->SetRequestType(EMobilePhoneChangeSecurityCode);
- RDEBUG("ChangeSecurityCode", 0);
- iPhone.ChangeSecurityCode(iWait->iStatus, EtelsecCodeType, passwords);
- RDEBUG("WaitForRequestL", 0);
- TInt res = iWait->WaitForRequestL();
- RDEBUG("WaitForRequestL res", res);
-#ifdef __WINS__
- if (res == KErrNotSupported)
- res = KErrNone;
-#endif
- switch (res)
- {
- case KErrNone:
- {
- // code changed
- ShowResultNoteL(R_PIN2_CODE_CHANGED_NOTE, CAknNoteDialog::EConfirmationTone);
- break;
- }
- case KErrGsm0707IncorrectPassword:
- case KErrAccessDenied:
- {
- ShowResultNoteL(R_CODE_ERROR, CAknNoteDialog::EErrorTone);
- ChangePin2ParamsL(_L(""), _L(""), aFlags, aCaption, aShowError);
- break;
- }
- case KErrGsmSSPasswordAttemptsViolation:
- case KErrLocked:
- {
- // Pin2 blocked!
- ShowResultNoteL(KErrLocked, CAknNoteDialog::EErrorTone);
- CSecurityHandler* handler = new (ELeave) CSecurityHandler(iPhone);
- CleanupStack::PushL(handler);
- handler->HandleEventL(RMobilePhone::EPuk2Required);
- CleanupStack::PopAndDestroy(handler); // handler
- return KErrLocked;
- }
- case KErrGsm0707OperationNotAllowed:
- {
- // not allowed with this sim
- ShowResultNoteL(R_OPERATION_NOT_ALLOWED, CAknNoteDialog::EErrorTone);
- return KErrGsm0707OperationNotAllowed;
- }
- case KErrAbort:
- {
- break;
- }
- default:
- {
- ShowErrorNoteL(res);
- ChangePin2ParamsL(_L(""), _L(""), aFlags, aCaption, aShowError);
- break;
- }
- }
- return res;
- }
-/************************************************/
-// qtdone
-EXPORT_C TInt CSecuritySettings::ChangeSecCodeParamsL(RMobilePhone::TMobilePassword aOldPassword, RMobilePhone::TMobilePassword aNewPassword, TInt aFlags, TDes& aCaption,
- TInt aShowError)
- {
- RDEBUG("aFlags", aFlags);
- RDEBUG("aShowError", aShowError);
- /*****************************************************
- * Series 60 Customer / ETel
- * Series 60 ETel API
- *****************************************************/
- TInt res = KErrNone;
- TInt queryAccepted = KErrCancel;
- RMobilePhone::TMobilePassword newPassword;
-
- RMobilePhone::TMobilePhoneSecurityCode secCodeType;
- secCodeType = RMobilePhone::ESecurityCodePhonePassword;
- RMobilePhone::TMobilePassword oldPassword;
- RMobilePhone::TMobilePassword required_fourth;
- RMobilePhone::TMobilePhonePasswordChangeV1 passwords;
-
- // confirm that it can be changed now
- {
- RArray<TDevicelockPolicies> aFailedPolicies;
- TDevicelockPolicies failedPolicy;
- TInt retLockcode = KErrNone;
- RSCPClient scpClient;
- retLockcode = scpClient.Connect();
- RDEBUG( "retLockcode", retLockcode );
- if(retLockcode == KErrNone )
- {
- RDEBUG( "scpClient.VerifyNewLockcodeAgainstPolicies", 0 );
- retLockcode = scpClient.IsLockcodeChangeAllowedNow( aFailedPolicies );
- RDEBUG( "retLockcode", retLockcode );
- RDEBUG( "aFailedPolicies.Count()", aFailedPolicies.Count() );
- res = retLockcode;
- for(TInt i=0; i<aFailedPolicies.Count(); i++)
- {
- failedPolicy = aFailedPolicies[i];
- RDEBUG( "failedPolicy", failedPolicy );
- // it could also be res = KErrGsm0707IncorrectPassword;
- res = KErrTDevicelockPolicies + failedPolicy;
- }
- scpClient.Close();
- if(retLockcode!=KErrNone)
- {
- ShowResultNoteL(res, CAknNoteDialog::EErrorTone);
- return res;
- }
- }
- else
- {
- RDEBUG( "failed connecting to SCP", retLockcode );
- // what to do? let's assume that we don't need special policies.
- }
- }
-
- RDEBUG("aOldPassword.Length()", aOldPassword.Length());
- if (aOldPassword.Length() == 0)
- {
- // aOldPassword was not given as a parameter
- queryAccepted = KErrCancel;
- CSecQueryUi *iSecQueryUi;
- iSecQueryUi = CSecQueryUi::NewL();
- TBuf<0x100> title;
- title.Zero();
- HBufC* stringHolder = HbTextResolverSymbian::LoadLC(_L("txt_pin_code_dialog_sec_code"));
- title.Append(stringHolder->Des());
- CleanupStack::PopAndDestroy(stringHolder);
- queryAccepted = iSecQueryUi->SecQueryDialog(title, oldPassword, SEC_C_SECURITY_CODE_MIN_LENGTH, SEC_C_SECURITY_CODE_MAX_LENGTH, ESecUiAlphaSupported
- | ESecUiCancelSupported | ESecUiEmergencyNotSupported | secCodeType);
- RDEBUG("oldPassword", 0);
- RDEBUGSTR(oldPassword);
- RDEBUG("queryAccepted", queryAccepted);
- delete iSecQueryUi;
- if (queryAccepted != KErrNone)
- return KErrAbort;
- newPassword = _L("");
- }
- else
- {
- RDEBUG("parameter includes oldPassword", 1);
- oldPassword.Copy(aOldPassword);
- newPassword.Copy(aNewPassword);
- }
-
- // check current code before proceeding
- RDEBUG("EMobilePhoneVerifySecurityCode", EMobilePhoneVerifySecurityCode);
- iWait->SetRequestType(EMobilePhoneVerifySecurityCode); // 0x59F1
- RDEBUG("VerifySecurityCode", 0);
- iPhone.VerifySecurityCode(iWait->iStatus, secCodeType, oldPassword, required_fourth);
- RDEBUG("WaitForRequestL", 0);
- res = iWait->WaitForRequestL();
- RDEBUG("WaitForRequestL res", res);
-#ifdef __WINS__
- if (res == KErrNotSupported)
- res = KErrNone;
-#endif
-
- if (res != KErrNone)
- {
- ShowResultNoteL(res, CAknNoteDialog::EErrorTone);
- return res;
- }
-
- while (newPassword.Length() == 0)
- {
- // codes do not match -> note -> ask new pin and verification codes again
- // note that this never happens because the dialog doesn't dismiss until both codes match
- if (newPassword.Length() > 0)
- ShowResultNoteL(R_CODES_DONT_MATCH, CAknNoteDialog::EErrorTone);
-
- {
- queryAccepted = KErrCancel;
- CSecQueryUi *iSecQueryUi;
- iSecQueryUi = CSecQueryUi::NewL();
- // will ask both codes and compare itself
- // mix, max , alpha is handled using TARM params, in the dialog itself
- TInt lType = ESecUiAlphaSupported | ESecUiCancelSupported | ESecUiEmergencyNotSupported | secCodeType;
- RDEBUG("lType", lType);
- TBuf<0x100> title;
- title.Zero();
- HBufC* stringHolder = HbTextResolverSymbian::LoadLC(_L("txt_pin_code_dialog_new_sec_code"));
- title.Append(stringHolder->Des());
- CleanupStack::PopAndDestroy(stringHolder);
- title.Append(_L("|"));
- HBufC* stringHolder2 = HbTextResolverSymbian::LoadLC(_L("Verify"));
- title.Append(stringHolder2->Des());
- CleanupStack::PopAndDestroy(stringHolder2);
- queryAccepted = iSecQueryUi->SecQueryDialog(title, newPassword, SEC_C_SECURITY_CODE_MIN_LENGTH, SEC_C_SECURITY_CODE_MAX_LENGTH, lType);
- RDEBUG("newPassword", 0);
- RDEBUGSTR(newPassword);
- RDEBUG("queryAccepted", queryAccepted);
- delete iSecQueryUi;
- if (queryAccepted != KErrNone)
- return KErrAbort;
- }
-
- } // while
-
- // Confirm that the new code is nice.
- // This is also done on every key-press in the dialog, but it doesn't harm to repeat.
- // In fact this is needed for the case when newPassword is provided.
- RArray<TDevicelockPolicies> aFailedPolicies;
- TDevicelockPolicies failedPolicy;
- TInt retLockcode = KErrNone;
- RSCPClient scpClient;
- retLockcode = scpClient.Connect();
- RDEBUG( "retLockcode", retLockcode );
- if(retLockcode == KErrNone )
- {
- RDEBUG( "scpClient.VerifyNewLockcodeAgainstPolicies", 0 );
- retLockcode = scpClient.VerifyNewLockcodeAgainstPolicies( newPassword, aFailedPolicies );
- RDEBUG( "retLockcode", retLockcode );
- RDEBUG( "aFailedPolicies.Count()", aFailedPolicies.Count() );
- for(TInt i=0; i<aFailedPolicies.Count(); i++)
- {
- failedPolicy = aFailedPolicies[i];
- RDEBUG( "failedPolicy", failedPolicy );
- // it could also be res = KErrGsm0707IncorrectPassword;
- res = KErrTDevicelockPolicies + failedPolicy;
- }
- scpClient.Close();
- }
- else
- {
- RDEBUG( "failed connecting to SCP", retLockcode );
- // what to do? let's assume that we don't need special policies.
- }
-
- // change code
- RDEBUG("res", res);
- if (res == KErrNone)
- {
- passwords.iOldPassword = oldPassword;
- passwords.iNewPassword = newPassword;
- iWait->SetRequestType(EMobilePhoneChangeSecurityCode);
- RDEBUG("ChangeSecurityCode", 0);
- iPhone.ChangeSecurityCode(iWait->iStatus, secCodeType, passwords);
- RDEBUG("WaitForRequestL", 0);
- res = iWait->WaitForRequestL();
- RDEBUG("WaitForRequestL res", res);
-#ifdef __WINS__
- if (res == KErrNotSupported)
- res = KErrNone;
-#endif
-
- if (res == KErrNone && 1 == 0) // TODO not possible to enable because it asks code again
- {
- RMobilePhone::TMobilePhoneLock lockType = RMobilePhone::ELockPhoneDevice;
- RMobilePhone::TMobilePhoneLockSetting lockChangeSetting = RMobilePhone::ELockSetEnabled;
- iWait->SetRequestType(EMobilePhoneSetLockSetting);
- RDEBUG("SetLockSetting", 0);
- iPhone.SetLockSetting(iWait->iStatus, lockType, lockChangeSetting);
- RDEBUG("WaitForRequestL", 0);
- res = iWait->WaitForRequestL();
- RDEBUG("WaitForRequestL res", res);
-#ifdef __WINS__
- if (res == KErrNotSupported || res == KErrTimedOut)
- res = KErrNone;
-#endif
- }
- }
-
- RDEBUG("res", res);
- switch (res)
- {
- case KErrNone:
- {
- // code changed ... unless TARM rejects it
- {
- // Send the changed code to the SCP server, even with device lock enhancements.
- RDEBUG("scpClient.Connect", 0);
- RSCPClient scpClient;
- TSCPSecCode newScpCode;
- TSCPSecCode oldScpCode;
- newScpCode.Copy(newPassword);
- oldScpCode.Copy(oldPassword);
- if (scpClient.Connect() == KErrNone)
- {
- RDEBUG("scpClient.StoreLockcode", 0);
- // this is the old method. Obsolete now
- // scpClient.StoreCode( newCode );
- RArray<TDevicelockPolicies> aFailedPolicies;
- TDevicelockPolicies failedPolicy;
- TInt retLockcode = KErrNone;
- retLockcode = scpClient.StoreLockcode(newScpCode, oldScpCode, aFailedPolicies);
- RDEBUG( "retLockcode", retLockcode );
- RDEBUG( "KErrAccessDenied", KErrAccessDenied );
- RDEBUG( "aFailedPolicies.Count()", aFailedPolicies.Count() );
- for (TInt i = 0; i < aFailedPolicies.Count(); i++)
- {
- failedPolicy = aFailedPolicies[i];
- RDEBUG( "failedPolicy", failedPolicy );
- }
- // Don't know what to do if TARM fails. Hopefully it was stopped at typing, as well as VerifyNewLockcodeAgainstPolicies
- // The code is already changed in iPhone !
- // For now, just undo the changed password
- if(retLockcode!=KErrNone)
- {
- RDEBUG("Undo password change because retLockcode", retLockcode);
- ShowResultNoteL(retLockcode, CAknNoteDialog::EConfirmationTone);
-
- // go back to previous password.
- passwords.iOldPassword = newPassword;
- passwords.iNewPassword = oldPassword;
- iWait->SetRequestType(EMobilePhoneChangeSecurityCode);
- RDEBUG("ChangeSecurityCode", 0);
- iPhone.ChangeSecurityCode(iWait->iStatus, secCodeType, passwords);
- RDEBUG("WaitForRequestL", 0);
- res = iWait->WaitForRequestL(); // this can't fail. ISA is always allowing to undo the password change.
- RDEBUG("WaitForRequestL res", res);
- #ifdef __WINS__
- if (res == KErrNotSupported)
- res = KErrNone;
- #endif
- res = retLockcode;
- }
- scpClient.Close();
- }
- if(res==KErrNone)
- {
- RDEBUG( "showing R_SECURITY_CODE_CHANGED_NOTE", R_SECURITY_CODE_CHANGED_NOTE );
- ShowResultNoteL(R_SECURITY_CODE_CHANGED_NOTE, CAknNoteDialog::EConfirmationTone);
- }
- }
- break;
- }
- case KErrGsmSSPasswordAttemptsViolation:
- case KErrLocked:
- {
- ShowResultNoteL(R_SEC_BLOCKED, CAknNoteDialog::EErrorTone);
- ChangeSecCodeParamsL(aOldPassword, aNewPassword, aFlags, aCaption, aShowError);
- break;
- }
- case KErrGsm0707IncorrectPassword:
- case KErrAccessDenied:
- {
- // code was entered erroneously
- ShowResultNoteL(R_CODE_ERROR, CAknNoteDialog::EErrorTone);
- ChangeSecCodeParamsL(aOldPassword, aNewPassword, aFlags, aCaption, aShowError);
- break;
- }
- case KErrAbort:
- {
- break;
- }
- default:
- {
- ShowErrorNoteL(res);
- ChangeSecCodeParamsL(aOldPassword, aNewPassword, aFlags, aCaption, aShowError);
- break;
- }
- } // switch
- RDEBUG("return res", res);
- return res;
- }
-
-/**************************************/
-// qtdone
-// the params are changed in the settings,. This only asks for password.
-EXPORT_C TInt CSecuritySettings::ChangeAutoLockPeriodParamsL(TInt aPeriod, RMobilePhone::TMobilePassword aOldPassword, TInt aFlags, TDes& aCaption, TInt aShowError)
- {
- RDEBUG("aPeriod", aPeriod);
- RDEBUG("aFlags", aFlags);
- /*****************************************************
- * Series 60 Customer / ETel
- * Series 60 ETel API
- *****************************************************/
-
- RMobilePhone::TMobilePhoneLockSetting lockChange(RMobilePhone::ELockSetDisabled);
- RMobilePhone::TMobilePhoneLock lockType = RMobilePhone::ELockPhoneDevice;
- TInt oldPeriod = aPeriod;
-
- TInt maxPeriod = 0;
- if (FeatureManager::FeatureSupported(KFeatureIdSapTerminalControlFw))
- {
- // Retrieve the current autolock period max. value from the SCP server,
- // and check that the value the user
- // selected is ok from the Corporate Policy point of view.
- RSCPClient scpClient;
- TInt ret = scpClient.Connect();
- if (ret == KErrNone)
- {
- CleanupClosePushL(scpClient);
- TBuf<KSCPMaxIntLength> maxPeriodBuf;
- if (scpClient.GetParamValue(ESCPMaxAutolockPeriod, maxPeriodBuf) == KErrNone)
- {
- TLex lex(maxPeriodBuf);
- if ((lex.Val(maxPeriod) == KErrNone) && (maxPeriod > 0))
- {
- RDEBUG("from SCP maxPeriod", maxPeriod);
- }
- else
- {
- maxPeriod = 0;
- RDEBUG("not from SCP maxPeriod", maxPeriod);
- }
- }
- else
- {
- RDEBUG("Failed to retrieve max period", maxPeriod);
- }
- }
- else
- {
- RDEBUG("Failed to connect to SCP", 0);
- }
- CleanupStack::PopAndDestroy(); // scpClient
- }
- RDEBUG("maxPeriod", maxPeriod);
- if (FeatureManager::FeatureSupported(KFeatureIdSapTerminalControlFw))
- {
- TBool allow = ETrue;
-
- if ((aPeriod == 0) && (maxPeriod > 0))
- {
- RDEBUG("The period is not allowed by TARM", aPeriod);
- RDEBUG( "maxPeriod", maxPeriod );
- allow = EFalse;
- ShowResultNoteL(R_SECUI_TEXT_AUTOLOCK_MUST_BE_ACTIVE, CAknNoteDialog::EErrorTone);
- }
- if (!allow)
- {
- return ChangeAutoLockPeriodParamsL(aPeriod, aOldPassword, aFlags, aCaption, aShowError); // ask again
- }
- }
-
- if (aPeriod == 0)
- {
- // If remote lock is enabled, don't disable the domestic OS device lock
- // since that would render the RemoteLock useless.
- // Instead just re-set the DOS lock to enabled which as a side effect
- // requests the security code from the user.
-
- TBool remoteLockStatus(EFalse);
- CRemoteLockSettings* remoteLockSettings = CRemoteLockSettings::NewL();
-
- if (remoteLockSettings->GetEnabled(remoteLockStatus))
- {
- if (remoteLockStatus)
- {
- // Remote lock is enabled
- lockChange = RMobilePhone::ELockSetEnabled;
- RDEBUG( "RemoteLock is enabled lockChange", lockChange );
- }
- else
- {
- // Remote lock is disabled
- lockChange = RMobilePhone::ELockSetDisabled;
- RDEBUG( "RemoteLock is disabled lockChange", lockChange );
- }
- }
- else
- {
- // Failed to get remote lock status
- RDEBUG( "Failed to get remote lock status lockChange", lockChange );
- }
-
- delete remoteLockSettings;
- remoteLockSettings = NULL;
-
- }
- else
- {
- lockChange = RMobilePhone::ELockSetEnabled;
- RDEBUG("aPeriod != 0 lockChange", lockChange);
- }
-
- iWait->SetRequestType(EMobilePhoneSetLockSetting);
- RDEBUG("lockChange", lockChange);
- RProperty::Set(KPSUidSecurityUIs, KSecurityUIsQueryRequestCancel, ESecurityUIsQueryRequestOk);
- RDEBUG("SetLockSetting", 0);
- iPhone.SetLockSetting(iWait->iStatus, lockType, lockChange); // this eventually calls PassPhraseRequiredL
- RDEBUG("WaitForRequestL", 0);
- TInt status = KErrNone;
- status = iWait->WaitForRequestL();
- RDEBUG("WaitForRequestL status", status);
-#ifdef __WINS__
- if (status == KErrNotSupported || status == KErrTimedOut)
- status = KErrNone;
-#endif
- switch (status)
- {
- case KErrNone:
- break;
- case KErrGsmSSPasswordAttemptsViolation:
- case KErrLocked:
- RDEBUG("KErrLocked", KErrLocked)
- ;
- ShowResultNoteL(KErrLocked, CAknNoteDialog::EErrorTone); // the old code didn't show messages
- return ChangeAutoLockPeriodParamsL(oldPeriod, aOldPassword, aFlags, aCaption, aShowError); // ask again
- case KErrGsm0707IncorrectPassword:
- case KErrAccessDenied:
- RDEBUG("KErrAccessDenied", KErrAccessDenied)
- ;
- // code was entered erroneously
- ShowResultNoteL(KErrAccessDenied, CAknNoteDialog::EErrorTone); // the old code didn't show messages
- return ChangeAutoLockPeriodParamsL(oldPeriod, aOldPassword, aFlags, aCaption, aShowError); // ask again
- case KErrAbort:
- // User pressed "cancel" in the code query dialog.
- return oldPeriod;
- default:
- RDEBUG("default", status)
- ;
- ShowResultNoteL(status, CAknNoteDialog::EErrorTone); // the old code didn't show messages
- return ChangeAutoLockPeriodParamsL(oldPeriod, aOldPassword, aFlags, aCaption, aShowError); // ask again
- }
- RDEBUG("aPeriod", aPeriod);
- return aPeriod;
- }
-/*****************************/
-// qtdone
-EXPORT_C TInt CSecuritySettings::ChangePinRequestParamsL(TInt aEnable, RMobilePhone::TMobilePassword aOldPassword, TInt aFlags, TDes& aCaption, TInt aShowError)
- {
- RDEBUG("aEnable", aEnable);
- RDEBUG("aFlags", aFlags);
- TInt simState = 0;
- TInt lEnable = aEnable;
- TInt err(KErrGeneral);
- err = RProperty::Get(KPSUidStartup, KPSSimStatus, simState);
- User::LeaveIfError(err);
- TBool simRemoved(simState == ESimNotPresent);
-
- if (simRemoved)
- {
- ShowResultNoteL(R_INSERT_SIM, CAknNoteDialog::EErrorTone);
- return KErrAccessDenied;
- }
-
- RMobilePhone::TMobilePhoneLockInfoV1 lockInfo;
- RMobilePhone::TMobilePhoneLockInfoV1Pckg lockInfoPkg(lockInfo);
- RMobilePhone::TMobilePhoneLock lockType = RMobilePhone::ELockICC;
-
- RMobilePhone::TMobilePhoneLockSetting lockChangeSetting;
-
- //get lock info
- iWait->SetRequestType(EMobilePhoneGetLockInfo);
- iPhone.GetLockInfo(iWait->iStatus, lockType, lockInfoPkg);
- RDEBUG("WaitForRequestL", 0);
- TInt status = iWait->WaitForRequestL();
- RDEBUG("WaitForRequestL status", status);
-#ifdef __WINS__
- if (status == KErrNotSupported || status == KErrTimedOut)
- {
- lockInfo.iSetting = RMobilePhone::ELockSetDisabled;
- status = KErrNone;
- }
-#endif
- User::LeaveIfError(status);
-
- if (aOldPassword.Length() == 0) // only if input parameters are empty
- {
- // switch the value.
- if (lockInfo.iSetting == RMobilePhone::ELockSetDisabled)
- lEnable = 1; // on
- else
- lEnable = 0; // off
- }
-
- RDEBUG("lEnable", lEnable);
- if (lEnable == 0)
- {
- lockChangeSetting = RMobilePhone::ELockSetDisabled;
- }
- else
- {
- lockChangeSetting = RMobilePhone::ELockSetEnabled;
- }
-
- RDEBUG("lockChangeSetting", lockChangeSetting);
- // Raise a flag to indicate that the PIN
- // request coming from ETEL has originated from SecUi and not from Engine.
- TInt tRet = RProperty::Set(KPSUidSecurityUIs, KSecurityUIsSecUIOriginatedQuery, ESecurityUIsSecUIOriginated);
- RDEBUG("tRet", tRet);
-
- // Change the lock setting
- iWait->SetRequestType(EMobilePhoneSetLockSetting);
- RProperty::Set(KPSUidSecurityUIs, KSecurityUIsQueryRequestCancel, ESecurityUIsQueryRequestOk);
- RDEBUG("SetLockSetting", 0);
- iPhone.SetLockSetting(iWait->iStatus, lockType, lockChangeSetting); // this will trigger Pin1RequiredL
- RDEBUG("WaitForRequestL", 0);
- status = iWait->WaitForRequestL();
- RDEBUG("WaitForRequestL status", status);
-#ifdef __WINS__
- if (status == KErrNotSupported || status == KErrTimedOut)
- status = KErrNone;
-#endif
-
- // Lower the flag
- RProperty::Set(KPSUidSecurityUIs, KSecurityUIsSecUIOriginatedQuery, ESecurityUIsSecUIOriginatedUninitialized);
-
- switch (status)
- {
- case KErrNone:
- {
- break;
- }
- case KErrGsm0707OperationNotAllowed:
- {
- // not allowed with this sim
- ShowResultNoteL(R_OPERATION_NOT_ALLOWED, CAknNoteDialog::EErrorTone);
- return KErrGsm0707OperationNotAllowed;
- }
- case KErrGsm0707IncorrectPassword:
- case KErrAccessDenied:
- {
- // code was entered erroneously
- return ChangePinRequestParamsL(aEnable, aOldPassword, aFlags, aCaption, aShowError);
- }
- case KErrGsmSSPasswordAttemptsViolation:
- case KErrLocked:
- {
- return KErrLocked;
- }
- case KErrAbort:
- {
- return KErrAbort;
- }
- default:
- {
- return ChangePinRequestParamsL(aEnable, aOldPassword, aFlags, aCaption, aShowError);
- }
- }
- return KErrNone;
- }
-
+ return EFalse;
+}
//
// ----------------------------------------------------------
-// CSecuritySettings::AskSecCodeParamsL()
-// For asking security code e.g in settings
-// not used
+// CSecuritySettings::GetActivePinCode()
+// Return the code active in current application (PIN/UPIN)
// ----------------------------------------------------------
-// qtdone
-EXPORT_C TBool CSecuritySettings::AskSecCodeParamsL(RMobilePhone::TMobilePassword &aOldPassword, TInt aFlags, TDes& aCaption, TInt aShowError)
- {
- RDEBUG("aFlags", aFlags);
- RDEBUG("aShowError", aShowError);
- RDEBUG("This doesn't do anything", 0);
- RDEBUG("aFlags", aFlags);
-
- // the password parameters are not used
- if (aOldPassword.Length() > 0)
- RDEBUGSTR(aOldPassword);
-
- return EFalse;
- }
+//
+EXPORT_C TBool CSecuritySettings::IsUpinActive()
+{
+ TBool wcdmaSupported(FeatureManager::FeatureSupported( KFeatureIdProtocolWcdma ));
+ TBool upinSupported(FeatureManager::FeatureSupported( KFeatureIdUpin ));
+ if(wcdmaSupported || upinSupported)
+ {
+ #ifdef __WINS__
+ return EFalse;
+ #else//__WINS__
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CSecuritySettings::IsUpinActive() BEGIN"));
+ #endif
+ RMobilePhone::TMobilePhoneSecurityCode activePin;
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CSecuritySettings::IsUpinActive() GetActivePin"));
+ #endif
+ iCustomPhone.GetActivePin(activePin);
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CSecuritySettings::IsUpinActive() GetActivePin DONE"));
+ #endif
+ if(activePin == RMobilePhone::ESecurityUniversalPin)
+ {
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CSecuritySettings::IsUpinActive(): UPIN ACTIVE"));
+ #endif
+ return ETrue;
+ }
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CSecuritySettings::IsUpinActive(): UPIN NOT ACTIVE"));
+ #endif
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CSecuritySettings::IsUpinActive(): END"));
+ #endif
+ return EFalse;
+ #endif //__WINS__
+ }
+ else
+ return EFalse;
+}
// End of file
--- a/securitydialogs/SecUi/Src/SecUiSystemLock.cpp Tue Aug 31 16:04:40 2010 +0300
+++ b/securitydialogs/SecUi/Src/SecUiSystemLock.cpp Wed Sep 01 12:19:59 2010 +0100
@@ -22,7 +22,7 @@
#include <coreapplicationuisdomainpskeys.h>
#include "SecUiSystemLock.h"
#include <eikenv.h>
-// #include <AknNotifierController.h>
+#include <AknNotifierController.h>
#include <rmmcustomapi.h>
#include "secuisecuritysettings.h"
#include "SecUiWait.h"
@@ -30,8 +30,6 @@
#include <e32property.h>
#include <ctsydomainpskeys.h>
#include <securityuisprivatepskeys.h>
-#include <devicelockaccessapi.h>
-
/*****************************************************
* Series 60 Customer / TSY
* Needs customer TSY implementation
@@ -50,7 +48,6 @@
//
EXPORT_C CSystemLock* CSystemLock::NewL()
{
- RDebug::Printf( "%s %s (%u) this should not be called=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, 0 );
CSystemLock* self = new(ELeave) CSystemLock();
CleanupStack::PushL(self);
self->ConstructL();
@@ -65,7 +62,6 @@
//
void CSystemLock::ConstructL()
{
- RDebug::Printf( "%s %s (%u) this should not be called=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, 0 );
/*****************************************************
* Series 60 Customer / ETel
* Series 60 ETel API
@@ -145,8 +141,7 @@
//
// ----------------------------------------------------------
// CSystemLock::SetLockedL()
-// Activates system lock
-// this was used by SysAp, but it's not longer used
+// Activates system lock
// ----------------------------------------------------------
//
EXPORT_C void CSystemLock::SetLockedL()
@@ -155,29 +150,97 @@
* Series 60 Customer / ETel
* Series 60 ETel API
*****************************************************/
- RDebug::Printf( "%s %s (%u) this should not be called=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, 0 );
#if defined(_DEBUG)
RDebug::Print(_L("(SECUI)CSystemLock::SetLockedL()"));
#endif
// close fast-swap window
- RDebug::Printf( "%s %s (%u) value=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, 0 );
- CDevicelockAccessApi* iDevicelockAccess = CDevicelockAccessApi::NewL( );
- RDebug::Printf( "%s %s (%u) value=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, 0 );
- iDevicelockAccess->OfferDevicelock();
- // this will do EnableDevicelock( EDevicelockManual );
- RDebug::Printf( "%s %s (%u) value=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, 0 );
+ CEikonEnv::Static()->DismissTaskList();
+
+#ifdef __WINS__
+ // can not verify security code in emulator ---> lock system
+#ifdef RD_REMOTELOCK
+ iProperty.Set(KPSUidCoreApplicationUIs, KCoreAppUIsAutolockStatus, EManualLocked);
+#else// !RD_REMOTELOCK
+ iProperty.Set(KPSUidCoreApplicationUIs, KCoreAppUIsAutolockStatus, EAutolockOn);
+#endif//RD_REMOTELOCK
+#else //__WINS__
+
+ if(IsActive())
+ return;
+
+
+ RMobilePhone::TMobilePhoneLock lockType = RMobilePhone::ELockPhoneDevice;
+ RMobilePhone::TMobilePhoneLockInfoV1 lockInfo;
+ RMobilePhone::TMobilePhoneLockInfoV1Pckg lockInfoPkg(lockInfo);
+ RMobilePhone::TMobilePhoneLockSetting lockChange(RMobilePhone::ELockSetDisabled);
+ CWait* wait = CWait::NewL();
+ CleanupStack::PushL( wait );
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CSystemLock::SetLockedL() GetLockInfo"));
+ #endif
+ iPhone.GetLockInfo(wait->iStatus, lockType, lockInfoPkg);
+ if (wait->WaitForRequestL() == KErrNone)
+ {
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CSystemLock::SetLockedL() KErrNone"));
+ #endif
+ if (lockInfo.iSetting == RMobilePhone::ELockSetDisabled)
+ {
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CSystemLock::SetLockedL() ELockSetDisabled"));
+ #endif
+ // ask code
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CSystemLock::SetLockedL() SetLockSetting"));
+ #endif
+ //iCustomPhone.CheckSecurityCode(iStatus, RMmCustomAPI::ESecurityCodePassPhrase);
+ lockChange = RMobilePhone::ELockSetEnabled;
+ RProperty::Set(KPSUidSecurityUIs, KSecurityUIsSecUIOriginatedQuery, ESecurityUIsSystemLockOriginated);
+ iPhone.SetLockSetting(iStatus, lockType, lockChange);
+ SetActive();
+ }
+ else
+ {
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CSystemLock::SetLockedL() Lock System"));
+ #endif
+ // lock system
+#ifdef RD_REMOTELOCK
+ iProperty.Set(KPSUidCoreApplicationUIs, KCoreAppUIsAutolockStatus, EManualLocked);
+#else// !RD_REMOTELOCK
+ iProperty.Set(KPSUidCoreApplicationUIs, KCoreAppUIsAutolockStatus, EAutolockOn);
+#endif //RD_REMOTELOCK
+
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CSystemLock::SetLockedL() Lock System OK"));
+ #endif
+ }
+ }
+ else
+ {
+ // ask code
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CSystemLock::SetLockedL() ask code (SLS) "));
+ #endif
+ lockChange = RMobilePhone::ELockSetEnabled;
+ RProperty::Set(KPSUidSecurityUIs, KSecurityUIsSecUIOriginatedQuery, ESecurityUIsSystemLockOriginated);
+ iPhone.SetLockSetting(iStatus, lockType, lockChange);
+ SetActive();
+ }
+ CleanupStack::PopAndDestroy();
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(SECUI)CSystemLock::SetLockedL() END"));
+ #endif // DEBUG
+ #endif // WINS
}
//
// ----------------------------------------------------------
// CSystemLock::RunL()
// Handles query result
-// this was used by SysAp, but it's not longer used
// ----------------------------------------------------------
//
void CSystemLock::RunL()
{
- RDebug::Printf( "%s %s (%u) this should not be called=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, 0 );
-
#if defined(_DEBUG)
TInt status(iStatus.Int());
RDebug::Print(_L("(SECUI)CSystemLock::RunL(): %d"), status);
@@ -195,16 +258,14 @@
RDebug::Print(_L("(SECUI)CSystemLock::RunL() KErrNone"));
#endif
// clear notifiers
- // not any more. Avkon is deprecated. Besides, this function should not be called.
- // AknNotifierController::HideAllNotifications(ETrue);
+ AknNotifierController::HideAllNotifications(ETrue);
// query approved -> lock system
#ifdef RD_REMOTELOCK
iProperty.Set(KPSUidCoreApplicationUIs, KCoreAppUIsAutolockStatus, EManualLocked);
#else// !RD_REMOTELOCK
iProperty.Set(KPSUidCoreApplicationUIs, KCoreAppUIsAutolockStatus, EAutolockOn);
#endif//RD_REMOTELOCK
- // not any more. Avkon is deprecated. Besides, this function should not be called.
- // AknNotifierController::HideAllNotifications(EFalse);
+ AknNotifierController::HideAllNotifications(EFalse);
}
}
else if((iStatus != KErrCancel) && (iStatus != KErrAbort))
--- a/securitydialogs/SecUi/Src/SecUiWait.cpp Tue Aug 31 16:04:40 2010 +0300
+++ b/securitydialogs/SecUi/Src/SecUiWait.cpp Wed Sep 01 12:19:59 2010 +0100
@@ -77,8 +77,10 @@
//
TInt CWait::WaitForRequestL()
{
+ CWaitAbsorbingControl* absorbing = CWaitAbsorbingControl::NewLC();
SetActive();
iWait.Start();
+ CleanupStack::PopAndDestroy(absorbing);
return iStatus.Int();
}
//
@@ -126,33 +128,6 @@
return iRequestType;
}
//
-// class CAutolockQuery
-//
-CAutolockQuery::CAutolockQuery()
- {
- }
-
-CAutolockQuery::~CAutolockQuery()
- {
-
- }
-
-CAutolockQuery* CAutolockQuery::NewLC()
- {
- return NULL;
- }
-
-void CAutolockQuery::ConstructL()
- {
-
- }
-
-TKeyResponse CAutolockQuery::OfferKeyEventL(const TKeyEvent& /*aKeyEvent*/,TEventCode /*aType*/)
- {
- return EKeyWasConsumed;
- }
-/***********/
-//
// class CWaitAbsorbingControl
//
CWaitAbsorbingControl::CWaitAbsorbingControl()
@@ -161,22 +136,32 @@
CWaitAbsorbingControl::~CWaitAbsorbingControl()
{
-
+ if (iCoeEnv && iAppUi)
+ iAppUi->RemoveFromStack(this);
}
CWaitAbsorbingControl* CWaitAbsorbingControl::NewLC()
{
- return NULL;
+ CWaitAbsorbingControl* self= new(ELeave) CWaitAbsorbingControl();
+ CleanupStack::PushL(self);
+ self->ConstructL();
+ return self;
}
void CWaitAbsorbingControl::ConstructL()
{
-
+ CreateWindowL();
+ SetExtent(TPoint(0,0), TSize(0,0));
+ ActivateL();
+ SetPointerCapture(ETrue);
+ ClaimPointerGrab(ETrue);
+ iAppUi=iEikonEnv->EikAppUi();
+ iAppUi->AddToStackL(this, ECoeStackPriorityEnvironmentFilter);
}
TKeyResponse CWaitAbsorbingControl::OfferKeyEventL(const TKeyEvent& /*aKeyEvent*/,TEventCode /*aType*/)
{
- return EKeyWasConsumed;
+ return EKeyWasConsumed;
}
// End of file
--- a/securitydialogs/SecUi/group/SecUi.mmp Tue Aug 31 16:04:40 2010 +0300
+++ b/securitydialogs/SecUi/group/SecUi.mmp Wed Sep 01 12:19:59 2010 +0100
@@ -20,8 +20,6 @@
#include <platform_paths.hrh>
#include <data_caging_paths.hrh>
-SYSTEMINCLUDE /epoc32/include/mw/hb/hbcore
-
TARGET secui.dll
TARGETTYPE dll
UID 0x1000006C 0x100058ED
@@ -42,27 +40,81 @@
MW_LAYER_SYSTEMINCLUDE ../../../inc
-SOURCEPATH ../Src
+
+#ifdef __PROTOCOL_CDMA
+
+ SOURCEPATH ../Cdma/Src
+ SOURCE SecUiSecuritySettingsCdma.cpp
+ SOURCE SecUiSecurityHandlerCdma.cpp
+ SOURCE SecUiObsStartterCdma.cpp
+ SOURCE SecUiAutoLockSettingPageCdma.cpp
+ SOURCE SecUiSystemLockCdma.cpp
+
+ SOURCEPATH ../Src
+ SOURCE SecUi.cpp
+ SOURCE SecUiCodeQueryDialog.cpp
+ SOURCE SecUiCodeQueryControl.cpp
+ SOURCE SecUiManualSecuritySettings.cpp
+ SOURCE SecUiWait.cpp
+
+
+ library EUSER.LIB BAFL.LIB CONE.LIB
+ library EIKCORE.LIB EIKCOCTL.LIB
+ library avkon.lib eikdlg.lib
+ library etel.lib etelmm.lib
+ library eikctl.lib
+ library ws32.lib commonengine.lib
+ library efsrv.lib
+ LIBRARY centralrepository.lib
+ LIBRARY aknNotifierWrapper.lib
+ library customapi.lib
+ library securityclient.lib //Security Engine
+ library apparc.lib //For starting application in secuiobsstartter
+
+ LIBRARY SCPClient.lib // SCP server
+
+#else //If GSM:
+
+
+ SOURCEPATH ../Src
-SOURCE ../Src/SecUi.cpp
-SOURCE ../Src/SecUiCodeQueryDialog.cpp
-SOURCE ../Src/SecUiSecuritySettings.cpp
-SOURCE ../Src/SecUiSecurityHandler.cpp
-SOURCE ../Src/SecUiAutoLockSettingPage.cpp
-SOURCE ../Src/SecUiObsStartter.cpp
-SOURCE ../Src/SecUiManualSecuritySettings.cpp
-SOURCE ../Src/SecUiSystemLock.cpp
-SOURCE ../Src/SecUiWait.cpp
-SOURCE ../Src/SecQueryUi.cpp
+ SOURCE ../Src/SecUi.cpp
+ SOURCE ../Src/SecUiCodeQueryDialog.cpp
+ SOURCE ../Src/SecUiSecuritySettings.cpp
+ SOURCE ../Src/SecUiSecurityHandler.cpp
+ SOURCE ../Src/SecUiCodeQueryControl.cpp
+ SOURCE ../Src/SecUiAutoLockSettingPage.cpp
+ SOURCE ../Src/SecUiObsStartter.cpp
+ SOURCE ../Src/SecUiManualSecuritySettings.cpp
+ SOURCE ../Src/SecUiSystemLock.cpp
+ SOURCE ../Src/SecUiWait.cpp
+ SOURCE ../Src/SecUiLockObserver.cpp
+#ifdef RD_REMOTELOCK
+ SOURCE ../Src/SecUiRemoteLockSettingPage.cpp
+#endif
-// library avkon.lib eikdlg.lib
-library euser.lib
-library etel.lib etelmm.lib
-library commonengine.lib
-library customapi.lib
-library rlocksettings.lib
-LIBRARY scpclient.lib // SCP server
-LIBRARY centralrepository.lib
+ library euser.lib bafl.lib cone.lib
+ library eikcore.lib eikcoctl.lib
+ library avkon.lib eikdlg.lib
+ library etel.lib etelmm.lib
+ library eikctl.lib
+ library ws32.lib commonengine.lib
+ library efsrv.lib
+ library eiksrvui.lib
+ library customapi.lib
+ LIBRARY starterclient.lib //use of Starter to remove splash screen
+ library sysutil.lib
+ library estor.lib
+
+#ifdef RD_REMOTELOCK
+ library rlocksettings.lib
+#endif
+
+
+ LIBRARY scpclient.lib // SCP server
+ LIBRARY centralrepository.lib
+ LIBRARY aknnotifierwrapper.lib
+#endif //__PROTOCOL_CDMA
// Modified by build team
#if defined(WINSCW)
@@ -71,11 +123,6 @@
LIBRARY featmgr.lib
LIBRARY aknnotify.lib
-LIBRARY HbCore.lib
-LIBRARY HbWidgets.lib
-LIBRARY lockclient.lib
-LIBRARY phoneclient.lib
-
SMPSAFE
// end of file
--- a/securitydialogs/SecUi/group/bld.inf Tue Aug 31 16:04:40 2010 +0300
+++ b/securitydialogs/SecUi/group/bld.inf Wed Sep 01 12:19:59 2010 +0100
@@ -26,13 +26,18 @@
//SecUi iby files
../rom/SecUi.iby CORE_MW_LAYER_IBY_EXPORT_PATH(secui.iby)
../rom/SecUiResources.iby LANGUAGE_MW_LAYER_IBY_EXPORT_PATH(secuiresources.iby)
-
+//Sim Sec Plugin iby files
+../rom/GSSimSecPlugin.iby CORE_MW_LAYER_IBY_EXPORT_PATH(gssimsecplugin.iby)
+../rom/GSSimSecPluginResources.iby LANGUAGE_MW_LAYER_IBY_EXPORT_PATH(gssimsecpluginresources.iby)
//localisation files
../loc/SecUi.loc MW_LAYER_LOC_EXPORT_PATH(secui.loc)
-
+../GSSimSecPlugin/loc/gssecurity.loc MW_LAYER_LOC_EXPORT_PATH(gssecurity.loc)
//ADO internal APIs
../Inc/SecUiSystemLock.h MW_LAYER_PLATFORM_EXPORT_PATH(secuisystemlock.h)
PRJ_MMPFILES
../group/SecUi.mmp
+//SIM security plugin for General Settings
+../GSSimSecPlugin/GSSimSecPlugin.mmp
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/securitydialogs/SecUi/rom/GSSimSecPlugin.iby Wed Sep 01 12:19:59 2010 +0100
@@ -0,0 +1,28 @@
+/*
+* Copyright (c) 2005 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: GSAccsPlugin ROM files.
+*
+*/
+
+#ifndef GSSIMSECPLUGIN_IBY
+#define GSSIMSECPLUGIN_IBY
+
+ #ifdef RD_GS_RENOVATION
+
+ ECOM_PLUGIN( GSSimSecPlugin.dll, 10207438.rsc )
+
+ #endif // RD_GS_RENOVATION
+
+#endif // GSSIMSECPLUGIN_IBY
+// End of File
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/securitydialogs/SecUi/rom/GSSimSecPluginResources.iby Wed Sep 01 12:19:59 2010 +0100
@@ -0,0 +1,28 @@
+/*
+* Copyright (c) 2005 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: GSSecurityPlugin ROM resources.
+*
+*/
+
+#ifndef GSSIMSECPLUGINRESOURCES_IBY
+#define GSSIMSECPLUGINRESOURCES_IBY
+
+ #ifdef RD_GS_RENOVATION
+
+ data=DATAZ_\RESOURCE_FILES_DIR\GSSimSecPluginRsc.rsc RESOURCE_FILES_DIR\GSSimSecPluginRsc.rsc
+
+ #endif // RD_GS_RENOVATION
+
+#endif // GSSIMSECPLUGINRESOURCES_IBY
+// End of File
--- a/securitydialogs/Securitynotifier/Group/Securitynotifier.mmp Tue Aug 31 16:04:40 2010 +0300
+++ b/securitydialogs/Securitynotifier/Group/Securitynotifier.mmp Wed Sep 01 12:19:59 2010 +0100
@@ -51,7 +51,7 @@
#if defined(WINSCW)
DEFFILE ../BWinsCw/SecurityNotifierU.def
#endif
-LIBRARY featmgr.lib apgrfx.lib apparc.lib
+LIBRARY featmgr.lib apgrfx.lib apparc.lib
SMPSAFE
--- a/securitydialogs/Securitynotifier/Src/SecurityNotifier.cpp Tue Aug 31 16:04:40 2010 +0300
+++ b/securitydialogs/Securitynotifier/Src/SecurityNotifier.cpp Wed Sep 01 12:19:59 2010 +0100
@@ -34,10 +34,10 @@
#include <apgcli.h>
// LOCAL CONSTANTS AND MACROS
- /*****************************************************
- * Series 60 Customer / TSY
- * Needs customer TSY implementation
- *****************************************************/
+ /*****************************************************
+ * Series 60 Customer / TSY
+ * Needs customer TSY implementation
+ *****************************************************/
const TInt KTriesToConnectServer( 2 );
const TInt KTimeBeforeRetryingServerConnection( 50000 );
@@ -92,10 +92,10 @@
if ( scpClient.QueryAdminCmd( ESCPCommandLockPhone ) )
{
#if defined(_DEBUG)
- RDebug::Print(_L("CSecObsNotify::SCP admin command, no action required"));
- #endif
+ RDebug::Print(_L("CSecObsNotify::SCP admin command, no action required"));
+ #endif
- isAdminCall = ETrue;
+ isAdminCall = ETrue;
}
scpClient.Close();
@@ -137,7 +137,7 @@
//
CSecurityNotifier::~CSecurityNotifier()
{
- FeatureManager::UnInitializeLib();
+ FeatureManager::UnInitializeLib();
}
//
// ----------------------------------------------------------
@@ -158,9 +158,9 @@
//
MEikSrvNotifierBase2::TNotifierInfo CSecurityNotifier::RegisterL()
{
- #if defined(_DEBUG)
+ #if defined(_DEBUG)
RDebug::Print(_L("(SECURITYNOTIFIER)CSecurityNotifier::RegisterL()"));
- #endif
+ #endif
iInfo.iUid = KSecurityNotifierUid;
iInfo.iChannel = KSecurityNotifierChannel;
iInfo.iPriority = ENotifierPriorityHigh;
@@ -174,9 +174,9 @@
//
MEikSrvNotifierBase2::TNotifierInfo CSecurityNotifier::Info() const
{
- #if defined(_DEBUG)
+ #if defined(_DEBUG)
RDebug::Print(_L("(SECURITYNOTIFIER)CSecurityNotifier::Info()"));
- #endif
+ #endif
return iInfo;
}
@@ -190,9 +190,9 @@
//
TPtrC8 CSecurityNotifier::StartL(const TDesC8& /*aBuffer*/)
{
- #if defined(_DEBUG)
+ #if defined(_DEBUG)
RDebug::Print(_L("(SECURITYNOTIFIER)CSecurityNotifier::StartL()"));
- #endif
+ #endif
TPtrC8 ret(KNullDesC8);
return (ret);
}
@@ -204,9 +204,9 @@
//
void CSecurityNotifier::StartL(const TDesC8& aBuffer, TInt aReturnVal,const RMessagePtr2& aMessage)
{
- #if defined(_DEBUG)
+ #if defined(_DEBUG)
RDebug::Print(_L("(SECURITYNOTIFIER)CSecurityNotifier::StartL2()"));
- #endif
+ #endif
TRAPD(err, GetParamsL(aBuffer, aReturnVal, aMessage));
if (err)
{
@@ -225,44 +225,15 @@
//
void CSecurityNotifier::GetParamsL(const TDesC8& aBuffer, TInt aReturnVal, const RMessagePtr2& aMessage)
{
- #if defined(_DEBUG)
- RDebug::Printf( "%s %s (%u) searching for autolock.exe =%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, 0x0 );
- #endif
-
- TApaTaskList taskList( CCoeEnv::Static()->WsSession() );
- const TUid KAutolockUid = { 0x100059B5 };
- TApaTask task( taskList.FindApp( KAutolockUid ) );
- if ( !task.Exists() )
- {
- #if defined(_DEBUG)
- RDebug::Printf( "%s %s (%u) autolock.exe not running. Starting now=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, 0x1 );
- #endif
- RApaLsSession ls;
- User::LeaveIfError(ls.Connect());
- CleanupClosePushL(ls);
-
- CApaCommandLine* commandLine = CApaCommandLine::NewLC();
- commandLine->SetExecutableNameL( _L("autolock.exe" ) );
- commandLine->SetCommandL( EApaCommandRun );
-
- // Try to launch the application.
- TInt err = ls.StartApp(*commandLine);
- #if defined(_DEBUG)
- RDebug::Printf( "%s %s (%u) autolock.exe err=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, err );
- #endif
-
- CleanupStack::PopAndDestroy(2); // commandLine, ls
- }
-
- /*****************************************************
- * Series 60 Customer / ETel
- * Series 60 ETel API
- *****************************************************/
+ /*****************************************************
+ * Series 60 Customer / ETel
+ * Series 60 ETel API
+ *****************************************************/
iMessage = aMessage;
iReturnVal = aReturnVal;
TBool skipQuery = EFalse; // In some cases the query is handled by some other entity and SecurityNotifier should skip it.
- #if defined(_DEBUG)
+ #if defined(_DEBUG)
RDebug::Print(_L("(SECURITYNOTIFIER)CSecurityNotifier::GetParamsL() Start BEGIN"));
#endif
@@ -272,9 +243,38 @@
iStartup = pckg().iStartup;
iEvent = static_cast<RMobilePhone::TMobilePhoneSecurityEvent>(pckg().iEvent);
+ #if defined(_DEBUG)
+ RDebug::Printf( "%s %s (%u) searching for autolock.exe =%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, 0x0 );
+ RDebug::Printf( "%s %s (%u) iEvent=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, iEvent );
+ RDebug::Printf( "%s %s (%u) 2 RMobilePhone::EPin1Required=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, RMobilePhone::EPin1Required );
+ #endif
+ TApaTaskList taskList( CCoeEnv::Static()->WsSession() );
+ const TUid KAutolockUid = { 0x100059B5 };
+ TApaTask task( taskList.FindApp( KAutolockUid ) );
+ if ( !task.Exists() && iEvent != RMobilePhone::EPin1Required ) // PIN-request should not start autolock, to prevent that lock-code is secretly accepted by TARM. Rely on Startup.
+ {
+ #if defined(_DEBUG)
+ RDebug::Printf( "%s %s (%u) autolock.exe not running. Starting now=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, 0x1 );
+ #endif
+ RApaLsSession ls;
+ User::LeaveIfError(ls.Connect());
+ CleanupClosePushL(ls);
+
+ CApaCommandLine* commandLine = CApaCommandLine::NewLC();
+ commandLine->SetExecutableNameL( _L("autolock.exe" ) );
+ commandLine->SetCommandL( EApaCommandRun );
+
+ // Try to launch the application.
+ User::LeaveIfError(ls.StartApp(*commandLine));
+ #if defined(_DEBUG)
+ RDebug::Printf( "%s %s (%u) autolock.exe created=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, 0x2 );
+ #endif
+
+ CleanupStack::PopAndDestroy(2); // commandLine, ls
+ }
if(FeatureManager::FeatureSupported(KFeatureIdSapTerminalControlFw ))
- {
+ {
if(iEvent == RMobilePhone::EPhonePasswordRequired)
{
skipQuery = IsAdminCall(); // SCP handles the call.
@@ -292,7 +292,7 @@
SetActive();
iStatus = KRequestPending;
TRequestStatus* stat = &iStatus;
- #if defined(_DEBUG)
+ #if defined(_DEBUG)
RDebug::Print(_L("CSecurityNotifier::GetParamsL() End"));
#endif
User::RequestComplete(stat, KErrNone); // jump to RunL
@@ -305,26 +305,26 @@
// ----------------------------------------------------------
void CSecurityNotifier::RunL()
{
- /*****************************************************
- * Series 60 Customer / ETel
- * Series 60 ETel API
- *****************************************************/
- /*****************************************************
- * Series 60 Customer / TSY
- * Needs customer TSY implementation
- *****************************************************/
+ /*****************************************************
+ * Series 60 Customer / ETel
+ * Series 60 ETel API
+ *****************************************************/
+ /*****************************************************
+ * Series 60 Customer / TSY
+ * Needs customer TSY implementation
+ *****************************************************/
TInt err( KErrGeneral );
TInt thisTry( 0 );
- RTelServer::TPhoneInfo PhoneInfo;
- #if defined(_DEBUG)
+ RTelServer::TPhoneInfo PhoneInfo;
+ #if defined(_DEBUG)
RDebug::Print(_L("CSecurityNotifier::RunL() Start"));
#endif
/*All server connections are tried to be made KTriesToConnectServer times because occasional
fails on connections are possible, at least on some servers*/
// connect to ETel server
- #if defined(_DEBUG)
+ #if defined(_DEBUG)
RDebug::Print(_L("CSecurityNotifier::RunL() connect to ETel server"));
#endif
while ( ( err = iServer.Connect() ) != KErrNone && ( thisTry++ ) <= KTriesToConnectServer )
@@ -336,14 +336,11 @@
thisTry = 0;
// load TSY
- #if defined(_DEBUG)
+ #if defined(_DEBUG)
RDebug::Print(_L("CSecurityNotifier::RunL() load TSY"));
#endif
-
- if ( !iPhone.SubSessionHandle() )
- {
- err = iServer.LoadPhoneModule( KMmTsyModuleName );
- if ( err != KErrAlreadyExists )
+ err = iServer.LoadPhoneModule( KMmTsyModuleName );
+ if ( err != KErrAlreadyExists )
{
// may also return KErrAlreadyExists if something
// else has already loaded the TSY module. And that is
@@ -351,22 +348,20 @@
User::LeaveIfError( err );
}
- // open phones
- #if defined(_DEBUG)
- RDebug::Print(_L("CSecurityNotifier::RunL() open phones"));
- #endif
- User::LeaveIfError(iServer.SetExtendedErrorGranularity(RTelServer::EErrorExtended));
- User::LeaveIfError(iServer.GetPhoneInfo(PhoneIndex, PhoneInfo));
- User::LeaveIfError(iPhone.Open(iServer,PhoneInfo.iName));
- }
-
+ // open phones
+ #if defined(_DEBUG)
+ RDebug::Print(_L("CSecurityNotifier::RunL() open phones"));
+ #endif
+ User::LeaveIfError(iServer.SetExtendedErrorGranularity(RTelServer::EErrorExtended));
+ User::LeaveIfError(iServer.GetPhoneInfo(PhoneIndex, PhoneInfo));
+ User::LeaveIfError(iPhone.Open(iServer,PhoneInfo.iName));
RProperty Property;
CleanupClosePushL( Property );
err = Property.Set(KPSUidStartup, KStartupSecurityCodeQueryStatus, ESecurityQueryActive);
User::LeaveIfError( err );
// initialize security ui
- #if defined(_DEBUG)
+ #if defined(_DEBUG)
RDebug::Print(_L("CSecurityNotifier::RunL() initialize security ui"));
#endif
CSecurityHandler* handler = new(ELeave) CSecurityHandler(iPhone);
@@ -393,11 +388,11 @@
// if something went wrong cancel the code request
if (error)
{
- #if defined(_DEBUG)
- RDebug::Print(_L("CSecurityNotifier::RunL() ERROR: %d"), error);
- #endif
- TBool wcdmaSupported(FeatureManager::FeatureSupported( KFeatureIdProtocolWcdma ));
- TBool upinSupported(FeatureManager::FeatureSupported( KFeatureIdUpin ));
+ #if defined(_DEBUG)
+ RDebug::Print(_L("CSecurityNotifier::RunL() ERROR: %d"), error);
+ #endif
+ TBool wcdmaSupported(FeatureManager::FeatureSupported( KFeatureIdProtocolWcdma ));
+ TBool upinSupported(FeatureManager::FeatureSupported( KFeatureIdUpin ));
switch (iEvent)
{
case RMobilePhone::EUniversalPinRequired:
@@ -412,19 +407,19 @@
iPhone.AbortSecurityCode(RMobilePhone::ESecurityUniversalPuk);
}
break;
- case RMobilePhone::EPin1Required:
+ case RMobilePhone::EPin1Required:
iPhone.AbortSecurityCode(RMobilePhone::ESecurityCodePin1);
break;
- case RMobilePhone::EPuk1Required:
+ case RMobilePhone::EPuk1Required:
iPhone.AbortSecurityCode(RMobilePhone::ESecurityCodePuk1);
break;
- case RMobilePhone::EPin2Required:
+ case RMobilePhone::EPin2Required:
iPhone.AbortSecurityCode(RMobilePhone::ESecurityCodePin2);
break;
- case RMobilePhone::EPuk2Required:
+ case RMobilePhone::EPuk2Required:
iPhone.AbortSecurityCode(RMobilePhone::ESecurityCodePuk2);
break;
- case RMobilePhone::EPhonePasswordRequired:
+ case RMobilePhone::EPhonePasswordRequired:
iPhone.AbortSecurityCode(RMobilePhone::ESecurityCodePhonePassword);
break;
default:
@@ -454,9 +449,9 @@
iReturnVal = KErrNone;
//Leave the window group to foreground for a short time to absorb key presses so that autolock has time to activate.
if(!StartUp)
- User::After(KDelayPeriod);
- ( CEikonEnv::Static() )->BringForwards(EFalse);
- #if defined(_DEBUG)
+ User::After(KDelayPeriod);
+ ( CEikonEnv::Static() )->BringForwards(EFalse);
+ #if defined(_DEBUG)
RDebug::Print(_L("CSecurityNotifier::RunL() End"));
#endif
}
--- a/securitydialogs/Securitynotifier/Src/Securitynotifierwrapper.cpp Tue Aug 31 16:04:40 2010 +0300
+++ b/securitydialogs/Securitynotifier/Src/Securitynotifierwrapper.cpp Wed Sep 01 12:19:59 2010 +0100
@@ -18,9 +18,7 @@
#include <ecom/implementationproxy.h>
-#include <e32notif.h>
-#include <e32base.h>
-#include <eiknotapi.h>
+
#include <AknNotifierWrapper.h> // link against aknnotifierwrapper.lib
#define KMyNotifierUid TUid::Uid(0x10005988) // uid
@@ -50,9 +48,6 @@
// Create Wrappers
// Session owning notifier(if default implementation is enough)
- RDebug::Printf( "%s %s (%u) !!!!** creating SecurityNotifier.dll . This means that PIN/unlock queries will work **!!!! 0=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, 0 );
-
-
CAknCommonNotifierWrapper* master =
CAknCommonNotifierWrapper::NewL( KMyNotifierUid,
KMyNotifierUid,
@@ -63,7 +58,6 @@
subjects->AppendL( master );
-
CleanupStack::Pop(); // array cleanup
#if defined(_DEBUG)
RDebug::Print(_L("(SECURITYNOTIFIER)WRAPPER DoCreateNotifierArrayL END"));
--- a/securitydialogs/group/bld.inf Tue Aug 31 16:04:40 2010 +0300
+++ b/securitydialogs/group/bld.inf Wed Sep 01 12:19:59 2010 +0100
@@ -24,14 +24,14 @@
PRJ_MMPFILES
#include "../keylockpolicyapi/group/bld.inf"
-// Autolock is now a QT project built from Autolock.pro
-// #include "../Autolock/group/bld.inf"
+#include "../Autolock/group/bld.inf"
#include "../SecUi/group/bld.inf"
#include "../Securitynotifier/Group/bld.inf"
#include "../Securityobserver/Group/bld.inf"
-// As far as I know, lockclient is also a QT project. I wonder why it's left as .inf
#include "../lockclient/group/bld.inf"
#include "../lockapp/group/bld.inf"
+#include "../simlockui/group/bld.inf"
+
PRJ_TESTMMPFILES
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/securitydialogs/lockapp/cenrep/AutolockPrivateCRKeys.h Wed Sep 01 12:19:59 2010 +0100
@@ -0,0 +1,43 @@
+/*
+* Copyright (c) 2004 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: Autolock local variation Central Repository keys.
+ *
+*/
+
+
+#ifndef AUTOLOCKPRIVATECRKEYS_H
+#define AUTOLOCKPRIVATECRKEYS_H
+
+// =============================================================================
+// Autolock Configuration API
+// =============================================================================
+const TUid KCRUidAutolockConf = { 0x102824AE };
+
+/**
+ * Bitmask used in configuring automatic keylock.
+ */
+const TUint32 KAutoKeyLockConf = 0x00000001;
+
+// =============================================================================
+// Automatic Keylock Local Variation constants (KAutoKeyLockConf)
+// =============================================================================
+
+/**
+ * KAutolockFeatureIdFlipOpenDisabled is an on/off setting for
+ * disabling automatic keyguard locking when flip is open. By default off.
+ * Possible values: 0 (locking enabled), 1 (locking diabled) <--
+ */
+const TInt KAutoKeylockFeatureIdFlipOpenDisabled= 0x01; // 2^0
+
+#endif
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/securitydialogs/lockapp/data/lockapp.rss Wed Sep 01 12:19:59 2010 +0100
@@ -0,0 +1,59 @@
+/*
+* Copyright (c) 2007 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: LockApp resource file
+ *
+*/
+
+
+// RESOURCE IDENTIFIER
+NAME LOCK
+
+// INCLUDES
+#include "lockapp.loc"
+#include <eikon.rh>
+#include <eikon.rsg>
+#include <avkon.rh>
+#include <avkon.rsg>
+
+// RESOURCE DEFINITIONS
+
+// ---------------------------------------------------------
+// Define the resource file signature
+// This resource should be empty.
+// ---------------------------------------------------------
+//
+RESOURCE RSS_SIGNATURE { }
+
+// ---------------------------------------------------------
+// Default Document Name
+// ---------------------------------------------------------
+//
+RESOURCE TBUF r_default_document_name { buf=""; }
+
+// ---------------------------------------------------------
+// Define default menu and CBA key.
+// ---------------------------------------------------------
+//
+RESOURCE EIK_APP_INFO
+ {
+ }
+
+// ---------------------------------------------------------
+// Define title pane in devicelock mode.
+// ---------------------------------------------------------
+//
+RESOURCE TBUF r_title_pane_locked
+ {
+ buf = qtn_set_sec_title_locked;
+ }
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/securitydialogs/lockapp/data/lockapp_reg.rss Wed Sep 01 12:19:59 2010 +0100
@@ -0,0 +1,28 @@
+/*
+* Copyright (c) 2007 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: RSS for creating the registration file for LockApp.
+ *
+*/
+
+
+#include <appinfo.rh>
+
+UID2 KUidAppRegistrationResourceFile
+UID3 0x10283322
+
+RESOURCE APP_REGISTRATION_INFO
+ {
+ app_file = "!LockApp";
+ hidden = KAppIsHidden;
+ }
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/securitydialogs/lockapp/group/ABLD.BAT Wed Sep 01 12:19:59 2010 +0100
@@ -0,0 +1,15 @@
+@ECHO OFF
+
+REM Bldmake-generated batch file - ABLD.BAT
+REM ** DO NOT EDIT **
+
+perl -S ABLD.PL "\sf\mw\securitysrv\securitydialogs\lockapp\group\\" %1 %2 %3 %4 %5 %6 %7 %8 %9
+if errorlevel==1 goto CheckPerl
+goto End
+
+:CheckPerl
+perl -v >NUL
+if errorlevel==1 echo Is Perl, version 5.003_07 or later, installed?
+goto End
+
+:End
--- a/securitydialogs/lockapp/group/bld.inf Tue Aug 31 16:04:40 2010 +0300
+++ b/securitydialogs/lockapp/group/bld.inf Wed Sep 01 12:19:59 2010 +0100
@@ -1,5 +1,5 @@
/*
-* Copyright (c) 2005 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2007 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"
@@ -11,16 +11,33 @@
*
* Contributors:
*
-* Description: build info file for lockapp
-*
+* Description: LockApp build info
+ *
*/
#include <platform_paths.hrh>
+PRJ_PLATFORMS
+DEFAULT
PRJ_EXPORTS
../rom/lockapp.iby CORE_MW_LAYER_IBY_EXPORT_PATH(lockapp.iby)
+../rom/lockappresources.iby LANGUAGE_MW_LAYER_IBY_EXPORT_PATH(lockappresources.iby)
+../loc/lockapp.loc MW_LAYER_LOC_EXPORT_PATH(lockapp.loc)
+../pubsub/SecurityUIsPrivatePSKeys.h |../../../inc/securityuisprivatepskeys.h
+../sis/lockapp_stub.sis /epoc32/data/z/system/install/lockapp_stub.sis
+
+PRJ_EXTENSIONS
+
+START EXTENSION s60/mifconv
+OPTION TARGETFILE lockapp.mif
+OPTION HEADERFILE lockapp.mbg
+OPTION SOURCES -c8,8 qgn_graf_phone_locked
+END
PRJ_MMPFILES
+//gnumakefile lockapp_icons_dc.mk
lockapp.mmp
+
+// End of File
--- a/securitydialogs/lockapp/group/lockapp.mmp Tue Aug 31 16:04:40 2010 +0300
+++ b/securitydialogs/lockapp/group/lockapp.mmp Wed Sep 01 12:19:59 2010 +0100
@@ -1,5 +1,5 @@
/*
-* Copyright (c) 2005 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2007 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"
@@ -11,40 +11,126 @@
*
* Contributors:
*
-* Description: Implementation of lockapp
-*
+* Description: Keyguard and Devicelock application server LockApp
+ *
*/
-// To get the APP_LAYER_SYSTEMINCLUDE-definition
+
#include <platform_paths.hrh>
+#include <data_caging_paths.hrh>
-#include "defaultcaps.hrh"
-CAPABILITY CAP_APPLICATION ProtServ NetworkControl
+TARGET lockapp.exe
+TARGETTYPE exe
+EPOCSTACKSIZE 0x5000
-TARGET lockapp.exe
+VENDORID VID_DEFAULT
-targettype exe
+// ProtServ for being a server
+// WriteDeviceData Devicelock configuration needs it
+// SWEvent for capturing/generating key events
+// NetworkServices for remote lock for devicelock
-EPOCSTACKSIZE 0x5000
+CAPABILITY CAP_APPLICATION ProtServ NetworkControl
UID 0x100039CE 0x10283322
-SECUREID 0x100059B5
-VENDORID VID_DEFAULT
+
+SECUREID 0x100059B5
+
+//LANG SC
SOURCEPATH ../src
-SOURCE lockapp.cpp
+
+// AppArc framework
+SOURCE lockappapplication.cpp
+SOURCE lockappappui.cpp
+SOURCE lockappdocument.cpp
+
+// State control
+SOURCE lockappobserverlist.cpp
+SOURCE lockappstatecontrol.cpp
+SOURCE lockappbasecontrol.cpp
+
+// State observers
+SOURCE lockappidlecontrol.cpp
+SOURCE lockappkeyguardcontrol.cpp
+SOURCE lockappdevicelockcontrol.cpp
+SOURCE lockappdevicelockcontainer.cpp
+SOURCE lockappecsdetector.cpp
+SOURCE lockappstatepublisher.cpp
+
+// CenRep and PS observers
+SOURCE lockappcenrepobserver.cpp
+SOURCE lockapppubsubobserver.cpp
-USERINCLUDE . ../inc
+// Keyguard notes
+SOURCE lockappsleepingnote.cpp
+SOURCE lockapplockednote.cpp
+SOURCE lockappecsnote.cpp
+
+// LockApp Server
+SOURCE lockappserver.cpp
+SOURCE lockappsession.cpp
-MW_LAYER_SYSTEMINCLUDE
+// LockApp Utils
+SOURCE lockappkeycapturecontroller.cpp
+SOURCE lockappkeypattern.cpp
+SOURCE lockapputils.cpp
+SOURCE lockappwait.cpp
+
+SOURCEPATH ../group
+
+USERINCLUDE ../inc ../loc ../cenrep
+
+APP_LAYER_SYSTEMINCLUDE
+SYSTEMINCLUDE ../../../inc
+
-// Symbian
-LIBRARY euser.lib
-LIBRARY efsrv.lib
-LIBRARY ws32.lib
-LIBRARY eikcore.lib
-LIBRARY apgrfx.lib
-LIBRARY apparc.lib
-LIBRARY cone.lib
+LIBRARY euser.lib // USER services
+LIBRARY apparc.lib // application architecture
+LIBRARY cone.lib // Cone
+LIBRARY bafl.lib // BaflUtils, reading localisation resources
+LIBRARY ws32.lib // accessing window groups
+LIBRARY apgrfx.lib // accessing window group names
+LIBRARY eikcore.lib // eikon environment
+LIBRARY eikcoctl.lib // ceikstatuspane
+LIBRARY eikdlg.lib // eikdialogs
+LIBRARY gdi.lib // drawing
+LIBRARY fbscli.lib // required for CFbsBitmap
+LIBRARY efsrv.lib // server library
+LIBRARY etel.lib // telephony
+LIBRARY etelmm.lib // telephony
+LIBRARY customapi.lib // custom api
+LIBRARY centralrepository.lib // central repository
+LIBRARY cenrepnotifhandler.lib // central repository notify handler
+LIBRARY featmgr.lib // feature manager
+LIBRARY cdlengine.lib // layout engine
+LIBRARY avkon.lib // Avkon
+LIBRARY aknicon.lib // icon support
+LIBRARY aknlayout2.lib // old layouts
+LIBRARY aknlayout2scalable.lib // new layouts
+LIBRARY aknskins.lib // skins
+LIBRARY aknnotify.lib // aknsmallindicator
+LIBRARY activitymanager.lib // Activity manager
+LIBRARY secui.lib // Security UI
+
+LIBRARY flogger.lib // File logging
+
+LIBRARY keylockpolicyapi.lib // Keylock policy
+
+#ifdef __SAP_TERMINAL_CONTROL_FW
+LIBRARY scpclient.lib
+#endif // __SAP_TERMINAL_CONTROL_FW
+
+START RESOURCE ../data/lockapp.rss
+HEADER
+TARGETPATH APP_RESOURCE_DIR
+//LANG SC
+LANGUAGE_IDS
+END
+
+START RESOURCE ../data/lockapp_reg.rss
+TARGETPATH /private/10003a3f/apps
+END
+
SMPSAFE
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/securitydialogs/lockapp/group/lockapp_icons_dc.mk Wed Sep 01 12:19:59 2010 +0100
@@ -0,0 +1,72 @@
+#
+# Copyright (c) 2004 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:
+#
+
+ifeq (WINS,$(findstring WINS, $(PLATFORM)))
+ ZDIR=\epoc32\release\$(PLATFORM)\$(CFG)\Z
+else
+ ZDIR=\epoc32\data\z
+endif
+
+# ----------------------------------------------------------------------------
+# TODO: Configure these
+# ----------------------------------------------------------------------------
+
+TARGETDIR=$(ZDIR)\resource\apps
+ICONTARGETFILENAME=$(TARGETDIR)\lockapp.mif
+
+HEADERDIR=\epoc32\include
+HEADERFILENAME=$(HEADERDIR)\lockapp.mbg
+
+do_nothing :
+ @rem do_nothing
+
+MAKMAKE : do_nothing
+
+BLD : do_nothing
+
+CLEAN : do_nothing
+
+LIB : do_nothing
+
+CLEANLIB : do_nothing
+
+# ----------------------------------------------------------------------------
+# TODO: Configure these.
+#
+# NOTE 1: DO NOT DEFINE MASK FILE NAMES! They are included automatically by
+# MifConv if the mask detph is defined.
+#
+# NOTE 2: Usually, source paths should not be included in the bitmap
+# definitions. MifConv searches for the icons in all icon directories in a
+# predefined order, which is currently \s60\icons, \s60\bitmaps2, \s60\bitmaps.
+# The directory \s60\icons is included in the search only if the feature flag
+# __SCALABLE_ICONS is defined.
+# ----------------------------------------------------------------------------
+
+RESOURCE :
+ mifconv $(ICONTARGETFILENAME) /h$(HEADERFILENAME) \
+ /c8,8 qgn_graf_phone_locked \
+
+
+FREEZE : do_nothing
+
+SAVESPACE : do_nothing
+
+RELEASABLES :
+ @echo $(HEADERFILENAME)&& \
+ @echo $(ICONTARGETFILENAME)
+
+FINAL : do_nothing
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/securitydialogs/lockapp/inc/lockapp.hrh Wed Sep 01 12:19:59 2010 +0100
@@ -0,0 +1,96 @@
+/*
+* Copyright (c) 2007 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: General application spesific enumeration values
+ *
+*/
+
+
+#ifndef __LOCKAPP_HRH__
+#define __LOCKAPP_HRH__
+
+/**
+ * LockApp panic codes
+ *
+ * @lib lockapp
+ * @since 5.0
+ * @author Joona Petrell
+ * @author Tamas Koteles
+ */
+enum TLockAppPanic
+ {
+ ELockPanicGeneral,
+ ELockPanicIllegalMessage,
+ ELockUnknownValue,
+ ELockIllegalState,
+ ELockPanicOutOfRange,
+ ELockPanicObserverAlreadyExists,
+ ELockPanicObserverNotFound,
+ };
+
+/**
+ * Three possible states of LockApp: unlocked, keyguard active, devicelock active
+ *
+ * @lib lockapp
+ * @since 5.0
+ * @author Joona Petrell
+ * @author Tamas Koteles
+ */
+enum TLockStatus
+ {
+ ELockNotActive = 0,
+ EKeyguardActive,
+ EDevicelockActive
+ };
+
+/**
+ * Three possible reason for devicelock: manual, remote, timer
+ *
+ * @lib lockapp
+ * @since 5.0
+ * @author Joona Petrell
+ * @author Tamas Koteles
+ */
+enum TDevicelockReason
+ {
+ EDevicelockManual = 1,
+ EDevicelockRemote,
+ EDevicelockTimer
+ };
+
+/**
+ * Bit-field representing screen saver status
+ */
+const TUint KLockAppEnvScreenSaverOn = 1;
+
+/**
+ * Bit-field representing phonecall status
+ */
+const TUint KLockAppEnvPhonecallOngoing = 2;
+
+/**
+ * Bit-field representing idle status
+ */
+const TUint KLockAppEnvIdleOnForeground = 4;
+
+/**
+ * Bit-field representing grip status
+ */
+const TUint KLockAppEnvGrip = 8;
+
+/**
+ * Bit-field representing FPS status
+ */
+const TUint KLockAppEnvFPS = 0x10;
+
+#endif // __LOCKAPP_HRH__
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/securitydialogs/lockapp/inc/lockappapplication.h Wed Sep 01 12:19:59 2010 +0100
@@ -0,0 +1,49 @@
+/*
+* Copyright (c) 2007 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: Application class that also creates the appserver
+ *
+*/
+
+
+#ifndef __LOCKAPP_APPLICATION_H__
+#define __LOCKAPP_APPLICATION_H__
+
+// INCLUDES
+#include <aknapp.h>
+
+/**
+ * CLockAppApplication class, is the application part of the Avkon
+ * framework.
+ *
+ * @lib lockapp
+ * @since 5.0
+ * @author Joona Petrell
+ * @author Tamas Koteles
+ */
+class CLockAppApplication : public CAknApplication
+ {
+ public:
+
+ /**
+ * @return LockApp application Uid.
+ */
+ TUid AppDllUid( ) const;
+
+ protected:
+
+ CApaDocument* CreateDocumentL( );
+
+ };
+
+#endif // __LOCKAPP_APPLICATION_H__
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/securitydialogs/lockapp/inc/lockappappui.h Wed Sep 01 12:19:59 2010 +0100
@@ -0,0 +1,117 @@
+/*
+* Copyright (c) 2007 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: LockApp Application UI class
+ *
+*/
+
+
+#ifndef __LOCKAPP_APPUI_H__
+#define __LOCKAPP_APPUI_H__
+
+// INCLUDES
+#include <aknappui.h>
+#include "lockapp.hrh"
+
+// FORWARD DECLARATIONS
+class CLockAppAppView;
+class MLockAppStateControl;
+class CLockAppStateControl;
+class CLockAppServer;
+
+/**
+ * CLockAppApplication class is the central user interface class in Avkon.
+ * Owns the LockApp state control and the server component.
+ *
+ * @lib lockapp
+ * @since 5.0
+ * @author Joona Petrell
+ * @author Tamas Koteles
+ */
+class CLockAppAppUi : public CAknAppUi
+ {
+ public:
+
+ /**
+ * Second constructor that can fail (leave).
+ */
+ void ConstructL( );
+
+ /**
+ * C++ default constructor.
+ */
+ CLockAppAppUi( );
+
+ /**
+ * Destructor.
+ */
+ ~CLockAppAppUi( );
+
+ public:
+
+ /**
+ * @see CAknAppUi::HandleResourceChangeL(TInt aType)
+ */
+ void HandleResourceChangeL( TInt aType );
+
+ public:
+
+ /**
+ * Access to main lock state control (used by the server).
+ *
+ * @return pointer to state control
+ */
+ MLockAppStateControl* StateControl( );
+
+ protected:
+
+#ifdef __SAP_TERMINAL_CONTROL_FW
+
+ /**
+ * From CEikAppUi, handles the TARM unlock message, other messages
+ * are propagated to the superclass handler.
+ *
+ * @param aClientHandleOfTargetWindowGroup The window group that the message was sent to.
+ * @param aMessageUid The message UID.
+ * @param aMessageParameters The message parameters
+ * @return TMessageResponse EMessageHandled if the message was the TARM unlock message,
+ * otherwise the return value from the superclass handler.
+ */
+ MCoeMessageObserver::TMessageResponse HandleMessageL(
+ TUint32 aClientHandleOfTargetWindowGroup,
+ TUid aMessageUid,
+ const TDesC8& aMessageParameters );
+
+#endif // __SAP_TERMINAL_CONTROL_FW
+
+ /**
+ * @see CAknAppUi::HandleWsEventL(const TWsEvent& aEvent,CCoeControl* aDestination)
+ */
+ void HandleWsEventL( const TWsEvent& aEvent, CCoeControl* aDestination );
+
+ private:
+
+ /**
+ * Main control of the LockApp.
+ * Owned.
+ */
+ CLockAppStateControl* iStateControl;
+
+ /**
+ * Main server of the LockApp.
+ * Own.
+ */
+ CLockAppServer* iLockServer;
+ };
+
+#endif // __LOCKAPP_APPUI_H__
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/securitydialogs/lockapp/inc/lockappbasecontrol.h Wed Sep 01 12:19:59 2010 +0100
@@ -0,0 +1,158 @@
+/*
+* Copyright (c) 2007 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: Base control for logical UI components
+ *
+*/
+
+
+#ifndef __LOCKAPPBASECONTROL_H__
+#define __LOCKAPPBASECONTROL_H__
+
+// INCLUDES
+#include <coecntrl.h>
+#include "lockappstateobserver.h"
+#include "lockapplockednote.h"
+#include "lockappkeypattern.h"
+#include <keylockpolicyapi.h>
+
+// FORWARD DECLARATIONS
+class MLockAppStateControl;
+class CEikButtonGroupContainer;
+
+/**
+ * CLockAppBaseControl class is the base control of lockapp state controls,
+ * provides common interface and some protected utility methods.
+ *
+ * @lib lockapp
+ * @since 5.0
+ * @author Joona Petrell
+ * @author Tamas Koteles
+ */
+class CLockAppBaseControl : public CCoeControl, public MLockAppStateObserver
+ {
+ public:
+
+ /**
+ * Destructor.
+ */
+ ~CLockAppBaseControl( );
+
+ /**
+ * From @c MLockAppStateObserver. Method handles the lock state changes.
+ *
+ * @param aStatus The new lock state
+ */
+ virtual void HandleLockStatusChangedL( TLockStatus aStatus );
+
+ /**
+ * Handles control activation.
+ *
+ * @param aEnvMask environment bitmask
+ */
+ virtual void HandleActivateEventL( TUint aEnvMask );
+
+ /**
+ * Handles control deactivation.
+ *
+ * @param aEnvMask environment bitmask
+ */
+ virtual void HandleDeActivateEventL( TUint aEnvMask );
+
+ /**
+ * Handle environment bitmask change.
+ *
+ * @param aEnvMask environment bitmask
+ * @param aEventMask event bitmask
+ */
+ virtual void HandleEnvironmentChange( TUint aEnvMask, TUint aEventMask );
+
+ protected:
+
+ /**
+ * Default Constructor.
+ *
+ * @param aStateControl state control interface
+ */
+ CLockAppBaseControl( MLockAppStateControl& aStateControl );
+
+ /**
+ * 2nd phase constructor.
+ */
+ void ConstructL( );
+
+ /**
+ * Set up the control's keypattern matcher with the specified keylockpolicy.
+ *
+ * @param aType keylock policy type (lock,unlock,devicelock)
+ */
+ TBool SetupKeyPatternsWithPolicyL( TLockPolicyType aType );
+
+ /**
+ * Show a note. (cancels previous one if shown)
+ *
+ * @param aNote note to be shown
+ * @param aTimeout timeout for the note
+ * @param aTone tone type
+ */
+ void ShowNote( CLockAppLockedNote* aNote, const TInt aTimeout,
+ const CAknNoteDialog::TTone aTone );
+
+ /**
+ * Dismisses a note.
+ */
+ void CancelNote( );
+
+ /**
+ * Capture/Release primary keys.
+ */
+ void CapturePrimaryKeys( const TBool aCapture );
+
+ /**
+ * Show/Hide softkey cba.
+ */
+ void ShowCba( const TBool aShow );
+
+ /**
+ * Capture/Release pointer events.
+ */
+ void SetPointerEventCapture( const TBool aEnable );
+
+ /**
+ * Show/Hide keyguard indicator state.
+ */
+ void SetKeyguardIndicatorStateL( const TBool aEnable );
+
+ protected:
+
+ // interface to parent state control
+ MLockAppStateControl& iStateControl;
+
+ // application's window group
+ RWindowGroup& iWindowGroup;
+
+ // control's currently shown note (not owned)
+ CLockAppLockedNote* iCurrentNote;
+
+ // control's Cba (owned)
+ CEikButtonGroupContainer* iCba;
+
+ // key pattern matching (owned)
+ CLockAppKeyPattern* iKeyPattern;
+
+ // if control is active
+ TBool iActive;
+
+ };
+
+#endif // __LOCKAPPBASECONTROL_H__
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/securitydialogs/lockapp/inc/lockappcenrepobserver.h Wed Sep 01 12:19:59 2010 +0100
@@ -0,0 +1,136 @@
+/*
+* Copyright (c) 2007 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: Central Repository key observer
+ *
+*/
+
+
+#ifndef __LOCKAPPCENREPOBSERVER_H__
+#define __LOCKAPPCENREPOBSERVER_H__
+
+// INCLUDES
+#include <e32std.h>
+#include <cenrepnotifyhandler.h>
+#include "lockappobserverinterface.h"
+
+/**
+ * CLockAppCenRepObserver class is a Central Repository key observer
+ * which can be used to monitor and set a CenRep value.
+ *
+ * @lib lockapp
+ * @since 5.0
+ * @author Tamas Koteles
+ */
+class CLockAppCenRepObserver : public CBase, public MCenRepNotifyHandlerCallback
+ {
+ public:
+
+ /**
+ * Two-phased constructor.
+ *
+ * @param aObserver pointer to observer
+ * @param aCenRepUid repository Uid
+ * @param aKeyId repository key Id
+ * @return the instance just created
+ */
+ static CLockAppCenRepObserver* NewL( MLockAppObserverInterface* aObserver, TUid aCenRepUid,
+ TUint32 aKeyId );
+
+ /**
+ * Destructor.
+ */
+ ~CLockAppCenRepObserver( );
+
+ /**
+ * Get key value from CenRep.
+ */
+ TInt GetValue( TInt& aValue );
+
+ /**
+ * Get the value from a different CenRep key.
+ */
+ TInt GetKeyValue( TUint32 aKey, TInt& aValue );
+
+ /**
+ * Set key value to CenRep.
+ */
+ TInt SetValue( TInt aValue );
+
+ /**
+ * Set the value of a different CenRep key.
+ */
+ TInt SetKeyValue( TUint32 aKey, TInt aValue );
+
+ public:
+
+ /**
+ * From MCenRepNotifyHandlerCallback. Handles change event. Called by CenRep.
+ *
+ * @param aId the id of the changed setting
+ * @param aNewValue the new value of the changed setting
+ */
+ void HandleNotifyInt( TUint32 aId, TInt aNewValue );
+
+ void HandleNotifyError( TUint32 aId, TInt error, CCenRepNotifyHandler* aHandler );
+
+ void HandleNotifyGeneric( TUint32 aId );
+
+ protected:
+
+ /**
+ * C++ default constructor.
+ *
+ * @param aObserver pointer to observer
+ * @param aCenRepUid central repository Uid
+ * @param aKeyId key Id
+ */
+ CLockAppCenRepObserver( MLockAppObserverInterface* aObserver, TUid aCenRepUid,
+ TUint32 aKeyId );
+
+ /**
+ * Symbian OS constructor.
+ */
+ void ConstructL( );
+
+ protected:
+
+ /**
+ * Observer's callback interface. Not owned.
+ */
+ MLockAppObserverInterface* iObserver;
+
+ /**
+ * CenRep value notifier.
+ */
+ CCenRepNotifyHandler* iNotifyHandler;
+
+ /**
+ * Access to central repository.
+ */
+ CRepository* iRepository;
+
+ /**
+ * Repository Uid.
+ */
+ TUid iCenRepUid;
+
+ /**
+ * Repository key Id.
+ */
+ TUint32 iKeyId;
+
+ };
+
+#endif // __LOCKAPPCENREPOBSERVER_H__
+// END OF FILE
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/securitydialogs/lockapp/inc/lockappdevicelockcontainer.h Wed Sep 01 12:19:59 2010 +0100
@@ -0,0 +1,98 @@
+/*
+* Copyright (c) 2007 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: Devicelock Background UI (window owning control)
+ *
+*/
+
+
+#ifndef LOCKAPPDEVICELOCKCONTAINER_H
+#define LOCKAPPDEVICELOCKCONTAINER_H
+
+// INCLUDES
+#include <coecntrl.h>
+#include <eikimage.h>
+#include <eiklabel.h>
+#include <AknSkinnableClock.h>
+
+// FORWARD DECLARATIONS
+class CAknsLayeredBackgroundControlContext;
+
+/**
+ * CLockAppDevicelockContainer class contains UI components
+ * for the devicelock control.
+ *
+ * @lib lockapp
+ * @since 5.0
+ * @author Joona Petrell
+ * @author Tamas Koteles
+ * @see CLockAppDevicelockControl
+ */
+class CLockAppDevicelockContainer : public CCoeControl, MCoeControlObserver
+ {
+ public:
+
+ /**
+ * Two-phased constructor.
+ */
+ static CLockAppDevicelockContainer* CLockAppDevicelockContainer::NewL( RWindowGroup& aWg );
+
+ /**
+ * Destructor.
+ */
+ ~CLockAppDevicelockContainer( );
+
+ public:
+
+ /**
+ * From CCoeControl, MopSupplyObject
+ */
+ TTypeUid::Ptr MopSupplyObject( TTypeUid aId );
+
+ private:
+
+ /**
+ * 2nd stage construction
+ */
+ void ConstructL( RWindowGroup& aWg );
+
+ TRect GetMainPaneRect( );
+
+ private:
+
+ void SizeChanged( );
+
+ TInt CountComponentControls( ) const;
+
+ CCoeControl* ComponentControl( TInt aIndex ) const;
+
+ void Draw( const TRect& aRect ) const;
+
+ void HandleControlEventL( CCoeControl* aControl, TCoeEvent aEventType );
+
+ private:
+
+ CEikImage* iEikBitmap;
+ CFbsBitmap* iBitmap;
+ CFbsBitmap* iMask;
+
+ // Owned background context.
+ CAknsLayeredBackgroundControlContext* iBgContext;
+
+ // Clock for landscape.
+ CAknSkinnableClock* iClock;
+ };
+
+#endif
+
+// End of File
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/securitydialogs/lockapp/inc/lockappdevicelockcontrol.h Wed Sep 01 12:19:59 2010 +0100
@@ -0,0 +1,238 @@
+/*
+* Copyright (c) 2007 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: Devicelock UI
+ *
+*/
+
+
+#ifndef LOCKAPPDEVICELOCKCONTROL_H
+#define LOCKAPPDEVICELOCKCONTROL_H
+
+// INCLUDES
+#include "lockappbasecontrol.h"
+#include "lockappobserverinterface.h"
+#include <etelmm.h>
+#include <rmmcustomapi.h>
+#include <LockDomainCRKeys.h>
+
+// FORWARD DECLARATIONS
+class CLockAppDevicelockContainer;
+class CUserActivityManager;
+class CLockAppPubSubObserver;
+class CLockAppCenRepObserver;
+
+/**
+ * CLockAppDevicelockControl represents the devicelock state in the state machine.
+ * Window-owning compound control that provides visible user interface,
+ * shows the lock bitmap by its child container, handles all events
+ * and asks for security code if "unlock" is pressed.
+ *
+ * @lib lockapp
+ * @since 5.0
+ * @author Joona Petrell
+ * @author Tamas Koteles
+ * @see CLockAppBaseControl
+ * @see CLockAppDevicelockContainer
+ * @see MLockAppStateControl
+ * @see CUserActivityManager
+ * @see CLockAppPubSubObserver
+ * @see CLockAppCenRepObserver
+ */
+class CLockAppDevicelockControl : public CLockAppBaseControl, public MEikCommandObserver,
+ public MLockAppObserverInterface
+ {
+ public:
+
+ /**
+ * Two-phased constructor.
+ */
+ static CLockAppDevicelockControl* NewL( MLockAppStateControl& aStateControl,
+ RWindowGroup& aWg );
+
+ /**
+ * Destructor.
+ */
+ ~CLockAppDevicelockControl( );
+
+ /**
+ * Finalize the construction by connecting to Phone side.
+ */
+ void CLockAppDevicelockControl::ConnectToPhoneL( RWindowGroup& aWg );
+
+ /**
+ * Is it allowed to activate control.
+ */
+ TBool ActivationAllowedL( TDevicelockReason aReason );
+
+ /**
+ * is it allowed to deactivate control.
+ */
+ TBool DeActivationAllowedL( );
+
+ virtual void HandleActivateEventL( TUint aEnvMask );
+
+ virtual void HandleDeActivateEventL( TUint aEnvMask );
+
+ virtual void HandleEnvironmentChange( TUint aEnvMask, TUint aEventMask );
+
+ /**
+ * Set the reason for devicelock.
+ */
+ void SetLockingReason( TDevicelockReason aReason );
+
+ private:
+
+ /**
+ * Constructor for performing 1st stage construction
+ */
+ CLockAppDevicelockControl( MLockAppStateControl& aStateControl );
+
+ /**
+ * 2nd stage construction
+ */
+ void ConstructL( RWindowGroup& aWg );
+
+ void DefinePubSubKeysL( );
+
+ void HandleUnlockCommandL( );
+
+ public:
+
+ /**
+ * Handle Central Repository observer callback.
+ */
+ void HandleCenRepNotify( TUid aCenRepUid, TUint32 aKeyId, TInt aValue );
+
+ /**
+ * Handle Publish & Subscribe observer callback.
+ */
+ void HandlePubSubNotify( TUid aPubSubUid, TUint aKeyId, TInt aValue );
+
+ public:
+
+ void HandleResourceChange( TInt aType );
+
+ TKeyResponse OfferKeyEventL( const TKeyEvent& aKeyEvent, TEventCode aType );
+
+ private:
+
+ TInt CountComponentControls( ) const;
+
+ CCoeControl* ComponentControl( TInt aIndex ) const;
+
+ private:
+
+ /*
+ * Checks whether we are booting from a Hidden Reset
+ */
+ TBool IsHiddenReset( );
+
+ /*
+ * Checks whether the pin is blocked.
+ */
+ TBool IsPinBlocked( );
+
+ /*
+ * Checks whether TARM admin flag is set (optionally unsets it).
+ */
+ TBool TarmAdminFlag( TBool unSetFlag );
+
+ TBool ETelActivationAllowed( );
+
+ // Get autolock timeout (in seconds)
+ TInt GetAutoLockTimeout( );
+
+ // Starts monitoring user activity
+ void StartActivityMonitoringL( );
+
+ // Gets new autolock period and starts monitoring user activity
+ void ResetInactivityTimeout( );
+
+ // Stop monitoring user activity.
+ void StopActivityMonitoring( );
+
+ // Handles Active event. Called by ActivityManager
+ static TInt HandleActiveEventL( TAny* aPtr );
+
+ // Handles Inactive event. Called by ActivityManager
+ static TInt HandleInactiveEventL( TAny* aPtr );
+
+ // Set custom status pane visible/invisible
+ void ShowStatusPane( const TBool aVisible );
+
+ private:
+
+ /**
+ * From @c MEikCommandObserver. Dialogs and CBA send
+ * UI commands to parent using method ProcessCommandL.
+ *
+ * @param aCommandId Command to be handled
+ */
+ void ProcessCommandL( TInt aCommandId );
+
+ private:
+
+ /*****************************************************
+ * S60 Customer / ETel
+ * S60 ETel API
+ *****************************************************/
+
+ RTelServer iTelServer;
+ int iTelServerInitialized;
+ RMobilePhone iPhone;
+ int iPhoneInitialized;
+ RMmCustomAPI iCustomPhone;
+ int iCustomPhoneInitialized;
+
+ /**
+ * Devicelock auto-locking timeout observer
+ * (value in minutes)
+ */
+ CLockAppCenRepObserver* iCRAutoLockTime;
+
+ /**
+ * Devicelock status publisher.
+ * (Permamanent setting: On/Off)
+ */
+ CLockAppCenRepObserver* iCRAutoLockStatus;
+
+ /**
+ * Autolock state PubSub publisher.
+ * (Runtime setting)
+ */
+ CLockAppPubSubObserver* iPSAutolockState;
+
+ /**
+ * User activity manager/observer
+ */
+ CUserActivityManager* iActivityManager;
+
+ /**
+ * Background image container control
+ */
+ CLockAppDevicelockContainer* iContainer;
+
+ /**
+ * Feature manager value for CDMA protocol
+ */
+ TBool iFeatureProtocolCdma;
+
+ /**
+ * Is security code query shown
+ */
+ TBool iShowingSecCodeQuery;
+
+ };
+
+#endif // LOCKAPPDEVICELOCKCONTROL_H
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/securitydialogs/lockapp/inc/lockappdocument.h Wed Sep 01 12:19:59 2010 +0100
@@ -0,0 +1,78 @@
+/*
+* Copyright (c) 2007 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: LockApp application document class
+ *
+*/
+
+
+#ifndef __LOCKAPP_DOCUMENT_H__
+#define __LOCKAPP_DOCUMENT_H__
+
+// INCLUDES
+#include <AknDoc.h>
+
+// FORWARD DECLARATIONS
+class CLockAppAppUi;
+class CEikApplication;
+
+/**
+ * CLockAppDocument class is derived from CAknDocument,
+ * based on standard Avkon document template.
+ *
+ * @lib lockapp
+ * @since 5.0
+ * @author Joona Petrell
+ * @author Tamas Koteles
+ */
+class CLockAppDocument : public CAknDocument
+ {
+ public:
+
+ /**
+ * Two-phased constructor.
+ *
+ * @param aApp application class
+ */
+ static CLockAppDocument* NewL( CEikApplication& aApp );
+ static CLockAppDocument* NewLC( CEikApplication& aApp );
+
+ /**
+ * Destructor
+ */
+ ~CLockAppDocument( );
+
+ public:
+
+ /*
+ * From @c CAknDocument. Creates AppUi.
+ *
+ * @return generic AppUI object
+ */
+ CEikAppUi* CreateAppUiL( );
+
+ private:
+
+ /**
+ * Second constructor that can fail (leave).
+ */
+ void ConstructL( );
+
+ /**
+ * C++ default constructor.
+ */
+ CLockAppDocument( CEikApplication& aApp );
+
+ };
+
+#endif // __LOCKAPP_DOCUMENT_H__
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/securitydialogs/lockapp/inc/lockappecsdetector.h Wed Sep 01 12:19:59 2010 +0100
@@ -0,0 +1,119 @@
+/*
+* Copyright (c) 2007 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: Provides emergency call support for keyguard/devicelock
+ *
+*/
+
+
+#ifndef __LOCKAPPSTATEDETECTOR_H__
+#define __LOCKAPPSTATEDETECTOR_H__
+
+// INCLUDES
+#include "lockappstateobserver.h"
+#include <AknEcs.h> // MAknEcsObserver and CAknEcsDetector
+
+// FORWARD DECLARATIONS
+class CLockAppEcsNote;
+
+/**
+ * CLockAppEcsDetector class owns emergency note and emergency detector.
+ * Taps directly to AppUi windowserver event source for receiving key events.
+ * If user presses emergency numbers defined in SIM, emergency note is shown.
+ * Only works when keyguard or devicelock is activated.
+ *
+ * @lib lockapp
+ * @since 5.0
+ * @author Joona Petrell
+ * @author Tamas Koteles
+ */
+class CLockAppEcsDetector : public CBase, public MLockAppStateObserver, public MAknEcsObserver
+ {
+ public:
+
+ /**
+ * Two-phased constructor.
+ */
+ static CLockAppEcsDetector* NewL( );
+
+ /**
+ * Destructor
+ */
+ ~CLockAppEcsDetector( );
+
+ private:
+
+ /**
+ * C++ default constructor.
+ */
+ CLockAppEcsDetector( );
+
+ /**
+ * Second constructor that can fail (leave).
+ */
+ void ConstructL( );
+
+ public:
+
+ /**
+ * From @c CLockAppStateObserver. Method handles the lock state changes.
+ *
+ * @param aLockStatus The new lock state
+ */
+ virtual void HandleLockStatusChangedL( TLockStatus aLockStatus );
+
+ private:
+
+ /**
+ * From @c MAknEcsObserver. Handles changes in emergency call detector.
+ * @param aEcsDetector a pointer to ecsdetector component
+ * @param aState the new emergency detector state.
+ */
+ void HandleEcsEvent( CAknEcsDetector* aEcsDetector, CAknEcsDetector::TState aState );
+
+ public:
+
+ /**
+ * Emergency note is visible.
+ *
+ * @return true if emergency note is on the screen.
+ */
+ TBool EcsNoteOnScreen( ) const;
+
+ /**
+ * Internal Method only used for testing since emergency number
+ * detection does not work in emulator.
+ *
+ * @return KErrNone if there were no problems
+ */
+ TInt TestEcsNote( );
+
+ private:
+
+ /**
+ * Receives emergency number key events and handles emergency dialing.
+ * Own.
+ */
+ CAknEcsDetector* iEcsDetector;
+
+ /**
+ * Emergency note to be shown when user has dialed emergency number.
+ * Own.
+ */
+ CLockAppEcsNote* iEcsNote;
+
+ };
+
+#endif // __LOCKAPPSTATEDETECTOR_H__
+// End of File
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/securitydialogs/lockapp/inc/lockappecsnote.h Wed Sep 01 12:19:59 2010 +0100
@@ -0,0 +1,85 @@
+/*
+* Copyright (c) 2007 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: Emergency number dialog
+ *
+*/
+
+
+#ifndef __LOCKAPPECSNOTE_H__
+#define __LOCKAPPECSNOTE_H__
+
+// INCLUDES
+#include <aknnotedialog.h>
+
+/**
+ * CLockAppEcsNote class is derived from Avkon note implementation;
+ * shows emergency numbers on a dialog once the user has dialed
+ * the numbers.
+ *
+ * @lib lockapp
+ * @since 5.0
+ * @author Joona Petrell
+ * @author Tamas Koteles
+ */
+class CLockAppEcsNote : public CAknNoteDialog
+ {
+ public:
+
+ /**
+ * C++ constructor.
+ */
+ CLockAppEcsNote( );
+
+ /**
+ * Destructor.
+ */
+ ~CLockAppEcsNote( );
+
+ public:
+
+ /**
+ * Constructs sleeping note
+ */
+ void ConstructSleepingNoteL( TInt aResourceId );
+
+ /**
+ * Shows sleeping note
+ */
+ TInt ShowNote( );
+
+ /**
+ * Hides sleeping note
+ */
+ void SleepNote( );
+
+ /**
+ * Consume key events
+ */
+ TKeyResponse OfferKeyEventL( const TKeyEvent& aKeyEvent, TEventCode aType );
+
+ /**
+ * API to set the emergency number to be displayed
+ *
+ * aMatchedNumber text to display (e.g. "112" )
+ */
+ void SetEmergencyNumber( const TDesC& aMatchedNumber );
+
+ public:
+
+ TBool iNoteOnScreen;
+
+ };
+
+#endif // __LOCKAPPECSNOTE_H__
+// End of File
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/securitydialogs/lockapp/inc/lockappidlecontrol.h Wed Sep 01 12:19:59 2010 +0100
@@ -0,0 +1,105 @@
+/*
+* Copyright (c) 2007 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: Idle (unlocked) UI
+ *
+*/
+
+
+#ifndef LOCKAPPIDLECONTROL_H
+#define LOCKAPPIDLECONTROL_H
+
+// INCLUDES
+#include <eiknotapi.h>
+#include <eikbtgpc.h>
+#include <AknNotifyStd.h>
+#include <aknnotedialog.h>
+#include <AknNotifierControllerPlugin.h>
+#include <AknQueryDialog.h> // phone query
+#include "lockappbasecontrol.h"
+
+/**
+ * CLockAppIdleControl class represents the unlocked state in the locking state machine.
+ *
+ * @lib lockapp
+ * @since 5.0
+ * @author Joona Petrell
+ * @author Tamas Koteles
+ * @see CLockAppBaseControl
+ * @see MLockAppStateControl
+ */
+class CLockAppIdleControl : public CLockAppBaseControl, public MEikCommandObserver
+ {
+ public:
+
+ /**
+ * Two-phased constructor.
+ */
+ static CLockAppIdleControl* NewL( MLockAppStateControl& aStateControl );
+
+ /**
+ * Destructor.
+ */
+ ~CLockAppIdleControl( );
+
+ private:
+
+ /**
+ * Constructor for performing 1st stage construction
+ */
+ CLockAppIdleControl( MLockAppStateControl& aStateControl );
+
+ /**
+ * EPOC default constructor for performing 2nd stage construction
+ */
+ void ConstructL( );
+
+ public:
+
+ void OfferKeyLock( );
+
+ void CancelOfferKeyLock( );
+
+ void HandleActivateEventL( TUint aEnvMask );
+
+ void HandleDeActivateEventL( TUint aEnvMask );
+
+ public:
+
+ void HandleResourceChange( TInt aType );
+
+ TKeyResponse OfferKeyEventL( const TKeyEvent& aKeyEvent, TEventCode aType );
+
+ private:
+
+ TInt CountComponentControls( ) const;
+
+ CCoeControl* ComponentControl( TInt aIndex ) const;
+
+ private:
+ /**
+ * From @c MEikCommandObserver. Dialogs and CBA send
+ * UI commands to parent using method ProcessCommandL.
+ *
+ * @param aCommandId Command to be handled
+ */
+ void ProcessCommandL( TInt aCommandId );
+
+ private:
+
+ // "offer to lock keys" note
+ CLockAppLockedNote* iOfferLockNote;
+
+ };
+
+#endif // LOCKAPPIDLECONTROL_H
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/securitydialogs/lockapp/inc/lockappkeycapturecontroller.h Wed Sep 01 12:19:59 2010 +0100
@@ -0,0 +1,140 @@
+/*
+* Copyright (c) 2007 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: Key capture controller
+ *
+*/
+
+
+#ifndef __LOCKAPPKEYCAPTURECONTROLLER_H__
+#define __LOCKAPPKEYCAPTURECONTROLLER_H__
+
+// INCLUDES
+#include <e32base.h>
+#include <e32keys.h>
+
+// enumerated type for captured key events
+enum TPhoneKeyCaptureType
+ {
+ EKeyCaptureEvent,
+ EKeyCaptureUpAndDownEvents,
+ EKeyCaptureAllEvents
+ };
+
+// Key capture data structure
+class TPhoneKeyCapture
+ {
+ public:
+ TStdScanCode iKey; // primary identifier
+ TKeyCode iKeyCode;
+ TPhoneKeyCaptureType iType;
+ TInt32 iHandle;
+ TInt32 iHandleForUpAndDown;
+ };
+
+// FORWARD DECLARATIONS
+class RWindowGroup;
+
+/**
+ * CLockAppKeyCaptureController class is a simple key capture utily that
+ * provides a way to capture/release keys for the current window group.
+ *
+ * @lib lockapp
+ * @since 5.0
+ * @author Joona Petrell
+ * @author Tamas Koteles
+ */
+class CLockAppKeyCaptureController : public CBase
+ {
+ public:
+
+ /**
+ * Initialize the utility
+ */
+ static CLockAppKeyCaptureController* InitL( RWindowGroup& aWindowGroup );
+
+ /**
+ * Destroy the utility
+ */
+ static void Destroy( );
+
+ /**
+ * Set key to be captured
+ */
+ static void CaptureKey( TUint32 aKey, TUint32 aKeyCode, TPhoneKeyCaptureType aType );
+
+ /**
+ * Set key to be released
+ */
+ static void ReleaseKey( TUint32 aKey );
+
+ private:
+
+ /**
+ * C++ default constructor.
+ */
+ CLockAppKeyCaptureController( RWindowGroup& aWindowGroup );
+
+ /**
+ * Destructor.
+ */
+ virtual ~CLockAppKeyCaptureController( );
+
+ private:
+
+ /**
+ * Set key to be captured
+ */
+ void StartCapturingKey( TUint32 aKey, TUint32 aKeyCode, TPhoneKeyCaptureType aType );
+
+ /**
+ * Set key not to be captured
+ */
+ void StopCapturingKey( TUint32 aKey );
+
+ /**
+ * May be used to ask whether a key has been set to be captured or not
+ * @param aKey is the iScanCode of the key
+ * @return ETrue if the key is currently captured via this mechanism
+ */
+ TBool IsKeyCaptured( TUint32 aKey ) const;
+
+ /**
+ * Set key not to be captured
+ * @param aKeyCapture is the key not to be captured
+ */
+ void StopKeyCapture( TPhoneKeyCapture aKeyCapture );
+
+ private:
+
+ /**
+ * Private instance of the utility
+ */
+ static CLockAppKeyCaptureController* instance;
+
+ /**
+ * Array of keycodes currently captured which includes the window
+ * server handles for the captured keys.
+ */
+ RArray<TPhoneKeyCapture> iCapturedKeys;
+
+ /**
+ * application's window group
+ */
+ RWindowGroup& iWindowGroup;
+
+ };
+
+#endif // LOCKAPPKEYCAPTURECONTROLLER_H
+
+// End of File
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/securitydialogs/lockapp/inc/lockappkeyguardcontrol.h Wed Sep 01 12:19:59 2010 +0100
@@ -0,0 +1,207 @@
+/*
+* Copyright (c) 2007 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: Keyguard UI (window-owning compound control)
+ *
+*/
+
+
+#ifndef __LOCKAPPKEYGUARDCONTROL_H__
+#define __LOCKAPPKEYGUARDCONTROL_H__
+
+// INCLUDES
+#include "lockappbasecontrol.h"
+#include "lockappobserverinterface.h"
+#include <LockDomainCRKeys.h>
+
+// FORWARD DECLARATIONS
+class CLockAppPubSubObserver;
+class CLockAppCenRepObserver;
+class CUserActivityManager;
+
+/**
+ * CLockAppKeyguardControl class represents the keyguard state in the state machine.
+ * Window-owning compound control that provides visible keyguard user interface.
+ * Owns all keyguard dialogs and commands received from the child controls like
+ * dialogs and cba.
+ *
+ * @lib lockapp
+ * @since 5.0
+ * @author Joona Petrell
+ * @author Tamas Koteles
+ * @see CLockAppBaseControl
+ * @see MLockAppStateControl
+ * @see CUserActivityManager
+ * @see CLockAppPubSubObserver
+ * @see CLockAppCenRepObserver
+ */
+class CLockAppKeyguardControl : public CLockAppBaseControl, public MEikCommandObserver,
+ public MLockAppObserverInterface
+ {
+ public:
+
+ /**
+ * Two-phased constructor.
+ *
+ * @param aStateControl reference to the main state control
+ */
+ static CLockAppKeyguardControl* NewL( MLockAppStateControl& aStateControl );
+
+ /**
+ * Destructor.
+ */
+ ~CLockAppKeyguardControl( );
+
+ TBool ActivationAllowedL( );
+
+ TBool DeActivationAllowedL( );
+
+ virtual void HandleActivateEventL( TUint aEnvMask );
+
+ virtual void HandleDeActivateEventL( TUint aEnvMask );
+
+ virtual void HandleEnvironmentChange( TUint aEnvMask, TUint aEventMask );
+
+ private:
+
+ /**
+ * C++ default constructor.
+ *
+ * @param aStateControl reference to the main state control
+ */
+ CLockAppKeyguardControl( MLockAppStateControl& aStateControl );
+
+ /**
+ * Second constructor that can fail (leave).
+ */
+ void ConstructL( );
+
+ public:
+
+ void DisplayLockedNote( );
+
+ void DisplayKeysLockedNote( );
+
+ void DisplayKeysActiveNote( );
+
+ public:
+
+ void HandleResourceChange( TInt aType );
+
+ TKeyResponse OfferKeyEventL( const TKeyEvent& aKeyEvent, TEventCode aType );
+
+ public:
+
+ /**
+ * Handle Central Repository observer callback.
+ */
+ void HandleCenRepNotify( TUid aCenRepUid, TUint32 aKeyId, TInt aValue );
+
+ /**
+ * Handle Publish & Subscribe observer callback.
+ */
+ void HandlePubSubNotify( TUid aPubSubUid, TUint aKeyId, TInt aValue );
+
+ private:
+
+ TInt CountComponentControls( ) const;
+
+ CCoeControl* ComponentControl( TInt aIndex ) const;
+
+ private:
+
+ /**
+ * UI commands to parent using method ProcessCommandL.
+ *
+ * @param aCommandId Command to be handled
+ */
+ void ProcessCommandL( TInt aCommandId );
+
+ private:
+
+ void DisplayConfirmationNote( );
+
+ // Is allowed to auto lock keys
+ TBool AutoActivationAllowedL( );
+
+ // Get auto keyguard timeout
+ TInt GetAutoKeyguardTimeout( );
+
+ // Starts monitoring user activity
+ void StartActivityMonitoringL( );
+
+ // Gets new autolock period and starts monitoring user activity
+ void ResetInactivityTimeout( );
+
+ // Stop monitoring user activity.
+ void StopActivityMonitoring( );
+
+ // Handles Active event. Called by ActivityManager
+ static TInt HandleActiveEventL( TAny* aPtr );
+
+ // Handles Inactive event. Called by ActivityManager
+ static TInt HandleInactiveEventL( TAny* aPtr );
+
+ private:
+
+ /**
+ * "Now press *" confirmation note.
+ */
+ CLockAppLockedNote* iConfirmationNote;
+
+ /**
+ * "Keys are locked. Press Unlock" note.
+ */
+ CLockAppLockedNote* iLockedNote;
+
+ /**
+ * "Keys locked" note
+ */
+ CLockAppLockedNote* iKeypadLockedNote;
+
+ /**
+ * "Keys activated" note
+ */
+ CLockAppLockedNote* iKeypadUnlockedNote;
+
+ /**
+ * CenRep observers
+ */
+ CLockAppCenRepObserver* iCRAutoKeyguardTime;
+ CLockAppCenRepObserver* iCRPersistentKeyguardStatus;
+
+ /**
+ * PubSub observers
+ */
+ CLockAppPubSubObserver* iPSStartupObserver;
+
+ /**
+ * User activity manager
+ */
+ CUserActivityManager* iActivityManager;
+
+ /**
+ * Hardware support for keyguard
+ */
+ TLockHardware iHardwareSupport;
+
+ /**
+ * Flags if we had already normal state
+ */
+ TBool iAlreadyNormalState;
+
+ };
+
+#endif // __LOCKAPPKEYGUARDCONTROL_H__
+
+// End of File
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/securitydialogs/lockapp/inc/lockappkeypattern.h Wed Sep 01 12:19:59 2010 +0100
@@ -0,0 +1,183 @@
+/*
+* Copyright (c) 2007 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: Key pattern matching component.
+ *
+*/
+
+
+#ifndef __LOCKAPPKEYPATTERN__
+#define __LOCKAPPKEYPATTERN__
+
+// INCLUDES
+#include <w32std.h>
+#include <e32base.h>
+
+enum TPatternState
+ {
+ EPatternNotInitialized = 1,
+ EPatternNotEnabled,
+ EPatternNoMatch,
+ EPatternPrimaryMatch,
+ EPatternSecondaryMatch,
+ };
+
+/**
+ * CLockAppKeyPattern class implements a 2-key pattern matcher.
+ * Can be used for both iCodes and iScancodes, as it matches integer numbers.
+ * The caller's responsability is to make sense what is beeing matched.
+ * Multiple patterns can be defined.
+ *
+ * @lib lockapp
+ * @since 5.0
+ * @author Tamas Koteles
+ */
+class CLockAppKeyPattern : public CBase
+ {
+ public:
+
+ /**
+ * Two phased constructor.
+ */
+ static CLockAppKeyPattern* NewL( );
+
+ /**
+ * Destructor.
+ */
+ ~CLockAppKeyPattern( );
+
+ /**
+ * If no patterns have been defined it cannot be used.
+ * @return ETrue if has succesfully loaded policy
+ */
+ TBool HasPatterns( );
+
+ /**
+ * Gets the enabled state.
+ *
+ * @return true if the patterns are enabled, false othewise
+ */
+ TBool IsEnabled( );
+
+ /**
+ * Sets the enabled state.
+ */
+ void SetEnabled( TBool aEnabled );
+
+ /**
+ * Gets the primary key timeout.
+ *
+ * @return the timeout in miliseconds
+ */
+ TUint GetKeyTimeOut( );
+
+ /**
+ * Sets the primary key timeout.
+ *
+ */
+ void SetKeyTimeOut( TUint aTimeOut );
+
+ /**
+ * Adds a key combination.
+ *
+ * @param aPrimaryKey code for primary key
+ * @param aSecondaryKey code for secondary key
+ * @return standard Symbian error code
+ */
+ TInt AddPattern( TUint32 aPrimaryKey, TUint32 aSecondaryKey );
+
+ /**
+ * Gets a key combination.
+ *
+ * @param aIndex index of the key combination
+ * @param aPrimaryKey primary key code if found
+ * @param aSecondaryKey secondary key code if found
+ * @return standard Symbian error code
+ */
+ TInt GetPattern( TInt aIndex, TUint32& aPrimaryKey, TUint32& aSecondaryKey );
+
+ /**
+ * Clears all the defined key combinations.
+ *
+ * @return standard Symbian error code
+ */
+ TInt ClearPatterns( );
+
+ /**
+ * Handles Key events. Result of the event is returned in the pattern state.
+ *
+ * @param aKey the actual key event (code or scancode)
+ * @return TPatternState caused by the event.
+ */
+ TPatternState HandleKeyEvent( TUint32 aKey );
+
+ protected:
+
+ /**
+ * C++ default constructor (private so cannot be derived).
+ */
+ CLockAppKeyPattern( );
+
+ /**
+ * Second constructor initializes the policy
+ */
+ void ConstructL( );
+
+ private:
+
+ /**
+ * A primary key has been received, set primary-match state.
+ */
+ void HandlePrimaryKeyEvent( TUint32 aKey );
+
+ /**
+ * A secondary key has been received, set secondary-match state.
+ */
+ void HandleSecondaryKeyEvent( );
+
+ /**
+ * Any other key has been received, set no-match state.
+ */
+ void HandleOtherKeyEvent( );
+
+ /**
+ * A call back to the keylock timer
+ * param TAny aSelf a pointer to the parent class
+ */
+ static TInt HandleKeyTimerTimeout( TAny* aSelf );
+
+ private:
+
+ // defined configurations
+ RArray<TUint> iPrimaryKeys;
+ RArray<TUint> iSecondaryKeys;
+ RArray<TUint> iWaitingKeys;
+
+ // defined timeout
+ TUint iKeyTimeOut;
+
+ // first key pressed
+ TPatternState iState;
+
+ // if the keypatterns are enabled
+ TBool iEnabled;
+
+ // if the keylock policy exists
+ TBool iHasPatterns;
+
+ // timer used between primary and secondary keys
+ CPeriodic* iKeyTimer;
+
+ };
+
+#endif // __LOCKAPPKEYPATTERN__
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/securitydialogs/lockapp/inc/lockapplockednote.h Wed Sep 01 12:19:59 2010 +0100
@@ -0,0 +1,64 @@
+/*
+* Copyright (c) 2007 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: Sleeping note with timeout and a reference flag that informs
+ * the parent when the note is visible
+ *
+*/
+
+
+#include "lockappsleepingnote.h"
+
+#ifndef __LOCKAPPLOCKEDNOTE_H__
+#define __LOCKAPPLOCKEDNOTE_H__
+
+const TInt KNoteCmdFocusLost = 3100;
+
+/**
+ * CLockAppLockedNote class is used as the basic dismissable note in Lockapp.
+ *
+ * @lib lockapp
+ * @since 5.0
+ * @author Joona Petrell
+ * @author Tamas Koteles
+ */
+class CLockAppLockedNote : public CLockAppSleepingNote
+ {
+ public:
+
+ /**
+ * C++ default constructor.
+ *
+ * @param aCommandObserver pointer to parent implementing observer interface
+ */
+ CLockAppLockedNote( MEikCommandObserver* aCommandObserver = NULL );
+
+ /**
+ * Destructor.
+ */
+ ~CLockAppLockedNote( );
+
+ /**
+ * Locked note can be canceled.
+ */
+ void CancelNote( );
+
+ /**
+ * From @c CCoeControl. Used to inform parent that
+ * dialog is no longer in focus.
+ */
+ void FocusChanged( TDrawNow aDrawNow );
+
+ };
+
+#endif // __LOCKAPPLOCKEDNOTE_H__
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/securitydialogs/lockapp/inc/lockappobserverinterface.h Wed Sep 01 12:19:59 2010 +0100
@@ -0,0 +1,59 @@
+/*
+* Copyright (c) 2007 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: Interface for CenRep and PubSub observers
+ *
+*/
+
+
+#ifndef __LOCKAPPOBSERVERINTERFACE_H__
+#define __LOCKAPPOBSERVERINTERFACE_H__
+
+// INCLUDES
+#include "lockapp.hrh"
+
+/**
+ * MLockAppObserverInterface class offers a CenRep/PubSub observer interface.
+ * Observer classes should implement this interface to get callback notifications
+ * on value changes.
+ *
+ * @lib lockapp
+ * @since 5.0
+ * @author Tamas Koteles
+ */
+class MLockAppObserverInterface
+ {
+ public:
+
+ /**
+ * Handle Central Repository observer callback.
+ *
+ * @param aCenRepUid Central Repository category id
+ * @param aKeyId Central Repository key id
+ * @param aValue Central Repository key's new value
+ */
+ virtual void HandleCenRepNotify( TUid aCenRepUid, TUint32 aKeyId, TInt aValue ) = 0;
+
+ /**
+ * Handle Publish & Subscribe observer callback.
+ *
+ * @param aPubSubUid Publish & Subscribe category id
+ * @param aKeyId Publish & Subscribe key id
+ * @param aValue Publish & Subscribe key's new value
+ */
+ virtual void HandlePubSubNotify( TUid aPubSubUid, TUint aKeyId, TInt aValue ) = 0;
+
+ };
+
+#endif // __LOCKAPPOBSERVERINTERFACE_H__
+// End of File
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/securitydialogs/lockapp/inc/lockappobserverlist.h Wed Sep 01 12:19:59 2010 +0100
@@ -0,0 +1,99 @@
+/*
+* Copyright (c) 2007 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: Controls observers and publishes state changes
+ *
+*/
+
+
+#ifndef __LOCKAPPOBSERVERLIST_H__
+#define __LOCKAPPOBSERVERLIST_H__
+
+// INCLUDES
+#include <coecntrl.h>
+#include "lockapp.hrh"
+
+// FORWARD DECLARATIONS
+class MLockAppStateObserver;
+
+/**
+ * CLockAppObserverList class publishes lock state changes to all implemented state
+ * observers. The list owns all childs and it is responsible for deleting them.
+ *
+ * @lib lockapp
+ * @since 5.0
+ * @author Joona Petrell
+ * @author Tamas Koteles
+ */
+class CLockAppObserverList : public CCoeControl
+ {
+ public:
+
+ /**
+ * C++ default constructor.
+ */
+ CLockAppObserverList( );
+
+ /**
+ * Destructor.
+ */
+ virtual ~CLockAppObserverList( );
+
+ public:
+
+ /**
+ * Add new state observer.
+ * @param aObserver lock state observer
+ */
+ void AddObserverL( MLockAppStateObserver* aObserver );
+
+ /**
+ * Remove lock state observer.
+ * @param aObserver lock state observer
+ */
+ void RemoveObserver( MLockAppStateObserver* aObserver );
+
+ protected:
+
+ /**
+ * Has to be called by the derived class in the construction.
+ */
+ void BaseConstructL( );
+
+ /**
+ * Informs all observers about the status change.
+ *
+ * @param aStatusChange the new lock state.
+ */
+ void PostStatusChangeL( TLockStatus aStatusChange );
+
+ /**
+ * Class that derives from observer list will have first
+ * notification about the lock status chane.
+ *
+ * @param aLockStatus the new lock state.
+ */
+ virtual void HandleLockStatusChangedL( TLockStatus aLockStatus );
+
+ private:
+
+ /**
+ * Dynamic list storing observers. Both the list and observers are owned.
+ * Own.
+ */
+ RPointerArray<MLockAppStateObserver>* iObserverList;
+
+ };
+
+#endif // __LOCKAPPOBSERVERLIST_H__
+// End of File
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/securitydialogs/lockapp/inc/lockapppubsubobserver.h Wed Sep 01 12:19:59 2010 +0100
@@ -0,0 +1,129 @@
+/*
+* Copyright (c) 2007 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: Publish & Subscribe key observer
+ *
+*/
+
+
+#ifndef __LOCKAPPPUBSUBOBSERVER_H__
+#define __LOCKAPPPUBSUBOBSERVER_H__
+
+// INCLUDES
+#include <w32std.h>
+#include <e32svr.h>
+#include <e32property.h>
+#include "lockappobserverinterface.h"
+
+/**
+ * CLockAppPubSubObserver class implements a Publish & Subscribe key observer.
+ * It can be used to monitor and also to set a PubSub key.
+ *
+ * @lib lockapp
+ * @since 5.0
+ * @author Tamas Koteles
+ */
+class CLockAppPubSubObserver : public CActive
+ {
+ public:
+
+ /**
+ * Two-phased constructor.
+ *
+ * @param aObserver pointer to observer
+ * @param aPubSubUid publish & subscribe Uid
+ * @param aKeyId publish & subscribe key id
+ * @return the instance just created.
+ */
+ static CLockAppPubSubObserver* NewL( MLockAppObserverInterface* aObserver, TUid aPubSubUid,
+ TUint32 aKeyId );
+
+ /**
+ * Destructor.
+ */
+ ~CLockAppPubSubObserver( );
+
+ /**
+ * Start obsering PubSub key
+ */
+ TInt Start( );
+
+ /**
+ * Stop observing PubSub key
+ */
+ void Stop( );
+
+ /**
+ * Get key value from P&S.
+ */
+ TInt GetKeyValue( TInt& aValue );
+
+ /**
+ * Set key value to P&S.
+ */
+ TInt SetKeyValue( TInt aValue );
+
+ protected:
+
+ /**
+ * C++ default constructor.
+ *
+ * @param aObserver observer
+ * @param aPubSubUid publish & subscribe Uid
+ * @param aKeyId key id
+ */
+ CLockAppPubSubObserver( MLockAppObserverInterface* aObserver, TUid aPubSubUid,
+ TUint32 aKeyId );
+
+ /**
+ * Symbian OS constructor.
+ */
+ void ConstructL( );
+
+ private:
+
+ void RunL( );
+
+ void DoCancel( );
+
+ protected:
+
+ /**
+ * Observer's callback interface. Not owned.
+ */
+ MLockAppObserverInterface* iObserver;
+
+ /**
+ * Access to Publish & Subscribe.
+ */
+ RProperty iProperty;
+
+ /**
+ * Publish & Subscribe Uid.
+ */
+ TUid iPubSubUid;
+
+ /**
+ * Publish & Subscribe key Id.
+ */
+ TUint32 iKeyId;
+
+ /**
+ * Publish & Subscribe key's value.
+ */
+ TInt iValue;
+
+ };
+
+#endif // __LOCKAPPPUBSUBOBSERVER_H__
+// END OF FILE
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/securitydialogs/lockapp/inc/lockappserver.h Wed Sep 01 12:19:59 2010 +0100
@@ -0,0 +1,73 @@
+/*
+* Copyright (c) 2007 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: Server implementation that responses to client API in
+ * lockclient
+ *
+*/
+
+
+#ifndef __LOCKAPPSERVER_H__
+#define __LOCKAPPSERVER_H__
+
+// INCLUDES
+#include <apaserverapp.h>
+
+/**
+ * CLockAppServer class implements the application server of LockApp.
+ * The server is created with a fixed server name and offers only one service.
+ *
+ * @lib lockapp
+ * @since 5.0
+ * @author Joona Petrell
+ * @author Tamas Koteles
+ */
+class CLockAppServer : public CApaAppServer
+ {
+ public:
+
+ /**
+ * Two-phased constructor.
+ */
+ static CLockAppServer* NewL( const TDesC& aFixedServerName );
+
+ /**
+ * Offers support for multiple services, but only one is supported/used by LockApp Server.
+ *
+ * @param aServiceType uid used to identify different services.
+ */
+ CApaAppServiceBase* CreateServiceL( TUid aServiceType ) const;
+
+ private:
+
+ /**
+ * C++ default constructor.
+ */
+ CLockAppServer( );
+
+ /**
+ * Establishes a new session between client and server.
+ *
+ * @param aVersion for support of new server client-server API variations (not used).
+ * @param aMessage message that started the session.
+ */
+ CSession2* NewSessionL( const TVersion& aVersion, const RMessage2& aMessage ) const;
+
+ private:
+
+ // how many sessions are created to the server
+ TInt iSessionCount;
+
+ };
+
+#endif //__LOCKAPPSERVER_H__
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/securitydialogs/lockapp/inc/lockappsession.h Wed Sep 01 12:19:59 2010 +0100
@@ -0,0 +1,126 @@
+/*
+* Copyright (c) 2007 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: LockApp server session requested by lockclient
+ *
+*/
+
+
+#ifndef __LOCKAPPSESSION_H__
+#define __LOCKAPPSESSION_H__
+
+// INCLUDES
+#include <apaserverapp.h>
+#include "lockapp.hrh"
+
+// FORWARD DECLARATIONS
+class MLockAppStateControl;
+
+/**
+ * CLockAppSession class is the server side implementation of the Lockapp API.
+ * The session class offers keyguard and devicelock API for clients wanting to
+ * alter phone lock states.
+ *
+ * @lib lockapp
+ * @since 5.0
+ * @author Joona Petrell
+ * @author Tamas Koteles
+ */
+class CLockAppSession : public CApaAppServiceBase
+ {
+ public:
+
+ /**
+ * C++ default constructor.
+ */
+ CLockAppSession( );
+
+ private:
+ /**
+ * Destructor.
+ */
+ ~CLockAppSession( );
+
+ /**
+ * From @c CApaAppServiceBase. Handles possible error in
+ * service. Method is empty.
+ * @param aMessage received message
+ * @param aError an error id
+ */
+ void ServiceError( const RMessage2& aMessage, TInt aError );
+
+ /**
+ * From @c CApaAppServiceBase. Receives messages.
+ * @param aMessage received message
+ */
+ void ServiceL( const RMessage2& aMessage );
+
+ private:
+
+ /**
+ * Ask state control to activate keyguard lock.
+ *
+ * @param aWithNote if "keys locked" note is shown
+ * @return error code
+ */
+ TInt DoEnableKeyguardL( TBool aWithNote );
+
+ /**
+ * Ask state control to deacctivate keyguard lock.
+ *
+ * @param aWithNote if "keys active" note is shown.
+ * @return error code
+ */
+ TInt DoDisableKeyguardL( TBool aWithNote );
+
+ /**
+ * Ask state control to activate devicelock.
+ * @return error code
+ */
+ TInt DoEnableDevicelockL( TDevicelockReason aReason );
+
+ /**
+ * Ask state control to deactivate devicelock.
+ * @return error code
+ */
+ TInt DoDisableDevicelockL( );
+
+ /**
+ * Ask state control to offer to enable keyguard.
+ * by showing "offerkeylock" note.
+ * @return error code
+ */
+ TInt DoOfferKeyguardL( );
+
+ /**
+ * Ask state control to inform user that keys are locked.
+ * @return error code
+ */
+ TInt DoShowKeysLockedNoteL( );
+
+ private:
+
+ /**
+ * Access to lock state control
+ * @return the main state control, from which lock states are changed
+ */
+ MLockAppStateControl* StateControlL( );
+
+ /**
+ * The main state control
+ * Not owned.
+ */
+ MLockAppStateControl* iStateControl;
+ };
+
+#endif //__LOCKAPPSESSION_H__
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/securitydialogs/lockapp/inc/lockappsleepingnote.h Wed Sep 01 12:19:59 2010 +0100
@@ -0,0 +1,87 @@
+/*
+* Copyright (c) 2007 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: Sleeping note with timeout
+ *
+*/
+
+
+#include <aknnotedialog.h>
+
+#ifndef __LOCKAPPSLEEPINGNOTE_H__
+#define __LOCKAPPSLEEPINGNOTE_H__
+
+/**
+ * CLockAppSleepingNote class implement notes that are not destroyed between use.
+ * Note is shown with timeout and internal changes are reported to parent
+ * trough command observer interface.
+ *
+ * @lib lockapp
+ * @since 5.0
+ * @author Joona Petrell
+ * @author Tamas Koteles
+ */
+class CLockAppSleepingNote : public CAknNoteDialog
+ {
+ public:
+
+ /**
+ * C++ default constructor.
+ *
+ * @param aCommandObserver pointer to parent
+ * implementing observer interface
+ */
+ CLockAppSleepingNote( MEikCommandObserver* aCommandObserver = NULL );
+
+ /**
+ * Sleeping note is constructed from a resource
+ */
+ void ConstructSleepingNoteL( TInt aResourceId );
+
+ /**
+ * Destructor.
+ */
+ ~CLockAppSleepingNote( );
+
+ /**
+ * Show sleeping note with given timeout.
+ * @param aTimeout how long note will be displayed.
+ * @param aTone tone to be played.
+ */
+ TInt ShowNote( const TInt aTimeout, const TTone aTone );
+
+ /**
+ * Always called when note is dismissed
+ *
+ * @param aCommand reason for exit.
+ */
+ TBool OkToExitL( TInt aCommand );
+
+ /**
+ * Handles key events (from CoeControl)
+ */
+ TKeyResponse OfferKeyEventL( const TKeyEvent& aKeyEvent, TEventCode aType );
+
+ protected:
+
+ void HandleResourceChange( TInt aType );
+
+ // pointer to keyguard UI
+ MEikCommandObserver* iCommandObserver;
+
+ // resource id is reserved for animation skin change
+ TInt iResourceId;
+
+ };
+
+#endif // __LOCKAPPSLEEPINGNOTE_H__
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/securitydialogs/lockapp/inc/lockappstatecontrol.h Wed Sep 01 12:19:59 2010 +0100
@@ -0,0 +1,322 @@
+/*
+* Copyright (c) 2007 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: Controls lock states (keyguard locked/unlocked, devicelock)
+ *
+*/
+
+
+#ifndef __LOCKAPPSTATECONTROL_H__
+#define __LOCKAPPSTATECONTROL_H__
+
+// INCLUDES
+#include "lockappobserverlist.h"
+#include "lockappstatecontrolinterface.h"
+#include "lockappobserverinterface.h"
+#include <lockappclientserver.h>
+
+// FORWARD DECLARATIONS
+class CLockAppBaseControl;
+class CLockAppIdleControl;
+class CLockAppKeyguardControl;
+class CLockAppDevicelockControl;
+class CLockAppEcsDetector;
+class CLockAppPubSubObserver;
+class CAknIncallBubble;
+
+/**
+ * CLockAppStateControl class is the main locking state control class.
+ * Class is derived from CLockAppObserverList observer list class.
+ * Does not own visible user interface, but directs window server events like
+ * key events to window-owning child controls (keyguard ui, emergency support).
+ * All lock state changes should be handled through this class.
+ *
+ * @lib lockapp
+ * @since 5.0
+ * @author Joona Petrell
+ * @author Tamas Koteles
+ */
+class CLockAppStateControl : public CLockAppObserverList, public MLockAppStateControl,
+ public MLockAppObserverInterface
+ {
+ public:
+
+ /**
+ * Two-phased constructor.
+ */
+ static CLockAppStateControl* NewL( );
+
+ /**
+ * Destructor.
+ */
+ ~CLockAppStateControl( );
+
+ private:
+
+ /**
+ * C++ default constructor.
+ */
+ CLockAppStateControl( );
+
+ /**
+ * Second phase constructor allowed to fail (leave).
+ */
+ void ConstructL( );
+
+ public:
+
+ /**
+ * Activate keyguard lock.
+ *
+ * @param aWithNote if "keys locked" note is shown
+ * @return KErrAlreadyExists if already enabled
+ * KErrPermissionDenied if devicelock is activated
+ * KErrNone if succeeded
+ */
+ TInt EnableKeyguardL( TBool aWithNote );
+
+ /**
+ * Dectivate keyguard lock.
+ *
+ * @param aWithNote if "keys active" note is shown.
+ * @return KErrAlreadyExists if already disabled
+ * KErrPermissionDenied if devicelock is activated
+ * KErrNone if succeeded
+ */
+ TInt DisableKeyguardL( TBool aWithNote );
+
+ /**
+ * Activate devicelock.
+ *
+ * @param aReason the device locking reason.
+ * @return KErrAlreadyExists if already enabled.
+ * KErrNone if succeeded
+ */
+ TInt EnableDevicelockL( TDevicelockReason aReason = EDevicelockManual );
+
+ /**
+ * Dectivate devicelock.
+ *
+ * @return KErrAlreadyExists if already disabled
+ * KErrPermissionDenied if keyguard is activated
+ * KErrNone if succeeded
+ */
+ TInt DisableDevicelockL( );
+
+ /**
+ * Offer to enable keyguard by showing "offerkeylock" note.
+ * @return KErrPermissionDenied if keyguard/devicelock already activated
+ * KErrNone if succeeded
+ */
+ TInt OfferKeyguard( );
+
+ /**
+ * Offer to enable keyguard by showing "offerkeylock" note.
+ *
+ * @return KErrNone if succeeded
+ * KErrPermissionDenied if keyguard not enabled
+ */
+ TInt ShowKeysLockedNote( );
+
+ /**
+ * External access to lock state
+ *
+ * @return Current lock state
+ */
+ TLockStatus LockStatus( ) const;
+
+ /**
+ * External access to lock environment
+ *
+ * @return Current environment state mask
+ */
+ TUint EnvironmentStatus( ) const;
+
+ /**
+ * Only used for internal testing.
+ * @return error code
+ */
+ TInt ExecuteInternalTest( );
+
+ public:
+ // From MLockAppObserverInterface
+
+ /**
+ * Handle Central Repository observer callback.
+ */
+ void HandleCenRepNotify( TUid aCenRepUid, TUint32 aKeyId, TInt aValue );
+
+ /**
+ * Handle Publish & Subscribe observer callback.
+ */
+ void HandlePubSubNotify( TUid aPubSubUid, TUint aKeyId, TInt aValue );
+
+ public:
+ // from CCoeControl
+
+ TInt CountComponentControls( ) const;
+
+ CCoeControl* ComponentControl( TInt aIndex ) const;
+
+ TKeyResponse OfferKeyEventL( const TKeyEvent& aKeyEvent, TEventCode aType );
+
+ void HandleWsEventL( const TWsEvent& aEvent, CCoeControl* aDestination );
+
+ void HandleResourceChange( TInt aType );
+
+ private:
+
+ /**
+ * Creates the second "visibility gate" window group.
+ */
+ void CreateVisibilityGateWgL( );
+
+ /**
+ * Logs the telephony P&S call state.
+ */
+ void PrintCallState( TInt aValue );
+
+ /**
+ * Update the environment variable with the event.
+ * @return ETrue if the environment value has changed
+ * EFalse otherwise
+ */
+ TBool HandleEnvironmentChange( TUint aEventMask, TBool aEnable );
+
+ /**
+ * Check if given transition is valid.
+ * @return KErrNone if transition is legal
+ * KErrAlreadyExists if LockApp already is in requested state
+ * KErrPermissionDenied if illegal transition
+ */
+ TInt CheckIfLegal( TLockAppMessageReason aReason );
+
+ /**
+ * Handle lock state change. Should only called from
+ * method PostStatusChangeL.
+ *
+ * @param aLockStatus The new lock state
+ */
+ void HandleLockStatusChangedL( TLockStatus aLockStatus );
+
+ void BringForward( TBool aForeground );
+
+ /**
+ * Mute/Unmute key sounds when phone is locked/unlocked.
+ *
+ * @param aMuteSounds mute switch
+ */
+ void MuteSounds( TBool aMuteSounds );
+
+ /**
+ * Prescreen key events for special cases before giving them to child controls.
+ */
+ TKeyResponse PreCheckKeyEvents( const TKeyEvent& aKeyEvent, TEventCode aType );
+
+ /**
+ * Power key needs to always activate lights.
+ */
+ void CheckForPowerKeyLights( const TKeyEvent& aKeyEvent, TEventCode aType );
+
+ /**
+ * Green and Red keys should be passed to Phone during phone call.
+ * @return ETrue if the keys have been forwarded
+ * EFalse otherwise
+ */
+ TBool CheckForPhoneKeys( const TKeyEvent& aKeyEvent, TEventCode aType );
+
+ private:
+
+ /**
+ * Internal lock state.
+ */
+ TLockStatus iLockStatus;
+
+ /**
+ * Current control;
+ */
+ CLockAppBaseControl* iCurrentControl;
+
+ /**
+ * Idle UI.
+ * Owned by superclass.
+ */
+ CLockAppIdleControl* iIdle; // owned by superclass
+
+ /**
+ * Keyguard UI.
+ * Owned by superclass.
+ */
+ CLockAppKeyguardControl* iKeyguard; // owned by superclass
+
+ /**
+ * Autolock UI
+ * Owned by superclass.
+ */
+ CLockAppDevicelockControl* iDevicelock;
+
+ /**
+ * Emergency call detector with emergency note.
+ * Owned by superclass.
+ */
+ CLockAppEcsDetector* iLockEcsDetector;
+
+ /**
+ * PubSub observers
+ */
+ CLockAppPubSubObserver* iPSScreenSaverObserver;
+ CLockAppPubSubObserver* iPSTelephonyObserver;
+ CLockAppPubSubObserver* iPSGripObserver;
+ CLockAppPubSubObserver* iPSFPSObserver;
+
+ /**
+ * Application's main window group - Event gate
+ */
+ RWindowGroup& iWGEventGate;
+
+ /**
+ * Visibility gate (owned)
+ */
+ RWindowGroup iWGVisibilityGate;
+
+ /**
+ * Incall Bubble. (owned)
+ */
+ CAknIncallBubble* iIncallBubble;
+
+ private:
+
+ /**
+ * feature manager keys
+ */
+ TBool iFeatureNoPowerkey;
+
+ /**
+ * Offset value used to free reserved localization resources
+ */
+ TInt iResourceFileOffset;
+
+ /**
+ * if sounds are muted
+ */
+ TBool iSoundsMuted;
+
+ /**
+ * Environment state descriptor bit-mask
+ */
+ TUint iEnvState;
+
+ };
+
+#endif // __LOCKAPPSTATECONTROL_H__
+// End of File
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/securitydialogs/lockapp/inc/lockappstatecontrolinterface.h Wed Sep 01 12:19:59 2010 +0100
@@ -0,0 +1,117 @@
+/*
+* Copyright (c) 2007 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: Interface for controls that want to modify lock status
+ *
+*/
+
+
+#ifndef __LOCKAPPSTATECONTROLINTERFACE_H__
+#define __LOCKAPPSTATECONTROLINTERFACE_H__
+
+// INCLUDES
+#include "lockapp.hrh"
+
+/**
+ * MLockAppStateControl class offers safe interface methods for lockapp controls.
+ * All internal child controls should use this interface for modifying
+ * the phone lock state.
+ *
+ * @lib lockapp
+ * @since 5.0
+ * @author Joona Petrell
+ * @author Tamas Koteles
+ */
+class MLockAppStateControl
+ {
+ public:
+
+ /**
+ * Activate keyguard lock.
+ *
+ * @param aWithNote if "keys locked" note is shown
+ * @return KErrAlreadyExists if already enabled
+ * KErrPermissionDenied if devicelock is activated
+ * KErrNone if succeeded
+ */
+ virtual TInt EnableKeyguardL( TBool aWithNote ) = 0;
+
+ /**
+ * Dectivate keyguard lock.
+ *
+ * @param aWithNote if "keys active" note is shown.
+ * @return KErrAlreadyExists if already disabled
+ * KErrPermissionDenied if devicelock is activated
+ * KErrNone if succeeded
+ */
+ virtual TInt DisableKeyguardL( TBool aWithNote ) = 0;
+
+ /**
+ * Activate devicelock.
+ *
+ * @param aReason the device locking reason.
+ * @return KErrAlreadyExists if already enabled.
+ * KErrNone if succeeded
+ */
+ virtual TInt EnableDevicelockL( TDevicelockReason aReason = EDevicelockManual ) = 0;
+
+ /**
+ * Dectivate devicelock.
+ *
+ * @return KErrAlreadyExists if already disabled
+ * KErrPermissionDenied if keyguard is activated
+ * KErrNone if succeeded
+ */
+ virtual TInt DisableDevicelockL( ) = 0;
+
+ /**
+ * Offer to enable keyguard by showing "offerkeylock" note.
+ *
+ * @return KErrPermissionDenied if keyguard/devicelock already activated
+ * KErrNone if succeeded
+ */
+ virtual TInt OfferKeyguard( ) = 0;
+
+ /**
+ * Offer to enable keyguard by showing "offerkeylock" note.
+ *
+ * @return KErrNone if succeeded
+ * KErrPermissionDenied if keyguard is not enabled
+ */
+ virtual TInt ShowKeysLockedNote( ) = 0;
+
+ /**
+ * External access to lock state
+ *
+ * @return Current lock state
+ */
+ virtual TLockStatus LockStatus( ) const = 0;
+
+ /**
+ * External access to lock environment
+ *
+ * @return Current environment state
+ */
+ virtual TUint EnvironmentStatus( ) const = 0;
+
+ /**
+ * Used for internal testing only, disabled normally
+ *
+ * @return error code
+ */
+ virtual TInt ExecuteInternalTest( ) = 0;
+
+ };
+
+#endif // __LOCKAPPSTATECONTROLINTERFACE_H__
+// End of File
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/securitydialogs/lockapp/inc/lockappstateobserver.h Wed Sep 01 12:19:59 2010 +0100
@@ -0,0 +1,50 @@
+/*
+* Copyright (c) 2007 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: Interface for controls that want to be informed about lock status
+ *
+*/
+
+
+#ifndef __LOCKAPPSTATEOBSERVER_H__
+#define __LOCKAPPSTATEOBSERVER_H__
+
+// INCLUDES
+#include <e32std.h>
+#include <e32base.h>
+#include "lockapp.hrh"
+
+/**
+ * CLockAppStateObserver class offers a lockstate observer interface.
+ * All observer classes derived from MLockAppStateObserver should be added to
+ * the lockapp observer list in order to get notifications about lock state changes.
+ *
+ * @lib lockapp
+ * @since 5.0
+ * @author Joona Petrell
+ * @author Tamas Koteles
+ */
+class MLockAppStateObserver
+ {
+ public:
+
+ /**
+ * Lock status changes are handled trough HandleLockStatusChangedL method.
+ * Must be overriden by derived class for observing.
+ */
+ virtual void HandleLockStatusChangedL( TLockStatus aLockStatus ) = 0;
+
+ };
+
+#endif // __LOCKAPPSTATEOBSERVER_H__
+// End of File
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/securitydialogs/lockapp/inc/lockappstatepublisher.h Wed Sep 01 12:19:59 2010 +0100
@@ -0,0 +1,72 @@
+/*
+* Copyright (c) 2007 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: Publishes LockApp states to other applications
+ *
+*/
+
+
+#ifndef __LOCKAPPSTATEPUBLISHER_H__
+#define __LOCKAPPSTATEPUBLISHER_H__
+
+// INCLUDES
+#include "lockappstateobserver.h"
+#include <e32property.h>
+
+/**
+ * CLockAppStatePublisher class publishes lock state to external parties using P&S key.
+ *
+ * @lib lockapp
+ * @since 5.0
+ * @author Joona Petrell
+ * @author Tamas Koteles
+ **/
+class CLockAppStatePublisher : public CBase, public MLockAppStateObserver
+ {
+ public:
+ /**
+ * Two-phased constructor.
+ */
+ static CLockAppStatePublisher* NewL( );
+
+ /**
+ * C++ default constructor.
+ */
+ CLockAppStatePublisher( );
+
+ /**
+ * Destructor.
+ */
+ ~CLockAppStatePublisher( );
+ private:
+
+ /**
+ * Second constructor that can fail (leave).
+ */
+ void ConstructL( );
+
+ public:
+ // from CLockAppStateObserver
+
+ virtual void HandleLockStatusChangedL( TLockStatus aLockStatus );
+
+ private:
+
+ // stores locking state property
+ RProperty iStatusProperty;
+
+ };
+
+#endif // __LOCKAPPSTATEPUBLISHER_H__
+// End of File
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/securitydialogs/lockapp/inc/lockapptrace.h Wed Sep 01 12:19:59 2010 +0100
@@ -0,0 +1,392 @@
+/*
+* Copyright (c) 2007 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: Trace macro support for lockapp
+ *
+*/
+
+
+#ifndef LOCKAPPTRACE_H
+#define LOCKAPPTRACE_H
+
+#include "lockapptraceconfiguration.hrh"
+
+#ifdef TRACE_INTO_FILE
+#include <flogger.h> // RFileLogger
+#else
+#include <e32debug.h> // RDebug
+#endif
+
+//-----------------------------------------------------------------------------
+// Constants
+//-----------------------------------------------------------------------------
+//
+
+/**
+* Prefix trace macro to complete tracing with component name.
+* Returns TDesC which can be used directly with RDebug or RFileLogger.
+*/
+#define _PREFIX_TRACE( aMsg ) TPtrC( (const TText*)L"[LockApp]: " L##aMsg )
+
+/**
+* Prefix error trace
+*/
+#define _PREFIX_ERROR( aMsg ) _PREFIX_TRACE( "[ERROR: %d]: " L##aMsg )
+
+/**
+* Prefix info trace.
+*/
+#define _PREFIX_INFO( aMsg ) _PREFIX_TRACE( "[INFO]: " L##aMsg )
+
+/**
+* Prefix macro for strings
+*/
+#define _PREFIX_CHAR( aMsg ) (const char*)"[LockApp]: " ##aMsg
+
+/**
+* Define needed directories if TRACE_INTO_FILE macro in use
+*/
+#ifdef TRACE_INTO_FILE
+
+ _LIT( KDir, "lockapp" );
+ _LIT( KFile, "lockapp_log.txt" );
+ _LIT( KFullPath, "c:\\logs\\lockapp\\" );
+
+#endif
+
+//-----------------------------------------------------------------------------
+// Error trace macros
+//-----------------------------------------------------------------------------
+//
+#ifdef ERROR_TRACE
+
+ /**
+ * Error trace definitions.
+ */
+ #ifdef TRACE_INTO_FILE
+
+ #define ERROR( aErr, aMsg )\
+ {\
+ if( aErr < KErrNone )\
+ {\
+ RFileLogger::WriteFormat( KDir, KFile, EFileLoggingModeAppend, _PREFIX_ERROR( aMsg ), aErr );\
+ }\
+ }
+ #define ERROR_1( aErr, aMsg, aP1 )\
+ {\
+ if( aErr < KErrNone )\
+ {\
+ RFileLogger::WriteFormat( KDir, KFile, EFileLoggingModeAppend, _PREFIX_ERROR( aMsg ), aErr, aP1 );\
+ }\
+ }
+ #define ERROR_2( aErr, aMsg, aP1, aP2 )\
+ {\
+ if( aErr < KErrNone )\
+ {\
+ RFileLogger::WriteFormat( KDir, KFile, EFileLoggingModeAppend, _PREFIX_ERROR( aMsg ), aErr, aP1, aP2 );\
+ }\
+ }
+ #define ERROR_3( aErr, aMsg, aP1, aP2, aP3 )\
+ {\
+ if( aErr < KErrNone )\
+ {\
+ RFileLogger::WriteFormat( KDir, KFile, EFileLoggingModeAppend, _PREFIX_ERROR( aMsg ), aErr, aP1, aP2, aP3 );\
+ }\
+ }
+
+ #else//TRACE_INTO_FILE not defined
+
+ #define ERROR( aErr, aMsg )\
+ {\
+ if( aErr < KErrNone )\
+ {\
+ RDebug::Print( _PREFIX_ERROR( aMsg ), aErr );\
+ }\
+ }
+ #define ERROR_1( aErr, aMsg, aP1 )\
+ {\
+ if( aErr < KErrNone )\
+ {\
+ RDebug::Print( _PREFIX_ERROR( aMsg ), aErr, aP1 );\
+ }\
+ }
+ #define ERROR_2( aErr, aMsg, aP1, aP2 )\
+ {\
+ if( aErr < KErrNone )\
+ {\
+ RDebug::Print( _PREFIX_ERROR( aMsg ), aErr, aP1, aP2 );\
+ }\
+ }
+ #define ERROR_3( aErr, aMsg, aP1, aP2, aP3 )\
+ {\
+ if( aErr < KErrNone )\
+ {\
+ RDebug::Print( _PREFIX_ERROR( aMsg ), aErr, aP1, aP2, aP3 );\
+ }\
+ }
+
+ #endif//TRACE_INTO_FILE
+
+ #define ERROR_GEN( aMsg ) ERROR( KErrGeneral, aMsg )
+ #define ERROR_GEN_1( aMsg, aP1 ) ERROR_1( KErrGeneral, aMsg, aP1 )
+ #define ERROR_GEN_2( aMsg, aP1, aP2 ) ERROR_2( KErrGeneral, aMsg, aP1, aP2 )
+ #define ERROR_GEN_3( aMsg, aP1, aP2, aP3 ) ERROR_3( KErrGeneral, aMsg, aP1, aP3 )
+
+#else//ERROR_TRACE not defined
+
+ #define ERROR( aErr, aMsg )
+ #define ERROR_1( aErr, aMsg, aP1 )
+ #define ERROR_2( aErr, aMsg, aP1, aP2 )
+ #define ERROR_3( aErr, aMsg, aP1, aP2, aP3 )
+ #define ERROR_GEN( aMsg )
+ #define ERROR_GEN_1( aMsg, aP1 )
+ #define ERROR_GEN_2( aMsg, aP1, aP2 )
+ #define ERROR_GEN_3( aMsg, aP1, aP2, aP3 )
+
+#endif//ERROR_TRACE
+
+//-----------------------------------------------------------------------------
+// Info trace macros
+//-----------------------------------------------------------------------------
+//
+#ifdef INFO_TRACE
+
+ /**
+ * Info log message definitions.
+ */
+ #ifdef TRACE_INTO_FILE
+
+ #define INFO( aMsg )\
+ {\
+ RDebug::Print( _PREFIX_INFO( aMsg ) );\
+ RFileLogger::Write( KDir, KFile, EFileLoggingModeAppend, _PREFIX_INFO( aMsg ) );\
+ }
+ #define INFO_1( aMsg, aP1 )\
+ {\
+ RDebug::Print( _PREFIX_INFO( aMsg ), aP1 );\
+ RFileLogger::WriteFormat( KDir, KFile, EFileLoggingModeAppend, _PREFIX_INFO( aMsg ), aP1 );\
+ }
+ #define INFO_2( aMsg, aP1, aP2 )\
+ {\
+ RDebug::Print( _PREFIX_INFO( aMsg ), aP1, aP2 );\
+ RFileLogger::WriteFormat( KDir, KFile, EFileLoggingModeAppend, _PREFIX_INFO( aMsg ), aP1, aP2 );\
+ }
+ #define INFO_3( aMsg, aP1, aP2, aP3 )\
+ {\
+ RDebug::Print( _PREFIX_INFO( aMsg ), aP1, aP2, aP3 );\
+ RFileLogger::WriteFormat( KDir, KFile, EFileLoggingModeAppend, _PREFIX_INFO( aMsg ), aP1, aP2, aP3 );\
+ }
+ #define INFO_4( aMsg, aP1, aP2, aP3, aP4 )\
+ {\
+ RDebug::Print( _PREFIX_INFO( aMsg ), aP1, aP2, aP3, aP4 );\
+ RFileLogger::WriteFormat( KDir, KFile, EFileLoggingModeAppend, _PREFIX_INFO( aMsg ), aP1, aP2, aP3, aP4 );\
+ }
+
+ #else//TRACE_INTO_FILE not defined
+
+ #define INFO( aMsg )\
+ {\
+ RDebug::Print( _PREFIX_INFO( aMsg ) );\
+ }
+ #define INFO_1( aMsg, aP1 )\
+ {\
+ RDebug::Print( _PREFIX_INFO( aMsg ), aP1 );\
+ }
+ #define INFO_2( aMsg, aP1, aP2 )\
+ {\
+ RDebug::Print( _PREFIX_INFO( aMsg ), aP1, aP2 );\
+ }
+ #define INFO_3( aMsg, aP1, aP2, aP3 )\
+ {\
+ RDebug::Print( _PREFIX_INFO( aMsg ), aP1, aP2, aP3 );\
+ }
+ #define INFO_4( aMsg, aP1, aP2, aP3, aP4 )\
+ {\
+ RDebug::Print( _PREFIX_INFO( aMsg ), aP1, aP2, aP3, aP4 );\
+ }
+
+ #endif//TRACE_INTO_FILE
+
+#else//INFO_TRACE not defined
+
+ #define INFO( aMsg )
+ #define INFO_1( aMsg, aP1 )
+ #define INFO_2( aMsg, aP1, aP2 )
+ #define INFO_3( aMsg, aP1, aP2, aP3 )
+ #define INFO_4( aMsg, aP1, aP2, aP3, aP4 )
+
+#endif//INFO_TRACE
+
+//-----------------------------------------------------------------------------
+// Trace current client thread name and process id
+//-----------------------------------------------------------------------------
+//
+#ifdef CLIENT_TRACE
+
+ #define CLIENT( aMessage )\
+ {\
+ RThread thread;\
+ TInt err = aMessage.Client( thread );\
+ if( err == KErrNone )\
+ {\
+ RProcess process;\
+ err = thread.Process( process );\
+ if( err == KErrNone )\
+ {\
+ TPtrC thredName( thread.Name() );\
+ TUid processUid( process.SecureId() );\
+ INFO_2( "Current client process UID: [%x], thread name: [%S]",\
+ processUid,\
+ &thredName );\
+ }\
+ process.Close();\
+ }\
+ thread.Close();\
+ }
+
+#else
+
+ #define CLIENT( aMessage )
+
+#endif
+
+//-----------------------------------------------------------------------------
+// Function trace macros
+//-----------------------------------------------------------------------------
+//
+#ifdef FUNC_TRACE
+
+ /**
+ * Function logging definitions.
+ */
+ #ifdef TRACE_INTO_FILE
+
+ #define FUNC( aMsg, aP1 )\
+ {\
+ TPtrC8 trace( _S8( aMsg ) );\
+ RFileLogger::WriteFormat( KDir, KFile, EFileLoggingModeAppend, trace, aP1 );\
+ }\
+
+ #else//TRACE_INTO_FILE not defined
+
+ #define FUNC( aMsg, aP1 )\
+ {\
+ RDebug::Printf( aMsg, aP1 );\
+ }\
+
+ #endif//TRACE_INTO_FILE
+
+ /**
+ * Function trace helper class.
+ *
+ * NOTE:
+ * LC -methods cannot be trapped. Therefore if LC -method leaves
+ * END trace is used instead of LEAVE trace.
+ * If you have an idea how to round this problem please tell.
+ */
+ _LIT8( KFuncNameTerminator, "(" );
+ _LIT8( KFuncLeavePatternL, "L" );
+ class TFuncLog
+ {
+ public:
+ static void Cleanup( TAny* aPtr )
+ {
+ TFuncLog* self = static_cast< TFuncLog* >( aPtr );
+ self->iLeft = ETrue;
+ FUNC( _PREFIX_CHAR("%S-LEAVE"), &self->iFunc ); // Leave detected
+ }
+ inline TFuncLog( const char* aFunc ) :
+ iFunc( aFunc ? _S8( aFunc ) : _S8("") ),
+ iLeft( EFalse ),
+ iCleanupItem( Cleanup, this ),
+ iCanLeave( EFalse )
+ {
+ TInt pos( iFunc.Find( KFuncNameTerminator ) );
+ if( pos != KErrNotFound )
+ {
+ iFunc.Set( iFunc.Left( pos ) );
+ iCanLeave = !iFunc.Right( KFuncLeavePatternL().Length() ).Compare( KFuncLeavePatternL );
+ if ( iCanLeave )
+ {
+ CleanupStack::PushL( iCleanupItem ); // Ignore warnings
+ }
+ }
+ FUNC( _PREFIX_CHAR("%S-START"), &iFunc );
+ }
+
+ inline ~TFuncLog()
+ {
+ if ( !iLeft )
+ {
+ if ( iCanLeave )
+ {
+ CleanupStack::Pop( this ); // Pop the cleanup item
+ }
+ FUNC( _PREFIX_CHAR("%S-END"), &iFunc ); // Normally finished
+ }
+ }
+
+ private: // Data
+ TPtrC8 iFunc;
+ TBool iLeft;
+ TCleanupItem iCleanupItem;
+ TBool iCanLeave;
+ };
+ #define FUNC_LOG TFuncLog _fl( __PRETTY_FUNCTION__ );
+
+#else//FUNC_TRACE not defined
+
+ #define FUNC_LOG
+
+#endif//FUNC_TRACE
+
+//-----------------------------------------------------------------------------
+// Timestamp trace macros
+//-----------------------------------------------------------------------------
+//
+#ifdef TIMESTAMP_TRACE
+
+ #ifdef TRACE_INTO_FILE
+
+ #define TIMESTAMP( aCaption )\
+ {\
+ TTime t;\
+ t.HomeTime();\
+ TDateTime dt = t.DateTime();\
+ _LIT( KCaption, aCaption );\
+ RFileLogger::WriteFormat( KDir, KFile, EFileLoggingModeAppend,\
+ _PREFIX_TRACE("[TIMESTAMP] %S %d:%02d:%02d.%d us"),\
+ &KCaption, dt.Hour(), dt.Minute(), dt.Second(), dt.MicroSecond() );\
+ }
+
+ #else//TRACE_INTO_FILE not defined
+
+ #define TIMESTAMP( aCaption )\
+ {\
+ TTime t;\
+ t.HomeTime();\
+ TDateTime dt = t.DateTime();\
+ _LIT( KCaption, aCaption );\
+ RDebug::Print( _PREFIX_TRACE("[TIMESTAMP] %S %d:%02d:%02d.%d us"),\
+ &KCaption, dt.Hour(), dt.Minute(), dt.Second(), dt.MicroSecond() );\
+ }
+
+ #endif//TRACE_INTO_FILE
+
+#else//TIMESTAMP_TRACE not defined
+
+ #define TIMESTAMP( aCaption )
+
+#endif//TIMESTAMP_TRACE
+
+#endif
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/securitydialogs/lockapp/inc/lockapptraceconfiguration.hrh Wed Sep 01 12:19:59 2010 +0100
@@ -0,0 +1,78 @@
+/*
+* Copyright (c) 2007 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: Trace definitions for lockapp
+ *
+*/
+
+
+
+#ifndef LOCKAPPTRACECONFIGURATION_HRH
+#define LOCKAPPTRACECONFIGURATION_HRH
+
+//-----------------------------------------------------------------------------
+// Trace definitions
+//-----------------------------------------------------------------------------
+
+/**
+* Error trace enabled
+*/
+#ifdef _DEBUG
+ #define ERROR_TRACE
+#else
+ #undef ERROR_TRACE
+#endif
+
+/**
+* Info trace enabled
+*/
+#ifdef _DEBUG
+ #define INFO_TRACE
+#else
+ #undef INFO_TRACE
+#endif
+
+/**
+* Function trace enabled
+*/
+#ifdef _DEBUG
+ #define FUNC_TRACE
+#else
+ #undef FUNC_TRACE
+#endif
+
+/**
+* Timestamp tracing on
+*/
+#ifdef _DEBUG
+ #define TIMESTAMP_TRACE
+#else
+ #undef TIMESTAMP_TRACE
+#endif
+
+/**
+* Tracing current client process and thread
+*/
+#ifdef _DEBUG
+ #define CLIENT_TRACE
+#else
+ #undef CLIENT_TRACE
+#endif
+
+/**
+* Tracing into file enabled, default RDebug
+*/
+//#undef TRACE_INTO_FILE
+#define TRACE_INTO_FILE
+
+#endif
\ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/securitydialogs/lockapp/inc/lockapputils.h Wed Sep 01 12:19:59 2010 +0100
@@ -0,0 +1,72 @@
+/*
+* Copyright (c) 2007 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: Internally used panic functions and test macros
+ *
+*/
+
+
+#ifndef __LOCKAPPUTILS_H__
+#define __LOCKAPPUTILS_H__
+
+// INCLUDES
+#include "lockapp.hrh"
+#include "lockapptrace.h"
+#include <w32std.h>
+
+/**
+ * Queries bits in aStatusMask specified by the aQueryMask
+ */
+TBool IsBitFieldSet( TUint aStatusMask, TUint aQueryMask );
+
+/**
+ * Sets bits in aResultMask specified by the aSetMask
+ */
+void SetBitField( TUint &aResultMask, TUint aSetMask, TBool aSet );
+
+/**
+ * Panic the LockApp (should only be used in debug)
+ *
+ * @param aPanic Identifies the reason to Panic
+ */
+void DoPanic( TLockAppPanic aPanic );
+
+/**
+ * Panic LockAppServer client for sending
+ * illegal message
+ *
+ * @param aMessage Event id
+ * @param aPanic Identifies the reason to Panic
+ */
+void PanicClient( const RMessagePtr2& aMessage, TLockAppPanic aPanic );
+
+/**
+ * Sends application spesific events to Sysap.
+ * Used mainly for lights control.
+ *
+ * @param aMessage Event id
+ */
+void SendMessageToSysAp(TInt aMessage);
+
+/**
+ * Sends a key event to the windowgroup in background.
+ * Used mainly for sending red and green keys to phone app when
+ * devicelock or keyguard is in foreground.
+ *
+ * @param aKey key event
+ * @param aType key event type
+ */
+void SendKeyToPhoneApp(const TKeyEvent& aKey, TEventCode aType);
+
+#endif // __LOCKAPPTILS_H__
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/securitydialogs/lockapp/inc/lockappwait.h Wed Sep 01 12:19:59 2010 +0100
@@ -0,0 +1,130 @@
+/*
+* Copyright (c) 2007 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: Async-Sync utility class
+ *
+*/
+
+
+#ifndef __LOCKAPPWAIT_H
+#define __LOCKAPPWAIT_H
+
+// INCLUDES
+
+#include <e32base.h>
+#include <eikappui.h>
+#include <coecntrl.h>
+
+// CLASS DEFINITIONS
+class CWait : public CActive
+ {
+public:
+ /**
+ * Creates instance of the CWait class.
+ *
+ * @return Returns the instance just created.
+ */
+ static CWait* NewL( );
+
+ /**
+ * Destructor.
+ */
+ ~CWait( );
+
+ /**
+ * Starts waiting for aReqStatus.
+ */
+ TInt WaitForRequestL( );
+
+ /**
+ * Sets active request type.
+ */
+ void SetRequestType(TInt aRequestType );
+
+ /**
+ * Gets active request type.
+ */
+ TInt GetRequestType( );
+
+private:
+
+ /**
+ * C++ default constructor.
+ */
+ CWait( );
+
+ /**
+ * Symbian OS constructor.
+ */
+ void ConstructL( );
+
+private: // from CActive
+
+ /** @see CActive::RunL() */
+ void RunL( );
+
+ /** @see CActive::DoCancel() */
+ void DoCancel( );
+
+private: // data
+
+ RTimer iTimer;
+
+ CActiveSchedulerWait iWait;
+
+ // Used if there is a need to cancel an active request;
+ // namely in situations where destructor is called when Wait
+ // is active.
+ TInt iRequestType;
+ };
+
+// ----------------------------------------------------------
+// CWaitAbsorbingControl
+// absorbs all the key presses.
+// ----------------------------------------------------------
+//
+class CWaitAbsorbingControl : public CCoeControl
+ {
+public:
+
+ /**
+ * Creates instance of the CWaitAbsorbingControl class.
+ *
+ * @return Returns the instance just created.
+ */
+ static CWaitAbsorbingControl* NewLC( );
+
+ /**
+ * Destructor.
+ */
+ virtual ~CWaitAbsorbingControl( );
+
+private:
+
+ virtual TKeyResponse OfferKeyEventL(const TKeyEvent& /*aKeyEvent*/, TEventCode /*aType*/);
+
+private:
+
+ CWaitAbsorbingControl( );
+
+ void ConstructL( );
+
+private: // data
+
+ CEikAppUi* iAppUi;
+
+ };
+
+#endif
+
+// End of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/securitydialogs/lockapp/loc/lockapp.loc Wed Sep 01 12:19:59 2010 +0100
@@ -0,0 +1,26 @@
+/*
+* Copyright (c) 2007 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: Localisation strings for LockApp
+ *
+*/
+
+
+// LOCALISATION STRINGS
+
+//d:Title pane text in System Lock View.(Phone is in locked mode)
+//l:title_pane_t2/opt9
+//
+#define qtn_set_sec_title_locked "Locked"
+
+// End of File
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/securitydialogs/lockapp/pubsub/SecurityUIsPrivatePSKeys.h Wed Sep 01 12:19:59 2010 +0100
@@ -0,0 +1,65 @@
+/*
+* Copyright (c) 2007 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: Private Publish&Subscribe definitions of the
+ * Security UIs subsystem
+ *
+*/
+
+
+#ifndef SECURITYUISPRIVATEPSKEYS_H
+#define SECURITYUISPRIVATEPSKEYS_H
+
+// INCLUDES
+
+//CONSTANTS
+
+const TUid KPSUidSecurityUIs = { 0x100059b5 };
+// =============================================================================
+// Security Code UI Originator API
+// =============================================================================
+
+// Use TUid KPSUidSecurityUIs = { 0x100059b5 }
+
+/**
+ * Used by SecUI to differentiate between ETel API originated and SecUI originated
+ * security queries.
+ * Old Shared Data constant name: KSecUIOriginatedQuery
+ */
+const TUint32 KSecurityUIsSecUIOriginatedQuery = 0x00000301;
+enum TSecurityUIsSecUIOriginatedQuery
+ {
+ ESecurityUIsSecUIOriginatedUninitialized = 0,
+ ESecurityUIsETelAPIOriginated,
+ ESecurityUIsSecUIOriginated,
+ ESecurityUIsSystemLockOriginated,
+ ESecurityUIsFpsOriginated
+ };
+
+/**
+ * Used by SecUI to tell if a query request set by some ETELMM API lock setting function (i.e. SetXXXXSetting)
+ * has been canceled sinnce canceling the setting request does not prompt a query cancel event from ETEL.
+ * Old Shared Data constant name: KSecUIOriginatedQuery
+ */
+const TUint32 KSecurityUIsQueryRequestCancel = 0x00000302;
+enum TSecurityUIsQueryRequestCancel
+ {
+ ESecurityUIsQueryRequestUninitialized = 0,
+ ESecurityUIsQueryRequestOk,
+ ESecurityUIsQueryRequestCanceled
+ };
+
+#endif // SECURITYUISPRIVATEPSKEYS_H
+
+// End of File
+
--- a/securitydialogs/lockapp/rom/lockapp.iby Tue Aug 31 16:04:40 2010 +0300
+++ b/securitydialogs/lockapp/rom/lockapp.iby Wed Sep 01 12:19:59 2010 +0100
@@ -1,5 +1,5 @@
/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2007 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"
@@ -11,12 +11,20 @@
*
* Contributors:
*
-* Description: Implementation of lockapp
-*
+* Description: LockApp files needed to image
+ *
*/
+
+
#ifndef __LOCKAPP_IBY__
#define __LOCKAPP_IBY__
-S60_APP_EXE(LockApp)
+#include <data_caging_paths_for_iby.hrh>
+
+S60_APP_EXE(lockapp)
+S60_APP_AIF_RSC(lockapp)
-#endif
+// To enable updating
+data=ZSYSTEM\install\lockapp_stub.sis system\install\lockapp_stub.sis
+
+#endif // __LOCKAPP_IBY__
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/securitydialogs/lockapp/rom/lockappresources.iby Wed Sep 01 12:19:59 2010 +0100
@@ -0,0 +1,26 @@
+/*
+* Copyright (c) 2007 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: LockApp resources needed to image
+ *
+*/
+
+
+#ifndef __LOCKAPPRESOURCES_IBY__
+#define __LOCKAPPRESOURCES_IBY__
+
+#include <data_caging_paths_for_iby.hrh>
+
+S60_APP_RESOURCE(lockapp)
+
+#endif // __LOCKAPPRESOURCES_IBY__
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/securitydialogs/lockapp/sis/lockapp.pkg Wed Sep 01 12:19:59 2010 +0100
@@ -0,0 +1,36 @@
+;
+; Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+; All rights reserved.
+; This component and the accompanying materials are made available
+; under the terms of "Eclipse Public License v1.0"
+; which accompanies this distribution, and is available
+; at the URL "http://www.eclipse.org/legal/epl-v10.html".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description: ;Language - standard language definitions
+;
+;Language - standard language definitions
+;Language - standard language definitions
+&EN
+
+; standard SIS file header
+#{"LockApp"}, (0x10283322), 1, 0, 0, TYPE=SA
+
+;Localised Vendor name
+%{"Nokia"}
+
+;Unique Vendor name
+:"Nokia"
+
+;Supports Series 60 v 3.0
+[0x101F7961], 0, 0, 0, {"Series60ProductID"}
+
+;Files to install
+"\Epoc32\release\armv5\udeb\lockapp.exe"-"z:\sys\bin\lockapp.exe"
+"\Epoc32\data\z\resource\apps\lockapp.rsc"-"z:\resource\apps\lockapp.rsc"
+"\Epoc32\data\z\private\10003a3f\apps\lockapp_reg.rsc"-"z:\private\10003a3f\import\apps\lockapp_reg.rsc"
+"\Epoc32\data\z\resource\apps\lockapp.mif"-"z:\resource\apps\lockapp.mif"
Binary file securitydialogs/lockapp/sis/lockapp_stub.sis has changed
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/securitydialogs/lockapp/sis/make_stubsis.bat Wed Sep 01 12:19:59 2010 +0100
@@ -0,0 +1,17 @@
+rem
+rem Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+rem All rights reserved.
+rem This component and the accompanying materials are made available
+rem under the terms of "Eclipse Public License v1.0"
+rem which accompanies this distribution, and is available
+rem at the URL "http://www.eclipse.org/legal/epl-v10.html".
+rem
+rem Initial Contributors:
+rem Nokia Corporation - initial contribution.
+rem
+rem Contributors:
+rem
+rem Description:
+rem
+
+makesis -s lockapp.pkg lockapp_stub.sis
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/securitydialogs/lockapp/sis/rd-key.pem Wed Sep 01 12:19:59 2010 +0100
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXAIBAAKBgQDLRF+r1FGGkCwTrb420kbnAps7gi1yYUcXYUdWeFTuBeQe5eW4
+6Y+LWaA8HMlDdoHRB0FgASisYcFagwno9+oFf4AJka4H1gWEs5XTGwAA1s0d8XGh
+7W7Dt9F5FZij8F7/9Pi6+FhhxZFIf1DD+yry9D7+Sp+BgdNALe4XOpf25QIBAwKB
+gQCHgupyjYuvCsgNHn7PNtnvVxInrB5MQNoPli+O+uNJWUK/Q+57Rl+yO8AoEzDX
+pFaLWiuVVhsdloDnAgabT/FXzYncs6uOHyEUV+dSXb78vtLPJqAX+Fg2i3hOXreB
+yskcZ13/OsKVOu5wgrJkx2baZufkqMwOSytf5y9nwjEIKwJBAP+inobagVNrN62j
+KQva3cC+UN/6XnKdTc0CA6bHyLOaJoH1xiMwG/VS2PGjHI0tiSMNtLn/QPpHJ003
+iabGhdUCQQDLjp/9UjFT6K6CF66Chqf30pZXhx+GTSQZmv/gvZiMly7X9fX9BGX3
+2MbJohBC4yI21XKTbisWywkF73Hwh+TRAkEAqmxprzxWN5zPyRdwspHpKymLP/w+
+9xOJM1atGdqFzRFvAU6EF3Vn+OHl9my9s3OwwgkjJqorUYTE3iUGby8D4wJBAIe0
+aqjhdjfwdFa6dFcEb/qMZDpaFQQzbWZnVUB+ZbMPdI/5TqitmU/l2dvBYCyXbCSO
+TGJJcg8yBgP09qBamIsCQFL7j1tM0XPVQJQ89WpKCld7O9ORxRGVj1eG0tWijrH8
+mGbYh8SGCVoWV3vrKSS8GBrFVgQnqUaHuEdtM7tpCAQ=
+-----END RSA PRIVATE KEY-----
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/securitydialogs/lockapp/sis/rd.cer Wed Sep 01 12:19:59 2010 +0100
@@ -0,0 +1,17 @@
+-----BEGIN CERTIFICATE-----
+MIICzDCCAjWgAwIBAgIBADANBgkqhkiG9w0BAQUFADArMRAwDgYDVQQKEwdSRCBD
+ZXJ0MRcwFQYDVQQDEw5SRCBDZXJ0aWZpY2F0ZTAeFw0wNDExMTUxMjQyMDZaFw0z
+NzA5MjMxMjQyMDZaMCsxEDAOBgNVBAoTB1JEIENlcnQxFzAVBgNVBAMTDlJEIENl
+cnRpZmljYXRlMIGdMA0GCSqGSIb3DQEBAQUAA4GLADCBhwKBgQDLRF+r1FGGkCwT
+rb420kbnAps7gi1yYUcXYUdWeFTuBeQe5eW46Y+LWaA8HMlDdoHRB0FgASisYcFa
+gwno9+oFf4AJka4H1gWEs5XTGwAA1s0d8XGh7W7Dt9F5FZij8F7/9Pi6+FhhxZFI
+f1DD+yry9D7+Sp+BgdNALe4XOpf25QIBA6OCAQAwgf0wDAYDVR0TBAUwAwEB/zAL
+BgNVHQ8EBAMCAoQwHQYDVR0OBBYEFFi/kuGzxhVpjGxe9ZwlxC3fH9jFMFMGA1Ud
+IwRMMEqAFFi/kuGzxhVpjGxe9ZwlxC3fH9jFoS+kLTArMRAwDgYDVQQKEwdSRCBD
+ZXJ0MRcwFQYDVQQDEw5SRCBDZXJ0aWZpY2F0ZYIBADBsBgNVHSAEZTBjMGEGBFUd
+IAAwWTATBggrBgEFBQcCARYHaHR0cDovLzBCBggrBgEFBQcCAjA2GjRGb3IgUiZE
+IHVzYWdlIG9ubHkuIFRoaXMgY2VydGlmaWNhdGUgaXMgbm90IHRydXN0ZWQuMA0G
+CSqGSIb3DQEBBQUAA4GBAHGB4RQMAgBdeT2hxfOr6f2nA/dZm+M5yX5daUtZnET9
+Ed0A9sazLawfN2G1KFQT9kxEParAyoAkpbMAsRrnRz/9cM3OHgFm/NiKRnf50DpT
+7oCx0I/65mVD2kt+xXE62/Ii5KPnTufIkPi2uLvURCia1tTS8JmJ8dtxDGyQt8BR
+-----END CERTIFICATE-----
--- a/securitydialogs/lockapp/src/lockapp.cpp Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,105 +0,0 @@
-/*
- * Copyright (c) 2000 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: Very small version of lockapp, which simply launches Autolock
- * This is needed becauses starter has the hardcoded name "lockapp"
- *
- */
-
-// INCLUDES
-
-#include <e32svr.h>
-#include <centralrepository.h>
-
-#include <aknglobalpopupprioritycontroller.h>
-#include <apgcli.h>
-#include <apgtask.h>
-#include <eikenv.h>
-#include <e32property.h>
-#include <secuisecuritysettings.h>
-#include <coreapplicationuisdomainpskeys.h>
-
-// ----------------------------------------------------------------------------------------
-// Server startup code
-// ----------------------------------------------------------------------------------------
-static void RunServerL()
- {
- CActiveScheduler* s = new (ELeave) CActiveScheduler;
- CleanupStack::PushL(s);
- CActiveScheduler::Install(s);
-
- // start autolock instead of lockapp . This is a backup solution to use in case that not all SysAp and Avkon changes are implemented
- /* No need to check the task. A process should not run twice
- TApaTaskList taskList( CCoeEnv::Static()->WsSession() ); // can also use CCoeEnv::Static() CEikonEnv::Static()
- const TUid KAutolockSrvAppUid = { 0x100059B5 };
- TApaTask task( taskList.FindApp( KAutolockSrvAppUid ) );
- if( !task.Exists())
- */
-
- RApaLsSession ls;
- User::LeaveIfError(ls.Connect());
- CleanupClosePushL(ls);
-
- /************/
- _LIT_SECURITY_POLICY_C1(KWritePolicy, ECapabilityWriteDeviceData);
- TInt ret = RProperty::Define(KPSUidCoreApplicationUIs,
- KCoreAppUIsAutolockStatus, RProperty::EInt, TSecurityPolicy(TSecurityPolicy::EAlwaysPass),
- TSecurityPolicy(TSecurityPolicy::EAlwaysPass));
-
- TInt autolockState;
- RProperty::Get(KPSUidCoreApplicationUIs, KCoreAppUIsAutolockStatus, autolockState);
- if(autolockState==EAutolockStatusUninitialized)
- {
- autolockState = EAutolockOff; // not-initialized means that the unlock-query hasn't been displayed. Therefore the device should not stay locked.
- }
- ret = RProperty::Set(KPSUidCoreApplicationUIs, KCoreAppUIsAutolockStatus,
- autolockState); // this might re-set it. That's not bad. It will re-notify all listeners.
- RProperty::Get(KPSUidCoreApplicationUIs, KCoreAppUIsAutolockStatus, autolockState);
- RDebug::Printf("%s %s (%u) autolockState=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, autolockState);
- /************/
-
- CApaCommandLine* commandLine = CApaCommandLine::NewLC();
- commandLine->SetExecutableNameL(_L("autolock.exe"));
- commandLine->SetCommandL(EApaCommandRun);
- // Try to launch the application.
- TInt err = ls.StartApp(*commandLine); // this migh fail
- RDebug::Printf("%s %s (%u) Start: autolock.exe err=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, err);
-
- CleanupStack::PopAndDestroy(2); // commandLine, ls
-
- // Initialisation complete, now signal the client
- RProcess::Rendezvous( KErrNone);
-
- // Ready to run
- CActiveScheduler::Start();
-
- // Cleanup the server and scheduler
- CleanupStack::PopAndDestroy(2);
- }
-
-// Server process entry-point
-TInt E32Main()
- {
- CTrapCleanup* cleanup = CTrapCleanup::New();
- TInt r = KErrNoMemory;
- if (cleanup)
- {
- TRAP(r, RunServerL());
- delete cleanup;
- }
- RDebug::Printf("%s %s (%u) r=%x", __FILE__, __PRETTY_FUNCTION__,
- __LINE__, r);
- return r;
- }
-
-// End of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/securitydialogs/lockapp/src/lockappapplication.cpp Wed Sep 01 12:19:59 2010 +0100
@@ -0,0 +1,64 @@
+/*
+* Copyright (c) 2007 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: Application class that also creates the appserver
+ *
+*/
+
+
+#include <eikstart.h>
+#include <eikenv.h>
+#include "lockappdocument.h"
+#include "lockappserver.h"
+#include "lockappapplication.h"
+
+// UID for the application, this should correspond to the uid defined in the mmp file
+static const TUid KUidLockAppApp =
+ {
+ 0x10283322
+ };
+
+// ---------------------------------------------------------------------------
+// Create an application, and return a pointer to it
+// ---------------------------------------------------------------------------
+CApaApplication* NewApplication( )
+ {
+ return new CLockAppApplication;
+ }
+
+// ---------------------------------------------------------------------------
+// Main function of the application executable.
+// ---------------------------------------------------------------------------
+TInt E32Main( )
+ {
+ return EikStart::RunApplication( NewApplication );
+ }
+
+// ---------------------------------------------------------------------------
+// Returns the UID for the application
+// ---------------------------------------------------------------------------
+TUid CLockAppApplication::AppDllUid( ) const
+ {
+ // Return the UID for the LockApp application
+ return KUidLockAppApp;
+ }
+
+// ---------------------------------------------------------------------------
+// Creates a document object and passes ownership.
+// ---------------------------------------------------------------------------
+CApaDocument* CLockAppApplication::CreateDocumentL( )
+ {
+ // Create an LockApp document, and return a pointer to it
+ CApaDocument* document = CLockAppDocument::NewL( *this );
+ return document;
+ }
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/securitydialogs/lockapp/src/lockappappui.cpp Wed Sep 01 12:19:59 2010 +0100
@@ -0,0 +1,229 @@
+/*
+* Copyright (c) 2007 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: LockApp Application UI class
+*
+*/
+
+
+#include "lockappappui.h"
+#include "lockappstatecontrol.h"
+#include "lockappserver.h"
+#include "lockapptrace.h"
+#include <lockappclientserver.h>
+#include <aknglobalpopupprioritycontroller.h>
+#include <apgcli.h>
+
+#ifdef __SAP_TERMINAL_CONTROL_FW
+#include <SCPClient.h>
+#endif // __SAP_TERMINAL_CONTROL_FW
+
+// ---------------------------------------------------------------------------
+// Second phase constructor
+// ---------------------------------------------------------------------------
+void CLockAppAppUi::ConstructL( )
+ {
+ #if defined(_DEBUG)
+ INFO_4( "%s %s (%u) value=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, 0x8 );
+ #endif
+
+ // default appui constructor has to be called
+ BaseConstructL( );
+
+ TInt use_old_autolock=1;
+ if(use_old_autolock)
+ {
+ // start autolock instead of lockapp . This is a backup solution to use in case that not all SysAp and Avkon changes are implemented
+ #if defined(_DEBUG)
+ INFO_4( "%s %s (%u) 1=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, 0x1 );
+ #endif
+ TApaTaskList taskList( iCoeEnv->WsSession() );
+ TApaTask task( taskList.FindApp( _L("autolock.exe" )) );
+ if ( !task.Exists() )
+ {
+ RApaLsSession ls;
+ User::LeaveIfError(ls.Connect());
+ CleanupClosePushL(ls);
+
+ CApaCommandLine* commandLine = CApaCommandLine::NewLC();
+ commandLine->SetExecutableNameL( _L("autolock.exe" ) );
+ commandLine->SetCommandL( EApaCommandRun );
+
+ // Try to launch the application.
+ User::LeaveIfError(ls.StartApp(*commandLine));
+ #if defined(_DEBUG)
+ INFO_4( "%s %s (%u) autolock.exe created=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, 0x7 );
+ #endif
+
+ CleanupStack::PopAndDestroy(2); // commandLine, ls
+ }
+ Exit();
+ }
+
+ #if defined(_DEBUG)
+ INFO( "CLockAppAppUi::ConstructL started" );
+ #endif
+
+ // start the server with the specified name
+ iLockServer = CLockAppServer::NewL( KLockAppServerName );
+
+ // status pane is should not be visible
+ StatusPane()->MakeVisible( EFalse );
+
+ // we need high priority even if lockapp is not in the foreground
+ iEikonEnv->WsSession().ComputeMode( RWsSession::EPriorityControlDisabled );
+ RThread().SetProcessPriority( EPriorityHigh );
+
+ /*
+ * LockApp is set as system application (Symbian terminology).
+ * This means it does not get closed when system is asked to close applications.
+ */
+ iEikonEnv->SetSystem( ETrue );
+
+#ifdef _GLOBAL_PRIORITY_SUPPORTED
+ // Enable global popup notes
+ AknGlobalPopupPriorityController::EnablePriorityControlL();
+ AknGlobalPopupPriorityController::AllowGlobalPopups( ETrue );
+#endif
+
+ // main control storing and controling phone keylock/devicelock status
+ iStateControl = CLockAppStateControl::NewL( );
+
+ // the main control is given high stack priority
+ // ECoeStackPriorityEnvironmentFilter-1 used to allow hw keys for keyfiler even if keypad is locked.
+ AddToStackL( iStateControl, ECoeStackPriorityEnvironmentFilter-1, ECoeStackFlagStandard );
+ #if defined(_DEBUG)
+ INFO( "CLockAppAppUi::ConstructL finished" );
+ #endif
+ }
+
+// ---------------------------------------------------------------------------
+// Default Constructor
+// ---------------------------------------------------------------------------
+CLockAppAppUi::CLockAppAppUi( )
+ {
+ // no implementation required
+ }
+
+// ---------------------------------------------------------------------------
+// Destructor
+// ---------------------------------------------------------------------------
+CLockAppAppUi::~CLockAppAppUi( )
+ {
+ if ( iLockServer )
+ {
+ delete iLockServer;
+ iLockServer = NULL;
+ }
+ if ( iStateControl )
+ {
+ // remove main control from stack
+ RemoveFromStack( iStateControl );
+ delete iStateControl;
+ iStateControl = NULL;
+ }
+ }
+
+// ---------------------------------------------------------------------------
+// Returns interface to LockAppServer sessions for changing lock states
+// ---------------------------------------------------------------------------
+MLockAppStateControl* CLockAppAppUi::StateControl( )
+ {
+ return iStateControl;
+ }
+
+#ifdef __SAP_TERMINAL_CONTROL_FW
+// ---------------------------------------------------------------
+// Handles the TARM command to unlock the phone from WindowServer.
+// ---------------------------------------------------------------
+MCoeMessageObserver::TMessageResponse CLockAppAppUi::HandleMessageL(
+ TUint32 aClientHandleOfTargetWindowGroup,
+ TUid aMessageUid,
+ const TDesC8& aMessageParameters )
+ {
+ MCoeMessageObserver::TMessageResponse messageResponse( EMessageHandled);
+ if ( aMessageUid.iUid == SCP_CMDUID_UNLOCK)
+ {
+ // For security reasons we must check from the SCP server
+ // did this command originate from it.
+ RSCPClient scpClient;
+ if ( scpClient.Connect() == KErrNone )
+ {
+ CleanupClosePushL( scpClient );
+ if ( scpClient.QueryAdminCmd( ESCPCommandUnlockPhone ) )
+ {
+ #if defined(_DEBUG)
+ INFO( "CLockAppAppUi::HandleMessageL(): Admin command received, unlocking" );
+ #endif
+ iStateControl->DisableDevicelockL();
+ }
+ else
+ {
+ #if defined(_DEBUG)
+ INFO( "CLockAppAppUi::HandleMessageL(): Unauthorized attempt to unlock" );
+ #endif
+ }
+ CleanupStack::PopAndDestroy(); // calls Close() on scpClient
+ }
+ else
+ {
+ #if defined(_DEBUG)
+ INFO( "CLockAppAppUi::HandleMessageL(): Failed to connect to SCP, ignoring unlock-message." );
+ #endif
+ }
+ }
+ else // aMessageUid.iUid != SCP_CMDUID_UNLOCK
+ {
+ messageResponse = CAknAppUi::HandleMessageL(
+ aClientHandleOfTargetWindowGroup,
+ aMessageUid,
+ aMessageParameters);
+ }
+ return messageResponse;
+ }
+#endif // __SAP_TERMINAL_CONTROL_FW
+
+// ----------------------------------------------------------
+// Handle window-server events
+// ----------------------------------------------------------
+void CLockAppAppUi::HandleWsEventL( const TWsEvent& aEvent, CCoeControl* aDestination )
+ {
+ #if defined(_DEBUG)
+ INFO_4( "%s %s (%u) value=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, 0 );
+ #endif
+ if ( aEvent.Type() == TRawEvent::EKeyDown )
+ {
+ #if defined(_DEBUG)
+ INFO_1("CLockAppAppUi::HandleWsEventL() - aEvent.Key()->iCode: %d", aEvent.Key()->iCode );
+ #endif
+ }
+
+ // call super-class
+ CAknAppUi::HandleWsEventL( aEvent, aDestination );
+ // propagate call
+ iStateControl->HandleWsEventL( aEvent, aDestination);
+ }
+
+// ---------------------------------------------------------------------------
+// From @c CAknAppUiBase. Overriden the parent method, because otherwise
+// the main lock state control would not receive the call, because is is not
+// window-owning control (=without window->not visible). The call is needed
+// because the main state control owns window-owning child controls.
+// ---------------------------------------------------------------------------
+void CLockAppAppUi::HandleResourceChangeL( TInt aType )
+ {
+ // call super-class
+ CAknAppUi::HandleResourceChangeL( aType );
+ // propagate call - since does not own window
+ iStateControl->HandleResourceChange( aType );
+ }
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/securitydialogs/lockapp/src/lockappbasecontrol.cpp Wed Sep 01 12:19:59 2010 +0100
@@ -0,0 +1,277 @@
+/*
+* Copyright (c) 2007 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: Base control for logical UI components
+ *
+*/
+
+
+#include "lockappbasecontrol.h"
+#include "lockappkeycapturecontroller.h"
+#include "lockapputils.h"
+
+#include <eikenv.h>
+#include <eikbtgpc.h>
+#include <aknnotedialog.h>
+#include <AknSmallIndicator.h> // CAknSmallIndicator
+#include <AknUtils.h>
+
+// ---------------------------------------------------------------------------
+// Constructor.
+// ---------------------------------------------------------------------------
+CLockAppBaseControl::CLockAppBaseControl( MLockAppStateControl& aStateControl ) :
+ iStateControl(aStateControl), iWindowGroup( iEikonEnv->RootWin())
+ {
+ INFO_4( "%s %s (%u) 1=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, 1 );
+ }
+
+// ---------------------------------------------------------------------------
+// Second phase constructor.
+// ---------------------------------------------------------------------------
+void CLockAppBaseControl::ConstructL( )
+ {
+ INFO_4( "%s %s (%u) 1=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, 1 );
+ iKeyPattern = CLockAppKeyPattern::NewL( );
+ }
+
+// ---------------------------------------------------------------------------
+// Destructor.
+// ---------------------------------------------------------------------------
+CLockAppBaseControl::~CLockAppBaseControl( )
+ {
+ CancelNote( );
+ if ( iActive )
+ {
+ TRAP_IGNORE(HandleDeActivateEventL( NULL ));
+ }
+ delete iCba;
+ delete iKeyPattern;
+ }
+
+// ---------------------------------------------------------------------------
+// Setup key pattern matcher.
+// ---------------------------------------------------------------------------
+TBool CLockAppBaseControl::SetupKeyPatternsWithPolicyL( TLockPolicyType aType )
+ {
+ INFO_1( "CLockAppBaseControl::SetupKeyPatternsL( type=%d )", aType );
+ TBool ret(EFalse);
+ __ASSERT_DEBUG( iKeyPattern, DoPanic(ELockIllegalState));
+ if ( iKeyPattern )
+ {
+ CKeyLockPolicyApi* keylockPolicy = CKeyLockPolicyApi::NewL( aType );
+
+ // if the keylockpolicy has keycombinations
+ if ( keylockPolicy->HasConfiguration( ) )
+ {
+ // TESTING1!
+ INFO( "CLockAppBaseControl::SetupKeyPatternsWithPolicyL - HasConfiguration!" );
+
+ TUint32 index(0), k1(0), k2(0);
+ while ( keylockPolicy->GetKeyCombination( index, k1, k2 )== KErrNone )
+ {
+ // TESTING2!
+ INFO( "CLockAppBaseControl::SetupKeyPatternsWithPolicyL - key combination found!" );
+
+ // add each combination to our pattern matcher
+ iKeyPattern->AddPattern( k1, k2 );
+ index++;
+ }
+
+ ret = ETrue;
+ INFO_1( "CLockAppBaseControl::SetupKeyPatternsL: added %d patterns", index );
+ }
+ delete keylockPolicy;
+ }
+ return ret;
+ }
+
+// ---------------------------------------------------------------------------
+// Show note
+// ---------------------------------------------------------------------------
+void CLockAppBaseControl::ShowNote( CLockAppLockedNote* aNote, const TInt aTimeout,
+ const CAknNoteDialog::TTone aTone )
+ {
+ if ( aNote )
+ {
+ // cancel the current note if any
+ if ( iCurrentNote != aNote )
+ {
+ CancelNote( );
+ iCurrentNote = aNote;
+ }
+ iCurrentNote->ShowNote( aTimeout, aTone );
+ }
+ }
+
+// ---------------------------------------------------------------------------
+// Cancel currently shown note
+// ---------------------------------------------------------------------------
+void CLockAppBaseControl::CancelNote( )
+ {
+ if ( iCurrentNote )
+ {
+ if ( iCurrentNote->IsVisible( ) )
+ {
+ iCurrentNote->CancelNote( );
+ }
+ iCurrentNote = NULL;
+ }
+ }
+
+// ---------------------------------------------------------------------------
+// Internal lock state has been changed.
+// ---------------------------------------------------------------------------
+void CLockAppBaseControl::HandleLockStatusChangedL( TLockStatus aStatus )
+ {
+ switch ( aStatus )
+ {
+ case ELockNotActive:
+ break;
+ case EKeyguardActive:
+ break;
+ case EDevicelockActive:
+ break;
+ default:
+ DoPanic( ELockPanicGeneral );
+ break;
+ }
+ }
+
+// ---------------------------------------------------------------------------
+// Handle activate event
+// ---------------------------------------------------------------------------
+void CLockAppBaseControl::HandleActivateEventL( TUint /*aEnvMask*/ )
+ {
+ __ASSERT_DEBUG( !iActive, DoPanic(ELockIllegalState));
+ if ( !iActive )
+ {
+ iActive = ETrue;
+ }
+ }
+
+// ---------------------------------------------------------------------------
+// Handle de-activate event
+// ---------------------------------------------------------------------------
+void CLockAppBaseControl::HandleDeActivateEventL( TUint /*aEnvMask*/ )
+ {
+ __ASSERT_DEBUG( iActive, DoPanic(ELockIllegalState));
+ if ( iActive )
+ {
+ iActive = EFalse;
+ }
+ }
+
+// ---------------------------------------------------------------------------
+// Capture/uncapture primary keys
+// ---------------------------------------------------------------------------
+void CLockAppBaseControl::CapturePrimaryKeys( const TBool aCapture )
+ {
+ INFO_4( "%s %s (%u) aCapture=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, aCapture );
+ INFO_4( "%s %s (%u) iKeyPattern=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, iKeyPattern );
+ if ( iKeyPattern )
+ {
+ if ( aCapture )
+ {
+ // capture primary keys
+ TUint32 index( 0), primaryKey( 0), secondaryKey( 0);
+ while (iKeyPattern->GetPattern( index, primaryKey, secondaryKey )== KErrNone )
+ {
+ CLockAppKeyCaptureController::CaptureKey( primaryKey, 0, EKeyCaptureUpAndDownEvents );
+ index++;
+ }
+ }
+ else
+ {
+ // uncapture primary keys
+ TUint32 index( 0), primaryKey( 0), secondaryKey( 0);
+ while (iKeyPattern->GetPattern( index, primaryKey, secondaryKey )== KErrNone )
+ {
+ CLockAppKeyCaptureController::ReleaseKey( primaryKey );
+ index++;
+ }
+ }
+ }
+ }
+
+// ---------------------------------------------------------------------------
+// Bring keyguard cba forwards/backwards.
+// ---------------------------------------------------------------------------
+void CLockAppBaseControl::ShowCba( const TBool aShow )
+ {
+ if ( iCba )
+ {
+ RDrawableWindow* cbaWindow = iCba->ButtonGroup()->AsControl()->DrawableWindow( );
+ if ( aShow )
+ {
+ cbaWindow->SetNonFading( ETrue );
+ cbaWindow->SetOrdinalPosition( 0 );
+ iCba->MakeVisible( ETrue );
+ }
+ else
+ {
+ // hide the window
+ iCba->MakeVisible( EFalse );
+ }
+ }
+ }
+
+// ---------------------------------------------------------------------------
+// Method used for capturing/releasing pointer events when key lock is enabled.
+// Capturing is done using button/cba group window.
+// ---------------------------------------------------------------------------
+void CLockAppBaseControl::SetPointerEventCapture(const TBool aEnable )
+ {
+#ifdef RD_SCALABLE_UI_V2
+ if ( AknLayoutUtils::PenEnabled( )&& iCba )
+ {
+ // cba captures all pointer events
+ RDrawableWindow* cbaWindow = iCba->ButtonGroup()->AsControl()->DrawableWindow( );
+ if ( aEnable )
+ {
+ cbaWindow->SetPointerCapture( RWindowBase::TCaptureDragDrop );
+ }
+ else
+ {
+ cbaWindow->SetPointerCapture( RWindowBase::TCaptureDisabled );
+ }
+ cbaWindow->ClaimPointerGrab( aEnable );
+ }
+#endif // RD_SCALABLE_UI_V2
+ }
+
+// ---------------------------------------------------------------------------
+// Set Keyguard indicator on Idle.
+// ---------------------------------------------------------------------------
+void CLockAppBaseControl::SetKeyguardIndicatorStateL( const TBool aEnable )
+ {
+ CAknSmallIndicator* theIndicator = CAknSmallIndicator::NewLC( TUid::Uid( EAknIndicatorKeyguard ) );
+ if ( aEnable )
+ {
+ theIndicator->SetIndicatorStateL( EAknIndicatorStateOn );
+ }
+ else
+ {
+ theIndicator->SetIndicatorStateL( EAknIndicatorStateOff );
+ }
+ CleanupStack::PopAndDestroy( theIndicator );
+ }
+
+// ---------------------------------------------------------------------------
+// Handle environment changes (Screensaver, Telephony, etc.)
+// ---------------------------------------------------------------------------
+void CLockAppBaseControl::HandleEnvironmentChange( TUint /*aEnvMask*/, TUint /*aEventMask*/ )
+ {
+ // no implementation needed - virtual function
+ }
+
+// END OF FILE
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/securitydialogs/lockapp/src/lockappcenrepobserver.cpp Wed Sep 01 12:19:59 2010 +0100
@@ -0,0 +1,146 @@
+/*
+* Copyright (c) 2007 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: Central Repository key observer
+ *
+*/
+
+
+#include <centralrepository.h>
+#include "lockappcenrepobserver.h"
+#include "lockapputils.h"
+
+// ---------------------------------------------------------------------------
+// Two-phased constructor.
+// ---------------------------------------------------------------------------
+CLockAppCenRepObserver* CLockAppCenRepObserver::NewL( MLockAppObserverInterface* aObserver,
+ TUid aCenRepUid, TUint32 aKeyId )
+ {
+ CLockAppCenRepObserver* self = new (ELeave) CLockAppCenRepObserver(aObserver, aCenRepUid, aKeyId);
+ CleanupStack::PushL( self );
+ self->ConstructL( );
+ CleanupStack::Pop( self );
+ return self;
+ }
+
+// ---------------------------------------------------------------------------
+// Destructor
+// ---------------------------------------------------------------------------
+CLockAppCenRepObserver::~CLockAppCenRepObserver( )
+ {
+ if ( iNotifyHandler )
+ {
+ iNotifyHandler->StopListening( );
+ delete iNotifyHandler;
+ iNotifyHandler = NULL;
+ }
+ if ( iRepository )
+ {
+ delete iRepository;
+ iRepository = NULL;
+ }
+ }
+
+// ---------------------------------------------------------------------------
+// C++ default constructor
+// ---------------------------------------------------------------------------
+CLockAppCenRepObserver::CLockAppCenRepObserver( MLockAppObserverInterface* aObserver,
+ TUid aCenRepUid, TUint32 aKeyId ) :
+ iObserver(aObserver),
+ iCenRepUid(aCenRepUid),
+ iKeyId(aKeyId)
+ {
+ }
+
+// ---------------------------------------------------------------------------
+// Symbian OS default constructor
+// ---------------------------------------------------------------------------
+void CLockAppCenRepObserver::ConstructL( )
+ {
+ // init cenrep connection
+INFO_4( "%s %s (%u) value=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, 0 );
+ iRepository = CRepository::NewL( iCenRepUid );
+ iNotifyHandler = CCenRepNotifyHandler::NewL( *this, *iRepository,
+ CCenRepNotifyHandler::EIntKey, iKeyId );
+ iNotifyHandler->StartListeningL( );
+ }
+
+// ---------------------------------------------------------------------------
+// Gets value of the default key from CenRep.
+// ---------------------------------------------------------------------------
+TInt CLockAppCenRepObserver::GetValue(TInt& aValue )
+ {
+ return iRepository->Get( iKeyId, aValue );
+ }
+
+// ---------------------------------------------------------------------------
+// Gets value of the key from CenRep.
+// ---------------------------------------------------------------------------
+TInt CLockAppCenRepObserver::GetKeyValue(TUint32 aKey, TInt& aValue )
+ {
+ INFO_4( "%s %s (%u) aKey=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, aKey );
+
+ return iRepository->Get( aKey, aValue );
+ }
+
+// ---------------------------------------------------------------------------
+// Sets a value for the default key in CenRep.
+// ---------------------------------------------------------------------------
+TInt CLockAppCenRepObserver::SetValue(TInt aValue )
+ {
+ return iRepository->Set( iKeyId, aValue );
+ }
+
+// ---------------------------------------------------------------------------
+// Sets a value for the key in CenRep.
+// ---------------------------------------------------------------------------
+TInt CLockAppCenRepObserver::SetKeyValue(TUint32 aKey, TInt aValue )
+ {
+ return iRepository->Set( aKey, aValue );
+ }
+
+// ---------------------------------------------------------------------------
+// Handles changes. Called by CenRep.
+// ---------------------------------------------------------------------------
+void CLockAppCenRepObserver::HandleNotifyInt(TUint32 aKeyId, TInt aValue )
+ {
+INFO_4( "%s %s (%u) value=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, 0 );
+ if ( aKeyId == iKeyId )
+ {
+ if ( iObserver )
+ {
+ iObserver->HandleCenRepNotify( iCenRepUid, iKeyId, aValue );
+ }
+ }
+ }
+
+// ---------------------------------------------------------------------------
+// Handles errors. Called by CenRep.
+// ---------------------------------------------------------------------------
+void CLockAppCenRepObserver::HandleNotifyError(TUint32 aId, TInt error, CCenRepNotifyHandler* /*aHandler*/)
+ {
+ ERROR_1(error, "CLockAppCenRepObserver::HandleNotifyError - %d", aId);
+ }
+
+// ---------------------------------------------------------------------------
+// Handles Repository wide reset caused generic notifications. Called by CenRep.
+// ---------------------------------------------------------------------------
+void CLockAppCenRepObserver::HandleNotifyGeneric(TUint32 aId )
+ {
+ if ( aId == NCentralRepositoryConstants::KInvalidNotificationId )
+ {
+ // TODO implement what to do in this case
+ }
+ }
+
+// END OF FILE
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/securitydialogs/lockapp/src/lockappdevicelockcontainer.cpp Wed Sep 01 12:19:59 2010 +0100
@@ -0,0 +1,300 @@
+/*
+* Copyright (c) 2007 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: Devicelock Background UI (window owning control)
+ *
+*/
+
+
+// INCLUDE FILES
+#include "lockappdevicelockcontainer.h"
+#include "lockapputils.h"
+
+#include <eikenv.h>
+#include <lockapp.mbg>
+#include <avkon.hrh>
+#include <aknlayoutscalable_avkon.cdl.h>
+#include <aknlayoutscalable_apps.cdl.h>
+#include <AknsLayeredBackgroundControlContext.h>
+#include <AknsDrawUtils.h>
+#include <AknBitmapAnimation.h>
+#include <AknsUtils.h>
+#include <AknUtils.h>
+#include <aknappui.h>
+
+#include <layoutmetadata.cdl.h>
+#include <data_caging_path_literals.hrh>
+#include <eikdef.h>
+
+_LIT(LOCKBITMAPNAME, "AutoLock.mbm"); // TODO change filename
+
+// CONSTANTS
+
+#ifdef RD_FULLSCREEN_WALLPAPER
+enum TAutolockBgLayers
+ {
+ EAutolockBgLayerWallpaper = 0,
+ EAutolockBgLayerBackground = 1,
+ EAutolockBgLayersN = 2
+ };
+#else
+enum TAutolockBgLayers
+ {
+ EAutolockBgLayerBackground = 0,
+ EAutolockBgLayerWallpaper = 1,
+ EAutolockBgLayersN = 2
+ };
+#endif //RD_FULLSCREEN_WALLPAPER
+
+// ---------------------------------------------------------------------------
+// Standard Symbian OS construction sequence
+// ---------------------------------------------------------------------------
+CLockAppDevicelockContainer* CLockAppDevicelockContainer::NewL( RWindowGroup& aWg )
+ {
+ CLockAppDevicelockContainer* self = new (ELeave) CLockAppDevicelockContainer( );
+ CleanupStack::PushL( self );
+ self->ConstructL( aWg );
+ CleanupStack::Pop( self );
+ return self;
+ }
+
+// ---------------------------------------------------------
+// Symbian OS two phased constructor
+// ---------------------------------------------------------
+void CLockAppDevicelockContainer::ConstructL( RWindowGroup& aWg )
+ {
+ INFO( "CLockAppDevicelockContainer::ConstructL started" );
+
+ CreateWindowL( aWg );
+ MakeVisible( EFalse );
+
+ HBufC* bitMapPath = HBufC::NewLC( KMaxPath );
+ TPtr BitmapFile( bitMapPath->Des( ) );
+ BitmapFile.Append( _L("Z:") );
+ BitmapFile.Append( KDC_APP_BITMAP_DIR );
+ BitmapFile.Append( LOCKBITMAPNAME );
+
+ TRect mainPaneRect = GetMainPaneRect( );
+
+ iClock = NULL;
+ iEikBitmap = NULL;
+ AknsUtils::CreateIconL( AknsUtils::SkinInstance( ), KAknsIIDQgnGrafPhoneLocked, iBitmap, iMask,
+ BitmapFile, EMbmLockappQgn_graf_phone_locked, EMbmLockappQgn_graf_phone_locked_mask );
+
+#ifdef RD_FULLSCREEN_WALLPAPER
+ TSize screenSize = iCoeEnv->ScreenDevice()->SizeInPixels( );
+ TRect wallpaperRect( TPoint( 0, 0 ), screenSize);
+ iBgContext = CAknsLayeredBackgroundControlContext::NewL( KAknsIIDWallpaper, wallpaperRect,
+ ETrue, EAutolockBgLayersN );
+#else
+ // Create background control context for skins. Use parent absolute mode,
+ // as this is window owning control
+ iBgContext = CAknsLayeredBackgroundControlContext::NewL(
+ KAknsIIDQsnBgAreaMainIdle, mainPaneRect, ETrue, EAutolockBgLayersN );
+ iBgContext->SetLayerImage( EAutolockBgLayerWallpaper, KAknsIIDWallpaper );
+ iBgContext->SetLayerRect( EAutolockBgLayerWallpaper, mainPaneRect );
+#endif // RD_FULLSCREEN_WALLPAPER
+
+ SetRect( mainPaneRect );
+ CleanupStack::PopAndDestroy( bitMapPath ); //bitMapPath
+ INFO( "CLockAppDevicelockContainer::ConstructL completed" );
+ }
+
+// ---------------------------------------------------------
+// Destructor
+// ---------------------------------------------------------
+CLockAppDevicelockContainer::~CLockAppDevicelockContainer( )
+ {
+ delete iBgContext;
+ delete iBitmap;
+ delete iMask;
+ delete iClock;
+ }
+
+// ---------------------------------------------------------
+// Return the rectangle for this control
+// ---------------------------------------------------------
+TRect CLockAppDevicelockContainer::GetMainPaneRect( )
+ {
+ TRect screen( iAvkonAppUi->ApplicationRect());
+ TAknLayoutRect applicationWindow;
+ applicationWindow.LayoutRect( screen, AknLayoutScalable_Avkon::application_window( 0 ) );
+ TInt mainPaneVariety = ( Layout_Meta_Data::IsLandscapeOrientation() ? 4 : 3 );
+ TAknLayoutRect mainPane;
+ mainPane.LayoutRect( applicationWindow.Rect( ),
+ AknLayoutScalable_Avkon::main_pane( mainPaneVariety ) );
+ return mainPane.Rect( );
+ }
+
+// ---------------------------------------------------------
+// Called by framework when the view size is changed
+// ---------------------------------------------------------
+void CLockAppDevicelockContainer::SizeChanged()
+ {
+ INFO( "CLockAppDevicelockContainer::SizeChanged" );
+ TRect mainPaneRect( Rect( ));
+ TAknLayoutRect idleTradPane;
+ idleTradPane.LayoutRect( mainPaneRect, AknLayoutScalable_Avkon::main_idle_trad_pane( ) );
+
+ TInt variety = ( Layout_Meta_Data::IsLandscapeOrientation() ? 2 : 3 );
+
+ TAknLayoutRect idlePaneG2;
+ idlePaneG2.LayoutRect( idleTradPane.Rect( ),
+ AknLayoutScalable_Avkon::main_idle_pane_g2( variety ) );
+ AknIconUtils::SetSize( iBitmap, idlePaneG2.Rect().Size( ) );
+
+ TPoint parentPos( 0, 0);
+#ifdef RD_FULLSCREEN_WALLPAPER
+ TSize screenSize = iCoeEnv->ScreenDevice()->SizeInPixels( );
+ TRect wallpaperRect( TPoint( 0, 0 ), screenSize);
+ iBgContext->SetLayerRect( EAutolockBgLayerBackground, Rect( ) );
+ iBgContext->SetLayerRect( EAutolockBgLayerWallpaper, wallpaperRect );
+#else
+ iBgContext->SetLayerRect( EAutolockBgLayerBackground, Rect() );
+ iBgContext->SetLayerRect( EAutolockBgLayerWallpaper, Rect() );
+ //parent must be set when using parent absolute mode.
+ parentPos = PositionRelativeToScreen();
+#endif //RD_FULLSCREEN_WALLPAPER
+
+ iBgContext->SetParentPos( parentPos );
+
+ if ( !Layout_Meta_Data::IsLandscapeOrientation() )
+ {
+ // the screen is in portrait mode
+ if ( iClock )
+ {
+ // remove clock, if it exists
+ delete iClock;
+ iClock = NULL;
+ }
+ RRegion autolockRegion;
+#ifdef RD_FULLSCREEN_WALLPAPER
+ autolockRegion.AddRect( wallpaperRect );
+#else
+ autolockRegion.AddRect( Rect() );
+#endif //RD_FULLSCREEN_WALLPAPER
+ Window().SetShape( autolockRegion );
+ autolockRegion.Close( );
+ }
+ else
+ {
+ // the screen is in landscape mode.
+ // get the correct area from layout utils.
+ TAknLayoutRect popupClockDigitalAnalogueWindowLayoutRect;
+ popupClockDigitalAnalogueWindowLayoutRect.LayoutRect( idleTradPane.Rect( ),
+ AknLayoutScalable_Avkon::popup_clock_digital_analogue_window( 3 ) );
+ TRect popupClockDigitalAnalogueWindowRect(popupClockDigitalAnalogueWindowLayoutRect.Rect( ));
+
+ // since the clock is not shown in app shell when the screen is in landscape,
+ // we'll show a clock here.
+ if ( !iClock )
+ {
+ TRAP_IGNORE({
+ CAknSkinnableClock* clock = CAknSkinnableClock::NewL( this, ETrue, EFalse );
+ CleanupStack::PushL( clock );
+ clock->SetRect( popupClockDigitalAnalogueWindowRect );
+ clock->ActivateL();
+ CleanupStack::Pop( clock );
+ iClock = clock;
+ });
+ }
+ else
+ {
+ iClock->SetRect( popupClockDigitalAnalogueWindowRect );
+ }
+ RRegion autolockRegion;
+#ifdef RD_FULLSCREEN_WALLPAPER
+ autolockRegion.AddRect( wallpaperRect );
+#else
+ autolockRegion.AddRect( Rect() );
+#endif //RD_FULLSCREEN_WALLPAPER
+ autolockRegion.AddRect( iClock->Rect( ) );
+ Window().SetShape( autolockRegion );
+ autolockRegion.Close( );
+ }
+ }
+
+// ---------------------------------------------------------
+// CLockAppDevicelockContainer::CountComponentControls() const
+// ---------------------------------------------------------
+TInt CLockAppDevicelockContainer::CountComponentControls( ) const
+ {
+ TInt controlCount = 0;
+ if ( Layout_Meta_Data::IsLandscapeOrientation( ) )
+ {
+ if ( iClock )
+ {
+ controlCount++;
+ }
+ }
+ return controlCount;
+ }
+
+// ---------------------------------------------------------
+// CLockAppDevicelockContainer::ComponentControl(TInt aIndex) const
+// ---------------------------------------------------------
+CCoeControl* CLockAppDevicelockContainer::ComponentControl(TInt /*aIndex*/) const
+ {
+ return iClock;
+ }
+
+// ---------------------------------------------------------
+// CLockAppDevicelockContainer::Draw(const TRect& aRect) const
+// ---------------------------------------------------------
+void CLockAppDevicelockContainer::Draw(const TRect& aRect) const
+ {
+ CWindowGc& gc = SystemGc( );
+ gc.SetPenStyle( CGraphicsContext::ENullPen );
+ gc.SetBrushColor( KRgbWhite );
+ gc.SetBrushStyle( CGraphicsContext::ESolidBrush );
+ MAknsSkinInstance* skin = AknsUtils::SkinInstance( );
+ MAknsControlContext* cc = AknsDrawUtils::ControlContext( this );
+ AknsDrawUtils::Background( skin, cc, this, gc, aRect );
+
+ if ( iBitmap )
+ {
+ // Draw "lock" icon centered to this control
+ TInt x = (Rect().Width( ) - iBitmap->SizeInPixels().iWidth) / 2;
+ TInt y = (Rect().Height( ) - iBitmap->SizeInPixels().iHeight) / 2;
+ if ( iMask )
+ {
+ gc.BitBltMasked( TPoint( x, y ), iBitmap, TRect( TPoint( 0, 0 ),
+ iBitmap->SizeInPixels( ) ), iMask, ETrue );
+ }
+ else
+ {
+ gc.BitBlt( TPoint( x, y ), iBitmap );
+ }
+ }
+ }
+
+// ---------------------------------------------------------
+// CLockAppDevicelockContainer::HandleControlEventL( CCoeControl* aControl,TCoeEvent aEventType)
+// ---------------------------------------------------------
+void CLockAppDevicelockContainer::HandleControlEventL(CCoeControl* /*aControl*/, TCoeEvent /*aEventType*/)
+ {
+ }
+
+// ---------------------------------------------------------
+// CLockAppDevicelockContainer::MopSupplyObject
+// ---------------------------------------------------------
+TTypeUid::Ptr CLockAppDevicelockContainer::MopSupplyObject( TTypeUid aId )
+ {
+ if ( aId.iUid == MAknsControlContext::ETypeId )
+ {
+ return MAknsControlContext::SupplyMopObject( aId, iBgContext );
+ }
+ return CCoeControl::MopSupplyObject( aId );
+ }
+
+// End of File
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/securitydialogs/lockapp/src/lockappdevicelockcontrol.cpp Wed Sep 01 12:19:59 2010 +0100
@@ -0,0 +1,1178 @@
+/*
+* Copyright (c) 2007 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: Devicelock UI
+ *
+*/
+
+
+#include "lockappdevicelockcontrol.h"
+#include "lockappdevicelockcontainer.h"
+#include "lockappstatecontrolinterface.h"
+#include "lockapppubsubobserver.h"
+#include "lockappcenrepobserver.h"
+#include "lockapputils.h"
+#include "lockappwait.h"
+#include "lockappkeycapturecontroller.h"
+
+#include <lockapp.rsg> // general avkon resources
+#include <avkon.rsg> // general avkon resources
+#include <aknnotpi.rsg> // keyguard spesific resources
+#include <AknUtils.h>
+#include <akntitle.h> // CAknTitlePane
+#include <activitymanager.h>
+#include <e32property.h>
+#include <etelmm.h>
+#include <mmtsy_names.h>
+#include <featmgr.h>
+#include <secui.h>
+#include <secuisecurityhandler.h>
+
+#include <settingsinternalcrkeys.h> // KSettingsAutolockStatus
+#include <coreapplicationuisdomainpskeys.h>
+#include <securityuisprivatepskeys.h>
+#include <startupdomainpskeys.h>
+#include <startupdomaincrkeys.h>
+#include <ctsydomainpskeys.h>
+
+#ifdef __SAP_TERMINAL_CONTROL_FW
+#include <SCPClient.h>
+#endif // __SAP_TERMINAL_CONTROL_FW
+
+const TInt KAutoDeviceLockOff( 60000 );
+const TInt KPhoneIndex( 0 );
+const TInt KTriesToConnectServer( 2 );
+const TInt KTimeBeforeRetryingServerConnection( 50000 );
+
+// ---------------------------------------------------------------------------
+// Standard Symbian OS construction sequence
+// ---------------------------------------------------------------------------
+CLockAppDevicelockControl* CLockAppDevicelockControl::NewL(MLockAppStateControl& aStateControl, RWindowGroup& aWg )
+ {
+ CLockAppDevicelockControl* self = new (ELeave) CLockAppDevicelockControl( aStateControl );
+ INFO_4( "%s %s (%u) self=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, self );
+
+ CleanupStack::PushL( self );
+ self->ConstructL( aWg );
+ CleanupStack::Pop( self );
+ return self;
+ }
+
+// ---------------------------------------------------------------------------
+// Constructor passes the reference to the main state control.
+// ---------------------------------------------------------------------------
+CLockAppDevicelockControl::CLockAppDevicelockControl(MLockAppStateControl& aStateControl) :
+ CLockAppBaseControl(aStateControl), iShowingSecCodeQuery(EFalse)
+ {
+ INFO_4( "%s %s (%u) value=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, 0 );
+
+ }
+
+// ---------------------------------------------------------------------------
+// Destructor.
+// ---------------------------------------------------------------------------
+CLockAppDevicelockControl::~CLockAppDevicelockControl( )
+ {
+ INFO_4( "%s %s (%u) value=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, 0 );
+
+ /*****************************************************
+ * S60 Customer / ETel
+ * S60 ETel API
+ *****************************************************/
+ /*****************************************************
+ * S60 Customer / TSY
+ * Needs customer TSY implementation
+ *****************************************************/
+ INFO_4( "%s %s (%u) iCustomPhoneInitialized=%x -> -1 ", __FILE__, __PRETTY_FUNCTION__, __LINE__, iCustomPhoneInitialized );
+ iCustomPhoneInitialized=-1;
+ if ( iCustomPhone.SubSessionHandle( ) )
+ {
+ iCustomPhone.Close( );
+ INFO_4( "%s %s (%u) iCustomPhoneInitialized=%x -> -2 ", __FILE__, __PRETTY_FUNCTION__, __LINE__, iCustomPhoneInitialized );
+ iCustomPhoneInitialized=-2;
+ }
+
+ INFO_4( "%s %s (%u) iPhoneInitialized=%x -> -1 ", __FILE__, __PRETTY_FUNCTION__, __LINE__, iPhoneInitialized );
+ iPhoneInitialized=-1;
+ if ( iPhone.SubSessionHandle( ) )
+ {
+ iPhone.Close( );
+ INFO_4( "%s %s (%u) iPhoneInitialized=%x -> -2 ", __FILE__, __PRETTY_FUNCTION__, __LINE__, iPhoneInitialized );
+ iPhoneInitialized=-2;
+ }
+
+ INFO_4( "%s %s (%u) iTelServerInitialized=%x -> -1 ", __FILE__, __PRETTY_FUNCTION__, __LINE__, iTelServerInitialized );
+ iTelServerInitialized=-1;
+ if ( iTelServer.Handle( ) )
+ {
+ iTelServer.UnloadPhoneModule( KMmTsyModuleName );
+ iTelServer.Close( );
+ INFO_4( "%s %s (%u) iTelServerInitialized=%x -> -2 ", __FILE__, __PRETTY_FUNCTION__, __LINE__, iTelServerInitialized );
+ iTelServerInitialized=-2;
+ }
+ if ( iActivityManager )
+ {
+ iActivityManager->Cancel( );
+ delete iActivityManager;
+ iActivityManager = NULL;
+ }
+ // CenRep observers
+ if ( iCRAutoLockTime )
+ {
+ delete iCRAutoLockTime;
+ iCRAutoLockTime = NULL;
+ }
+ if ( iCRAutoLockStatus )
+ {
+ delete iCRAutoLockStatus;
+ iCRAutoLockStatus = NULL;
+ }
+ // PuSub observers
+ if ( iPSAutolockState )
+ {
+ delete iPSAutolockState;
+ iPSAutolockState = NULL;
+ }
+ if ( iContainer )
+ {
+ delete iContainer;
+ iContainer = NULL;
+ }
+ }
+
+// ---------------------------------------------------------------------------
+// Devicelock UI constructor reserves localized resources, configures itself
+// using CenRep and FeatureManager and reserves child controls.
+// ---------------------------------------------------------------------------
+void CLockAppDevicelockControl::ConstructL( RWindowGroup& aWg )
+ {
+ INFO( "CLockAppDevicelockControl::ConstructL started" );
+ CLockAppBaseControl::ConstructL( );
+
+ // feature manager is used for determining if the phone is a slider
+ FeatureManager::InitializeLibL( );
+ iFeatureProtocolCdma = FeatureManager::FeatureSupported( KFeatureIdProtocolCdma );
+ INFO_1("CLockAppDevicelockControl::ConstructL - iFeatureProtocolCdma: %d", iFeatureProtocolCdma);
+ FeatureManager::UnInitializeLib( );
+
+ // Cba control
+ iCba = CEikButtonGroupContainer::NewL( CEikButtonGroupContainer::ECba,
+ CEikButtonGroupContainer::EHorizontal, this,
+ R_KEYLOCK_SOFTKEYS_UNLOCK_EMPTY );
+
+ TRect screenRect;
+ AknLayoutUtils::LayoutMetricsRect( AknLayoutUtils::EScreen, screenRect );
+ iCba->SetBoundingRect( screenRect );
+ iCba->MakeVisible( EFalse );
+
+ // Set up the status pane
+ CEikStatusPane* sp = iAvkonAppUi->StatusPane();
+ if ( sp )
+ {
+ // Switch the layout to show analog clock
+ TRAPD(err, sp->SwitchLayoutL( R_AVKON_STATUS_PANE_LAYOUT_IDLE ) )
+ ERROR(err, "CLockAppDevicelockControl::ConstructL - failed to switch status pane layout");
+ if ( sp->PaneCapabilities(TUid::Uid(EEikStatusPaneUidTitle)).IsPresent( ) )
+ {
+ // Get the title pane control from status pane
+ CAknTitlePane* titlePane = NULL;
+ TRAPD(err2, titlePane = static_cast<CAknTitlePane*>( sp->ControlL( TUid::Uid( EEikStatusPaneUidTitle) ) ) )
+ ERROR(err2, "CLockAppDevicelockControl::ConstructL - failed to get status title pane");
+ if ( titlePane )
+ {
+ // Read localized "Locked" text from resource.
+ HBufC* lockedString = iCoeEnv->AllocReadResourceL( R_TITLE_PANE_LOCKED );
+ // Set as title pane text - titlepane takes ownership of the string
+ titlePane->SetText( lockedString );
+ }
+ }
+ }
+
+ INFO( "CLockAppDevicelockControl::ConstructL completed" );
+ }
+
+void CLockAppDevicelockControl::ConnectToPhoneL( RWindowGroup& aWg )
+ {
+ INFO( "CLockAppDevicelockControl::ConnectToPhoneL - connecting to etel server" );
+ // All server connections are tried to be made KTiesToConnectServer times because
+ // occasional fails on connections are possible at least on some servers
+ TInt err( KErrGeneral);
+ TInt thisTry( 0);
+ while ( ( err = iTelServer.Connect() ) != KErrNone && ( thisTry++ ) <= KTriesToConnectServer )
+ {
+ User::After( KTimeBeforeRetryingServerConnection );
+ }
+ ERROR(err, "CLockAppDevicelockControl::ConnectToPhoneL - connecting to etel server");
+ User::LeaveIfError( err );
+ INFO_4( "%s %s (%u) iTelServerInitialized=%x -> 2 ", __FILE__, __PRETTY_FUNCTION__, __LINE__, iTelServerInitialized );
+ iTelServerInitialized=2;
+
+
+ /*****************************************************
+ * S60 Customer / ETel
+ * S60 ETel API
+ *****************************************************/
+ /*****************************************************
+ * S60 Customer / TSY
+ * Needs customer TSY implementation
+ *****************************************************/
+ INFO( "CLockAppDevicelockControl::ConnectToPhoneL - loading TSY");
+ err = iTelServer.LoadPhoneModule( KMmTsyModuleName );
+ if ( err != KErrAlreadyExists )
+ {
+ // may return also KErrAlreadyExists if some other
+ // is already loaded the tsy module. And that is not an error.
+ ERROR(err, "CLockAppDevicelockControl::ConnectToPhoneL - loading TSY");
+ User::LeaveIfError( err );
+ }
+ INFO_4( "%s %s (%u) iTelServerInitialized=%x -> 3 ", __FILE__, __PRETTY_FUNCTION__, __LINE__, iTelServerInitialized );
+ iTelServerInitialized=3;
+
+ /*****************************************************
+ * S60 Customer / ETel
+ * S60 ETel API
+ *****************************************************/
+ INFO( "CLockAppDevicelockControl::ConnectToPhoneL - opening phone");
+ RTelServer::TPhoneInfo PhoneInfo;
+ User::LeaveIfError( iTelServer.SetExtendedErrorGranularity( RTelServer::EErrorExtended ) );
+ INFO_4( "%s %s (%u) iTelServerInitialized=%x -> 5 ", __FILE__, __PRETTY_FUNCTION__, __LINE__, iTelServerInitialized );
+ iTelServerInitialized=5;
+ User::LeaveIfError( iTelServer.GetPhoneInfo( KPhoneIndex, PhoneInfo ) );
+ INFO_4( "%s %s (%u) iTelServerInitialized=%x -> 6 ", __FILE__, __PRETTY_FUNCTION__, __LINE__, iTelServerInitialized );
+ iTelServerInitialized=6;
+ User::LeaveIfError( iPhone.Open( iTelServer, PhoneInfo.iName ) );
+ INFO_4( "%s %s (%u) iPhoneInitialized=%x -> 2 ", __FILE__, __PRETTY_FUNCTION__, __LINE__, iPhoneInitialized );
+ iPhoneInitialized=2;
+ User::LeaveIfError( iCustomPhone.Open( iPhone ) );
+ INFO_4( "%s %s (%u) iCustomPhoneInitialized=%x -> 2 ", __FILE__, __PRETTY_FUNCTION__, __LINE__, iCustomPhoneInitialized );
+ iCustomPhoneInitialized=2;
+
+ INFO( "CLockAppDevicelockControl::ConnectToPhoneL - phone opened");
+
+
+ TBool systemLocked(EFalse);
+
+ // Set up CenRep observers
+ iCRAutoLockTime = CLockAppCenRepObserver::NewL(this, KCRUidSecuritySettings, KSettingsAutoLockTime);
+ iCRAutoLockStatus = CLockAppCenRepObserver::NewL(this, KCRUidSecuritySettings, KSettingsAutolockStatus);
+
+ #ifndef __WINS__
+
+ /*****************************************************
+ * S60 Customer / ETel
+ * S60 ETel API
+ *****************************************************/
+
+ RMobilePhone::TMobilePhoneLock lockType = RMobilePhone::ELockPhoneDevice;
+ RMobilePhone::TMobilePhoneLockInfoV1 lockInfo;
+ RMobilePhone::TMobilePhoneLockInfoV1Pckg lockInfoPkg(lockInfo);
+
+ TRequestStatus getLockInfoStatus;
+ iPhone.GetLockInfo( getLockInfoStatus, lockType, lockInfoPkg );
+ INFO_4( "%s %s (%u) iPhoneInitialized=%x -> 3 ", __FILE__, __PRETTY_FUNCTION__, __LINE__, iPhoneInitialized );
+ iPhoneInitialized=3;
+ User::WaitForRequest( getLockInfoStatus );
+
+ TInt lockValue(0);
+ TInt cRresult = iCRAutoLockStatus->GetValue( lockValue );
+ INFO_2( "CLockAppDevicelockControl::ConnectToPhoneL - CR autolockstatus=%d , res=%d", lockValue, cRresult);
+ TBool hiddenReset = IsHiddenReset( );
+ INFO_1( "CLockAppDevicelockControl::ConnectToPhoneL - hiddenReset=%d", hiddenReset );
+ if ( lockInfo.iSetting == RMobilePhone::ELockSetDisabled )
+ {
+ INFO( "CLockAppDevicelockControl::ConnectToPhoneL - ELockSetDisabled");
+ iCRAutoLockTime->SetValue( 0 );
+ if ( iFeatureProtocolCdma )
+ {
+ iCRAutoLockTime->SetKeyValue( KSettingsLockOnPowerUp, 0 );
+ }
+ }
+ else
+ {
+ if ( iFeatureProtocolCdma || (hiddenReset && (lockValue == 1)) )
+ {
+ // In CDMA, the system can stay locked on after the boot-up sequence.
+ INFO( "CLockAppDevicelockControl::ConnectToPhoneL - Hidden reset when locked");
+ systemLocked = ETrue;
+ }
+ }
+ #endif //__WINS__
+
+ // Create devicelock UI container
+ INFO_1( "CLockAppDevicelockControl::ConnectToPhoneL - creating CLockAppDevicelockContainer=%d", 1 );
+ iContainer = CLockAppDevicelockContainer::NewL( aWg );
+ INFO_1( "CLockAppDevicelockControl::ConnectToPhoneL - creating CLockAppDevicelockContainer=%d done", 1 );
+
+ INFO_1( "CLockAppDevicelockControl::ConnectToPhoneL - creating DefinePubSubKeysL=%d", 1 );
+ DefinePubSubKeysL( );
+ INFO_1( "CLockAppDevicelockControl::ConnectToPhoneL - creating DefinePubSubKeysL=%d", 1 );
+
+ // The following sequence is used to validate the configuration on SCP server.
+ // This is needed on the first boot (initial or RFS) or if the C-drive
+ // has been formatted (3-button format) and Autolock is not active.
+#ifdef __SAP_TERMINAL_CONTROL_FW
+ // This seems to be defined always.
+ INFO( "CLockAppDevicelockControl::ConnectToPhoneL - Validate SCP Config" );
+ RSCPClient scpClient;
+ if ( scpClient.Connect() == KErrNone )
+ {
+ CleanupClosePushL( scpClient );
+ TInt confStatus = scpClient.CheckConfiguration( KSCPInitial );
+ if ( confStatus == KErrAccessDenied )
+ {
+#ifndef __WINS__
+ if ( ( lockInfo.iSetting == RMobilePhone::ELockSetDisabled ) )
+#else // __WINS__
+ if ( ETrue ) // DOS lock is never active in WINS
+#endif // __WINS__
+ {
+ // DOS lock is not active. Note that if DOS is locked, checking the code here will
+ // mess up the query sequence. On initial startup DOS is not locked.
+ TInt finalConfStatus = scpClient.CheckConfiguration( KSCPComplete );
+ if ( finalConfStatus == KErrAccessDenied )
+ {
+#ifdef __WINS__
+ ERROR(finalConfStatus, "CLockAppDevicelockControl::ConnectToPhoneL - DOS validation FAILED in WINS!");
+#else // !__WINS__
+ // The SCP server is out of sync and Autolock is not active. (c-drive formatted)
+ // We must ask the security code. ( Note that it is very rare that this is executed )
+ INFO( "CLockAppDevicelockControl::ConnectToPhoneL - Lock setting disabled, calling setlocksetting");
+
+ // Wait here until the startup is complete
+ TInt tarmErr(KErrNone);
+ while ( tarmErr == KErrNone )
+ {
+ TInt sysState;
+ tarmErr = RProperty::Get(KPSUidStartup, KPSGlobalSystemState, sysState);
+ if ((sysState == ESwStateNormalRfOn) ||
+ (sysState == ESwStateNormalRfOff) ||
+ (sysState == ESwStateNormalBTSap))
+ {
+ break;
+ }
+ User::After(500000); // half a second
+ }
+
+ // Just change the lock setting again to disabled to request the security code.
+ // Set the TARM flag so SecUi knows it should display the "login" query.
+ TInt tarmFlag;
+ TInt tRet = RProperty::Get( KSCPSIDAutolock, SCP_TARM_ADMIN_FLAG_UID, tarmFlag );
+ if ( tRet == KErrNone )
+ {
+ tarmFlag |= KSCPFlagResyncQuery;
+ tRet = RProperty::Set( KSCPSIDAutolock, SCP_TARM_ADMIN_FLAG_UID, tarmFlag );
+ }
+ ERROR(tRet, "CLockAppDevicelockControl::ConnectToPhoneL - FAILED to set TARM Admin Flag" );
+
+ TRequestStatus setLockSettingStatus;
+ RMobilePhone::TMobilePhoneLockSetting lockChange = RMobilePhone::ELockSetDisabled;
+ iPhone.SetLockSetting( setLockSettingStatus, lockType, lockChange );
+ User::WaitForRequest( setLockSettingStatus );
+#endif // __WINS__
+ }
+ }
+ }
+ CleanupStack::PopAndDestroy(); // calls Close() on scpClient
+ }
+#endif // __SAP_TERMINAL_CONTROL_FW
+
+ // Set up P&S observers
+ iPSAutolockState = CLockAppPubSubObserver::NewL( this, KPSUidCoreApplicationUIs, KCoreAppUIsAutolockStatus );
+
+ if ( systemLocked )
+ {
+ INFO( "CLockAppDevicelockControl::ConnectToPhoneL - Lock system");
+ INFO_4( "%s %s (%u) 1=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, 1 );
+ iStateControl.EnableDevicelockL( EDevicelockManual );
+ INFO( "CLockAppDevicelockControl::ConnectToPhoneL - Lock system. Done");
+ }
+
+ // Activity manager
+ iActivityManager = CUserActivityManager::NewL( CActive::EPriorityStandard );
+ StartActivityMonitoringL( );
+
+ // Setup key pattern matcher
+ if ( !SetupKeyPatternsWithPolicyL( EPolicyDevicelockQuery ) )
+ {
+ INFO( "CLockAppDevicelockControl::ConnectToPhoneL - No CenRep policy defined" );
+ iKeyPattern->AddPattern( EStdKeyDevice0, 0 ); // '0' = second key code doesnt matter
+ }
+#ifdef __WINS__
+ iKeyPattern->AddPattern( EStdKeyDevice0, 0 ); // LSK + *
+#endif
+
+ INFO( "CLockAppDevicelockControl::ConstructL completed" );
+ }
+
+// ---------------------------------------------------------------------------
+// Define internal P&S autolock status key
+// ---------------------------------------------------------------------------
+void CLockAppDevicelockControl::DefinePubSubKeysL()
+ {
+ INFO( "CLockAppDevicelockControl::DefinePubSubKeysL" );
+
+ // Create the write policy. Also processes with write device data can write the value.
+ TSecurityPolicy writePolicy( ECapabilityWriteDeviceData );
+ // Create the read policy. Also processes with read device data can read the value.
+ TSecurityPolicy readPolicy( ECapabilityReadDeviceData );
+
+ TInt ret = RProperty::Define( KPSUidSecurityUIs,
+ KSecurityUIsSecUIOriginatedQuery, RProperty::EInt, readPolicy, writePolicy );
+ ERROR(ret, "CLockAppDevicelockControl::DefinePubSubKeysL - FAILED to define the SECUI query Flag");
+
+ ret = RProperty::Define( KPSUidSecurityUIs,
+ KSecurityUIsQueryRequestCancel, RProperty::EInt, readPolicy, writePolicy );
+ ERROR(ret, "CLockAppDevicelockControl::DefinePubSubKeysL - FAILED to define the SECUI query request state Flag");
+
+ _LIT_SECURITY_POLICY_PASS(KReadPolicy);
+ _LIT_SECURITY_POLICY_C1(KWritePolicy, ECapabilityWriteDeviceData);
+ ret = RProperty::Define( KPSUidCoreApplicationUIs,
+ KCoreAppUIsAutolockStatus, RProperty::EInt, KReadPolicy, KWritePolicy);
+ RProperty::Set(KPSUidCoreApplicationUIs, KCoreAppUIsAutolockStatus, EAutolockOff);
+ if (ret != KErrAlreadyExists)
+ {
+ ERROR(ret, "CLockAppDevicelockControl::DefinePubSubKeysL - FAILED to set autolock status");
+ User::LeaveIfError(ret);
+ }
+
+ #ifdef __SAP_TERMINAL_CONTROL_FW
+ // Define the TARM admin flag.
+ ret = RProperty::Define( KSCPSIDAutolock,
+ SCP_TARM_ADMIN_FLAG_UID, RProperty::EInt, readPolicy, writePolicy );
+ ERROR(ret, "CLockAppDevicelockControl::DefinePubSubKeysL - FAILED to define the TARM Admin Flag");
+ #endif // __SAP_TERMINAL_CONTROL_FW
+ }
+
+// ----------------------------------------------------------
+// Checks whether we are booting from a Hidden Reset
+// ----------------------------------------------------------
+TBool CLockAppDevicelockControl::IsHiddenReset( )
+ {
+ INFO_4( "%s %s (%u) value=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, 0 );
+
+ TBool ret( EFalse );
+ TInt startupReason( ENormalStartup );
+ TInt err( KErrNone);
+ err = RProperty::Get( KPSUidStartup, KPSStartupReason, startupReason );
+ ERROR(err, "CLockAppDevicelockControl::IsHiddenReset - error getting startup reason" );
+ ret = (startupReason != ENormalStartup);
+ INFO_1( "CLockAppDevicelockControl::IsHiddenReset = %d", ret );
+ #ifdef _DEBUG
+ // test to simulate HiddenReset
+ RFs fs;
+ _LIT(KTestHiddenReset,"f:\\TestHiddenReset.txt");
+ RFile file;
+ User::LeaveIfError(fs.Connect());
+ err=file.Open(fs, KTestHiddenReset, EFileStreamText|EFileRead|EFileShareReadersOnly);
+ if(err==KErrNone)
+ {
+ INFO_4( "%s %s (%u) ??? TestHiddenReset=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, 1 );
+ ret = ETrue;
+ }
+ file.Close();
+ fs.Close();
+ #endif
+ return ret;
+ }
+
+// ----------------------------------------------------------
+// Checks whether PIN1/UPIN is blocked
+// ----------------------------------------------------------
+TBool CLockAppDevicelockControl::IsPinBlocked( )
+ {
+ INFO( "CLockAppDevicelockControl::IsPinBlocked" );
+ TBool ret( EFalse );
+ RMmCustomAPI::TSecurityCodeType secCodeType;
+#if defined(__PROTOCOL_WCDMA) || defined(__UPIN)
+ RMobilePhone::TMobilePhoneSecurityCode activePin;
+ iCustomPhone.GetActivePin( activePin );
+ if ( activePin == RMobilePhone::ESecurityUniversalPin )
+ secCodeType = RMmCustomAPI::ESecurityUniversalPin;
+ else
+ secCodeType = RMmCustomAPI::ESecurityCodePin1;
+#else
+ secCodeType = RMmCustomAPI::ESecurityCodePin1;
+#endif //(__PROTOCOL_WCDMA) || defined(__UPIN)
+ iCustomPhone.IsBlocked( secCodeType, ret );
+ INFO_1( "CLockAppDevicelockControl::IsPinBlocked = %d", ret );
+ return ret;
+ }
+
+// ----------------------------------------------------------
+// Try to get (and optionally unset) the TARM Admin Flag
+// ----------------------------------------------------------
+TBool CLockAppDevicelockControl::TarmAdminFlag( TBool unSetFlag )
+ {
+ INFO_1( "CLockAppDevicelockControl::TarmAdminFlag(unSet = %d)", unSetFlag );
+ TBool ret(EFalse);
+#ifdef __SAP_TERMINAL_CONTROL_FW
+ // Get the TARM admin flag value
+ TInt tarmFlag;
+ TInt err = RProperty::Get( KSCPSIDAutolock, SCP_TARM_ADMIN_FLAG_UID, tarmFlag );
+ if ( err != KErrNone )
+ {
+ ERROR(err, "CLockAppDevicelockControl::TarmAdminFlag - Failed to get TARM flag" );
+ }
+ else
+ {
+ INFO_1( "CLockAppDevicelockControl::TarmAdminFlag - TARM flag: %d", tarmFlag );
+ }
+
+ if ( tarmFlag & KSCPFlagAdminLock )
+ {
+ ret = ETrue;
+ // Unset the TARM admin flag if set
+ if ( unSetFlag )
+ {
+ tarmFlag &= ~KSCPFlagAdminLock;
+ err = RProperty::Set( KSCPSIDAutolock, SCP_TARM_ADMIN_FLAG_UID, tarmFlag );
+ ERROR(err, "CLockAppDevicelockControl::TarmAdminFlag - FAILED to unset TARM flag" );
+ }
+ }
+#endif // __SAP_TERMINAL_CONTROL_FW
+ INFO_1( "CLockAppDevicelockControl::TarmAdminFlag = %d", ret );
+ return ret;
+ }
+
+// ---------------------------------------------------------------------------
+// Check ETEL lock info and ask sec code if neccessary
+// ---------------------------------------------------------------------------
+TBool CLockAppDevicelockControl::ETelActivationAllowed( )
+ {
+ INFO( "CLockAppDevicelockControl::ETelActivationAllowed" );
+ TBool ret(EFalse);
+#ifdef __WINS__
+ ret = ETrue;
+#else //__WINS__
+
+ /*****************************************************
+ * S60 Customer / ETel
+ * S60 ETel API
+ *****************************************************/
+
+
+ INFO_4( "%s %s (%u) 111 value=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, 0 );
+
+ // INFO_4( "%s %s (%u) iStateControl=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, iStateControl );
+
+ INFO_4( "%s %s (%u) checking iPhoneInitialized=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, 0 );
+ INFO_4( "%s %s (%u) iPhoneInitialized=%x -> 4 ", __FILE__, __PRETTY_FUNCTION__, __LINE__, iPhoneInitialized );
+ iPhoneInitialized=4;
+
+ RMobilePhone::TMobilePhoneLock lockType = RMobilePhone::ELockPhoneDevice;
+ RMobilePhone::TMobilePhoneLockInfoV1 lockInfo;
+ RMobilePhone::TMobilePhoneLockInfoV1Pckg lockInfoPkg(lockInfo);
+ RMobilePhone::TMobilePhoneLockSetting lockChange(RMobilePhone::ELockSetDisabled);
+
+ INFO_4( "%s %s (%u) before getLockInfoStatus=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, 0 );
+ TRequestStatus getLockInfoStatus;
+ INFO_4( "%s %s (%u) after getLockInfoStatus=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, 0 );
+
+ INFO_4( "%s %s (%u) iPhoneInitialized=%x -> 5 ", __FILE__, __PRETTY_FUNCTION__, __LINE__, iPhoneInitialized );
+ iPhoneInitialized=5;
+ iPhone.GetLockInfo( getLockInfoStatus, lockType, lockInfoPkg );
+ INFO_4( "%s %s (%u) iPhoneInitialized=%x -> 6 ", __FILE__, __PRETTY_FUNCTION__, __LINE__, iPhoneInitialized );
+ iPhoneInitialized=6;
+ User::WaitForRequest( getLockInfoStatus );
+
+ INFO_1( "CLockAppDevicelockControl::ETelActivationAllowed - GetLockInfo status: %d ", getLockInfoStatus.Int() );
+ if ( getLockInfoStatus.Int( )== KErrNone )
+ {
+ if ( lockInfo.iSetting == RMobilePhone::ELockSetDisabled )
+ {
+ // ask code
+ INFO( "CLockAppDevicelockControl::ETelActivationAllowed - ETel ELockSetDisabled, Ask Code" );
+ // Raise a flag to indicate that the UPIN request coming from ETEL
+ // has originated from SecUi and not from Engine.
+ RProperty::Set( KPSUidSecurityUIs, KSecurityUIsSecUIOriginatedQuery, ESecurityUIsSystemLockOriginated );
+ TRequestStatus setLockSettingStatus;
+ lockChange = RMobilePhone::ELockSetEnabled;
+ iPhone.SetLockSetting( setLockSettingStatus, lockType, lockChange );
+ User::WaitForRequest( setLockSettingStatus );
+ INFO_1( "CLockAppDevicelockControl::ETelActivationAllowed - SetLockSetting status: %d ", setLockSettingStatus.Int() );
+ // Lower the flag
+ RProperty::Set( KPSUidSecurityUIs, KSecurityUIsSecUIOriginatedQuery, ESecurityUIsETelAPIOriginated );
+ if (setLockSettingStatus.Int() == KErrNone)
+ {
+ ret = ETrue;
+ }
+ }
+ else
+ {
+ INFO( "CLockAppDevicelockControl::ETelActivationAllowed - Lock System Ok" );
+ ret = ETrue;
+ }
+ }
+ else
+ {
+ INFO( "CLockAppDevicelockControl::ETelActivationAllowed - Error getting LockInfo - Ask code (SLS)" );
+ // Raise a flag to indicate that the UPIN request coming from ETEL
+ // has originated from SecUi and not from Engine.
+ RProperty::Set( KPSUidSecurityUIs, KSecurityUIsSecUIOriginatedQuery, ESecurityUIsSystemLockOriginated );
+ TRequestStatus setLockSettingStatus;
+ lockChange = RMobilePhone::ELockSetEnabled;
+ INFO_4( "%s %s (%u) iPhoneInitialized=%x -> 8 ", __FILE__, __PRETTY_FUNCTION__, __LINE__, iPhoneInitialized );
+ iPhoneInitialized=8;
+ iPhone.SetLockSetting( setLockSettingStatus, lockType, lockChange );
+ INFO_4( "%s %s (%u) iPhoneInitialized=%x -> 9 ", __FILE__, __PRETTY_FUNCTION__, __LINE__, iPhoneInitialized );
+ iPhoneInitialized=9;
+ User::WaitForRequest(setLockSettingStatus);
+ INFO_1( "CLockAppDevicelockControl::ETelActivationAllowed - SetLockSetting status: %d ", setLockSettingStatus.Int() );
+ // Lower the flag
+ RProperty::Set( KPSUidSecurityUIs, KSecurityUIsSecUIOriginatedQuery, ESecurityUIsETelAPIOriginated );
+ if (setLockSettingStatus.Int() == KErrNone)
+ {
+ ret = ETrue;
+ }
+ }
+#endif
+ INFO_1( "CLockAppDevicelockControl::ETelActivationAllowed = %d", ret );
+ return ret;
+ }
+
+// ---------------------------------------------------------------------------
+// Check weather its allowed to activate the control
+// ---------------------------------------------------------------------------
+TBool CLockAppDevicelockControl::ActivationAllowedL( TDevicelockReason aReason )
+ {
+ INFO_1( "CLockAppDevicelockControl::ActivationAllowedL aReason= %d", aReason );
+
+ if (aReason==ETimerLocked)
+ {
+ { // REQ 414-5466 Prevention of device lock in context of Hands Free Voice UI
+ TInt vuiValue = 0;
+ TUid KHFVuiModePSUid = { 0x102818E7 };
+ enum THFVuiModePSKeys
+ {
+ EHFVuiPSModeId = 1000
+ };
+ TInt tRet = RProperty::Get(KHFVuiModePSUid, EHFVuiPSModeId, vuiValue); // also 0 if can't get because permissions or because doesn't exists
+ #if defined(_DEBUG)
+ INFO_4( "%s %s (%u) getting KHFVuiModePSUid+EHFVuiPSModeId=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, tRet );
+ INFO_4( "%s %s (%u) vuiValue=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, vuiValue );
+ #endif
+ if(vuiValue)
+ {
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(LOCKAPP)CLockAppDevicelockControl::ActivationAllowedL() Voice functions active. No locking possible."));
+ #endif
+ return EFalse;
+ }
+ }
+ { // if another query is displayed, the future un-lock query will crash. Don't allow time-lock in this case.
+ TInt secQueryStatus = ESecurityQueryUninitialized;
+ TInt tRet = RProperty::Get(KPSUidStartup, KStartupSecurityCodeQueryStatus, secQueryStatus); // also 0 if can't get because permissions or because doesn't exists
+ #if defined(_DEBUG)
+ INFO_4( "%s %s (%u) getting KPSUidStartup+KStartupSecurityCodeQueryStatus=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, tRet );
+ INFO_4( "%s %s (%u) secQueryStatus=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, secQueryStatus );
+ #endif
+ if(secQueryStatus==ESecurityQueryActive)
+ {
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(LOCKAPP)CLockAppDevicelockControl::ActivationAllowedL() Asking some other security code. No locking possible."));
+ #endif
+ return EFalse;
+ }
+ }
+ }
+
+ TInt lightStatus=EForcedLightsUninitialized;
+ RProperty::Get(KPSUidCoreApplicationUIs,KLightsVTForcedLightsOn,lightStatus );
+ //If display is forced on. don't lock
+ if(lightStatus == EForcedLightsOn )
+ {
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(LOCKAPP)CLockAppDevicelockControl::ActivationAllowedL() Display is forced on deivce not locked"));
+ #endif
+ return EFalse;
+ }
+
+ // first check ETEL side - and ask sec code if needed
+ if ( !ETelActivationAllowed() )
+ {
+ return EFalse;
+ }
+
+ if ( IsPinBlocked( ) )
+ {
+ return EFalse;
+ }
+
+ TBool ret(EFalse);
+ TInt sysState(0);
+ RProperty::Get( KPSUidStartup, KPSGlobalSystemState, sysState );
+ //If NOT in CDMA the Autolock should come up only after the phone has booted up.
+ if ( iFeatureProtocolCdma || IsHiddenReset( ) )
+ {
+ if ( sysState == ESwStateNormalRfOn ||
+ sysState == ESwStateNormalRfOff ||
+ sysState == ESwStateCriticalPhaseOK )
+ {
+ INFO( "CLockAppDevicelockControl::ActivationAllowedL - Locked after Hidden Reset" );
+ ret = ETrue;
+ }
+ }
+ else
+ {
+ if ( sysState == ESwStateNormalRfOn || sysState == ESwStateNormalRfOff )
+ {
+ ret = ETrue;
+ }
+ }
+
+ if ( IsBitFieldSet( iStateControl.EnvironmentStatus( ), KLockAppEnvPhonecallOngoing ) && !TarmAdminFlag(EFalse) )
+ {
+ if ( aReason == EDevicelockRemote )
+ {
+ INFO( "CLockAppDevicelockControl::ActivationAllowedL - remote lock allowed" );
+ ret = ETrue;
+ }
+ }
+ return ret;
+ }
+
+// ---------------------------------------------------------------------------
+// Check weather its allowed to deactivate the control
+// ---------------------------------------------------------------------------
+TBool CLockAppDevicelockControl::DeActivationAllowedL()
+ {
+ if ( iShowingSecCodeQuery )
+ {
+ return ETrue;
+ }
+ else
+ {
+ return EFalse;
+ }
+ }
+
+// ---------------------------------------------------------------------------
+// Set the devicelocking reason
+// ---------------------------------------------------------------------------
+void CLockAppDevicelockControl::SetLockingReason( TDevicelockReason aReason )
+ {
+#ifndef RD_REMOTELOCK
+ iPSAutolockState->SetKeyValue( EAutolockOn );
+#else
+ switch ( aReason )
+ {
+ case EDevicelockManual:
+ iPSAutolockState->SetKeyValue( EManualLocked );
+ break;
+ case EDevicelockRemote:
+ iPSAutolockState->SetKeyValue( ERemoteLocked );
+ break;
+ case EDevicelockTimer:
+ iPSAutolockState->SetKeyValue( ETimerLocked );
+ break;
+ default:
+ DoPanic( ELockIllegalState );
+ }
+#endif // RD_REMOTELOCK
+ }
+
+// ---------------------------------------------------------------------------
+// Activate control
+// ---------------------------------------------------------------------------
+void CLockAppDevicelockControl::HandleActivateEventL( TUint aEnvMask )
+ {
+ INFO_1("CLockAppDevicelockControl::HandleActivateEventL - aEnvMask: %d", aEnvMask);
+
+ CLockAppBaseControl::HandleActivateEventL( aEnvMask );
+
+ if ( IsBitFieldSet( aEnvMask, KLockAppEnvScreenSaverOn ) )
+ {
+ // if screensaver is on - capture primary keys
+ CapturePrimaryKeys( ETrue );
+ }
+ // capture keys
+ CLockAppKeyCaptureController::CaptureKey( EStdKeyApplication0, EKeyApplication0, EKeyCaptureAllEvents ); // App key
+ CLockAppKeyCaptureController::CaptureKey( EStdKeyDevice2, EKeyDevice2, EKeyCaptureAllEvents ); // Power key (for lights)
+ CLockAppKeyCaptureController::CaptureKey( EStdKeyDevice6, EKeyDevice6, EKeyCaptureAllEvents ); // Voice key (for lights)
+ CLockAppKeyCaptureController::CaptureKey( EStdKeyNo, EKeyNo, EKeyCaptureAllEvents ); // End key (for Rosetta lights)
+ CLockAppKeyCaptureController::CaptureKey( EStdKeyDeviceF, EKeyDeviceF, EKeyCaptureAllEvents ); // switch key (for touch devices)
+
+ SetPointerEventCapture( ETrue );
+ SetKeyguardIndicatorStateL( ETrue );
+ iContainer->MakeVisible( ETrue ); // maybe not needed - as its in different windowgroup
+ ShowCba( ETrue );
+ ShowStatusPane( ETrue );
+ // close task-list in case it is displayed : fast-swap window
+ iEikonEnv->DismissTaskList( );
+ iCRAutoLockStatus->SetValue( ETrue );
+ }
+
+// ---------------------------------------------------------------------------
+// DeActivate control
+// ---------------------------------------------------------------------------
+void CLockAppDevicelockControl::HandleDeActivateEventL( TUint aEnvMask )
+ {
+ INFO_1("CLockAppDevicelockControl::HandleDeActivateEventL - aEnvMask: %d", aEnvMask);
+
+ CLockAppBaseControl::HandleDeActivateEventL( aEnvMask );
+
+ if ( IsBitFieldSet( aEnvMask, KLockAppEnvScreenSaverOn ) )
+ {
+ // if screensaver is on - uncapture primary keys
+ CapturePrimaryKeys( EFalse );
+ }
+
+ // uncapture keys
+ CLockAppKeyCaptureController::ReleaseKey( EStdKeyApplication0 );
+ CLockAppKeyCaptureController::ReleaseKey( EStdKeyDevice2 );
+ CLockAppKeyCaptureController::ReleaseKey( EStdKeyDevice6 );
+ CLockAppKeyCaptureController::ReleaseKey( EStdKeyNo );
+ CLockAppKeyCaptureController::ReleaseKey( EStdKeyDeviceF );
+
+ SetPointerEventCapture( EFalse );
+ SetKeyguardIndicatorStateL( EFalse );
+ iContainer->MakeVisible( EFalse ); // maybe not needed - as its in different windowgroup
+ ShowCba( EFalse );
+ ShowStatusPane( EFalse );
+ iPSAutolockState->SetKeyValue( EAutolockOff );
+ iCRAutoLockStatus->SetValue( EFalse );
+ }
+
+// ---------------------------------------------------------------------------
+// Handle environment changes (Screensaver, Telephony, etc.)
+// ---------------------------------------------------------------------------
+void CLockAppDevicelockControl::HandleEnvironmentChange( TUint aEnvMask, TUint aEventMask )
+ {
+ INFO_4( "%s %s (%u) aEnvMask=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, aEnvMask );
+ INFO_4( "%s %s (%u) aEventMask=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, aEventMask );
+
+ if ( IsBitFieldSet( aEventMask, KLockAppEnvScreenSaverOn ) )
+ {
+ // screen saver state changed
+ CapturePrimaryKeys( IsBitFieldSet( aEnvMask, KLockAppEnvScreenSaverOn ) );
+ }
+ if ( IsBitFieldSet( aEventMask, KLockAppEnvFPS ) )
+ {
+ TInt lockValue=0;
+ iPSAutolockState->GetKeyValue( lockValue );
+ INFO_4( "%s %s (%u) lockValue=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, lockValue );
+ if(lockValue>EAutolockOff) // device is locked and query is not open
+ {
+ // indicate to TARM that it should not ask for password
+ TInt secUiOriginatedQuery(ESecurityUIsSecUIOriginatedUninitialized);
+ RProperty::Get(KPSUidSecurityUIs, KSecurityUIsSecUIOriginatedQuery, secUiOriginatedQuery);
+ INFO_4( "%s %s (%u) secUiOriginatedQuery=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, secUiOriginatedQuery );
+ RProperty::Set( KPSUidSecurityUIs, KSecurityUIsSecUIOriginatedQuery, ESecurityUIsFpsOriginated );
+
+ HandleUnlockCommandL( );
+ RProperty::Set( KPSUidSecurityUIs, KSecurityUIsSecUIOriginatedQuery, secUiOriginatedQuery ); // reset to initial
+ }
+ else // device needs to be locked. Same happens in keyguard control becasue probably this is never called
+ iStateControl.EnableDevicelockL( EDevicelockManual );
+ }
+ if ( IsBitFieldSet( aEnvMask, KLockAppEnvGrip ) )
+ {
+ INFO_4( "%s %s (%u) iShowingSecCodeQuery=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, iShowingSecCodeQuery );
+ if ( IsBitFieldSet( aEventMask, KLockAppEnvGrip ) ) //Grip opened
+ {
+ if(iShowingSecCodeQuery==EFalse)
+ {
+ TInt lockValue=0;
+ iPSAutolockState->GetKeyValue( lockValue );
+ INFO_4( "%s %s (%u) lockValue=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, lockValue );
+ if(lockValue>EAutolockOff)
+ {
+ // ask unlock code by sending the menu key. This works on touch?
+ TApaTaskList tasklist( iEikonEnv->WsSession() );
+ #define KAknCapServerUid TUid::Uid( 0x10207218 )
+ TApaTask capserver = tasklist.FindApp( KAknCapServerUid );
+ INFO_4( "%s %s (%u) KAknCapServerUid=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, KAknCapServerUid );
+ if( capserver.Exists() )
+ {
+ INFO_4( "%s %s (%u) capserver.Exists() EStdKeyDevice0=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, EStdKeyDevice0 );
+ TKeyEvent key;
+ key.iCode = EKeyDevice0;
+ key.iModifiers = 0;
+ key.iRepeats = 0;
+ key.iScanCode = EStdKeyDevice0;
+ capserver.SendKey( key );
+ }
+ }
+ }
+ }
+ else
+ {
+ if(iShowingSecCodeQuery==EFalse)
+ {
+ //the device lock query is on top
+ //generate cancel key event
+ const TInt KCancelKeyCode( 165 );
+ INFO_4( "%s %s (%u) KCancelKeyCode=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, KCancelKeyCode );
+
+ TRawEvent rawEvent;
+ rawEvent.Set( TRawEvent::EKeyDown, KCancelKeyCode );
+ iEikonEnv->WsSession().SimulateRawEvent( rawEvent );
+ }
+ }
+ }
+ }
+
+// ---------------------------------------------------------------------------
+// Handle all Central Repository observer callbacks.
+// ---------------------------------------------------------------------------
+void CLockAppDevicelockControl::HandleCenRepNotify(TUid /*aCenRepUid*/, TUint32 aKeyId, TInt aValue )
+ {
+ INFO_4( "%s %s (%u) aKeyId=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, aKeyId );
+ INFO_4( "%s %s (%u) aValue=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, aValue );
+ switch ( aKeyId )
+ {
+ case KSettingsAutoLockTime:
+ {
+ INFO_1( "CLockAppDevicelockControl::HandleCenRepNotify - KSettingsAutoLockTime = %d", aValue );
+ ResetInactivityTimeout( );
+ }
+ break;
+ default:
+ break;
+ }
+ }
+
+// ---------------------------------------------------------------------------
+// Handle all Publish & Subscribe observer callbacks.
+// ---------------------------------------------------------------------------
+void CLockAppDevicelockControl::HandlePubSubNotify(TUid aPubSubUid, TUint aKeyId, TInt aValue )
+ {
+ INFO_4( "%s %s (%u) KPSUidCoreApplicationUIs=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, KPSUidCoreApplicationUIs );
+ INFO_4( "%s %s (%u) aKeyId=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, aKeyId );
+ INFO_4( "%s %s (%u) aValue=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, aValue );
+ if ( aPubSubUid == KPSUidCoreApplicationUIs )
+ {
+ switch ( aKeyId )
+ {
+ case KCoreAppUIsAutolockStatus:
+ {
+ INFO_1( "CLockAppDevicelockControl::HandlePubSubNotify - KCoreAppUIsAutolockStatus = %d", aValue );
+ // Autolock used to react to this PubSub key - but its unsafe and
+ // in future API will be used, and the key will be published by Lockapp
+ INFO_1( "CLockAppDevicelockControl::HandlePubSubNotify - nothing done. LockApp reacts only to API = %d", aValue );
+ }
+ break;
+ default:
+ break;
+ }
+ }
+ }
+
+// ---------------------------------------------------------------------------
+// Devicelock UI key events are handled trough here.
+// ---------------------------------------------------------------------------
+TKeyResponse CLockAppDevicelockControl::OfferKeyEventL(const TKeyEvent& aKeyEvent, TEventCode aType )
+ {
+ INFO_4( "%s (%u) aKeyEvent.iCode=%x aType=%x", __FILE__, __LINE__, aKeyEvent.iCode, aType );
+ INFO_4( "%s %s (%u) iActive=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, iActive );
+ if ( iActive )
+ {
+ if(AknLayoutUtils::PenEnabled())
+ {
+ if(aKeyEvent.iCode == EKeyDeviceF) // any Type
+ {
+ HandleUnlockCommandL( );
+ }
+ }
+ if ( aType == EEventKeyDown )
+ {
+ if ( !iShowingSecCodeQuery )
+ {
+ switch ( iKeyPattern->HandleKeyEvent( aKeyEvent.iScanCode ) )
+ {
+ case EPatternPrimaryMatch:
+ HandleUnlockCommandL( );
+ break;
+ default:
+ break;
+ }
+ }
+ }
+ }
+ return EKeyWasConsumed;
+ }
+
+// ---------------------------------------------------------------------------
+// Handle unlock command
+// ---------------------------------------------------------------------------
+void CLockAppDevicelockControl::HandleUnlockCommandL( )
+ {
+ INFO( "CLockAppDevicelockControl::HandleUnlockCommandL" );
+ // inform sysap to put lights on left soft key press
+ SendMessageToSysAp( EEikKeyLockLightsOnRequest );
+ INFO_4( "%s %s (%u) iPhoneInitialized=%x -> 10 ", __FILE__, __PRETTY_FUNCTION__, __LINE__, iPhoneInitialized );
+ iPhoneInitialized=10;
+ CSecurityHandler* handler = new (ELeave) CSecurityHandler( iPhone );
+ INFO_4( "%s %s (%u) got handler=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, 1 );
+ CleanupStack::PushL( handler );
+ TSecUi::InitializeLibL( );
+ INFO_4( "%s %s (%u) got TSecUi::InitializeLibL=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, 1 );
+ iShowingSecCodeQuery = ETrue;
+ TRAPD(err, {
+ INFO_4( "%s %s (%u) before AskSecCodeInAutoLockL=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, 1 );
+ TBool ret = handler->AskSecCodeInAutoLockL();
+ INFO_4( "%s %s (%u) after AskSecCodeInAutoLockL=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, ret );
+ INFO_1( "CLockAppDevicelockControl::HandleUnlockCommandL - AskSecCodeInAutoLockL = %d", ret );
+ if ( ret )
+ {
+ iStateControl.DisableDevicelockL();
+ }
+ })
+ ERROR(err, "CLockAppDevicelockControl::HandleUnlockCommandL - AskSecCodeInAutoLockL");
+ iShowingSecCodeQuery = EFalse;
+ TSecUi::UnInitializeLib( );
+ CleanupStack::PopAndDestroy( handler );
+ }
+
+// ---------------------------------------------------------------------------
+// Get autolock timeout (in seconds)
+// ---------------------------------------------------------------------------
+TInt CLockAppDevicelockControl::GetAutoLockTimeout( )
+ {
+ TInt timeoutInMinutes = 0;
+ iCRAutoLockTime->GetValue( timeoutInMinutes );
+ return timeoutInMinutes * 60;
+ }
+
+// ----------------------------------------------------------
+// Starts monitoring user activity
+// ----------------------------------------------------------
+void CLockAppDevicelockControl::StartActivityMonitoringL( )
+ {
+ __ASSERT_DEBUG( iActivityManager, DoPanic(ELockIllegalState));
+ if ( iActivityManager && !iActivityManager->IsActive() )
+ {
+ TInt value = GetAutoLockTimeout( );
+ INFO_1( "CLockAppDevicelockControl::StartActivityMonitoringL - %d sec", value);
+ if ( value )
+ {
+ iActivityManager->Start( value,
+ TCallBack( HandleInactiveEventL, this ),
+ TCallBack( HandleActiveEventL, this ) );
+ }
+ else
+ {
+ iActivityManager->Start( KAutoDeviceLockOff,
+ TCallBack(HandleInactiveEventL, this ),
+ TCallBack(HandleActiveEventL, this ) );
+ }
+ }
+ }
+
+// ----------------------------------------------------------
+// Gets autolock period and starts monitoring user activity
+// ----------------------------------------------------------
+void CLockAppDevicelockControl::ResetInactivityTimeout( )
+ {
+ __ASSERT_DEBUG( iActivityManager, DoPanic(ELockIllegalState));
+ if ( iActivityManager )
+ {
+ TInt value = GetAutoLockTimeout( );
+ INFO_1( "CLockAppDevicelockControl::ResetInactivityTimeout - %d sec", value);
+ if ( value )
+ {
+ iActivityManager->SetInactivityTimeout( value );
+ }
+ else
+ {
+ iActivityManager->SetInactivityTimeout( KAutoDeviceLockOff );
+ }
+ }
+ }
+
+// ----------------------------------------------------------
+// Stop monitoring user activity.
+// ----------------------------------------------------------
+void CLockAppDevicelockControl::StopActivityMonitoring( )
+ {
+ __ASSERT_DEBUG( iActivityManager, DoPanic(ELockIllegalState));
+ if ( iActivityManager )
+ {
+ iActivityManager->Cancel( );
+ }
+ }
+
+// ----------------------------------------------------------
+// Handle Active event. Called by ActivityManager
+// ----------------------------------------------------------
+TInt CLockAppDevicelockControl::HandleActiveEventL(TAny* /*aPtr*/)
+ {
+ return KErrNone;
+ }
+
+// ----------------------------------------------------------
+// Handles InActive event. Called by ActivityManager
+// ----------------------------------------------------------
+TInt CLockAppDevicelockControl::HandleInactiveEventL(TAny* aPtr )
+ {
+ CLockAppDevicelockControl* devicelock = STATIC_CAST(CLockAppDevicelockControl*, aPtr);
+ if ( devicelock->GetAutoLockTimeout( ) )
+ {
+ devicelock->iStateControl.EnableDevicelockL( EDevicelockTimer );
+ }
+ return KErrNone;
+ }
+
+// ---------------------------------------------------------------------------
+// Set custom status pane visible
+// ---------------------------------------------------------------------------
+void CLockAppDevicelockControl::ShowStatusPane( const TBool aVisible )
+ {
+ CEikStatusPane* statuspane = iAvkonAppUi->StatusPane();
+ if ( statuspane )
+ {
+ statuspane->MakeVisible( aVisible );
+ }
+ }
+
+// ---------------------------------------------------------------------------
+// Handle UI commands received from the child controls
+// ---------------------------------------------------------------------------
+void CLockAppDevicelockControl::ProcessCommandL(TInt aCommandId)
+ {
+ INFO_1("CLockAppDevicelockControl::ProcessCommandL : %d ", aCommandId );
+ }
+
+TInt CLockAppDevicelockControl::CountComponentControls() const
+ {
+ return 2;
+ }
+
+CCoeControl* CLockAppDevicelockControl::ComponentControl(TInt aIndex ) const
+ {
+ switch ( aIndex )
+ {
+ case 0:
+ return iCba;
+ case 1:
+ return iContainer;
+ default:
+ return NULL;
+ }
+ }
+
+// ---------------------------------------------------------------------------
+// Notification if layout changes.
+// ---------------------------------------------------------------------------
+void CLockAppDevicelockControl::HandleResourceChange(TInt aType )
+ {
+ if ( aType == KEikDynamicLayoutVariantSwitch && iCba )
+ {
+ TRect screenRect;
+ AknLayoutUtils::LayoutMetricsRect( AknLayoutUtils::EScreen, screenRect );
+ iCba->SetBoundingRect( screenRect );
+ }
+ CCoeControl::HandleResourceChange( aType );
+ }
+
+// END OF FILE
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/securitydialogs/lockapp/src/lockappdocument.cpp Wed Sep 01 12:19:59 2010 +0100
@@ -0,0 +1,67 @@
+/*
+* Copyright (c) 2007 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: LockApp application document class
+ *
+*/
+
+
+#include "lockappappui.h"
+#include "lockappdocument.h"
+
+// ---------------------------------------------------------------------------
+// Standard Symbian OS construction sequence
+// ---------------------------------------------------------------------------
+CLockAppDocument* CLockAppDocument::NewL(CEikApplication& aApp)
+ {
+ CLockAppDocument* self = NewLC(aApp);
+ CleanupStack::Pop(self);
+ return self;
+ }
+
+// ---------------------------------------------------------------------------
+// Standard Symbian OS construction sequence
+// ---------------------------------------------------------------------------
+CLockAppDocument* CLockAppDocument::NewLC(CEikApplication& aApp)
+ {
+ CLockAppDocument* self = new (ELeave) CLockAppDocument(aApp);
+ CleanupStack::PushL(self);
+ self->ConstructL();
+ return self;
+ }
+
+CLockAppDocument::~CLockAppDocument()
+ {
+ // no implementation required
+ }
+
+// ---------------------------------------------------------------------------
+// Create the application user interface, and return a pointer to it,
+// The framework takes ownership of this object.
+// ---------------------------------------------------------------------------
+CEikAppUi* CLockAppDocument::CreateAppUiL()
+ {
+ CEikAppUi* appUi = new (ELeave) CLockAppAppUi;
+ return appUi;
+ }
+
+void CLockAppDocument::ConstructL()
+ {
+ // no implementation required
+ }
+
+CLockAppDocument::CLockAppDocument( CEikApplication& aApp ) :
+ CAknDocument(aApp)
+ {
+ // no implementation required
+ }
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/securitydialogs/lockapp/src/lockappecsdetector.cpp Wed Sep 01 12:19:59 2010 +0100
@@ -0,0 +1,159 @@
+/*
+* Copyright (c) 2007 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: Provides emergency call support for keyguard/devicelock
+ *
+*/
+
+
+#include "lockappecsdetector.h"
+#include "lockappecsnote.h"
+#include "lockapputils.h"
+#include <aknappui.h>
+#include <avkon.rsg>
+
+// ---------------------------------------------------------------------------
+// Standard Symbian OS construction sequence
+// ---------------------------------------------------------------------------
+CLockAppEcsDetector* CLockAppEcsDetector::NewL( )
+ {
+ CLockAppEcsDetector* self = new (ELeave) CLockAppEcsDetector();
+ CleanupStack::PushL( self );
+ self->ConstructL( );
+ CleanupStack::Pop( self );
+ return self;
+ }
+
+// ---------------------------------------------------------------------------
+// Standard C++ constructor
+// ---------------------------------------------------------------------------
+CLockAppEcsDetector::CLockAppEcsDetector( )
+ {
+ }
+
+// ---------------------------------------------------------------------------
+// Constructs the emergency detector and the note.
+// ---------------------------------------------------------------------------
+void CLockAppEcsDetector::ConstructL( )
+ {
+ // emergency call support
+ iEcsDetector = CAknEcsDetector::NewL( );
+ iEcsDetector->SetObserver( this );
+
+ // emergency call note
+ iEcsNote = new (ELeave) CLockAppEcsNote();
+ iEcsNote->ConstructSleepingNoteL( R_AVKON_EMERGENCY_CALL_NOTE );
+ iEcsNote->ButtonGroupContainer().ButtonGroup()->AsControl()->DrawableWindow()->SetOrdinalPosition( 0, 2 );
+
+ // needs to be called for ecs detector to work/receive events.
+ iAvkonAppUi->EventMonitor()->Enable( ETrue );
+ }
+
+// ---------------------------------------------------------------------------
+// Destructor.
+// ---------------------------------------------------------------------------
+CLockAppEcsDetector::~CLockAppEcsDetector( )
+ {
+ delete iEcsDetector;
+ delete iEcsNote;
+ }
+
+// ---------------------------------------------------------------------------
+// Detector starts/stops listening to key events if keys are locked/unlocked.
+// The detector key event queue is always reseted when lock status is changed.
+// ---------------------------------------------------------------------------
+void CLockAppEcsDetector::HandleLockStatusChangedL( TLockStatus aLockStatus )
+ {
+ iEcsDetector->Reset( );
+ switch ( aLockStatus )
+ {
+ case ELockNotActive:
+ {
+ iEcsDetector->CloseEventSource( );
+ }
+ break;
+ case EKeyguardActive:
+ case EDevicelockActive:
+ {
+ iEcsDetector->ConnectToEventSource( );
+ }
+ break;
+ default:
+ DoPanic( ELockUnknownValue );
+ break;
+ }
+ }
+
+// ---------------------------------------------------------------------------
+// The main state controller needs to know if emergency call note is
+// on the screen.
+// ---------------------------------------------------------------------------
+TBool CLockAppEcsDetector::EcsNoteOnScreen( ) const
+ {
+ return iEcsNote->iNoteOnScreen;
+ }
+
+// ---------------------------------------------------------------------------
+// From @c MAknEcsObserver.. Handles changes in emergency the emergency number
+// queue (i.e. if the user has dialed emergency numbers or not).
+// ---------------------------------------------------------------------------
+void CLockAppEcsDetector::HandleEcsEvent( CAknEcsDetector* aEcsDetector,
+ CAknEcsDetector::TState aState )
+ {
+ switch ( aState )
+ {
+ case CAknEcsDetector::ECompleteMatchThenSendKey:
+ // Do nothing since note will be removed on ECallAttempted event
+ break;
+ // user has successfully dialed emergency numbers
+ case CAknEcsDetector::ECompleteMatch:
+ iEcsNote->SetEmergencyNumber( aEcsDetector->CurrentMatch( ) );
+ // Tell sysAp to switch lights on
+ SendMessageToSysAp( EEikEcsQueryLights );
+ iEcsNote->ShowNote( );
+ break;
+ case CAknEcsDetector::EPartialMatch:
+ iEcsNote->SleepNote( );
+ break;
+ case CAknEcsDetector::ECallAttempted:
+ iEcsNote->SleepNote( );
+ break;
+ case CAknEcsDetector::EEmpty:
+ iEcsNote->SleepNote( );
+ break;
+ case CAknEcsDetector::ENoMatch:
+ iEcsNote->SleepNote( );
+ break;
+ default:
+ break;
+ }
+ }
+
+// ---------------------------------------------------------------------------
+// Tests the emergency note ui. Only used for testing purposes,
+// Created, because emergency detector does not work in emulator.
+// ---------------------------------------------------------------------------
+TInt CLockAppEcsDetector::TestEcsNote( )
+ {
+#ifdef _DEBUG
+ HandleEcsEvent( iEcsDetector, CAknEcsDetector::EEmpty );
+ HandleEcsEvent( iEcsDetector, CAknEcsDetector::ENoMatch );
+ HandleEcsEvent( iEcsDetector, CAknEcsDetector::EPartialMatch );
+ HandleEcsEvent( iEcsDetector, CAknEcsDetector::ECompleteMatch );
+ _LIT( NText, "112Test");
+ iEcsNote->SetEmergencyNumber( NText );
+ SendMessageToSysAp( EEikEcsQueryLights );
+ iEcsNote->ShowNote( );
+#endif
+ return KErrNone;
+ }
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/securitydialogs/lockapp/src/lockappecsnote.cpp Wed Sep 01 12:19:59 2010 +0100
@@ -0,0 +1,157 @@
+/*
+* Copyright (c) 2007 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: Emergency number dialog
+ *
+*/
+
+
+#include "lockappecsnote.h"
+#include "lockapputils.h"
+#include <AknUtils.h>
+#include <aknlayoutscalable_avkon.cdl.h>
+#include <aknappui.h>
+#include <AknEcs.h> // for KAknEcsMaxMatchingLength
+
+#include <aknglobalpopupprioritycontroller.h>
+#include <GlobalWindowPriorities.h>
+
+// ---------------------------------------------------------------------------
+// Standard C++ constructor
+// ---------------------------------------------------------------------------
+CLockAppEcsNote::CLockAppEcsNote( ) :
+ iNoteOnScreen(EFalse)
+ {
+ // no implementation required
+ }
+
+// ---------------------------------------------------------------------------
+// Destructor.
+// ---------------------------------------------------------------------------
+CLockAppEcsNote::~CLockAppEcsNote( )
+ {
+#ifdef _GLOBAL_PRIORITY_SUPPORTED
+ AknGlobalPopupPriorityController::RemovePopupPriority(*this);
+#endif
+ }
+
+// ---------------------------------------------------------------------------
+// Emergency note is a sleeping note
+// ---------------------------------------------------------------------------
+void CLockAppEcsNote::ConstructSleepingNoteL(TInt aResourceId )
+ {
+ CAknNoteDialog::ConstructSleepingDialogL( aResourceId );
+#ifdef _GLOBAL_PRIORITY_SUPPORTED
+ // global ui component order is handled trhoug global popup priority controller
+ AknGlobalPopupPriorityController::SetPopupPriorityL( *this, KGlobalWindowPriority_KeyLock );
+#endif
+ }
+
+// ---------------------------------------------------------------------------
+// Show note with time out.
+// ---------------------------------------------------------------------------
+TInt CLockAppEcsNote::ShowNote( )
+ {
+ ReportUserActivity( );
+ iTimeoutInMicroseconds = CAknNoteDialog::EUndefinedTimeout;
+ iTone = CAknNoteDialog::ENoTone;
+ TInt error = KErrNone;
+ if ( !iNoteOnScreen )
+ {
+ error = RouseSleepingDialog( );
+ }
+ iNoteOnScreen = ETrue;
+ // return value not used
+ return error;
+ }
+
+// ---------------------------------------------------------------------------
+// Hide note from screen.
+// ---------------------------------------------------------------------------
+void CLockAppEcsNote::SleepNote( )
+ {
+ if ( iNoteOnScreen )
+ {
+ ExitSleepingDialog( ); // Causes flicker to other notes if called when note is not on screen
+ }
+ iNoteOnScreen = EFalse;
+ }
+
+// ---------------------------------------------------------------------------
+// Emergency dialog consumes all key events it receives.
+// ---------------------------------------------------------------------------
+TKeyResponse CLockAppEcsNote::OfferKeyEventL(const TKeyEvent& /*aKeyEvent*/, TEventCode /*aType*/)
+ {
+ return EKeyWasConsumed;
+ }
+
+// ---------------------------------------------------------------------------
+// Format the emergency number for the dialog text.
+// ---------------------------------------------------------------------------
+void CLockAppEcsNote::SetEmergencyNumber( const TDesC& aMatchedNumber )
+ {
+ TRect mainPaneRect;
+ AknLayoutUtils::LayoutMetricsRect( AknLayoutUtils::EMainPane, mainPaneRect );
+ TAknLayoutRect popupNoteWindow;
+ AknLayoutUtils::TAknCbaLocation cbaLocation( AknLayoutUtils::CbaLocation( ));
+ TInt variety( 0);
+ if ( cbaLocation == AknLayoutUtils::EAknCbaLocationRight )
+ {
+ variety = 5;
+ }
+ else
+ if ( cbaLocation == AknLayoutUtils::EAknCbaLocationLeft )
+ {
+ variety = 8;
+ }
+ else
+ {
+ variety = 2;
+ }
+
+ popupNoteWindow.LayoutRect( mainPaneRect, AknLayoutScalable_Avkon::popup_note_window( variety ) );
+ TAknLayoutText textRect;
+ textRect.LayoutText( popupNoteWindow.Rect( ), AknLayoutScalable_Avkon::popup_note_window_t5(2).LayoutLine( ) );
+
+ // Size of a temporary buffer that contains new lines, spaces and
+ // emergency number for a note.
+ TBuf16<KAknEcsMaxMatchingLength+80> number;
+ number.Append( '\n' );
+ number.Append( '\n' );
+
+ TInt spaceCharWidthInPixels = textRect.Font()->CharWidthInPixels( ' ' );
+ if ( spaceCharWidthInPixels < 1 )
+ {
+ // Avoid divide by zero situation even the space char would have zero length.
+ spaceCharWidthInPixels = 1;
+ }
+
+ TInt length = (textRect.TextRect().Width() - textRect.Font()->TextWidthInPixels(aMatchedNumber))/ spaceCharWidthInPixels;
+
+ const TInt matchedNumberLength = aMatchedNumber.Length( );
+ const TInt numberLength = number.Length( );
+ const TInt numberMaxLength = number.MaxLength( );
+
+ if ( numberLength + length + matchedNumberLength > numberMaxLength )
+ {
+ // To make sure that buffer overflow does not happen.
+ length = numberMaxLength - numberLength - matchedNumberLength;
+ }
+ for (int i = 0; i < length; i++ )
+ {
+ number.Append( ' ' );
+ }
+
+ number.Append( aMatchedNumber );
+ TRAP_IGNORE(SetTextL(number));
+ }
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/securitydialogs/lockapp/src/lockappidlecontrol.cpp Wed Sep 01 12:19:59 2010 +0100
@@ -0,0 +1,223 @@
+/*
+* Copyright (c) 2007 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: Idle (unlocked) UI
+ *
+*/
+
+
+#include "lockappidlecontrol.h"
+#include "lockappstatecontrolinterface.h"
+#include "lockapputils.h"
+#include "lockapplockednote.h" // keyguard notes
+#include "lockappkeycapturecontroller.h"
+
+#include <avkon.rsg> // general avkon resources
+
+#include <aknnotpi.rsg> // keyguard spesific resources
+
+#include <featmgr.h> // feature manager
+
+// from keyguard ui spesification, 6 sec.
+const TInt KAknOfferKeyguardTimeout = 6000000;
+
+// Asterisk key code for the keylock
+const TUint KStdKeyAsterisk = 42;
+//const TUint KAknChineseAsterisk = 0xFF0A;
+
+// ---------------------------------------------------------------------------
+// Standard Symbian OS construction sequence
+// ---------------------------------------------------------------------------
+CLockAppIdleControl* CLockAppIdleControl::NewL(MLockAppStateControl& aStateControl )
+ {
+ CLockAppIdleControl* self = new (ELeave) CLockAppIdleControl( aStateControl );
+ CleanupStack::PushL( self );
+ self->ConstructL( );
+ CleanupStack::Pop( self );
+ return self;
+ }
+
+// ---------------------------------------------------------------------------
+// Constructor passes the reference of the main state control.
+// ---------------------------------------------------------------------------
+CLockAppIdleControl::CLockAppIdleControl( MLockAppStateControl& aStateControl ) :
+ CLockAppBaseControl( aStateControl )
+ {
+ }
+
+// ---------------------------------------------------------------------------
+// Destructor.
+// ---------------------------------------------------------------------------
+CLockAppIdleControl::~CLockAppIdleControl( )
+ {
+ delete iOfferLockNote;
+ }
+
+// ---------------------------------------------------------------------------
+// Idle UI constructor reserves localized resources, configures itself
+// using CenRep and FeatureManager and reserves child controls.
+// ---------------------------------------------------------------------------
+void CLockAppIdleControl::ConstructL( )
+ {
+ INFO( "CLockAppIdleControl::ConstructL started" );
+ CLockAppBaseControl::ConstructL( );
+
+ iOfferLockNote = new (ELeave) CLockAppLockedNote(this);
+ iOfferLockNote->ConstructSleepingNoteL( R_KEYLOCK_OFFER_LOCK_NOTE );
+ iOfferLockNote->ButtonGroupContainer().ButtonGroup()->AsControl()->DrawableWindow()->SetOrdinalPosition( 0, 2 );
+
+ // Setup key pattern matcher
+ if ( !SetupKeyPatternsWithPolicyL( EPolicyActivateKeyguard ) )
+ {
+ INFO( "CLockAppIdleControl::ConstructL - No CenRep policy defined" );
+ iKeyPattern->AddPattern( EStdKeyDevice0, KStdKeyAsterisk ); // LSK + *
+ }
+#ifdef __WINS__
+ iKeyPattern->AddPattern( EStdKeyDevice0, EStdKeyNkpAsterisk ); // LSK + *
+#endif
+
+ INFO( "CLockAppIdleControl::ConstructL completed" );
+ }
+
+// ---------------------------------------------------------------------------
+// Offers keylock.
+// ---------------------------------------------------------------------------
+void CLockAppIdleControl::OfferKeyLock( )
+ {
+ ShowNote( iOfferLockNote, (CAknNoteDialog::TTimeout)KAknOfferKeyguardTimeout, CAknNoteDialog::ENoTone );
+ }
+
+// ---------------------------------------------------------------------------
+// Cancels offering keylock.
+// ---------------------------------------------------------------------------
+void CLockAppIdleControl::CancelOfferKeyLock( )
+ {
+ CancelNote( );
+ }
+
+// ---------------------------------------------------------------------------
+// Activate control
+// ---------------------------------------------------------------------------
+void CLockAppIdleControl::HandleActivateEventL( TUint aEnvMask )
+ {
+ RDebug::Printf( "%s %s (%u) value=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, 0 );
+ CLockAppBaseControl::HandleActivateEventL( aEnvMask );
+ }
+
+// ---------------------------------------------------------------------------
+// DeActivate control
+// ---------------------------------------------------------------------------
+void CLockAppIdleControl::HandleDeActivateEventL( TUint aEnvMask )
+ {
+ CLockAppBaseControl::HandleDeActivateEventL( aEnvMask );
+ CancelOfferKeyLock( );
+ }
+
+// ---------------------------------------------------------------------------
+// Idle UI key events are handled trough here.
+// ---------------------------------------------------------------------------
+TKeyResponse CLockAppIdleControl::OfferKeyEventL(const TKeyEvent& aKeyEvent, TEventCode /*aType*/ )
+ {
+ RDebug::Printf( "%s %s (%u) aKeyEvent.iCode=%x 1=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, aKeyEvent.iCode, 1 );
+ TKeyResponse keyResponse = EKeyWasNotConsumed;
+ if ( iActive )
+ {
+ if ( iOfferLockNote->IsVisible( ) )
+ {
+ // if keylock has been offered
+ switch ( aKeyEvent.iCode )
+ {
+ case EKeyOK:
+ iStateControl.EnableKeyguardL( ETrue );
+ keyResponse = EKeyWasConsumed;
+ break;
+ case EKeyLeftArrow:
+ case EKeyRightArrow:
+ case EKeyUpArrow:
+ case EKeyDownArrow:
+ case EKeyApplication:
+ keyResponse = EKeyWasConsumed;
+ break;
+ default:
+ break;
+ }
+ }
+ else
+ {
+ // keys pressed normally in idle - however keys are not captured
+ // this is where locking policy could be monitored to check keyguard activation
+ /*if ( aType == EEventKeyDown )
+ {
+ switch ( iKeyPattern->HandleKeyEvent( aKeyEvent.iScanCode ) )
+ {
+ case EPatternNoMatch:
+ case EPatternPrimaryMatch:
+ break;
+ case EPatternSecondaryMatch:
+ iStateControl.EnableKeyguardL( ETrue );
+ keyResponse = EKeyWasConsumed;
+ break;
+ default:
+ break;
+ }
+ }
+ */
+ }
+ }
+ return keyResponse;
+ }
+
+// ---------------------------------------------------------------------------
+// Handle UI commands received from the child controls
+// ---------------------------------------------------------------------------
+void CLockAppIdleControl::ProcessCommandL(TInt aCommandId )
+ {
+ // handle command
+ RDebug::Printf( "%s %s (%u) value=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, 0 );
+ switch ( aCommandId )
+ {
+ case EAknSoftkeyLock:
+ {
+ // user has accepted offer keyguard enquiry - lock keys
+ iStateControl.EnableKeyguardL( ETrue );
+ }
+ break;
+ case EAknSoftkeyExit:
+ case KNoteCmdFocusLost:
+ {
+ // user has declined offer keyguard enquiry - cancel offer
+ CancelOfferKeyLock( );
+ }
+ break;
+ default:
+ break;
+ }
+ }
+
+TInt CLockAppIdleControl::CountComponentControls( ) const
+ {
+ return 0;
+ }
+
+CCoeControl* CLockAppIdleControl::ComponentControl(TInt /*aIndex*/) const
+ {
+ return NULL;
+ }
+
+// ---------------------------------------------------------------------------
+// Notification if layout changes.
+// ---------------------------------------------------------------------------
+void CLockAppIdleControl::HandleResourceChange(TInt aType )
+ {
+ CCoeControl::HandleResourceChange( aType );
+ }
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/securitydialogs/lockapp/src/lockappkeycapturecontroller.cpp Wed Sep 01 12:19:59 2010 +0100
@@ -0,0 +1,224 @@
+/*
+* Copyright (c) 2007 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: Key capture utility
+ *
+*/
+
+
+// INCLUDE FILES
+#include "lockappkeycapturecontroller.h"
+#include <w32std.h>
+
+// ================= STATIC MEMBERS =========================
+
+CLockAppKeyCaptureController* CLockAppKeyCaptureController::instance = NULL;
+
+
+// ================= STATIC FUNCTIONS =======================
+
+// ---------------------------------------------------------
+// Initializes the key capture utility by creating an instance of it
+// ---------------------------------------------------------
+CLockAppKeyCaptureController* CLockAppKeyCaptureController::InitL( RWindowGroup& aWindowGroup )
+ {
+ if ( !instance )
+ {
+ instance = new ( ELeave ) CLockAppKeyCaptureController( aWindowGroup );
+ }
+ return instance;
+ }
+
+// ---------------------------------------------------------
+// Destroys the key capture utility's instance
+// ---------------------------------------------------------
+void CLockAppKeyCaptureController::Destroy( )
+ {
+ if ( instance )
+ {
+ delete instance;
+ instance = NULL;
+ }
+ }
+
+// ---------------------------------------------------------
+// Capture a key
+// ---------------------------------------------------------
+void CLockAppKeyCaptureController::CaptureKey( TUint32 aKey, TUint32 aKeyCode, TPhoneKeyCaptureType aType )
+ {
+ RDebug::Printf( "%s %s (%u) aKey=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, aKey );
+ RDebug::Printf( "%s %s (%u) aKeyCode=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, aKeyCode );
+ RDebug::Printf( "%s %s (%u) aType=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, aType );
+
+ if ( instance )
+ {
+ instance->StartCapturingKey( aKey, aKeyCode, aType );
+ }
+ }
+
+// ---------------------------------------------------------
+// Release a key (previously captured)
+// ---------------------------------------------------------
+void CLockAppKeyCaptureController::ReleaseKey( TUint32 aKey )
+ {
+ RDebug::Printf( "%s %s (%u) aKey=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, aKey );
+
+ if ( instance )
+ {
+ instance->StopCapturingKey( aKey );
+ }
+ }
+
+// ================= INSTANCE FUNCTIONS ============================
+
+// ---------------------------------------------------------
+// Private default constructor
+// ---------------------------------------------------------
+CLockAppKeyCaptureController::CLockAppKeyCaptureController( RWindowGroup& aWindowGroup ) :
+ iWindowGroup( aWindowGroup)
+ {
+ }
+
+// ---------------------------------------------------------
+// Private destructor
+// ---------------------------------------------------------
+CLockAppKeyCaptureController::~CLockAppKeyCaptureController( )
+ {
+ RDebug::Printf( "%s %s (%u) value=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, 0 );
+
+ // should we have any captured keys, stop capturing now
+ TInt capturedKeyCount = iCapturedKeys.Count( );
+ for (TInt i = 0; i < capturedKeyCount; i++ )
+ {
+ StopKeyCapture( iCapturedKeys[i] );
+ }
+ iCapturedKeys.Close( );
+ }
+
+// ---------------------------------------------------------
+// Starts capturing a key
+// ---------------------------------------------------------
+void CLockAppKeyCaptureController::StartCapturingKey( TUint32 aKey, TUint32 aKeyCode, TPhoneKeyCaptureType aType )
+ {
+ TInt32 handle = KErrNotFound;
+ RDebug::Printf( "%s %s (%u) aKey=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, aKey );
+ RDebug::Printf( "%s %s (%u) aKeyCode=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, aKeyCode );
+ RDebug::Printf( "%s %s (%u) aType=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, aType );
+
+ if ( !IsKeyCaptured( aKey ) )
+ {
+ TPhoneKeyCapture keyCapture;
+ keyCapture.iKey = (TStdScanCode) aKey;
+ keyCapture.iKeyCode = (TKeyCode) aKeyCode;
+ keyCapture.iHandle = 0; // set as initial value
+ keyCapture.iHandleForUpAndDown = 0; // set as initial value
+
+ switch( aType )
+ {
+ case EKeyCaptureEvent:
+ keyCapture.iType = EKeyCaptureEvent;
+ keyCapture.iHandle = iWindowGroup.CaptureKey( keyCapture.iKeyCode, 0, 0 );
+ handle = keyCapture.iHandle;
+ break;
+ case EKeyCaptureUpAndDownEvents:
+ keyCapture.iType = EKeyCaptureUpAndDownEvents;
+ keyCapture.iHandleForUpAndDown = iWindowGroup.CaptureKeyUpAndDowns( keyCapture.iKey, 0, 0 );
+ handle = keyCapture.iHandleForUpAndDown;
+ break;
+ default: // EKeyCaptureAllEvents
+ {
+ keyCapture.iType = EKeyCaptureAllEvents;
+ keyCapture.iHandle = iWindowGroup.CaptureKey( keyCapture.iKeyCode, 0, 0 );
+ if ( keyCapture.iHandle >= 0 )
+ {
+ keyCapture.iHandleForUpAndDown = iWindowGroup.CaptureKeyUpAndDowns( keyCapture.iKey, 0, 0 );
+ if ( keyCapture.iHandleForUpAndDown < 0 )
+ {
+ iWindowGroup.CancelCaptureKey( keyCapture.iHandle );
+ }
+ handle = keyCapture.iHandleForUpAndDown;
+ }
+ break;
+ }
+ }
+
+ RDebug::Printf( "CLockAppKeyCaptureController::StartCapturingKey - handle: 0x%08x", handle );
+
+ if ( handle >= 0 )
+ {
+ if ( iCapturedKeys.Append( keyCapture )!= KErrNone )
+ {
+ StopKeyCapture( keyCapture );
+ }
+ }
+ }
+ }
+
+// ---------------------------------------------------------
+// Stops capturing a key
+// ---------------------------------------------------------
+void CLockAppKeyCaptureController::StopCapturingKey( TUint32 aKey )
+ {
+ RDebug::Printf( "%s %s (%u) aKey=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, aKey );
+ const TInt capturedKeyCount = iCapturedKeys.Count( );
+ TBool foundKey = EFalse;
+ for (TInt i = 0; ( i < capturedKeyCount ) && !foundKey; i++ )
+ {
+ if ( iCapturedKeys[i].iKey == aKey )
+ {
+ foundKey = ETrue;
+ StopKeyCapture( iCapturedKeys[i] );
+ iCapturedKeys.Remove( i );
+ }
+ }
+ }
+
+// ---------------------------------------------------------
+// May be used to ask whether a key has been set to be captured
+// ---------------------------------------------------------
+TBool CLockAppKeyCaptureController::IsKeyCaptured( TUint32 aKey ) const
+ {
+ RDebug::Printf( "%s %s (%u) aKey=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, aKey );
+ const TInt capturedKeyCount = iCapturedKeys.Count( );
+ TBool isCaptured = EFalse;
+ for (TInt i = 0; ( i < capturedKeyCount ) && !isCaptured; i++ )
+ {
+ isCaptured = iCapturedKeys[i].iKey == aKey;
+ }
+ return isCaptured;
+ }
+
+// ---------------------------------------------------------
+// Stops capturing a key
+// ---------------------------------------------------------
+void CLockAppKeyCaptureController::StopKeyCapture( TPhoneKeyCapture aKeyCapture )
+ {
+ RDebug::Printf( "%s %s (%u) value=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, 0 );
+ switch ( aKeyCapture.iType )
+ {
+ case EKeyCaptureEvent:
+ iWindowGroup.CancelCaptureKey( aKeyCapture.iHandle );
+ break;
+ case EKeyCaptureUpAndDownEvents:
+ iWindowGroup.CancelCaptureKeyUpAndDowns( aKeyCapture.iHandleForUpAndDown );
+ break;
+ default: // EPhoneKeyCaptureAllEvents
+ {
+ iWindowGroup.CancelCaptureKey( aKeyCapture.iHandle );
+ iWindowGroup.CancelCaptureKeyUpAndDowns( aKeyCapture.iHandleForUpAndDown );
+ break;
+ }
+ }
+ }
+
+// end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/securitydialogs/lockapp/src/lockappkeyguardcontrol.cpp Wed Sep 01 12:19:59 2010 +0100
@@ -0,0 +1,695 @@
+/*
+* Copyright (c) 2007 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: Keyguard UI
+ *
+*/
+
+
+#include "lockappkeyguardcontrol.h"
+#include "lockappstatecontrolinterface.h"
+#include "lockappcenrepobserver.h"
+#include "lockapppubsubobserver.h"
+#include "lockapputils.h"
+#include "lockapplockednote.h" // keyguard notes
+#include "lockappkeycapturecontroller.h"
+
+#include <avkon.rsg> // general avkon resources
+#include <aknnotpi.rsg> // keyguard spesific resources
+#include <AknUtils.h>
+#include <activitymanager.h>
+// this is not needed
+// #include <SecondaryDisplay/AknSecondaryDisplayDefs.h> // publishing keyguard notes to secondary display
+#include <featmgr.h> // feature manager
+#include <eikcba.h> // keyguard soft buttons
+#include <eikspane.h>
+
+#include "AutolockPrivateCRKeys.h"
+#include <settingsinternalcrkeys.h>
+#include <ScreensaverInternalPSKeys.h>
+#include <hwrmdomainpskeys.h>
+#include <activeidle2domainpskeys.h>
+//#include <CoreApplicationUIsPrivateCRKeys.h> TODO remove
+#include <coreapplicationuisdomainpskeys.h>
+#include <ctsydomainpskeys.h>
+#include <startupdomainpskeys.h>
+
+// Asterisk key's scan code for the keylock
+const TUint KStdKeyAsterisk = 42;
+//const TUint KAknChineseAsterisk = 0xFF0A;
+
+// timeout defined in keyguard ui specification custom value
+// since avkon note TTimeout values don't support 1 second timeout
+const TInt KKeyLockCustomShortTimeout = 1000000;
+
+// Auto Keyguard Off value
+const TInt KAutoKeyguardOff( 60000 );
+
+// Flip open value
+const TInt KFlipOpen = 1;
+
+// Screensaver started fron idle status value
+const TInt KSsStartedFromIdle = 1;
+
+// ---------------------------------------------------------------------------
+// Standard Symbian OS construction sequence
+// ---------------------------------------------------------------------------
+CLockAppKeyguardControl* CLockAppKeyguardControl::NewL(MLockAppStateControl& aStateControl )
+ {
+ CLockAppKeyguardControl* self = new (ELeave) CLockAppKeyguardControl( aStateControl );
+ CleanupStack::PushL( self );
+ self->ConstructL( );
+ CleanupStack::Pop( self );
+ return self;
+ }
+
+// ---------------------------------------------------------------------------
+// Notes, cba and localized resources are freed in Keyguard UI destruction.
+// ---------------------------------------------------------------------------
+CLockAppKeyguardControl::~CLockAppKeyguardControl( )
+ {
+#ifdef RD_AUTO_KEYGUARD
+ if ( iActivityManager )
+ {
+ iActivityManager->Cancel( );
+ delete iActivityManager;
+ iActivityManager = NULL;
+ }
+ // CenRep observers
+ if ( iCRAutoKeyguardTime )
+ {
+ delete iCRAutoKeyguardTime;
+ iCRAutoKeyguardTime = NULL;
+ }
+#endif //RD_AUTO_KEYGUARD
+ if ( iCRPersistentKeyguardStatus )
+ {
+ delete iCRPersistentKeyguardStatus;
+ iCRPersistentKeyguardStatus = NULL;
+ }
+ if ( iPSStartupObserver )
+ {
+ delete iPSStartupObserver;
+ iPSStartupObserver = NULL;
+ }
+ // child notes
+ delete iConfirmationNote;
+ delete iLockedNote;
+ delete iKeypadUnlockedNote;
+ delete iKeypadLockedNote;
+ }
+
+// ---------------------------------------------------------------------------
+// Constructor passes the reference to the main state control.
+// ---------------------------------------------------------------------------
+CLockAppKeyguardControl::CLockAppKeyguardControl(MLockAppStateControl& aStateControl ) :
+ CLockAppBaseControl(aStateControl)
+ {
+ }
+
+// ---------------------------------------------------------------------------
+// Keyguard UI constructor reserves localized resources, configures itself
+// using CenRep and FeatureManager and reserves child controls.
+// ---------------------------------------------------------------------------
+void CLockAppKeyguardControl::ConstructL( )
+ {
+ INFO( "CLockAppKeyguardControl::ConstructL started" );
+ CLockAppBaseControl::ConstructL( );
+
+ // feature manager is used for determining if the phone is a slider
+ TBool aFeatureKeypadNoSlider(ETrue);
+ FeatureManager::InitializeLibL( );
+ aFeatureKeypadNoSlider = FeatureManager::FeatureSupported( KFeatureIdKeypadNoSlider );
+ INFO_1("CLockAppKeyguardControl::ConstructL - aFeatureKeypadNoSlider: %d", aFeatureKeypadNoSlider);
+ FeatureManager::UnInitializeLib( );
+
+ // keyguard hardware switch support
+ CRepository* repository = CRepository::NewLC( KCRUidLockConf );
+ TInt hardwareSupport(0);
+ repository->Get( KKeyguardHardwareConf, hardwareSupport );
+ CleanupStack::PopAndDestroy( repository );
+ iHardwareSupport = TLockHardware( hardwareSupport );
+ iHardwareSupport = TLockHardware( 0 );
+
+ TBool touchEnabled( AknLayoutUtils::PenEnabled() );
+
+ // Cba control
+ iCba = CEikButtonGroupContainer::NewL( CEikButtonGroupContainer::ECba,
+ CEikButtonGroupContainer::EHorizontal,
+ this,
+ touchEnabled ? R_AVKON_SOFTKEYS_EMPTY :
+ R_KEYLOCK_SOFTKEYS_UNLOCK_EMPTY );
+ TRect screenRect;
+ AknLayoutUtils::LayoutMetricsRect( AknLayoutUtils::EScreen, screenRect );
+ iCba->SetBoundingRect( screenRect );
+ iCba->MakeVisible( EFalse );
+
+ // Construct Keyguard Notes
+ iKeypadLockedNote = new (ELeave) CLockAppLockedNote();
+ iKeypadLockedNote->ConstructSleepingNoteL( touchEnabled ? R_KEYLOCK_NOTE_DISPLAY_LOCK_ON_TOUCH :
+ R_KEYLOCK_NOTE_LOCK_ON );
+ iKeypadLockedNote->ButtonGroupContainer().ButtonGroup()->AsControl()->DrawableWindow()->SetOrdinalPosition( 0, 2 );
+ // this is not needed
+ // iKeypadLockedNote->PublishDialogL( EAknKeysLockedNote );
+
+ iKeypadUnlockedNote = new (ELeave) CLockAppLockedNote();
+ iKeypadUnlockedNote->ConstructSleepingNoteL( touchEnabled ? R_KEYLOCK_NOTE_DISPLAY_LOCK_OFF_TOUCH :
+ R_KEYLOCK_NOTE_LOCK_OFF );
+ iKeypadUnlockedNote->ButtonGroupContainer().ButtonGroup()->AsControl()->DrawableWindow()->SetOrdinalPosition( 0, 2 );
+ // this is not needed
+ // iKeypadUnlockedNote->PublishDialogL( EAknKeysReleasedNote );
+
+ iLockedNote = new (ELeave) CLockAppLockedNote();
+ if ( touchEnabled )
+ {
+ iLockedNote->ConstructSleepingNoteL( R_KEYLOCK_NOTE_DISPLAY_LOCKED_TOUCH );
+ }
+ else
+ {
+ switch ( iHardwareSupport )
+ {
+ case EKeyguardOnePositionSwitch:
+ case EKeyguardTwoPositionSwitch:
+ {
+ iLockedNote->ConstructSleepingNoteL( R_KEYLOCK_NOTE_KEYLOCKED_SWITCH );
+ break;
+ }
+ case EKeyguardDefaultHardware:
+ default:
+ {
+ iLockedNote->ConstructSleepingNoteL( R_KEYLOCK_NOTE_KEYLOCKED );
+ break;
+ }
+ }
+ }
+ iLockedNote->ButtonGroupContainer().ButtonGroup()->AsControl()->DrawableWindow()->SetOrdinalPosition( 0, 2 );
+
+ // These are created only if touch is not enabled, since
+ // currently in touch devices the keylock state is controlled
+ // with switch.
+ if ( !touchEnabled )
+ {
+ //Note showing "Now Press *" - when user has pressed "Unlock" in locked state.
+ if ( aFeatureKeypadNoSlider )
+ {
+ // for normal phones
+ iConfirmationNote = new (ELeave) CLockAppLockedNote();
+ iConfirmationNote->ConstructSleepingNoteL( R_KEYLOCK_NOTE_UNLOCK_ASTERISK );
+ }
+ else
+ {
+ // for special slider phones
+ iConfirmationNote = new (ELeave) CLockAppLockedNote();
+ iConfirmationNote->ConstructSleepingNoteL( R_KEYLOCK_NOTE_UNLOCK_CONFIRM );
+ }
+ iConfirmationNote->ButtonGroupContainer().ButtonGroup()->AsControl()->DrawableWindow()->SetOrdinalPosition( 0, 2 );
+
+ }
+
+
+ // CenRep observers
+ // TODO create private CR key for storing persistent keyguard state (currently in Sysap)
+ // iCRPersistentKeyguardStatus = CLockAppCenRepObserver::NewL ( this, KCRUidCoreApplicationUIsSysAp, KSysApKeyguardActive );
+
+#ifdef RD_AUTO_KEYGUARD
+ iCRAutoKeyguardTime = CLockAppCenRepObserver::NewL ( this, KCRUidSecuritySettings, KSettingsAutomaticKeyguardTime );
+ // Activity manager
+ iActivityManager = CUserActivityManager::NewL( CActive::EPriorityStandard );
+ StartActivityMonitoringL( );
+#endif //RD_AUTO_KEYGUARD
+
+ // PubSub observers
+ iPSStartupObserver = CLockAppPubSubObserver::NewL( this, KPSUidStartup, KPSGlobalSystemState );
+
+ // Setup key pattern matcher
+ if ( !SetupKeyPatternsWithPolicyL( EPolicyDeactivateKeyguard ) )
+ {
+ INFO( "CLockAppKeyguardControl::ConstructL - No CenRep policy defined" );
+ if ( aFeatureKeypadNoSlider )
+ {
+ iKeyPattern->AddPattern( EStdKeyDevice0, KStdKeyAsterisk ); // LSK + *
+ }
+ else
+ {
+ iKeyPattern->AddPattern( EStdKeyDevice0, EStdKeyDevice1 ); // LSK + RSK
+ }
+ }
+#ifdef __WINS__
+ // In Emulator add the LSK+* pattern also.
+ iKeyPattern->AddPattern( EStdKeyDevice0, EStdKeyNkpAsterisk ); // LSK + *
+#endif
+
+ INFO( "CLockAppKeyguardControl::ConstructL completed" );
+ }
+
+// ---------------------------------------------------------------------------
+// Check weather its allowed to automatically lock the keys
+// ---------------------------------------------------------------------------
+TBool CLockAppKeyguardControl::AutoActivationAllowedL( )
+ {
+#ifdef RD_AUTO_KEYGUARD
+ TInt value = 0;
+ TBool flipOpen(EFalse);
+ RProperty::Get( KPSUidHWRM, KHWRMFlipStatus, value );
+ flipOpen = (value = KFlipOpen);
+ INFO_1("CLockAppKeyguardControl::AutoActivationAllowedL - flipOpen: %d", flipOpen);
+ if ( flipOpen )
+ {
+ CRepository* repository = CRepository::NewL( KCRUidAutolockConf );
+ repository->Get( KAutoKeyLockConf, value );
+ delete repository;
+ if ( value & KAutoKeylockFeatureIdFlipOpenDisabled )
+ {
+ INFO( "CLockAppKeyguardControl::AutoActivationAllowedL : False because flipOpenDisabled" );
+ return EFalse;
+ }
+ }
+
+ TInt lightStatus=EForcedLightsUninitialized;
+ RProperty::Get(KPSUidCoreApplicationUIs,KLightsVTForcedLightsOn,lightStatus );
+ INFO_1("CLockAppKeyguardControl::AutoActivationAllowedL - lightStatus: %d", lightStatus);
+ if ( lightStatus == EForcedLightsOn )
+ {
+ INFO( "CLockAppKeyguardControl::AutoActivationAllowedL : False because EForcedLightsOn" );
+ return EFalse;
+ }
+
+ TBool keysLocked(EFalse);
+ TBool idle(EFalse);
+ TBool ongoingCall(EFalse);
+ TBool screenSaverOn(EFalse);
+ TBool screenSaverStertedFromIdle(EFalse);
+
+ keysLocked = (iStateControl.LockStatus() != ELockNotActive);
+ INFO_1("CLockAppKeyguardControl::AutoActivationAllowedL - keysLocked: %d", keysLocked);
+ value = 0;
+ RProperty::Get( KPSUidCtsyCallInformation, KCTsyCallState, value );
+ ongoingCall = (value > EPSCTsyCallStateNone);
+ INFO_2("CLockAppKeyguardControl::AutoActivationAllowedL - ongoingCall: %d %d", value, ongoingCall);
+ value = 0;
+ RProperty::Get( KPSUidAiInformation, KActiveIdleState, value );
+ idle = (value == EPSAiForeground);
+ INFO_2("CLockAppKeyguardControl::AutoActivationAllowedL - idle: %d %d", value, idle);
+ value = 0;
+ RProperty::Get( KPSUidScreenSaver, KScreenSaverOn, value );
+ screenSaverOn = (value > 0);
+ INFO_2("CLockAppKeyguardControl::AutoActivationAllowedL - screenSaverOn: %d %d", value, screenSaverOn);
+ value = 0;
+ RProperty::Get( KPSUidScreenSaver, KScreenSaverActivatedFromIdle, value );
+ screenSaverStertedFromIdle = (value == KSsStartedFromIdle);
+ INFO_2("CLockAppKeyguardControl::AutoActivationAllowedL - screenSaverStertedFromIdle: %d %d", value, screenSaverStertedFromIdle);
+
+ // If a call is ongoing or idle doesnt have foreground and
+ // screensaver is not started from idle -> dont lock keys
+ if ( keysLocked || ongoingCall || (!idle && !(screenSaverOn && screenSaverStertedFromIdle)) )
+ {
+ INFO("CLockAppKeyguardControl::AutoActivationAllowedL : False");
+ return EFalse;
+ }
+#endif //RD_AUTO_KEYGUARD
+ INFO("CLockAppKeyguardControl::AutoActivationAllowedL : True");
+ return ETrue;
+ }
+
+// ---------------------------------------------------------------------------
+// Check weather its allowed to activate the control
+// ---------------------------------------------------------------------------
+TBool CLockAppKeyguardControl::ActivationAllowedL( )
+ {
+ return ETrue;
+ }
+
+// ---------------------------------------------------------------------------
+// Check weather its allowed to deactivate the control
+// ---------------------------------------------------------------------------
+TBool CLockAppKeyguardControl::DeActivationAllowedL( )
+ {
+ return ETrue;
+ }
+
+// ---------------------------------------------------------------------------
+// Activate control
+// ---------------------------------------------------------------------------
+void CLockAppKeyguardControl::HandleActivateEventL( TUint aEnvMask )
+ {
+ INFO_1("CLockAppKeyguardControl::HandleActivateEventL - aEnvMask: %x", aEnvMask);
+
+ CLockAppBaseControl::HandleActivateEventL( aEnvMask );
+
+ if ( IsBitFieldSet( aEnvMask, KLockAppEnvScreenSaverOn ) )
+ {
+ // if screensaver is on - capture primary keys
+ CapturePrimaryKeys( ETrue );
+ }
+
+ // capture keys
+ CLockAppKeyCaptureController::CaptureKey( EStdKeyApplication0, EKeyApplication0, EKeyCaptureAllEvents ); // App key
+ CLockAppKeyCaptureController::CaptureKey( EStdKeyDevice2, EKeyDevice2, EKeyCaptureAllEvents ); // Power key (for lights)
+ CLockAppKeyCaptureController::CaptureKey( EStdKeyDevice6, EKeyDevice6, EKeyCaptureAllEvents ); // Voice key (for lights)
+ CLockAppKeyCaptureController::CaptureKey( EStdKeyNo, EKeyNo, EKeyCaptureAllEvents ); // End key (for Rosetta lights)
+
+ SetPointerEventCapture( ETrue );
+ SetKeyguardIndicatorStateL( ETrue );
+ ShowCba( ETrue );
+ // close task-list in case it is displayed : fast-swap window
+ iEikonEnv->DismissTaskList( );
+ if ( iCba )
+ {
+ TBool areWeInIdleState = CEikStatusPaneBase::Current()->PaneCapabilities(TUid::Uid(EEikStatusPaneUidClock)).IsInCurrentLayout( );
+ if ( areWeInIdleState )
+ {
+ (static_cast<CEikCba*>(iCba->ButtonGroup()))->SetSkinBackgroundId( KAknsIIDQsnBgAreaControlIdle );
+ }
+ else
+ {
+ (static_cast<CEikCba*>(iCba->ButtonGroup()))->SetSkinBackgroundId( KAknsIIDQsnBgAreaControl );
+ }
+ }
+
+ if ( iCRPersistentKeyguardStatus )
+ {
+ iCRPersistentKeyguardStatus->SetValue( 1 );
+ }
+ }
+
+// ---------------------------------------------------------------------------
+// DeActivate control
+// ---------------------------------------------------------------------------
+void CLockAppKeyguardControl::HandleDeActivateEventL( TUint aEnvMask )
+ {
+ INFO_1("CLockAppKeyguardControl::HandleDeActivateEventL - aEnvMask: 0x%x", aEnvMask);
+
+ CLockAppBaseControl::HandleDeActivateEventL( aEnvMask );
+
+ if ( IsBitFieldSet( aEnvMask, KLockAppEnvScreenSaverOn ) )
+ {
+ // if screensaver is on - uncapture primary keys
+ CapturePrimaryKeys( EFalse );
+ }
+
+ // phonecall or not - uncapture keys anyway
+ CLockAppKeyCaptureController::ReleaseKey( EStdKeyApplication0 );
+ CLockAppKeyCaptureController::ReleaseKey( EStdKeyDevice2 );
+ CLockAppKeyCaptureController::ReleaseKey( EStdKeyDevice6 );
+ CLockAppKeyCaptureController::ReleaseKey( EStdKeyNo );
+
+ SetPointerEventCapture( EFalse );
+ SetKeyguardIndicatorStateL( EFalse );
+ ShowCba( EFalse );
+
+ if ( iCRPersistentKeyguardStatus )
+ {
+ iCRPersistentKeyguardStatus->SetValue( 0 );
+ }
+ }
+
+// ---------------------------------------------------------------------------
+// Handle environment changes (Screensaver, Telephony, etc.)
+// ---------------------------------------------------------------------------
+void CLockAppKeyguardControl::HandleEnvironmentChange( TUint aEnvMask, TUint aEventMask )
+ {
+ if ( IsBitFieldSet( aEventMask, KLockAppEnvScreenSaverOn ) )
+ {
+ // screen saver state changed
+ CapturePrimaryKeys( IsBitFieldSet( aEnvMask, KLockAppEnvScreenSaverOn ) );
+ }
+ if ( IsBitFieldSet( aEventMask, KLockAppEnvFPS ) )
+ {
+ // iStateControl.DisableKeyguardL( ETrue );
+ // iStateControl.LockStatus() != ELockNotActive // no need to check, because keyguard will catch fingerprint only if not locked
+ iStateControl.EnableDevicelockL( EDevicelockManual );
+ }
+ }
+
+// ---------------------------------------------------------------------------
+// Inform the user that keys are locked (i.e. "Please press LSK+'*' to unlock).
+// ---------------------------------------------------------------------------
+void CLockAppKeyguardControl::DisplayLockedNote( )
+ {
+ ShowNote( iLockedNote, CAknNoteDialog::ELongTimeout, CAknNoteDialog::ENoTone );
+ }
+
+// ---------------------------------------------------------------------------
+// Handle all Central Repository observer callbacks.
+// ---------------------------------------------------------------------------
+void CLockAppKeyguardControl::HandleCenRepNotify(TUid aCenRepUid, TUint32 aKeyId, TInt aValue )
+ {
+ if ( aCenRepUid == KCRUidSecuritySettings )
+ {
+ switch ( aKeyId )
+ {
+ case KSettingsAutomaticKeyguardTime:
+ {
+ INFO_1( "CLockAppKeyguardControl::HandleCenRepNotify - KSettingsAutomaticKeyguardTime = %d", aValue );
+ ResetInactivityTimeout( );
+ }
+ break;
+ default:
+ break;
+ }
+ }
+ }
+
+// ---------------------------------------------------------------------------
+// Handle all Publish & Subscribe observer callbacks.
+// ---------------------------------------------------------------------------
+void CLockAppKeyguardControl::HandlePubSubNotify(TUid aPubSubUid, TUint aKeyId, TInt aValue )
+ {
+ if ( aPubSubUid == KPSUidStartup )
+ {
+ switch ( aKeyId )
+ {
+ case KPSGlobalSystemState:
+ {
+ // In case of unexpected reset (e.g. hidden boot) the keylock must be enabled silently.
+ if ( !iAlreadyNormalState && (aValue == ESwStateNormalRfOn || aValue == ESwStateNormalRfOff) )
+ {
+ iAlreadyNormalState = ETrue;
+ TInt keylockWasEnabled = 0;
+ if ( iCRPersistentKeyguardStatus )
+ {
+ iCRPersistentKeyguardStatus->GetValue( keylockWasEnabled );
+ if ( keylockWasEnabled )
+ {
+ TRAPD(err, iStateControl.EnableKeyguardL( EFalse ));
+ ERROR(err, "CLockAppKeyguardControl::HandlePubSubNotify - EnableKeyguardL");
+ }
+ }
+ }
+ }
+ break;
+ default:
+ break;
+ }
+ }
+ INFO_3( "CLockAppKeyguardControl::HandlePubSubNotify %x %x = %x", aPubSubUid.iUid, aKeyId, aValue );
+ }
+
+// ---------------------------------------------------------------------------
+// Show that keys are locked.
+// ---------------------------------------------------------------------------
+void CLockAppKeyguardControl::DisplayKeysLockedNote( )
+ {
+ ShowNote( iKeypadLockedNote, KKeyLockCustomShortTimeout, CAknNoteDialog::ENoTone );
+ }
+
+// ---------------------------------------------------------------------------
+// Show that keys are unlocked.
+// ---------------------------------------------------------------------------
+void CLockAppKeyguardControl::DisplayKeysActiveNote( )
+ {
+ ShowNote( iKeypadUnlockedNote, KKeyLockCustomShortTimeout, CAknNoteDialog::ENoTone );
+ }
+
+// ---------------------------------------------------------------------------
+// Show confirmation note when user has pressed "Unlock".
+// ---------------------------------------------------------------------------
+void CLockAppKeyguardControl::DisplayConfirmationNote( )
+ {
+ ShowNote( iConfirmationNote, CAknNoteDialog::EShortTimeout, CAknNoteDialog::EConfirmationTone );
+ // inform sysap to put lights on left soft key press
+ SendMessageToSysAp( EEikKeyLockLightsOnRequest );
+ }
+
+// ---------------------------------------------------------------------------
+// Keyguard UI key events are handled trough here.
+// ---------------------------------------------------------------------------
+TKeyResponse CLockAppKeyguardControl::OfferKeyEventL(const TKeyEvent& aKeyEvent, TEventCode aType )
+ {
+
+ INFO_4( "%s %s (%u) iActive=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, iActive );
+ INFO_4( "%s (%u) aKeyEvent.iCode=%x aType=%x", __FILE__, __LINE__, aKeyEvent.iCode, aType );
+
+ if ( iActive )
+ {
+ if(AknLayoutUtils::PenEnabled())
+ {
+ if(aKeyEvent.iCode == EKeyDeviceF) // any Type
+ {
+ iStateControl.DisableKeyguardL( ETrue );
+ }
+ }
+ if ( aType == EEventKeyDown )
+ {
+ switch ( iKeyPattern->HandleKeyEvent( aKeyEvent.iScanCode ) )
+ {
+ case EPatternNoMatch:
+ DisplayLockedNote( );
+ break;
+ case EPatternPrimaryMatch:
+ DisplayConfirmationNote( );
+ break;
+ case EPatternSecondaryMatch:
+ iStateControl.DisableKeyguardL( ETrue );
+ break;
+ default:
+ INFO_4( "%s %s (%u) default=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, 1 );
+ break;
+ }
+ }
+ }
+ return EKeyWasConsumed;
+ }
+
+// ---------------------------------------------------------------------------
+// Get autokeyguard timeout (in seconds)
+// @return 0 means Off
+// ---------------------------------------------------------------------------
+TInt CLockAppKeyguardControl::GetAutoKeyguardTimeout( )
+ {
+ TInt timeoutInSeconds( 0 );
+#ifdef RD_AUTO_KEYGUARD
+ iCRAutoKeyguardTime->GetValue( timeoutInSeconds );
+#endif //RD_AUTO_KEYGUARD
+ return timeoutInSeconds;
+ }
+
+// ----------------------------------------------------------
+// Starts monitoring user activity
+// ----------------------------------------------------------
+void CLockAppKeyguardControl::StartActivityMonitoringL( )
+ {
+#ifdef RD_AUTO_KEYGUARD
+ __ASSERT_DEBUG( iActivityManager, DoPanic(ELockIllegalState));
+ if ( iActivityManager && !iActivityManager->IsActive() )
+ {
+ TInt value = GetAutoKeyguardTimeout( );
+ INFO_1( "CLockAppKeyguardControl::StartActivityMonitoringL - %d sec", value);
+ if ( value )
+ {
+ iActivityManager->Start( value,
+ TCallBack( HandleInactiveEventL, this ),
+ TCallBack( HandleActiveEventL, this ) );
+ }
+ else
+ {
+ iActivityManager->Start( KAutoKeyguardOff,
+ TCallBack( HandleInactiveEventL, this ),
+ TCallBack( HandleActiveEventL, this ) );
+ }
+ }
+#endif //RD_AUTO_KEYGUARD
+ }
+
+// ----------------------------------------------------------
+// Gets keyguard period and starts monitoring user activity
+// ----------------------------------------------------------
+void CLockAppKeyguardControl::ResetInactivityTimeout( )
+ {
+#ifdef RD_AUTO_KEYGUARD
+ __ASSERT_DEBUG( iActivityManager, DoPanic(ELockIllegalState));
+ if ( iActivityManager )
+ {
+ TInt value = GetAutoKeyguardTimeout( );
+ INFO_1( "CLockAppKeyguardControl::ResetInactivityTimeout - %d sec", value);
+ if ( value )
+ {
+ iActivityManager->SetInactivityTimeout( value );
+ }
+ else
+ {
+ iActivityManager->SetInactivityTimeout( KAutoKeyguardOff );
+ }
+ }
+#endif //RD_AUTO_KEYGUARD
+ }
+
+// ----------------------------------------------------------
+// Stop monitoring user activity.
+// ----------------------------------------------------------
+void CLockAppKeyguardControl::StopActivityMonitoring( )
+ {
+#ifdef RD_AUTO_KEYGUARD
+ if ( iActivityManager )
+ {
+ iActivityManager->Cancel( );
+ }
+#endif //RD_AUTO_KEYGUARD
+ }
+
+// ----------------------------------------------------------
+// Handle Active event. Called by ActivityManager
+// ----------------------------------------------------------
+TInt CLockAppKeyguardControl::HandleActiveEventL(TAny* /*aPtr*/)
+ {
+ return KErrNone;
+ }
+
+// ----------------------------------------------------------
+// Handles InActive event. Called by ActivityManager
+// ----------------------------------------------------------
+TInt CLockAppKeyguardControl::HandleInactiveEventL(TAny* aPtr )
+ {
+#ifdef RD_AUTO_KEYGUARD
+ CLockAppKeyguardControl* keyguard = STATIC_CAST(CLockAppKeyguardControl*, aPtr);
+ if ( keyguard->GetAutoKeyguardTimeout( ) && keyguard->AutoActivationAllowedL( ) )
+ {
+ keyguard->iStateControl.EnableKeyguardL( EFalse );
+ }
+#endif //RD_AUTO_KEYGUARD
+ return KErrNone;
+ }
+
+// ---------------------------------------------------------------------------
+// Handle UI commands received from the child controls
+// ---------------------------------------------------------------------------
+void CLockAppKeyguardControl::ProcessCommandL( TInt aCommandId )
+ {
+ INFO_1("CLockAppKeyguardControl::ProcessCommandL : %d ", aCommandId );
+ }
+
+TInt CLockAppKeyguardControl::CountComponentControls( ) const
+ {
+ return 1;
+ }
+
+CCoeControl* CLockAppKeyguardControl::ComponentControl(TInt /*aIndex*/) const
+ {
+ return iCba;
+ }
+
+// ---------------------------------------------------------------------------
+// Notification if layout changes.
+// ---------------------------------------------------------------------------
+void CLockAppKeyguardControl::HandleResourceChange(TInt aType )
+ {
+ if ( aType == KEikDynamicLayoutVariantSwitch && iCba )
+ {
+ TRect screenRect;
+ AknLayoutUtils::LayoutMetricsRect( AknLayoutUtils::EScreen, screenRect );
+ iCba->SetBoundingRect( screenRect );
+ }
+ CCoeControl::HandleResourceChange( aType );
+ }
+
+// END OF FILE
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/securitydialogs/lockapp/src/lockappkeypattern.cpp Wed Sep 01 12:19:59 2010 +0100
@@ -0,0 +1,281 @@
+/*
+* Copyright (c) 2007 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: Key pattern matching component.
+ *
+*/
+
+
+#include "lockapptrace.h"
+#include "lockappkeypattern.h"
+
+const TInt KDefaultTimeout = 2000000;
+
+// ---------------------------------------------------------------------------
+// Standard two-phased construction
+// ---------------------------------------------------------------------------
+CLockAppKeyPattern* CLockAppKeyPattern::NewL( )
+ {
+ CLockAppKeyPattern *self = new ( ELeave ) CLockAppKeyPattern();
+ CleanupStack::PushL( self );
+ self->ConstructL( );
+ CleanupStack::Pop( self );
+ return self;
+ }
+
+// ---------------------------------------------------------------------------
+// Default C++ constructor
+// ---------------------------------------------------------------------------
+CLockAppKeyPattern::CLockAppKeyPattern( ) :
+ iKeyTimeOut( KDefaultTimeout ),
+ iState( EPatternNoMatch ),
+ iEnabled ( ETrue ),
+ iHasPatterns( EFalse )
+ {
+ // no implementation required
+ }
+
+// ---------------------------------------------------------------------------
+// Key pattern construction
+// ---------------------------------------------------------------------------
+void CLockAppKeyPattern::ConstructL( )
+ {
+ iKeyTimer = CPeriodic::NewL( CActive::EPriorityUserInput );
+ }
+
+// ---------------------------------------------------------------------------
+// Destructor
+// ---------------------------------------------------------------------------
+CLockAppKeyPattern::~CLockAppKeyPattern( )
+ {
+ ClearPatterns( );
+ // timer between key presses is cancelled
+ if ( iKeyTimer )
+ {
+ iKeyTimer->Cancel( );
+ delete iKeyTimer;
+ }
+ }
+
+// ---------------------------------------------------------------------------
+// Gets the enabled state.
+// ---------------------------------------------------------------------------
+TBool CLockAppKeyPattern::IsEnabled( )
+ {
+ return iEnabled;
+ }
+
+// ---------------------------------------------------------------------------
+// Sets the enabled state.
+// ---------------------------------------------------------------------------
+void CLockAppKeyPattern::SetEnabled(TBool aEnabled )
+ {
+ iEnabled = aEnabled;
+ }
+
+// ---------------------------------------------------------------------------
+// Gets the primary key timeout.
+// ---------------------------------------------------------------------------
+TUint CLockAppKeyPattern::GetKeyTimeOut( )
+ {
+ return iKeyTimeOut;
+ }
+
+// ---------------------------------------------------------------------------
+// Sets the primary key timeout.
+// ---------------------------------------------------------------------------
+void CLockAppKeyPattern::SetKeyTimeOut(TUint aTimeOut )
+ {
+ iKeyTimeOut = aTimeOut;
+ }
+
+// ---------------------------------------------------------------------------
+// Add new key combination
+// ---------------------------------------------------------------------------
+TInt CLockAppKeyPattern::AddPattern( TUint32 aPrimaryKey, TUint32 aSecondaryKey )
+ {
+ TInt err(KErrNone);
+ iPrimaryKeys.Append( aPrimaryKey );
+ iSecondaryKeys.Append( aSecondaryKey );
+ iHasPatterns = ETrue;
+ return err;
+ }
+
+// ---------------------------------------------------------------------------
+// Get key combination
+// ---------------------------------------------------------------------------
+TInt CLockAppKeyPattern::GetPattern(TInt aIndex, TUint32& aPrimaryKey, TUint32& aSecondaryKey )
+ {
+ TInt err( KErrNone);
+ if ( iHasPatterns && aIndex < iPrimaryKeys.Count( )&& aIndex < iSecondaryKeys.Count( ) )
+ {
+ aPrimaryKey = iPrimaryKeys[aIndex];
+ aSecondaryKey = iSecondaryKeys[aIndex];
+ }
+ else
+ {
+ err = KErrNotFound;
+ }
+ return err;
+ }
+
+// ---------------------------------------------------------------------------
+// Returns true if the key pattern matcher has been initialized
+// ---------------------------------------------------------------------------
+TBool CLockAppKeyPattern::HasPatterns( )
+ {
+ return (iHasPatterns && iPrimaryKeys.Count() > 0 && iSecondaryKeys.Count() > 0);
+ }
+
+// ---------------------------------------------------------------------------
+// Clear all key combinations
+// ---------------------------------------------------------------------------
+TInt CLockAppKeyPattern::ClearPatterns( )
+ {
+ TInt err( KErrNone);
+ if ( iHasPatterns )
+ {
+ iPrimaryKeys.Reset( );
+ iSecondaryKeys.Reset( );
+ iWaitingKeys.Reset( );
+ iHasPatterns = EFalse;
+ // cancel the timer
+ iKeyTimer->Cancel( );
+ }
+ return err;
+ }
+
+// ---------------------------------------------------------------------------
+// Receives keys and checks whether they match any primary+secondary key combination
+// ---------------------------------------------------------------------------
+TPatternState CLockAppKeyPattern::HandleKeyEvent( TUint32 aKey )
+ {
+ if ( iEnabled )
+ {
+ if ( iHasPatterns )
+ {
+ switch (iState)
+ {
+ case EPatternNoMatch:
+ case EPatternSecondaryMatch:
+ {
+ if ( iPrimaryKeys.Find( aKey ) != KErrNotFound )
+ {
+ HandlePrimaryKeyEvent( aKey );
+ }
+ else
+ {
+ HandleOtherKeyEvent();
+ }
+ }
+ break;
+ case EPatternPrimaryMatch:
+ {
+ if ( iWaitingKeys.Find( aKey ) != KErrNotFound )
+ {
+ HandleSecondaryKeyEvent();
+ }
+ else
+ {
+ if ( iPrimaryKeys.Find( aKey ) != KErrNotFound )
+ {
+ HandlePrimaryKeyEvent( aKey );
+ }
+ else
+ {
+ HandleOtherKeyEvent();
+ }
+ }
+ }
+ break;
+ default:
+ break;
+ }
+ }
+ else
+ {
+ return EPatternNotInitialized;
+ }
+ }
+ else
+ {
+ return EPatternNotEnabled;
+ }
+
+ return iState;
+ }
+
+// ---------------------------------------------------------------------------
+// Handles primary key events
+// ---------------------------------------------------------------------------
+void CLockAppKeyPattern::HandlePrimaryKeyEvent( TUint32 aKey )
+ {
+ // cancel the timer
+ iKeyTimer->Cancel( );
+ // clear the waiting keys
+ iWaitingKeys.Reset( );
+ // add those secondary keys to the waiting keys, which have the same primary key
+ for (TInt i( 0); i < iPrimaryKeys.Count( ); i++ )
+ {
+ if ( iPrimaryKeys[i] == aKey && i < iSecondaryKeys.Count( ) )
+ {
+ iWaitingKeys.Append( iSecondaryKeys[i] );
+ }
+ }
+
+ // start timer for primary key timeout
+ iKeyTimer->Start( iKeyTimeOut, iKeyTimeOut, TCallBack( HandleKeyTimerTimeout, this ) );
+
+ // set the state
+ iState = EPatternPrimaryMatch;
+ }
+
+// ---------------------------------------------------------------------------
+// Handles secondary key events
+// ---------------------------------------------------------------------------
+void CLockAppKeyPattern::HandleSecondaryKeyEvent( )
+ {
+ // cancel the timer
+ iKeyTimer->Cancel( );
+ // clear the waiting keys
+ iWaitingKeys.Reset( );
+ // set the state
+ iState = EPatternSecondaryMatch;
+ }
+
+// ---------------------------------------------------------------------------
+// Handles other key events
+// ---------------------------------------------------------------------------
+void CLockAppKeyPattern::HandleOtherKeyEvent( )
+ {
+ // cancel the timer
+ iKeyTimer->Cancel( );
+ // clear the waiting keys
+ iWaitingKeys.Reset( );
+ // set the state
+ iState = EPatternNoMatch;
+ }
+
+// ---------------------------------------------------------------------------
+// A call back to the key pattern timer, the allowed time window for pressing
+// the secondary key to get a match has passed.
+// ---------------------------------------------------------------------------
+TInt CLockAppKeyPattern::HandleKeyTimerTimeout( TAny* aSelf )
+ {
+ CLockAppKeyPattern* self = reinterpret_cast< CLockAppKeyPattern* >( aSelf );
+ // reset the state
+ self->HandleOtherKeyEvent( );
+ return KErrNone;
+ }
+
+// End of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/securitydialogs/lockapp/src/lockapplockednote.cpp Wed Sep 01 12:19:59 2010 +0100
@@ -0,0 +1,57 @@
+/*
+* Copyright (c) 2007 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: Sleeping note with timeout and a reference flag that informs
+ * the parent when the note is visible
+ *
+*/
+
+
+#include "lockapplockednote.h"
+
+// ---------------------------------------------------------------------------
+// Construction passes the parent implementing command observer interface
+// and a reference to variable that is true if note with timeout is shown,
+// false if not
+// ---------------------------------------------------------------------------
+CLockAppLockedNote::CLockAppLockedNote( MEikCommandObserver* aCommandObserver ) :
+ CLockAppSleepingNote(aCommandObserver)
+ {
+ // no implementation required
+ }
+
+// ---------------------------------------------------------------------------
+// In destruction set reference value (is note shown) to not true.
+// ---------------------------------------------------------------------------
+CLockAppLockedNote::~CLockAppLockedNote( )
+ {
+ }
+
+// ---------------------------------------------------------------------------
+// Method to cancel note from screen.
+// ---------------------------------------------------------------------------
+void CLockAppLockedNote::CancelNote( )
+ {
+ ExitSleepingDialog( );
+ }
+
+// ---------------------------------------------------------------------------
+// Inform the command observer (parent) about the focus lost event.
+// ---------------------------------------------------------------------------
+void CLockAppLockedNote::FocusChanged( TDrawNow /*aDrawNow*/)
+ {
+ if ( !IsFocused( ) && iCommandObserver )
+ {
+ TRAP_IGNORE(iCommandObserver->ProcessCommandL(KNoteCmdFocusLost))
+ }
+ }
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/securitydialogs/lockapp/src/lockappobserverlist.cpp Wed Sep 01 12:19:59 2010 +0100
@@ -0,0 +1,126 @@
+/*
+* Copyright (c) 2007 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: Lock App internal state control
+ *
+*/
+
+
+#include "lockappstatecontrol.h"
+#include "lockappstatepublisher.h"
+#include "lockappkeyguardcontrol.h"
+#include "lockapputils.h"
+#include "lockappecsdetector.h"
+
+const TInt KLockAppObserverListGranularity = 4;
+
+// ---------------------------------------------------------------------------
+// Standard C++ constructor
+// ---------------------------------------------------------------------------
+CLockAppObserverList::CLockAppObserverList( )
+ {
+ // no implementation required
+ }
+
+// ---------------------------------------------------------------------------
+// Destroys the observer list and all existing observers.
+// ---------------------------------------------------------------------------
+CLockAppObserverList::~CLockAppObserverList( )
+ {
+ if ( iObserverList )
+ {
+ TInt count = iObserverList->Count( );
+ for (TInt index=0; index<count; index++ )
+ {
+ delete (*iObserverList)[index];
+ }
+ iObserverList->Reset( );
+ delete iObserverList;
+ }
+ }
+
+// ---------------------------------------------------------------------------
+// Adds lock state observer to the observer list.
+// ---------------------------------------------------------------------------
+void CLockAppObserverList::AddObserverL( MLockAppStateObserver* aObserver )
+ {
+ if ( aObserver )
+ {
+ TBool found(EFalse);
+ // check that the observer has not been added before
+ TInt count = iObserverList->Count( );
+ for ( TInt index=0; index<count; index++ )
+ {
+ if ( ((*iObserverList)[index]) == aObserver )
+ {
+ found = ETrue;
+ }
+ }
+ if ( !found )
+ {
+ iObserverList->AppendL( aObserver );
+ }
+ }
+ }
+
+// ---------------------------------------------------------------------------
+// Removes lock state observer from the observer list.
+// ---------------------------------------------------------------------------
+void CLockAppObserverList::RemoveObserver( MLockAppStateObserver* aObserver )
+ {
+ if ( aObserver )
+ {
+ TInt count = iObserverList->Count( );
+ for ( TInt index=0; index<count; index++ )
+ {
+ if ( ((*iObserverList)[index]) == aObserver )
+ {
+ iObserverList->Remove( index );
+ return;
+ }
+ }
+ }
+ }
+
+// ---------------------------------------------------------------------------
+// Constructs the observer list.
+// ---------------------------------------------------------------------------
+void CLockAppObserverList::BaseConstructL( )
+ {
+ // create observer list
+ iObserverList = new (ELeave) RPointerArray<MLockAppStateObserver>(KLockAppObserverListGranularity);
+ }
+
+// ---------------------------------------------------------------------------
+// Not implemented, meant for derived classes
+// ---------------------------------------------------------------------------
+void CLockAppObserverList::HandleLockStatusChangedL( TLockStatus /*aLockStatus*/)
+ {
+ }
+
+// ---------------------------------------------------------------------------
+// Informs observers that the lock state has changed.
+// ---------------------------------------------------------------------------
+void CLockAppObserverList::PostStatusChangeL( TLockStatus aStatusChange )
+ {
+ // first inform the main control
+ HandleLockStatusChangedL( aStatusChange );
+
+ // for child observers
+ TInt count = iObserverList->Count( );
+ for ( TInt index=count-1; index>=0; index-- )
+ {
+ //TRAP_IGNORE
+ ((*iObserverList)[index])->HandleLockStatusChangedL( aStatusChange );
+ }
+ }
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/securitydialogs/lockapp/src/lockapppubsubobserver.cpp Wed Sep 01 12:19:59 2010 +0100
@@ -0,0 +1,146 @@
+/*
+* Copyright (c) 2007 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: Publish & Subscribe key observer
+ *
+*/
+
+
+#include "lockapppubsubobserver.h"
+#include "lockapputils.h"
+
+// ---------------------------------------------------------------------------
+// Two-phased constructor.
+// ---------------------------------------------------------------------------
+CLockAppPubSubObserver* CLockAppPubSubObserver::NewL(MLockAppObserverInterface* aObserver,
+ TUid aPubSubUid, TUint32 aKeyId )
+ {
+ CLockAppPubSubObserver* self = new (ELeave) CLockAppPubSubObserver(aObserver, aPubSubUid, aKeyId);
+ CleanupStack::PushL( self );
+ self->ConstructL( );
+ CleanupStack::Pop( self );
+ return self;
+ }
+
+// ---------------------------------------------------------------------------
+// C++ default constructor
+// ---------------------------------------------------------------------------
+CLockAppPubSubObserver::CLockAppPubSubObserver(MLockAppObserverInterface* aObserver,
+ TUid aPubSubUid, TUint32 aKeyId ) :
+ CActive( 0 ),
+ iObserver( aObserver ),
+ iPubSubUid( aPubSubUid ),
+ iKeyId( aKeyId ),
+ iValue( NULL )
+ {
+ }
+
+// ---------------------------------------------------------------------------
+// Destructor
+// ---------------------------------------------------------------------------
+CLockAppPubSubObserver::~CLockAppPubSubObserver( )
+ {
+ Cancel( );
+ iProperty.Close( );
+ }
+
+// ---------------------------------------------------------------------------
+// Symbian OS default constructor
+// ---------------------------------------------------------------------------
+void CLockAppPubSubObserver::ConstructL( )
+ {
+ // Add this active object to the scheduler.
+ CActiveScheduler::Add( this );
+ TInt err = iProperty.Attach( iPubSubUid, iKeyId );
+ ERROR_2(err, "CLockAppPubSubObserver::ConstructL - Property(%d,%d) attach", iPubSubUid, iKeyId);
+ User::LeaveIfError( err );
+ Start( );
+ }
+
+// ---------------------------------------------------------------------------
+// Starts listening
+// ---------------------------------------------------------------------------
+TInt CLockAppPubSubObserver::Start( )
+ {
+ if ( !IsActive( ) )
+ {
+ iStatus = KRequestPending;
+ iProperty.Subscribe( iStatus );
+ SetActive( );
+ return KErrNone;
+ }
+ else
+ {
+ return KErrInUse;
+ }
+ }
+
+// ---------------------------------------------------------------------------
+// Stops listening
+// ---------------------------------------------------------------------------
+void CLockAppPubSubObserver::Stop( )
+ {
+ if ( IsActive( ) )
+ {
+ Cancel( );
+ iProperty.Cancel( );
+ }
+ }
+
+// ---------------------------------------------------------------------------
+// Gets value of the key from P&S.
+// ---------------------------------------------------------------------------
+TInt CLockAppPubSubObserver::GetKeyValue(TInt& aValue )
+ {
+ RDebug::Printf( "%s %s (%u) 1=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, 1 );
+ return iProperty.Get( aValue );
+ }
+
+// ---------------------------------------------------------------------------
+// Sets a value for the key in P&S.
+// ---------------------------------------------------------------------------
+TInt CLockAppPubSubObserver::SetKeyValue(TInt aValue )
+ {
+ RDebug::Printf( "%s %s (%u) aValue=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, aValue );
+ return iProperty.Set( aValue );
+ }
+
+// ---------------------------------------------------------------------------
+// CLockAppPubSubObserver::RunL()
+// ---------------------------------------------------------------------------
+void CLockAppPubSubObserver::RunL( )
+ {
+ TInt value( NULL);
+ iProperty.Get( value );
+ if ( iValue != value )
+ {
+ // on value change
+ iValue = value;
+ if ( iObserver )
+ {
+ iObserver->HandlePubSubNotify( iPubSubUid, iKeyId, iValue );
+ }
+ }
+ // re-subscribe to events
+ Start( );
+ }
+
+// ---------------------------------------------------------------------------
+// Cancels event listening
+// ---------------------------------------------------------------------------
+void CLockAppPubSubObserver::DoCancel( )
+ {
+ iProperty.Cancel( );
+ }
+
+// End of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/securitydialogs/lockapp/src/lockappserver.cpp Wed Sep 01 12:19:59 2010 +0100
@@ -0,0 +1,73 @@
+/*
+* Copyright (c) 2007 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: Server implementation that responds to client API in lockclient
+ *
+*/
+
+
+#include "lockappserver.h"
+#include "lockappsession.h"
+#include <lockappclientserver.h>
+#include <coemain.h>
+
+// ---------------------------------------------------------------------------
+// Two-phased constructor.
+// ---------------------------------------------------------------------------
+CLockAppServer* CLockAppServer::NewL( const TDesC& aFixedServerName )
+ {
+
+ CLockAppServer* self = new (ELeave) CLockAppServer();
+ CleanupStack::PushL( self );
+ self->SetPriority( EActivePriorityIpcEventsHigh );
+ self->ConstructL( aFixedServerName );
+ CleanupStack::Pop( self );
+ return self;
+ }
+
+// ---------------------------------------------------------------------------
+// Constructor.
+// ---------------------------------------------------------------------------
+CLockAppServer::CLockAppServer( )
+ {
+
+ // no implementation required
+ }
+
+// ---------------------------------------------------------------------------
+// From @c CApaAppServer. Creates LockApp Session, only one type of
+// service is supported by the server.
+// ---------------------------------------------------------------------------
+CApaAppServiceBase* CLockAppServer::CreateServiceL( TUid aServiceType ) const
+ {
+
+ // only one service is offered through server
+ if ( aServiceType == KLockAppServiceUid )
+ {
+ return new (ELeave) CLockAppSession();
+ }
+ else
+ {
+ return CApaAppServer::CreateServiceL( aServiceType );
+ }
+ }
+
+// ---------------------------------------------------------------------------
+// From @c CApaAppServer. Creates a new client session, version
+// numbering not supported.
+// ---------------------------------------------------------------------------
+CSession2* CLockAppServer::NewSessionL( const TVersion&, const RMessage2& ) const
+ {
+
+ return new (ELeave) CLockAppSession();
+ }
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/securitydialogs/lockapp/src/lockappsession.cpp Wed Sep 01 12:19:59 2010 +0100
@@ -0,0 +1,236 @@
+/*
+* Copyright (c) 2007 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: LockApp server session requested by lockclient
+ *
+*/
+
+
+#include "lockapptrace.h"
+#include "lockappsession.h"
+#include "lockappappui.h"
+#include "lockappstatecontrolinterface.h"
+#include "lockapputils.h"
+#include <lockappclientserver.h>
+
+// ---------------------------------------------------------------------------
+// Default Constructor.
+// ---------------------------------------------------------------------------
+CLockAppSession::CLockAppSession( )
+ {
+
+ // no implementation required
+ }
+
+// ---------------------------------------------------------------------------
+// Default Destructor.
+// ---------------------------------------------------------------------------
+CLockAppSession::~CLockAppSession( )
+ {
+ // no implementation required
+ }
+
+// ---------------------------------------------------------------------------
+// From @c CApaAppServiceBase. Handles possible error in the lock app session
+// Method is empty.
+// ---------------------------------------------------------------------------
+void CLockAppSession::ServiceError( const RMessage2& aMessage, TInt aError )
+ {
+
+ if ( aError == KErrNotReady )
+ {
+ // initialization not yet ready
+ aMessage.Complete( KErrNotReady );
+ ERROR( aError, "LockApp initialization not yet ready, KErrNotReady" );
+ }
+ else
+ {
+ ERROR_1( aError, "Service request has caused a leave, message: %d", aMessage.Function());
+ CApaAppServiceBase::ServiceError( aMessage, aError );
+#ifdef _DEBUG
+ if ( aMessage.Function( )== ELockAppTestDestruct )
+ {
+ User::Leave( KErrGeneral );
+ }
+#endif
+ }
+ }
+
+// ---------------------------------------------------------------------------
+// From @c CApaAppServiceBase. Handles a client request. Leaving is handled by
+// CLockAppSession::ServiceError() which reports the error code to the client
+// ---------------------------------------------------------------------------
+void CLockAppSession::ServiceL(const RMessage2& aMessage )
+ {
+ RThread clientThread;
+ TInt err=aMessage.Client(clientThread);
+ // RDebug::Print( _L("called by %S"), &(clientThread.FullName()) );
+ // RDebug::Print( clientThread.FullName() );
+
+ TInt response = KErrNone;
+ // log the message
+ // whole provided server API is implemented here
+
+ switch ( aMessage.Function( ) )
+ {
+ case ELockAppEnableKeyguard:
+ // enable with or without note (depends on first parameter)
+ response = DoEnableKeyguardL( aMessage.Int0() );
+ break;
+ case ELockAppDisableKeyguard:
+ // disable with or without note (depends on first parameter)
+ response = DoDisableKeyguardL( aMessage.Int0() );
+ break;
+ case ELockAppEnableDevicelock:
+ // check that client has needed capabilities to enable devicelock
+ if ( aMessage.HasCapability( ECapabilityWriteDeviceData ) )
+ {
+ // first parameter contains the reason
+ response = DoEnableDevicelockL( (TDevicelockReason) aMessage.Int0() );
+ }
+ else
+ {
+ response = KErrPermissionDenied;
+ }
+ break;
+ case ELockAppDisableDevicelock:
+ // check that client has needed capabilities to disable devicelock
+ if ( aMessage.HasCapability( ECapabilityWriteDeviceData ) )
+ {
+ response = DoDisableDevicelockL( );
+ }
+ else
+ {
+ response = KErrPermissionDenied;
+ }
+ break;
+ case ELockAppOfferKeyguard:
+ // offer to lock keyguard
+ response = DoOfferKeyguardL( );
+ break;
+ case ELockAppOfferDevicelock:
+ // TODO implement this someday if needed
+ response = KErrNotSupported;
+ break;
+ case ELockAppShowKeysLockedNote:
+ response = DoShowKeysLockedNoteL( );
+ break;
+#ifdef _DEBUG
+ case ELockAppTestDestruct:
+ // test for leave
+ User::Leave( KErrGeneral );
+ break;
+ case ELockAppTestInternal:
+ // test internal functions (which cannot be tested trough client API)
+ response = StateControlL()->ExecuteInternalTest( );
+ break;
+#endif
+ default:
+ // illegal message call, panic the client process
+ PanicClient( aMessage, ELockPanicIllegalMessage );
+ return;
+ }
+
+ INFO_2( "CLockAppSession received service message: %d. Result: %d", aMessage.Function(), response );
+ aMessage.Complete( response );
+ }
+
+// ---------------------------------------------------------------------------
+// Request lockapp to enable keyguard on device (might not be approved, e.g.
+// devicelock activated).
+// ---------------------------------------------------------------------------
+TInt CLockAppSession::DoEnableKeyguardL( TBool aShowNote )
+ {
+ // calls the main control
+
+ return StateControlL()->EnableKeyguardL( aShowNote );
+ }
+
+// ---------------------------------------------------------------------------
+// Request lockapp to disable keyguard on device (might not be approved, e.g.
+// already disabled).
+// ---------------------------------------------------------------------------
+TInt CLockAppSession::DoDisableKeyguardL( TBool aShowNote )
+ {
+ // calls the main control
+
+ return StateControlL()->DisableKeyguardL( aShowNote );
+ }
+
+// ---------------------------------------------------------------------------
+// Request lockapp to enable devicelock on device (might not be approved).
+// ---------------------------------------------------------------------------
+TInt CLockAppSession::DoEnableDevicelockL( TDevicelockReason aReason )
+ {
+ // calls the main control
+
+ return StateControlL()->EnableDevicelockL( aReason );
+ }
+
+// ---------------------------------------------------------------------------
+// Request lockapp to disable devicelock on device (might not be approved).
+// ---------------------------------------------------------------------------
+TInt CLockAppSession::DoDisableDevicelockL( )
+ {
+ // TODO Investigate if this should be allowed in API or not
+ // calls the main control
+ // StateControlL()->DisableDevicelockL( );
+ return KErrPermissionDenied;
+ }
+
+// ---------------------------------------------------------------------------
+// Request to offer keyguard on device (might not be approved, e.g.
+// already locked).
+// ---------------------------------------------------------------------------
+TInt CLockAppSession::DoOfferKeyguardL( )
+ {
+ // calls the main control
+ return StateControlL()->OfferKeyguard( );
+ }
+
+// ---------------------------------------------------------------------------
+// Request to show keys locked note, only works if keyguard is enabled
+// ---------------------------------------------------------------------------
+TInt CLockAppSession::DoShowKeysLockedNoteL( )
+ {
+ // calls the main control
+
+ return StateControlL()->ShowKeysLockedNote( );
+ }
+
+// ---------------------------------------------------------------------------
+// Return the main state control to the server session.
+// Application appui and the main state control might not be constructed yet.
+// ---------------------------------------------------------------------------
+MLockAppStateControl* CLockAppSession::StateControlL( )
+ {
+
+ // other parts of lockapp construction may not be finished
+ if ( !iStateControl )
+ {
+ CLockAppAppUi* appUi = (CLockAppAppUi*) CEikonEnv::Static()->EikAppUi();
+ if ( appUi )
+ {
+ iStateControl = appUi->StateControl( );
+ if ( !iStateControl )
+ {
+ User::Leave( KErrNotReady );
+ }
+ }
+ else
+ {
+ User::Leave( KErrNotReady );
+ }
+ }
+ return iStateControl;
+ }
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/securitydialogs/lockapp/src/lockappsleepingnote.cpp Wed Sep 01 12:19:59 2010 +0100
@@ -0,0 +1,128 @@
+/*
+* Copyright (c) 2007 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: Sleeping note with timeout
+ *
+*/
+
+
+#include "lockappsleepingnote.h"
+#include <avkon.rsg> // avkon animation resources
+#include <aknnotpi.rsg> // keyguard note resources
+#include <aknnotecontrol.h> // access to note control
+#include "lockapputils.h"
+#include <GlobalWindowPriorities.h>
+
+// ---------------------------------------------------------------------------
+// Pointer to parent (implements MEikCommandObserver) is given in construction.
+// ---------------------------------------------------------------------------
+CLockAppSleepingNote::CLockAppSleepingNote( MEikCommandObserver* aCommandObserver ) :
+ iCommandObserver(aCommandObserver)
+ {
+ }
+
+// ---------------------------------------------------------------------------
+// Note construction on startup.
+// Sleeping note owns a timer that controls the note timeout.
+// ---------------------------------------------------------------------------
+void CLockAppSleepingNote::ConstructSleepingNoteL( TInt aResourceId )
+ {
+ iResourceId = aResourceId;
+ CAknNoteDialog::ConstructSleepingDialogL( aResourceId );
+ // Construct now rather than in PreLayoutDynInit
+ }
+
+// ---------------------------------------------------------------------------
+// In destruction set reference value (is note shown) to not true.
+// ---------------------------------------------------------------------------
+CLockAppSleepingNote::~CLockAppSleepingNote( )
+ {
+ }
+
+// ---------------------------------------------------------------------------
+// Show note with timeout.
+// ---------------------------------------------------------------------------
+TInt CLockAppSleepingNote::ShowNote( const TInt aTimeout, const TTone aTone )
+ {
+ ReportUserActivity( );
+ iTimeoutInMicroseconds = aTimeout;
+ iTone = aTone;
+ return RouseSleepingDialog( );
+ }
+
+// ---------------------------------------------------------------------------
+// Key events are handled here.
+// ---------------------------------------------------------------------------
+TKeyResponse CLockAppSleepingNote::OfferKeyEventL( const TKeyEvent& /*aKeyEvent*/, TEventCode /*aType*/)
+ {
+ //return CAknNoteDialog::OfferKeyEventL( aKeyEvent, aType );
+ return EKeyWasConsumed;
+ }
+
+// ---------------------------------------------------------------------------
+// Always called when note exists, the reason (command) for exit
+// is delivered to parent.
+// ---------------------------------------------------------------------------
+TBool CLockAppSleepingNote::OkToExitL( TInt aCommand )
+ {
+ if ( iCommandObserver )
+ {
+ iCommandObserver->ProcessCommandL( aCommand );
+ }
+ return ETrue;
+ }
+
+// ---------------------------------------------------------------------------
+// Always called when note exists, the reason (command) for exit
+// is delivered to parent.
+// ---------------------------------------------------------------------------
+void CLockAppSleepingNote::HandleResourceChange( TInt aType )
+ {
+ if ( aType == KAknsMessageSkinChange )
+ {
+ TInt animationRes(0);
+ switch ( iResourceId )
+ {
+ case R_KEYLOCK_NOTE_KEYLOCKED:
+ animationRes = R_QGN_NOTE_INFO_ANIM;
+ break;
+ case R_KEYLOCK_NOTE_UNLOCK_CONFIRM:
+ animationRes = R_QGN_NOTE_QUERY_ANIM;
+ break;
+ case R_KEYLOCK_NOTE_UNLOCK_ASTERISK:
+ animationRes = R_QGN_NOTE_INFO_ANIM;
+ break;
+ case R_KEYLOCK_NOTE_LOCK_ON:
+ animationRes = R_QGN_NOTE_KEYGUARD_LOCKED_ANIM;
+ break;
+ case R_KEYLOCK_NOTE_LOCK_OFF:
+ animationRes = R_QGN_NOTE_KEYGUARD_OPEN_ANIM;
+ break;
+ case R_KEYLOCK_OFFER_LOCK_NOTE:
+ animationRes = R_QGN_NOTE_QUERY_ANIM;
+ break;
+ default:
+ break;
+ } // end of switch
+
+ if ( animationRes )
+ {
+ CAknNoteControl* ctrl = NoteControl( );
+ if ( ctrl )
+ {
+ TRAP_IGNORE(ctrl->SetAnimationL( animationRes ));
+ }
+ }
+ }
+ CAknNoteDialog::HandleResourceChange( aType );
+ }
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/securitydialogs/lockapp/src/lockappstatecontrol.cpp Wed Sep 01 12:19:59 2010 +0100
@@ -0,0 +1,945 @@
+/*
+* Copyright (c) 2007 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: Controls lock states (unlocked, keylock, devicelock)
+ *
+*/
+
+
+#include "lockappstatecontrol.h"
+
+// child controls
+#include "lockappidlecontrol.h"
+#include "lockappkeyguardcontrol.h"
+#include "lockappdevicelockcontrol.h"
+
+#include "lockapppubsubobserver.h"
+#include "lockappcenrepobserver.h"
+
+#include "lockappkeycapturecontroller.h"
+#include "lockappstatepublisher.h"
+#include "lockappecsdetector.h"
+#include "lockapputils.h"
+#include <featmgr.h>
+
+#include <settingsinternalcrkeys.h>
+#include <ScreensaverInternalPSKeys.h>
+#include <ctsydomainpskeys.h>
+#include <activeidle2domainpskeys.h>
+
+#include "GlobalWindowPriorities.h"
+
+#include <avkon.rsg> // general avkon resources
+#include <aknnotpi.rsg> // keyguard spesific resources
+#include <aknsoundsystem.h>
+#include <AknIncallBubbleNotify.h> // incall bubble
+#include <bautils.h> // BaflUtils
+#include <apgwgnam.h>
+
+#include <keylockpolicyapi.h>
+
+#include <hwrmdomainpskeys.h>
+ TUid KUidFpsCategory = {0x1020507E};
+const TInt KFpsAuthenticationKey = 1;
+
+// used avkon dialog resources
+_LIT(KRESOURCEFILE, "z:\\resource\\aknnotpi.rsc");
+
+// Visibility gate WG priority's relative offset from ECoeWinPriorityAlwaysAtFront
+// Now equals -1000 to be an absolute 0.
+const TInt KGlobalWindowPriority_LockVisibilityGate = -1000;
+
+// ---------------------------------------------------------------------------
+// Standard Symbian OS construction sequence
+// ---------------------------------------------------------------------------
+CLockAppStateControl* CLockAppStateControl::NewL( )
+ {
+ CLockAppStateControl* self = new (ELeave) CLockAppStateControl();
+ CleanupStack::PushL( self );
+ self->ConstructL( );
+ CleanupStack::Pop( self );
+ return self;
+ }
+
+// ---------------------------------------------------------------------------
+// Destruction releases key captures.
+// ---------------------------------------------------------------------------
+CLockAppStateControl::~CLockAppStateControl( )
+ {
+ // localized resources are freed
+ if ( iResourceFileOffset )
+ {
+ // We implicitely trust that eikon env exists (though in practice it does not make the
+ // difference as this destructor is really never called...)
+ iEikonEnv->DeleteResourceFile(iResourceFileOffset);
+ }
+
+ // PuSub observers
+ if ( iPSScreenSaverObserver )
+ {
+ delete iPSScreenSaverObserver;
+ iPSScreenSaverObserver = NULL;
+ }
+
+ if ( iPSTelephonyObserver )
+ {
+ delete iPSTelephonyObserver;
+ iPSTelephonyObserver = NULL;
+ }
+
+ if ( iPSGripObserver )
+ {
+ delete iPSGripObserver;
+ iPSGripObserver = NULL;
+ }
+
+ if ( iPSFPSObserver )
+ {
+ delete iPSFPSObserver;
+ iPSFPSObserver = NULL;
+ }
+
+ CLockAppKeyCaptureController::Destroy( );
+
+ if ( iIncallBubble )
+ {
+ delete iIncallBubble;
+ iIncallBubble = NULL;
+ }
+
+ if ( iSoundsMuted )
+ {
+ MuteSounds( EFalse );
+ }
+ }
+
+// ---------------------------------------------------------------------------
+// The uninitialized status is ELockNoteActive.
+// ---------------------------------------------------------------------------
+CLockAppStateControl::CLockAppStateControl( ) :
+ iLockStatus( ELockNotActive),
+ iWGEventGate( iEikonEnv->RootWin()),
+ iEnvState( 0 )
+ {
+ // no implementation required
+ }
+
+// ---------------------------------------------------------------------------
+// All lock state observers are created here.
+// ---------------------------------------------------------------------------
+void CLockAppStateControl::ConstructL( )
+ {
+ INFO( "CLockAppStateControl::ConstructL started" );
+
+ // creates observer list
+ BaseConstructL( );
+
+ // localized resources are loaded
+ TFileName resourceFile;
+ resourceFile.Append( KRESOURCEFILE );
+ BaflUtils::NearestLanguageFile( iEikonEnv->FsSession(), resourceFile );
+ iResourceFileOffset = iEikonEnv->AddResourceFileL(resourceFile);
+
+ // fetch power key configuration from feature manager
+ FeatureManager::InitializeLibL( );
+ iFeatureNoPowerkey = FeatureManager::FeatureSupported( KFeatureIdNoPowerkey );
+ FeatureManager::UnInitializeLib( );
+
+ // allow autoforwarding for the application (stacked bringforwards)
+ iEikonEnv->SetAutoForwarding( ETrue );
+
+ CLockAppKeyCaptureController::InitL( iEikonEnv->RootWin() );
+
+ // Create second windowgroup for visibility gate
+ CreateVisibilityGateWgL( );
+
+ INFO_1( "CLockAppStateControl - EventGate WgID = %d", iWGEventGate.WindowGroupId() );
+ INFO_1( "CLockAppStateControl - VisibilityGate WgID = %d", iWGVisibilityGate.WindowGroupId() );
+
+ //
+ // Construct Controls
+ //
+ iIdle = CLockAppIdleControl::NewL( *this );
+ AddObserverL( iIdle ); // ownership is transfered
+
+ iCurrentControl = iIdle;
+ iCurrentControl->HandleActivateEventL( iEnvState );
+
+ iKeyguard = CLockAppKeyguardControl::NewL( *this );
+ AddObserverL( iKeyguard ); // ownership is transfered
+
+ RDebug::Printf( "%s %s (%u) iDevicelock=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, iDevicelock );
+ iDevicelock = CLockAppDevicelockControl::NewL( *this, iWGVisibilityGate );
+ RDebug::Printf( "%s %s (%u) iDevicelock=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, iDevicelock );
+ iDevicelock->ConnectToPhoneL( iWGVisibilityGate );
+ RDebug::Printf( "%s %s (%u) iDevicelock=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, iDevicelock );
+ AddObserverL( iDevicelock ); // ownership is transfered
+
+ // Emergency support
+ iLockEcsDetector = CLockAppEcsDetector::NewL( );
+ AddObserverL( iLockEcsDetector ); // ownership is transfered
+
+ // Lock state publisher
+ CLockAppStatePublisher* lockPublisher = CLockAppStatePublisher::NewL( );
+ AddObserverL( lockPublisher ); // ownership is transfered
+
+ // PubSub observers
+ iPSScreenSaverObserver = CLockAppPubSubObserver::NewL( this, KPSUidScreenSaver, KScreenSaverOn );
+ iPSTelephonyObserver = CLockAppPubSubObserver::NewL( this, KPSUidCtsyCallInformation, KCTsyCallState );
+ iPSGripObserver = CLockAppPubSubObserver::NewL( this, KPSUidHWRM, KHWRMGripStatus );
+
+ iPSFPSObserver = CLockAppPubSubObserver::NewL( this, KUidFpsCategory, KFpsAuthenticationKey );
+
+ // Call bubble
+ iIncallBubble = CAknIncallBubble::NewL( );
+
+ ActivateL( );
+
+ INFO( "CLockAppStateControl::ConstructL completed" );
+ }
+
+// ---------------------------------------------------------------------------
+// Create visibility gate window group
+// ---------------------------------------------------------------------------
+void CLockAppStateControl::CreateVisibilityGateWgL( )
+ {
+ INFO( "CLockAppStateControl - CreateVisibilityGateL" );
+
+ iWGVisibilityGate = RWindowGroup( iCoeEnv->WsSession( ) );
+ User::LeaveIfError( iWGVisibilityGate.Construct( (TUint32) &iWGVisibilityGate ) );
+
+ /* hide this window group from the app switcher */
+ iWGVisibilityGate.SetOrdinalPosition( 0, ECoeWinPriorityNeverAtFront );
+ iWGVisibilityGate.EnableReceiptOfFocus( EFalse );
+
+ /*CApaWindowGroupName* wn = CApaWindowGroupName::NewLC( ws );
+ wn->SetHidden( ETrue );
+ wn->SetWindowGroupName( iWGVisibilityGate );
+ CleanupStack::PopAndDestroy( wn );*/
+ }
+
+// ---------------------------------------------------------------------------
+// This method should be called to enable keyguard.
+// ---------------------------------------------------------------------------
+TInt CLockAppStateControl::EnableKeyguardL( TBool aWithNote )
+ {
+ INFO_1( "CLockAppStateControl::EnableKeyguardL aWithNote= %d", aWithNote );
+ TInt err = CheckIfLegal( ELockAppEnableKeyguard );
+ if ( err == KErrNone && !iKeyguard->ActivationAllowedL( ) )
+ {
+ err = KErrPermissionDenied;
+ }
+ if ( err == KErrNone )
+ {
+ PostStatusChangeL( EKeyguardActive );
+ __ASSERT_DEBUG( iLockStatus == EKeyguardActive, DoPanic(ELockIllegalState));
+ INFO( "CLockAppStateControl - Keyguard Enabled" );
+ if ( aWithNote )
+ {
+ iKeyguard->DisplayKeysLockedNote( );
+ }
+ }
+ return err;
+ }
+
+// ---------------------------------------------------------------------------
+// This method should be called to disable keyguard.
+// ---------------------------------------------------------------------------
+TInt CLockAppStateControl::DisableKeyguardL( TBool aWithNote )
+ {
+ INFO_1( "CLockAppStateControl::DisableKeyguardL aWithNote= %d", aWithNote );
+ TInt err = CheckIfLegal( ELockAppDisableKeyguard );
+ if ( err == KErrNone && !iKeyguard->DeActivationAllowedL( ) )
+ {
+ err = KErrPermissionDenied;
+ }
+ if ( err == KErrNone )
+ {
+ PostStatusChangeL( ELockNotActive );
+ __ASSERT_DEBUG( iLockStatus == ELockNotActive, DoPanic(ELockIllegalState));
+ INFO( "CLockAppStateControl - Keyguard Disabled" );
+ if ( aWithNote )
+ {
+ iKeyguard->DisplayKeysActiveNote( );
+ }
+ }
+ return err;
+ }
+
+// ---------------------------------------------------------------------------
+// This method should be called to enable device lock.
+// ---------------------------------------------------------------------------
+TInt CLockAppStateControl::EnableDevicelockL( TDevicelockReason aReason )
+ {
+ INFO_1( "CLockAppStateControl::EnableDevicelockL aReason= %d", aReason );
+ RDebug::Printf( "%s %s (%u) iDevicelock=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, iDevicelock );
+ TInt err = CheckIfLegal( ELockAppEnableDevicelock );
+ if ( err == KErrNone && !iDevicelock->ActivationAllowedL( aReason ) )
+ {
+ err = KErrPermissionDenied;
+ }
+ if ( err == KErrNone )
+ {
+ PostStatusChangeL( EDevicelockActive );
+ __ASSERT_DEBUG( iLockStatus == EDevicelockActive, DoPanic(ELockIllegalState));
+ iDevicelock->SetLockingReason( aReason );
+ INFO( "CLockAppStateControl - Devicelock Enabled" );
+ }
+ return err;
+ }
+
+// ---------------------------------------------------------------------------
+// This method should be called to disable device lock.
+// ---------------------------------------------------------------------------
+TInt CLockAppStateControl::DisableDevicelockL( )
+ {
+ INFO_1( "CLockAppStateControl::DisableDevicelockL 1= %d", 1 );
+ TInt err = CheckIfLegal( ELockAppDisableDevicelock );
+ if ( err == KErrNone && !iDevicelock->DeActivationAllowedL( ) )
+ {
+ err = KErrPermissionDenied;
+ }
+ if ( err == KErrNone )
+ {
+ PostStatusChangeL( ELockNotActive );
+ __ASSERT_DEBUG( iLockStatus == ELockNotActive, DoPanic(ELockIllegalState));
+ INFO( "CLockAppStateControl - Devicelock Disabled" );
+ }
+ return err;
+ }
+
+// ---------------------------------------------------------------------------
+// Checks if offer keyguard is allowed and if it is, offers to lock keyguard.
+// ---------------------------------------------------------------------------
+TInt CLockAppStateControl::OfferKeyguard( )
+ {
+ INFO_1( "CLockAppStateControl::OfferKeyguard 1= %d", 1 );
+ TInt err = CheckIfLegal( ELockAppOfferKeyguard );
+ if ( err == KErrNone )
+ {
+ __ASSERT_DEBUG( iLockStatus == ELockNotActive, DoPanic(ELockIllegalState));
+ INFO( "CLockAppStateControl - OfferKeyguard" );
+ iIdle->OfferKeyLock( );
+ }
+ return err;
+ }
+
+// ---------------------------------------------------------------------------
+// Shows keys locked note if keyguard is enabled.
+// ---------------------------------------------------------------------------
+TInt CLockAppStateControl::ShowKeysLockedNote( )
+ {
+ INFO_1( "CLockAppStateControl::ShowKeysLockedNote 1= %d", 1 );
+ TInt err = CheckIfLegal( ELockAppShowKeysLockedNote );
+ if ( err == KErrNone )
+ {
+ __ASSERT_DEBUG( iLockStatus == EKeyguardActive, DoPanic(ELockIllegalState));
+ INFO( "CLockAppStateControl - ShowKeysLockedNote" );
+ iKeyguard->DisplayLockedNote( );
+ }
+ return err;
+ }
+
+// ---------------------------------------------------------------------------
+// A method for returning the lock status.
+// ---------------------------------------------------------------------------
+TLockStatus CLockAppStateControl::LockStatus( ) const
+ {
+ INFO_1( "CLockAppStateControl::LockStatus iLockStatus= %d", iLockStatus );
+ return iLockStatus;
+ }
+
+// ---------------------------------------------------------------------------
+// A method for returning the environment status bitmask.
+// ---------------------------------------------------------------------------
+TUint CLockAppStateControl::EnvironmentStatus( ) const
+ {
+ return iEnvState;
+ }
+
+// ---------------------------------------------------------------------------
+// A method for executing different internal tests.
+// ---------------------------------------------------------------------------
+TInt CLockAppStateControl::ExecuteInternalTest( )
+ {
+#ifdef _DEBUG
+ return iLockEcsDetector->TestEcsNote( );
+#else
+ return KErrNone;
+#endif
+ }
+
+// ---------------------------------------------------------------------------
+// Number of owned UI controls (idle, keyguard, devicelock)
+// ---------------------------------------------------------------------------
+TInt CLockAppStateControl::CountComponentControls( ) const
+ {
+ return 3;
+ }
+
+// ---------------------------------------------------------------------------
+// Owned UI controls (idle, keyguard, devicelock)
+// ---------------------------------------------------------------------------
+CCoeControl* CLockAppStateControl::ComponentControl( TInt aIndex ) const
+ {
+ RDebug::Printf( "%s %s (%u) aIndex=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, aIndex );
+ switch ( aIndex )
+ {
+ case 0:
+ return iIdle;
+ case 1:
+ return iKeyguard;
+ case 2:
+ RDebug::Printf( "%s %s (%u) iDevicelock=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, iDevicelock );
+ return iDevicelock;
+ default:
+ return NULL;
+ }
+ }
+
+// ----------------------------------------------------------
+// Handle window-server events
+// ----------------------------------------------------------
+void CLockAppStateControl::HandleWsEventL( const TWsEvent& aEvent, CCoeControl* /*aDestination*/)
+ {
+ TInt type = aEvent.Type( );
+ RDebug::Printf( "%s %s (%u) type=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, type );
+ switch ( type )
+ {
+ case KAknFullOrPartialForegroundLost: // partial or full fg lost
+ case KAknFullOrPartialForegroundGained: // partial or full fg gained
+ {
+ RDebug::Printf( "%s %s (%u) type=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, type );
+ RWsSession& ws = iCoeEnv->WsSession( );
+ TFileName windowName;
+ TInt fwgid = ws.GetFocusWindowGroup( );
+ ws.GetWindowGroupNameFromIdentifier( fwgid, windowName );
+ INFO_3( "CLockAppStateControl::HandleWsEventL type: %d - FocusWg: %d %S", type, fwgid, &windowName);
+ }
+ break;
+ case EEventKeyUp:
+ case EEventKey:
+ case EEventKeyDown:
+ {
+ RDebug::Printf( "%s %s (%u) EEventKey*=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, EEventKeyDown );
+ TKeyEvent* aKeyEvent = aEvent.Key();
+ TKeyResponse response = OfferKeyEventL( *aKeyEvent, (TEventCode)type );
+ }
+ break;
+ default:
+ break;
+ }
+ }
+
+// ---------------------------------------------------------------------------
+// From @c CAknAppUiBase. Overriden the parent method, because otherwise
+// the main lock state control would not receive the call, because is is not
+// window-owning control (=without window->not visible). The call is needed
+// because the main state control owns window-owning child controls.
+// ---------------------------------------------------------------------------
+void CLockAppStateControl::HandleResourceChange( TInt aType )
+ {
+ // these would not normally get handleresource call since they do not own window
+ RDebug::Printf( "%s %s (%u) aType=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, aType );
+ if(iIdle)
+ iIdle->HandleResourceChange( aType );
+ if(iKeyguard)
+ iKeyguard->HandleResourceChange( aType );
+ if(iDevicelock)
+ iDevicelock->HandleResourceChange( aType );
+ // call parent
+ CCoeControl::HandleResourceChange( aType );
+ }
+
+// ---------------------------------------------------------------------------
+// Update the environment state variable with the event.
+// ---------------------------------------------------------------------------
+TBool CLockAppStateControl::HandleEnvironmentChange( TUint aEventMask, TBool aEnable )
+ {
+ // check if there will be a change
+
+ if ( IsBitFieldSet( iEnvState, aEventMask ) != aEnable )
+ {
+ // set the bit-field
+ SetBitField( iEnvState, aEventMask, aEnable );
+ // notify current control
+ __ASSERT_DEBUG( iCurrentControl, DoPanic(ELockIllegalState));
+ iCurrentControl->HandleEnvironmentChange( iEnvState, aEventMask );
+ // return true because the environment changed
+ return ETrue;
+ }
+ return EFalse;
+ }
+
+// ---------------------------------------------------------------------------
+// Handle all Central Repository observer callbacks.
+// ---------------------------------------------------------------------------
+void CLockAppStateControl::HandleCenRepNotify(TUid aCenRepUid, TUint32 aKeyId, TInt aValue )
+ {
+ RDebug::Printf( "%s %s (%u) ???? Nothing done for aKeyId=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, aKeyId );
+
+ INFO_3( "CLockAppStateControl::HandleCenRepNotify %d %d = %d", aCenRepUid.iUid, aKeyId, aValue );
+ }
+
+// ---------------------------------------------------------------------------
+// Handle all Publish & Subscribe observer callbacks.
+// ---------------------------------------------------------------------------
+void CLockAppStateControl::HandlePubSubNotify(TUid aPubSubUid, TUint aKeyId, TInt aValue )
+ {
+ INFO_3( "CLockAppStateControl::HandlePubSubNotify %x %x = %d", aPubSubUid.iUid, aKeyId, aValue );
+ INFO_3( "CLockAppStateControl::HandlePubSubNotify KPSUidScreenSaver=%x KPSUidCtsyCallInformation=%x KPSUidAiInformation=%x", KPSUidScreenSaver, KPSUidCtsyCallInformation, KPSUidAiInformation );
+ INFO_3( "CLockAppStateControl::HandlePubSubNotify KPSUidHWRM=%x KHWRMGripStatus=%x KPSUidAiInformation=%x", KPSUidHWRM, KHWRMGripStatus, KPSUidAiInformation );
+ if ( aPubSubUid == KPSUidScreenSaver )
+ {
+ switch ( aKeyId )
+ {
+ case KScreenSaverOn:
+ {
+ INFO_1("CLockAppStateControl::ScreenSaver - %d", (aValue > 0));
+ HandleEnvironmentChange( KLockAppEnvScreenSaverOn, (aValue > 0) );
+ }
+ break;
+ default:
+ break;
+ }
+ }
+ else if ( aPubSubUid == KPSUidCtsyCallInformation )
+ {
+ switch ( aKeyId )
+ {
+ case KCTsyCallState:
+ {
+ PrintCallState( aValue );
+ HandleEnvironmentChange( KLockAppEnvPhonecallOngoing, (aValue > EPSCTsyCallStateNone) );
+ }
+ break;
+ default:
+ break;
+ }
+ }
+ else if ( aPubSubUid == KPSUidAiInformation ) // ActiveIdle
+ {
+ switch ( aKeyId )
+ {
+ case KActiveIdleState:
+ {
+ INFO_1("CLockAppStateControl::ActiveIdle - %d", (aValue == EPSAiForeground));
+ HandleEnvironmentChange( KLockAppEnvIdleOnForeground, (aValue == EPSAiForeground) );
+ }
+ break;
+ default:
+ break;
+ }
+ }
+ else if ( aPubSubUid == KPSUidHWRM )
+ {
+ switch ( aKeyId )
+ {
+ case KHWRMGripStatus:
+ {
+ INFO_1("CLockAppStateControl::Grip - %d", aValue );
+ HandleEnvironmentChange( KLockAppEnvGrip, (aValue == EPSHWRMGripOpen) );
+ }
+ break;
+ default:
+ break;
+ }
+ }
+ else if ( aPubSubUid == KUidFpsCategory )
+ {
+ switch ( aKeyId )
+ {
+ case KFpsAuthenticationKey:
+ {
+ INFO_1("CLockAppStateControl::Grip - %d", aValue );
+ #define EAuthenticationSuccess 1
+ HandleEnvironmentChange( KLockAppEnvFPS, (aValue == EAuthenticationSuccess) );
+ }
+ break;
+ default:
+ break;
+ }
+ }
+ }
+
+// ---------------------------------------------------------------------------
+// All keyevents should go trough here.
+// ---------------------------------------------------------------------------
+TKeyResponse CLockAppStateControl::OfferKeyEventL( const TKeyEvent& aKeyEvent, TEventCode aType )
+ {
+ RDebug::Printf( "%s %s (%u) iDevicelock=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, iDevicelock );
+ RDebug::Printf( "%s %s (%u) aKeyEvent.iCode=%x aType=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, aKeyEvent.iCode, aType );
+ TKeyResponse keyResponse = PreCheckKeyEvents( aKeyEvent, aType );
+ if ( keyResponse == EKeyWasNotConsumed )
+ {
+ if ( aKeyEvent.iRepeats == 0 )
+ {
+ // handle only without the repeats
+ INFO_3("KeyEvent %d, %d, %d", aType, aKeyEvent.iCode, aKeyEvent.iScanCode );
+ __ASSERT_DEBUG( iCurrentControl, DoPanic(ELockIllegalState));
+ keyResponse = iCurrentControl->OfferKeyEventL( aKeyEvent, aType );
+ }
+ else
+ {
+ // set consumed which are repeated
+ keyResponse = EKeyWasConsumed;
+ }
+ }
+
+ return keyResponse;
+ }
+
+// ---------------------------------------------------------------------------
+// From @c CLockAppObserverList. The main state control is the first
+// to handle the lock state changes, locks/unlocks the phone depending
+// on the state change.
+// ---------------------------------------------------------------------------
+void CLockAppStateControl::HandleLockStatusChangedL( TLockStatus aLockStatus )
+ {
+ __ASSERT_DEBUG( iCurrentControl, DoPanic(ELockIllegalState));
+ INFO_1("CLockAppStateControl::HandleLockStatusChangedL - %d", aLockStatus);
+ iCurrentControl->HandleDeActivateEventL( iEnvState );
+
+ switch ( aLockStatus )
+ {
+ case ELockNotActive:
+ {
+ iCurrentControl = iIdle;
+ MuteSounds( EFalse );
+ BringForward( EFalse );
+ }
+ break;
+ case EKeyguardActive:
+ {
+ iCurrentControl = iKeyguard;
+ MuteSounds( ETrue );
+ BringForward( ETrue );
+ }
+ break;
+ case EDevicelockActive:
+ {
+ RDebug::Printf( "%s %s (%u) iDevicelock=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, iDevicelock );
+ iCurrentControl = iDevicelock;
+ MuteSounds( ETrue );
+ BringForward( ETrue );
+ }
+ break;
+ default:
+ INFO_1("CLockAppStateControl::HandleLockStatusChangedL - ???? aLockStatus=%d", aLockStatus);
+ DoPanic( ELockUnknownValue );
+ break;
+ }
+
+ __ASSERT_DEBUG( iCurrentControl, DoPanic(ELockIllegalState));
+ iCurrentControl->HandleActivateEventL( iEnvState );
+
+ // finally we update the value (only place were changing the status is allowed)
+ iLockStatus = aLockStatus;
+ }
+
+// ---------------------------------------------------------------------------
+// Check if requested transition is valid.
+// ---------------------------------------------------------------------------
+TInt CLockAppStateControl::CheckIfLegal( TLockAppMessageReason aReason )
+ {
+ INFO_1("CLockAppStateControl::CheckIfLegal aReason=%d", aReason);
+ INFO_1("CLockAppStateControl::CheckIfLegal iLockStatus=%d", iLockStatus);
+ switch ( aReason )
+ {
+ case ELockAppEnableKeyguard:
+ {
+ RDebug::Printf( "%s %s (%u) ELockAppEnableKeyguard iLockStatus=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, iLockStatus );
+ switch ( iLockStatus )
+ {
+ case ELockNotActive:
+ if ( !CKeyLockPolicyApi::KeyguardAllowed() )
+ return KErrPermissionDenied;
+ else
+ return KErrNone;
+ case EKeyguardActive:
+ return KErrAlreadyExists;
+ case EDevicelockActive:
+ return KErrPermissionDenied;
+ }
+ }
+ break;
+ case ELockAppDisableKeyguard:
+ {
+ RDebug::Printf( "%s %s (%u) ELockAppDisableKeyguard iLockStatus=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, iLockStatus );
+ switch ( iLockStatus )
+ {
+ case ELockNotActive:
+ return KErrAlreadyExists;
+ case EKeyguardActive:
+ return KErrNone;
+ case EDevicelockActive:
+ return KErrPermissionDenied;
+ }
+ }
+ break;
+ case ELockAppEnableDevicelock:
+ {
+ RDebug::Printf( "%s %s (%u) ELockAppEnableDevicelock iLockStatus=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, iLockStatus );
+ switch ( iLockStatus )
+ {
+ case ELockNotActive:
+ return KErrNone;
+ case EKeyguardActive:
+ return KErrNone;
+ case EDevicelockActive:
+ return KErrAlreadyExists;
+ }
+ }
+ break;
+ case ELockAppDisableDevicelock:
+ {
+ RDebug::Printf( "%s %s (%u) ELockAppDisableDevicelock iLockStatus=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, iLockStatus );
+ switch ( iLockStatus )
+ {
+ case ELockNotActive:
+ return KErrAlreadyExists;
+ case EKeyguardActive:
+ return KErrPermissionDenied;
+ case EDevicelockActive:
+ return KErrNone;
+ }
+ }
+ break;
+ case ELockAppOfferKeyguard:
+ {
+ RDebug::Printf( "%s %s (%u) ELockAppOfferKeyguard iLockStatus=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, iLockStatus );
+ switch ( iLockStatus )
+ {
+ case ELockNotActive:
+ return KErrNone;
+ case EKeyguardActive:
+ return KErrPermissionDenied;
+ case EDevicelockActive:
+ return KErrPermissionDenied;
+ }
+ }
+ break;
+ case ELockAppShowKeysLockedNote:
+ {
+ RDebug::Printf( "%s %s (%u) ELockAppShowKeysLockedNote iLockStatus=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, iLockStatus );
+ switch ( iLockStatus )
+ {
+ case ELockNotActive:
+ return KErrPermissionDenied;
+ case EKeyguardActive:
+ return KErrNone;
+ case EDevicelockActive:
+ return KErrPermissionDenied;
+ }
+ }
+ break;
+ }
+ return KErrPermissionDenied;
+ }
+
+// ---------------------------------------------------------------------------
+// Prescreen key events for special cases before giving them to child controls
+// ---------------------------------------------------------------------------
+TKeyResponse CLockAppStateControl::PreCheckKeyEvents(const TKeyEvent& aKeyEvent, TEventCode aType )
+ {
+ RDebug::Printf( "%s %s (%u) aKeyEvent.iCode=%x aType=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, aKeyEvent.iCode, aType );
+ TKeyResponse keyResponse = EKeyWasNotConsumed;
+ // power key always turns the lights on
+ CheckForPowerKeyLights( aKeyEvent, aType );
+ if ( iLockEcsDetector->EcsNoteOnScreen( ) )
+ {
+ // the key events are fully handled by the emergency
+ // detector when emergency note is shown
+ keyResponse = EKeyWasConsumed;
+ }
+ else
+ {
+ if ( CheckForPhoneKeys( aKeyEvent, aType ) )
+ {
+ keyResponse = EKeyWasConsumed;
+ }
+ else if ( aKeyEvent.iCode == EKeyLeftShift || aKeyEvent.iCode == EKeyRightShift )
+ {
+ // eat these modifier events as they just cause problems elsewhere
+ keyResponse = EKeyWasConsumed;
+ }
+ }
+ return keyResponse;
+ }
+
+// ---------------------------------------------------------------------------
+// Checks if power key has been pressed and inform the sysap accordingly.
+// ---------------------------------------------------------------------------
+void CLockAppStateControl::CheckForPowerKeyLights( const TKeyEvent& aKeyEvent, TEventCode aType )
+ {
+ // only handle power key when keys are locked
+ RDebug::Printf( "%s %s (%u) aKeyEvent.iCode=%x aType=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, aKeyEvent.iCode, aType );
+ RDebug::Printf( "%s %s (%u) iLockStatus=%x ELockNotActive=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, iLockStatus, ELockNotActive );
+ if ( iLockStatus != ELockNotActive )
+ {
+ RDebug::Printf( "%s %s (%u) iFeatureNoPowerkey=%x EStdKeyDevice2=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, iFeatureNoPowerkey, EStdKeyDevice2 );
+ if ( (aType == EEventKey && aKeyEvent.iRepeats == 0) || (aType == EEventKeyDown && aKeyEvent.iScanCode == EStdKeyDevice2) ) // Power key
+ {
+ // If power key pressed, tell SysAp about if
+ if ( (aKeyEvent.iScanCode == EStdKeyDevice2 && aType == EEventKeyDown) || (iFeatureNoPowerkey && aKeyEvent.iCode == EKeyNo) )
+ {
+ // normal power key event
+ RDebug::Printf( "%s %s (%u) EEikKeyLockPowerKeyPressed=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, iFeatureNoPowerkey );
+ SendMessageToSysAp( EEikKeyLockPowerKeyPressed );
+ if ( iFeatureNoPowerkey )
+ {
+ RDebug::Printf( "%s %s (%u) EEikKeyLockLightsOnRequest=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, EEikKeyLockLightsOnRequest );
+ // end key as power key needs additional info (ugly solution)
+ SendMessageToSysAp( EEikKeyLockLightsOnRequest );
+ }
+ }
+ }
+ }
+ }
+
+// ---------------------------------------------------------------------------
+// Checks if green or red key has been pressed and forward it to phone
+// in case there is a phone call ongoing.
+// ---------------------------------------------------------------------------
+TBool CLockAppStateControl::CheckForPhoneKeys( const TKeyEvent& aKeyEvent, TEventCode aType )
+ {
+ RDebug::Printf( "%s %s (%u) aKeyEvent.iCode=%x aType=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, aKeyEvent.iCode, aType );
+#ifndef RD_GLOBALWG_PRIORITY_CHANGE
+ // only handle phone keys when locked and phonecall ongoing
+ RDebug::Printf( "%s %s (%u) iLockStatus=%x ELockNotActive=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, iLockStatus, ELockNotActive );
+ if ( iLockStatus != ELockNotActive )
+ {
+ if ( aKeyEvent.iScanCode == EStdKeyYes || aKeyEvent.iScanCode == EStdKeyNo )
+ {
+ if ( IsBitFieldSet( iEnvState, KLockAppEnvPhonecallOngoing ) ) // TODO what about video-call
+ {
+ // send Green and Red keys to phoneapp's windowgroup
+ INFO( "CLockAppStateControl::CheckForPhoneKeys - SendKeyToPhoneApp");
+ SendKeyToPhoneApp( aKeyEvent, aType );
+ return ETrue;
+ }
+ }
+ }
+#endif // !RD_GLOBALWG_PRIORITY_CHANGE
+ return EFalse;
+ }
+
+// ---------------------------------------------------------------------------
+// Brings foreground/background the root window.
+// ---------------------------------------------------------------------------
+void CLockAppStateControl::BringForward(TBool aForeground )
+ {
+ RDebug::Printf( "%s %s (%u) aForeground=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, aForeground );
+ if ( aForeground )
+ {
+ INFO_4( "CLockAppStateControl::BringForward(1) STA - EvWG(%d,%d) ViWG(%d,%d)",
+ iWGEventGate.OrdinalPosition(), iWGEventGate.OrdinalPriority(),
+ iWGVisibilityGate.OrdinalPosition(), iWGVisibilityGate.OrdinalPriority());
+ // not sure if these cause flush in WindowServer
+ iWGVisibilityGate.SetOrdinalPosition( 0, ECoeWinPriorityAlwaysAtFront + KGlobalWindowPriority_LockVisibilityGate );
+ iWGEventGate.SetOrdinalPosition( 0, ECoeWinPriorityAlwaysAtFront + KGlobalWindowPriority_LockVisibilityGate );
+ iEikonEnv->BringForwards( ETrue, ECoeWinPriorityAlwaysAtFront + KGlobalWindowPriority_KeyLock );
+ /*if ( iIncallBubble )
+ {
+ iIncallBubble->SetIncallBubbleAllowedInIdleL( ETrue );
+ }*/
+ }
+ else
+ {
+ INFO_4( "CLockAppStateControl::BringForward(0) STA - EvWG(%d,%d) ViWG(%d,%d)",
+ iWGEventGate.OrdinalPosition(), iWGEventGate.OrdinalPriority(),
+ iWGVisibilityGate.OrdinalPosition(), iWGVisibilityGate.OrdinalPriority());
+
+ // not sure if these cause flush in WindowServer
+ iWGVisibilityGate.SetOrdinalPosition( 0, ECoeWinPriorityNeverAtFront );
+ iWGEventGate.SetOrdinalPosition( 0, ECoeWinPriorityNeverAtFront );
+ iEikonEnv->BringForwards( EFalse );
+ /*if ( iIncallBubble )
+ {
+ iIncallBubble->SetIncallBubbleAllowedInIdleL( EFalse );
+ }*/
+ }
+
+ INFO_4( "CLockAppStateControl::BringForward END - EvWG(%d,%d) ViWG(%d,%d)",
+ iWGEventGate.OrdinalPosition(), iWGEventGate.OrdinalPriority(),
+ iWGVisibilityGate.OrdinalPosition(), iWGVisibilityGate.OrdinalPriority());
+ }
+
+// ---------------------------------------------------------------------------
+// Mute key sounds when phone is locked.
+// ---------------------------------------------------------------------------
+void CLockAppStateControl::MuteSounds(TBool aMuteSounds )
+ {
+ RDebug::Printf( "%s %s (%u) aMuteSounds=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, aMuteSounds );
+ if ( iSoundsMuted != aMuteSounds )
+ {
+ if ( aMuteSounds )
+ {
+ TRAPD(err, iAvkonAppUiBase->KeySounds()->PushContextL(R_AVKON_SILENT_SKEY_LIST))
+ if ( !err )
+ {
+ iAvkonAppUiBase->KeySounds()->BringToForeground();
+ iAvkonAppUiBase->KeySounds()->LockContext();
+ iSoundsMuted = ETrue;
+ }
+ }
+ else
+ {
+ iAvkonAppUiBase->KeySounds()->ReleaseContext();
+ iAvkonAppUiBase->KeySounds()->PopContext();
+ iSoundsMuted = EFalse;
+ }
+ }
+ }
+
+// ---------------------------------------------------------------------------
+// Print out call state.
+// ---------------------------------------------------------------------------
+void CLockAppStateControl::PrintCallState( TInt aValue )
+ {
+ RDebug::Printf( "%s %s (%u) aValue=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, aValue );
+ switch ( aValue )
+ {
+ case EPSCTsyCallStateUninitialized:
+ INFO("CLockAppStateControl::PrintCallState - Uninitialized")
+ break;
+ case EPSCTsyCallStateNone:
+ INFO("CLockAppStateControl::PrintCallState - None")
+ break;
+ case EPSCTsyCallStateAlerting:
+ INFO("CLockAppStateControl::PrintCallState - Alerting")
+ break;
+ case EPSCTsyCallStateRinging:
+ INFO("CLockAppStateControl::PrintCallState - Ringing")
+ break;
+ case EPSCTsyCallStateDialling:
+ INFO("CLockAppStateControl::PrintCallState - Dialling")
+ break;
+ case EPSCTsyCallStateAnswering:
+ INFO("CLockAppStateControl::PrintCallState - Answering")
+ break;
+ case EPSCTsyCallStateDisconnecting:
+ INFO("CLockAppStateControl::PrintCallState - Disconnecting")
+ break;
+ case EPSCTsyCallStateConnected:
+ INFO("CLockAppStateControl::PrintCallState - Connected")
+ break;
+ case EPSCTsyCallStateHold:
+ INFO("CLockAppStateControl::PrintCallState - Hold")
+ break;
+ default:
+ break;
+ }
+ }
+
+// END OF FILE
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/securitydialogs/lockapp/src/lockappstatepublisher.cpp Wed Sep 01 12:19:59 2010 +0100
@@ -0,0 +1,107 @@
+/*
+* Copyright (c) 2007 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: Publishes LockApp states to other applications
+ *
+*/
+
+
+#include "lockappstatepublisher.h"
+#include "lockapputils.h"
+
+// defines keys KPSUidAvkonDomain, KAknKeyguardStatus, TAknKeyguardStatus
+#include <avkondomainpskeys.h>
+
+// ---------------------------------------------------------------------------
+// Standard Symbian OS construction sequence
+// ---------------------------------------------------------------------------
+CLockAppStatePublisher* CLockAppStatePublisher::NewL( )
+ {
+ CLockAppStatePublisher* self = new (ELeave) CLockAppStatePublisher();
+ CleanupStack::PushL( self );
+ self->ConstructL( );
+ CleanupStack::Pop( self );
+ return self;
+ }
+
+// ---------------------------------------------------------------------------
+// Standard C++ constructor
+// ---------------------------------------------------------------------------
+CLockAppStatePublisher::CLockAppStatePublisher()
+ {
+ // no implementation required
+ }
+
+// ---------------------------------------------------------------------------
+// Closes the property handle.
+// ---------------------------------------------------------------------------
+CLockAppStatePublisher::~CLockAppStatePublisher()
+ {
+ iStatusProperty.Close();
+ }
+
+// ---------------------------------------------------------------------------
+// Defines the P&S key storing keyguard status
+// ---------------------------------------------------------------------------
+void CLockAppStatePublisher::ConstructL()
+ {
+ // for some reason P&S capability policy macros do not work with codetest
+#ifdef _LOCKAPP_CODETEST_DEBUG
+ RProperty::Define(
+ KPSUidAvkonDomain,
+ KAknKeyguardStatus,
+ RProperty::EInt,
+ TSecurityPolicy(TSecurityPolicy::EAlwaysPass),
+ TSecurityPolicy(TSecurityPolicy::EAlwaysPass));
+#else
+ // defines the P&S key
+ _LIT_SECURITY_POLICY_C1(KWritePolicy, ECapabilityWriteDeviceData);
+ RProperty::Define(
+ KPSUidAvkonDomain,
+ KAknKeyguardStatus,
+ RProperty::EInt,
+ TSecurityPolicy(TSecurityPolicy::EAlwaysPass),
+ KWritePolicy);
+#endif
+ // creates handle to property
+ iStatusProperty.Attach(KPSUidAvkonDomain, KAknKeyguardStatus);
+ }
+
+// ---------------------------------------------------------------------------
+// From @c CLockAppStateObserver. Used to publish lockapp state
+// to external parties.
+// ---------------------------------------------------------------------------
+void CLockAppStatePublisher::HandleLockStatusChangedL( TLockStatus aLockStatus )
+ {
+ switch ( aLockStatus )
+ {
+ case ELockNotActive:
+ {
+ iStatusProperty.Set(EKeyguardNotActive);
+ }
+ break;
+ case EDevicelockActive:
+ {
+ iStatusProperty.Set(EKeyguardAutolockEmulation);
+ }
+ break;
+ case EKeyguardActive:
+ {
+ iStatusProperty.Set(EKeyguardLocked);
+ }
+ break;
+ default:
+ DoPanic(ELockUnknownValue);
+ break;
+ }
+ }
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/securitydialogs/lockapp/src/lockapputils.cpp Wed Sep 01 12:19:59 2010 +0100
@@ -0,0 +1,111 @@
+/*
+* Copyright (c) 2007 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: Lock App internal utils
+ *
+*/
+
+
+#include <e32base.h>
+#include <coemain.h>
+#include <apgwgnam.h>
+#include "lockapputils.h"
+
+#define KSysApUid TUid::Uid(0x100058F3)
+#define KPhoneAppUid TUid::Uid(0x100058B3)
+
+// ---------------------------------------------------------------------------
+// Queries bits in aStatusMask specified by the aQueryMask
+// ---------------------------------------------------------------------------
+TBool IsBitFieldSet( TUint aStatusMask, TUint aQueryMask )
+ {
+ return (aStatusMask & aQueryMask);
+ }
+
+// ---------------------------------------------------------------------------
+// Sets bits in aResultMask specified by the aSetMask
+// ---------------------------------------------------------------------------
+void SetBitField( TUint &aResultMask, TUint aSetMask, TBool aSet )
+ {
+ if ( aSet )
+ {
+ aResultMask = aResultMask | aSetMask;
+ }
+ else
+ {
+ aResultMask = aResultMask & ~ aSetMask;
+ }
+ }
+
+// ---------------------------------------------------------------------------
+// Panic function for LockApp internal panics.
+// ---------------------------------------------------------------------------
+void DoPanic( TLockAppPanic aPanic )
+ {
+ _LIT(KPanic,"LockApp");
+ User::Panic( KPanic, aPanic );
+ }
+
+// ---------------------------------------------------------------------------
+// Causes client Panic (illegal use of the server services).
+// Used RMessagePtr2::Panic() also completes the message.
+// ---------------------------------------------------------------------------
+void PanicClient(const RMessagePtr2& aMessage, TLockAppPanic aPanic )
+ {
+ _LIT(KPanic, "LockAppServer");
+ aMessage.Panic( KPanic, aPanic );
+ }
+
+// ---------------------------------------------------------------------------
+// Sends application spesific events to Sysap.
+// Used mainly for lights control.
+// ---------------------------------------------------------------------------
+void SendMessageToSysAp( TInt aMessage )
+ {
+ RWsSession& ws = CCoeEnv::Static()->WsSession( );
+ TInt wgId = 0;
+ CApaWindowGroupName::FindByAppUid( KSysApUid, ws, wgId );
+
+ // if sysap window group exists
+ if ( wgId )
+ {
+ TWsEvent event;
+ event.SetType( aMessage );
+ event.SetTimeNow( );
+ ws.SendEventToWindowGroup( wgId, event );
+ }
+ }
+
+// ---------------------------------------------------------------------------
+// Sends a key event to the windowgroup in background.
+// Used mainly for sending red and green keys to phone app when
+// devicelock or keyguard is in foreground.
+// ---------------------------------------------------------------------------
+void SendKeyToPhoneApp( const TKeyEvent& aKey, TEventCode aType )
+ {
+ RWsSession& ws = CCoeEnv::Static()->WsSession( );
+ TInt wgId = 0;
+ CApaWindowGroupName::FindByAppUid( KPhoneAppUid, ws, wgId );
+
+ // if sysap window group exists
+ if ( wgId )
+ {
+ TWsEvent event;
+ *event.Key() = aKey;
+ event.SetType( aType );
+ event.SetTimeNow( );
+ ws.SendEventToWindowGroup( wgId, event );
+ }
+ }
+
+// END OF FILE
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/securitydialogs/lockapp/src/lockappwait.cpp Wed Sep 01 12:19:59 2010 +0100
@@ -0,0 +1,176 @@
+/*
+* Copyright (c) 2007 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: Async-Sync utility class
+ *
+*/
+
+
+#include <e32base.h>
+#include <eikenv.h>
+#include <eikappui.h>
+#include "lockappwait.h"
+
+// ----------------------------------------------------------
+// Standard Symbian OS construction sequence
+// ----------------------------------------------------------
+//
+CWait* CWait::NewL( )
+ {
+ CWait* self = new (ELeave) CWait( );
+ CleanupStack::PushL( self );
+ self->ConstructL( );
+ CleanupStack::Pop( self );
+ return self;
+ }
+
+// ----------------------------------------------------------
+// 2nd phase constructor.
+// ----------------------------------------------------------
+//
+void CWait::ConstructL( )
+ {
+ CActiveScheduler::Add( this );
+ }
+
+// ----------------------------------------------------------
+// Constructor
+// ----------------------------------------------------------
+//
+CWait::CWait( ) :
+ CActive(0)
+ {
+ // no implementation required
+ }
+
+// ----------------------------------------------------------
+// Destructor.
+// ----------------------------------------------------------
+//
+CWait::~CWait( )
+ {
+ Cancel( );
+ }
+
+// ----------------------------------------------------------
+//
+// ----------------------------------------------------------
+//
+TInt CWait::WaitForRequestL( )
+ {
+ CWaitAbsorbingControl* absorbing = CWaitAbsorbingControl::NewLC( );
+ SetActive( );
+ iWait.Start( );
+ CleanupStack::PopAndDestroy( absorbing );
+ return iStatus.Int( );
+ }
+
+// ----------------------------------------------------------
+//
+// ----------------------------------------------------------
+//
+void CWait::RunL( )
+ {
+ if ( iWait.IsStarted( ) )
+ {
+ iWait.AsyncStop( );
+ }
+ }
+
+// ----------------------------------------------------------
+// Cancels code request
+// ----------------------------------------------------------
+//
+void CWait::DoCancel( )
+ {
+ if ( iWait.IsStarted( ) )
+ {
+ iWait.AsyncStop( );
+ }
+ }
+
+// ----------------------------------------------------------
+// Sets active request type
+// ----------------------------------------------------------
+//
+void CWait::SetRequestType(TInt aRequestType )
+ {
+ iRequestType = aRequestType;
+ }
+
+// ----------------------------------------------------------
+// Gets active request type
+// ----------------------------------------------------------
+//
+TInt CWait::GetRequestType( )
+ {
+ return iRequestType;
+ }
+
+// ----------------------------------------------------------
+// Standard Symbian OS construction sequence
+// ----------------------------------------------------------
+//
+CWaitAbsorbingControl* CWaitAbsorbingControl::NewLC( )
+ {
+ CWaitAbsorbingControl* self= new (ELeave) CWaitAbsorbingControl();
+ CleanupStack::PushL( self );
+ self->ConstructL( );
+ return self;
+ }
+
+// ----------------------------------------------------------
+//
+// ----------------------------------------------------------
+//
+CWaitAbsorbingControl::CWaitAbsorbingControl( )
+ {
+ // no implementation required
+ }
+
+// ----------------------------------------------------------
+// Destructor.
+// ----------------------------------------------------------
+//
+CWaitAbsorbingControl::~CWaitAbsorbingControl( )
+ {
+ if ( iCoeEnv && iAppUi )
+ iAppUi->RemoveFromStack( this );
+ }
+
+// ----------------------------------------------------------
+//
+// ----------------------------------------------------------
+//
+void CWaitAbsorbingControl::ConstructL( )
+ {
+ CreateWindowL( );
+ SetExtent( TPoint( 0, 0 ), TSize( 0, 0 ) );
+ ActivateL( );
+ SetPointerCapture( ETrue );
+ ClaimPointerGrab( ETrue );
+ iAppUi = iEikonEnv->EikAppUi();
+ iAppUi->AddToStackL( this, ECoeStackPriorityEnvironmentFilter );
+ }
+
+// ----------------------------------------------------------
+//
+// ----------------------------------------------------------
+//
+TKeyResponse CWaitAbsorbingControl::OfferKeyEventL(const TKeyEvent& /*aKeyEvent*/, TEventCode /*aType*/)
+ {
+ RDebug::Printf( "%s %s (%u) value=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, 1 );
+ return EKeyWasConsumed;
+ }
+
+// End of file
--- a/securitydialogs/lockclient/eabi/lockclientu.def Tue Aug 31 16:04:40 2010 +0300
+++ b/securitydialogs/lockclient/eabi/lockclientu.def Wed Sep 01 12:19:59 2010 +0100
@@ -21,4 +21,8 @@
_ZN20CDevicelockAccessApiD0Ev @ 20 NONAME
_ZN20CDevicelockAccessApiD1Ev @ 21 NONAME
_ZN20CDevicelockAccessApiD2Ev @ 22 NONAME
+ _ZTI18CKeyguardAccessApi @ 23 NONAME ; #<TI>#
+ _ZTI20CDevicelockAccessApi @ 24 NONAME ; #<TI>#
+ _ZTV18CKeyguardAccessApi @ 25 NONAME ; #<VT>#
+ _ZTV20CDevicelockAccessApi @ 26 NONAME ; #<VT>#
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/securitydialogs/lockclient/group/ABLD.BAT Wed Sep 01 12:19:59 2010 +0100
@@ -0,0 +1,15 @@
+@ECHO OFF
+
+REM Bldmake-generated batch file - ABLD.BAT
+REM ** DO NOT EDIT **
+
+perl -S ABLD.PL "\sf\mw\securitysrv\securitydialogs\lockclient\group\\" %1 %2 %3 %4 %5 %6 %7 %8 %9
+if errorlevel==1 goto CheckPerl
+goto End
+
+:CheckPerl
+perl -v >NUL
+if errorlevel==1 echo Is Perl, version 5.003_07 or later, installed?
+goto End
+
+:End
--- a/securitydialogs/lockclient/group/bld.inf Tue Aug 31 16:04:40 2010 +0300
+++ b/securitydialogs/lockclient/group/bld.inf Wed Sep 01 12:19:59 2010 +0100
@@ -20,12 +20,8 @@
PRJ_EXPORTS
-/* this is also done in .pro , but doesn't harm to do it here, too */
../rom/lockclient.iby CORE_MW_LAYER_IBY_EXPORT_PATH(lockclient.iby)
PRJ_MMPFILES
-/*
-Not any more. This is done in the QT way, using lockclient.pro
lockclient.mmp
-*/
\ No newline at end of file
--- a/securitydialogs/lockclient/group/bwins/lockclientu.def Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,20 +0,0 @@
-EXPORTS
- ?ShowKeysLockedNote@CKeyguardAccessApi@@QAEHXZ @ 1 NONAME ; int CKeyguardAccessApi::ShowKeysLockedNote(void)
- ?TestDestruct@CKeyguardAccessApi@@QAEHXZ @ 2 NONAME ; int CKeyguardAccessApi::TestDestruct(void)
- ?NewL@CDevicelockAccessApi@@SAPAV1@XZ @ 3 NONAME ; class CDevicelockAccessApi * CDevicelockAccessApi::NewL(void)
- ?OfferKeyguard@CKeyguardAccessApi@@QAEHXZ @ 4 NONAME ; int CKeyguardAccessApi::OfferKeyguard(void)
- ?IsKeyguardEnabled@CKeyguardAccessApi@@QAEHXZ @ 5 NONAME ; int CKeyguardAccessApi::IsKeyguardEnabled(void)
- ?EnableKeyguard@CKeyguardAccessApi@@QAEHH@Z @ 6 NONAME ; int CKeyguardAccessApi::EnableKeyguard(int)
- ?IsKeylockEnabled@CKeyguardAccessApi@@QAEHXZ @ 7 NONAME ; int CKeyguardAccessApi::IsKeylockEnabled(void)
- ?IsDevicelockEnabled@CDevicelockAccessApi@@QAEHXZ @ 8 NONAME ; int CDevicelockAccessApi::IsDevicelockEnabled(void)
- ?DisableDevicelock@CDevicelockAccessApi@@QAEHXZ @ 9 NONAME ; int CDevicelockAccessApi::DisableDevicelock(void)
- ?TestPanicClient@CKeyguardAccessApi@@QAEHXZ @ 10 NONAME ; int CKeyguardAccessApi::TestPanicClient(void)
- ?TestInternal@CKeyguardAccessApi@@QAEHXZ @ 11 NONAME ; int CKeyguardAccessApi::TestInternal(void)
- ?DisableKeyguard@CKeyguardAccessApi@@QAEHH@Z @ 12 NONAME ; int CKeyguardAccessApi::DisableKeyguard(int)
- ?EnableDevicelock@CDevicelockAccessApi@@QAEHW4TDevicelockReason@@@Z @ 13 NONAME ; int CDevicelockAccessApi::EnableDevicelock(enum TDevicelockReason)
- ?IsKeylockEnabled@CDevicelockAccessApi@@QAEHXZ @ 14 NONAME ; int CDevicelockAccessApi::IsKeylockEnabled(void)
- ??1CKeyguardAccessApi@@UAE@XZ @ 15 NONAME ; CKeyguardAccessApi::~CKeyguardAccessApi(void)
- ??1CDevicelockAccessApi@@UAE@XZ @ 16 NONAME ; CDevicelockAccessApi::~CDevicelockAccessApi(void)
- ?OfferDevicelock@CDevicelockAccessApi@@QAEHXZ @ 17 NONAME ; int CDevicelockAccessApi::OfferDevicelock(void)
- ?NewL@CKeyguardAccessApi@@SAPAV1@XZ @ 18 NONAME ; class CKeyguardAccessApi * CKeyguardAccessApi::NewL(void)
-
--- a/securitydialogs/lockclient/group/eabi/lockclientu.def Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,24 +0,0 @@
-EXPORTS
- _ZN18CKeyguardAccessApi12TestDestructEv @ 1 NONAME
- _ZN18CKeyguardAccessApi12TestInternalEv @ 2 NONAME
- _ZN18CKeyguardAccessApi13OfferKeyguardEv @ 3 NONAME
- _ZN18CKeyguardAccessApi14EnableKeyguardEi @ 4 NONAME
- _ZN18CKeyguardAccessApi15DisableKeyguardEi @ 5 NONAME
- _ZN18CKeyguardAccessApi15TestPanicClientEv @ 6 NONAME
- _ZN18CKeyguardAccessApi16IsKeylockEnabledEv @ 7 NONAME
- _ZN18CKeyguardAccessApi17IsKeyguardEnabledEv @ 8 NONAME
- _ZN18CKeyguardAccessApi18ShowKeysLockedNoteEv @ 9 NONAME
- _ZN18CKeyguardAccessApi4NewLEv @ 10 NONAME
- _ZN18CKeyguardAccessApiD0Ev @ 11 NONAME
- _ZN18CKeyguardAccessApiD1Ev @ 12 NONAME
- _ZN18CKeyguardAccessApiD2Ev @ 13 NONAME
- _ZN20CDevicelockAccessApi15OfferDevicelockEv @ 14 NONAME
- _ZN20CDevicelockAccessApi16EnableDevicelockE17TDevicelockReason @ 15 NONAME
- _ZN20CDevicelockAccessApi16IsKeylockEnabledEv @ 16 NONAME
- _ZN20CDevicelockAccessApi17DisableDevicelockEv @ 17 NONAME
- _ZN20CDevicelockAccessApi19IsDevicelockEnabledEv @ 18 NONAME
- _ZN20CDevicelockAccessApi4NewLEv @ 19 NONAME
- _ZN20CDevicelockAccessApiD0Ev @ 20 NONAME
- _ZN20CDevicelockAccessApiD1Ev @ 21 NONAME
- _ZN20CDevicelockAccessApiD2Ev @ 22 NONAME
-
--- a/securitydialogs/lockclient/group/lockclient.pro Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,51 +0,0 @@
-#
-# Copyright (c) 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:
-#
-
-
-TEMPLATE = lib
-TARGET = lockclient
-
-TARGET.UID3 = 0x2000B124
-
-TARGET.CAPABILITY = CAP_GENERAL_DLL
-
-
-DEPENDPATH += .
-DEPENDPATH += ../src
-DEPENDPATH += ../inc
-
-INCLUDEPATH += .
-
-CONFIG += hb
-
-# Input
-SOURCES += devicelockaccessapi.cpp \
- keyguardaccessapi.cpp \
- lockaccessextension.cpp
-
-HEADERS = lockaccessextension.h
-
-LIBS += -lxqservice
-LIBS += -lxqserviceutil
-LIBS += -lapparc
-LIBS += -lapgrfx
-
-symbian*: {
- TARGET.EPOCALLOWDLLDATA = 1
- MMP_RULES -= "OPTION_REPLACE ARMCC --export_all_vtbl -D__QT_NOEFFECTMACRO_DONOTUSE"
- }
-
-BLD_INF_RULES.prj_exports += "../rom/lockclient.iby CORE_APP_LAYER_IBY_EXPORT_PATH(lockclient.iby)"
--- a/securitydialogs/lockclient/inc/lockaccessextension.h Tue Aug 31 16:04:40 2010 +0300
+++ b/securitydialogs/lockclient/inc/lockaccessextension.h Wed Sep 01 12:19:59 2010 +0100
@@ -21,12 +21,6 @@
#include <e32base.h>
-#if defined(_DEBUG)
-#define RDEBUG( x, y ) RDebug::Printf( "%s %s (%u) %s=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, x, y );
-#else
-#define RDEBUG( x, y )
-#endif
-
class RWsSession;
/**
--- a/securitydialogs/lockclient/lockclient.pro Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,21 +0,0 @@
-#
-# Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-# All rights reserved.
-# This component and the accompanying materials are made available
-# under the terms of "Eclipse Public License v1.0"
-# which accompanies this distribution, and is available
-# at the URL "http://www.eclipse.org/legal/epl-v10.html".
-#
-# Initial Contributors:
-# Nokia Corporation - initial contribution.
-#
-# Contributors:
-#
-# Description:
-#
-
-TEMPLATE = subdirs
-
-SYMBIAN_PLATFORMS = WINSCW ARMV5
-
-SUBDIRS += group/lockclient.pro
--- a/securitydialogs/lockclient/rom/lockclient.iby Tue Aug 31 16:04:40 2010 +0300
+++ b/securitydialogs/lockclient/rom/lockclient.iby Wed Sep 01 12:19:59 2010 +0100
@@ -20,6 +20,6 @@
#include <data_caging_paths_for_iby.hrh>
//file=ABI_DIR\BUILD_DIR\lockclient.dll SHARED_LIB_DIR\lockclient.dll
-file=ABI_DIR\BUILD_DIR\lockclient.dll SHARED_LIB_DIR\lockclient.dll
+file=ABI_DIR\UDEB\lockclient.dll SHARED_LIB_DIR\lockclient.dll
#endif // __LOCKCLIENT_IBY__
--- a/securitydialogs/lockclient/src/devicelockaccessapi.cpp Tue Aug 31 16:04:40 2010 +0300
+++ b/securitydialogs/lockclient/src/devicelockaccessapi.cpp Wed Sep 01 12:19:59 2010 +0100
@@ -29,7 +29,6 @@
// ---------------------------------------------------------------------------
EXPORT_C CDevicelockAccessApi* CDevicelockAccessApi::NewL( )
{
- RDEBUG("0", 0);
CDevicelockAccessApi* self = new (ELeave) CDevicelockAccessApi( );
CleanupStack::PushL( self );
self->ConstructL( );
@@ -42,7 +41,6 @@
// ---------------------------------------------------------------------------
CDevicelockAccessApi::CDevicelockAccessApi()
{
- RDEBUG("0", 0);
}
// ---------------------------------------------------------------------------
@@ -71,7 +69,6 @@
// ---------------------------------------------------------------------------
EXPORT_C TBool CDevicelockAccessApi::IsKeylockEnabled()
{
- RDEBUG("0", 0);
TInt value;
TInt err = RProperty::Get(KPSUidAvkonDomain, KAknKeyguardStatus, value);
if ( err == KErrNone )
@@ -97,7 +94,6 @@
// ---------------------------------------------------------------------------
EXPORT_C TBool CDevicelockAccessApi::IsDevicelockEnabled()
{
- RDEBUG("0", 0);
TInt value;
TInt err = RProperty::Get(KPSUidAvkonDomain, KAknKeyguardStatus, value);
if ( err == KErrNone )
@@ -123,7 +119,6 @@
// ---------------------------------------------------------------------------
EXPORT_C TInt CDevicelockAccessApi::EnableDevicelock( TDevicelockReason aReason )
{
- RDEBUG("aReason", aReason);
if ( iLockAccessExtension )
{
switch (aReason)
@@ -146,7 +141,6 @@
// ---------------------------------------------------------------------------
EXPORT_C TInt CDevicelockAccessApi::OfferDevicelock()
{
- RDEBUG("0", 0);
if ( iLockAccessExtension )
{
return iLockAccessExtension->SendMessage( ELockAppOfferDevicelock );
@@ -163,7 +157,6 @@
// ---------------------------------------------------------------------------
EXPORT_C TInt CDevicelockAccessApi::DisableDevicelock()
{
- RDEBUG("0", 0);
if ( iLockAccessExtension )
{
return iLockAccessExtension->SendMessage( ELockAppDisableDevicelock );
--- a/securitydialogs/lockclient/src/keyguardaccessapi.cpp Tue Aug 31 16:04:40 2010 +0300
+++ b/securitydialogs/lockclient/src/keyguardaccessapi.cpp Wed Sep 01 12:19:59 2010 +0100
@@ -24,15 +24,11 @@
#include <e32property.h> // P&S API
#include <e32debug.h>
-#include <QDebug>
-
// ---------------------------------------------------------------------------
// Standard Symbian OS construction sequence
// ---------------------------------------------------------------------------
EXPORT_C CKeyguardAccessApi* CKeyguardAccessApi::NewL( )
{
- RDEBUG("0", 0);
-
CKeyguardAccessApi* self = new (ELeave) CKeyguardAccessApi( );
CleanupStack::PushL( self );
self->ConstructL( );
@@ -45,7 +41,6 @@
// ---------------------------------------------------------------------------
CKeyguardAccessApi::CKeyguardAccessApi()
{
- RDEBUG("0", 0);
}
// ---------------------------------------------------------------------------
@@ -66,7 +61,6 @@
// ---------------------------------------------------------------------------
void CKeyguardAccessApi::ConstructL( )
{
- RDEBUG("0", 0);
iLockAccessExtension = new (ELeave) RLockAccessExtension;
}
@@ -75,8 +69,6 @@
// ---------------------------------------------------------------------------
EXPORT_C TBool CKeyguardAccessApi::IsKeylockEnabled()
{
-
- RDEBUG("0", 0);
TInt value;
TInt err = RProperty::Get(KPSUidAvkonDomain, KAknKeyguardStatus, value);
if ( err == KErrNone )
@@ -102,7 +94,6 @@
// ---------------------------------------------------------------------------
EXPORT_C TBool CKeyguardAccessApi::IsKeyguardEnabled()
{
- RDEBUG("0", 0);
TInt value;
TInt err = RProperty::Get(KPSUidAvkonDomain, KAknKeyguardStatus, value);
if ( err == KErrNone )
@@ -143,15 +134,12 @@
// ---------------------------------------------------------------------------
EXPORT_C TInt CKeyguardAccessApi::DisableKeyguard( TBool aWithNote )
{
- RDEBUG("aWithNote", aWithNote);
if ( iLockAccessExtension )
{
- RDEBUG("0", 1);
return iLockAccessExtension->SendMessage( ELockAppDisableKeyguard, aWithNote );
}
else
{
- RDEBUG("0", 0);
return KErrNotFound;
}
}
@@ -161,7 +149,6 @@
// ---------------------------------------------------------------------------
EXPORT_C TInt CKeyguardAccessApi::OfferKeyguard()
{
- RDEBUG("0", 0);
if ( iLockAccessExtension )
{
return iLockAccessExtension->SendMessage( ELockAppOfferKeyguard );
@@ -177,7 +164,6 @@
// ---------------------------------------------------------------------------
EXPORT_C TInt CKeyguardAccessApi::ShowKeysLockedNote()
{
- RDEBUG("0", 0);
if ( iLockAccessExtension )
{
return iLockAccessExtension->SendMessage( ELockAppShowKeysLockedNote );
--- a/securitydialogs/lockclient/src/lockaccessextension.cpp Tue Aug 31 16:04:40 2010 +0300
+++ b/securitydialogs/lockclient/src/lockaccessextension.cpp Wed Sep 01 12:19:59 2010 +0100
@@ -15,20 +15,17 @@
*
*/
+
#include "lockaccessextension.h"
#include <lockappclientserver.h>
#include <e32property.h> // P&S API
#include <apgtask.h> // TApaTask, TApaTaskList
#include <coemain.h> // CCoeEnv
-#include "../../Autolock/PubSub/securityuisprivatepskeys.h"
-#include <apgcli.h>
-#include <apacmdln.h>
+
-#include <xqservicerequest.h>
-#include <xqserviceutil.h>
-#include <xqrequestinfo.h>
-#include <xqaiwrequest.h>
-#include <xqappmgr.h>
+// Constants
+const TInt KTimesToConnectServer( 2);
+const TInt KTimeoutBeforeRetrying( 50000);
// ---------------------------------------------------------------------------
// Gets server version, needed for connection
@@ -44,8 +41,6 @@
TInt RLockAccessExtension::TryConnect( RWsSession& aWsSession )
{
TInt ret(KErrNone);
- /*
- this is the old methd. Now we use QtHighway
TApaTaskList list(aWsSession);
// check that lockapp is running
TApaTask task = list.FindApp( KLockAppUid );
@@ -67,8 +62,6 @@
RDebug::Printf( "%s %s (%u) ???? LockApp task not found=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, KLockAppUid );
ret = KErrNotReady;
}
- */
- RDEBUG("ret", ret);
return ret;
}
@@ -78,70 +71,7 @@
TInt RLockAccessExtension::EnsureConnected( )
{
TInt ret(KErrNone);
-
- // Now we use QtHighway, but nevertheless need to be sure that only 1 process is running
- // This is done because Autolock.exe should start at the beginning, but it might not be ready yet.
- // As Qthighway will start it, it's better to give time for the first one to prepare itself.
- TInt err = KErrNone;
- TInt numAttempts = 0;
- TInt numberOfInstances = 0;
- do
- {
- numberOfInstances=0;
- TFullName processName;
- TFindThread find(_L("*utolock*")); // first letter can can be uppercase or lowercase
- while( find.Next( processName ) == KErrNone )
- {
- // Autolock[100059b5]0002::Autolock in device
- // autolock.exe[100059b5]0002::Main in emulator
- RDEBUG("found process", 1);
- numberOfInstances++;
- } // end while
- RDEBUG("numberOfInstances", numberOfInstances);
- if(numberOfInstances<=0)
- {
- RDEBUG("Autolock.exe not running already. Starting.", 0 );
- RApaLsSession ls;
- User::LeaveIfError(ls.Connect());
- CleanupClosePushL(ls);
- RDEBUG("commandLine", 0);
- CApaCommandLine* commandLine = CApaCommandLine::NewLC();
- commandLine->SetExecutableNameL(_L("autolock.exe"));
- commandLine->SetCommandL(EApaCommandRun);
- // Try to launch the application.
- RDEBUG("StartApp", 0);
- TInt err = ls.StartApp(*commandLine); // this migh fail
- CleanupStack::PopAndDestroy(2); // commandLine, ls
-
- RDEBUG("Autolock.exe launched. Waiting a bit. err", err );
- User::After(1000*1000);
- RDEBUG("re-verifying Autolock.exe process.", 1 );
- }
- } while (numAttempts++ <3 && numberOfInstances<=0);
-
-
-
- TInt value = -1;
- err = KErrNone;
- numAttempts = 0;
- while( value<1 && numAttempts++ <10 ) // wait max 5 seconds
- {
- // process was started, but still not fully running. Give a bit more time
- err = RProperty::Get(KPSUidSecurityUIs, KSecurityUIsLockInitiatorUID, value);
- RDEBUG("err", err);
- RDEBUG("value", value);
- if(value<1)
- {
- RDEBUG("Autolock.exe has started but it's not fully running", value);
- User::After(5*100*1000); // half a second
- }
- }
- RDEBUG("numAttempts", numAttempts);
- /*
- this is the old method.
// we need CCoeEnv because of window group list
- const TInt KTimesToConnectServer( 2);
- const TInt KTimeoutBeforeRetrying( 50000);
CCoeEnv* coeEnv = CCoeEnv::Static( );
if ( coeEnv )
{
@@ -160,8 +90,6 @@
// No CCoeEnv
ret = KErrNotSupported;
}
- */
- RDEBUG("ret", ret);
return ret;
}
@@ -170,12 +98,10 @@
// ---------------------------------------------------------------------------
TInt RLockAccessExtension::SendMessage( TInt aMessage )
{
- RDEBUG("0", 0);
- TInt ret = KErrNone;
+ TInt ret = EnsureConnected( );
if ( ret == KErrNone )
{
- // ret = SendReceive( aMessage );
- ret = SendMessage( aMessage, -1, -1 );
+ ret = SendReceive( aMessage );
}
return ret;
}
@@ -185,14 +111,12 @@
// ---------------------------------------------------------------------------
TInt RLockAccessExtension::SendMessage( TInt aMessage, TInt aParam1 )
{
- RDEBUG("0", 0);
- TInt ret = KErrNone;
+ TInt ret = EnsureConnected( );
if ( ret == KErrNone )
{
// assign parameters to IPC argument
TIpcArgs args(aParam1);
- // ret = SendReceive( aMessage, args );
- ret = SendMessage( aMessage, aParam1, -1 );
+ ret = SendReceive( aMessage, args );
}
return ret;
}
@@ -202,82 +126,13 @@
// ---------------------------------------------------------------------------
TInt RLockAccessExtension::SendMessage( TInt aMessage, TInt aParam1, TInt aParam2 )
{
- RDEBUG("0", 0);
TInt ret = EnsureConnected( );
- RDEBUG("ret", ret);
if ( ret == KErrNone )
{
// assign parameters to IPC argument
- // TIpcArgs args( aParam1, aParam2);
- // this is the old methd. Now we use QtHighway
- // ret = SendReceive( aMessage, args );
- RDEBUG("aMessage", aMessage);
- RDEBUG("aParam1", aParam1);
- RDEBUG("aParam2", aParam2);
-
-
- { // old method. Not used any more. Kept as reference
- /*
- XQServiceRequest* mServiceRequest;
- RDEBUG("XQServiceRequest", 0);
- mServiceRequest = new XQServiceRequest("com.nokia.services.Autolock.Autolock","service(QString,QString,QString)");// use , false to make async
- RDEBUG("aMessage", 0);
- QString label;
- label = "" + QString("%1").arg(aMessage);
- *mServiceRequest << QString(label);
- RDEBUG("aParam1", 0);
- label = "" + QString("%1").arg(aParam1);
- *mServiceRequest << QString(label);
- RDEBUG("aParam2", 0);
- label = "" + QString("%1").arg(aParam2);
- *mServiceRequest << QString(label);
- int returnvalue;
- RDEBUG("send", 0);
- bool ret = mServiceRequest->send(returnvalue);
- RDEBUG("ret", ret);
- RDEBUG("returnvalue", returnvalue);
- */
- }
-
- RDEBUG("args", 0);
- QList<QVariant> args;
- args << QVariant(QString(QString::number(aMessage)));
- args << QVariant(QString(QString::number(aParam1)));
- args << QVariant(QString(QString::number(aParam2)));
-
- XQApplicationManager mAppManager;
- XQAiwRequest *request;
- RDEBUG("create", 0);
- request = mAppManager.create("com.nokia.services.Autolock", "Autolock", "service(QString,QString,QString)", false);
- // also works with create("Autolock", "service(QString,QString,QString)", false);
- if(request)
- {
- RDEBUG("got request", 0);
- }
- else
- {
- RDEBUG("not got request", 0);
- RDebug::Printf( "%s %s (%u) not got request=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, 0 );
- return KErrAbort;
- }
-
- RDEBUG("setArguments", 0);
- request->setArguments(args);
- RDEBUG("args", 0);
- int returnvalue=0;
- QVariant var = QVariant(returnvalue);
- RDEBUG("send", 0);
- bool retSend = request->send(var);
- returnvalue = var.toInt();
- RDEBUG("retSend", retSend);
- RDEBUG("returnvalue", returnvalue);
- int error = request->lastError();
- RDEBUG("error", error);
- ret = returnvalue;
-
- delete request;
+ TIpcArgs args( aParam1, aParam2);
+ ret = SendReceive( aMessage, args );
}
- RDEBUG("ret", ret);
return ret;
}
--- a/securitydialogs/secuinotifications/secuinotificationdialogplugin/inc/secuinotificationcontentwidget.h Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,69 +0,0 @@
-/*
-* Copyright (c) 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: SecUi notification content widget.
-*
-*/
-
-#ifndef SECUINOTIFICATIONCONTENTWIDGET_H
-#define SECUINOTIFICATIONCONTENTWIDGET_H
-
-#include <hbwidget.h> // HbWidget
-#include <hblineedit.h> // HbWidget
-
-#include <HbCheckBox>
-#include <HbListWidget>
-#include <HbListWidgetItem>
-class HbLabel;
-class HbCheckBox;
-class HbListWidget;
-
-
-class SecUiNotificationContentWidget : public HbWidget
-{
- Q_OBJECT
-
-public:
- SecUiNotificationContentWidget(QGraphicsItem *parent=0, Qt::WindowFlags flags=0);
- virtual ~SecUiNotificationContentWidget();
-
- void constructFromParameters(const QVariantMap ¶meters);
-
-signals:
- void memorySelectionChanged(const QString &text);
- void codeTopChanged(const QString &text);
- void codeTopContentChanged();
- void codeBottomChanged(const QString &text);
- void but1Changed();
- void but2Changed();
- void but3Changed();
-
-private:
- Q_DISABLE_COPY(SecUiNotificationContentWidget)
-
-private: // data
-public:
- HbLineEdit *codeTop;
- HbLineEdit *codeBottom;
- HbCheckBox *checkbox;
- HbLabel *DialogText;
- HbListWidget *listWidget;
- int queryType;
- int lMinLength;
- int lMaxLength;
- int queryDual;
- int lEmergencySupported;
- int isEmergency;
-};
-
-#endif // SECUINOTIFICATIONCONTENTWIDGET_H
--- a/securitydialogs/secuinotifications/secuinotificationdialogplugin/inc/secuinotificationdebug.h Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,30 +0,0 @@
-/*
-* Copyright (c) 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: SecUi notification plugin dialog.
-*
-*/
-
-#ifndef SECUINOTIFICATIONDEBUG_H
-#define SECUINOTIFICATIONDEBUG_H
-
-#include <e32debug.h>
-#ifdef _DEBUG
-#define RDEBUG( x, y ) RDebug::Printf( "%s %s (%u) %s=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, x, y );
-#define RDEBUGQT( x, y ) qDebug() << __FILE__ << " " << __PRETTY_FUNCTION__ << " (" << __LINE__ << ") " << x << "=" << y ;
-#else
-#define RDEBUG( x, y )
-#define RDEBUGQT( x, y )
-#endif
-
-#endif // SECUINOTIFICATIONDEBUG_H
--- a/securitydialogs/secuinotifications/secuinotificationdialogplugin/inc/secuinotificationdialog.h Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,109 +0,0 @@
-/*
-* Copyright (c) 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: SecUi notification plugin dialog.
-*
-*/
-
-#ifndef SECUINOTIFICATIONDIALOG_H
-#define SECUINOTIFICATIONDIALOG_H
-
-
-#include <hbdialog.h> // HbDialog
-#include <hbdevicedialoginterface.h> // HbDeviceDialogInterface
-#include <hbwidget.h> // HbWidget
-#include <hblineedit.h> // HbWidget
-#include <hblabel.h>
-#include <HbCheckBox>
-#include <HbListWidget>
-
-#include <qmobilityglobal.h>
-
-class HbTranslator;
-
-QTM_BEGIN_NAMESPACE
- class QValueSpacePublisher;
- class QValueSpaceSubscriber;
-QTM_END_NAMESPACE
-QTM_USE_NAMESPACE
-
-/**
- * SW Install notification widget class.
- */
-class SecUiNotificationDialog : public HbDialog, public HbDeviceDialogInterface
-{
- Q_OBJECT
-
-public: // constructor and destructor
- SecUiNotificationDialog(const QVariantMap ¶meters);
- virtual ~SecUiNotificationDialog();
-
-public: // from HbDeviceDialogInterface
- bool setDeviceDialogParameters(const QVariantMap ¶meters);
- int deviceDialogError() const;
- void closeDeviceDialog(bool byClient);
- HbDialog *deviceDialogWidget() const;
-
-signals:
- void deviceDialogClosed();
- void deviceDialogData(const QVariantMap &data);
-
-protected: // from HbPopup (via HbDialog)
- void hideEvent(QHideEvent *event);
- void showEvent(QShowEvent *event);
-
-private: // new functions
- bool constructDialog(const QVariantMap ¶meters);
- void sendResult(int accepted);
-
-private slots:
- void handleAccepted();
- void handleCancelled();
- void handleMemorySelectionChanged(const QString &text);
- void handleCodeTopChanged(const QString &text);
- void handleCodeBottomChanged(const QString &text);
- void handleCodeTopContentChanged();
- void saveFocusWidget(QWidget*,QWidget*);
- void handlebut1Changed();
- void handlebut2Changed();
- void handlebut3Changed();
-
-public slots:
- void subscriberKSecurityUIsDismissDialogChanged();
-private:
- Q_DISABLE_COPY(SecUiNotificationDialog)
-
- HbTranslator *mCommonTranslator;
- HbTranslator *mSecUiNotificationTranslator;
- int mMyId;
- int mLastError;
- bool mShowEventReceived;
- QVariantMap mResultMap;
- HbLineEdit *codeTop;
- HbLineEdit *codeBottom;
- HbCheckBox *checkBox;
- HbListWidget *listWidget;
- HbAction *okAction;
- HbAction *cancelAction;
- HbAction *okVKBAction;
- HbLabel *titleWidget;
- int queryType;
- int lMinLength;
- int lMaxLength;
- int queryDual;
- int lEmergencySupported;
- int isEmergency;
- QValueSpaceSubscriber *subscriberKSecurityUIsDismissDialog;
-};
-
-#endif // SECUINOTIFICATIONDIALOG_H
--- a/securitydialogs/secuinotifications/secuinotificationdialogplugin/inc/secuinotificationdialogplugin.h Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,53 +0,0 @@
-/*
-* Copyright (c) 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: SecUi notification plugin class.
-*
-*/
-
-#ifndef SECUINOTIFICATIONDIALOGPLUGIN_H
-#define SECUINOTIFICATIONDIALOGPLUGIN_H
-
-#include <hbdevicedialogplugin.h> // HbDeviceDialogPlugin
-
-
-/**
- * Software install notification plugin.
- * Implements the HbDeviceDialogPlugin to show SW install confirmatoin dialogs.
- */
-class SecUiNotificationDialogPlugin : public HbDeviceDialogPlugin
-{
- Q_OBJECT
-
-public:
- SecUiNotificationDialogPlugin();
- ~SecUiNotificationDialogPlugin();
-
-public: // from HbDeviceDialogPlugin
- bool accessAllowed(const QString &deviceDialogType, const QVariantMap ¶meters,
- const QVariantMap &securityInfo) const;
- HbDeviceDialogInterface *createDeviceDialog(const QString &deviceDialogType,
- const QVariantMap ¶meters);
- bool deviceDialogInfo(const QString &deviceDialogType, const QVariantMap ¶meters,
- DeviceDialogInfo *info) const;
- QStringList deviceDialogTypes() const;
- PluginFlags pluginFlags() const;
- int error() const;
-
-private:
- Q_DISABLE_COPY(SecUiNotificationDialogPlugin)
-
- int mError;
-};
-
-#endif // SECUINOTIFICATIONDIALOGPLUGIN_H
--- a/securitydialogs/secuinotifications/secuinotificationdialogplugin/inc/secuinotificationdialogpluginkeys.h Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,55 +0,0 @@
-/*
-* Copyright (c) 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: SecUi notification keys.
-*
-*/
-
-#ifndef SECUINOTIFICATIONPLUGINKEYS_H
-#define SECUINOTIFICATIONPLUGINKEYS_H
-
-#include <QString>
-
-// Device dialog type
-#define SECUINOTIFICATIONDIALOG "com.nokia.secuinotificationdialog/1.0"
-
-// Keys for the parameters passed to notification framework plugin
-const QString KDialogTitle = "title";
-const QString KApplicationName = "application";
-const QString KQueryType = "type";
-const QString KQueryMinLength = "MinLength";
-const QString KQueryMaxLength = "MaxLength";
-const QString KApplicationIcon = "icon";
-const QString KSupplier = "supplier";
-const QString KMemorySelection = "memory";
-const QString KCertificates = "certificates";
-const QString KDrmDetails = "drmDetails";
-const QString KCodeTop = "codeTop";
-const QString KCodeBottom = "codeBottom"; // not really needed because is never sent back
-const QString KEmergency = "emergency";
-const QString KInvalidNewLockCode = "invalidNewLockCode";
-const QString KDefaultCode = "DefaultCode";
-
-const QString KChecboxType = "ChecboxDialog";
-const QString KMultiChecboxType = "MultiChecboxDialog";
-// Keys for the return values passed back to calling application
-const QString KResultAccepted = "accepted"; // int
-const QString KSelectedMemoryIndex = "memory"; // int
-const QString KCodeTopIndex = "codeTop"; // int
-const QString KCodeBottomIndex = "codeBottom"; // int // not really needed because is never sent back
-
-// Error values
-const int KNoError = 0;
-
-#endif // SECUINOTIFICATIONPLUGINKEYS_H
--- a/securitydialogs/secuinotifications/secuinotificationdialogplugin/resources/cert.svg Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,10 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1 Tiny//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-tiny.dtd">
-<svg width="16" height="16" viewBox="0 0 16 16">
-<path fill="#496DA2" d="M10.61,7.411H9.651v0.003l-2.188,8.539c0.62-0.047,1.979-0.227,3.015-0.583 c2.477-0.776,2.543-3.669,2.543-3.669c0.02-0.002,0.021-0.004,0-0.004l0.156-5.019L10.61,7.411z"/>
-<path fill="#A2C2DD" d="M10.492,12.252c0-0.011,0-4.838,0-4.838l-9.94-0.557l0.112,4.63c0.053,1.974,1.425,3.954,2.82,4.091 l3.802,0.377C8.292,15.861,10.354,14.993,10.492,12.252z"/>
-<path fill="#496DA2" d="M6.105,10.902c0.613-0.453,0.605-1.24,0.189-1.717C5.977,8.824,5.549,8.795,5.538,8.794 C5.527,8.793,5.239,8.719,4.781,9.022c-0.417,0.387-0.425,1.172,0.189,1.757L4.619,13.23l1.925,0.193L6.105,10.902z"/>
-<path fill="#235487" d="M5.148,10.779c0,0-0.237-0.098-0.444-0.66C4.526,8.994,5.291,8.857,5.279,8.855 c-0.011,0-0.298-0.075-0.756,0.229c-0.417,0.387-0.425,1.172,0.189,1.756l-0.352,2.452l0.521-0.095L5.148,10.779z"/>
-<polygon fill="#CEE1EF" points="13.177,6.66 3.135,6.063 0.552,6.857 10.789,7.411 "/>
-<path fill="#496DA2" d="M5.071,6.567c0-0.49-0.192-1.703,0.785-1.989c1.624-0.475,2.268,0.99,2.268,2.262 c0,0.491,2.336,0.379,2.309-0.17c-0.027-0.548-0.279-3.594-2.84-4.136C2.985,2.016,2.76,6.01,2.906,6.567 C3.033,7.049,5.071,6.878,5.071,6.567z"/>
-</svg>
\ No newline at end of file
--- a/securitydialogs/secuinotifications/secuinotificationdialogplugin/resources/drm.svg Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1 Tiny//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-tiny.dtd">
-<svg width="16" height="16" viewBox="0 0 16 16">
-<polygon fill="#496DA2" points="8.54,8.603 9.474,8.046 9.328,12.963 8.437,13.543 "/>
-<path d="M8.468,4.789c-0.211,0.13-0.471,0.293-0.748,0.456C7.185,5.456,6.111,4.399,6.745,3.57 c0.293-0.195,0.504-0.309,0.764-0.471C7.07,3.488,7.233,4.854,8.468,4.789z" fill="#496DA2"/>
-<polygon fill="#496DA2" points="8.421,13.559 9.344,12.932 8.688,13.822 7.864,14.373 "/>
-<polygon fill="#496DA2" points="9.633,3.526 11.02,2.778 10.893,8.346 9.75,9.016 "/>
-<polygon fill="#CEE1EF" points="6.083,1.627 4.965,2.088 9.759,3.463 11.035,2.778 "/>
-<path d="M9.805,3.457L4.982,2.084l0.206,5.465l1.32,0.422l0.235,0.757l0.285,0.453l0.835,5.191l0.573-0.83 l0.157-4.906l1.173,0.375L9.805,3.457z M7.166,3.438C7.218,3.44,7.271,3.45,7.326,3.467c0.411,0.129,0.75,0.622,0.76,1.099 c0.01,0.429-0.231,0.695-0.563,0.68C7.472,5.243,7.419,5.234,7.365,5.219C6.963,5.09,6.615,4.597,6.604,4.111 C6.595,3.699,6.84,3.423,7.166,3.438z" fill="#A2C2DD"/>
-<polygon fill="#496DA2" points="6.771,9.591 7.037,9.173 7.75,9.391 7.861,14.361 7.45,14.229 6.847,13.038 6.819,11.782 7.244,11.326 6.793,10.572 "/>
-</svg>
\ No newline at end of file
--- a/securitydialogs/secuinotifications/secuinotificationdialogplugin/resources/qgn_indi_midp_trusted.svg Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,10 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1 Tiny//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-tiny.dtd">
-<svg width="16" height="16" viewBox="0 0 16 16">
-<path fill="#496DA2" d="M10.61,7.411H9.651v0.003l-2.188,8.539c0.62-0.047,1.979-0.227,3.015-0.583 c2.477-0.776,2.543-3.669,2.543-3.669c0.02-0.002,0.021-0.004,0-0.004l0.156-5.019L10.61,7.411z"/>
-<path fill="#A2C2DD" d="M10.492,12.252c0-0.011,0-4.838,0-4.838l-9.94-0.557l0.112,4.63c0.053,1.974,1.425,3.954,2.82,4.091 l3.802,0.377C8.292,15.861,10.354,14.993,10.492,12.252z"/>
-<path fill="#496DA2" d="M6.105,10.902c0.613-0.453,0.605-1.24,0.189-1.717C5.977,8.824,5.549,8.795,5.538,8.794 C5.527,8.793,5.239,8.719,4.781,9.022c-0.417,0.387-0.425,1.172,0.189,1.757L4.619,13.23l1.925,0.193L6.105,10.902z"/>
-<path fill="#235487" d="M5.148,10.779c0,0-0.237-0.098-0.444-0.66C4.526,8.994,5.291,8.857,5.279,8.855 c-0.011,0-0.298-0.075-0.756,0.229c-0.417,0.387-0.425,1.172,0.189,1.756l-0.352,2.452l0.521-0.095L5.148,10.779z"/>
-<polygon fill="#CEE1EF" points="13.177,6.66 3.135,6.063 0.552,6.857 10.789,7.411 "/>
-<path fill="#496DA2" d="M5.071,6.567c0-0.49-0.192-1.703,0.785-1.989c1.624-0.475,2.268,0.99,2.268,2.262 c0,0.491,2.336,0.379,2.309-0.17c-0.027-0.548-0.279-3.594-2.84-4.136C2.985,2.016,2.76,6.01,2.906,6.567 C3.033,7.049,5.071,6.878,5.071,6.567z"/>
-</svg>
\ No newline at end of file
--- a/securitydialogs/secuinotifications/secuinotificationdialogplugin/resources/qgn_menu_am_midlet.svg Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,71 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1 Tiny//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-tiny.dtd">
-<svg width="100%" height="100%" viewBox="0 0 88 88">
-<linearGradient id="_12" gradientUnits="userSpaceOnUse" x1="44.68" y1="44.13" x2="62.99" y2="80.2">
-<stop stop-color="#A2C2DD" offset="0.1"/>
-<stop stop-color="#6C83BB" offset="0.71"/>
-<stop stop-color="#003D6D" offset="0.99"/>
-</linearGradient>
-<path fill="url(#_12)" d="M14.475,14.003c0,0,0.809,11.089,0.952,13.061c-5.274-2.117-12.123,2.153-12.088,8.081 c0.032,5.237,6.587,11.975,13.074,9.778l0.983,16.064l19.536,6.212l3.87-3.304c-1.391-1.28-4.237-6.712-0.913-10.679 c1.636,0.074,3.803,1.019,5.318,3.341c-0.755,0.446-2.435,1.438-2.435,1.438l1.769,18.358l15.22,5.217L70.69,74.02 c0,0,0.713-11.908,0.78-13.026c6.92-0.28,10.947-6.543,10.947-11.571c0-6.004-4.893-12.288-12.286-12.695 c0.042-1.229,0.537-15.648,0.537-15.648l-23.381-4.272l-4.885,3.214c3.509,4.846,3.525,10.268,1.019,13.249 c-3.51,2.305-11.719-5.695-4.459-17.366l-20.704-3.978L14.475,14.003z"/>
-<linearGradient id="_13" gradientUnits="userSpaceOnUse" x1="48.4" y1="45.14" x2="26.4" y2="15.64">
-<stop stop-color="#FFFFFF" offset="0"/>
-<stop stop-color="#A2C2DD" offset="0.35"/>
-<stop stop-color="#6C83BB" offset="0.7"/>
-<stop stop-color="#003D6D" offset="1"/>
-</linearGradient>
-<path fill="url(#_13)" d="M24.994,28.365l8.648-9.673l4.228-2.288c-6.905,12.095,2.267,20.532,6.18,17.29 c-0.206,0.233-1.306,5.171-1.306,5.171L24.994,28.365z"/>
-<linearGradient id="_14" gradientUnits="userSpaceOnUse" x1="49.78" y1="73.59" x2="33.78" y2="54.09">
-<stop stop-color="#FFFFFF" offset="0"/>
-<stop stop-color="#A2C2DD" offset="0.35"/>
-<stop stop-color="#6C83BB" offset="0.7"/>
-<stop stop-color="#003D6D" offset="1"/>
-</linearGradient>
-<path fill="url(#_14)" d="M39.571,52.482c-3.281,3.521-1.765,8.89,0.253,11.328l-3.05,2.604L20.548,42.523L39.571,52.482z "/>
-<linearGradient id="_15" gradientUnits="userSpaceOnUse" x1="66.5" y1="18.51" x2="66.79" y2="46.9">
-<stop stop-color="#FFFFFF" offset="0"/>
-<stop stop-color="#A2C2DD" offset="0.35"/>
-<stop stop-color="#6C83BB" offset="0.7"/>
-<stop stop-color="#003D6D" offset="1"/>
-</linearGradient>
-<polygon fill="url(#_15)" points="63.325,42.008 63.278,24.622 69.948,21.658 69.371,38.502 "/>
-<linearGradient id="_16" gradientUnits="userSpaceOnUse" x1="25.65" y1="17.91" x2="27.75" y2="12.21">
-<stop stop-color="#FFFFFF" offset="0.05"/>
-<stop stop-color="#A2C2DD" offset="1"/>
-</linearGradient>
-<polygon fill="url(#_16)" points="15.205,14.4 18.376,12.659 37.964,16.356 33.643,18.692 "/>
-<linearGradient id="_17" gradientUnits="userSpaceOnUse" x1="55.45" y1="24.23" x2="58.18" y2="16.83">
-<stop stop-color="#FFFFFF" offset="0.05"/>
-<stop stop-color="#A2C2DD" offset="1"/>
-</linearGradient>
-<polygon fill="url(#_17)" points="43.376,20.218 47.438,17.545 69.948,21.658 63.807,24.622 "/>
-<linearGradient id="_18" gradientUnits="userSpaceOnUse" x1="9.41" y1="29.03" x2="15.24" y2="32.03">
-<stop stop-color="#FFFFFF" offset="0.05"/>
-<stop stop-color="#A2C2DD" offset="1"/>
-</linearGradient>
-<path fill="url(#_18)" d="M5.168,31.243c3.055-4.432,8.436-4.929,11.075-3.032l0.301,3.842L5.168,31.243z"/>
-<linearGradient id="_19" gradientUnits="userSpaceOnUse" x1="66" y1="32.31" x2="81.16" y2="58.31">
-<stop stop-color="#FFFFFF" offset="0"/>
-<stop stop-color="#A2C2DD" offset="0.35"/>
-<stop stop-color="#6C83BB" offset="0.7"/>
-<stop stop-color="#003D6D" offset="1"/>
-</linearGradient>
-<path fill="url(#_19)" d="M63.479,40.737l5.963-3.383c7.639-1.027,18.434,11.723,8.048,20.789L63.479,40.737z"/>
-<linearGradient id="_20" gradientUnits="userSpaceOnUse" x1="53.27" y1="11.98" x2="36.67" y2="58.23">
-<stop stop-color="#FFFFFF" offset="0.05"/>
-<stop stop-color="#A2C2DD" offset="1"/>
-</linearGradient>
-<path fill="url(#_20)" d="M63.543,40.685c7.758-3.933,16.752,4.756,16.232,11.543c-0.824,10.789-12.64,9.004-16.388,5.077 L45.833,69.03c4.174-3.883,1.91-14.799-4.674-16.367c-6.584-1.569-9.549,7.171-4.385,13.751l-18.709-5.948l-1.01-16.502 c-6.7,3.158-12.989-4.322-13.017-8.823c-0.04-6.581,7.252-8.843,12.437-3.323L15.205,14.4l18.438,4.292 c-4.241,6.53,0.437,15.692,5.636,16.821c5.2,1.128,9.505-7.159,4.098-15.296l20.431,4.404L63.543,40.685z"/>
-<polygon fill="#58A015" points="59.654,80.794 45.195,75.838 43.51,58.344 60.175,62.587 "/>
-<polygon fill="#17594C" points="59.654,80.794 70.012,73.638 71.094,55.58 59.654,62.587 "/>
-<linearGradient id="_21" gradientUnits="userSpaceOnUse" x1="43.41" y1="57.36" x2="71.04" y2="57.36">
-<stop stop-color="#DCE8E4" offset="0"/>
-<stop stop-color="#43910A" offset="1"/>
-</linearGradient>
-<polygon fill="url(#_21)" points="43.408,58.344 59.654,62.587 71.042,55.58 54.517,52.14 "/>
-<linearGradient id="_22" gradientUnits="userSpaceOnUse" x1="41.47" y1="83.72" x2="60.49" y2="73.75">
-<stop stop-color="#DCE8E4" offset="0"/>
-<stop stop-color="#43910A" offset="1"/>
-</linearGradient>
-<polygon fill="url(#_22)" points="58.806,67.904 59.629,80.923 45.193,75.631 "/>
-<rect fill="none" height="88" width="88"/>
-</svg>
\ No newline at end of file
--- a/securitydialogs/secuinotifications/secuinotificationdialogplugin/resources/qgn_menu_am_sis.svg Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,71 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1 Tiny//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-tiny.dtd">
-<svg width="100%" height="100%" viewBox="0 0 88 88">
-<linearGradient id="_12" gradientUnits="userSpaceOnUse" x1="44.68" y1="44.13" x2="62.99" y2="80.2">
-<stop stop-color="#A2C2DD" offset="0.1"/>
-<stop stop-color="#6C83BB" offset="0.71"/>
-<stop stop-color="#003D6D" offset="0.99"/>
-</linearGradient>
-<path fill="url(#_12)" d="M14.475,14.003c0,0,0.809,11.089,0.952,13.061c-5.274-2.117-12.123,2.153-12.088,8.081 c0.032,5.237,6.587,11.975,13.074,9.778l0.983,16.064l19.536,6.212l3.87-3.304c-1.391-1.28-4.237-6.712-0.913-10.679 c1.636,0.074,3.803,1.019,5.318,3.341c-0.755,0.446-2.435,1.438-2.435,1.438l1.769,18.358l15.22,5.217L70.69,74.02 c0,0,0.713-11.908,0.78-13.026c6.92-0.28,10.947-6.543,10.947-11.571c0-6.004-4.893-12.288-12.286-12.695 c0.042-1.229,0.537-15.648,0.537-15.648l-23.381-4.272l-4.885,3.214c3.509,4.846,3.525,10.268,1.019,13.249 c-3.51,2.305-11.719-5.695-4.459-17.366l-20.704-3.978L14.475,14.003z"/>
-<linearGradient id="_13" gradientUnits="userSpaceOnUse" x1="48.4" y1="45.14" x2="26.4" y2="15.64">
-<stop stop-color="#FFFFFF" offset="0"/>
-<stop stop-color="#A2C2DD" offset="0.35"/>
-<stop stop-color="#6C83BB" offset="0.7"/>
-<stop stop-color="#003D6D" offset="1"/>
-</linearGradient>
-<path fill="url(#_13)" d="M24.994,28.365l8.648-9.673l4.228-2.288c-6.905,12.095,2.267,20.532,6.18,17.29 c-0.206,0.233-1.306,5.171-1.306,5.171L24.994,28.365z"/>
-<linearGradient id="_14" gradientUnits="userSpaceOnUse" x1="49.78" y1="73.59" x2="33.78" y2="54.09">
-<stop stop-color="#FFFFFF" offset="0"/>
-<stop stop-color="#A2C2DD" offset="0.35"/>
-<stop stop-color="#6C83BB" offset="0.7"/>
-<stop stop-color="#003D6D" offset="1"/>
-</linearGradient>
-<path fill="url(#_14)" d="M39.571,52.482c-3.281,3.521-1.765,8.89,0.253,11.328l-3.05,2.604L20.548,42.523L39.571,52.482z "/>
-<linearGradient id="_15" gradientUnits="userSpaceOnUse" x1="66.5" y1="18.51" x2="66.79" y2="46.9">
-<stop stop-color="#FFFFFF" offset="0"/>
-<stop stop-color="#A2C2DD" offset="0.35"/>
-<stop stop-color="#6C83BB" offset="0.7"/>
-<stop stop-color="#003D6D" offset="1"/>
-</linearGradient>
-<polygon fill="url(#_15)" points="63.325,42.008 63.278,24.622 69.948,21.658 69.371,38.502 "/>
-<linearGradient id="_16" gradientUnits="userSpaceOnUse" x1="25.65" y1="17.91" x2="27.75" y2="12.21">
-<stop stop-color="#FFFFFF" offset="0.05"/>
-<stop stop-color="#A2C2DD" offset="1"/>
-</linearGradient>
-<polygon fill="url(#_16)" points="15.205,14.4 18.376,12.659 37.964,16.356 33.643,18.692 "/>
-<linearGradient id="_17" gradientUnits="userSpaceOnUse" x1="55.45" y1="24.23" x2="58.18" y2="16.83">
-<stop stop-color="#FFFFFF" offset="0.05"/>
-<stop stop-color="#A2C2DD" offset="1"/>
-</linearGradient>
-<polygon fill="url(#_17)" points="43.376,20.218 47.438,17.545 69.948,21.658 63.807,24.622 "/>
-<linearGradient id="_18" gradientUnits="userSpaceOnUse" x1="9.41" y1="29.03" x2="15.24" y2="32.03">
-<stop stop-color="#FFFFFF" offset="0.05"/>
-<stop stop-color="#A2C2DD" offset="1"/>
-</linearGradient>
-<path fill="url(#_18)" d="M5.168,31.243c3.055-4.432,8.436-4.929,11.075-3.032l0.301,3.842L5.168,31.243z"/>
-<linearGradient id="_19" gradientUnits="userSpaceOnUse" x1="66" y1="32.31" x2="81.16" y2="58.31">
-<stop stop-color="#FFFFFF" offset="0"/>
-<stop stop-color="#A2C2DD" offset="0.35"/>
-<stop stop-color="#6C83BB" offset="0.7"/>
-<stop stop-color="#003D6D" offset="1"/>
-</linearGradient>
-<path fill="url(#_19)" d="M63.479,40.737l5.963-3.383c7.639-1.027,18.434,11.723,8.048,20.789L63.479,40.737z"/>
-<linearGradient id="_20" gradientUnits="userSpaceOnUse" x1="53.27" y1="11.98" x2="36.67" y2="58.23">
-<stop stop-color="#FFFFFF" offset="0.05"/>
-<stop stop-color="#A2C2DD" offset="1"/>
-</linearGradient>
-<path fill="url(#_20)" d="M63.543,40.685c7.758-3.933,16.752,4.756,16.232,11.543c-0.824,10.789-12.64,9.004-16.388,5.077 L45.833,69.03c4.174-3.883,1.91-14.799-4.674-16.367c-6.584-1.569-9.549,7.171-4.385,13.751l-18.709-5.948l-1.01-16.502 c-6.7,3.158-12.989-4.322-13.017-8.823c-0.04-6.581,7.252-8.843,12.437-3.323L15.205,14.4l18.438,4.292 c-4.241,6.53,0.437,15.692,5.636,16.821c5.2,1.128,9.505-7.159,4.098-15.296l20.431,4.404L63.543,40.685z"/>
-<polygon fill="#A15EB6" points="59.654,80.794 45.195,75.838 43.51,58.344 60.175,62.587 "/>
-<polygon fill="#5E1B67" points="59.654,80.794 70.012,73.638 71.094,55.58 59.654,62.587 "/>
-<linearGradient id="_21" gradientUnits="userSpaceOnUse" x1="43.41" y1="57.36" x2="71.04" y2="57.36">
-<stop stop-color="#DEDEED" offset="0"/>
-<stop stop-color="#9646AC" offset="1"/>
-</linearGradient>
-<polygon fill="url(#_21)" points="43.408,58.344 59.654,62.587 71.042,55.58 54.517,52.14 "/>
-<linearGradient id="_22" gradientUnits="userSpaceOnUse" x1="32.16" y1="82.01" x2="58.74" y2="74.55">
-<stop stop-color="#DEDEED" offset="0"/>
-<stop stop-color="#9646AC" offset="1"/>
-</linearGradient>
-<polygon fill="url(#_22)" points="58.806,67.904 59.629,80.923 45.193,75.631 "/>
-<rect fill="none" height="88" width="88"/>
-</svg>
\ No newline at end of file
--- a/securitydialogs/secuinotifications/secuinotificationdialogplugin/resources/qgn_menu_am_widget.svg Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,88 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1 Tiny//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-tiny.dtd">
-<svg width="100" height="100" viewBox="91.792 -149.167 100 100">
-<linearGradient id="_12" gradientUnits="userSpaceOnUse" x1="128.6" y1="-127.68" x2="193.93" y2="-15.69">
-<stop stop-color="#A2C2DD" offset="0.1"/>
-<stop stop-color="#6C83BB" offset="0.71"/>
-<stop stop-color="#003D6D" offset="0.99"/>
-</linearGradient>
-<path d="M135.493-120.781c-0.478-0.18-12.771-4.823-12.771-4.823l-26.878,13.277 c0,0,12.594,6.267,13.282,6.609c-0.438,0.637-9.085,13.257-9.085,13.257s10.833,3.342,11.251,3.471 c0.057,0.44,2.233,17.397,2.233,17.397l34.702,11.894l24.876-17.188c0,0,1.103-17.331,1.122-17.65 c0.257-0.192,15.861-11.912,15.861-11.912s-14.446-5.944-15.053-6.194c0.227-0.605,4.3-11.491,4.3-11.491l-36.559-7.074 C142.775-131.206,135.776-121.187,135.493-120.781z" fill="url(#_12)"/>
-<linearGradient id="_13" gradientUnits="userSpaceOnUse" x1="145.21" y1="-145.16" x2="190.71" y2="-57.16">
-<stop stop-color="#FFFFFF" offset="0"/>
-<stop stop-color="#A2C2DD" offset="1"/>
-</linearGradient>
-<polygon fill="url(#_13)" points="178.584,-123.833 143.017,-130.716 135.73,-120.284 174.184,-112.071 "/>
-<linearGradient id="_14" gradientUnits="userSpaceOnUse" x1="140.41" y1="-128.26" x2="143.41" y2="-95.26">
-<stop stop-color="#FFFFFF" offset="0"/>
-<stop stop-color="#E0EAF3" offset="0.11"/>
-<stop stop-color="#A2C2DD" offset="0.35"/>
-<stop stop-color="#8CA9CF" offset="0.48"/>
-<stop stop-color="#6C83BB" offset="0.7"/>
-<stop stop-color="#637DB5" offset="0.75"/>
-<stop stop-color="#4C6EA4" offset="0.82"/>
-<stop stop-color="#265689" offset="0.91"/>
-<stop stop-color="#003D6D" offset="0.99"/>
-</linearGradient>
-<polygon fill="url(#_14)" points="109.686,-105.792 147.872,-95.819 174.638,-112.288 135.797,-120.374 "/>
-<linearGradient id="_15" gradientUnits="userSpaceOnUse" x1="107.3" y1="-131.49" x2="135.97" y2="-96.82">
-<stop stop-color="#FFFFFF" offset="0"/>
-<stop stop-color="#E0EAF3" offset="0.11"/>
-<stop stop-color="#A2C2DD" offset="0.35"/>
-<stop stop-color="#8CA9CF" offset="0.48"/>
-<stop stop-color="#6C83BB" offset="0.7"/>
-<stop stop-color="#637DB5" offset="0.75"/>
-<stop stop-color="#4C6EA4" offset="0.82"/>
-<stop stop-color="#265689" offset="0.91"/>
-<stop stop-color="#003D6D" offset="0.99"/>
-</linearGradient>
-<polygon fill="url(#_15)" points="135.572,-120.108 135.572,-98.88 109.721,-105.749 "/>
-<linearGradient id="_16" gradientUnits="userSpaceOnUse" x1="108.62" y1="-137.93" x2="134.12" y2="-68.43">
-<stop stop-color="#FFFFFF" offset="0"/>
-<stop stop-color="#A2C2DD" offset="1"/>
-</linearGradient>
-<polygon fill="url(#_16)" points="97.182,-112.409 110.625,-105.72 135.882,-120.319 123.023,-125.175 "/>
-<polygon fill="#58A015" points="132.854,-86.221 116.422,-91.854 114.508,-111.732 133.445,-106.912 "/>
-<polygon fill="#17594C" points="132.854,-86.221 144.623,-94.354 145.854,-114.873 132.854,-106.912 "/>
-<linearGradient id="_17" gradientUnits="userSpaceOnUse" x1="105.33" y1="-103.01" x2="158.66" y2="-124.34">
-<stop stop-color="#DCE8E4" offset="0"/>
-<stop stop-color="#43910A" offset="1"/>
-</linearGradient>
-<polygon fill="url(#_17)" points="114.392,-111.732 132.854,-106.912 145.794,-114.873 127.016,-118.783 "/>
-<polygon fill="#A15EB6" points="155.074,-85.857 138.643,-91.488 137.395,-111.286 155.666,-106.549 "/>
-<polygon fill="#5E1B67" points="155.074,-85.857 166.844,-93.988 168.074,-114.51 155.074,-106.549 "/>
-<linearGradient id="_18" gradientUnits="userSpaceOnUse" x1="118.58" y1="-107.01" x2="179.92" y2="-117.01">
-<stop stop-color="#DEDEED" offset="0"/>
-<stop stop-color="#9646AC" offset="1"/>
-</linearGradient>
-<polygon fill="url(#_18)" points="137.278,-111.286 155.074,-106.549 168.015,-114.51 149.236,-118.42 "/>
-<linearGradient id="_19" gradientUnits="userSpaceOnUse" x1="151.58" y1="-107.35" x2="177.08" y2="-53.6">
-<stop stop-color="#FFFFFF" offset="0"/>
-<stop stop-color="#E0EAF3" offset="0.11"/>
-<stop stop-color="#A2C2DD" offset="0.35"/>
-<stop stop-color="#8CA9CF" offset="0.48"/>
-<stop stop-color="#6C83BB" offset="0.7"/>
-<stop stop-color="#637DB5" offset="0.75"/>
-<stop stop-color="#4C6EA4" offset="0.82"/>
-<stop stop-color="#265689" offset="0.91"/>
-<stop stop-color="#003D6D" offset="0.99"/>
-</linearGradient>
-<polygon fill="url(#_19)" points="148.205,-60.69 172.549,-77.511 174.761,-112.288 147.872,-95.819 "/>
-<linearGradient id="_20" gradientUnits="userSpaceOnUse" x1="97.82" y1="-111.74" x2="158.07" y2="-62.49">
-<stop stop-color="#FFFFFF" offset="0"/>
-<stop stop-color="#A2C2DD" offset="1"/>
-</linearGradient>
-<polygon fill="url(#_20)" points="148.205,-60.69 114.219,-72.339 109.926,-105.792 149.096,-95.819 "/>
-<polygon fill="#7899BA" points="147.278,-95.021 161.751,-81.749 173.334,-89.417 174.08,-111.786 "/>
-<linearGradient id="_21" gradientUnits="userSpaceOnUse" x1="149.14" y1="-126.92" x2="193.64" y2="-66.92">
-<stop stop-color="#FFFFFF" offset="0"/>
-<stop stop-color="#A2C2DD" offset="1"/>
-</linearGradient>
-<polygon fill="url(#_21)" points="147.528,-95.771 164.385,-88.013 189.001,-106.5 174.33,-112.536 "/>
-<polygon fill="#7899BA" points="147.848,-94.663 110.006,-104.687 112.667,-85.292 144.501,-75.499 "/>
-<linearGradient id="_22" gradientUnits="userSpaceOnUse" x1="123.4" y1="-111.76" x2="128.9" y2="-39.76">
-<stop stop-color="#FFFFFF" offset="0"/>
-<stop stop-color="#A2C2DD" offset="1"/>
-</linearGradient>
-<polygon fill="url(#_22)" points="148.328,-96.028 109.886,-105.927 101.106,-92.935 141.801,-80.379 "/>
-<rect fill="none" height="100" width="100" x="91.792" y="-149.167"/>
-</svg>
\ No newline at end of file
--- a/securitydialogs/secuinotifications/secuinotificationdialogplugin/resources/qgn_prop_drm_rights_valid.svg Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1 Tiny//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-tiny.dtd">
-<svg width="16" height="16" viewBox="0 0 16 16">
-<polygon fill="#496DA2" points="8.54,8.603 9.474,8.046 9.328,12.963 8.437,13.543 "/>
-<path d="M8.468,4.789c-0.211,0.13-0.471,0.293-0.748,0.456C7.185,5.456,6.111,4.399,6.745,3.57 c0.293-0.195,0.504-0.309,0.764-0.471C7.07,3.488,7.233,4.854,8.468,4.789z" fill="#496DA2"/>
-<polygon fill="#496DA2" points="8.421,13.559 9.344,12.932 8.688,13.822 7.864,14.373 "/>
-<polygon fill="#496DA2" points="9.633,3.526 11.02,2.778 10.893,8.346 9.75,9.016 "/>
-<polygon fill="#CEE1EF" points="6.083,1.627 4.965,2.088 9.759,3.463 11.035,2.778 "/>
-<path d="M9.805,3.457L4.982,2.084l0.206,5.465l1.32,0.422l0.235,0.757l0.285,0.453l0.835,5.191l0.573-0.83 l0.157-4.906l1.173,0.375L9.805,3.457z M7.166,3.438C7.218,3.44,7.271,3.45,7.326,3.467c0.411,0.129,0.75,0.622,0.76,1.099 c0.01,0.429-0.231,0.695-0.563,0.68C7.472,5.243,7.419,5.234,7.365,5.219C6.963,5.09,6.615,4.597,6.604,4.111 C6.595,3.699,6.84,3.423,7.166,3.438z" fill="#A2C2DD"/>
-<polygon fill="#496DA2" points="6.771,9.591 7.037,9.173 7.75,9.391 7.861,14.361 7.45,14.229 6.847,13.038 6.819,11.782 7.244,11.326 6.793,10.572 "/>
-</svg>
\ No newline at end of file
--- a/securitydialogs/secuinotifications/secuinotificationdialogplugin/rom/secuinotificationdialogplugin.iby Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,31 +0,0 @@
-/*
-* Copyright (c) 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: ROM image files for SecUi notification dialog plugin.
-*
-*/
-
-#ifndef __SECUINOTIFICATIONDIALOGPLUGIN_IBY__
-#define __SECUINOTIFICATIONDIALOGPLUGIN_IBY__
-
-REM DLL
-file=ABI_DIR\UREL\secuinotificationdialogplugin.dll SHARED_LIB_DIR\secuinotificationdialogplugin.dll UNPAGED
-data=\epoc32\data\z\pluginstub\secuinotificationdialogplugin.qtplugin \resource\plugins\devicedialogs\secuinotificationdialogplugin.qtplugin
-data=\epoc32\data\z\resource\qt\crml\secuinotificationdialogplugin.qcrml \resource\qt\crml\secuinotificationdialogplugin.qcrml
-
-/* This is for testing purposes
-file=ABI_DIR\UREL\SecUiTest.exe SHARED_LIB_DIR\SecUiTest.exe
-data=\epoc32\data\z\resource\apps\SecUiTest.rsc \resource\apps\SecUiTest.rsc
-data=\epoc32\data\z\private\10003a3f\import\apps\SecUiTest_reg.rsc \private\10003a3f\import\apps\SecUiTest_reg.rsc
-*/
-#endif // __SECUINOTIFICATIONDIALOGPLUGIN_IBY__
--- a/securitydialogs/secuinotifications/secuinotificationdialogplugin/rom/secuinotificationdialogplugin_resources.iby Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,26 +0,0 @@
-/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:
-*
-*/
-
-#ifndef __SECUINOTIFICATIONDIALOGPLUGIN_RESOURCES_IBY__
-#define __SECUINOTIFICATIONDIALOGPLUGIN_RESOURCES_IBY__
-
-#include <bldvariant.hrh>
-#include <data_caging_paths_for_iby.hrh>
-
-data=DATAZ_\QT_TRANSLATIONS_DIR\secui.qm QT_TRANSLATIONS_DIR\secui.qm
-
-#endif // __SECUINOTIFICATIONDIALOGPLUGIN_RESOURCES_IBY__
--- a/securitydialogs/secuinotifications/secuinotificationdialogplugin/secui.ts Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,102 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE TS>
-<TS version="1.0" sourcelanguage="en" language="en">
- <context>
- <name>nString</name>
- <message numerus="no" id="txt_pin_code_dpopinfo_autolock_must_be_active">
- <source>Autolock must be active</source>
- <translation variants="no">en #Autolock must be active</translation>
- </message>
- <message numerus="no" id="txt_pin_code_dialog_pin2_code">
- <source>PIN2 code:</source>
- <translation variants="no">en #PIN2 code:</translation>
- </message>
- <message numerus="no" id="txt_pin_code_dpopinfo_insert_sim">
- <source>Insert SIM</source>
- <translation variants="no">en #Insert SIM</translation>
- </message>
- <message numerus="no" id="txt_pin_code_dpopinfo_gsm_invalid_parameter">
- <source>Gsm Invalid Parameter</source>
- <translation variants="no">en #Gsm Invalid Parameter</translation>
- </message>
- <message numerus="no" id="txt_pin_code_dialog_new_upin_code">
- <source>New UPIN code:</source>
- <translation variants="no">en #New UPIN code:</translation>
- </message>
- <message numerus="no" id="txt_pin_code_dialog_new_pin_code">
- <source>New PIN code:</source>
- <translation variants="no">en #New PIN code:</translation>
- </message>
- <message numerus="no" id="txt_pin_code_dpopinfo_pin2_rejected">
- <source>PIN2 rejected</source>
- <translation variants="no">en #PIN2 rejected</translation>
- </message>
- <message numerus="yes" id="txt_pin_code_dpopinfo_ln_attempts_remaining">
- <source> %Ln attempts remaining</source>
- <translation>
- <numerusform plurality="a">en #MISSING</numerusform>
- <numerusform plurality="b">en #MISSING</numerusform>
- </translation>
- </message>
- <message numerus="no" id="txt_pin_code_dpopinfo_operation_not_supported">
- <source>Operation not supported</source>
- <translation variants="no">en #Operation not supported</translation>
- </message>
- <message numerus="no" id="txt_pin_code_dpopinfo_security_blocked">
- <source>Security Blocked</source>
- <translation variants="no">en #Security Blocked</translation>
- </message>
- <message numerus="no" id="txt_pin_code_dpopinfo_operation_not_allowed">
- <source>Operation not Allowed</source>
- <translation variants="no">en #Operation not Allowed</translation>
- </message>
- <message numerus="no" id="txt_pin_code_dpopinfo_emergency_calls_only">
- <source>Emergency calls only</source>
- <translation variants="no">en #Emergency calls only</translation>
- </message>
- <message numerus="no" id="txt_pin_code_dialog_upin_code">
- <source>UPIN code:</source>
- <translation variants="no">en #UPIN code:</translation>
- </message>
- <message numerus="no" id="txt_pin_code_dpophead_wrong_pin_code">
- <source>Wrong PIN code</source>
- <translation variants="no">en #Wrong PIN code</translation>
- </message>
- <message numerus="no" id="txt_pin_code_dialog_verify_new_pin_code">
- <source>Retype PIN code:</source>
- <translation variants="no">en #Retype PIN code:</translation>
- </message>
- <message numerus="no" id="txt_pin_code_dpopinfo_if_failed_be_ready_with_puk">
- <source>If failed call customer care to get PUK code</source>
- <translation variants="no">en #If failed call customer care to get PUK code</translation>
- </message>
- <message numerus="no" id="txt_pin_code_dpopinfo_code_chaged">
- <source>Code chaged</source>
- <translation variants="no">en #Code chaged</translation>
- </message>
- <message numerus="no" id="txt_pin_code_dpopinfo_access_denied">
- <source>Access Denied</source>
- <translation variants="no">en #Access Denied</translation>
- </message>
- <message numerus="no" id="txt_pin_code_dialog_puk_code">
- <source>PUK code:</source>
- <translation variants="no">en #PUK code:</translation>
- </message>
- <message numerus="no" id="txt_pin_code_dialog_pin_code">
- <source>PIN code:</source>
- <translation variants="no">en #PIN code:</translation>
- </message>
- <message numerus="no" id="txt_pin_code_dpopinfo_upin_not_allowed">
- <source>UPIN not Allowed</source>
- <translation variants="no">en #UPIN not Allowed</translation>
- </message>
- <message numerus="no" id="txt_pin_code_dpophead_last_attempt">
- <source>Last attempt</source>
- <translation variants="no">en #Last attempt</translation>
- </message>
- <message numerus="no" id="txt_pin_code_dialog_retype_upin_code">
- <source>Retype UPIN code:</source>
- <translation variants="no">en #Retype UPIN code:</translation>
- </message>
- </context>
-</TS>
\ No newline at end of file
--- a/securitydialogs/secuinotifications/secuinotificationdialogplugin/secuinotificationdialogplugin.pro Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,70 +0,0 @@
-#
-# Copyright (c) 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: SecUi notification dialog plugin project.
-#
-
-TEMPLATE = lib
-TARGET = secuinotificationdialogplugin
-CONFIG += plugin
-TRANSLATIONS = secui.ts
-
-CONFIG += hb
-CONFIG += mobility
-MOBILITY = publishsubscribe
-
-# directories
-INCLUDEPATH += .
-DEPENDPATH += .
-INCLUDEPATH += $$APP_LAYER_SYSTEMINCLUDE
-INCLUDEPATH += ../../../../inc
-
-HEADERS += inc/secuinotificationdialogplugin.h \
- inc/secuinotificationdialog.h \
- inc/secuinotificationcontentwidget.h
-
-SOURCES += src/secuinotificationdialogplugin.cpp \
- src/secuinotificationdialog.cpp \
- src/secuinotificationcontentwidget.cpp
-
-RESOURCES += secuinotificationdialogplugin.qrc
-
-symbian: {
- TARGET.EPOCALLOWDLLDATA = 1
- # NetworkControl NetworkServices needed for emergency calls
- TARGET.CAPABILITY = CAP_GENERAL_DLL NetworkControl NetworkServices
- TARGET.UID3 = 0x2102432C # TODO: allocate UID
-
- pluginstub.sources = secuinotificationdialogplugin.dll
- pluginstub.path = /resource/plugins/devicedialogs
- DEPLOYMENT += pluginstub
- crml.sources = secuinotificationdialogplugin.qcrml
- crml.path = c:/resource/qt/crml
- DEPLOYMENT += crml
-}
-BLD_INF_RULES.prj_exports += \
- "$${LITERAL_HASH}include <platform_paths.hrh>" \
- "qmakepluginstubs/secuinotificationdialogplugin.qtplugin /epoc32/data/z/pluginstub/secuinotificationdialogplugin.qtplugin"\
- "rom/secuinotificationdialogplugin.iby CORE_APP_LAYER_IBY_EXPORT_PATH(secuinotificationdialogplugin.iby)"\
- "rom/secuinotificationdialogplugin_resources.iby LANGUAGE_APP_LAYER_IBY_EXPORT_PATH(secuinotificationdialogplugin_resources.iby)"
-
-LIBS += -lxqservice
-LIBS += -lphoneclient
-
-tests {
- test.depends = sub-src
- test.commands += cd tsrc && $(MAKE) test
- autotest.depends = sub-src
- autotest.commands += cd tsrc && $(MAKE) autotest
- QMAKE_EXTRA_TARGETS += test autotest
-}
--- a/securitydialogs/secuinotifications/secuinotificationdialogplugin/secuinotificationdialogplugin.qcrml Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,10 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<repository target="RProperty" uidValue="0x100059b5">
- <key int="0x00000309" ref="/KPSUidSecurityUIs/KSecurityUIsDismissDialog"></key>
-</repository>
-<repository target="RProperty" uidValue="0x10207218">
- <key int="0x00000001" ref="/KPSUidAvkonDomain/KAknKeyguardStatus"></key>
-</repository>
-<repository target="RProperty" uidValue="0x101F8767">
- <key int="0x00000501" ref="/KPSUidCoreApplicationUIs/KCoreAppUIsAutolockStatus"></key>
-</repository>
--- a/securitydialogs/secuinotifications/secuinotificationdialogplugin/secuinotificationdialogplugin.qrc Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,6 +0,0 @@
-<RCC>
- <qresource prefix="/" >
- <file alias="cert.svg" >resources/cert.svg</file>
- <file alias="drm.svg" >resources/drm.svg</file>
- </qresource>
-</RCC>
--- a/securitydialogs/secuinotifications/secuinotificationdialogplugin/src/secuinotificationcontentwidget.cpp Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,367 +0,0 @@
-/*
-* Copyright (c) 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: SecUi notification content widget.
-*
-*/
-
-#include "secuinotificationdebug.h"
-#include "secuinotificationcontentwidget.h"
-#include "secuinotificationdialogpluginkeys.h"
-#include <QGraphicsLinearLayout>
-#include <QToolButton>
-#include <hblabel.h>
-#include <hbpushbutton.h>
-#include <hbiconitem.h>
-#include <hbcombobox.h>
-#include <hblineedit.h>
-#include <hbinputeditorinterface.h>
-#include <QDebug>
-
-#include <HbCheckBox> // needed for a checkbox dialog
-#include <HbListWidget> // needed for multicheckbox dialog
-#include <HbListWidgetItem>
-#include <HbAbstractItemView>
-#include <HbEmailAddressFilter>
-
-#define ESecUiCancelSupported 0x1000000
-#define ESecUiCancelNotSupported 0x0000000
-
-#define ESecUiEmergencySupported 0x2000000
-#define ESecUiEmergencyNotSupported 0x0000000
-
-#define ESecUiAlphaSupported 0x4000000
-#define ESecUiAlphaNotSupported 0x0000000
-
-#define ESecUiSecretSupported 0x8000000
-#define ESecUiSecretNotSupported 0x0000000
-
-#define ESecUiMaskFlags 0xFF000000
-#define ESecUiMaskType 0x00FFFFFF
-
-#define ESecUiTypeDeviceLock 0x00100000
-#define ESecUiTypeKeyguard 0x00200000
-#define ESecUiTypeClock 0x00300000
-#define ESecUiTypeScreensaver 0x00400000
-
-#define ESecUiTypeMaskLock 0x00F00000
-
-
-// ----------------------------------------------------------------------------
-// SecUiNotificationContentWidget::SecUiNotificationContentWidget()
-// ----------------------------------------------------------------------------
-//
-SecUiNotificationContentWidget::SecUiNotificationContentWidget(
- QGraphicsItem *parent, Qt::WindowFlags flags) : HbWidget(parent, flags)
-{
- RDEBUG("0", 0);
-}
-
-// ----------------------------------------------------------------------------
-// SecUiNotificationContentWidget::~SecUiNotificationContentWidget()
-// ----------------------------------------------------------------------------
-//
-SecUiNotificationContentWidget::~SecUiNotificationContentWidget()
-{
-}
-
-// ----------------------------------------------------------------------------
-// SecUiNotificationContentWidget::constructFromParameters()
-// ----------------------------------------------------------------------------
-//
-void SecUiNotificationContentWidget::constructFromParameters(const QVariantMap ¶meters)
-{
- RDEBUG("0", 0);
- RDEBUGQT("parameters", parameters);
- QGraphicsLinearLayout *mainLayout = new QGraphicsLinearLayout(Qt::Vertical);
-
- lMinLength = 4; // might be replaced later
- lMaxLength = 8; // might be replaced later
- queryDual=0;
- isEmergency=0;
- codeTop=0;
-
- // KApplicationSize
- if (parameters.contains(KQueryType)) {
- RDEBUG("0", 0);
- queryType = parameters.value(KQueryType).toUInt();
- RDEBUG("queryType", queryType);
- if( (queryType & ESecUiTypeMaskLock) )
- {
- RDEBUG("KQueryType=ESecUiTypeMaskLock", queryType);
- // showing "Lock" icon. All other params are irrelevant. codeTop is not even created
-
- HbLabel *iconLabel = new HbLabel("Locked");
- HbIcon *icon = new HbIcon("qtg_large_device_lock");
- // iconLabel->setAspectRatioMode(Qt::IgnoreAspectRatio);
- // iconLabel->setGeometry(QRectF(QPointF(10,10),QSizeF(300,300)));
- iconLabel->setIcon(*icon);
- if( (queryType & ESecUiTypeMaskLock)==ESecUiTypeDeviceLock )
- { // really big icon for the devicelock
- iconLabel->setPreferredHeight(500);
- iconLabel->setPreferredWidth(500);
- }
- else if( (queryType & ESecUiTypeMaskLock)==ESecUiTypeKeyguard )
- { // smaller icon for the keyguard
- iconLabel->setPreferredHeight(100);
- iconLabel->setPreferredWidth(100);
- }
-
- // icon->setWidth(300);
- // icon->setHeight(350);
- // icon->setGeometry(QRectF(QPointF(10,10),QSizeF(500,300)));
- // icon->setSize(QSizeF(300,300));
-
- mainLayout->addItem(iconLabel);
- mainLayout->setAlignment(iconLabel, Qt::AlignCenter );
- // mainLayout->setGeometry(QRectF(QPointF(10,10),QSizeF(300,300)));
-
- /*
- QToolButton* mLabelIcon = new QToolButton;
- mLabelIcon->setIcon(QIcon(":/AutolockSrv_hbicon/qtg_large_device_lock.svg"));
- mLabelIcon->setIconSize(QSize(300,300));
- HbLabel *iconLabel = new HbLabel("Locked");
- iconLabel->setIcon(*mLabelIcon);
- mainLayout->addItem(iconLabel);
- */
-
- // mainLayout->setContentsMargins(10,10,300,500); // this makes the dialog really big
- setLayout(mainLayout); // same as at the end
- return;
- }
- // not ESecUiTypeMaskLock
- lEmergencySupported = ESecUiEmergencyNotSupported;
- if((queryType & ESecUiEmergencySupported)==ESecUiEmergencySupported)
- {
- lEmergencySupported = ESecUiEmergencySupported;
- }
- RDEBUG("lEmergencySupported", lEmergencySupported);
- }
-
- if (parameters.contains(KQueryMinLength)) {
- RDEBUG("KQueryMinLength", 0);
- lMinLength = parameters.value(KQueryMinLength).toUInt();
- RDEBUG("lMinLength", lMinLength);
- }
- if (parameters.contains(KQueryMaxLength)) {
- RDEBUG("KQueryMaxLength", 0);
- lMaxLength = parameters.value(KQueryMaxLength).toUInt();
- RDEBUG("lMaxLength", lMaxLength);
- }
-
- if (parameters.contains(KEmergency)) {
- RDEBUG("KEmergency", 0);
- QString emergencyText = parameters.value(KEmergency).toString();
- RDEBUGQT("emergencyText", emergencyText);
- if(!emergencyText.compare("emergencyYes"))
- {
- RDEBUG("emergencyYes", 1);
- isEmergency = 1;
- }
- if(!emergencyText.compare("emergencyNo"))
- {
- RDEBUG("emergencyNo", 0);
- isEmergency = 0;
- }
- }
-
-
- // KCodeTop
- if (parameters.contains(KCodeTop)) {
- RDEBUG("KCodeTop", 0);
- codeTop = new HbLineEdit(""); // no default value
- RDEBUG("queryType", queryType);
- codeTop->setInputMethodHints(Qt::ImhDigitsOnly); // default
- if (queryType & ESecUiAlphaSupported)
- {
- RDEBUG("ESecUiAlphaSupported", ESecUiAlphaSupported);
- codeTop->setInputMethodHints(Qt::ImhNone);
- }
- if (queryType & ESecUiSecretSupported)
- {
- RDEBUG("ESecUiSecretSupported", ESecUiSecretSupported);
- codeTop->setEchoMode(HbLineEdit::PasswordEchoOnEdit);
- }
- RDEBUG("lMaxLength", lMaxLength);
- if(lMaxLength>2)
- codeTop->setMaxLength(lMaxLength);
-
- if (parameters.contains(KDefaultCode)) {
- RDEBUG("KDefaultCode", 0);
- QString defaultCode = parameters.value(KDefaultCode).toString();
- RDEBUGQT("defaultCode", defaultCode);
- codeTop->setText(defaultCode);
- }
- RDEBUG("1", 1);
-
- connect(codeTop, SIGNAL(textChanged(const QString &)), this, SIGNAL(codeTopChanged(const QString &)));
- connect(codeTop, SIGNAL(contentsChanged()), this, SIGNAL(codeTopContentChanged()));
-
- if (parameters.contains(KDefaultCode)) { // this is done in this step so that the OK becomes valid (if rules are fulfilled)
- RDEBUG("KDefaultCode", 0);
- QString defaultCode = parameters.value(KDefaultCode).toString();
- RDEBUGQT("defaultCode", defaultCode);
- codeTop->setText(defaultCode);
- }
- RDEBUG("2", 2);
-
- if (parameters.contains(KDialogTitle)) {
- QString titleText = parameters.value(KDialogTitle).toString();
- QString titleAttempts = "";
- if(titleText.indexOf('|')>0)
- { // if separator, take only first part
- titleText = titleText.left(titleText.indexOf('|'));
- }
- if(titleText.indexOf('$')>0)
- { // if separator, take only first part
- // it comes translated alredy, from the client
- titleAttempts = titleText.right(titleText.length()-titleText.indexOf('$')-1);
- RDEBUGQT("titleAttempts", titleAttempts);
- int nAttempts = titleAttempts.toInt();
- RDEBUG("nAttempts", nAttempts);
- titleText = titleText.left(titleText.indexOf('$')); // this comes translated already
- if(nAttempts==1) // last attempt
- {
- // This must be in a new line, to avoid problems with left-to-right writing
- titleAttempts = hbTrId("txt_pin_code_dpophead_last_attempt");
- }
- else if(nAttempts>0)
- {
- titleAttempts = hbTrId("attempts") + "=" + QString::number(nAttempts);
- // TODO this requires %L1 localization using txt_pin_code_dpopinfo_ln_attempts_remaining
- }
- else if(nAttempts==0)
- {
- titleAttempts = ""; // something special for the last attempt ?
- }
- else
- {
- titleAttempts = "";
- }
- }
- HbLabel *titleTop = new HbLabel(titleText);
- mainLayout->addItem(titleTop);
- if (titleAttempts.length()>0 )
- {
- HbLabel *titleTopAttemps = new HbLabel(titleAttempts);
- mainLayout->addItem(titleTopAttemps);
- }
- // in the dialog, it was setHeadingWidget(title);
- }
- RDEBUG("3", 3);
- mainLayout->addItem(codeTop);
- // double-query
- if (parameters.contains(KCodeBottom))
- {
- queryDual=1;
- QString titleText = parameters.value(KDialogTitle).toString();
- if(titleText.indexOf('|')>0)
- { // if no separator, don't create label
- QString titleBottomStr = titleText.right(titleText.length()-titleText.indexOf('|')-1);
- // no need to translate
- HbLabel *titleBottom = new HbLabel(titleBottomStr);
- mainLayout->addItem(titleBottom);
- }
-
- codeBottom = new HbLineEdit(""); // no default value
- if(lMaxLength>2)
- codeBottom->setMaxLength(lMaxLength);
- codeBottom->setInputMethodHints(Qt::ImhDigitsOnly); // default
- if (queryType & ESecUiAlphaSupported)
- {
- RDEBUG("setInputMethodHints", 0);
- codeBottom->setInputMethodHints(Qt::ImhNone);
- }
- if (queryType & ESecUiSecretSupported)
- {
- RDEBUG("ESecUiSecretSupported", 0);
- codeBottom->setEchoMode(HbLineEdit::PasswordEchoOnEdit); // this will also remove predictive, which is what we want
- }
- RDEBUG("connecting", 0);
- connect(codeBottom, SIGNAL(textChanged(const QString &)), this, SIGNAL(codeBottomChanged(const QString &)));
- connect(codeBottom, SIGNAL(contentsChanged(const QString &)), this, SIGNAL(codeBottomChanged(const QString &)));
- mainLayout->addItem(codeBottom);
- }
-
- QGraphicsLinearLayout *mainLayoutButtons = new QGraphicsLinearLayout(Qt::Horizontal);
- HbPushButton *but1 = new HbPushButton("1234");
- HbPushButton *but2 = new HbPushButton("+1");
- HbPushButton *but3 = new HbPushButton("+5");
- connect(but1, SIGNAL(clicked()), this, SIGNAL(but1Changed()));
- connect(but2, SIGNAL(clicked()), this, SIGNAL(but2Changed()));
- connect(but3, SIGNAL(clicked()), this, SIGNAL(but3Changed()));
- #if defined(_DEBUG)
- mainLayoutButtons->addItem(but1);
- mainLayoutButtons->addItem(but2);
- mainLayoutButtons->addItem(but3);
- #endif
-
- mainLayout->addItem(mainLayoutButtons);
-
- // remove setFocus from PIN query because Orbit can't handle it
- // codeTop->setFocus(); // this should open the VKB
-
- }
-
- if (parameters.contains(KChecboxType)) {
- RDEBUG("KChecboxType", 0);
- if (parameters.contains(KDialogTitle)) {
- //TODO position of the label is not centered
- QString tmpText=parameters.value(KDialogTitle).toString();
- if (tmpText.endsWith("\n")) tmpText=tmpText.left(tmpText.length()-1);
- DialogText= new HbLabel(tmpText);
- DialogText->setTextWrapping(Hb::TextWordWrap);
- DialogText->setAlignment(Qt::AlignVCenter);
- mainLayout->addItem(DialogText);
- }
-
- checkbox = new HbCheckBox("Caption");
- if (parameters.contains(KDefaultCode)) {
- RDEBUG("KDefaultCode", 0);
- QStringList list1 = parameters.value(KDefaultCode).toString().split("|");
- if (!list1.isEmpty() && list1.count()==2) {
- if (!list1[0].isNull() && !list1[0].isEmpty()) checkbox->setText(list1[0]);
- if (!list1[1].isNull() && !list1[1].isEmpty()) checkbox->setChecked(list1[1].toInt());
- }
- // TODO this needs localization
- }
- mainLayout->addItem(checkbox);
- }
-
- if (parameters.contains(KMultiChecboxType) && parameters.contains(KDefaultCode))
- {
- RDEBUG("KMultiChecboxType", 0);
- QStringList list1 = parameters.value(KDefaultCode).toString().split("1\t");
- if (!list1.isEmpty()) {
- listWidget = new HbListWidget();
- for (int i = 0; (i < list1.count()); i++)
- if (!list1[i].isEmpty() && !list1[i].isNull()) {
- HbListWidgetItem* modelItem = new HbListWidgetItem();
- modelItem->setData(QVariant(list1[i]), Qt::DisplayRole);
- // TODO this needs localization
- listWidget->addItem(modelItem);
- }
- listWidget->setCurrentRow(0);
- listWidget->setSelectionMode(HbAbstractItemView::MultiSelection);
- //listWidget->setClampingStyle(HbScrollArea::BounceBackClamping);
- listWidget->setVerticalScrollBarPolicy(HbScrollArea::ScrollBarAsNeeded);
- listWidget->setMaximumHeight(150);
- mainLayout->addItem(listWidget);
- // delete listWidget;
- }
- }
-
- setLayout(mainLayout);
- }
-
--- a/securitydialogs/secuinotifications/secuinotificationdialogplugin/src/secuinotificationdialog.cpp Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,877 +0,0 @@
-/*
-* Copyright (c) 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: SecUi notification plugin class.
-*
-*/
-
-#include "secuinotificationdebug.h"
-#include "secuinotificationdialog.h"
-#include "secuinotificationdialogpluginkeys.h"
-#include "secuinotificationcontentwidget.h"
-// #include <hbpopupbase.h> // HbPopupBase::NoTimeout
-#include <hblabel.h>
-#include <hbaction.h>
-#include <QDebug>
-#include <e32debug.h>
-#include <hbtranslator.h>
-#include <cphcltemergencycall.h>
-#include <SCPServerInterface.h> // for TARM error codes while validating new lock code
-#include <QString>
-#include <QDialogButtonBox>
-#include <HbEditorInterface>
-#include <e32property.h>
-
-QTM_USE_NAMESPACE
-
-const QString KTranslationsPath = "/resource/qt/translations/";
-const QString KSecUiNotificationTranslationsFile = "secui";
-const QString KCommonTranslationsFile = "common";
-
-#include <qvaluespacesubscriber.h>
-#include <qvaluespacepublisher.h>
-#define ESecUiBasicTypeText 0x0000000
-#define ESecUiBasicTypeCheck 0x0010000
-#define ESecUiBasicTypeCheckMulti 0x0020000
-#define ESecUiBasicTypeMask 0x00F0000
-
-#define ESecUiCancelSupported 0x1000000
-#define ESecUiCancelNotSupported 0x0000000
-
-#define ESecUiEmergencySupported 0x2000000
-#define ESecUiEmergencyNotSupported 0x0000000
-
-#define ESecUiAlphaSupported 0x4000000
-#define ESecUiAlphaNotSupported 0x0000000
-
-#define ESecUiSecretSupported 0x8000000
-#define ESecUiSecretNotSupported 0x0000000
-
-#define ESecUiMaskFlags 0xFF000000
-#define ESecUiMaskType 0x00FFFFFF
-
-#define ESecUiTypeDeviceLock 0x00100000
-#define ESecUiTypeKeyguard 0x00200000
-#define ESecUiTypeClock 0x00300000
-#define ESecUiTypeScreensaver 0x00400000
-
-#define ESecUiTypeMaskLock 0x00F00000
-
-const TUid KPSUidSecurityUIs = { 0x100059b5 };
-const TUint32 KSecurityUIsDismissDialog = 0x00000309;
-
-enum TSecurityUIsDismissDialogValues
- {
- ESecurityUIsDismissDialogUninitialized = 0,
- ESecurityUIsDismissDialogOn,
- ESecurityUIsDismissDialogProcessing,
- ESecurityUIsDismissDialogDone,
- ESecurityUIsDismissDialogLastValue
- };
-
-// ----------------------------------------------------------------------------
-// SecUiNotificationDialog::SecUiNotificationDialog()
-// ----------------------------------------------------------------------------
-//
-SecUiNotificationDialog::SecUiNotificationDialog(
- const QVariantMap ¶meters) : HbDialog(), mCommonTranslator(0), mSecUiNotificationTranslator(0), mLastError(KNoError)
-{
- RDEBUG("0", 0);
- TTime myTime;
- myTime.HomeTime();
- mMyId = I64LOW( myTime.Int64() );
- mCommonTranslator = new HbTranslator(KTranslationsPath, KCommonTranslationsFile);
- mSecUiNotificationTranslator = new HbTranslator(KTranslationsPath, KSecUiNotificationTranslationsFile);
- constructDialog(parameters);
-}
-
-// ----------------------------------------------------------------------------
-// SecUiNotificationDialog::~SecUiNotificationDialog()
-// ----------------------------------------------------------------------------
-//
-SecUiNotificationDialog::~SecUiNotificationDialog()
-{
- RDEBUG("0", 0);
- delete mSecUiNotificationTranslator;
- delete mCommonTranslator;
- RDEBUG("0", 0);
- // TODO what about subscriberKSecurityUIsDismissDialog
- // and codeTop
- RDEBUG("1", 1);
-}
-
-// ----------------------------------------------------------------------------
-// SecUiNotificationDialog::setDeviceDialogParameters()
-// ----------------------------------------------------------------------------
-//
-bool SecUiNotificationDialog::setDeviceDialogParameters(const QVariantMap ¶meters)
-{
- RDEBUG("0", 0);
- return constructDialog(parameters);
-}
-
-// ----------------------------------------------------------------------------
-// SecUiNotificationDialog::deviceDialogError()
-// ----------------------------------------------------------------------------
-//
-int SecUiNotificationDialog::deviceDialogError() const
-{
- RDEBUG("mLastError", mLastError);
- RDEBUG("mMyId", mMyId);
- return mLastError;
-}
-
-// ----------------------------------------------------------------------------
-// SecUiNotificationDialog::closeDeviceDialog
-// ----------------------------------------------------------------------------
-//
-void SecUiNotificationDialog::closeDeviceDialog(bool byClient)
-{
- Q_UNUSED(byClient);
- RDEBUG("mMyId", mMyId);
- RDEBUG("calling close()", 0);
- close();
- RDEBUG("mShowEventReceived", mShowEventReceived);
-
- // If show event has been received, close is signalled from hide event.
- // If not, hide event does not come and close is signalled from here.
- if (!mShowEventReceived) {
- RDEBUG("emitting deviceDialogClosed", 0);
- emit deviceDialogClosed();
- if(1==0 && subscriberKSecurityUIsDismissDialog)
- {
- RDEBUG("disconnect subscriberKSecurityUIsDismissDialog", 0);
- disconnect(subscriberKSecurityUIsDismissDialog, SIGNAL(contentsChanged()), this, SLOT(subscriberKSecurityUIsDismissDialogChanged()));
- RDEBUG("disconnected subscriberKSecurityUIsDismissDialog", 1);
- if(1==1)
- {
- RDEBUG("deleting subscriberKSecurityUIsDismissDialog", 0);
- delete subscriberKSecurityUIsDismissDialog;
- subscriberKSecurityUIsDismissDialog = NULL;
- RDEBUG("deleted subscriberKSecurityUIsDismissDialog", 1);
- }
- }
- }
- RDEBUG("0", 0);
-}
-
-// ----------------------------------------------------------------------------
-// SecUiNotificationDialog::deviceDialogWidget
-// ----------------------------------------------------------------------------
-//
-HbDialog *SecUiNotificationDialog::deviceDialogWidget() const
-{
- return const_cast<SecUiNotificationDialog*>(this);
-}
-
-// ----------------------------------------------------------------------------
-// SecUiNotificationDialog::hideEvent
-// ----------------------------------------------------------------------------
-//
-void SecUiNotificationDialog::hideEvent(QHideEvent *event)
-{
- RDEBUG("0", 0);
- HbDialog::hideEvent(event);
- RDEBUG("mMyId", mMyId);
- RDEBUG("calling close()", 0);
- close();
- RDEBUG("emitting deviceDialogClosed", 0);
- emit deviceDialogClosed();
- RDEBUG("deviceDialogClosed", 1);
- if(1==0 && subscriberKSecurityUIsDismissDialog)
- {
- RDEBUG("disconnect subscriberKSecurityUIsDismissDialog", 0);
- disconnect(subscriberKSecurityUIsDismissDialog, SIGNAL(contentsChanged()), this, SLOT(subscriberKSecurityUIsDismissDialogChanged()));
- RDEBUG("disconnected subscriberKSecurityUIsDismissDialog", 1);
- if(1==1)
- {
- RDEBUG("deleting subscriberKSecurityUIsDismissDialog", 0);
- delete subscriberKSecurityUIsDismissDialog;
- subscriberKSecurityUIsDismissDialog = NULL;
- RDEBUG("deleted subscriberKSecurityUIsDismissDialog", 1);
- }
- }
- // old method was emit deviceDialogClosed();
- RDEBUG("0", 0);
-}
-
-// ----------------------------------------------------------------------------
-// SecUiNotificationDialog::showEvent
-// ----------------------------------------------------------------------------
-//
-void SecUiNotificationDialog::showEvent(QShowEvent *event)
-{
- RDEBUG("0", 0);
- RDEBUG("mMyId", mMyId);
- HbDialog::showEvent(event);
-
- if(!(queryType & ESecUiTypeMaskLock))
- { // not for the "lock icon"
- RDEBUG("check default.1", 0);
- if(codeTop!=NULL)
- {
- RDEBUG("check default.2", 0);
- if(codeTop->text().length()>0) // there's a default value. Verify it and (might) enable OK
- {
- RDEBUG("check default.3", 0);
- handleCodeTopChanged(codeTop->text());
- }
- RDEBUG("setFocus", 0);
- // remove setFocus from PIN query because Orbit can't handle it
- // codeTop->setFocus(); // this should open the VKB . Doesn't seem to work when it's done on the widget, so it's done here.
- } // codeTop!=NULL
-
- const TUint32 KSecurityUIsTestCode = 0x00000307;
- TInt value = 0;
- TInt err = RProperty::Get(KPSUidSecurityUIs, KSecurityUIsTestCode, value );
- RDEBUG("KSecurityUIsTestCode err", err);
- RDEBUG("faking value", value);
- RDEBUG("mShowEventReceived", mShowEventReceived);
- if(value>0 && value<1000000 && mShowEventReceived==true) // show happens 2 times. Dialog can be closed only the second.
- {
- QString myString = "";
- myString += QString("%1").arg(value);
- RDEBUGQT("myString", myString);
- codeTop->setText( myString );
- TInt err = RProperty::Set(KPSUidSecurityUIs, KSecurityUIsTestCode, 0 ); // clear after using it
- RDEBUGQT("calling handleAccepted myString", myString);
- emit handleAccepted();
- // handleAccepted already emit closeDeviceDialog(false); // false means "not by client", although it's not really used
- }
- }
- mShowEventReceived = true;
- RDEBUG("1", 1);
-}
-
-// ----------------------------------------------------------------------------
-// SecUiNotificationDialog::constructDialog()
-// ----------------------------------------------------------------------------
-//
-bool SecUiNotificationDialog::constructDialog(const QVariantMap ¶meters)
- {
- RDEBUG("0", 0);
- RDEBUG("mMyId", mMyId);
- setTimeout(HbPopup::NoTimeout);
- setDismissPolicy(HbPopup::NoDismiss);
- setModal(true);
- mShowEventReceived = false;
- subscriberKSecurityUIsDismissDialog = NULL;
- titleWidget = NULL;
- RDEBUG("subscriberKSecurityUIsDismissDialog NULL", 0);
-
- subscriberKSecurityUIsDismissDialog = new QValueSpaceSubscriber("/KPSUidSecurityUIs/KSecurityUIsDismissDialog", this);
- if(subscriberKSecurityUIsDismissDialog)
- {
- RDEBUG("subscriberKSecurityUIsDismissDialog created", 1);
- }
- else
- {
- RDEBUG("subscriberKSecurityUIsDismissDialog not created", 0);
- }
- connect(subscriberKSecurityUIsDismissDialog, SIGNAL(contentsChanged()), this, SLOT(subscriberKSecurityUIsDismissDialogChanged()));
- RDEBUG("subscriberKSecurityUIsDismissDialog", 1);
-
- // Title
- // this is also done later in the widget
- // For now, it only says "Security"
- if (parameters.contains(KDialogTitle)) {
- QString titleText = parameters.value(KDialogTitle).toString();
- QString titleAttempts = "";
- if(titleText.indexOf('|')>0)
- { // if separator, take only first part
- titleText = titleText.left(titleText.indexOf('|'));
- }
- if(titleText.indexOf('$')>0)
- { // if separator, take only first part
- titleAttempts = titleText.right(titleText.length()-titleText.indexOf('$')-1);
- RDEBUGQT("titleAttempts", titleAttempts);
- int nAttempts = titleAttempts.toInt();
- RDEBUG("nAttempts", nAttempts);
- titleText = titleText.left(titleText.indexOf('$'));
- if(nAttempts>0)
- titleText = titleText + " attempts=" + QString::number(nAttempts);
- }
- titleText = hbTrId("Security Query"); // this is the header, for any potential later error which needs to be displayed
- // This is created only if needed (i.e. errors for NewLockCode)
- // titleWidget = new HbLabel(titleText);
- // setHeadingWidget(titleWidget);
- }
-
- if (parameters.contains(KEmergency)) {
- RDEBUG("KEmergency", 1);
- QString emergencyText = parameters.value(KEmergency).toString();
- RDEBUGQT("emergencyText", emergencyText);
- if(!emergencyText.compare("emergencyYes"))
- {
- RDEBUG("emergencyYes", 1);
- isEmergency = 1;
- okAction->setEnabled(true);
- okAction->setText(hbTrId("Call"));
- return true;
- }
- if(!emergencyText.compare("emergencyNo"))
- {
- RDEBUG("emergencyNo", 1);
- isEmergency = 0;
- okAction->setEnabled(false); // 112 -> 1122 (=password) . This is handled by < lMinLength
- okAction->setText(hbTrId("Ok"));
- return true;
- }
- }
- // after TARM validation.
- if (parameters.contains(KInvalidNewLockCode)) {
- RDEBUG("KInvalidNewLockCode", 0);
- QString invalidText = parameters.value(KInvalidNewLockCode).toString();
- RDEBUGQT("invalidText", invalidText);
- QString newTitleText = "Lock Code"; // TODO take from the original one
-
- QString invalidStr = invalidText.right(invalidText.length()-invalidText.indexOf('$')-1);
- int invalidNumber = invalidStr.toInt();
- RDEBUG("invalidNumber", invalidNumber);
- if(invalidNumber<0) // that is, -1
- {
- RDEBUG("invalidNumber<0", invalidNumber );
- // nothing to do
- }
- if(invalidNumber==EDeviceLockAutolockperiod)
- {
- RDEBUG("EDeviceLockAutolockperiod", invalidNumber );
- newTitleText+=hbTrId("EDeviceLockAutolockperiod");
- }
- if(invalidNumber==EDeviceLockMaxAutolockPeriod)
- {
- RDEBUG("EDeviceLockAutolockperiod", invalidNumber );
- newTitleText+=hbTrId("EDeviceLockMaxAutolockPeriod");
- }
- if(invalidNumber==EDeviceLockMinlength)
- {
- RDEBUG("EDeviceLockMinlength", invalidNumber );
- newTitleText+=hbTrId("EDeviceLockMinlength");
- }
- if(invalidNumber==EDeviceLockMaxlength)
- {
- RDEBUG("EDeviceLockMaxlength", invalidNumber );
- newTitleText+=hbTrId("EDeviceLockMaxlength");
- }
- if(invalidNumber==EDeviceLockRequireUpperAndLower)
- {
- RDEBUG("EDeviceLockRequireUpperAndLower", invalidNumber );
- newTitleText+=hbTrId("EDeviceLockRequireUpperAndLower");
- }
- if(invalidNumber==EDeviceLockRequireCharsAndNumbers)
- {
- RDEBUG("EDeviceLockMaxlength", invalidNumber );
- newTitleText+=hbTrId("EDeviceLockMaxlength");
- }
- if(invalidNumber==EDeviceLockAllowedMaxRepeatedChars)
- {
- RDEBUG("EDeviceLockAllowedMaxRepeatedChars", invalidNumber );
- newTitleText+=hbTrId("EDeviceLockAllowedMaxRepeatedChars");
- }
- if(invalidNumber==EDeviceLockHistoryBuffer)
- {
- RDEBUG("EDeviceLockHistoryBuffer", invalidNumber );
- newTitleText+=hbTrId("EDeviceLockHistoryBuffer");
- }
- if(invalidNumber==EDeviceLockPasscodeExpiration)
- {
- RDEBUG("EDeviceLockPasscodeExpiration", invalidNumber );
- newTitleText+=hbTrId("EDeviceLockPasscodeExpiration");
- }
- if(invalidNumber==EDeviceLockMinChangeTolerance)
- {
- RDEBUG("EDeviceLockMinChangeTolerance", invalidNumber );
- newTitleText+=hbTrId("EDeviceLockMinChangeTolerance");
- }
- if(invalidNumber==EDeviceLockMinChangeInterval)
- {
- RDEBUG("EDeviceLockMinChangeInterval", invalidNumber );
- newTitleText+=hbTrId("EDeviceLockMinChangeInterval");
- }
- if(invalidNumber==EDeviceLockDisallowSpecificStrings)
- {
- RDEBUG("EDeviceLockDisallowSpecificStrings", invalidNumber );
- newTitleText+=hbTrId("EDeviceLockDisallowSpecificStrings");
- }
- if(invalidNumber==EDeviceLockAllowedMaxAtempts)
- {
- RDEBUG("EDeviceLockAllowedMaxAtempts", invalidNumber );
- newTitleText+=hbTrId("EDeviceLockAllowedMaxAtempts");
- }
- if(invalidNumber==EDeviceLockConsecutiveNumbers)
- {
- RDEBUG("EDeviceLockConsecutiveNumbers", invalidNumber );
- newTitleText+=hbTrId("EDeviceLockConsecutiveNumbers");
- }
- if(invalidNumber==EDeviceLockMinSpecialCharacters)
- {
- RDEBUG("EDeviceLockMinSpecialCharacters", invalidNumber );
- newTitleText+=hbTrId("EDeviceLockMinSpecialCharacters");
- }
- if(invalidNumber==EDeviceLockSingleCharRepeatNotAllowed)
- {
- RDEBUG("EDeviceLockSingleCharRepeatNotAllowed", invalidNumber );
- newTitleText+=hbTrId("EDeviceLockSingleCharRepeatNotAllowed");
- }
- if(invalidNumber==EDevicelockConsecutiveCharsNotAllowed)
- {
- RDEBUG("EDevicelockConsecutiveCharsNotAllowed", invalidNumber );
- newTitleText+=hbTrId("EDevicelockConsecutiveCharsNotAllowed");
- }
- if(invalidNumber>=EDevicelockTotalPolicies)
- {
- RDEBUG("EDevicelockTotalPolicies", invalidNumber );
- newTitleText+=hbTrId("EDevicelockTotalPolicies");
- }
- if( !titleWidget )
- {
- RDEBUG("creating titleWidget", 0 );
- titleWidget = new HbLabel(hbTrId("New lock code")); // it will be changed later
- setHeadingWidget(titleWidget);
- }
- RDEBUG("setPlainText", 0 );
- titleWidget->setPlainText(newTitleText);
-
- if(invalidNumber<0) // everything is ok
- {
- okAction->setEnabled(true); // this might fail in the scenario: check this : invalid -> valid. This allows verif ?
- okAction->setText(hbTrId("Ok"));
- codeBottom->setEnabled(true);
- }
- else
- {
- okAction->setEnabled(false);
- codeBottom->setEnabled(false);
- codeBottom->setText("");
- okAction->setText(hbTrId("Ok"));
- }
- // need to return because all objects are already created
- return true;
- }
-
- // Content
- SecUiNotificationContentWidget *content = new SecUiNotificationContentWidget();
- content->constructFromParameters(parameters);
- setContentWidget(content);
-
- queryType = content->queryType;
- queryDual = content->queryDual;
- isEmergency = content->isEmergency;
- codeTop=NULL;
- codeTop = content->codeTop;
- checkBox = content->checkbox;
- listWidget = content->listWidget;
- codeBottom = content->codeBottom;
- lMinLength = content->lMinLength;
- lMaxLength = content->lMaxLength;
- lEmergencySupported = content->lEmergencySupported;
-
- connect(content, SIGNAL(codeTopChanged(const QString &)), this, SLOT(handleCodeTopChanged(const QString &)));
- connect(content, SIGNAL(codeBottomChanged(const QString &)), this, SLOT(handleCodeBottomChanged(const QString &)));
- connect(content, SIGNAL(codeTopContentChanged()), this, SLOT(handleCodeTopContentChanged()));
- connect(content, SIGNAL(but1Changed()), this, SLOT(handlebut1Changed()));
- connect(content, SIGNAL(but2Changed()), this, SLOT(handlebut2Changed()));
- connect(content, SIGNAL(but3Changed()), this, SLOT(handlebut3Changed()));
- RDEBUG("queryType", queryType);
- // Buttons
- if( (queryType & ESecUiTypeMaskLock))
- {
- // no need to create OK or Cancel
- return true;
- }
-
- okAction = new HbAction(hbTrId("Ok"));
- RDEBUG("created HbAction okAction", 1);
- okAction->setEnabled(false); // initially the OK is disabled because codeTop is empty
- if((queryType & ESecUiBasicTypeMask) ==ESecUiBasicTypeCheck) {
- okAction->setEnabled(true);
- setHeadingWidget(0); // had to remove this no multiline
- }
- else if ((queryType & ESecUiBasicTypeMask) ==ESecUiBasicTypeCheckMulti){
- okAction->setEnabled(true);
- }
-
- // setAction(okAction, QDialogButtonBox::AcceptRole); // it's supposed to use this, when deprecated
- // setPrimaryAction(okAction);
- addAction(okAction);
- disconnect(okAction, SIGNAL(triggered()), this, SLOT(close())); // the close will be done in handleAccepted
- connect(okAction, SIGNAL(triggered()), this, SLOT(handleAccepted()));
-
- cancelAction = new HbAction(hbTrId("Cancel")); // qtTrId("txt_common_button_cancel")
- addAction(cancelAction);
- disconnect(cancelAction, SIGNAL(triggered()), this, SLOT(close())); // the close will be done in handleCancelled
- connect(cancelAction, SIGNAL(triggered()), this, SLOT(handleCancelled()));
- // setAction(cancelAction, QDialogButtonBox::RejectRole); // it's supposed to use this, when deprecated
- // setSecondaryAction(cancelAction);
-
- // this should had been set by Autolock, but just to be sure
- TInt ret = RProperty::Define(KPSUidSecurityUIs, KSecurityUIsDismissDialog,
- RProperty::EInt, TSecurityPolicy(TSecurityPolicy::EAlwaysPass),
- TSecurityPolicy(TSecurityPolicy::EAlwaysPass));
- RDEBUG("defined KSecurityUIsDismissDialog", ret);
- TInt aDismissDialog = -1;
- ret = RProperty::Get(KPSUidSecurityUIs, KSecurityUIsDismissDialog, aDismissDialog );
- RDEBUG("ret", ret);
- RDEBUG("aDismissDialog", aDismissDialog);
- if(aDismissDialog==ESecurityUIsDismissDialogOn || aDismissDialog==ESecurityUIsDismissDialogProcessing)
- {
- RDebug::Printf( "potential error: %s %s (%u) aDismissDialog=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, aDismissDialog );
- }
-
- RDEBUG("check cancel", 0);
- if ((queryType & ESecUiCancelSupported)==ESecUiCancelSupported)
- {
- // nothing to do. Cancel is enabled by default
- }
- else
- {
- RDEBUG("disable Cancel", 1);
- cancelAction->setEnabled(false);
- cancelAction->setText("");
- cancelAction->setVisible(false);
- }
-
- return true;
-}
-
-// ----------------------------------------------------------------------------
-// SecUiNotificationDialog::sendResult()
-// ----------------------------------------------------------------------------
-//
-void SecUiNotificationDialog::sendResult(int accepted)
-{
- RDEBUG("0", 0);
- RDEBUG("mMyId", mMyId);
- QVariant acceptedValue(accepted);
- RDEBUG("0", 0);
- mResultMap.insert(KResultAccepted, acceptedValue);
- RDEBUG("0", 0);
- RDEBUGQT("mResultMap", mResultMap);
- RDEBUG("queryType", queryType);
- if(!(queryType & ESecUiTypeMaskLock))
- { // the lock-icon should not reply
- RDEBUG("emit deviceDialogData", 0);
- emit deviceDialogData(mResultMap);
- }
- RDEBUG("1", 1);
-}
-
-// ----------------------------------------------------------------------------
-// SecUiNotificationDialog::handleAccepted()
-// ----------------------------------------------------------------------------
-//
-void SecUiNotificationDialog::handleAccepted()
-{
- RDEBUG("0", 0);
- // okAction
- RDEBUG("mMyId", mMyId);
- QString codeTopText="";
-
- if( (queryType & ESecUiTypeMaskLock))
- {
- codeTopText = "Unlock-Request";
- }
- else if( (queryType & ESecUiBasicTypeMask)==ESecUiBasicTypeCheck)
- {
- codeTopText=(checkBox->isChecked() ? "1":"0");
- mResultMap.insert(KCodeTopIndex, codeTopText);
- }
- else if( (queryType & ESecUiBasicTypeMask)==ESecUiBasicTypeCheckMulti)
- {
- QItemSelectionModel *selectionModel = listWidget->selectionModel();
- QModelIndexList selectedItems = selectionModel->selectedIndexes();
- QModelIndex index;
- codeTopText="";
- foreach(index, selectedItems) {
- codeTopText+=QString::number(index.row());
- // could also use if(index.row()!=selectedItems.count()-1) codeTopText+= "|";
- codeTopText+= "|";
- }
- mResultMap.insert(KCodeTopIndex, codeTopText);
- }
- else
- codeTopText = codeTop->text();
- // no need to check last time for codeBottom
- RDEBUGQT("codeTopText", codeTopText);
- sendResult(KErrNone);
- RDEBUG("calling close()", 0);
- close(); // this is needed because Cancel doesn't automatically closes the dialog
- RDEBUG("emitting deviceDialogClosed", 0);
- emit deviceDialogClosed();
-}
-
-// ----------------------------------------------------------------------------
-// SecUiNotificationDialog::handleCancelled()
-// ----------------------------------------------------------------------------
-//
-void SecUiNotificationDialog::handleCancelled()
-{
- RDEBUG("0", 0);
- RDEBUG("mMyId", mMyId);
- sendResult(KErrCancel);
- RDEBUG("callingclose()", 0);
- close(); // this is needed because Cancel doesn't automatically closes the dialog
- RDEBUG("emitting deviceDialogClosed", 0);
- emit deviceDialogClosed();
-}
-
-// ----------------------------------------------------------------------------
-// SecUiNotificationDialog::handleMemorySelectionChanged()
-// ----------------------------------------------------------------------------
-//
-void SecUiNotificationDialog::handleMemorySelectionChanged(const QString &text)
- {
- RDEBUG("0", 0);
- RDEBUG("mMyId", mMyId);
- RDEBUGQT("text", text);
- QVariant memorySelection(text);
- mResultMap.insert(KSelectedMemoryIndex, memorySelection);
- }
-
-void SecUiNotificationDialog::handleCodeTopContentChanged()
- {
- RDEBUG("0", 0);
- RDEBUG("mMyId", mMyId);
- RDEBUGQT("codeTop->text()", codeTop->text());
- handleCodeTopChanged(codeTop->text());
- }
-
-// ----------------------------------------------------------------------------
-// SecUiNotificationDialog::handleCodeTopChanged()
-// ----------------------------------------------------------------------------
-//
-void SecUiNotificationDialog::handleCodeTopChanged(const QString &text)
- {
- RDEBUG("0", 0);
- RDEBUGQT("text", text);
- if(queryDual)
- {
- codeBottom->setText(""); // any change resets the verification.
- if( (queryType & ESecUiMaskType) == 0x000004 ) // new codeLock
- { // ChangeSecCodeParamsL change RMobilePhone::ESecurityCodePhonePassword
- QVariant codeTopVar(text);
- mResultMap.insert(KCodeTopIndex, codeTopVar);
- sendResult(KErrCompletion); // send the current password back to the client for further TARM validation. This is done on any key-press, not in the OK
- }
- }
- else if(text.length() < lMinLength )
- {
- RDEBUGQT("too short text", text);
- okAction->setEnabled(false);
- RDEBUG("lEmergencySupported", lEmergencySupported);
- if( lEmergencySupported && text.length() > 2 ) // emergency numbers need at least 3 digits
- { // check whether it's a emergency number
- QVariant codeTopVar(text);
- mResultMap.insert(KCodeTopIndex, codeTopVar);
- sendResult(KErrAbort); // send the current password back to the client. Perhaps it's an emergency number and decides to Ok->Call
- }
- }
- else if (text.length() >= lMinLength)
- {
- // might use a flag to avoid re-setting. But this complicates things if there's another initial verification
- RDEBUGQT("long enough text", text);
- okAction->setText(hbTrId("Ok"));
- if(queryDual==0) // only if Bottom is not used
- okAction->setEnabled(true);
- }
- QVariant codeTopVar(text);
- mResultMap.insert(KCodeTopIndex, codeTopVar);
- }
-// ----------------------------------------------------------------------------
-// SecUiNotificationDialog::handleCodeBottomChanged()
-// ----------------------------------------------------------------------------
-//
-void SecUiNotificationDialog::handleCodeBottomChanged(const QString &text)
- {
- RDEBUG("0", 0);
- RDEBUGQT("text", text);
- RDEBUGQT("codeTop->text()", codeTop->text());
- if(text.length() < lMinLength )
- {
- RDEBUGQT("too short text", text);
- okAction->setEnabled(false);
- }
- else
- {
- // might use a flag to avoid re-setting. But it just complicates things.
- RDEBUGQT("long enough text", text);
- if(codeTop->text()==text)
- {
- // unless both codes match, don't allow OK. Note that the first field doesn't allow exit until the validations (i.e. NewLockCode) as succesfull
- RDEBUGQT("codes match", text);
- okAction->setEnabled(true);
- }
- else
- {
- RDEBUGQT("codes don't match", text);
- okAction->setEnabled(false);
- }
- }
- // verification is not sent
- }
-// ----------------------------------------------------------------------------
-// SecUiNotificationDialog::handlebut1Changed()
-// ----------------------------------------------------------------------------
-//
-void SecUiNotificationDialog::handlebut1Changed()
- {
- RDEBUG("0", 0);
- codeTop->setText("1234");
- }
-// ----------------------------------------------------------------------------
-// SecUiNotificationDialog::handlebut2Changed()
-// ----------------------------------------------------------------------------
-//
-void SecUiNotificationDialog::handlebut2Changed()
- {
- RDEBUG("0", 0);
- QString codeTopText = codeTop->text();
- RDEBUGQT("codeTopText", codeTopText);
- codeTopText = codeTopText + "1" ;
- RDEBUGQT("codeTopText+1", codeTopText);
- codeTop->setText(codeTopText);
-
- RDEBUG("editorInterface", 0);
- HbEditorInterface editorInterface(codeTop);
- RDEBUG("actions", 0);
- QList<HbAction *> vkbList = editorInterface.actions();
- RDEBUG("count", 0);
- int count = vkbList.count();
- RDEBUG("got count", count);
- for (int i = 0; i < count; i++)
- {
- RDEBUG("i", i);
- HbAction *action = static_cast<HbAction *>(vkbList[i]);
- RDEBUG("action", 0);
- }
-
- RDEBUG("okVKBAction", 0);
- okVKBAction = new HbAction(tr("Ok"));
- RDEBUG("addAction", 0);
- editorInterface.addAction(okVKBAction);
- RDEBUG("addAction", 1);
- connect(okVKBAction, SIGNAL(triggered()), this, SLOT(handleAccepted()));
- RDEBUG("connect", 1);
-
- QList<HbAction *> vkbList2 = editorInterface.actions();
- RDEBUG("count", 0);
- int count2 = vkbList2.count();
- RDEBUG("got count2", count2);
- for (int i = 0; i < count2; i++)
- {
- RDEBUG("i", i);
- HbAction *action2 = static_cast<HbAction *>(vkbList2[i]);
- RDEBUG("action2", 0);
- }
-
- }
-// ----------------------------------------------------------------------------
-// SecUiNotificationDialog::handlebut3Changed()
-// ----------------------------------------------------------------------------
-//
-void SecUiNotificationDialog::handlebut3Changed()
- {
- RDEBUG("0", 0);
- QString codeTopText = codeTop->text();
- RDEBUG("codeTopText", 0);
- RDEBUGQT("codeTopText", codeTopText);
- codeTopText = codeTopText + "5" ;
- RDEBUGQT("codeTopText+5", codeTopText);
- codeTop->setEchoMode(HbLineEdit::PasswordEchoOnEdit);
- RDEBUGQT("codeTopText", codeTopText);
- codeTop->setText(codeTopText);
- RDEBUG("setFocus", 0);
- codeTop->setFocus();
- RDEBUG("1", 1);
- }
-
-// ----------------------------------------------------------------------------
-// SecUiNotificationDialog::saveFocusWidget(QWidget*,QWidget*)
-// ----------------------------------------------------------------------------
-//
-void SecUiNotificationDialog::saveFocusWidget(QWidget*,QWidget*)
-{
- RDEBUG("0", 0);
-}
-
-// ----------------------------------------------------------------------------
-// SecUiNotificationDialog::subscriberKSecurityUIsDismissDialogChanged()
-// A way for Autolock to dismiss any possible PIN dialog
-// This doesn't dismiss the lockIcon because P&S is not connected
-// Note: if this changes itself, then it becomes recursive
-// ----------------------------------------------------------------------------
-//
-void SecUiNotificationDialog::subscriberKSecurityUIsDismissDialogChanged()
- {
-
- RDEBUG("0", 0);
- RDEBUG("mMyId", mMyId);
- TInt aDismissDialog = ESecurityUIsDismissDialogUninitialized;
- TInt err = RProperty::Get(KPSUidSecurityUIs, KSecurityUIsDismissDialog, aDismissDialog );
- RDEBUG("err", err);
- RDEBUG("aDismissDialog", aDismissDialog);
- if( aDismissDialog == ESecurityUIsDismissDialogOn )
- {
- if(subscriberKSecurityUIsDismissDialog)
- {
- RDEBUG("subscriberKSecurityUIsDismissDialog", 1);
- }
- else
- {
- RDEBUG("! subscriberKSecurityUIsDismissDialog", 0);
- }
-
- if(this)
- {
- RDEBUG("this", 1);
- }
- else
- {
- RDEBUG("! this", 0);
- }
-
-
- RDEBUG("disconnect subscriberKSecurityUIsDismissDialog", 0);
- disconnect(subscriberKSecurityUIsDismissDialog, SIGNAL(contentsChanged()), this, SLOT(subscriberKSecurityUIsDismissDialogChanged()));
- // this doesn't really disconnect, because somehow the events are still queued. This is a QtMobility error
- RDEBUG("disconnected subscriberKSecurityUIsDismissDialog", 1);
-
- RDEBUG("not set KSecurityUIsDismissDialog", ESecurityUIsDismissDialogProcessing);
- // can't set it because it does recursion
- // err = RProperty::Set(KPSUidSecurityUIs, KSecurityUIsDismissDialog, ESecurityUIsDismissDialogProcessing );
- RDEBUG("err", err);
- // only if Cancel is allowed
- if ((queryType & ESecUiCancelSupported)==ESecUiCancelSupported)
- {
- RDEBUG("sendResult(KErrCancel)", KErrCancel); // another option is KErrDied
- sendResult(KErrCancel); // similar to emit handleCancelled();
- RDEBUG("calling close()", 0);
- err = close();
- RDEBUG("err", err);
- RDEBUG("emitting deviceDialogClosed", 0);
- emit deviceDialogClosed();
- // RDEBUG("emit closeDeviceDialog", 0);
- // this is old method emit closeDeviceDialog(false); // false means "not by client", although it's not really used
- RDEBUG("all emited", 0);
- }
- RDEBUG("not set KSecurityUIsDismissDialog", ESecurityUIsDismissDialogDone);
- // can't set it because it does recursion
- // err = RProperty::Set(KPSUidSecurityUIs, KSecurityUIsDismissDialog, ESecurityUIsDismissDialogDone ); // clear after using it
- RDEBUG("err", err);
-
- RDEBUG("reconnect subscriberKSecurityUIsDismissDialog", 0);
- connect(subscriberKSecurityUIsDismissDialog, SIGNAL(contentsChanged()), this, SLOT(subscriberKSecurityUIsDismissDialogChanged()));
- RDEBUG("reconnected subscriberKSecurityUIsDismissDialog", 1);
- }
- RDEBUG("1", 1);
- }
--- a/securitydialogs/secuinotifications/secuinotificationdialogplugin/src/secuinotificationdialogplugin.cpp Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,180 +0,0 @@
-/*
-* Copyright (c) 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: SecUi notification plugin.
-*
-*/
-
-#include "secuinotificationdebug.h"
-#include "secuinotificationdialogplugin.h"
-#include "secuinotificationdialog.h"
-#include "secuinotificationdialogpluginkeys.h"
-
-#include <etelmm.h>
-
-// This plugin implements one device dialog type
-static const struct {
- const char *mTypeString;
-} dialogInfos[] = {
- {SECUINOTIFICATIONDIALOG}
-};
-
-
-// ----------------------------------------------------------------------------
-// SecUiNotificationDialogPlugin::SecUiNotificationDialogPlugin()
-// ----------------------------------------------------------------------------
-//
-SecUiNotificationDialogPlugin::SecUiNotificationDialogPlugin() : mError(KNoError)
-{
-}
-
-// ----------------------------------------------------------------------------
-// SecUiNotificationDialogPlugin::~SecUiNotificationDialogPlugin()
-// ----------------------------------------------------------------------------
-//
-SecUiNotificationDialogPlugin::~SecUiNotificationDialogPlugin()
-{
-}
-
-// ----------------------------------------------------------------------------
-// SecUiNotificationDialogPlugin::accessAllowed()
-// ----------------------------------------------------------------------------
-//
-bool SecUiNotificationDialogPlugin::accessAllowed(const QString &deviceDialogType,
- const QVariantMap ¶meters, const QVariantMap &securityInfo) const
-{
- RDEBUG("0", 0);
- Q_UNUSED(deviceDialogType)
- Q_UNUSED(parameters)
- Q_UNUSED(securityInfo)
-
- // All clients are allowed to use.
- // should access be limited to certain clients or capabilities ? Not for now.
- return true;
-}
-
-// ----------------------------------------------------------------------------
-// SecUiNotificationDialogPlugin::createDeviceDialog()
-// ----------------------------------------------------------------------------
-//
-HbDeviceDialogInterface *SecUiNotificationDialogPlugin::createDeviceDialog(
- const QString &deviceDialogType, const QVariantMap ¶meters)
-{
- // Create device dialog widget
- RDEBUG("0", 0);
- Q_UNUSED(deviceDialogType)
-
- SecUiNotificationDialog *deviceDialog = new SecUiNotificationDialog(parameters);
- mError = deviceDialog->deviceDialogError();
- if (mError != KNoError) {
- delete deviceDialog;
- deviceDialog = 0;
- }
-
- RDEBUG("1", 1);
- return deviceDialog;
-}
-
-// ----------------------------------------------------------------------------
-// SecUiNotificationDialogPlugin::deviceDialogInfo()
-// ----------------------------------------------------------------------------
-//
-bool SecUiNotificationDialogPlugin::deviceDialogInfo( const QString &deviceDialogType,
- const QVariantMap ¶meters, DeviceDialogInfo *info) const
-{
- // For some unknown reason, this function doesn't print the signature
- RDEBUG("0", 0);
- #ifdef _DEBUG
- RDebug::Printf( "SecUiNotificationDialogPlugin::deviceDialogInfo=%x", 0 );
- #endif
-
- Q_UNUSED(deviceDialogType);
-
- info->group = SecurityGroup;
- info->flags = NoDeviceDialogFlags;
- info->priority = DefaultPriority;
-
- // The unlock-query must have higher priority, to get over Telephony.
- if (parameters.contains(KQueryType)) {
- #ifdef _DEBUG
- RDebug::Printf( "SecUiNotificationDialogPlugin::deviceDialogInfo KQueryType=%x", 1 );
- #endif
- int iqueryType = parameters.value(KQueryType).toUInt();
- RDEBUG("iqueryType", iqueryType);
- #ifdef _DEBUG
- RDebug::Printf( "SecUiNotificationDialogPlugin::deviceDialogInfo iqueryType=%x", iqueryType );
- #endif
- if( (iqueryType & 0xFFFF) == RMobilePhone::ESecurityCodePhonePassword )
- {
- RDEBUG("CriticalGroup", CriticalGroup);
- #ifdef _DEBUG
- RDebug::Printf( "SecUiNotificationDialogPlugin::deviceDialogInfo CriticalGroup=%x", CriticalGroup );
- #endif
- info->group = CriticalGroup;
- }
- // The unlock-query must have lower priority, to get over change PIN code request.
- else if( iqueryType == 0xB000000 )
- {
- #ifdef _DEBUG
- RDebug::Printf( "SecUiNotificationDialogPlugin::deviceDialogInfo GenericDeviceDialogGroup=%x", GenericDeviceDialogGroup );
- #endif
- info->group = GenericDeviceDialogGroup;
- }
- }
- // Return device dialog flags
-
- RDEBUG("1", 1);
- return true;
-}
-
-// ----------------------------------------------------------------------------
-// SecUiNotificationDialogPlugin::deviceDialogTypes()
-// ----------------------------------------------------------------------------
-//
-QStringList SecUiNotificationDialogPlugin::deviceDialogTypes() const
-{
- RDEBUG("0", 0);
- // Return device dialog types this plugin implements
-
- QStringList types;
- const int numTypes = sizeof(dialogInfos) / sizeof(dialogInfos[0]);
- for(int i = 0; i < numTypes; ++i) {
- types.append(dialogInfos[i].mTypeString);
- }
-
- return types;
-}
-
-// ----------------------------------------------------------------------------
-// SecUiNotificationDialogPlugin::pluginFlags()
-// ----------------------------------------------------------------------------
-//
-HbDeviceDialogPlugin::PluginFlags SecUiNotificationDialogPlugin::pluginFlags() const
-{
- RDEBUG("0", 0);
- // Return plugin flags
- return NoPluginFlags;
-}
-
-// ----------------------------------------------------------------------------
-// SecUiNotificationDialogPlugin::error()
-// ----------------------------------------------------------------------------
-//
-int SecUiNotificationDialogPlugin::error() const
-{
- RDEBUG("mError", mError);
- // Return last error
- return mError;
-}
-
-Q_EXPORT_PLUGIN2(secuinotificationdialogplugin,SecUiNotificationDialogPlugin)
--- a/securitydialogs/secuinotifications/secuinotifications.pro Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,21 +0,0 @@
-#
-# Copyright (c) 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: SecUi notification dialog plugin project.
-#
-
-TEMPLATE = subdirs
-
-SYMBIAN_PLATFORMS = WINSCW ARMV5
-
-SUBDIRS += secuinotificationdialogplugin/secuinotificationdialogplugin.pro
--- a/securitydialogs/securitydialogs.pro Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,24 +0,0 @@
-#
-# Copyright (c) 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: SecUi notification dialog plugin project.
-#
-
-TEMPLATE = subdirs
-
-SUBDIRS += secuinotifications/secuinotifications.pro
-SUBDIRS += lockclient/group/lockclient.pro
-SUBDIRS += Autolock/indicatorplugin/indicatorautolockplugin.pro
-SUBDIRS += Autolock/autolockuseractivityservice.pro
-SUBDIRS += Autolock/Autolock.pro
-
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/securitydialogs/simlockui/data/SimLockUI.rss Wed Sep 01 12:19:59 2010 +0100
@@ -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 Wed Sep 01 12:19:59 2010 +0100
@@ -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 Wed Sep 01 12:19:59 2010 +0100
@@ -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 CAP_APPLICATION
+
+TARGETPATH /sys/bin
+TARGET simlockui.exe
+TARGETTYPE exe
+
+UID 0x00000000 SIMLOCK_UI_UID3
+VENDORID VID_DEFAULT
+
+LANGUAGE_IDS
+
+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
+LANGUAGE_IDS
+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 Wed Sep 01 12:19:59 2010 +0100
@@ -0,0 +1,44 @@
+/*
+* ============================================================================
+* 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)
+
+../inc/simlockui.loc MW_LAYER_LOC_EXPORT_PATH(simlockui.loc)
+
+// 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 Wed Sep 01 12:19:59 2010 +0100
@@ -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 Wed Sep 01 12:19:59 2010 +0100
@@ -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 Wed Sep 01 12:19:59 2010 +0100
@@ -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 Wed Sep 01 12:19:59 2010 +0100
@@ -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 Wed Sep 01 12:19:59 2010 +0100
@@ -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 Wed Sep 01 12:19:59 2010 +0100
@@ -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 Wed Sep 01 12:19:59 2010 +0100
@@ -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 Wed Sep 01 12:19:59 2010 +0100
@@ -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 Wed Sep 01 12:19:59 2010 +0100
@@ -0,0 +1,148 @@
+/*
+* ============================================================================
+* 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
+ *
+ * @return a pointer to the created instance of CSimLockUIBackgroundControl
+ */
+ static CSimLockUIBackgroundControl* NewL();
+
+ /**
+ * NewLC
+ * Create a CSimLockUIBackgroundControl object, which will draw itself to aRect
+ *
+ * @return a pointer to the created instance of CSimLockUIBackgroundControl
+ */
+ static CSimLockUIBackgroundControl* NewLC();
+
+
+ /**
+ * ~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
+ */
+ void ConstructL();
+
+private: // From CCoeControl
+
+ /**
+ * SizeChanged
+ * Indicate that the control has been resized
+ */
+ virtual void SizeChanged();
+
+ /**
+ * HandleResourceChange
+ */
+ void HandleResourceChange( TInt aType );
+
+ /**
+ * 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 Wed Sep 01 12:19:59 2010 +0100
@@ -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 Wed Sep 01 12:19:59 2010 +0100
@@ -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 Wed Sep 01 12:19:59 2010 +0100
@@ -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_SIMLOCK_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 Wed Sep 01 12:19:59 2010 +0100
@@ -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_SIMLOCK_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 Wed Sep 01 12:19:59 2010 +0100
@@ -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 Wed Sep 01 12:19:59 2010 +0100
@@ -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 Wed Sep 01 12:19:59 2010 +0100
@@ -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 Wed Sep 01 12:19:59 2010 +0100
@@ -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 Wed Sep 01 12:19:59 2010 +0100
@@ -0,0 +1,411 @@
+/*
+ * ============================================================================
+ * 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
+#include <rmmcustomapi.h> // TSimLockPassword
+
+// 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;
+
+ RMmCustomAPI::TSimLockPassword 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()
+ {
+ iBackgroundControl = CSimLockUIBackgroundControl::NewL();
+ 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)
+ {
+ RMmCustomAPI::TSimLockPassword newPassword;
+
+ // Prompt for password twice. Loop until passwords match.
+ do
+ {
+ aPassword.Zero();
+
+ // Ask for password
+ CAknTextQueryDialog* dialog = CAknTextQueryDialog::NewL(aPassword);
+ 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()
+ {
+ RMmCustomAPI::TSimLockPassword 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 Wed Sep 01 12:19:59 2010 +0100
@@ -0,0 +1,191 @@
+/*
+* ============================================================================
+* 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()
+ {
+ CSimLockUIBackgroundControl* self = CSimLockUIBackgroundControl::NewLC();
+ CleanupStack::Pop( self );
+ return self;
+ }
+
+// ---------------------------------------------------------------------------
+// CSimLockUIBackgroundControl::NewLC
+// ---------------------------------------------------------------------------
+CSimLockUIBackgroundControl* CSimLockUIBackgroundControl::NewLC()
+ {
+ CSimLockUIBackgroundControl* self = new ( ELeave ) CSimLockUIBackgroundControl;
+ CleanupStack::PushL( self );
+ self->ConstructL();
+ 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()
+ {
+ // Create a window for this application view
+ CreateWindowL();
+ SetExtentToWholeScreen();
+
+ iBackgroundSkinContext = CAknsBasicBackgroundControlContext::NewL(
+ KAknsIIDQsnBgAreaMain, Rect(), EFalse );
+
+ // Activate the window, which makes it ready to be drawn
+ ActivateL();
+ }
+
+// ---------------------------------------------------------------------------
+// CSimLockUIBackgroundControl::SizeChanged
+// ---------------------------------------------------------------------------
+void CSimLockUIBackgroundControl::SizeChanged()
+ {
+ // Background skin.
+ if ( iBackgroundSkinContext )
+ iBackgroundSkinContext->SetRect( Rect() );
+ }
+
+// ---------------------------------------------------------------------------
+// CSimLockUIBackgroundControl::HandleResourceChange()
+// ---------------------------------------------------------------------------
+//
+void CSimLockUIBackgroundControl::HandleResourceChange( TInt aType )
+ {
+ CCoeControl::HandleResourceChange( aType );
+
+ if ( aType == KEikDynamicLayoutVariantSwitch )
+ {
+ SetExtentToWholeScreen();
+ }
+ }
+
+
+// ---------------------------------------------------------------------------
+// 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 Wed Sep 01 12:19:59 2010 +0100
@@ -0,0 +1,157 @@
+/*
+* ============================================================================
+* 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
+
+// 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/securitysrv.pro Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,22 +0,0 @@
-#
-# Copyright (c) 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: SecUi notification dialog plugin project.
-#
-
-TEMPLATE = subdirs
-
-SUBDIRS += securitydialogs/securitydialogs.pro
-SUBDIRS += cpsecplugins/cpsecplugins.pro
-SUBDIRS += pkiutilities/pkiutilities.pro
-
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/sysdef_1_4_0.dtd Wed Sep 01 12:19:59 2010 +0100
@@ -0,0 +1,86 @@
+ <!ELEMENT SystemDefinition (systemModel?, build?)>
+ <!ATTLIST SystemDefinition
+ name CDATA #REQUIRED
+ schema CDATA #REQUIRED>
+ <!ELEMENT systemModel (layer+)>
+ <!ELEMENT layer (logicalset* | module*)*>
+ <!ATTLIST layer
+ name CDATA #REQUIRED
+ levels CDATA #IMPLIED
+ span CDATA #IMPLIED>
+ <!ELEMENT logicalset (logicalsubset* | module* | unit* | package* | prebuilt*)*>
+ <!ATTLIST logicalset name CDATA #REQUIRED>
+ <!ELEMENT logicalsubset (module* | unit* | package* | prebuilt*)*>
+ <!ATTLIST logicalsubset name CDATA #REQUIRED>
+ <!ELEMENT module (component* | unit* | package* | prebuilt*)*>
+ <!ATTLIST module
+ name CDATA #REQUIRED
+ level CDATA #IMPLIED>
+ <!ELEMENT component (unit* | package* | prebuilt*)*>
+ <!ATTLIST component name CDATA #REQUIRED>
+ <!ELEMENT unit EMPTY>
+ <!ATTLIST unit
+ unitID ID #REQUIRED
+ name CDATA #REQUIRED
+ mrp CDATA #REQUIRED
+ filter CDATA #IMPLIED
+ bldFile CDATA #REQUIRED
+ priority CDATA #IMPLIED
+ contract CDATA #IMPLIED>
+ <!ELEMENT package EMPTY>
+ <!ATTLIST package
+ name CDATA #REQUIRED
+ mrp CDATA #REQUIRED
+ filter CDATA #IMPLIED
+ contract CDATA #IMPLIED>
+ <!ELEMENT prebuilt EMPTY>
+ <!ATTLIST prebuilt
+ name CDATA #REQUIRED
+ version CDATA #REQUIRED
+ late (Y|N) #IMPLIED
+ filter CDATA #IMPLIED
+ contract CDATA #IMPLIED>
+ <!ELEMENT build (option* | target+ | targetList+ | unitList+ | configuration+)*>
+ <!ELEMENT unitList (unitRef+)>
+ <!ATTLIST unitList
+ name ID #REQUIRED
+ description CDATA #REQUIRED>
+ <!ELEMENT unitRef EMPTY>
+ <!ATTLIST unitRef unit IDREF #REQUIRED>
+ <!ELEMENT targetList EMPTY>
+ <!ATTLIST targetList
+ name ID #REQUIRED
+ description CDATA #REQUIRED
+ target IDREFS #REQUIRED>
+ <!ELEMENT target EMPTY>
+ <!ATTLIST target
+ name ID #REQUIRED
+ abldTarget CDATA #REQUIRED
+ description CDATA #REQUIRED>
+ <!ELEMENT option EMPTY>
+ <!ATTLIST option
+ name ID #REQUIRED
+ abldOption CDATA #REQUIRED
+ description CDATA #REQUIRED
+ enable (Y | N | y | n) #REQUIRED>
+ <!ELEMENT configuration (unitListRef+ | layerRef+ | task+)*>
+ <!ATTLIST configuration
+ name ID #REQUIRED
+ description CDATA #REQUIRED
+ filter CDATA #REQUIRED>
+ <!ELEMENT task ( unitListRef* , (buildLayer | specialInstructions))>
+ <!ELEMENT unitListRef EMPTY>
+ <!ATTLIST unitListRef unitList IDREF #REQUIRED>
+ <!ELEMENT layerRef EMPTY>
+ <!ATTLIST layerRef layerName CDATA #REQUIRED>
+ <!ELEMENT buildLayer EMPTY>
+ <!ATTLIST buildLayer
+ command CDATA #REQUIRED
+ targetList IDREFS #IMPLIED
+ unitParallel (Y | N | y | n) #REQUIRED
+ targetParallel (Y | N | y | n) #IMPLIED>
+ <!ELEMENT specialInstructions EMPTY>
+ <!ATTLIST specialInstructions
+ name CDATA #REQUIRED
+ cwd CDATA #REQUIRED
+ command CDATA #REQUIRED>
--- a/sysdef_1_5_1.dtd Tue Aug 31 16:04:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,88 +0,0 @@
- <!ELEMENT SystemDefinition (systemModel?, build?)>
- <!ATTLIST SystemDefinition
- name CDATA #REQUIRED
- schema CDATA #REQUIRED>
- <!ELEMENT systemModel (layer+)>
- <!ELEMENT layer (logicalset* | module*)*>
- <!ATTLIST layer
- name CDATA #REQUIRED
- levels CDATA #IMPLIED
- span CDATA #IMPLIED>
- <!ELEMENT logicalset (logicalsubset* | module* | unit* | package* | prebuilt*)*>
- <!ATTLIST logicalset name CDATA #REQUIRED>
- <!ELEMENT logicalsubset (module* | unit* | package* | prebuilt*)*>
- <!ATTLIST logicalsubset name CDATA #REQUIRED>
- <!ELEMENT module (component* | unit* | package* | prebuilt*)*>
- <!ATTLIST module
- name CDATA #REQUIRED
- level CDATA #IMPLIED>
- <!ELEMENT component (unit* | package* | prebuilt*)*>
- <!ATTLIST component name CDATA #REQUIRED>
- <!ELEMENT unit EMPTY>
- <!ATTLIST unit
- unitID ID #REQUIRED
- name CDATA #REQUIRED
- mrp CDATA #REQUIRED
- filter CDATA #IMPLIED
- bldFile CDATA #REQUIRED
- priority CDATA #IMPLIED
- contract CDATA #IMPLIED
- proFile CDATA #IMPLIED
- qmakeArgs CDATA #IMPLIED>
- <!ELEMENT package EMPTY>
- <!ATTLIST package
- name CDATA #REQUIRED
- mrp CDATA #REQUIRED
- filter CDATA #IMPLIED
- contract CDATA #IMPLIED>
- <!ELEMENT prebuilt EMPTY>
- <!ATTLIST prebuilt
- name CDATA #REQUIRED
- version CDATA #REQUIRED
- late (Y|N) #IMPLIED
- filter CDATA #IMPLIED
- contract CDATA #IMPLIED>
- <!ELEMENT build (option* | target+ | targetList+ | unitList+ | configuration+)*>
- <!ELEMENT unitList (unitRef+)>
- <!ATTLIST unitList
- name ID #REQUIRED
- description CDATA #REQUIRED>
- <!ELEMENT unitRef EMPTY>
- <!ATTLIST unitRef unit IDREF #REQUIRED>
- <!ELEMENT targetList EMPTY>
- <!ATTLIST targetList
- name ID #REQUIRED
- description CDATA #REQUIRED
- target IDREFS #REQUIRED>
- <!ELEMENT target EMPTY>
- <!ATTLIST target
- name ID #REQUIRED
- abldTarget CDATA #REQUIRED
- description CDATA #REQUIRED>
- <!ELEMENT option EMPTY>
- <!ATTLIST option
- name ID #REQUIRED
- abldOption CDATA #REQUIRED
- description CDATA #REQUIRED
- enable (Y | N | y | n) #REQUIRED>
- <!ELEMENT configuration (unitListRef+ | layerRef+ | task+)*>
- <!ATTLIST configuration
- name ID #REQUIRED
- description CDATA #REQUIRED
- filter CDATA #REQUIRED>
- <!ELEMENT task ( unitListRef* , (buildLayer | specialInstructions))>
- <!ELEMENT unitListRef EMPTY>
- <!ATTLIST unitListRef unitList IDREF #REQUIRED>
- <!ELEMENT layerRef EMPTY>
- <!ATTLIST layerRef layerName CDATA #REQUIRED>
- <!ELEMENT buildLayer EMPTY>
- <!ATTLIST buildLayer
- command CDATA #REQUIRED
- targetList IDREFS #IMPLIED
- unitParallel (Y | N | y | n) #REQUIRED
- targetParallel (Y | N | y | n) #IMPLIED>
- <!ELEMENT specialInstructions EMPTY>
- <!ATTLIST specialInstructions
- name CDATA #REQUIRED
- cwd CDATA #REQUIRED
- command CDATA #REQUIRED>
--- a/wim/Scard/src/ScardReaderRegistry.cpp Tue Aug 31 16:04:40 2010 +0300
+++ b/wim/Scard/src/ScardReaderRegistry.cpp Wed Sep 01 12:19:59 2010 +0100
@@ -298,7 +298,7 @@
TLauncherStruct launcher;
launcher.iGroupID = KGroupID; //This is always 1
launcher.iReaderID = KReaderID; //This is always 1
- User::LeaveIfError( launcher.iSession.Connect() );
+ launcher.iSession.Connect();
User::LeaveIfError( launcher.iLibrary.Load( KSwimReaderDLL ) );
Binary file wim/WimSoft/armv5/udeb/wimi.lib has changed
Binary file wim/WimSoft/armv5/urel/wimi.lib has changed
Binary file wim/WimSoft/winscw/udeb/WIMI.LIB has changed