--- a/securitydialogs/SecUi/Src/SecQueryUi.cpp Thu Jun 17 12:11:51 2010 +0100
+++ b/securitydialogs/SecUi/Src/SecQueryUi.cpp Thu Jul 22 16:43:28 2010 +0100
@@ -22,19 +22,9 @@
#include <apgicnfl.h> // CApaMaskedBitmap
#include <securityuisprivatepskeys.h>
-#include <CPhCltEmergencyCall.h>
+#include <cphcltemergencycall.h>
#include <SCPClient.h>
-#include "SecUiWait.h"
-
-// Variant map keys for notification device dialog
-_LIT( KNotifDeviceDialogKeyTimeOut, "timeout" );
-_LIT( KNotifDeviceDialogKeyIconName, "iconName" );
-_LIT( KNotifDeviceDialogKeyText, "text" );
-_LIT( KNotifDeviceDialogKeyTitle, "title" );
-_LIT( KNotifDeviceDialogKeyTouchActivation, "touchActivation" );
-_LIT( KNotifDeviceDialogKeyActivated, "result" );
-_LIT( KNotifDeviceDialogKeyActivatedValue, "activated" );
-_LIT( KNotifDeviceDialogKeyTitleTextWrapping, "titleTextWrapping" );
+#include "SecUi.h"
const TUid KSWInstHelpUid =
{
@@ -109,22 +99,30 @@
TInt err = RProperty::Get(KPSUidSecurityUIs,
KSecurityUIsSecUIOriginatedQuery, secUiOriginatedQuery);
RDEBUG("secUiOriginatedQuery", secUiOriginatedQuery);
- if (secUiOriginatedQuery != ESecurityUIsSecUIOriginatedUninitialized)
- {
- // The query is already shown. This is valid for ESecurityUIsSecUIOriginated, and maybe for ESecurityUIsETelAPIOriginated
- // For ESecurityUIsSystemLockOriginated it means that the "lock" dialog is already present.
- // What to do? Can't dismiss the dialog because it's not owned. Can't device-unlock without asking code. Only can disable keyguard
- RDEBUG("!!!! warning: secUiOriginatedQuery", secUiOriginatedQuery);
- }
- else
+ if (secUiOriginatedQuery == ESecurityUIsSecUIOriginatedUninitialized ) // && )
{
// set only if not set
err = RProperty::Set(KPSUidSecurityUIs,
KSecurityUIsSecUIOriginatedQuery,
ESecurityUIsETelAPIOriginated);
RDEBUG("setting secUiOriginatedQuery", ESecurityUIsETelAPIOriginated);
+ }
+ else if ( secUiOriginatedQuery != ESecurityUIsSecUIOriginated )
+ {
+ RDEBUG("!!!! warning: secUiOriginatedQuery", secUiOriginatedQuery);
+ // The query is already shown. This is valid for ESecurityUIsSecUIOriginated, and maybe for ESecurityUIsETelAPIOriginated
+ // For ESecurityUIsSystemLockOriginated it means that the "lock" dialog is already present.
+ // Try to dismiss the dialog. Do same as CSecurityHandler::CancelSecCodeQuery
+ TInt aDismissDialog = -1;
+ err = RProperty::Get(KPSUidSecurityUIs, KSecurityUIsDismissDialog, aDismissDialog);
+ // it might happen that the dialog is already dismissing. Well, it won't harm to try again.
+ RDEBUG("aDismissDialog", aDismissDialog);
+ RDEBUG("err", err);
+ RDEBUG("set KSecurityUIsDismissDialog", ESecurityUIsDismissDialogOn);
+ err = RProperty::Set(KPSUidSecurityUIs, KSecurityUIsDismissDialog, ESecurityUIsDismissDialogOn);
+ RDEBUG("err", err);
}
-
+ RDEBUG("calling ClearParamsAndSetNoteTypeL aMode", aMode);
ClearParamsAndSetNoteTypeL(aMode);
AddParamL(_L("KSecQueryUiApplicationName"), aCaption);
@@ -134,9 +132,22 @@
AddParamL(_L("MinLength"), aMinLength);
AddParamL(_L("MaxLength"), aMaxLength);
- _LIT(KCodeTop, "codeTop");
- _LIT(KCodeTopValue, "codeTop");
- AddParamL(KCodeTop, KCodeTopValue);
+ switch (aMode & ESecUiBasicTypeMask) {
+ case ESecUiBasicTypeCheck:
+ _LIT(KChecboxDialog, "ChecboxDialog");
+ _LIT(KChecbox, "ChecboxDialog");
+ AddParamL(KChecboxDialog,KChecbox);
+ break;
+ case ESecUiBasicTypeMultiCheck:
+ _LIT(KMultiChecboxDialog, "MultiChecboxDialog");
+ _LIT(KMultiChecbox, "MultiChecboxDialog");
+ AddParamL(KMultiChecboxDialog,KMultiChecbox);
+ break;
+ default:
+ _LIT(KCodeTop, "codeTop");
+ _LIT(KCodeTopValue, "codeTop");
+ AddParamL(KCodeTop, KCodeTopValue);
+ }
if (aCaption.Find(_L("|")) > 0)
{
@@ -154,10 +165,12 @@
RDEBUG("0", 0);
DisplayDeviceDialogL();
+ TSecUi::UnInitializeLib(); // the counterpart is at DisplayDeviceDialogL
TInt error = WaitUntilDeviceDialogClosed();
RDEBUG("error", error);
User::LeaveIfError(error);
-
+ RDEBUG("iPassword", 0);
+ RDebug::Print(iPassword);
aDataText.Copy(iPassword);
err = RProperty::Set(KPSUidSecurityUIs, KSecurityUIsSecUIOriginatedQuery,
@@ -349,8 +362,6 @@
{
_LIT(KInvalidNewLockCode, "invalidNewLockCode");
_LIT(KInvalidNewLockCode0, "invalidNewLockCode#0");
- _LIT(KInvalidNewLockCode1, "invalidNewLockCode#1");
- _LIT(KInvalidNewLockCode2, "invalidNewLockCode#2");
AddParamL(KInvalidNewLockCode, KInvalidNewLockCode0); // for starter
RSCPClient scpClient;
TSCPSecCode newCode;
@@ -358,7 +369,6 @@
RDEBUG("scpClient.Connect", 0);
if (scpClient.Connect() == KErrNone)
{
- /*
RArray<TDevicelockPolicies> aFailedPolicies;
TDevicelockPolicies failedPolicy;
TInt retLockcode = KErrNone;
@@ -374,7 +384,6 @@
KInvalidNewLockCodeX.AppendNum(failedPolicy);
AddParamL( KInvalidNewLockCode, KInvalidNewLockCodeX );
}
- */
// TODO this should be able to modify MinLenght, MaxLenght
scpClient.Close();
}
@@ -534,14 +543,6 @@
iVariantMap->Add(aKey, variant);
}
-TInt strlen(const char* aStr)
- {
- TInt len = 0;
- while (*aStr++ != 0)
- ++len;
- return len;
- }
-
// ---------------------------------------------------------------------------
// CSecQueryUi::DisplayDeviceDialogL()
// ---------------------------------------------------------------------------
@@ -549,19 +550,26 @@
void CSecQueryUi::DisplayDeviceDialogL()
{
RDEBUG("0", 0);
+ TInt err = KErrNone;
+ RDEBUG("iIsDisplayingDialog", iIsDisplayingDialog);
if (iDeviceDialog && iIsDisplayingDialog)
{
+ RDEBUG("iDeviceDialog", 1);
iDeviceDialog->Update(*iVariantMap);
}
else
{
+ RDEBUG("!iDeviceDialog", 0);
if (!iDeviceDialog)
{
+ RDEBUG("new iDeviceDialog", 0);
iDeviceDialog = CHbDeviceDialogSymbian::NewL();
}
_LIT(KSecQueryUiDeviceDialog, "com.nokia.secuinotificationdialog/1.0");
RDEBUG("Show", 0);
- iDeviceDialog->Show(KSecQueryUiDeviceDialog, *iVariantMap, this);
+ err = iDeviceDialog->Show(KSecQueryUiDeviceDialog, *iVariantMap, this);
+ RDEBUG("err", err);
+ TSecUi::InitializeLibL();
RDEBUG("iIsDisplayingDialog", iIsDisplayingDialog);
iIsDisplayingDialog = ETrue;
RDEBUG("iIsDisplayingDialog", iIsDisplayingDialog);
@@ -580,6 +588,7 @@
iReturnValue = KErrUnknown;
if (!IsActive() && iWait && !iWait->IsStarted())
{
+ RDEBUG("KRequestPending", KRequestPending);
iStatus = KRequestPending;
SetActive();
RDEBUG("Start", 0);