aboutsummaryrefslogtreecommitdiffstats
path: root/java/src
diff options
context:
space:
mode:
authorTadashi G. Takaoka <takaoka@google.com>2013-12-04 09:05:06 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2013-12-04 09:05:07 +0000
commit1eb63684f97f126ac9937583db3e74d3a33de9aa (patch)
tree35752da5fa61036934247928b09e72777508332c /java/src
parent8ca8807b968d0a7ee882f9bd05047351a45c4e89 (diff)
parent5086275d393b8703253453e991847551375400a3 (diff)
downloadlatinime-1eb63684f97f126ac9937583db3e74d3a33de9aa.tar.gz
latinime-1eb63684f97f126ac9937583db3e74d3a33de9aa.tar.xz
latinime-1eb63684f97f126ac9937583db3e74d3a33de9aa.zip
Merge "Add workaround to prevent ViewPager from crashing"
Diffstat (limited to 'java/src')
-rw-r--r--java/src/com/android/inputmethod/keyboard/internal/CustomViewPager.java47
1 files changed, 47 insertions, 0 deletions
diff --git a/java/src/com/android/inputmethod/keyboard/internal/CustomViewPager.java b/java/src/com/android/inputmethod/keyboard/internal/CustomViewPager.java
new file mode 100644
index 000000000..f5cc45ca7
--- /dev/null
+++ b/java/src/com/android/inputmethod/keyboard/internal/CustomViewPager.java
@@ -0,0 +1,47 @@
+/*
+ * 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 com.android.inputmethod.keyboard.internal;
+
+import android.content.Context;
+import android.support.v4.view.ViewPager;
+import android.util.AttributeSet;
+import android.util.Log;
+import android.view.MotionEvent;
+
+/**
+ * Custom view pager to prevent {@link ViewPager} from crashing while handling multi-touch
+ * event.
+ */
+public class CustomViewPager extends ViewPager {
+ private static final String TAG = CustomViewPager.class.getSimpleName();
+
+ public CustomViewPager(final Context context, final AttributeSet attrs) {
+ super(context, attrs);
+ }
+
+ @Override
+ public boolean onInterceptTouchEvent(final MotionEvent event) {
+ // This only happens when you multi-touch, take the first finger off and move.
+ // Unfortunately this causes {@link ViewPager} to crash, so we will ignore such events.
+ if (event.getAction() == MotionEvent.ACTION_MOVE && event.getPointerId(0) != 0) {
+ Log.w(TAG, "Ignored multi-touch move event to prevent ViewPager from crashing");
+ return false;
+ }
+
+ return super.onInterceptTouchEvent(event);
+ }
+}