diff options
Diffstat (limited to 'src/android/jar/src/org/qtproject/qt/android/QtSurface.java')
-rw-r--r-- | src/android/jar/src/org/qtproject/qt/android/QtSurface.java | 59 |
1 files changed, 11 insertions, 48 deletions
diff --git a/src/android/jar/src/org/qtproject/qt/android/QtSurface.java b/src/android/jar/src/org/qtproject/qt/android/QtSurface.java index 42830783e7..f4ca3947d4 100644 --- a/src/android/jar/src/org/qtproject/qt/android/QtSurface.java +++ b/src/android/jar/src/org/qtproject/qt/android/QtSurface.java @@ -4,42 +4,30 @@ package org.qtproject.qt.android; -import android.app.Activity; +import android.annotation.SuppressLint; import android.content.Context; import android.graphics.PixelFormat; -import android.view.GestureDetector; -import android.view.MotionEvent; +import android.view.Surface; import android.view.SurfaceHolder; import android.view.SurfaceView; -import java.lang.reflect.Constructor; -import java.lang.reflect.Method; - -public class QtSurface extends SurfaceView implements SurfaceHolder.Callback +@SuppressLint("ViewConstructor") +class QtSurface extends SurfaceView implements SurfaceHolder.Callback { - private GestureDetector m_gestureDetector; - private Object m_accessibilityDelegate = null; + private final QtSurfaceInterface m_surfaceCallback; - public QtSurface(Context context, int id, boolean onTop, int imageDepth) + QtSurface(Context context, QtSurfaceInterface surfaceCallback, boolean onTop, int imageDepth) { super(context); setFocusable(false); setFocusableInTouchMode(false); setZOrderMediaOverlay(onTop); + m_surfaceCallback = surfaceCallback; getHolder().addCallback(this); if (imageDepth == 16) getHolder().setFormat(PixelFormat.RGB_565); else getHolder().setFormat(PixelFormat.RGBA_8888); - - setId(id); - m_gestureDetector = - new GestureDetector(context, new GestureDetector.SimpleOnGestureListener() { - public void onLongPress(MotionEvent event) { - QtNative.longPress(getId(), (int) event.getX(), (int) event.getY()); - } - }); - m_gestureDetector.setIsLongpressEnabled(true); } @Override @@ -52,39 +40,14 @@ public class QtSurface extends SurfaceView implements SurfaceHolder.Callback { if (width < 1 || height < 1) return; - - QtNative.setSurface(getId(), holder.getSurface(), width, height); + if (m_surfaceCallback != null) + m_surfaceCallback.onSurfaceChanged(holder.getSurface()); } @Override public void surfaceDestroyed(SurfaceHolder holder) { - QtNative.setSurface(getId(), null, 0, 0); - } - - @Override - public boolean onTouchEvent(MotionEvent event) - { - // QTBUG-65927 - // Fix event positions depending on Surface position. - // In case when Surface is moved, we should also add this move to event position - event.setLocation(event.getX() + getX(), event.getY() + getY()); - - QtNative.sendTouchEvent(event, getId()); - m_gestureDetector.onTouchEvent(event); - return true; - } - - @Override - public boolean onTrackballEvent(MotionEvent event) - { - QtNative.sendTrackballEvent(event, getId()); - return true; - } - - @Override - public boolean onGenericMotionEvent(MotionEvent event) - { - return QtNative.sendGenericMotionEvent(event, getId()); + if (m_surfaceCallback != null) + m_surfaceCallback.onSurfaceChanged(null); } } |