diff options
Diffstat (limited to 'core/java/android/app')
| -rw-r--r-- | core/java/android/app/ActivityView.java | 26 | ||||
| -rw-r--r-- | core/java/android/app/IActivityContainer.aidl | 2 |
2 files changed, 28 insertions, 0 deletions
diff --git a/core/java/android/app/ActivityView.java b/core/java/android/app/ActivityView.java index 8acd19b..48ec420 100644 --- a/core/java/android/app/ActivityView.java +++ b/core/java/android/app/ActivityView.java @@ -27,6 +27,9 @@ import android.os.RemoteException; import android.util.AttributeSet; import android.util.DisplayMetrics; import android.util.Log; +import android.view.InputDevice; +import android.view.InputEvent; +import android.view.MotionEvent; import android.view.Surface; import android.view.TextureView; import android.view.TextureView.SurfaceTextureListener; @@ -112,6 +115,29 @@ public class ActivityView extends ViewGroup { } } + private boolean injectInputEvent(InputEvent event) { + try { + return mActivityContainer != null && mActivityContainer.injectEvent(event); + } catch (RemoteException e) { + return false; + } + } + + @Override + public boolean onTouchEvent(MotionEvent event) { + return injectInputEvent(event) || super.onTouchEvent(event); + } + + @Override + public boolean onGenericMotionEvent(MotionEvent event) { + if (event.isFromSource(InputDevice.SOURCE_CLASS_POINTER)) { + if (injectInputEvent(event)) { + return true; + } + } + return super.onGenericMotionEvent(event); + } + public boolean isAttachedToDisplay() { return mSurface != null; } diff --git a/core/java/android/app/IActivityContainer.aidl b/core/java/android/app/IActivityContainer.aidl index abd296a..5b80e06 100644 --- a/core/java/android/app/IActivityContainer.aidl +++ b/core/java/android/app/IActivityContainer.aidl @@ -20,6 +20,7 @@ import android.app.IActivityContainerCallback; import android.content.Intent; import android.content.IIntentSender; import android.os.IBinder; +import android.view.InputEvent; import android.view.Surface; /** @hide */ @@ -30,4 +31,5 @@ interface IActivityContainer { int startActivity(in Intent intent); int startActivityIntentSender(in IIntentSender intentSender); int getDisplayId(); + boolean injectEvent(in InputEvent event); } |
