summaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)Author
2019-01-22Desktop: change preferences dialog name to 'Preferences'Gravatar Dirk Hohndel
Fixes #1912 Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2019-01-22Travis: use 5.12.03 Docker image for AndroidGravatar Dirk Hohndel
With this we have working arm and arm64 images (except that the arm64 image crashes when using Bluetooth). Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2019-01-22Android Dockerfile: add latest cmake 3.13.2Gravatar Dirk Hohndel
cmake 3.10 (which comes with Ubuntu 18.04) in combination with Qt 5.12 and the current qt-android-cmake causes an odd bug. Paths are set with a double slash at the start '//' and later in the process this causes garbled path names for some of the objects which in return causes the APKs built in the container to fail. Upgrading the cmake inside the container to 3.13.2 fixes that problem. All the credit for identifying the problem and figuring out a solution goes to Jan Mulder. The resulting container was pushed to Docker hub as version to 5.12.03. Reported-by: Jan Mulder <jlmulder@xs4all.nl> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2019-01-22Android Docker: give the docker build its own output treeGravatar Jan Mulder
Again, this is relevant for developers that do local docker android builds, and normal android builds. A normal build uses the directory subsurface-mobile-build-arm(64), and when doing a docker android build this directory is shared between host and container. That sharing is good, as it nicely exposes the build tree to the host (for easy compare, inspection, etc.). But reusing the same tree as the local one is inconvenient (and possibly dangerous due to all kinds of caching issues). So, give the docker build its own output tree for the shared subsurface-mobile-build-arm(64) build output. Signed-off-by: Jan Mulder <jlmulder@xs4all.nl>
2019-01-22Android Docker: give the android builder its own nameGravatar Jan Mulder
Users that use docker locally for Windows style build and Android style builds will (probably) not like that we use the same name for both docker containers. So, give the android builder its own name. Signed-off-by: Jan Mulder <jlmulder@xs4all.nl>
2019-01-22Android build: always reconfigure libdivecomputerGravatar Jan Mulder
This fix makes no difference from usage of this script in Travis context, as every build starts from a clean VM, but the very few developers that build for Android locally, and that want to use the new style docker container builds as well, things are broken. libdivecomputer has build artifacts in its source tree (and that source tree is shared between local and docker run). So it happens that libdivecomputer is configured locally, and afterwards fails to build in docker build as its already configured, but not for the docker image its now running in. The fix is simple. Always reconfigure libdivecomputer when using this script. Signed-off-by: Jan Mulder <jlmulder@xs4all.nl>
2019-01-22Android: build both 32 and 64 bit binariesGravatar Dirk Hohndel
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2019-01-22Travis: find the Android apk in the right spotGravatar Dirk Hohndel
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2019-01-22Travis: Android build wrapper now runs inside our containerGravatar Dirk Hohndel
So we don't need the pre-built binaries anymore, and we don't need the travis_wait hack anymore for potentially slow downloads as that is all installed in the container already. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2019-01-22Android Dockerfile: ugly hack to deal with current NDK compile problemsGravatar Dirk Hohndel
As explained in commit 449d4ee33d ("Android build: add explanation for huge hack"). It seems reasonable to add this to our Travis image as that is custom made just to build our Android binaries. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2019-01-22Android Dockerfile: add comments and try to shrink the image moreGravatar Dirk Hohndel
This image is downloaded on every Travis run. Making it smaller is important. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2019-01-22Travis: build against the Qt 5.12 Android imageGravatar Dirk Hohndel
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2019-01-22Android: update for Qt 5.12.0Gravatar Dirk Hohndel
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2019-01-22Android build: add explanation for huge hackGravatar Jan Mulder
This had to be embedded in the build process (or better, solved for real). Using Cmake, Clang, NDK 18b, Qt 5.12 beta 4, some Subsurface code does not compile. At this point in time, its fully unclear to me why we see the error as it is. Thing fail deep down in Qt and NDK headers on #include <cmath>. Error like "::signbit is not in the global namespace". The most logic reason is an improper order in which include paths are constructed in the build process. Any attempt to find the real reason failed. Even very similar command lines from a qmake build that succeed fail with a cmake style build. The very very dirty hack is commenting out some lines in NDK 18b: "./android-ndk-r18b/sources/cxx-stl/llvm-libc++/include/cmath Comment lines 313-325, and all build, links and runs with no errors related to this known at this point. Signed-off-by: Jan Mulder <jlmulder@xs4all.nl>
2019-01-22Android build: always use -fPICGravatar Jan Mulder
make sure that all lib code is compiled with -fPIC as things will not link due to error "requires unsupported dynamic reloc R_ARM_REL32" (for arm build). Signed-off-by: Jan Mulder <jlmulder@xs4all.nl>
2019-01-22Android build: build openssl before libzipGravatar Jan Mulder
On very clean builds not using the wrapper script, the compile of libzip simply fails because it depend on openssl include files. Simply swap them around. Signed-off-by: Jan Mulder <jlmulder@xs4all.nl>
2019-01-22Android build: fix openssl build, no_asmGravatar Jan Mulder
Mysteriously, openssl does not compile with clang with a sha256-armv4.S:2638:2: error: invalid instruction, did you mean: adr? The easiest way out is compiling without no_asm. This obviously lowers the bandwidth on the SSL link (as the asm code is there for performance reasons), but it has no visible performance loss in my tests. Signed-off-by: Jan Mulder <jlmulder@xs4all.nl>
2019-01-22Android build: add arm64 target and compile with clangGravatar Jan Mulder
With a preparation done in the 4 commits before, now add the arm64 and use clang instead of gcc as compiler infrastructure. Signed-off-by: Jan Mulder <jlmulder@xs4all.nl>
2019-01-22Android build: openssl, do not move source treeGravatar Jan Mulder
Very annoyingly, openssl is re-build and downloaded numerous times when doing partial builds. Reason for this, is that the original checked out git repo is moved away, and build in source (as openssl does ...). So, this simple change leaves the checked out repo in place, and copies the tree to build in. Signed-off-by: Jan Mulder <jlmulder@xs4all.nl>
2019-01-22Android build: always install libzip.a in lib directoryGravatar Jan Mulder
A subtle one. When compiling for arm64, libzip is the only package we use in mobile that installs its product in lib64. There is no reason for this given the way our build process is. So, simply force the library to reside in lib, independent if we are building arm or arm64 architectures. Signed-off-by: Jan Mulder <jlmulder@xs4all.nl>
2019-01-22Android build: do not hard code armv7Gravatar Jan Mulder
Simple cleanup. Do not hard code armv7 as we have QT_ARCH. This allows, in the future, for arm64 builds as well. Signed-off-by: Jan Mulder <jlmulder@xs4all.nl>
2019-01-22Android build: set newer versions and parameterize ANDROID_PLATFORMGravatar Jan Mulder
Hard coding desired ANDROID_PLATFORM on multiple places is simply bad. Fix this. Further, set the variables to a much newer state. CAVEAT: this will likely break android build, so be careful on bisecting. All fixed in next, related commits. Signed-off-by: Jan Mulder <jlmulder@xs4all.nl>
2019-01-22Travis: use Android docker image for buildGravatar Dirk Hohndel
This should make it easier to make changes to our build environment. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2019-01-22Android: cleanup build wrapper scriptGravatar Dirk Hohndel
This way it can be run both to create the docker container or independently for a full build. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2019-01-22Android: create docker containerGravatar Dirk Hohndel
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2019-01-22Android: add Dockerfile for build environmentGravatar Dirk Hohndel
We'll use that on Travis, but anyone can use that on their system. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2019-01-22Android: allow running android-build-wrapper without buildingGravatar Dirk Hohndel
This way we can use it to fetch dependencies we need up front. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2019-01-22Mobile: fix editing dive siteGravatar Berthold Stoeger
Commit 68961a169efc37039cd3fda334efb9ad9927444f made it impossible to edit a dive site on mobile if a dive-site was already set: If divesite was non-null, no actions were taken. Remove the conditional. Reported-by: Miika Turkia <miika.turkia@gmail.com> Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
2019-01-22windows.c: fix wrong usage of wcslen() for utf8 conversationGravatar Lubomir I. Ivanov
wcslen() returns the number of characters in a wchar_t string. In the case of WideCharToMultiByte() an estimate for the size of the utf8 buffer is needed. Using wcslen() is incorrect for such a buffer, because for any non-ASCII character the estimate will be off by 1 byte. Call the following instead to obtain the proper UTF8 buffer size for the conversation: WideCharToMultiByte(CP_UTF8, 0, utf16, -1, NULL, 0, NULL, NULL); Also fix some missing "\n" in fprintf() calls. Signed-off-by: Lubomir I. Ivanov <neolit123@gmail.com>
2019-01-22Core: fix BT on Linux, workaround Qt bug on 5.12.0Gravatar Jan Mulder
After upgrading to Qt 5.12.0, download over BT from a DC did not work any more. On the console the message "Connecting to port is not supported (Uuid required)". Linus noticed earlier that we do rather strange processing in this part of the code related to selecting port 1 or port 5. This all seems not needed (any more), but broader testing is advised. This being stripped from the code, the mentioned error from Qt persisted. That is strange in itself, as we did not reference port numbers any more. Step 2 in this commit is actually using an uuid to the call to connectToService. Choosing an uuid seems relatively straightforward as we can use the same one we already use for Android. That is the default BT RFCOMM Serial Port Profile uuid. Interestingly, when changing to this uuid we run immediately in a Qt runtime error telling us "QDBusPendingReply: type ManagedObjectList is not registered with QtDBus.". For these 2 unexpected Qt messages, QTBUG-72742 was made. Studying the Qt source code at this point reveals a possible workaround. Simply create a local QBluetoothLocalDevice object, which, behind the scenes registers the Qt internal ManagedObjectList with QtDBus. In the meantime, Qt agrees that QTBUG-72742 is valid, and that a fix is to be expected in a future version. At that point in time, the declaration of the QBluetoothLocalDevice can be deleted again. In the end, interfacing over BT works again. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> Signed-off-by: Jan Mulder <jlmulder@xs4all.nl>
2019-01-22Bluetooth: all states other than HostPoweredOff qualify as validGravatar Jan Mulder
This is an attempt to fix issue #1896. While this seems a Qt issue in combination with very specific Android devices, this might be a fix. Do not check for a very specific state of the local BT controller, but just check if it is powered on. Signed-off-by: Jan Mulder <jlmulder@xs4all.nl>
2019-01-22Improve error reporting when exporting a selection of 0 dives.Gravatar John Plaxco
If no dives are selected when trying to export a selection, a message is shown that no dives were selected, but it's immediately hidden behind a message saying that a temporary file could not be created. In fact, the creation of the temporary file wasn't never attempted, so the message that the user actually sees is misleading. The solution chosen here is to duplicate the check that at least some dives are selected, and abort early if that case is detected, rather than continuing on to show the additional misleading message. Not elegant, but it gets the job done. Better solutions to this include refactoring prepare_dives_for_divelogs to return something more descriptive than a bool, remove that check from prepare_dives_for_divelogs entirely since it doesn't seem to be a good fit there, or switch to exceptions for handling these problems rather than return values. I don't have sufficient familiarity with the codebase to attempt these more invasive changes, but they should be considered in the future. On a final note, some of the other error messages in this file start with a capital letter, but the one relevant to this particular PR does not. Again, I'm not familiar enough with the codebase (or translations) to know if that's safe to change, so I'll leave that for another time or another developer. Reported-by: John Plaxco Signed-off-by: John Plaxco <john@johnplaxco.com>
2019-01-22Mobile: deal with BT name and address when tapping DownloadGravatar Dirk Hohndel
Instead of trying to update this whenever the connection text changes, instead deal with it right before it actually gets used. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2019-01-22Mobile: add helper function to fill in the BT nameGravatar Dirk Hohndel
For some devices the BT device name is different from the product name. Make sure that name is available to the mobile UI. This helper fills it in from the scan data (based on the device address). Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2019-01-22core: recognize Oceanic Pro Plus X over BLEGravatar Dirk Hohndel
Just like with the Aqualung i770R in 7697003498 this name follows the pattern of a model number in ASCII encoding, followed by the serial number of the device. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2019-01-22core: shift dive time in correct directionGravatar Jan Mulder
Unsure where this bug got introduced, but when asking for the dive time to be shifted 1 hour later, the divelist and the dive details showed 1 our earlier. Fixes: #1893 Signed-off-by: Jan Mulder <jlmulder@xs4all.nl>
2019-01-22Android build: use our own gradle build specGravatar Jan Mulder
At this point in time there seems something wrong with jcenter that is used to download all Android build artifacts from. It simply does not find the needed stuff on there and our build fails. Its unclear if this is a temporary issue at jcenter, or its just an intended change. This fix is a bit of a hack. It provides our own gradle build spec instead of the one that is provided from Qt (which is pulled in using androiddeployqt). Added is a working download link to maven, and a newer com.android.tools.build:gradle is used compared to Qt. All this makes Travis happy again. Signed-off-by: Jan Mulder <jlmulder@xs4all.nl>
2019-01-22Travis: fix the windows-container buildGravatar Dirk Hohndel
Call apt update before trying to install things. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2019-01-22Android build: explicitly install using sdkmanagerGravatar Jan Mulder
Make sure all required Android SDK components are explicitly installed before starting the actual build. Signed-off-by: Jan Mulder <jlmulder@xs4all.nl>
2019-01-22Android build: buildtools version is automatically detectedGravatar Jan Mulder
With commit 0d8fc7ef970e of qt-android-cmake, the buildtools version is automatically detected. So do not try to pass it any more, as this breaks the build. Signed-off-by: Jan Mulder <jlmulder@xs4all.nl>
2019-01-22Fix Cressi interface ftdi opening bugGravatar Daniel Krupp
The Cressi specific PID was not used when serial_ftdi_open_device tried to open the device. Reported-by: Daniel Krupp Signed-off-by: Daniel Krupp <daniel.krupp@gmail.com>
2019-01-22Dive list: correctly translate trip dateGravatar Berthold Stoeger
Adapt get_trip_date_string() to use the same logic as get_dive_date_string(): Use the static "loc" object to translate date. Before, the trip date was shown in C locale. Reported-by: Philippe Massart <philippe@philmassart.net> Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
2018-11-15Update README and ReleaseNotes for 4.8.4v4.8.4Gravatar Dirk Hohndel
Trim back CHANGELOG Add entry for recent fix for multiple dive master in mobile. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-11-15Latest translationsGravatar Dirk Hohndel
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-11-15Update list of supported dive computersGravatar Dirk Hohndel
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-11-15Update libdivecomputerGravatar Dirk Hohndel
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-11-15Mobile: Allow multiple divemastersGravatar Jocke
While not something that many will use, editing a dive on Subsurface-mobile should not result in data loss. This makes the divemaster field behave in the same way as the buddy field with regards to multiple entries. Fixes #1853 Signed-off-by: Joakim Bygdell <j.bygdell@gmail.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-11-14MXE: respect an MXE build type already definedGravatar Dirk Hohndel
And use that to have our Travis build still work with the existing MXE build container as well as the even older, pre-compiled MXE binaries used in the windows build. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-11-14MXE: add missing Qt5PositioningQuick.dllGravatar Dirk Hohndel
Without this the map won't load. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-11-13MXE: switch to i686-w64-mingw32.shared.posix.dw2Gravatar Dirk Hohndel
This allows us to build QtWebKit again. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>