# HG changeset patch # User hgs # Date 1277713521 -10800 # Node ID b12d1c188e6eeeb3213695ac8f849457bb98d096 # Parent cc1cea6aabaf24b0c41cc7b1199341bdf18093a6 201025_02 diff -r cc1cea6aabaf -r b12d1c188e6e cpsecplugins/devicelockplugin/devicelockplugin.pro --- a/cpsecplugins/devicelockplugin/devicelockplugin.pro Thu Jun 24 12:46:20 2010 +0300 +++ b/cpsecplugins/devicelockplugin/devicelockplugin.pro Mon Jun 28 11:25:21 2010 +0300 @@ -31,7 +31,7 @@ -lcentralrepository \ -lRLockSettings \ -lflogger -// TRANSLATIONS += devicelocking.ts +TRANSLATIONS += devicelocking.ts include ( ../cpplugincommon.pri ) include ( devicelockplugin.pri ) include ( rom/devicelockplugin_rom.pri ) diff -r cc1cea6aabaf -r b12d1c188e6e cpsecplugins/devicelockplugin/rom/devicelockplugin.iby --- a/cpsecplugins/devicelockplugin/rom/devicelockplugin.iby Thu Jun 24 12:46:20 2010 +0300 +++ b/cpsecplugins/devicelockplugin/rom/devicelockplugin.iby Mon Jun 28 11:25:21 2010 +0300 @@ -18,11 +18,7 @@ #ifndef __DEVICELOCKPLUGIN_IBY__ #define __DEVICELOCKPLUGIN_IBY__ -#include -#include - 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 diff -r cc1cea6aabaf -r b12d1c188e6e cpsecplugins/devicelockplugin/rom/devicelockplugin_resources.iby --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/cpsecplugins/devicelockplugin/rom/devicelockplugin_resources.iby Mon Jun 28 11:25:21 2010 +0300 @@ -0,0 +1,28 @@ +/* +* 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 +#include + +// 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__ diff -r cc1cea6aabaf -r b12d1c188e6e cpsecplugins/devicelockplugin/rom/devicelockplugin_rom.pri --- a/cpsecplugins/devicelockplugin/rom/devicelockplugin_rom.pri Thu Jun 24 12:46:20 2010 +0300 +++ b/cpsecplugins/devicelockplugin/rom/devicelockplugin_rom.pri Mon Jun 28 11:25:21 2010 +0300 @@ -17,5 +17,6 @@ symbian { BLD_INF_RULES.prj_exports += \ "$${LITERAL_HASH}include" \ - "rom/devicelockplugin.iby CORE_APP_LAYER_IBY_EXPORT_PATH(devicelockplugin.iby)" + "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 diff -r cc1cea6aabaf -r b12d1c188e6e securitydialogs/lockclient/group/lockclient.pro --- a/securitydialogs/lockclient/group/lockclient.pro Thu Jun 24 12:46:20 2010 +0300 +++ b/securitydialogs/lockclient/group/lockclient.pro Mon Jun 28 11:25:21 2010 +0300 @@ -40,6 +40,8 @@ LIBS += -lxqservice LIBS += -lxqserviceutil +LIBS += -lapparc +LIBS += -lapgrfx symbian*: { TARGET.EPOCALLOWDLLDATA = 1 diff -r cc1cea6aabaf -r b12d1c188e6e securitydialogs/lockclient/src/lockaccessextension.cpp --- a/securitydialogs/lockclient/src/lockaccessextension.cpp Thu Jun 24 12:46:20 2010 +0300 +++ b/securitydialogs/lockclient/src/lockaccessextension.cpp Mon Jun 28 11:25:21 2010 +0300 @@ -20,6 +20,9 @@ #include // P&S API #include // TApaTask, TApaTaskList #include // CCoeEnv +#include "../../Autolock/PubSub/securityuisprivatepskeys.h" +#include +#include #include #include @@ -75,8 +78,67 @@ 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. Now we use QtHighway + this is the old method. // we need CCoeEnv because of window group list const TInt KTimesToConnectServer( 2); const TInt KTimeoutBeforeRetrying( 50000); @@ -108,7 +170,8 @@ // --------------------------------------------------------------------------- TInt RLockAccessExtension::SendMessage( TInt aMessage ) { - TInt ret = EnsureConnected( ); + RDEBUG("0", 0); + TInt ret = KErrNone; if ( ret == KErrNone ) { // ret = SendReceive( aMessage ); @@ -122,7 +185,8 @@ // --------------------------------------------------------------------------- TInt RLockAccessExtension::SendMessage( TInt aMessage, TInt aParam1 ) { - TInt ret = EnsureConnected( ); + RDEBUG("0", 0); + TInt ret = KErrNone; if ( ret == KErrNone ) { // assign parameters to IPC argument @@ -138,6 +202,7 @@ // --------------------------------------------------------------------------- TInt RLockAccessExtension::SendMessage( TInt aMessage, TInt aParam1, TInt aParam2 ) { + RDEBUG("0", 0); TInt ret = EnsureConnected( ); RDEBUG("ret", ret); if ( ret == KErrNone )