--- a/fep/aknfep/src/AknFepSharedDataInterface.cpp Tue Jul 06 14:38:41 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,1730 +0,0 @@
-/*
-* Copyright (c) 2002-2004 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""
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:
-* CAknFepSharedDataInterface class
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#include <w32std.h>
-#include <eikdef.h>
-#include <eikenv.h>
-#include <AknUtils.h>
-
-#include "AknFepSharedDataInterface.h"
-#include "AknFepManager.h"
-
-#include <centralrepository.h>
-#include <AknFepInternalCRKeys.h>
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-#include <AknFepInternalPSKeys.h>
-#include <AknFepGlobalEnums.h>
-#include <PtiDefs.h>
-#endif
-#include <AvkonInternalCRKeys.h> // KAknQwertyInputModeActive
-#include <settingsinternalcrkeys.h> //Pen related settings
-#include <sensorplugindomaincrkeys.h> // KCRUidSensorSettings
-
-// TODO: include CommonengineInternalCRKeys.h
-const TUid KCRUidCommonEngineKeys = {0x1020503B};
-const TUint32 KGSDisplayTxtLang = 0x00000001;
-
-const TInt KJapHwrConversion = 0x0010;
-
-#include <AknDef.h>
-
-CAknFepSharedDataInterface* CAknFepSharedDataInterface::NewL(CAknFepManager* aFepManager)
- {
- CAknFepSharedDataInterface* self = new (ELeave) CAknFepSharedDataInterface(aFepManager);
- CleanupStack::PushL(self);
- self->ConstructL();
- CleanupStack::Pop(); //self
- return self;
- }
-
-
-CAknFepSharedDataInterface::~CAknFepSharedDataInterface()
- {
- delete iCommonEngineRepository;
- delete iAknFepRepositoryWatcher;
- delete iAknFepLocaleRepositoryWatcher;
- delete iAknFepRepository;
- delete iGsPenSettings;
- delete iLocaleRepository;
- delete iSensorRepository;
-
- if (iQwertyModeStatusSubscriber)
- {
- iQwertyModeStatusSubscriber->StopSubscribe();
- }
-#ifdef RD_INTELLIGENT_TEXT_INPUT
- if (iKeyboardLayoutStatusSubscriber)
- {
- iKeyboardLayoutStatusSubscriber->StopSubscribe();
- }
- iKeyboardLayoutStatusProperty.Close();
- delete iKeyboardLayoutStatusSubscriber;
-#endif
- iQwertyModeStatusProperty.Close();
- delete iQwertyModeStatusSubscriber;
- }
-
-
-TInt CAknFepSharedDataInterface::PredictiveTextOn()
- {
- TInt value = 0;
- if (iAknFepRepository)
- {
-#ifdef RD_INTELLIGENT_TEXT_INPUT
- TPtiKeyboardType layout = (TPtiKeyboardType)KeyboardLayout();
- TInt temp = 0;
- iAknFepRepository->Get(KAknFepPredTxtFlagExtension, temp);
- switch(layout)
- {
- case EPtiKeyboardNone:
- break;
- case EPtiKeyboard12Key:
- temp &= EKeyboardStyle12Key;
- break;
- case EPtiKeyboardHalfQwerty:
- temp &= EKeyboardStyleHalfQwerty;
- break;
- case EPtiKeyboardQwerty4x12:
- case EPtiKeyboardQwerty4x10:
- case EPtiKeyboardQwerty3x11:
- case EPtiKeyboardCustomQwerty:
- temp &= EKeyboardStyleQwerty;
- break;
- default:
- break;
- }
- value = ( temp ? 1 : 0);
-#else
- iAknFepRepository->Get(KAknFepPredTxtFlag, value);
-#endif
- }
- return value;
- }
-
-TInt CAknFepSharedDataInterface::PredictiveTextJapaneseOn()
- {
- TInt value = 0;
- if (iAknFepRepository)
- {
- iAknFepRepository->Get(KAknFepJapanesePredTxtFlag, value);
- }
- return value;
- }
-
-TInt CAknFepSharedDataInterface::InputMode()
- {
- TUint value = 0;
- if (iAknFepRepository)
- {
- /* Teleca change begin, 03.07.2008 ssal
- original code:
- TPtrC filteredPtr(0,0);
- iAknFepRepository->Get(KAknFepChineseInputMode, value);*/
- _LIT(Kx, "x");
- // This conversion is needed because KAknFepChineseInputMode cenrep key original type was 16bit int.
- // now type is changed to string, so that it can accommodate bigger values like EHangul 0x16000.
- TBuf<CAknFepManager::EMaximumFepWordLength> conversion;
- iAknFepRepository->Get(KAknFepChineseInputMode, conversion);
-
- TInt len = conversion.Find(Kx);
- TLex lex;
-
- if(len)
- {
- TPtrC ptr = conversion.Mid(len +1);
- lex.Assign(ptr);
- }
- else
- {
- lex.Assign(conversion);
- }
-
- lex.Val(value, EHex);
- /* Teleca change end, 04.06.2008 ssal */
- }
- return value;
- }
-
-void CAknFepSharedDataInterface::SetInputMode(TInt aInputMode)
- {
- if (iAknFepRepository)
- {
- /* Teleca change begin, 03.07.2008 ssal
- original code:
- iAknFepRepository->Set(KAknFepChineseInputMode, aInputMode);*/
-
- // Please see the explanation on CAknFepSharedDataInterface::InputMode() method
- TBuf<CAknFepManager::EMaximumFepWordLength> conversion;
- conversion.Num(aInputMode, EHex);
-
- iAknFepRepository->Set(KAknFepChineseInputMode, conversion);
- /* Teleca change end, 04.06.2008 ssal */
- }
- }
-
-TInt CAknFepSharedDataInterface::CangJieMode()
- {
- TInt value = 0;
- if (iAknFepRepository)
- {
- iAknFepRepository->Get(KAknFepCangJieMode, value);
- }
- return value;
- }
-
-void CAknFepSharedDataInterface::SetCangJieMode(TInt aNewCangJieMode)
- {
- if (iAknFepRepository)
- {
- iAknFepRepository->Set(KAknFepCangJieMode, aNewCangJieMode);
- }
- }
-
-TInt CAknFepSharedDataInterface::InputTextLanguage()
- {
- TInt value = 0;
- if (iAknFepRepository)
- {
- iAknFepRepository->Get(KAknFepInputTxtLang, value);
- }
- return TLanguage(value);
- }
-
-void CAknFepSharedDataInterface::SetInputTextLanguage(TInt aValue)
- {
- if (iAknFepRepository)
- {
- iAknFepRepository->Set(KAknFepInputTxtLang, aValue);
- }
-
- // now inform all open apps of the switch
- TWsEvent event;
- event.SetType(KEikInputLanguageChange);
- CEikonEnv::Static()->WsSession().SendEventToAllWindowGroups(event);
- }
-
-TInt CAknFepSharedDataInterface::DisplayLanguage()
- {
- TInt value = 0;
- if (iCommonEngineRepository)
- {
- iCommonEngineRepository->Get(KGSDisplayTxtLang, value);
- }
- return TLanguage(value);
- }
-
-void CAknFepSharedDataInterface::SetPredictiveTextOn()
- {
- if (iAknFepRepository)
- {
-#ifdef RD_INTELLIGENT_TEXT_INPUT
- TPtiKeyboardType layout = (TPtiKeyboardType)KeyboardLayout();
- TInt value = 0;
- iAknFepRepository->Get(KAknFepPredTxtFlagExtension, value);
- switch(layout)
- {
- case EPtiKeyboardNone:
- // No keyboard active, so don't change anything
- break;
- case EPtiKeyboard12Key:
- value |= EKeyboardStyle12Key;
- break;
- case EPtiKeyboardHalfQwerty:
- value |= EKeyboardStyleHalfQwerty;
- break;
- case EPtiKeyboardQwerty4x12:
- case EPtiKeyboardQwerty4x10:
- case EPtiKeyboardQwerty3x11:
- case EPtiKeyboardCustomQwerty:
- value |= EKeyboardStyleQwerty;
- break;
- default:
- break;
- }
- iAknFepRepository->Set(KAknFepPredTxtFlagExtension, value);
- // For backwards compatibility
- if (value & EKeyboardStyle12Key)
- {
- iAknFepRepository->Set(KAknFepPredTxtFlag, 1);
- }
-#else
- iAknFepRepository->Set(KAknFepPredTxtFlag, 1);
-#endif
- }
- }
-
-
-void CAknFepSharedDataInterface::ResetPredictiveTextOn()
- {
- if (iAknFepRepository)
- {
-#ifdef RD_INTELLIGENT_TEXT_INPUT
- TPtiKeyboardType layout = (TPtiKeyboardType)KeyboardLayout();
- TInt value = 0;
- iAknFepRepository->Get(KAknFepPredTxtFlagExtension, value);
- switch(layout)
- {
- case EPtiKeyboardNone:
- // No keyboard active, so don't change anything
- break;
- case EPtiKeyboard12Key:
- value &= ~EKeyboardStyle12Key;
- break;
- case EPtiKeyboardHalfQwerty:
- value &= ~EKeyboardStyleHalfQwerty;
- break;
- case EPtiKeyboardQwerty4x12:
- case EPtiKeyboardQwerty4x10:
- case EPtiKeyboardQwerty3x11:
- case EPtiKeyboardCustomQwerty:
- value &= ~EKeyboardStyleQwerty;
- break;
- default:
- break;
- }
- iAknFepRepository->Set(KAknFepPredTxtFlagExtension, value);
- // For backwards compatibility
- if (!(value & EKeyboardStyle12Key))
- {
- iAknFepRepository->Set(KAknFepPredTxtFlag, 0);
- }
-#else
- iAknFepRepository->Set(KAknFepPredTxtFlag, 0);
-#endif
- }
- }
-
-void CAknFepSharedDataInterface::SetJapanesePredictiveTextOn()
- {
- if (iAknFepRepository)
- {
- iAknFepRepository->Set(KAknFepJapanesePredTxtFlag, 1);
- }
- }
-
-
-void CAknFepSharedDataInterface::ResetJapanesePredictiveTextOn()
- {
- if (iAknFepRepository)
- {
- iAknFepRepository->Set(KAknFepJapanesePredTxtFlag, 0);
- }
- }
-
-TInt CAknFepSharedDataInterface::PluginInputMode() const
- {
- TInt value = 0;
- if (iAknFepRepository)
- {
- iAknFepRepository->Get(KAknFepLastUsedInput, value);
- }
- return value;
- }
-
-void CAknFepSharedDataInterface::SetPluginInputMode(TInt aDevice)
- {
- if (iAknFepRepository)
- {
- iAknFepRepository->Set(KAknFepLastUsedInput, aDevice);
- }
- }
-
-TInt CAknFepSharedDataInterface::PluginUILanguage() const
- {
- TInt value = 0;
- if (iAknFepRepository)
- {
- //iAknFepRepository->Create(KAknFepLastUsedUILanguage, 0); //??
- iAknFepRepository->Get(KAknFepLastUsedUILanguage, value);
- }
- return value;
- }
-
-void CAknFepSharedDataInterface::SetPluginUILanguage(TInt aLanguage)
- {
- if (iAknFepRepository)
- {
- iAknFepRepository->Set(KAknFepLastUsedUILanguage, aLanguage);
- }
- }
-
-void CAknFepSharedDataInterface::SetDefaultNumberMode( TInt aMode, TInt aValue )
- {
- if (iLocaleRepository)
- {
- iLocaleRepository->Set(aMode, aValue);
- }
- }
-
-
-TInt CAknFepSharedDataInterface::PenInputLanguage() const
- {
- TInt value = 0;
- if (iAknFepRepository)
- {
- iAknFepRepository->Get(KAknFepInputTxtLang, value);
- }
- return value;
- }
-
-TInt CAknFepSharedDataInterface::ScrollLatinPredictiveCandidates() const
- {
- return iSharedDataScrollLatinPredictive;
- }
-
-TInt CAknFepSharedDataInterface::SpaceWithScrollRight() const
- {
- return iSharedDataSpaceWithScrollRight;
- }
-
-TInt CAknFepSharedDataInterface::EntersWithScrollDown() const
- {
- return iSharedDataEnterWithScrollDown;
- }
-
-TInt CAknFepSharedDataInterface::QwertyInputMode() //const
- {
- TInt value = 0;
- iQwertyModeStatusProperty.Get(value);
- return value;
- }
-
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-TInt CAknFepSharedDataInterface::KeyboardLayout() //const
- {
- TInt value = 0;
- iKeyboardLayoutStatusProperty.Get(value);
- return value;
- }
-
-#ifdef FF_DUAL_LANGUAGE_SUPPORT
-TInt CAknFepSharedDataInterface::InputTextLanguageSecondary()
- {
- TInt value = 0;
- if (iAknFepRepository)
- {
- iAknFepRepository->Get(KAknFepInputTxtLangSecondary, value);
- }
- return TLanguage(value);
- }
-
-void CAknFepSharedDataInterface::SetInputTextLanguageSecondary(TInt aValue)
- {
- if (iAknFepRepository)
- {
- iAknFepRepository->Set(KAknFepInputTxtLangSecondary, aValue);
- }
-
- // now inform all open apps of the switch
- // same event as primary input language change
- TWsEvent event;
- event.SetType(KEikInputLanguageChange);
- CEikonEnv::Static()->WsSession().SendEventToAllWindowGroups(event);
- }
-
-#endif //FF_DUAL_LANGUAGE_SUPPORT
-#endif
-
-CAknFepSharedDataInterface::CAknFepSharedDataInterface(CAknFepManager* aFepManager)
- {
- iFepManager = aFepManager;
- }
-
-
-void CAknFepSharedDataInterface::ConstructL()
- {
- TInt ret = KErrNone;
-
- TRAP(ret, iCommonEngineRepository = CRepository::NewL(KCRUidCommonEngineKeys));
-
- TRAP(ret, iAknFepRepository = CRepository::NewL(KCRUidAknFep));
- if (ret == KErrNone)
- {
- iAknFepRepositoryWatcher = CAknFepRepositoryWatcher::NewL(
- KCRUidAknFep,
- TCallBack(HandleRepositoryCallBack, this),
- iAknFepRepository);
- HandleHashKeySelectionChange();//we need read proactively before value changed,and we must sure the iAknFepRepository has been constructed
- }
-
- TRAP(ret, iLocaleRepository = CRepository::NewL( KCRUidLocaleSettings ));
-
- if (ret == KErrNone)
- {
- iAknFepLocaleRepositoryWatcher = CAknFepRepositoryWatcher::NewL(
- KCRUidLocaleSettings,
- TCallBack(HandleLocaleRepositoryCallBack, this),
- iLocaleRepository);
- }
-
- User::LeaveIfError(iQwertyModeStatusProperty.Attach(KCRUidAvkon, KAknQwertyInputModeActive));
-#ifdef RD_INTELLIGENT_TEXT_INPUT
- //Attach the P&S property to the keyboardlayout and subscribe to the P&S framework
- // for any keyboard layout change.
- User::LeaveIfError(iKeyboardLayoutStatusProperty.Attach(KCRUidAvkon, KAknKeyBoardLayout));
- iKeyboardLayoutStatusSubscriber = new (ELeave) CSubscriber(
- TCallBack(HandleKeyboardLayoutChangeNotification, this),
- iKeyboardLayoutStatusProperty);
- iKeyboardLayoutStatusSubscriber->SubscribeL();
-#endif
- iQwertyModeStatusSubscriber = new (ELeave) CSubscriber(
- TCallBack(QwertyModeChangeNotification, this),
- iQwertyModeStatusProperty);
- iQwertyModeStatusSubscriber->SubscribeL();
-
- // Read read-only shared data settings.
- if (iAknFepRepository)
- {
- iAknFepRepository->Get(KAknFepScrollLatinPredictive, iSharedDataScrollLatinPredictive);
- iAknFepRepository->Get(KAknFepSpaceWithScrollRight, iSharedDataSpaceWithScrollRight);
- iAknFepRepository->Get(KAknFepEnterWithScrollDown, iSharedDataEnterWithScrollDown);
- }
-
- TRAP(ret, iGsPenSettings = CRepository::NewL(KCRUidPersonalizationSettings));
-
- TRAP(ret, iSensorRepository = CRepository::NewL( KCRUidSensorSettings ) );
- }
-
-TInt CAknFepSharedDataInterface::HashKeySelectionNotification(TAny* aObj)
- {
- if (aObj)
- {
- static_cast<CAknFepSharedDataInterface*>(aObj)->HandleHashKeySelectionChange();
- return KErrNone;
- }
- else
- {
- return KErrArgument;
- }
- }
-
-void CAknFepSharedDataInterface::HandleHashKeySelectionChange()
- {
- TInt value(0);
-
- if (iAknFepRepository)
- {
- iAknFepRepository->Get(KAknFepHashKeySelection, value);
- }
-
- iHashKeySelectionInUse = value;
- }
-
-
-TInt CAknFepSharedDataInterface::InputModeChangeGSNotification(TAny* aObj)
- {
- if (aObj)
- {
- static_cast<CAknFepSharedDataInterface*>(aObj)->HandleInputModeGSChange();
- return KErrNone;
- }
- else
- {
- return KErrArgument;
- }
- }
-
-void CAknFepSharedDataInterface::HandleInputModeGSChange()
- {
- iFepManager->SetFlag(CAknFepManager::EFlagNewSharedDataInputMode);
- }
-
-TInt CAknFepSharedDataInterface::InputTextLangGSNotification(TAny* aObj)
- {
- if (aObj)
- {
- static_cast<CAknFepSharedDataInterface*>(aObj)->HandleInputTextLanguageGSChange();
- return KErrNone;
- }
- else
- {
- return KErrArgument;
- }
- }
-
-void CAknFepSharedDataInterface::HandleInputTextLanguageGSChange()
- {
- iFepManager->SetFlag(CAknFepManager::EFlagNewSharedDataInputLanguage);
- ESubVariantFlag subVariant = AknLayoutUtils::SubVariant();
- if((AknLayoutUtils::Variant() == EApacVariant)
- && ((subVariant == EPrcSubVariant)
- || (subVariant == EHongKongSubVariant)
- || (subVariant == ETaiwanSubVariant)))
- {
- iFepManager->SetFlag(CAknFepManager::EFlagNewSharedDataInputMode);
- }
- }
-
-
-TInt CAknFepSharedDataInterface::PredictiveTextSettingChangeGSNotification(TAny* aObj)
- {
- if (aObj)
- {
- static_cast<CAknFepSharedDataInterface*>(aObj)->HandlePredictiveTextSettingGSChange();
- return KErrNone;
- }
- else
- {
- return KErrArgument;
- }
- }
-
-TInt CAknFepSharedDataInterface::JapanesePredictiveTextSettingChangeGSNotification(TAny* aObj)
- {
- if (aObj)
- {
- static_cast<CAknFepSharedDataInterface*>(aObj)->HandleJapanesePredictiveTextSettingGSChange();
- return KErrNone;
- }
- else
- {
- return KErrArgument;
- }
- }
-
-TInt CAknFepSharedDataInterface::QwertyModeChangeNotification(TAny* aObj)
- {
- if (aObj)
- {
- static_cast<CAknFepSharedDataInterface*>(aObj)->HandleQwertyModeChangeNotification();
- return KErrNone;
- }
- else
- {
- return KErrArgument;
- }
- }
-
-void CAknFepSharedDataInterface::HandlePredictiveTextSettingGSChange()
- {
- TInt value = 0;
-#ifdef RD_INTELLIGENT_TEXT_INPUT
- if (iAknFepRepository)
- {
- iAknFepRepository->Get(KAknFepPredTxtFlagExtension, value);
- }
- TPtiKeyboardType layout = (TPtiKeyboardType)KeyboardLayout();
- switch(layout)
- {
- case EPtiKeyboardNone:
- break;
- case EPtiKeyboard12Key:
- value &= EKeyboardStyle12Key;
- break;
- case EPtiKeyboardHalfQwerty:
- value &= EKeyboardStyleHalfQwerty;
- break;
- case EPtiKeyboardQwerty4x12:
- case EPtiKeyboardQwerty4x10:
- case EPtiKeyboardQwerty3x11:
- case EPtiKeyboardCustomQwerty:
- value &= EKeyboardStyleQwerty;
- break;
- default:
- break;
- }
- if (value > 0)
- {
- value = 1;
- }
-#else
- if (iAknFepRepository)
- {
- iAknFepRepository->Get(KAknFepPredTxtFlag, value);
- }
-#endif
- iFepManager->SetWesternPredictive(value);
- }
-
-void CAknFepSharedDataInterface::HandleJapanesePredictiveTextSettingGSChange()
- {
- TInt value = 0;
- if (iAknFepRepository)
- {
- iAknFepRepository->Get(KAknFepJapanesePredTxtFlag, value);
- }
- iFepManager->SetJapanesePredictive(value);
- }
-
-void CAknFepSharedDataInterface::HandleQwertyModeChangeNotification()
- {
- TInt value = 0;
- iQwertyModeStatusProperty.Get(value);
- iFepManager->SetQwertyMode(value);
- }
-
-TInt CAknFepSharedDataInterface::NumberModeChangesGSNotification()
- {
- iFepManager->NumberModeChangeGSNotification();
- return KErrNone;
- }
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-
-//
-//Intensionally not called methods
-// JapanesePredictiveTextSettingChangeGSNotification()
-// MultiTapTimerChangeGSNotification()
-// JapaneseQwertyFlagsChangeGSNotification()
-// PredictiveTextAutoCompleteSettingChangeGSNotification() - Autocompletion feature
-//
-TInt CAknFepSharedDataInterface::HandleGenericRepositoryChange(TAny* aPtr)
- {
- CAknFepSharedDataInterface *self = STATIC_CAST(CAknFepSharedDataInterface*, aPtr);
- TInt error = KErrNone;
- if(self->iAknFepRepositoryWatcher->ChangedKey() == KAknFepChineseInputMode)
- {
- error = InputModeChangeGSNotification(aPtr);
- }
- if(self->iAknFepRepositoryWatcher->ChangedKey() == KAknFepInputTxtLang)
- {
- error = InputTextLangGSNotification(aPtr);
- }
- if(self->iAknFepRepositoryWatcher->ChangedKey() == KAknFepPredTxtFlag)
- {
- error = PredictiveTextSettingChangeGSNotification(aPtr);
- }
- if(self->iAknFepRepositoryWatcher->ChangedKey() == KAknFepAutoCompleteFlag)
- {
- error = PredictiveTextAutoCompleteSettingChangeGSNotification(aPtr);
- }
- if(self->iAknFepRepositoryWatcher->ChangedKey() == KAknFepTypingCorrectionLevel)
- {
- error = PredictiveTextTypingCorrectionLevelChangeNotification(aPtr);
- }
- if(self->iAknFepRepositoryWatcher->ChangedKey() == KAknFepNumberCandidateFlag)
- {
- error = PredictiveTextNumberCandidateSettingChangeNotification(aPtr);
- }
- if(self->iAknFepRepositoryWatcher->ChangedKey() == KAknFepPrimaryCandidateFlag)
- {
- error = PredictiveTextPrimaryCandidateChangeNotification(aPtr);
- }
-
- return error;
- }
-#endif
-TInt CAknFepSharedDataInterface::HandleRepositoryCallBack(TAny* aPtr)
- {
- CAknFepSharedDataInterface *self = STATIC_CAST(CAknFepSharedDataInterface*, aPtr);
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-
- if( self->iAknFepRepositoryWatcher &&
- self->iAknFepRepositoryWatcher->IsGenericCenrepChange())
- {
- return HandleGenericRepositoryChange(aPtr);
- }
- else
-#endif
- if (self->iAknFepRepositoryWatcher)
- {
- if (self->iAknFepRepositoryWatcher->ChangedKey() == KAknFepHashKeySelection)
- {
- return HashKeySelectionNotification(aPtr);
- }
- if (self->iAknFepRepositoryWatcher->ChangedKey() == KAknFepChineseInputMode)
- {
- return InputModeChangeGSNotification(aPtr);
- }
- else if (self->iAknFepRepositoryWatcher->ChangedKey() == KAknFepInputTxtLang)
- {
- return InputTextLangGSNotification(aPtr);
- }
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-#ifdef FF_DUAL_LANGUAGE_SUPPORT
- else if (self->iAknFepRepositoryWatcher->ChangedKey() == KAknFepInputTxtLangSecondary)
- {
- return InputTextLangGSNotification(aPtr);
- }
-#endif //FF_DUAL_LANGUAGE_SUPPORT
-#endif
- else if (self->iAknFepRepositoryWatcher->ChangedKey() == KAknFepPredTxtFlag)
- {
- return PredictiveTextSettingChangeGSNotification(aPtr);
- }
- else if (self->iAknFepRepositoryWatcher->ChangedKey() == KAknFepJapanesePredTxtFlag)
- {
- return JapanesePredictiveTextSettingChangeGSNotification(aPtr);
- }
- else if (self->iAknFepRepositoryWatcher->ChangedKey() == KAknFepMultiTapTimer)
- {
- return MultiTapTimerChangeGSNotification(aPtr);
- }
- else if (self->iAknFepRepositoryWatcher->ChangedKey() == KAknFepJapaneseSpecialCharFlag)
- {
- return JapaneseQwertyFlagsChangeGSNotification(aPtr);
- }
-#ifndef RD_INTELLIGENT_TEXT_INPUT
- else if (self->iAknFepRepositoryWatcher->ChangedKey() == KAknFepAutoCompleteFlag)
- {
- return PredictiveTextAutoCompleteSettingChangeGSNotification(aPtr);
- }
-#endif //RD_INTELLIGENT_TEXT_INPUT
-#ifdef RD_INTELLIGENT_TEXT_INPUT
- else if (self->iAknFepRepositoryWatcher->ChangedKey() == KAknFepAutoCompleteFlag)
- {
- return PredictiveTextAutoCompleteSettingChangeGSNotification(aPtr);
- }
- else if (self->iAknFepRepositoryWatcher->ChangedKey() == KAknFepTypingCorrectionLevel)
- {
- return PredictiveTextTypingCorrectionLevelChangeNotification(aPtr);
- }
- else if (self->iAknFepRepositoryWatcher->ChangedKey() == KAknFepNumberCandidateFlag)
- {
- return PredictiveTextNumberCandidateSettingChangeNotification(aPtr);
- }
- else if (self->iAknFepRepositoryWatcher->ChangedKey() == KAknFepPrimaryCandidateFlag)
- {
- return PredictiveTextPrimaryCandidateChangeNotification(aPtr);
- }
- else if (self->iAknFepRepositoryWatcher->ChangedKey() == KAknFepPredTxtFlagExtension)
- {
- return PredictiveTextSettingChangeGSNotification(aPtr);
- }
-#endif
- }
-
- return KErrNone;
- }
-
-TInt CAknFepSharedDataInterface::HandleLocaleRepositoryCallBack(TAny* aPtr)
- {
- CAknFepSharedDataInterface *self = STATIC_CAST(CAknFepSharedDataInterface*, aPtr);
-
- if(self->iAknFepLocaleRepositoryWatcher)
- {
- if (self->iAknFepLocaleRepositoryWatcher->ChangedKey() == KSettingsDefaultNumberMode
- || self->iAknFepLocaleRepositoryWatcher->ChangedKey() == KSettingsIndicDefaultNumberMode)
- {
- return self->NumberModeChangesGSNotification();
- }
- }
- return KErrNone;
- }
-
-CAknFepSharedDataInterface::CSubscriber::CSubscriber(TCallBack aCallBack, RProperty& aProperty)
- :
- CActive(EPriorityNormal), iCallBack(aCallBack), iProperty(aProperty)
- {
- CActiveScheduler::Add(this);
- }
-
-CAknFepSharedDataInterface::CSubscriber::~CSubscriber()
- {
- Cancel();
- }
-
-void CAknFepSharedDataInterface::CSubscriber::SubscribeL()
- {
- if (!IsActive())
- {
- iProperty.Subscribe(iStatus);
- SetActive();
- }
- }
-
-void CAknFepSharedDataInterface::CSubscriber::StopSubscribe()
- {
- Cancel();
- }
-
-void CAknFepSharedDataInterface::CSubscriber::RunL()
- {
- if (iStatus.Int() == KErrNone)
- {
- iCallBack.CallBack();
- SubscribeL();
- }
- }
-
-void CAknFepSharedDataInterface::CSubscriber::DoCancel()
- {
- iProperty.Cancel();
- }
-
-
-TInt CAknFepSharedDataInterface::EditSubmenuInUse() const
- {
- TInt value = 0;
- if (iAknFepRepository)
- {
- iAknFepRepository->Get(KAknFepHashKeySelection, value);
- }
-
- return value;
- }
-
-
-
-TInt CAknFepSharedDataInterface::HashKeySelectionInUse()
- {
- // This is never used in qwerty modes.
- if (QwertyInputMode())
- {
- return 0;
- }
-
- TInt value = 0;
- if (iAknFepRepository)
- {
- iAknFepRepository->Get(KAknFepHashKeySelection, value);
- }
-
- return iHashKeySelectionInUse;
- }
-
-
-CAknFepRepositoryWatcher* CAknFepRepositoryWatcher::NewL(
- const TUid aUid,
- const TUint32 aKey,
- CCenRepNotifyHandler::TCenRepKeyType aKeyType,
- TCallBack aCallBack,
- CRepository* aRepository)
- {
- CAknFepRepositoryWatcher* self = new(ELeave) CAknFepRepositoryWatcher(aUid, aKey, aCallBack,
- aRepository);
-
- CleanupStack::PushL(self);
- self->ConstructL(aKeyType);
- CleanupStack::Pop(self);
-
- return self;
- }
-
-CAknFepRepositoryWatcher* CAknFepRepositoryWatcher::NewL(
- const TUid aUid,
- TCallBack aCallBack,
- CRepository* aRepository)
- {
- CAknFepRepositoryWatcher* self = new(ELeave) CAknFepRepositoryWatcher(aUid,
- NCentralRepositoryConstants::KInvalidNotificationId,
- aCallBack, aRepository);
-
- CleanupStack::PushL(self);
- self->ConstructL();
- CleanupStack::Pop(self);
-
- return self;
- }
-
-CAknFepRepositoryWatcher::~CAknFepRepositoryWatcher()
- {
- if( iNotifyHandler )
- {
- iNotifyHandler->StopListening();
- delete iNotifyHandler;
- iNotifyHandler = NULL;
- }
- }
-
-CAknFepRepositoryWatcher::CAknFepRepositoryWatcher(
- const TUid aUid,
- const TUint32 aKey,
- TCallBack aCallBack,
- CRepository* aRepository)
- :
- iUid(aUid), iKey(aKey), iCallBack(aCallBack), iRepository(aRepository)
-#ifdef RD_INTELLIGENT_TEXT_INPUT
- , iIsGeneric (EFalse)
-#endif
- {
- }
-
-void CAknFepRepositoryWatcher::ConstructL(CCenRepNotifyHandler::TCenRepKeyType aKeyType)
- {
- iNotifyHandler = CCenRepNotifyHandler::NewL(*this, *iRepository, aKeyType, iKey);
- iNotifyHandler->StartListeningL();
- }
-
-void CAknFepRepositoryWatcher::ConstructL()
- {
- iNotifyHandler = CCenRepNotifyHandler::NewL(*this, *iRepository);
- iNotifyHandler->StartListeningL();
- }
-
-TUint32 CAknFepRepositoryWatcher::ChangedKey()
- {
- return iChangedKey;
- }
-
-void CAknFepRepositoryWatcher::HandleNotifyInt(TUint32 aKey, TInt aNewValue)
- {
-#ifdef _DEBUG
- RDebug::Print(_L("AknFep: HandleNotifyInt aKey=%d, aNewValue=%d"), aKey, aNewValue);
-#endif
- iChangedKey = aKey;
-#ifdef RD_INTELLIGENT_TEXT_INPUT
- iIsGeneric = EFalse;
-#endif
- iCallBack.CallBack();
- iChangedKey = NCentralRepositoryConstants::KInvalidNotificationId;
- }
-
-void CAknFepRepositoryWatcher::HandleNotifyError(TUint32 /*aKey*/, TInt /*aError*/, CCenRepNotifyHandler* /*aHandler*/)
- {
- }
-
-/*
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-void CAknFepRepositoryWatcher::HandleNotifyGeneric(TUint32 aId)
- {
-#ifdef _DEBUG
- RDebug::Print(_L("AknFep: HandleNotifyGeneric aId=%d"), aId);
-#endif
- iChangedKey = aId;
- iIsGeneric = ETrue;
- iCallBack.CallBack();
- iChangedKey = NCentralRepositoryConstants::KInvalidNotificationId;
- }
-#else*/
-
-void CAknFepRepositoryWatcher::HandleNotifyGeneric(TUint32 aId)
- {
-#ifdef _DEBUG
- RDebug::Print(_L("AknFep: HandleNotifyGeneric aId=%d"), aId);
-#endif
- iChangedKey = aId;
- iCallBack.CallBack();
- iChangedKey = NCentralRepositoryConstants::KInvalidNotificationId;
- }
-//#endif
-
-/**
- * Multitap timer value.
- * Replaces the constant KMultiTapTimeoutMS in Japanese variant.
- *
- * @since 3.0
- * @return Value of KAknFepMultiTapTimer setting.
- */
-TInt CAknFepSharedDataInterface::MultiTapTimer() const
- {
- TInt value = 1000000;
- if (iAknFepRepository)
- {
- iAknFepRepository->Get(KAknFepMultiTapTimer, value);
- }
- return value;
- }
-
-/**
- * Change notification for Multitap timer.
- *
- * @since 3.0
- * @return return KErrNone if aObj isn't NULL
- * return KErrArgument if aObj is NULL
- */
-TInt CAknFepSharedDataInterface::MultiTapTimerChangeGSNotification(TAny* aObj)
- {
- if (aObj)
- {
- static_cast<CAknFepSharedDataInterface*>(aObj)->HandleMultiTapTimerChangeGSNotification();
- return KErrNone;
- }
- else
- {
- return KErrArgument;
- }
- }
-
-/**
- * Handle change notification for Multitap timer.
- *
- * @since 3.0
- */
-void CAknFepSharedDataInterface::HandleMultiTapTimerChangeGSNotification()
- {
- TInt value = MultiTapTimer();
- iFepManager->SetMultiTapTimer(value);
- }
-
-/**
- * Japanese Qwerty Flags value.
- * Replaces the constant KAknFepJapaneseSpecialCharFlag in Japanese variant.
- *
- * @since 3.0
- * @return Value of KAknFepJapaneseSpecialCharFlag setting.
- */
-TInt CAknFepSharedDataInterface::JapaneseQwertyFlags() const
- {
- TInt value = 0x000F;
- if (iAknFepRepository)
- {
- iAknFepRepository->Get(KAknFepJapaneseSpecialCharFlag, value);
- }
- return value;
- }
-
-/**
- * Change notification for Japanese Qwerty Flags.
- *
- * @since 3.0
- * @return return KErrNone if aObj isn't NULL
- * return KErrArgument if aObj is NULL
- */
-TInt CAknFepSharedDataInterface::JapaneseQwertyFlagsChangeGSNotification(TAny* aObj)
- {
- if (aObj)
- {
- static_cast<CAknFepSharedDataInterface*>(aObj)->HandleJapaneseQwertyFlagsChangeGSNotification();
- return KErrNone;
- }
- else
- {
- return KErrArgument;
- }
- }
-
-/**
- * Handle change notification for Japanese Qwerty Flags.
- *
- * @since 3.0
- */
-void CAknFepSharedDataInterface::HandleJapaneseQwertyFlagsChangeGSNotification()
- {
- TInt value = JapaneseQwertyFlags();
- iFepManager->SetJapaneseQwertyFlags(value);
- }
-
-/**
- * Returns a value of current clear direction.
- *
- * @since 3.2
- * @return Value of KAknFepClearDirection setting.
- */
-TInt CAknFepSharedDataInterface::ClearDirection() const
- {
- TInt value = EClearDirectionLeft;
- if (iAknFepRepository)
- {
- iAknFepRepository->Get(KAknFepClearDirection, value);
- }
- return value;
- }
-
-/**
- * Set a value of current clear direction.
- *
- * @since 3.2
- * @param aValue new value set to Clear Direction shared data item which
- * represents the direction currently being used
- */
-void CAknFepSharedDataInterface::SetClearDirection(TInt aValue)
- {
- if (iAknFepRepository)
- {
- iAknFepRepository->Set(KAknFepClearDirection, aValue);
- }
- }
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-TInt CAknFepSharedDataInterface::HandleKeyboardLayoutChangeNotification(TAny* aObj)
- {
- if (aObj)
- {
- static_cast<CAknFepSharedDataInterface*>(aObj)->HandleKeyboardLayoutChange();
- return KErrNone;
- }
- else
- {
- return KErrArgument;
- }
- }
-#endif
-
-
-void CAknFepSharedDataInterface::SetPredictiveTextAutoCompleteOn()
- {
- if (iAknFepRepository)
- {
-#ifdef RD_INTELLIGENT_TEXT_INPUT
- //Set autocomplete flag only for the current keyboard layout type. Otherwise,
- //by simply setting to "1", we los information on autocompletion settings
- //of other keyboard types.
- TPtiKeyboardType currentKeyboardLayoutlayout = (TPtiKeyboardType)KeyboardLayout();
- TInt autocompletionSetting = 0;
- iAknFepRepository->Get(KAknFepAutoCompleteFlag, autocompletionSetting);
- switch(currentKeyboardLayoutlayout)
- {
- case EPtiKeyboardNone:
- break;
- case EPtiKeyboard12Key:
- autocompletionSetting |= EKeyboardStyle12Key;
- break;
- case EPtiKeyboardQwerty4x12:
- case EPtiKeyboardQwerty4x10:
- case EPtiKeyboardQwerty3x11:
- case EPtiKeyboardHalfQwerty:
- case EPtiKeyboardCustomQwerty:
- autocompletionSetting |= EKeyboardStyleQwerty;
- break;
- default:
- break;
- }
- iAknFepRepository->Set(KAknFepAutoCompleteFlag, autocompletionSetting);
-#else
- iAknFepRepository->Set(KAknFepAutoCompleteFlag, 1);
-#endif
- }
- }
-
-
-void CAknFepSharedDataInterface::ResetPredictiveTextAutoCompleteOn()
- {
- if (iAknFepRepository)
- {
-#ifdef RD_INTELLIGENT_TEXT_INPUT
- //Reset autocomplete flag only for the current keyboard layout type. Otherwise,
- //by simply setting to "0", we lose information on autocompletion settings
- //of other keyboard types.
- TPtiKeyboardType currentKeyboardLayoutlayout = (TPtiKeyboardType)KeyboardLayout();
- TInt autocompletionSetting = 0;
- iAknFepRepository->Get(KAknFepAutoCompleteFlag, autocompletionSetting);
- switch(currentKeyboardLayoutlayout)
- {
- case EPtiKeyboardNone:
- break;
- case EPtiKeyboard12Key:
- autocompletionSetting &= ~EKeyboardStyle12Key;
- break;
- case EPtiKeyboardQwerty4x12:
- case EPtiKeyboardQwerty4x10:
- case EPtiKeyboardQwerty3x11:
- case EPtiKeyboardHalfQwerty:
- case EPtiKeyboardCustomQwerty:
- autocompletionSetting &= ~EKeyboardStyleQwerty;
- break;
- default:
- break;
- }
- iAknFepRepository->Set(KAknFepAutoCompleteFlag, autocompletionSetting);
-#else
- iAknFepRepository->Set(KAknFepAutoCompleteFlag, 0);
-#endif
- }
- }
-
-#ifndef RD_INTELLIGENT_TEXT_INPUT
-void CAknFepSharedDataInterface::HandlePredictiveTextAutoCompleteSettingGSChange()
- {
- TInt value = 0;
- if (iAknFepRepository)
- {
- iAknFepRepository->Get(KAknFepAutoCompleteFlag, value);
- }
- iFepManager->SetAutoCompletionState(value);
- }
-
-
-TInt CAknFepSharedDataInterface::PredictiveTextAutoCompleteSettingChangeGSNotification(TAny* aObj)
- {
- if (aObj)
- {
- static_cast<CAknFepSharedDataInterface*>(aObj)->HandlePredictiveTextAutoCompleteSettingGSChange();
- return KErrNone;
- }
- else
- {
- return KErrArgument;
- }
- }
-
-#endif //RD_INTELLIGENT_TEXT_INPUT
-
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-void CAknFepSharedDataInterface::SetFnKeyState(TInt aState)
- {
- RProperty::Set(KPSUidAknFep,KAknFepFnKeyState, aState);
- }
-
-TInt CAknFepSharedDataInterface::GetFnKeyState()
- {
- TInt state = 0;
- RProperty::Get(KPSUidAknFep,KAknFepFnKeyState, state);
- return state;
- }
-void CAknFepSharedDataInterface::HandleKeyboardLayoutChange()
- {
- TInt value = 0;
- TPtiKeyboardType keyboardType;
- iKeyboardLayoutStatusProperty.Get(value);
- keyboardType = (TPtiKeyboardType)value;
- iFepManager->SetKeyboardLayout(keyboardType);
- iFepManager->SetFnKeyMappingState();
-#ifdef __ITI_VIRTUAL_TOUCH_FIRST_GENERATION_SUPPORT__
- iFepManager->StopDisplayingMenuBar();
-#endif //__ITI_VIRTUAL_TOUCH_FIRST_GENERATION_SUPPORT__
- }
-TInt CAknFepSharedDataInterface::PredictiveTextAutoCompleteOn()
- {
- TInt value = 0;
- if (iAknFepRepository)
- {
- TPtiKeyboardType layout = (TPtiKeyboardType)KeyboardLayout();
- TInt temp = 0;
- iAknFepRepository->Get(KAknFepAutoCompleteFlag, temp);
- switch(layout)
- {
- case EPtiKeyboardNone:
- break;
- case EPtiKeyboard12Key:
- temp &= EKeyboardStyle12Key;
- break;
- case EPtiKeyboardHalfQwerty:
- temp &= EKeyboardStyleHalfQwerty;
- break;
- case EPtiKeyboardQwerty4x12:
- case EPtiKeyboardQwerty4x10:
- case EPtiKeyboardQwerty3x11:
- case EPtiKeyboardCustomQwerty:
- temp &= EKeyboardStyleQwerty;
- break;
- default:
- break;
- }
- value = ( temp ? 1 : 0);
- }
- return value;
- }
-
-void CAknFepSharedDataInterface::HandlePredictiveTextAutoCompleteSettingGSChange()
- {
- TInt value = 0;
- if (iAknFepRepository)
- {
- iAknFepRepository->Get(KAknFepAutoCompleteFlag, value);
- }
- TPtiKeyboardType layout = (TPtiKeyboardType)KeyboardLayout();
- switch(layout)
- {
- case EPtiKeyboardNone:
- break;
- case EPtiKeyboard12Key:
- value &= EKeyboardStyle12Key;
- break;
- case EPtiKeyboardHalfQwerty:
- value &= EKeyboardStyleHalfQwerty;
- break;
- case EPtiKeyboardQwerty4x12:
- case EPtiKeyboardQwerty4x10:
- case EPtiKeyboardQwerty3x11:
- case EPtiKeyboardCustomQwerty:
- value &= EKeyboardStyleQwerty;
- break;
- default:
- break;
- }
- if (value > 0)
- {
- value = 1;
- }
- iFepManager->SetAutoCompletionState(value);
- }
-
-
-TInt CAknFepSharedDataInterface::PredictiveTextAutoCompleteSettingChangeGSNotification(TAny* aObj)
- {
- if (aObj)
- {
- static_cast<CAknFepSharedDataInterface*>(aObj)->HandlePredictiveTextAutoCompleteSettingGSChange();
- return KErrNone;
- }
- else
- {
- return KErrArgument;
- }
- }
-/**
- * Queries the value of PredictiveText Typing Correction Level from shared data
- *
- * @return Typing Correction Level
-*/
-TInt CAknFepSharedDataInterface::PredictiveTextTypingCorrectionLevel()
- {
- TInt value = 0;
- if (iAknFepRepository)
- {
- iAknFepRepository->Get(KAknFepTypingCorrectionLevel, value);
- }
- return value;
- }
-
-
-/**
- * Sets the value of PredictiveText Typing Correction Level state to aCorrectionLevel in shared data
-*/
-void CAknFepSharedDataInterface::SetPredictiveTextTypingCorrectionLevel(TInt aCorrectionLevel)
- {
- if (iAknFepRepository)
- {
- iAknFepRepository->Set(KAknFepTypingCorrectionLevel, aCorrectionLevel);
- }
- }
-
-void CAknFepSharedDataInterface::HandlePredictiveTextTypingCorrectionLevelChange()
- {
- TInt value = 0;
- if (iAknFepRepository)
- {
- iAknFepRepository->Get(KAknFepTypingCorrectionLevel, value);
- }
- iFepManager->SetTypingCorrectionLevel(value);
- }
-
- /**
- * Handles a change in predictive text Typing Correction Level setting.
-*/
-TInt CAknFepSharedDataInterface::PredictiveTextTypingCorrectionLevelChangeNotification(TAny* aObj)
- {
- if (aObj)
- {
- static_cast<CAknFepSharedDataInterface*>(aObj)->HandlePredictiveTextTypingCorrectionLevelChange();
- return KErrNone;
- }
- else
- {
- return KErrArgument;
- }
- }
-
-/**
- * Queries the value of PredictiveText Number Candidate Shown state to be On from shared data
- *
- * @return 1 for shown or 0 for not shown
-*/
-TInt CAknFepSharedDataInterface::PredictiveTextNumberCandidateShown()
- {
- TInt value = 0;
- if (iAknFepRepository)
- {
- iAknFepRepository->Get(KAknFepNumberCandidateFlag, value);
- }
- return value;
- }
-
-
-/**
- * Sets the value of PredictiveText Number Candidate Shown state to 1 in shared data - this
- * is used to represent predictive text Number Candidate Shown being shown.
-*/
-void CAknFepSharedDataInterface::SetPredictiveTextNumberCandidateShown()
- {
- if (iAknFepRepository)
- {
- iAknFepRepository->Set(KAknFepNumberCandidateFlag, 1);
- }
- }
-
-
-/**
- * Sets the value of PredictiveText Number Candidate Shown state to 0 in shared data - this
- * is used to represent predictive text Number Candidate Shown being not shown.
-*/
-void CAknFepSharedDataInterface::ResetPredictiveTextNumberCandidateShown()
- {
- if (iAknFepRepository)
- {
- iAknFepRepository->Set(KAknFepNumberCandidateFlag, 0);
- }
- }
-
-void CAknFepSharedDataInterface::HandlePredictiveTextNumberCandidateSettingChange()
- {
- TInt value = 0;
- if (iAknFepRepository)
- {
- iAknFepRepository->Get(KAknFepNumberCandidateFlag, value);
- }
- iFepManager->SetNumberCandidateState(value);
- }
-
-/**
- * Handles a change in predictive text Number Candidate Shown setting.
-*/
-TInt CAknFepSharedDataInterface::PredictiveTextNumberCandidateSettingChangeNotification(TAny* aObj)
- {
- if (aObj)
- {
- static_cast<CAknFepSharedDataInterface*>(aObj)->HandlePredictiveTextNumberCandidateSettingChange();
- return KErrNone;
- }
- else
- {
- return KErrArgument;
- }
- }
-
-/**
-* Queries the value of PredictiveText Primary candidate setting from shared data
-*
-* @return Primary candidate setting(0 for Suggested or 1 for Exact)
-*/
-TInt CAknFepSharedDataInterface::PredictiveTextPrimaryCandidate()
- {
- TInt value = 0;
- if (iAknFepRepository)
- {
- iAknFepRepository->Get(KAknFepPrimaryCandidateFlag, value);
- }
- return value;
- }
-
-
-/**
-* Sets the value of PredictiveText Primary candidate setting state to aPrimaryCandidate in shared data
-*/
-void CAknFepSharedDataInterface::SetPredictiveTextPrimaryCandidate(TInt aPrimaryCandidate)
- {
- if (iAknFepRepository)
- {
- iAknFepRepository->Set(KAknFepPrimaryCandidateFlag, aPrimaryCandidate);
- }
- }
-/**
-* Handles a change in predictive text Primary candidate setting.
-*/
-void CAknFepSharedDataInterface::HandlePredictiveTextPrimaryCandidateChange()
- {
- TInt value = 0;
- if (iAknFepRepository)
- {
- iAknFepRepository->Get(KAknFepPrimaryCandidateFlag, value);
- }
- iFepManager->SetPrimaryCandidate(value);
- }
-
-/**
-* Handles a change in predictive text Typing Correction Level setting.
-*/
-TInt CAknFepSharedDataInterface::PredictiveTextPrimaryCandidateChangeNotification(TAny* aObj)
- {
- if (aObj)
- {
- static_cast<CAknFepSharedDataInterface*>(aObj)->HandlePredictiveTextPrimaryCandidateChange();
- return KErrNone;
- }
- else
- {
- return KErrArgument;
- }
- }
-#else // RD_INTELLIGENT_TEXT_INPUT
-
-TInt CAknFepSharedDataInterface::PredictiveTextAutoCompleteOn()
- {
- TInt value = 0;
- if (iAknFepRepository)
- {
- iAknFepRepository->Get(KAknFepAutoCompleteFlag, value);
- }
- return value;
- }
-#endif
-/**
- * Returns a value of HWR conversion on/off.
- *
- * @since 3.2
- * @return Value of KAknFepJapaneseHwrConversion setting.
- */
-TInt CAknFepSharedDataInterface::JapaneseHwrConversion() const
- {
- TInt value = 0;
- if (iAknFepRepository)
- {
- iAknFepRepository->Get(KAknFepJapaneseSpecialCharFlag, value);
- }
- return (value & KJapHwrConversion)?
- EJapaneseConversionOn : EJapaneseConversionOff;
- }
-
-/**
- * Set a value of HWR conversion on/off.
- *
- * @since 3.2
- * @param aValue new value set to HWR conversion on/off shared data item
- */
-void CAknFepSharedDataInterface::SetJapaneseHwrConversion(TInt aValue)
- {
- if (iAknFepRepository)
- {
- TInt value;
- iAknFepRepository->Get(KAknFepJapaneseSpecialCharFlag, value);
- if (aValue == EJapaneseConversionOn)
- {
- value |= KJapHwrConversion;
- }
- else
- {
- value &= ~(KJapHwrConversion);
- }
- iAknFepRepository->Set(KAknFepJapaneseSpecialCharFlag, value);
- }
- }
-
-TInt CAknFepSharedDataInterface::FepShowFsqPreviewStatus()
- {
- TInt value = 0;
- if (iAknFepRepository)
- {
- iAknFepRepository->Get(KAknFepShowFsqPreview, value);
- }
- return value;
- }
-
-
-void CAknFepSharedDataInterface::SetFepShowFsqPreviewStatus(TInt aValue)
- {
- if (iAknFepRepository)
- {
- iAknFepRepository->Set(KAknFepShowFsqPreview, aValue);
- }
- }
-
-TInt CAknFepSharedDataInterface::FepShowVkbPreviewStatus()
- {
- TInt value = 0;
- if (iAknFepRepository)
- {
- iAknFepRepository->Get(KAknFepShowVkbPreview, value);
- }
- return value;
- }
-
-
-void CAknFepSharedDataInterface::SetFepShowVkbPreviewStatus(TInt aValue)
- {
- if (iAknFepRepository)
- {
- iAknFepRepository->Set(KAknFepShowVkbPreview, aValue);
- }
- }
-
-TInt CAknFepSharedDataInterface::FepLastUseVkbModeForLandscape()
- {
- TInt value = 4;
- if (iAknFepRepository)
- {
- iAknFepRepository->Get(KAknFepLastUseVkbMode, value);
- }
- return value;
- }
-
-
-void CAknFepSharedDataInterface::SetFepLastUseVkbModeForLandscape(TInt aValue)
- {
- if (iAknFepRepository)
- {
- iAknFepRepository->Set(KAknFepLastUseVkbMode, aValue);
- }
- }
-
-TBool CAknFepSharedDataInterface::AutoRotateEnabled()
- {
- TInt sensorState( 0 );
-
- if (iSensorRepository)
- {
- iSensorRepository->Get( KSenSettingsSensorsOn, sensorState );
- }
- if ( sensorState )
- {
- TInt turnCtrl = 0;
- iSensorRepository->Get( KSenSettingsTurnCtrl, turnCtrl );
- turnCtrl = turnCtrl >> 2;
-
- if ( turnCtrl )
- {
- return ETrue;
- }
- }
-
- return EFalse;
- }
-
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-#ifdef __ITI_LONGPRESS_NUM_SHIFT_COPYPASTE__
-/**
-* Queries if numbers (and other characters found behind Fn) can be entered with long key press on QWERTY.
-*/
-TBool CAknFepSharedDataInterface::LongPressNumberEntryOnQwerty() const
- {
- TInt value = 0;
- if (iAknFepRepository)
- {
- iAknFepRepository->Get(KAknFepLongPressNumberEntryOnQwerty, value);
- }
- return value;
- }
-
-/**
-* Queries if copy-pasting with shift+softkeys is available also on QWERTY.
-*/
-TBool CAknFepSharedDataInterface::ShiftCopyPastingOnQwerty() const
- {
- TInt value = 0;
- if (iAknFepRepository)
- {
- iAknFepRepository->Get(KAknFepShiftCopyPasteOnQwerty, value);
- }
- return value;
- }
-#endif // __ITI_LONGPRESS_NUM_SHIFT_COPYPASTE__
-#endif // RD_INTELLIGENT_TEXT_INPUT
-
-#ifdef RD_SCALABLE_UI_V2
-// ---------------------------------------------------------------------------
-// Get a value of current default on screen vkb.
-// It depends on input lanage is PRC/HW/TW Chinese.
-// ---------------------------------------------------------------------------
-//
-TInt CAknFepSharedDataInterface::DefaultOnScreenVKB()
- {
- TInt value = 0;
- switch( PenInputLanguage() )
- {
- case ELangPrcChinese:
- {
- iGsPenSettings->Get( KSettingsDefaultVkbPrc, value );
- }
- break;
- case ELangHongKongChinese:
- {
- iGsPenSettings->Get( KSettingsDefaultVkbHk, value );
- }
- break;
- case ELangTaiwanChinese:
- {
- iGsPenSettings->Get( KSettingsDefaultVkbTw, value );
- }
- break;
- default:
- break;
- }
- return value;
- };
-#endif
-
-// End of File