textinput/peninputarc/gsplugin/gspeninputplugin/src/gspeninputmodel.cpp
branchRCL_3
changeset 20 ebd48d2de13c
parent 8 4eb1ae11334f
child 21 ecbabf52600f
--- a/textinput/peninputarc/gsplugin/gspeninputplugin/src/gspeninputmodel.cpp	Thu Aug 19 10:15:25 2010 +0300
+++ b/textinput/peninputarc/gsplugin/gspeninputplugin/src/gspeninputmodel.cpp	Tue Aug 31 15:31:50 2010 +0300
@@ -48,8 +48,6 @@
 const TUid KUidtruiApp = { 0x2000B104 };
 const TUid KUidPenInputSettingApp = { 0x2001959B };
 
-const TInt KFepChineseInputModeLength = 10;
-
 _LIT(KLeftBracket, "(" );
 _LIT(KRightBracket, ")" );
 
@@ -1187,9 +1185,7 @@
         case ELangHongKongChinese:
         case ELangTaiwanChinese:
             {
-            TBuf<KFepChineseInputModeLength> conversion;
-            conversion.Num(aInputMode, EHex);
-            iAknfepRepository->Set( KAknFepChineseInputMode, conversion );
+            iAknfepRepository->Set(KAknFepChineseInputMode, aInputMode);
             }
             break;
          default:
@@ -1204,33 +1200,14 @@
 //
 TInt CGSPenInputModel::GetFepInputMode()
     {
-    TUint inputMode = 0;
+    TInt inputMode = 0;
     switch(iInputLanguage)
         {
         case ELangPrcChinese:
         case ELangHongKongChinese:
         case ELangTaiwanChinese:
             {
-            _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<KFepChineseInputModeLength> 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(inputMode, EHex);
+            iAknfepRepository->Get(KAknFepChineseInputMode, inputMode);
             }
             break;
          default:
@@ -1268,7 +1245,20 @@
         {
         case EGSInputpenIdHwrTraining:
             {
-            iIsHwrTrainingAviliable = EFalse;              
+            iIsHwrTrainingAviliable = EFalse;
+            TInt supportMode = EPluginInputModeNone;
+            if(KErrNone == iConnectErr)
+                {
+                supportMode = iPenInputServer.SupportInputMode();
+                }
+            TBool supportHWR = EFalse;
+            if(supportMode & EPluginInputModeHwr ||
+               supportMode & EPluginInputModeFSc ||
+               supportMode & EPluginInputModeFingerHwr)
+                {
+                supportHWR = ETrue;
+                }
+              
             CEikonEnv* env = CEikonEnv::Static();
             TUid appUid = env->EikAppUi()
                           ->Application()->AppDllUid();
@@ -1285,17 +1275,15 @@
                     iIsHwrTrainingAviliable = EFalse;                    
                     }
                 else
-                    {
+                       {
                     iIsHwrTrainingAviliable = IsTruiSupportedLanguage();
-                    }
-                }                
+                       }
+                   }                
             else
                 {
                 iIsHwrTrainingAviliable = IsTruiSupportedLanguage();
                 }
-            res = ( !ChineseLanguage() && !JapaneseLanguage() 
-            		&& iIsHwrTrainingAviliable 
-            		&& IsSupportHWR() );
+            res = ( !ChineseLanguage() && !JapaneseLanguage() && iIsHwrTrainingAviliable && supportHWR);
             }
             break;
         case EGSInputpenIdInputLanguage:
@@ -1317,43 +1305,47 @@
             
         case EGSInputpenIdGuidLine:
             {
-            res = ( !ChineseLanguage() && !JapaneseLanguage() && IsSupportHWR());
-            if(FeatureManager::FeatureSupported(KFeatureIdFfCapacitiveDisplay)&&
-                    iInputLanguage == ELangArabic)
+            TInt supportMode = EPluginInputModeNone;
+            if(KErrNone == iConnectErr)
                 {
-                res = EFalse;
+                supportMode = iPenInputServer.SupportInputMode();
                 }
+            
+            TBool supportHWR = EFalse;
+            if(supportMode & EPluginInputModeHwr ||
+               supportMode & EPluginInputModeFSc ||
+               supportMode & EPluginInputModeFingerHwr)
+                {
+                supportHWR = ETrue;
+                }
+            
+            res = ( !ChineseLanguage() && !JapaneseLanguage() && supportHWR);
             }
             break;
 
         case EGSInputpenIdRecognitionWithDictionary:
             {
-            res = EFalse;//item is useless after updating arabic hwr engine.
-//            TInt currentLanguage = InputLanguage(); // add this line
-//            if (currentLanguage == ELangArabic)
-//                {
-//                res = ETrue;
-//                }
+            TInt currentLanguage = InputLanguage(); // add this line
+            if (currentLanguage == ELangArabic)
+                {
+                res = ETrue;
+                }
             }              
             break;   
             
         case EGSInputpenIdWritingSpeed:
         case EGSInputpenIdPenTrailWidth:
-            {
-            if(IsSupportHWR())
-                {
-                res = ETrue;
-                }
-            if(FeatureManager::FeatureSupported(KFeatureIdFfCapacitiveDisplay)&&
-                    iInputLanguage == ELangArabic)
-                {//Hide item in setting list in arabic finger hwr.
-                res = EFalse;
-                }            
-            }
-            break;
         case EGSInputpenIdPenTrailColour:
             {
-            if(IsSupportHWR())
+            TInt supportMode = EPluginInputModeNone;
+            if(KErrNone == iConnectErr)
+                {
+                supportMode = iPenInputServer.SupportInputMode();
+                }
+               
+            if(supportMode & EPluginInputModeHwr ||
+               supportMode & EPluginInputModeFSc ||
+               supportMode & EPluginInputModeFingerHwr)
                 {
                 res = ETrue;
                 }
@@ -1415,25 +1407,4 @@
     return EFalse;
     }
 
-// ---------------------------------------------------------
-// Check if support hwr.
-// ---------------------------------------------------------
-//
-TBool CGSPenInputModel::IsSupportHWR()
-	{
-	TInt supportMode = EPluginInputModeNone;
-    if(KErrNone == iConnectErr)
-        {
-        supportMode = iPenInputServer.SupportInputMode( iInputLanguage );
-        }
-
-    if( supportMode & EPluginInputModeHwr ||
-        supportMode & EPluginInputModeFSc ||
-        supportMode & EPluginInputModeFingerHwr)
-        {
-        return ETrue;
-        }    
-    return EFalse;
-	}
-
 //  End Of File