summaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)Author
2017-06-27Ensure all found BLE services are trackedGravatar Alex Blasche
If a device has more than one service the order of service discovery determined the selection of the service that we intend to interact with. This assumption is not accurate and is even platform dependent. Thinking ahead, it is likely that some devices may require us to keep track and interact with multiple services at the time. The new logic still suffers from the fact that there is no way to select the correct service for interaction. This will require higher level stack changes. Signed-off-by: Alex Blasche <alexander.blasche@qt.io> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2017-06-27Fix incorrect uuid check due to temporary char* in QString::toUtf8()Gravatar Alex Blasche
toUtf8() creates a temporary char* representation which is assigned to uuid. As soon the object created by toUtf8() gets destroyed, the uuid pointer points to releases memory. The intention is to check that we don't have one of the standard 16bit Bluetooth uuids. That's the purpose of QBluetoothUuid::toUInt16(). Signed-off-by: Alex Blasche <alexander.blasche@qt.io> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2017-06-26BT serial: recognize LE-only devices, and fall back to emulated serialGravatar Linus Torvalds
This is somewhat hacky, but it allows at least the Shearwater libdivecomputer backend to continue to treat even the BLE GATT model as just a serial protocol. What it does is create a special "emulate serial behavior over the packetized BLE protocol" helper layer, that qtserialbluetooth falls back on when rfcomm is not available. NOTE! This still requires some BLE packet code changes to work with the odd way that Shearwater sets up their BLE GATT communication. So note that no further patches are necessary to *libdivecomputer*, but some updates are needed for the subsurface qt-ble.cpp code. I have those updates in my tree, and this code is all tested on my Perdix AI, but those patches are currently too ugly to commit as-is. I've cleaned up this "fake serial" code sufficiently, that cleanup comes next. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2017-06-26Bluetooth: make LE-only devices add "LE:" as an address prefixGravatar Linus Torvalds
This seems a bit odd, but it actually has three different reasons for it: - It's a visual indication of BT LE mode for users - the rfcomm code only works with legacy BT support, and if we scan a device that only does LE, we want the custom serial code to instead automatically fall back on a "emulate serial over LE packets" model. - we want rfcomm to remain the default for devices that do both legacy BT _and_ LE, but we want people to have the ability to override the choice manually. They can now do so by just editing the address field and adding the "LE:" prefix manually, and it automatically gets saved for next time. So while a bit hacky, it's actually a very convenient model that not only works automatically, but allows the manual override. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2017-06-27Two simple export UDDF fixesGravatar Jan Mulder
This fixes issues #418 and $419. Signed-off-by: Jan Mulder <jlmulder@xs4all.nl>
2017-06-26Fix Travis breakage (and overall breakage)Gravatar Dirk Hohndel
I can't believe this slipped through my review. How embarrassing. Credit goes to Anton Lundin for spotting this. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2017-06-25QML UI: Download from DC: move accept button to the rightGravatar Dirk Hohndel
So it doesn't conflict with the hamburger menu button / opening the global drawer. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2017-06-25QML UI: Download from DC: avoid assignments of undefined valuesGravatar Dirk Hohndel
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2017-06-25QML UI: DC Download progress indicatorGravatar Dirk Hohndel
For now just do an indeterminate busy indicator - we can get more fancy and use the libdivecomputer progress event, later. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2017-06-24Add the EON Steel as support DC on AndroidGravatar Dirk Hohndel
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2017-06-24Enable BLE on AndroidGravatar Dirk Hohndel
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2017-06-24BLE support: convert fprintf(stderr,...) to qDebug()Gravatar Dirk Hohndel
This way the output can be seen in the AppLog on Android. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2017-06-24BLE support: add SPDX headersGravatar Dirk Hohndel
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2017-06-24Very early and likely quite broken BLE GATT codeGravatar Linus Torvalds
This is some very early and hacky code to be able to access BLE-enabled dive computers that use the GATT protocol to send packets back and forth (which seems to be pretty much all of them: a vendor-specific GATT service with a write characteristic and a notification characteristic for reading). For testing only. But it does successfully let me download dives from my EON Steel and my Scubapro G2. NOTE! There are several very hacky pieces in here, including just "knowing" that the write characteristic is the first one, and the notification characteristic is second. The code should actually check the properties rather than have those kinds of hardcoded assumptions. It also checks "vendor specific" by looking at the UUID string representation, and knowing that the standard ones start with zero. Crazily, there doesn't seem to be any normal way to test for this, although I guess that maybe the uuid.minimumSize() function could be used. There are other nasty corners. Don't complain, send me patches. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2017-06-25QML UI: make toast message translatableGravatar Jan Mulder
Restyle construction of toast message and enable translation for it. Further, removed newline characters as they break the lines at non-logical positions. Signed-off-by: Jan Mulder <jlmulder@xs4all.nl>
2017-06-24QML UI: DiveList: add date box to trip headerGravatar Dirk Hohndel
This way you can tell when a trip happened. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2017-06-24Avoid Q_ASSERT with debug build of QtGravatar Dirk Hohndel
I don't know why we are setting lastIndex to -1. That seems odd. But for now this workaround will have to do. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2017-06-24QML UI: set opacity of 1 for dive listGravatar Dirk Hohndel
Hopefully with this we get exactly the right colors. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2017-06-24QML UI: Davide's colors for the blue themeGravatar Dirk Hohndel
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2017-06-23QML UI: Theme colors: fix bad typoGravatar Dirk Hohndel
Here I confused myself with "dark" theme and the "darkerPrimary" colorls... Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2017-06-23QML UI: remember the themeGravatar Dirk Hohndel
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2017-06-23QML UI: show a small color palette previewGravatar Dirk Hohndel
When picking which color theme to use, show the user how things will look. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2017-06-23QML UI: use textColor instead of diveListTextColorGravatar Dirk Hohndel
This color is used for more than just the dive list. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2017-06-23QML UI: move theme setting into preferencesGravatar Dirk Hohndel
And reorganize settings and preferences a bit. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2017-06-23QML UI: clean up the setting of theme colorsGravatar Dirk Hohndel
Let's have names for the colors in each theme and assign those named values to the theme colors when switching themes. This way other pages can access the colors that are not in the current theme (for example for a theme switcher). Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2017-06-23QML UI: set color of the action buttonGravatar Dirk Hohndel
This requires Kirigami master past 2.2.0 (which explains commit 001ff1b9 "QML UI: switch to Kirigami master"). Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2017-06-23QML UI: color the status bar on AndroidGravatar Dirk Hohndel
This code is based on code from Marco Martin from the Kirigami Android sample app. In order to simplify the QML code the QMLManager function is there for all OSs, but it's a no-op on anything but Android. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2017-06-23Translate "more than n days" for surface intervalGravatar Stefan Fuchs
Signed-off-by: Stefan Fuchs <sfuchs@gmx.de>
2017-06-22Warn when not compiling against the matching libdc versionGravatar Dirk Hohndel
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2017-06-22Merge branch 'master' of git://github.com/torvalds/subsurface-for-dirkGravatar Dirk Hohndel
2017-06-22Update translation source stringsGravatar Dirk Hohndel
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2017-06-23Typo of translated stringGravatar Jan Mulder
Trivial typo. Signed-off-by: Jan Mulder <jlmulder@xs4all.nl>
2017-06-22QML UI: switch to Kirigami masterGravatar Dirk Hohndel
That way we'll get access to the colored Action Button. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2017-06-22QML UI: add missing go-up iconGravatar Dirk Hohndel
Now the 'Reachability' feature should be more obvious. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2017-06-22Convert to new libdivecomputer custom IO modelGravatar Linus Torvalds
Instead of being "custom serial", it's a IO model that allows serial or packet modes, independently of each other (ie you can have a bluetooth device that does serial over BT rfcomm and packet-based communication over BLE GATT with the same serial operations that describe both cases). Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2017-06-22Update plural translationsGravatar Dirk Hohndel
Including the fake en_US translation. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2017-06-22Latest translationsGravatar Dirk Hohndel
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2017-06-22Update translation source stringsGravatar Dirk Hohndel
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2017-06-22Use plural form for cloud connection waitGravatar Dirk Hohndel
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2017-06-22Add en_US translation for pluralsGravatar Dirk Hohndel
This way in the en_US locale we no longer get shown the odd "dive(s)" and instead get correct singular and plural forms. Most of the patch is just a reindentation as it removes the if clause that used to do the special case of NOT loading a translation for the en_US case. Right now we start with a trivial en_US translation file. My guess is that this will be overwritten once we do the next round of "new strings, new translations". Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2017-06-22QML UI: correctly build plural translationGravatar Dirk Hohndel
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2017-06-22QML UI: DiveList: allow trip header to wrapGravatar Dirk Hohndel
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2017-06-22QML UI: turn off spinner if pull-down-to-refresh failsGravatar Rick Walsh
Signed-off-by: Rick Walsh <rickmwalsh@gmail.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2017-06-22mobile: prune DC list to download fromGravatar Jan Mulder
Currently, only a small number of dive computers can be downloaded from the mobile app. Only present the supported ones to the user. So, currently restricted to classic BT. Not sure about FTDI support at this point. Version 2 of the same commit after review from Dirk. Fundamentally, support is as follows: Android: BT, BLE, and FTDI. iOS: BLE only. For all other OSses, this commit has no changes. As the BLE backend is not yet ready, no support on iOS yet. Signed-off-by: Jan Mulder <jlmulder@xs4all.nl>
2017-06-21Android build: work around odd build problem with missing rand()Gravatar Dirk Hohndel
I don't quite understand why this isn't correctly substituted to lrand48() by the header file, but patching it in the source is easy enough. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2017-06-21Android build: match versions between wrapper and build scriptGravatar Dirk Hohndel
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2017-06-21Upgrade 3pp for android and testingGravatar Anton Lundin
Signed-off-by: Anton Lundin <glance@acc.umu.se>
2017-06-21Remove old duplicated codeGravatar Anton Lundin
Way back in time this code was copied from downloadfromdcthread, so de-duplicate and call that code instead. Signed-off-by: Anton Lundin <glance@acc.umu.se>
2017-06-21Flag more minified javascript as binaryGravatar Anton Lundin
This is so that crap doesn't show up when doing ex. git grep Signed-off-by: Anton Lundin <glance@acc.umu.se>
2017-06-22smtk-import: partially revert and complete 6963b52dGravatar Salvador Cuñat
6963b52d introduced a cmake option, COMMANDLINE to enable building a pure command line version of smtk2ssrf importer, but then the #define COMMANDLINE=1 forces building CLI mode. This patch allows building GUI or CLI versions depending on selection of the COMMANDLINE option. Signed-off-by: Salvador Cuñat <salvador.cunat@gmail.com>