summaryrefslogtreecommitdiffstats
path: root/src/android
Commit message (Collapse)AuthorAgeFilesLines
* Android: Don't throw away slow-moving mouse/touch eventsPaul Olav Tvete2013-10-031-2/+2
| | | | | | | | | | | | | | | When doing slow, precise movements, some devices will report differences of less than 1 pixel. This would mark the points as stationary, meaning that Qt would discard them without reporting. On the three devices I have tested, stationary points are reported with a 0.0 difference. If any devices are reporting noisy values, it is still safer to test for equality, since it is much better to report too many move events than to not report any. Task-number: QTBUG-33729 Change-Id: If20f2758f5a5ec0917184345b558f55a3d383807 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
* Android: update copied enum values in Java codePaul Olav Tvete2013-10-021-12/+17
| | | | | | | | | | | The InputMethodHint enum values were changed between Qt 4.8 and 5.1, and the hardcoded copies were not updated. Thanks to Lasconic for finding the solution to this problem. Task-number: QTBUG-32072 Task-number: QTBUG-32710 Change-Id: I3eb1192911a9c48d7720e85b91bee1af693a669d Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
* Remove logic which changes install rules inside Qt dirEskil Abrahamsen Blomfeldt2013-09-261-1/+1
| | | | | | | | | | | | | | A common problem is that examples and other apps are unusable on Android when they are inside the Qt directory. There doesn't really seem to be any good reason for having a special case in place, since this will only affect applications which are not built with the host toolchain, and we aren't building any command line apps for the target devices. So the only thing this will affect are the examples and we want those to be installed into the correct path. Change-Id: Ibae365e06eb77944f11e596c16c3c5baf798848c Reviewed-by: BogDan Vatra <bogdan@kde.org>
* Android: fixed arguments passed to the Qt application.Yoann Lopes2013-09-241-2/+2
| | | | | | | Removed extra empty parameter. Change-Id: Iad5becf05801118d0f6d2ec2cc1ec255eaa9e872 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
* Android: handle inverted orientationsPaul Olav Tvete2013-09-202-8/+19
| | | | | | | | | | Add logic to detect InvertedPortrait and InvertedLandscape orientations and implement QPlatformScreen::nativeOrientation() for Android. Task-number: QTBUG-32144 Change-Id: I294506714ea0faa9eacd7a15e1cfc45342659964 Reviewed-by: BogDan Vatra <bogdan@kde.org>
* Android: Add tokens for androiddeployqt in template filesEskil Abrahamsen Blomfeldt2013-09-193-20/+41
| | | | | | | | | Make it possible for the androiddeployqt tool to replace certain parts of the template with data from the .pro file. Task-number: QTBUG-32856 Change-Id: Iaedd2076bc1ea5dac0b94624c0ba3a755d2a08f3 Reviewed-by: Daniel Teske <daniel.teske@digia.com>
* Fix Android Style plugin.BogDan Vatra2013-09-102-4/+13
| | | | | | | | Task-number: QTBUG-29565 Change-Id: Iedb861962e3638bcbdf9d9a72a47bebc63b425b9 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com> Reviewed-by: BogDan Vatra <bogdan@kde.org>
* Android: added ApplicationState capability.Yoann Lopes2013-08-282-0/+20
| | | | | | | | | | | | The application state is tied to the QtActivity lifecycle. Mapping of states between Android and Qt is as follows: onResume --> ApplicationActive onPause --> ApplicationInactive onStop --> ApplicationSuspended Change-Id: Iefef08d6c7a7fde28fba1f4886882458cda6a0c0 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com> Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
* Accessibility for AndroidFrederik Gladhorn2013-08-2210-2/+477
| | | | | | | | | | | | | | | | This enables both modes for TalkBack, explore-by-touch and the normal swiping mode. It is partially inspired by the BarGraphView example of the Google/Android Eyes-Free project. Note that for any accessibility to work you'll need a device with api level 16 at least. Using reflection we should be able to dynamically pick up the classes if we have the high enough api level. Change-Id: I11b93bead451483782a1711434d45c8f9a35996f Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
* Android: Add default values for min and target SDKsEskil Abrahamsen Blomfeldt2013-08-211-0/+1
| | | | | | | | | | | | The minimum SDK version supported should be set to 9, since this is required by Qt. We also set the target SDK version to 14, since this will remove certain compatibility features, like the overflow button in the action bar. Task-number: QTBUG-30860 Change-Id: Iddd0eba2e802d03c5fe6e9b5da626808bbbad71d Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com> Reviewed-by: BogDan Vatra <bogdan@kde.org>
* Merge "Merge remote-tracking branch 'origin/stable' into dev" into ↵Frederik Gladhorn2013-08-161-22/+33
|\ | | | | | | refs/staging/dev
| * Stop unconditional synth of mouse events on AndroidFrederik Gladhorn2013-07-291-22/+0
| | | | | | | | | | | | | | | | | | | | | | 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 <eskil.abrahamsen-blomfeldt@digia.com>
| * Android: Get SSL root certificates from TrustManagerPaul Olav Tvete2013-07-291-0/+33
| | | | | | | | | | | | | | | | 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 <eskil.abrahamsen-blomfeldt@digia.com>
* | Fix xlint unchecked warning (java)Frederik Gladhorn2013-08-161-1/+1
|/ | | | | | | | | | | | This patch fixes the warning uncoverd by the -Xlint:unchecked option by parametrising the generics with wildcards. src/org/qtproject/qt5/android/QtActivityDelegate.java:315: warning: [unchecked] unchecked call to getMethod(String,Class<?>...) as a member of the raw type Class Method m = initClass.getMethod("setActivity", Activity.class, Object.class); Change-Id: I665e9dfd6d64c92a491d68c838ad02bde275d604 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
* Android: handle keyboard connect/disconnectPaul Olav Tvete2013-06-211-1/+1
| | | | | | | | | | | | Even though the documentation says that "This should never normally happen", we do get a "navigation" change when an external keyboard is connected or disconnected. Thanks to BogDan for finding the solution. Task-number: QTBUG-31806 Change-Id: Id92639800e617821976f842f93e09517529e14ef Reviewed-by: BogDan Vatra <bogdan@kde.org>
* Never show EGLFS mouse cursor in Qt for Android platform pluginEskil Abrahamsen Blomfeldt2013-05-201-1/+0
| | | | | | | | | | | | | The hack to use the environment variable for turning off the mouse cursor is broken when running against Ministro, because Ministro does not pass the environment on. A better solution is to make it possible to turn the cursor in the EGLFS plugin off in the hooks instead. Task-number: QTBUG-30553 Change-Id: Id09b48c350d2c95de9bb174f7480cf0cd2bf8145 Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
* Android: Change default Ministro download locationEskil Abrahamsen Blomfeldt2013-05-072-2/+2
| | | | | | | | | Set up for downloading from the qt-project.org servers instead of KDE servers. Change-Id: I6f9e69f91ea956165300d75109e1683d0b1aa5f0 Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com> Reviewed-by: BogDan Vatra <bogdan@kde.org>
* Enable bundling Qt in Android package in build systemEskil Abrahamsen Blomfeldt2013-05-014-19/+25
| | | | | | | | | | | | | | | | | | | | | For bundling Qt, we need two things: 1. We need to build a regular .jar file out of the Java files, so that they can be built into the app package. Dexing the classes first (i.e. compiling the JVM bytecode to Dalvik bytecode) is required for loading the .jar file at run-time, but cannot be used for building it into the app, so we need two different paths. 2. We need to specify which extra files have to be bundled for each module (this is primarily for plugins and imports). This is because there is no static dependency on these files, so it cannot be detected during deployment. Task-number: QTBUG-30751 Change-Id: I733603ee5d1c64bd7c5b9357eb5d993b9d0298f7 Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* Make it possible to bundle Qt libraries in Android apkEskil Abrahamsen Blomfeldt2013-05-014-4/+126
| | | | | | | | | | | | | | | | | | | | | | Add the enablers so that Qt Creator (or another deployment tool) can add a specification in the app's meta data of which libraries are bundled and the Java code required to extract plugins and imports into the required directory structure inside the app's data directory. This is intended to be an alternative to using Ministro for deployment, and the mechanism of extracting libraries on first startup is a work-around for the requirement in Qt of having this directory structure. For Qt 5.2, the approach should be changed to load plugins directly from the app's lib directory and the other files in imports will be bundled as qrcs in the native plugins. Task-number: QTBUG-30751 Change-Id: Ibdb3a672548b4802f9bf3ecd05fc194426ac30e7 Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
* Don't block back button after keyboard is hiddenPaul Olav Tvete2013-04-301-4/+2
| | | | | | | | | | | | The back button would be non-responsive for 5 seconds after hiding the software keyboard. This is a minimal change that does not look into why we need to have a 5 second delay in the first place. Task-number: QTBUG-30752 Change-Id: Ied514b77650cea7accc37a03efef2ce861090f65 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
* Remove dead codeEskil Abrahamsen Blomfeldt2013-04-152-15/+0
| | | | | | | | Just some code that was commented out and only adds to the confusion. Change-Id: Icfdf81de9731eeb2c473a2f6e2723742601a2037 Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
* Android: Implement debugging without relying on shell run-ashjk2013-04-051-15/+107
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This uses explicit handshakes between the application and the gdbserver start and the host side by using the gdbserver socket and two files ("ping" file in the application dir, "pong" file in /data/local/tmp/qt) The sequence is as follows: host: adb forward debugsocket :5039 host: adb shell rm pong file host: adb shell am start host: loop until ping file appears app start up: launch gdbserver --multi +debug-socket app start up: loop until debug socket appear gdbserver: normal start up including opening debug-socket, not yet attached to any process app start up: touch ping file app start up: loop until pong file appears host: start gdb host: gdb: set up binary, breakpoints, path etc host: gdb: target extended-remote :5039 gdbserver: accepts connection from gdb host: gdb: attach <application-pid> gdbserver: attaches to the application and stops it app start up: stopped now (it is still waiting for the pong anyway) host: gdb: continue gdbserver: resumes application app start up: resumed (still waiting for the pong) host: write pong file app start up: java code continues now, the process is already fully under control of gdbserver. Breakpoints are set etc, we are before main. app start up: native code launches Change-Id: Iaa28b8664dbebc39022d1be7ff5533c52ce39715 Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com> Reviewed-by: Daniel Teske <daniel.teske@digia.com> Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
* Update java part for Ministro 9.xBogDan Vatra2013-04-057-36/+63
| | | | | | | Add default source and repository. Change-Id: Idfa7936e8a2879fad9944702c2aa5c6d4638185a Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
* Android: use Fusion style by defaultPaul Olav Tvete2013-04-051-2/+3
| | | | | | | | | | | The Android style is not fully implemented yet, so prefer the Fusion style by default. Task-number: QTBUG-29565 Change-Id: Ida413e6b34a41b618b8e2206688922195ffcc519 Reviewed-by: BogDan Vatra <bogdan@kde.org> Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
* Android: set logicalDpi based on DisplayMetrics.scaledDensityPaul Olav Tvete2013-04-053-7/+14
| | | | | | | | | | | | | | The mathematically correct way would be to set logicalDPi to 160*scaledDensity, but then a 12 pt font would be gigantic. On iOS, we use a factor of 72 to be compatible with the native APIs, but that means that a 12 pt font is very small. A factor of 100 means that desktop apps look reasonable by default. Task-number: QTBUG-29674 Change-Id: I607f110150fb95685a6980b92f6f92f2b489f959 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
* Also version.xml needs to be installedBogDan Vatra2013-04-031-0/+1
| | | | | | | | | This file is used by QtCreator to decide if the java files need to be updated. Change-Id: Ib4875c32a071dd768f89950582c81ccdd420feca Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com> Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
* Use qtproject instead of necessitas for default package namePaul Olav Tvete2013-03-221-1/+1
| | | | | | Task-number: QTCREATORBUG-8779 Change-Id: Idf62e5efa4b8bc4b90d99b3883ae127a0cc7e92c Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
* Fix installation of Android java filesEskil Abrahamsen Blomfeldt2013-03-221-0/+2
| | | | | | | | | | | | | The installation of the java files does not depend on Qt, so it can be built before the rest of Qt, which means we need to remove the default dependency in qmake, otherwise we can get an error message: Project ERROR: Unknown module(s) in QT: gui core Change-Id: Ibb968acf6ec06c91ccfd5002e08c93c96a209934 Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* Android: Fix use_local_libs when running from launcherEskil Abrahamsen Blomfeldt2013-03-212-17/+20
| | | | | | | | | | | Use persistent data to specify the alternative location of Qt libraries instead of command line arguments, so that the application can be run from the launcher and not just from Qt Creator. Task-number: QTCREATORBUG-8643 Change-Id: I72df2905f3f35a3b924edd47d3a5387e674c97ac Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
* Android: install java-related filesPaul Olav Tvete2013-03-123-15/+29
| | | | | | | | The jar files are deployed on the device. The files in the java directory are used by creator when making a new project. Change-Id: Ie59f40edaa9c10044a1ca9949808ee22e6622ea1 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
* Android: Allow more than three touch pointsPaul Olav Tvete2013-03-121-41/+7
| | | | | | | | | Now that we do not support Android versions below API level 9, we can use the modern multi-touch functions. Change-Id: I5887b4c35f9e02089a334526cebecf0cf767bd6c Reviewed-by: BogDan Vatra <bogdan@kde.org> Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
* Introducing the Qt Android portPaul Olav Tvete2013-03-0538-0/+3861
Based on the Necessitas project by Bogdan Vatra. Contributors to the Qt5 project: BogDan Vatra <bogdan@kde.org> Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com> hjk <hjk121@nokiamail.com> Oswald Buddenhagen <oswald.buddenhagen@digia.com> Paul Olav Tvete <paul.tvete@digia.com> Robin Burchell <robin+qt@viroteck.net> Samuel Rødal <samuel.rodal@digia.com> Yoann Lopes <yoann.lopes@digia.com> The full history of the Qt5 port can be found in refs/old-heads/android, SHA-1 249ca9ca2c7d876b91b31df9434dde47f9065d0d Change-Id: Iff1a7b2dbb707c986f2639e65e39ed8f22430120 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com> Reviewed-by: Lars Knoll <lars.knoll@digia.com>