diff -r d48ab3b357f1 -r 978afdc0236f uifw/AvKon/src/AknPhoneNumberEditor.cpp --- a/uifw/AvKon/src/AknPhoneNumberEditor.cpp Wed Sep 01 12:16:19 2010 +0100 +++ b/uifw/AvKon/src/AknPhoneNumberEditor.cpp Tue Sep 14 21:48:24 2010 +0300 @@ -32,6 +32,10 @@ #include #include +#include +#include // for checking qwerty availability + + static const TInt KPlainTextPos = 0; typedef CArrayFixFlat CFormatArray; @@ -52,6 +56,8 @@ TInt iPointPos; CAknCcpuSupport* iCcpuSupport; HBufC* iPasteText; + TBool iQwertyAllowed; + TBool iHybridModeAllowed; }; CAknPhoneNumberEditorExtension::CAknPhoneNumberEditorExtension() @@ -435,16 +441,29 @@ EXPORT_C TCoeInputCapabilities CAknPhoneNumberEditor::InputCapabilities() const { - if ( FeatureManager::FeatureSupported( KFeatureIdCommonVoip ) ) + if ( iExtension->iQwertyAllowed ) { TCoeInputCapabilities inputCaps( TCoeInputCapabilities::EWesternAlphabetic | TCoeInputCapabilities::ENavigation, const_cast( this ), NULL ); + //iExtension->iExtendedInputCapabilities->SetEditorType( + // CAknExtendedInputCapabilities::EPhoneNumberEditor ); + TInt qwertyActive = 0; + RProperty::Get( KCRUidAvkon, KAknQwertyInputModeActive, qwertyActive ); + if ( qwertyActive && iExtension->iHybridModeAllowed ) + { + iExtension->iExtendedInputCapabilities->SetEditorType( + CAknExtendedInputCapabilities::EHybridAlphaNumericEditor ); + } + else + { + iExtension->iExtendedInputCapabilities->SetEditorType( + CAknExtendedInputCapabilities::EPhoneNumberEditor ); + } + // Voip-enabled phone editor wants to use edit-key style hash key mode selection. - iExtension->iExtendedInputCapabilities->SetEditorType( - CAknExtendedInputCapabilities::EPhoneNumberEditor ); iExtension->iExtendedInputCapabilities->SetCapabilities( CAknExtendedInputCapabilities::EForceHashKeySelectionStatusFlagOff | CAknExtendedInputCapabilities::EForceEditSubmenuStatusFlagOff ); @@ -772,7 +791,7 @@ { TInt value( EAknEditorNumericInputMode ); // Return value. - if ( FeatureManager::FeatureSupported( KFeatureIdCommonVoip ) ) + if ( iExtension->iQwertyAllowed ) { CAknEdwinState* fepState = ( CAknEdwinState* )iFepState; @@ -876,9 +895,32 @@ fepState->SetSpecialCharacterTableResourceId( 0 ); fepState->SetNumericKeymap( EAknEditorStandardNumberModeKeymap ); + iExtension->iQwertyAllowed = EFalse; + iExtension->iHybridModeAllowed = EFalse; + DrawChanges(); } + +// -------------------------------------------------------------------------- +// CAknPhoneNumberEditor::SetQwertyAllowed +// -------------------------------------------------------------------------- +// +EXPORT_C void CAknPhoneNumberEditor::SetQwertyAllowed( TBool aQwertyAllowed ) + { + iExtension->iQwertyAllowed = aQwertyAllowed; + } + +// -------------------------------------------------------------------------- +// CAknPhoneNumberEditor::SetHybridModeAllowed +// -------------------------------------------------------------------------- +// +EXPORT_C void CAknPhoneNumberEditor::SetHybridModeAllowed( TBool aHybridModeAllowed ) + { + iExtension->iHybridModeAllowed = aHybridModeAllowed; + } + + // -------------------------------------------------------------------------- // CAknPhoneNumberEditor::HandlePointerEventL // --------------------------------------------------------------------------