diff -r 9386f31cc85b -r 269724087bed bluetoothengine/btnotif/src/btnssppasskeyentrynotifier.cpp --- a/bluetoothengine/btnotif/src/btnssppasskeyentrynotifier.cpp Wed Sep 01 12:20:04 2010 +0100 +++ b/bluetoothengine/btnotif/src/btnssppasskeyentrynotifier.cpp Tue Sep 14 21:37:10 2010 +0300 @@ -42,6 +42,8 @@ #include // The bt hrh info is needed, for help launching #endif +// ================= CONSTANT ======================= +const TInt KMaxPasskeyLength = 16; // ================= MEMBER FUNCTIONS ======================= @@ -92,19 +94,19 @@ } // ---------------------------------------------------------- -// CBTSSPPasskeyEntryNotifier::GetParamsL +// CBTSSPPasskeyEntryNotifier::ProcessStartParamsL // Initialize parameters and check if device is already // in registry. Jump to RunL as soon as possible. // ---------------------------------------------------------- // -void CBTSSPPasskeyEntryNotifier::GetParamsL(const TDesC8& aBuffer, TInt aReplySlot, const RMessagePtr2& aMessage) +void CBTSSPPasskeyEntryNotifier::ProcessStartParamsL() { - FLOG(_L("[BTNOTIF]\t CBTSSPPasskeyEntryNotifier::GetParamsL()")); + FLOG(_L("[BTNOTIF]\t CBTSSPPasskeyEntryNotifier::ProcessStartParamsL()")); - CBTNPairNotifierBase::GetParamsL( aBuffer, aReplySlot, aMessage ); + CBTNPairNotifierBase::ProcessStartParamsL(); TBTPasskeyDisplayParamsPckg pckg; - pckg.Copy(aBuffer); + pckg.Copy(*iParamBuffer); iBTAddr = pckg().DeviceAddress(); if ( OtherOutgoPairing(iBTAddr) ) { @@ -120,7 +122,7 @@ ProcessParamsGetDeviceL( iBTAddr, pckg().DeviceName() ); - FLOG(_L("[BTNOTIF]\t CBTSSPPasskeyEntryNotifier::GetParamsL() completed")); + FLOG(_L("[BTNOTIF]\t CBTSSPPasskeyEntryNotifier::ProcessStartParamsL() completed")); } // ---------------------------------------------------------- @@ -135,8 +137,19 @@ TBTPasskeyDisplayUpdateParamsPckg pckg; pckg.Copy(aBuffer); - - if(pckg().Type() != TBTNotifierUpdateParams2::EPasskeyDisplay) + + // Update devicename if needed + CBTNPairNotifierBase::UpdateL(aBuffer); + + if(pckg().Type() != TBTNotifierUpdateParams2::EPasskeyDisplay + || !iAuthoriseDialog->IsQueryReleased()) + { + TPtrC8 ret(KNullDesC8); + return (ret); + } + + TInt length = iBuf.Length(); + if (length > KMaxPasskeyLength ) { TPtrC8 ret(KNullDesC8); return (ret); @@ -160,7 +173,10 @@ case EPasskeyDigitDeleted: { // remove an '*' from the tail of iBuf - iBuf.Delete(iBuf.Length()-1, 1); + if ( length ) + { + iBuf.Delete(iBuf.Length()-1, 1); + } break; } case EPasskeyCleared: