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

Commit d438fcac authored by Tadashi G. Takaoka's avatar Tadashi G. Takaoka
Browse files

Restrict phantom sudden move event hack to specific device

Bug: 6571778
Change-Id: I4306af387074d34db68a9bb16ae41debcfc36bfd
parent 62cd919d
Loading
Loading
Loading
Loading
+26 −0
Original line number Diff line number Diff line
<?xml version="1.0" encoding="utf-8"?>
<!--
/*
**
** Copyright 2012, 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>
    <string-array name="phantom_sudden_move_event_device_list" translatable="false">
        <!-- "Build.HARDWARE,true" that needs "phantom sudden move event" hack.
             See {@link com.android.inputmethod.keyboard.PointerTracker}. -->
        <item>stingray,true</item> <!-- Xoom -->
    </string-array>
</resources>
+4 −2
Original line number Diff line number Diff line
@@ -338,8 +338,10 @@ public class LatinKeyboardView extends KeyboardView implements PointerTracker.Ke

        mHasDistinctMultitouch = context.getPackageManager()
                .hasSystemFeature(PackageManager.FEATURE_TOUCHSCREEN_MULTITOUCH_DISTINCT);

        PointerTracker.init(mHasDistinctMultitouch);
        final boolean needsPhantomSuddenMoveEventHack = Boolean.parseBoolean(
                Utils.getDeviceOverrideValue(context.getResources(),
                        R.array.phantom_sudden_move_event_device_list, "false"));
        PointerTracker.init(mHasDistinctMultitouch, needsPhantomSuddenMoveEventHack);

        final TypedArray a = context.obtainStyledAttributes(
                attrs, R.styleable.LatinKeyboardView, defStyle, R.style.LatinKeyboardView);
+10 −4
Original line number Diff line number Diff line
@@ -108,6 +108,7 @@ public class PointerTracker {
    // Parameters for pointer handling.
    private static LatinKeyboardView.PointerTrackerParams sParams;
    private static int sTouchNoiseThresholdDistanceSquared;
    private static boolean sNeedsPhantomSuddenMoveEventHack;

    private static final ArrayList<PointerTracker> sTrackers = new ArrayList<PointerTracker>();
    private static PointerTrackerQueue sPointerTrackerQueue;
@@ -162,12 +163,14 @@ public class PointerTracker {
    private static final KeyboardActionListener EMPTY_LISTENER =
            new KeyboardActionListener.Adapter();

    public static void init(boolean hasDistinctMultitouch) {
    public static void init(boolean hasDistinctMultitouch,
            boolean needsPhantomSuddenMoveEventHack) {
        if (hasDistinctMultitouch) {
            sPointerTrackerQueue = new PointerTrackerQueue();
        } else {
            sPointerTrackerQueue = null;
        }
        sNeedsPhantomSuddenMoveEventHack = needsPhantomSuddenMoveEventHack;

        setParameters(LatinKeyboardView.PointerTrackerParams.DEFAULT);
    }
@@ -593,10 +596,13 @@ public class PointerTracker {
                    final int dx = x - lastX;
                    final int dy = y - lastY;
                    final int lastMoveSquared = dx * dx + dy * dy;
                    if (lastMoveSquared >= mKeyQuarterWidthSquared) {
                        if (DEBUG_MODE)
                            Log.w(TAG, String.format("onMoveEvent: sudden move is translated to "
                    if (sNeedsPhantomSuddenMoveEventHack
                            && lastMoveSquared >= mKeyQuarterWidthSquared) {
                        if (DEBUG_MODE) {
                            Log.w(TAG, String.format("onMoveEvent:"
                                    + " phantom sudden move event is translated to "
                                    + "up[%d,%d]/down[%d,%d] events", lastX, lastY, x, y));
                        }
                        if (ProductionFlag.IS_EXPERIMENTAL) {
                            ResearchLogger.pointerTracker_onMoveEvent(x, y, lastX, lastY);
                        }