diff -r 13d7c31c74e0 -r b183ec05bd8c policymanagement/policyengine/policyengineui/src/PolicyEngineUi.cpp --- a/policymanagement/policyengine/policyengineui/src/PolicyEngineUi.cpp Thu Aug 19 10:44:50 2010 +0300 +++ b/policymanagement/policyengine/policyengineui/src/PolicyEngineUi.cpp Tue Aug 31 16:04:06 2010 +0300 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2002-2004 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2000 Nokia Corporation and/or its subsidiary(-ies). * All rights reserved. * This component and the accompanying materials are made available * under the terms of "Eclipse Public License v1.0" @@ -11,539 +11,436 @@ * * Contributors: * -* Description: This file contains the implementation of PolicyEngineUI +* Description: Implementation of policymanagement components * */ - -// INCLUDE FILES -#include "PolicyEngineUi.h" -#include "debug.h" -#include "policyengineui.hrh" -#include +#include "PolicyEngineUI.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "Logger.h" -#include -#include -#include -#include -#include -#include -#include -#include -#include "SyncService.h" - -#include - - -_LIT( KCUIResourceFileName, "PolicyEngineUIDlgs.rsc" ); -const TUid KUidPolicyEngineUi = { 0x10207817 }; -const TUid KScreenOutputChannel = { 0x0000781F }; - -LOCAL_C void CreateNotifiersL( CArrayPtrFlat* aNotifiers ); +const int KMaxTries = 4; +const int KMaxCodeLength = 4; -// --------------------------------------------------------- -// CArrayPtr* NotifierArray() -// --------------------------------------------------------- -// - -LOCAL_C void CreateNotifiersL( CArrayPtrFlat* aNotifiers ) -{ - MEikSrvNotifierBase2 *policyEngineNotifier = CPolicyEngineNotifier::NewL(); - - CleanupStack::PushL( policyEngineNotifier ); - aNotifiers->AppendL( policyEngineNotifier ); - CleanupStack::Pop( policyEngineNotifier ); // serNotify - RDEBUG("PolicyEngineUI notifier created!"); -} - - - -CArrayPtr* NotifierArray() - { - CArrayPtrFlat* array = - new CArrayPtrFlat( 1 ); - - if (array) - { - TRAPD( err, CreateNotifiersL( array ) ); - if (err != KErrNone) - { - delete array; - array = NULL; - } - } - return array; +// ----------------------------------------------------------------------------- +// PolicyEngineUI::PolicyEngineUI() +// ----------------------------------------------------------------------------- +PolicyEngineUI::PolicyEngineUI(const QVariantMap& parameters) + { + estbTrustCount = KMaxTries; + DisplayNotificationDialog(parameters); } -const TImplementationProxy ImplementationTable[] = { {{0x10207817},(TProxyNewLPtr)NotifierArray} }; - -EXPORT_C const TImplementationProxy* ImplementationGroupProxy(TInt& aTableCount) - { - RDEBUG("PolicyEngineUI notifier detected!"); - aTableCount = sizeof(ImplementationTable) / sizeof(TImplementationProxy) ; - return ImplementationTable; - } - - -CPolicyEngineNotifier::CPolicyEngineNotifier() - { - } - +// ----------------------------------------------------------------------------- +// PolicyEngineUI::~PolicyEngineUI() +// ----------------------------------------------------------------------------- +PolicyEngineUI::~PolicyEngineUI() + { -CPolicyEngineNotifier::~CPolicyEngineNotifier() - { - //delete and close policy engine ui - delete iPolicyEngineUi; - } + } -CPolicyEngineNotifier* CPolicyEngineNotifier::NewL() - { - CPolicyEngineNotifier* self = new (ELeave) CPolicyEngineNotifier(); - - CleanupStack::PushL( self); - self->ConstructL(); - CleanupStack::Pop(); - - return self; - } - -void CPolicyEngineNotifier::ConstructL() - { - } - +// ----------------------------------------------------------------------------- +// PolicyEngineUI::DisplayNotificationDialog() +// Read the parameters sent from client +// ----------------------------------------------------------------------------- +void PolicyEngineUI::DisplayNotificationDialog(const QVariantMap& parameters) + { + LOGSTRING( "+ DisplayNotificationDialog +" ); + QVariantMap::const_iterator i = parameters.constBegin(); -void CPolicyEngineNotifier::Release() - { - delete this; - } - + while (i != parameters.constEnd()) + { + if (i.key().toAscii() == "serverdisplayname") + { + iServerName = i.value().toString(); + } + else if (i.key().toAscii() == "fingerprint") + { + iFingerprint = i.value().toString(); + } + ++i; + } + + TBuf<50> server(iServerName.utf16()); + TBuf<10> buffer(iFingerprint.utf16()); -CPolicyEngineNotifier::TNotifierInfo CPolicyEngineNotifier::RegisterL() - { - //Registration info - iInfo.iUid = KUidPolicyEngineUi; - iInfo.iPriority = ENotifierPriorityHigh; - iInfo.iChannel = KScreenOutputChannel; - - return iInfo; - } + LOGSTRING2( "serverdisplayname %S", &server ); + LOGSTRING2( "fingerprint %S", &buffer ); - -CPolicyEngineNotifier::TNotifierInfo CPolicyEngineNotifier::Info() const - { - //Registration info - return iInfo; - } + ShowInputDialog(); + LOGSTRING( "- DisplayNotificationDialog -" ); + } -TPtrC8 CPolicyEngineNotifier::StartL(const TDesC8& /*aBuffer*/) - { - return KNullDesC8().Ptr(); - } - - -void CPolicyEngineNotifier::Complete( TUserResponse aResponse) - { - RDEBUG("CPolicyEngineNotifier::Complete"); +// ----------------------------------------------------------------------------- +// PolicyEngineUI::ShowInputDialog() +// Show the accept control dialog +// ----------------------------------------------------------------------------- +void PolicyEngineUI::ShowInputDialog() + { + LOGSTRING( "+ ShowInputDialog +" ); + HbDocumentLoader loader; + bool ok = false; + loader.load(":/xml/dialog.docml", &ok); + if (!ok) + { + return; + } - //Write return value to message and compeltes it - if ( aResponse == EUserAccept ) - { - iMessage.Write( iReplySlot, KUserAcceptMark, 0); - } - else - { - iMessage.Write( iReplySlot, KUserDenyMark, 0); - } - - iManager->CancelNotifier( iInfo.iUid ); // Notify framework we've done - iMessage.Complete( KErrNone); - } + HbDialog *dialog1 = + qobject_cast (loader.findWidget("dialog")); - -void CPolicyEngineNotifier::StartL(const TDesC8& aBuffer, TInt aReplySlot, const RMessagePtr2& aMessage) - { - RDEBUG("CPolicyEngineNotifier::StartL!"); + //set heading content + HbLabel *contentheading = qobject_cast (loader.findWidget( + "qtl_dialog_pri_heading")); + QString heading(hbTrId("txt_device_update_title_security_information")); + contentheading->setPlainText(heading); - TInt index = aBuffer.Locate( KDelimeterChar); - - if ( index != KErrNotFound && !iPolicyEngineUi) - { - //decode name and fingerprint from message - TPtrC8 name = aBuffer.Left( index); - TPtrC8 fingerPrint = aBuffer.Mid( index + 1); + //set body content + HbLabel *contentbody = qobject_cast (loader.findWidget( + "qtl_dialog_pri5")); - iReplySlot = aReplySlot; - iMessage = aMessage; + QString body( + (hbTrId("txt_device_update_info_1_server_wants_to_contro").arg( + iServerName))); + contentbody->setTextWrapping(Hb::TextWordWrap); + contentbody->setPlainText(body); + + HbAction *primaryAction = qobject_cast ( + dialog1->actions().at(0)); + HbAction *secondaryAction = qobject_cast ( + dialog1->actions().at(1)); - //Show policy engine ui dialogs - iPolicyEngineUi = CPolicyEngineUi::NewL(); - iPolicyEngineUi->ActivateL( name, fingerPrint, this); - } - else - { - Complete( EUserDeny); - } - } + //set dialog properties + dialog1->setTimeout(HbPopup::NoTimeout); + dialog1->setDismissPolicy(HbPopup::NoDismiss); - -void CPolicyEngineNotifier::Cancel() - { - RDEBUG("CPolicyEngineNotifier::Cancel!"); + QObject::connect(primaryAction, SIGNAL(triggered()), this, + SLOT(onOKSelected())); + QObject::connect(secondaryAction, SIGNAL(triggered()), this, + SLOT(onCancelSelected())); - //Delete policy engine ui - delete iPolicyEngineUi; - iPolicyEngineUi = 0; - } + if (dialog1) + dialog1->show(); + + LOGSTRING( "- ShowInputDialog -" ); + } -TPtrC8 CPolicyEngineNotifier::UpdateL(const TDesC8& /*aBuffer*/) - { - return KNullDesC8().Ptr(); - } +// ----------------------------------------------------------------------------- +// PolicyEngineUI::onOKSelected() +// Show the user input dialog once control is accepted +// ----------------------------------------------------------------------------- +void PolicyEngineUI::onOKSelected() + { + + LOGSTRING( "+ onOKSelected +" ); + + HbDocumentLoader loader; + bool ok = false; + loader.load(":/xml/InputDialog.docml", &ok); + if (!ok) + { + return; + } + + mdialog = qobject_cast (loader.findWidget("dialog")); + + //set heading content + HbLabel *contentheading = qobject_cast (loader.findWidget( + "qtl_dialog_pri_heading")); + QString heading(hbTrId("txt_device_update_title_security_information")); + contentheading->setPlainText(heading); -CPolicyEngineUi::CPolicyEngineUi() - : CActive( EPriorityStandard) - { + //set label + HbLabel *contentlabel = qobject_cast (loader.findWidget( + "HeadingLabel")); + contentlabel->setTextWrapping(Hb::TextWordWrap); + QString label( + (hbTrId("txt_device_update_info_enter_first_4_characters_of").arg( + iServerName))); + contentlabel ->setPlainText(label); + + //set length for editline + mContentEdit = qobject_cast (loader.findWidget("InputLine")); + mContentEdit->setMaxLength(KMaxCodeLength); + + //set dialog properties + mdialog->setTimeout(HbPopup::NoTimeout); + mdialog->setDismissPolicy(HbPopup::NoDismiss); + + HbAction* primaryAction = (HbAction*) (mdialog->actions().at(0)); + HbAction *secondaryAction = (HbAction*) (mdialog->actions().at(1)); + primaryAction->setEnabled(false); + + QObject::connect(primaryAction, SIGNAL(triggered()), this, + SLOT(establishTrust())); + QObject::connect(secondaryAction, SIGNAL(triggered()), this, + SLOT(cancelTrust())); + QObject::connect(mContentEdit, SIGNAL(contentsChanged()), this, + SLOT(codeTextChanged())); + + if (mdialog) + mdialog->show(); + + LOGSTRING( "- onOKSelected -" ); } -void CPolicyEngineUi::ConstructL() - { - RDEBUG("CPolicyEngineUi::ConstructL!"); - - //get pointer to CEikonEnv - iCoeEnv = CEikonEnv::Static(); - - if ( !iCoeEnv ) - { - RDEBUG("Policy engine ui: CoeEnv not found!"); - User::Leave( KErrGeneral ); - } - //Open resource file - TFileName fileName; - fileName.Zero(); +// ----------------------------------------------------------------------------- +// PolicyEngineUI::onCancelSelected() +// ----------------------------------------------------------------------------- +void PolicyEngineUI::onCancelSelected() + { + LOGSTRING( "+ onCancelSelected +" ); - TFileName drivePath; - Dll::FileName( drivePath ); - - fileName.Append( TParsePtrC( drivePath ).Drive() ); - fileName.Append( KDC_RESOURCE_FILES_DIR ); - fileName.Append( KCUIResourceFileName ); - - BaflUtils::NearestLanguageFile( iCoeEnv->FsSession(), fileName ); + QVariantMap result; - //handle to resource file - iResourceFileOffset = iCoeEnv->AddResourceFileL( fileName ); - - RDEBUG("Policy engine ui resources loaded!"); - } - -CPolicyEngineUi* CPolicyEngineUi::NewL() - { - CPolicyEngineUi* self = new ( ELeave ) CPolicyEngineUi(); - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop( self ); - return self; - } + result.insert("keyResponse", -1); + emit + deviceDialogData(result); - -CPolicyEngineUi::~CPolicyEngineUi() - { - RDEBUG("CPolicyEngineUi::~CPolicyEngineUi()"); + emit + deviceDialogClosed(); - // Close non-modal dialogs - if( iResourceFileOffset ) - { - iCoeEnv->DeleteResourceFile( iResourceFileOffset ); - } - - delete iCorporate; - delete iRandomPart; - } + LOGSTRING( "- onCancelSelected -" ); + } -void CPolicyEngineUi::ActivateL( const TDesC8& aCorporate, const TDesC8& aRandomPart, CPolicyEngineNotifier* aNotifier) - { - RDEBUG("CPolicyEngineUi::ActivateL"); - - //reference to notifier (for message completion) - iNotifier = aNotifier; - - //allocate new space for parameters and save them - delete iCorporate; - iCorporate = NULL; - delete iRandomPart; - iRandomPart = NULL; - iCorporate = HBufC::NewL( aCorporate.Length()); - iRandomPart = HBufC::NewL( aRandomPart.Length()); - - iCorporate->Des().Copy( aCorporate); - iRandomPart->Des().Copy( aRandomPart); - - //add active object to active scheduler and set object active - CActiveScheduler::Add( this); - SetActive(); - - //complete request.... - TRequestStatus * status = &iStatus; - User::RequestComplete( status, KErrNone); - } - - - -void CPolicyEngineUi::RunL() - { - RDEBUG("CPolicyEngineUi::RunL()"); - - //in state ERemove user has already accepted query - if ( ERemove == iState ) - { - //show info, remove from scheduler - ShowDialogL( ERemove); - Deque(); - iNotifier->Complete( EUserAccept); - return; - } - - if ( EDenied == iState ) - { - //show info, remove from scheduler - ShowDialogL( EDenied); - Deque(); - iNotifier->Complete( EUserDeny); - return; - } +// ----------------------------------------------------------------------------- +// PolicyEngineUI::onTrustCreation() +// ----------------------------------------------------------------------------- +void PolicyEngineUI::onTrustCreation() + { + LOGSTRING( "+ onTrustCreation +" ); + QVariantMap result; - //Control dialog - if ( EUserAccept == ShowDialogL( (TDialog) iState)) - { - //if user cancel dialog, show deny-dialog and return - iState = iState + 1; - } - else - { - //user press cancel -> state = EDenied - iState = EDenied; - } - - //set active and complete message - SetActive(); - TRequestStatus * status = &iStatus; - User::RequestComplete( status, KErrNone); - } - -// ---------------------------------------------------------------------------- -// CPolicyEngineUi::RunError -// ---------------------------------------------------------------------------- -TInt CPolicyEngineUi::RunError ( TInt /*aError*/ ) - { - return KErrNone; - } - -void CPolicyEngineUi::DoCancel() - { - } - - + result.insert("keyResponse", 0); + emit + deviceDialogData(result); -CPolicyEngineUi::TDlgResp CPolicyEngineUi::ShowConfirmationQueryL( - const TDesC& aText, const TBool& aWithCancel) - { - //create dialog - CAknQueryDialog* note = - CAknQueryDialog::NewL( CAknQueryDialog::EConfirmationTone ); - - //select correct text resource - TInt resource = R_POLICYENGINEUI_CONFIRMATION_QUERY; - - if ( !aWithCancel ) - { - resource = R_POLICYENGINEUI_CONFIRMATION; - } - - //execute dialog, dialog contains self destruction - TInt response = note->ExecuteLD( resource, aText ); - - if ( response ) - { - return EOkResp; - } - - return ECancelResp; - } + emit + deviceDialogClosed(); - -CPolicyEngineUi::TDlgResp CPolicyEngineUi::DataQueryL( const TDesC& aText, TDes& aInput ) - { - - //Create dialog with reference to input descriptor - CAknTextQueryDialog* dlg = - CAknTextQueryDialog::NewL( aInput, CAknQueryDialog::ENoTone); - - //set prompt - CleanupStack::PushL( dlg); - dlg->SetPromptL( aText); - CleanupStack::Pop(); - - //execute dialog, dialog contains self destruction - TInt response = dlg->ExecuteLD( R_POLICYENGINEUI_DATA_QUERY); - - if ( response ) - { - return EOkResp; - } - - return ECancelResp; - } + LOGSTRING( "- onTrustCreation -" ); + } -TInt CPolicyEngineUi::ShowDialogL( const TDialog& aDialog) - { - TInt response = EUserDeny; +// ----------------------------------------------------------------------------- +// PolicyEngineUI::establishTrust() +// ----------------------------------------------------------------------------- +void PolicyEngineUI::establishTrust() + { + LOGSTRING( "+ establishTrust +" ); + bool retVal; // return value from code verification API. + estbTrustCount--; + retVal = verifyFingerPrint(); + + if (retVal) + { + LOGSTRING( "Trust Created" ); + //Reset the counter. + estbTrustCount = 0; + onTrustCreation(); - //select correct dialog - switch ( aDialog) - { - case EControl : - { - response = ShowPossessionMessageQueryL(); - break; - } - case ERemove: - { - //load resource - HBufC* displayString = StringLoader::LoadLC( R_POLICYENGINEUI_TRUST_ESTABLISHED ); - - TInt length1 = displayString->Length(); - HBufC16* trustString = HBufC16::NewLC ( length1 ); - TPtr bufPtr = trustString -> Des(); - bufPtr.Append (*displayString); - // Hide background connecting note - CSyncService *syncService = - CSyncService::NewL(NULL, KDevManServiceStart); - if (syncService) - { - syncService->EnableProgressNoteL(EFalse); - } + } + else + { + //check the number of tries. + if (estbTrustCount == 0) + { + //Access denied. + LOGSTRING( "Access Denied" ); + HbMessageBox *msgBox = new HbMessageBox(); + msgBox->setHeadingWidget(new HbLabel(hbTrId( + "txt_device_update_title_security_information"))); + + msgBox->setText(hbTrId( + "txt_device_update_info_security_info_access_denied")); + msgBox->setTimeout(HbDialog::NoTimeout); + msgBox->setDismissPolicy(HbDialog::NoDismiss); + + HbAction *action = (HbAction*) (msgBox->actions().at(0)); + QObject::connect(action, SIGNAL(triggered()), this, + SLOT(onCancelSelected())); - delete syncService; - - response = ShowConfirmationQueryL( *trustString, EFalse); - CleanupStack::PopAndDestroy(); - CleanupStack::PopAndDestroy(); - - break; - } - case EDenied: - { - //load resource - TBuf<100> array(*iCorporate); - HBufC* displayString = StringLoader::LoadLC( R_POLICYENGINEUI_DENIED_NOTE, array); - - //show dialog and get response - response = ShowConfirmationQueryL( *displayString, EFalse); - //delete resource - CleanupStack::PopAndDestroy(); - - break; - } - case EUnMatch: - { - //load resource - HBufC* displayString = StringLoader::LoadLC( R_POLICYENGINEUI_UNMATCH_NOTE); - - //show dialog and get response - response = ShowConfirmationQueryL( *displayString, ETrue); - //delete resource - CleanupStack::PopAndDestroy(); - - break; - } - case EQuestion: - { - //question note prompt - TBuf<100> array(*iCorporate); - HBufC* displayString = StringLoader::LoadLC( R_POLICYENGINEUI_QUESTION_NOTE,array); - TBuf input; - TBool ready = EFalse; + msgBox->show(); + } + else + { + LOGSTRING2( "tries left %i", estbTrustCount ); + //Code didnot match. + HbDocumentLoader loader; + bool ok = false; + loader.load(":/xml/InputDialog.docml", &ok); + if (!ok) + { + return; + } + + mdialog = qobject_cast (loader.findWidget("dialog")); + + //set heading content + HbLabel *contentheading = qobject_cast ( + loader.findWidget("qtl_dialog_pri_heading")); + contentheading->setTextWrapping(Hb::TextWordWrap); + QString heading(hbTrId( + "txt_device_update_title_security_information")); + contentheading->setPlainText(heading); - //until cancel pressed or valid user gives valid certificate part - while ( !ready) - { - //data query - CPolicyEngineUi::TDlgResp resp = DataQueryL( *displayString, input); - if ( resp == EUserAccept ) - { - if ( input.CompareF( *iRandomPart) != 0) - { - //if user input doesn't match - if ( EUserDeny == ShowDialogL( EUnMatch)) - { - //if user cancel dialog, show deny-dialog and return - response = EUserDeny; - break; - } - } - else - { - response = EUserAccept; - ready = ETrue; - } - } - else - { - //if user cancel dialog, show deny-dialog and return - response = EUserDeny; - break; - } - } - - //delete resource - CleanupStack::PopAndDestroy(); - break; - } - default: - break; - } - - return response; - } + //set label + HbLabel *contentlabel = qobject_cast ( + loader.findWidget("HeadingLabel")); + QString + label( + (hbTrId( + "txt_device_update_info_security_information_did_no").arg( + estbTrustCount))); + + contentlabel->setTextWrapping(Hb::TextWordWrap); + contentlabel->setPlainText(label); + + mContentEdit = qobject_cast (loader.findWidget( + "InputLine")); + mContentEdit->setMaxLength(KMaxCodeLength); + + mdialog->setTimeout(HbPopup::NoTimeout); + mdialog->setDismissPolicy(HbPopup::NoDismiss); + + HbAction* primaryAction = qobject_cast ( + mdialog->actions().at(0)); + HbAction *secondaryAction = qobject_cast ( + mdialog->actions().at(1)); + primaryAction->setEnabled(false); + + QObject::connect(primaryAction, SIGNAL(triggered()), this, + SLOT(establishTrust())); + QObject::connect(secondaryAction, SIGNAL(triggered()), this, + SLOT(cancelTrust())); + QObject::connect(mContentEdit, SIGNAL(contentsChanged()), this, + SLOT(codeTextChanged())); + + if (mdialog) + mdialog->show(); + } + } + LOGSTRING( "- establishTrust -" ); + } -CPolicyEngineUi::TDlgResp CPolicyEngineUi::ShowPossessionMessageQueryL() - { - HBufC* securityInfoString = StringLoader::LoadLC( R_POLICYENGINEUI_SECURITY_INFO_NOTE ); - TBuf<60> buffer; - buffer.Copy( *securityInfoString ); - CleanupStack::PopAndDestroy( securityInfoString ); - - //load resource - TBuf<100> array(*iCorporate); - HBufC* displayString = StringLoader::LoadLC( R_POLICYENGINEUI_CONTROL_NOTE, array); - - - //show dialog and get response - CAknMessageQueryDialog* dlg = CAknMessageQueryDialog::NewL( *displayString ); - dlg->PrepareLC( R_POLICY_ENGINE_POSSESSION_INFO ); - dlg->QueryHeading()->SetTextL( buffer ); - TInt response = dlg->RunLD(); - - CleanupStack::PopAndDestroy(); - - if ( response ) - { - return EOkResp; - } - - return ECancelResp; - } +// ----------------------------------------------------------------------------- +// PolicyEngineUI::cancelTrust() +// ----------------------------------------------------------------------------- +void PolicyEngineUI::cancelTrust() + { + LOGSTRING( "+ cancelTrust +" ); + //Reset the counter. + estbTrustCount = 0; + + QVariantMap result; + result.insert("keyResponse", -1); + emit + deviceDialogData(result); + + emit + deviceDialogClosed(); + LOGSTRING( "- cancelTrust -" ); + } + + +// ----------------------------------------------------------------------------- +// PolicyEngineUI::setDeviceDialogParameters() +// ----------------------------------------------------------------------------- +bool PolicyEngineUI::setDeviceDialogParameters(const QVariantMap ¶meters) + { + Q_UNUSED(parameters); + LOGSTRING( "+ setDeviceDialogParameters +" ); + return true; + } + + +// ----------------------------------------------------------------------------- +// PolicyEngineUI::deviceDialogError() +// Get error +// ----------------------------------------------------------------------------- +int PolicyEngineUI::deviceDialogError() const + { + LOGSTRING( "+ deviceDialogError +" ); + return 0; + } +// ----------------------------------------------------------------------------- +// PolicyEngineUI::PolicyEngineUI() +// Close device dialog +// ----------------------------------------------------------------------------- +void PolicyEngineUI::closeDeviceDialog(bool byClient) + { + Q_UNUSED(byClient); + LOGSTRING( "+ closeDeviceDialog +" ); + close(); + } + + +// ----------------------------------------------------------------------------- +// PolicyEngineUI::PolicyEngineUI() +// Return display widget +// ----------------------------------------------------------------------------- +HbDialog *PolicyEngineUI::deviceDialogWidget() const + { + LOGSTRING( "+ deviceDialogWidget +" ); + return const_cast (this); + } +// ----------------------------------------------------------------------------- +// PolicyEngineUI::PolicyEngineUI() +// Verify the user entered code +// ----------------------------------------------------------------------------- +bool PolicyEngineUI::verifyFingerPrint() + { + LOGSTRING( "+ verifyFingerPrint +" ); + QString enteredCode = mContentEdit->text(); + TBuf<10> buffer(enteredCode.utf16()); + + LOGSTRING2( "User entered code %i", &buffer); + LOGSTRING2( "User entered code %S", &buffer); + + if (enteredCode.compare(iFingerprint, Qt::CaseInsensitive) == 0) + { + LOGSTRING( "+ fingerprint MATCH !!!! +" ); + return true; + } + else + { + LOGSTRING( "+ fingerprint DOESNOT MATCH +" ); + return false; + } + } + + +// ----------------------------------------------------------------------------- +// PolicyEngineUI::codeTextChanged() +// checks the entered text length and enables the OK option accordingly. +// ----------------------------------------------------------------------------- +void PolicyEngineUI::codeTextChanged() + { + QString str = mContentEdit->text(); + + if (str.length() >= KMaxCodeLength) + mdialog->actions().at(0)->setEnabled(true); + else + mdialog->actions().at(0)->setEnabled(false); + }