Loading java/res/values/sudden-jumping-touch-event-device-list.xml +4 −4 Original line number Diff line number Diff line Loading @@ -19,9 +19,9 @@ --> <resources> <string-array name="sudden_jumping_touch_event_device_list" translatable="false"> <!-- Nexus One --> <item>mahimahi</item> <!-- Droid --> <item>sholes</item> <!-- "Build.HARDWARE,true" that needs "sudden jump touch event" hack. See {@link com.android.inputmethod.keyboard.SuddenJumpingTouchEventHandler}. --> <item>mahimahi,true</item> <!-- Nexus One --> <item>sholes,true</item> <!-- Droid --> </string-array> </resources> java/src/com/android/inputmethod/keyboard/SuddenJumpingTouchEventHandler.java +3 −13 Original line number Diff line number Diff line Loading @@ -17,12 +17,12 @@ package com.android.inputmethod.keyboard; import android.content.Context; import android.os.Build; import android.util.Log; import android.view.MotionEvent; import com.android.inputmethod.latin.LatinImeLogger; import com.android.inputmethod.latin.R; import com.android.inputmethod.latin.Utils; public class SuddenJumpingTouchEventHandler { private static final String TAG = SuddenJumpingTouchEventHandler.class.getSimpleName(); Loading @@ -49,18 +49,8 @@ public class SuddenJumpingTouchEventHandler { public SuddenJumpingTouchEventHandler(Context context, ProcessMotionEvent view) { mView = view; final String[] deviceList = context.getResources().getStringArray( R.array.sudden_jumping_touch_event_device_list); mNeedsSuddenJumpingHack = needsSuddenJumpingHack(Build.HARDWARE, deviceList); } private static boolean needsSuddenJumpingHack(String deviceName, String[] deviceList) { for (String device : deviceList) { if (device.equalsIgnoreCase(deviceName)) { return true; } } return false; mNeedsSuddenJumpingHack = Boolean.parseBoolean(Utils.getDeviceOverrideValue( context.getResources(), R.array.sudden_jumping_touch_event_device_list, "false")); } public void setKeyboard(Keyboard newKeyboard) { Loading java/src/com/android/inputmethod/latin/SettingsValues.java +5 −18 Original line number Diff line number Diff line Loading @@ -19,7 +19,6 @@ package com.android.inputmethod.latin; import android.content.Context; import android.content.SharedPreferences; import android.content.res.Resources; import android.os.Build; import android.util.Log; import android.view.inputmethod.EditorInfo; Loading Loading @@ -322,14 +321,8 @@ public class SettingsValues { return volume; } final String[] volumePerHardwareList = res.getStringArray(R.array.keypress_volumes); final String hardwarePrefix = Build.HARDWARE + ","; for (final String element : volumePerHardwareList) { if (element.startsWith(hardwarePrefix)) { return Float.parseFloat(element.substring(element.lastIndexOf(',') + 1)); } } return -1.0f; return Float.parseFloat( Utils.getDeviceOverrideValue(res, R.array.keypress_volumes, "-1.0f")); } // Likewise Loading @@ -340,15 +333,9 @@ public class SettingsValues { if (ms >= 0) { return ms; } final String[] durationPerHardwareList = res.getStringArray( R.array.keypress_vibration_durations); final String hardwarePrefix = Build.HARDWARE + ","; for (final String element : durationPerHardwareList) { if (element.startsWith(hardwarePrefix)) { return (int)Long.parseLong(element.substring(element.lastIndexOf(',') + 1)); } } return -1; return Integer.parseInt( Utils.getDeviceOverrideValue(res, R.array.keypress_vibration_durations, "-1")); } // Likewise Loading java/src/com/android/inputmethod/latin/Utils.java +22 −0 Original line number Diff line number Diff line Loading @@ -19,9 +19,11 @@ package com.android.inputmethod.latin; import android.content.Context; import android.content.Intent; import android.content.pm.PackageManager; import android.content.res.Resources; import android.inputmethodservice.InputMethodService; import android.net.Uri; import android.os.AsyncTask; import android.os.Build; import android.os.Environment; import android.os.Handler; import android.os.HandlerThread; Loading @@ -43,6 +45,7 @@ import java.io.PrintWriter; import java.nio.channels.FileChannel; import java.text.SimpleDateFormat; import java.util.Date; import java.util.HashMap; public class Utils { private Utils() { Loading Loading @@ -465,4 +468,23 @@ public class Utils { if (TextUtils.isEmpty(info)) return null; return info; } private static final String HARDWARE_PREFIX = Build.HARDWARE + ","; private static final HashMap<Integer, String> sDeviceOverrideValueMap = new HashMap<Integer, String>(); public static String getDeviceOverrideValue(Resources res, int overrideResId, String defValue) { final Integer key = overrideResId; if (!sDeviceOverrideValueMap.containsKey(key)) { String overrideValue = defValue; for (final String element : res.getStringArray(overrideResId)) { if (element.startsWith(HARDWARE_PREFIX)) { overrideValue = element.substring(HARDWARE_PREFIX.length()); break; } } sDeviceOverrideValueMap.put(key, overrideValue); } return sDeviceOverrideValueMap.get(key); } } Loading
java/res/values/sudden-jumping-touch-event-device-list.xml +4 −4 Original line number Diff line number Diff line Loading @@ -19,9 +19,9 @@ --> <resources> <string-array name="sudden_jumping_touch_event_device_list" translatable="false"> <!-- Nexus One --> <item>mahimahi</item> <!-- Droid --> <item>sholes</item> <!-- "Build.HARDWARE,true" that needs "sudden jump touch event" hack. See {@link com.android.inputmethod.keyboard.SuddenJumpingTouchEventHandler}. --> <item>mahimahi,true</item> <!-- Nexus One --> <item>sholes,true</item> <!-- Droid --> </string-array> </resources>
java/src/com/android/inputmethod/keyboard/SuddenJumpingTouchEventHandler.java +3 −13 Original line number Diff line number Diff line Loading @@ -17,12 +17,12 @@ package com.android.inputmethod.keyboard; import android.content.Context; import android.os.Build; import android.util.Log; import android.view.MotionEvent; import com.android.inputmethod.latin.LatinImeLogger; import com.android.inputmethod.latin.R; import com.android.inputmethod.latin.Utils; public class SuddenJumpingTouchEventHandler { private static final String TAG = SuddenJumpingTouchEventHandler.class.getSimpleName(); Loading @@ -49,18 +49,8 @@ public class SuddenJumpingTouchEventHandler { public SuddenJumpingTouchEventHandler(Context context, ProcessMotionEvent view) { mView = view; final String[] deviceList = context.getResources().getStringArray( R.array.sudden_jumping_touch_event_device_list); mNeedsSuddenJumpingHack = needsSuddenJumpingHack(Build.HARDWARE, deviceList); } private static boolean needsSuddenJumpingHack(String deviceName, String[] deviceList) { for (String device : deviceList) { if (device.equalsIgnoreCase(deviceName)) { return true; } } return false; mNeedsSuddenJumpingHack = Boolean.parseBoolean(Utils.getDeviceOverrideValue( context.getResources(), R.array.sudden_jumping_touch_event_device_list, "false")); } public void setKeyboard(Keyboard newKeyboard) { Loading
java/src/com/android/inputmethod/latin/SettingsValues.java +5 −18 Original line number Diff line number Diff line Loading @@ -19,7 +19,6 @@ package com.android.inputmethod.latin; import android.content.Context; import android.content.SharedPreferences; import android.content.res.Resources; import android.os.Build; import android.util.Log; import android.view.inputmethod.EditorInfo; Loading Loading @@ -322,14 +321,8 @@ public class SettingsValues { return volume; } final String[] volumePerHardwareList = res.getStringArray(R.array.keypress_volumes); final String hardwarePrefix = Build.HARDWARE + ","; for (final String element : volumePerHardwareList) { if (element.startsWith(hardwarePrefix)) { return Float.parseFloat(element.substring(element.lastIndexOf(',') + 1)); } } return -1.0f; return Float.parseFloat( Utils.getDeviceOverrideValue(res, R.array.keypress_volumes, "-1.0f")); } // Likewise Loading @@ -340,15 +333,9 @@ public class SettingsValues { if (ms >= 0) { return ms; } final String[] durationPerHardwareList = res.getStringArray( R.array.keypress_vibration_durations); final String hardwarePrefix = Build.HARDWARE + ","; for (final String element : durationPerHardwareList) { if (element.startsWith(hardwarePrefix)) { return (int)Long.parseLong(element.substring(element.lastIndexOf(',') + 1)); } } return -1; return Integer.parseInt( Utils.getDeviceOverrideValue(res, R.array.keypress_vibration_durations, "-1")); } // Likewise Loading
java/src/com/android/inputmethod/latin/Utils.java +22 −0 Original line number Diff line number Diff line Loading @@ -19,9 +19,11 @@ package com.android.inputmethod.latin; import android.content.Context; import android.content.Intent; import android.content.pm.PackageManager; import android.content.res.Resources; import android.inputmethodservice.InputMethodService; import android.net.Uri; import android.os.AsyncTask; import android.os.Build; import android.os.Environment; import android.os.Handler; import android.os.HandlerThread; Loading @@ -43,6 +45,7 @@ import java.io.PrintWriter; import java.nio.channels.FileChannel; import java.text.SimpleDateFormat; import java.util.Date; import java.util.HashMap; public class Utils { private Utils() { Loading Loading @@ -465,4 +468,23 @@ public class Utils { if (TextUtils.isEmpty(info)) return null; return info; } private static final String HARDWARE_PREFIX = Build.HARDWARE + ","; private static final HashMap<Integer, String> sDeviceOverrideValueMap = new HashMap<Integer, String>(); public static String getDeviceOverrideValue(Resources res, int overrideResId, String defValue) { final Integer key = overrideResId; if (!sDeviceOverrideValueMap.containsKey(key)) { String overrideValue = defValue; for (final String element : res.getStringArray(overrideResId)) { if (element.startsWith(HARDWARE_PREFIX)) { overrideValue = element.substring(HARDWARE_PREFIX.length()); break; } } sDeviceOverrideValueMap.put(key, overrideValue); } return sDeviceOverrideValueMap.get(key); } }