97 RDEBUG("aMode", aMode); |
97 RDEBUG("aMode", aMode); |
98 TInt secUiOriginatedQuery(ESecurityUIsSecUIOriginatedUninitialized); |
98 TInt secUiOriginatedQuery(ESecurityUIsSecUIOriginatedUninitialized); |
99 TInt err = RProperty::Get(KPSUidSecurityUIs, |
99 TInt err = RProperty::Get(KPSUidSecurityUIs, |
100 KSecurityUIsSecUIOriginatedQuery, secUiOriginatedQuery); |
100 KSecurityUIsSecUIOriginatedQuery, secUiOriginatedQuery); |
101 RDEBUG("secUiOriginatedQuery", secUiOriginatedQuery); |
101 RDEBUG("secUiOriginatedQuery", secUiOriginatedQuery); |
102 if (secUiOriginatedQuery != ESecurityUIsSecUIOriginatedUninitialized) |
102 if (secUiOriginatedQuery == ESecurityUIsSecUIOriginatedUninitialized ) // && ) |
103 { |
|
104 // The query is already shown. This is valid for ESecurityUIsSecUIOriginated, and maybe for ESecurityUIsETelAPIOriginated |
|
105 // For ESecurityUIsSystemLockOriginated it means that the "lock" dialog is already present. |
|
106 // What to do? Can't dismiss the dialog because it's not owned. Can't device-unlock without asking code. Only can disable keyguard |
|
107 RDEBUG("!!!! warning: secUiOriginatedQuery", secUiOriginatedQuery); |
|
108 } |
|
109 else |
|
110 { |
103 { |
111 // set only if not set |
104 // set only if not set |
112 err = RProperty::Set(KPSUidSecurityUIs, |
105 err = RProperty::Set(KPSUidSecurityUIs, |
113 KSecurityUIsSecUIOriginatedQuery, |
106 KSecurityUIsSecUIOriginatedQuery, |
114 ESecurityUIsETelAPIOriginated); |
107 ESecurityUIsETelAPIOriginated); |
115 RDEBUG("setting secUiOriginatedQuery", ESecurityUIsETelAPIOriginated); |
108 RDEBUG("setting secUiOriginatedQuery", ESecurityUIsETelAPIOriginated); |
116 } |
109 } |
117 |
110 else if ( secUiOriginatedQuery != ESecurityUIsSecUIOriginated ) |
|
111 { |
|
112 RDEBUG("!!!! warning: secUiOriginatedQuery", secUiOriginatedQuery); |
|
113 // The query is already shown. This is valid for ESecurityUIsSecUIOriginated, and maybe for ESecurityUIsETelAPIOriginated |
|
114 // For ESecurityUIsSystemLockOriginated it means that the "lock" dialog is already present. |
|
115 // Try to dismiss the dialog. Do same as CSecurityHandler::CancelSecCodeQuery |
|
116 TInt aDismissDialog = -1; |
|
117 err = RProperty::Get(KPSUidSecurityUIs, KSecurityUIsDismissDialog, aDismissDialog); |
|
118 // it might happen that the dialog is already dismissing. Well, it won't harm to try again. |
|
119 RDEBUG("aDismissDialog", aDismissDialog); |
|
120 RDEBUG("err", err); |
|
121 RDEBUG("set KSecurityUIsDismissDialog", ESecurityUIsDismissDialogOn); |
|
122 err = RProperty::Set(KPSUidSecurityUIs, KSecurityUIsDismissDialog, ESecurityUIsDismissDialogOn); |
|
123 RDEBUG("err", err); |
|
124 } |
|
125 RDEBUG("calling ClearParamsAndSetNoteTypeL aMode", aMode); |
118 ClearParamsAndSetNoteTypeL(aMode); |
126 ClearParamsAndSetNoteTypeL(aMode); |
119 AddParamL(_L("KSecQueryUiApplicationName"), aCaption); |
127 AddParamL(_L("KSecQueryUiApplicationName"), aCaption); |
120 |
128 |
121 _LIT(KTitle, "title"); |
129 _LIT(KTitle, "title"); |
122 // _LIT(KTitleValue1, "Enter PIN"); |
130 // _LIT(KTitleValue1, "Enter PIN"); |
123 AddParamL(KTitle, aCaption); |
131 AddParamL(KTitle, aCaption); |
124 AddParamL(_L("MinLength"), aMinLength); |
132 AddParamL(_L("MinLength"), aMinLength); |
125 AddParamL(_L("MaxLength"), aMaxLength); |
133 AddParamL(_L("MaxLength"), aMaxLength); |
126 |
134 |
127 _LIT(KCodeTop, "codeTop"); |
135 switch (aMode & ESecUiBasicTypeMask) { |
128 _LIT(KCodeTopValue, "codeTop"); |
136 case ESecUiBasicTypeCheck: |
129 AddParamL(KCodeTop, KCodeTopValue); |
137 _LIT(KChecboxDialog, "ChecboxDialog"); |
|
138 _LIT(KChecbox, "ChecboxDialog"); |
|
139 AddParamL(KChecboxDialog,KChecbox); |
|
140 break; |
|
141 case ESecUiBasicTypeMultiCheck: |
|
142 _LIT(KMultiChecboxDialog, "MultiChecboxDialog"); |
|
143 _LIT(KMultiChecbox, "MultiChecboxDialog"); |
|
144 AddParamL(KMultiChecboxDialog,KMultiChecbox); |
|
145 break; |
|
146 default: |
|
147 _LIT(KCodeTop, "codeTop"); |
|
148 _LIT(KCodeTopValue, "codeTop"); |
|
149 AddParamL(KCodeTop, KCodeTopValue); |
|
150 } |
130 |
151 |
131 if (aCaption.Find(_L("|")) > 0) |
152 if (aCaption.Find(_L("|")) > 0) |
132 { |
153 { |
133 RDEBUG("codeBottom aMode", aMode); |
154 RDEBUG("codeBottom aMode", aMode); |
134 _LIT(KCodeBottom, "codeBottom"); |
155 _LIT(KCodeBottom, "codeBottom"); |
142 AddParamL(KDefaultCode, aDataText); |
163 AddParamL(KDefaultCode, aDataText); |
143 } |
164 } |
144 |
165 |
145 RDEBUG("0", 0); |
166 RDEBUG("0", 0); |
146 DisplayDeviceDialogL(); |
167 DisplayDeviceDialogL(); |
|
168 TSecUi::UnInitializeLib(); // the counterpart is at DisplayDeviceDialogL |
147 TInt error = WaitUntilDeviceDialogClosed(); |
169 TInt error = WaitUntilDeviceDialogClosed(); |
148 RDEBUG("error", error); |
170 RDEBUG("error", error); |
149 User::LeaveIfError(error); |
171 User::LeaveIfError(error); |
150 |
172 RDEBUG("iPassword", 0); |
|
173 RDebug::Print(iPassword); |
151 aDataText.Copy(iPassword); |
174 aDataText.Copy(iPassword); |
152 |
175 |
153 err = RProperty::Set(KPSUidSecurityUIs, KSecurityUIsSecUIOriginatedQuery, |
176 err = RProperty::Set(KPSUidSecurityUIs, KSecurityUIsSecUIOriginatedQuery, |
154 ESecurityUIsSecUIOriginatedUninitialized); |
177 ESecurityUIsSecUIOriginatedUninitialized); |
155 RDEBUG("clearing secUiOriginatedQuery", |
178 RDEBUG("clearing secUiOriginatedQuery", |
518 CHbSymbianVariant* variant = NULL; |
541 CHbSymbianVariant* variant = NULL; |
519 variant = CHbSymbianVariant::NewL(&aValue, CHbSymbianVariant::EDes); |
542 variant = CHbSymbianVariant::NewL(&aValue, CHbSymbianVariant::EDes); |
520 iVariantMap->Add(aKey, variant); |
543 iVariantMap->Add(aKey, variant); |
521 } |
544 } |
522 |
545 |
523 TInt strlen(const char* aStr) |
|
524 { |
|
525 TInt len = 0; |
|
526 while (*aStr++ != 0) |
|
527 ++len; |
|
528 return len; |
|
529 } |
|
530 |
|
531 // --------------------------------------------------------------------------- |
546 // --------------------------------------------------------------------------- |
532 // CSecQueryUi::DisplayDeviceDialogL() |
547 // CSecQueryUi::DisplayDeviceDialogL() |
533 // --------------------------------------------------------------------------- |
548 // --------------------------------------------------------------------------- |
534 // |
549 // |
535 void CSecQueryUi::DisplayDeviceDialogL() |
550 void CSecQueryUi::DisplayDeviceDialogL() |
536 { |
551 { |
537 RDEBUG("0", 0); |
552 RDEBUG("0", 0); |
|
553 TInt err = KErrNone; |
|
554 RDEBUG("iIsDisplayingDialog", iIsDisplayingDialog); |
538 if (iDeviceDialog && iIsDisplayingDialog) |
555 if (iDeviceDialog && iIsDisplayingDialog) |
539 { |
556 { |
|
557 RDEBUG("iDeviceDialog", 1); |
540 iDeviceDialog->Update(*iVariantMap); |
558 iDeviceDialog->Update(*iVariantMap); |
541 } |
559 } |
542 else |
560 else |
543 { |
561 { |
|
562 RDEBUG("!iDeviceDialog", 0); |
544 if (!iDeviceDialog) |
563 if (!iDeviceDialog) |
545 { |
564 { |
|
565 RDEBUG("new iDeviceDialog", 0); |
546 iDeviceDialog = CHbDeviceDialogSymbian::NewL(); |
566 iDeviceDialog = CHbDeviceDialogSymbian::NewL(); |
547 } |
567 } |
548 _LIT(KSecQueryUiDeviceDialog, "com.nokia.secuinotificationdialog/1.0"); |
568 _LIT(KSecQueryUiDeviceDialog, "com.nokia.secuinotificationdialog/1.0"); |
549 RDEBUG("Show", 0); |
569 RDEBUG("Show", 0); |
550 iDeviceDialog->Show(KSecQueryUiDeviceDialog, *iVariantMap, this); |
570 err = iDeviceDialog->Show(KSecQueryUiDeviceDialog, *iVariantMap, this); |
|
571 RDEBUG("err", err); |
|
572 TSecUi::InitializeLibL(); |
551 RDEBUG("iIsDisplayingDialog", iIsDisplayingDialog); |
573 RDEBUG("iIsDisplayingDialog", iIsDisplayingDialog); |
552 iIsDisplayingDialog = ETrue; |
574 iIsDisplayingDialog = ETrue; |
553 RDEBUG("iIsDisplayingDialog", iIsDisplayingDialog); |
575 RDEBUG("iIsDisplayingDialog", iIsDisplayingDialog); |
554 } |
576 } |
555 RDEBUG("0", 0); |
577 RDEBUG("0", 0); |