From 591584d9a940d374e20a62573d71054e0081c6ac Mon Sep 17 00:00:00 2001 From: Paul Olav Tvete Date: Thu, 25 Jul 2013 14:40:06 +0200 Subject: Android: Get SSL root certificates from TrustManager On Android, when not using Ministro, we cannot read certificates from the file system, so we have to get them through Java APIs instead. Change-Id: I415329fcb45836735c1112dbe832214b3c73dc9a Reviewed-by: Eskil Abrahamsen Blomfeldt --- .../src/org/qtproject/qt5/android/QtNative.java | 33 ++++++++++++++++++++++ 1 file changed, 33 insertions(+) (limited to 'src/android/jar') diff --git a/src/android/jar/src/org/qtproject/qt5/android/QtNative.java b/src/android/jar/src/org/qtproject/qt5/android/QtNative.java index 4586ae2002..22e3701e47 100644 --- a/src/android/jar/src/org/qtproject/qt5/android/QtNative.java +++ b/src/android/jar/src/org/qtproject/qt5/android/QtNative.java @@ -57,6 +57,12 @@ import android.view.ContextMenu; import android.view.Menu; import android.view.MotionEvent; +import java.security.KeyStore; +import java.security.cert.X509Certificate; +import javax.net.ssl.TrustManagerFactory; +import javax.net.ssl.TrustManager; +import javax.net.ssl.X509TrustManager; + public class QtNative { private static Activity m_activity = null; @@ -534,6 +540,33 @@ public class QtNative }); } + private static byte[][] getSSLCertificates() + { + ArrayList certificateList = new ArrayList(); + + try { + TrustManagerFactory factory = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm()); + factory.init((KeyStore) null); + + for (TrustManager manager : factory.getTrustManagers()) { + if (manager instanceof X509TrustManager) { + X509TrustManager trustManager = (X509TrustManager) manager; + + for (X509Certificate certificate : trustManager.getAcceptedIssuers()) { + byte buffer[] = certificate.getEncoded(); + certificateList.add(buffer); + } + } + } + } catch (Exception e) { + Log.e(QtTAG, "Failed to get certificates", e); + } + + byte[][] certificateArray = new byte[certificateList.size()][]; + certificateArray = certificateList.toArray(certificateArray); + return certificateArray; + } + // screen methods public static native void setDisplayMetrics(int screenWidthPixels, int screenHeightPixels, -- cgit v1.2.3 From 32e6778bda06f348796df60dce7c2d40f3d97452 Mon Sep 17 00:00:00 2001 From: Frederik Gladhorn Date: Fri, 26 Jul 2013 18:25:44 +0200 Subject: Stop unconditional synth of mouse events on Android Before this patch we always send mouse events for each touch event that happens. This is redundant (we already synthesize in QGuiApplicatioin) and breaks some touch handling in QtQuick2. Change-Id: I4bc1686a7a46039901315619a0acdf2888ad6775 Reviewed-by: Eskil Abrahamsen Blomfeldt --- .../src/org/qtproject/qt5/android/QtNative.java | 22 ---------------------- 1 file changed, 22 deletions(-) (limited to 'src/android/jar') diff --git a/src/android/jar/src/org/qtproject/qt5/android/QtNative.java b/src/android/jar/src/org/qtproject/qt5/android/QtNative.java index 22e3701e47..122fc55aad 100644 --- a/src/android/jar/src/org/qtproject/qt5/android/QtNative.java +++ b/src/android/jar/src/org/qtproject/qt5/android/QtNative.java @@ -343,28 +343,6 @@ public class QtNative touchEnd(id,1); } //@ANDROID-5 - - switch (event.getAction()) { - case MotionEvent.ACTION_UP: - mouseUp(id,(int) event.getX(), (int) event.getY()); - break; - - case MotionEvent.ACTION_DOWN: - mouseDown(id,(int) event.getX(), (int) event.getY()); - m_oldx = (int) event.getX(); - m_oldy = (int) event.getY(); - break; - - case MotionEvent.ACTION_MOVE: - int dx = (int) (event.getX() - m_oldx); - int dy = (int) (event.getY() - m_oldy); - if (Math.abs(dx) > m_moveThreshold || Math.abs(dy) > m_moveThreshold) { - mouseMove(id, (int) event.getX(), (int) event.getY()); - m_oldx = (int) event.getX(); - m_oldy = (int) event.getY(); - } - break; - } } static public void sendTrackballEvent(MotionEvent event, int id) -- cgit v1.2.3