Loading java/res/values-de/config.xml 0 → 100644 +23 −0 Original line number Diff line number Diff line <?xml version="1.0" encoding="utf-8"?> <!-- /* ** ** Copyright 2011, The Android Open Source Project ** ** Licensed under the Apache License, Version 2.0 (the "License"); ** you may not use this file except in compliance with the License. ** You may obtain a copy of the License at ** ** http://www.apache.org/licenses/LICENSE-2.0 ** ** Unless required by applicable law or agreed to in writing, software ** distributed under the License is distributed on an "AS IS" BASIS, ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. ** See the License for the specific language governing permissions and ** limitations under the License. */ --> <resources> <bool name="config_require_umlaut_processing">true</bool> </resources> java/res/values/config.xml +1 −0 Original line number Diff line number Diff line Loading @@ -78,4 +78,5 @@ </string-array> <!-- Screen metrics for logging. 0 = "mdpi", 1 = "hdpi", 2 = "xlarge" --> <integer name="log_screen_metrics">0</integer> <bool name="config_require_umlaut_processing">false</bool> </resources> java/res/xml/method.xml +0 −1 Original line number Diff line number Diff line Loading @@ -72,7 +72,6 @@ android:label="@string/subtype_mode_de_keyboard" android:imeSubtypeLocale="de" android:imeSubtypeMode="keyboard" android:imeSubtypeExtraValue="requiresGermanUmlautProcessing" /> <!-- <subtype android:icon="@drawable/ic_subtype_mic" --> <!-- android:label="@string/subtype_mode_de_voice" --> Loading java/src/com/android/inputmethod/latin/BinaryDictionary.java +10 −24 Original line number Diff line number Diff line Loading @@ -63,18 +63,12 @@ public class BinaryDictionary extends Dictionary { private final KeyboardSwitcher mKeyboardSwitcher = KeyboardSwitcher.getInstance(); public static class Flag { public final String mName; public final int mValue; public Flag(String name, int value) { mName = name; mValue = value; } } public static final Flag FLAG_REQUIRES_GERMAN_UMLAUT_PROCESSING = new Flag("requiresGermanUmlautProcessing", 0x1); new Flag(R.bool.config_require_umlaut_processing, 0x1); // Can create a new flag from extravalue : // public static final Flag FLAG_MYFLAG = // new Flag("my_flag", 0x02); private static final Flag[] ALL_FLAGS = { // Here should reside all flags that trigger some special processing Loading Loading @@ -118,12 +112,12 @@ public class BinaryDictionary extends Dictionary { return null; } } sInstance.mFlags = initFlags(ALL_FLAGS, SubtypeSwitcher.getInstance()); sInstance.mFlags = Flag.initFlags(ALL_FLAGS, context, SubtypeSwitcher.getInstance()); return sInstance; } /* package for test */ static BinaryDictionary initDictionary(File dictionary, long startOffset, long length, int dicTypeId, Flag[] flagArray) { /* package for test */ static BinaryDictionary initDictionary(Context context, File dictionary, long startOffset, long length, int dicTypeId, Flag[] flagArray) { synchronized (sInstance) { sInstance.closeInternal(); if (dictionary.isFile()) { Loading @@ -134,19 +128,10 @@ public class BinaryDictionary extends Dictionary { return null; } } sInstance.mFlags = initFlags(flagArray, null); sInstance.mFlags = Flag.initFlags(flagArray, context, null); return sInstance; } private static int initFlags(Flag[] flagArray, SubtypeSwitcher switcher) { int flags = 0; for (Flag entry : flagArray) { if (switcher == null || switcher.currentSubtypeContainsExtraValueKey(entry.mName)) flags |= entry.mValue; } return flags; } static { Utils.loadNativeLibrary(); } Loading Loading @@ -179,6 +164,7 @@ public class BinaryDictionary extends Dictionary { sInstance.mDicTypeId = dicTypeId; } } sInstance.mFlags = Flag.initFlags(ALL_FLAGS, context, SubtypeSwitcher.getInstance()); return sInstance; } Loading java/src/com/android/inputmethod/latin/Flag.java 0 → 100644 +64 −0 Original line number Diff line number Diff line /* * Copyright (C) 2011 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); you may not * use this file except in compliance with the License. You may obtain a copy of * the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the * License for the specific language governing permissions and limitations under * the License. */ package com.android.inputmethod.latin; import android.content.Context; import android.content.res.Resources; public class Flag { public final String mName; public final int mResource; public final int mMask; public final int mSource; static private final int SOURCE_CONFIG = 1; static private final int SOURCE_EXTRAVALUE = 2; public Flag(int resourceId, int mask) { mName = null; mResource = resourceId; mSource = SOURCE_CONFIG; mMask = mask; } public Flag(String name, int mask) { mName = name; mResource = 0; mSource = SOURCE_EXTRAVALUE; mMask = mask; } // If context/switcher are null, set all related flags in flagArray to on. public static int initFlags(Flag[] flagArray, Context context, SubtypeSwitcher switcher) { int flags = 0; final Resources res = null == context ? null : context.getResources(); for (Flag entry : flagArray) { switch (entry.mSource) { case Flag.SOURCE_CONFIG: if (res == null || res.getBoolean(entry.mResource)) flags |= entry.mMask; break; case Flag.SOURCE_EXTRAVALUE: if (switcher == null || switcher.currentSubtypeContainsExtraValueKey(entry.mName)) flags |= entry.mMask; break; } } return flags; } } Loading
java/res/values-de/config.xml 0 → 100644 +23 −0 Original line number Diff line number Diff line <?xml version="1.0" encoding="utf-8"?> <!-- /* ** ** Copyright 2011, The Android Open Source Project ** ** Licensed under the Apache License, Version 2.0 (the "License"); ** you may not use this file except in compliance with the License. ** You may obtain a copy of the License at ** ** http://www.apache.org/licenses/LICENSE-2.0 ** ** Unless required by applicable law or agreed to in writing, software ** distributed under the License is distributed on an "AS IS" BASIS, ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. ** See the License for the specific language governing permissions and ** limitations under the License. */ --> <resources> <bool name="config_require_umlaut_processing">true</bool> </resources>
java/res/values/config.xml +1 −0 Original line number Diff line number Diff line Loading @@ -78,4 +78,5 @@ </string-array> <!-- Screen metrics for logging. 0 = "mdpi", 1 = "hdpi", 2 = "xlarge" --> <integer name="log_screen_metrics">0</integer> <bool name="config_require_umlaut_processing">false</bool> </resources>
java/res/xml/method.xml +0 −1 Original line number Diff line number Diff line Loading @@ -72,7 +72,6 @@ android:label="@string/subtype_mode_de_keyboard" android:imeSubtypeLocale="de" android:imeSubtypeMode="keyboard" android:imeSubtypeExtraValue="requiresGermanUmlautProcessing" /> <!-- <subtype android:icon="@drawable/ic_subtype_mic" --> <!-- android:label="@string/subtype_mode_de_voice" --> Loading
java/src/com/android/inputmethod/latin/BinaryDictionary.java +10 −24 Original line number Diff line number Diff line Loading @@ -63,18 +63,12 @@ public class BinaryDictionary extends Dictionary { private final KeyboardSwitcher mKeyboardSwitcher = KeyboardSwitcher.getInstance(); public static class Flag { public final String mName; public final int mValue; public Flag(String name, int value) { mName = name; mValue = value; } } public static final Flag FLAG_REQUIRES_GERMAN_UMLAUT_PROCESSING = new Flag("requiresGermanUmlautProcessing", 0x1); new Flag(R.bool.config_require_umlaut_processing, 0x1); // Can create a new flag from extravalue : // public static final Flag FLAG_MYFLAG = // new Flag("my_flag", 0x02); private static final Flag[] ALL_FLAGS = { // Here should reside all flags that trigger some special processing Loading Loading @@ -118,12 +112,12 @@ public class BinaryDictionary extends Dictionary { return null; } } sInstance.mFlags = initFlags(ALL_FLAGS, SubtypeSwitcher.getInstance()); sInstance.mFlags = Flag.initFlags(ALL_FLAGS, context, SubtypeSwitcher.getInstance()); return sInstance; } /* package for test */ static BinaryDictionary initDictionary(File dictionary, long startOffset, long length, int dicTypeId, Flag[] flagArray) { /* package for test */ static BinaryDictionary initDictionary(Context context, File dictionary, long startOffset, long length, int dicTypeId, Flag[] flagArray) { synchronized (sInstance) { sInstance.closeInternal(); if (dictionary.isFile()) { Loading @@ -134,19 +128,10 @@ public class BinaryDictionary extends Dictionary { return null; } } sInstance.mFlags = initFlags(flagArray, null); sInstance.mFlags = Flag.initFlags(flagArray, context, null); return sInstance; } private static int initFlags(Flag[] flagArray, SubtypeSwitcher switcher) { int flags = 0; for (Flag entry : flagArray) { if (switcher == null || switcher.currentSubtypeContainsExtraValueKey(entry.mName)) flags |= entry.mValue; } return flags; } static { Utils.loadNativeLibrary(); } Loading Loading @@ -179,6 +164,7 @@ public class BinaryDictionary extends Dictionary { sInstance.mDicTypeId = dicTypeId; } } sInstance.mFlags = Flag.initFlags(ALL_FLAGS, context, SubtypeSwitcher.getInstance()); return sInstance; } Loading
java/src/com/android/inputmethod/latin/Flag.java 0 → 100644 +64 −0 Original line number Diff line number Diff line /* * Copyright (C) 2011 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); you may not * use this file except in compliance with the License. You may obtain a copy of * the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the * License for the specific language governing permissions and limitations under * the License. */ package com.android.inputmethod.latin; import android.content.Context; import android.content.res.Resources; public class Flag { public final String mName; public final int mResource; public final int mMask; public final int mSource; static private final int SOURCE_CONFIG = 1; static private final int SOURCE_EXTRAVALUE = 2; public Flag(int resourceId, int mask) { mName = null; mResource = resourceId; mSource = SOURCE_CONFIG; mMask = mask; } public Flag(String name, int mask) { mName = name; mResource = 0; mSource = SOURCE_EXTRAVALUE; mMask = mask; } // If context/switcher are null, set all related flags in flagArray to on. public static int initFlags(Flag[] flagArray, Context context, SubtypeSwitcher switcher) { int flags = 0; final Resources res = null == context ? null : context.getResources(); for (Flag entry : flagArray) { switch (entry.mSource) { case Flag.SOURCE_CONFIG: if (res == null || res.getBoolean(entry.mResource)) flags |= entry.mMask; break; case Flag.SOURCE_EXTRAVALUE: if (switcher == null || switcher.currentSubtypeContainsExtraValueKey(entry.mName)) flags |= entry.mMask; break; } } return flags; } }