summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Youngsang Cho <youngsang@google.com> 2014-05-13 01:34:49 +0900
committer Youngsang Cho <youngsang@google.com> 2014-05-13 02:04:27 +0900
commitf982613c81ef89cf33cc99498649e624b2a94a58 (patch)
treee44fe8cefc24e412955170b14ffb8bca21cbb983
parent5fca50490746c52c2ec977529af3bbf17ce3b285 (diff)
Use copied input events in TvView
InputEvents are recycled in ViewRootImpl. If a event is recycled between sending the input event to TIS and receiving its results in TvView, the value of the input event can be changed. So we use its copied input event in TvView. Bug: 14792009 Change-Id: I82d4594f28cd72924c56f6e7a0fc12ff7dca1660
-rw-r--r--core/java/android/tv/TvView.java16
1 files changed, 12 insertions, 4 deletions
diff --git a/core/java/android/tv/TvView.java b/core/java/android/tv/TvView.java
index 289823b4a2cd..e07a3ad814bb 100644
--- a/core/java/android/tv/TvView.java
+++ b/core/java/android/tv/TvView.java
@@ -196,7 +196,9 @@ public class TvView extends SurfaceView {
if (mSession == null) {
return false;
}
- int ret = mSession.dispatchInputEvent(event, event, mFinishedInputEventCallback, mHandler);
+ InputEvent copiedEvent = event.copy();
+ int ret = mSession.dispatchInputEvent(copiedEvent, copiedEvent, mFinishedInputEventCallback,
+ mHandler);
return ret != Session.DISPATCH_NOT_HANDLED;
}
@@ -209,7 +211,9 @@ public class TvView extends SurfaceView {
if (mSession == null) {
return false;
}
- int ret = mSession.dispatchInputEvent(event, event, mFinishedInputEventCallback, mHandler);
+ InputEvent copiedEvent = event.copy();
+ int ret = mSession.dispatchInputEvent(copiedEvent, copiedEvent, mFinishedInputEventCallback,
+ mHandler);
return ret != Session.DISPATCH_NOT_HANDLED;
}
@@ -222,7 +226,9 @@ public class TvView extends SurfaceView {
if (mSession == null) {
return false;
}
- int ret = mSession.dispatchInputEvent(event, event, mFinishedInputEventCallback, mHandler);
+ InputEvent copiedEvent = event.copy();
+ int ret = mSession.dispatchInputEvent(copiedEvent, copiedEvent, mFinishedInputEventCallback,
+ mHandler);
return ret != Session.DISPATCH_NOT_HANDLED;
}
@@ -235,7 +241,9 @@ public class TvView extends SurfaceView {
if (mSession == null) {
return false;
}
- int ret = mSession.dispatchInputEvent(event, event, mFinishedInputEventCallback, mHandler);
+ InputEvent copiedEvent = event.copy();
+ int ret = mSession.dispatchInputEvent(copiedEvent, copiedEvent, mFinishedInputEventCallback,
+ mHandler);
return ret != Session.DISPATCH_NOT_HANDLED;
}