--- a/securitydialogs/SecUi/Src/SecQueryUi.cpp Fri Jun 11 14:28:40 2010 +0300
+++ b/securitydialogs/SecUi/Src/SecQueryUi.cpp Thu Jun 24 12:46:20 2010 +0300
@@ -99,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);
@@ -124,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)
{
@@ -144,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,
@@ -520,14 +543,6 @@
iVariantMap->Add(aKey, variant);
}
-TInt strlen(const char* aStr)
- {
- TInt len = 0;
- while (*aStr++ != 0)
- ++len;
- return len;
- }
-
// ---------------------------------------------------------------------------
// CSecQueryUi::DisplayDeviceDialogL()
// ---------------------------------------------------------------------------
@@ -535,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);
@@ -566,6 +588,7 @@
iReturnValue = KErrUnknown;
if (!IsActive() && iWait && !iWait->IsStarted())
{
+ RDEBUG("KRequestPending", KRequestPending);
iStatus = KRequestPending;
SetActive();
RDEBUG("Start", 0);