author | hgs |
Wed, 20 Oct 2010 14:51:23 +0300 | |
changeset 66 | 67b3e3c1fc87 |
parent 63 | 989397f9511c |
permissions | -rw-r--r-- |
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1 |
/* |
63 | 2 |
* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). |
3 |
* All rights reserved. |
|
4 |
* |
|
5 |
* This program is free software: you can redistribute it and/or modify |
|
6 |
* it under the terms of the GNU Lesser General Public License as published by |
|
7 |
* the Free Software Foundation, version 2.1 of the License. |
|
8 |
* |
|
9 |
* This program is distributed in the hope that it will be useful, |
|
10 |
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
11 |
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
12 |
* GNU Lesser General Public License for more details. |
|
13 |
* |
|
14 |
* You should have received a copy of the GNU Lesser General Public License |
|
15 |
* along with this program. If not, |
|
16 |
* see "http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html/". |
|
17 |
* |
|
18 |
* Description: |
|
19 |
* |
|
20 |
*/ |
|
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
21 |
|
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
22 |
#include <QCoreApplication> |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
23 |
#include <QKeyEvent> |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
24 |
#include <QEvent> |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
25 |
#include <QTimer> |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
26 |
#include <QMessageBox> |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
27 |
#include <QSymbianEvent> |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
28 |
#include <QMainWindow> |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
29 |
#include <qvaluespacesubscriber.h> |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
30 |
#include <qvaluespacepublisher.h> |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
31 |
|
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
32 |
QTM_USE_NAMESPACE |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
33 |
|
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
34 |
#include <HbIndicator> |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
35 |
#include <hbdevicemessagebox.h> |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
36 |
|
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
37 |
#include <lockappclientserver.h> |
66 | 38 |
#include <centralrepository.h> |
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
39 |
|
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
40 |
#include "Autolock.h" |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
41 |
#include <xqserviceutil.h> |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
42 |
#include "autolockuseractivityservice.h" |
63 | 43 |
#include <settingsinternalcrkeys.h> // CenRep keys |
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
44 |
#include <w32std.h> |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
45 |
#include <eikenv.h> |
63 | 46 |
#include <aknsoundsystem.h> |
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
47 |
|
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
48 |
#include <secuisecuritysettings.h> |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
49 |
#include <secui.h> |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
50 |
#include <secuisecurityhandler.h> |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
51 |
#include <etelmm.h> |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
52 |
#include <rmmcustomapi.h> |
63 | 53 |
#include <keylockpolicyapi.h> |
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
54 |
#include <qvaluespacesubscriber.h> |
63 | 55 |
#include <SCPClient.h> |
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
56 |
|
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
57 |
#include <hwrmlightdomaincrkeys.h> |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
58 |
#include <ProfileEngineSDKCRKeys.h> |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
59 |
#include <e32property.h> |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
60 |
#include <coreapplicationuisdomainpskeys.h> |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
61 |
#include "../PubSub/securityuisprivatepskeys.h" |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
62 |
#include <avkondomainpskeys.h> |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
63 |
#include <hwrmdomainpskeys.h> |
63 | 64 |
#include <ctsydomainpskeys.h> |
65 |
||
66 |
#include <startupdomainpskeys.h> |
|
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
67 |
|
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
68 |
#include <hbdevicedialog.h> |
63 | 69 |
// handled now directly but screensaver |
70 |
// #include <power_save_display_mode.h> |
|
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
71 |
|
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
72 |
const TInt KPhoneIndex(0); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
73 |
const TInt KTriesToConnectServer(2); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
74 |
const TInt KTimeBeforeRetryingServerConnection(50000); |
63 | 75 |
#define ESecUiTypeDeviceLock 0x00100000 |
76 |
#define ESecUiTypeKeyguard 0x00200000 |
|
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
77 |
_LIT( KMmTsyModuleName, "PhoneTsy"); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
78 |
|
63 | 79 |
// Constant definitions to control screensaver view types |
80 |
static const char *KSnsrViewTypeKey = "view_type"; |
|
81 |
enum TSnsrViewType |
|
82 |
{ |
|
83 |
ESnsrViewTypeInitial = 0, // default initial state, depends on the configuration |
|
84 |
ESnsrViewTypeActive, |
|
85 |
ESnsrViewTypeStandby, |
|
86 |
ESnsrViewTypeDisabled, |
|
87 |
}; |
|
88 |
static const char *KSnsrCmdUnlock = "unlock"; |
|
89 |
static const char *KSnsrCmdSwitchLights = "switch_lights"; |
|
90 |
static const char *KSnsrCmdSwitchLowPower = "switch_low_power"; |
|
66 | 91 |
static const char *KSnsrCmdResetActiveModeTimer = "resetActiveModeTimer"; |
63 | 92 |
|
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
93 |
Autolock::Autolock(QWidget *parent, Qt::WFlags f) : |
63 | 94 |
QWidget(parent, f), |
95 |
mService(NULL), |
|
96 |
mPowerKeyCaptureHandle(0), |
|
97 |
mApplicationKeyCaptureHandle(0), |
|
98 |
mApplicationLongKeyCaptureHandle(0), |
|
99 |
mEKeyDeviceFCaptureHandle(0), |
|
100 |
mEKeyBellCaptureHandle(0), |
|
101 |
mEKeyYesCaptureHandle(0), |
|
102 |
mEKeyNoCaptureHandle(0), |
|
103 |
iLockCodeQueryInDisplay(false), |
|
104 |
mScreensaverModeTimer(0) |
|
105 |
||
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
106 |
{ |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
107 |
RDEBUG("start autolock", 0); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
108 |
|
63 | 109 |
// The very first thing is to define the properties, so that others can use them. |
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
110 |
TSecurityPolicy readPolicy(ECapabilityReadDeviceData); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
111 |
TSecurityPolicy writePolicy(ECapabilityWriteDeviceData); |
63 | 112 |
TInt ret = RProperty::Define(KPSUidSecurityUIs, KSecurityUIsSecUIOriginatedQuery, RProperty::EInt, readPolicy, writePolicy); |
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
113 |
RDEBUG("defined KSecurityUIsSecUIOriginatedQuery", ret); |
63 | 114 |
ret = RProperty::Define(KPSUidSecurityUIs, KSecurityUIsQueryRequestCancel, RProperty::EInt, readPolicy, writePolicy); |
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
115 |
RDEBUG("defined KSecurityUIsQueryRequestCancel", ret); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
116 |
_LIT_SECURITY_POLICY_PASS( KReadPolicy); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
117 |
_LIT_SECURITY_POLICY_C1(KWritePolicy, ECapabilityWriteDeviceData); |
63 | 118 |
ret = RProperty::Define(KPSUidCoreApplicationUIs, KCoreAppUIsAutolockStatus, RProperty::EInt, KReadPolicy, KWritePolicy); |
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
119 |
RDEBUG("defined KCoreAppUIsAutolockStatus", ret); |
63 | 120 |
|
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
121 |
// This is important: we set the status through a property |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
122 |
TInt autolockState; |
63 | 123 |
ret = RProperty::Get(KPSUidCoreApplicationUIs, KCoreAppUIsAutolockStatus, autolockState); |
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
124 |
RDEBUG("Get KCoreAppUIsAutolockStatus", ret); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
125 |
RDEBUG("autolockState", autolockState); |
63 | 126 |
if (autolockState == EAutolockStatusUninitialized) |
127 |
{ |
|
66 | 128 |
autolockState = EAutolockOff; // not-initialized means that the unlock-query hasn't been displayed. Therefore the device should not stay locked. |
63 | 129 |
} |
130 |
ret = RProperty::Set(KPSUidCoreApplicationUIs, KCoreAppUIsAutolockStatus, autolockState); // this might re-set it. That's not bad. It will re-notify all listeners. |
|
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
131 |
RDEBUG("Set KCoreAppUIsAutolockStatus", ret); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
132 |
|
63 | 133 |
ret = RProperty::Define(KPSUidAvkonDomain, KAknKeyguardStatus, RProperty::EInt, TSecurityPolicy(TSecurityPolicy::EAlwaysPass), KWritePolicy); |
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
134 |
RDEBUG("defined KAknKeyguardStatus", ret); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
135 |
|
63 | 136 |
ret = RProperty::Define(KPSUidSecurityUIs, KSecurityUIsLockInitiatorUID, RProperty::EInt, TSecurityPolicy(TSecurityPolicy::EAlwaysPass), writePolicy); |
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
137 |
RDEBUG("defined KSecurityUIsLockInitiatorUID", ret); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
138 |
|
63 | 139 |
ret = RProperty::Define(KPSUidSecurityUIs, KSecurityUIsLockInitiatorTimeHigh, RProperty::EInt, readPolicy, writePolicy); |
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
140 |
RDEBUG("defined KSecurityUIsLockInitiatorTimeHigh", ret); |
63 | 141 |
ret = RProperty::Define(KPSUidSecurityUIs, KSecurityUIsLockInitiatorTimeLow, RProperty::EInt, readPolicy, writePolicy); |
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
142 |
RDEBUG("defined KSecurityUIsLockInitiatorTimeLow", ret); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
143 |
|
63 | 144 |
ret = RProperty::Define(KPSUidSecurityUIs, KSecurityUIsLights, RProperty::EInt, TSecurityPolicy(TSecurityPolicy::EAlwaysPass), TSecurityPolicy(TSecurityPolicy::EAlwaysPass)); |
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
145 |
RDEBUG("defined KAknKeyguardStatus", ret); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
146 |
|
63 | 147 |
ret = RProperty::Define(KPSUidSecurityUIs, KSecurityUIsDismissDialog, RProperty::EInt, TSecurityPolicy(TSecurityPolicy::EAlwaysPass), TSecurityPolicy( |
148 |
TSecurityPolicy::EAlwaysPass)); |
|
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
149 |
RDEBUG("defined KSecurityUIsDismissDialog", ret); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
150 |
|
66 | 151 |
ret = RProperty::Define(KPSUidSecurityUIs, KSecurityUIsScreenSaverStatus, RProperty::EInt, TSecurityPolicy(TSecurityPolicy::EAlwaysPass), writePolicy); |
152 |
RDEBUG("defined KSecurityUIsScreenSaverStatus", ret); |
|
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
153 |
|
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
154 |
mService = new AutolockService(this); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
155 |
|
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
156 |
/* Adjust the palette */ |
66 | 157 |
RDEBUG( "Palette", 1 ); |
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
158 |
QPalette p = qApp->palette(); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
159 |
QColor color(192,192,192); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
160 |
QColor bg(201,250,250); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
161 |
p.setColor(QPalette::Highlight, color.lighter(200)); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
162 |
p.setColor(QPalette::Text, Qt::black); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
163 |
p.setColor(QPalette::Base, bg); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
164 |
p.setColor(QPalette::WindowText, Qt::black); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
165 |
p.setColor(QPalette::Window, bg); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
166 |
p.setColor(QPalette::ButtonText, Qt::black); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
167 |
p.setColor(QPalette::Button, color.lighter(150)); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
168 |
p.setColor(QPalette::Link, QColor(240,40,40)); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
169 |
|
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
170 |
qApp->setPalette(p); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
171 |
|
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
172 |
RDEBUG("connect", 1); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
173 |
|
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
174 |
#if defined(Q_WS_X11) || defined(Q_WS_WIN) |
63 | 175 |
RDEBUG( "Q_WS_X11", 1 ); |
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
176 |
setFixedSize(QSize(360,640)); // nHD |
66 | 177 |
#else |
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
178 |
// this doesn't work well |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
179 |
// showMaximized(); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
180 |
showFullScreen(); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
181 |
#endif |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
182 |
|
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
183 |
serviceKeyguard = new AutolockUserActivityService(); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
184 |
serviceDevicelock = new AutolockUserActivityService(); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
185 |
|
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
186 |
TInt lockValue = 0; |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
187 |
TInt lightsTimeout = 0; |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
188 |
CRepository* repository = NULL; |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
189 |
TInt cRresult = 0; |
63 | 190 |
iLockCodeQueryInDisplay = EFalse; |
191 |
Q_UNUSED(cRresult); |
|
192 |
TInt err = 0; |
|
66 | 193 |
err = err; |
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
194 |
|
63 | 195 |
iProcessingEvent = -1; |
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
196 |
iLockStatusPrev = ELockNotActive; |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
197 |
iLockStatus = ELockNotActive; |
66 | 198 |
iSCPConfigured = 0; |
63 | 199 |
QT_TRAP_THROWING(repository = CRepository::NewL(KCRUidSecuritySettings)); |
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
200 |
cRresult = repository->Get(KSettingsAutolockStatus, lockValue); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
201 |
RDEBUG("KSettingsAutolockStatus", KSettingsAutolockStatus); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
202 |
RDEBUG("cRresult", cRresult); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
203 |
RDEBUG("lockValue", lockValue); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
204 |
iLockStatus = lockValue; |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
205 |
// the settings says to lock |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
206 |
delete repository; |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
207 |
|
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
208 |
adjustInactivityTimers(0); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
209 |
|
63 | 210 |
QT_TRAP_THROWING(repository = CRepository::NewL(KCRUidProfileEngine)); |
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
211 |
cRresult = repository->Get(KProEngActiveProfile, lightsTimeout); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
212 |
// this value is not used for now |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
213 |
delete repository; |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
214 |
|
63 | 215 |
QT_TRAP_THROWING(repository = CRepository::NewL(KCRUidLightSettings)); |
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
216 |
cRresult = repository->Get(KDisplayLightsTimeout, lightsTimeout); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
217 |
// this value is not used for now |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
218 |
delete repository; |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
219 |
|
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
220 |
// subscribe to settings changes |
63 | 221 |
subscriberKSettingsAutolockStatus = new QValueSpaceSubscriber("/KCRUidSecuritySettings/KSettingsAutolockStatus", this); |
222 |
err = connect(subscriberKSettingsAutolockStatus, SIGNAL(contentsChanged()), this, SLOT(subscriberKSettingsAutolockStatusChanged())); |
|
223 |
RDEBUG("err", err); |
|
224 |
subscriberKSettingsAutoLockTime = new QValueSpaceSubscriber("/KCRUidSecuritySettings/KSettingsAutoLockTime", this); |
|
225 |
err = connect(subscriberKSettingsAutoLockTime, SIGNAL(contentsChanged()), this, SLOT(subscriberKSettingsAutoLockTimeChanged())); |
|
226 |
RDEBUG("err", err); |
|
227 |
subscriberKSettingsAutomaticKeyguardTime = new QValueSpaceSubscriber("/KCRUidSecuritySettings/KSettingsAutomaticKeyguardTime", this); |
|
228 |
err = connect(subscriberKSettingsAutomaticKeyguardTime, SIGNAL(contentsChanged()), this, SLOT(subscriberKSettingsAutomaticKeyguardTimeChanged())); |
|
229 |
RDEBUG("err", err); |
|
230 |
subscriberKDisplayLightsTimeout = new QValueSpaceSubscriber("/KCRUidLightSettings/KDisplayLightsTimeout", this); |
|
231 |
err = connect(subscriberKDisplayLightsTimeout, SIGNAL(contentsChanged()), this, SLOT(subscriberKDisplayLightsTimeoutChanged())); |
|
232 |
RDEBUG("err", err); |
|
233 |
subscriberKProEngActiveProfile = new QValueSpaceSubscriber("/KCRUidProfileEngine/KProEngActiveProfile", this); |
|
234 |
err = connect(subscriberKProEngActiveProfile, SIGNAL(contentsChanged()), this, SLOT(subscriberKProEngActiveProfileChanged())); |
|
235 |
RDEBUG("err", err); |
|
236 |
||
237 |
subscriberKSecurityUIsDismissDialog = new QValueSpaceSubscriber("/KPSUidSecurityUIs/KSecurityUIsDismissDialog", this); |
|
238 |
err = connect(subscriberKSecurityUIsDismissDialog, SIGNAL(contentsChanged()), this, SLOT(subscriberKSecurityUIsDismissDialogChanged())); |
|
239 |
RDEBUG("err", err); |
|
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
240 |
|
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
241 |
// subscribe to environment changes |
63 | 242 |
subscriberKHWRMGripStatus = new QValueSpaceSubscriber("/KPSUidHWRM/KHWRMGripStatus", this); |
243 |
err = connect(subscriberKHWRMGripStatus, SIGNAL(contentsChanged()), this, SLOT(subscriberKHWRMGripStatusChanged())); |
|
244 |
RDEBUG("err", err); |
|
245 |
||
246 |
subscriberKAknKeyguardStatus = new QValueSpaceSubscriber("/KPSUidAvkonDomain/KAknKeyguardStatus", this); |
|
247 |
err = connect(subscriberKAknKeyguardStatus, SIGNAL(contentsChanged()), this, SLOT(subscriberKAknKeyguardStatusChanged())); |
|
248 |
RDEBUG("err", err); |
|
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
249 |
|
63 | 250 |
subscriberKCoreAppUIsAutolockStatus = new QValueSpaceSubscriber("/KPSUidCoreApplicationUIs/KCoreAppUIsAutolockStatus", this); |
251 |
err = connect(subscriberKCoreAppUIsAutolockStatus, SIGNAL(contentsChanged()), this, SLOT(subscriberKCoreAppUIsAutolockStatusChanged())); |
|
252 |
RDEBUG("err", err); |
|
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
253 |
|
63 | 254 |
subscriberKCTsyCallState = new QValueSpaceSubscriber("/KPSUidCtsyCallInformation/KCTsyCallState", this); |
255 |
err = connect(subscriberKCTsyCallState, SIGNAL(contentsChanged()), this, SLOT(subscriberKCTsyCallStateChanged())); |
|
256 |
RDEBUG("err", err); |
|
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
257 |
|
63 | 258 |
subscriberKSecurityUIsTestCode = new QValueSpaceSubscriber("/KPSUidSecurityUIs/KSecurityUIsTestCode", this); |
259 |
err = connect(subscriberKSecurityUIsTestCode, SIGNAL(contentsChanged()), this, SLOT(subscriberKSecurityUIsTestCodeChanged())); |
|
260 |
RDEBUG("err", err); |
|
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
261 |
|
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
262 |
// inactivity |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
263 |
connect(serviceKeyguard, SIGNAL(active()), this, SLOT(activeKeyguard())); |
63 | 264 |
connect(serviceKeyguard, SIGNAL(notActive()), this, SLOT(notActiveKeyguard())); |
265 |
connect(serviceDevicelock, SIGNAL(active()), this, SLOT(activeDevicelock())); |
|
266 |
connect(serviceDevicelock, SIGNAL(notActive()), this, SLOT(notActiveDevicelock())); |
|
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
267 |
|
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
268 |
RWindowGroup& groupWin = CEikonEnv::Static()->RootWin(); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
269 |
RDEBUG("got groupWin", 1); |
63 | 270 |
// if I want to release, I should do: mKeyCaptureHandle = env->RootWin().CaptureKey(EKeyBackspace, 0, 0); |
271 |
mEKeyDeviceFCaptureHandle = groupWin.CaptureKey(EKeyDeviceF, 0, 0); |
|
272 |
RDEBUG("mEKeyDeviceFCaptureHandle", mEKeyDeviceFCaptureHandle); |
|
273 |
mEKeyBellCaptureHandle = groupWin.CaptureKey(EKeyBell, 0, 0); |
|
274 |
RDEBUG("mEKeyBellCaptureHandle", mEKeyBellCaptureHandle); |
|
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
275 |
RDEBUG("got mKeyCaptureHandle", 1); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
276 |
|
63 | 277 |
iTempDisableOnlyKeyguardBecauseIncomingCall=0; |
278 |
||
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
279 |
iSecQueryUiCreated = -1; |
63 | 280 |
setDeviceDialogStatus( EDeviceDialogUninitialized ); |
281 |
iDeviceDialog = NULL; |
|
282 |
// for now, always starts unlocked. This is correct because if locked, the unlock-query (from starter) is on top |
|
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
283 |
// TryChangeStatus(iLockStatus); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
284 |
TryChangeStatus( ELockNotActive); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
285 |
lower(); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
286 |
hide(); |
63 | 287 |
|
288 |
iDeviceDialog = new HbDeviceDialog(HbDeviceDialog::NoFlags, this); |
|
289 |
connect(iDeviceDialog, SIGNAL(dataReceived(QVariantMap)), SLOT(handleMessageFromScreensaver(QVariantMap)), Qt::QueuedConnection); // Qt::QueuedConnection needed to avoid deadlock at waitForClosed |
|
290 |
connect(iDeviceDialog, SIGNAL(deviceDialogClosed()), SLOT(handleScreensaverClosed())); |
|
291 |
||
292 |
// screensaver standby mode timer |
|
293 |
mScreensaverModeTimer = new QTimer(this); |
|
294 |
mScreensaverModeTimer->setInterval(5 * 1000); // milliseconds, TODO: read from cenrep |
|
295 |
connect(mScreensaverModeTimer, SIGNAL(timeout()), SLOT(switchScreensaverToPowerSaveMode())); |
|
296 |
// screensaver AMOLED low power mode support |
|
297 |
||
298 |
// handled now directly but screensaver |
|
299 |
// mScreensaverPowerSave = CPowerSaveDisplayMode::NewL(); |
|
300 |
// mScreensaverPowerSavePixelBuffer = HBufC16::NewL(360 * 640); |
|
301 |
// mScreensaverPowerSavePixelBuffer->Des().Fill(0); |
|
302 |
RDEBUG("99", 0x99); |
|
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
303 |
} |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
304 |
|
63 | 305 |
// destructor |
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
306 |
Autolock::~Autolock() |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
307 |
{ |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
308 |
RDEBUG("0", 0); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
309 |
delete mService; |
63 | 310 |
// handled now directly but screensaver |
311 |
// delete mScreensaverPowerSave; |
|
312 |
// delete mScreensaverPowerSavePixelBuffer; |
|
313 |
RDEBUG("99", 0x99); |
|
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
314 |
} |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
315 |
|
63 | 316 |
// when detected some settings change, syncronize all of them |
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
317 |
void Autolock::adjustInactivityTimers(int aReason) |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
318 |
{ |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
319 |
RDEBUG("aReason", aReason); |
66 | 320 |
aReason = aReason; |
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
321 |
TInt keyguardTime = 0; |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
322 |
TInt lockTime = 0; |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
323 |
CRepository* repository = NULL; |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
324 |
TInt cRresult = 0; |
63 | 325 |
Q_UNUSED(cRresult); |
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
326 |
|
63 | 327 |
QT_TRAP_THROWING(repository = CRepository::NewL(KCRUidSecuritySettings)); |
328 |
cRresult = repository->Get(KSettingsAutomaticKeyguardTime, keyguardTime); // in seconds |
|
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
329 |
RDEBUG("KSettingsAutomaticKeyguardTime", KSettingsAutomaticKeyguardTime); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
330 |
RDEBUG("cRresult", cRresult); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
331 |
RDEBUG("keyguardTime", keyguardTime); |
63 | 332 |
if (keyguardTime > 2 && keyguardTime < 24 * 60 * 60) // limit it to 1 day |
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
333 |
{ |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
334 |
serviceKeyguard->setInactivityPeriod(keyguardTime); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
335 |
} |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
336 |
else |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
337 |
{ |
63 | 338 |
serviceKeyguard->setInactivityPeriod(12 * 31 * 24 * 60 * 60); // if not set, fake it to 1 year |
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
339 |
} |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
340 |
|
63 | 341 |
cRresult = repository->Get(KSettingsAutoLockTime, lockTime); // in minutes, handled internally as seconds |
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
342 |
lockTime *= 60; |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
343 |
RDEBUG("KSettingsAutoLockTime", KSettingsAutoLockTime); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
344 |
RDEBUG("cRresult", cRresult); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
345 |
RDEBUG("lockTime", lockTime); |
63 | 346 |
if (lockTime == 65535 * 60) // Special setting "lock at same time as keyguard" at CpDeviceLockPluginView::GetAutoLockIndex which uses this magic number |
347 |
{ |
|
348 |
lockTime = keyguardTime - 2; // lock 2 seconds before keyguard, to avoid keyguard->devicelock sequence |
|
349 |
if(lockTime<=2) |
|
350 |
lockTime=2; |
|
351 |
RDEBUG("new lockTime", lockTime); |
|
352 |
} |
|
353 |
if (lockTime >= 2 && lockTime < 24 * 60 * 60) // lock timer can't be bigger than 1 day |
|
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
354 |
{ |
63 | 355 |
RDEBUG("setInactivityPeriod lockTime", lockTime); |
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
356 |
serviceDevicelock->setInactivityPeriod(lockTime); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
357 |
} |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
358 |
else |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
359 |
{ |
63 | 360 |
RDEBUG("setInactivityPeriod infinite", lockTime); |
361 |
serviceDevicelock->setInactivityPeriod(12 * 31 * 24 * 60 * 60); // 0x1ea6e00 = 1 year |
|
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
362 |
} |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
363 |
|
63 | 364 |
delete repository; |
365 |
RDEBUG("99", 0x99); |
|
366 |
} |
|
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
367 |
|
63 | 368 |
// Some external says to quit. It should not happen, but it helps to validate memory leaks |
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
369 |
void Autolock::quit() |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
370 |
{ |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
371 |
RDEBUG("0", 0); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
372 |
qApp->quit(); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
373 |
} |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
374 |
|
63 | 375 |
// Inform P&S listeners thatthe screensaver is created/hidden/dismissed . In particular, HbDeviceDialogs needs this to display other pending notes. |
376 |
int Autolock::setDeviceDialogStatus(int aStatus) |
|
377 |
{ |
|
378 |
RDEBUG("aStatus", aStatus); |
|
379 |
RDEBUG("prev iDeviceDialogStatus", iDeviceDialogStatus); |
|
380 |
TInt lPSStatus; |
|
381 |
TInt err = RProperty::Get(KPSUidSecurityUIs, KSecurityUIsScreenSaverStatus, lPSStatus); |
|
382 |
RDEBUG("err", err); |
|
383 |
RDEBUG("lPSStatus", lPSStatus); |
|
384 |
if(aStatus>=EDeviceDialogLastValue) |
|
385 |
{ |
|
386 |
RDEBUG("EDeviceDialogLastValue exceeded by aStatus", aStatus); |
|
387 |
} |
|
388 |
else |
|
389 |
{ |
|
390 |
err = RProperty::Set(KPSUidSecurityUIs, KSecurityUIsScreenSaverStatus, aStatus); |
|
391 |
iDeviceDialogStatus = aStatus; |
|
392 |
RDEBUG("err", err); |
|
393 |
} |
|
394 |
return aStatus; |
|
395 |
} |
|
396 |
// Adjust the lights. It uses P&S, honoured by SysAp |
|
397 |
int Autolock::TurnLights(int aMode, int aReason, int aCaller) |
|
398 |
{ |
|
399 |
RDEBUG("aMode", aMode); |
|
400 |
RDEBUG("aReason", aReason); |
|
66 | 401 |
aReason = aReason; |
63 | 402 |
RDEBUG("aCaller", aCaller); |
66 | 403 |
aCaller = aCaller; |
63 | 404 |
TInt err = 0; |
405 |
if(aMode!=ESecurityUIsLightsLockOffRequest && aMode!=ELockAppDisableKeyguard) |
|
406 |
{ |
|
407 |
RDEBUG("KLightsSSForcedLightsOn", KLightsSSForcedLightsOn); |
|
408 |
err = RProperty::Set(KPSUidCoreApplicationUIs, KLightsSSForcedLightsOn, 30); |
|
409 |
} |
|
410 |
else |
|
411 |
{ |
|
412 |
RDEBUG("skip KLightsSSForcedLightsOn because aMode", aMode); |
|
413 |
} |
|
414 |
RDEBUG("err", err); |
|
415 |
err = RProperty::Set(KPSUidSecurityUIs, KSecurityUIsLights, aMode); |
|
416 |
RDEBUG("KSecurityUIsLights err", err); |
|
417 |
return err; |
|
418 |
} |
|
419 |
||
420 |
// When locked, ask for the code. Returns KErrNone or KErrCancel. In other words: this keeps asking until correct code. |
|
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
421 |
int Autolock::AskValidSecCode(int aReason) |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
422 |
{ |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
423 |
RDEBUG("aReason", aReason); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
424 |
RMobilePhone iPhone; // NULL in emulator |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
425 |
|
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
426 |
#ifdef __WINS__1 |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
427 |
return KErrNone; |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
428 |
#endif |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
429 |
|
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
430 |
TInt err(KErrGeneral); |
63 | 431 |
Q_UNUSED(err); |
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
432 |
TBool validCode(EFalse); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
433 |
TInt thisTry(0); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
434 |
RTelServer iTelServer; |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
435 |
|
63 | 436 |
TurnLights(ESecurityUIsLightsQueryOnRequest, aReason, 0x10); |
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
437 |
|
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
438 |
RMmCustomAPI iCustomPhone; |
63 | 439 |
while ((err = iTelServer.Connect()) != KErrNone && (thisTry++) <= KTriesToConnectServer) |
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
440 |
{ |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
441 |
User::After( KTimeBeforeRetryingServerConnection); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
442 |
} |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
443 |
err = iTelServer.LoadPhoneModule(KMmTsyModuleName); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
444 |
RTelServer::TPhoneInfo PhoneInfo; |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
445 |
RDEBUG("LoadPhoneModule err", err); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
446 |
err = iTelServer.SetExtendedErrorGranularity(RTelServer::EErrorExtended); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
447 |
RDEBUG("SetExtendedErrorGranularity err", err); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
448 |
err = iTelServer.GetPhoneInfo(KPhoneIndex, PhoneInfo); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
449 |
RDEBUG("GetPhoneInfo err", err); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
450 |
err = iPhone.Open(iTelServer, PhoneInfo.iName); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
451 |
RDEBUG("Open err", err); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
452 |
err = iCustomPhone.Open(iPhone); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
453 |
RDEBUG("Open2 err", err); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
454 |
|
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
455 |
RDEBUG("CSecurityHandler", 0); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
456 |
CSecurityHandler* handler = new (ELeave) CSecurityHandler(iPhone); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
457 |
if (aReason == ELockAppDisableDevicelock) |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
458 |
{ |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
459 |
RDEBUG("calling AskSecCodeInAutoLockL", 0); |
63 | 460 |
iLockCodeQueryInDisplay = ETrue; |
461 |
QT_TRAP_THROWING(validCode = handler->AskSecCodeInAutoLockL()); // this returns true/false |
|
462 |
iLockCodeQueryInDisplay = EFalse; |
|
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
463 |
// TODO should this also do iPhone.SetLockSetting(status, lockType, lockChange); ??? |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
464 |
} |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
465 |
else if (aReason == ELockAppEnableDevicelock) |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
466 |
{ |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
467 |
// check whether code is really needed |
63 | 468 |
RMobilePhone::TMobilePhoneLock lockType = RMobilePhone::ELockPhoneDevice; |
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
469 |
RMobilePhone::TMobilePhoneLockInfoV1 lockInfo; |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
470 |
RMobilePhone::TMobilePhoneLockInfoV1Pckg lockInfoPkg(lockInfo); |
63 | 471 |
RMobilePhone::TMobilePhoneLockSetting lockChange(RMobilePhone::ELockSetDisabled); |
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
472 |
TRequestStatus status = KRequestPending; |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
473 |
TInt ret = KErrNone; |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
474 |
RDEBUG("GetLockInfo", 0); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
475 |
iPhone.GetLockInfo(status, lockType, lockInfoPkg); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
476 |
RDEBUG("WaitForRequest", 0); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
477 |
User::WaitForRequest(status); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
478 |
ret = status.Int(); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
479 |
RDEBUG("WaitForRequest ret", ret); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
480 |
#ifdef __WINS__ |
63 | 481 |
if (ret == KErrTimedOut) |
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
482 |
{ |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
483 |
ret = KErrNone; |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
484 |
lockInfo.iSetting = RMobilePhone::ELockSetDisabled; // ask password only if there's no timeout. |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
485 |
} |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
486 |
#endif |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
487 |
if (ret == KErrNone) |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
488 |
{ |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
489 |
RDEBUG("lockInfo.iSetting", lockInfo.iSetting); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
490 |
RDEBUG("RMobilePhone::ELockSetDisabled", |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
491 |
RMobilePhone::ELockSetDisabled); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
492 |
if (lockInfo.iSetting == RMobilePhone::ELockSetDisabled) // ask password only if there's no timeout |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
493 |
{ |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
494 |
lockChange = RMobilePhone::ELockSetEnabled; |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
495 |
RDEBUG("SetLockSetting lockChange", lockChange); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
496 |
#define OLD_METHODx |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
497 |
#ifdef OLD_METHOD |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
498 |
status = KRequestPending; |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
499 |
RDEBUG( "SetLockSetting", 0 ); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
500 |
iPhone.SetLockSetting(status, lockType, lockChange); // ask for PassPhraseRequiredL |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
501 |
RDEBUG( "WaitForRequestL", 0 ); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
502 |
User::WaitForRequest( status ); // TODO this waits 33 seconds in WINS and returns ffffffdf = KErrTimedOut |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
503 |
ret = status.Int(); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
504 |
RDEBUG( "WaitForRequestL ret", ret ); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
505 |
#else |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
506 |
RDEBUG("! OLD_METHOD", 0); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
507 |
CWait *iWait = NULL; |
63 | 508 |
QT_TRAP_THROWING(iWait = CWait::NewL()); |
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
509 |
iWait->SetRequestType(EMobilePhoneSetLockSetting); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
510 |
iPhone.SetLockSetting(iWait->iStatus, lockType, lockChange); // ask for PassPhraseRequiredL |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
511 |
RDEBUG("WaitForRequestL", 0); |
63 | 512 |
QT_TRAP_THROWING(ret = iWait->WaitForRequestL()); |
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
513 |
RDEBUG("WaitForRequestL ret", ret); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
514 |
if (iWait) |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
515 |
{ |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
516 |
RDEBUG("IsActive", 0); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
517 |
if (iWait->IsActive()) |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
518 |
{ |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
519 |
RDEBUG("CancelAsyncRequest", 0); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
520 |
iPhone.CancelAsyncRequest(iWait->GetRequestType()); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
521 |
RDEBUG("cancelled", 0); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
522 |
} |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
523 |
} |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
524 |
delete iWait; |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
525 |
#endif |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
526 |
|
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
527 |
RDEBUG("WaitForRequestL ret", ret); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
528 |
#ifdef __WINS__ |
63 | 529 |
if (ret == KErrTimedOut) |
530 |
ret = KErrNone; |
|
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
531 |
#endif |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
532 |
if (ret == KErrNone) |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
533 |
validCode = 1; |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
534 |
else |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
535 |
validCode = 0; |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
536 |
} |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
537 |
else |
63 | 538 |
{ |
539 |
RDEBUG("RMobilePhone::ELockSetEnabled", RMobilePhone::ELockSetEnabled); |
|
540 |
RDEBUG("lockInfo.iSetting = RMobilePhone::ELockSetEnabled", RMobilePhone::ELockSetEnabled); |
|
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
541 |
validCode = 0x20; |
63 | 542 |
} |
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
543 |
} |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
544 |
else |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
545 |
{ |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
546 |
RDEBUG("Error: ret", ret); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
547 |
validCode = 0x21; |
63 | 548 |
} |
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
549 |
|
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
550 |
/* Alternative way to ask for password |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
551 |
RMobilePhone::TMobilePhoneSecurityEvent iEvent; |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
552 |
TInt result = KErrNone; |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
553 |
iEvent = RMobilePhone::EPhonePasswordRequired; |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
554 |
RDEBUG( "calling HandleEventL", 0 ); |
63 | 555 |
handler->HandleEventL(iEvent, result); // this is supposed to wait |
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
556 |
validCode = false; |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
557 |
if(result) |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
558 |
validCode = true; |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
559 |
RDEBUG( "result", result ); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
560 |
*/ |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
561 |
} |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
562 |
RDEBUG("validCode", validCode); |
63 | 563 |
if (validCode > 0) |
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
564 |
return KErrNone; |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
565 |
|
63 | 566 |
// no valid code -> switch off the lights |
567 |
TurnLights(ESecurityUIsLightsLockOffRequest, aReason, 0x12); |
|
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
568 |
return KErrCancel; |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
569 |
} |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
570 |
|
63 | 571 |
// The API client might inform that it got our answer. Nothing to do. |
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
572 |
void Autolock::handleAnswerDelivered() |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
573 |
{ |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
574 |
RDEBUG("0", 0); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
575 |
// quit(); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
576 |
|
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
577 |
} |
63 | 578 |
// This was used when Autolock-debug had a label to display the request. Not in use any more |
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
579 |
void Autolock::setLabelNumber(QString label, QString number) |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
580 |
{ |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
581 |
RDEBUG("0", 0); |
66 | 582 |
label = label; |
583 |
number = number; |
|
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
584 |
} |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
585 |
|
63 | 586 |
// Used on debug environment for printing the Request in understandable format |
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
587 |
void Autolock::DebugRequest(int aReason) |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
588 |
{ |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
589 |
switch (aReason) |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
590 |
{ |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
591 |
case ELockAppEnableKeyguard: |
63 | 592 |
RDEBUG("ELockAppEnableKeyguard", aReason) |
593 |
; |
|
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
594 |
break; |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
595 |
case ELockAppDisableKeyguard: |
63 | 596 |
RDEBUG("ELockAppDisableKeyguard", aReason) |
597 |
; |
|
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
598 |
break; |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
599 |
case ELockAppEnableDevicelock: |
63 | 600 |
RDEBUG("ELockAppEnableDevicelock", aReason) |
601 |
; |
|
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
602 |
break; |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
603 |
case ELockAppDisableDevicelock: |
63 | 604 |
RDEBUG("ELockAppDisableDevicelock", aReason) |
605 |
; |
|
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
606 |
break; |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
607 |
case ELockAppOfferKeyguard: |
63 | 608 |
RDEBUG("ELockAppOfferKeyguard", aReason) |
609 |
; |
|
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
610 |
break; |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
611 |
case ELockAppOfferDevicelock: |
63 | 612 |
RDEBUG("ELockAppOfferDevicelock", aReason) |
613 |
; |
|
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
614 |
break; |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
615 |
case ELockAppShowKeysLockedNote: |
63 | 616 |
RDEBUG("ELockAppShowKeysLockedNote", aReason) |
617 |
; |
|
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
618 |
break; |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
619 |
default: |
63 | 620 |
RDEBUG("default", aReason) |
621 |
; |
|
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
622 |
break; |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
623 |
} |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
624 |
} |
63 | 625 |
// Used on debug environment for printing the Status in understandable format |
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
626 |
void Autolock::DebugStatus(int aReason) |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
627 |
{ |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
628 |
switch (aReason) |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
629 |
{ |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
630 |
case ELockNotActive: |
63 | 631 |
RDEBUG("ELockNotActive", aReason) |
632 |
; |
|
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
633 |
break; |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
634 |
case EKeyguardActive: |
63 | 635 |
RDEBUG("EKeyguardActive", aReason) |
636 |
; |
|
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
637 |
break; |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
638 |
case EDevicelockActive: |
63 | 639 |
RDEBUG("EDevicelockActive", aReason) |
640 |
; |
|
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
641 |
break; |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
642 |
default: |
63 | 643 |
RDEBUG("default", aReason) |
644 |
; |
|
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
645 |
break; |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
646 |
} |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
647 |
} |
63 | 648 |
// Used on debug environment for printing the Error in understandable format |
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
649 |
void Autolock::DebugError(int aReason) |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
650 |
{ |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
651 |
switch (aReason) |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
652 |
{ |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
653 |
case KErrNone: |
63 | 654 |
RDEBUG("KErrNone", aReason) |
655 |
; |
|
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
656 |
break; |
63 | 657 |
case KErrPermissionDenied: // caller doesn't have enough capabilities |
658 |
RDEBUG("KErrPermissionDenied", aReason) |
|
659 |
; |
|
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
660 |
break; |
63 | 661 |
case KErrAlreadyExists: // this particular lock is already enabled |
662 |
RDEBUG("KErrAlreadyExists", aReason) |
|
663 |
; |
|
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
664 |
break; |
63 | 665 |
case KErrInUse: // the dialog is already shown |
666 |
RDEBUG("KErrInUse", aReason) |
|
667 |
; |
|
668 |
break; |
|
669 |
case KErrLocked: // never happens |
|
670 |
RDEBUG("KErrLocked", aReason) |
|
671 |
; |
|
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
672 |
break; |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
673 |
default: |
63 | 674 |
RDEBUG("default", aReason) |
675 |
; |
|
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
676 |
break; |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
677 |
} |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
678 |
} |
63 | 679 |
// Check whether the future status is valid. |
680 |
// Typical reasons for failure include: not correct status for this operation, lack of capabilities. |
|
681 |
// Note that other things are handled in specific places: Active call, grip open, query on top |
|
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
682 |
int Autolock::CheckIfLegal(int aReason) |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
683 |
{ |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
684 |
RDEBUG("aReason", aReason); |
63 | 685 |
// 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) |
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
686 |
TInt secUiOriginatedQuery(ESecurityUIsSecUIOriginatedUninitialized); |
63 | 687 |
TInt err = RProperty::Get(KPSUidSecurityUIs, KSecurityUIsSecUIOriginatedQuery, secUiOriginatedQuery); |
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
688 |
RDEBUG("err", err); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
689 |
RDEBUG("secUiOriginatedQuery", secUiOriginatedQuery); |
63 | 690 |
|
691 |
TInt startupValue(EStartupUiPhaseUninitialized); |
|
692 |
err = RProperty::Get(KPSUidStartup, KPSStartupUiPhase, startupValue); |
|
693 |
RDEBUG("err", err); |
|
694 |
RDEBUG("startupValue", startupValue); |
|
695 |
||
696 |
TInt simStatusValue(0); |
|
697 |
err = RProperty::Get(KPSUidStartup, KPSSimStatus, simStatusValue); |
|
698 |
RDEBUG("err", err); |
|
699 |
RDEBUG("simStatusValue", simStatusValue); |
|
700 |
if(startupValue<EStartupUiPhaseAllDone && aReason!=ELockAppDisableKeyguard && aReason!=ELockAppDisableDevicelock ) |
|
701 |
{ |
|
702 |
// before bootup, it can't be manually nor automatically keyguarded/locked |
|
703 |
RDEBUG("before bootup, it can't be manually nor automatically keyguarded/locked KErrInUse", KErrInUse); |
|
704 |
return KErrInUse; |
|
705 |
} |
|
706 |
||
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
707 |
switch (aReason) |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
708 |
{ |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
709 |
case ELockAppEnableKeyguard: |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
710 |
{ |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
711 |
RDEBUG("ELockAppEnableKeyguard iLockStatus", iLockStatus); |
63 | 712 |
if (secUiOriginatedQuery != ESecurityUIsSecUIOriginatedUninitialized) |
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
713 |
return KErrInUse; // PIN on top. Don't keyguard |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
714 |
switch (iLockStatus) |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
715 |
{ |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
716 |
case ELockNotActive: |
63 | 717 |
if (!CKeyLockPolicyApi::KeyguardAllowed()) |
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
718 |
return KErrPermissionDenied; |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
719 |
else |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
720 |
return KErrNone; |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
721 |
case EKeyguardActive: |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
722 |
return KErrAlreadyExists; |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
723 |
case EDevicelockActive: |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
724 |
return KErrPermissionDenied; |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
725 |
} |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
726 |
} |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
727 |
break; |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
728 |
case ELockAppDisableKeyguard: |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
729 |
{ |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
730 |
RDEBUG("ELockAppDisableKeyguard iLockStatus", iLockStatus); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
731 |
// no matter whether PIN is displayed |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
732 |
switch (iLockStatus) |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
733 |
{ |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
734 |
case ELockNotActive: |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
735 |
return KErrAlreadyExists; |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
736 |
case EKeyguardActive: |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
737 |
return KErrNone; |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
738 |
case EDevicelockActive: |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
739 |
return KErrPermissionDenied; |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
740 |
} |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
741 |
} |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
742 |
break; |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
743 |
case ELockAppEnableDevicelock: |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
744 |
{ |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
745 |
RDEBUG("ELockAppEnableDevicelock iLockStatus", iLockStatus); |
63 | 746 |
if (secUiOriginatedQuery != ESecurityUIsSecUIOriginatedUninitialized && secUiOriginatedQuery != ESecurityUIsSystemLockOriginated) |
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
747 |
return KErrInUse; // PIN on top. Don't devicelock |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
748 |
switch (iLockStatus) |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
749 |
{ |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
750 |
case ELockNotActive: |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
751 |
return KErrNone; |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
752 |
case EKeyguardActive: |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
753 |
return KErrNone; |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
754 |
case EDevicelockActive: |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
755 |
return KErrAlreadyExists; |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
756 |
} |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
757 |
} |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
758 |
break; |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
759 |
case ELockAppDisableDevicelock: |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
760 |
{ |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
761 |
RDEBUG("ELockAppDisableDevicelock iLockStatus", iLockStatus); |
63 | 762 |
if (iLockCodeQueryInDisplay) |
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
763 |
{ |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
764 |
// PIN on top and trying to display unlock-code. This is valid |
63 | 765 |
// but needs to turn on lights because SysAp switches them off even if query is present |
766 |
TurnLights(ESecurityUIsLightsQueryOnRequest, aReason, 0x13); |
|
767 |
return KErrAlreadyExists; |
|
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
768 |
} |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
769 |
switch (iLockStatus) |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
770 |
{ |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
771 |
case ELockNotActive: |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
772 |
return KErrAlreadyExists; |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
773 |
case EKeyguardActive: |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
774 |
return KErrPermissionDenied; |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
775 |
case EDevicelockActive: |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
776 |
return KErrNone; |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
777 |
} |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
778 |
} |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
779 |
break; |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
780 |
case ELockAppOfferKeyguard: |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
781 |
{ |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
782 |
RDEBUG("ELockAppOfferKeyguard iLockStatus", iLockStatus); |
63 | 783 |
if (secUiOriginatedQuery != ESecurityUIsSecUIOriginatedUninitialized && secUiOriginatedQuery != ESecurityUIsSystemLockOriginated) |
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
784 |
return KErrInUse; // PIN on top. Don't offer |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
785 |
switch (iLockStatus) |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
786 |
{ |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
787 |
case ELockNotActive: |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
788 |
return KErrNone; |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
789 |
case EKeyguardActive: |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
790 |
return KErrPermissionDenied; |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
791 |
case EDevicelockActive: |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
792 |
return KErrPermissionDenied; |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
793 |
} |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
794 |
} |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
795 |
break; |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
796 |
case ELockAppOfferDevicelock: |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
797 |
{ |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
798 |
RDEBUG("ELockAppOfferDevicelock iLockStatus", iLockStatus); |
63 | 799 |
if (secUiOriginatedQuery != ESecurityUIsSecUIOriginatedUninitialized && secUiOriginatedQuery != ESecurityUIsSystemLockOriginated) |
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
800 |
return KErrInUse; // PIN on top. Don't offer |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
801 |
switch (iLockStatus) |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
802 |
{ |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
803 |
case ELockNotActive: |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
804 |
return KErrNone; |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
805 |
case EKeyguardActive: |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
806 |
return KErrNone; |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
807 |
case EDevicelockActive: |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
808 |
return KErrAlreadyExists; |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
809 |
} |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
810 |
} |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
811 |
break; |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
812 |
case ELockAppShowKeysLockedNote: |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
813 |
{ |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
814 |
RDEBUG("ELockAppShowKeysLockedNote iLockStatus", iLockStatus); |
63 | 815 |
if (secUiOriginatedQuery != ESecurityUIsSecUIOriginatedUninitialized && secUiOriginatedQuery != ESecurityUIsSystemLockOriginated) |
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
816 |
return KErrInUse; // PIN on top. Don't display |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
817 |
switch (iLockStatus) |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
818 |
{ |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
819 |
case ELockNotActive: |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
820 |
return KErrPermissionDenied; |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
821 |
case EKeyguardActive: |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
822 |
return KErrNone; |
63 | 823 |
case EDevicelockActive: // TODO confirm this. CMMKeyBearer::ReceivedKeyEvent expects KErrNone if keypad is locked |
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
824 |
return KErrPermissionDenied; |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
825 |
} |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
826 |
} |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
827 |
break; |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
828 |
default: |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
829 |
{ |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
830 |
RDEBUG("default iLockStatus", iLockStatus); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
831 |
return KErrPermissionDenied; |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
832 |
} |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
833 |
// break; |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
834 |
} // switch |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
835 |
return KErrPermissionDenied; |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
836 |
} |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
837 |
|
63 | 838 |
// After a succesful status change, communicate it to the world, using P&S and CenRep |
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
839 |
int Autolock::publishStatus(int aReason) |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
840 |
{ |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
841 |
RDEBUG("aReason", aReason); |
63 | 842 |
Q_UNUSED(aReason); |
843 |
TInt err = KErrNone; |
|
844 |
Q_UNUSED(err); |
|
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
845 |
// can't use include file because it's private file. However it gives permissions |
63 | 846 |
const TUid KCRUidCoreApplicationUIsSysAp = |
847 |
{ |
|
848 |
0x101F8765 |
|
849 |
}; |
|
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
850 |
const TUint32 KSysApKeyguardActive = 0x00000001; |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
851 |
CRepository* repositoryDevicelock = NULL; |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
852 |
CRepository* repositoryKeyguard = NULL; |
63 | 853 |
QT_TRAP_THROWING(repositoryDevicelock = CRepository::NewL(KCRUidSecuritySettings)); |
854 |
QT_TRAP_THROWING(repositoryKeyguard = CRepository::NewL(KCRUidCoreApplicationUIsSysAp)); |
|
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
855 |
TInt cRresult = KErrNone; |
63 | 856 |
Q_UNUSED(cRresult); |
857 |
||
858 |
TInt autolockState; |
|
859 |
err = RProperty::Get(KPSUidCoreApplicationUIs, KCoreAppUIsAutolockStatus, autolockState); |
|
860 |
RDEBUG("Get KCoreAppUIsAutolockStatus", err); |
|
861 |
RDEBUG("autolockState", autolockState); |
|
862 |
||
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
863 |
if (1 == 1) // this is a quick way to disable this functionality, for testing |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
864 |
{ |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
865 |
RDEBUG("publishing", aReason); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
866 |
if (aReason == ELockNotActive) |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
867 |
{ |
63 | 868 |
err = RProperty::Set(KPSUidAvkonDomain, KAknKeyguardStatus, EKeyguardNotActive); |
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
869 |
RDEBUG("err", err); |
63 | 870 |
if(autolockState!=EAutolockOff) |
871 |
{ |
|
872 |
err = RProperty::Set(KPSUidCoreApplicationUIs, KCoreAppUIsAutolockStatus, EAutolockOff); |
|
873 |
RDEBUG("err", err); |
|
874 |
} |
|
875 |
else |
|
876 |
{ |
|
66 | 877 |
RDEBUG("not set KCoreAppUIsAutolockStatus because already EAutolockOff", EAutolockOff); |
63 | 878 |
} |
879 |
// Not needed. SysAp turns the lights when keyguard is disabled |
|
880 |
// TurnLights(ESecurityUIsLightsLockOnRequest, aReason, 0x14); |
|
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
881 |
|
63 | 882 |
// cRresult = repositoryDevicelock->Set(KSettingsAutolockStatus, 0); // the settings remains. Only ISA changes, as well as the P&S |
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
883 |
cRresult = repositoryKeyguard->Set(KSysApKeyguardActive, 0); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
884 |
RDEBUG("cRresult", cRresult); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
885 |
} |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
886 |
if (1 == 1) // this is a quick way to disable this functionality, for testing |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
887 |
{ |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
888 |
if (aReason == EKeyguardActive) |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
889 |
{ |
63 | 890 |
err = RProperty::Set(KPSUidAvkonDomain, KAknKeyguardStatus, EKeyguardLocked); |
891 |
RDEBUG("KAknKeyguardStatus err", err); |
|
892 |
if(autolockState!=EAutolockOff) |
|
893 |
{ |
|
894 |
err = RProperty::Set(KPSUidCoreApplicationUIs, KCoreAppUIsAutolockStatus, EAutolockOff); |
|
895 |
RDEBUG("KCoreAppUIsAutolockStatus err", err); |
|
896 |
} |
|
897 |
else |
|
898 |
{ |
|
66 | 899 |
RDEBUG("not set KCoreAppUIsAutolockStatus because already EAutolockOff", EAutolockOff); |
63 | 900 |
} |
901 |
TurnLights(ESecurityUIsLightsLockOffRequest, aReason, 0x16); // same for keyguard and devicelock |
|
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
902 |
// cRresult = repositoryDevicelock->Set(KSettingsAutolockStatus, 0); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
903 |
cRresult = repositoryKeyguard->Set(KSysApKeyguardActive, 1); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
904 |
RDEBUG("cRresult", cRresult); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
905 |
} |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
906 |
else if (aReason >= EDevicelockActive) |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
907 |
{ |
63 | 908 |
err = RProperty::Set(KPSUidAvkonDomain, KAknKeyguardStatus, EKeyguardLocked); // previously EKeyguardAutolockEmulation, but then Telephone doesn't understand that it's keyguarded. Other candidates might be: EKeyguardLocked and EKeyguardNotActive |
909 |
RDEBUG("KAknKeyguardStatus err", err); |
|
910 |
if(autolockState!=EManualLocked) |
|
911 |
{ |
|
912 |
err = RProperty::Set(KPSUidCoreApplicationUIs, KCoreAppUIsAutolockStatus, EManualLocked); |
|
913 |
RDEBUG("KCoreAppUIsAutolockStatus err", err); |
|
914 |
} |
|
915 |
else |
|
916 |
{ |
|
66 | 917 |
RDEBUG("not set KCoreAppUIsAutolockStatus because already EManualLocked", EManualLocked); |
63 | 918 |
} |
919 |
TurnLights(ESecurityUIsLightsQueryOnRequest, aReason, 0x18); |
|
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
920 |
// cRresult = repositoryDevicelock->Set(KSettingsAutolockStatus, 1); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
921 |
cRresult = repositoryKeyguard->Set(KSysApKeyguardActive, 0); // keyguard disabled, so that user can type and DeviceF can be captured |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
922 |
RDEBUG("cRresult", cRresult); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
923 |
} |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
924 |
} |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
925 |
} |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
926 |
delete repositoryDevicelock; |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
927 |
delete repositoryKeyguard; |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
928 |
// this is the real point where everything is done. |
66 | 929 |
RDEBUG("iLockStatusPrev", iLockStatusPrev); |
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
930 |
iLockStatusPrev = iLockStatus; |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
931 |
iLockStatus = aReason; |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
932 |
RDEBUG("setting iLockStatus", iLockStatus); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
933 |
return KErrNone; |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
934 |
} |
63 | 935 |
// Shows a note. This is used from the API to inform about actions. The side-switch-key and the automatic lock will not show notes. |
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
936 |
int Autolock::showNoteIfRequested(int aReason) |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
937 |
{ |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
938 |
RDEBUG("aReason", aReason); |
63 | 939 |
// The notes are displayed. This is useful only for the API withNote, and ELockAppShowKeysLockedNote |
940 |
// However, it has some inconvenients: |
|
941 |
// - the screensaver already displays/hides |
|
942 |
// - the notes are shown behing the icon because they have lower priorities |
|
943 |
// - they are annoying |
|
944 |
// TODO translate |
|
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
945 |
if (aReason == ELockNotActive) |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
946 |
{ |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
947 |
if (iShowKeyguardNote == 1) |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
948 |
{ |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
949 |
HbDeviceMessageBox::information("Keyguard deactivated"); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
950 |
} |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
951 |
} |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
952 |
else if (aReason == EKeyguardActive) |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
953 |
{ |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
954 |
if (iShowKeyguardNote == 1) |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
955 |
{ |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
956 |
HbDeviceMessageBox::information("Keyguard activated"); |
63 | 957 |
// this already waits a bit because the lock-icon takes some time to display. So the note is visible before the lock-icon. |
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
958 |
} |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
959 |
} |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
960 |
else if (aReason >= EDevicelockActive) // this doesn't happen, but we are prepared nevertheless |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
961 |
{ |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
962 |
if (iShowKeyguardNote == 1) |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
963 |
{ |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
964 |
HbDeviceMessageBox::information("Devicelock activated"); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
965 |
} |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
966 |
} |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
967 |
return KErrNone; |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
968 |
} |
63 | 969 |
// Does the logic and actions for changing status. |
970 |
// This is the main function of this program. |
|
971 |
// On every status, the process is the same: continue with next step only if previous one is successful. |
|
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
972 |
int Autolock::TryChangeStatus(int aReason) |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
973 |
{ |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
974 |
RDEBUG("aReason", aReason); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
975 |
int ret = aReason; |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
976 |
int errorInProcess = KErrNone; |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
977 |
DebugRequest(ret); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
978 |
|
63 | 979 |
TInt err = KErrNone; |
980 |
Q_UNUSED(err); |
|
981 |
// this will NOT cancel any previous dialog, i.e. PIN query, or any previous code-request. |
|
982 |
// not sure about the screensaver, but nevertheless will be cancelled when the status is changed. |
|
983 |
RDEBUG("Not setting KSecurityUIsDismissDialog ESecurityUIsDismissDialogOn", ESecurityUIsDismissDialogOn); |
|
984 |
//// err = RProperty::Set(KPSUidSecurityUIs, KSecurityUIsDismissDialog, ESecurityUIsDismissDialogOn); |
|
985 |
RDEBUG("err", err); |
|
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
986 |
switch (ret) |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
987 |
{ |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
988 |
case ELockAppEnableKeyguard: // 1 |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
989 |
{ |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
990 |
errorInProcess = CheckIfLegal(ret); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
991 |
DebugError(errorInProcess); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
992 |
if (errorInProcess == KErrNone) |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
993 |
{ |
63 | 994 |
showNoteIfRequested( EKeyguardActive); |
995 |
setLabelIcon(EKeyguardActive); |
|
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
996 |
updateIndicator(EKeyguardActive); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
997 |
publishStatus(EKeyguardActive); |
63 | 998 |
setLockDialog(aReason, EDeviceDialogCreated); |
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
999 |
} |
63 | 1000 |
// Telephone might want to re-enable only-keyguard after the call ends. Allow it. This means re-showing the screensaver, not more. |
1001 |
// Note: this is already done in CallStateChanged, so it's useless. Therefore it expects KErrLocked, which never happens |
|
1002 |
if (errorInProcess == KErrLocked && iTempDisableOnlyKeyguardBecauseIncomingCall==1) |
|
1003 |
{ |
|
1004 |
RDEBUG("allowing telephone to re-enable keyguard . Call setLockDialog EDeviceDialogScreenSaverReDisplay", EDeviceDialogScreenSaverReDisplay); |
|
1005 |
setLockDialog(aReason, EDeviceDialogScreenSaverReDisplay); |
|
1006 |
iTempDisableOnlyKeyguardBecauseIncomingCall=0; |
|
1007 |
} |
|
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1008 |
} |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1009 |
break; |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1010 |
case ELockAppDisableKeyguard: // 2 |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1011 |
{ |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1012 |
errorInProcess = CheckIfLegal(ret); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1013 |
DebugError(errorInProcess); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1014 |
if (errorInProcess == KErrNone) |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1015 |
{ |
63 | 1016 |
showNoteIfRequested( ELockNotActive); |
1017 |
setLabelIcon(ELockNotActive); |
|
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1018 |
updateIndicator(ELockNotActive); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1019 |
publishStatus(ELockNotActive); |
63 | 1020 |
setLockDialog(aReason, EDeviceDialogDestroyed); |
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1021 |
} |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1022 |
} |
63 | 1023 |
RDEBUG("errorInProcess", errorInProcess); |
1024 |
// Telephone might want to disable only-keyguard during a call. Allow it. This means hiding the screensaver, not more. |
|
1025 |
// Note: this is already done in CallStateChanged, so it's useless. Therefore it expects KErrLocked, which never happens |
|
1026 |
if(errorInProcess==KErrLocked) |
|
1027 |
{ |
|
1028 |
TInt aCallStatus=-1; |
|
1029 |
TInt err = RProperty::Get(KPSUidCtsyCallInformation, KCTsyCallState, aCallStatus); |
|
1030 |
RDEBUG("err", err); |
|
1031 |
RDEBUG("aCallStatus", aCallStatus); |
|
1032 |
if (aCallStatus != EPSCTsyCallStateUninitialized && aCallStatus != EPSCTsyCallStateNone) |
|
1033 |
{ |
|
1034 |
RDEBUG("allowing telephone to disable keyguard . Call setLockDialog EDeviceDialogScreenSaverHidden", EDeviceDialogScreenSaverHidden); |
|
1035 |
setLockDialog(aReason, EDeviceDialogScreenSaverHidden); |
|
1036 |
iTempDisableOnlyKeyguardBecauseIncomingCall=1; |
|
1037 |
errorInProcess=KErrNone; |
|
1038 |
} |
|
1039 |
} |
|
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1040 |
break; |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1041 |
case ELockAppEnableDevicelock: // 3 |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1042 |
{ |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1043 |
errorInProcess = CheckIfLegal(ret); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1044 |
DebugError(errorInProcess); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1045 |
if (errorInProcess == KErrNone) |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1046 |
{ |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1047 |
if (!callerHasECapabilityWriteDeviceData) // check permissions for calling process, because doesn't AskValidSecCode |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1048 |
errorInProcess = KErrPermissionDenied; |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1049 |
DebugError(errorInProcess); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1050 |
} |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1051 |
if (errorInProcess == KErrNone) |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1052 |
{ |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1053 |
updateIndicator( EDevicelockActive); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1054 |
publishStatus(EDevicelockActive); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1055 |
setLabelIcon(EDevicelockActive); |
63 | 1056 |
setLockDialog(aReason, EDeviceDialogCreated); |
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1057 |
} |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1058 |
// aParam1 is aReason : EDevicelockManual, EDevicelockRemote |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1059 |
// this never shows a note |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1060 |
} |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1061 |
break; |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1062 |
case ELockAppDisableDevicelock: // 4 |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1063 |
{ |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1064 |
errorInProcess = CheckIfLegal(ret); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1065 |
DebugError(errorInProcess); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1066 |
if (errorInProcess == KErrNone) |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1067 |
{ |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1068 |
if (!callerHasECapabilityWriteDeviceData) // check permissions for calling process, because doesn't AskValidSecCode |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1069 |
errorInProcess = KErrPermissionDenied; |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1070 |
DebugError(errorInProcess); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1071 |
} |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1072 |
if (errorInProcess == KErrNone) |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1073 |
{ |
63 | 1074 |
RDEBUG("skip setLockDialog", 0); |
1075 |
// No need to disable screensaver. Notes now can get on top. Also, this avoids the transition Screensaver->unlockQuery, which produces flicker on HomeScreen. |
|
1076 |
setLockDialog(aReason, EDeviceDialogScreenSaverHidden); // Hide temporarilly because HbDeviceMessageBox doesn't get in top of the Lock-icon. Thus, dismiss it. |
|
1077 |
// do I need to enable touch? it seems to work without it |
|
1078 |
// in any case, lights are needed |
|
1079 |
TurnLights(ESecurityUIsLightsQueryOnRequest, aReason, 0x20); |
|
1080 |
bool value = true; |
|
1081 |
// not sure whether this question is really needed. The UI doesn't say anything, so I remove it for now. |
|
1082 |
RDEBUG("not calling HbDeviceMessageBox::question", 0); |
|
1083 |
// value = HbDeviceMessageBox::question("Disable Lock?"); // this doesn't block other events, so after return everything might be messed up. |
|
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1084 |
RDEBUG("value", value); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1085 |
if (!value) |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1086 |
errorInProcess = KErrCancel; |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1087 |
} |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1088 |
if (errorInProcess == KErrNone) |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1089 |
{ |
63 | 1090 |
RDEBUG("skip setLockDialog", 0); |
1091 |
// No need to disable screensaver. Notes now can get on top. Also, this avoids the transition Screensaver->unlockQuery, which produces flicker on HomeScreen. |
|
1092 |
setLockDialog(aReason, EDeviceDialogScreenSaverHidden); // hide temporarilly because AskValidSecCode doesn't get in top of the Lock-icon. Thus, dismiss it. |
|
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1093 |
RDEBUG("calling AskValidSecCode", 0); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1094 |
errorInProcess = AskValidSecCode(ELockAppDisableDevicelock); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1095 |
RDEBUG("errorInProcess", errorInProcess); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1096 |
} |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1097 |
if (errorInProcess == KErrNone) |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1098 |
{ |
63 | 1099 |
// code is correct. Time to destroy the lock-icon |
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1100 |
setLabelIcon( ELockNotActive); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1101 |
updateIndicator(ELockNotActive); |
63 | 1102 |
setLockDialog(aReason, EDeviceDialogDestroyed); |
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1103 |
publishStatus(ELockNotActive); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1104 |
} |
63 | 1105 |
else // errorInProcess != KErrNone |
1106 |
{ // re-lock. For example, if password is cancelled. Remember that this applies also for the case KErrPermissionDenied |
|
1107 |
TInt aCallStatus=-1; |
|
1108 |
TInt skipScreenSaver=0; |
|
1109 |
TInt err = RProperty::Get(KPSUidCtsyCallInformation, KCTsyCallState, aCallStatus); |
|
1110 |
RDEBUG("err", err); |
|
1111 |
RDEBUG("aCallStatus", aCallStatus); |
|
1112 |
if (aCallStatus != EPSCTsyCallStateUninitialized && aCallStatus != EPSCTsyCallStateNone) |
|
1113 |
{ |
|
1114 |
// if there's an active call and the query is cancelled, screensaver should not show. |
|
1115 |
skipScreenSaver=1; // if it's skipped, it will be set at CallStateChanged |
|
1116 |
RDEBUG("new skipScreenSaver", skipScreenSaver); |
|
1117 |
} |
|
1118 |
RDEBUG("skipScreenSaver", skipScreenSaver); |
|
1119 |
if (iLockStatus >= EDevicelockActive) // this skips the case "unlocking although it wasn't locked" |
|
1120 |
if(!skipScreenSaver) |
|
1121 |
setLockDialog(ELockAppEnableDevicelock, EDeviceDialogScreenSaverReDisplay); |
|
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1122 |
} |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1123 |
// this never shows a note |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1124 |
} |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1125 |
break; |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1126 |
case ELockAppOfferKeyguard: // 5 |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1127 |
{ |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1128 |
errorInProcess = CheckIfLegal(ret); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1129 |
DebugError(errorInProcess); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1130 |
if (errorInProcess == KErrNone) |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1131 |
{ |
63 | 1132 |
// no need to dismiss screensaver, because it's not active |
1133 |
// 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 |
|
1134 |
bool value = HbDeviceMessageBox::question("Enable Keyguard?"); // this doesn't block other events, so after return everything might be messed up i.e. the time-out might have triggered. |
|
1135 |
// what about a nice icon? |
|
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1136 |
RDEBUG("value", value); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1137 |
if (!value) |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1138 |
errorInProcess = KErrCancel; |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1139 |
} |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1140 |
if (errorInProcess == KErrNone) |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1141 |
{ |
63 | 1142 |
errorInProcess = CheckIfLegal(ret); // confirm that it's still possible to do it. For example, if API did a lock |
1143 |
} |
|
1144 |
if (errorInProcess == KErrNone) |
|
1145 |
{ |
|
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1146 |
errorInProcess = TryChangeStatus(ELockAppEnableKeyguard); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1147 |
} |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1148 |
// this never shows a note |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1149 |
} |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1150 |
break; |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1151 |
case ELockAppOfferDevicelock: // 6 |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1152 |
{ |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1153 |
errorInProcess = CheckIfLegal(ret); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1154 |
DebugError(errorInProcess); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1155 |
if (errorInProcess == KErrNone) |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1156 |
{ |
63 | 1157 |
RDEBUG("skip setLockDialog", 0); |
1158 |
// No need to disable screensaver. Notes now can get on top. Also, this avoids the transition Screensaver->unlockQuery, which produces flicker on HomeScreen. |
|
1159 |
setLockDialog(aReason, EDeviceDialogScreenSaverHidden); // hide temporarilly because AskValidSecCode doesn't get in top of the Lock-icon. Thus, dismiss it. |
|
1160 |
errorInProcess = AskValidSecCode(ELockAppEnableDevicelock); |
|
1161 |
} |
|
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1162 |
if (errorInProcess == KErrNone) |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1163 |
{ |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1164 |
RDEBUG("ELockAppOfferDevicelock calling ELockAppEnableDevicelock", ELockAppEnableDevicelock); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1165 |
errorInProcess = TryChangeStatus(ELockAppEnableDevicelock); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1166 |
} |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1167 |
// this never shows a note. Perhaps ELockAppEnableDevicelock does. |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1168 |
} |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1169 |
break; |
63 | 1170 |
case ELockAppShowKeysLockedNote: // 7 |
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1171 |
{ |
63 | 1172 |
errorInProcess = CheckIfLegal(ret); // it will not be legal if the keyguard is not enabled and the devicelock is not enabled. |
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1173 |
DebugError(errorInProcess); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1174 |
if (errorInProcess == KErrNone) |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1175 |
{ |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1176 |
iShowKeyguardNote = 1; // this is not sent as parameter, so we need to fake it: ON |
63 | 1177 |
showNoteIfRequested( EKeyguardActive); |
1178 |
} |
|
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1179 |
} |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1180 |
break; |
66 | 1181 |
case 0x100: // Start/confirm server |
1182 |
{ |
|
1183 |
// 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. |
|
1184 |
// Note: this is fast : 0.02 seconds |
|
1185 |
TInt secuiOperation=mParam1; |
|
1186 |
TInt iStartup=0; // this comes as a flag, part of secuiOperation |
|
1187 |
iStartup = iStartup; |
|
1188 |
RDEBUG("secuiOperation", secuiOperation); |
|
1189 |
RDEBUG("iSCPConfigured", iSCPConfigured); |
|
1190 |
errorInProcess = KErrNone; |
|
1191 |
if(secuiOperation>=0x1000) |
|
1192 |
{ |
|
1193 |
iStartup=1; |
|
1194 |
secuiOperation-=0x1000; |
|
1195 |
} |
|
1196 |
if(secuiOperation==0 /*unknown*/ || secuiOperation==2 /*PIN*/) |
|
1197 |
{ |
|
1198 |
// nothing to do. SCP should not be verified on PIN ; only on lock-query at boot |
|
1199 |
RDEBUG("nothing to do because secuiOperation", secuiOperation); |
|
1200 |
RDEBUG("KErrCompletion", KErrCompletion); |
|
1201 |
errorInProcess = KErrCompletion; |
|
1202 |
} |
|
1203 |
else |
|
1204 |
{ |
|
1205 |
// usually secuiOperation=6 |
|
1206 |
if(!iSCPConfigured) |
|
1207 |
{ |
|
1208 |
RSCPClient scpClientConfiguration; |
|
1209 |
User::LeaveIfError( scpClientConfiguration.Connect() ); |
|
1210 |
CleanupClosePushL( scpClientConfiguration ); |
|
1211 |
RDEBUG("call CheckConfiguration KSCPComplete", KSCPComplete); |
|
1212 |
TInt finalConfStatus = scpClientConfiguration.CheckConfiguration( KSCPComplete ); |
|
1213 |
RDEBUG("finalConfStatus", finalConfStatus); |
|
1214 |
CleanupStack::PopAndDestroy(); // scpClientConfiguration |
|
1215 |
iSCPConfigured=1; |
|
1216 |
errorInProcess = KErrNone; |
|
1217 |
} |
|
1218 |
else |
|
1219 |
{ |
|
1220 |
RDEBUG("nothing to do because iSCPConfigured", iSCPConfigured); |
|
1221 |
RDEBUG("KErrAlreadyExists", KErrAlreadyExists); |
|
1222 |
errorInProcess = KErrAlreadyExists; |
|
1223 |
} |
|
1224 |
} |
|
1225 |
} |
|
1226 |
break; |
|
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1227 |
default: |
63 | 1228 |
{ |
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1229 |
RDEBUG("default", ret); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1230 |
errorInProcess = KErrNotSupported; |
63 | 1231 |
} |
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1232 |
break; |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1233 |
|
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1234 |
} |
63 | 1235 |
RDEBUG("errorInProcess", errorInProcess); |
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1236 |
return errorInProcess; |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1237 |
} |
63 | 1238 |
// Shows or hides the Screensaver/LockIcon |
1239 |
int Autolock::setLockDialog(int aReason, int target) |
|
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1240 |
{ |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1241 |
RDEBUG("aReason", aReason); |
63 | 1242 |
RDEBUG("target", target); |
1243 |
RDEBUG("iDeviceDialogStatus", iDeviceDialogStatus); |
|
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1244 |
TInt secUiOriginatedQuery(ESecurityUIsSecUIOriginatedUninitialized); |
63 | 1245 |
TInt err = RProperty::Get(KPSUidSecurityUIs, KSecurityUIsSecUIOriginatedQuery, secUiOriginatedQuery); |
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1246 |
RDEBUG("err", err); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1247 |
RDEBUG("secUiOriginatedQuery", secUiOriginatedQuery); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1248 |
|
63 | 1249 |
RWindowGroup& groupWin = CEikonEnv::Static()->RootWin(); |
1250 |
||
1251 |
if (target == EDeviceDialogDestroyed || target == EDeviceDialogScreenSaverHidden) // hide |
|
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1252 |
{ |
66 | 1253 |
/* |
1254 |
This doesn't work since Avkon deprecations |
|
63 | 1255 |
RDEBUG("ReleaseContext", R_AVKON_DEFAULT_SKEY_LIST); |
1256 |
static_cast<CAknAppUi*>(CEikonEnv::Static()->EikAppUi())->KeySounds()->ReleaseContext(); |
|
1257 |
RDEBUG("PopContext", 0x90); |
|
1258 |
static_cast<CAknAppUi*>(CEikonEnv::Static()->EikAppUi())->KeySounds()->PopContext(); |
|
1259 |
RDEBUG("ReleaseContext done", 0x92); |
|
66 | 1260 |
*/ |
63 | 1261 |
|
1262 |
// aReason is not important here, but let's check nevertheless |
|
1263 |
if (aReason != ELockAppDisableKeyguard && aReason != ELockAppDisableDevicelock && aReason != ELockAppOfferDevicelock) |
|
1264 |
{ |
|
1265 |
RDEBUG("!!!!****!!!!! error. target=0 but aReason", aReason); |
|
1266 |
} |
|
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1267 |
// secUiOriginatedQuery should be ESecurityUIsSystemLockOriginated . If not, this is not correctly setting it |
63 | 1268 |
if (iDeviceDialogStatus >= EDeviceDialogCreated) |
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1269 |
{ |
63 | 1270 |
if(mScreensaverModeTimer) |
1271 |
{ |
|
1272 |
RDEBUG("mScreensaverModeTimer->stop()", 0); |
|
1273 |
mScreensaverModeTimer->stop(); |
|
1274 |
} |
|
1275 |
if(target == EDeviceDialogDestroyed) |
|
1276 |
{ |
|
1277 |
disconnect(iDeviceDialog, SIGNAL(dataReceived(QVariantMap)), this, SLOT(handleMessageFromScreensaver(QVariantMap))); |
|
1278 |
disconnect(iDeviceDialog, SIGNAL(deviceDialogClosed()), this, SLOT(handleScreensaverClosed())); |
|
1279 |
RDEBUG("signal disconnected", err); |
|
1280 |
// TODO this used to crash for EDeviceDialogScreenSaver. Not anymore. |
|
1281 |
err = iDeviceDialog->cancel(); |
|
1282 |
RDEBUG("cancel (bool: 1= wellCancelled) err", err); |
|
1283 |
err = iDeviceDialog->error(); |
|
1284 |
RDEBUG("err", err); |
|
1285 |
RDEBUG("calling iDeviceDialog->waitForClosed()", 0); |
|
1286 |
err = iDeviceDialog->waitForClosed(); |
|
1287 |
RDEBUG("cancel (bool: 1= well waitForClosed) err", err); |
|
1288 |
err = iDeviceDialog->error(); |
|
1289 |
RDEBUG("err", err); |
|
1290 |
handleScreensaverClosed(); |
|
1291 |
RDEBUG("deleting iDeviceDialog", 0); |
|
1292 |
delete iDeviceDialog; |
|
1293 |
RDEBUG("deleted iDeviceDialog", 1); |
|
1294 |
iDeviceDialog = NULL; |
|
1295 |
} |
|
1296 |
else if(target == EDeviceDialogScreenSaverHidden) |
|
1297 |
{ |
|
1298 |
RDEBUG("calling switchScreensaverMode", ESnsrViewTypeDisabled); |
|
1299 |
switchScreensaverMode( ESnsrViewTypeDisabled); |
|
1300 |
} |
|
1301 |
||
1302 |
TInt err = RProperty::Set(KPSUidSecurityUIs, KSecurityUIsSecUIOriginatedQuery, ESecurityUIsSecUIOriginatedUninitialized); |
|
1303 |
RDEBUG("reset KSecurityUIsSecUIOriginatedQuery. err", err); |
|
1304 |
||
1305 |
// Lights will be on by SysAp when screen is un-keyguarded |
|
1306 |
// TurnLights(ESecurityUIsLightsQueryOnRequest, aReason, 0x22); // let's bring light into HomeScreen |
|
1307 |
// Cancel power key and application key capturing |
|
1308 |
groupWin.CancelCaptureKey(mPowerKeyCaptureHandle); |
|
1309 |
groupWin.CancelCaptureKey(mApplicationKeyCaptureHandle); |
|
1310 |
groupWin.CancelCaptureLongKey(mApplicationLongKeyCaptureHandle); |
|
1311 |
RDEBUG("done CancelCaptureKey", 1); |
|
1312 |
if (mEKeyYesCaptureHandle) |
|
1313 |
{ |
|
1314 |
RDEBUG("mEKeyYesCaptureHandle", mEKeyYesCaptureHandle); |
|
1315 |
groupWin.CancelCaptureKey(mEKeyYesCaptureHandle); |
|
1316 |
mEKeyYesCaptureHandle = NULL; |
|
1317 |
} |
|
1318 |
if (mEKeyNoCaptureHandle) |
|
1319 |
{ |
|
1320 |
RDEBUG("mEKeyNoCaptureHandle", mEKeyNoCaptureHandle); |
|
1321 |
groupWin.CancelCaptureKey(mEKeyNoCaptureHandle); |
|
1322 |
mEKeyNoCaptureHandle = NULL; |
|
1323 |
} |
|
1324 |
setDeviceDialogStatus( target ); |
|
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1325 |
} |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1326 |
} |
63 | 1327 |
else if (target == EDeviceDialogCreated || target == EDeviceDialogScreenSaverReDisplay) // show |
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1328 |
{ |
66 | 1329 |
/* |
1330 |
This doesn't work since Avkon deprecations |
|
1331 |
||
63 | 1332 |
RDEBUG("PushContextL", R_AVKON_DEFAULT_SKEY_LIST); |
1333 |
static_cast<CAknAppUi*>(CEikonEnv::Static()->EikAppUi())->KeySounds()->PushContextL(R_AVKON_SILENT_SKEY_LIST); |
|
1334 |
RDEBUG("BringToForeground", 0x90); |
|
1335 |
static_cast<CAknAppUi*>(CEikonEnv::Static()->EikAppUi())->KeySounds()->BringToForeground(); |
|
1336 |
RDEBUG("LockContext", 0x91); |
|
1337 |
static_cast<CAknAppUi*>(CEikonEnv::Static()->EikAppUi())->KeySounds()->LockContext(); |
|
1338 |
RDEBUG("PushContextL Done", 0x92); |
|
66 | 1339 |
*/ |
63 | 1340 |
|
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1341 |
// secUiOriginatedQuery should be ESecurityUIsSecUIOriginatedUninitialized . If not, the validation is not correctly filtering it |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1342 |
QVariantMap params; |
63 | 1343 |
TBool err=EFalse; |
66 | 1344 |
err = err; |
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1345 |
|
63 | 1346 |
if (aReason == ELockAppEnableKeyguard) |
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1347 |
params.insert("type", ESecUiTypeKeyguard); |
63 | 1348 |
else if (aReason == ELockAppEnableDevicelock) |
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1349 |
params.insert("type", ESecUiTypeDeviceLock); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1350 |
else |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1351 |
{ |
63 | 1352 |
RDEBUG("!!!!****!!!!! error. target=1 but aReason", aReason); |
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1353 |
} |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1354 |
// no need for title. Icon should be explicit enough |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1355 |
// params.insert("title", "Locked"); |
63 | 1356 |
if (iDeviceDialogStatus < EDeviceDialogCreated) |
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1357 |
{ |
63 | 1358 |
if (iDeviceDialog != NULL) |
1359 |
{ |
|
1360 |
RDEBUG("!!!!!!*********!!!!!!!! error: iDeviceDialog != NULL", 0); |
|
1361 |
} |
|
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1362 |
RDEBUG("creating iDeviceDialog", 0); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1363 |
iDeviceDialog = new HbDeviceDialog(HbDeviceDialog::NoFlags, this); |
63 | 1364 |
// in theory this is needed only for screensaver, not for LockIcon. But it doesn't harm |
1365 |
connect(iDeviceDialog, SIGNAL(dataReceived(QVariantMap)), SLOT(handleMessageFromScreensaver(QVariantMap)), Qt::QueuedConnection); // Qt::QueuedConnection needed to avoid deadlock at waitForClosed |
|
1366 |
connect(iDeviceDialog, SIGNAL(deviceDialogClosed()), SLOT(handleScreensaverClosed())); |
|
1367 |
setDeviceDialogStatus(EDeviceDialogCreated); |
|
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1368 |
} |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1369 |
else |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1370 |
{ |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1371 |
RDEBUG("raising iDeviceDialog", 0); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1372 |
// confirm that dialog is present |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1373 |
err = iDeviceDialog->error(); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1374 |
RDEBUG("err", err); |
63 | 1375 |
setDeviceDialogStatus( EDeviceDialogRaised ); |
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1376 |
} |
63 | 1377 |
const QString KScreensaverDeviceDialog("com.nokia.screensaver.snsrdevicedialogplugin/1.0"); |
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1378 |
RDEBUG("pre show", aReason); |
63 | 1379 |
TInt skipScreenSaver=0; |
1380 |
bool launchSuccesful = EFalse; |
|
1381 |
||
1382 |
TInt aCallStatus=-1; |
|
1383 |
err = RProperty::Get(KPSUidCtsyCallInformation, KCTsyCallState, aCallStatus); |
|
1384 |
RDEBUG("aCallStatus", aCallStatus); |
|
1385 |
// never create screensaver if active call. |
|
1386 |
if (aCallStatus != EPSCTsyCallStateUninitialized && aCallStatus != EPSCTsyCallStateNone && iLockStatus >= EDevicelockActive ) |
|
1387 |
{ |
|
1388 |
skipScreenSaver=1; |
|
1389 |
RDEBUG("new skipScreenSaver", skipScreenSaver); |
|
1390 |
} |
|
1391 |
RDEBUG("skipScreenSaver", skipScreenSaver); |
|
1392 |
if(!skipScreenSaver) |
|
1393 |
{ |
|
1394 |
if(iDeviceDialogStatus == EDeviceDialogCreated) |
|
1395 |
{ |
|
1396 |
launchSuccesful = iDeviceDialog->show(KScreensaverDeviceDialog, params); // and continue processing |
|
1397 |
RDEBUG("post show. bool launchSuccesful", launchSuccesful); |
|
1398 |
} |
|
1399 |
else if(iDeviceDialogStatus == EDeviceDialogScreenSaverHidden || iDeviceDialogStatus == EDeviceDialogRaised) |
|
1400 |
{ |
|
1401 |
RDEBUG("calling switchScreensaverMode ESnsrViewTypeActive", ESnsrViewTypeActive); |
|
1402 |
switchScreensaverMode( ESnsrViewTypeActive); |
|
1403 |
launchSuccesful = ETrue; |
|
1404 |
} |
|
1405 |
} |
|
1406 |
RDEBUG("bool launchSuccesful", launchSuccesful); |
|
1407 |
err = iDeviceDialog->error(); |
|
1408 |
RDEBUG("iDeviceDialog->error", err); |
|
1409 |
if (launchSuccesful) // TODO && !error ??? |
|
1410 |
{ |
|
1411 |
setDeviceDialogStatus( EDeviceDialogScreenSaver ); |
|
1412 |
// TODO this is needed if creating dialog for first time? switchScreensaverToActiveMode(); // this is needed in case the dialog was existing. |
|
1413 |
// Start standy mode timer. The initial state may already be the standby |
|
1414 |
// mode but setting screensaver again to standby doesn't hurt. |
|
1415 |
mScreensaverModeTimer->start(); |
|
1416 |
} |
|
1417 |
else if (!skipScreenSaver)// some err. Usually 3 (component not existing) |
|
1418 |
{ |
|
1419 |
// screensaver has failed. Probably because it's not installed. Then, try the standard lock-icon |
|
1420 |
setDeviceDialogStatus( EDeviceDialogLockIcon ); |
|
1421 |
const QString KSecQueryUiDeviceDialog("com.nokia.secuinotificationdialog/1.0"); |
|
1422 |
err = iDeviceDialog->show(KSecQueryUiDeviceDialog, params); // and continue processing |
|
1423 |
RDEBUG("post show. err", err); |
|
1424 |
} |
|
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1425 |
err = iDeviceDialog->error(); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1426 |
RDEBUG("err", err); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1427 |
// This won't be needed when screensaver is in place, as the dialogs will be different, and therefore both can be present |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1428 |
// Somehow this should be handled by Orbit, but unfortunatelly they don't allow the same dialog twice |
63 | 1429 |
err = RProperty::Set(KPSUidSecurityUIs, KSecurityUIsSecUIOriginatedQuery, ESecurityUIsSecUIOriginatedUninitialized); // this could also be ESecurityUIsSystemLockOriginated |
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1430 |
RDEBUG("err", err); |
63 | 1431 |
// Capture power and application keys while screen saver is open. Also works for LockIcon |
1432 |
mPowerKeyCaptureHandle = groupWin.CaptureKey(EKeyDevice2, 0, 0); |
|
1433 |
mApplicationKeyCaptureHandle = groupWin.CaptureKey(EKeyApplication0, 0, 0); |
|
1434 |
mApplicationLongKeyCaptureHandle = groupWin.CaptureLongKey(EKeyApplication0, EKeyApplication0, 0, 0, 0, ELongCaptureShortEventImmediately | ELongCaptureRepeatEvents); |
|
1435 |
mEKeyYesCaptureHandle = groupWin.CaptureKey(EKeyYes, 0, 0); |
|
1436 |
mEKeyNoCaptureHandle = groupWin.CaptureKey(EKeyNo, 0, 0); |
|
1437 |
RDEBUG("keys captured", err); |
|
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1438 |
} |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1439 |
else |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1440 |
{ |
63 | 1441 |
RDEBUG("unknown target", target); |
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1442 |
return KErrNotSupported; |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1443 |
} |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1444 |
return KErrNone; |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1445 |
} |
63 | 1446 |
// Updates the icon. This is not used anymore |
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1447 |
void Autolock::setLabelIcon(int aReason) |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1448 |
{ |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1449 |
RDEBUG("aReason", aReason); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1450 |
|
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1451 |
if (aReason == ELockNotActive) |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1452 |
{ |
63 | 1453 |
// setLockDialog(aReason, 0); // This is done already at TryChangeStatus |
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1454 |
lower(); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1455 |
hide(); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1456 |
} |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1457 |
else if (aReason == EKeyguardActive) |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1458 |
{ |
63 | 1459 |
// setLockDialog(aReason, 1); // This is done already at TryChangeStatus |
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1460 |
// this shows the Autolock Application. not needed |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1461 |
} |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1462 |
else if (aReason == EDevicelockActive) |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1463 |
{ |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1464 |
} |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1465 |
else |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1466 |
{ |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1467 |
RDEBUG("error: aReason", aReason); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1468 |
} |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1469 |
} |
63 | 1470 |
// Update idicator in HomeScreen. This is a small key icon in the top-left |
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1471 |
int Autolock::updateIndicator(int aReason) |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1472 |
{ |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1473 |
RDEBUG("aReason", aReason); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1474 |
QList<QVariant> list; |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1475 |
list.insert(0, 1); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1476 |
list.insert(1, "dummy"); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1477 |
list.insert(2, 2); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1478 |
|
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1479 |
HbIndicator indicator; |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1480 |
bool success; |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1481 |
if (aReason == ELockNotActive) |
63 | 1482 |
success = indicator.deactivate("com.nokia.hb.indicator.autolock.autolock_8/1.0"); // maybe it's already deactivated. Not a problem |
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1483 |
else if (aReason == EKeyguardActive) |
63 | 1484 |
success = indicator.activate("com.nokia.hb.indicator.autolock.autolock_8/1.0"); |
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1485 |
else if (aReason == EDevicelockActive) |
63 | 1486 |
success = indicator.activate("com.nokia.hb.indicator.autolock.autolock_8/1.0"); // same. We have just 1 indicator |
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1487 |
else |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1488 |
success = 0; |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1489 |
RDEBUG("success", success); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1490 |
return success; |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1491 |
} |
63 | 1492 |
// activity while keyguarded. |
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1493 |
void Autolock::activeKeyguard() |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1494 |
{ |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1495 |
RDEBUG("0", 0); |
63 | 1496 |
// Nothing to do |
1497 |
RDEBUG("99", 0x99); |
|
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1498 |
} |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1499 |
|
63 | 1500 |
// inactivity. Keyguard should be activated |
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1501 |
void Autolock::notActiveKeyguard() |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1502 |
{ |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1503 |
RDEBUG("0", 0); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1504 |
int ret = KErrNone; |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1505 |
DebugStatus( iLockStatus); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1506 |
if (iLockStatus == ELockNotActive) // not possible if it's keyguarded, or locked |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1507 |
{ |
63 | 1508 |
TInt callState = EPSCTsyCallStateNone; |
1509 |
int err = RProperty::Get(KPSUidCtsyCallInformation, KCTsyCallState, callState); |
|
1510 |
RDEBUG("err", err); |
|
1511 |
RDEBUG("callState", callState); |
|
1512 |
// if there's an active call, don't auto-keyguard (manual is still possible) |
|
1513 |
if (callState <= EPSCTsyCallStateNone) |
|
1514 |
{ |
|
1515 |
ret = TryChangeStatus(ELockAppEnableKeyguard); |
|
1516 |
RDEBUG("ret", ret); |
|
1517 |
} |
|
1518 |
else |
|
1519 |
{ |
|
1520 |
RDEBUG("not ELockAppEnableKeyguard because callState", callState); |
|
1521 |
} |
|
1522 |
} |
|
1523 |
else |
|
1524 |
{ |
|
1525 |
// restart screensaver. The scenario is: keyguard->screensaver->CriticalNote->lightsOn . Therefore we need lightsOff |
|
1526 |
// this is done when keyguard can't be enabled because it's already enabled |
|
1527 |
// Note that this happens only once, so it's fine to show the screensaver in full light. |
|
1528 |
if (ret == KErrAlreadyExists) // this could also be iLockStatus == EKeyguardActive |
|
1529 |
switchScreensaverMode( ESnsrViewTypeInitial); |
|
1530 |
} |
|
1531 |
RDEBUG("ret", ret); |
|
1532 |
} |
|
1533 |
// Some activity detected while the deviceLock is enabled |
|
1534 |
void Autolock::activeDevicelock() |
|
1535 |
{ |
|
1536 |
RDEBUG("0", 0); |
|
1537 |
// nothing to do |
|
1538 |
RDEBUG("99", 0x99); |
|
1539 |
} |
|
1540 |
||
1541 |
// inactivity. Devicelock should be activated |
|
1542 |
void Autolock::notActiveDevicelock() |
|
1543 |
{ |
|
1544 |
RDEBUG("0", 0); |
|
1545 |
int ret = KErrNone; |
|
1546 |
Q_UNUSED(ret); |
|
1547 |
DebugStatus( iLockStatus); |
|
1548 |
if (iLockStatus == ELockNotActive || iLockStatus == EKeyguardActive) // not possible if it's locked |
|
1549 |
{ |
|
1550 |
// this is independent of the call status |
|
1551 |
ret = TryChangeStatus(ELockAppEnableDevicelock); |
|
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1552 |
} |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1553 |
RDEBUG("ret", ret); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1554 |
} |
63 | 1555 |
// Update the screensaver. Show, hide, or sleep |
1556 |
void Autolock::switchScreensaverMode(int mode) |
|
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1557 |
{ |
63 | 1558 |
RDEBUG("mode", mode); |
1559 |
if (iDeviceDialog) |
|
1560 |
{ |
|
1561 |
// maybe this can be used to tell the dialog to dismiss itself? |
|
1562 |
RDEBUG("got iDeviceDialog. iDeviceDialogStatus", iDeviceDialogStatus); |
|
1563 |
QVariantMap params; |
|
1564 |
// this is for LockIcon. Doesn't harm screensaver |
|
1565 |
// need to send again so that the existing dialog still knows what is its type |
|
1566 |
if (iLockStatus == EKeyguardActive) |
|
1567 |
params.insert("type", ESecUiTypeKeyguard); |
|
1568 |
else if (iLockStatus >= EDevicelockActive) |
|
1569 |
params.insert("type", ESecUiTypeDeviceLock); |
|
1570 |
||
1571 |
// this is for screensaver. Doesn't harm LockIcon |
|
1572 |
params.insert(KSnsrViewTypeKey, mode); |
|
1573 |
iDeviceDialog->update(params); |
|
1574 |
||
1575 |
if (mScreensaverModeTimer) |
|
1576 |
{ |
|
1577 |
if (mode == ESnsrViewTypeStandby || mode == ESnsrViewTypeDisabled) |
|
1578 |
{ |
|
1579 |
RDEBUG("stop mScreensaverModeTimer", 0); |
|
1580 |
mScreensaverModeTimer->stop(); |
|
1581 |
} |
|
1582 |
else |
|
1583 |
{ |
|
1584 |
RDEBUG("start mScreensaverModeTimer", 0); |
|
1585 |
mScreensaverModeTimer->start(); |
|
1586 |
} |
|
1587 |
} |
|
1588 |
} |
|
1589 |
RDEBUG("99", 0x99); |
|
1590 |
} |
|
1591 |
||
1592 |
void Autolock::switchScreensaverToPowerSaveMode() |
|
1593 |
{ |
|
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1594 |
RDEBUG("0", 0); |
66 | 1595 |
// This works again and doesn't crash IVE3 |
1596 |
switchScreensaverMode( ESnsrViewTypeStandby); |
|
63 | 1597 |
RDEBUG("99", 0x99); |
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1598 |
} |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1599 |
|
63 | 1600 |
void Autolock::handleMessageFromScreensaver(const QVariantMap &data) |
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1601 |
{ |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1602 |
RDEBUG("0", 0); |
63 | 1603 |
RDEBUG("iLockStatus", iLockStatus); |
1604 |
QVariantMap::const_iterator it = data.find(KSnsrCmdUnlock); |
|
1605 |
if (it != data.end() && iLockStatus != ELockNotActive) |
|
1606 |
{ |
|
1607 |
RDEBUG("calling handleLockSwitch", 0); |
|
1608 |
handleLockSwitch(); |
|
1609 |
} |
|
1610 |
||
1611 |
it = data.find(KSnsrCmdSwitchLights); |
|
1612 |
if (it != data.end()) |
|
1613 |
{ |
|
1614 |
int lightStatus = it.value().toInt(); |
|
1615 |
RDEBUG("switching screen lights . lightStatus", lightStatus); |
|
1616 |
int err = RProperty::Set(KPSUidCoreApplicationUIs, KLightsSSForcedLightsOn, lightStatus); |
|
1617 |
RDEBUG("err", err); |
|
1618 |
} |
|
1619 |
||
66 | 1620 |
it = data.find(KSnsrCmdResetActiveModeTimer); |
1621 |
if (it != data.end() && iLockStatus != ELockNotActive) |
|
1622 |
{ |
|
1623 |
RDEBUG("calling switchScreensaverMode ESnsrViewTypeActive", ESnsrViewTypeActive); |
|
1624 |
switchScreensaverMode( ESnsrViewTypeActive ); |
|
1625 |
RDEBUG("done", 1); |
|
1626 |
} |
|
1627 |
||
63 | 1628 |
it = data.find(KSnsrCmdSwitchLowPower); |
1629 |
if (it != data.end()) |
|
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1630 |
{ |
63 | 1631 |
QVariantList lowPowerLimits = it.value().toList(); |
1632 |
if (lowPowerLimits.count() == 2) |
|
1633 |
{ |
|
1634 |
// switch on screen power save mode when start and end lines are given |
|
1635 |
int startRow = lowPowerLimits.at(0).toInt(); |
|
1636 |
int endRow = lowPowerLimits.at(1).toInt(); |
|
1637 |
// TODO: The pixel buffer passed to CPowerSaveDisplayMode is supposed to |
|
1638 |
// contain the pixels shown in the active area of the screen. Currently, we |
|
1639 |
// pass a buffer filled with 0s, and this works fine on the reference |
|
1640 |
// hardware. However, according to display driver people, this doesn't |
|
1641 |
// work if the display component of the device doesn't have internal memory |
|
1642 |
// which may be the case in some of our target devices. |
|
1643 |
||
1644 |
// handled now directly by screensaver |
|
1645 |
/* |
|
1646 |
TUint16 *ptr = const_cast<TUint16 *> (mScreensaverPowerSavePixelBuffer->Ptr()); |
|
1647 |
RDEBUG("switching screen power save on, number of visible rows", endRow-startRow); |
|
1648 |
int err = mScreensaverPowerSave->Set(startRow, endRow, ptr); |
|
1649 |
RDEBUG("err", err); |
|
1650 |
*/ |
|
1651 |
} |
|
1652 |
else |
|
1653 |
{ |
|
1654 |
// any other case is interpreted as an order to switch off the power save and |
|
1655 |
// return to the normal mode |
|
1656 |
RDEBUG("switching screen power save off 0", 0); |
|
1657 |
// handled now directly by screensaver |
|
1658 |
// int err = mScreensaverPowerSave->Exit(); |
|
1659 |
// RDEBUG("err", err); |
|
1660 |
} |
|
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1661 |
} |
63 | 1662 |
RDEBUG("99", 0x99); |
1663 |
} |
|
1664 |
||
1665 |
void Autolock::handleScreensaverClosed() |
|
1666 |
{ |
|
1667 |
RDEBUG("0", 0); |
|
1668 |
int err(0); |
|
66 | 1669 |
err = err; |
63 | 1670 |
// Screensaver (usually) cannot send anymore any commands when |
1671 |
// it's being closed. Thus, we need to ensure here that screen has lights and |
|
1672 |
// full-power mode once screensaver is closed. |
|
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1673 |
|
63 | 1674 |
// handled now directly by screensaver |
1675 |
/* |
|
1676 |
if (mScreensaverPowerSave) |
|
1677 |
{ |
|
1678 |
RDEBUG("switching screen power save off", 0); |
|
1679 |
err = mScreensaverPowerSave->Exit(); |
|
1680 |
RDEBUG("error=", err); |
|
1681 |
} |
|
1682 |
*/ |
|
1683 |
RDEBUG("switching screen lights on", 1); |
|
1684 |
// Not needed because SysAp turns on the lights when keyguard is disabled |
|
1685 |
// err = RProperty::Set(KPSUidCoreApplicationUIs, KLightsSSForcedLightsOn, 30); |
|
1686 |
RDEBUG("err", err); |
|
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1687 |
} |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1688 |
|
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1689 |
// some key is pressed |
63 | 1690 |
// TODO perhaps need a way to stop switch-key while asking unlock-code? |
1691 |
// Not clear what to do here. dismiss query? |
|
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1692 |
bool Autolock::event(QEvent *ev) |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1693 |
{ |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1694 |
if (ev) |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1695 |
{ |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1696 |
int isSwitchKey = 0; |
63 | 1697 |
if (ev->type() == QEvent::KeyPress) |
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1698 |
{ |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1699 |
QKeyEvent *keyEvent = static_cast<QKeyEvent *> (ev); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1700 |
RDEBUG("KeyPress", keyEvent->key()); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1701 |
RDEBUG("KeyPress nativeScanCode", keyEvent->nativeScanCode()); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1702 |
RDEBUG("EStdKeyDeviceF", EStdKeyDeviceF); |
63 | 1703 |
RDEBUG("EKeyDeviceF", EKeyDeviceF); |
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1704 |
RDEBUG("keyEvent->isAutoRepeat()", keyEvent->isAutoRepeat()); |
63 | 1705 |
// note that the key was EKeyApplication0 and EKeyDevice2 |
1706 |
// yes=0xc4 app=0xb4 no=0xa6 |
|
1707 |
if (keyEvent->nativeScanCode() == EStdKeyApplication0 || keyEvent->nativeScanCode() == EStdKeyDevice2 || keyEvent->nativeScanCode() == EStdKeyYes |
|
1708 |
|| keyEvent->nativeScanCode() == EStdKeyNo) |
|
1709 |
{ |
|
1710 |
// switch to active screensaver if application key or power key pressed while screensaver active |
|
1711 |
// This key can be repeated, so that the screensaver remains as long as key is pushed |
|
1712 |
// TODO what happens when holding Power key ? |
|
1713 |
switchScreensaverMode( ESnsrViewTypeActive); |
|
1714 |
TurnLights(ESecurityUIsLightsQueryOnRequest, 0x22 /*aReason*/, 0x24); |
|
1715 |
} |
|
1716 |
else if (!keyEvent->isAutoRepeat()) |
|
1717 |
{ |
|
1718 |
if (keyEvent->key() == EKeyInsert) |
|
1719 |
{ |
|
1720 |
// on WINS, this is handled with the "Ins" key in the numeric keypad |
|
1721 |
RDEBUG("EKeyInsert", EKeyInsert); |
|
1722 |
// only reacts on release, not on press |
|
1723 |
isSwitchKey = 1; |
|
1724 |
} |
|
1725 |
else if (keyEvent->key() == EKeyDeviceF) |
|
1726 |
{ |
|
1727 |
// this never seem to happen. Nevertheless we are not doing anything |
|
1728 |
RDEBUG("EKeyDeviceF", EKeyDeviceF); |
|
1729 |
} |
|
1730 |
else if (keyEvent->nativeScanCode() == EStdKeyDeviceF) |
|
1731 |
{ |
|
1732 |
RDEBUG("got EStdKeyDeviceF", EStdKeyDeviceF); |
|
1733 |
isSwitchKey = 1; |
|
1734 |
} |
|
1735 |
else if (keyEvent->nativeScanCode() == EKeyBell) // this might be sent by others, i.e. PCFW |
|
1736 |
{ |
|
1737 |
RDEBUG("got EKeyBell", EKeyBell); |
|
1738 |
isSwitchKey = 1; |
|
1739 |
} |
|
1740 |
else if (keyEvent->key() == 0x1ffffff) |
|
1741 |
{ |
|
1742 |
RDEBUG("0x1ffffff", 0x1ffffff); // some unknown key is received. Nothing to do |
|
1743 |
} |
|
1744 |
} |
|
1745 |
} |
|
1746 |
else if (ev->type() == QEvent::KeyRelease) |
|
1747 |
{ |
|
1748 |
QKeyEvent *keyEvent = static_cast<QKeyEvent *> (ev); |
|
1749 |
RDEBUG("KeyRelease", keyEvent->key()); |
|
1750 |
RDEBUG("KeyRelease native", keyEvent->nativeScanCode()); |
|
1751 |
if (keyEvent->nativeScanCode() == EStdKeyDeviceF && !keyEvent->isAutoRepeat()) |
|
1752 |
{ |
|
1753 |
RDEBUG("released EStdKeyDeviceF", 1); |
|
1754 |
// isSwitchKey=1; this should happen is pressed was not processed (hint: if it is/was in background) |
|
1755 |
} |
|
1756 |
} |
|
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1757 |
RDEBUG("isSwitchKey", isSwitchKey); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1758 |
if (isSwitchKey) |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1759 |
{ |
63 | 1760 |
handleLockSwitch(); |
1761 |
RDEBUG("0", 0); |
|
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1762 |
} // isSwitchKey |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1763 |
} // ev |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1764 |
// Process if not done before. For example, redraw or quit |
63 | 1765 |
TBool widgetEventSuccesful = QWidget::event(ev); |
1766 |
RDEBUG("99", 0x99); |
|
1767 |
return widgetEventSuccesful; |
|
1768 |
} |
|
1769 |
// The side-switch-key is pressed. Un-keyguard if keyguarded ; AskCode if locked. |
|
1770 |
int Autolock::handleLockSwitch() |
|
1771 |
{ |
|
1772 |
RDEBUG("0", 0); |
|
1773 |
int ret = KErrNone; |
|
1774 |
RDEBUG("iProcessingEvent", iProcessingEvent); |
|
1775 |
RDEBUG("iLockStatus", iLockStatus); |
|
1776 |
// iProcessingEvent is used to avoid concurrent processing, i.e. 2 side-switch presses; because it needs time to create (and dismiss) the dialog |
|
1777 |
// However this disallows keyguard during unlock-quey. |
|
1778 |
if(iProcessingEvent < 1) |
|
1779 |
{ |
|
1780 |
iProcessingEvent = 1; |
|
1781 |
Q_UNUSED(ret); |
|
1782 |
DebugStatus( iLockStatus); |
|
1783 |
if (iLockStatus == ELockNotActive) |
|
1784 |
{ |
|
1785 |
iShowKeyguardNote = 0; // no note on enable keyguard |
|
1786 |
callerHasECapabilityWriteDeviceData = 1; |
|
1787 |
// TODO ELockAppEnableDevicelock |
|
1788 |
CRepository *repository = 0; |
|
1789 |
int deviceLock = 0; |
|
1790 |
QT_TRAP_THROWING(repository = CRepository::NewL(KCRUidSecuritySettings)); |
|
1791 |
repository->Get(KSettingsAutoLockTime, deviceLock); |
|
1792 |
delete repository; |
|
1793 |
if (65535 == deviceLock) { |
|
1794 |
// Setting says "When keys& screen locked". Therefore device is also locked when screen is manually locked. |
|
1795 |
// TODO what about the API for screen lock? |
|
1796 |
ret = TryChangeStatus(ELockAppEnableDevicelock); // this should not ask confirmation |
|
1797 |
} else { |
|
1798 |
ret = TryChangeStatus(ELockAppEnableKeyguard); // this should not ask confirmation |
|
1799 |
} |
|
1800 |
||
1801 |
} |
|
1802 |
else if (iLockStatus == EKeyguardActive) |
|
1803 |
{ |
|
1804 |
iShowKeyguardNote = 0; // no note on disable keyguard |
|
1805 |
callerHasECapabilityWriteDeviceData = 1; |
|
1806 |
ret = TryChangeStatus(ELockAppDisableKeyguard); |
|
1807 |
} |
|
1808 |
else if (iLockStatus == EDevicelockActive) |
|
1809 |
{ |
|
1810 |
callerHasECapabilityWriteDeviceData = 1; |
|
1811 |
ret = TryChangeStatus(ELockAppDisableDevicelock); |
|
1812 |
} |
|
1813 |
else |
|
1814 |
{ |
|
1815 |
RDEBUG("unknown iLockStatus", iLockStatus); |
|
1816 |
} |
|
1817 |
iProcessingEvent = 0; |
|
1818 |
} |
|
1819 |
else |
|
1820 |
{ |
|
1821 |
// user presses side-switch while another is in process, most probably a unlock-query. Thus, re-switch on the lights |
|
1822 |
iProcessingEvent++; // just to know how many processes we missed |
|
1823 |
if(iProcessingEvent>=10) |
|
1824 |
iProcessingEvent=0; // if user really insists, then try again |
|
1825 |
if (iLockStatus == EDevicelockActive) |
|
1826 |
{ |
|
1827 |
TurnLights(ESecurityUIsLightsQueryOnRequest, ELockAppEnableDevicelock, 0x26); |
|
1828 |
} |
|
1829 |
} |
|
1830 |
RDEBUG("ret", ret); |
|
1831 |
return ret; |
|
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1832 |
} |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1833 |
|
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1834 |
bool Autolock::eventFilter(QObject *o, QEvent *ev) |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1835 |
{ |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1836 |
// this never happens |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1837 |
RDEBUG("0", 0); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1838 |
return QWidget::eventFilter(o, ev); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1839 |
} |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1840 |
// some setting changed |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1841 |
void Autolock::subscriberKSettingsAutolockStatusChanged() |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1842 |
{ |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1843 |
RDEBUG("0", 0); |
63 | 1844 |
QVariant v = subscriberKSettingsAutolockStatus->value("/KCRUidSecuritySettings/KSettingsAutolockStatus"); |
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1845 |
adjustInactivityTimers( KSettingsAutolockStatus); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1846 |
} |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1847 |
void Autolock::subscriberKSettingsAutoLockTimeChanged() |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1848 |
{ |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1849 |
RDEBUG("0", 0); |
63 | 1850 |
QVariant v = subscriberKSettingsAutoLockTime->value("/KCRUidSecuritySettings/KSettingsAutoLockTime"); |
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1851 |
adjustInactivityTimers( KSettingsAutoLockTime); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1852 |
} |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1853 |
void Autolock::subscriberKSettingsAutomaticKeyguardTimeChanged() |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1854 |
{ |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1855 |
RDEBUG("0", 0); |
63 | 1856 |
QVariant v = subscriberKSettingsAutomaticKeyguardTime->value("/KCRUidSecuritySettings/KSettingsAutomaticKeyguardTime"); |
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1857 |
adjustInactivityTimers( KSettingsAutoLockTime); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1858 |
} |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1859 |
void Autolock::subscriberKDisplayLightsTimeoutChanged() |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1860 |
{ |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1861 |
RDEBUG("0", 0); |
63 | 1862 |
QVariant v = subscriberKDisplayLightsTimeout->value("/KCRUidLightSettings/KDisplayLightsTimeout"); |
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1863 |
// nothing to do |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1864 |
} |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1865 |
void Autolock::subscriberKProEngActiveProfileChanged() |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1866 |
{ |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1867 |
RDEBUG("0", 0); |
63 | 1868 |
QVariant v = subscriberKProEngActiveProfile->value("/KCRUidProfileEngine/KProEngActiveProfile"); |
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1869 |
// nothing to do |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1870 |
} |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1871 |
// some environment changed |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1872 |
void Autolock::subscriberKAknKeyguardStatusChanged() |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1873 |
{ |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1874 |
RDEBUG("Error only Autolock should be able to change it", 0); |
63 | 1875 |
} |
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1876 |
void Autolock::subscriberKCoreAppUIsAutolockStatusChanged() |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1877 |
{ |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1878 |
RDEBUG("Error only Autolock should be able to change it", 0); |
63 | 1879 |
} |
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1880 |
void Autolock::subscriberKHWRMGripStatusChanged() |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1881 |
{ |
63 | 1882 |
TInt ret = KErrNone; |
1883 |
Q_UNUSED(ret); |
|
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1884 |
RDEBUG("0", 0); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1885 |
TInt aGripStatus; |
63 | 1886 |
TInt err = RProperty::Get(KPSUidHWRM, KHWRMGripStatus, aGripStatus); |
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1887 |
RDEBUG("err", err); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1888 |
RDEBUG("value", aGripStatus); |
63 | 1889 |
if (aGripStatus == EPSHWRMGripOpen) |
1890 |
{ |
|
1891 |
if (iLockStatus == EKeyguardActive) |
|
1892 |
{ |
|
1893 |
iShowKeyguardNote = 0; // no note on disable keyguard |
|
1894 |
callerHasECapabilityWriteDeviceData = 1; |
|
1895 |
ret = TryChangeStatus(ELockAppDisableKeyguard); |
|
1896 |
} |
|
1897 |
else if (iLockStatus == EDevicelockActive) |
|
1898 |
{ |
|
1899 |
callerHasECapabilityWriteDeviceData = 1; |
|
1900 |
ret = TryChangeStatus(ELockAppDisableDevicelock); |
|
1901 |
} |
|
1902 |
} |
|
1903 |
else if (aGripStatus == EPSHWRMGripClosed) |
|
1904 |
{ |
|
1905 |
if (iLockStatus == ELockNotActive) |
|
1906 |
{ |
|
1907 |
iShowKeyguardNote = 0; // no note on enable keyguard |
|
1908 |
callerHasECapabilityWriteDeviceData = 1; |
|
1909 |
ret = TryChangeStatus(ELockAppEnableKeyguard); |
|
1910 |
} |
|
1911 |
} |
|
1912 |
RDEBUG("ret", ret); |
|
1913 |
} |
|
1914 |
/**************/ |
|
1915 |
void Autolock::subscriberKCTsyCallStateChanged() |
|
1916 |
{ |
|
1917 |
RDEBUG("0", 0); |
|
1918 |
TInt aCallStatus; |
|
1919 |
TInt err = RProperty::Get(KPSUidCtsyCallInformation, KCTsyCallState, aCallStatus); |
|
1920 |
RDEBUG("err", err); |
|
1921 |
RDEBUG("aCallStatus", aCallStatus); |
|
1922 |
RWindowGroup& groupWin = CEikonEnv::Static()->RootWin(); |
|
1923 |
RDEBUG("iLockStatus", iLockStatus); |
|
1924 |
if (aCallStatus == EPSCTsyCallStateUninitialized || aCallStatus == EPSCTsyCallStateNone) |
|
1925 |
{ |
|
1926 |
// Telephone might want to re-enable only-keyguard after the call ends. Allow it. This means re-showing the screensaver, not more. |
|
1927 |
RDEBUG("call is inactive", aCallStatus); |
|
1928 |
if(iLockStatus == EDevicelockActive) |
|
1929 |
setLockDialog(ELockAppEnableKeyguard, 1); |
|
1930 |
||
1931 |
if (iLockStatus == EKeyguardActive || iLockStatus == EDevicelockActive) |
|
1932 |
{ |
|
1933 |
if (!mEKeyYesCaptureHandle) |
|
1934 |
mEKeyYesCaptureHandle = groupWin.CaptureKey(EKeyYes, 0, 0); |
|
1935 |
if (!mEKeyNoCaptureHandle) |
|
1936 |
mEKeyNoCaptureHandle = groupWin.CaptureKey(EKeyNo, 0, 0); |
|
1937 |
} |
|
1938 |
} |
|
1939 |
else |
|
1940 |
{ |
|
1941 |
RDEBUG("call is active", aCallStatus); |
|
1942 |
||
1943 |
RDEBUG("allowing telephone to disable keyguard . Call setLockDialog 0", 0); |
|
1944 |
if(iLockStatus == EDevicelockActive) |
|
1945 |
setLockDialog(ELockAppDisableKeyguard, 0); |
|
1946 |
||
1947 |
// Telephone should be on top, but nevertheless we give End/Send to them |
|
1948 |
// This should be done only if locked, but it doesn't harm |
|
1949 |
if (mEKeyYesCaptureHandle) |
|
1950 |
{ |
|
1951 |
RDEBUG("mEKeyYesCaptureHandle", mEKeyYesCaptureHandle); |
|
1952 |
groupWin.CancelCaptureKey(mEKeyYesCaptureHandle); |
|
1953 |
mEKeyYesCaptureHandle = NULL; |
|
1954 |
} |
|
1955 |
if (mEKeyNoCaptureHandle) |
|
1956 |
{ |
|
1957 |
RDEBUG("mEKeyNoCaptureHandle", mEKeyNoCaptureHandle); |
|
1958 |
groupWin.CancelCaptureKey(mEKeyNoCaptureHandle); |
|
1959 |
mEKeyNoCaptureHandle = NULL; |
|
1960 |
} |
|
1961 |
// it seems that Telephone doesn't turn-on the lights when an incoming call on deviceLock. It's done here. |
|
1962 |
TurnLights(ESecurityUIsLightsQueryOnRequest, ELockAppDisableKeyguard, 0x28); |
|
1963 |
} |
|
1964 |
RDEBUG("99", 0x99); |
|
1965 |
} |
|
1966 |
// SecUiNotificationDialog::subscriberKSecurityUIsDismissDialogChanged() |
|
1967 |
// A way for Autolock to dismiss any possible PIN dialog |
|
1968 |
// ---------------------------------------------------------------------------- |
|
1969 |
// |
|
1970 |
void Autolock::subscriberKSecurityUIsDismissDialogChanged() |
|
1971 |
{ |
|
1972 |
RDEBUG("0", 0); |
|
1973 |
TInt aDismissDialog = ESecurityUIsDismissDialogUninitialized; |
|
1974 |
TInt err = RProperty::Get(KPSUidSecurityUIs, KSecurityUIsDismissDialog, aDismissDialog); |
|
1975 |
RDEBUG("err", err); |
|
1976 |
RDEBUG("aDismissDialog", aDismissDialog); |
|
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1977 |
} |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1978 |
|
63 | 1979 |
void Autolock::subscriberKSecurityUIsTestCodeChanged() |
1980 |
{ |
|
1981 |
RDEBUG("0", 0); |
|
1982 |
TInt aTestCode = -1; |
|
1983 |
TInt err = RProperty::Get(KPSUidSecurityUIs, KSecurityUIsTestCode, aTestCode); |
|
1984 |
RDEBUG("err", err); |
|
1985 |
RDEBUG("aTestCode", aTestCode); |
|
1986 |
} |
|
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1987 |
// ----------AutolockService--------------- |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1988 |
|
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1989 |
AutolockService::AutolockService(Autolock* parent) : |
63 | 1990 |
XQServiceProvider(QLatin1String("com.nokia.services.Autolock.Autolock"), parent), mAutolock(parent), mAsyncReqId(-1), mAsyncAnswer(false) |
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1991 |
{ |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1992 |
RDEBUG("0", 0); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1993 |
publishAll(); |
63 | 1994 |
connect(this, SIGNAL(returnValueDelivered()), parent, SLOT(handleAnswerDelivered())); |
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1995 |
} |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1996 |
|
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1997 |
AutolockService::~AutolockService() |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1998 |
{ |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1999 |
RDEBUG("0", 0); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
2000 |
} |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
2001 |
|
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
2002 |
void AutolockService::complete(QString number) |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
2003 |
{ |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
2004 |
RDEBUG("0", 0); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
2005 |
if (mAsyncReqId == -1) |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
2006 |
return; |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
2007 |
completeRequest(mAsyncReqId, number.toInt()); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
2008 |
} |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
2009 |
|
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
2010 |
// got API request from lockaccessextension |
63 | 2011 |
int AutolockService::service(const QString& number, const QString& aParam1, const QString& aParam2) |
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
2012 |
{ |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
2013 |
RDEBUG("0", 0); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
2014 |
TInt err = KErrNone; |
66 | 2015 |
err = err; |
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
2016 |
RDEBUG("number", number.toInt()); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
2017 |
RDEBUG("aParam1", aParam1.toInt()); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
2018 |
RDEBUG("aParam2", aParam2.toInt()); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
2019 |
mAsyncAnswer = false; |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
2020 |
XQRequestInfo info = requestInfo(); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
2021 |
QSet<int> caps = info.clientCapabilities(); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
2022 |
|
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
2023 |
mAutolock->callerHasECapabilityWriteDeviceData = 0; |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
2024 |
if (caps.contains(ECapabilityWriteDeviceData)) |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
2025 |
{ |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
2026 |
RDEBUG("callerHasECapabilityWriteDeviceData", |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
2027 |
ECapabilityWriteDeviceData); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
2028 |
mAutolock->callerHasECapabilityWriteDeviceData = 1; |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
2029 |
} |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
2030 |
|
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
2031 |
QString label = "Autolock::service:\n"; |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
2032 |
label += QString("number=%1\n").arg(number); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
2033 |
|
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
2034 |
mNumber = number; |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
2035 |
mAutolock->setLabelNumber(label, number); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
2036 |
int ret = 0; |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
2037 |
ret = number.toInt(); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
2038 |
|
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
2039 |
mAutolock->mParam1 = aParam1.toInt(); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
2040 |
mAutolock->iShowKeyguardNote = aParam1.toInt(); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
2041 |
mAutolock->mParam2 = aParam2.toInt(); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
2042 |
TTime myTime; |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
2043 |
myTime.HomeTime(); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
2044 |
TInt myTimeHigh = 0; |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
2045 |
TInt myTimeLow = 0; |
63 | 2046 |
err = RProperty::Get(KPSUidSecurityUIs, KSecurityUIsLockInitiatorTimeHigh, myTimeHigh); |
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
2047 |
RDEBUG("err", err); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
2048 |
RDEBUG("myTimeHigh", myTimeHigh); |
63 | 2049 |
err = RProperty::Get(KPSUidSecurityUIs, KSecurityUIsLockInitiatorTimeLow, myTimeLow); |
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
2050 |
RDEBUG("err", err); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
2051 |
RDEBUG("myTimeLow", myTimeLow); |
63 | 2052 |
|
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
2053 |
myTimeHigh = I64HIGH( myTime.Int64() ); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
2054 |
myTimeLow = I64LOW( myTime.Int64() ); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
2055 |
RDEBUG("myTimeHigh", myTimeHigh); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
2056 |
RDEBUG("myTimeLow", myTimeLow); |
63 | 2057 |
err = RProperty::Set(KPSUidSecurityUIs, KSecurityUIsLockInitiatorTimeHigh, myTimeHigh); |
2058 |
err = RProperty::Set(KPSUidSecurityUIs, KSecurityUIsLockInitiatorTimeLow, myTimeLow); |
|
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
2059 |
|
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
2060 |
ret = mAutolock->TryChangeStatus(ret); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
2061 |
RDEBUG("ret", ret); |
63 | 2062 |
|
2063 |
TInt myInitiatorUID = 0; |
|
2064 |
err = RProperty::Get(KPSUidSecurityUIs, KSecurityUIsLockInitiatorUID, myInitiatorUID); |
|
2065 |
RDEBUG("ret", ret); |
|
2066 |
RDEBUG("myInitiatorUID", myInitiatorUID); |
|
2067 |
myInitiatorUID = info.clientSecureId(); |
|
2068 |
err = RProperty::Set(KPSUidSecurityUIs, KSecurityUIsLockInitiatorUID, myInitiatorUID); |
|
2069 |
RDEBUG("ret", ret); |
|
2070 |
RDEBUG("myInitiatorUID", myInitiatorUID); |
|
2071 |
||
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
2072 |
return ret; |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
2073 |
} |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
2074 |
|
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
2075 |
void AutolockService::handleClientDisconnect() |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
2076 |
{ |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
2077 |
RDEBUG("0", 0); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
2078 |
// Just quit service application if client ends |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
2079 |
mAsyncAnswer = false; |
63 | 2080 |
RDEBUG("99", 0x99); |
26
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
2081 |
// mAutolock->quit(); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
2082 |
} |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
2083 |
|
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
2084 |
/****************/ |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
2085 |
CWait* CWait::NewL() |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
2086 |
{ |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
2087 |
CWait* self = new (ELeave) CWait(); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
2088 |
CleanupStack::PushL(self); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
2089 |
self->ConstructL(); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
2090 |
CleanupStack::Pop(); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
2091 |
return self; |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
2092 |
} |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
2093 |
void CWait::ConstructL() |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
2094 |
{ |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
2095 |
CActiveScheduler::Add(this); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
2096 |
} |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
2097 |
CWait::CWait() : |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
2098 |
CActive(0) |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
2099 |
{ |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
2100 |
} |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
2101 |
CWait::~CWait() |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
2102 |
{ |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
2103 |
Cancel(); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
2104 |
} |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
2105 |
TInt CWait::WaitForRequestL() |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
2106 |
{ |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
2107 |
SetActive(); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
2108 |
iWait.Start(); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
2109 |
return iStatus.Int(); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
2110 |
} |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
2111 |
void CWait::RunL() |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
2112 |
{ |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
2113 |
if (iWait.IsStarted()) |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
2114 |
iWait.AsyncStop(); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
2115 |
} |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
2116 |
void CWait::DoCancel() |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
2117 |
{ |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
2118 |
if (iWait.IsStarted()) |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
2119 |
iWait.AsyncStop(); |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
2120 |
} |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
2121 |
void CWait::SetRequestType(TInt aRequestType) |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
2122 |
{ |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
2123 |
iRequestType = aRequestType; |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
2124 |
} |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
2125 |
TInt CWait::GetRequestType() |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
2126 |
{ |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
2127 |
return iRequestType; |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
2128 |
} |
aad866c37519
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
2129 |