Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 4cc44f9f authored by Tadashi G. Takaoka's avatar Tadashi G. Takaoka Committed by Android (Google) Code Review
Browse files

Merge "Refactor to memorize device dependent override parameters"

parents 26e7ce1f 624f1bab
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -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>
+3 −13
Original line number Diff line number Diff line
@@ -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();
@@ -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) {
+5 −18
Original line number Diff line number Diff line
@@ -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;

@@ -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
@@ -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
+22 −0
Original line number Diff line number Diff line
@@ -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;
@@ -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() {
@@ -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);
    }
}