Skip to content
Snippets Groups Projects
Commit 23c48751 authored by Keisuke Kuroyanagi's avatar Keisuke Kuroyanagi Committed by Android (Google) Code Review
Browse files

Merge "Check timestamp for each pointer."

parents 99b7242f 33fd13bf
No related branches found
No related tags found
No related merge requests found
......@@ -17,6 +17,7 @@
package com.android.inputmethod.latin;
import android.util.Log;
import android.util.SparseIntArray;
import com.android.inputmethod.annotations.UsedForTesting;
import com.android.inputmethod.latin.utils.ResizableIntArray;
......@@ -160,15 +161,21 @@ public final class InputPointers {
private boolean isValidTimeStamps() {
final int[] times = mTimes.getPrimitiveArray();
final int[] pointerIds = mPointerIds.getPrimitiveArray();
final SparseIntArray lastTimeOfPointers = new SparseIntArray();
final int size = getPointerSize();
for (int i = 1; i < size; ++i) {
if (times[i] < times[i - 1]) {
for (int i = 0; i < size; ++i) {
final int pointerId = pointerIds[i];
final int time = times[i];
final int lastTime = lastTimeOfPointers.get(pointerId, time);
if (time < lastTime) {
// dump
for (int j = 0; j < size; ++j) {
Log.d(TAG, "--- (" + j + ") " + times[j]);
}
return false;
}
lastTimeOfPointers.put(pointerId, time);
}
return true;
}
......
/*
* Copyright (C) 2013 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 android.util;
public class SparseIntArray {
private final SparseArray<Integer> mArray;
public SparseIntArray() {
this(10);
}
public SparseIntArray(final int initialCapacity) {
mArray = new SparseArray<Integer>(initialCapacity);
}
public int size() {
return mArray.size();
}
public void clear() {
mArray.clear();
}
public void put(final int key, final int value) {
mArray.put(key, value);
}
public int get(final int key) {
return get(key, 0);
}
public int get(final int key, final int valueIfKeyNotFound) {
return mArray.get(key, valueIfKeyNotFound);
}
public int indexOfKey(final int key) {
return mArray.indexOfKey(key);
}
public int keyAt(final int index) {
return mArray.keyAt(index);
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment